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,562 @@
1
+ /**
2
+ * SQL Compiler
3
+ * Compiles query objects to SQL strings with parameter substitution
4
+ */
5
+ import { Dialect } from '../dialects/dialect';
6
+ import { WhereOptions, Order, IncludeOptions, WindowFunctionOptions, WindowFrame, ModelStatic, PivotOptions, UnpivotOptions } from '../types';
7
+ /**
8
+ * Field mapping for attribute to column name translation
9
+ */
10
+ export interface FieldMapping {
11
+ /**
12
+ * Map of attribute name to DB column name
13
+ * e.g., { firstName: 'first_name', lastName: 'last_name' }
14
+ */
15
+ attributeToColumn: Record<string, string>;
16
+ /**
17
+ * Map of DB column name to attribute name
18
+ * e.g., { first_name: 'firstName', last_name: 'lastName' }
19
+ */
20
+ columnToAttribute: Record<string, string>;
21
+ }
22
+ /**
23
+ * SQL Compiler options
24
+ */
25
+ export interface SqlCompilerOptions {
26
+ /**
27
+ * The dialect to use for compilation
28
+ */
29
+ dialect?: Dialect;
30
+ /**
31
+ * Whether to use parameterized queries
32
+ */
33
+ parameterized?: boolean;
34
+ /**
35
+ * The character used for parameter placeholders
36
+ */
37
+ paramChar?: string;
38
+ /**
39
+ * Whether to inline values (not use parameters)
40
+ */
41
+ inlineValues?: boolean;
42
+ /**
43
+ * Pretty print the SQL
44
+ */
45
+ pretty?: boolean;
46
+ /**
47
+ * Field mapping for attribute to column name translation
48
+ * Used when model uses 'field' property in attributes
49
+ */
50
+ fieldMapping?: FieldMapping;
51
+ }
52
+ /**
53
+ * SQL Compiler class
54
+ * Compiles query objects to SQL strings with proper escaping
55
+ */
56
+ export declare class SqlCompiler {
57
+ private dialect;
58
+ private options;
59
+ private fieldMapping;
60
+ constructor(dialect?: Dialect, options?: SqlCompilerOptions);
61
+ /**
62
+ * Set the field mapping
63
+ */
64
+ setFieldMapping(fieldMapping: FieldMapping): void;
65
+ /**
66
+ * Get the DB column name for an attribute
67
+ */
68
+ getColumnName(attributeName: string): string;
69
+ /**
70
+ * Get the attribute name for a DB column
71
+ */
72
+ getAttributeName(columnName: string): string;
73
+ /**
74
+ * Set the dialect
75
+ */
76
+ setDialect(dialect: Dialect): void;
77
+ /**
78
+ * Set compiler options
79
+ */
80
+ setOptions(options: SqlCompilerOptions): void;
81
+ /**
82
+ * Escape a value for use in SQL
83
+ */
84
+ escape(value: any): string;
85
+ /**
86
+ * Escape an identifier (column, table name)
87
+ */
88
+ escapeId(identifier: unknown): string;
89
+ /**
90
+ * Convert an attribute expression to SQL
91
+ * Handles fn(), col(), literal(), and plain strings
92
+ * @param attr - The attribute value (string, FnExpression, ColExpression, LiteralExpression, or array)
93
+ * @param tableAlias - Optional table alias to prepend to column names
94
+ * @returns The SQL representation of the attribute
95
+ */
96
+ attributeToSql(attr: any, tableAlias?: string): string;
97
+ /**
98
+ * Process an attribute value (which could be a column name, fn expression, col expression, or literal)
99
+ * into a SQL expression string
100
+ *
101
+ * @param attr - The attribute value to process
102
+ * @param tableAlias - Optional table alias to prefix column names with
103
+ * @returns The SQL expression string
104
+ */
105
+ processAttribute(attr: any, tableAlias?: string): string;
106
+ /**
107
+ * Convert an attribute to SQL with optional alias
108
+ * Handles formats like:
109
+ * - 'columnName' -> "columnName"
110
+ * - ['columnName', 'alias'] -> "columnName" AS "alias"
111
+ * - [fn('COUNT', col('id')), 'count'] -> COUNT("id") AS "count"
112
+ * - ['COUNT(*)', 'count'] -> COUNT(*) AS "count"
113
+ *
114
+ * @param attr - The attribute (string or array with alias)
115
+ * @param tableAlias - Optional table alias
116
+ * @returns SQL fragment with optional alias
117
+ */
118
+ attributeToSqlWithAlias(attr: any, tableAlias?: string): string;
119
+ /**
120
+ * Compile WHERE clause
121
+ */
122
+ compileWhere(where: WhereOptions, options?: {
123
+ paramChar?: string;
124
+ }): {
125
+ sql: string;
126
+ values: any[];
127
+ };
128
+ /**
129
+ * Build WHERE clause from WhereOptions
130
+ */
131
+ private buildWhereClause;
132
+ /**
133
+ * Build logical WHERE clause (AND, OR, NOT)
134
+ */
135
+ private buildLogicalWhereClause;
136
+ /**
137
+ * Build a single field condition
138
+ */
139
+ private buildFieldCondition;
140
+ /**
141
+ * Compile ORDER BY clause
142
+ */
143
+ compileOrder(order: Order): string;
144
+ /**
145
+ * Compile LIMIT/OFFSET clause
146
+ * Handles SQLite which requires LIMIT when using OFFSET
147
+ */
148
+ compileLimitOffset(limit?: number | string, offset?: number | string): string;
149
+ /**
150
+ * Compile GROUP BY clause
151
+ * Supports:
152
+ * - Plain strings: 'role', 'userId'
153
+ * - Arrays of strings: ['role', 'status']
154
+ * - col() expressions: col('role'), col('table.column')
155
+ * - fn() expressions: fn('UPPER', col('name'))
156
+ * - literal expressions: literal('YEAR(created_at)')
157
+ * - Array of mixed expressions
158
+ *
159
+ * @example
160
+ * group: 'role'
161
+ * group: ['role', 'status']
162
+ * group: col('role')
163
+ * group: [col('role'), fn('COUNT', col('id'))]
164
+ */
165
+ compileGroupBy(group?: string | string[], groupType?: 'rollup' | 'cube' | 'grouping' | 'none', groupingSets?: string[][]): string;
166
+ /**
167
+ * Compile Common Table Expression (CTE) clause
168
+ * Supports both regular WITH and WITH RECURSIVE
169
+ */
170
+ compileCTE(ctes?: Array<{
171
+ name: string;
172
+ columns?: string[];
173
+ query: string;
174
+ recursive?: boolean;
175
+ }>): string;
176
+ /**
177
+ * Compile HAVING clause for aggregation filtering
178
+ * Similar to WHERE but specifically for aggregated results
179
+ * Supports all operators: Op.gt, Op.eq, Op.between, etc.
180
+ * Also supports direct aggregation functions: COUNT(), SUM(), AVG(), MAX(), MIN()
181
+ */
182
+ compileHaving(having: any, options?: {
183
+ paramChar?: string;
184
+ }): {
185
+ sql: string;
186
+ values: any[];
187
+ };
188
+ /**
189
+ * Get SQL operator from operator key
190
+ */
191
+ private getOperatorSql;
192
+ /**
193
+ * Build HAVING clause from having options
194
+ */
195
+ private buildHavingClause;
196
+ /**
197
+ * Build logical HAVING clause (AND, OR, NOT)
198
+ */
199
+ private buildLogicalHavingClause;
200
+ /**
201
+ * Build a single HAVING condition
202
+ */
203
+ private buildHavingCondition;
204
+ /**
205
+ * Compile a full SELECT query
206
+ */
207
+ compileSelect(options: {
208
+ tableName: string;
209
+ attributes?: string[] | {
210
+ include?: string[];
211
+ exclude?: string[];
212
+ };
213
+ where?: WhereOptions;
214
+ include?: IncludeOptions[];
215
+ order?: Order;
216
+ limit?: number | string;
217
+ offset?: number | string;
218
+ group?: string | string[];
219
+ groupType?: 'rollup' | 'cube' | 'grouping' | 'none';
220
+ groupingSets?: string[][];
221
+ having?: WhereOptions;
222
+ cte?: Array<{
223
+ name: string;
224
+ columns?: string[];
225
+ query: string;
226
+ recursive?: boolean;
227
+ }>;
228
+ pivot?: PivotOptions;
229
+ unpivot?: UnpivotOptions;
230
+ pivotValues?: string[];
231
+ }): {
232
+ sql: string;
233
+ values: any[];
234
+ };
235
+ /**
236
+ * Compile a PIVOT query - transform rows to columns
237
+ */
238
+ compilePivot(options: {
239
+ tableName: string;
240
+ pivot: PivotOptions;
241
+ groupBy: string | string[];
242
+ where?: WhereOptions;
243
+ order?: Order;
244
+ limit?: number | string;
245
+ offset?: number | string;
246
+ }): {
247
+ sql: string;
248
+ values: any[];
249
+ };
250
+ /**
251
+ * Compile a PIVOT query with specific pivot values (after they're resolved)
252
+ */
253
+ compilePivotWithValues(options: {
254
+ tableName: string;
255
+ pivot: PivotOptions;
256
+ pivotValues: string[];
257
+ groupBy: string | string[];
258
+ where?: WhereOptions;
259
+ order?: Order;
260
+ limit?: number | string;
261
+ offset?: number | string;
262
+ }): {
263
+ sql: string;
264
+ values: any[];
265
+ };
266
+ /**
267
+ * Compile an UNPIVOT query - transform columns to rows
268
+ */
269
+ compileUnpivot(options: {
270
+ tableName: string;
271
+ unpivot: UnpivotOptions;
272
+ where?: WhereOptions;
273
+ order?: Order;
274
+ limit?: number | string;
275
+ offset?: number | string;
276
+ }): {
277
+ sql: string;
278
+ values: any[];
279
+ };
280
+ /**
281
+ * Compile an INSERT query
282
+ */
283
+ compileInsert(options: {
284
+ tableName: string;
285
+ values: Record<string, any>;
286
+ returning?: boolean | string[];
287
+ }): {
288
+ sql: string;
289
+ values: any[];
290
+ };
291
+ /**
292
+ * Compile an UPDATE query
293
+ */
294
+ compileUpdate(options: {
295
+ tableName: string;
296
+ values: Record<string, any>;
297
+ where: WhereOptions;
298
+ limit?: number;
299
+ returning?: boolean | string[];
300
+ }): {
301
+ sql: string;
302
+ values: any[];
303
+ };
304
+ /**
305
+ * Compile a DELETE query
306
+ */
307
+ compileDelete(options: {
308
+ tableName: string;
309
+ where: WhereOptions;
310
+ limit?: number;
311
+ returning?: boolean | string[];
312
+ }): {
313
+ sql: string;
314
+ values: any[];
315
+ };
316
+ /**
317
+ * Compile a UNION/EXCEPT/INTERSECT query
318
+ * Supports combining multiple queries with UNION, UNION ALL, EXCEPT, or INTERSECT
319
+ */
320
+ compileUnion(options: {
321
+ /** The main query (uses same structure as compileSelect) */
322
+ main: {
323
+ tableName: string;
324
+ attributes?: string[] | {
325
+ include?: string[];
326
+ exclude?: string[];
327
+ };
328
+ where?: WhereOptions;
329
+ include?: IncludeOptions[];
330
+ order?: Order;
331
+ limit?: number | string;
332
+ offset?: number | string;
333
+ };
334
+ /** Array of union queries */
335
+ union: Array<{
336
+ type: 'UNION' | 'UNION ALL' | 'EXCEPT' | 'INTERSECT';
337
+ model?: ModelStatic<any>;
338
+ tableName?: string;
339
+ where?: WhereOptions;
340
+ attributes?: string[] | {
341
+ include?: string[];
342
+ exclude?: string[];
343
+ };
344
+ order?: Order;
345
+ limit?: number | string;
346
+ offset?: number | string;
347
+ include?: IncludeOptions[];
348
+ }>;
349
+ /** Order by for the combined result */
350
+ order?: Order;
351
+ /** Limit for the combined result */
352
+ limit?: number | string;
353
+ /** Offset for the combined result */
354
+ offset?: number | string;
355
+ }): {
356
+ sql: string;
357
+ values: any[];
358
+ };
359
+ /**
360
+ * Compile an EXCEPT query - returns rows from main query that don't exist in except query
361
+ */
362
+ compileExcept(mainQuery: {
363
+ tableName: string;
364
+ attributes?: string[] | {
365
+ include?: string[];
366
+ exclude?: string[];
367
+ };
368
+ where?: WhereOptions;
369
+ include?: IncludeOptions[];
370
+ }, exceptQuery: {
371
+ tableName: string;
372
+ attributes?: string[] | {
373
+ include?: string[];
374
+ exclude?: string[];
375
+ };
376
+ where?: WhereOptions;
377
+ include?: IncludeOptions[];
378
+ }, options?: {
379
+ order?: Order;
380
+ limit?: number | string;
381
+ offset?: number | string;
382
+ }): {
383
+ sql: string;
384
+ values: any[];
385
+ };
386
+ /**
387
+ * Compile an INTERSECT query - returns rows that exist in both queries
388
+ */
389
+ compileIntersect(mainQuery: {
390
+ tableName: string;
391
+ attributes?: string[] | {
392
+ include?: string[];
393
+ exclude?: string[];
394
+ };
395
+ where?: WhereOptions;
396
+ include?: IncludeOptions[];
397
+ }, intersectQuery: {
398
+ tableName: string;
399
+ attributes?: string[] | {
400
+ include?: string[];
401
+ exclude?: string[];
402
+ };
403
+ where?: WhereOptions;
404
+ include?: IncludeOptions[];
405
+ }, options?: {
406
+ order?: Order;
407
+ limit?: number | string;
408
+ offset?: number | string;
409
+ }): {
410
+ sql: string;
411
+ values: any[];
412
+ };
413
+ /**
414
+ * Format SQL for different dialects
415
+ */
416
+ formatForDialect(sql: string, dialect: string): string;
417
+ /**
418
+ * Format SQL for MySQL
419
+ */
420
+ private formatForMySQL;
421
+ /**
422
+ * Format SQL for PostgreSQL
423
+ */
424
+ private formatForPostgres;
425
+ /**
426
+ * Format SQL for SQLite
427
+ */
428
+ private formatForSQLite;
429
+ /**
430
+ * Format SQL for MSSQL
431
+ */
432
+ private formatForMSSQL;
433
+ /**
434
+ * Resolve the 'all' include option to actual include configurations
435
+ */
436
+ private resolveAllInclude;
437
+ /**
438
+ * Flatten nested includes for proper JOIN ordering
439
+ * Returns a flat array of include objects with parent alias information
440
+ */
441
+ private flattenIncludesForJoins;
442
+ /**
443
+ * Build anti-join subquery for NOT EXISTS or NOT IN patterns
444
+ */
445
+ private buildAntiJoinSubquery;
446
+ /**
447
+ * Build lateral subquery for inline subqueries with LATERAL keyword
448
+ */
449
+ private buildLateralSubquery;
450
+ /**
451
+ * Generate column list with proper aliasing to avoid duplicates
452
+ */
453
+ private generateSelectColumns;
454
+ /**
455
+ * Compile PARTITION BY clause
456
+ */
457
+ compilePartitionBy(partitionBy: string | string[] | undefined): string;
458
+ /**
459
+ * Compile window frame specification
460
+ * Examples:
461
+ * - ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
462
+ * - RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
463
+ * - GROUPS 2 PRECEDING AND CURRENT ROW
464
+ */
465
+ compileWindowFrame(windowFrame: WindowFrame | undefined): string;
466
+ /**
467
+ * Compile a single frame bound (start or end)
468
+ */
469
+ private compileFrameBound;
470
+ /**
471
+ * Compile lock options for row-level locking
472
+ * Supports NOWAIT and SKIP LOCKED for PostgreSQL and MySQL 8.0+
473
+ * @param lock - Lock options
474
+ * @param dialect - The database dialect
475
+ * @returns The compiled lock SQL clause
476
+ */
477
+ compileLockOptions(lock: any, dialect?: string): string;
478
+ /**
479
+ * Compile OVER clause with partition, order, and window frame
480
+ */
481
+ compileOverClause(options: WindowFunctionOptions): string;
482
+ /**
483
+ * Compile a window function expression
484
+ * @param functionName - The window function name (ROW_NUMBER, RANK, etc.)
485
+ * @param args - Arguments to the window function
486
+ * @param options - Window function options
487
+ * @returns The compiled SQL expression
488
+ */
489
+ compileWindowFunction(functionName: string, args?: any[], options?: WindowFunctionOptions): string;
490
+ /**
491
+ * Pretty print SQL
492
+ */
493
+ prettyPrint(sql: string): string;
494
+ }
495
+ /**
496
+ * Generate MySQL JSON_EXTRACT function
497
+ * @param columnName - The column containing JSON data
498
+ * @param path - The JSON path (e.g., '$.key' or '$.array[0]')
499
+ */
500
+ export declare function jsonExtract(columnName: string, path: string): string;
501
+ /**
502
+ * Generate MySQL JSON_UNQUOTE(JSON_EXTRACT(...)) for unquoted values
503
+ * @param columnName - The column containing JSON data
504
+ * @param path - The JSON path (e.g., '$.key' or '$.array[0]')
505
+ */
506
+ export declare function jsonExtractUnquote(columnName: string, path: string): string;
507
+ /**
508
+ * Generate MySQL JSON_SET function to set a value in JSON
509
+ * @param columnName - The column containing JSON data
510
+ * @param path - The JSON path
511
+ * @param value - The value to set (can be a column reference or literal)
512
+ * @param extraPaths - Additional paths and values to set
513
+ */
514
+ export declare function jsonSet(columnName: string, path: string, value: string, ...extraPaths: [string, string][]): string;
515
+ /**
516
+ * Generate MySQL JSON_INSERT function to insert a value in JSON
517
+ * @param columnName - The column containing JSON data
518
+ * @param path - The JSON path
519
+ * @param value - The value to insert
520
+ */
521
+ export declare function jsonInsert(columnName: string, path: string, value: string): string;
522
+ /**
523
+ * Generate MySQL JSON_REPLACE function to replace a value in JSON
524
+ * @param columnName - The column containing JSON data
525
+ * @param path - The JSON path
526
+ * @param value - The value to replace
527
+ */
528
+ export declare function jsonReplace(columnName: string, path: string, value: string): string;
529
+ /**
530
+ * Generate MySQL JSON_REMOVE function to remove a value from JSON
531
+ * @param columnName - The column containing JSON data
532
+ * @param path - The JSON path to remove
533
+ */
534
+ export declare function jsonRemove(columnName: string, path: string): string;
535
+ /**
536
+ * Generate MySQL JSON_KEYS function to get keys from JSON object
537
+ * @param columnName - The column containing JSON data
538
+ * @param path - Optional path to get keys from specific object
539
+ */
540
+ export declare function jsonKeys(columnName: string, path?: string): string;
541
+ /**
542
+ * Generate MySQL JSON_LENGTH function to get length of JSON array/object
543
+ * @param columnName - The column containing JSON data
544
+ * @param path - Optional path to get length of specific array/object
545
+ */
546
+ export declare function jsonLength(columnName: string, path?: string): string;
547
+ /**
548
+ * Generate MySQL JSON_CONTAINS function to check if JSON contains a value
549
+ * @param columnName - The column containing JSON data
550
+ * @param value - The value to check for
551
+ * @param path - The path to check at
552
+ */
553
+ export declare function jsonContains(columnName: string, value: string, path: string): string;
554
+ /**
555
+ * Generate MySQL JSON_SEARCH function for full-text search in JSON
556
+ * @param columnName - The column containing JSON data
557
+ * @param searchString - The string to search for
558
+ * @param escapeChar - Optional escape character
559
+ * @param path - Optional path to search within
560
+ */
561
+ export declare function jsonSearch(columnName: string, searchString: string, escapeChar?: string, path?: string): string;
562
+ export default SqlCompiler;
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Subquery Builder
3
+ * Provides an ORM-like way to build subqueries without raw SQL
4
+ */
5
+ /**
6
+ * Subquery builder options
7
+ */
8
+ export interface SubqueryOptions {
9
+ /** Model or table name to use for the subquery */
10
+ model: string | {
11
+ tableName?: string;
12
+ name?: string;
13
+ };
14
+ /** Where conditions */
15
+ where?: Record<string, any>;
16
+ /** Columns to select */
17
+ columns?: string[];
18
+ /** Order by */
19
+ order?: any;
20
+ /** Group by */
21
+ group?: string | string[];
22
+ /** Having conditions */
23
+ having?: Record<string, any>;
24
+ /** Limit results */
25
+ limit?: number;
26
+ /** Offset results */
27
+ offset?: number;
28
+ }
29
+ /**
30
+ * Exists subquery options
31
+ */
32
+ export interface ExistsSubqueryOptions {
33
+ /** Model or table name to check existence in */
34
+ model: string | {
35
+ tableName?: string;
36
+ name?: string;
37
+ };
38
+ /** Where conditions */
39
+ where?: Record<string, any>;
40
+ /** Join type for EXISTS */
41
+ correlation?: 'INNER' | 'LEFT';
42
+ }
43
+ /**
44
+ * Scalar subquery options (returns single value)
45
+ */
46
+ export interface ScalarSubqueryOptions {
47
+ /** Model or table name for the subquery */
48
+ model: string | {
49
+ tableName?: string;
50
+ name?: string;
51
+ };
52
+ /** Column to aggregate */
53
+ column: string;
54
+ /** Aggregate function */
55
+ aggregate?: 'COUNT' | 'SUM' | 'AVG' | 'MAX' | 'MIN';
56
+ /** Where conditions */
57
+ where?: Record<string, any>;
58
+ }
59
+ /**
60
+ * Builder for creating subqueries programmatically
61
+ */
62
+ export declare class SubqueryBuilder {
63
+ /**
64
+ * Create an IN subquery
65
+ * @example
66
+ * // Find users with posts using model class
67
+ * User.findAll({
68
+ * where: {
69
+ * id: { [Op.in]: SubqueryBuilder.select('userId', { model: Post }) }
70
+ * }
71
+ * })
72
+ * @example
73
+ * // Using table name string
74
+ * SubqueryBuilder.select('userId', { model: 'posts' })
75
+ */
76
+ static select(column: string, options: SubqueryOptions): string;
77
+ /**
78
+ * Create an EXISTS subquery
79
+ * @example
80
+ * // Find users who have posts using model class
81
+ * User.findAll({
82
+ * where: {
83
+ * [Op.exists]: SubqueryBuilder.exists({
84
+ * model: Post,
85
+ * where: { userId: { [Op.col]: 'User.id' } }
86
+ * })
87
+ * }
88
+ * })
89
+ * @example
90
+ * // Using table name string
91
+ * SubqueryBuilder.exists({ model: 'posts', where: {...} })
92
+ */
93
+ static exists(options: ExistsSubqueryOptions): object;
94
+ /**
95
+ * Create a NOT EXISTS subquery
96
+ */
97
+ static notExists(options: ExistsSubqueryOptions): object;
98
+ /**
99
+ * Create a scalar subquery (COUNT, SUM, etc.)
100
+ * @example
101
+ * // Get user with post count using model class
102
+ * User.findAll({
103
+ * attributes: {
104
+ * include: [
105
+ * [SubqueryBuilder.count({ model: Post, column: 'userId' }), 'postCount']
106
+ * ]
107
+ * }
108
+ * })
109
+ */
110
+ static count(options: ScalarSubqueryOptions): object;
111
+ static sum(options: ScalarSubqueryOptions): object;
112
+ static avg(options: ScalarSubqueryOptions): object;
113
+ static max(options: ScalarSubqueryOptions): object;
114
+ static min(options: ScalarSubqueryOptions): object;
115
+ /**
116
+ * Create a correlated subquery using column reference
117
+ * @example
118
+ * SubqueryBuilder.correlated({ outerModel: User, outerColumn: 'id', innerModel: Post, innerColumn: 'userId' })
119
+ */
120
+ static correlated(options: {
121
+ outerModel: string | {
122
+ tableName?: string;
123
+ name?: string;
124
+ };
125
+ outerColumn: string;
126
+ innerModel: string | {
127
+ tableName?: string;
128
+ name?: string;
129
+ };
130
+ innerColumn: string;
131
+ }): object;
132
+ }
133
+ export default SubqueryBuilder;