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,643 @@
1
+ /**
2
+ * Amazon DynamoDB store.
3
+ *
4
+ * DynamoDB is a partition-key-based key-value/document store, not a SQL
5
+ * database — it has no arbitrary WHERE-clause queries, no joins, and no
6
+ * ad hoc filtering without first reading data (`FilterExpression` runs
7
+ * *after* items are read/consumed against RCU, it does not reduce the
8
+ * amount of data scanned). Access patterns must be designed up front
9
+ * around the table's partition key (and optional sort key), plus any
10
+ * Global/Local Secondary Indexes. Because none of that fits the SQL-shaped
11
+ * `Dialect` interface (`src/dialects/dialect.ts`), this store instead
12
+ * implements the minimal `NoSqlStore` marker interface
13
+ * (`src/nosql/store.ts`) and exposes DynamoDB's own item-level operations
14
+ * directly.
15
+ *
16
+ * Built on AWS SDK v3: `DynamoDBClient` (`@aws-sdk/client-dynamodb`) is the
17
+ * low-level client that speaks the DynamoDB wire protocol in terms of
18
+ * `AttributeValue` maps (`{ S: 'foo' }`, `{ N: '1' }`, ...). This store
19
+ * wraps it in a `DynamoDBDocumentClient` (`@aws-sdk/lib-dynamodb`), which
20
+ * marshals/unmarshals plain JavaScript objects to/from that wire format
21
+ * automatically, so callers of this class work with ordinary objects.
22
+ */
23
+ import { DynamoDBClient, type DynamoDBClientConfig, type UpdateTableCommandInput, type CreateTableCommandInput, type StreamViewType, type TimeToLiveStatus, type TableDescription, type GlobalSecondaryIndexUpdate, type BillingMode, type ProvisionedThroughput, type PointInTimeRecoveryStatus, type BackupSummary, type BackupDescription, type Tag } from '@aws-sdk/client-dynamodb';
24
+ import { DynamoDBDocumentClient, type PutCommandInput, type UpdateCommandInput, type DeleteCommandInput, type TransactGetCommandInput, type TransactWriteCommandInput, type TranslateConfig } from '@aws-sdk/lib-dynamodb';
25
+ import { DatabaseError } from '../../errors';
26
+ import type { NoSqlStore } from '../store';
27
+ /** Plain JS object representing a DynamoDB item/key (no raw AttributeValues). */
28
+ export type DynamoDbItem = Record<string, unknown>;
29
+ /**
30
+ * Companion enum for DynamoDB's `ReturnValues` parameter (PutItem, UpdateItem,
31
+ * DeleteItem). Provided for callers who prefer enum members over raw string
32
+ * literals; the underlying option fields still accept the original
33
+ * `'NONE' | 'ALL_OLD' | 'ALL_NEW' | 'UPDATED_OLD' | 'UPDATED_NEW'` string
34
+ * literals too; this is purely additive and does not narrow what's accepted.
35
+ */
36
+ export declare enum DynamoReturnValues {
37
+ None = "NONE",
38
+ AllOld = "ALL_OLD",
39
+ AllNew = "ALL_NEW",
40
+ UpdatedOld = "UPDATED_OLD",
41
+ UpdatedNew = "UPDATED_NEW"
42
+ }
43
+ /**
44
+ * Companion enum for DynamoDB's `StreamViewType` (used by `enableStreams`).
45
+ * Provided for callers who prefer enum members over raw string literals; the
46
+ * `enableStreams` parameter still accepts the original
47
+ * `'NEW_IMAGE' | 'OLD_IMAGE' | 'NEW_AND_OLD_IMAGES' | 'KEYS_ONLY'` string
48
+ * literals too; this is purely additive and does not narrow what's accepted.
49
+ */
50
+ export declare enum DynamoStreamViewType {
51
+ NewImage = "NEW_IMAGE",
52
+ OldImage = "OLD_IMAGE",
53
+ NewAndOldImages = "NEW_AND_OLD_IMAGES",
54
+ KeysOnly = "KEYS_ONLY"
55
+ }
56
+ export interface DynamoDbStoreOptions {
57
+ /** AWS region, e.g. 'us-east-1'. Required unless using a local endpoint that ignores it. */
58
+ region?: string;
59
+ /** Static credentials. Omit to fall back to the default AWS credential provider chain. */
60
+ credentials?: {
61
+ accessKeyId: string;
62
+ secretAccessKey: string;
63
+ sessionToken?: string;
64
+ };
65
+ /**
66
+ * Override the service endpoint, e.g. 'http://localhost:8000' for
67
+ * DynamoDB Local / dynamodb-local test containers. When set, region and
68
+ * credentials can be dummy values since DynamoDB Local doesn't validate them.
69
+ */
70
+ endpoint?: string;
71
+ /** Passed straight through to the underlying `DynamoDBClient` constructor for anything not covered above. */
72
+ clientConfig?: DynamoDBClientConfig;
73
+ /** Marshalling options for the document client (e.g. `{ removeUndefinedValues: true }`). */
74
+ translateConfig?: TranslateConfig;
75
+ }
76
+ export interface PutItemOptions {
77
+ /** Conditional write, e.g. 'attribute_not_exists(pk)' to emulate an insert-only put. */
78
+ conditionExpression?: string;
79
+ expressionAttributeNames?: Record<string, string>;
80
+ expressionAttributeValues?: Record<string, unknown>;
81
+ /**
82
+ * PutItem only supports `'NONE'` (default) or `'ALL_OLD'` (returns the
83
+ * item's previous value if one existed, or nothing if it didn't) —
84
+ * unlike UpdateItem, there is no `ALL_NEW`/`UPDATED_*` variant since a Put
85
+ * always writes the whole item.
86
+ */
87
+ returnValues?: PutCommandInput['ReturnValues'] | DynamoReturnValues;
88
+ }
89
+ export interface UpdateItemOptions {
90
+ conditionExpression?: string;
91
+ expressionAttributeNames?: Record<string, string>;
92
+ returnValues?: UpdateCommandInput['ReturnValues'] | DynamoReturnValues;
93
+ }
94
+ export interface DeleteItemOptions {
95
+ conditionExpression?: string;
96
+ expressionAttributeNames?: Record<string, string>;
97
+ expressionAttributeValues?: Record<string, unknown>;
98
+ /**
99
+ * Defaults to `'ALL_OLD'` (returns the deleted item) for backwards
100
+ * compatibility. Pass `'NONE'` to skip returning the deleted item when
101
+ * the caller doesn't need it (saves a small amount of response payload).
102
+ */
103
+ returnValues?: DeleteCommandInput['ReturnValues'] | DynamoReturnValues;
104
+ }
105
+ /** Options controlling the retry/backoff behavior of `batchGetItem`/`batchWriteItem`. */
106
+ export interface BatchRetryOptions {
107
+ /**
108
+ * Maximum number of attempts per chunk (the initial request plus
109
+ * retries) when DynamoDB returns `UnprocessedKeys`/`UnprocessedItems`
110
+ * (typically due to throttling). Defaults to 5.
111
+ */
112
+ maxAttempts?: number;
113
+ /** Base delay in ms for exponential backoff between retries. Defaults to 50ms. */
114
+ baseDelayMs?: number;
115
+ /** Cap on the backoff delay in ms, before jitter is applied. Defaults to 2000ms. */
116
+ maxDelayMs?: number;
117
+ }
118
+ export interface QueryParams {
119
+ /** Name of a Global or Local Secondary Index to query instead of the base table. */
120
+ indexName?: string;
121
+ /** e.g. 'pk = :pk' */
122
+ keyConditionExpression: string;
123
+ expressionAttributeNames?: Record<string, string>;
124
+ expressionAttributeValues?: Record<string, unknown>;
125
+ /** Applied after the key condition, does not reduce RCU consumption. */
126
+ filterExpression?: string;
127
+ /**
128
+ * Restricts which attributes are returned, e.g. `'#n, total'`. Use
129
+ * `expressionAttributeNames` for any reserved-word-safe `#alias` tokens
130
+ * referenced here, same as `keyConditionExpression`/`filterExpression`.
131
+ */
132
+ projectionExpression?: string;
133
+ limit?: number;
134
+ scanIndexForward?: boolean;
135
+ /** Pagination cursor from a previous page's `lastEvaluatedKey`. */
136
+ exclusiveStartKey?: DynamoDbItem;
137
+ consistentRead?: boolean;
138
+ }
139
+ export interface QueryResult<T extends DynamoDbItem = DynamoDbItem> {
140
+ items: T[];
141
+ /** Present when there are more pages; pass back in as `exclusiveStartKey` to continue. */
142
+ lastEvaluatedKey?: DynamoDbItem;
143
+ count: number;
144
+ scannedCount: number;
145
+ }
146
+ export interface ScanParams {
147
+ indexName?: string;
148
+ filterExpression?: string;
149
+ /**
150
+ * Restricts which attributes are returned. Use `expressionAttributeNames`
151
+ * for any `#alias` tokens referenced here (same rules as `getItem()`).
152
+ */
153
+ projectionExpression?: string;
154
+ expressionAttributeNames?: Record<string, string>;
155
+ expressionAttributeValues?: Record<string, unknown>;
156
+ limit?: number;
157
+ exclusiveStartKey?: DynamoDbItem;
158
+ consistentRead?: boolean;
159
+ /** For parallel scans: this segment's index (0-based). */
160
+ segment?: number;
161
+ /** For parallel scans: total number of segments. */
162
+ totalSegments?: number;
163
+ }
164
+ export type ScanResult<T extends DynamoDbItem = DynamoDbItem> = QueryResult<T>;
165
+ /**
166
+ * Describes a single item update for `updateItem()`'s convenience API. Each
167
+ * entry SETs `attributeName` to `value`. For anything beyond a flat SET
168
+ * (REMOVE, ADD, DELETE, nested paths), build an `UpdateExpression` by hand
169
+ * and call the document client returned by `getClient()` directly, or pass
170
+ * a raw `UpdateCommandInput` via `updateItemRaw()`.
171
+ */
172
+ export type UpdateAttributes = Record<string, unknown>;
173
+ /**
174
+ * One entry of a `TransactionCanceledException.CancellationReasons` list —
175
+ * DynamoDB's per-item explanation of why a `TransactWriteItems`/
176
+ * `TransactGetItems` call was cancelled (e.g. a `ConditionCheck` failing on
177
+ * one specific item). `item` is the raw (still-marshalled, `{ S: 'foo' }`
178
+ * style) `AttributeValue` map DynamoDB includes for the failing item, if
179
+ * any — this store doesn't depend on `@aws-sdk/util-dynamodb` to unmarshal
180
+ * it, so callers that want a plain object should unmarshal it themselves.
181
+ */
182
+ export interface DynamoDbCancellationReason {
183
+ /** Status code for why this item's part of the transaction was cancelled, e.g. 'ConditionalCheckFailed', 'None'. */
184
+ code?: string;
185
+ /** Human-readable description of the cancellation reason. */
186
+ message?: string;
187
+ /** Raw (marshalled) AttributeValue map of the item that caused the cancellation, if DynamoDB returned one. */
188
+ item?: Record<string, unknown>;
189
+ }
190
+ /**
191
+ * `DatabaseError` subclass used for all DynamoDB failures wrapped by this
192
+ * store. Adds `cancellationReasons`, populated whenever the underlying AWS
193
+ * error is a `TransactionCanceledException` (thrown by
194
+ * `transactWriteItems()`/`transactGetItems()`), so callers can inspect which
195
+ * item(s) caused the transaction to be cancelled and why without digging
196
+ * into `.parent`/`.original`.
197
+ */
198
+ export declare class DynamoDbError extends DatabaseError {
199
+ /**
200
+ * Per-item cancellation reasons from a `TransactionCanceledException`,
201
+ * in the same order as the `transactItems` request. Undefined for any
202
+ * other kind of error.
203
+ */
204
+ readonly cancellationReasons?: DynamoDbCancellationReason[];
205
+ constructor(message: string, options?: {
206
+ code?: import('../../errors').ErrorCode;
207
+ parent?: Error;
208
+ sql?: string;
209
+ original?: string;
210
+ cancellationReasons?: DynamoDbCancellationReason[];
211
+ });
212
+ }
213
+ /** Result of `listTables()`. */
214
+ export interface ListTablesResult {
215
+ tableNames: string[];
216
+ /** Present when there are more pages; pass back in as `exclusiveStartTableName` to continue. */
217
+ lastEvaluatedTableName?: string;
218
+ }
219
+ /** Result of `describePITR()`. */
220
+ export interface PitrDescription {
221
+ status: PointInTimeRecoveryStatus | undefined;
222
+ recoveryPeriodInDays?: number;
223
+ earliestRestorableDateTime?: Date;
224
+ latestRestorableDateTime?: Date;
225
+ }
226
+ /**
227
+ * Describes a table's (or index's) key attributes so the ORM layer can pick
228
+ * `Query` vs `Scan` and extract item keys for update/delete. Supply this to
229
+ * {@link DynamoDbStore.findAll} et al. via the `key` option (or per-index via
230
+ * `indexes`).
231
+ */
232
+ export interface DynamoKeySchema {
233
+ /** Partition (HASH) key attribute name. */
234
+ partitionKey: string;
235
+ /** Optional sort (RANGE) key attribute name. */
236
+ sortKey?: string;
237
+ /** Key schemas for named GSIs/LSIs, so a query can target an index. */
238
+ indexes?: Record<string, {
239
+ partitionKey: string;
240
+ sortKey?: string;
241
+ }>;
242
+ }
243
+ /** Options for {@link DynamoDbStore.findAll}/{@link DynamoDbStore.findOne}. */
244
+ export interface DynamoFindOptions {
245
+ /** ORM `where` clause (plain equality and/or `Op`-keyed conditions). */
246
+ where?: Record<string, any>;
247
+ /** Key schema; enables `Query` (vs `Scan`) and key extraction. */
248
+ key?: DynamoKeySchema;
249
+ /** Query a named GSI/LSI (its schema must be in `key.indexes`). */
250
+ indexName?: string;
251
+ /** Restrict returned attributes (compiled to a ProjectionExpression). */
252
+ attributes?: string[];
253
+ /** Sort-key ordering for `Query` results: `'ASC'` (default) or `'DESC'`. */
254
+ order?: 'ASC' | 'DESC';
255
+ /** Per-page item cap. */
256
+ limit?: number;
257
+ /** Pagination cursor from a previous page's `lastEvaluatedKey`. */
258
+ exclusiveStartKey?: DynamoDbItem;
259
+ /** Strongly-consistent read (base table only; not valid on a GSI). */
260
+ consistentRead?: boolean;
261
+ }
262
+ /**
263
+ * Amazon DynamoDB store, implementing the minimal `NoSqlStore` marker
264
+ * interface. Unlike the SQL dialects, there is no `query(sql)` — DynamoDB's
265
+ * operations are item/key-shaped (Get/Put/Update/Delete/Query/Scan/Batch/Transact),
266
+ * and that shape is preserved here rather than forced into a SQL string.
267
+ */
268
+ export declare class DynamoDbStore implements NoSqlStore {
269
+ readonly name = "dynamodb";
270
+ readonly library = "@aws-sdk/client-dynamodb";
271
+ private readonly options;
272
+ private client;
273
+ private docClient;
274
+ private connected;
275
+ constructor(options?: DynamoDbStoreOptions);
276
+ connect(): Promise<void>;
277
+ disconnect(): Promise<void>;
278
+ isConnected(): boolean;
279
+ /** Returns the `DynamoDBDocumentClient` (plain-object marshalling), not the raw `DynamoDBClient`. */
280
+ getClient(): DynamoDBDocumentClient;
281
+ /** Access to the low-level `DynamoDBClient` (raw `AttributeValue` shapes), for anything the document client doesn't cover. */
282
+ getRawClient(): DynamoDBClient;
283
+ private requireClient;
284
+ /**
285
+ * Wraps an AWS SDK failure in a `DynamoDbError` (a `DatabaseError`
286
+ * subclass) while preserving the original error (incl. `.name` like
287
+ * `ConditionalCheckFailedException`) on `.parent`/`.original`. When the
288
+ * underlying error is a `TransactionCanceledException`, its
289
+ * `CancellationReasons` (per-item cancellation detail from
290
+ * `transactWriteItems()`/`transactGetItems()`) are also surfaced directly
291
+ * on `.cancellationReasons`, so callers don't have to dig into `.parent`
292
+ * to find out which item caused a transaction to be cancelled.
293
+ */
294
+ private wrapError;
295
+ getItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, key: DynamoDbItem, options?: {
296
+ consistentRead?: boolean;
297
+ projectionExpression?: string;
298
+ }): Promise<T | undefined>;
299
+ /**
300
+ * `options.returnValues` defaults to `'NONE'` (matching real PutItem
301
+ * default behavior). Pass `'ALL_OLD'` to get the item's previous value
302
+ * back (`undefined` if there wasn't one).
303
+ */
304
+ putItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, item: T, options?: PutItemOptions): Promise<T | undefined>;
305
+ /**
306
+ * Convenience update: SETs each key in `updates` to its value. Builds a
307
+ * simple `UpdateExpression`/`ExpressionAttributeValues` internally, using
308
+ * `#k0`, `#k1`, ... as attribute name placeholders (so reserved words like
309
+ * `status` are always safe) merged with any `options.expressionAttributeNames`.
310
+ * For REMOVE/ADD/DELETE or nested-path updates, use `updateItemRaw()`.
311
+ */
312
+ updateItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, key: DynamoDbItem, updates: UpdateAttributes, options?: UpdateItemOptions): Promise<T | undefined>;
313
+ /** Escape hatch for update expressions beyond the flat-SET convenience wrapper above (REMOVE/ADD/DELETE, nested paths, etc). */
314
+ updateItemRaw<T extends DynamoDbItem = DynamoDbItem>(tableName: string, input: UpdateCommandInput): Promise<T | undefined>;
315
+ /** `options.returnValues` defaults to `'ALL_OLD'` (returns the deleted item); pass `'NONE'` to skip returning it. */
316
+ deleteItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, key: DynamoDbItem, options?: DeleteItemOptions): Promise<T | undefined>;
317
+ /**
318
+ * Query by partition key equality (plus an optional sort-key condition)
319
+ * against the base table or a named GSI/LSI. This is the primary way to
320
+ * read more than one item efficiently from DynamoDB — unlike Scan, it
321
+ * only reads the partition(s) that match, not the whole table.
322
+ */
323
+ query<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params: QueryParams): Promise<QueryResult<T>>;
324
+ /**
325
+ * Full table (or index) scan. This reads every item in the table — cost
326
+ * and latency scale with table size, not with how many items you actually
327
+ * want, and `filterExpression` is applied *after* the read (it does not
328
+ * reduce RCU consumption or the amount of data scanned). Prefer `query()`
329
+ * with a well-designed partition/sort key or GSI. Only reach for `scan()`
330
+ * for admin/maintenance/export tasks, small tables, or as a last resort
331
+ * when no query-friendly access pattern exists.
332
+ */
333
+ scan<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params?: ScanParams): Promise<ScanResult<T>>;
334
+ /**
335
+ * Auto-paginating `query()`: DynamoDB caps each `Query` response at 1MB of
336
+ * data, so a query over more items than that fits in a single page and
337
+ * returns a `lastEvaluatedKey` that the caller must pass back in as
338
+ * `exclusiveStartKey` to fetch the next page. Forgetting to loop on that
339
+ * silently truncates results. `queryAll()` follows `lastEvaluatedKey`
340
+ * automatically and returns every matching item across all pages.
341
+ *
342
+ * `params.limit`, if set, still applies per-page (as DynamoDB defines
343
+ * it) — it does not cap the total number of items returned here. To
344
+ * consume pages one at a time instead of buffering everything in memory,
345
+ * use `queryPages()`.
346
+ */
347
+ queryAll<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params: QueryParams): Promise<T[]>;
348
+ /**
349
+ * Async-generator form of `queryAll()`: yields each page of items as it
350
+ * arrives instead of buffering the entire result set in memory, while
351
+ * still following `lastEvaluatedKey` automatically.
352
+ */
353
+ queryPages<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params: QueryParams): AsyncGenerator<T[], void, void>;
354
+ /**
355
+ * Auto-paginating `scan()` — see `queryAll()` above for why this matters
356
+ * (the same 1MB-per-page cap applies to Scan). Reminder: `scan()` is
357
+ * already O(table size) per the warning on `scan()` itself; `scanAll()`
358
+ * makes that even more explicit by reading literally the whole table (or
359
+ * index) into memory across as many pages as it takes.
360
+ */
361
+ scanAll<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params?: ScanParams): Promise<T[]>;
362
+ /** Async-generator form of `scanAll()`; yields each page as it arrives. */
363
+ scanPages<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params?: ScanParams): AsyncGenerator<T[], void, void>;
364
+ /** Sleeps for `ms` milliseconds. */
365
+ private delay;
366
+ /**
367
+ * Exponential backoff with full jitter (AWS's recommended strategy):
368
+ * a random delay between 0 and `min(maxDelayMs, baseDelayMs * 2^attempt)`.
369
+ * `attempt` is 0-based (the delay before the *first* retry, i.e. after
370
+ * the initial attempt has already failed/returned unprocessed items).
371
+ */
372
+ private backoffDelayMs;
373
+ /**
374
+ * BatchGetItem across one or more tables. DynamoDB caps a single
375
+ * BatchGetItem call at 100 items total; this method chunks `keys`
376
+ * internally (25-at-a-time chunks well under the limit, sent
377
+ * sequentially) so callers can pass an arbitrarily large key list without
378
+ * worrying about the limit themselves. Also retries any
379
+ * `UnprocessedKeys` DynamoDB returns for a chunk (throttling) with
380
+ * exponential backoff and jitter between attempts, up to
381
+ * `options.maxAttempts` (default 5) attempts per chunk, before giving up
382
+ * and returning whatever's still unprocessed to the caller.
383
+ */
384
+ batchGetItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, keys: DynamoDbItem[], options?: {
385
+ consistentRead?: boolean;
386
+ chunkSize?: number;
387
+ } & BatchRetryOptions): Promise<{
388
+ items: T[];
389
+ unprocessedKeys: DynamoDbItem[];
390
+ }>;
391
+ /**
392
+ * BatchWriteItem (put and/or delete) against a single table. DynamoDB
393
+ * caps a single BatchWriteItem call at 25 write requests; this method
394
+ * chunks `requests` internally so callers can pass an arbitrarily large
395
+ * batch. Also retries `UnprocessedItems` with exponential backoff and
396
+ * jitter, up to `options.maxAttempts` (default 5) attempts per chunk,
397
+ * before returning whatever's left to the caller.
398
+ */
399
+ batchWriteItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, requests: Array<{
400
+ put?: T;
401
+ } | {
402
+ delete: DynamoDbItem;
403
+ }>, options?: {
404
+ chunkSize?: number;
405
+ } & BatchRetryOptions): Promise<{
406
+ unprocessedCount: number;
407
+ }>;
408
+ /**
409
+ * Passthrough to DynamoDB's TransactWriteItems — up to 100 Put/Update/
410
+ * Delete/ConditionCheck actions, atomically, potentially across multiple
411
+ * tables. Not chunked: DynamoDB rejects the whole transaction if it
412
+ * exceeds the limit, so it's on the caller to stay under it (unlike the
413
+ * batch methods above, there's no safe way to silently split a
414
+ * transaction into several without breaking its atomicity guarantee).
415
+ */
416
+ transactWriteItems(input: Omit<TransactWriteCommandInput, 'TransactItems'> & {
417
+ transactItems: TransactWriteCommandInput['TransactItems'];
418
+ }): Promise<void>;
419
+ /** Passthrough to DynamoDB's TransactGetItems — up to 100 Get actions, read as a single consistent snapshot. */
420
+ transactGetItems<T extends DynamoDbItem = DynamoDbItem>(input: Omit<TransactGetCommandInput, 'TransactItems'> & {
421
+ transactItems: TransactGetCommandInput['TransactItems'];
422
+ }): Promise<Array<T | undefined>>;
423
+ /**
424
+ * Enables DynamoDB Streams on a table via `UpdateTableCommand`'s
425
+ * `StreamSpecification`, choosing what a stream record captures:
426
+ * `KEYS_ONLY` (just the key attributes of the modified item), `NEW_IMAGE`
427
+ * (the entire item as it appears after modification), `OLD_IMAGE` (as it
428
+ * appeared before), or `NEW_AND_OLD_IMAGES` (both). This only flips the
429
+ * table-level setting and returns the ARN DynamoDB assigns the new
430
+ * stream — it does not read from the stream itself; see "Known
431
+ * limitations" in the README for why a stream *consumer* is out of scope
432
+ * for this store.
433
+ */
434
+ enableStreams(tableName: string, streamViewType: StreamViewType | DynamoStreamViewType): Promise<string | undefined>;
435
+ /** Disables DynamoDB Streams on a table via `UpdateTableCommand`. */
436
+ disableStreams(tableName: string): Promise<void>;
437
+ /**
438
+ * Reads back the table's current stream ARN (`undefined` if streams
439
+ * aren't enabled) via `DescribeTableCommand`. Consuming the stream itself
440
+ * (shard iterators / record polling) requires the separate
441
+ * `@aws-sdk/client-dynamodb-streams` package or a Lambda event source
442
+ * mapping — out of scope here, see the README.
443
+ */
444
+ getStreamArn(tableName: string): Promise<string | undefined>;
445
+ /**
446
+ * Enables TTL on a table via `UpdateTimeToLiveCommand`: DynamoDB
447
+ * periodically (usually within 48 hours, not immediately) deletes items
448
+ * whose `attributeName` holds a Unix epoch-seconds number in the past.
449
+ * A table may only have one TTL attribute at a time.
450
+ */
451
+ enableTTL(tableName: string, attributeName: string): Promise<void>;
452
+ /**
453
+ * Disables TTL on a table. DynamoDB requires the currently-enabled
454
+ * `AttributeName` to be repeated on the disabling call, so this first
455
+ * reads it back via `describeTTL()` and is a no-op if TTL isn't
456
+ * currently enabled on the table.
457
+ */
458
+ disableTTL(tableName: string): Promise<void>;
459
+ /** Reads back a table's TTL configuration via `DescribeTimeToLiveCommand`. */
460
+ describeTTL(tableName: string): Promise<{
461
+ status: TimeToLiveStatus | undefined;
462
+ attributeName: string | undefined;
463
+ }>;
464
+ /**
465
+ * Creates a table via `CreateTableCommand`. Thin passthrough to the raw
466
+ * SDK input shape: `params.TableName`, `params.KeySchema`, and
467
+ * `params.AttributeDefinitions` are required (as real CreateTable
468
+ * requires), plus either `params.BillingMode: 'PAY_PER_REQUEST'` or
469
+ * `params.ProvisionedThroughput` (real CreateTable requires one or the
470
+ * other), and optionally `params.GlobalSecondaryIndexes`/
471
+ * `params.LocalSecondaryIndexes`. Table creation is asynchronous on AWS's
472
+ * side (the table starts in `CREATING` status) — this call returns as
473
+ * soon as DynamoDB accepts the request, it does not wait for the table to
474
+ * become `ACTIVE`; poll `describeTable()` if you need to wait.
475
+ */
476
+ createTable(params: CreateTableCommandInput): Promise<TableDescription | undefined>;
477
+ /**
478
+ * Deletes a table via `DeleteTableCommand`. Like `createTable()`, this is
479
+ * asynchronous on AWS's side (the table moves to `DELETING` status); this
480
+ * call returns as soon as DynamoDB accepts the request.
481
+ */
482
+ deleteTable(tableName: string): Promise<TableDescription | undefined>;
483
+ /**
484
+ * Lists table names in the current account/region via `ListTablesCommand`.
485
+ * A single call returns at most 100 table names (or `params.limit` if
486
+ * lower); pass `params.exclusiveStartTableName` (from a previous call's
487
+ * `lastEvaluatedTableName`) to page through the rest.
488
+ */
489
+ listTables(params?: {
490
+ exclusiveStartTableName?: string;
491
+ limit?: number;
492
+ }): Promise<ListTablesResult>;
493
+ /**
494
+ * Reads back a table's full description (status, key schema, billing
495
+ * mode, indexes, stream ARN, item count, etc.) via `DescribeTableCommand`.
496
+ * `getStreamArn()` above is a narrow convenience wrapper around this same
497
+ * command for just the stream ARN.
498
+ */
499
+ describeTable(tableName: string): Promise<TableDescription | undefined>;
500
+ /**
501
+ * Adds or removes a Global Secondary Index on an existing table via
502
+ * `UpdateTableCommand`'s `GlobalSecondaryIndexUpdates`. DynamoDB only
503
+ * allows one GSI create/delete/update action per `UpdateTable` call, so
504
+ * `gsiUpdates` must contain exactly one `GlobalSecondaryIndexUpdate`
505
+ * entry (`{ Create: {...} }`, `{ Update: {...} }`, or `{ Delete: {...} }`).
506
+ * When creating a new GSI, `attributeDefinitions` must include the key
507
+ * attribute(s) of the new index (DynamoDB validates this).
508
+ */
509
+ updateTableIndexes(tableName: string, gsiUpdates: GlobalSecondaryIndexUpdate[], attributeDefinitions?: UpdateTableCommandInput['AttributeDefinitions']): Promise<TableDescription | undefined>;
510
+ /**
511
+ * Switches a table between on-demand (`PAY_PER_REQUEST`) and provisioned
512
+ * (`PROVISIONED`) capacity via `UpdateTableCommand`. When switching to
513
+ * `PROVISIONED`, `throughput` (`ReadCapacityUnits`/`WriteCapacityUnits`)
514
+ * is required (real DynamoDB rejects the call without it); it's ignored
515
+ * when switching to `PAY_PER_REQUEST`.
516
+ */
517
+ updateBillingMode(tableName: string, mode: BillingMode | 'PAY_PER_REQUEST' | 'PROVISIONED', throughput?: ProvisionedThroughput): Promise<TableDescription | undefined>;
518
+ /**
519
+ * Enables Point-in-Time Recovery on a table via
520
+ * `UpdateContinuousBackupsCommand`, allowing restore to any second within
521
+ * the retention window (35 days by default; DynamoDB currently ignores
522
+ * a custom `recoveryPeriodInDays` on enable and defaults to 35).
523
+ */
524
+ enablePITR(tableName: string): Promise<void>;
525
+ /** Disables Point-in-Time Recovery on a table via `UpdateContinuousBackupsCommand`. */
526
+ disablePITR(tableName: string): Promise<void>;
527
+ /** Reads back a table's PITR configuration via `DescribeContinuousBackupsCommand`. */
528
+ describePITR(tableName: string): Promise<PitrDescription>;
529
+ /** Creates an on-demand backup of a table via `CreateBackupCommand`. */
530
+ createBackup(tableName: string, backupName: string): Promise<BackupDescription['BackupDetails']>;
531
+ /** Reads back a backup's full description via `DescribeBackupCommand`. */
532
+ describeBackup(backupArn: string): Promise<BackupDescription | undefined>;
533
+ /**
534
+ * Lists backups via `ListBackupsCommand`, optionally scoped to a single
535
+ * table. Does not auto-paginate — pass the last item's `BackupArn` back
536
+ * in as `exclusiveStartBackupArn` to fetch the next page, same pattern as
537
+ * `listTables()`.
538
+ */
539
+ listBackups(tableName?: string, options?: {
540
+ limit?: number;
541
+ exclusiveStartBackupArn?: string;
542
+ }): Promise<BackupSummary[]>;
543
+ /**
544
+ * Restores a backup into a new table via `RestoreTableFromBackupCommand`.
545
+ * DynamoDB always restores into a *new* table (`newTableName` must not
546
+ * already exist) — it does not overwrite the original table the backup
547
+ * was taken from. Like `createTable()`, this is asynchronous: the new
548
+ * table starts in `CREATING` status.
549
+ */
550
+ restoreTableFromBackup(backupArn: string, newTableName: string): Promise<TableDescription | undefined>;
551
+ /** Adds (or updates, if the key already exists) tags on a table/backup resource via `TagResourceCommand`. */
552
+ tagResource(resourceArn: string, tags: Record<string, string> | Tag[]): Promise<void>;
553
+ /** Removes tags (by key) from a table/backup resource via `UntagResourceCommand`. */
554
+ untagResource(resourceArn: string, tagKeys: string[]): Promise<void>;
555
+ /**
556
+ * Lists tags on a table/backup resource via `ListTagsOfResourceCommand`.
557
+ * Does not auto-paginate — pass a returned `nextToken` back in as
558
+ * `options.nextToken` to fetch the next page.
559
+ */
560
+ listTags(resourceArn: string, options?: {
561
+ nextToken?: string;
562
+ }): Promise<{
563
+ tags: Tag[];
564
+ nextToken?: string;
565
+ }>;
566
+ /**
567
+ * Compile an ORM `where` clause + read options into either a `QueryParams`
568
+ * (when the partition key is pinned by equality, so DynamoDB can Query) or a
569
+ * `ScanParams` (otherwise). Shared by {@link findAll}/{@link findAllPaged}/
570
+ * {@link count}.
571
+ */
572
+ private compileRead;
573
+ /**
574
+ * Fetch items matching the ORM `where` clause. When `options.key` pins the
575
+ * partition key by equality this issues an efficient `Query`; otherwise it
576
+ * falls back to a `Scan` (see the warning on {@link scan}). Returns a single
577
+ * page plus the `lastEvaluatedKey` cursor (pass it back as
578
+ * `exclusiveStartKey` for the next page, or use {@link findAll} to
579
+ * auto-paginate).
580
+ */
581
+ findAllPaged<T extends DynamoDbItem = DynamoDbItem>(tableName: string, options?: DynamoFindOptions): Promise<QueryResult<T>>;
582
+ /**
583
+ * Auto-paginating {@link findAllPaged}: follows `lastEvaluatedKey` and
584
+ * returns every matching item. `options.limit` still applies per page (as
585
+ * DynamoDB defines it); to cap total results, slice the return value.
586
+ */
587
+ findAll<T extends DynamoDbItem = DynamoDbItem>(tableName: string, options?: DynamoFindOptions): Promise<T[]>;
588
+ /** Fetch the first item matching `where` (page-limited to 1), or `undefined`. */
589
+ findOne<T extends DynamoDbItem = DynamoDbItem>(tableName: string, options?: DynamoFindOptions): Promise<T | undefined>;
590
+ /**
591
+ * Count items matching `where` using `Select: 'COUNT'` (server-side count;
592
+ * items are not returned). Follows pagination automatically and sums each
593
+ * page's count.
594
+ */
595
+ count(tableName: string, options?: DynamoFindOptions): Promise<number>;
596
+ /**
597
+ * Insert an item (`PutItem`). By default overwrites any existing item with
598
+ * the same key (native Put semantics); pass `options.key` with
599
+ * `options.insertOnly` to add an `attribute_not_exists(<pk>)` condition so a
600
+ * duplicate primary key fails instead (SQL `INSERT` semantics).
601
+ */
602
+ create<T extends DynamoDbItem = DynamoDbItem>(tableName: string, item: T, options?: {
603
+ key?: DynamoKeySchema;
604
+ insertOnly?: boolean;
605
+ }): Promise<T>;
606
+ /** Insert many items via chunked/retried `BatchWriteItem` puts. */
607
+ bulkCreate<T extends DynamoDbItem = DynamoDbItem>(tableName: string, items: T[], options?: BatchRetryOptions & {
608
+ chunkSize?: number;
609
+ }): Promise<{
610
+ inserted: number;
611
+ unprocessedCount: number;
612
+ }>;
613
+ /**
614
+ * Insert-or-replace an item (`PutItem`) — DynamoDB's native Put already has
615
+ * upsert semantics (it creates the item or overwrites it wholesale).
616
+ */
617
+ upsert<T extends DynamoDbItem = DynamoDbItem>(tableName: string, item: T): Promise<T>;
618
+ /** Extract a full primary key `{pk, sk?}` from top-level eq leaves, or null. */
619
+ private extractFullKey;
620
+ /**
621
+ * Update every item matching `where`, SETting each key in `values`. When
622
+ * `where` pins the full primary key (and nothing else), this is a single
623
+ * `UpdateItem`; otherwise it finds matching items (Query/Scan via `key`),
624
+ * then issues one `UpdateItem` per item. Requires `options.key`. Returns the
625
+ * number of items updated.
626
+ */
627
+ update(tableName: string, values: UpdateAttributes, where: Record<string, any>, options?: {
628
+ key: DynamoKeySchema;
629
+ indexName?: string;
630
+ }): Promise<number>;
631
+ /**
632
+ * Delete every item matching `where`. When `where` pins the full primary key
633
+ * this is a single `DeleteItem`; otherwise it finds matching items and
634
+ * deletes them via chunked `BatchWriteItem`. Requires `options.key`. Returns
635
+ * the number of items deleted.
636
+ */
637
+ destroy(tableName: string, where: Record<string, any>, options?: {
638
+ key: DynamoKeySchema;
639
+ indexName?: string;
640
+ }): Promise<number>;
641
+ /** Project an item down to just its key attributes for the given schema. */
642
+ private itemKey;
643
+ }