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,378 @@
1
+ "use strict";
2
+ /**
3
+ * Gremlin graph dialect — Apache TinkerPop / Amazon Neptune traversal
4
+ * generation for the ORM builder API.
5
+ *
6
+ * Maps the ORM model API onto Gremlin traversals: `g.V().hasLabel(...)` for
7
+ * finds, `addV`/`addE` for node/edge writes, `.has(field, P.gte(x))` for
8
+ * `where` operators, `out`/`in`/`repeat().times()` for association
9
+ * traversals. Values are passed as Gremlin bindings (`b0`, `b1`, ...), never
10
+ * interpolated. Users never hand-write Gremlin for standard operations.
11
+ *
12
+ * The `gremlin` package is loaded lazily; a pre-built client can be injected
13
+ * via `options.client`.
14
+ *
15
+ * Notes on genuinely-unsupported features:
16
+ * - TinkerPop has no portable schema DDL, so index/constraint creation
17
+ * compiles to a harmless no-op traversal (real schema management is
18
+ * backend-specific: JanusGraph management API, Neptune auto-indexing).
19
+ * - Interactive multi-statement transactions are not portable across
20
+ * Gremlin servers (Neptune in particular), so `startTransaction` throws a
21
+ * typed {@link GraphCapabilityError}.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.GremlinGraphDialect = void 0;
25
+ const index_1 = require("../../errors/index");
26
+ const base_graph_dialect_1 = require("../base-graph-dialect");
27
+ const types_1 = require("../types");
28
+ function gremlinStr(s) {
29
+ return `'${String(s).replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
30
+ }
31
+ class GremlinGraphDialect extends base_graph_dialect_1.BaseGraphDialect {
32
+ constructor(options = {}) {
33
+ super(options);
34
+ this.name = 'gremlin';
35
+ this.library = 'gremlin';
36
+ this.client = null;
37
+ this.dialectName = 'gremlin';
38
+ }
39
+ get defaultNodeVar() {
40
+ return 'it';
41
+ }
42
+ // -------------------------------------------------------------------
43
+ // Connection lifecycle
44
+ // -------------------------------------------------------------------
45
+ async connect() {
46
+ if (this._connected && this.client)
47
+ return;
48
+ try {
49
+ let client = this.options.client;
50
+ if (!client) {
51
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
52
+ const gremlin = require('gremlin');
53
+ const url = this.options.url || `ws://${this.options.host || 'localhost'}:${this.options.port || 8182}/gremlin`;
54
+ client = new gremlin.driver.Client(url, {
55
+ traversalSource: 'g',
56
+ ...this.options.driverOptions,
57
+ });
58
+ }
59
+ if (typeof client.open === 'function') {
60
+ await client.open();
61
+ }
62
+ this.client = client;
63
+ this._connection = client;
64
+ this._connected = true;
65
+ }
66
+ catch (error) {
67
+ this.client = null;
68
+ this._connection = null;
69
+ this._connected = false;
70
+ throw new index_1.ConnectionError('Failed to connect to Gremlin server', {
71
+ parent: error instanceof Error ? error : undefined,
72
+ database: this.options.database,
73
+ });
74
+ }
75
+ }
76
+ async disconnect() {
77
+ const client = this.client;
78
+ this.client = null;
79
+ this._connection = null;
80
+ this._connected = false;
81
+ if (client && typeof client.close === 'function') {
82
+ await client.close();
83
+ }
84
+ }
85
+ requireClient() {
86
+ if (!this.client || !this._connected) {
87
+ throw new index_1.ConnectionError('GremlinGraphDialect is not connected. Call connect() first.', {
88
+ database: this.options.database,
89
+ });
90
+ }
91
+ return this.client;
92
+ }
93
+ async query(statement, options) {
94
+ const client = this.requireClient();
95
+ const bindings = options?.bind || {};
96
+ try {
97
+ const result = await client.submit(statement, bindings);
98
+ const rows = typeof result?.toArray === 'function' ? result.toArray() : result?._items || [];
99
+ return { rows, rowCount: rows.length, fields: [] };
100
+ }
101
+ catch (error) {
102
+ throw new index_1.DatabaseError('Gremlin traversal failed', {
103
+ code: 'QUERY_ERROR',
104
+ parent: error instanceof Error ? error : undefined,
105
+ original: error instanceof Error ? error.message : String(error),
106
+ sql: statement,
107
+ });
108
+ }
109
+ }
110
+ async getDatabaseVersion() {
111
+ return 'unknown';
112
+ }
113
+ // -------------------------------------------------------------------
114
+ // Transactions — not portable across Gremlin servers.
115
+ // -------------------------------------------------------------------
116
+ async startTransaction(_options) {
117
+ throw new types_1.GraphCapabilityError('interactive transactions', this.name);
118
+ }
119
+ async commitTransaction(_transaction) {
120
+ throw new types_1.GraphCapabilityError('interactive transactions', this.name);
121
+ }
122
+ async rollbackTransaction(_transaction) {
123
+ throw new types_1.GraphCapabilityError('interactive transactions', this.name);
124
+ }
125
+ // -------------------------------------------------------------------
126
+ // Predicate rendering -> `.has(...)` step chain.
127
+ // -------------------------------------------------------------------
128
+ renderPredicate(pred, ctx) {
129
+ switch (pred.kind) {
130
+ case 'true':
131
+ return '';
132
+ case 'and':
133
+ return pred.items.map((p) => this.renderPredicate(p, ctx)).join('');
134
+ case 'or': {
135
+ const anon = pred.items
136
+ .map((p) => `__${this.renderPredicate(p, ctx)}`)
137
+ .filter((s) => s !== '__');
138
+ return anon.length ? `.or(${anon.join(', ')})` : '';
139
+ }
140
+ case 'not':
141
+ return `.not(__${this.renderPredicate(pred.item, ctx)})`;
142
+ case 'cmp':
143
+ return this.renderComparison(pred, ctx);
144
+ }
145
+ }
146
+ renderComparison(pred, ctx) {
147
+ const field = gremlinStr(pred.field);
148
+ const p = (v) => ctx.params.add(v);
149
+ switch (pred.op) {
150
+ case 'eq':
151
+ return `.has(${field}, eq(${p(pred.value)}))`;
152
+ case 'ne':
153
+ return `.has(${field}, neq(${p(pred.value)}))`;
154
+ case 'gt':
155
+ return `.has(${field}, gt(${p(pred.value)}))`;
156
+ case 'gte':
157
+ return `.has(${field}, gte(${p(pred.value)}))`;
158
+ case 'lt':
159
+ return `.has(${field}, lt(${p(pred.value)}))`;
160
+ case 'lte':
161
+ return `.has(${field}, lte(${p(pred.value)}))`;
162
+ case 'in':
163
+ return `.has(${field}, within(${p(pred.value)}))`;
164
+ case 'notIn':
165
+ return `.has(${field}, without(${p(pred.value)}))`;
166
+ case 'isNull':
167
+ return `.hasNot(${field})`;
168
+ case 'isNotNull':
169
+ return `.has(${field})`;
170
+ case 'startsWith':
171
+ return `.has(${field}, TextP.startingWith(${p(pred.value)}))`;
172
+ case 'notStartsWith':
173
+ return `.has(${field}, TextP.notStartingWith(${p(pred.value)}))`;
174
+ case 'endsWith':
175
+ return `.has(${field}, TextP.endingWith(${p(pred.value)}))`;
176
+ case 'notEndsWith':
177
+ return `.has(${field}, TextP.notEndingWith(${p(pred.value)}))`;
178
+ case 'substring':
179
+ case 'like':
180
+ case 'iLike':
181
+ return `.has(${field}, TextP.containing(${p(this.likeText(pred.value))}))`;
182
+ case 'notSubstring':
183
+ case 'notLike':
184
+ case 'notILike':
185
+ return `.has(${field}, TextP.notContaining(${p(this.likeText(pred.value))}))`;
186
+ case 'regexp':
187
+ return `.has(${field}, TextP.regex(${p(pred.value)}))`;
188
+ case 'notRegexp':
189
+ return `.has(${field}, TextP.notRegex(${p(pred.value)}))`;
190
+ case 'between': {
191
+ const [lo, hi] = Array.isArray(pred.value) ? pred.value : [undefined, undefined];
192
+ return `.has(${field}, between(${p(lo)}, ${p(hi)}))`;
193
+ }
194
+ case 'notBetween': {
195
+ const [lo, hi] = Array.isArray(pred.value) ? pred.value : [undefined, undefined];
196
+ return `.has(${field}, outside(${p(lo)}, ${p(hi)}))`;
197
+ }
198
+ default:
199
+ return `.has(${field}, eq(${p(pred.value)}))`;
200
+ }
201
+ }
202
+ /** Strip SQL LIKE wildcards for TextP.containing (which does substring match). */
203
+ likeText(value) {
204
+ return String(value).replace(/[%_]/g, '');
205
+ }
206
+ filterChain(where, params) {
207
+ return this.renderPredicate((0, types_1.normalizeWhere)(where), { nodeVar: this.defaultNodeVar, params });
208
+ }
209
+ // -------------------------------------------------------------------
210
+ // Codegen
211
+ // -------------------------------------------------------------------
212
+ compileMatch(spec) {
213
+ const params = new types_1.ParamBag('b');
214
+ let text = `g.V().hasLabel(${gremlinStr(spec.label)})`;
215
+ text += this.filterChain(spec.where, params);
216
+ if (spec.count) {
217
+ return { text: `${text}.count()`, params: params.params };
218
+ }
219
+ const order = spec.order || [];
220
+ if (order.length) {
221
+ text += '.order()';
222
+ for (const [f, d] of order) {
223
+ text += `.by(${gremlinStr(f)}, ${d === 'DESC' ? 'desc' : 'asc'})`;
224
+ }
225
+ }
226
+ const offset = spec.offset !== undefined && spec.offset !== null ? Number(spec.offset) : 0;
227
+ const limit = spec.limit !== undefined && spec.limit !== null ? Number(spec.limit) : undefined;
228
+ if (offset > 0 || limit !== undefined) {
229
+ const to = limit !== undefined ? offset + limit : -1;
230
+ text += `.range(${offset}, ${to})`;
231
+ }
232
+ if (spec.include && spec.include.length) {
233
+ const keys = ['self', ...spec.include.map((s) => s.as || s.targetLabel || s.edgeLabel)];
234
+ text += `.project(${keys.map((k) => gremlinStr(k)).join(', ')})`;
235
+ text += '.by(elementMap())';
236
+ for (const step of spec.include) {
237
+ const stepFn = step.direction === 'in' ? 'in' : step.direction === 'both' ? 'both' : 'out';
238
+ let by = `__.${stepFn}(${gremlinStr(step.edgeLabel)})`;
239
+ if (step.targetLabel)
240
+ by += `.hasLabel(${gremlinStr(step.targetLabel)})`;
241
+ by += '.elementMap().fold()';
242
+ text += `.by(${by})`;
243
+ }
244
+ }
245
+ else {
246
+ text += '.elementMap()';
247
+ }
248
+ return { text, params: params.params };
249
+ }
250
+ compileCreateNode(label, data) {
251
+ const params = new types_1.ParamBag('b');
252
+ let text = `g.addV(${gremlinStr(label)})`;
253
+ for (const [k, v] of Object.entries(data)) {
254
+ if (v === undefined)
255
+ continue;
256
+ text += `.property(${gremlinStr(k)}, ${params.add(v)})`;
257
+ }
258
+ text += '.elementMap()';
259
+ return { text, params: params.params };
260
+ }
261
+ compileUpdateNodes(label, where, values) {
262
+ const params = new types_1.ParamBag('b');
263
+ let text = `g.V().hasLabel(${gremlinStr(label)})`;
264
+ text += this.filterChain(where, params);
265
+ for (const [k, v] of Object.entries(values)) {
266
+ if (v === undefined) {
267
+ text += `.sideEffect(__.properties(${gremlinStr(k)}).drop())`;
268
+ }
269
+ else {
270
+ text += `.property(single, ${gremlinStr(k)}, ${params.add(v)})`;
271
+ }
272
+ }
273
+ text += '.elementMap()';
274
+ return { text, params: params.params };
275
+ }
276
+ compileDeleteNodes(label, where, _detach) {
277
+ const params = new types_1.ParamBag('b');
278
+ let text = `g.V().hasLabel(${gremlinStr(label)})`;
279
+ text += this.filterChain(where, params);
280
+ text += '.drop()';
281
+ return { text, params: params.params };
282
+ }
283
+ compileUpsertNode(label, data, conflictKeys) {
284
+ const params = new types_1.ParamBag('b');
285
+ const keys = conflictKeys.length ? conflictKeys : ['id'];
286
+ let match = `g.V().hasLabel(${gremlinStr(label)})`;
287
+ for (const k of keys) {
288
+ match += `.has(${gremlinStr(k)}, ${params.add(data[k])})`;
289
+ }
290
+ let addV = `__.addV(${gremlinStr(label)})`;
291
+ for (const k of keys) {
292
+ addV += `.property(${gremlinStr(k)}, ${params.add(data[k])})`;
293
+ }
294
+ let text = `${match}.fold().coalesce(__.unfold(), ${addV})`;
295
+ for (const [k, v] of Object.entries(data)) {
296
+ if (v === undefined || keys.includes(k))
297
+ continue;
298
+ text += `.property(single, ${gremlinStr(k)}, ${params.add(v)})`;
299
+ }
300
+ text += '.elementMap()';
301
+ return { text, params: params.params };
302
+ }
303
+ compileIncrement(label, fields, where, by) {
304
+ const params = new types_1.ParamBag('b');
305
+ let text = `g.V().hasLabel(${gremlinStr(label)})`;
306
+ text += this.filterChain(where, params);
307
+ const map = typeof fields === 'string'
308
+ ? { [fields]: by }
309
+ : Array.isArray(fields)
310
+ ? Object.fromEntries(fields.map((f) => [f, by]))
311
+ : fields;
312
+ for (const [f, amt] of Object.entries(map)) {
313
+ text += `.property(single, ${gremlinStr(f)}, __.coalesce(__.values(${gremlinStr(f)}), __.constant(0)).math('_ + ${Number(amt)}'))`;
314
+ }
315
+ text += '.elementMap()';
316
+ return { text, params: params.params };
317
+ }
318
+ compileCreateEdge(spec) {
319
+ const params = new types_1.ParamBag('b');
320
+ let text = `g.V().hasLabel(${gremlinStr(spec.fromLabel)})`;
321
+ text += this.filterChain(spec.fromWhere, params);
322
+ text += `.as('a').V().hasLabel(${gremlinStr(spec.toLabel)})`;
323
+ text += this.filterChain(spec.toWhere, params);
324
+ text += `.addE(${gremlinStr(spec.edgeLabel)}).from('a')`;
325
+ if (spec.props) {
326
+ for (const [k, v] of Object.entries(spec.props)) {
327
+ if (v === undefined)
328
+ continue;
329
+ text += `.property(${gremlinStr(k)}, ${params.add(v)})`;
330
+ }
331
+ }
332
+ text += '.elementMap()';
333
+ return { text, params: params.params };
334
+ }
335
+ compileTraverse(spec) {
336
+ const params = new types_1.ParamBag('b');
337
+ let text = `g.V().hasLabel(${gremlinStr(spec.label)})`;
338
+ text += this.filterChain(spec.where, params);
339
+ const stepFn = spec.direction === 'in' ? 'in' : spec.direction === 'both' ? 'both' : 'out';
340
+ const edgeArg = spec.edgeLabel ? gremlinStr(spec.edgeLabel) : '';
341
+ const min = spec.minDepth ?? 1;
342
+ const max = spec.maxDepth ?? 1;
343
+ if (min === 1 && max === 1) {
344
+ text += `.${stepFn}(${edgeArg})`;
345
+ }
346
+ else {
347
+ text += `.repeat(__.${stepFn}(${edgeArg})).times(${max})`;
348
+ if (min <= 1)
349
+ text += '.emit()';
350
+ }
351
+ if (spec.targetLabel)
352
+ text += `.hasLabel(${gremlinStr(spec.targetLabel)})`;
353
+ text += this.filterChain(spec.targetWhere, params);
354
+ text += '.dedup()';
355
+ if (spec.limit !== undefined)
356
+ text += `.limit(${Number(spec.limit)})`;
357
+ text += '.elementMap()';
358
+ return { text, params: params.params };
359
+ }
360
+ // TinkerPop has no portable schema DDL — compile to a harmless no-op.
361
+ compileCreateConstraint(_label, _fields, _kind, _name) {
362
+ return { text: 'g.inject(true)', params: {} };
363
+ }
364
+ compileDropConstraint(_label, _name) {
365
+ return { text: 'g.inject(true)', params: {} };
366
+ }
367
+ compileCreateIndex(_label, _fields, _name) {
368
+ return { text: 'g.inject(true)', params: {} };
369
+ }
370
+ compileDropIndex(_label, _name) {
371
+ return { text: 'g.inject(true)', params: {} };
372
+ }
373
+ compileShowLabels() {
374
+ return { text: 'g.V().label().dedup()', params: {} };
375
+ }
376
+ }
377
+ exports.GremlinGraphDialect = GremlinGraphDialect;
378
+ exports.default = GremlinGraphDialect;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Graph / object-database dialects for the ORM.
3
+ *
4
+ * Unlike the NoSQL stores (src/nosql/**), which each expose their engine's
5
+ * own native API surface, these graph dialects implement the same SQL-shaped
6
+ * `Dialect` contract used by the SQL dialects — so the ORM's `Model` builder
7
+ * API (create/find/update/destroy, `where` operators, associations,
8
+ * `include`) drives graph databases directly, generating Cypher / Gremlin /
9
+ * DQL under the hood. Users never hand-write graph queries for standard
10
+ * operations.
11
+ *
12
+ * - {@link Neo4jGraphDialect} -> Cypher (MATCH/CREATE/MERGE/SET/DELETE)
13
+ * - {@link GremlinGraphDialect} -> Apache TinkerPop / Amazon Neptune Gremlin
14
+ * - {@link DgraphGraphDialect} -> Dgraph DQL + JSON mutations
15
+ *
16
+ * Associations map to graph edges (`hasMany`/`hasOne` -> outbound edge,
17
+ * `belongsTo` -> inbound edge), and `include`/traversal becomes a graph walk.
18
+ * Genuinely relational-only features (partitions, materialized views, RLS,
19
+ * stored procedures, foreign-data wrappers, arbitrary SQL joins) throw a
20
+ * typed {@link GraphCapabilityError}.
21
+ */
22
+ import { Neo4jGraphDialect } from './neo4j';
23
+ import { GremlinGraphDialect } from './gremlin';
24
+ import { DgraphGraphDialect } from './dgraph';
25
+ export { BaseGraphDialect } from './base-graph-dialect';
26
+ export type { WhereRenderContext, EdgeCreateSpec, NodeConstraintKind, } from './base-graph-dialect';
27
+ export { Neo4jGraphDialect } from './neo4j';
28
+ export { GremlinGraphDialect } from './gremlin';
29
+ export { DgraphGraphDialect } from './dgraph';
30
+ export { GraphCapabilityError, ParamBag, normalizeWhere, deriveAssociationEdge, defaultEdgeLabel, safeIdent, } from './types';
31
+ export type { GraphConnectionOptions, GraphStatement, GraphPredicate, CanonOp, GraphAssociationType, GraphAssociationSpec, GraphPropertyDefinition, NodeModelDefinition, EdgeModelDefinition, GraphTraversalDirection, GraphTraversalStep, GraphTraversalSpec, NodeMatchSpec, } from './types';
32
+ /** The graph dialects keyed by the name they should register under. */
33
+ export declare const GRAPH_DIALECTS: {
34
+ readonly neo4j: typeof Neo4jGraphDialect;
35
+ readonly gremlin: typeof GremlinGraphDialect;
36
+ readonly neptune: typeof GremlinGraphDialect;
37
+ readonly dgraph: typeof DgraphGraphDialect;
38
+ };
39
+ /**
40
+ * Minimal shape of the ORM's dialect registry (from
41
+ * `src/dialects/dialect.ts` — `DialectRegistry`). Declared locally so this
42
+ * module doesn't import/modify the shared registry; the caller passes the
43
+ * real `DialectRegistry` in.
44
+ */
45
+ export interface DialectRegistryLike {
46
+ register(name: string, factory: new (options: any) => any): void;
47
+ }
48
+ /**
49
+ * Register all graph dialects into the ORM's `DialectRegistry`.
50
+ *
51
+ * Wiring (one line, added by whoever owns the registry/bootstrap — NOT done
52
+ * here to avoid editing shared files):
53
+ *
54
+ * ```ts
55
+ * import { DialectRegistry } from './dialects/dialect';
56
+ * import { registerGraphDialects } from './graph';
57
+ * registerGraphDialects(DialectRegistry);
58
+ * ```
59
+ */
60
+ export declare function registerGraphDialects(registry: DialectRegistryLike): void;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /**
3
+ * Graph / object-database dialects for the ORM.
4
+ *
5
+ * Unlike the NoSQL stores (src/nosql/**), which each expose their engine's
6
+ * own native API surface, these graph dialects implement the same SQL-shaped
7
+ * `Dialect` contract used by the SQL dialects — so the ORM's `Model` builder
8
+ * API (create/find/update/destroy, `where` operators, associations,
9
+ * `include`) drives graph databases directly, generating Cypher / Gremlin /
10
+ * DQL under the hood. Users never hand-write graph queries for standard
11
+ * operations.
12
+ *
13
+ * - {@link Neo4jGraphDialect} -> Cypher (MATCH/CREATE/MERGE/SET/DELETE)
14
+ * - {@link GremlinGraphDialect} -> Apache TinkerPop / Amazon Neptune Gremlin
15
+ * - {@link DgraphGraphDialect} -> Dgraph DQL + JSON mutations
16
+ *
17
+ * Associations map to graph edges (`hasMany`/`hasOne` -> outbound edge,
18
+ * `belongsTo` -> inbound edge), and `include`/traversal becomes a graph walk.
19
+ * Genuinely relational-only features (partitions, materialized views, RLS,
20
+ * stored procedures, foreign-data wrappers, arbitrary SQL joins) throw a
21
+ * typed {@link GraphCapabilityError}.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.GRAPH_DIALECTS = exports.safeIdent = exports.defaultEdgeLabel = exports.deriveAssociationEdge = exports.normalizeWhere = exports.ParamBag = exports.GraphCapabilityError = exports.DgraphGraphDialect = exports.GremlinGraphDialect = exports.Neo4jGraphDialect = exports.BaseGraphDialect = void 0;
25
+ exports.registerGraphDialects = registerGraphDialects;
26
+ const neo4j_1 = require("./neo4j");
27
+ const gremlin_1 = require("./gremlin");
28
+ const dgraph_1 = require("./dgraph");
29
+ var base_graph_dialect_1 = require("./base-graph-dialect");
30
+ Object.defineProperty(exports, "BaseGraphDialect", { enumerable: true, get: function () { return base_graph_dialect_1.BaseGraphDialect; } });
31
+ var neo4j_2 = require("./neo4j");
32
+ Object.defineProperty(exports, "Neo4jGraphDialect", { enumerable: true, get: function () { return neo4j_2.Neo4jGraphDialect; } });
33
+ var gremlin_2 = require("./gremlin");
34
+ Object.defineProperty(exports, "GremlinGraphDialect", { enumerable: true, get: function () { return gremlin_2.GremlinGraphDialect; } });
35
+ var dgraph_2 = require("./dgraph");
36
+ Object.defineProperty(exports, "DgraphGraphDialect", { enumerable: true, get: function () { return dgraph_2.DgraphGraphDialect; } });
37
+ var types_1 = require("./types");
38
+ Object.defineProperty(exports, "GraphCapabilityError", { enumerable: true, get: function () { return types_1.GraphCapabilityError; } });
39
+ Object.defineProperty(exports, "ParamBag", { enumerable: true, get: function () { return types_1.ParamBag; } });
40
+ Object.defineProperty(exports, "normalizeWhere", { enumerable: true, get: function () { return types_1.normalizeWhere; } });
41
+ Object.defineProperty(exports, "deriveAssociationEdge", { enumerable: true, get: function () { return types_1.deriveAssociationEdge; } });
42
+ Object.defineProperty(exports, "defaultEdgeLabel", { enumerable: true, get: function () { return types_1.defaultEdgeLabel; } });
43
+ Object.defineProperty(exports, "safeIdent", { enumerable: true, get: function () { return types_1.safeIdent; } });
44
+ /** The graph dialects keyed by the name they should register under. */
45
+ exports.GRAPH_DIALECTS = {
46
+ neo4j: neo4j_1.Neo4jGraphDialect,
47
+ gremlin: gremlin_1.GremlinGraphDialect,
48
+ neptune: gremlin_1.GremlinGraphDialect, // Amazon Neptune speaks Gremlin
49
+ dgraph: dgraph_1.DgraphGraphDialect,
50
+ };
51
+ /**
52
+ * Register all graph dialects into the ORM's `DialectRegistry`.
53
+ *
54
+ * Wiring (one line, added by whoever owns the registry/bootstrap — NOT done
55
+ * here to avoid editing shared files):
56
+ *
57
+ * ```ts
58
+ * import { DialectRegistry } from './dialects/dialect';
59
+ * import { registerGraphDialects } from './graph';
60
+ * registerGraphDialects(DialectRegistry);
61
+ * ```
62
+ */
63
+ function registerGraphDialects(registry) {
64
+ for (const [name, factory] of Object.entries(exports.GRAPH_DIALECTS)) {
65
+ registry.register(name, factory);
66
+ }
67
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Neo4j graph dialect — Cypher generation for the ORM builder API.
3
+ *
4
+ * Maps the ORM model API onto Cypher: node labels for tables, `MATCH`/
5
+ * `CREATE`/`MERGE`/`SET`/`DELETE` for CRUD, relationships for associations,
6
+ * and variable-length patterns for traversals. Everything is parameterized
7
+ * (`$p0`, `$props`, ...). Users never hand-write Cypher for standard
8
+ * operations.
9
+ *
10
+ * The `neo4j-driver` package is loaded lazily so importing this module never
11
+ * forces the optional dependency; a pre-built driver can be injected via
12
+ * `options.client` for tests/connection reuse.
13
+ */
14
+ import { Transaction } from '../../types';
15
+ import type { QueryOptions, QueryResult, TransactionOptions } from '../../types';
16
+ import { BaseGraphDialect, type EdgeCreateSpec, type NodeConstraintKind, type WhereRenderContext } from '../base-graph-dialect';
17
+ import { type GraphConnectionOptions, type GraphPredicate, type GraphStatement, type GraphTraversalSpec, type NodeMatchSpec } from '../types';
18
+ export declare class Neo4jGraphDialect extends BaseGraphDialect {
19
+ readonly name = "neo4j";
20
+ readonly library = "neo4j-driver";
21
+ private driver;
22
+ private readonly txns;
23
+ constructor(options?: GraphConnectionOptions);
24
+ protected get defaultNodeVar(): string;
25
+ connect(): Promise<void>;
26
+ disconnect(): Promise<void>;
27
+ private requireDriver;
28
+ query(statement: string, options?: QueryOptions): Promise<QueryResult>;
29
+ getDatabaseVersion(): Promise<string>;
30
+ startTransaction(options?: TransactionOptions): Promise<Transaction>;
31
+ commitTransaction(transaction: Transaction): Promise<void>;
32
+ rollbackTransaction(transaction: Transaction): Promise<void>;
33
+ renderPredicate(pred: GraphPredicate, ctx: WhereRenderContext): string;
34
+ private renderComparison;
35
+ private where;
36
+ compileMatch(spec: NodeMatchSpec): GraphStatement;
37
+ compileCreateNode(label: string, data: Record<string, unknown>): GraphStatement;
38
+ compileUpdateNodes(label: string, where: import('../../types').WhereOptions | undefined, values: Record<string, unknown>): GraphStatement;
39
+ compileDeleteNodes(label: string, where: import('../../types').WhereOptions | undefined, detach: boolean): GraphStatement;
40
+ compileUpsertNode(label: string, data: Record<string, unknown>, conflictKeys: string[]): GraphStatement;
41
+ compileIncrement(label: string, fields: string | string[] | Record<string, number>, where: import('../../types').WhereOptions | undefined, by: number): GraphStatement;
42
+ compileCreateEdge(spec: EdgeCreateSpec): GraphStatement;
43
+ compileTraverse(spec: GraphTraversalSpec): GraphStatement;
44
+ compileCreateConstraint(label: string, fields: string[], kind: NodeConstraintKind, name?: string): GraphStatement;
45
+ compileDropConstraint(_label: string, name: string): GraphStatement;
46
+ compileCreateIndex(label: string, fields: string[], name?: string): GraphStatement;
47
+ compileDropIndex(_label: string, name: string): GraphStatement;
48
+ compileShowLabels(): GraphStatement;
49
+ }
50
+ export default Neo4jGraphDialect;