ts-prorm-orm 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +194 -72
  3. package/dist/audit/history-query.d.ts +35 -0
  4. package/dist/audit/index.d.ts +16 -0
  5. package/dist/audit/logger.d.ts +126 -0
  6. package/dist/cache/cache-manager.d.ts +341 -0
  7. package/dist/cache/index.d.ts +8 -0
  8. package/dist/cache/redis-cluster-cache.d.ts +164 -0
  9. package/dist/cache/redis-cluster-cache.js +19 -36
  10. package/dist/cli/cloud.d.ts +55 -0
  11. package/dist/cli/cloud.js +318 -0
  12. package/dist/cli/commands/auth.d.ts +2 -0
  13. package/dist/cli/commands/auth.js +345 -0
  14. package/dist/cli/commands/billing.d.ts +2 -0
  15. package/dist/cli/commands/billing.js +135 -0
  16. package/dist/cli/commands/code.d.ts +2 -0
  17. package/dist/cli/commands/code.js +168 -0
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +154 -0
  20. package/dist/cli/commands/db.d.ts +2 -0
  21. package/dist/cli/commands/db.js +189 -0
  22. package/dist/cli/commands/index.d.ts +1 -0
  23. package/dist/cli/commands/index.js +22 -0
  24. package/dist/cli/commands/keys.d.ts +2 -0
  25. package/dist/cli/commands/keys.js +100 -0
  26. package/dist/cli/commands/misc.d.ts +2 -0
  27. package/dist/cli/commands/misc.js +282 -0
  28. package/dist/cli/commands/pull.d.ts +2 -0
  29. package/dist/cli/commands/pull.js +306 -0
  30. package/dist/cli/commands/runners.d.ts +2 -0
  31. package/dist/cli/commands/runners.js +218 -0
  32. package/dist/cli/commands/scaffold.d.ts +2 -0
  33. package/dist/cli/commands/scaffold.js +383 -0
  34. package/dist/cli/commands/secrets.d.ts +2 -0
  35. package/dist/cli/commands/secrets.js +162 -0
  36. package/dist/cli/commands/store.d.ts +2 -0
  37. package/dist/cli/commands/store.js +274 -0
  38. package/dist/cli/commands/system.d.ts +10 -0
  39. package/dist/cli/commands/system.js +169 -0
  40. package/dist/cli/commands/teams.d.ts +2 -0
  41. package/dist/cli/commands/teams.js +189 -0
  42. package/dist/cli/commands/user.d.ts +2 -0
  43. package/dist/cli/commands/user.js +171 -0
  44. package/dist/cli/framework.d.ts +103 -0
  45. package/dist/cli/framework.js +436 -0
  46. package/dist/cli/io.d.ts +26 -0
  47. package/dist/cli/io.js +181 -0
  48. package/dist/cli/keychain.d.ts +10 -0
  49. package/dist/cli/keychain.js +101 -0
  50. package/dist/cli/prompt.d.ts +20 -0
  51. package/dist/cli/prompt.js +111 -0
  52. package/dist/cli.d.ts +214 -0
  53. package/dist/cli.js +72 -5
  54. package/dist/compliance/audit-trail.d.ts +66 -0
  55. package/dist/compliance/backup-verification.d.ts +279 -0
  56. package/dist/compliance/breach-detector.d.ts +197 -0
  57. package/dist/compliance/consent-record.d.ts +107 -0
  58. package/dist/compliance/consent-versioning.d.ts +169 -0
  59. package/dist/compliance/cross-border-log.d.ts +254 -0
  60. package/dist/compliance/data-classifier.d.ts +127 -0
  61. package/dist/compliance/data-lineage.d.ts +268 -0
  62. package/dist/compliance/data-masker.d.ts +110 -0
  63. package/dist/compliance/data-portability.d.ts +98 -0
  64. package/dist/compliance/data-retention.d.ts +108 -0
  65. package/dist/compliance/dsar-workflow.d.ts +175 -0
  66. package/dist/compliance/field-encryption.d.ts +84 -0
  67. package/dist/compliance/immutable-record.d.ts +84 -0
  68. package/dist/compliance/index.d.ts +93 -0
  69. package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
  70. package/dist/compliance/pseudonymization.d.ts +96 -0
  71. package/dist/compliance/query-firewall.d.ts +661 -0
  72. package/dist/compliance/rate-limiter.d.ts +203 -0
  73. package/dist/compliance/right-to-erasure.d.ts +96 -0
  74. package/dist/compliance/row-level-security.d.ts +152 -0
  75. package/dist/compliance/security-decorator.d.ts +388 -0
  76. package/dist/compliance/security-monitor.d.ts +170 -0
  77. package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
  78. package/dist/compliance/session-isolation.d.ts +286 -0
  79. package/dist/compliance/tls-enforcer.d.ts +51 -0
  80. package/dist/compliance/worm-storage.d.ts +225 -0
  81. package/dist/connection-manager.d.ts +130 -0
  82. package/dist/connection-pool.d.ts +311 -0
  83. package/dist/decorators/audit.d.ts +49 -0
  84. package/dist/decorators/check.d.ts +218 -0
  85. package/dist/decorators/collate.d.ts +346 -0
  86. package/dist/decorators/comment.d.ts +51 -0
  87. package/dist/decorators/database-settings.d.ts +193 -0
  88. package/dist/decorators/default.d.ts +148 -0
  89. package/dist/decorators/encryption.d.ts +175 -0
  90. package/dist/decorators/engine.d.ts +97 -0
  91. package/dist/decorators/fk-constraints.d.ts +387 -0
  92. package/dist/decorators/foreign-table.d.ts +57 -0
  93. package/dist/decorators/generated.d.ts +232 -0
  94. package/dist/decorators/hstore.d.ts +96 -0
  95. package/dist/decorators/index.d.ts +57 -0
  96. package/dist/decorators/index.js +14 -30
  97. package/dist/decorators/json-column.d.ts +47 -0
  98. package/dist/decorators/jsonb.d.ts +83 -0
  99. package/dist/decorators/orm-decorators.d.ts +274 -0
  100. package/dist/decorators/permissions.d.ts +192 -0
  101. package/dist/decorators/procedure.d.ts +168 -0
  102. package/dist/decorators/procedure.js +31 -7
  103. package/dist/decorators/query-options.d.ts +527 -0
  104. package/dist/decorators/range.d.ts +122 -0
  105. package/dist/decorators/set-column.d.ts +43 -0
  106. package/dist/decorators/spatial.d.ts +60 -0
  107. package/dist/decorators/storage.d.ts +561 -0
  108. package/dist/decorators/timezone.d.ts +319 -0
  109. package/dist/decorators/trigger.d.ts +50 -0
  110. package/dist/decorators/uuid.d.ts +102 -0
  111. package/dist/decorators/view.d.ts +213 -0
  112. package/dist/diagrams/chen-diagram.d.ts +70 -0
  113. package/dist/diagrams/chen-diagram.js +33 -31
  114. package/dist/diagrams/class-diagram.d.ts +78 -0
  115. package/dist/diagrams/class-diagram.js +23 -27
  116. package/dist/diagrams/dependency-diagram.d.ts +82 -0
  117. package/dist/diagrams/dependency-diagram.js +18 -9
  118. package/dist/diagrams/er-diagram.d.ts +82 -0
  119. package/dist/diagrams/er-diagram.js +174 -231
  120. package/dist/diagrams/flow-diagram.d.ts +70 -0
  121. package/dist/diagrams/flow-diagram.js +23 -18
  122. package/dist/diagrams/gantt-diagram.d.ts +67 -0
  123. package/dist/diagrams/gantt-diagram.js +20 -18
  124. package/dist/diagrams/index-diagram.d.ts +61 -0
  125. package/dist/diagrams/index-diagram.js +36 -31
  126. package/dist/diagrams/index.d.ts +155 -0
  127. package/dist/diagrams/index.js +7 -1
  128. package/dist/diagrams/migration-diagram.d.ts +67 -0
  129. package/dist/diagrams/migration-diagram.js +45 -57
  130. package/dist/diagrams/model-diagram.d.ts +85 -0
  131. package/dist/diagrams/model-diagram.js +225 -287
  132. package/dist/diagrams/package-diagram.d.ts +69 -0
  133. package/dist/diagrams/package-diagram.js +30 -32
  134. package/dist/diagrams/palette.d.ts +138 -0
  135. package/dist/diagrams/palette.js +134 -25
  136. package/dist/diagrams/relational-diagram.d.ts +82 -0
  137. package/dist/diagrams/relational-diagram.js +51 -59
  138. package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
  139. package/dist/diagrams/schemadoc-diagram.js +36 -28
  140. package/dist/diagrams/sequence-diagram.d.ts +61 -0
  141. package/dist/diagrams/sequence-diagram.js +20 -11
  142. package/dist/diagrams/state-diagram.d.ts +85 -0
  143. package/dist/diagrams/state-diagram.js +21 -17
  144. package/dist/diagrams/svg-dom.d.ts +62 -0
  145. package/dist/diagrams/svg-dom.js +11 -0
  146. package/dist/diagrams/tree-diagram.d.ts +47 -0
  147. package/dist/diagrams/tree-diagram.js +19 -10
  148. package/dist/dialects/clickhouse/index.d.ts +660 -0
  149. package/dist/dialects/clickhouse/index.js +107 -2
  150. package/dist/dialects/cockroachdb/index.d.ts +1708 -0
  151. package/dist/dialects/cockroachdb/index.js +139 -10
  152. package/dist/dialects/cratedb/index.d.ts +262 -0
  153. package/dist/dialects/cratedb/index.js +148 -0
  154. package/dist/dialects/databricks/index.d.ts +397 -0
  155. package/dist/dialects/databricks/index.js +233 -11
  156. package/dist/dialects/db2/index.d.ts +729 -0
  157. package/dist/dialects/db2/index.js +152 -2
  158. package/dist/dialects/dialect.d.ts +1653 -0
  159. package/dist/dialects/duckdb/index.d.ts +440 -0
  160. package/dist/dialects/duckdb/index.js +21 -37
  161. package/dist/dialects/exasol/index.d.ts +197 -0
  162. package/dist/dialects/exasol/index.js +14 -0
  163. package/dist/dialects/firebird/index.d.ts +286 -0
  164. package/dist/dialects/firebird/index.js +135 -0
  165. package/dist/dialects/greenplum/index.d.ts +336 -0
  166. package/dist/dialects/greenplum/index.js +168 -0
  167. package/dist/dialects/hana/index.d.ts +512 -0
  168. package/dist/dialects/hana/index.js +17 -35
  169. package/dist/dialects/mariadb/index.d.ts +1241 -0
  170. package/dist/dialects/mariadb/index.js +181 -43
  171. package/dist/dialects/mssql/index.d.ts +729 -0
  172. package/dist/dialects/mssql/index.js +76 -7
  173. package/dist/dialects/mysql/index.d.ts +1233 -0
  174. package/dist/dialects/mysql/index.js +87 -19
  175. package/dist/dialects/oracle/index.d.ts +1222 -0
  176. package/dist/dialects/oracle/index.js +210 -9
  177. package/dist/dialects/postgres/index.d.ts +1598 -0
  178. package/dist/dialects/postgres/index.js +34 -13
  179. package/dist/dialects/query-stream-helper.d.ts +58 -0
  180. package/dist/dialects/questdb/index.d.ts +430 -0
  181. package/dist/dialects/questdb/index.js +292 -0
  182. package/dist/dialects/redshift/index.d.ts +933 -0
  183. package/dist/dialects/redshift/index.js +17 -5
  184. package/dist/dialects/singlestore/index.d.ts +233 -0
  185. package/dist/dialects/singlestore/index.js +53 -0
  186. package/dist/dialects/snowflake/index.d.ts +727 -0
  187. package/dist/dialects/snowflake/index.js +154 -5
  188. package/dist/dialects/spanner/index.d.ts +660 -0
  189. package/dist/dialects/spanner/index.js +43 -21
  190. package/dist/dialects/sqlite/index.d.ts +1133 -0
  191. package/dist/dialects/sqlite/index.js +168 -30
  192. package/dist/dialects/tidb/index.d.ts +226 -0
  193. package/dist/dialects/tidb/index.js +10 -0
  194. package/dist/dialects/timescaledb/index.d.ts +286 -0
  195. package/dist/dialects/timescaledb/index.js +179 -0
  196. package/dist/dialects/trino/index.d.ts +230 -0
  197. package/dist/dialects/trino/index.js +85 -10
  198. package/dist/dialects/turso/index.d.ts +98 -0
  199. package/dist/dialects/turso/index.js +10 -0
  200. package/dist/dialects/vertica/index.d.ts +321 -0
  201. package/dist/dialects/vertica/index.js +161 -0
  202. package/dist/dialects/yugabytedb/index.d.ts +276 -0
  203. package/dist/dialects/yugabytedb/index.js +121 -0
  204. package/dist/errors/index.d.ts +378 -0
  205. package/dist/errors/index.js +29 -1
  206. package/dist/errors/utils.d.ts +53 -0
  207. package/dist/errors.d.ts +5 -0
  208. package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
  209. package/dist/extensions/catalog/mssql-features.d.ts +20 -0
  210. package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
  211. package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
  212. package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
  213. package/dist/extensions/index.d.ts +34 -0
  214. package/dist/extensions/types.d.ts +43 -0
  215. package/dist/external-fields/adapters.d.ts +50 -0
  216. package/dist/external-fields/adapters.js +227 -0
  217. package/dist/external-fields/decorator.d.ts +77 -0
  218. package/dist/external-fields/decorator.js +80 -0
  219. package/dist/external-fields/index.d.ts +10 -0
  220. package/dist/external-fields/index.js +19 -0
  221. package/dist/external-fields/runtime.d.ts +39 -0
  222. package/dist/external-fields/runtime.js +221 -0
  223. package/dist/foreign-data.d.ts +168 -0
  224. package/dist/graph/base-graph-dialect.d.ts +250 -0
  225. package/dist/graph/base-graph-dialect.js +539 -0
  226. package/dist/graph/dgraph/index.d.ts +65 -0
  227. package/dist/graph/dgraph/index.js +559 -0
  228. package/dist/graph/gremlin/index.d.ts +59 -0
  229. package/dist/graph/gremlin/index.js +378 -0
  230. package/dist/graph/index.d.ts +60 -0
  231. package/dist/graph/index.js +67 -0
  232. package/dist/graph/neo4j/index.d.ts +50 -0
  233. package/dist/graph/neo4j/index.js +462 -0
  234. package/dist/graph/types.d.ts +213 -0
  235. package/dist/graph/types.js +234 -0
  236. package/dist/hooks/hooks-manager.d.ts +189 -0
  237. package/dist/hooks/index.d.ts +8 -0
  238. package/dist/index.d.ts +713 -0
  239. package/dist/index.js +36 -4
  240. package/dist/logging.d.ts +183 -0
  241. package/dist/migrations/index.d.ts +9 -0
  242. package/dist/migrations/migration.d.ts +143 -0
  243. package/dist/migrations/migrator.d.ts +199 -0
  244. package/dist/migrations/prormmigration.d.ts +131 -0
  245. package/dist/migrations/query-interface.d.ts +335 -0
  246. package/dist/migrations/seeder.d.ts +167 -0
  247. package/dist/models/associations.d.ts +131 -0
  248. package/dist/models/associations.js +7 -2
  249. package/dist/models/constraints.d.ts +175 -0
  250. package/dist/models/data-types.d.ts +1656 -0
  251. package/dist/models/decorators.d.ts +328 -0
  252. package/dist/models/decorators.js +61 -82
  253. package/dist/models/eager-load.d.ts +86 -0
  254. package/dist/models/eager-load.js +369 -0
  255. package/dist/models/index.d.ts +13 -0
  256. package/dist/models/indexes.d.ts +325 -0
  257. package/dist/models/methods.d.ts +419 -0
  258. package/dist/models/model-manager.d.ts +76 -0
  259. package/dist/models/model.d.ts +820 -0
  260. package/dist/models/model.js +15 -101
  261. package/dist/models/operators.d.ts +29 -0
  262. package/dist/models/scopes.d.ts +71 -0
  263. package/dist/models/typescript-types.d.ts +177 -0
  264. package/dist/nosql/aerospike/index.d.ts +126 -0
  265. package/dist/nosql/allegrograph/index.d.ts +86 -0
  266. package/dist/nosql/arangodb/index.d.ts +285 -0
  267. package/dist/nosql/arangodb/index.js +274 -2
  268. package/dist/nosql/arangodb/where.d.ts +38 -0
  269. package/dist/nosql/arangodb/where.js +94 -0
  270. package/dist/nosql/azure-blob/index.d.ts +104 -0
  271. package/dist/nosql/beanstalkd/index.d.ts +88 -0
  272. package/dist/nosql/beequeue/index.d.ts +99 -0
  273. package/dist/nosql/bigchaindb/index.d.ts +113 -0
  274. package/dist/nosql/bigtable/index.d.ts +144 -0
  275. package/dist/nosql/blazegraph/index.d.ts +88 -0
  276. package/dist/nosql/bullmq/index.d.ts +83 -0
  277. package/dist/nosql/cassandra/index.d.ts +119 -0
  278. package/dist/nosql/chroma/index.d.ts +151 -0
  279. package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
  280. package/dist/nosql/coherence/index.d.ts +91 -0
  281. package/dist/nosql/cosmosdb/index.d.ts +78 -0
  282. package/dist/nosql/couchbase/index.d.ts +103 -0
  283. package/dist/nosql/dax/index.d.ts +118 -0
  284. package/dist/nosql/deno-kv/index.d.ts +109 -0
  285. package/dist/nosql/dgraph/index.d.ts +80 -0
  286. package/dist/nosql/doris/index.d.ts +88 -0
  287. package/dist/nosql/druid/index.d.ts +95 -0
  288. package/dist/nosql/dynamodb/index.d.ts +643 -0
  289. package/dist/nosql/dynamodb/index.js +423 -0
  290. package/dist/nosql/elasticsearch/index.d.ts +239 -0
  291. package/dist/nosql/etcd/index.d.ts +243 -0
  292. package/dist/nosql/eventhubs/index.d.ts +89 -0
  293. package/dist/nosql/eventstore/index.d.ts +102 -0
  294. package/dist/nosql/faunadb/index.d.ts +141 -0
  295. package/dist/nosql/faunadb/index.js +329 -0
  296. package/dist/nosql/firestore/index.d.ts +67 -0
  297. package/dist/nosql/fluree/index.d.ts +88 -0
  298. package/dist/nosql/fuseki/index.d.ts +94 -0
  299. package/dist/nosql/gcs/index.d.ts +62 -0
  300. package/dist/nosql/gearman/index.d.ts +77 -0
  301. package/dist/nosql/geode/index.d.ts +93 -0
  302. package/dist/nosql/graphdb/index.d.ts +86 -0
  303. package/dist/nosql/graylog/index.d.ts +118 -0
  304. package/dist/nosql/gridgain/index.d.ts +78 -0
  305. package/dist/nosql/hazelcast/index.d.ts +73 -0
  306. package/dist/nosql/hbase/index.d.ts +123 -0
  307. package/dist/nosql/ignite/index.d.ts +80 -0
  308. package/dist/nosql/immudb/index.d.ts +131 -0
  309. package/dist/nosql/index.d.ts +215 -0
  310. package/dist/nosql/infinispan/index.d.ts +95 -0
  311. package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
  312. package/dist/nosql/influxdb/flux-compiler.js +170 -0
  313. package/dist/nosql/influxdb/index.d.ts +300 -0
  314. package/dist/nosql/influxdb/index.js +0 -0
  315. package/dist/nosql/kafka/index.d.ts +113 -0
  316. package/dist/nosql/keyspaces/index.d.ts +122 -0
  317. package/dist/nosql/kinesis/index.d.ts +121 -0
  318. package/dist/nosql/leveldb/index.d.ts +112 -0
  319. package/dist/nosql/leveldb/index.js +103 -1
  320. package/dist/nosql/lmdb/index.d.ts +76 -0
  321. package/dist/nosql/loki/index.d.ts +126 -0
  322. package/dist/nosql/marklogic/index.d.ts +76 -0
  323. package/dist/nosql/materialize/index.d.ts +91 -0
  324. package/dist/nosql/meilisearch/index.d.ts +76 -0
  325. package/dist/nosql/memcached/index.d.ts +138 -0
  326. package/dist/nosql/milvus/index.d.ts +167 -0
  327. package/dist/nosql/minio/index.d.ts +122 -0
  328. package/dist/nosql/momento/index.d.ts +99 -0
  329. package/dist/nosql/mongodb/index.d.ts +265 -0
  330. package/dist/nosql/mongodb/index.js +139 -0
  331. package/dist/nosql/mongodb/where.d.ts +8 -0
  332. package/dist/nosql/mongodb/where.js +181 -0
  333. package/dist/nosql/nats/index.d.ts +139 -0
  334. package/dist/nosql/nedb/index.d.ts +79 -0
  335. package/dist/nosql/neo4j/index.d.ts +217 -0
  336. package/dist/nosql/neo4j/index.js +26 -14
  337. package/dist/nosql/neptune/index.d.ts +234 -0
  338. package/dist/nosql/neptune/index.js +23 -9
  339. package/dist/nosql/nsq/index.d.ts +93 -0
  340. package/dist/nosql/opensearch/index.d.ts +97 -0
  341. package/dist/nosql/orientdb/index.d.ts +72 -0
  342. package/dist/nosql/papertrail/index.d.ts +120 -0
  343. package/dist/nosql/pinecone/index.d.ts +148 -0
  344. package/dist/nosql/pinot/index.d.ts +90 -0
  345. package/dist/nosql/pouchdb/index.d.ts +95 -0
  346. package/dist/nosql/prometheus/index.d.ts +112 -0
  347. package/dist/nosql/provendb/index.d.ts +143 -0
  348. package/dist/nosql/provendb/index.js +262 -0
  349. package/dist/nosql/pubsub/index.d.ts +83 -0
  350. package/dist/nosql/pulsar/index.d.ts +105 -0
  351. package/dist/nosql/qdrant/index.d.ts +231 -0
  352. package/dist/nosql/qldb/index.d.ts +182 -0
  353. package/dist/nosql/qldb/index.js +302 -1
  354. package/dist/nosql/r2/index.d.ts +160 -0
  355. package/dist/nosql/rabbitmq/index.d.ts +131 -0
  356. package/dist/nosql/ravendb/index.d.ts +138 -0
  357. package/dist/nosql/ravendb/index.js +323 -9
  358. package/dist/nosql/ravendb/where.d.ts +38 -0
  359. package/dist/nosql/ravendb/where.js +94 -0
  360. package/dist/nosql/redis/index.d.ts +267 -0
  361. package/dist/nosql/redis/index.js +19 -5
  362. package/dist/nosql/redpanda/index.d.ts +117 -0
  363. package/dist/nosql/resque/index.d.ts +91 -0
  364. package/dist/nosql/rethinkdb/index.d.ts +194 -0
  365. package/dist/nosql/rethinkdb/index.js +290 -0
  366. package/dist/nosql/rethinkdb/where.d.ts +38 -0
  367. package/dist/nosql/rethinkdb/where.js +94 -0
  368. package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
  369. package/dist/nosql/rocksdb/document-layer.js +338 -0
  370. package/dist/nosql/rocksdb/index.d.ts +112 -0
  371. package/dist/nosql/rocksdb/index.js +103 -1
  372. package/dist/nosql/rocksdb/where-match.d.ts +21 -0
  373. package/dist/nosql/rocksdb/where-match.js +238 -0
  374. package/dist/nosql/rockset/index.d.ts +84 -0
  375. package/dist/nosql/s3/index.d.ts +170 -0
  376. package/dist/nosql/scylladb/index.d.ts +117 -0
  377. package/dist/nosql/signoz/index.d.ts +116 -0
  378. package/dist/nosql/sns/index.d.ts +99 -0
  379. package/dist/nosql/solr/index.d.ts +129 -0
  380. package/dist/nosql/splunk/index.d.ts +125 -0
  381. package/dist/nosql/sqs/index.d.ts +116 -0
  382. package/dist/nosql/stardog/index.d.ts +86 -0
  383. package/dist/nosql/starrocks/index.d.ts +89 -0
  384. package/dist/nosql/store.d.ts +23 -0
  385. package/dist/nosql/sumologic/index.d.ts +119 -0
  386. package/dist/nosql/surrealdb/index.d.ts +156 -0
  387. package/dist/nosql/surrealdb/index.js +174 -1
  388. package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
  389. package/dist/nosql/surrealdb/query-compiler.js +193 -0
  390. package/dist/nosql/terminusdb/index.d.ts +95 -0
  391. package/dist/nosql/tigergraph/index.d.ts +314 -0
  392. package/dist/nosql/typesense/index.d.ts +82 -0
  393. package/dist/nosql/unqlite/index.d.ts +68 -0
  394. package/dist/nosql/upstash/index.d.ts +80 -0
  395. package/dist/nosql/vercel-kv/index.d.ts +82 -0
  396. package/dist/nosql/victoriametrics/index.d.ts +129 -0
  397. package/dist/nosql/virtuoso/index.d.ts +87 -0
  398. package/dist/nosql/weaviate/index.d.ts +196 -0
  399. package/dist/operators/index.d.ts +7 -0
  400. package/dist/operators.d.ts +2947 -0
  401. package/dist/operators.js +46 -1
  402. package/dist/prisma-migrate/index.d.ts +28 -0
  403. package/dist/prisma-migrate/migration-generator.d.ts +21 -0
  404. package/dist/prisma-migrate/model-generator.d.ts +12 -0
  405. package/dist/prisma-migrate/relations.d.ts +28 -0
  406. package/dist/prisma-migrate/schema-parser.d.ts +42 -0
  407. package/dist/prisma-migrate/type-mapper.d.ts +20 -0
  408. package/dist/prorm.d.ts +2093 -0
  409. package/dist/prorm.js +721 -302
  410. package/dist/query-builders/cte-builder.d.ts +104 -0
  411. package/dist/query-builders/functions/aggregate.d.ts +199 -0
  412. package/dist/query-builders/functions/conditional.d.ts +195 -0
  413. package/dist/query-builders/functions/datetime.d.ts +202 -0
  414. package/dist/query-builders/functions/fulltext.d.ts +220 -0
  415. package/dist/query-builders/functions/index.d.ts +17 -0
  416. package/dist/query-builders/functions/json.d.ts +157 -0
  417. package/dist/query-builders/functions/math.d.ts +215 -0
  418. package/dist/query-builders/functions/string.d.ts +233 -0
  419. package/dist/query-builders/functions/window.d.ts +209 -0
  420. package/dist/query-builders/include-builder.d.ts +85 -0
  421. package/dist/query-builders/index-expression-builder.d.ts +153 -0
  422. package/dist/query-builders/index.d.ts +121 -0
  423. package/dist/query-builders/index.js +10 -0
  424. package/dist/query-builders/insert-builder.d.ts +62 -0
  425. package/dist/query-builders/model-helpers.d.ts +28 -0
  426. package/dist/query-builders/order-limit-builder.d.ts +84 -0
  427. package/dist/query-builders/sql-compiler.d.ts +562 -0
  428. package/dist/query-builders/subquery-builder.d.ts +133 -0
  429. package/dist/query-builders/update-builder.d.ts +71 -0
  430. package/dist/query-builders/view-builder.d.ts +189 -0
  431. package/dist/query-builders/where-builder.d.ts +124 -0
  432. package/dist/query-interface.d.ts +407 -0
  433. package/dist/query-interface.js +84 -0
  434. package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
  435. package/dist/query-optimizers/explain-plans.d.ts +187 -0
  436. package/dist/query-optimizers/index.d.ts +27 -0
  437. package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
  438. package/dist/query-optimizers/query-hints.d.ts +201 -0
  439. package/dist/query-optimizers/query-optimizer.d.ts +162 -0
  440. package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
  441. package/dist/replica-manager.d.ts +235 -0
  442. package/dist/schema/index.d.ts +7 -0
  443. package/dist/schema/migration-generator.d.ts +74 -0
  444. package/dist/schema/schema-differ.d.ts +114 -0
  445. package/dist/schema/types.d.ts +246 -0
  446. package/dist/schema-objects.d.ts +78 -0
  447. package/dist/schema-objects.js +203 -0
  448. package/dist/sql-constants.d.ts +240 -0
  449. package/dist/sqlite-advanced.d.ts +572 -0
  450. package/dist/streams/index.d.ts +5 -0
  451. package/dist/streams/transforms.d.ts +120 -0
  452. package/dist/transaction.d.ts +221 -0
  453. package/dist/types/index.d.ts +3123 -0
  454. package/dist/user-management.d.ts +141 -0
  455. package/dist/utils/date.d.ts +149 -0
  456. package/dist/utils/index.d.ts +359 -0
  457. package/dist/utils/string.d.ts +88 -0
  458. package/dist/validators/index.d.ts +7 -0
  459. package/dist/validators/validator.d.ts +306 -0
  460. package/package.json +20 -5
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ /**
3
+ * Runtime for `@ExternalField`: the store registry, and the per-instance
4
+ * accessors that keep a row's key column and the stored payload in step.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ExternalStoreRegistry = void 0;
8
+ exports.attachExternalFields = attachExternalFields;
9
+ const adapters_1 = require("./adapters");
10
+ const decorator_1 = require("./decorator");
11
+ /** Registry of stores, keyed by the name given to `registerStore()`. */
12
+ class ExternalStoreRegistry {
13
+ constructor() {
14
+ this.stores = new Map();
15
+ }
16
+ register(name, store, options = {}) {
17
+ this.stores.set(name, {
18
+ name,
19
+ adapter: (0, adapters_1.toExternalStoreAdapter)(store),
20
+ defaultBucket: options.defaultBucket,
21
+ });
22
+ }
23
+ get(name) {
24
+ const found = this.stores.get(name);
25
+ if (!found) {
26
+ const known = Array.from(this.stores.keys());
27
+ throw new adapters_1.ExternalStoreError(`No store registered as '${name}'.` +
28
+ (known.length
29
+ ? ` Registered: ${known.join(', ')}.`
30
+ : ` Register one with prorm.registerStore('${name}', store).`));
31
+ }
32
+ return found;
33
+ }
34
+ has(name) {
35
+ return this.stores.has(name);
36
+ }
37
+ clear() {
38
+ this.stores.clear();
39
+ }
40
+ }
41
+ exports.ExternalStoreRegistry = ExternalStoreRegistry;
42
+ /** Capitalize for method naming (`avatar` -> `Avatar`). */
43
+ function capitalize(s) {
44
+ return s.charAt(0).toUpperCase() + s.slice(1);
45
+ }
46
+ /** Encode a value for storage according to the field's encoding. */
47
+ function encode(value, meta) {
48
+ if (value === null || value === undefined) {
49
+ throw new adapters_1.ExternalStoreError(`Cannot write null to external field '${meta.field}'. ` +
50
+ `Use delete${capitalize(meta.field)}() to remove it.`);
51
+ }
52
+ switch (meta.encoding) {
53
+ case 'json':
54
+ return Buffer.from(JSON.stringify(value), 'utf8');
55
+ case 'utf8':
56
+ return Buffer.from(String(value), 'utf8');
57
+ default:
58
+ if (Buffer.isBuffer(value))
59
+ return value;
60
+ if (value instanceof Uint8Array)
61
+ return Buffer.from(value);
62
+ if (typeof value === 'string')
63
+ return Buffer.from(value);
64
+ throw new adapters_1.ExternalStoreError(`External field '${meta.field}' is encoded as 'buffer' but got ` +
65
+ `${typeof value}. Pass a Buffer/Uint8Array/string, or set ` +
66
+ `encoding: 'json' on the field.`);
67
+ }
68
+ }
69
+ /** Materialize a stored payload according to the field's encoding. */
70
+ function decode(buf, meta) {
71
+ if (buf === null)
72
+ return null;
73
+ switch (meta.encoding) {
74
+ case 'json':
75
+ return JSON.parse(buf.toString('utf8'));
76
+ case 'utf8':
77
+ return buf.toString('utf8');
78
+ default:
79
+ return buf;
80
+ }
81
+ }
82
+ /** Build the object key for a field on a given row. */
83
+ function buildKey(meta, tableName, pk) {
84
+ const id = pk === undefined || pk === null ? Date.now().toString(36) : String(pk);
85
+ return `${meta.keyPrefix}${tableName}-${id}`;
86
+ }
87
+ /**
88
+ * Attach external-field accessors to a row instance.
89
+ *
90
+ * Each field `avatar` gets:
91
+ * - `avatar` a non-enumerable accessor holding the materialized value
92
+ * - `loadAvatar()` read from the store into `avatar`
93
+ * - `saveAvatar(value)` write to the store and persist the key column
94
+ * - `deleteAvatar()` remove from the store and null the key column
95
+ *
96
+ * The accessor is deliberately **non-enumerable** so `save()`'s sweep over the
97
+ * instance's own keys doesn't try to persist a Buffer into a column that
98
+ * doesn't exist. Assigning to it records a pending write, which the wrapped
99
+ * `save()` flushes before the row is written.
100
+ */
101
+ function attachExternalFields(rowInstance, dataValues, modelName, tableName, registry) {
102
+ const fields = (0, decorator_1.getExternalFields)(modelName);
103
+ if (fields.length === 0)
104
+ return;
105
+ // Advertise the external field names so the instance proxy and save() can
106
+ // keep these payloads out of dataValues and out of the generated UPDATE.
107
+ Object.defineProperty(rowInstance, '__externalFields', {
108
+ value: new Set(fields.map((f) => f.field)),
109
+ enumerable: false,
110
+ configurable: true,
111
+ });
112
+ // field -> value pending upload on the next save()
113
+ const pending = new Map();
114
+ // field -> last materialized value
115
+ const materialized = new Map();
116
+ const resolve = (meta) => {
117
+ const store = registry.get(meta.store);
118
+ const bucket = meta.bucket ?? store.defaultBucket;
119
+ return { store, bucket };
120
+ };
121
+ for (const meta of fields) {
122
+ const { field, keyColumn } = meta;
123
+ Object.defineProperty(rowInstance, field, {
124
+ enumerable: false,
125
+ configurable: true,
126
+ get() {
127
+ return pending.has(field) ? pending.get(field) : materialized.get(field) ?? null;
128
+ },
129
+ set(value) {
130
+ pending.set(field, value);
131
+ },
132
+ });
133
+ rowInstance[`load${capitalize(field)}`] = async () => {
134
+ const key = dataValues[keyColumn];
135
+ if (!key) {
136
+ materialized.set(field, null);
137
+ return null;
138
+ }
139
+ const { store, bucket } = resolve(meta);
140
+ const value = decode(await store.adapter.get(bucket, key), meta);
141
+ materialized.set(field, value);
142
+ pending.delete(field);
143
+ return value;
144
+ };
145
+ rowInstance[`save${capitalize(field)}`] = async (value, options = {}) => {
146
+ const toWrite = value !== undefined ? value : pending.get(field);
147
+ const { store, bucket } = resolve(meta);
148
+ const key = dataValues[keyColumn] || buildKey(meta, tableName, dataValues.id);
149
+ await store.adapter.put(bucket, key, encode(toWrite, meta), {
150
+ contentType: meta.contentType,
151
+ });
152
+ dataValues[keyColumn] = key;
153
+ rowInstance[keyColumn] = key;
154
+ materialized.set(field, toWrite);
155
+ pending.delete(field);
156
+ // Persist the key so a later fetch of this row can find the object.
157
+ // Skipped when called from the wrapped save() below, which is about to
158
+ // write the row anyway.
159
+ if (options.persist !== false && dataValues.id !== undefined) {
160
+ await rowInstance.update({ [keyColumn]: key });
161
+ }
162
+ return toWrite;
163
+ };
164
+ rowInstance[`delete${capitalize(field)}`] = async () => {
165
+ const key = dataValues[keyColumn];
166
+ if (key) {
167
+ const { store, bucket } = resolve(meta);
168
+ await store.adapter.delete(bucket, key);
169
+ }
170
+ dataValues[keyColumn] = null;
171
+ rowInstance[keyColumn] = null;
172
+ materialized.set(field, null);
173
+ pending.delete(field);
174
+ if (dataValues.id !== undefined) {
175
+ await rowInstance.update({ [keyColumn]: null });
176
+ }
177
+ };
178
+ rowInstance[`has${capitalize(field)}`] = async () => {
179
+ const key = dataValues[keyColumn];
180
+ if (!key)
181
+ return false;
182
+ const { store, bucket } = resolve(meta);
183
+ return store.adapter.exists(bucket, key);
184
+ };
185
+ }
186
+ // Flush pending payloads before the row is written, so that
187
+ // `user.avatar = buf; await user.save()` uploads and records the key.
188
+ const originalSave = rowInstance.save;
189
+ if (typeof originalSave === 'function') {
190
+ rowInstance.save = async (...args) => {
191
+ for (const meta of fields) {
192
+ if (pending.has(meta.field)) {
193
+ // persist: false - the save() we are wrapping writes the row next,
194
+ // so the key column goes out with it rather than in its own UPDATE.
195
+ await rowInstance[`save${capitalize(meta.field)}`](undefined, { persist: false });
196
+ }
197
+ }
198
+ return originalSave.apply(rowInstance, args);
199
+ };
200
+ }
201
+ // Removing the row should not orphan its objects.
202
+ const originalDestroy = rowInstance.destroy;
203
+ if (typeof originalDestroy === 'function') {
204
+ rowInstance.destroy = async (...args) => {
205
+ for (const meta of fields) {
206
+ const key = dataValues[meta.keyColumn];
207
+ if (!key)
208
+ continue;
209
+ try {
210
+ const { store, bucket } = resolve(meta);
211
+ await store.adapter.delete(bucket, key);
212
+ }
213
+ catch {
214
+ // A store that is unreachable must not block deleting the row; the
215
+ // object is orphaned rather than the delete failing halfway.
216
+ }
217
+ }
218
+ return originalDestroy.apply(rowInstance, args);
219
+ };
220
+ }
221
+ }
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Foreign Data Wrapper (FDW) support for PostgreSQL
3
+ *
4
+ * Provides management of:
5
+ * - Foreign servers (CREATE/ALTER/DROP FOREIGN SERVER)
6
+ * - User mappings (CREATE/ALTER/DROP USER MAPPING)
7
+ * - Foreign tables (CREATE/DROP FOREIGN TABLE, IMPORT FOREIGN SCHEMA)
8
+ *
9
+ * FDW is a PostgreSQL-only feature; attempting to use these APIs with SQLite
10
+ * or MySQL will throw a DatabaseError.
11
+ */
12
+ /**
13
+ * Catalog of well-known Foreign Data Wrapper extension names.
14
+ */
15
+ export declare const KNOWN_FDWS: {
16
+ readonly POSTGRES: "postgres_fdw";
17
+ readonly MYSQL: "mysql_fdw";
18
+ readonly REDIS: "redis_fdw";
19
+ readonly MONGO: "mongo_fdw";
20
+ readonly FILE: "file_fdw";
21
+ readonly S3: "parquet_s3_fdw";
22
+ readonly SQLITE: "sqlite_fdw";
23
+ readonly ORACLE: "oracle_fdw";
24
+ readonly ODBC: "odbc_fdw";
25
+ readonly TDS: "tds_fdw";
26
+ readonly CSTORE: "cstore_fdw";
27
+ readonly MULTICORN: "multicorn";
28
+ };
29
+ /** Options for CREATE FOREIGN SERVER */
30
+ export interface ForeignServerOptions {
31
+ /** The FDW name, e.g. 'postgres_fdw', 'redis_fdw', 'file_fdw' */
32
+ fdw: string;
33
+ /** Server-level OPTIONS key/value pairs */
34
+ options?: Record<string, string>;
35
+ /** Optional server version string */
36
+ version?: string;
37
+ /** Use CREATE FOREIGN SERVER IF NOT EXISTS */
38
+ ifNotExists?: boolean;
39
+ }
40
+ /** Options for ALTER FOREIGN SERVER */
41
+ export interface AlterForeignServerOptions {
42
+ /** Replace all options (OPTIONS (...)) */
43
+ options?: Record<string, string>;
44
+ /** Add new options (OPTIONS (ADD key 'value')) */
45
+ addOptions?: Record<string, string>;
46
+ /** Change existing options (OPTIONS (SET key 'value')) */
47
+ setOptions?: Record<string, string>;
48
+ /** Drop options by key name (OPTIONS (DROP key)) */
49
+ dropOptions?: string[];
50
+ /** Change the server version */
51
+ version?: string;
52
+ }
53
+ /** Options for CREATE USER MAPPING */
54
+ export interface UserMappingOptions {
55
+ /** Name of the foreign server */
56
+ serverName: string;
57
+ /** Local user: a role name, 'CURRENT_USER', or 'PUBLIC' */
58
+ user: string;
59
+ /** Mapping OPTIONS, e.g. { user: 'remoteuser', password: 'remotepass' } */
60
+ options?: Record<string, string>;
61
+ /** Use CREATE USER MAPPING IF NOT EXISTS */
62
+ ifNotExists?: boolean;
63
+ }
64
+ /** Column definition for a foreign table */
65
+ export interface ForeignTableColumnDef {
66
+ /** SQL type as a raw string, e.g. 'INTEGER', 'TEXT', 'VARCHAR(255)' */
67
+ type: string;
68
+ /** Optional per-column OPTIONS clause, e.g. 'OPTIONS (column_name "remote_col")' */
69
+ options?: string;
70
+ }
71
+ /** Options for CREATE FOREIGN TABLE */
72
+ export interface ForeignTableOptions {
73
+ /** The foreign server that provides this table */
74
+ serverName: string;
75
+ /** Optional local schema to create the table in */
76
+ schema?: string;
77
+ /** Column definitions keyed by column name */
78
+ columns: Record<string, ForeignTableColumnDef>;
79
+ /** Table-level OPTIONS */
80
+ options?: Record<string, string>;
81
+ /** Use CREATE FOREIGN TABLE IF NOT EXISTS */
82
+ ifNotExists?: boolean;
83
+ }
84
+ /** Options for IMPORT FOREIGN SCHEMA */
85
+ export interface ImportForeignSchemaOptions {
86
+ /** Local schema to import tables into (defaults to 'public') */
87
+ localSchema?: string;
88
+ /** LIMIT TO – only import these remote tables */
89
+ limitTo?: string[];
90
+ /** EXCEPT – import all remote tables except these */
91
+ except?: string[];
92
+ /** IMPORT FOREIGN SCHEMA level OPTIONS */
93
+ options?: Record<string, string>;
94
+ }
95
+ /** Row returned by getServers() */
96
+ export interface ServerInfo {
97
+ name: string;
98
+ fdw: string;
99
+ options: Record<string, string>;
100
+ }
101
+ /**
102
+ * Manages Foreign Data Wrapper objects (servers, user mappings, foreign tables)
103
+ * for a Prorm instance.
104
+ *
105
+ * All operations delegate SQL generation to the underlying dialect so that
106
+ * non-PostgreSQL dialects can throw meaningful errors at a single point.
107
+ */
108
+ export declare class ForeignDataManager {
109
+ private readonly prorm;
110
+ constructor(prorm: any);
111
+ /**
112
+ * CREATE FOREIGN SERVER
113
+ */
114
+ createServer(name: string, opts: ForeignServerOptions): Promise<void>;
115
+ /**
116
+ * ALTER FOREIGN SERVER
117
+ */
118
+ alterServer(name: string, opts: AlterForeignServerOptions): Promise<void>;
119
+ /**
120
+ * DROP FOREIGN SERVER
121
+ */
122
+ dropServer(name: string, opts?: {
123
+ ifExists?: boolean;
124
+ cascade?: boolean;
125
+ }): Promise<void>;
126
+ /**
127
+ * List all foreign servers visible in the current database.
128
+ */
129
+ getServers(): Promise<ServerInfo[]>;
130
+ /**
131
+ * Return true if a foreign server with the given name exists.
132
+ */
133
+ serverExists(name: string): Promise<boolean>;
134
+ /**
135
+ * CREATE USER MAPPING
136
+ */
137
+ createUserMapping(opts: UserMappingOptions): Promise<void>;
138
+ /**
139
+ * ALTER USER MAPPING (re-uses the same SQL builder as CREATE with altered keywords)
140
+ */
141
+ alterUserMapping(opts: UserMappingOptions): Promise<void>;
142
+ /**
143
+ * DROP USER MAPPING
144
+ */
145
+ dropUserMapping(serverName: string, user?: string, opts?: {
146
+ ifExists?: boolean;
147
+ }): Promise<void>;
148
+ /**
149
+ * CREATE FOREIGN TABLE
150
+ */
151
+ createForeignTable(tableName: string, opts: ForeignTableOptions): Promise<void>;
152
+ /**
153
+ * DROP FOREIGN TABLE
154
+ */
155
+ dropForeignTable(tableName: string, opts?: {
156
+ ifExists?: boolean;
157
+ cascade?: boolean;
158
+ }): Promise<void>;
159
+ /**
160
+ * IMPORT FOREIGN SCHEMA
161
+ */
162
+ importForeignSchema(remoteSchema: string, serverName: string, opts?: ImportForeignSchemaOptions): Promise<void>;
163
+ }
164
+ /**
165
+ * Build a PostgreSQL OPTIONS (...) clause from a plain object.
166
+ * Each value is single-quoted and existing single quotes are escaped.
167
+ */
168
+ export declare function buildOptionsClause(opts: Record<string, string>): string;
@@ -0,0 +1,250 @@
1
+ /**
2
+ * BaseGraphDialect — shared implementation of the SQL-shaped `Dialect`
3
+ * contract for graph/object databases.
4
+ *
5
+ * The ORM's `Model` layer talks to every backend through the `Dialect`
6
+ * interface (connect/query/transaction + `build*Query` codegen + DDL). This
7
+ * class implements that whole surface **once** for graph stores, translating:
8
+ *
9
+ * - a table -> a node label (vertex type)
10
+ * - a row -> a node
11
+ * - an INSERT -> CREATE node
12
+ * - a SELECT -> MATCH node (+ traversals for `include`)
13
+ * - a WHERE -> a graph predicate (via {@link normalizeWhere})
14
+ * - an association -> a graph edge/relationship
15
+ * - an `include` -> a graph walk over that edge
16
+ * - "DDL" -> node-label / edge-type / index / constraint mgmt
17
+ *
18
+ * Each concrete dialect (Neo4j / Gremlin / Dgraph) only implements the
19
+ * connection lifecycle and a small set of language-specific `compile*`
20
+ * codegen primitives; everything else is centralized here. Genuinely
21
+ * relational-only features (partitions, materialized views, RLS, stored
22
+ * procedures, foreign-data wrappers, arbitrary SQL joins) throw a typed
23
+ * {@link GraphCapabilityError} rather than silently doing the wrong thing.
24
+ */
25
+ import { Readable } from 'stream';
26
+ import { BaseDialect, type ColumnDefinition, type ConstraintDefinition, type DropConstraintOptions, type DropIndexOptions, type DropSchemaOptions, type DropTableOptions, type DropViewOptions, type IndexDefinition, type IndexOptions, type InsertOptions, type TableDescription, type TableOptions, type UpdateOptions, type DeleteOptions, type SelectOptions, type UpsertQueryOptions, type ViewOptions, type BuildOptions } from '../dialects/dialect';
27
+ import type { DataType, Order, QueryOptions, QueryResult, StreamOptions, Transaction, TransactionOptions, WhereOptions, MaterializedViewOptions, RefreshOptions, DropMaterializedViewOptions, StoredProcedureOptions, DropStoredProcedureOptions, ExecuteStoredProcedureOptions, TriggerOptions, DropTriggerOptions, SequenceOptions, DropSequenceOptions, PolicyOptions, DropPolicyOptions, CreatePartitionOptions, AttachPartitionOptions, DetachPartitionOptions } from '../types';
28
+ import { ParamBag, type GraphConnectionOptions, type GraphPredicate, type GraphStatement, type GraphTraversalSpec, type GraphTraversalStep, type NodeMatchSpec, type NodeModelDefinition, type EdgeModelDefinition } from './types';
29
+ /** Context passed to {@link BaseGraphDialect.renderPredicate}. */
30
+ export interface WhereRenderContext {
31
+ /** Variable the predicate's properties are addressed through (e.g. `n`). */
32
+ nodeVar: string;
33
+ /** Bag collecting parameter bindings produced while rendering. */
34
+ params: ParamBag;
35
+ }
36
+ /** Fully-resolved spec for creating an edge between matched endpoints. */
37
+ export interface EdgeCreateSpec {
38
+ fromLabel: string;
39
+ fromWhere?: WhereOptions;
40
+ edgeLabel: string;
41
+ toLabel: string;
42
+ toWhere?: WhereOptions;
43
+ props?: Record<string, unknown>;
44
+ }
45
+ /** Kind of node constraint the graph DDL layer can create. */
46
+ export type NodeConstraintKind = 'unique' | 'exists' | 'key';
47
+ export declare abstract class BaseGraphDialect extends BaseDialect {
48
+ protected readonly options: GraphConnectionOptions;
49
+ /** In-memory registry of node/edge models defined through the builder. */
50
+ protected readonly nodeModels: Map<string, NodeModelDefinition>;
51
+ protected readonly edgeModels: Map<string, EdgeModelDefinition>;
52
+ constructor(options?: GraphConnectionOptions);
53
+ abstract readonly name: string;
54
+ abstract readonly library: string;
55
+ abstract connect(): Promise<void>;
56
+ abstract disconnect(): Promise<void>;
57
+ abstract query(statement: string, options?: QueryOptions): Promise<QueryResult>;
58
+ abstract getDatabaseVersion(): Promise<string>;
59
+ abstract startTransaction(options?: TransactionOptions): Promise<Transaction>;
60
+ abstract commitTransaction(transaction: Transaction): Promise<void>;
61
+ abstract rollbackTransaction(transaction: Transaction): Promise<void>;
62
+ /** Variable name node properties are addressed through in generated queries. */
63
+ protected abstract get defaultNodeVar(): string;
64
+ /** Render a normalized predicate tree into this dialect's filter syntax. */
65
+ abstract renderPredicate(pred: GraphPredicate, ctx: WhereRenderContext): string;
66
+ /** Compile a node find/match (+ `include` traversals) into a graph query. */
67
+ abstract compileMatch(spec: NodeMatchSpec): GraphStatement;
68
+ /** Compile a node create (INSERT-equivalent). */
69
+ abstract compileCreateNode(label: string, data: Record<string, unknown>): GraphStatement;
70
+ /** Compile a node update (SET-equivalent) over a filter. */
71
+ abstract compileUpdateNodes(label: string, where: WhereOptions | undefined, values: Record<string, unknown>): GraphStatement;
72
+ /** Compile a node delete over a filter (`detach` also removes its edges). */
73
+ abstract compileDeleteNodes(label: string, where: WhereOptions | undefined, detach: boolean): GraphStatement;
74
+ /** Compile an upsert (MERGE-equivalent) keyed on `conflictKeys`. */
75
+ abstract compileUpsertNode(label: string, data: Record<string, unknown>, conflictKeys: string[]): GraphStatement;
76
+ /** Compile a numeric increment of one or more properties. */
77
+ abstract compileIncrement(label: string, fields: string | string[] | Record<string, number>, where: WhereOptions | undefined, by: number): GraphStatement;
78
+ /** Compile edge creation between two matched endpoints (association write). */
79
+ abstract compileCreateEdge(spec: EdgeCreateSpec): GraphStatement;
80
+ /** Compile a (possibly variable-length) traversal from a start node. */
81
+ abstract compileTraverse(spec: GraphTraversalSpec): GraphStatement;
82
+ /** Compile creation of a node-label constraint (unique / exists / key). */
83
+ abstract compileCreateConstraint(label: string, fields: string[], kind: NodeConstraintKind, name?: string): GraphStatement;
84
+ /** Compile dropping a named node-label constraint. */
85
+ abstract compileDropConstraint(label: string, name: string): GraphStatement;
86
+ /** Compile creation of an index over node-label properties. */
87
+ abstract compileCreateIndex(label: string, fields: string[], name?: string): GraphStatement;
88
+ /** Compile dropping a named index. */
89
+ abstract compileDropIndex(label: string, name: string): GraphStatement;
90
+ /** Compile a query listing all node labels in the store. */
91
+ abstract compileShowLabels(): GraphStatement;
92
+ getConnection(): any;
93
+ isConnected(): boolean;
94
+ /**
95
+ * Object-mode streaming: runs the query and pushes one row (or mapped
96
+ * model instance) per chunk. Graph drivers don't share a common cursor
97
+ * API, so this buffers the driver result and re-emits it — correct and
98
+ * dialect-agnostic, matching the `Model.findAllStream()` contract.
99
+ */
100
+ queryStream(statement: string, options?: StreamOptions): Readable;
101
+ private streamGen;
102
+ /** Values are parameterized, so `escape` is only a defensive fallback. */
103
+ escape(value: any): string;
104
+ escapeId(identifier: string): string;
105
+ quoteIdentifier(identifier: string): string;
106
+ quoteTable(tableName: string, _schema?: string): string;
107
+ /** Coarse property-type name; graph stores are largely schemaless. */
108
+ getDataTypeSql(dataType: DataType): string;
109
+ /** Run a compiled statement, forwarding its params as query bindings. */
110
+ protected run(stmt: GraphStatement, options?: QueryOptions): Promise<QueryResult>;
111
+ /** Positional param array for the SQL-shaped `{ sql, values }` contract. */
112
+ protected paramValues(stmt: GraphStatement): unknown[];
113
+ /** Tolerant `Order` -> `[field, dir][]` normalizer. */
114
+ protected normalizeOrder(order?: Order): Array<[string, 'ASC' | 'DESC']>;
115
+ /** Map ORM `include` entries into graph traversal steps. */
116
+ protected mapIncludes(include?: any[]): GraphTraversalStep[];
117
+ buildWhereClause(where: WhereOptions, _options?: BuildOptions): {
118
+ sql: string;
119
+ values: any[];
120
+ };
121
+ buildOrderClause(order: Order, _options?: BuildOptions): string;
122
+ buildLimitOffset(limit?: number | string, offset?: number | string): string;
123
+ buildInsertQuery(tableName: string, values: Record<string, any>, _options?: InsertOptions): {
124
+ sql: string;
125
+ values: any[];
126
+ };
127
+ buildUpdateQuery(tableName: string, values: Record<string, any>, where: WhereOptions, _options?: UpdateOptions): {
128
+ sql: string;
129
+ values: any[];
130
+ };
131
+ buildDeleteQuery(tableName: string, where: WhereOptions, options?: DeleteOptions): {
132
+ sql: string;
133
+ values: any[];
134
+ };
135
+ buildSelectQuery(options: SelectOptions): {
136
+ sql: string;
137
+ values: any[];
138
+ };
139
+ buildUpsertQuery(tableName: string, values: Record<string, any>, options?: UpsertQueryOptions): {
140
+ sql: string;
141
+ values: any[];
142
+ };
143
+ buildIncrementQuery(tableName: string, fields: string | string[] | Record<string, number>, where: WhereOptions, options?: {
144
+ by?: number;
145
+ }): {
146
+ sql: string;
147
+ values: any[];
148
+ };
149
+ /** Identity property/properties for a label (defaults to `id`). */
150
+ protected identityKeys(label: string): string[];
151
+ /**
152
+ * "CREATE TABLE" for a graph store = declare a node label and materialize
153
+ * its schema hints: unique/primary-key columns become uniqueness
154
+ * constraints, `references` columns become association edges, and indexed
155
+ * columns become property indexes. Nodes themselves stay schemaless.
156
+ */
157
+ createTable(tableName: string, columns: Record<string, ColumnDefinition>, _options?: TableOptions): Promise<void>;
158
+ dropTable(tableName: string, _options?: DropTableOptions): Promise<void>;
159
+ addIndex(tableName: string, indexName: string, fields: string[], _options?: IndexOptions): Promise<void>;
160
+ createIndex(tableName: string, indexDef: IndexDefinition): Promise<void>;
161
+ removeIndex(tableName: string, indexName: string): Promise<void>;
162
+ dropIndex(tableName: string, indexName: string, _options?: DropIndexOptions): Promise<void>;
163
+ createConstraint(tableName: string, constraintDef: ConstraintDefinition): Promise<void>;
164
+ dropConstraint(tableName: string, constraintName: string, _options?: DropConstraintOptions): Promise<void>;
165
+ addConstraint(tableName: string, options: {
166
+ type: 'UNIQUE' | 'CHECK' | 'PRIMARY KEY' | 'FOREIGN KEY';
167
+ fields: string[];
168
+ name?: string;
169
+ references?: {
170
+ table: string;
171
+ fields: string[];
172
+ };
173
+ check?: string;
174
+ }): Promise<void>;
175
+ removeConstraint(tableName: string, constraintName: string): Promise<void>;
176
+ showTables(): Promise<string[]>;
177
+ showViews(): Promise<string[]>;
178
+ showMaterializedViews(): Promise<string[]>;
179
+ showConstraints(_tableName: string): Promise<any[]>;
180
+ showIndexes(_tableName: string): Promise<any[]>;
181
+ describeTable(_tableName: string): Promise<TableDescription>;
182
+ createSchema(_schema: string): Promise<void>;
183
+ dropSchema(_schema: string, _options?: DropSchemaOptions): Promise<void>;
184
+ showAllSchemas(): Promise<string[]>;
185
+ addColumn(_tableName: string, _columnName: string, _definition: ColumnDefinition): Promise<void>;
186
+ removeColumn(tableName: string, columnName: string): Promise<void>;
187
+ changeColumn(_tableName: string, _columnName: string, _definition: ColumnDefinition): Promise<void>;
188
+ commentTable(_tableName: string, _comment: string): Promise<void>;
189
+ commentColumn(_tableName: string, _columnName: string, _comment: string): Promise<void>;
190
+ /** Register a node model (label + property schema + associations). */
191
+ defineNode(def: NodeModelDefinition): void;
192
+ /** Register an edge/relationship model between two node labels. */
193
+ defineEdge(def: EdgeModelDefinition): void;
194
+ /** Create a node and return the driver result. */
195
+ createNode(label: string, data: Record<string, unknown>): Promise<QueryResult>;
196
+ /** Find nodes matching a spec, returning the driver rows. */
197
+ findNodes(spec: NodeMatchSpec): Promise<any[]>;
198
+ /** Update nodes matching a filter. */
199
+ updateNodes(label: string, where: WhereOptions | undefined, values: Record<string, unknown>): Promise<QueryResult>;
200
+ /** Delete nodes matching a filter (detaching their edges). */
201
+ destroyNodes(label: string, where?: WhereOptions): Promise<QueryResult>;
202
+ /**
203
+ * Materialize an ORM association write as a graph edge: matches the two
204
+ * endpoints by filter and connects them with the association's edge label.
205
+ */
206
+ relate(spec: EdgeCreateSpec): Promise<QueryResult>;
207
+ /** Walk an association/edge from matching start node(s) — an `include`/join as a graph traversal. */
208
+ traverse(spec: GraphTraversalSpec): Promise<any[]>;
209
+ private unsupported;
210
+ createPartitionedTable(): Promise<void>;
211
+ createPartition(_options: CreatePartitionOptions): Promise<void>;
212
+ attachPartition(_options: AttachPartitionOptions): Promise<void>;
213
+ detachPartition(_options: DetachPartitionOptions): Promise<void>;
214
+ dropPartition(): Promise<void>;
215
+ createView(_viewName: string, _query: string, _options?: ViewOptions): Promise<void>;
216
+ dropView(_viewName: string, _options?: DropViewOptions): Promise<void>;
217
+ createMaterializedView(_options: MaterializedViewOptions): Promise<void>;
218
+ refreshMaterializedView(_viewName: string, _options?: RefreshOptions): Promise<void>;
219
+ dropMaterializedView(_viewName: string, _options?: DropMaterializedViewOptions): Promise<void>;
220
+ hasMaterializedView(_viewName: string): Promise<boolean>;
221
+ createStoredProcedure(_options: StoredProcedureOptions): Promise<void>;
222
+ dropStoredProcedure(_procedureName: string, _options?: DropStoredProcedureOptions): Promise<void>;
223
+ executeStoredProcedure(_options: ExecuteStoredProcedureOptions): Promise<QueryResult>;
224
+ hasStoredProcedure(_procedureName: string, _schema?: string): Promise<boolean>;
225
+ createTrigger(_options: TriggerOptions): Promise<void>;
226
+ dropTrigger(_triggerName: string, _tableName: string, _options?: DropTriggerOptions): Promise<void>;
227
+ hasTrigger(_triggerName: string, _tableName: string): Promise<boolean>;
228
+ createSequence(_options: SequenceOptions): Promise<void>;
229
+ dropSequence(_sequenceName: string, _options?: DropSequenceOptions): Promise<void>;
230
+ nextSequenceValue(_sequenceName: string): Promise<number>;
231
+ hasSequence(_sequenceName: string): Promise<boolean>;
232
+ createPolicy(_options: PolicyOptions): Promise<void>;
233
+ dropPolicy(_policyName: string, _tableName: string, _options?: DropPolicyOptions): Promise<void>;
234
+ enableRLS(_tableName: string, _schema?: string): Promise<void>;
235
+ disableRLS(_tableName: string, _schema?: string): Promise<void>;
236
+ hasPolicy(_policyName: string, _tableName: string): Promise<boolean>;
237
+ createPartialIndex(): Promise<void>;
238
+ createExpressionIndex(): Promise<void>;
239
+ createIdentityColumn(): Promise<void>;
240
+ createComputedColumn(): Promise<void>;
241
+ renameTable(_oldName: string, _newName: string): Promise<void>;
242
+ changeOwner(_newOwner: string, _tableName: string): Promise<void>;
243
+ createForeignDataWrapper(): Promise<void>;
244
+ dropForeignDataWrapper(): Promise<void>;
245
+ createForeignServer(): Promise<void>;
246
+ dropForeignServer(): Promise<void>;
247
+ createForeignTable(): Promise<void>;
248
+ createSecurityPolicy(): Promise<void>;
249
+ dropSecurityPolicy(): Promise<void>;
250
+ }