ts-prorm-orm 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +194 -72
  3. package/dist/audit/history-query.d.ts +35 -0
  4. package/dist/audit/index.d.ts +16 -0
  5. package/dist/audit/logger.d.ts +126 -0
  6. package/dist/cache/cache-manager.d.ts +341 -0
  7. package/dist/cache/index.d.ts +8 -0
  8. package/dist/cache/redis-cluster-cache.d.ts +164 -0
  9. package/dist/cache/redis-cluster-cache.js +19 -36
  10. package/dist/cli/cloud.d.ts +55 -0
  11. package/dist/cli/cloud.js +318 -0
  12. package/dist/cli/commands/auth.d.ts +2 -0
  13. package/dist/cli/commands/auth.js +345 -0
  14. package/dist/cli/commands/billing.d.ts +2 -0
  15. package/dist/cli/commands/billing.js +135 -0
  16. package/dist/cli/commands/code.d.ts +2 -0
  17. package/dist/cli/commands/code.js +168 -0
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +154 -0
  20. package/dist/cli/commands/db.d.ts +2 -0
  21. package/dist/cli/commands/db.js +189 -0
  22. package/dist/cli/commands/index.d.ts +1 -0
  23. package/dist/cli/commands/index.js +22 -0
  24. package/dist/cli/commands/keys.d.ts +2 -0
  25. package/dist/cli/commands/keys.js +100 -0
  26. package/dist/cli/commands/misc.d.ts +2 -0
  27. package/dist/cli/commands/misc.js +282 -0
  28. package/dist/cli/commands/pull.d.ts +2 -0
  29. package/dist/cli/commands/pull.js +306 -0
  30. package/dist/cli/commands/runners.d.ts +2 -0
  31. package/dist/cli/commands/runners.js +218 -0
  32. package/dist/cli/commands/scaffold.d.ts +2 -0
  33. package/dist/cli/commands/scaffold.js +383 -0
  34. package/dist/cli/commands/secrets.d.ts +2 -0
  35. package/dist/cli/commands/secrets.js +162 -0
  36. package/dist/cli/commands/store.d.ts +2 -0
  37. package/dist/cli/commands/store.js +274 -0
  38. package/dist/cli/commands/system.d.ts +10 -0
  39. package/dist/cli/commands/system.js +169 -0
  40. package/dist/cli/commands/teams.d.ts +2 -0
  41. package/dist/cli/commands/teams.js +189 -0
  42. package/dist/cli/commands/user.d.ts +2 -0
  43. package/dist/cli/commands/user.js +171 -0
  44. package/dist/cli/framework.d.ts +103 -0
  45. package/dist/cli/framework.js +436 -0
  46. package/dist/cli/io.d.ts +26 -0
  47. package/dist/cli/io.js +181 -0
  48. package/dist/cli/keychain.d.ts +10 -0
  49. package/dist/cli/keychain.js +101 -0
  50. package/dist/cli/prompt.d.ts +20 -0
  51. package/dist/cli/prompt.js +111 -0
  52. package/dist/cli.d.ts +214 -0
  53. package/dist/cli.js +72 -5
  54. package/dist/compliance/audit-trail.d.ts +66 -0
  55. package/dist/compliance/backup-verification.d.ts +279 -0
  56. package/dist/compliance/breach-detector.d.ts +197 -0
  57. package/dist/compliance/consent-record.d.ts +107 -0
  58. package/dist/compliance/consent-versioning.d.ts +169 -0
  59. package/dist/compliance/cross-border-log.d.ts +254 -0
  60. package/dist/compliance/data-classifier.d.ts +127 -0
  61. package/dist/compliance/data-lineage.d.ts +268 -0
  62. package/dist/compliance/data-masker.d.ts +110 -0
  63. package/dist/compliance/data-portability.d.ts +98 -0
  64. package/dist/compliance/data-retention.d.ts +108 -0
  65. package/dist/compliance/dsar-workflow.d.ts +175 -0
  66. package/dist/compliance/field-encryption.d.ts +84 -0
  67. package/dist/compliance/immutable-record.d.ts +84 -0
  68. package/dist/compliance/index.d.ts +93 -0
  69. package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
  70. package/dist/compliance/pseudonymization.d.ts +96 -0
  71. package/dist/compliance/query-firewall.d.ts +661 -0
  72. package/dist/compliance/rate-limiter.d.ts +203 -0
  73. package/dist/compliance/right-to-erasure.d.ts +96 -0
  74. package/dist/compliance/row-level-security.d.ts +152 -0
  75. package/dist/compliance/security-decorator.d.ts +388 -0
  76. package/dist/compliance/security-monitor.d.ts +170 -0
  77. package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
  78. package/dist/compliance/session-isolation.d.ts +286 -0
  79. package/dist/compliance/tls-enforcer.d.ts +51 -0
  80. package/dist/compliance/worm-storage.d.ts +225 -0
  81. package/dist/connection-manager.d.ts +130 -0
  82. package/dist/connection-pool.d.ts +311 -0
  83. package/dist/decorators/audit.d.ts +49 -0
  84. package/dist/decorators/check.d.ts +218 -0
  85. package/dist/decorators/collate.d.ts +346 -0
  86. package/dist/decorators/comment.d.ts +51 -0
  87. package/dist/decorators/database-settings.d.ts +193 -0
  88. package/dist/decorators/default.d.ts +148 -0
  89. package/dist/decorators/encryption.d.ts +175 -0
  90. package/dist/decorators/engine.d.ts +97 -0
  91. package/dist/decorators/fk-constraints.d.ts +387 -0
  92. package/dist/decorators/foreign-table.d.ts +57 -0
  93. package/dist/decorators/generated.d.ts +232 -0
  94. package/dist/decorators/hstore.d.ts +96 -0
  95. package/dist/decorators/index.d.ts +57 -0
  96. package/dist/decorators/index.js +14 -30
  97. package/dist/decorators/json-column.d.ts +47 -0
  98. package/dist/decorators/jsonb.d.ts +83 -0
  99. package/dist/decorators/orm-decorators.d.ts +274 -0
  100. package/dist/decorators/permissions.d.ts +192 -0
  101. package/dist/decorators/procedure.d.ts +168 -0
  102. package/dist/decorators/procedure.js +31 -7
  103. package/dist/decorators/query-options.d.ts +527 -0
  104. package/dist/decorators/range.d.ts +122 -0
  105. package/dist/decorators/set-column.d.ts +43 -0
  106. package/dist/decorators/spatial.d.ts +60 -0
  107. package/dist/decorators/storage.d.ts +561 -0
  108. package/dist/decorators/timezone.d.ts +319 -0
  109. package/dist/decorators/trigger.d.ts +50 -0
  110. package/dist/decorators/uuid.d.ts +102 -0
  111. package/dist/decorators/view.d.ts +213 -0
  112. package/dist/diagrams/chen-diagram.d.ts +70 -0
  113. package/dist/diagrams/chen-diagram.js +33 -31
  114. package/dist/diagrams/class-diagram.d.ts +78 -0
  115. package/dist/diagrams/class-diagram.js +23 -27
  116. package/dist/diagrams/dependency-diagram.d.ts +82 -0
  117. package/dist/diagrams/dependency-diagram.js +18 -9
  118. package/dist/diagrams/er-diagram.d.ts +82 -0
  119. package/dist/diagrams/er-diagram.js +174 -231
  120. package/dist/diagrams/flow-diagram.d.ts +70 -0
  121. package/dist/diagrams/flow-diagram.js +23 -18
  122. package/dist/diagrams/gantt-diagram.d.ts +67 -0
  123. package/dist/diagrams/gantt-diagram.js +20 -18
  124. package/dist/diagrams/index-diagram.d.ts +61 -0
  125. package/dist/diagrams/index-diagram.js +36 -31
  126. package/dist/diagrams/index.d.ts +155 -0
  127. package/dist/diagrams/index.js +7 -1
  128. package/dist/diagrams/migration-diagram.d.ts +67 -0
  129. package/dist/diagrams/migration-diagram.js +45 -57
  130. package/dist/diagrams/model-diagram.d.ts +85 -0
  131. package/dist/diagrams/model-diagram.js +225 -287
  132. package/dist/diagrams/package-diagram.d.ts +69 -0
  133. package/dist/diagrams/package-diagram.js +30 -32
  134. package/dist/diagrams/palette.d.ts +138 -0
  135. package/dist/diagrams/palette.js +134 -25
  136. package/dist/diagrams/relational-diagram.d.ts +82 -0
  137. package/dist/diagrams/relational-diagram.js +51 -59
  138. package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
  139. package/dist/diagrams/schemadoc-diagram.js +36 -28
  140. package/dist/diagrams/sequence-diagram.d.ts +61 -0
  141. package/dist/diagrams/sequence-diagram.js +20 -11
  142. package/dist/diagrams/state-diagram.d.ts +85 -0
  143. package/dist/diagrams/state-diagram.js +21 -17
  144. package/dist/diagrams/svg-dom.d.ts +62 -0
  145. package/dist/diagrams/svg-dom.js +11 -0
  146. package/dist/diagrams/tree-diagram.d.ts +47 -0
  147. package/dist/diagrams/tree-diagram.js +19 -10
  148. package/dist/dialects/clickhouse/index.d.ts +660 -0
  149. package/dist/dialects/clickhouse/index.js +107 -2
  150. package/dist/dialects/cockroachdb/index.d.ts +1708 -0
  151. package/dist/dialects/cockroachdb/index.js +139 -10
  152. package/dist/dialects/cratedb/index.d.ts +262 -0
  153. package/dist/dialects/cratedb/index.js +148 -0
  154. package/dist/dialects/databricks/index.d.ts +397 -0
  155. package/dist/dialects/databricks/index.js +233 -11
  156. package/dist/dialects/db2/index.d.ts +729 -0
  157. package/dist/dialects/db2/index.js +152 -2
  158. package/dist/dialects/dialect.d.ts +1653 -0
  159. package/dist/dialects/duckdb/index.d.ts +440 -0
  160. package/dist/dialects/duckdb/index.js +21 -37
  161. package/dist/dialects/exasol/index.d.ts +197 -0
  162. package/dist/dialects/exasol/index.js +14 -0
  163. package/dist/dialects/firebird/index.d.ts +286 -0
  164. package/dist/dialects/firebird/index.js +135 -0
  165. package/dist/dialects/greenplum/index.d.ts +336 -0
  166. package/dist/dialects/greenplum/index.js +168 -0
  167. package/dist/dialects/hana/index.d.ts +512 -0
  168. package/dist/dialects/hana/index.js +17 -35
  169. package/dist/dialects/mariadb/index.d.ts +1241 -0
  170. package/dist/dialects/mariadb/index.js +181 -43
  171. package/dist/dialects/mssql/index.d.ts +729 -0
  172. package/dist/dialects/mssql/index.js +76 -7
  173. package/dist/dialects/mysql/index.d.ts +1233 -0
  174. package/dist/dialects/mysql/index.js +87 -19
  175. package/dist/dialects/oracle/index.d.ts +1222 -0
  176. package/dist/dialects/oracle/index.js +210 -9
  177. package/dist/dialects/postgres/index.d.ts +1598 -0
  178. package/dist/dialects/postgres/index.js +34 -13
  179. package/dist/dialects/query-stream-helper.d.ts +58 -0
  180. package/dist/dialects/questdb/index.d.ts +430 -0
  181. package/dist/dialects/questdb/index.js +292 -0
  182. package/dist/dialects/redshift/index.d.ts +933 -0
  183. package/dist/dialects/redshift/index.js +17 -5
  184. package/dist/dialects/singlestore/index.d.ts +233 -0
  185. package/dist/dialects/singlestore/index.js +53 -0
  186. package/dist/dialects/snowflake/index.d.ts +727 -0
  187. package/dist/dialects/snowflake/index.js +154 -5
  188. package/dist/dialects/spanner/index.d.ts +660 -0
  189. package/dist/dialects/spanner/index.js +43 -21
  190. package/dist/dialects/sqlite/index.d.ts +1133 -0
  191. package/dist/dialects/sqlite/index.js +168 -30
  192. package/dist/dialects/tidb/index.d.ts +226 -0
  193. package/dist/dialects/tidb/index.js +10 -0
  194. package/dist/dialects/timescaledb/index.d.ts +286 -0
  195. package/dist/dialects/timescaledb/index.js +179 -0
  196. package/dist/dialects/trino/index.d.ts +230 -0
  197. package/dist/dialects/trino/index.js +85 -10
  198. package/dist/dialects/turso/index.d.ts +98 -0
  199. package/dist/dialects/turso/index.js +10 -0
  200. package/dist/dialects/vertica/index.d.ts +321 -0
  201. package/dist/dialects/vertica/index.js +161 -0
  202. package/dist/dialects/yugabytedb/index.d.ts +276 -0
  203. package/dist/dialects/yugabytedb/index.js +121 -0
  204. package/dist/errors/index.d.ts +378 -0
  205. package/dist/errors/index.js +29 -1
  206. package/dist/errors/utils.d.ts +53 -0
  207. package/dist/errors.d.ts +5 -0
  208. package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
  209. package/dist/extensions/catalog/mssql-features.d.ts +20 -0
  210. package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
  211. package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
  212. package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
  213. package/dist/extensions/index.d.ts +34 -0
  214. package/dist/extensions/types.d.ts +43 -0
  215. package/dist/external-fields/adapters.d.ts +50 -0
  216. package/dist/external-fields/adapters.js +227 -0
  217. package/dist/external-fields/decorator.d.ts +77 -0
  218. package/dist/external-fields/decorator.js +80 -0
  219. package/dist/external-fields/index.d.ts +10 -0
  220. package/dist/external-fields/index.js +19 -0
  221. package/dist/external-fields/runtime.d.ts +39 -0
  222. package/dist/external-fields/runtime.js +221 -0
  223. package/dist/foreign-data.d.ts +168 -0
  224. package/dist/graph/base-graph-dialect.d.ts +250 -0
  225. package/dist/graph/base-graph-dialect.js +539 -0
  226. package/dist/graph/dgraph/index.d.ts +65 -0
  227. package/dist/graph/dgraph/index.js +559 -0
  228. package/dist/graph/gremlin/index.d.ts +59 -0
  229. package/dist/graph/gremlin/index.js +378 -0
  230. package/dist/graph/index.d.ts +60 -0
  231. package/dist/graph/index.js +67 -0
  232. package/dist/graph/neo4j/index.d.ts +50 -0
  233. package/dist/graph/neo4j/index.js +462 -0
  234. package/dist/graph/types.d.ts +213 -0
  235. package/dist/graph/types.js +234 -0
  236. package/dist/hooks/hooks-manager.d.ts +189 -0
  237. package/dist/hooks/index.d.ts +8 -0
  238. package/dist/index.d.ts +713 -0
  239. package/dist/index.js +36 -4
  240. package/dist/logging.d.ts +183 -0
  241. package/dist/migrations/index.d.ts +9 -0
  242. package/dist/migrations/migration.d.ts +143 -0
  243. package/dist/migrations/migrator.d.ts +199 -0
  244. package/dist/migrations/prormmigration.d.ts +131 -0
  245. package/dist/migrations/query-interface.d.ts +335 -0
  246. package/dist/migrations/seeder.d.ts +167 -0
  247. package/dist/models/associations.d.ts +131 -0
  248. package/dist/models/associations.js +7 -2
  249. package/dist/models/constraints.d.ts +175 -0
  250. package/dist/models/data-types.d.ts +1656 -0
  251. package/dist/models/decorators.d.ts +328 -0
  252. package/dist/models/decorators.js +61 -82
  253. package/dist/models/eager-load.d.ts +86 -0
  254. package/dist/models/eager-load.js +369 -0
  255. package/dist/models/index.d.ts +13 -0
  256. package/dist/models/indexes.d.ts +325 -0
  257. package/dist/models/methods.d.ts +419 -0
  258. package/dist/models/model-manager.d.ts +76 -0
  259. package/dist/models/model.d.ts +820 -0
  260. package/dist/models/model.js +15 -101
  261. package/dist/models/operators.d.ts +29 -0
  262. package/dist/models/scopes.d.ts +71 -0
  263. package/dist/models/typescript-types.d.ts +177 -0
  264. package/dist/nosql/aerospike/index.d.ts +126 -0
  265. package/dist/nosql/allegrograph/index.d.ts +86 -0
  266. package/dist/nosql/arangodb/index.d.ts +285 -0
  267. package/dist/nosql/arangodb/index.js +274 -2
  268. package/dist/nosql/arangodb/where.d.ts +38 -0
  269. package/dist/nosql/arangodb/where.js +94 -0
  270. package/dist/nosql/azure-blob/index.d.ts +104 -0
  271. package/dist/nosql/beanstalkd/index.d.ts +88 -0
  272. package/dist/nosql/beequeue/index.d.ts +99 -0
  273. package/dist/nosql/bigchaindb/index.d.ts +113 -0
  274. package/dist/nosql/bigtable/index.d.ts +144 -0
  275. package/dist/nosql/blazegraph/index.d.ts +88 -0
  276. package/dist/nosql/bullmq/index.d.ts +83 -0
  277. package/dist/nosql/cassandra/index.d.ts +119 -0
  278. package/dist/nosql/chroma/index.d.ts +151 -0
  279. package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
  280. package/dist/nosql/coherence/index.d.ts +91 -0
  281. package/dist/nosql/cosmosdb/index.d.ts +78 -0
  282. package/dist/nosql/couchbase/index.d.ts +103 -0
  283. package/dist/nosql/dax/index.d.ts +118 -0
  284. package/dist/nosql/deno-kv/index.d.ts +109 -0
  285. package/dist/nosql/dgraph/index.d.ts +80 -0
  286. package/dist/nosql/doris/index.d.ts +88 -0
  287. package/dist/nosql/druid/index.d.ts +95 -0
  288. package/dist/nosql/dynamodb/index.d.ts +643 -0
  289. package/dist/nosql/dynamodb/index.js +423 -0
  290. package/dist/nosql/elasticsearch/index.d.ts +239 -0
  291. package/dist/nosql/etcd/index.d.ts +243 -0
  292. package/dist/nosql/eventhubs/index.d.ts +89 -0
  293. package/dist/nosql/eventstore/index.d.ts +102 -0
  294. package/dist/nosql/faunadb/index.d.ts +141 -0
  295. package/dist/nosql/faunadb/index.js +329 -0
  296. package/dist/nosql/firestore/index.d.ts +67 -0
  297. package/dist/nosql/fluree/index.d.ts +88 -0
  298. package/dist/nosql/fuseki/index.d.ts +94 -0
  299. package/dist/nosql/gcs/index.d.ts +62 -0
  300. package/dist/nosql/gearman/index.d.ts +77 -0
  301. package/dist/nosql/geode/index.d.ts +93 -0
  302. package/dist/nosql/graphdb/index.d.ts +86 -0
  303. package/dist/nosql/graylog/index.d.ts +118 -0
  304. package/dist/nosql/gridgain/index.d.ts +78 -0
  305. package/dist/nosql/hazelcast/index.d.ts +73 -0
  306. package/dist/nosql/hbase/index.d.ts +123 -0
  307. package/dist/nosql/ignite/index.d.ts +80 -0
  308. package/dist/nosql/immudb/index.d.ts +131 -0
  309. package/dist/nosql/index.d.ts +215 -0
  310. package/dist/nosql/infinispan/index.d.ts +95 -0
  311. package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
  312. package/dist/nosql/influxdb/flux-compiler.js +170 -0
  313. package/dist/nosql/influxdb/index.d.ts +300 -0
  314. package/dist/nosql/influxdb/index.js +0 -0
  315. package/dist/nosql/kafka/index.d.ts +113 -0
  316. package/dist/nosql/keyspaces/index.d.ts +122 -0
  317. package/dist/nosql/kinesis/index.d.ts +121 -0
  318. package/dist/nosql/leveldb/index.d.ts +112 -0
  319. package/dist/nosql/leveldb/index.js +103 -1
  320. package/dist/nosql/lmdb/index.d.ts +76 -0
  321. package/dist/nosql/loki/index.d.ts +126 -0
  322. package/dist/nosql/marklogic/index.d.ts +76 -0
  323. package/dist/nosql/materialize/index.d.ts +91 -0
  324. package/dist/nosql/meilisearch/index.d.ts +76 -0
  325. package/dist/nosql/memcached/index.d.ts +138 -0
  326. package/dist/nosql/milvus/index.d.ts +167 -0
  327. package/dist/nosql/minio/index.d.ts +122 -0
  328. package/dist/nosql/momento/index.d.ts +99 -0
  329. package/dist/nosql/mongodb/index.d.ts +265 -0
  330. package/dist/nosql/mongodb/index.js +139 -0
  331. package/dist/nosql/mongodb/where.d.ts +8 -0
  332. package/dist/nosql/mongodb/where.js +181 -0
  333. package/dist/nosql/nats/index.d.ts +139 -0
  334. package/dist/nosql/nedb/index.d.ts +79 -0
  335. package/dist/nosql/neo4j/index.d.ts +217 -0
  336. package/dist/nosql/neo4j/index.js +26 -14
  337. package/dist/nosql/neptune/index.d.ts +234 -0
  338. package/dist/nosql/neptune/index.js +23 -9
  339. package/dist/nosql/nsq/index.d.ts +93 -0
  340. package/dist/nosql/opensearch/index.d.ts +97 -0
  341. package/dist/nosql/orientdb/index.d.ts +72 -0
  342. package/dist/nosql/papertrail/index.d.ts +120 -0
  343. package/dist/nosql/pinecone/index.d.ts +148 -0
  344. package/dist/nosql/pinot/index.d.ts +90 -0
  345. package/dist/nosql/pouchdb/index.d.ts +95 -0
  346. package/dist/nosql/prometheus/index.d.ts +112 -0
  347. package/dist/nosql/provendb/index.d.ts +143 -0
  348. package/dist/nosql/provendb/index.js +262 -0
  349. package/dist/nosql/pubsub/index.d.ts +83 -0
  350. package/dist/nosql/pulsar/index.d.ts +105 -0
  351. package/dist/nosql/qdrant/index.d.ts +231 -0
  352. package/dist/nosql/qldb/index.d.ts +182 -0
  353. package/dist/nosql/qldb/index.js +302 -1
  354. package/dist/nosql/r2/index.d.ts +160 -0
  355. package/dist/nosql/rabbitmq/index.d.ts +131 -0
  356. package/dist/nosql/ravendb/index.d.ts +138 -0
  357. package/dist/nosql/ravendb/index.js +323 -9
  358. package/dist/nosql/ravendb/where.d.ts +38 -0
  359. package/dist/nosql/ravendb/where.js +94 -0
  360. package/dist/nosql/redis/index.d.ts +267 -0
  361. package/dist/nosql/redis/index.js +19 -5
  362. package/dist/nosql/redpanda/index.d.ts +117 -0
  363. package/dist/nosql/resque/index.d.ts +91 -0
  364. package/dist/nosql/rethinkdb/index.d.ts +194 -0
  365. package/dist/nosql/rethinkdb/index.js +290 -0
  366. package/dist/nosql/rethinkdb/where.d.ts +38 -0
  367. package/dist/nosql/rethinkdb/where.js +94 -0
  368. package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
  369. package/dist/nosql/rocksdb/document-layer.js +338 -0
  370. package/dist/nosql/rocksdb/index.d.ts +112 -0
  371. package/dist/nosql/rocksdb/index.js +103 -1
  372. package/dist/nosql/rocksdb/where-match.d.ts +21 -0
  373. package/dist/nosql/rocksdb/where-match.js +238 -0
  374. package/dist/nosql/rockset/index.d.ts +84 -0
  375. package/dist/nosql/s3/index.d.ts +170 -0
  376. package/dist/nosql/scylladb/index.d.ts +117 -0
  377. package/dist/nosql/signoz/index.d.ts +116 -0
  378. package/dist/nosql/sns/index.d.ts +99 -0
  379. package/dist/nosql/solr/index.d.ts +129 -0
  380. package/dist/nosql/splunk/index.d.ts +125 -0
  381. package/dist/nosql/sqs/index.d.ts +116 -0
  382. package/dist/nosql/stardog/index.d.ts +86 -0
  383. package/dist/nosql/starrocks/index.d.ts +89 -0
  384. package/dist/nosql/store.d.ts +23 -0
  385. package/dist/nosql/sumologic/index.d.ts +119 -0
  386. package/dist/nosql/surrealdb/index.d.ts +156 -0
  387. package/dist/nosql/surrealdb/index.js +174 -1
  388. package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
  389. package/dist/nosql/surrealdb/query-compiler.js +193 -0
  390. package/dist/nosql/terminusdb/index.d.ts +95 -0
  391. package/dist/nosql/tigergraph/index.d.ts +314 -0
  392. package/dist/nosql/typesense/index.d.ts +82 -0
  393. package/dist/nosql/unqlite/index.d.ts +68 -0
  394. package/dist/nosql/upstash/index.d.ts +80 -0
  395. package/dist/nosql/vercel-kv/index.d.ts +82 -0
  396. package/dist/nosql/victoriametrics/index.d.ts +129 -0
  397. package/dist/nosql/virtuoso/index.d.ts +87 -0
  398. package/dist/nosql/weaviate/index.d.ts +196 -0
  399. package/dist/operators/index.d.ts +7 -0
  400. package/dist/operators.d.ts +2947 -0
  401. package/dist/operators.js +46 -1
  402. package/dist/prisma-migrate/index.d.ts +28 -0
  403. package/dist/prisma-migrate/migration-generator.d.ts +21 -0
  404. package/dist/prisma-migrate/model-generator.d.ts +12 -0
  405. package/dist/prisma-migrate/relations.d.ts +28 -0
  406. package/dist/prisma-migrate/schema-parser.d.ts +42 -0
  407. package/dist/prisma-migrate/type-mapper.d.ts +20 -0
  408. package/dist/prorm.d.ts +2093 -0
  409. package/dist/prorm.js +721 -302
  410. package/dist/query-builders/cte-builder.d.ts +104 -0
  411. package/dist/query-builders/functions/aggregate.d.ts +199 -0
  412. package/dist/query-builders/functions/conditional.d.ts +195 -0
  413. package/dist/query-builders/functions/datetime.d.ts +202 -0
  414. package/dist/query-builders/functions/fulltext.d.ts +220 -0
  415. package/dist/query-builders/functions/index.d.ts +17 -0
  416. package/dist/query-builders/functions/json.d.ts +157 -0
  417. package/dist/query-builders/functions/math.d.ts +215 -0
  418. package/dist/query-builders/functions/string.d.ts +233 -0
  419. package/dist/query-builders/functions/window.d.ts +209 -0
  420. package/dist/query-builders/include-builder.d.ts +85 -0
  421. package/dist/query-builders/index-expression-builder.d.ts +153 -0
  422. package/dist/query-builders/index.d.ts +121 -0
  423. package/dist/query-builders/index.js +10 -0
  424. package/dist/query-builders/insert-builder.d.ts +62 -0
  425. package/dist/query-builders/model-helpers.d.ts +28 -0
  426. package/dist/query-builders/order-limit-builder.d.ts +84 -0
  427. package/dist/query-builders/sql-compiler.d.ts +562 -0
  428. package/dist/query-builders/subquery-builder.d.ts +133 -0
  429. package/dist/query-builders/update-builder.d.ts +71 -0
  430. package/dist/query-builders/view-builder.d.ts +189 -0
  431. package/dist/query-builders/where-builder.d.ts +124 -0
  432. package/dist/query-interface.d.ts +407 -0
  433. package/dist/query-interface.js +84 -0
  434. package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
  435. package/dist/query-optimizers/explain-plans.d.ts +187 -0
  436. package/dist/query-optimizers/index.d.ts +27 -0
  437. package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
  438. package/dist/query-optimizers/query-hints.d.ts +201 -0
  439. package/dist/query-optimizers/query-optimizer.d.ts +162 -0
  440. package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
  441. package/dist/replica-manager.d.ts +235 -0
  442. package/dist/schema/index.d.ts +7 -0
  443. package/dist/schema/migration-generator.d.ts +74 -0
  444. package/dist/schema/schema-differ.d.ts +114 -0
  445. package/dist/schema/types.d.ts +246 -0
  446. package/dist/schema-objects.d.ts +78 -0
  447. package/dist/schema-objects.js +203 -0
  448. package/dist/sql-constants.d.ts +240 -0
  449. package/dist/sqlite-advanced.d.ts +572 -0
  450. package/dist/streams/index.d.ts +5 -0
  451. package/dist/streams/transforms.d.ts +120 -0
  452. package/dist/transaction.d.ts +221 -0
  453. package/dist/types/index.d.ts +3123 -0
  454. package/dist/user-management.d.ts +141 -0
  455. package/dist/utils/date.d.ts +149 -0
  456. package/dist/utils/index.d.ts +359 -0
  457. package/dist/utils/string.d.ts +88 -0
  458. package/dist/validators/index.d.ts +7 -0
  459. package/dist/validators/validator.d.ts +306 -0
  460. package/package.json +20 -5
@@ -0,0 +1,116 @@
1
+ import type { NoSqlStore } from '../store';
2
+ /** A message accepted by `publish()`: raw string/Buffer or a JSON-serializable value. */
3
+ export type SqsMessage = string | Buffer | Record<string, unknown> | unknown[];
4
+ /**
5
+ * A loosely-typed handle to an AWS v3 `SQSClient` (or any object exposing a
6
+ * compatible `send(command)` method). Tests inject a mock matching this shape.
7
+ */
8
+ export interface SqsClientLike {
9
+ send(command: unknown): Promise<any>;
10
+ destroy?(): void;
11
+ }
12
+ /** Connection options for `SqsStore`. */
13
+ export interface SqsStoreOptions {
14
+ /** AWS region, e.g. 'us-east-1'. */
15
+ region?: string;
16
+ /** Static credentials. Omit to use the default AWS credential provider chain. */
17
+ credentials?: {
18
+ accessKeyId: string;
19
+ secretAccessKey: string;
20
+ sessionToken?: string;
21
+ };
22
+ /** Override the service endpoint (e.g. 'http://localhost:4566' for LocalStack). */
23
+ endpoint?: string;
24
+ /**
25
+ * A pre-built `SQSClient` (or compatible object). When provided, `connect()`
26
+ * uses it directly and does NOT require the SDK — this is how tests inject a
27
+ * mock client.
28
+ */
29
+ client?: SqsClientLike;
30
+ }
31
+ /** Options for `publish()` (`SendMessage`). */
32
+ export interface SendMessageOptions {
33
+ /** Delay before the message becomes visible, in seconds. */
34
+ delaySeconds?: number;
35
+ /** FIFO group id (required for FIFO queues). */
36
+ messageGroupId?: string;
37
+ /** FIFO dedupe id. */
38
+ messageDeduplicationId?: string;
39
+ /** Message attributes, passed straight through. */
40
+ messageAttributes?: Record<string, unknown>;
41
+ }
42
+ /** Result of `publish()`. */
43
+ export interface SendMessageResult {
44
+ messageId?: string;
45
+ sequenceNumber?: string;
46
+ }
47
+ /** Options for `createQueue()`. */
48
+ export interface CreateQueueOptions {
49
+ /** Queue attributes (e.g. `{ FifoQueue: 'true' }`), passed straight through. */
50
+ attributes?: Record<string, string>;
51
+ /** Cost-allocation / metadata tags. */
52
+ tags?: Record<string, string>;
53
+ }
54
+ /** Options for `subscribe()`. */
55
+ export interface SqsSubscribeOptions {
56
+ /** Max messages per `ReceiveMessage` call (1-10). Defaults to 10. */
57
+ maxMessages?: number;
58
+ /** Long-poll wait time, in seconds (0-20). Defaults to 20. */
59
+ waitTimeSeconds?: number;
60
+ /** Visibility timeout for received messages, in seconds. */
61
+ visibilityTimeout?: number;
62
+ /**
63
+ * Delete (ack) each message after the handler resolves. Defaults to true;
64
+ * set false to leave deletion to the handler (at-least-once redelivery).
65
+ */
66
+ autoDelete?: boolean;
67
+ /** Delay between empty polls, in ms. Defaults to 0 (SQS long-polling already waits). */
68
+ pollIntervalMs?: number;
69
+ }
70
+ /** A handle returned by `subscribe()`; call `stop()` to end the receive loop. */
71
+ export interface SqsSubscription {
72
+ stop(): void;
73
+ }
74
+ /**
75
+ * `SqsStore` wraps an AWS v3 `SQSClient` and exposes queue sending, a
76
+ * receive-and-ack poll loop, and queue administration.
77
+ */
78
+ export declare class SqsStore implements NoSqlStore {
79
+ readonly name = "sqs";
80
+ readonly library = "@aws-sdk/client-sqs";
81
+ private readonly options;
82
+ private client;
83
+ private aws;
84
+ private connected;
85
+ /** Active subscriptions, tracked so `disconnect()` stops their receive loops. */
86
+ private readonly subscriptions;
87
+ constructor(options?: SqsStoreOptions);
88
+ connect(): Promise<void>;
89
+ private tryLoadSdk;
90
+ disconnect(): Promise<void>;
91
+ isConnected(): boolean;
92
+ /** Returns the underlying `SQSClient` (loosely typed) for anything not wrapped here. */
93
+ getClient(): SqsClientLike;
94
+ private requireClient;
95
+ private command;
96
+ private wrapError;
97
+ /**
98
+ * `SendMessage` — publish one `message` to the queue at `queueUrl`. The
99
+ * message is encoded to a string body (string as-is, Buffer → UTF-8, else
100
+ * JSON). Returns the message id (and FIFO sequence number, if any).
101
+ */
102
+ publish(queueUrl: string, message: SqsMessage, options?: SendMessageOptions): Promise<SendMessageResult>;
103
+ /** `CreateQueue` — create a queue by name. Returns its URL. */
104
+ createQueue(name: string, options?: CreateQueueOptions): Promise<string | undefined>;
105
+ /** Alias for `createQueue()`, matching the common store surface. */
106
+ createTopic(name: string, options?: CreateQueueOptions): Promise<string | undefined>;
107
+ /**
108
+ * Subscribe to the queue at `queueUrl`: long-poll `ReceiveMessage` in a loop,
109
+ * invoke `handler` once per message, and (by default) `DeleteMessage` to ack
110
+ * each message after the handler resolves. Returns a subscription whose
111
+ * `stop()` ends the loop; the subscription is tracked so `disconnect()` stops
112
+ * it. The loop runs detached (not awaited); this method resolves immediately.
113
+ */
114
+ subscribe(queueUrl: string, handler: (message: any) => void | Promise<void>, options?: SqsSubscribeOptions): SqsSubscription;
115
+ }
116
+ export default SqsStore;
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Stardog store implementation.
3
+ *
4
+ * Stardog is an enterprise knowledge-graph / RDF triplestore. It speaks the
5
+ * SPARQL 1.1 Protocol over HTTP: a database exposes a query endpoint
6
+ * (`/<db>/query`) and an update endpoint (`/<db>/update`). There is no
7
+ * SQL-shaped surface, so it implements the minimal `NoSqlStore` marker
8
+ * interface (`src/nosql/store.ts`) rather than the SQL `Dialect` interface.
9
+ *
10
+ * ## Driver strategy - prefer HTTP over `fetch`
11
+ *
12
+ * Stardog publishes a `stardog` npm client, but this store prefers the plain
13
+ * SPARQL/HTTP protocol over the global `fetch` so it has no hard dependency
14
+ * (`library='fetch'`). For tests (and for callers who want their own
15
+ * transport) an alternative client can be injected via
16
+ * `StardogStoreOptions.client`; when omitted, a tiny internal client over
17
+ * `fetch` + `endpoint` is built at connect time.
18
+ *
19
+ * ## Surface
20
+ *
21
+ * - `query(sparql)` -> POST to `/<db>/query`, returns bindings
22
+ * - `update(sparql)` -> POST to `/<db>/update`
23
+ * - `ask(sparql)` -> POST an ASK query, returns the boolean
24
+ * - `add(triples)` -> `INSERT DATA { ... }` update
25
+ * - `drop(graph?)` -> `DROP GRAPH <g>` / `DROP ALL` update
26
+ */
27
+ import { NoSqlStore } from '../store';
28
+ /** Default Stardog base URL. */
29
+ export declare const DEFAULT_STARDOG_ENDPOINT = "http://localhost:5820";
30
+ /** Default database name. */
31
+ export declare const DEFAULT_STARDOG_DATABASE = "db";
32
+ /** The subset of a SPARQL HTTP client this store needs. */
33
+ export interface SparqlHttpClient {
34
+ /** POST a SPARQL query to `path`; returns the parsed results envelope. */
35
+ query(path: string, sparql: string): Promise<any>;
36
+ /** POST a SPARQL update to `path`. */
37
+ update(path: string, sparql: string): Promise<any>;
38
+ }
39
+ /** Connection options for `StardogStore`. */
40
+ export interface StardogStoreOptions {
41
+ /** Base URL of the Stardog server. Defaults to `http://localhost:5820`. */
42
+ endpoint?: string;
43
+ /** Database name. Defaults to `db`. */
44
+ database?: string;
45
+ /** Optional pre-built SPARQL HTTP client (used verbatim; `endpoint` ignored). */
46
+ client?: SparqlHttpClient;
47
+ /** Extra HTTP headers sent with every internal-client request. */
48
+ headers?: Record<string, string>;
49
+ }
50
+ /** Build a `fetch`-backed SPARQL client for the given endpoint. */
51
+ export declare function createFetchClient(endpoint: string, headers?: Record<string, string>): SparqlHttpClient;
52
+ /**
53
+ * `StardogStore` wraps a Stardog database's SPARQL query/update endpoints
54
+ * behind the `NoSqlStore` lifecycle.
55
+ */
56
+ export declare class StardogStore implements NoSqlStore {
57
+ readonly name = "stardog";
58
+ readonly library = "fetch";
59
+ private readonly endpoint;
60
+ private readonly database;
61
+ private readonly injectedClient?;
62
+ private readonly headers?;
63
+ private client;
64
+ private connected;
65
+ constructor(options?: StardogStoreOptions);
66
+ /** SPARQL query endpoint path for the configured database. */
67
+ get queryPath(): string;
68
+ /** SPARQL update endpoint path for the configured database. */
69
+ get updatePath(): string;
70
+ connect(): Promise<void>;
71
+ disconnect(): Promise<void>;
72
+ isConnected(): boolean;
73
+ /** Returns the underlying (internal or injected) SPARQL HTTP client. */
74
+ getClient(): SparqlHttpClient;
75
+ private requireClient;
76
+ /** Runs a SPARQL SELECT/CONSTRUCT query; returns the result bindings. */
77
+ query(sparql: string): Promise<any[]>;
78
+ /** Runs a SPARQL ASK query; returns the boolean answer. */
79
+ ask(sparql: string): Promise<boolean>;
80
+ /** Runs a SPARQL UPDATE (INSERT/DELETE/DROP/...). */
81
+ update(sparql: string): Promise<any>;
82
+ /** Inserts triples via `INSERT DATA { ... }`. Accepts a triple string or array. */
83
+ add(triples: string | string[], graph?: string): Promise<any>;
84
+ /** Drops a named graph, or all graphs when no graph is given. */
85
+ drop(graph?: string): Promise<any>;
86
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * StarRocks store.
3
+ *
4
+ * StarRocks is a high-performance real-time analytical (MPP OLAP) database.
5
+ * Crucially it speaks the **MySQL wire protocol**, so it is queried with the
6
+ * `mysql2` driver over a normal MySQL connection/pool. Despite the MySQL
7
+ * wire, StarRocks is a columnar analytics engine (no OLTP transactions, no
8
+ * row-level UPDATE/DELETE in the usual sense on most table types), which does
9
+ * not fit this ORM's SQL `Dialect` abstraction cleanly, so it is modelled as
10
+ * a `NoSqlStore` (`src/nosql/store.ts`) exposing a direct `query`/`ingest`
11
+ * surface.
12
+ *
13
+ * ## Driver: `mysql2` (MySQL-wire)
14
+ *
15
+ * The `mysql2` package is an optional peer dependency, lazily `require`d
16
+ * inside `connect()` so importing this module never forces it to be
17
+ * installed. Tests inject a pre-built mock connection via
18
+ * `StarrocksStoreOptions.client`, which skips the `require` entirely.
19
+ *
20
+ * ## Ingestion
21
+ *
22
+ * `ingest()` here performs a batched `INSERT` over the MySQL wire, which is
23
+ * convenient for small/medium loads. For high-throughput loading StarRocks
24
+ * also offers **Stream Load** (an HTTP `PUT /api/{db}/{table}/_stream_load`
25
+ * endpoint). Stream Load is intentionally *not* wired here (it is a separate
26
+ * HTTP transport, optional); use the `mysql2`-based `ingest()` for wire-level
27
+ * inserts, or POST to the Stream Load endpoint yourself for bulk pipelines.
28
+ */
29
+ import type { NoSqlStore } from '../store';
30
+ /**
31
+ * Minimal structural type for the pieces of a `mysql2/promise` connection (or
32
+ * pool) this store uses. Kept local so this module type-checks without the
33
+ * optional driver installed. `query()` resolves to `[rows, fields]`.
34
+ */
35
+ export interface MysqlConnectionLike {
36
+ query(sql: string, params?: unknown[]): Promise<[any, any]>;
37
+ end?(): Promise<void>;
38
+ }
39
+ /** Connection options for `StarrocksStore` (map onto `mysql2` connection config). */
40
+ export interface StarrocksStoreOptions {
41
+ host?: string;
42
+ port?: number;
43
+ user?: string;
44
+ password?: string;
45
+ database?: string;
46
+ /** Escape hatch for any other `mysql2` connection option. */
47
+ connectionOptions?: Record<string, unknown>;
48
+ /**
49
+ * A pre-built `mysql2` connection/pool (or compatible mock). When provided,
50
+ * `connect()` uses it directly and skips `require('mysql2/promise')`. This
51
+ * is how tests inject a mock without the real driver installed.
52
+ */
53
+ client?: MysqlConnectionLike;
54
+ }
55
+ /**
56
+ * `StarrocksStore` wraps a `mysql2` connection to a StarRocks frontend and
57
+ * exposes `query(sql, params)` for reads/DDL and `ingest(table, rows)` for
58
+ * batched wire-level inserts.
59
+ */
60
+ export declare class StarrocksStore implements NoSqlStore {
61
+ readonly name = "starrocks";
62
+ readonly library = "mysql2";
63
+ private readonly options;
64
+ private client;
65
+ private connected;
66
+ constructor(options?: StarrocksStoreOptions);
67
+ connect(): Promise<void>;
68
+ disconnect(): Promise<void>;
69
+ isConnected(): boolean;
70
+ /** Returns the underlying `mysql2` connection for anything not wrapped here. */
71
+ getClient(): MysqlConnectionLike;
72
+ private requireClient;
73
+ /**
74
+ * Execute a SQL statement over the MySQL wire with optional positional
75
+ * `params` and return the result rows (the first element of `mysql2`'s
76
+ * `[rows, fields]` tuple).
77
+ */
78
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<T[]>;
79
+ /**
80
+ * Batch-insert `rows` into `table` via a single parameterized
81
+ * `INSERT INTO table (cols) VALUES (...)` over the MySQL wire. Columns are
82
+ * taken from the first row. Returns the driver result (`OkPacket`).
83
+ *
84
+ * For high-throughput bulk loading, use StarRocks Stream Load (HTTP) instead
85
+ * — see the module header.
86
+ */
87
+ ingest(table: string, rows: Array<Record<string, unknown>>): Promise<any>;
88
+ }
89
+ export default StarrocksStore;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Base interface for NoSQL stores.
3
+ *
4
+ * NoSQL engines (document stores, key-value caches, partition-key stores)
5
+ * do not share the SQL-shaped `Dialect` interface (no `query(sql)`, no
6
+ * identifier escaping, no DDL). `NoSqlStore` is intentionally minimal:
7
+ * connection lifecycle plus a `raw` escape hatch. Each store's real API
8
+ * surface (find/insert/update for Mongo, hash/list/set ops for Redis,
9
+ * item CRUD for DynamoDB) lives on its own class, not on this interface,
10
+ * because forcing them into one shared query shape would misrepresent
11
+ * what each engine can actually do.
12
+ */
13
+ export interface NoSqlStore {
14
+ /** The name of the store (e.g. 'mongodb', 'redis', 'dynamodb') */
15
+ readonly name: string;
16
+ /** The client library being used */
17
+ readonly library: string;
18
+ connect(): Promise<void>;
19
+ disconnect(): Promise<void>;
20
+ isConnected(): boolean;
21
+ /** Access the underlying native client for operations not wrapped here */
22
+ getClient(): unknown;
23
+ }
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Sumo Logic store implementation.
3
+ *
4
+ * Sumo Logic is a cloud log-management and analytics platform. Logs are
5
+ * ingested by POSTing to an HTTP Source collector URL, and searched with the
6
+ * Search Job API (create a job, then poll for status/messages). There is no
7
+ * SQL-shaped query surface, no row-level UPDATE/DELETE, and no identifier
8
+ * escaping, so Sumo Logic does not fit the SQL `Dialect` interface
9
+ * (`src/dialects/dialect.ts`). This class implements the minimal
10
+ * `NoSqlStore` marker interface (`src/nosql/store.ts`) and exposes Sumo's
11
+ * ingest/search API.
12
+ *
13
+ * ## No canonical driver - HTTP over `fetch`
14
+ *
15
+ * Sumo Logic has no single canonical npm client; it is an HTTP/JSON API.
16
+ * This store talks to it with the global `fetch` (so `library` is
17
+ * `'fetch'`). For tests (and custom transports) an alternative HTTP client
18
+ * can be injected via `SumoLogicStoreOptions.client`.
19
+ *
20
+ * Ingest and search live on different hosts: ingest targets the per-source
21
+ * `collectorURL`, while search targets the regional `apiURL`. The internal
22
+ * client resolves absolute URLs verbatim, so `push()` posts to the full
23
+ * collector URL while the search/metadata methods use relative API paths.
24
+ *
25
+ * ## Endpoints wrapped
26
+ *
27
+ * - `push(lines)` -> `POST <collectorURL>` (HTTP Source ingest)
28
+ * - `query(q, opts?)` -> `POST /api/v1/search/jobs` (create search job)
29
+ * - `messages(id)` -> `GET /api/v1/search/jobs/<id>/messages`
30
+ * - `labels()` -> `GET /api/v1/fields` (field names)
31
+ * - `streams()` -> `GET /api/v1/collectors` (collectors)
32
+ */
33
+ import { NoSqlStore } from '../store';
34
+ /** Default Sumo Logic API base URL. */
35
+ export declare const DEFAULT_SUMOLOGIC_API_URL = "https://api.sumologic.com";
36
+ /** Query-string parameter value(s). `undefined` values are dropped. */
37
+ export type QueryParams = Record<string, string | string[] | undefined>;
38
+ /**
39
+ * The subset of an HTTP client this store needs. The internal `fetch`-based
40
+ * client implements this; tests inject a mock with the same shape.
41
+ */
42
+ export interface SumoLogicHttpClient {
43
+ /** Issue a GET and return the parsed JSON response body. */
44
+ get(path: string, params?: QueryParams): Promise<any>;
45
+ /** Issue a POST with a text body and return the parsed JSON/text response. */
46
+ post(path: string, body: string, contentType?: string): Promise<any>;
47
+ }
48
+ /** Connection options for `SumoLogicStore`. */
49
+ export interface SumoLogicStoreOptions {
50
+ /** Base URL for the Search Job / metadata API. Defaults to `https://api.sumologic.com`. */
51
+ apiURL?: string;
52
+ /** Full HTTP Source collector URL that `push()` ingests to. */
53
+ collectorURL?: string;
54
+ /**
55
+ * Optional pre-built HTTP client. When provided it is used verbatim and
56
+ * `apiURL` is ignored; otherwise an internal `fetch`-based client is
57
+ * built against `apiURL` on `connect()`.
58
+ */
59
+ client?: SumoLogicHttpClient;
60
+ /** Extra HTTP headers (e.g. basic-auth `Authorization`) sent with every request. */
61
+ headers?: Record<string, string>;
62
+ }
63
+ /** Options for creating a search job. */
64
+ export interface SumoLogicQueryOptions {
65
+ /** Start of the search window (ISO 8601 or epoch ms). */
66
+ from?: string | number;
67
+ /** End of the search window (ISO 8601 or epoch ms). */
68
+ to?: string | number;
69
+ /** Time zone for relative expressions (e.g. `UTC`). */
70
+ timeZone?: string;
71
+ /** Whether the query is by receipt time rather than message time. */
72
+ byReceiptTime?: boolean;
73
+ }
74
+ /** Build a `fetch`-backed client for the given base URL. */
75
+ export declare function createFetchClient(baseURL: string, headers?: Record<string, string>): SumoLogicHttpClient;
76
+ /**
77
+ * `SumoLogicStore` wraps Sumo Logic's HTTP Source ingest and its Search Job
78
+ * API (create job + fetch messages) plus field/collector metadata behind the
79
+ * `NoSqlStore` lifecycle.
80
+ */
81
+ export declare class SumoLogicStore implements NoSqlStore {
82
+ readonly name = "sumologic";
83
+ readonly library = "fetch";
84
+ private readonly apiURL;
85
+ private readonly collectorURL?;
86
+ private readonly injectedClient?;
87
+ private readonly headers?;
88
+ private client;
89
+ private connected;
90
+ constructor(options?: SumoLogicStoreOptions);
91
+ connect(): Promise<void>;
92
+ disconnect(): Promise<void>;
93
+ isConnected(): boolean;
94
+ /** Returns the underlying (internal or injected) HTTP client. */
95
+ getClient(): SumoLogicHttpClient;
96
+ private requireClient;
97
+ private doGet;
98
+ /**
99
+ * Ingests raw log lines by POSTing them (newline-delimited) to the
100
+ * configured HTTP Source `collectorURL`. Accepts a single string or an
101
+ * array of lines (joined with newlines).
102
+ */
103
+ push(lines: string | string[]): Promise<any>;
104
+ /**
105
+ * Creates a search job via `POST /api/v1/search/jobs`. Returns the parsed
106
+ * response (typically `{ id }`); use `messages(id)` to fetch results once
107
+ * the job completes.
108
+ */
109
+ query(q: string, options?: SumoLogicQueryOptions): Promise<any>;
110
+ /** Fetches messages for a completed search job via `GET /api/v1/search/jobs/<id>/messages`. */
111
+ messages(jobId: string, offset?: number, limit?: number): Promise<any>;
112
+ /** Fetches the status of a search job via `GET /api/v1/search/jobs/<id>`. */
113
+ jobStatus(jobId: string): Promise<any>;
114
+ /** Lists the configured fields via `GET /api/v1/fields`. */
115
+ labels(): Promise<any>;
116
+ /** Lists the collectors via `GET /api/v1/collectors`. */
117
+ streams(): Promise<any>;
118
+ }
119
+ export default SumoLogicStore;
@@ -0,0 +1,156 @@
1
+ /**
2
+ * SurrealDB store implementation for the Prorm NoSQL layer.
3
+ *
4
+ * SurrealDB is a multi-model database with its own record/graph model and
5
+ * the SurrealQL query language, so it does not fit the SQL-shaped `Dialect`
6
+ * interface (no identifier escaping, no SQL DDL). This class implements the
7
+ * minimal `NoSqlStore` marker interface for connection lifecycle and
8
+ * otherwise exposes SurrealDB's real API surface directly: record CRUD over
9
+ * "things" (table or `table:id` record identifiers) plus raw SurrealQL via
10
+ * `query()`.
11
+ *
12
+ * Uses the `surrealdb` driver. The driver is loaded lazily inside
13
+ * `connect()` (via `require`) so importing this module never forces the
14
+ * optional `surrealdb` dependency to be installed. For testing (or to reuse
15
+ * an already-configured connection) a pre-built `Surreal` instance can be
16
+ * injected through {@link SurrealStoreOptions.client}, in which case the
17
+ * `require` is skipped entirely.
18
+ */
19
+ import { NoSqlStore } from '../store';
20
+ import { type WhereClause, type OrderSpec } from '../rocksdb/where-match';
21
+ export { compileWhere, compileOrder, PushdownUnsupported } from './query-compiler';
22
+ export type { WhereClause, OrderSpec } from '../rocksdb/where-match';
23
+ /** Options for {@link SurrealStore.findAll} / {@link SurrealStore.findOne}. */
24
+ export interface SurrealFindOptions {
25
+ where?: WhereClause;
26
+ order?: OrderSpec;
27
+ limit?: number;
28
+ offset?: number;
29
+ /** SurrealQL `FETCH` targets - dereference record links/graph edges inline. */
30
+ fetch?: string[];
31
+ }
32
+ /**
33
+ * Connection options for `SurrealStore`.
34
+ *
35
+ * `url` is the SurrealDB endpoint (e.g. `ws://127.0.0.1:8000/rpc` or
36
+ * `http://127.0.0.1:8000`). `namespace`/`database` select the namespace and
37
+ * database to `use()` after connecting. `username`/`password` are the root
38
+ * (or scoped) credentials used to `signin()`. A pre-built `Surreal` client
39
+ * can be supplied via `client` to bypass the lazy `require('surrealdb')`.
40
+ */
41
+ export interface SurrealStoreOptions {
42
+ /** SurrealDB endpoint URL, e.g. `ws://127.0.0.1:8000/rpc`. */
43
+ url: string;
44
+ /** Namespace to `use()` after connecting. */
45
+ namespace?: string;
46
+ /** Database to `use()` after connecting. */
47
+ database?: string;
48
+ /** Username for `signin()`. */
49
+ username?: string;
50
+ /** Password for `signin()`. */
51
+ password?: string;
52
+ /**
53
+ * A pre-built `Surreal` instance. When provided, `connect()` uses it
54
+ * directly (still calling `signin()`/`use()` when credentials/ns/db are
55
+ * configured) and skips `require('surrealdb')`. Primarily for tests and
56
+ * connection reuse.
57
+ */
58
+ client?: any;
59
+ }
60
+ /**
61
+ * A SurrealDB "thing": either a table name (`'user'`) to operate on every
62
+ * record in the table, or a specific record id (`'user:jane'`).
63
+ */
64
+ export type Thing = string;
65
+ /**
66
+ * `SurrealStore` wraps the `surrealdb` driver's `Surreal` client, exposing
67
+ * record CRUD (`create`/`select`/`update`/`merge`/`delete`) and raw
68
+ * SurrealQL (`query`) as a small promise-based API.
69
+ */
70
+ export declare class SurrealStore implements NoSqlStore {
71
+ readonly name = "surrealdb";
72
+ readonly library = "surrealdb";
73
+ private readonly options;
74
+ private db;
75
+ private connected;
76
+ constructor(options: SurrealStoreOptions);
77
+ connect(): Promise<void>;
78
+ disconnect(): Promise<void>;
79
+ isConnected(): boolean;
80
+ /** Returns the underlying native `Surreal` client. */
81
+ getClient(): any;
82
+ private requireClient;
83
+ private exec;
84
+ /**
85
+ * Create a record. `thing` may be a table name (`'user'`, id auto-
86
+ * generated) or a specific record id (`'user:jane'`). Passthrough to the
87
+ * driver's `Surreal.create()`.
88
+ */
89
+ create<T = unknown>(thing: Thing, data?: Record<string, unknown>): Promise<T>;
90
+ /**
91
+ * Select a record or all records in a table. Passthrough to the driver's
92
+ * `Surreal.select()`.
93
+ */
94
+ select<T = unknown>(thing: Thing): Promise<T>;
95
+ /**
96
+ * Replace the content of a record (or every record in a table).
97
+ * Passthrough to the driver's `Surreal.update()`.
98
+ */
99
+ update<T = unknown>(thing: Thing, data?: Record<string, unknown>): Promise<T>;
100
+ /**
101
+ * Merge the given data into a record (or every record in a table),
102
+ * leaving unspecified fields intact. Passthrough to the driver's
103
+ * `Surreal.merge()`.
104
+ */
105
+ merge<T = unknown>(thing: Thing, data?: Record<string, unknown>): Promise<T>;
106
+ /**
107
+ * Delete a record (or every record in a table). Passthrough to the
108
+ * driver's `Surreal.delete()`.
109
+ */
110
+ delete<T = unknown>(thing: Thing): Promise<T>;
111
+ /**
112
+ * Run a raw SurrealQL statement (or several `;`-separated statements),
113
+ * optionally binding `vars` as `$name` parameters. Returns the driver's
114
+ * result array (one entry per statement). Passthrough to the driver's
115
+ * `Surreal.query()`.
116
+ */
117
+ query<T = unknown[]>(surql: string, vars?: Record<string, unknown>): Promise<T>;
118
+ /** Unwrap the driver's per-statement query result into a row array. */
119
+ private static rows;
120
+ /**
121
+ * ORM `findAll`. Compiles `where`/`order`/`limit`/`offset` to a bound
122
+ * SurrealQL `SELECT`; on an un-pushable operator it selects the table and
123
+ * filters/sorts/paginates client-side, so the result is always correct.
124
+ */
125
+ findAll<T = Record<string, unknown>>(table: string, options?: SurrealFindOptions): Promise<T[]>;
126
+ /** Client-side fallback: fetch the table, then filter/sort/page in memory. */
127
+ private findAllClientSide;
128
+ /** ORM `findOne`: the first row matching `where` (respecting order). */
129
+ findOne<T = Record<string, unknown>>(table: string, options?: SurrealFindOptions): Promise<T | null>;
130
+ /** ORM `findByPk`: select a single `table:id` record, or `null`. */
131
+ findByPk<T = Record<string, unknown>>(table: string, id: unknown): Promise<T | null>;
132
+ /** ORM `count`: number of records matching `where`. */
133
+ count(table: string, where?: WhereClause): Promise<number>;
134
+ /** ORM `bulkCreate`: insert many records in one `INSERT` statement. */
135
+ bulkCreate<T = Record<string, unknown>>(table: string, rows: Array<Record<string, unknown>>): Promise<T[]>;
136
+ /**
137
+ * ORM `update`: merge `values` into every record matching `where` (or the
138
+ * whole table when `where` is omitted). Returns the updated records.
139
+ */
140
+ updateWhere<T = Record<string, unknown>>(table: string, values: Record<string, unknown>, where?: WhereClause): Promise<T[]>;
141
+ /**
142
+ * ORM `destroy`: delete every record matching `where` (or the whole table
143
+ * when `where` is omitted). Returns the number of records deleted.
144
+ */
145
+ destroy(table: string, where?: WhereClause): Promise<number>;
146
+ /** ORM `truncate`: delete every record in a table. */
147
+ truncate(table: string): Promise<number>;
148
+ /**
149
+ * Create a graph edge (association) between two records:
150
+ * `RELATE $from->edge->$to CONTENT $data`. This is how many-to-many /
151
+ * graph associations are expressed in SurrealDB, exposed through the ORM
152
+ * API so callers never hand-write the `RELATE` themselves.
153
+ */
154
+ relate<T = unknown>(from: string, edge: string, to: string, data?: Record<string, unknown>): Promise<T>;
155
+ }
156
+ export default SurrealStore;