ts-prorm-orm 1.1.0 → 1.2.0

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 +83 -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 +711 -0
  239. package/dist/index.js +19 -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,267 @@
1
+ /**
2
+ * Redis store implementation.
3
+ *
4
+ * Redis is a key-value store with several typed data structures (strings,
5
+ * hashes, lists, sets, sorted sets, streams) plus pub/sub and pipelining. It has no
6
+ * query language and does not fit the SQL-shaped `Dialect` interface, so
7
+ * this class implements the minimal `NoSqlStore` marker interface and
8
+ * exposes Redis's real operations grouped by data structure instead of
9
+ * forcing everything into a `query(sql)` shape.
10
+ *
11
+ * Uses the `ioredis` driver.
12
+ */
13
+ import type Redis from 'ioredis';
14
+ import type { RedisOptions, ChainableCommander } from 'ioredis';
15
+ import { NoSqlStore } from '../store';
16
+ /**
17
+ * Connection options for `RedisStore`.
18
+ *
19
+ * Accepts either a connection URL (`redis://` / `rediss://`) or standard
20
+ * ioredis `RedisOptions` (host/port/password/db/tls/etc). All of ioredis's
21
+ * `RedisOptions` fields are passed straight through.
22
+ */
23
+ export type RedisStoreOptions = ({
24
+ url: string;
25
+ } & Partial<RedisOptions>) | (RedisOptions & {
26
+ url?: undefined;
27
+ });
28
+ /** Options for `set()`. */
29
+ export interface SetOptions {
30
+ /** Expire after this many seconds. */
31
+ ex?: number;
32
+ /** Expire after this many milliseconds. */
33
+ px?: number;
34
+ /** Only set the key if it does not already exist. */
35
+ nx?: boolean;
36
+ /** Only set the key if it already exists. */
37
+ xx?: boolean;
38
+ /** Retain the key's existing TTL. */
39
+ keepttl?: boolean;
40
+ }
41
+ /** A single member/score pair for sorted-set commands. */
42
+ export interface ZMember {
43
+ score: number;
44
+ member: string;
45
+ }
46
+ /** Options for `zrange()`/`zrangebyscore()`. */
47
+ export interface ZRangeOptions {
48
+ withScores?: boolean;
49
+ /** Reverse iteration order (ZREVRANGE-equivalent behavior for zrange). */
50
+ rev?: boolean;
51
+ limit?: {
52
+ offset: number;
53
+ count: number;
54
+ };
55
+ }
56
+ /** A single Redis Stream entry: an auto/explicit ID plus its field/value pairs. */
57
+ export interface StreamEntry {
58
+ id: string;
59
+ fields: Record<string, string>;
60
+ }
61
+ /** A `xread`/`xreadgroup` result for one stream key. */
62
+ export interface StreamReadResult {
63
+ key: string;
64
+ entries: StreamEntry[];
65
+ }
66
+ /** Options for `xread()`/`xreadgroup()`. */
67
+ export interface XReadOptions {
68
+ /** Max number of entries to return per stream. */
69
+ count?: number;
70
+ /** Block for up to this many milliseconds waiting for new entries (0 = block forever). */
71
+ block?: number;
72
+ }
73
+ /** Trim strategy for `xtrim()`. */
74
+ export type XTrimStrategy = 'MAXLEN' | 'MINID';
75
+ /**
76
+ * `RedisStore` wraps an `ioredis` client and exposes Redis's data-structure
77
+ * commands (string/hash/list/set/sorted-set/stream), pub/sub, and
78
+ * pipelining as a typed, promise-based API.
79
+ */
80
+ export declare class RedisStore implements NoSqlStore {
81
+ readonly name = "redis";
82
+ readonly library = "ioredis";
83
+ private readonly options;
84
+ private client;
85
+ private subscriber;
86
+ private connected;
87
+ /**
88
+ * Per-channel handlers for the shared subscriber connection. A single
89
+ * `message` listener is attached once and dispatches to the handler
90
+ * registered for the incoming message's channel, so each `subscribe()`
91
+ * call's handler only ever receives messages for its own channel.
92
+ */
93
+ private readonly channelHandlers;
94
+ /**
95
+ * Per-pattern handlers for the shared subscriber connection, mirroring
96
+ * `channelHandlers` but for `PSUBSCRIBE`/`PUNSUBSCRIBE`.
97
+ */
98
+ private readonly patternHandlers;
99
+ constructor(options?: RedisStoreOptions);
100
+ private createClient;
101
+ connect(): Promise<void>;
102
+ disconnect(): Promise<void>;
103
+ isConnected(): boolean;
104
+ /** Returns the underlying `ioredis` client for anything not wrapped here. */
105
+ getClient(): Redis;
106
+ private requireClient;
107
+ private exec;
108
+ /** Serialize a value with `JSON.stringify` and `SET` it. */
109
+ setJSON<T>(key: string, value: T, options?: SetOptions): Promise<'OK' | null>;
110
+ /** `GET` a key and `JSON.parse` it. Returns `null` if the key is missing. */
111
+ getJSON<T>(key: string): Promise<T | null>;
112
+ get(key: string): Promise<string | null>;
113
+ set(key: string, value: string | number, options?: SetOptions): Promise<'OK' | null>;
114
+ del(...keys: string[]): Promise<number>;
115
+ exists(...keys: string[]): Promise<number>;
116
+ incr(key: string): Promise<number>;
117
+ incrby(key: string, amount: number): Promise<number>;
118
+ expire(key: string, seconds: number): Promise<number>;
119
+ ttl(key: string): Promise<number>;
120
+ hget(key: string, field: string): Promise<string | null>;
121
+ hset(key: string, fields: Record<string, string | number>): Promise<number>;
122
+ hgetall(key: string): Promise<Record<string, string>>;
123
+ hdel(key: string, ...fields: string[]): Promise<number>;
124
+ hincrby(key: string, field: string, amount: number): Promise<number>;
125
+ lpush(key: string, ...values: (string | number)[]): Promise<number>;
126
+ rpush(key: string, ...values: (string | number)[]): Promise<number>;
127
+ lrange(key: string, start: number, stop: number): Promise<string[]>;
128
+ lpop(key: string, count?: number): Promise<string | string[] | null>;
129
+ rpop(key: string, count?: number): Promise<string | string[] | null>;
130
+ sadd(key: string, ...members: string[]): Promise<number>;
131
+ srem(key: string, ...members: string[]): Promise<number>;
132
+ smembers(key: string): Promise<string[]>;
133
+ sismember(key: string, member: string): Promise<boolean>;
134
+ zadd(key: string, ...members: ZMember[]): Promise<number>;
135
+ zrange(key: string, start: number, stop: number, options?: ZRangeOptions): Promise<string[]>;
136
+ zrangebyscore(key: string, min: number | string, max: number | string, options?: Omit<ZRangeOptions, 'rev'>): Promise<string[]>;
137
+ zrem(key: string, ...members: string[]): Promise<number>;
138
+ zscore(key: string, member: string): Promise<string | null>;
139
+ /**
140
+ * `XADD` - append an entry to a stream, creating it if it doesn't exist.
141
+ * Pass `'*'` as `id` to let Redis auto-generate a monotonic
142
+ * `<ms>-<seq>` ID (the common case); returns the ID that was assigned.
143
+ */
144
+ xadd(key: string, id: string, fields: Record<string, string | number>): Promise<string>;
145
+ /** `XRANGE` - read entries with IDs between `start` and `end` (inclusive), in ID order. Use `'-'`/`'+'` for the full range. */
146
+ xrange(key: string, start: string, end: string, count?: number): Promise<StreamEntry[]>;
147
+ /** `XREVRANGE` - like `xrange()` but in reverse ID order; `start` is the higher/first ID, `end` the lower/last. */
148
+ xrevrange(key: string, start: string, end: string, count?: number): Promise<StreamEntry[]>;
149
+ /**
150
+ * `XREAD` - read entries newer than `ids` from one or more streams.
151
+ * `keys[i]` is paired with `ids[i]`; pass `'$'` for an ID to only read
152
+ * entries added after the call starts, or `'0'` to read from the
153
+ * beginning. With `options.block`, blocks (up to that many ms, or
154
+ * forever if `0`) waiting for new entries instead of returning
155
+ * immediately. Returns `null` if nothing matched (e.g. a non-blocking
156
+ * read found nothing new).
157
+ */
158
+ xread(keys: string[], ids: string[], options?: XReadOptions): Promise<StreamReadResult[] | null>;
159
+ /** `XLEN` - number of entries in a stream. */
160
+ xlen(key: string): Promise<number>;
161
+ /** `XDEL` - remove specific entries from a stream by ID. Returns the number actually removed. */
162
+ xdel(key: string, ids: string[]): Promise<number>;
163
+ /**
164
+ * `XTRIM` - trim a stream to (approximately) `threshold` entries
165
+ * (`'MAXLEN'`) or drop entries older than a given ID (`'MINID'`).
166
+ * Returns the number of entries removed.
167
+ */
168
+ xtrim(key: string, strategy: XTrimStrategy, threshold: number | string): Promise<number>;
169
+ /**
170
+ * `XGROUP CREATE` - create a consumer group on a stream, starting
171
+ * delivery from `id` (default `'$'`, i.e. only new entries). Creates the
172
+ * stream first (via `MKSTREAM`) if it doesn't exist yet.
173
+ */
174
+ xgroupCreate(key: string, groupName: string, id?: string): Promise<'OK'>;
175
+ /**
176
+ * `XREADGROUP` - read entries from one or more streams as a named
177
+ * consumer within a consumer group, so entries are tracked in the
178
+ * group's pending-entries list until `xack()`'d. Pass `'>'` for an ID to
179
+ * receive only entries never delivered to this group; any other ID
180
+ * re-reads this consumer's already-delivered-but-unacked entries.
181
+ */
182
+ xreadgroup(groupName: string, consumerName: string, keys: string[], ids: string[], options?: XReadOptions): Promise<StreamReadResult[] | null>;
183
+ /** `XACK` - acknowledge that a consumer group has finished processing the given entry IDs. */
184
+ xack(key: string, groupName: string, ids: string[]): Promise<number>;
185
+ /**
186
+ * `EVAL` - run a Lua `script` server-side, atomically. `keys` are passed
187
+ * as Redis's `KEYS[1..N]` (and count toward the `numkeys` argument),
188
+ * `args` as `ARGV[1..N]`. Prefer `evalsha()` once a script has been
189
+ * cached (via `scriptLoad()` or a prior `eval()`) to avoid resending the
190
+ * source on every call.
191
+ */
192
+ eval<T = unknown>(script: string, keys?: string[], args?: (string | number)[]): Promise<T>;
193
+ /**
194
+ * `EVALSHA` - run a previously cached Lua script by its SHA1 digest
195
+ * (see `scriptLoad()`), avoiding the cost of resending the script body.
196
+ * Redis replies with a `NOSCRIPT` error (surfaced here as a
197
+ * `DatabaseError`) if the script isn't cached on the server.
198
+ */
199
+ evalsha<T = unknown>(sha1: string, keys?: string[], args?: (string | number)[]): Promise<T>;
200
+ /**
201
+ * `SCRIPT LOAD` - cache a Lua script on the server without executing it,
202
+ * returning its SHA1 digest for later `evalsha()` calls.
203
+ */
204
+ scriptLoad(script: string): Promise<string>;
205
+ /** `PFADD` - add elements to a HyperLogLog. Returns `1` if the estimated cardinality changed, `0` otherwise. */
206
+ pfadd(key: string, ...elements: string[]): Promise<number>;
207
+ /** `PFCOUNT` - the approximate cardinality of one HyperLogLog, or the union of several. */
208
+ pfcount(...keys: string[]): Promise<number>;
209
+ /** `PFMERGE` - merge one or more source HyperLogLogs into `destKey` (created/overwritten as the union). */
210
+ pfmerge(destKey: string, ...sourceKeys: string[]): Promise<'OK'>;
211
+ publish(channel: string, message: string): Promise<number>;
212
+ /**
213
+ * Subscribe to a channel and invoke `handler` for each message received.
214
+ *
215
+ * Pub/sub requires a dedicated connection in Redis (a subscribed
216
+ * connection can't issue other commands), so this lazily creates a
217
+ * second `ioredis` client reusing the same connection options and keeps
218
+ * it alive for the lifetime of the store (or until `unsubscribe`/
219
+ * `disconnect` is called).
220
+ */
221
+ /**
222
+ * Lazily create the shared subscriber connection and attach the
223
+ * `message`/`pmessage` dispatch listeners exactly once. Both `subscribe()`
224
+ * and `psubscribe()` share this single connection (a subscribed Redis
225
+ * connection can't issue other commands, so both plain and pattern
226
+ * subscriptions ride the same dedicated socket).
227
+ */
228
+ private ensureSubscriber;
229
+ subscribe(channel: string, handler: (message: string, channel: string) => void): Promise<void>;
230
+ unsubscribe(channel?: string): Promise<void>;
231
+ /**
232
+ * `PSUBSCRIBE` - subscribe to all channels matching a glob-style `pattern`
233
+ * (e.g. `news.*`, `__keyevent@0__:expired`) and invoke `handler` for each
234
+ * matching message. This is the standard mechanism for consuming Redis
235
+ * keyspace notifications (e.g. subscribing to
236
+ * `__keyevent@0__:expired` to react to key expirations), where the
237
+ * concrete channel name varies and only a pattern subscription can catch
238
+ * all of them. Shares the same lazily-created subscriber connection as
239
+ * `subscribe()`.
240
+ */
241
+ psubscribe(pattern: string, handler: (message: string, channel: string, pattern: string) => void): Promise<void>;
242
+ /**
243
+ * `PUNSUBSCRIBE` - stop receiving messages for `pattern` (or every pattern
244
+ * subscription, if omitted). Closes the shared subscriber connection once
245
+ * both the channel and pattern handler sets are empty.
246
+ */
247
+ punsubscribe(pattern?: string): Promise<void>;
248
+ /** Tear down the shared subscriber connection once nothing is subscribed through it. */
249
+ private closeSubscriberIfIdle;
250
+ /**
251
+ * Queue multiple commands and send them in a single round trip. Unlike
252
+ * `multi()`, commands are not guaranteed atomic — a failure in one
253
+ * command does not abort the others. Returns the ioredis chainable
254
+ * commander; call `.exec()` to run it.
255
+ */
256
+ pipeline(): ChainableCommander;
257
+ /**
258
+ * Queue multiple commands to run atomically (Redis `MULTI`/`EXEC`). This
259
+ * is Redis's substitute for cross-key transactions: all queued commands
260
+ * either all run or (if `.discard()` is called) none do, but there is no
261
+ * rollback of partial effects and no cross-command isolation the way a
262
+ * SQL transaction provides. Returns the ioredis chainable commander;
263
+ * call `.exec()` to run it.
264
+ */
265
+ multi(): ChainableCommander;
266
+ }
267
+ export default RedisStore;
@@ -11,12 +11,25 @@
11
11
  *
12
12
  * Uses the `ioredis` driver.
13
13
  */
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
14
  Object.defineProperty(exports, "__esModule", { value: true });
18
15
  exports.RedisStore = void 0;
19
- const ioredis_1 = __importDefault(require("ioredis"));
16
+ // Lazily-loaded `ioredis` driver. Required only when a connection is opened, so
17
+ // importing this ORM never loads the ioredis driver.
18
+ let ioredisCtor = null;
19
+ function loadIoRedis() {
20
+ if (!ioredisCtor) {
21
+ try {
22
+ const mod = require('ioredis');
23
+ ioredisCtor = mod && mod.default ? mod.default : mod;
24
+ }
25
+ catch (err) {
26
+ throw new Error("The 'ioredis' package is required to use the Redis store but could not be loaded. " +
27
+ 'Install it with `npm install ioredis`. Original error: ' +
28
+ (err instanceof Error ? err.message : String(err)));
29
+ }
30
+ }
31
+ return ioredisCtor;
32
+ }
20
33
  const errors_1 = require("../../errors");
21
34
  function wrapConnectionError(err, host) {
22
35
  const parent = err instanceof Error ? err : new Error(String(err));
@@ -89,7 +102,8 @@ class RedisStore {
89
102
  // explicitly opt into eager connection and await `connect()` below to
90
103
  // surface connection failures immediately.
91
104
  const opts = { lazyConnect: true, ...rest };
92
- return url ? new ioredis_1.default(url, opts) : new ioredis_1.default(opts);
105
+ const RedisCtor = loadIoRedis();
106
+ return url ? new RedisCtor(url, opts) : new RedisCtor(opts);
93
107
  }
94
108
  async connect() {
95
109
  if (this.connected && this.client) {
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Redpanda store implementation.
3
+ *
4
+ * Redpanda is a streaming data platform that is wire-compatible with the
5
+ * Apache Kafka protocol - it speaks the exact same protocol, so it reuses the
6
+ * `kafkajs` driver unchanged. Like Kafka, it has no query language and does
7
+ * not fit the SQL-shaped `Dialect` interface, so this class implements the
8
+ * minimal `NoSqlStore` marker interface and exposes Redpanda's real
9
+ * operations - producing to topics, creating/listing topics via the admin
10
+ * client, and subscribing consumers - instead of a `query(sql)` shape.
11
+ *
12
+ * Because Redpanda speaks the Kafka protocol, this store is a mirror of
13
+ * `KafkaStore`: same `kafkajs` client, same producer/consumer/admin surface.
14
+ * `kafkajs` is loaded lazily inside `connect()` (or supplied pre-built via
15
+ * `options.client`) so importing this module does not require the driver to
16
+ * be installed.
17
+ */
18
+ import { NoSqlStore } from '../store';
19
+ /**
20
+ * SASL authentication options passed straight through to kafkajs.
21
+ */
22
+ export interface RedpandaSaslOptions {
23
+ mechanism: string;
24
+ username: string;
25
+ password: string;
26
+ [key: string]: unknown;
27
+ }
28
+ /**
29
+ * Connection options for `RedpandaStore`.
30
+ *
31
+ * Mirrors kafkajs's `Kafka` constructor options. `brokers` is the list of
32
+ * `host:port` seed brokers (Redpanda broker addresses). A pre-built kafkajs
33
+ * `Kafka` instance can be injected via `client`, in which case `connect()`
34
+ * uses it directly and skips loading the driver (this is how tests inject a
35
+ * mock).
36
+ */
37
+ export interface RedpandaStoreOptions {
38
+ /** Client identifier reported to the broker. */
39
+ clientId?: string;
40
+ /** Seed broker list, e.g. `['localhost:9092']`. */
41
+ brokers?: string[];
42
+ /** Enable TLS, or pass a kafkajs TLS options object. */
43
+ ssl?: boolean | Record<string, unknown>;
44
+ /** SASL authentication configuration. */
45
+ sasl?: RedpandaSaslOptions;
46
+ /**
47
+ * A pre-built kafkajs `Kafka` instance. When provided, `connect()` uses it
48
+ * directly and does not `require('kafkajs')`.
49
+ */
50
+ client?: any;
51
+ }
52
+ /** A single message to produce to a topic. */
53
+ export interface RedpandaMessage {
54
+ key?: string | Buffer | null;
55
+ value: string | Buffer | null;
56
+ partition?: number;
57
+ headers?: Record<string, string | Buffer>;
58
+ timestamp?: string;
59
+ [key: string]: unknown;
60
+ }
61
+ /** Options for `createTopic()`. */
62
+ export interface CreateTopicOptions {
63
+ numPartitions?: number;
64
+ replicationFactor?: number;
65
+ }
66
+ /** Options for `subscribe()`. */
67
+ export interface SubscribeOptions {
68
+ /** Consumer group id. Defaults to a generated id. */
69
+ groupId?: string;
70
+ /** Consume from the beginning of the topic rather than the latest offset. */
71
+ fromBeginning?: boolean;
72
+ }
73
+ /**
74
+ * `RedpandaStore` wraps a `kafkajs` client (Redpanda is Kafka-protocol
75
+ * compatible) and exposes the core streaming operations: producing messages,
76
+ * topic administration, and consumer subscriptions.
77
+ */
78
+ export declare class RedpandaStore implements NoSqlStore {
79
+ readonly name = "redpanda";
80
+ readonly library = "kafkajs";
81
+ private readonly options;
82
+ private client;
83
+ private producer;
84
+ /** Consumers created via `subscribe()`, tracked so `disconnect()` can stop them all. */
85
+ private readonly consumers;
86
+ private connected;
87
+ constructor(options?: RedpandaStoreOptions);
88
+ connect(): Promise<void>;
89
+ disconnect(): Promise<void>;
90
+ isConnected(): boolean;
91
+ /** Returns the underlying `kafkajs` `Kafka` client for anything not wrapped here. */
92
+ getClient(): any;
93
+ private requireClient;
94
+ private requireProducer;
95
+ /**
96
+ * Produce one or more messages to `topic`. Returns kafkajs's record
97
+ * metadata (per-partition base offsets).
98
+ */
99
+ produce(topic: string, messages: RedpandaMessage[]): Promise<any>;
100
+ /**
101
+ * Create `topic` via a short-lived admin connection. Returns kafkajs's
102
+ * boolean indicating whether the topic was newly created (`false` if it
103
+ * already existed).
104
+ */
105
+ createTopic(topic: string, opts?: CreateTopicOptions): Promise<boolean>;
106
+ /** List all topic names known to the cluster via a short-lived admin connection. */
107
+ listTopics(): Promise<string[]>;
108
+ /**
109
+ * Subscribe a new consumer to `topics` and invoke `handler` for each
110
+ * message (kafkajs's `eachMessage` payload: `{ topic, partition, message }`).
111
+ * The consumer joins the group `options.groupId` (a generated id is used if
112
+ * omitted) and is tracked so `disconnect()` stops it. Returns the created
113
+ * kafkajs consumer.
114
+ */
115
+ subscribe(topics: string | string[], handler: (payload: any) => Promise<void> | void, options?: SubscribeOptions): Promise<any>;
116
+ }
117
+ export default RedpandaStore;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Resque (node-resque) job/task-queue store.
3
+ *
4
+ * node-resque is a Redis-backed background-job system compatible with Ruby's
5
+ * Resque. A `Queue` enqueues jobs (a job class name plus args) into named
6
+ * queues, and a `Worker`/`MultiWorker` pulls jobs and runs the matching
7
+ * handler from a *jobs* map. It is not a database and does not fit the
8
+ * SQL-shaped `Dialect` interface, so this class implements the minimal
9
+ * `NoSqlStore` marker interface and exposes node-resque's real
10
+ * enqueue/worker operations instead.
11
+ *
12
+ * Uses the `node-resque` driver. It is an optional peer loaded lazily (via
13
+ * `require`) inside `connect()`, so importing this module does not require it
14
+ * to be installed unless you actually connect. A pre-built driver module
15
+ * (providing `Queue` and `Worker` constructors) can be injected via
16
+ * `ResqueStoreOptions.client`, in which case `connect()` adopts it and skips
17
+ * the `require` entirely (used by the unit tests to inject mocks).
18
+ */
19
+ import type { NoSqlStore } from '../store';
20
+ /** Connection options for `ResqueStore`. */
21
+ export interface ResqueStoreOptions {
22
+ /**
23
+ * node-resque connection descriptor, e.g.
24
+ * `{ pkg: 'ioredis', host, port, database }`. Defaults to
25
+ * `{ host: '127.0.0.1', port: 6379 }`.
26
+ */
27
+ connection?: any;
28
+ /**
29
+ * A pre-built `node-resque` module (or a stand-in exposing `Queue` and
30
+ * `Worker` constructors). When provided, `connect()` adopts it and does not
31
+ * `require('node-resque')` — used for injecting mocks in tests.
32
+ */
33
+ client?: any;
34
+ }
35
+ /**
36
+ * A job descriptor for `enqueue()`: the registered job `name` plus its
37
+ * positional `args`. A bare string is treated as the job name with no args.
38
+ */
39
+ export interface ResqueJobSpec {
40
+ name: string;
41
+ args?: any[];
42
+ }
43
+ /**
44
+ * `ResqueStore` wraps a node-resque `Queue` for producing and a pool of
45
+ * `Worker`s (one per queue name) for consuming, exposing the common queue
46
+ * surface.
47
+ */
48
+ export declare class ResqueStore implements NoSqlStore {
49
+ readonly name = "resque";
50
+ readonly library = "node-resque";
51
+ private readonly options;
52
+ private driver;
53
+ private queue;
54
+ private connected;
55
+ private readonly workers;
56
+ /** Accumulated `{ jobName: handler }` map shared across workers. */
57
+ private readonly jobs;
58
+ constructor(options?: ResqueStoreOptions);
59
+ connect(): Promise<void>;
60
+ disconnect(): Promise<void>;
61
+ isConnected(): boolean;
62
+ /** Returns the underlying node-resque `Queue` for operations not wrapped here. */
63
+ getClient(): any;
64
+ private requireQueue;
65
+ private get connectionOpts();
66
+ /**
67
+ * Enqueue a job onto a named queue via `queue.enqueue(queue, name, args)`.
68
+ * node-resque assigns no client-visible job id, so this resolves to `null`.
69
+ */
70
+ enqueue(queue: string, jobData: ResqueJobSpec | string): Promise<null>;
71
+ /**
72
+ * Register a `Worker` on a queue that runs `handler` for jobs on it. The
73
+ * handler is added to the shared jobs map under the queue name, and one
74
+ * worker is cached per queue name (a repeat `process()` returns it).
75
+ */
76
+ process(queue: string, handler: (...args: any[]) => any | Promise<any>, opts?: any): Promise<any>;
77
+ /**
78
+ * List queued jobs on a named queue (node-resque `queue.queued(queue,
79
+ * start, stop)`). node-resque has no addressable per-id lookup, so `id` is
80
+ * interpreted as the 0-based index into the returned list.
81
+ */
82
+ getJob(queue: string, id: string | number): Promise<any>;
83
+ /**
84
+ * Remove matching jobs from a queue via `queue.del(queue, name, args)`.
85
+ * `id` is the registered job name to delete.
86
+ */
87
+ remove(queue: string, id: string): Promise<any>;
88
+ /** Return the number of jobs currently queued on a named queue. */
89
+ stats(queue: string): Promise<number>;
90
+ }
91
+ export default ResqueStore;