ts-prorm-orm 1.1.0 → 1.2.1

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 +95 -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 +713 -0
  239. package/dist/index.js +36 -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,346 @@
1
+ /**
2
+ * Database Collate and Locale Decorators / Annotations for ts-prorm-orm
3
+ *
4
+ * Provides decorators and enums for managing database collation, locale settings,
5
+ * and encoding options at the column, table, and database levels.
6
+ *
7
+ * Usage:
8
+ *
9
+ * // Column-level collation
10
+ * class User extends Model {
11
+ * @SetCollate(CollateEnum.UTF8MB4_UNICODE_CI)
12
+ * @Column
13
+ * name: string;
14
+ *
15
+ * @SetCollate(CollateEnum.UTF8MB4_BIN)
16
+ * @Column
17
+ * password: string;
18
+ * }
19
+ *
20
+ * // Table-level collation
21
+ * @TableCollate({ collate: CollateEnum.UTF8MB4_SPANISH_CI })
22
+ * class User extends Model {}
23
+ *
24
+ * // Database-level locale settings
25
+ * @Database({
26
+ * name: 'miapp',
27
+ * encoding: 'UTF8',
28
+ * lcCollate: LocaleEnum.ES_ES,
29
+ * lcCtype: LocaleEnum.ES_ES,
30
+ * })
31
+ * class Config extends Model {}
32
+ *
33
+ * // Create database with locale
34
+ * await prorm.createDatabase({
35
+ * name: 'miapp',
36
+ * encoding: 'UTF8',
37
+ * lcCollate: 'es_ES.UTF-8',
38
+ * lcCtype: 'es_ES.UTF-8',
39
+ * template: 'template0',
40
+ * });
41
+ */
42
+ /**
43
+ * MySQL/MariaDB collation constants
44
+ */
45
+ export declare const CollateEnum: {
46
+ readonly UTF8_GENERAL_CI: "utf8_general_ci";
47
+ readonly UTF8_UNICODE_CI: "utf8_unicode_ci";
48
+ readonly UTF8MB4_GENERAL_CI: "utf8mb4_general_ci";
49
+ readonly UTF8MB4_UNICODE_CI: "utf8mb4_unicode_ci";
50
+ readonly UTF8MB4_BIN: "utf8mb4_bin";
51
+ readonly UTF8MB4_SPANISH_CI: "utf8mb4_spanish_ci";
52
+ readonly UTF8MB4_SPANISH2_CI: "utf8mb4_spanish2_ci";
53
+ readonly UTF8MB4_GERMAN_CI: "utf8mb4_german_ci";
54
+ readonly UTF8MB4_SWEDISH_CI: "utf8mb4_swedish_ci";
55
+ readonly UTF8MB4_NOPAD: "utf8mb4_nopad";
56
+ readonly UTF8_NOPAD: "utf8_nopad";
57
+ readonly BINARY: "binary";
58
+ readonly ASCII_GENERAL_CI: "ascii_general_ci";
59
+ readonly ASCII_BIN: "ascii_bin";
60
+ };
61
+ /**
62
+ * Type representing a collation value
63
+ */
64
+ export type CollateType = (typeof CollateEnum)[keyof typeof CollateEnum];
65
+ /**
66
+ * @deprecated Use CollateEnum instead
67
+ */
68
+ export declare const Collate: {
69
+ readonly UTF8_GENERAL_CI: "utf8_general_ci";
70
+ readonly UTF8_UNICODE_CI: "utf8_unicode_ci";
71
+ readonly UTF8MB4_GENERAL_CI: "utf8mb4_general_ci";
72
+ readonly UTF8MB4_UNICODE_CI: "utf8mb4_unicode_ci";
73
+ readonly UTF8MB4_BIN: "utf8mb4_bin";
74
+ readonly UTF8MB4_SPANISH_CI: "utf8mb4_spanish_ci";
75
+ readonly UTF8MB4_SPANISH2_CI: "utf8mb4_spanish2_ci";
76
+ readonly UTF8MB4_GERMAN_CI: "utf8mb4_german_ci";
77
+ readonly UTF8MB4_SWEDISH_CI: "utf8mb4_swedish_ci";
78
+ readonly UTF8MB4_NOPAD: "utf8mb4_nopad";
79
+ readonly UTF8_NOPAD: "utf8_nopad";
80
+ readonly BINARY: "binary";
81
+ readonly ASCII_GENERAL_CI: "ascii_general_ci";
82
+ readonly ASCII_BIN: "ascii_bin";
83
+ };
84
+ /**
85
+ * Common database locales for POSIX locale strings
86
+ */
87
+ export declare const LocaleEnum: {
88
+ readonly ES_ES: "es_ES.UTF-8";
89
+ readonly ES_MX: "es_MX.UTF-8";
90
+ readonly ES_AR: "es_AR.UTF-8";
91
+ readonly ES_CO: "es_CO.UTF-8";
92
+ readonly ES_CL: "es_CL.UTF-8";
93
+ readonly EN_US: "en_US.UTF-8";
94
+ readonly EN_GB: "en_GB.UTF-8";
95
+ readonly EN_AU: "en_AU.UTF-8";
96
+ readonly EN_CA: "en_CA.UTF-8";
97
+ readonly DE_DE: "de_DE.UTF-8";
98
+ readonly DE_AT: "de_AT.UTF-8";
99
+ readonly DE_CH: "de_CH.UTF-8";
100
+ readonly FR_FR: "fr_FR.UTF-8";
101
+ readonly FR_CA: "fr_CA.UTF-8";
102
+ readonly PT_BR: "pt_BR.UTF-8";
103
+ readonly PT_PT: "pt_PT.UTF-8";
104
+ readonly IT_IT: "it_IT.UTF-8";
105
+ readonly NL_NL: "nl_NL.UTF-8";
106
+ readonly NL_BE: "nl_BE.UTF-8";
107
+ readonly SV_SE: "sv_SE.UTF-8";
108
+ readonly NB_NO: "nb_NO.UTF-8";
109
+ readonly NN_NO: "nn_NO.UTF-8";
110
+ readonly DA_DK: "da_DK.UTF-8";
111
+ readonly FI_FI: "fi_FI.UTF-8";
112
+ readonly PL_PL: "pl_PL.UTF-8";
113
+ readonly RU_RU: "ru_RU.UTF-8";
114
+ readonly JA_JP: "ja_JP.UTF-8";
115
+ readonly ZH_CN: "zh_CN.UTF-8";
116
+ readonly ZH_TW: "zh_TW.UTF-8";
117
+ readonly ZH_HK: "zh_HK.UTF-8";
118
+ readonly KO_KR: "ko_KR.UTF-8";
119
+ readonly AR_SA: "ar_SA.UTF-8";
120
+ };
121
+ /**
122
+ * Type representing a locale value
123
+ */
124
+ export type LocaleType = (typeof LocaleEnum)[keyof typeof LocaleEnum];
125
+ /**
126
+ * @deprecated Use LocaleEnum instead
127
+ */
128
+ export declare const Locale: {
129
+ readonly ES_ES: "es_ES.UTF-8";
130
+ readonly ES_MX: "es_MX.UTF-8";
131
+ readonly ES_AR: "es_AR.UTF-8";
132
+ readonly ES_CO: "es_CO.UTF-8";
133
+ readonly ES_CL: "es_CL.UTF-8";
134
+ readonly EN_US: "en_US.UTF-8";
135
+ readonly EN_GB: "en_GB.UTF-8";
136
+ readonly EN_AU: "en_AU.UTF-8";
137
+ readonly EN_CA: "en_CA.UTF-8";
138
+ readonly DE_DE: "de_DE.UTF-8";
139
+ readonly DE_AT: "de_AT.UTF-8";
140
+ readonly DE_CH: "de_CH.UTF-8";
141
+ readonly FR_FR: "fr_FR.UTF-8";
142
+ readonly FR_CA: "fr_CA.UTF-8";
143
+ readonly PT_BR: "pt_BR.UTF-8";
144
+ readonly PT_PT: "pt_PT.UTF-8";
145
+ readonly IT_IT: "it_IT.UTF-8";
146
+ readonly NL_NL: "nl_NL.UTF-8";
147
+ readonly NL_BE: "nl_BE.UTF-8";
148
+ readonly SV_SE: "sv_SE.UTF-8";
149
+ readonly NB_NO: "nb_NO.UTF-8";
150
+ readonly NN_NO: "nn_NO.UTF-8";
151
+ readonly DA_DK: "da_DK.UTF-8";
152
+ readonly FI_FI: "fi_FI.UTF-8";
153
+ readonly PL_PL: "pl_PL.UTF-8";
154
+ readonly RU_RU: "ru_RU.UTF-8";
155
+ readonly JA_JP: "ja_JP.UTF-8";
156
+ readonly ZH_CN: "zh_CN.UTF-8";
157
+ readonly ZH_TW: "zh_TW.UTF-8";
158
+ readonly ZH_HK: "zh_HK.UTF-8";
159
+ readonly KO_KR: "ko_KR.UTF-8";
160
+ readonly AR_SA: "ar_SA.UTF-8";
161
+ };
162
+ /**
163
+ * Options for database creation/configuration
164
+ */
165
+ export interface DatabaseOptions {
166
+ /**
167
+ * Database name
168
+ */
169
+ name: string;
170
+ /**
171
+ * Character encoding (e.g., 'UTF8', 'LATIN1')
172
+ */
173
+ encoding?: string;
174
+ /**
175
+ * LC_COLLATE setting for string sort order
176
+ */
177
+ lcCollate?: string;
178
+ /**
179
+ * LC_CTYPE setting for character classification
180
+ */
181
+ lcCtype?: string;
182
+ /**
183
+ * Template database to use (PostgreSQL)
184
+ */
185
+ template?: string;
186
+ /**
187
+ * Tablespace for the database (PostgreSQL)
188
+ */
189
+ tablespace?: string;
190
+ /**
191
+ * Connection pool limit
192
+ */
193
+ connectionLimit?: number;
194
+ /**
195
+ * If true, database is a template (PostgreSQL)
196
+ */
197
+ isTemplate?: boolean;
198
+ /**
199
+ * Database collation (MySQL/MariaDB)
200
+ */
201
+ collate?: string;
202
+ }
203
+ /**
204
+ * Options for column-level collation
205
+ */
206
+ export interface CollateOptions {
207
+ /**
208
+ * The collation to apply to the column
209
+ */
210
+ collate?: string;
211
+ /**
212
+ * Whether this is a primary key column
213
+ */
214
+ primaryKey?: boolean;
215
+ /**
216
+ * Whether this column should be unique
217
+ */
218
+ unique?: boolean;
219
+ }
220
+ /**
221
+ * Options for table-level collation
222
+ */
223
+ export interface TableCollateOptions {
224
+ /**
225
+ * Table collation
226
+ */
227
+ collate?: string;
228
+ /**
229
+ * Table engine (MySQL)
230
+ */
231
+ engine?: string;
232
+ /**
233
+ * Table comment
234
+ */
235
+ comment?: string;
236
+ }
237
+ /**
238
+ * OrderBy options with locale support
239
+ */
240
+ export interface OrderByOptions {
241
+ /**
242
+ * Column name to order by
243
+ */
244
+ column: string;
245
+ /**
246
+ * Sort direction
247
+ */
248
+ direction?: 'ASC' | 'DESC';
249
+ /**
250
+ * Collation to use for sorting
251
+ */
252
+ collate?: string;
253
+ }
254
+ /**
255
+ * Decorator to set column-level collation
256
+ *
257
+ * Usage:
258
+ * @Collate(Collate.UTF8MB4_UNICODE_CI)
259
+ * @Column
260
+ * name: string;
261
+ *
262
+ * Or with options:
263
+ * @Collate({ collate: Collate.UTF8MB4_BIN, unique: true })
264
+ * @Column
265
+ * email: string;
266
+ */
267
+ /**
268
+ * Decorator to set column-level collation
269
+ *
270
+ * Usage:
271
+ * @SetCollate(CollateEnum.UTF8MB4_UNICODE_CI)
272
+ * @Column
273
+ * name: string;
274
+ *
275
+ * Or with options:
276
+ * @SetCollate({ collate: CollateEnum.UTF8MB4_BIN, unique: true })
277
+ * @Column
278
+ * email: string;
279
+ */
280
+ export declare function SetCollate(collation: string | CollateOptions): ClassDecorator & PropertyDecorator;
281
+ /**
282
+ * Decorator to set database-level options
283
+ *
284
+ * Usage:
285
+ * @Database({
286
+ * name: 'miapp',
287
+ * encoding: 'UTF8',
288
+ * lcCollate: 'es_ES.UTF-8',
289
+ * lcCtype: 'es_ES.UTF-8',
290
+ * connectionLimit: 25,
291
+ * })
292
+ * class Config extends Model {}
293
+ */
294
+ export declare function Database(options: DatabaseOptions): ClassDecorator;
295
+ /**
296
+ * Decorator to set table-level collation and options
297
+ *
298
+ * Usage:
299
+ * @TableCollate({ collate: 'utf8mb4_spanish_ci', engine: 'InnoDB' })
300
+ * class User extends Model {}
301
+ */
302
+ export declare function TableCollate(options: TableCollateOptions): ClassDecorator;
303
+ /**
304
+ * Decorator to specify order by with collation
305
+ *
306
+ * Usage:
307
+ * @OrderBy('name', 'ASC', Collate.UTF8MB4_SPANISH_CI)
308
+ * class User extends Model {}
309
+ */
310
+ export declare function OrderBy(column: string, direction?: 'ASC' | 'DESC', collate?: string): ClassDecorator;
311
+ /**
312
+ * Get collation metadata for a model class
313
+ */
314
+ export declare function getCollateMetadata(target: any): Map<string, string>;
315
+ /**
316
+ * Get column collation from a model class and property
317
+ */
318
+ export declare function getColumnCollate(target: any, propertyKey: string): string | undefined;
319
+ /**
320
+ * Get database options for a model class
321
+ */
322
+ export declare function getDatabaseOptions(target: any): DatabaseOptions | undefined;
323
+ /**
324
+ * Get table collation options for a model class
325
+ */
326
+ export declare function getTableCollateOptions(target: any): TableCollateOptions | undefined;
327
+ /**
328
+ * Get order by options for a model class
329
+ */
330
+ export declare function getOrderByOptions(target: any): OrderByOptions[];
331
+ /**
332
+ * Clear all collate metadata (useful for testing)
333
+ */
334
+ export declare function clearCollateMetadata(): void;
335
+ /**
336
+ * Generate SQL for creating a database with locale settings
337
+ */
338
+ export declare function generateCreateDatabaseSQL(options: DatabaseOptions): string;
339
+ /**
340
+ * Generate SQL for altering table collation
341
+ */
342
+ export declare function generateAlterTableCollateSQL(tableName: string, collate: string): string;
343
+ /**
344
+ * Generate SQL for column collation
345
+ */
346
+ export declare function generateColumnCollateSQL(columnName: string, collate: string): string;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @Comment decorator for database schema annotations
3
+ *
4
+ * Provides the ability to add comments to various database objects:
5
+ * - Table-level comments (on model classes)
6
+ * - Column-level comments (on model fields)
7
+ * - Index comments
8
+ * - Constraint comments
9
+ *
10
+ * Usage:
11
+ *
12
+ * @Comment('This table stores user information')
13
+ * class User extends Model { ... }
14
+ *
15
+ * @Column
16
+ * @Comment('User unique identifier')
17
+ * id: number;
18
+ *
19
+ * @Column
20
+ * @Comment('User email address')
21
+ * email: string;
22
+ */
23
+ export interface CommentOptions {
24
+ value: string;
25
+ }
26
+ export declare function Comment(value: string): ClassDecorator & PropertyDecorator;
27
+ export declare function getTableComment(target: Function): string | undefined;
28
+ export declare function getFieldComment(target: Function, fieldName: string): string | undefined;
29
+ export declare function getAllFieldComments(target: Function): Record<string, string>;
30
+ export declare function setIndexComment(target: Function, indexName: string, comment: string): void;
31
+ export declare function getIndexComment(target: Function, indexName: string): string | undefined;
32
+ export declare function getAllIndexComments(target: Function): Record<string, string>;
33
+ export declare function setConstraintComment(target: Function, constraintName: string, comment: string): void;
34
+ export declare function getConstraintComment(target: Function, constraintName: string): string | undefined;
35
+ export declare function getAllConstraintComments(target: Function): Record<string, string>;
36
+ export declare const CommentRegistry: {
37
+ getTableComment: typeof getTableComment;
38
+ getFieldComment: typeof getFieldComment;
39
+ getAllFieldComments: typeof getAllFieldComments;
40
+ setIndexComment: typeof setIndexComment;
41
+ getIndexComment: typeof getIndexComment;
42
+ getAllIndexComments: typeof getAllIndexComments;
43
+ setConstraintComment: typeof setConstraintComment;
44
+ getConstraintComment: typeof getConstraintComment;
45
+ getAllConstraintComments: typeof getAllConstraintComments;
46
+ clearComments(target: Function): void;
47
+ };
48
+ export type CommentDialect = 'mysql' | 'mariadb' | 'postgres' | 'mssql' | 'oracle' | 'sqlite';
49
+ export declare function generateCommentSQL(target: Function, tableName?: string, dialect?: CommentDialect): string[];
50
+ export declare function generateIndexCommentSQL(target: Function, tableName: string, dialect?: CommentDialect): string[];
51
+ export declare function generateConstraintCommentSQL(target: Function, tableName: string, dialect?: CommentDialect): string[];
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Database-level settings decorators for the ORM.
3
+ *
4
+ * Allows controlling database-level settings for models:
5
+ * - Foreign key checks (MySQL/MariaDB)
6
+ * - Unique checks
7
+ * - Autocommit
8
+ * - SQL mode
9
+ * - Other session-level settings
10
+ *
11
+ * Usage:
12
+ *
13
+ * // Disable FK checks for entire model
14
+ * @ForeignKeyChecks({ enabled: false })
15
+ * class ImportData extends Model {}
16
+ *
17
+ * // Disable FK checks at table level
18
+ * @Table({ foreignKeyChecks: false })
19
+ * class TempData extends Model {}
20
+ *
21
+ * // Set database-level settings
22
+ * @DatabaseSetting('unique_checks', false)
23
+ * @DatabaseSetting('autocommit', false)
24
+ * @DatabaseSetting('sql_mode', 'STRICT_TRANS_TABLES')
25
+ * class ImportData extends Model {}
26
+ *
27
+ * // In transaction
28
+ * await prorm.transaction(async () => {
29
+ * await prorm.setForeignKeyChecks(false);
30
+ * // Bulk import without FK validation
31
+ * await prorm.setForeignKeyChecks(true);
32
+ * });
33
+ */
34
+ import 'reflect-metadata';
35
+ /**
36
+ * Database setting value types
37
+ */
38
+ export type DatabaseSettingValue = string | number | boolean | null;
39
+ /**
40
+ * Options for @ForeignKeyChecks decorator
41
+ */
42
+ export interface ForeignKeyChecksOptions {
43
+ /**
44
+ * Whether to enable or disable foreign key checks
45
+ * Default: true (enabled)
46
+ */
47
+ enabled?: boolean;
48
+ /**
49
+ * Optional description for documentation
50
+ */
51
+ description?: string;
52
+ }
53
+ /**
54
+ * Options for @DatabaseSetting decorator
55
+ */
56
+ export interface DatabaseSettingOptions {
57
+ /**
58
+ * The setting name
59
+ * Examples: 'unique_checks', 'autocommit', 'sql_mode', 'foreign_key_checks'
60
+ */
61
+ name: string;
62
+ /**
63
+ * The value to set
64
+ */
65
+ value: DatabaseSettingValue;
66
+ /**
67
+ * Whether this setting should be applied per-session or globally
68
+ * Default: 'session'
69
+ */
70
+ scope?: 'session' | 'global';
71
+ /**
72
+ * Optional description for documentation
73
+ */
74
+ description?: string;
75
+ }
76
+ /**
77
+ * Model-level database settings collected from decorators
78
+ */
79
+ export interface ModelDatabaseSettings {
80
+ /**
81
+ * Foreign key checks setting
82
+ */
83
+ foreignKeyChecks?: boolean;
84
+ /**
85
+ * Unique checks setting
86
+ */
87
+ uniqueChecks?: boolean;
88
+ /**
89
+ * Autocommit setting
90
+ */
91
+ autocommit?: boolean;
92
+ /**
93
+ * SQL mode setting
94
+ */
95
+ sqlMode?: string;
96
+ /**
97
+ * Additional settings
98
+ */
99
+ additionalSettings?: Record<string, DatabaseSettingValue>;
100
+ }
101
+ /**
102
+ * Decorator to control foreign key checks for a model.
103
+ *
104
+ * Useful for bulk imports or data migrations where you need to
105
+ * temporarily disable FK validation.
106
+ *
107
+ * Usage:
108
+ *
109
+ * @ForeignKeyChecks({ enabled: false })
110
+ * class ImportData extends Model {
111
+ * // fields...
112
+ * }
113
+ *
114
+ * @param options - Foreign key check options
115
+ */
116
+ export declare function ForeignKeyChecks(options?: ForeignKeyChecksOptions): ClassDecorator;
117
+ /**
118
+ * Decorator to set database-level settings for a model.
119
+ *
120
+ * These settings are applied when the model is used and can control
121
+ * session-level database behavior.
122
+ *
123
+ * Usage:
124
+ *
125
+ * @DatabaseSetting('unique_checks', false)
126
+ * @DatabaseSetting('autocommit', false)
127
+ * @DatabaseSetting('sql_mode', 'STRICT_TRANS_TABLES')
128
+ * class ImportData extends Model {
129
+ * // fields...
130
+ * }
131
+ *
132
+ * @param name - The setting name
133
+ * @param value - The value to set
134
+ */
135
+ export declare function DatabaseSetting(name: string, value: DatabaseSettingValue): ClassDecorator;
136
+ /**
137
+ * Get foreign key checks setting for a model.
138
+ *
139
+ * @param target - The target class or prototype
140
+ * @returns The foreign key checks setting or undefined
141
+ */
142
+ export declare function getForeignKeyChecksSetting(target: object): boolean | undefined;
143
+ /**
144
+ * Get all database settings for a model.
145
+ *
146
+ * @param target - The target class or prototype
147
+ * @returns The database settings object
148
+ */
149
+ export declare function getDatabaseSettings(target: object): ModelDatabaseSettings | undefined;
150
+ /**
151
+ * Check if foreign key checks are disabled for a model.
152
+ *
153
+ * @param target - The target class or prototype
154
+ * @returns True if FK checks are disabled
155
+ */
156
+ export declare function isForeignKeyChecksDisabled(target: object): boolean;
157
+ /**
158
+ * Get all model database settings including inherited settings.
159
+ *
160
+ * Walks the prototype chain to collect all settings from parent classes.
161
+ *
162
+ * @param target - The target class or prototype
163
+ * @returns Combined database settings from all levels
164
+ */
165
+ export declare function getAllDatabaseSettings(target: object): ModelDatabaseSettings;
166
+ /**
167
+ * Generate SQL to apply database settings.
168
+ *
169
+ * @param settings - The database settings
170
+ * @returns Array of SQL statements to execute
171
+ */
172
+ export declare function generateSettingsSQL(settings: ModelDatabaseSettings): string[];
173
+ /**
174
+ * Create a context manager for temporarily changing database settings.
175
+ *
176
+ * Usage:
177
+ *
178
+ * const settingsManager = createSettingsContext({
179
+ * foreignKeyChecks: false,
180
+ * uniqueChecks: false
181
+ * });
182
+ *
183
+ * await settingsManager.execute(async () => {
184
+ * // Bulk insert without FK checks
185
+ * await Model.bulkCreate(data);
186
+ * });
187
+ *
188
+ * @param settings - Settings to apply during execution
189
+ * @returns Context manager with execute method
190
+ */
191
+ export declare function createSettingsContext(settings: Partial<ModelDatabaseSettings>): {
192
+ execute: <T>(fn: () => Promise<T>) => Promise<T>;
193
+ };