ts-prorm-orm 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +194 -72
  3. package/dist/audit/history-query.d.ts +35 -0
  4. package/dist/audit/index.d.ts +16 -0
  5. package/dist/audit/logger.d.ts +126 -0
  6. package/dist/cache/cache-manager.d.ts +341 -0
  7. package/dist/cache/index.d.ts +8 -0
  8. package/dist/cache/redis-cluster-cache.d.ts +164 -0
  9. package/dist/cache/redis-cluster-cache.js +19 -36
  10. package/dist/cli/cloud.d.ts +55 -0
  11. package/dist/cli/cloud.js +318 -0
  12. package/dist/cli/commands/auth.d.ts +2 -0
  13. package/dist/cli/commands/auth.js +345 -0
  14. package/dist/cli/commands/billing.d.ts +2 -0
  15. package/dist/cli/commands/billing.js +135 -0
  16. package/dist/cli/commands/code.d.ts +2 -0
  17. package/dist/cli/commands/code.js +168 -0
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +154 -0
  20. package/dist/cli/commands/db.d.ts +2 -0
  21. package/dist/cli/commands/db.js +189 -0
  22. package/dist/cli/commands/index.d.ts +1 -0
  23. package/dist/cli/commands/index.js +22 -0
  24. package/dist/cli/commands/keys.d.ts +2 -0
  25. package/dist/cli/commands/keys.js +100 -0
  26. package/dist/cli/commands/misc.d.ts +2 -0
  27. package/dist/cli/commands/misc.js +282 -0
  28. package/dist/cli/commands/pull.d.ts +2 -0
  29. package/dist/cli/commands/pull.js +306 -0
  30. package/dist/cli/commands/runners.d.ts +2 -0
  31. package/dist/cli/commands/runners.js +218 -0
  32. package/dist/cli/commands/scaffold.d.ts +2 -0
  33. package/dist/cli/commands/scaffold.js +383 -0
  34. package/dist/cli/commands/secrets.d.ts +2 -0
  35. package/dist/cli/commands/secrets.js +162 -0
  36. package/dist/cli/commands/store.d.ts +2 -0
  37. package/dist/cli/commands/store.js +274 -0
  38. package/dist/cli/commands/system.d.ts +10 -0
  39. package/dist/cli/commands/system.js +169 -0
  40. package/dist/cli/commands/teams.d.ts +2 -0
  41. package/dist/cli/commands/teams.js +189 -0
  42. package/dist/cli/commands/user.d.ts +2 -0
  43. package/dist/cli/commands/user.js +171 -0
  44. package/dist/cli/framework.d.ts +103 -0
  45. package/dist/cli/framework.js +436 -0
  46. package/dist/cli/io.d.ts +26 -0
  47. package/dist/cli/io.js +181 -0
  48. package/dist/cli/keychain.d.ts +10 -0
  49. package/dist/cli/keychain.js +101 -0
  50. package/dist/cli/prompt.d.ts +20 -0
  51. package/dist/cli/prompt.js +111 -0
  52. package/dist/cli.d.ts +214 -0
  53. package/dist/cli.js +72 -5
  54. package/dist/compliance/audit-trail.d.ts +66 -0
  55. package/dist/compliance/backup-verification.d.ts +279 -0
  56. package/dist/compliance/breach-detector.d.ts +197 -0
  57. package/dist/compliance/consent-record.d.ts +107 -0
  58. package/dist/compliance/consent-versioning.d.ts +169 -0
  59. package/dist/compliance/cross-border-log.d.ts +254 -0
  60. package/dist/compliance/data-classifier.d.ts +127 -0
  61. package/dist/compliance/data-lineage.d.ts +268 -0
  62. package/dist/compliance/data-masker.d.ts +110 -0
  63. package/dist/compliance/data-portability.d.ts +98 -0
  64. package/dist/compliance/data-retention.d.ts +108 -0
  65. package/dist/compliance/dsar-workflow.d.ts +175 -0
  66. package/dist/compliance/field-encryption.d.ts +84 -0
  67. package/dist/compliance/immutable-record.d.ts +84 -0
  68. package/dist/compliance/index.d.ts +93 -0
  69. package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
  70. package/dist/compliance/pseudonymization.d.ts +96 -0
  71. package/dist/compliance/query-firewall.d.ts +661 -0
  72. package/dist/compliance/rate-limiter.d.ts +203 -0
  73. package/dist/compliance/right-to-erasure.d.ts +96 -0
  74. package/dist/compliance/row-level-security.d.ts +152 -0
  75. package/dist/compliance/security-decorator.d.ts +388 -0
  76. package/dist/compliance/security-monitor.d.ts +170 -0
  77. package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
  78. package/dist/compliance/session-isolation.d.ts +286 -0
  79. package/dist/compliance/tls-enforcer.d.ts +51 -0
  80. package/dist/compliance/worm-storage.d.ts +225 -0
  81. package/dist/connection-manager.d.ts +130 -0
  82. package/dist/connection-pool.d.ts +311 -0
  83. package/dist/decorators/audit.d.ts +49 -0
  84. package/dist/decorators/check.d.ts +218 -0
  85. package/dist/decorators/collate.d.ts +346 -0
  86. package/dist/decorators/comment.d.ts +51 -0
  87. package/dist/decorators/database-settings.d.ts +193 -0
  88. package/dist/decorators/default.d.ts +148 -0
  89. package/dist/decorators/encryption.d.ts +175 -0
  90. package/dist/decorators/engine.d.ts +97 -0
  91. package/dist/decorators/fk-constraints.d.ts +387 -0
  92. package/dist/decorators/foreign-table.d.ts +57 -0
  93. package/dist/decorators/generated.d.ts +232 -0
  94. package/dist/decorators/hstore.d.ts +96 -0
  95. package/dist/decorators/index.d.ts +57 -0
  96. package/dist/decorators/index.js +14 -30
  97. package/dist/decorators/json-column.d.ts +47 -0
  98. package/dist/decorators/jsonb.d.ts +83 -0
  99. package/dist/decorators/orm-decorators.d.ts +274 -0
  100. package/dist/decorators/permissions.d.ts +192 -0
  101. package/dist/decorators/procedure.d.ts +168 -0
  102. package/dist/decorators/procedure.js +31 -7
  103. package/dist/decorators/query-options.d.ts +527 -0
  104. package/dist/decorators/range.d.ts +122 -0
  105. package/dist/decorators/set-column.d.ts +43 -0
  106. package/dist/decorators/spatial.d.ts +60 -0
  107. package/dist/decorators/storage.d.ts +561 -0
  108. package/dist/decorators/timezone.d.ts +319 -0
  109. package/dist/decorators/trigger.d.ts +50 -0
  110. package/dist/decorators/uuid.d.ts +102 -0
  111. package/dist/decorators/view.d.ts +213 -0
  112. package/dist/diagrams/chen-diagram.d.ts +70 -0
  113. package/dist/diagrams/chen-diagram.js +33 -31
  114. package/dist/diagrams/class-diagram.d.ts +78 -0
  115. package/dist/diagrams/class-diagram.js +23 -27
  116. package/dist/diagrams/dependency-diagram.d.ts +82 -0
  117. package/dist/diagrams/dependency-diagram.js +18 -9
  118. package/dist/diagrams/er-diagram.d.ts +82 -0
  119. package/dist/diagrams/er-diagram.js +174 -231
  120. package/dist/diagrams/flow-diagram.d.ts +70 -0
  121. package/dist/diagrams/flow-diagram.js +23 -18
  122. package/dist/diagrams/gantt-diagram.d.ts +67 -0
  123. package/dist/diagrams/gantt-diagram.js +20 -18
  124. package/dist/diagrams/index-diagram.d.ts +61 -0
  125. package/dist/diagrams/index-diagram.js +36 -31
  126. package/dist/diagrams/index.d.ts +155 -0
  127. package/dist/diagrams/index.js +7 -1
  128. package/dist/diagrams/migration-diagram.d.ts +67 -0
  129. package/dist/diagrams/migration-diagram.js +45 -57
  130. package/dist/diagrams/model-diagram.d.ts +85 -0
  131. package/dist/diagrams/model-diagram.js +225 -287
  132. package/dist/diagrams/package-diagram.d.ts +69 -0
  133. package/dist/diagrams/package-diagram.js +30 -32
  134. package/dist/diagrams/palette.d.ts +138 -0
  135. package/dist/diagrams/palette.js +134 -25
  136. package/dist/diagrams/relational-diagram.d.ts +82 -0
  137. package/dist/diagrams/relational-diagram.js +51 -59
  138. package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
  139. package/dist/diagrams/schemadoc-diagram.js +36 -28
  140. package/dist/diagrams/sequence-diagram.d.ts +61 -0
  141. package/dist/diagrams/sequence-diagram.js +20 -11
  142. package/dist/diagrams/state-diagram.d.ts +85 -0
  143. package/dist/diagrams/state-diagram.js +21 -17
  144. package/dist/diagrams/svg-dom.d.ts +62 -0
  145. package/dist/diagrams/svg-dom.js +11 -0
  146. package/dist/diagrams/tree-diagram.d.ts +47 -0
  147. package/dist/diagrams/tree-diagram.js +19 -10
  148. package/dist/dialects/clickhouse/index.d.ts +660 -0
  149. package/dist/dialects/clickhouse/index.js +107 -2
  150. package/dist/dialects/cockroachdb/index.d.ts +1708 -0
  151. package/dist/dialects/cockroachdb/index.js +139 -10
  152. package/dist/dialects/cratedb/index.d.ts +262 -0
  153. package/dist/dialects/cratedb/index.js +148 -0
  154. package/dist/dialects/databricks/index.d.ts +397 -0
  155. package/dist/dialects/databricks/index.js +233 -11
  156. package/dist/dialects/db2/index.d.ts +729 -0
  157. package/dist/dialects/db2/index.js +152 -2
  158. package/dist/dialects/dialect.d.ts +1653 -0
  159. package/dist/dialects/duckdb/index.d.ts +440 -0
  160. package/dist/dialects/duckdb/index.js +21 -37
  161. package/dist/dialects/exasol/index.d.ts +197 -0
  162. package/dist/dialects/exasol/index.js +14 -0
  163. package/dist/dialects/firebird/index.d.ts +286 -0
  164. package/dist/dialects/firebird/index.js +135 -0
  165. package/dist/dialects/greenplum/index.d.ts +336 -0
  166. package/dist/dialects/greenplum/index.js +168 -0
  167. package/dist/dialects/hana/index.d.ts +512 -0
  168. package/dist/dialects/hana/index.js +17 -35
  169. package/dist/dialects/mariadb/index.d.ts +1241 -0
  170. package/dist/dialects/mariadb/index.js +181 -43
  171. package/dist/dialects/mssql/index.d.ts +729 -0
  172. package/dist/dialects/mssql/index.js +76 -7
  173. package/dist/dialects/mysql/index.d.ts +1233 -0
  174. package/dist/dialects/mysql/index.js +87 -19
  175. package/dist/dialects/oracle/index.d.ts +1222 -0
  176. package/dist/dialects/oracle/index.js +210 -9
  177. package/dist/dialects/postgres/index.d.ts +1598 -0
  178. package/dist/dialects/postgres/index.js +34 -13
  179. package/dist/dialects/query-stream-helper.d.ts +58 -0
  180. package/dist/dialects/questdb/index.d.ts +430 -0
  181. package/dist/dialects/questdb/index.js +292 -0
  182. package/dist/dialects/redshift/index.d.ts +933 -0
  183. package/dist/dialects/redshift/index.js +17 -5
  184. package/dist/dialects/singlestore/index.d.ts +233 -0
  185. package/dist/dialects/singlestore/index.js +53 -0
  186. package/dist/dialects/snowflake/index.d.ts +727 -0
  187. package/dist/dialects/snowflake/index.js +154 -5
  188. package/dist/dialects/spanner/index.d.ts +660 -0
  189. package/dist/dialects/spanner/index.js +43 -21
  190. package/dist/dialects/sqlite/index.d.ts +1133 -0
  191. package/dist/dialects/sqlite/index.js +168 -30
  192. package/dist/dialects/tidb/index.d.ts +226 -0
  193. package/dist/dialects/tidb/index.js +10 -0
  194. package/dist/dialects/timescaledb/index.d.ts +286 -0
  195. package/dist/dialects/timescaledb/index.js +179 -0
  196. package/dist/dialects/trino/index.d.ts +230 -0
  197. package/dist/dialects/trino/index.js +85 -10
  198. package/dist/dialects/turso/index.d.ts +98 -0
  199. package/dist/dialects/turso/index.js +10 -0
  200. package/dist/dialects/vertica/index.d.ts +321 -0
  201. package/dist/dialects/vertica/index.js +161 -0
  202. package/dist/dialects/yugabytedb/index.d.ts +276 -0
  203. package/dist/dialects/yugabytedb/index.js +121 -0
  204. package/dist/errors/index.d.ts +378 -0
  205. package/dist/errors/index.js +29 -1
  206. package/dist/errors/utils.d.ts +53 -0
  207. package/dist/errors.d.ts +5 -0
  208. package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
  209. package/dist/extensions/catalog/mssql-features.d.ts +20 -0
  210. package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
  211. package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
  212. package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
  213. package/dist/extensions/index.d.ts +34 -0
  214. package/dist/extensions/types.d.ts +43 -0
  215. package/dist/external-fields/adapters.d.ts +50 -0
  216. package/dist/external-fields/adapters.js +227 -0
  217. package/dist/external-fields/decorator.d.ts +77 -0
  218. package/dist/external-fields/decorator.js +80 -0
  219. package/dist/external-fields/index.d.ts +10 -0
  220. package/dist/external-fields/index.js +19 -0
  221. package/dist/external-fields/runtime.d.ts +39 -0
  222. package/dist/external-fields/runtime.js +221 -0
  223. package/dist/foreign-data.d.ts +168 -0
  224. package/dist/graph/base-graph-dialect.d.ts +250 -0
  225. package/dist/graph/base-graph-dialect.js +539 -0
  226. package/dist/graph/dgraph/index.d.ts +65 -0
  227. package/dist/graph/dgraph/index.js +559 -0
  228. package/dist/graph/gremlin/index.d.ts +59 -0
  229. package/dist/graph/gremlin/index.js +378 -0
  230. package/dist/graph/index.d.ts +60 -0
  231. package/dist/graph/index.js +67 -0
  232. package/dist/graph/neo4j/index.d.ts +50 -0
  233. package/dist/graph/neo4j/index.js +462 -0
  234. package/dist/graph/types.d.ts +213 -0
  235. package/dist/graph/types.js +234 -0
  236. package/dist/hooks/hooks-manager.d.ts +189 -0
  237. package/dist/hooks/index.d.ts +8 -0
  238. package/dist/index.d.ts +711 -0
  239. package/dist/index.js +19 -4
  240. package/dist/logging.d.ts +183 -0
  241. package/dist/migrations/index.d.ts +9 -0
  242. package/dist/migrations/migration.d.ts +143 -0
  243. package/dist/migrations/migrator.d.ts +199 -0
  244. package/dist/migrations/prormmigration.d.ts +131 -0
  245. package/dist/migrations/query-interface.d.ts +335 -0
  246. package/dist/migrations/seeder.d.ts +167 -0
  247. package/dist/models/associations.d.ts +131 -0
  248. package/dist/models/associations.js +7 -2
  249. package/dist/models/constraints.d.ts +175 -0
  250. package/dist/models/data-types.d.ts +1656 -0
  251. package/dist/models/decorators.d.ts +328 -0
  252. package/dist/models/decorators.js +61 -82
  253. package/dist/models/eager-load.d.ts +86 -0
  254. package/dist/models/eager-load.js +369 -0
  255. package/dist/models/index.d.ts +13 -0
  256. package/dist/models/indexes.d.ts +325 -0
  257. package/dist/models/methods.d.ts +419 -0
  258. package/dist/models/model-manager.d.ts +76 -0
  259. package/dist/models/model.d.ts +820 -0
  260. package/dist/models/model.js +15 -101
  261. package/dist/models/operators.d.ts +29 -0
  262. package/dist/models/scopes.d.ts +71 -0
  263. package/dist/models/typescript-types.d.ts +177 -0
  264. package/dist/nosql/aerospike/index.d.ts +126 -0
  265. package/dist/nosql/allegrograph/index.d.ts +86 -0
  266. package/dist/nosql/arangodb/index.d.ts +285 -0
  267. package/dist/nosql/arangodb/index.js +274 -2
  268. package/dist/nosql/arangodb/where.d.ts +38 -0
  269. package/dist/nosql/arangodb/where.js +94 -0
  270. package/dist/nosql/azure-blob/index.d.ts +104 -0
  271. package/dist/nosql/beanstalkd/index.d.ts +88 -0
  272. package/dist/nosql/beequeue/index.d.ts +99 -0
  273. package/dist/nosql/bigchaindb/index.d.ts +113 -0
  274. package/dist/nosql/bigtable/index.d.ts +144 -0
  275. package/dist/nosql/blazegraph/index.d.ts +88 -0
  276. package/dist/nosql/bullmq/index.d.ts +83 -0
  277. package/dist/nosql/cassandra/index.d.ts +119 -0
  278. package/dist/nosql/chroma/index.d.ts +151 -0
  279. package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
  280. package/dist/nosql/coherence/index.d.ts +91 -0
  281. package/dist/nosql/cosmosdb/index.d.ts +78 -0
  282. package/dist/nosql/couchbase/index.d.ts +103 -0
  283. package/dist/nosql/dax/index.d.ts +118 -0
  284. package/dist/nosql/deno-kv/index.d.ts +109 -0
  285. package/dist/nosql/dgraph/index.d.ts +80 -0
  286. package/dist/nosql/doris/index.d.ts +88 -0
  287. package/dist/nosql/druid/index.d.ts +95 -0
  288. package/dist/nosql/dynamodb/index.d.ts +643 -0
  289. package/dist/nosql/dynamodb/index.js +423 -0
  290. package/dist/nosql/elasticsearch/index.d.ts +239 -0
  291. package/dist/nosql/etcd/index.d.ts +243 -0
  292. package/dist/nosql/eventhubs/index.d.ts +89 -0
  293. package/dist/nosql/eventstore/index.d.ts +102 -0
  294. package/dist/nosql/faunadb/index.d.ts +141 -0
  295. package/dist/nosql/faunadb/index.js +329 -0
  296. package/dist/nosql/firestore/index.d.ts +67 -0
  297. package/dist/nosql/fluree/index.d.ts +88 -0
  298. package/dist/nosql/fuseki/index.d.ts +94 -0
  299. package/dist/nosql/gcs/index.d.ts +62 -0
  300. package/dist/nosql/gearman/index.d.ts +77 -0
  301. package/dist/nosql/geode/index.d.ts +93 -0
  302. package/dist/nosql/graphdb/index.d.ts +86 -0
  303. package/dist/nosql/graylog/index.d.ts +118 -0
  304. package/dist/nosql/gridgain/index.d.ts +78 -0
  305. package/dist/nosql/hazelcast/index.d.ts +73 -0
  306. package/dist/nosql/hbase/index.d.ts +123 -0
  307. package/dist/nosql/ignite/index.d.ts +80 -0
  308. package/dist/nosql/immudb/index.d.ts +131 -0
  309. package/dist/nosql/index.d.ts +215 -0
  310. package/dist/nosql/infinispan/index.d.ts +95 -0
  311. package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
  312. package/dist/nosql/influxdb/flux-compiler.js +170 -0
  313. package/dist/nosql/influxdb/index.d.ts +300 -0
  314. package/dist/nosql/influxdb/index.js +0 -0
  315. package/dist/nosql/kafka/index.d.ts +113 -0
  316. package/dist/nosql/keyspaces/index.d.ts +122 -0
  317. package/dist/nosql/kinesis/index.d.ts +121 -0
  318. package/dist/nosql/leveldb/index.d.ts +112 -0
  319. package/dist/nosql/leveldb/index.js +103 -1
  320. package/dist/nosql/lmdb/index.d.ts +76 -0
  321. package/dist/nosql/loki/index.d.ts +126 -0
  322. package/dist/nosql/marklogic/index.d.ts +76 -0
  323. package/dist/nosql/materialize/index.d.ts +91 -0
  324. package/dist/nosql/meilisearch/index.d.ts +76 -0
  325. package/dist/nosql/memcached/index.d.ts +138 -0
  326. package/dist/nosql/milvus/index.d.ts +167 -0
  327. package/dist/nosql/minio/index.d.ts +122 -0
  328. package/dist/nosql/momento/index.d.ts +99 -0
  329. package/dist/nosql/mongodb/index.d.ts +265 -0
  330. package/dist/nosql/mongodb/index.js +139 -0
  331. package/dist/nosql/mongodb/where.d.ts +8 -0
  332. package/dist/nosql/mongodb/where.js +181 -0
  333. package/dist/nosql/nats/index.d.ts +139 -0
  334. package/dist/nosql/nedb/index.d.ts +79 -0
  335. package/dist/nosql/neo4j/index.d.ts +217 -0
  336. package/dist/nosql/neo4j/index.js +26 -14
  337. package/dist/nosql/neptune/index.d.ts +234 -0
  338. package/dist/nosql/neptune/index.js +23 -9
  339. package/dist/nosql/nsq/index.d.ts +93 -0
  340. package/dist/nosql/opensearch/index.d.ts +97 -0
  341. package/dist/nosql/orientdb/index.d.ts +72 -0
  342. package/dist/nosql/papertrail/index.d.ts +120 -0
  343. package/dist/nosql/pinecone/index.d.ts +148 -0
  344. package/dist/nosql/pinot/index.d.ts +90 -0
  345. package/dist/nosql/pouchdb/index.d.ts +95 -0
  346. package/dist/nosql/prometheus/index.d.ts +112 -0
  347. package/dist/nosql/provendb/index.d.ts +143 -0
  348. package/dist/nosql/provendb/index.js +262 -0
  349. package/dist/nosql/pubsub/index.d.ts +83 -0
  350. package/dist/nosql/pulsar/index.d.ts +105 -0
  351. package/dist/nosql/qdrant/index.d.ts +231 -0
  352. package/dist/nosql/qldb/index.d.ts +182 -0
  353. package/dist/nosql/qldb/index.js +302 -1
  354. package/dist/nosql/r2/index.d.ts +160 -0
  355. package/dist/nosql/rabbitmq/index.d.ts +131 -0
  356. package/dist/nosql/ravendb/index.d.ts +138 -0
  357. package/dist/nosql/ravendb/index.js +323 -9
  358. package/dist/nosql/ravendb/where.d.ts +38 -0
  359. package/dist/nosql/ravendb/where.js +94 -0
  360. package/dist/nosql/redis/index.d.ts +267 -0
  361. package/dist/nosql/redis/index.js +19 -5
  362. package/dist/nosql/redpanda/index.d.ts +117 -0
  363. package/dist/nosql/resque/index.d.ts +91 -0
  364. package/dist/nosql/rethinkdb/index.d.ts +194 -0
  365. package/dist/nosql/rethinkdb/index.js +290 -0
  366. package/dist/nosql/rethinkdb/where.d.ts +38 -0
  367. package/dist/nosql/rethinkdb/where.js +94 -0
  368. package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
  369. package/dist/nosql/rocksdb/document-layer.js +338 -0
  370. package/dist/nosql/rocksdb/index.d.ts +112 -0
  371. package/dist/nosql/rocksdb/index.js +103 -1
  372. package/dist/nosql/rocksdb/where-match.d.ts +21 -0
  373. package/dist/nosql/rocksdb/where-match.js +238 -0
  374. package/dist/nosql/rockset/index.d.ts +84 -0
  375. package/dist/nosql/s3/index.d.ts +170 -0
  376. package/dist/nosql/scylladb/index.d.ts +117 -0
  377. package/dist/nosql/signoz/index.d.ts +116 -0
  378. package/dist/nosql/sns/index.d.ts +99 -0
  379. package/dist/nosql/solr/index.d.ts +129 -0
  380. package/dist/nosql/splunk/index.d.ts +125 -0
  381. package/dist/nosql/sqs/index.d.ts +116 -0
  382. package/dist/nosql/stardog/index.d.ts +86 -0
  383. package/dist/nosql/starrocks/index.d.ts +89 -0
  384. package/dist/nosql/store.d.ts +23 -0
  385. package/dist/nosql/sumologic/index.d.ts +119 -0
  386. package/dist/nosql/surrealdb/index.d.ts +156 -0
  387. package/dist/nosql/surrealdb/index.js +174 -1
  388. package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
  389. package/dist/nosql/surrealdb/query-compiler.js +193 -0
  390. package/dist/nosql/terminusdb/index.d.ts +95 -0
  391. package/dist/nosql/tigergraph/index.d.ts +314 -0
  392. package/dist/nosql/typesense/index.d.ts +82 -0
  393. package/dist/nosql/unqlite/index.d.ts +68 -0
  394. package/dist/nosql/upstash/index.d.ts +80 -0
  395. package/dist/nosql/vercel-kv/index.d.ts +82 -0
  396. package/dist/nosql/victoriametrics/index.d.ts +129 -0
  397. package/dist/nosql/virtuoso/index.d.ts +87 -0
  398. package/dist/nosql/weaviate/index.d.ts +196 -0
  399. package/dist/operators/index.d.ts +7 -0
  400. package/dist/operators.d.ts +2947 -0
  401. package/dist/operators.js +46 -1
  402. package/dist/prisma-migrate/index.d.ts +28 -0
  403. package/dist/prisma-migrate/migration-generator.d.ts +21 -0
  404. package/dist/prisma-migrate/model-generator.d.ts +12 -0
  405. package/dist/prisma-migrate/relations.d.ts +28 -0
  406. package/dist/prisma-migrate/schema-parser.d.ts +42 -0
  407. package/dist/prisma-migrate/type-mapper.d.ts +20 -0
  408. package/dist/prorm.d.ts +2093 -0
  409. package/dist/prorm.js +721 -302
  410. package/dist/query-builders/cte-builder.d.ts +104 -0
  411. package/dist/query-builders/functions/aggregate.d.ts +199 -0
  412. package/dist/query-builders/functions/conditional.d.ts +195 -0
  413. package/dist/query-builders/functions/datetime.d.ts +202 -0
  414. package/dist/query-builders/functions/fulltext.d.ts +220 -0
  415. package/dist/query-builders/functions/index.d.ts +17 -0
  416. package/dist/query-builders/functions/json.d.ts +157 -0
  417. package/dist/query-builders/functions/math.d.ts +215 -0
  418. package/dist/query-builders/functions/string.d.ts +233 -0
  419. package/dist/query-builders/functions/window.d.ts +209 -0
  420. package/dist/query-builders/include-builder.d.ts +85 -0
  421. package/dist/query-builders/index-expression-builder.d.ts +153 -0
  422. package/dist/query-builders/index.d.ts +121 -0
  423. package/dist/query-builders/index.js +10 -0
  424. package/dist/query-builders/insert-builder.d.ts +62 -0
  425. package/dist/query-builders/model-helpers.d.ts +28 -0
  426. package/dist/query-builders/order-limit-builder.d.ts +84 -0
  427. package/dist/query-builders/sql-compiler.d.ts +562 -0
  428. package/dist/query-builders/subquery-builder.d.ts +133 -0
  429. package/dist/query-builders/update-builder.d.ts +71 -0
  430. package/dist/query-builders/view-builder.d.ts +189 -0
  431. package/dist/query-builders/where-builder.d.ts +124 -0
  432. package/dist/query-interface.d.ts +407 -0
  433. package/dist/query-interface.js +84 -0
  434. package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
  435. package/dist/query-optimizers/explain-plans.d.ts +187 -0
  436. package/dist/query-optimizers/index.d.ts +27 -0
  437. package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
  438. package/dist/query-optimizers/query-hints.d.ts +201 -0
  439. package/dist/query-optimizers/query-optimizer.d.ts +162 -0
  440. package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
  441. package/dist/replica-manager.d.ts +235 -0
  442. package/dist/schema/index.d.ts +7 -0
  443. package/dist/schema/migration-generator.d.ts +74 -0
  444. package/dist/schema/schema-differ.d.ts +114 -0
  445. package/dist/schema/types.d.ts +246 -0
  446. package/dist/schema-objects.d.ts +78 -0
  447. package/dist/schema-objects.js +203 -0
  448. package/dist/sql-constants.d.ts +240 -0
  449. package/dist/sqlite-advanced.d.ts +572 -0
  450. package/dist/streams/index.d.ts +5 -0
  451. package/dist/streams/transforms.d.ts +120 -0
  452. package/dist/transaction.d.ts +221 -0
  453. package/dist/types/index.d.ts +3123 -0
  454. package/dist/user-management.d.ts +141 -0
  455. package/dist/utils/date.d.ts +149 -0
  456. package/dist/utils/index.d.ts +359 -0
  457. package/dist/utils/string.d.ts +88 -0
  458. package/dist/validators/index.d.ts +7 -0
  459. package/dist/validators/validator.d.ts +306 -0
  460. package/package.json +20 -5
@@ -0,0 +1,397 @@
1
+ /**
2
+ * Databricks SQL dialect implementation for the TypeScript ORM.
3
+ *
4
+ * Databricks SQL is built on Apache Spark SQL and the Delta Lake table format
5
+ * (a.k.a. the "lakehouse"). It uses backtick-quoted identifiers, exactly like
6
+ * MySQL/Spark SQL, so this dialect EXTENDS {@link MySQLDialect} purely to reuse
7
+ * the backtick quoting/escaping scaffolding and the general query-building
8
+ * skeleton, then overrides the pieces where Spark/Delta grammar genuinely
9
+ * differs from MySQL. A real deployment would connect over the Databricks SQL
10
+ * driver (Databricks SQL Warehouse / `@databricks/sql`) rather than mysql2 —
11
+ * the inherited connection code is not used against a real cluster.
12
+ *
13
+ * Notable differences from MySQL that this dialect overrides:
14
+ *
15
+ * - Default port is 443 (Databricks SQL Warehouses are reached over HTTPS),
16
+ * not 3306.
17
+ * - CREATE TABLE emits Delta/Spark grammar: `USING DELTA` (the table's data
18
+ * source/format, default DELTA; also PARQUET/CSV/JSON/etc.), `PARTITIONED BY
19
+ * (cols)`, `CLUSTERED BY (cols) INTO n BUCKETS`, `TBLPROPERTIES (...)`,
20
+ * `LOCATION 's3://...'` (external/unmanaged tables), and a trailing
21
+ * `COMMENT '...'`. There is no MySQL `ENGINE=`/`ROW_FORMAT=`/charset concept.
22
+ * - CTAS: {@link DatabricksDialect.buildCreateTableAsSelect} emits
23
+ * `CREATE TABLE ... USING DELTA AS SELECT ...`.
24
+ * - Upsert is expressed as a Delta Lake `MERGE INTO target USING source ON ...
25
+ * WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT ...`
26
+ * statement (see {@link DatabricksDialect.buildUpsertQuery}) rather than
27
+ * MySQL's `INSERT ... ON DUPLICATE KEY UPDATE`.
28
+ * - Auto-increment columns use Delta's `GENERATED ALWAYS AS IDENTITY` identity
29
+ * columns instead of MySQL's `AUTO_INCREMENT`.
30
+ * - Type mapping uses Spark SQL types: `STRING` (there is no `VARCHAR`/`TEXT`),
31
+ * `BIGINT`, `INT`, `DOUBLE`, `FLOAT`, `BOOLEAN`, `TIMESTAMP`, `DATE`,
32
+ * `BINARY`, `DECIMAL(p,s)`, and the complex types `ARRAY<>`, `MAP<>`,
33
+ * `STRUCT<>` (see {@link DatabricksDialect.getDataTypeSql}).
34
+ * - PRIMARY KEY / FOREIGN KEY constraints in Databricks are INFORMATIONAL only
35
+ * (they are declared `NOT ENFORCED` and used by the optimizer for query
36
+ * planning); they do not enforce uniqueness or referential integrity. This
37
+ * dialect emits them inline as informational constraints and never relies on
38
+ * them for correctness.
39
+ */
40
+ import { MySQLDialect, MySQLDialectOptions } from '../mysql/index';
41
+ import { ColumnDefinition, TableOptions, UpsertQueryOptions, InsertOptions, UpdateOptions, DeleteOptions, DropTableOptions, IndexOptions, IndexDefinition } from '../dialect';
42
+ import { DataType, WhereOptions } from '../../types';
43
+ /**
44
+ * Data source / file format backing a Databricks table (`USING <format>`).
45
+ * Delta Lake is the default and the only format with full ACID/upsert support.
46
+ */
47
+ export type DatabricksTableFormat = 'DELTA' | 'PARQUET' | 'CSV' | 'JSON' | 'ORC' | 'AVRO';
48
+ /**
49
+ * Databricks connection options. Adds Unity Catalog three-level namespace
50
+ * defaults (`catalog`.`schema`.`table`) on top of the inherited MySQL options.
51
+ * When a `catalog` is configured, unqualified table names are resolved to
52
+ * `` `catalog`.`schema`.`table` `` (see {@link DatabricksDialect.quoteTable}).
53
+ */
54
+ export interface DatabricksDialectOptions extends MySQLDialectOptions {
55
+ /**
56
+ * Unity Catalog catalog name (the first level of `catalog.schema.table`).
57
+ * When set, unqualified names emitted by this dialect are catalog-qualified.
58
+ */
59
+ catalog?: string;
60
+ /**
61
+ * Default Unity Catalog schema (a.k.a. database — the middle level). Used
62
+ * when a table name is neither dotted nor given an explicit schema. Defaults
63
+ * to `'default'` when a catalog is configured but no schema is given.
64
+ */
65
+ schema?: string;
66
+ }
67
+ /**
68
+ * Databricks/Delta-specific CREATE TABLE options layered on top of the shared
69
+ * {@link TableOptions}. Passed alongside the common options; a plain
70
+ * `TableOptions` value remains valid since every field here is optional.
71
+ */
72
+ export interface DatabricksTableOptions extends TableOptions {
73
+ /** Data source / format for the table (`USING <format>`). Defaults to `'DELTA'`. */
74
+ using?: DatabricksTableFormat;
75
+ /** Columns to partition the table's storage by (`PARTITIONED BY (cols)`). */
76
+ partitionedBy?: string[];
77
+ /**
78
+ * Bucketing (hash-clustering) spec: `CLUSTERED BY (cols) INTO n BUCKETS`.
79
+ * Databricks distributes rows into a fixed number of buckets by hashing the
80
+ * given columns.
81
+ */
82
+ clusteredBy?: {
83
+ columns: string[];
84
+ buckets: number;
85
+ };
86
+ /**
87
+ * Delta/Spark table properties (`TBLPROPERTIES ('key'='value', ...)`), e.g.
88
+ * `{ 'delta.appendOnly': 'true' }`.
89
+ */
90
+ tblproperties?: Record<string, string>;
91
+ /**
92
+ * Storage location for an external/unmanaged table (`LOCATION 's3://...'`).
93
+ * When omitted the table is managed by the metastore.
94
+ */
95
+ location?: string;
96
+ }
97
+ /**
98
+ * Databricks SQL dialect. See the file header for the full list of
99
+ * Spark/Delta-specific overrides.
100
+ */
101
+ export declare class DatabricksDialect extends MySQLDialect {
102
+ readonly name = "databricks";
103
+ /** Configured Unity Catalog catalog (undefined => no catalog qualification). */
104
+ protected readonly unityCatalog?: string;
105
+ /** Configured default Unity Catalog schema (database). */
106
+ protected readonly unitySchema?: string;
107
+ constructor(config: DatabricksDialectOptions);
108
+ /**
109
+ * Quote a table name using Unity Catalog's three-level namespace when a
110
+ * catalog is configured: `` `catalog`.`schema`.`table` ``.
111
+ *
112
+ * - A name that already contains dots (the caller passed a qualified
113
+ * `catalog.schema.table` or `schema.table`) is quoted segment-by-segment
114
+ * and returned as-is — the caller's qualification always wins.
115
+ * - An unqualified name is prefixed with the configured catalog and the
116
+ * given/`schema` option/`'default'` schema.
117
+ * - With no catalog configured, behaves like the inherited MySQL/Spark
118
+ * backtick quoting (still dot-aware).
119
+ */
120
+ quoteTable(tableName: string, schema?: string): string;
121
+ /**
122
+ * Resolve a table reference to its fully-qualified, quoted Unity Catalog form.
123
+ * Thin wrapper over {@link quoteTable} used by the Databricks-specific DDL/DML
124
+ * builders (which historically emitted a bare `escapeId(table)`), so those
125
+ * now honor the configured catalog/schema too.
126
+ */
127
+ protected qualifiedTable(tableName: string, schema?: string): string;
128
+ /**
129
+ * Map an ORM {@link DataType} to a Spark SQL / Delta type. The key
130
+ * difference from MySQL is that character types collapse to `STRING`
131
+ * (Spark SQL has no `VARCHAR(n)`/`TEXT`), and the complex types
132
+ * `ARRAY<>`/`MAP<>`/`STRUCT<>` are supported.
133
+ */
134
+ getDataTypeSql(dataType: DataType): string;
135
+ /**
136
+ * Resolve the element/value type for a complex (ARRAY/MAP) type, defaulting
137
+ * to `STRING` when the element type is unspecified.
138
+ */
139
+ private getComplexElementType;
140
+ /**
141
+ * Build a single column definition for a Databricks CREATE TABLE. Emits
142
+ * Delta `GENERATED ALWAYS AS IDENTITY` for auto-increment columns and an
143
+ * informational (not-enforced) inline `PRIMARY KEY` where requested.
144
+ */
145
+ buildColumnDefinitionSql(columnName: string, definition: ColumnDefinition): string;
146
+ /**
147
+ * Build the `CREATE TABLE` statement using Delta/Spark grammar. Exposed
148
+ * synchronously (separate from the async {@link createTable}) so callers can
149
+ * inspect the generated SQL without a live connection.
150
+ */
151
+ buildCreateTableSql(tableName: string, columns: Record<string, ColumnDefinition>, options?: DatabricksTableOptions): string;
152
+ /**
153
+ * Create a table using Delta/Spark grammar. Delegates SQL generation to
154
+ * {@link buildCreateTableSql} and executes it.
155
+ */
156
+ createTable(tableName: string, columns: Record<string, ColumnDefinition>, options?: DatabricksTableOptions): Promise<void>;
157
+ /**
158
+ * Build a `CREATE TABLE ... USING <format> AS SELECT ...` (CTAS) statement.
159
+ * The column list and types are inferred from the SELECT, so only the format
160
+ * and (optionally) partitioning/location apply.
161
+ */
162
+ buildCreateTableAsSelect(tableName: string, selectQuery: string, options?: Pick<DatabricksTableOptions, 'using' | 'partitionedBy' | 'location' | 'comment' | 'ifNotExists' | 'tblproperties'>): string;
163
+ /**
164
+ * Build a Delta Lake `MERGE INTO` upsert. Delta has no MySQL-style
165
+ * `ON DUPLICATE KEY UPDATE`; instead the row(s) to upsert are supplied as an
166
+ * inline `source` relation and matched against the target on the conflict
167
+ * (key) columns:
168
+ *
169
+ * MERGE INTO `t` AS target
170
+ * USING (SELECT ? AS `id`, ? AS `name`) AS source
171
+ * ON target.`id` = source.`id`
172
+ * WHEN MATCHED THEN UPDATE SET target.`name` = source.`name`
173
+ * WHEN NOT MATCHED THEN INSERT (`id`, `name`) VALUES (source.`id`, source.`name`)
174
+ *
175
+ * @param tableName - Target table.
176
+ * @param values - Column/value pairs for the row to upsert.
177
+ * @param options - `conflictFields` picks the ON/match key columns (defaults
178
+ * to all columns); `updateOnDuplicate` restricts which columns the
179
+ * WHEN MATCHED branch updates (defaults to all non-key columns).
180
+ */
181
+ buildUpsertQuery(tableName: string, values: Record<string, unknown>, options?: UpsertQueryOptions): {
182
+ sql: string;
183
+ values: unknown[];
184
+ };
185
+ /**
186
+ * Build a `LIMIT`/`OFFSET` tail. Spark SQL supports `LIMIT n` and, since
187
+ * Spark 3.4 / Databricks Runtime 11+, a standalone `OFFSET n` (with or
188
+ * without a preceding `LIMIT`). Unlike MySQL there is NO need for the
189
+ * `LIMIT 18446744073709551615 OFFSET n` sentinel trick — Spark accepts
190
+ * `OFFSET` on its own — so this override drops that MySQL-only hack.
191
+ *
192
+ * NOTE: `OFFSET` is only valid on the outermost query and requires a
193
+ * recent Spark/DBR; on older runtimes it raises a parser error. For deep
194
+ * pagination prefer a keyset/`WHERE` predicate over large offsets.
195
+ */
196
+ buildLimitOffset(limit?: number | string, offset?: number | string): string;
197
+ /**
198
+ * Build an INSERT. A plain insert (`INSERT INTO t (cols) VALUES (...)`) is
199
+ * valid Spark SQL and reuses the inherited MySQL builder verbatim. When the
200
+ * caller sets `upsert`, MySQL would emit `... ON DUPLICATE KEY UPDATE`, which
201
+ * Spark/Delta rejects — so route to a Delta `MERGE INTO` instead.
202
+ */
203
+ buildInsertQuery(tableName: string, values: Record<string, unknown>, options?: InsertOptions): {
204
+ sql: string;
205
+ values: unknown[];
206
+ };
207
+ /**
208
+ * Build an UPDATE. Delta Lake supports `UPDATE t SET ... WHERE ...`, but
209
+ * (unlike MySQL) it does NOT support a trailing `LIMIT` on UPDATE, nor a
210
+ * `RETURNING` clause. Strip `LIMIT` and reject `RETURNING` rather than emit
211
+ * SQL Spark would reject.
212
+ */
213
+ buildUpdateQuery(tableName: string, values: Record<string, unknown>, where: WhereOptions, options?: UpdateOptions): {
214
+ sql: string;
215
+ values: unknown[];
216
+ };
217
+ /**
218
+ * Build a DELETE. Delta Lake supports `DELETE FROM t WHERE ...`, but not a
219
+ * trailing `LIMIT` or `RETURNING`. Strip `LIMIT` and reject `RETURNING`.
220
+ */
221
+ buildDeleteQuery(tableName: string, where: WhereOptions, options?: DeleteOptions): {
222
+ sql: string;
223
+ values: unknown[];
224
+ };
225
+ /**
226
+ * Column spec for `ALTER TABLE ... ADD COLUMNS`. Spark only accepts
227
+ * `name type [COMMENT '...']` (optionally `FIRST`/`AFTER col`) here — it does
228
+ * NOT accept `NOT NULL`, `DEFAULT`, `PRIMARY KEY`, or identity clauses on an
229
+ * added column, so those are intentionally omitted (unlike the full CREATE
230
+ * TABLE column definition).
231
+ */
232
+ private buildAddColumnSpecSql;
233
+ /**
234
+ * Build `ALTER TABLE t ADD COLUMNS (col type ...)`. Spark uses the plural
235
+ * `ADD COLUMNS (...)` with a parenthesised list — NOT MySQL's singular
236
+ * `ADD COLUMN col ...`.
237
+ */
238
+ buildAddColumnSql(tableName: string, columnName: string, definition: ColumnDefinition): string;
239
+ addColumn(tableName: string, columnName: string, definition: ColumnDefinition): Promise<void>;
240
+ /**
241
+ * Build `ALTER TABLE t DROP COLUMN col`. Valid Delta grammar (requires Delta
242
+ * column-mapping mode to be enabled on the table); identical in shape to
243
+ * MySQL, so behaviourally inherited but surfaced as a sync builder for tests.
244
+ */
245
+ buildDropColumnSql(tableName: string, columnName: string): string;
246
+ removeColumn(tableName: string, columnName: string): Promise<void>;
247
+ /**
248
+ * Build `ALTER TABLE t RENAME COLUMN old TO new`. Spark/Delta uses
249
+ * `RENAME COLUMN`; MySQL uses `CHANGE old new <type>` (which also requires
250
+ * re-stating the type). This override needs no `DESCRIBE` round-trip.
251
+ */
252
+ buildRenameColumnSql(tableName: string, oldColumnName: string, newColumnName: string): string;
253
+ renameColumn(tableName: string, oldColumnName: string, newColumnName: string): Promise<void>;
254
+ /**
255
+ * Delta only supports a narrow set of in-place column alterations
256
+ * (comment, nullability, ordering — and, on recent runtimes, limited type
257
+ * widening). MySQL's `CHANGE col <full-def>` is not valid Spark SQL, so
258
+ * rather than emit something a cluster would reject, expose the two
259
+ * supported primitives explicitly and fail fast on the generic path.
260
+ */
261
+ changeColumn(_tableName: string, _columnName: string, _definition: ColumnDefinition): Promise<void>;
262
+ /** Build `ALTER TABLE t ALTER COLUMN col COMMENT '...'` (Delta-supported). */
263
+ buildSetColumnCommentSql(tableName: string, columnName: string, comment: string): string;
264
+ setColumnComment(tableName: string, columnName: string, comment: string): Promise<void>;
265
+ /**
266
+ * Build `ALTER TABLE t ALTER COLUMN col SET|DROP NOT NULL` (Delta-supported).
267
+ */
268
+ buildSetColumnNullabilitySql(tableName: string, columnName: string, notNull: boolean): string;
269
+ setColumnNullability(tableName: string, columnName: string, notNull: boolean): Promise<void>;
270
+ /**
271
+ * Build `DROP TABLE [IF EXISTS] t`. Spark has no `CASCADE` on `DROP TABLE`
272
+ * (that's a MySQL/Postgres construct), so the inherited CASCADE handling is
273
+ * overridden away.
274
+ */
275
+ buildDropTableSql(tableName: string, options?: DropTableOptions): string;
276
+ dropTable(tableName: string, options?: DropTableOptions): Promise<void>;
277
+ /**
278
+ * Build `ALTER TABLE t SET TBLPROPERTIES ('k'='v', ...)` — the Delta/Spark
279
+ * way to change table-level options after creation.
280
+ */
281
+ buildSetTablePropertiesSql(tableName: string, properties: Record<string, string>): string;
282
+ setTableProperties(tableName: string, properties: Record<string, string>): Promise<void>;
283
+ /** Build `ALTER TABLE t UNSET TBLPROPERTIES [IF EXISTS] ('k', ...)`. */
284
+ buildUnsetTablePropertiesSql(tableName: string, keys: string[], ifExists?: boolean): string;
285
+ unsetTableProperties(tableName: string, keys: string[], ifExists?: boolean): Promise<void>;
286
+ /**
287
+ * Build `OPTIMIZE table [WHERE ...] [ZORDER BY (cols)]` — Delta's file
288
+ * compaction command. Z-ordering co-locates related data across the given
289
+ * columns to make data-skipping effective, and is the closest Delta analog to
290
+ * a secondary index. `where` restricts compaction to matching partitions.
291
+ */
292
+ buildOptimizeSql(tableName: string, options?: {
293
+ zorderBy?: string[];
294
+ where?: string;
295
+ }): string;
296
+ /** Run `OPTIMIZE ... [ZORDER BY ...]` (see {@link buildOptimizeSql}). */
297
+ optimize(tableName: string, options?: {
298
+ zorderBy?: string[];
299
+ where?: string;
300
+ }): Promise<void>;
301
+ /**
302
+ * Build `VACUUM table [RETAIN n HOURS] [DRY RUN]` — removes data files no
303
+ * longer referenced by the Delta log and older than the retention window
304
+ * (default 168 hours / 7 days). Reclaims storage from prior versions; note it
305
+ * also truncates the time-travel window it removes.
306
+ */
307
+ buildVacuumSql(tableName: string, options?: {
308
+ retainHours?: number;
309
+ dryRun?: boolean;
310
+ }): string;
311
+ /** Run `VACUUM ...` (see {@link buildVacuumSql}). */
312
+ vacuum(tableName: string, options?: {
313
+ retainHours?: number;
314
+ dryRun?: boolean;
315
+ }): Promise<void>;
316
+ /**
317
+ * Build a Delta time-travel `SELECT` reading a historical snapshot of a table
318
+ * by version number (`VERSION AS OF n`) or timestamp (`TIMESTAMP AS OF '...'`).
319
+ * Exactly one of `version`/`timestamp` must be given.
320
+ *
321
+ * SELECT * FROM `t` VERSION AS OF 12
322
+ * SELECT `a`, `b` FROM `t` TIMESTAMP AS OF '2024-01-01 00:00:00'
323
+ */
324
+ buildTimeTravelSelectSql(tableName: string, options: {
325
+ version?: number;
326
+ timestamp?: string | Date;
327
+ columns?: string[];
328
+ where?: string;
329
+ }): string;
330
+ /** Read a historical snapshot via Delta time travel (see {@link buildTimeTravelSelectSql}). */
331
+ selectAsOf(tableName: string, options: {
332
+ version?: number;
333
+ timestamp?: string | Date;
334
+ columns?: string[];
335
+ where?: string;
336
+ }): Promise<unknown[]>;
337
+ /**
338
+ * Build `RESTORE TABLE t TO VERSION AS OF n` / `TO TIMESTAMP AS OF '...'` —
339
+ * roll a Delta table back to a prior version in place.
340
+ */
341
+ buildRestoreSql(tableName: string, options: {
342
+ version?: number;
343
+ timestamp?: string | Date;
344
+ }): string;
345
+ /** Restore a Delta table to a prior version/timestamp (see {@link buildRestoreSql}). */
346
+ restore(tableName: string, options: {
347
+ version?: number;
348
+ timestamp?: string | Date;
349
+ }): Promise<void>;
350
+ /**
351
+ * Build a Databricks `COPY INTO` bulk-load statement — the idempotent,
352
+ * exactly-once loader from a cloud file location into a Delta table:
353
+ *
354
+ * COPY INTO `t` FROM 's3://bucket/path'
355
+ * FILEFORMAT = CSV
356
+ * FILES = ('a.csv','b.csv') -- or PATTERN = '*.csv'
357
+ * FORMAT_OPTIONS ('header'='true')
358
+ * COPY_OPTIONS ('mergeSchema'='true')
359
+ */
360
+ buildCopyIntoSql(tableName: string, source: string, options: {
361
+ fileFormat: 'CSV' | 'JSON' | 'PARQUET' | 'AVRO' | 'ORC' | 'TEXT' | 'BINARYFILE';
362
+ files?: string[];
363
+ pattern?: string;
364
+ formatOptions?: Record<string, string>;
365
+ copyOptions?: Record<string, string>;
366
+ }): string;
367
+ /** Run a `COPY INTO` bulk load (see {@link buildCopyIntoSql}). */
368
+ copyInto(tableName: string, source: string, options: Parameters<DatabricksDialect['buildCopyIntoSql']>[2]): Promise<void>;
369
+ /**
370
+ * Build a general Delta `MERGE INTO ... USING <source relation> ON ...` that
371
+ * supports all three action branches — including `WHEN MATCHED THEN DELETE`,
372
+ * which the single-row {@link buildUpsertQuery} upsert path can't express.
373
+ * The `source` is a caller-supplied relation (a subquery/table/CTAS alias,
374
+ * e.g. `staging_updates`); this method wires the ON/action clauses around it.
375
+ */
376
+ buildMergeSql(tableName: string, source: string, options: {
377
+ sourceAlias?: string;
378
+ targetAlias?: string;
379
+ on: string;
380
+ whenMatchedUpdate?: Record<string, string> | 'ALL';
381
+ whenMatchedDelete?: boolean;
382
+ whenNotMatchedInsert?: Record<string, string> | 'ALL';
383
+ }): string;
384
+ /** Run a general Delta `MERGE INTO` (see {@link buildMergeSql}). */
385
+ mergeInto(tableName: string, source: string, options: Parameters<DatabricksDialect['buildMergeSql']>[2]): Promise<void>;
386
+ private static readonly INDEX_UNSUPPORTED;
387
+ addIndex(_tableName: string, _indexName: string, _fields?: string[], _options?: IndexOptions): Promise<void>;
388
+ createIndex(_tableName: string, _indexDef: IndexDefinition): Promise<void>;
389
+ removeIndex(_tableName: string, _indexName: string): Promise<void>;
390
+ dropIndex(_tableName: string, _indexName: string): Promise<void>;
391
+ createFulltextIndex(): Promise<void>;
392
+ createSpatialIndex(): Promise<void>;
393
+ }
394
+ /**
395
+ * Convenience factory mirroring the other dialects' `create*Dialect` helpers.
396
+ */
397
+ export declare function createDatabricksDialect(options?: DatabricksDialectOptions): DatabricksDialect;