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,50 @@
1
+ /**
2
+ * Adapters normalizing the shipped object/key-value stores to one interface.
3
+ *
4
+ * The stores under `src/nosql/` deliberately expose each engine's own API, so
5
+ * their method names and shapes differ:
6
+ *
7
+ * S3 / R2 putObject(bucket, key, body) getObject -> { body } deleteObject objectExists
8
+ * MinIO putObject(bucket, key, data) getObject -> { body } removeObject statObject
9
+ * GCS uploadObject(bucket, key, d) downloadObject -> Buffer deleteObject objectExists
10
+ * Azure Blob uploadBlob(container, key, d) downloadBlob -> Buffer deleteBlob blobExists
11
+ * Redis set(key, value) get -> string | null del exists -> number
12
+ *
13
+ * An external field shouldn't have to care which of those it is talking to.
14
+ * `toExternalStoreAdapter()` duck-types a store and wraps it, so registering one
15
+ * is a single call with no adapter to write.
16
+ */
17
+ /** A value an external field can hold. */
18
+ export type ExternalValue = Buffer | string | Uint8Array;
19
+ /** Options accepted when writing a value. */
20
+ export interface ExternalPutOptions {
21
+ contentType?: string;
22
+ }
23
+ /**
24
+ * The uniform surface external fields are written against.
25
+ *
26
+ * `container` is a bucket (S3/R2/MinIO/GCS) or container (Azure). Stores with no
27
+ * container concept - Redis - ignore it.
28
+ */
29
+ export interface ExternalStoreAdapter {
30
+ /** Identifies the underlying engine, for error messages. */
31
+ readonly engine: string;
32
+ /** Whether this engine has a bucket/container concept. */
33
+ readonly usesContainer: boolean;
34
+ put(container: string | undefined, key: string, value: ExternalValue, options?: ExternalPutOptions): Promise<void>;
35
+ get(container: string | undefined, key: string): Promise<Buffer | null>;
36
+ delete(container: string | undefined, key: string): Promise<void>;
37
+ exists(container: string | undefined, key: string): Promise<boolean>;
38
+ }
39
+ /** Raised when a store can't be adapted or a required container is missing. */
40
+ export declare class ExternalStoreError extends Error {
41
+ constructor(message: string);
42
+ }
43
+ /**
44
+ * Wrap one of the shipped stores - or anything with a compatible shape - in the
45
+ * uniform adapter interface.
46
+ *
47
+ * Detection prefers the store's own `name`, falling back to method duck-typing
48
+ * so a custom or future store still works without a code change here.
49
+ */
50
+ export declare function toExternalStoreAdapter(store: unknown): ExternalStoreAdapter;
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * Adapters normalizing the shipped object/key-value stores to one interface.
4
+ *
5
+ * The stores under `src/nosql/` deliberately expose each engine's own API, so
6
+ * their method names and shapes differ:
7
+ *
8
+ * S3 / R2 putObject(bucket, key, body) getObject -> { body } deleteObject objectExists
9
+ * MinIO putObject(bucket, key, data) getObject -> { body } removeObject statObject
10
+ * GCS uploadObject(bucket, key, d) downloadObject -> Buffer deleteObject objectExists
11
+ * Azure Blob uploadBlob(container, key, d) downloadBlob -> Buffer deleteBlob blobExists
12
+ * Redis set(key, value) get -> string | null del exists -> number
13
+ *
14
+ * An external field shouldn't have to care which of those it is talking to.
15
+ * `toExternalStoreAdapter()` duck-types a store and wraps it, so registering one
16
+ * is a single call with no adapter to write.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.ExternalStoreError = void 0;
20
+ exports.toExternalStoreAdapter = toExternalStoreAdapter;
21
+ /** Raised when a store can't be adapted or a required container is missing. */
22
+ class ExternalStoreError extends Error {
23
+ constructor(message) {
24
+ super(message);
25
+ this.name = 'ExternalStoreError';
26
+ }
27
+ }
28
+ exports.ExternalStoreError = ExternalStoreError;
29
+ /** Coerce whatever a store handed back into a Buffer. */
30
+ async function toBuffer(body) {
31
+ if (body === null || body === undefined)
32
+ return null;
33
+ if (Buffer.isBuffer(body))
34
+ return body;
35
+ if (typeof body === 'string')
36
+ return Buffer.from(body);
37
+ if (body instanceof Uint8Array)
38
+ return Buffer.from(body);
39
+ // AWS SDK v3 bodies expose transformToByteArray(); node streams don't.
40
+ const maybe = body;
41
+ if (typeof maybe.transformToByteArray === 'function') {
42
+ return Buffer.from(await maybe.transformToByteArray());
43
+ }
44
+ // Async iterable (node Readable, or a web stream via Symbol.asyncIterator).
45
+ const iterable = body;
46
+ if (typeof iterable?.[Symbol.asyncIterator] === 'function') {
47
+ const chunks = [];
48
+ for await (const chunk of iterable) {
49
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
50
+ }
51
+ return Buffer.concat(chunks);
52
+ }
53
+ throw new ExternalStoreError(`Could not read the object body: unsupported type ${Object.prototype.toString.call(body)}`);
54
+ }
55
+ function requireContainer(container, engine) {
56
+ if (!container) {
57
+ throw new ExternalStoreError(`${engine} needs a bucket/container. Pass \`bucket\` on the @ExternalField, ` +
58
+ `or \`defaultBucket\` when registering the store.`);
59
+ }
60
+ return container;
61
+ }
62
+ /** S3, R2 and any store with the putObject/getObject/deleteObject shape. */
63
+ function s3StyleAdapter(store, engine) {
64
+ return {
65
+ engine,
66
+ usesContainer: true,
67
+ async put(container, key, value, options) {
68
+ await store.putObject(requireContainer(container, engine), key, value, {
69
+ ...(options?.contentType ? { contentType: options.contentType } : {}),
70
+ });
71
+ },
72
+ async get(container, key) {
73
+ const res = await store.getObject(requireContainer(container, engine), key);
74
+ return toBuffer(res?.body ?? res);
75
+ },
76
+ async delete(container, key) {
77
+ const c = requireContainer(container, engine);
78
+ if (typeof store.deleteObject === 'function')
79
+ await store.deleteObject(c, key);
80
+ else
81
+ await store.removeObject(c, key);
82
+ },
83
+ async exists(container, key) {
84
+ const c = requireContainer(container, engine);
85
+ if (typeof store.objectExists === 'function')
86
+ return store.objectExists(c, key);
87
+ // MinIO has no objectExists; statObject throws when absent.
88
+ try {
89
+ await store.statObject(c, key);
90
+ return true;
91
+ }
92
+ catch {
93
+ return false;
94
+ }
95
+ },
96
+ };
97
+ }
98
+ /** Google Cloud Storage: upload/downloadObject, download returns a Buffer. */
99
+ function gcsAdapter(store) {
100
+ return {
101
+ engine: 'gcs',
102
+ usesContainer: true,
103
+ async put(container, key, value, options) {
104
+ await store.uploadObject(requireContainer(container, 'gcs'), key, value, {
105
+ ...(options?.contentType ? { contentType: options.contentType } : {}),
106
+ });
107
+ },
108
+ async get(container, key) {
109
+ return toBuffer(await store.downloadObject(requireContainer(container, 'gcs'), key));
110
+ },
111
+ async delete(container, key) {
112
+ await store.deleteObject(requireContainer(container, 'gcs'), key);
113
+ },
114
+ async exists(container, key) {
115
+ return store.objectExists(requireContainer(container, 'gcs'), key);
116
+ },
117
+ };
118
+ }
119
+ /** Azure Blob Storage: upload/download/deleteBlob against a container. */
120
+ function azureBlobAdapter(store) {
121
+ return {
122
+ engine: 'azure-blob',
123
+ usesContainer: true,
124
+ async put(container, key, value) {
125
+ await store.uploadBlob(requireContainer(container, 'azure-blob'), key, value);
126
+ },
127
+ async get(container, key) {
128
+ return toBuffer(await store.downloadBlob(requireContainer(container, 'azure-blob'), key));
129
+ },
130
+ async delete(container, key) {
131
+ await store.deleteBlob(requireContainer(container, 'azure-blob'), key);
132
+ },
133
+ async exists(container, key) {
134
+ return store.blobExists(requireContainer(container, 'azure-blob'), key);
135
+ },
136
+ };
137
+ }
138
+ /**
139
+ * Redis and Redis-compatible key-value stores.
140
+ *
141
+ * No container concept: any configured bucket is folded into the key as a
142
+ * prefix, so `bucket: 'avatars'` stores under `avatars:<key>`.
143
+ */
144
+ function redisAdapter(store, engine) {
145
+ const compose = (container, key) => container ? `${container}:${key}` : key;
146
+ return {
147
+ engine,
148
+ usesContainer: false,
149
+ async put(container, key, value) {
150
+ // Redis values are strings; binary payloads round-trip via base64 so a
151
+ // Buffer written is a Buffer read back.
152
+ const encoded = Buffer.isBuffer(value) || value instanceof Uint8Array
153
+ ? Buffer.from(value).toString('base64')
154
+ : String(value);
155
+ await store.set(compose(container, key), encoded);
156
+ },
157
+ async get(container, key) {
158
+ const raw = await store.get(compose(container, key));
159
+ if (raw === null || raw === undefined)
160
+ return null;
161
+ return Buffer.from(String(raw), 'base64');
162
+ },
163
+ async delete(container, key) {
164
+ await store.del(compose(container, key));
165
+ },
166
+ async exists(container, key) {
167
+ return (await store.exists(compose(container, key))) > 0;
168
+ },
169
+ };
170
+ }
171
+ /** True when the object already satisfies the adapter interface. */
172
+ function isAdapter(x) {
173
+ return (x &&
174
+ typeof x.put === 'function' &&
175
+ typeof x.get === 'function' &&
176
+ typeof x.delete === 'function' &&
177
+ typeof x.exists === 'function' &&
178
+ typeof x.engine === 'string');
179
+ }
180
+ /**
181
+ * Wrap one of the shipped stores - or anything with a compatible shape - in the
182
+ * uniform adapter interface.
183
+ *
184
+ * Detection prefers the store's own `name`, falling back to method duck-typing
185
+ * so a custom or future store still works without a code change here.
186
+ */
187
+ function toExternalStoreAdapter(store) {
188
+ if (isAdapter(store))
189
+ return store;
190
+ const s = store;
191
+ if (!s || typeof s !== 'object') {
192
+ throw new ExternalStoreError('registerStore() expects a store instance or an adapter object.');
193
+ }
194
+ const name = typeof s.name === 'string' ? s.name : '';
195
+ switch (name) {
196
+ case 's3':
197
+ case 'r2':
198
+ case 'minio':
199
+ return s3StyleAdapter(s, name);
200
+ case 'gcs':
201
+ return gcsAdapter(s);
202
+ case 'azure-blob':
203
+ return azureBlobAdapter(s);
204
+ case 'redis':
205
+ case 'upstash':
206
+ case 'vercel-kv':
207
+ case 'memcached':
208
+ return redisAdapter(s, name || 'redis');
209
+ }
210
+ // Unknown store: infer from the methods it actually has.
211
+ if (typeof s.putObject === 'function' && typeof s.getObject === 'function') {
212
+ return s3StyleAdapter(s, name || 'object-store');
213
+ }
214
+ if (typeof s.uploadObject === 'function' && typeof s.downloadObject === 'function') {
215
+ return gcsAdapter(s);
216
+ }
217
+ if (typeof s.uploadBlob === 'function' && typeof s.downloadBlob === 'function') {
218
+ return azureBlobAdapter(s);
219
+ }
220
+ if (typeof s.get === 'function' && typeof s.set === 'function' && typeof s.del === 'function') {
221
+ return redisAdapter(s, name || 'key-value');
222
+ }
223
+ throw new ExternalStoreError(`Don't know how to use ${name ? `store '${name}'` : 'this store'} for external fields. ` +
224
+ `Expected an object store (putObject/getObject), a blob store ` +
225
+ `(uploadObject/downloadObject or uploadBlob/downloadBlob), a key-value store ` +
226
+ `(get/set/del), or an object implementing ExternalStoreAdapter.`);
227
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * `@ExternalField` — a model field whose *contents* live in an object or
3
+ * key-value store while the row lives in the database.
4
+ *
5
+ * The table column holds only a reference (the object key). Reading and writing
6
+ * the payload goes through a store registered with `prorm.registerStore()`, so
7
+ * the connection between the row and the object is maintained by the ORM
8
+ * instead of by hand.
9
+ *
10
+ * prorm.registerStore('assets', s3Store, { defaultBucket: 'avatars' });
11
+ *
12
+ * @Table()
13
+ * class User extends Model {
14
+ * @Column(DataTypes.STRING) declare name: string;
15
+ *
16
+ * @ExternalField({ store: 'assets', contentType: 'image/png' })
17
+ * declare avatar: Buffer;
18
+ * }
19
+ *
20
+ * const user = await User.findByPk(1);
21
+ * await user.loadAvatar(); // GET, populates user.avatar
22
+ * user.avatar = newBytes;
23
+ * await user.save(); // PUT, then persists the key column
24
+ *
25
+ * The key column (`avatarKey` by default) is registered automatically, so it
26
+ * does not need its own `@Column`.
27
+ */
28
+ /** How a stored payload is materialized when read back. */
29
+ export type ExternalEncoding = 'buffer' | 'utf8' | 'json';
30
+ export interface ExternalFieldOptions {
31
+ /** Name the store was registered under with `prorm.registerStore()`. */
32
+ store: string;
33
+ /**
34
+ * Bucket / container to store objects in. Falls back to the store's
35
+ * `defaultBucket`. Key-value stores fold this into the key as a prefix.
36
+ */
37
+ bucket?: string;
38
+ /**
39
+ * Column holding the object key. Defaults to `<field>Key` (e.g. `avatarKey`).
40
+ * Registered automatically as a nullable STRING.
41
+ */
42
+ keyColumn?: string;
43
+ /**
44
+ * Prefix for generated keys. Defaults to `<field>/`. Only used when a value
45
+ * is written to a field that has no key yet.
46
+ */
47
+ keyPrefix?: string;
48
+ /** Content type recorded on write, where the store supports it. */
49
+ contentType?: string;
50
+ /**
51
+ * How to materialize the payload on read:
52
+ * - `buffer` (default) — a Buffer, for binary data
53
+ * - `utf8` — a string
54
+ * - `json` — parsed via JSON.parse, stringified on write
55
+ */
56
+ encoding?: ExternalEncoding;
57
+ }
58
+ /** Resolved per-field metadata. */
59
+ export interface ExternalFieldMeta extends ExternalFieldOptions {
60
+ /** The model property (e.g. `avatar`). */
61
+ field: string;
62
+ keyColumn: string;
63
+ keyPrefix: string;
64
+ encoding: ExternalEncoding;
65
+ }
66
+ /**
67
+ * Mark a property as backed by an external store.
68
+ */
69
+ export declare function ExternalField(options: ExternalFieldOptions): PropertyDecorator;
70
+ /** All external fields declared on a model, including inherited ones. */
71
+ export declare function getExternalFields(modelName: string): ExternalFieldMeta[];
72
+ /** One external field's metadata, or undefined. */
73
+ export declare function getExternalField(modelName: string, field: string): ExternalFieldMeta | undefined;
74
+ /** True when the model declares at least one external field. */
75
+ export declare function hasExternalFields(modelName: string): boolean;
76
+ /** Clear registered metadata (used by tests). */
77
+ export declare function clearExternalFieldMetadata(): void;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * `@ExternalField` — a model field whose *contents* live in an object or
4
+ * key-value store while the row lives in the database.
5
+ *
6
+ * The table column holds only a reference (the object key). Reading and writing
7
+ * the payload goes through a store registered with `prorm.registerStore()`, so
8
+ * the connection between the row and the object is maintained by the ORM
9
+ * instead of by hand.
10
+ *
11
+ * prorm.registerStore('assets', s3Store, { defaultBucket: 'avatars' });
12
+ *
13
+ * @Table()
14
+ * class User extends Model {
15
+ * @Column(DataTypes.STRING) declare name: string;
16
+ *
17
+ * @ExternalField({ store: 'assets', contentType: 'image/png' })
18
+ * declare avatar: Buffer;
19
+ * }
20
+ *
21
+ * const user = await User.findByPk(1);
22
+ * await user.loadAvatar(); // GET, populates user.avatar
23
+ * user.avatar = newBytes;
24
+ * await user.save(); // PUT, then persists the key column
25
+ *
26
+ * The key column (`avatarKey` by default) is registered automatically, so it
27
+ * does not need its own `@Column`.
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.ExternalField = ExternalField;
31
+ exports.getExternalFields = getExternalFields;
32
+ exports.getExternalField = getExternalField;
33
+ exports.hasExternalFields = hasExternalFields;
34
+ exports.clearExternalFieldMetadata = clearExternalFieldMetadata;
35
+ const decorators_1 = require("../models/decorators");
36
+ const data_types_1 = require("../models/data-types");
37
+ /** modelName -> field -> metadata */
38
+ const externalFieldMetadata = new Map();
39
+ /**
40
+ * Mark a property as backed by an external store.
41
+ */
42
+ function ExternalField(options) {
43
+ return function (target, propertyKey) {
44
+ const modelName = target?.constructor?.name;
45
+ if (!modelName)
46
+ return;
47
+ const field = String(propertyKey);
48
+ const keyColumn = options.keyColumn || `${field}Key`;
49
+ if (!externalFieldMetadata.has(modelName)) {
50
+ externalFieldMetadata.set(modelName, new Map());
51
+ }
52
+ externalFieldMetadata.get(modelName).set(field, {
53
+ ...options,
54
+ field,
55
+ keyColumn,
56
+ keyPrefix: options.keyPrefix ?? `${field}/`,
57
+ encoding: options.encoding ?? 'buffer',
58
+ });
59
+ // Register the key column so the user doesn't have to declare it. The
60
+ // payload itself is not a column - only the reference is persisted.
61
+ (0, decorators_1.Attribute)(data_types_1.DataTypes.STRING(512))(target, keyColumn);
62
+ };
63
+ }
64
+ /** All external fields declared on a model, including inherited ones. */
65
+ function getExternalFields(modelName) {
66
+ const own = externalFieldMetadata.get(modelName);
67
+ return own ? Array.from(own.values()) : [];
68
+ }
69
+ /** One external field's metadata, or undefined. */
70
+ function getExternalField(modelName, field) {
71
+ return externalFieldMetadata.get(modelName)?.get(field);
72
+ }
73
+ /** True when the model declares at least one external field. */
74
+ function hasExternalFields(modelName) {
75
+ return (externalFieldMetadata.get(modelName)?.size ?? 0) > 0;
76
+ }
77
+ /** Clear registered metadata (used by tests). */
78
+ function clearExternalFieldMetadata() {
79
+ externalFieldMetadata.clear();
80
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * External fields — model fields whose contents live in an object or key-value
3
+ * store while the row lives in the database.
4
+ */
5
+ export { ExternalField, getExternalFields, getExternalField, hasExternalFields, clearExternalFieldMetadata, } from './decorator';
6
+ export type { ExternalFieldOptions, ExternalFieldMeta, ExternalEncoding } from './decorator';
7
+ export { toExternalStoreAdapter, ExternalStoreError, } from './adapters';
8
+ export type { ExternalStoreAdapter, ExternalPutOptions, ExternalValue, } from './adapters';
9
+ export { ExternalStoreRegistry, attachExternalFields } from './runtime';
10
+ export type { RegisterStoreOptions, RegisteredStore } from './runtime';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * External fields — model fields whose contents live in an object or key-value
4
+ * store while the row lives in the database.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.attachExternalFields = exports.ExternalStoreRegistry = exports.ExternalStoreError = exports.toExternalStoreAdapter = exports.clearExternalFieldMetadata = exports.hasExternalFields = exports.getExternalField = exports.getExternalFields = exports.ExternalField = void 0;
8
+ var decorator_1 = require("./decorator");
9
+ Object.defineProperty(exports, "ExternalField", { enumerable: true, get: function () { return decorator_1.ExternalField; } });
10
+ Object.defineProperty(exports, "getExternalFields", { enumerable: true, get: function () { return decorator_1.getExternalFields; } });
11
+ Object.defineProperty(exports, "getExternalField", { enumerable: true, get: function () { return decorator_1.getExternalField; } });
12
+ Object.defineProperty(exports, "hasExternalFields", { enumerable: true, get: function () { return decorator_1.hasExternalFields; } });
13
+ Object.defineProperty(exports, "clearExternalFieldMetadata", { enumerable: true, get: function () { return decorator_1.clearExternalFieldMetadata; } });
14
+ var adapters_1 = require("./adapters");
15
+ Object.defineProperty(exports, "toExternalStoreAdapter", { enumerable: true, get: function () { return adapters_1.toExternalStoreAdapter; } });
16
+ Object.defineProperty(exports, "ExternalStoreError", { enumerable: true, get: function () { return adapters_1.ExternalStoreError; } });
17
+ var runtime_1 = require("./runtime");
18
+ Object.defineProperty(exports, "ExternalStoreRegistry", { enumerable: true, get: function () { return runtime_1.ExternalStoreRegistry; } });
19
+ Object.defineProperty(exports, "attachExternalFields", { enumerable: true, get: function () { return runtime_1.attachExternalFields; } });
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Runtime for `@ExternalField`: the store registry, and the per-instance
3
+ * accessors that keep a row's key column and the stored payload in step.
4
+ */
5
+ import { ExternalStoreAdapter } from './adapters';
6
+ /** Options accepted when registering a store. */
7
+ export interface RegisterStoreOptions {
8
+ /** Bucket/container used by fields that don't name one. */
9
+ defaultBucket?: string;
10
+ }
11
+ /** A store registered for use by external fields. */
12
+ export interface RegisteredStore {
13
+ name: string;
14
+ adapter: ExternalStoreAdapter;
15
+ defaultBucket?: string;
16
+ }
17
+ /** Registry of stores, keyed by the name given to `registerStore()`. */
18
+ export declare class ExternalStoreRegistry {
19
+ private stores;
20
+ register(name: string, store: unknown, options?: RegisterStoreOptions): void;
21
+ get(name: string): RegisteredStore;
22
+ has(name: string): boolean;
23
+ clear(): void;
24
+ }
25
+ /**
26
+ * Attach external-field accessors to a row instance.
27
+ *
28
+ * Each field `avatar` gets:
29
+ * - `avatar` a non-enumerable accessor holding the materialized value
30
+ * - `loadAvatar()` read from the store into `avatar`
31
+ * - `saveAvatar(value)` write to the store and persist the key column
32
+ * - `deleteAvatar()` remove from the store and null the key column
33
+ *
34
+ * The accessor is deliberately **non-enumerable** so `save()`'s sweep over the
35
+ * instance's own keys doesn't try to persist a Buffer into a column that
36
+ * doesn't exist. Assigning to it records a pending write, which the wrapped
37
+ * `save()` flushes before the row is written.
38
+ */
39
+ export declare function attachExternalFields(rowInstance: any, dataValues: Record<string, any>, modelName: string, tableName: string, registry: ExternalStoreRegistry): void;