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,440 @@
1
+ /**
2
+ * DuckDB dialect implementation
3
+ *
4
+ * DuckDB is an embedded, in-process OLAP database (similar in deployment
5
+ * model to SQLite - a single file or `:memory:`, no server/host/port/auth)
6
+ * but with a genuinely modern analytical SQL engine: real window functions,
7
+ * recursive CTEs, rich composite types (LIST/STRUCT/MAP), first-class
8
+ * Parquet/CSV/JSON table functions, native sequences, and a real extension
9
+ * system (INSTALL/LOAD).
10
+ *
11
+ * The `duckdb` npm driver's public API (`duckdb/lib/duckdb.d.ts`) is
12
+ * callback-based (`new duckdb.Database(path, cb)`, `db.all(sql, ...args, cb)`,
13
+ * `db.run(sql, ...args, cb)`). All of that is wrapped in Promises here.
14
+ */
15
+ import type * as duckdb from 'duckdb';
16
+ import { Dialect, DialectOptions, ColumnDefinition, TableOptions, DropTableOptions, TableDescription, IndexOptions, IndexDefinition, InsertOptions, UpdateOptions as DUpdateOptions, DeleteOptions, SelectOptions, UpsertQueryOptions, ConstraintDefinition, DropConstraintOptions, DropIndexOptions, ViewOptions, DropViewOptions, DropSchemaOptions, CreateExtensionOptions, DropExtensionOptions, ExtensionInfo, BuildOptions, FdwForeignServerOptions, FdwAlterForeignServerOptions, FdwUserMappingOptions, FdwForeignTableOptions, FdwImportForeignSchemaOptions } from '../dialect';
17
+ import { Transaction, TransactionOptions, QueryResult, QueryOptions, DataType, WhereOptions, Order, CreatePartitionOptions, AttachPartitionOptions, DetachPartitionOptions, StoredProcedureOptions, DropStoredProcedureOptions, ExecuteStoredProcedureOptions, TriggerOptions, DropTriggerOptions, SequenceOptions, DropSequenceOptions, StreamOptions } from '../../types';
18
+ import { Readable } from 'stream';
19
+ /**
20
+ * A single `ON CONFLICT (...) DO ...` target for multi-target upserts, mirroring
21
+ * SQLite's chained-conflict-target support (DuckDB's `ON CONFLICT` grammar is the
22
+ * same PostgreSQL-derived grammar SQLite adopted).
23
+ */
24
+ export interface ConflictTarget {
25
+ fields: string[];
26
+ action?: 'DO NOTHING' | 'DO UPDATE';
27
+ updateColumns?: string[];
28
+ where?: string;
29
+ }
30
+ /**
31
+ * Options accepted by the DuckDB dialect.
32
+ *
33
+ * DuckDB is embedded (like SQLite): there is no host/port/username/password -
34
+ * everything is a local file path or `:memory:`. `DuckDBDialectOptions`
35
+ * extends the shared `DialectOptions` (which declares those network fields as
36
+ * optional) purely so the constructor accepts the same shape other dialects
37
+ * do without a type error when callers pass a generic config object; any
38
+ * host/port/username/password values are accepted and silently ignored.
39
+ */
40
+ export interface DuckDBDialectOptions extends DialectOptions {
41
+ /** File path to the database, or ':memory:' (default) */
42
+ storage?: string;
43
+ /** Open the database in read-only mode */
44
+ readonly?: boolean;
45
+ /** DuckDB config options passed through to the Database constructor (e.g. { max_memory: '4GB' }) */
46
+ config?: Record<string, string>;
47
+ }
48
+ /**
49
+ * DuckDB dialect class implementing the shared `Dialect` interface.
50
+ */
51
+ export declare class DuckDBDialect implements Dialect {
52
+ readonly name = "duckdb";
53
+ readonly library = "duckdb";
54
+ private db;
55
+ private connection;
56
+ private _isConnected;
57
+ private config;
58
+ private transactionDepth;
59
+ constructor(config: DuckDBDialectOptions);
60
+ /**
61
+ * Connect to the DuckDB database (embedded - opens a local file or :memory:).
62
+ * host/port/username/password (if present on the config for API parity with
63
+ * networked dialects) are intentionally ignored - DuckDB is single-process.
64
+ */
65
+ connect(): Promise<void>;
66
+ disconnect(): Promise<void>;
67
+ getConnection(): duckdb.Connection | null;
68
+ isConnected(): boolean;
69
+ /**
70
+ * Stream query results by paging through `sql` via repeated
71
+ * dialect-appropriate LIMIT/OFFSET queries (see
72
+ * `createPaginatedQueryStream()` in `src/dialects/query-stream-helper.ts`)
73
+ * instead of loading the whole result set into memory at once.
74
+ * @param sql - The SELECT statement to stream
75
+ * @param options - Streaming options (batch size, backpressure watermark, model mapping)
76
+ */
77
+ queryStream(sql: string, options?: StreamOptions): Readable;
78
+ /**
79
+ * Execute a raw SQL query with retry support.
80
+ */
81
+ query(sql: string, options?: QueryOptions): Promise<QueryResult>;
82
+ private executeWithRetry;
83
+ /**
84
+ * Replace placeholders in SQL with actual values.
85
+ */
86
+ replaceReplacements(sql: string, replacements?: Record<string, unknown> | unknown[]): string;
87
+ /**
88
+ * Escape a value for use in a query. DuckDB uses standard SQL literals -
89
+ * TRUE/FALSE for booleans (not 0/1), single-quoted strings, and a
90
+ * `'\x..'::BLOB` cast for binary data.
91
+ */
92
+ escape(value: unknown): string;
93
+ private escapeString;
94
+ escapeId(identifier: unknown): string;
95
+ quoteIdentifier(identifier: string): string;
96
+ quoteTable(tableName: string, schema?: string): string;
97
+ getDatabaseVersion(): Promise<string>;
98
+ createDatabaseSQL(options: {
99
+ name: string;
100
+ encoding?: string;
101
+ lcCollate?: string;
102
+ lcCtype?: string;
103
+ template?: string;
104
+ tablespace?: string;
105
+ collate?: string;
106
+ isTemplate?: boolean;
107
+ }): string;
108
+ dropDatabaseSQL(name: string): string;
109
+ /**
110
+ * Attach another DuckDB (or SQLite/Postgres, via the respective DuckDB
111
+ * extension) database file under `alias`, making it queryable as
112
+ * `alias.table`.
113
+ */
114
+ attachDatabase(path: string, alias: string, options?: {
115
+ readOnly?: boolean;
116
+ type?: string;
117
+ }): Promise<void>;
118
+ detachDatabase(alias: string): Promise<void>;
119
+ createSavepointSQL(name?: string): string;
120
+ releaseSavepointSQL(name: string): string;
121
+ rollbackToSavepointSQL(name: string): string;
122
+ createSchema(schema: string): Promise<void>;
123
+ dropSchema(schema: string, options?: DropSchemaOptions): Promise<void>;
124
+ showAllSchemas(): Promise<string[]>;
125
+ listSchemas(): Promise<string[]>;
126
+ createExtension(extensionName: string, options?: CreateExtensionOptions): Promise<void>;
127
+ dropExtension(_extensionName: string, _options?: DropExtensionOptions): Promise<void>;
128
+ getExtensions(): Promise<ExtensionInfo[]>;
129
+ hasExtension(extensionName: string): Promise<boolean>;
130
+ createTable(tableName: string, columns: Record<string, ColumnDefinition>, options?: TableOptions): Promise<void>;
131
+ private _autoIncrementSequenceName;
132
+ private buildConstraintSql;
133
+ private getColumnDefinitionSql;
134
+ private getDefaultValue;
135
+ dropTable(tableName: string, options?: DropTableOptions): Promise<void>;
136
+ createPartitionedTable(tableName: string, columns: Record<string, ColumnDefinition>, options?: TableOptions & {
137
+ partitionBy: {
138
+ type: 'range' | 'list' | 'hash';
139
+ column: string | string[];
140
+ };
141
+ partitions?: {
142
+ name: string;
143
+ bound?: any;
144
+ tablespace?: string;
145
+ storageParameters?: Record<string, string | number>;
146
+ }[];
147
+ }): Promise<void>;
148
+ createPartition(options: CreatePartitionOptions): Promise<void>;
149
+ attachPartition(options: AttachPartitionOptions): Promise<void>;
150
+ detachPartition(options: DetachPartitionOptions): Promise<void>;
151
+ dropPartition(partitionName: string, options?: {
152
+ ifExists?: boolean;
153
+ cascade?: boolean;
154
+ }): Promise<void>;
155
+ listPartitions(tableName: string): Promise<Array<{
156
+ name: string;
157
+ parent_table: string;
158
+ bound: string | null;
159
+ is_detached: boolean;
160
+ }>>;
161
+ createView(viewName: string, query: string, options?: ViewOptions): Promise<void>;
162
+ dropView(viewName: string, options?: DropViewOptions): Promise<void>;
163
+ showViews(): Promise<string[]>;
164
+ /**
165
+ * Materialized views (not supported). DuckDB has no `CREATE MATERIALIZED
166
+ * VIEW` statement - the closest equivalents are a plain table populated via
167
+ * `CREATE TABLE ... AS SELECT ...` (refreshed by re-running the query) or
168
+ * exporting to Parquet with `copyTo()` and reading it back with
169
+ * `readParquet()`.
170
+ */
171
+ createMaterializedView(): Promise<void>;
172
+ refreshMaterializedView(): Promise<void>;
173
+ dropMaterializedView(): Promise<void>;
174
+ hasMaterializedView(): Promise<boolean>;
175
+ showMaterializedViews(): Promise<string[]>;
176
+ addColumn(tableName: string, columnName: string, definition: ColumnDefinition): Promise<void>;
177
+ removeColumn(tableName: string, columnName: string): Promise<void>;
178
+ changeColumn(tableName: string, columnName: string, definition: ColumnDefinition): Promise<void>;
179
+ renameColumn(tableName: string, oldColumnName: string, newColumnName: string): Promise<void>;
180
+ addForeignKey(tableName: string, _columnName: string, _referencedTableName: string, _referencedColumnName: string): Promise<void>;
181
+ bulkInsert(tableName: string, records: Record<string, any>[], _options?: any): Promise<QueryResult>;
182
+ showTables(): Promise<string[]>;
183
+ showConstraints(tableName: string): Promise<any[]>;
184
+ addConstraint(tableName: string, options: {
185
+ type: 'UNIQUE' | 'CHECK' | 'PRIMARY KEY' | 'FOREIGN KEY';
186
+ fields: string[];
187
+ name?: string;
188
+ references?: {
189
+ table: string;
190
+ fields: string[];
191
+ };
192
+ check?: string;
193
+ }): Promise<void>;
194
+ removeConstraint(tableName: string, constraintName: string): Promise<void>;
195
+ showIndexes(tableName: string): Promise<any[]>;
196
+ describeTable(tableName: string): Promise<TableDescription>;
197
+ renameTable(oldName: string, newName: string): Promise<void>;
198
+ addIndex(tableName: string, indexName: string, fields?: string[], options?: IndexOptions): Promise<void>;
199
+ removeIndex(_tableName: string, indexName: string): Promise<void>;
200
+ createIndex(tableName: string, indexDef: IndexDefinition): Promise<void>;
201
+ createFulltextIndex(): Promise<void>;
202
+ createSpatialIndex(): Promise<void>;
203
+ dropIndex(_tableName: string, indexName: string, _options?: DropIndexOptions): Promise<void>;
204
+ createConstraint(tableName: string, constraintDef: ConstraintDefinition): Promise<void>;
205
+ dropConstraint(tableName: string, constraintName: string, options?: DropConstraintOptions): Promise<void>;
206
+ changeOwner(): Promise<void>;
207
+ private fdwNotSupported;
208
+ createForeignDataWrapper(): Promise<void>;
209
+ dropForeignDataWrapper(): Promise<void>;
210
+ createForeignServer(): Promise<void>;
211
+ dropForeignServer(): Promise<void>;
212
+ createForeignTable(): Promise<void>;
213
+ buildCreateServerQuery(_name: string, _opts: FdwForeignServerOptions): string;
214
+ buildAlterServerQuery(_name: string, _opts: FdwAlterForeignServerOptions): string;
215
+ buildDropServerQuery(): string;
216
+ buildCreateUserMappingQuery(_opts: FdwUserMappingOptions): string;
217
+ buildAlterUserMappingQuery(_opts: FdwUserMappingOptions): string;
218
+ buildDropUserMappingQuery(): string;
219
+ createUserMapping(): Promise<void>;
220
+ dropUserMapping(): Promise<void>;
221
+ buildCreateForeignTableQuery(_tableName: string, _opts: FdwForeignTableOptions): string;
222
+ buildDropForeignTableQuery(): string;
223
+ buildImportForeignSchemaQuery(_remoteSchema: string, _serverName: string, _opts?: FdwImportForeignSchemaOptions): string;
224
+ getServersQuery(): string;
225
+ createSecurityPolicy(): Promise<void>;
226
+ dropSecurityPolicy(): Promise<void>;
227
+ private userMgmtNotSupported;
228
+ buildCreateUserQuery(): string;
229
+ buildAlterUserQuery(): string;
230
+ buildDropUserQuery(): string;
231
+ getUsersQuery(): string;
232
+ buildGrantQuery(): string;
233
+ buildRevokeQuery(): string;
234
+ buildShowGrantsQuery(): string;
235
+ buildFlushPrivilegesQuery(): string;
236
+ buildCreateRoleQuery(): string;
237
+ buildDropRoleQuery(): string;
238
+ buildGrantRoleQuery(): string;
239
+ buildRevokeRoleQuery(): string;
240
+ getRolesQuery(): string;
241
+ createStoredProcedure(options: StoredProcedureOptions): Promise<void>;
242
+ createProcedure(options: StoredProcedureOptions): Promise<void>;
243
+ dropStoredProcedure(procedureName: string, _options?: DropStoredProcedureOptions): Promise<void>;
244
+ dropProcedure(procedureName: string, options?: DropStoredProcedureOptions): Promise<void>;
245
+ executeStoredProcedure(options: ExecuteStoredProcedureOptions): Promise<QueryResult>;
246
+ hasStoredProcedure(): Promise<boolean>;
247
+ createTrigger(options: TriggerOptions): Promise<void>;
248
+ dropTrigger(triggerName: string, _tableName: string, _options?: DropTriggerOptions): Promise<void>;
249
+ hasTrigger(): Promise<boolean>;
250
+ createSequence(options: SequenceOptions): Promise<void>;
251
+ dropSequence(sequenceName: string, options?: DropSequenceOptions): Promise<void>;
252
+ nextSequenceValue(sequenceName: string): Promise<number>;
253
+ hasSequence(sequenceName: string, schema?: string): Promise<boolean>;
254
+ listSequences(): Promise<string[]>;
255
+ createPolicy(): Promise<void>;
256
+ dropPolicy(): Promise<void>;
257
+ enableRLS(): Promise<void>;
258
+ disableRLS(): Promise<void>;
259
+ hasPolicy(): Promise<boolean>;
260
+ commentTable(tableName: string, comment: string): Promise<void>;
261
+ commentColumn(tableName: string, columnName: string, comment: string): Promise<void>;
262
+ createPartialIndex(): Promise<void>;
263
+ createExpressionIndex(tableName: string, indexName: string, expression: string, options?: IndexOptions): Promise<void>;
264
+ createIdentityColumn(tableName: string, columnName: string, options?: {
265
+ startWith?: number;
266
+ incrementBy?: number;
267
+ }): Promise<void>;
268
+ createComputedColumn(tableName: string, columnName: string, expression: string, options?: {
269
+ persisted?: boolean;
270
+ type?: string;
271
+ }): Promise<void>;
272
+ startTransaction(options?: TransactionOptions): Promise<Transaction>;
273
+ commitTransaction(transaction: Transaction): Promise<void>;
274
+ rollbackTransaction(transaction: Transaction): Promise<void>;
275
+ getDataTypeSql(dataType: DataType, columnName?: string): string;
276
+ buildWhereClause(where: WhereOptions, _options?: BuildOptions): {
277
+ sql: string;
278
+ values: unknown[];
279
+ };
280
+ buildOrderClause(order: Order): string;
281
+ buildLimitOffset(limit?: number | string, offset?: number | string): string;
282
+ buildInsertQuery(tableName: string, values: Record<string, unknown>, options?: InsertOptions & {
283
+ doNothing?: boolean;
284
+ conflictTargets?: ConflictTarget[];
285
+ }): {
286
+ sql: string;
287
+ values: unknown[];
288
+ };
289
+ private buildOnConflictClause;
290
+ private buildConflictTargetsSql;
291
+ buildUpsertQuery(tableName: string, values: Record<string, unknown>, options?: UpsertQueryOptions & {
292
+ doNothing?: boolean;
293
+ conflictTargets?: ConflictTarget[];
294
+ }): {
295
+ sql: string;
296
+ values: unknown[];
297
+ };
298
+ buildIncrementQuery(tableName: string, fields: string | string[] | Record<string, number>, where: WhereOptions, options?: {
299
+ by?: number;
300
+ }): {
301
+ sql: string;
302
+ values: unknown[];
303
+ };
304
+ buildUpdateQuery(tableName: string, values: Record<string, unknown>, where: WhereOptions, options?: DUpdateOptions): {
305
+ sql: string;
306
+ values: unknown[];
307
+ };
308
+ buildDeleteQuery(tableName: string, where: WhereOptions, options?: DeleteOptions): {
309
+ sql: string;
310
+ values: unknown[];
311
+ };
312
+ buildSelectQuery(options: SelectOptions): {
313
+ sql: string;
314
+ values: unknown[];
315
+ };
316
+ /**
317
+ * Formats a SELECT attribute string: bare identifiers get quoted, anything
318
+ * that already looks like an expression (function call, `*`, operators,
319
+ * DuckDB's `EXCLUDE`/`REPLACE` column-transform syntax) passes through
320
+ * verbatim so callers can supply raw analytical SQL.
321
+ */
322
+ private formatMaybeExpression;
323
+ buildJsonExtract(column: string, path: string, asText?: boolean): string;
324
+ private escapeStringForJsonPath;
325
+ buildJsonQuery(column: string, path: string, value?: unknown, operator?: string): {
326
+ sql: string;
327
+ values: unknown[];
328
+ };
329
+ /**
330
+ * Build a `read_parquet(...)` table-function expression usable in a FROM
331
+ * clause, e.g. `FROM ${dialect.readParquet('data/*.parquet')}`.
332
+ */
333
+ readParquet(path: string | string[], options?: {
334
+ hivePartitioning?: boolean;
335
+ unionByName?: boolean;
336
+ filename?: boolean;
337
+ columns?: Record<string, string>;
338
+ }): string;
339
+ /**
340
+ * Build a `read_csv_auto(...)` (or `read_csv(...)` with explicit options)
341
+ * table-function expression usable in a FROM clause.
342
+ */
343
+ readCsv(path: string | string[], options?: {
344
+ header?: boolean;
345
+ delim?: string;
346
+ columns?: Record<string, string>;
347
+ autoDetect?: boolean;
348
+ allVarchar?: boolean;
349
+ }): string;
350
+ /**
351
+ * Build a `read_json_auto(...)` (or `read_json(...)` with explicit options)
352
+ * table-function expression usable in a FROM clause.
353
+ */
354
+ readJson(path: string | string[], options?: {
355
+ format?: 'auto' | 'newline_delimited' | 'array';
356
+ columns?: Record<string, string>;
357
+ autoDetect?: boolean;
358
+ }): string;
359
+ /**
360
+ * Export the results of a query straight to a Parquet/CSV/JSON file via
361
+ * DuckDB's `COPY (query) TO 'file' (FORMAT ...)`.
362
+ */
363
+ copyTo(query: string, path: string, format: 'PARQUET' | 'CSV' | 'JSON', options?: {
364
+ partitionBy?: string[];
365
+ overwrite?: boolean;
366
+ compression?: string;
367
+ header?: boolean;
368
+ }): Promise<void>;
369
+ /**
370
+ * Configure S3 access via DuckDB httpfs `SET s3_...` session/global
371
+ * variables. Only emits a `SET` statement for options that are actually
372
+ * provided. Simpler than `createSecret()` but global to the instance (later
373
+ * calls overwrite earlier ones; there is no per-bucket scoping) - prefer
374
+ * `createSecret()` when multiple credentials/buckets are in play.
375
+ *
376
+ * Requires the `httpfs` extension to be installed/loaded first (see
377
+ * `createExtension('httpfs')`).
378
+ */
379
+ configureS3Credentials(options: {
380
+ region?: string;
381
+ accessKeyId?: string;
382
+ secretAccessKey?: string;
383
+ sessionToken?: string;
384
+ endpoint?: string;
385
+ urlStyle?: 'vhost' | 'path';
386
+ useSsl?: boolean;
387
+ }): Promise<void>;
388
+ /**
389
+ * Create a named DuckDB Secrets Manager secret of `TYPE S3` for use with
390
+ * `read_parquet`/`read_csv`/`read_json`/`copyTo` against `s3://` paths.
391
+ * This is the newer, DuckDB-recommended alternative to
392
+ * `configureS3Credentials()`'s global `SET s3_...` variables: secrets are
393
+ * named, can be scoped to a path prefix, and multiple secrets (for
394
+ * different buckets/credentials) can coexist.
395
+ *
396
+ * Requires the `httpfs` extension to be installed/loaded first (see
397
+ * `createExtension('httpfs')`).
398
+ */
399
+ createSecret(name: string, options?: {
400
+ keyId?: string;
401
+ secret?: string;
402
+ region?: string;
403
+ sessionToken?: string;
404
+ endpoint?: string;
405
+ urlStyle?: 'vhost' | 'path';
406
+ useSsl?: boolean;
407
+ scope?: string | string[];
408
+ replace?: boolean;
409
+ persistent?: boolean;
410
+ }): Promise<void>;
411
+ /**
412
+ * Drop a previously created `CREATE SECRET` (see `createSecret()`).
413
+ */
414
+ dropSecret(name: string, options?: {
415
+ ifExists?: boolean;
416
+ }): Promise<void>;
417
+ }
418
+ /**
419
+ * DuckDB-specific transaction class. DuckDB supports SAVEPOINT for nested
420
+ * transactions (in addition to top-level BEGIN/COMMIT/ROLLBACK).
421
+ */
422
+ export declare class DuckDBTransaction implements Transaction {
423
+ private dialect?;
424
+ id: string;
425
+ finished: boolean;
426
+ options: TransactionOptions;
427
+ parent: Transaction | null;
428
+ savepoints: string[];
429
+ constructor(depth: number, options?: TransactionOptions, dialect?: {
430
+ commitTransaction(tx: Transaction): Promise<void>;
431
+ rollbackTransaction(tx: Transaction): Promise<void>;
432
+ } | undefined);
433
+ commit(): Promise<void>;
434
+ rollback(): Promise<void>;
435
+ }
436
+ /**
437
+ * Create a new DuckDB dialect instance.
438
+ */
439
+ export declare function createDuckDBDialect(options?: DuckDBDialectOptions): DuckDBDialect;
440
+ export default DuckDBDialect;
@@ -13,43 +13,26 @@
13
13
  * callback-based (`new duckdb.Database(path, cb)`, `db.all(sql, ...args, cb)`,
14
14
  * `db.run(sql, ...args, cb)`). All of that is wrapped in Promises here.
15
15
  */
16
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- var desc = Object.getOwnPropertyDescriptor(m, k);
19
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
- desc = { enumerable: true, get: function() { return m[k]; } };
21
- }
22
- Object.defineProperty(o, k2, desc);
23
- }) : (function(o, m, k, k2) {
24
- if (k2 === undefined) k2 = k;
25
- o[k2] = m[k];
26
- }));
27
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
- Object.defineProperty(o, "default", { enumerable: true, value: v });
29
- }) : function(o, v) {
30
- o["default"] = v;
31
- });
32
- var __importStar = (this && this.__importStar) || (function () {
33
- var ownKeys = function(o) {
34
- ownKeys = Object.getOwnPropertyNames || function (o) {
35
- var ar = [];
36
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
37
- return ar;
38
- };
39
- return ownKeys(o);
40
- };
41
- return function (mod) {
42
- if (mod && mod.__esModule) return mod;
43
- var result = {};
44
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
45
- __setModuleDefault(result, mod);
46
- return result;
47
- };
48
- })();
49
16
  Object.defineProperty(exports, "__esModule", { value: true });
50
17
  exports.DuckDBTransaction = exports.DuckDBDialect = void 0;
51
18
  exports.createDuckDBDialect = createDuckDBDialect;
52
- const duckdb = __importStar(require("duckdb"));
19
+ // Lazily-loaded `duckdb` driver. This native addon is only loaded the first
20
+ // time a connection is opened, so importing this ORM never dlopens the duckdb
21
+ // native binding.
22
+ let duckdbModule = null;
23
+ function loadDuckDb() {
24
+ if (!duckdbModule) {
25
+ try {
26
+ duckdbModule = require('duckdb');
27
+ }
28
+ catch (err) {
29
+ throw new Error("The 'duckdb' package is required to use the DuckDB dialect but could not be loaded. " +
30
+ 'Install it with `npm install duckdb`. Original error: ' +
31
+ (err instanceof Error ? err.message : String(err)));
32
+ }
33
+ }
34
+ return duckdbModule;
35
+ }
53
36
  const query_stream_helper_1 = require("../query-stream-helper");
54
37
  const prorm_1 = require("../../prorm");
55
38
  const operators_1 = require("../../operators");
@@ -127,7 +110,7 @@ class DuckDBDialect {
127
110
  accessMode = { ...accessMode, access_mode: 'READ_ONLY' };
128
111
  }
129
112
  else if (!accessMode) {
130
- accessMode = duckdb.OPEN_READONLY;
113
+ accessMode = loadDuckDb().OPEN_READONLY;
131
114
  }
132
115
  }
133
116
  const cb = (err) => {
@@ -142,9 +125,10 @@ class DuckDBDialect {
142
125
  else
143
126
  resolve(database);
144
127
  };
128
+ const DuckDbDatabase = loadDuckDb().Database;
145
129
  const database = accessMode
146
- ? new duckdb.Database(this.config.storage, accessMode, cb)
147
- : new duckdb.Database(this.config.storage, cb);
130
+ ? new DuckDbDatabase(this.config.storage, accessMode, cb)
131
+ : new DuckDbDatabase(this.config.storage, cb);
148
132
  });
149
133
  this.connection = this.db.connect();
150
134
  this._isConnected = true;