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,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseWhere = parseWhere;
4
+ exports.escapeRegex = escapeRegex;
5
+ exports.likeToRegex = likeToRegex;
6
+ /**
7
+ * ORM where-clause parser for the ArangoDB store.
8
+ *
9
+ * Turns the ORM's `where` shape (plain-object field conditions, `Op.*`
10
+ * comparison symbols, and `Op.and`/`Op.or`/`Op.not` logical symbols) into a
11
+ * small, store-agnostic {@link WhereNode} tree that the store then renders to
12
+ * an AQL FILTER clause. This is what lets callers write standard ORM
13
+ * queries (`{ age: { [Op.gte]: 18 } }`) instead of hand-building ReQL row
14
+ * predicates.
15
+ */
16
+ const operators_1 = require("../../operators");
17
+ /** Whether `v` is a plain object carrying `Op.*` comparison symbols (e.g. `{ [Op.gt]: 5 }`). */
18
+ function hasOpSymbols(v) {
19
+ return (v !== null &&
20
+ typeof v === 'object' &&
21
+ !Array.isArray(v) &&
22
+ Object.getOwnPropertySymbols(v).length > 0);
23
+ }
24
+ /**
25
+ * Parse an ORM `where` object into a {@link WhereNode} tree.
26
+ *
27
+ * - String keys are field conditions: a scalar means equality, an array means
28
+ * `Op.in`, and a nested `{ [Op.*]: value }` object expands to one comparison
29
+ * per operator.
30
+ * - `Op.and`/`Op.or` take an array of sub-`where` objects; `Op.not` negates a
31
+ * single sub-`where`.
32
+ */
33
+ function parseWhere(where) {
34
+ if (!where)
35
+ return { kind: 'true' };
36
+ const nodes = [];
37
+ for (const sym of Object.getOwnPropertySymbols(where)) {
38
+ const val = where[sym];
39
+ if (sym === operators_1.Op.and) {
40
+ nodes.push({ kind: 'and', nodes: asArray(val).map(parseWhere) });
41
+ }
42
+ else if (sym === operators_1.Op.or) {
43
+ nodes.push({ kind: 'or', nodes: asArray(val).map(parseWhere) });
44
+ }
45
+ else if (sym === operators_1.Op.not) {
46
+ nodes.push({ kind: 'not', node: parseWhere(val) });
47
+ }
48
+ }
49
+ for (const field of Object.keys(where)) {
50
+ const val = where[field];
51
+ if (hasOpSymbols(val)) {
52
+ for (const opSym of Object.getOwnPropertySymbols(val)) {
53
+ nodes.push({ kind: 'cmp', field, op: opSym, value: val[opSym] });
54
+ }
55
+ continue;
56
+ }
57
+ if (Array.isArray(val)) {
58
+ nodes.push({ kind: 'cmp', field, op: operators_1.Op.in, value: val });
59
+ }
60
+ else {
61
+ nodes.push({ kind: 'cmp', field, op: operators_1.Op.eq, value: val });
62
+ }
63
+ }
64
+ if (nodes.length === 0)
65
+ return { kind: 'true' };
66
+ if (nodes.length === 1)
67
+ return nodes[0];
68
+ return { kind: 'and', nodes };
69
+ }
70
+ function asArray(v) {
71
+ return (Array.isArray(v) ? v : [v]);
72
+ }
73
+ /** Escape a string for safe inclusion in a regular expression. */
74
+ function escapeRegex(s) {
75
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
76
+ }
77
+ /**
78
+ * Translate a SQL `LIKE`/`ILIKE` pattern into an anchored regular expression
79
+ * (`%` → `.*`, `_` → `.`), so stores that only speak regex can honor ORM
80
+ * `Op.like` queries without the caller hand-writing a pattern.
81
+ */
82
+ function likeToRegex(pattern, caseInsensitive = false) {
83
+ let out = '';
84
+ for (let i = 0; i < pattern.length; i++) {
85
+ const ch = pattern[i];
86
+ if (ch === '%')
87
+ out += '.*';
88
+ else if (ch === '_')
89
+ out += '.';
90
+ else
91
+ out += escapeRegex(ch);
92
+ }
93
+ return `${caseInsensitive ? '(?i)' : ''}^${out}$`;
94
+ }
@@ -0,0 +1,104 @@
1
+ import type { NoSqlStore } from '../store';
2
+ /**
3
+ * Minimal structural view of the pieces of `@azure/storage-blob` this store
4
+ * uses. Kept `any`-ish/loose on purpose: the real SDK types aren't available
5
+ * at build time (the package is an optional, lazy-loaded dependency), so we
6
+ * describe just the method chain we call rather than depending on its types.
7
+ */
8
+ export interface BlockBlobClientLike {
9
+ upload(data: unknown, contentLength: number, options?: unknown): Promise<unknown>;
10
+ uploadData?(data: unknown, options?: unknown): Promise<unknown>;
11
+ download(offset?: number, count?: number, options?: unknown): Promise<BlobDownloadResponseLike>;
12
+ delete(options?: unknown): Promise<unknown>;
13
+ exists(options?: unknown): Promise<boolean>;
14
+ }
15
+ export interface ContainerClientLike {
16
+ getBlockBlobClient(blobName: string): BlockBlobClientLike;
17
+ listBlobsFlat(options?: {
18
+ prefix?: string;
19
+ }): AsyncIterable<{
20
+ name: string;
21
+ }>;
22
+ create(options?: unknown): Promise<unknown>;
23
+ }
24
+ export interface BlobServiceClientLike {
25
+ getContainerClient(containerName: string): ContainerClientLike;
26
+ }
27
+ /** Shape of the response returned by `BlockBlobClient.download()`. */
28
+ export interface BlobDownloadResponseLike {
29
+ /** Node.js readable stream body (server-side). */
30
+ readableStreamBody?: NodeJS.ReadableStream;
31
+ /** Browser blob body (only present in the browser build). */
32
+ blobBody?: Promise<{
33
+ arrayBuffer(): Promise<ArrayBuffer>;
34
+ }>;
35
+ /** Convenience accessor exposed by the SDK's browser build. */
36
+ contentAsBlob?: Promise<{
37
+ arrayBuffer(): Promise<ArrayBuffer>;
38
+ }>;
39
+ }
40
+ /**
41
+ * Connection options for `AzureBlobStore`.
42
+ *
43
+ * Provide exactly one of:
44
+ * - `client`: a pre-built `BlobServiceClient` (used as-is; the SDK is not
45
+ * `require()`d — this is how tests inject a mock).
46
+ * - `connectionString`: an Azure Storage connection string, used to build a
47
+ * client via `BlobServiceClient.fromConnectionString(...)`.
48
+ * - `account` + `accountKey`: builds a connection string from an account
49
+ * name and key (convenience over `connectionString`).
50
+ */
51
+ export interface AzureBlobStoreOptions {
52
+ /** A pre-built `BlobServiceClient`. When given, `connect()` uses it directly and never loads the SDK. */
53
+ client?: BlobServiceClientLike;
54
+ /** Azure Storage connection string, e.g. `DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;`. */
55
+ connectionString?: string;
56
+ /** Storage account name (used with `accountKey` to synthesize a connection string). */
57
+ account?: string;
58
+ /** Storage account key (used with `account`). */
59
+ accountKey?: string;
60
+ /** Endpoint suffix for the synthesized connection string. Defaults to `core.windows.net`. */
61
+ endpointSuffix?: string;
62
+ }
63
+ /** Data acceptable for `uploadBlob()` — a Buffer, string, or byte view. */
64
+ export type BlobUploadData = Buffer | string | Uint8Array | ArrayBuffer;
65
+ /**
66
+ * `AzureBlobStore` wraps a `@azure/storage-blob` `BlobServiceClient` and
67
+ * exposes Azure Blob Storage's object-level operations. It implements the
68
+ * minimal `NoSqlStore` marker interface — there is no `query(sql)` because
69
+ * Blob Storage has no query language; access is by container + blob name.
70
+ */
71
+ export declare class AzureBlobStore implements NoSqlStore {
72
+ readonly name = "azure-blob";
73
+ readonly library = "@azure/storage-blob";
74
+ private readonly options;
75
+ private client;
76
+ private connected;
77
+ constructor(options?: AzureBlobStoreOptions);
78
+ connect(): Promise<void>;
79
+ private resolveConnectionString;
80
+ disconnect(): Promise<void>;
81
+ isConnected(): boolean;
82
+ /** Returns the underlying `BlobServiceClient` for anything not wrapped here. */
83
+ getClient(): BlobServiceClientLike;
84
+ private requireClient;
85
+ private blockBlob;
86
+ private wrapError;
87
+ /** Uploads `data` to `container`/`key`, creating or overwriting the block blob. */
88
+ uploadBlob(container: string, key: string, data: BlobUploadData): Promise<void>;
89
+ /** Downloads `container`/`key` and returns its full contents as a Buffer. */
90
+ downloadBlob(container: string, key: string): Promise<Buffer>;
91
+ /** Deletes `container`/`key`. */
92
+ deleteBlob(container: string, key: string): Promise<void>;
93
+ /** Returns whether `container`/`key` exists. */
94
+ blobExists(container: string, key: string): Promise<boolean>;
95
+ /**
96
+ * Lists the names of all blobs in `container`, optionally filtered to those
97
+ * whose name starts with `prefix`. Iterates the SDK's async paging iterator
98
+ * (`listBlobsFlat`) fully and returns a flat array of blob names.
99
+ */
100
+ listBlobs(container: string, prefix?: string): Promise<string[]>;
101
+ /** Creates `container`. */
102
+ createContainer(container: string): Promise<void>;
103
+ }
104
+ export default AzureBlobStore;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Beanstalkd job/work-queue store.
3
+ *
4
+ * Beanstalkd is a simple, fast work queue. Producers `put` jobs (opaque byte
5
+ * payloads) into named *tubes*; workers `reserve` jobs from the tubes they
6
+ * `watch`, do the work, then `delete` (destroy) them. It is not a database:
7
+ * there is no query language and it does not fit the SQL-shaped `Dialect`
8
+ * interface, so this class implements the minimal `NoSqlStore` marker
9
+ * interface and exposes Beanstalkd's real queue operations instead.
10
+ *
11
+ * Uses the `fivebeans` driver, whose client exposes a callback-style API
12
+ * (`client.put(pri, delay, ttr, payload, cb)` etc.); this store promisifies
13
+ * those calls internally so its surface is promise-based. `fivebeans` is an
14
+ * optional peer and is loaded lazily (via `require`) inside `connect()`, so
15
+ * importing this module does not require it to be installed unless you
16
+ * actually connect. A pre-built client can be injected via
17
+ * `BeanstalkdStoreOptions.client`, in which case `connect()` adopts it and
18
+ * skips the `require` entirely (used by the unit tests to inject a mock).
19
+ */
20
+ import type { NoSqlStore } from '../store';
21
+ /** Connection options for `BeanstalkdStore`. */
22
+ export interface BeanstalkdStoreOptions {
23
+ /** Beanstalkd host. Defaults to `'127.0.0.1'`. */
24
+ host?: string;
25
+ /** Beanstalkd port. Defaults to `11300`. */
26
+ port?: number;
27
+ /**
28
+ * A pre-built `fivebeans` client. When provided, `connect()` adopts it and
29
+ * does not `require('fivebeans')` — used for injecting a mock in tests.
30
+ */
31
+ client?: any;
32
+ }
33
+ /** Options for `enqueue()` (map onto fivebeans' `put(pri, delay, ttr, ...)`). */
34
+ export interface BeanstalkdPutOptions {
35
+ /** Job priority (smaller runs first). Defaults to `0`. */
36
+ priority?: number;
37
+ /** Seconds to delay before the job becomes ready. Defaults to `0`. */
38
+ delay?: number;
39
+ /** Time-to-run: seconds a worker has to finish before requeue. Defaults to `60`. */
40
+ ttr?: number;
41
+ }
42
+ /** A reserved Beanstalkd job handed to a `process()` handler. */
43
+ export interface BeanstalkdJob {
44
+ id: string;
45
+ payload: string;
46
+ }
47
+ /**
48
+ * `BeanstalkdStore` wraps a single `fivebeans` client and exposes the common
49
+ * queue surface (`enqueue`/`process`/`getJob`/`remove`/`stats`) over
50
+ * Beanstalkd tubes, promisifying the driver's callback API.
51
+ */
52
+ export declare class BeanstalkdStore implements NoSqlStore {
53
+ readonly name = "beanstalkd";
54
+ readonly library = "fivebeans";
55
+ private readonly options;
56
+ private client;
57
+ private connected;
58
+ /** Set false on disconnect to break any running `process()` reserve loop. */
59
+ private running;
60
+ constructor(options?: BeanstalkdStoreOptions);
61
+ connect(): Promise<void>;
62
+ disconnect(): Promise<void>;
63
+ isConnected(): boolean;
64
+ /** Returns the underlying `fivebeans` client for operations not wrapped here. */
65
+ getClient(): any;
66
+ private requireClient;
67
+ /** Promisify a callback-style client method whose callback is `(err, result)`. */
68
+ private call;
69
+ /**
70
+ * Enqueue a job into a tube. Selects the tube via `use()`, then `put()`s the
71
+ * (JSON-serialized) payload with the given priority/delay/ttr. Returns the
72
+ * job id assigned by the server.
73
+ */
74
+ enqueue(queue: string, jobData: unknown, opts?: BeanstalkdPutOptions): Promise<string>;
75
+ /**
76
+ * Register a worker on a tube: `watch()` it, then loop `reserve()`ing jobs
77
+ * and invoking `handler(job)`. After the handler resolves the job is
78
+ * `destroy()`ed. The loop stops when the store disconnects.
79
+ */
80
+ process(queue: string, handler: (job: BeanstalkdJob) => void | Promise<void>): Promise<void>;
81
+ /** Peek at a job by id, returning its id and payload (or `null` if absent). */
82
+ getJob(_queue: string, id: string): Promise<BeanstalkdJob | null>;
83
+ /** Delete (destroy) a job by id. */
84
+ remove(_queue: string, id: string): Promise<void>;
85
+ /** Return per-tube statistics (`stats-tube`), e.g. ready/reserved/buried counts. */
86
+ stats(queue: string): Promise<any>;
87
+ }
88
+ export default BeanstalkdStore;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Bee-Queue job/task-queue store.
3
+ *
4
+ * Bee-Queue is a fast, lightweight Redis-backed job queue. A single `Queue`
5
+ * object (bound to a queue name) both produces jobs — `queue.createJob(data)`
6
+ * built into a job, then `.save()`d — and consumes them via
7
+ * `queue.process(handler)`. Each queue is a distinct object per name, so this
8
+ * store caches one `Queue` per queue name. It is not a database and does not
9
+ * fit the SQL-shaped `Dialect` interface, so this class implements the
10
+ * minimal `NoSqlStore` marker interface and exposes Bee-Queue's real
11
+ * create/process/getJob operations instead.
12
+ *
13
+ * Uses the `bee-queue` driver, whose default export is the `Queue`
14
+ * constructor. It is an optional peer loaded lazily (via `require`) inside
15
+ * `connect()`, so importing this module does not require it to be installed
16
+ * unless you actually connect. A pre-built `Queue` constructor can be
17
+ * injected via `BeeQueueStoreOptions.client`, in which case `connect()`
18
+ * adopts it and skips the `require` entirely (used by the unit tests to
19
+ * inject a mock).
20
+ */
21
+ import type { NoSqlStore } from '../store';
22
+ /** Connection options for `BeeQueueStore`. */
23
+ export interface BeeQueueStoreOptions {
24
+ /**
25
+ * Bee-Queue settings passed to every `Queue` (e.g. `{ redis: { host, port
26
+ * } }`, `isWorker`, `removeOnSuccess`). Defaults to
27
+ * `{ redis: { host: '127.0.0.1', port: 6379 } }`.
28
+ */
29
+ settings?: any;
30
+ /**
31
+ * A pre-built `bee-queue` `Queue` constructor (or a stand-in). When
32
+ * provided, `connect()` adopts it and does not `require('bee-queue')` —
33
+ * used for injecting a mock in tests.
34
+ */
35
+ client?: any;
36
+ }
37
+ /** Options for `enqueue()` mapped onto Bee-Queue job builder methods. */
38
+ export interface BeeQueueEnqueueOptions {
39
+ /** Retry the job up to this many times on failure (`job.retries(n)`). */
40
+ retries?: number;
41
+ /** Delay the job until this timestamp/ms (`job.delayUntil(...)`). */
42
+ delayUntil?: number | Date;
43
+ /** Set the job timeout in ms (`job.timeout(n)`). */
44
+ timeout?: number;
45
+ }
46
+ /** Options for `process()`. */
47
+ export interface BeeQueueProcessOptions {
48
+ /** Max jobs to run concurrently on this worker. Defaults to `1`. */
49
+ concurrency?: number;
50
+ }
51
+ /**
52
+ * `BeeQueueStore` manages a pool of Bee-Queue `Queue` objects keyed by queue
53
+ * name and exposes the common queue surface
54
+ * (`enqueue`/`process`/`getJob`/`remove`/`stats`).
55
+ */
56
+ export declare class BeeQueueStore implements NoSqlStore {
57
+ readonly name = "beequeue";
58
+ readonly library = "bee-queue";
59
+ private readonly options;
60
+ private Queue;
61
+ private connected;
62
+ private readonly queues;
63
+ /** Queue names that already have a `process()` handler registered. */
64
+ private readonly processing;
65
+ constructor(options?: BeeQueueStoreOptions);
66
+ connect(): Promise<void>;
67
+ disconnect(): Promise<void>;
68
+ isConnected(): boolean;
69
+ /** Returns the underlying `bee-queue` `Queue` constructor. */
70
+ getClient(): any;
71
+ private requireDriver;
72
+ private get settings();
73
+ /** Get (creating and caching on first use) the `Queue` for a queue name. */
74
+ private getQueue;
75
+ /**
76
+ * Build a job with `queue.createJob(data)`, apply any retry/delay/timeout
77
+ * options, `.save()` it, and return the id Bee-Queue assigns.
78
+ */
79
+ enqueue(queue: string, jobData: unknown, opts?: BeeQueueEnqueueOptions): Promise<string>;
80
+ /**
81
+ * Register the worker handler for a queue via `queue.process(concurrency,
82
+ * handler)`. Bee-Queue allows only one `process()` per Queue object, so a
83
+ * repeat call on the same queue name is a no-op.
84
+ */
85
+ process(queue: string, handler: (job: any) => any | Promise<any>, opts?: BeeQueueProcessOptions): Promise<any>;
86
+ /** Fetch a job by id from the named queue (`queue.getJob(id)`). */
87
+ getJob(queue: string, id: string): Promise<any>;
88
+ /**
89
+ * Remove a job by id from the named queue. Uses `queue.removeJob(id)` when
90
+ * available, otherwise fetches the job and calls `job.remove()`.
91
+ */
92
+ remove(queue: string, id: string): Promise<void>;
93
+ /**
94
+ * Return job counts by state for a queue. Uses `queue.getJobCounts()` when
95
+ * available, otherwise falls back to Bee-Queue's `queue.checkHealth()`.
96
+ */
97
+ stats(queue: string): Promise<any>;
98
+ }
99
+ export default BeeQueueStore;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * BigchainDB store implementation.
3
+ *
4
+ * BigchainDB is a blockchain database: data is written as cryptographically
5
+ * signed, immutable **transactions** over **assets**. A CREATE transaction
6
+ * registers a new asset (with arbitrary immutable `asset.data` and mutable
7
+ * `metadata`); TRANSFER transactions spend prior outputs. Because every
8
+ * transaction is Ed25519-signed and content-addressed by its hash (`tx.id`),
9
+ * the ledger is append-only and tamper-evident by construction.
10
+ *
11
+ * BigchainDB is not a SQL `Dialect`, so this class implements the minimal
12
+ * `NoSqlStore` marker interface plus the shared ledger surface:
13
+ * - `append(table, data)` -> build + sign + commit a CREATE transaction
14
+ * whose asset carries `{ table, ...data }`, returning the new `tx.id`.
15
+ * - `get(table, id)` -> fetch a transaction by id.
16
+ * - `history(table, id)` -> list all transactions for the asset `id`.
17
+ * - `verify(table, id)` -> return the signed transaction (its signatures
18
+ * and content hash are the proof of integrity).
19
+ * - `query(text)` -> full-text asset search (`searchAssets`).
20
+ *
21
+ * ## Lazy driver loading
22
+ *
23
+ * `bigchaindb-driver` is loaded lazily inside `connect()`. Tests inject a
24
+ * pre-built connection via `BigchaindbStoreOptions.client` and the transaction
25
+ * factory via `BigchaindbStoreOptions.transaction`, bypassing the `require`.
26
+ */
27
+ import { NoSqlStore } from '../store';
28
+ /** A BigchainDB keypair (Ed25519, base58-encoded). */
29
+ export interface BigchaindbKeypair {
30
+ publicKey: string;
31
+ privateKey: string;
32
+ }
33
+ /** The subset of `bigchaindb-driver`'s `Connection` this store uses. */
34
+ export interface BigchaindbConnectionLike {
35
+ postTransactionCommit(tx: unknown): Promise<any>;
36
+ getTransaction(txId: string): Promise<any>;
37
+ listTransactions?(opts: {
38
+ asset_id: string;
39
+ operation?: string;
40
+ }): Promise<any>;
41
+ searchAssets?(text: string): Promise<any>;
42
+ listOutputs?(opts: {
43
+ public_key: string;
44
+ spent?: boolean;
45
+ }): Promise<any>;
46
+ }
47
+ /** The subset of `bigchaindb-driver`'s `Transaction` namespace this store uses. */
48
+ export interface BigchaindbTransactionFactory {
49
+ makeCreateTransaction(asset: unknown, metadata: unknown, outputs: unknown[], ...issuers: string[]): any;
50
+ makeTransferTransaction?(...args: unknown[]): any;
51
+ makeOutput(condition: unknown, amount?: string): any;
52
+ makeEd25519Condition(publicKey: string, json?: boolean): any;
53
+ signTransaction(transaction: unknown, ...privateKeys: string[]): any;
54
+ }
55
+ /** Connection options for `BigchaindbStore`. */
56
+ export interface BigchaindbStoreOptions {
57
+ /** BigchainDB API root, e.g. `'http://localhost:9984/api/v1/'`. */
58
+ url?: string;
59
+ /** Extra headers (e.g. an `app_id`/`app_key` for hosted BigchainDB). */
60
+ headers?: Record<string, string>;
61
+ /** Keypair used to sign CREATE transactions in `append`. Required to write. */
62
+ keypair?: BigchaindbKeypair;
63
+ /** A pre-built `Connection` to use instead of the lazy `require`. */
64
+ client?: BigchaindbConnectionLike;
65
+ /** A pre-built `Transaction` factory (injected in tests alongside `client`). */
66
+ transaction?: BigchaindbTransactionFactory;
67
+ }
68
+ /**
69
+ * `BigchaindbStore` wraps a `bigchaindb-driver` connection + transaction
70
+ * factory behind the shared ledger surface.
71
+ */
72
+ export declare class BigchaindbStore implements NoSqlStore {
73
+ readonly name = "bigchaindb";
74
+ readonly library = "bigchaindb-driver";
75
+ private readonly options;
76
+ private conn;
77
+ private txFactory;
78
+ private connected;
79
+ constructor(options?: BigchaindbStoreOptions);
80
+ connect(): Promise<void>;
81
+ disconnect(): Promise<void>;
82
+ isConnected(): boolean;
83
+ /** Returns the underlying `Connection` for anything not wrapped here. */
84
+ getClient(): BigchaindbConnectionLike;
85
+ private requireConn;
86
+ private requireTxFactory;
87
+ /**
88
+ * Build, sign and commit a CREATE transaction registering a new asset whose
89
+ * immutable `asset.data` is `{ table, ...data }`. Returns the resulting
90
+ * transaction id (its content hash). Requires `options.keypair`.
91
+ */
92
+ append(table: string, data: Record<string, unknown>): Promise<string>;
93
+ /** Fetch a transaction by its id (`get(_, id)`). Returns the signed transaction. */
94
+ get(_table: string, id: string): Promise<unknown>;
95
+ /**
96
+ * List every transaction (CREATE + subsequent TRANSFERs) for the asset `id`
97
+ * - the append-only history of that asset. Uses `listTransactions`.
98
+ */
99
+ history(_table: string, id: string): Promise<unknown>;
100
+ /**
101
+ * Return the signed transaction `id` as its own proof of integrity: its
102
+ * Ed25519 signatures and content-hash id are what any party independently
103
+ * re-verifies against the asset data. Returns `{ id, valid, transaction }`.
104
+ */
105
+ verify(_table: string, id: string): Promise<{
106
+ id: string;
107
+ valid: boolean;
108
+ transaction: unknown;
109
+ }>;
110
+ /** Full-text search over asset data via `searchAssets`. */
111
+ query(text: string): Promise<unknown>;
112
+ }
113
+ export default BigchaindbStore;
@@ -0,0 +1,144 @@
1
+ import type { NoSqlStore } from '../store';
2
+ /**
3
+ * A map of column-family names to `{ qualifier: value }` maps, matching the
4
+ * `@google-cloud/bigtable` `insert` entry `data` shape, e.g.
5
+ * `{ cf: { name: 'alice', age: 30 } }`.
6
+ */
7
+ export type BigtableRowData = Record<string, Record<string, unknown>>;
8
+ /**
9
+ * Minimal structural type for the `Row` handle `table.row(key)` returns.
10
+ * Each method returns a promise (the client's promise-style API).
11
+ */
12
+ export interface BigtableRowLike {
13
+ get(): Promise<unknown>;
14
+ delete(): Promise<unknown>;
15
+ }
16
+ /**
17
+ * Minimal structural type for the `Table` handle `instance.table(id)` returns.
18
+ */
19
+ export interface BigtableTableLike {
20
+ insert(entries: unknown): Promise<unknown>;
21
+ getRows(options?: Record<string, unknown>): Promise<unknown>;
22
+ row(key: string): BigtableRowLike;
23
+ create(options?: Record<string, unknown>): Promise<unknown>;
24
+ }
25
+ /** Minimal structural type for the `Instance` handle `client.instance(id)` returns. */
26
+ export interface BigtableInstanceLike {
27
+ table(id: string): BigtableTableLike;
28
+ }
29
+ /**
30
+ * Minimal structural type for the pieces of a `@google-cloud/bigtable`
31
+ * `Bigtable` client this store uses. Kept local (rather than importing from
32
+ * `@google-cloud/bigtable`) so this module type-checks without the optional
33
+ * driver installed.
34
+ */
35
+ export interface BigtableClientLike {
36
+ instance(id: string): BigtableInstanceLike;
37
+ }
38
+ /** Options accepted by `readRows()`; forwarded straight to `table.getRows`. */
39
+ export interface BigtableReadOptions {
40
+ /** Inclusive/exclusive key range for the scan. */
41
+ ranges?: Array<{
42
+ start?: string;
43
+ end?: string;
44
+ }>;
45
+ /** Explicit list of row keys to read. */
46
+ keys?: string[];
47
+ /** A prefix all returned row keys must share. */
48
+ prefix?: string;
49
+ /** Maximum number of rows to return. */
50
+ limit?: number;
51
+ /** A Bigtable read filter (family/qualifier/value/regex filters). */
52
+ filter?: unknown;
53
+ [key: string]: unknown;
54
+ }
55
+ /**
56
+ * Connection options for `BigtableStore`. `projectId`, `instanceId`, and
57
+ * `tableId` locate the resource; the latter two are configurable defaults —
58
+ * every row method also accepts an explicit `table` name to target a different
59
+ * table within the same instance.
60
+ */
61
+ export interface BigtableStoreOptions {
62
+ /** GCP project id that owns the Bigtable instance. */
63
+ projectId?: string;
64
+ /** Bigtable instance id, used as the default for all table operations. */
65
+ instanceId?: string;
66
+ /** Default table id, used when a method's `table` argument is omitted. */
67
+ tableId?: string;
68
+ /**
69
+ * Escape hatch for any other `Bigtable` constructor option (keyFilename,
70
+ * credentials, apiEndpoint for the emulator, ...). Merged into the options
71
+ * passed to `new Bigtable(...)`.
72
+ */
73
+ clientOptions?: Record<string, unknown>;
74
+ /**
75
+ * A pre-built `Bigtable` client (or a compatible mock). When provided,
76
+ * `connect()` uses it directly and skips `require('@google-cloud/bigtable')`
77
+ * entirely — this is how tests inject a mock without the real driver
78
+ * installed.
79
+ */
80
+ client?: BigtableClientLike;
81
+ }
82
+ /**
83
+ * `BigtableStore` wraps a `@google-cloud/bigtable` client and exposes
84
+ * Bigtable's row surface: `insertRow`/`getRow`/`deleteRow` for single-row
85
+ * operations, `readRows` for range/filter scans, and `createTable` for
86
+ * defining a table's column families. Instance and table ids are resolved once
87
+ * and the resulting handles cached per table id.
88
+ */
89
+ export declare class BigtableStore implements NoSqlStore {
90
+ readonly name = "bigtable";
91
+ readonly library = "@google-cloud/bigtable";
92
+ private readonly options;
93
+ private client;
94
+ private instance;
95
+ private readonly tables;
96
+ private connected;
97
+ constructor(options?: BigtableStoreOptions);
98
+ connect(): Promise<void>;
99
+ /**
100
+ * The Bigtable client manages its own gRPC channel pool and does not expose
101
+ * a public close on the surface this store depends on, so `disconnect()`
102
+ * drops the cached handles and flips `connected` to false.
103
+ */
104
+ disconnect(): Promise<void>;
105
+ isConnected(): boolean;
106
+ /** Returns the underlying `Bigtable` client for anything not wrapped here. */
107
+ getClient(): BigtableClientLike;
108
+ private requireClient;
109
+ /**
110
+ * Resolves (and caches) the `Table` handle for `table` (or the configured
111
+ * default `tableId`) within the configured instance. Requires both an
112
+ * instance id and a table id to be resolvable.
113
+ */
114
+ private tableFor;
115
+ private wrapError;
116
+ /**
117
+ * Inserts (writes) a single row via `table.insert(...)`. `data` maps column
118
+ * families to `{ qualifier: value }` maps, e.g.
119
+ * `{ cf: { name: 'alice', age: 30 } }`. Passed to the driver as a single
120
+ * `{ key, data }` insert entry.
121
+ */
122
+ insertRow(table: string, key: string, data: BigtableRowData): Promise<unknown>;
123
+ /** Reads a single row by key via `table.row(key).get()`, returning the row data. */
124
+ getRow(table: string, key: string): Promise<unknown>;
125
+ /** Deletes an entire row (all its cells) via `table.row(key).delete()`. */
126
+ deleteRow(table: string, key: string): Promise<unknown>;
127
+ /**
128
+ * Reads multiple rows via `table.getRows(options)`. `options` (ranges, keys,
129
+ * prefix, limit, filter) is forwarded straight to the client. Since Bigtable
130
+ * keeps row keys sorted, a `ranges`/`prefix` scan reads an efficient
131
+ * contiguous slice of the key space. Returns the rows as the driver
132
+ * surfaces them.
133
+ */
134
+ readRows(table: string, opts?: BigtableReadOptions): Promise<unknown>;
135
+ /**
136
+ * Creates a table with the given column families via `table.create(...)`.
137
+ * `families` is the list of column family names (e.g. `['cf', 'meta']`),
138
+ * passed to the client as its `families` create option. A table must declare
139
+ * its families up front — unlike qualifiers, families cannot be added
140
+ * implicitly at write time.
141
+ */
142
+ createTable(table: string, families: string[]): Promise<unknown>;
143
+ }
144
+ export default BigtableStore;