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
@@ -52,6 +52,46 @@ class DatabricksDialect extends index_1.MySQLDialect {
52
52
  // Databricks SQL Warehouses are reached over HTTPS on port 443.
53
53
  super({ port: 443, ...config });
54
54
  this.name = 'databricks';
55
+ this.unityCatalog = config.catalog;
56
+ this.unitySchema = config.schema;
57
+ }
58
+ /**
59
+ * Quote a table name using Unity Catalog's three-level namespace when a
60
+ * catalog is configured: `` `catalog`.`schema`.`table` ``.
61
+ *
62
+ * - A name that already contains dots (the caller passed a qualified
63
+ * `catalog.schema.table` or `schema.table`) is quoted segment-by-segment
64
+ * and returned as-is — the caller's qualification always wins.
65
+ * - An unqualified name is prefixed with the configured catalog and the
66
+ * given/`schema` option/`'default'` schema.
67
+ * - With no catalog configured, behaves like the inherited MySQL/Spark
68
+ * backtick quoting (still dot-aware).
69
+ */
70
+ quoteTable(tableName, schema) {
71
+ const raw = String(tableName ?? '');
72
+ if (raw.includes('.')) {
73
+ // Already qualified — quote each segment, don't double-prefix.
74
+ return raw.split('.').map((p) => this.escapeId(p)).join('.');
75
+ }
76
+ const effectiveSchema = schema ?? this.unitySchema;
77
+ if (this.unityCatalog) {
78
+ const parts = [this.escapeId(this.unityCatalog), this.escapeId(effectiveSchema ?? 'default')];
79
+ parts.push(this.escapeId(raw));
80
+ return parts.join('.');
81
+ }
82
+ if (effectiveSchema) {
83
+ return `${this.escapeId(effectiveSchema)}.${this.escapeId(raw)}`;
84
+ }
85
+ return this.escapeId(raw);
86
+ }
87
+ /**
88
+ * Resolve a table reference to its fully-qualified, quoted Unity Catalog form.
89
+ * Thin wrapper over {@link quoteTable} used by the Databricks-specific DDL/DML
90
+ * builders (which historically emitted a bare `escapeId(table)`), so those
91
+ * now honor the configured catalog/schema too.
92
+ */
93
+ qualifiedTable(tableName, schema) {
94
+ return this.quoteTable(tableName, schema);
55
95
  }
56
96
  /**
57
97
  * Map an ORM {@link DataType} to a Spark SQL / Delta type. The key
@@ -176,7 +216,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
176
216
  if (options?.ifNotExists) {
177
217
  sql += ' IF NOT EXISTS';
178
218
  }
179
- sql += ` ${this.escapeId(tableName)} (${columnDefs.join(', ')})`;
219
+ sql += ` ${this.qualifiedTable(tableName)} (${columnDefs.join(', ')})`;
180
220
  // Data source / format. Delta is the default when unspecified.
181
221
  const format = options?.using || 'DELTA';
182
222
  sql += ` USING ${format}`;
@@ -218,7 +258,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
218
258
  if (options?.ifNotExists) {
219
259
  sql += ' IF NOT EXISTS';
220
260
  }
221
- sql += ` ${this.escapeId(tableName)}`;
261
+ sql += ` ${this.qualifiedTable(tableName)}`;
222
262
  sql += ` USING ${options?.using || 'DELTA'}`;
223
263
  if (options?.partitionedBy && options.partitionedBy.length > 0) {
224
264
  sql += ` PARTITIONED BY (${options.partitionedBy.map((c) => this.escapeId(c)).join(', ')})`;
@@ -288,7 +328,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
288
328
  const updateFields = options?.updateOnDuplicate && options.updateOnDuplicate.length > 0
289
329
  ? options.updateOnDuplicate
290
330
  : columns.filter((c) => !conflictFields.includes(c));
291
- const target = this.escapeId(tableName);
331
+ const target = this.qualifiedTable(tableName);
292
332
  let sql = `MERGE INTO ${target} AS target USING (SELECT ${sourceSelect}) AS source ON ${onClause}`;
293
333
  if (updateFields.length > 0) {
294
334
  const setClause = updateFields
@@ -386,7 +426,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
386
426
  * `ADD COLUMN col ...`.
387
427
  */
388
428
  buildAddColumnSql(tableName, columnName, definition) {
389
- return `ALTER TABLE ${this.escapeId(tableName)} ADD COLUMNS (${this.buildAddColumnSpecSql(columnName, definition)})`;
429
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} ADD COLUMNS (${this.buildAddColumnSpecSql(columnName, definition)})`;
390
430
  }
391
431
  async addColumn(tableName, columnName, definition) {
392
432
  await this.query(this.buildAddColumnSql(tableName, columnName, definition));
@@ -397,7 +437,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
397
437
  * MySQL, so behaviourally inherited but surfaced as a sync builder for tests.
398
438
  */
399
439
  buildDropColumnSql(tableName, columnName) {
400
- return `ALTER TABLE ${this.escapeId(tableName)} DROP COLUMN ${this.escapeId(columnName)}`;
440
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} DROP COLUMN ${this.escapeId(columnName)}`;
401
441
  }
402
442
  async removeColumn(tableName, columnName) {
403
443
  await this.query(this.buildDropColumnSql(tableName, columnName));
@@ -408,7 +448,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
408
448
  * re-stating the type). This override needs no `DESCRIBE` round-trip.
409
449
  */
410
450
  buildRenameColumnSql(tableName, oldColumnName, newColumnName) {
411
- return `ALTER TABLE ${this.escapeId(tableName)} RENAME COLUMN ${this.escapeId(oldColumnName)} TO ${this.escapeId(newColumnName)}`;
451
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} RENAME COLUMN ${this.escapeId(oldColumnName)} TO ${this.escapeId(newColumnName)}`;
412
452
  }
413
453
  async renameColumn(tableName, oldColumnName, newColumnName) {
414
454
  await this.query(this.buildRenameColumnSql(tableName, oldColumnName, newColumnName));
@@ -427,7 +467,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
427
467
  }
428
468
  /** Build `ALTER TABLE t ALTER COLUMN col COMMENT '...'` (Delta-supported). */
429
469
  buildSetColumnCommentSql(tableName, columnName, comment) {
430
- return `ALTER TABLE ${this.escapeId(tableName)} ALTER COLUMN ${this.escapeId(columnName)} COMMENT ${this.escape(comment)}`;
470
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} ALTER COLUMN ${this.escapeId(columnName)} COMMENT ${this.escape(comment)}`;
431
471
  }
432
472
  async setColumnComment(tableName, columnName, comment) {
433
473
  await this.query(this.buildSetColumnCommentSql(tableName, columnName, comment));
@@ -437,7 +477,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
437
477
  */
438
478
  buildSetColumnNullabilitySql(tableName, columnName, notNull) {
439
479
  const action = notNull ? 'SET NOT NULL' : 'DROP NOT NULL';
440
- return `ALTER TABLE ${this.escapeId(tableName)} ALTER COLUMN ${this.escapeId(columnName)} ${action}`;
480
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} ALTER COLUMN ${this.escapeId(columnName)} ${action}`;
441
481
  }
442
482
  async setColumnNullability(tableName, columnName, notNull) {
443
483
  await this.query(this.buildSetColumnNullabilitySql(tableName, columnName, notNull));
@@ -452,7 +492,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
452
492
  if (options?.ifExists) {
453
493
  sql += ' IF EXISTS';
454
494
  }
455
- sql += ` ${this.escapeId(tableName)}`;
495
+ sql += ` ${this.qualifiedTable(tableName)}`;
456
496
  return sql;
457
497
  }
458
498
  async dropTable(tableName, options) {
@@ -466,7 +506,7 @@ class DatabricksDialect extends index_1.MySQLDialect {
466
506
  const props = Object.entries(properties)
467
507
  .map(([k, v]) => `'${k}'=${this.escape(v)}`)
468
508
  .join(', ');
469
- return `ALTER TABLE ${this.escapeId(tableName)} SET TBLPROPERTIES (${props})`;
509
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} SET TBLPROPERTIES (${props})`;
470
510
  }
471
511
  async setTableProperties(tableName, properties) {
472
512
  await this.query(this.buildSetTablePropertiesSql(tableName, properties));
@@ -474,11 +514,193 @@ class DatabricksDialect extends index_1.MySQLDialect {
474
514
  /** Build `ALTER TABLE t UNSET TBLPROPERTIES [IF EXISTS] ('k', ...)`. */
475
515
  buildUnsetTablePropertiesSql(tableName, keys, ifExists = false) {
476
516
  const list = keys.map((k) => `'${k}'`).join(', ');
477
- return `ALTER TABLE ${this.escapeId(tableName)} UNSET TBLPROPERTIES ${ifExists ? 'IF EXISTS ' : ''}(${list})`;
517
+ return `ALTER TABLE ${this.qualifiedTable(tableName)} UNSET TBLPROPERTIES ${ifExists ? 'IF EXISTS ' : ''}(${list})`;
478
518
  }
479
519
  async unsetTableProperties(tableName, keys, ifExists = false) {
480
520
  await this.query(this.buildUnsetTablePropertiesSql(tableName, keys, ifExists));
481
521
  }
522
+ // ---------------------------------------------------------------------------
523
+ // Delta Lake operational commands
524
+ //
525
+ // Delta's answer to indexing/compaction/retention/history. These are the
526
+ // ORM-level, no-raw-SQL entry points for the features the index API can't
527
+ // express (OPTIMIZE/Z-ORDER replaces CREATE INDEX; time travel replaces
528
+ // ad-hoc snapshot SQL; COPY INTO is the idempotent bulk loader).
529
+ // ---------------------------------------------------------------------------
530
+ /**
531
+ * Build `OPTIMIZE table [WHERE ...] [ZORDER BY (cols)]` — Delta's file
532
+ * compaction command. Z-ordering co-locates related data across the given
533
+ * columns to make data-skipping effective, and is the closest Delta analog to
534
+ * a secondary index. `where` restricts compaction to matching partitions.
535
+ */
536
+ buildOptimizeSql(tableName, options) {
537
+ let sql = `OPTIMIZE ${this.qualifiedTable(tableName)}`;
538
+ if (options?.where) {
539
+ sql += ` WHERE ${options.where}`;
540
+ }
541
+ if (options?.zorderBy && options.zorderBy.length > 0) {
542
+ sql += ` ZORDER BY (${options.zorderBy.map((c) => this.escapeId(c)).join(', ')})`;
543
+ }
544
+ return sql;
545
+ }
546
+ /** Run `OPTIMIZE ... [ZORDER BY ...]` (see {@link buildOptimizeSql}). */
547
+ async optimize(tableName, options) {
548
+ await this.query(this.buildOptimizeSql(tableName, options));
549
+ }
550
+ /**
551
+ * Build `VACUUM table [RETAIN n HOURS] [DRY RUN]` — removes data files no
552
+ * longer referenced by the Delta log and older than the retention window
553
+ * (default 168 hours / 7 days). Reclaims storage from prior versions; note it
554
+ * also truncates the time-travel window it removes.
555
+ */
556
+ buildVacuumSql(tableName, options) {
557
+ let sql = `VACUUM ${this.qualifiedTable(tableName)}`;
558
+ if (options?.retainHours !== undefined) {
559
+ sql += ` RETAIN ${Number(options.retainHours)} HOURS`;
560
+ }
561
+ if (options?.dryRun) {
562
+ sql += ' DRY RUN';
563
+ }
564
+ return sql;
565
+ }
566
+ /** Run `VACUUM ...` (see {@link buildVacuumSql}). */
567
+ async vacuum(tableName, options) {
568
+ await this.query(this.buildVacuumSql(tableName, options));
569
+ }
570
+ /**
571
+ * Build a Delta time-travel `SELECT` reading a historical snapshot of a table
572
+ * by version number (`VERSION AS OF n`) or timestamp (`TIMESTAMP AS OF '...'`).
573
+ * Exactly one of `version`/`timestamp` must be given.
574
+ *
575
+ * SELECT * FROM `t` VERSION AS OF 12
576
+ * SELECT `a`, `b` FROM `t` TIMESTAMP AS OF '2024-01-01 00:00:00'
577
+ */
578
+ buildTimeTravelSelectSql(tableName, options) {
579
+ if (options.version === undefined && options.timestamp === undefined) {
580
+ throw new Error('buildTimeTravelSelectSql requires either `version` or `timestamp`.');
581
+ }
582
+ if (options.version !== undefined && options.timestamp !== undefined) {
583
+ throw new Error('buildTimeTravelSelectSql accepts only one of `version` or `timestamp`, not both.');
584
+ }
585
+ const cols = options.columns && options.columns.length > 0
586
+ ? options.columns.map((c) => this.escapeId(c)).join(', ')
587
+ : '*';
588
+ let sql = `SELECT ${cols} FROM ${this.qualifiedTable(tableName)}`;
589
+ if (options.version !== undefined) {
590
+ sql += ` VERSION AS OF ${Number(options.version)}`;
591
+ }
592
+ else {
593
+ const ts = options.timestamp instanceof Date ? options.timestamp.toISOString() : String(options.timestamp);
594
+ sql += ` TIMESTAMP AS OF ${this.escape(ts)}`;
595
+ }
596
+ if (options.where) {
597
+ sql += ` WHERE ${options.where}`;
598
+ }
599
+ return sql;
600
+ }
601
+ /** Read a historical snapshot via Delta time travel (see {@link buildTimeTravelSelectSql}). */
602
+ async selectAsOf(tableName, options) {
603
+ const result = await this.query(this.buildTimeTravelSelectSql(tableName, options));
604
+ return result.rows;
605
+ }
606
+ /**
607
+ * Build `RESTORE TABLE t TO VERSION AS OF n` / `TO TIMESTAMP AS OF '...'` —
608
+ * roll a Delta table back to a prior version in place.
609
+ */
610
+ buildRestoreSql(tableName, options) {
611
+ if (options.version === undefined && options.timestamp === undefined) {
612
+ throw new Error('buildRestoreSql requires either `version` or `timestamp`.');
613
+ }
614
+ let sql = `RESTORE TABLE ${this.qualifiedTable(tableName)}`;
615
+ if (options.version !== undefined) {
616
+ sql += ` TO VERSION AS OF ${Number(options.version)}`;
617
+ }
618
+ else {
619
+ const ts = options.timestamp instanceof Date ? options.timestamp.toISOString() : String(options.timestamp);
620
+ sql += ` TO TIMESTAMP AS OF ${this.escape(ts)}`;
621
+ }
622
+ return sql;
623
+ }
624
+ /** Restore a Delta table to a prior version/timestamp (see {@link buildRestoreSql}). */
625
+ async restore(tableName, options) {
626
+ await this.query(this.buildRestoreSql(tableName, options));
627
+ }
628
+ /**
629
+ * Build a Databricks `COPY INTO` bulk-load statement — the idempotent,
630
+ * exactly-once loader from a cloud file location into a Delta table:
631
+ *
632
+ * COPY INTO `t` FROM 's3://bucket/path'
633
+ * FILEFORMAT = CSV
634
+ * FILES = ('a.csv','b.csv') -- or PATTERN = '*.csv'
635
+ * FORMAT_OPTIONS ('header'='true')
636
+ * COPY_OPTIONS ('mergeSchema'='true')
637
+ */
638
+ buildCopyIntoSql(tableName, source, options) {
639
+ let sql = `COPY INTO ${this.qualifiedTable(tableName)} FROM ${this.escape(source)}`;
640
+ sql += ` FILEFORMAT = ${options.fileFormat}`;
641
+ if (options.files && options.files.length > 0) {
642
+ sql += ` FILES = (${options.files.map((f) => this.escape(f)).join(', ')})`;
643
+ }
644
+ if (options.pattern) {
645
+ sql += ` PATTERN = ${this.escape(options.pattern)}`;
646
+ }
647
+ if (options.formatOptions && Object.keys(options.formatOptions).length > 0) {
648
+ const opts = Object.entries(options.formatOptions)
649
+ .map(([k, v]) => `${this.escape(k)} = ${this.escape(v)}`)
650
+ .join(', ');
651
+ sql += ` FORMAT_OPTIONS (${opts})`;
652
+ }
653
+ if (options.copyOptions && Object.keys(options.copyOptions).length > 0) {
654
+ const opts = Object.entries(options.copyOptions)
655
+ .map(([k, v]) => `${this.escape(k)} = ${this.escape(v)}`)
656
+ .join(', ');
657
+ sql += ` COPY_OPTIONS (${opts})`;
658
+ }
659
+ return sql;
660
+ }
661
+ /** Run a `COPY INTO` bulk load (see {@link buildCopyIntoSql}). */
662
+ async copyInto(tableName, source, options) {
663
+ await this.query(this.buildCopyIntoSql(tableName, source, options));
664
+ }
665
+ /**
666
+ * Build a general Delta `MERGE INTO ... USING <source relation> ON ...` that
667
+ * supports all three action branches — including `WHEN MATCHED THEN DELETE`,
668
+ * which the single-row {@link buildUpsertQuery} upsert path can't express.
669
+ * The `source` is a caller-supplied relation (a subquery/table/CTAS alias,
670
+ * e.g. `staging_updates`); this method wires the ON/action clauses around it.
671
+ */
672
+ buildMergeSql(tableName, source, options) {
673
+ const targetAlias = options.targetAlias || 'target';
674
+ const sourceAlias = options.sourceAlias || 'source';
675
+ let sql = `MERGE INTO ${this.qualifiedTable(tableName)} AS ${targetAlias}` +
676
+ ` USING ${source} AS ${sourceAlias}` +
677
+ ` ON ${options.on}`;
678
+ if (options.whenMatchedUpdate === 'ALL') {
679
+ sql += ' WHEN MATCHED THEN UPDATE SET *';
680
+ }
681
+ else if (options.whenMatchedUpdate) {
682
+ const set = Object.entries(options.whenMatchedUpdate)
683
+ .map(([col, expr]) => `${this.escapeId(col)} = ${expr}`)
684
+ .join(', ');
685
+ sql += ` WHEN MATCHED THEN UPDATE SET ${set}`;
686
+ }
687
+ if (options.whenMatchedDelete) {
688
+ sql += ' WHEN MATCHED THEN DELETE';
689
+ }
690
+ if (options.whenNotMatchedInsert === 'ALL') {
691
+ sql += ' WHEN NOT MATCHED THEN INSERT *';
692
+ }
693
+ else if (options.whenNotMatchedInsert) {
694
+ const cols = Object.keys(options.whenNotMatchedInsert).map((c) => this.escapeId(c)).join(', ');
695
+ const vals = Object.values(options.whenNotMatchedInsert).join(', ');
696
+ sql += ` WHEN NOT MATCHED THEN INSERT (${cols}) VALUES (${vals})`;
697
+ }
698
+ return sql;
699
+ }
700
+ /** Run a general Delta `MERGE INTO` (see {@link buildMergeSql}). */
701
+ async mergeInto(tableName, source, options) {
702
+ await this.query(this.buildMergeSql(tableName, source, options));
703
+ }
482
704
  async addIndex(_tableName, _indexName, _fields, _options) {
483
705
  throw new Error(DatabricksDialect.INDEX_UNSUPPORTED);
484
706
  }