@warlock.js/cascade 4.0.162 → 4.0.164

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 (661) hide show
  1. package/cjs/context/database-data-source-context.d.ts +29 -0
  2. package/cjs/context/database-data-source-context.d.ts.map +1 -0
  3. package/cjs/context/database-data-source-context.js +28 -0
  4. package/cjs/context/database-data-source-context.js.map +1 -0
  5. package/cjs/context/database-transaction-context.d.ts +35 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +40 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +450 -0
  10. package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
  11. package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
  12. package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
  13. package/cjs/contracts/database-remover.contract.d.ts +104 -0
  14. package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
  15. package/cjs/contracts/database-restorer.contract.d.ts +143 -0
  16. package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
  17. package/cjs/contracts/database-writer.contract.d.ts +119 -0
  18. package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
  19. package/cjs/contracts/driver-blueprint.contract.d.ts +49 -0
  20. package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
  21. package/cjs/contracts/index.d.ts +10 -0
  22. package/cjs/contracts/index.d.ts.map +1 -0
  23. package/cjs/contracts/migration-driver.contract.d.ts +522 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1609 -0
  26. package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
  27. package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
  28. package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
  29. package/cjs/data-source/data-source-registry.d.ts +108 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +145 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +147 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +83 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +252 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +386 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  42. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  43. package/cjs/drivers/mongodb/mongodb-blueprint.js +51 -0
  44. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  45. package/cjs/drivers/mongodb/mongodb-driver.d.ts +325 -0
  46. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongodb/mongodb-driver.js +838 -0
  48. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
  49. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  50. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  51. package/cjs/drivers/mongodb/mongodb-id-generator.js +149 -0
  52. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  53. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  54. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  55. package/cjs/drivers/mongodb/mongodb-migration-driver.js +666 -0
  56. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  57. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  58. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  59. package/cjs/drivers/mongodb/mongodb-query-builder.js +1988 -0
  60. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  61. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  62. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  63. package/cjs/drivers/mongodb/mongodb-query-operations.js +270 -0
  64. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  65. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  66. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  67. package/cjs/drivers/mongodb/mongodb-query-parser.js +1351 -0
  68. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  69. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  70. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  71. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  72. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  73. package/cjs/drivers/mongodb/types.d.ts +43 -0
  74. package/cjs/drivers/mongodb/types.d.ts.map +1 -0
  75. package/cjs/drivers/postgres/index.d.ts +16 -0
  76. package/cjs/drivers/postgres/index.d.ts.map +1 -0
  77. package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
  78. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  79. package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
  80. package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
  81. package/cjs/drivers/postgres/postgres-dialect.d.ts +136 -0
  82. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  83. package/cjs/drivers/postgres/postgres-dialect.js +268 -0
  84. package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
  85. package/cjs/drivers/postgres/postgres-driver.d.ts +432 -0
  86. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
  87. package/cjs/drivers/postgres/postgres-driver.js +1010 -0
  88. package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
  89. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  90. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  91. package/cjs/drivers/postgres/postgres-migration-driver.js +900 -0
  92. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
  93. package/cjs/drivers/postgres/postgres-query-builder.d.ts +254 -0
  94. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  95. package/cjs/drivers/postgres/postgres-query-builder.js +933 -0
  96. package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
  97. package/cjs/drivers/postgres/postgres-query-parser.d.ts +328 -0
  98. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  99. package/cjs/drivers/postgres/postgres-query-parser.js +868 -0
  100. package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
  101. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  102. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  103. package/cjs/drivers/postgres/postgres-sql-serializer.js +400 -0
  104. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  105. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  106. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  107. package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
  108. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  109. package/cjs/drivers/postgres/types.d.ts +144 -0
  110. package/cjs/drivers/postgres/types.d.ts.map +1 -0
  111. package/cjs/drivers/sql/index.d.ts +10 -0
  112. package/cjs/drivers/sql/index.d.ts.map +1 -0
  113. package/cjs/drivers/sql/sql-dialect.contract.d.ts +204 -0
  114. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  115. package/cjs/drivers/sql/sql-types.d.ts +202 -0
  116. package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
  117. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  118. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  119. package/cjs/errors/missing-data-source.error.js +29 -0
  120. package/cjs/errors/missing-data-source.error.js.map +1 -0
  121. package/cjs/errors/transaction-rollback.error.d.ts +20 -0
  122. package/cjs/errors/transaction-rollback.error.d.ts.map +1 -0
  123. package/cjs/errors/transaction-rollback.error.js +27 -0
  124. package/cjs/errors/transaction-rollback.error.js.map +1 -0
  125. package/cjs/events/model-events.d.ts +231 -0
  126. package/cjs/events/model-events.d.ts.map +1 -0
  127. package/cjs/events/model-events.js +259 -0
  128. package/cjs/events/model-events.js.map +1 -0
  129. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  130. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  131. package/cjs/expressions/aggregate-expressions.js +221 -0
  132. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  133. package/cjs/expressions/index.d.ts +2 -0
  134. package/cjs/expressions/index.d.ts.map +1 -0
  135. package/cjs/index.d.ts +45 -0
  136. package/cjs/index.d.ts.map +1 -0
  137. package/cjs/index.js +1 -0
  138. package/cjs/index.js.map +1 -0
  139. package/cjs/migration/column-builder.d.ts +417 -0
  140. package/cjs/migration/column-builder.d.ts.map +1 -0
  141. package/cjs/migration/column-builder.js +586 -0
  142. package/cjs/migration/column-builder.js.map +1 -0
  143. package/cjs/migration/column-helpers.d.ts +275 -0
  144. package/cjs/migration/column-helpers.d.ts.map +1 -0
  145. package/cjs/migration/column-helpers.js +389 -0
  146. package/cjs/migration/column-helpers.js.map +1 -0
  147. package/cjs/migration/foreign-key-builder.d.ts +103 -0
  148. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  149. package/cjs/migration/foreign-key-builder.js +121 -0
  150. package/cjs/migration/foreign-key-builder.js.map +1 -0
  151. package/cjs/migration/index.d.ts +7 -0
  152. package/cjs/migration/index.d.ts.map +1 -0
  153. package/cjs/migration/migration-runner.d.ts +278 -0
  154. package/cjs/migration/migration-runner.d.ts.map +1 -0
  155. package/cjs/migration/migration-runner.js +815 -0
  156. package/cjs/migration/migration-runner.js.map +1 -0
  157. package/cjs/migration/migration.d.ts +1992 -0
  158. package/cjs/migration/migration.d.ts.map +1 -0
  159. package/cjs/migration/migration.js +2162 -0
  160. package/cjs/migration/migration.js.map +1 -0
  161. package/cjs/migration/sql-grammar.d.ts +61 -0
  162. package/cjs/migration/sql-grammar.d.ts.map +1 -0
  163. package/cjs/migration/sql-grammar.js +164 -0
  164. package/cjs/migration/sql-grammar.js.map +1 -0
  165. package/cjs/migration/sql-serializer.d.ts +22 -0
  166. package/cjs/migration/sql-serializer.d.ts.map +1 -0
  167. package/cjs/migration/sql-serializer.js +26 -0
  168. package/cjs/migration/sql-serializer.js.map +1 -0
  169. package/cjs/migration/types.d.ts +155 -0
  170. package/cjs/migration/types.d.ts.map +1 -0
  171. package/cjs/model/methods/accessor-methods.d.ts +13 -0
  172. package/cjs/model/methods/accessor-methods.d.ts.map +1 -0
  173. package/cjs/model/methods/accessor-methods.js +51 -0
  174. package/cjs/model/methods/accessor-methods.js.map +1 -0
  175. package/cjs/model/methods/delete-methods.d.ts +10 -0
  176. package/cjs/model/methods/delete-methods.d.ts.map +1 -0
  177. package/cjs/model/methods/delete-methods.js +10 -0
  178. package/cjs/model/methods/delete-methods.js.map +1 -0
  179. package/cjs/model/methods/dirty-methods.d.ts +10 -0
  180. package/cjs/model/methods/dirty-methods.d.ts.map +1 -0
  181. package/cjs/model/methods/dirty-methods.js +15 -0
  182. package/cjs/model/methods/dirty-methods.js.map +1 -0
  183. package/cjs/model/methods/hydration-methods.d.ts +10 -0
  184. package/cjs/model/methods/hydration-methods.d.ts.map +1 -0
  185. package/cjs/model/methods/hydration-methods.js +57 -0
  186. package/cjs/model/methods/hydration-methods.js.map +1 -0
  187. package/cjs/model/methods/instance-event-methods.d.ts +7 -0
  188. package/cjs/model/methods/instance-event-methods.d.ts.map +1 -0
  189. package/cjs/model/methods/instance-event-methods.js +15 -0
  190. package/cjs/model/methods/instance-event-methods.js.map +1 -0
  191. package/cjs/model/methods/meta-methods.d.ts +7 -0
  192. package/cjs/model/methods/meta-methods.d.ts.map +1 -0
  193. package/cjs/model/methods/meta-methods.js +78 -0
  194. package/cjs/model/methods/meta-methods.js.map +1 -0
  195. package/cjs/model/methods/query-methods.d.ts +24 -0
  196. package/cjs/model/methods/query-methods.d.ts.map +1 -0
  197. package/cjs/model/methods/query-methods.js +164 -0
  198. package/cjs/model/methods/query-methods.js.map +1 -0
  199. package/cjs/model/methods/restore-methods.d.ts +10 -0
  200. package/cjs/model/methods/restore-methods.d.ts.map +1 -0
  201. package/cjs/model/methods/restore-methods.js +13 -0
  202. package/cjs/model/methods/restore-methods.js.map +1 -0
  203. package/cjs/model/methods/scope-methods.d.ts +7 -0
  204. package/cjs/model/methods/scope-methods.d.ts.map +1 -0
  205. package/cjs/model/methods/scope-methods.js +15 -0
  206. package/cjs/model/methods/scope-methods.js.map +1 -0
  207. package/cjs/model/methods/serialization-methods.d.ts +3 -0
  208. package/cjs/model/methods/serialization-methods.d.ts.map +1 -0
  209. package/cjs/model/methods/serialization-methods.js +27 -0
  210. package/cjs/model/methods/serialization-methods.js.map +1 -0
  211. package/cjs/model/methods/static-event-methods.d.ts +9 -0
  212. package/cjs/model/methods/static-event-methods.d.ts.map +1 -0
  213. package/cjs/model/methods/static-event-methods.js +29 -0
  214. package/cjs/model/methods/static-event-methods.js.map +1 -0
  215. package/cjs/model/methods/write-methods.d.ts +10 -0
  216. package/cjs/model/methods/write-methods.d.ts.map +1 -0
  217. package/cjs/model/methods/write-methods.js +52 -0
  218. package/cjs/model/methods/write-methods.js.map +1 -0
  219. package/cjs/model/model.d.ts +1647 -0
  220. package/cjs/model/model.d.ts.map +1 -0
  221. package/cjs/model/model.js +1657 -0
  222. package/cjs/model/model.js.map +1 -0
  223. package/cjs/model/model.types.d.ts +44 -0
  224. package/cjs/model/model.types.d.ts.map +1 -0
  225. package/cjs/model/register-model.d.ts +81 -0
  226. package/cjs/model/register-model.d.ts.map +1 -0
  227. package/cjs/model/register-model.js +94 -0
  228. package/cjs/model/register-model.js.map +1 -0
  229. package/cjs/query-builder/query-builder.d.ts +556 -0
  230. package/cjs/query-builder/query-builder.d.ts.map +1 -0
  231. package/cjs/query-builder/query-builder.js +1070 -0
  232. package/cjs/query-builder/query-builder.js.map +1 -0
  233. package/cjs/relations/helpers.d.ts +156 -0
  234. package/cjs/relations/helpers.d.ts.map +1 -0
  235. package/cjs/relations/helpers.js +202 -0
  236. package/cjs/relations/helpers.js.map +1 -0
  237. package/cjs/relations/index.d.ts +35 -0
  238. package/cjs/relations/index.d.ts.map +1 -0
  239. package/cjs/relations/pivot-operations.d.ts +160 -0
  240. package/cjs/relations/pivot-operations.d.ts.map +1 -0
  241. package/cjs/relations/pivot-operations.js +293 -0
  242. package/cjs/relations/pivot-operations.js.map +1 -0
  243. package/cjs/relations/relation-hydrator.d.ts +68 -0
  244. package/cjs/relations/relation-hydrator.d.ts.map +1 -0
  245. package/cjs/relations/relation-hydrator.js +81 -0
  246. package/cjs/relations/relation-hydrator.js.map +1 -0
  247. package/cjs/relations/relation-loader.d.ts +194 -0
  248. package/cjs/relations/relation-loader.d.ts.map +1 -0
  249. package/cjs/relations/relation-loader.js +466 -0
  250. package/cjs/relations/relation-loader.js.map +1 -0
  251. package/cjs/relations/types.d.ts +306 -0
  252. package/cjs/relations/types.d.ts.map +1 -0
  253. package/cjs/remover/database-remover.d.ts +100 -0
  254. package/cjs/remover/database-remover.d.ts.map +1 -0
  255. package/cjs/remover/database-remover.js +214 -0
  256. package/cjs/remover/database-remover.js.map +1 -0
  257. package/cjs/restorer/database-restorer.d.ts +131 -0
  258. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  259. package/cjs/restorer/database-restorer.js +434 -0
  260. package/cjs/restorer/database-restorer.js.map +1 -0
  261. package/cjs/sql-database-dirty-tracker.d.ts +13 -0
  262. package/cjs/sql-database-dirty-tracker.d.ts.map +1 -0
  263. package/cjs/sql-database-dirty-tracker.js +14 -0
  264. package/cjs/sql-database-dirty-tracker.js.map +1 -0
  265. package/cjs/sync/index.d.ts +12 -0
  266. package/cjs/sync/index.d.ts.map +1 -0
  267. package/cjs/sync/model-events.d.ts +62 -0
  268. package/cjs/sync/model-events.d.ts.map +1 -0
  269. package/cjs/sync/model-events.js +49 -0
  270. package/cjs/sync/model-events.js.map +1 -0
  271. package/cjs/sync/model-sync-operation.d.ts +163 -0
  272. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  273. package/cjs/sync/model-sync-operation.js +292 -0
  274. package/cjs/sync/model-sync-operation.js.map +1 -0
  275. package/cjs/sync/model-sync.d.ts +130 -0
  276. package/cjs/sync/model-sync.d.ts.map +1 -0
  277. package/cjs/sync/model-sync.js +178 -0
  278. package/cjs/sync/model-sync.js.map +1 -0
  279. package/cjs/sync/sync-context.d.ts +70 -0
  280. package/cjs/sync/sync-context.d.ts.map +1 -0
  281. package/cjs/sync/sync-context.js +101 -0
  282. package/cjs/sync/sync-context.js.map +1 -0
  283. package/cjs/sync/sync-manager.d.ts +213 -0
  284. package/cjs/sync/sync-manager.d.ts.map +1 -0
  285. package/cjs/sync/sync-manager.js +689 -0
  286. package/cjs/sync/sync-manager.js.map +1 -0
  287. package/cjs/sync/types.d.ts +289 -0
  288. package/cjs/sync/types.d.ts.map +1 -0
  289. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  290. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  291. package/cjs/types.d.ts +371 -0
  292. package/cjs/types.d.ts.map +1 -0
  293. package/cjs/utils/connect-to-database.d.ts +307 -0
  294. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  295. package/cjs/utils/connect-to-database.js +130 -0
  296. package/cjs/utils/connect-to-database.js.map +1 -0
  297. package/cjs/utils/database-writer.utils.d.ts +15 -0
  298. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  299. package/cjs/utils/database-writer.utils.js +14 -0
  300. package/cjs/utils/database-writer.utils.js.map +1 -0
  301. package/cjs/utils/define-model.js +100 -0
  302. package/cjs/utils/define-model.js.map +1 -0
  303. package/cjs/utils/is-valid-date-value.d.ts +5 -0
  304. package/cjs/utils/is-valid-date-value.d.ts.map +1 -0
  305. package/cjs/utils/is-valid-date-value.js +25 -0
  306. package/cjs/utils/is-valid-date-value.js.map +1 -0
  307. package/cjs/utils/once-connected.d.ts +146 -0
  308. package/cjs/utils/once-connected.d.ts.map +1 -0
  309. package/cjs/utils/once-connected.js +251 -0
  310. package/cjs/utils/once-connected.js.map +1 -0
  311. package/cjs/validation/database-seal-plugins.d.ts +12 -0
  312. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  313. package/cjs/validation/database-seal-plugins.js +1 -0
  314. package/cjs/validation/database-seal-plugins.js.map +1 -0
  315. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  316. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  317. package/cjs/validation/database-writer-validation-error.js +160 -0
  318. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  319. package/cjs/validation/index.d.ts +3 -0
  320. package/cjs/validation/index.d.ts.map +1 -0
  321. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  322. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  323. package/cjs/validation/mutators/embed-mutator.js +33 -0
  324. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  325. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  326. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  327. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  328. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  329. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  330. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  331. package/cjs/validation/rules/database-model-rule.js +27 -0
  332. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  333. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  334. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  335. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  336. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  337. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  338. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  339. package/cjs/validation/validators/embed-validator.js +43 -0
  340. package/cjs/validation/validators/embed-validator.js.map +1 -0
  341. package/cjs/writer/database-writer.d.ts +181 -0
  342. package/cjs/writer/database-writer.d.ts.map +1 -0
  343. package/cjs/writer/database-writer.js +407 -0
  344. package/cjs/writer/database-writer.js.map +1 -0
  345. package/esm/data-source/data-source-registry.d.ts +108 -0
  346. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  347. package/esm/data-source/data-source-registry.js +145 -0
  348. package/esm/data-source/data-source-registry.js.map +1 -0
  349. package/esm/data-source/data-source.d.ts +147 -0
  350. package/esm/data-source/data-source.d.ts.map +1 -0
  351. package/esm/data-source/data-source.js +83 -0
  352. package/esm/data-source/data-source.js.map +1 -0
  353. package/esm/database-dirty-tracker.d.ts +252 -0
  354. package/esm/database-dirty-tracker.d.ts.map +1 -0
  355. package/esm/database-dirty-tracker.js +386 -0
  356. package/esm/database-dirty-tracker.js.map +1 -0
  357. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  358. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  359. package/esm/drivers/mongodb/mongodb-blueprint.js +51 -0
  360. package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  361. package/esm/drivers/mongodb/mongodb-driver.d.ts +325 -0
  362. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  363. package/esm/drivers/mongodb/mongodb-driver.js +838 -0
  364. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
  365. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  366. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  367. package/esm/drivers/mongodb/mongodb-id-generator.js +149 -0
  368. package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  369. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  370. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  371. package/esm/drivers/mongodb/mongodb-migration-driver.js +666 -0
  372. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  373. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  374. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  375. package/esm/drivers/mongodb/mongodb-query-builder.js +1988 -0
  376. package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  377. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  378. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  379. package/esm/drivers/mongodb/mongodb-query-operations.js +270 -0
  380. package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  381. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  382. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  383. package/esm/drivers/mongodb/mongodb-query-parser.js +1351 -0
  384. package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  385. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  386. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  387. package/esm/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  388. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  389. package/esm/drivers/mongodb/types.d.ts +43 -0
  390. package/esm/drivers/mongodb/types.d.ts.map +1 -0
  391. package/esm/drivers/postgres/index.d.ts +16 -0
  392. package/esm/drivers/postgres/index.d.ts.map +1 -0
  393. package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
  394. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  395. package/esm/drivers/postgres/postgres-blueprint.js +121 -0
  396. package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
  397. package/esm/drivers/postgres/postgres-dialect.d.ts +136 -0
  398. package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  399. package/esm/drivers/postgres/postgres-dialect.js +268 -0
  400. package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
  401. package/esm/drivers/postgres/postgres-driver.d.ts +432 -0
  402. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
  403. package/esm/drivers/postgres/postgres-driver.js +1010 -0
  404. package/esm/drivers/postgres/postgres-driver.js.map +1 -0
  405. package/esm/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  406. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  407. package/esm/drivers/postgres/postgres-migration-driver.js +900 -0
  408. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
  409. package/esm/drivers/postgres/postgres-query-builder.d.ts +254 -0
  410. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  411. package/esm/drivers/postgres/postgres-query-builder.js +933 -0
  412. package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
  413. package/esm/drivers/postgres/postgres-query-parser.d.ts +328 -0
  414. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  415. package/esm/drivers/postgres/postgres-query-parser.js +868 -0
  416. package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
  417. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  418. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  419. package/esm/drivers/postgres/postgres-sql-serializer.js +400 -0
  420. package/esm/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  421. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  422. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  423. package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
  424. package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  425. package/esm/drivers/postgres/types.d.ts +144 -0
  426. package/esm/drivers/postgres/types.d.ts.map +1 -0
  427. package/esm/drivers/sql/index.d.ts +10 -0
  428. package/esm/drivers/sql/index.d.ts.map +1 -0
  429. package/esm/drivers/sql/sql-dialect.contract.d.ts +204 -0
  430. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  431. package/esm/drivers/sql/sql-types.d.ts +202 -0
  432. package/esm/drivers/sql/sql-types.d.ts.map +1 -0
  433. package/esm/errors/missing-data-source.error.d.ts +22 -0
  434. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  435. package/esm/errors/missing-data-source.error.js +29 -0
  436. package/esm/errors/missing-data-source.error.js.map +1 -0
  437. package/esm/errors/transaction-rollback.error.d.ts +20 -0
  438. package/esm/errors/transaction-rollback.error.d.ts.map +1 -0
  439. package/esm/errors/transaction-rollback.error.js +27 -0
  440. package/esm/errors/transaction-rollback.error.js.map +1 -0
  441. package/esm/events/model-events.d.ts +231 -0
  442. package/esm/events/model-events.d.ts.map +1 -0
  443. package/esm/events/model-events.js +259 -0
  444. package/esm/events/model-events.js.map +1 -0
  445. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  446. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  447. package/esm/expressions/aggregate-expressions.js +221 -0
  448. package/esm/expressions/aggregate-expressions.js.map +1 -0
  449. package/esm/expressions/index.d.ts +2 -0
  450. package/esm/expressions/index.d.ts.map +1 -0
  451. package/esm/index.d.ts +45 -0
  452. package/esm/index.d.ts.map +1 -0
  453. package/esm/index.js +1 -0
  454. package/esm/index.js.map +1 -0
  455. package/esm/migration/column-builder.d.ts +417 -0
  456. package/esm/migration/column-builder.d.ts.map +1 -0
  457. package/esm/migration/column-builder.js +586 -0
  458. package/esm/migration/column-builder.js.map +1 -0
  459. package/esm/migration/column-helpers.d.ts +275 -0
  460. package/esm/migration/column-helpers.d.ts.map +1 -0
  461. package/esm/migration/column-helpers.js +389 -0
  462. package/esm/migration/column-helpers.js.map +1 -0
  463. package/esm/migration/foreign-key-builder.d.ts +103 -0
  464. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  465. package/esm/migration/foreign-key-builder.js +121 -0
  466. package/esm/migration/foreign-key-builder.js.map +1 -0
  467. package/esm/migration/index.d.ts +7 -0
  468. package/esm/migration/index.d.ts.map +1 -0
  469. package/esm/migration/migration-runner.d.ts +278 -0
  470. package/esm/migration/migration-runner.d.ts.map +1 -0
  471. package/esm/migration/migration-runner.js +815 -0
  472. package/esm/migration/migration-runner.js.map +1 -0
  473. package/esm/migration/migration.d.ts +1992 -0
  474. package/esm/migration/migration.d.ts.map +1 -0
  475. package/esm/migration/migration.js +2162 -0
  476. package/esm/migration/migration.js.map +1 -0
  477. package/esm/migration/sql-grammar.d.ts +61 -0
  478. package/esm/migration/sql-grammar.d.ts.map +1 -0
  479. package/esm/migration/sql-grammar.js +164 -0
  480. package/esm/migration/sql-grammar.js.map +1 -0
  481. package/esm/migration/sql-serializer.d.ts +22 -0
  482. package/esm/migration/sql-serializer.d.ts.map +1 -0
  483. package/esm/migration/sql-serializer.js +26 -0
  484. package/esm/migration/sql-serializer.js.map +1 -0
  485. package/esm/migration/types.d.ts +155 -0
  486. package/esm/migration/types.d.ts.map +1 -0
  487. package/esm/model/methods/accessor-methods.d.ts +13 -0
  488. package/esm/model/methods/accessor-methods.d.ts.map +1 -0
  489. package/esm/model/methods/accessor-methods.js +51 -0
  490. package/esm/model/methods/accessor-methods.js.map +1 -0
  491. package/esm/model/methods/delete-methods.d.ts +10 -0
  492. package/esm/model/methods/delete-methods.d.ts.map +1 -0
  493. package/esm/model/methods/delete-methods.js +10 -0
  494. package/esm/model/methods/delete-methods.js.map +1 -0
  495. package/esm/model/methods/dirty-methods.d.ts +10 -0
  496. package/esm/model/methods/dirty-methods.d.ts.map +1 -0
  497. package/esm/model/methods/dirty-methods.js +15 -0
  498. package/esm/model/methods/dirty-methods.js.map +1 -0
  499. package/esm/model/methods/hydration-methods.d.ts +10 -0
  500. package/esm/model/methods/hydration-methods.d.ts.map +1 -0
  501. package/esm/model/methods/hydration-methods.js +57 -0
  502. package/esm/model/methods/hydration-methods.js.map +1 -0
  503. package/esm/model/methods/instance-event-methods.d.ts +7 -0
  504. package/esm/model/methods/instance-event-methods.d.ts.map +1 -0
  505. package/esm/model/methods/instance-event-methods.js +15 -0
  506. package/esm/model/methods/instance-event-methods.js.map +1 -0
  507. package/esm/model/methods/meta-methods.d.ts +7 -0
  508. package/esm/model/methods/meta-methods.d.ts.map +1 -0
  509. package/esm/model/methods/meta-methods.js +78 -0
  510. package/esm/model/methods/meta-methods.js.map +1 -0
  511. package/esm/model/methods/query-methods.d.ts +24 -0
  512. package/esm/model/methods/query-methods.d.ts.map +1 -0
  513. package/esm/model/methods/query-methods.js +164 -0
  514. package/esm/model/methods/query-methods.js.map +1 -0
  515. package/esm/model/methods/restore-methods.d.ts +10 -0
  516. package/esm/model/methods/restore-methods.d.ts.map +1 -0
  517. package/esm/model/methods/restore-methods.js +13 -0
  518. package/esm/model/methods/restore-methods.js.map +1 -0
  519. package/esm/model/methods/scope-methods.d.ts +7 -0
  520. package/esm/model/methods/scope-methods.d.ts.map +1 -0
  521. package/esm/model/methods/scope-methods.js +15 -0
  522. package/esm/model/methods/scope-methods.js.map +1 -0
  523. package/esm/model/methods/serialization-methods.d.ts +3 -0
  524. package/esm/model/methods/serialization-methods.d.ts.map +1 -0
  525. package/esm/model/methods/serialization-methods.js +27 -0
  526. package/esm/model/methods/serialization-methods.js.map +1 -0
  527. package/esm/model/methods/static-event-methods.d.ts +9 -0
  528. package/esm/model/methods/static-event-methods.d.ts.map +1 -0
  529. package/esm/model/methods/static-event-methods.js +29 -0
  530. package/esm/model/methods/static-event-methods.js.map +1 -0
  531. package/esm/model/methods/write-methods.d.ts +10 -0
  532. package/esm/model/methods/write-methods.d.ts.map +1 -0
  533. package/esm/model/methods/write-methods.js +52 -0
  534. package/esm/model/methods/write-methods.js.map +1 -0
  535. package/esm/model/model.d.ts +1647 -0
  536. package/esm/model/model.d.ts.map +1 -0
  537. package/esm/model/model.js +1657 -0
  538. package/esm/model/model.js.map +1 -0
  539. package/esm/model/model.types.d.ts +44 -0
  540. package/esm/model/model.types.d.ts.map +1 -0
  541. package/esm/model/register-model.d.ts +81 -0
  542. package/esm/model/register-model.d.ts.map +1 -0
  543. package/esm/model/register-model.js +94 -0
  544. package/esm/model/register-model.js.map +1 -0
  545. package/esm/query-builder/query-builder.d.ts +556 -0
  546. package/esm/query-builder/query-builder.d.ts.map +1 -0
  547. package/esm/query-builder/query-builder.js +1070 -0
  548. package/esm/query-builder/query-builder.js.map +1 -0
  549. package/esm/relations/helpers.d.ts +156 -0
  550. package/esm/relations/helpers.d.ts.map +1 -0
  551. package/esm/relations/helpers.js +202 -0
  552. package/esm/relations/helpers.js.map +1 -0
  553. package/esm/relations/index.d.ts +35 -0
  554. package/esm/relations/index.d.ts.map +1 -0
  555. package/esm/relations/pivot-operations.d.ts +160 -0
  556. package/esm/relations/pivot-operations.d.ts.map +1 -0
  557. package/esm/relations/pivot-operations.js +293 -0
  558. package/esm/relations/pivot-operations.js.map +1 -0
  559. package/esm/relations/relation-hydrator.d.ts +68 -0
  560. package/esm/relations/relation-hydrator.d.ts.map +1 -0
  561. package/esm/relations/relation-hydrator.js +81 -0
  562. package/esm/relations/relation-hydrator.js.map +1 -0
  563. package/esm/relations/relation-loader.d.ts +194 -0
  564. package/esm/relations/relation-loader.d.ts.map +1 -0
  565. package/esm/relations/relation-loader.js +466 -0
  566. package/esm/relations/relation-loader.js.map +1 -0
  567. package/esm/relations/types.d.ts +306 -0
  568. package/esm/relations/types.d.ts.map +1 -0
  569. package/esm/remover/database-remover.d.ts +100 -0
  570. package/esm/remover/database-remover.d.ts.map +1 -0
  571. package/esm/remover/database-remover.js +214 -0
  572. package/esm/remover/database-remover.js.map +1 -0
  573. package/esm/restorer/database-restorer.d.ts +131 -0
  574. package/esm/restorer/database-restorer.d.ts.map +1 -0
  575. package/esm/restorer/database-restorer.js +434 -0
  576. package/esm/restorer/database-restorer.js.map +1 -0
  577. package/esm/sql-database-dirty-tracker.d.ts +13 -0
  578. package/esm/sql-database-dirty-tracker.d.ts.map +1 -0
  579. package/esm/sql-database-dirty-tracker.js +14 -0
  580. package/esm/sql-database-dirty-tracker.js.map +1 -0
  581. package/esm/sync/index.d.ts +12 -0
  582. package/esm/sync/index.d.ts.map +1 -0
  583. package/esm/sync/model-events.d.ts +62 -0
  584. package/esm/sync/model-events.d.ts.map +1 -0
  585. package/esm/sync/model-events.js +49 -0
  586. package/esm/sync/model-events.js.map +1 -0
  587. package/esm/sync/model-sync-operation.d.ts +163 -0
  588. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  589. package/esm/sync/model-sync-operation.js +292 -0
  590. package/esm/sync/model-sync-operation.js.map +1 -0
  591. package/esm/sync/model-sync.d.ts +130 -0
  592. package/esm/sync/model-sync.d.ts.map +1 -0
  593. package/esm/sync/model-sync.js +178 -0
  594. package/esm/sync/model-sync.js.map +1 -0
  595. package/esm/sync/sync-context.d.ts +70 -0
  596. package/esm/sync/sync-context.d.ts.map +1 -0
  597. package/esm/sync/sync-context.js +101 -0
  598. package/esm/sync/sync-context.js.map +1 -0
  599. package/esm/sync/sync-manager.d.ts +213 -0
  600. package/esm/sync/sync-manager.d.ts.map +1 -0
  601. package/esm/sync/sync-manager.js +689 -0
  602. package/esm/sync/sync-manager.js.map +1 -0
  603. package/esm/sync/types.d.ts +289 -0
  604. package/esm/sync/types.d.ts.map +1 -0
  605. package/esm/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  606. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  607. package/esm/types.d.ts +371 -0
  608. package/esm/types.d.ts.map +1 -0
  609. package/esm/utils/connect-to-database.d.ts +307 -0
  610. package/esm/utils/connect-to-database.d.ts.map +1 -0
  611. package/esm/utils/connect-to-database.js +130 -0
  612. package/esm/utils/connect-to-database.js.map +1 -0
  613. package/esm/utils/database-writer.utils.d.ts +15 -0
  614. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  615. package/esm/utils/database-writer.utils.js +14 -0
  616. package/esm/utils/database-writer.utils.js.map +1 -0
  617. package/esm/utils/define-model.js +100 -0
  618. package/esm/utils/define-model.js.map +1 -0
  619. package/esm/utils/is-valid-date-value.d.ts +5 -0
  620. package/esm/utils/is-valid-date-value.d.ts.map +1 -0
  621. package/esm/utils/is-valid-date-value.js +25 -0
  622. package/esm/utils/is-valid-date-value.js.map +1 -0
  623. package/esm/utils/once-connected.d.ts +146 -0
  624. package/esm/utils/once-connected.d.ts.map +1 -0
  625. package/esm/utils/once-connected.js +251 -0
  626. package/esm/utils/once-connected.js.map +1 -0
  627. package/esm/validation/database-seal-plugins.d.ts +12 -0
  628. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  629. package/esm/validation/database-seal-plugins.js +1 -0
  630. package/esm/validation/database-seal-plugins.js.map +1 -0
  631. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  632. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  633. package/esm/validation/database-writer-validation-error.js +160 -0
  634. package/esm/validation/database-writer-validation-error.js.map +1 -0
  635. package/esm/validation/index.d.ts +3 -0
  636. package/esm/validation/index.d.ts.map +1 -0
  637. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  638. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  639. package/esm/validation/mutators/embed-mutator.js +33 -0
  640. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  641. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  642. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  643. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  644. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  645. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  646. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  647. package/esm/validation/rules/database-model-rule.js +27 -0
  648. package/esm/validation/rules/database-model-rule.js.map +1 -0
  649. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  650. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  651. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  652. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  653. package/esm/validation/validators/embed-validator.d.ts +21 -0
  654. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  655. package/esm/validation/validators/embed-validator.js +43 -0
  656. package/esm/validation/validators/embed-validator.js.map +1 -0
  657. package/esm/writer/database-writer.d.ts +181 -0
  658. package/esm/writer/database-writer.d.ts.map +1 -0
  659. package/esm/writer/database-writer.js +407 -0
  660. package/esm/writer/database-writer.js.map +1 -0
  661. package/package.json +4 -4
package/esm/types.d.ts ADDED
@@ -0,0 +1,371 @@
1
+ /**
2
+ * Strict mode configuration for handling unknown fields during validation.
3
+ *
4
+ * Controls how the model behaves when encountering fields not defined in the schema.
5
+ *
6
+ * - `"strip"` - Remove unknown fields silently (default, recommended for APIs)
7
+ * - `"fail"` - Throw validation error on unknown fields (strict validation)
8
+ * - `"allow"` - Allow unknown fields to pass through (permissive)
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { Model, type StrictMode } from "@warlock.js/cascade";
13
+ *
14
+ * class User extends Model {
15
+ * public static strictMode: StrictMode = "fail";
16
+ * }
17
+ * ```
18
+ */
19
+ export type StrictMode = "strip" | "fail" | "allow";
20
+ /**
21
+ * Delete strategy for model destruction.
22
+ *
23
+ * Controls how models are deleted from the database:
24
+ *
25
+ * - `"trash"` - Moves document to a trash/recycle bin collection, then deletes
26
+ * - `"permanent"` - Actually deletes the document from the database (hard delete)
27
+ * - `"soft"` - Sets a `deletedAt` timestamp instead of deleting (soft delete)
28
+ *
29
+ * Priority order (highest to lowest):
30
+ * 1. destroy() method options
31
+ * 2. Model static property (deleteStrategy)
32
+ * 3. Data source default configuration
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * class User extends Model {
37
+ * public static deleteStrategy: DeleteStrategy = "soft";
38
+ * }
39
+ *
40
+ * // Override at call time
41
+ * await user.destroy({ strategy: "permanent" });
42
+ * ```
43
+ */
44
+ export type DeleteStrategy = "trash" | "permanent" | "soft";
45
+ /**
46
+ * Naming convention for database column names.
47
+ *
48
+ * Different databases have different naming conventions:
49
+ * - `"camelCase"` - MongoDB standard (createdAt, updatedAt, deletedAt)
50
+ * - `"snake_case"` - PostgreSQL/MySQL standard (created_at, updated_at, deleted_at)
51
+ *
52
+ * This affects default column names for timestamps and other system columns.
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * // PostgreSQL driver defaults
57
+ * namingConvention: "snake_case"
58
+ * // Results in: created_at, updated_at, deleted_at
59
+ *
60
+ * // MongoDB driver defaults
61
+ * namingConvention: "camelCase"
62
+ * // Results in: createdAt, updatedAt, deletedAt
63
+ * ```
64
+ */
65
+ export type NamingConvention = "camelCase" | "snake_case";
66
+ /**
67
+ * Unified model default configuration.
68
+ *
69
+ * These settings define default behaviors for models. The configuration
70
+ * follows a 4-tier hierarchy (highest to lowest precedence):
71
+ *
72
+ * 1. Model static property (explicit override)
73
+ * 2. Database config modelDefaults
74
+ * 3. Driver defaults (SQL vs NoSQL conventions)
75
+ * 4. Framework defaults (fallback values)
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * // PostgreSQL driver provides defaults:
80
+ * const postgresDefaults: ModelDefaults = {
81
+ * namingConvention: "snake_case",
82
+ * createdAtColumn: "created_at",
83
+ * updatedAtColumn: "updated_at",
84
+ * deletedAtColumn: "deleted_at",
85
+ * timestamps: true,
86
+ * autoGenerateId: false, // SQL handles this
87
+ * };
88
+ *
89
+ * // Override in database config:
90
+ * {
91
+ * modelDefaults: {
92
+ * randomIncrement: true,
93
+ * initialId: 1000,
94
+ * deleteStrategy: "soft",
95
+ * }
96
+ * }
97
+ *
98
+ * // Override in specific model:
99
+ * class User extends Model {
100
+ * public static createdAtColumn = "creation_date"; // Highest priority
101
+ * public static updatedAtColumn = false; // Disable updatedAt
102
+ * }
103
+ * ```
104
+ */
105
+ export type ModelDefaults = {
106
+ /**
107
+ * Auto-generate incremental `id` field on insert (NoSQL only).
108
+ *
109
+ * When enabled, the ID generator creates a sequential integer ID
110
+ * separate from the database's native ID (_id for MongoDB).
111
+ *
112
+ * **Note:** SQL databases use native AUTO_INCREMENT and don't need this.
113
+ *
114
+ * @default true (MongoDB), false (PostgreSQL)
115
+ */
116
+ autoGenerateId?: boolean;
117
+ /**
118
+ * Initial ID value for the first record.
119
+ *
120
+ * @default 1
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * initialId: 1000 // Start from 1000
125
+ * ```
126
+ */
127
+ initialId?: number;
128
+ /**
129
+ * Randomly generate the initial ID.
130
+ *
131
+ * Can be:
132
+ * - `true`: Generate random ID between 10000-499999
133
+ * - Function: Custom random ID generator
134
+ * - `false`: Use `initialId` or default to 1
135
+ *
136
+ * @default false
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * randomInitialId: true // Random 10000-499999
141
+ * randomInitialId: () => Math.floor(Math.random() * 1000000)
142
+ * ```
143
+ */
144
+ randomInitialId?: boolean | (() => number);
145
+ /**
146
+ * Amount to increment ID by for each new record.
147
+ *
148
+ * @default 1
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * incrementIdBy: 5 // Increment by 5
153
+ * ```
154
+ */
155
+ incrementIdBy?: number;
156
+ /**
157
+ * Randomly generate the increment amount.
158
+ *
159
+ * Can be:
160
+ * - `true`: Generate random increment between 1-10
161
+ * - Function: Custom random increment generator
162
+ * - `false`: Use `incrementIdBy` or default to 1
163
+ *
164
+ * @default false
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * randomIncrement: true // Random 1-10
169
+ * randomIncrement: () => Math.floor(Math.random() * 100)
170
+ * ```
171
+ */
172
+ randomIncrement?: boolean | (() => number);
173
+ /**
174
+ * Enable/disable automatic timestamp management.
175
+ *
176
+ * When enabled, createdAt and updatedAt are automatically managed.
177
+ * When disabled, no timestamps are added.
178
+ *
179
+ * @default true
180
+ */
181
+ timestamps?: boolean;
182
+ /**
183
+ * Column name for creation timestamp.
184
+ *
185
+ * Set to `false` to disable createdAt entirely.
186
+ *
187
+ * @default "createdAt" (MongoDB), "created_at" (PostgreSQL)
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * createdAtColumn: "creation_date"
192
+ * createdAtColumn: false // Disable
193
+ * ```
194
+ */
195
+ createdAtColumn?: string | false;
196
+ /**
197
+ * Column name for update timestamp.
198
+ *
199
+ * Set to `false` to disable updatedAt entirely.
200
+ *
201
+ * @default "updatedAt" (MongoDB), "updated_at" (PostgreSQL)
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * updatedAtColumn: "last_modified"
206
+ * updatedAtColumn: false // Disable
207
+ * ```
208
+ */
209
+ updatedAtColumn?: string | false;
210
+ /**
211
+ * Delete strategy for this model.
212
+ *
213
+ * Controls how models are deleted:
214
+ * - `"trash"` - Moves to trash collection, then deletes
215
+ * - `"permanent"` - Direct deletion (hard delete)
216
+ * - `"soft"` - Sets deletedAt timestamp (soft delete)
217
+ *
218
+ * @default "permanent"
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * deleteStrategy: "soft"
223
+ * ```
224
+ */
225
+ deleteStrategy?: DeleteStrategy;
226
+ /**
227
+ * Column name for soft delete timestamp.
228
+ *
229
+ * Used when delete strategy is "soft".
230
+ * Set to `false` to use a different mechanism.
231
+ *
232
+ * @default "deletedAt" (MongoDB), "deleted_at" (PostgreSQL)
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * deletedAtColumn: "archived_at"
237
+ * ```
238
+ */
239
+ deletedAtColumn?: string | false;
240
+ /**
241
+ * Trash table/collection name override.
242
+ *
243
+ * Can be:
244
+ * - String: Fixed name for all models
245
+ * - Function: Generate trash table name based on model table
246
+ * - `undefined`: Use default pattern `{table}Trash`
247
+ *
248
+ * Used when delete strategy is "trash".
249
+ *
250
+ * @default undefined (uses {table}Trash pattern)
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * trashTable: "RecycleBin" // All models use same trash
255
+ * trashTable: (table) => `archive_${table}` // Dynamic naming
256
+ * ```
257
+ */
258
+ trashTable?: string | ((tableName: string) => string);
259
+ /**
260
+ * Strict mode behavior for unknown fields.
261
+ *
262
+ * - `"strip"`: Remove unknown fields silently (default)
263
+ * - `"fail"`: Throw validation error on unknown fields
264
+ * - `"allow"`: Allow unknown fields to pass through
265
+ *
266
+ * @default "strip"
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * strictMode: "fail" // Strict validation
271
+ * ```
272
+ */
273
+ strictMode?: StrictMode;
274
+ /**
275
+ * Naming convention for database column names.
276
+ *
277
+ * Affects default names for timestamps and other system columns.
278
+ *
279
+ * @default "camelCase" (MongoDB), "snake_case" (PostgreSQL)
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * namingConvention: "snake_case"
284
+ * // Results in: created_at, updated_at, deleted_at
285
+ * ```
286
+ */
287
+ namingConvention?: NamingConvention;
288
+ };
289
+ /**
290
+ * UUID generation strategy for primary keys.
291
+ *
292
+ * Each driver maps this to its native expression:
293
+ * - `"v4"`: PG → `gen_random_uuid()` (PG 13+), MySQL → `UUID()`
294
+ * - `"v7"`: PG → `uuid_generate_v7()` (PG 18+)
295
+ *
296
+ * @example
297
+ * ```typescript
298
+ * // In database config
299
+ * migrationDefaults: {
300
+ * uuidStrategy: "v7", // Use UUID v7 (PG 18+)
301
+ * }
302
+ * ```
303
+ */
304
+ export type UuidStrategy = "v4" | "v7";
305
+ /**
306
+ * Migration-level defaults configurable per data source.
307
+ *
308
+ * These settings affect DDL operations (schema changes) and are
309
+ * separate from runtime model behavior (`ModelDefaults`).
310
+ *
311
+ * The configuration follows a 3-tier hierarchy (highest to lowest):
312
+ * 1. Inline migration call (explicit `.default("...")`)
313
+ * 2. DataSource `migrationDefaults` (this type)
314
+ * 3. Driver migration defaults (e.g., PG defaults to v4)
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * // Use UUID v7 for all migrations on this data source
319
+ * migrationDefaults: {
320
+ * uuidStrategy: "v7",
321
+ * }
322
+ *
323
+ * // Use a custom UUID extension
324
+ * migrationDefaults: {
325
+ * uuidExpression: "uuid_generate_v1mc()",
326
+ * }
327
+ * ```
328
+ */
329
+ export type MigrationDefaults = {
330
+ /**
331
+ * UUID generation strategy for `primaryUuid()` migration shortcut.
332
+ * Each driver maps this to its native SQL/expression.
333
+ *
334
+ * @default "v4"
335
+ */
336
+ uuidStrategy?: UuidStrategy;
337
+ /**
338
+ * Raw SQL/expression override for UUID generation.
339
+ * Takes precedence over `uuidStrategy` when set.
340
+ *
341
+ * Use for custom extensions (e.g., `uuid-ossp`, `pgcrypto`)
342
+ * or non-standard UUID generation functions.
343
+ *
344
+ * @example "uuid_generate_v1mc()"
345
+ */
346
+ uuidExpression?: string;
347
+ /**
348
+ * Default primary key type for `Migration.create()`.
349
+ *
350
+ * Controls which primary key column is automatically added when using
351
+ * the declarative `Migration.create()` factory. Individual migrations
352
+ * can still override this by passing `{ primaryKey: false }` in options.
353
+ *
354
+ * - `"uuid"` — UUID primary key via `primaryUuid()` (default for PostgreSQL)
355
+ * - `"int"` — Auto-increment integer via `id()`
356
+ * - `"bigInt"` — Big auto-increment integer via `bigId()`
357
+ *
358
+ * @default "int"
359
+ *
360
+ * @example
361
+ * ```typescript
362
+ * // src/config/database.ts
363
+ * migrationOptions: {
364
+ * uuidStrategy: "v7",
365
+ * primaryKey: "uuid",
366
+ * }
367
+ * ```
368
+ */
369
+ primaryKey?: "uuid" | "int" | "bigInt";
370
+ };
371
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,MAAM,aAAa,GAAG;IAK1B;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAM3C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAMjC;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAMtD;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAMxB;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAMF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;CACxC,CAAC"}
@@ -0,0 +1,307 @@
1
+ import { DriverContract, TransactionContext } from "../contracts";
2
+ import { DataSource } from "../data-source/data-source";
3
+ import type { DeleteStrategy, MigrationDefaults, ModelDefaults } from "../types";
4
+ /**
5
+ * Supported database driver types.
6
+ */
7
+ export type DatabaseDriver = "mongodb" | "postgres" | "mysql";
8
+ /**
9
+ * Default model configuration options.
10
+ *
11
+ * These settings will be applied to all models using this data source,
12
+ * unless overridden by individual model static properties.
13
+ *
14
+ * This is a re-export of Partial<ModelDefaults> for backward compatibility
15
+ * and to provide clearer naming in the connection config context.
16
+ *
17
+ * The full hierarchy is:
18
+ * 1. Model static property (highest priority)
19
+ * 2. Database config modelDefaults (this type)
20
+ * 3. Driver defaults (e.g., snake_case for PostgreSQL, camelCase for MongoDB)
21
+ * 4. Framework defaults (fallback values)
22
+ *
23
+ * @see ModelDefaults for complete type definition and documentation
24
+ */
25
+ export type ModelDefaultConfig = Partial<ModelDefaults>;
26
+ /**
27
+ * Connection options for establishing a database connection.
28
+ *
29
+ * Generic type that separates concerns:
30
+ * - Shared config (driver, name, database, connection details)
31
+ * - Driver options (cascade-next driver-specific settings)
32
+ * - Client options (native database client settings)
33
+ * - Model options (default model behaviors)
34
+ *
35
+ * @template TDriverOptions - Driver-specific options (e.g., MongoDriverOptions)
36
+ * @template TClientOptions - Native client options (e.g., MongoClientOptions from mongodb package)
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // MongoDB
41
+ * import type { MongoClientOptions } from "mongodb";
42
+ * import type { MongoDriverOptions } from "@warlock.js/cascade";
43
+ *
44
+ * const config: ConnectionOptions<MongoDriverOptions, MongoClientOptions> = {
45
+ * driver: "mongodb",
46
+ * database: "myapp",
47
+ * host: "localhost",
48
+ * port: 27017,
49
+ * driverOptions: {
50
+ * autoGenerateId: true,
51
+ * counterCollection: "counters",
52
+ * },
53
+ * clientOptions: {
54
+ * minPoolSize: 5,
55
+ * maxPoolSize: 10,
56
+ * },
57
+ * modelOptions: {
58
+ * randomIncrement: true,
59
+ * initialId: 1000,
60
+ * },
61
+ * };
62
+ * ```
63
+ */
64
+ export type ConnectionOptions<TDriverOptions = any, TClientOptions = any> = {
65
+ /**
66
+ * Database driver to use.
67
+ * @default "mongodb"
68
+ */
69
+ driver?: DatabaseDriver;
70
+ /**
71
+ * Unique name for this data source.
72
+ * Used for registration in DataSourceRegistry.
73
+ * @default "default"
74
+ */
75
+ name?: string;
76
+ /**
77
+ * Whether this should be the default data source.
78
+ * @default true
79
+ */
80
+ isDefault?: boolean;
81
+ /**
82
+ * Database name (required).
83
+ */
84
+ database: string;
85
+ /**
86
+ * Enable database operation logging (queries, execution time, parameters).
87
+ * Highly recommended to keep this disabled in production to prevent sensitive data leakage.
88
+ *
89
+ * @default false
90
+ */
91
+ logging?: boolean;
92
+ /**
93
+ * Database connection URI.
94
+ * Alternative to specifying host/port separately.
95
+ *
96
+ * @example "mongodb://localhost:27017/mydb"
97
+ * @example "postgresql://user:pass@localhost:5432/mydb"
98
+ */
99
+ uri?: string;
100
+ /**
101
+ * Database host.
102
+ * @default "localhost"
103
+ */
104
+ host?: string;
105
+ /**
106
+ * Database port.
107
+ * @default 27017 (MongoDB), 5432 (PostgreSQL)
108
+ */
109
+ port?: number;
110
+ /**
111
+ * Database username for authentication.
112
+ */
113
+ username?: string;
114
+ /**
115
+ * Database password for authentication.
116
+ */
117
+ password?: string;
118
+ /**
119
+ * Authentication source database.
120
+ * Typically "admin" for MongoDB.
121
+ */
122
+ authSource?: string;
123
+ /**
124
+ * Driver-specific options.
125
+ *
126
+ * For MongoDB: { autoGenerateId, counterCollection, transactionOptions }
127
+ * For PostgreSQL: { schema, ... }
128
+ */
129
+ driverOptions?: TDriverOptions;
130
+ /**
131
+ * Native database client options.
132
+ *
133
+ * For MongoDB: MongoClientOptions from 'mongodb' package
134
+ * For PostgreSQL: PoolConfig from 'pg' package
135
+ */
136
+ clientOptions?: TClientOptions;
137
+ /**
138
+ * Default model configuration for all models using this data source.
139
+ *
140
+ * These settings override driver defaults but are overridden by
141
+ * individual model static properties.
142
+ *
143
+ * **Configuration Hierarchy (highest to lowest):**
144
+ * 1. Model static property - `User.createdAtColumn = "creation_date"`
145
+ * 2. **modelOptions (this)** - Database-wide overrides
146
+ * 3. Driver defaults - PostgreSQL: snake_case, MongoDB: camelCase
147
+ * 4. Framework defaults - Fallback values
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // PostgreSQL database with custom settings
152
+ * {
153
+ * driver: "postgres",
154
+ * modelOptions: {
155
+ * // Override PostgreSQL default (snake_case) to use camelCase
156
+ * namingConvention: "camelCase",
157
+ * createdAtColumn: "createdAt",
158
+ * updatedAtColumn: "updatedAt",
159
+ *
160
+ * // ID generation settings (for MongoDB)
161
+ * randomIncrement: true,
162
+ * initialId: 1000,
163
+ *
164
+ * // Deletion settings
165
+ * deleteStrategy: "soft",
166
+ * trashTable: "archive", // All models use same trash table
167
+ * }
168
+ * }
169
+ *
170
+ * // MongoDB database with defaults
171
+ * {
172
+ * driver: "mongodb",
173
+ * modelOptions: {
174
+ * // MongoDB already uses camelCase by default
175
+ * randomIncrement: true,
176
+ * initialId: 10000,
177
+ * deleteStrategy: "trash", // Use RecycleBin
178
+ * }
179
+ * }
180
+ * ```
181
+ */
182
+ modelOptions?: ModelDefaultConfig;
183
+ /**
184
+ * Migration-level defaults (UUID strategy, etc.).
185
+ *
186
+ * These defaults override driver migration defaults but can be
187
+ * overridden by individual migration calls.
188
+ *
189
+ * @default undefined (uses driver defaults)
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * migrationDefaults: {
194
+ * uuidStrategy: "v7", // Use UUID v7 for all migrations
195
+ * }
196
+ * ```
197
+ */
198
+ migrationOptions?: MigrationDefaults;
199
+ /**
200
+ * Default delete strategy for models using this data source.
201
+ *
202
+ * - MongoDB: Typically `"trash"` (uses RecycleBin collection)
203
+ * - PostgreSQL: Typically `"permanent"` or `"soft"`
204
+ *
205
+ * Can be overridden by model static property or destroy() options.
206
+ *
207
+ * @default undefined (falls back to "permanent")
208
+ */
209
+ defaultDeleteStrategy?: DeleteStrategy;
210
+ /**
211
+ * Default trash table/collection name for "trash" delete strategy.
212
+ *
213
+ * - MongoDB: Typically `"RecycleBin"`
214
+ * - If not set, defaults to `{table}Trash` pattern
215
+ *
216
+ * Can be overridden by Model.trashTable static property.
217
+ *
218
+ * @default undefined (uses {table}Trash pattern)
219
+ */
220
+ defaultTrashTable?: string;
221
+ /**
222
+ * Migration configuration options.
223
+ */
224
+ migrations?: {
225
+ /**
226
+ * Whether to wrap migrations in database transactions.
227
+ *
228
+ * Overrides driver defaults:
229
+ * - PostgreSQL default: `true` (DDL is transactional)
230
+ * - MongoDB default: `false` (DDL cannot be transactional)
231
+ *
232
+ * Individual migrations can override this with their own `transactional` property.
233
+ *
234
+ * @default undefined (uses driver default)
235
+ */
236
+ transactional?: boolean;
237
+ /**
238
+ * Name of the migrations tracking table/collection.
239
+ *
240
+ * @default "_migrations"
241
+ */
242
+ table?: string;
243
+ };
244
+ };
245
+ /**
246
+ * Connect to a database and register the data source.
247
+ *
248
+ * This is a high-level utility function that simplifies database connection
249
+ * for small to medium projects. It handles driver instantiation, connection,
250
+ * data source creation, and automatic registration.
251
+ *
252
+ * **Supported Drivers:**
253
+ * - `mongodb` (default) - MongoDB driver with optional auto ID generation
254
+ * - `postgres` - PostgreSQL driver (not yet implemented)
255
+ * - `mysql` - MySQL driver (not yet implemented)
256
+ *
257
+ * **Features:**
258
+ * - Automatic driver instantiation based on driver name
259
+ * - Connection establishment and error handling
260
+ * - DataSource creation and registration
261
+ * - Support for MongoDB-specific features (ID generation, transactions)
262
+ *
263
+ * @param options - Connection configuration options
264
+ * @returns A connected and registered DataSource instance
265
+ * @throws {Error} If connection fails or driver is not implemented
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * // MongoDB with new structure
270
+ * const dataSource = await connectToDatabase({
271
+ * driver: "mongodb",
272
+ * database: "myapp",
273
+ * host: "localhost",
274
+ * port: 27017,
275
+ * driverOptions: {
276
+ * autoGenerateId: true,
277
+ * },
278
+ * clientOptions: {
279
+ * minPoolSize: 5,
280
+ * maxPoolSize: 10,
281
+ * },
282
+ * modelOptions: {
283
+ * randomIncrement: true,
284
+ * initialId: 1000,
285
+ * },
286
+ * });
287
+ * ```
288
+ */
289
+ export declare function connectToDatabase<TDriverOptions = any, TClientOptions = any>(options: ConnectionOptions<TDriverOptions, TClientOptions>): Promise<DataSource>;
290
+ /**
291
+ * Get current driver instance.
292
+ *
293
+ * @example
294
+ * ```typescript
295
+ * const driver = getDatabaseDriver();
296
+ *
297
+ * // Pass type to return Postgres driver type
298
+ * const pgDriver = getDatabaseDriver<PostgresDriver>();
299
+ * ```
300
+ */
301
+ export declare function getDatabaseDriver<T extends DriverContract = any>(): T;
302
+ /**
303
+ * Perform database transaction(s)
304
+ * Shorthand to `dataSourceRegister.get().driver.transaction
305
+ */
306
+ export declare function transaction<T = any>(fn: (ctx: TransactionContext) => Promise<T>, options?: Record<string, unknown>): Promise<T>;
307
+ //# sourceMappingURL=connect-to-database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-to-database.d.ts","sourceRoot":"","sources":["../../src/utils/connect-to-database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,MAAM,iBAAiB,CAAC,cAAc,GAAG,GAAG,EAAE,cAAc,GAAG,GAAG,IAAI;IAK1E;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAMlB;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAM/B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAM/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAMrC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAM3B;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;;;;;;;;;WAUG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB;;;;WAIG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,GAAG,GAAG,EAAE,cAAc,GAAG,GAAG,EAChF,OAAO,EAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,GACzD,OAAO,CAAC,UAAU,CAAC,CA+ErB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,GAAG,KAAK,CAAC,CAIrE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EACvC,EAAE,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CAEZ"}