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,286 @@
1
+ /**
2
+ * TimescaleDB dialect implementation for the TypeScript ORM
3
+ *
4
+ * TimescaleDB is not a separate database engine — it is a PostgreSQL extension
5
+ * (`CREATE EXTENSION timescaledb`) that layers time-series capabilities on top
6
+ * of a stock PostgreSQL server. Because of that, this dialect extends
7
+ * `PostgresDialect` and reuses the exact same `pg` driver, wire protocol, and
8
+ * default port (5432). Everything PostgreSQL can do, TimescaleDB can do; this
9
+ * subclass only adds thin SQL builders for TimescaleDB-specific features.
10
+ *
11
+ * TimescaleDB-specific helpers (pure, synchronous SQL builders — they return
12
+ * the SQL string so callers can run it through the inherited `query()`):
13
+ *
14
+ * - `createExtensionSQL()` → `CREATE EXTENSION IF NOT EXISTS timescaledb`
15
+ * - `createHypertable()` → `SELECT create_hypertable(...)`
16
+ * - `addCompressionPolicy()` → `SELECT add_compression_policy(...)`
17
+ * - `addRetentionPolicy()` → `SELECT add_retention_policy(...)`
18
+ * - `createContinuousAggregate()` → `CREATE MATERIALIZED VIEW ... WITH (timescaledb.continuous) AS ...`
19
+ * - `enableCompression()` → `ALTER TABLE ... SET (timescaledb.compress, ...)`
20
+ *
21
+ * @see https://docs.timescale.com/
22
+ */
23
+ import { PostgresDialect, PostgresDialectOptions } from '../postgres/index';
24
+ /**
25
+ * Options for {@link TimescaleDBDialect.createHypertable}.
26
+ * @see https://docs.timescale.com/api/latest/hypertable/create_hypertable/
27
+ */
28
+ export interface CreateHypertableOptions {
29
+ /**
30
+ * Chunk time interval. A string is treated as a PostgreSQL interval literal
31
+ * (e.g. `'7 days'`, `'1 hour'`) and emitted as
32
+ * `chunk_time_interval => INTERVAL '...'`. A number is treated as a raw
33
+ * integer interval (for hypertables partitioned on an integer/bigint time
34
+ * column rather than a timestamp) and emitted as
35
+ * `chunk_time_interval => <number>` with no `INTERVAL` keyword.
36
+ * @default '7 days'
37
+ */
38
+ chunkTimeInterval?: string | number;
39
+ /** Emit `if_not_exists => TRUE` so re-running is idempotent. */
40
+ ifNotExists?: boolean;
41
+ /**
42
+ * Emit `migrate_data => TRUE` to convert a table that already contains rows
43
+ * into a hypertable (moving existing data into chunks).
44
+ */
45
+ migrateData?: boolean;
46
+ }
47
+ /**
48
+ * Options for {@link TimescaleDBDialect.enableCompression}.
49
+ * @see https://docs.timescale.com/api/latest/compression/alter_table_compression/
50
+ */
51
+ export interface EnableCompressionOptions {
52
+ /**
53
+ * Column(s) used to segment compressed data
54
+ * (`timescaledb.compress_segmentby`). Accepts a single column name or a list.
55
+ */
56
+ segmentBy?: string | string[];
57
+ /**
58
+ * Column(s) used to order data within a compressed chunk
59
+ * (`timescaledb.compress_orderby`), e.g. `'time DESC'`.
60
+ */
61
+ orderBy?: string | string[];
62
+ }
63
+ /**
64
+ * Options for {@link TimescaleDBDialect.addDimension} — add a secondary
65
+ * (space) partitioning dimension to an existing hypertable.
66
+ * @see https://docs.timescale.com/api/latest/hypertable/add_dimension/
67
+ */
68
+ export interface AddDimensionOptions {
69
+ /**
70
+ * Number of hash partitions for a space dimension
71
+ * (`number_partitions => n`). Mutually exclusive with
72
+ * {@link chunkTimeInterval}.
73
+ */
74
+ numberPartitions?: number;
75
+ /**
76
+ * Interval for an additional time/range dimension
77
+ * (`chunk_time_interval => ...`). A string becomes an `INTERVAL '...'`
78
+ * literal; a number is emitted raw (integer time columns).
79
+ */
80
+ chunkTimeInterval?: string | number;
81
+ /** Emit `if_not_exists => TRUE` so re-running is idempotent. */
82
+ ifNotExists?: boolean;
83
+ }
84
+ /**
85
+ * Options for {@link TimescaleDBDialect.addContinuousAggregatePolicy} — the
86
+ * automatic refresh policy for a continuous aggregate.
87
+ * @see https://docs.timescale.com/api/latest/continuous-aggregates/add_continuous_aggregate_policy/
88
+ */
89
+ export interface ContinuousAggregatePolicyOptions {
90
+ /**
91
+ * How far back the refresh window starts (`start_offset`). A string is an
92
+ * `INTERVAL '...'` literal, a number is a raw integer offset, and `null`
93
+ * emits `NULL` (refresh from the beginning of time).
94
+ */
95
+ startOffset: string | number | null;
96
+ /**
97
+ * How close to "now" the refresh window ends (`end_offset`). Same encoding
98
+ * rules as {@link startOffset}.
99
+ */
100
+ endOffset: string | number | null;
101
+ /** How often the policy runs (`schedule_interval`), e.g. `'1 hour'`. */
102
+ scheduleInterval: string | number;
103
+ }
104
+ /**
105
+ * TimescaleDB dialect — a PostgreSQL dialect (reusing the `pg` driver on the
106
+ * standard port 5432) extended with time-series helpers backed by the
107
+ * `timescaledb` extension.
108
+ */
109
+ export declare class TimescaleDBDialect extends PostgresDialect {
110
+ readonly name: "postgres";
111
+ constructor(config?: PostgresDialectOptions);
112
+ /**
113
+ * Build the SQL that enables the TimescaleDB extension on the current
114
+ * database. Overrides the base `createExtension()` idea with a dedicated,
115
+ * synchronous SQL builder specifically for `timescaledb`.
116
+ *
117
+ * @param extensionName - Extension to enable. Defaults to `'timescaledb'`.
118
+ * @returns `CREATE EXTENSION IF NOT EXISTS timescaledb`
119
+ */
120
+ createExtensionSQL(extensionName?: string): string;
121
+ /**
122
+ * Format a TimescaleDB interval argument. Time-based hypertables use a
123
+ * PostgreSQL interval literal (`INTERVAL '7 days'`); integer-based
124
+ * hypertables use a bare integer (e.g. `86400000`). A number is emitted
125
+ * as a raw integer with no `INTERVAL` keyword; a string is wrapped in a
126
+ * safely-escaped `INTERVAL '...'` literal.
127
+ */
128
+ private formatInterval;
129
+ /**
130
+ * Build a `SELECT create_hypertable(...)` statement that converts a regular
131
+ * table into a TimescaleDB hypertable partitioned on a time column.
132
+ *
133
+ * @param table - Table to convert.
134
+ * @param timeColumn - The time/timestamp column to partition on.
135
+ * @param opts - Chunk interval and other options.
136
+ * @returns e.g. `SELECT create_hypertable('conditions', 'time', chunk_time_interval => INTERVAL '7 days')`
137
+ */
138
+ createHypertable(table: string, timeColumn: string, opts?: CreateHypertableOptions): string;
139
+ /**
140
+ * Build a `SELECT add_compression_policy(...)` statement that schedules
141
+ * automatic compression of chunks older than the given interval. The table
142
+ * must have compression enabled first (see {@link enableCompression}).
143
+ *
144
+ * @param table - Hypertable to add the policy to.
145
+ * @param olderThan - Age threshold. A string is a PostgreSQL interval literal
146
+ * (e.g. `'30 days'`); a number is a raw integer threshold for hypertables
147
+ * partitioned on an integer time column.
148
+ * @returns e.g. `SELECT add_compression_policy('conditions', INTERVAL '30 days')`
149
+ */
150
+ addCompressionPolicy(table: string, olderThan: string | number): string;
151
+ /**
152
+ * Build a `SELECT add_retention_policy(...)` statement that schedules
153
+ * automatic dropping of chunks older than the given interval.
154
+ *
155
+ * @param table - Hypertable to add the policy to.
156
+ * @param olderThan - Age threshold. A string is a PostgreSQL interval literal
157
+ * (e.g. `'90 days'`); a number is a raw integer threshold for hypertables
158
+ * partitioned on an integer time column.
159
+ * @returns e.g. `SELECT add_retention_policy('conditions', INTERVAL '90 days')`
160
+ */
161
+ addRetentionPolicy(table: string, olderThan: string | number): string;
162
+ /**
163
+ * Build a `CREATE MATERIALIZED VIEW ... WITH (timescaledb.continuous) AS ...`
164
+ * statement for a continuous aggregate — a TimescaleDB materialized view that
165
+ * is incrementally and automatically refreshed as new data arrives.
166
+ *
167
+ * @param viewName - Name of the continuous aggregate view to create.
168
+ * @param query - The `SELECT` query (typically using `time_bucket(...)`) that defines the aggregate.
169
+ * @returns e.g. `CREATE MATERIALIZED VIEW "daily_avg" WITH (timescaledb.continuous) AS SELECT ...`
170
+ */
171
+ createContinuousAggregate(viewName: string, query: string): string;
172
+ /**
173
+ * Build an `ALTER TABLE ... SET (timescaledb.compress, ...)` statement that
174
+ * enables native compression on a hypertable and optionally configures the
175
+ * segment-by / order-by columns.
176
+ *
177
+ * @param table - Hypertable to enable compression on.
178
+ * @param opts - Segment-by and order-by column configuration.
179
+ * @returns e.g. `ALTER TABLE "conditions" SET (timescaledb.compress, timescaledb.compress_segmentby = 'device_id')`
180
+ */
181
+ enableCompression(table: string, opts?: EnableCompressionOptions): string;
182
+ /**
183
+ * Format an interval-or-null argument for a policy function. `null` becomes
184
+ * the SQL literal `NULL`; otherwise delegates to {@link formatInterval}.
185
+ */
186
+ private formatIntervalOrNull;
187
+ /**
188
+ * Build a `SELECT add_dimension(...)` statement adding a secondary
189
+ * partitioning dimension (space or additional time) to a hypertable — used
190
+ * for multi-dimensional partitioning (e.g. partition by time AND device id).
191
+ *
192
+ * @returns e.g. `SELECT add_dimension('conditions', 'device_id', number_partitions => 4)`
193
+ */
194
+ addDimension(table: string, column: string, opts?: AddDimensionOptions): string;
195
+ /**
196
+ * Build a `SELECT drop_chunks(...)` statement that drops chunks older than
197
+ * (and, optionally, newer than) the given thresholds — the efficient way to
198
+ * expire time-series data by dropping whole chunks rather than deleting rows.
199
+ *
200
+ * @param table - Hypertable to drop chunks from.
201
+ * @param olderThan - Drop chunks older than this (interval literal or raw integer).
202
+ * @param newerThan - Optional lower bound (`newer_than =>`).
203
+ * @returns e.g. `SELECT drop_chunks('conditions', older_than => INTERVAL '3 months')`
204
+ */
205
+ dropChunks(table: string, olderThan: string | number, newerThan?: string | number): string;
206
+ /**
207
+ * Build a `SELECT show_chunks(...)` statement listing a hypertable's chunks,
208
+ * optionally filtered by age.
209
+ *
210
+ * @returns e.g. `SELECT show_chunks('conditions', older_than => INTERVAL '3 months')`
211
+ */
212
+ showChunks(table: string, olderThan?: string | number): string;
213
+ /**
214
+ * Build a `SELECT compress_chunk(...)` statement compressing a single chunk.
215
+ * @param chunk - Fully-qualified chunk name (e.g. `_timescaledb_internal._hyper_1_1_chunk`).
216
+ */
217
+ compressChunk(chunk: string, ifNotCompressed?: boolean): string;
218
+ /**
219
+ * Build a `SELECT decompress_chunk(...)` statement decompressing a chunk.
220
+ */
221
+ decompressChunk(chunk: string, ifCompressed?: boolean): string;
222
+ /**
223
+ * Build a `SELECT reorder_chunk(...)` statement that physically reorders a
224
+ * chunk by the given index to improve locality of range scans.
225
+ */
226
+ reorderChunk(chunk: string, indexName: string): string;
227
+ /**
228
+ * Build a `SELECT remove_compression_policy(...)` statement.
229
+ */
230
+ removeCompressionPolicy(table: string, ifExists?: boolean): string;
231
+ /**
232
+ * Build a `SELECT remove_retention_policy(...)` statement.
233
+ */
234
+ removeRetentionPolicy(table: string, ifExists?: boolean): string;
235
+ /**
236
+ * Build a `SELECT add_continuous_aggregate_policy(...)` statement that
237
+ * schedules automatic incremental refresh of a continuous aggregate.
238
+ *
239
+ * @returns e.g. `SELECT add_continuous_aggregate_policy('daily_avg',
240
+ * start_offset => INTERVAL '1 month', end_offset => INTERVAL '1 hour',
241
+ * schedule_interval => INTERVAL '1 hour')`
242
+ */
243
+ addContinuousAggregatePolicy(viewName: string, opts: ContinuousAggregatePolicyOptions): string;
244
+ /**
245
+ * Build a `SELECT remove_continuous_aggregate_policy(...)` statement.
246
+ */
247
+ removeContinuousAggregatePolicy(viewName: string, ifExists?: boolean): string;
248
+ /**
249
+ * Build a `CALL refresh_continuous_aggregate(...)` statement that manually
250
+ * refreshes a continuous aggregate over the `[start, end)` window. Pass
251
+ * `null` for an unbounded side (`NULL` = beginning/end of time).
252
+ *
253
+ * @returns e.g. `CALL refresh_continuous_aggregate('daily_avg', '2023-01-01', '2023-02-01')`
254
+ */
255
+ refreshContinuousAggregate(viewName: string, windowStart: string | null, windowEnd: string | null): string;
256
+ /**
257
+ * Build a `DROP MATERIALIZED VIEW ...` statement for a continuous aggregate
258
+ * (continuous aggregates are dropped as materialized views).
259
+ */
260
+ dropContinuousAggregate(viewName: string, opts?: {
261
+ ifExists?: boolean;
262
+ cascade?: boolean;
263
+ }): string;
264
+ /**
265
+ * Build a TimescaleDB `time_bucket(...)` expression for bucketing a timestamp
266
+ * column into fixed-width intervals — the core building block of a continuous
267
+ * aggregate's `SELECT`. Returns just the expression so callers can embed it
268
+ * in a larger query.
269
+ *
270
+ * @param interval - Bucket width. A string becomes `INTERVAL '...'`; a number
271
+ * is emitted raw (integer time columns).
272
+ * @param column - The timestamp column to bucket.
273
+ * @returns e.g. `time_bucket(INTERVAL '1 hour', "ts")`
274
+ */
275
+ timeBucket(interval: string | number, column: string): string;
276
+ }
277
+ /**
278
+ * Options for constructing a {@link TimescaleDBDialect}. Identical to
279
+ * PostgreSQL's options since TimescaleDB reuses the `pg` driver.
280
+ */
281
+ export type TimescaleDBDialectOptions = PostgresDialectOptions;
282
+ /**
283
+ * Create a new TimescaleDB dialect instance.
284
+ */
285
+ export declare function createTimescaleDBDialect(options?: TimescaleDBDialectOptions): TimescaleDBDialect;
286
+ export default TimescaleDBDialect;
@@ -153,6 +153,185 @@ class TimescaleDBDialect extends index_1.PostgresDialect {
153
153
  }
154
154
  return `ALTER TABLE ${this.quoteTable(table)} SET (${settings.join(', ')})`;
155
155
  }
156
+ /**
157
+ * Format an interval-or-null argument for a policy function. `null` becomes
158
+ * the SQL literal `NULL`; otherwise delegates to {@link formatInterval}.
159
+ */
160
+ formatIntervalOrNull(value) {
161
+ if (value === null) {
162
+ return 'NULL';
163
+ }
164
+ return this.formatInterval(value);
165
+ }
166
+ /**
167
+ * Build a `SELECT add_dimension(...)` statement adding a secondary
168
+ * partitioning dimension (space or additional time) to a hypertable — used
169
+ * for multi-dimensional partitioning (e.g. partition by time AND device id).
170
+ *
171
+ * @returns e.g. `SELECT add_dimension('conditions', 'device_id', number_partitions => 4)`
172
+ */
173
+ addDimension(table, column, opts) {
174
+ const args = [this.escape(table), this.escape(column)];
175
+ if (opts?.numberPartitions !== undefined) {
176
+ args.push(`number_partitions => ${opts.numberPartitions}`);
177
+ }
178
+ if (opts?.chunkTimeInterval !== undefined) {
179
+ args.push(`chunk_time_interval => ${this.formatInterval(opts.chunkTimeInterval)}`);
180
+ }
181
+ if (opts?.ifNotExists) {
182
+ args.push('if_not_exists => TRUE');
183
+ }
184
+ return `SELECT add_dimension(${args.join(', ')})`;
185
+ }
186
+ /**
187
+ * Build a `SELECT drop_chunks(...)` statement that drops chunks older than
188
+ * (and, optionally, newer than) the given thresholds — the efficient way to
189
+ * expire time-series data by dropping whole chunks rather than deleting rows.
190
+ *
191
+ * @param table - Hypertable to drop chunks from.
192
+ * @param olderThan - Drop chunks older than this (interval literal or raw integer).
193
+ * @param newerThan - Optional lower bound (`newer_than =>`).
194
+ * @returns e.g. `SELECT drop_chunks('conditions', older_than => INTERVAL '3 months')`
195
+ */
196
+ dropChunks(table, olderThan, newerThan) {
197
+ const args = [
198
+ this.escape(table),
199
+ `older_than => ${this.formatInterval(olderThan)}`,
200
+ ];
201
+ if (newerThan !== undefined) {
202
+ args.push(`newer_than => ${this.formatInterval(newerThan)}`);
203
+ }
204
+ return `SELECT drop_chunks(${args.join(', ')})`;
205
+ }
206
+ /**
207
+ * Build a `SELECT show_chunks(...)` statement listing a hypertable's chunks,
208
+ * optionally filtered by age.
209
+ *
210
+ * @returns e.g. `SELECT show_chunks('conditions', older_than => INTERVAL '3 months')`
211
+ */
212
+ showChunks(table, olderThan) {
213
+ const args = [this.escape(table)];
214
+ if (olderThan !== undefined) {
215
+ args.push(`older_than => ${this.formatInterval(olderThan)}`);
216
+ }
217
+ return `SELECT show_chunks(${args.join(', ')})`;
218
+ }
219
+ /**
220
+ * Build a `SELECT compress_chunk(...)` statement compressing a single chunk.
221
+ * @param chunk - Fully-qualified chunk name (e.g. `_timescaledb_internal._hyper_1_1_chunk`).
222
+ */
223
+ compressChunk(chunk, ifNotCompressed = true) {
224
+ const args = [this.escape(chunk)];
225
+ if (ifNotCompressed) {
226
+ args.push('if_not_compressed => TRUE');
227
+ }
228
+ return `SELECT compress_chunk(${args.join(', ')})`;
229
+ }
230
+ /**
231
+ * Build a `SELECT decompress_chunk(...)` statement decompressing a chunk.
232
+ */
233
+ decompressChunk(chunk, ifCompressed = true) {
234
+ const args = [this.escape(chunk)];
235
+ if (ifCompressed) {
236
+ args.push('if_compressed => TRUE');
237
+ }
238
+ return `SELECT decompress_chunk(${args.join(', ')})`;
239
+ }
240
+ /**
241
+ * Build a `SELECT reorder_chunk(...)` statement that physically reorders a
242
+ * chunk by the given index to improve locality of range scans.
243
+ */
244
+ reorderChunk(chunk, indexName) {
245
+ return `SELECT reorder_chunk(${this.escape(chunk)}, ${this.escape(indexName)})`;
246
+ }
247
+ /**
248
+ * Build a `SELECT remove_compression_policy(...)` statement.
249
+ */
250
+ removeCompressionPolicy(table, ifExists = false) {
251
+ const args = [this.escape(table)];
252
+ if (ifExists) {
253
+ args.push('if_exists => TRUE');
254
+ }
255
+ return `SELECT remove_compression_policy(${args.join(', ')})`;
256
+ }
257
+ /**
258
+ * Build a `SELECT remove_retention_policy(...)` statement.
259
+ */
260
+ removeRetentionPolicy(table, ifExists = false) {
261
+ const args = [this.escape(table)];
262
+ if (ifExists) {
263
+ args.push('if_exists => TRUE');
264
+ }
265
+ return `SELECT remove_retention_policy(${args.join(', ')})`;
266
+ }
267
+ /**
268
+ * Build a `SELECT add_continuous_aggregate_policy(...)` statement that
269
+ * schedules automatic incremental refresh of a continuous aggregate.
270
+ *
271
+ * @returns e.g. `SELECT add_continuous_aggregate_policy('daily_avg',
272
+ * start_offset => INTERVAL '1 month', end_offset => INTERVAL '1 hour',
273
+ * schedule_interval => INTERVAL '1 hour')`
274
+ */
275
+ addContinuousAggregatePolicy(viewName, opts) {
276
+ const args = [
277
+ this.escape(viewName),
278
+ `start_offset => ${this.formatIntervalOrNull(opts.startOffset)}`,
279
+ `end_offset => ${this.formatIntervalOrNull(opts.endOffset)}`,
280
+ `schedule_interval => ${this.formatInterval(opts.scheduleInterval)}`,
281
+ ];
282
+ return `SELECT add_continuous_aggregate_policy(${args.join(', ')})`;
283
+ }
284
+ /**
285
+ * Build a `SELECT remove_continuous_aggregate_policy(...)` statement.
286
+ */
287
+ removeContinuousAggregatePolicy(viewName, ifExists = false) {
288
+ const args = [this.escape(viewName)];
289
+ if (ifExists) {
290
+ args.push('if_exists => TRUE');
291
+ }
292
+ return `SELECT remove_continuous_aggregate_policy(${args.join(', ')})`;
293
+ }
294
+ /**
295
+ * Build a `CALL refresh_continuous_aggregate(...)` statement that manually
296
+ * refreshes a continuous aggregate over the `[start, end)` window. Pass
297
+ * `null` for an unbounded side (`NULL` = beginning/end of time).
298
+ *
299
+ * @returns e.g. `CALL refresh_continuous_aggregate('daily_avg', '2023-01-01', '2023-02-01')`
300
+ */
301
+ refreshContinuousAggregate(viewName, windowStart, windowEnd) {
302
+ const start = windowStart === null ? 'NULL' : this.escape(windowStart);
303
+ const end = windowEnd === null ? 'NULL' : this.escape(windowEnd);
304
+ return `CALL refresh_continuous_aggregate(${this.escape(viewName)}, ${start}, ${end})`;
305
+ }
306
+ /**
307
+ * Build a `DROP MATERIALIZED VIEW ...` statement for a continuous aggregate
308
+ * (continuous aggregates are dropped as materialized views).
309
+ */
310
+ dropContinuousAggregate(viewName, opts) {
311
+ let sql = 'DROP MATERIALIZED VIEW';
312
+ if (opts?.ifExists) {
313
+ sql += ' IF EXISTS';
314
+ }
315
+ sql += ` ${this.escapeId(viewName)}`;
316
+ if (opts?.cascade) {
317
+ sql += ' CASCADE';
318
+ }
319
+ return sql;
320
+ }
321
+ /**
322
+ * Build a TimescaleDB `time_bucket(...)` expression for bucketing a timestamp
323
+ * column into fixed-width intervals — the core building block of a continuous
324
+ * aggregate's `SELECT`. Returns just the expression so callers can embed it
325
+ * in a larger query.
326
+ *
327
+ * @param interval - Bucket width. A string becomes `INTERVAL '...'`; a number
328
+ * is emitted raw (integer time columns).
329
+ * @param column - The timestamp column to bucket.
330
+ * @returns e.g. `time_bucket(INTERVAL '1 hour', "ts")`
331
+ */
332
+ timeBucket(interval, column) {
333
+ return `time_bucket(${this.formatInterval(interval)}, ${this.escapeId(column)})`;
334
+ }
156
335
  }
157
336
  exports.TimescaleDBDialect = TimescaleDBDialect;
158
337
  /**