@warlock.js/cascade 4.0.48 → 4.0.59

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 (401) 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 +31 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +34 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +143 -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 +45 -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 +365 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1128 -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 +104 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +138 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +106 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +77 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +253 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +389 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongo/mongo-id-generator.d.ts +116 -0
  42. package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  43. package/cjs/drivers/mongo/mongo-id-generator.js +149 -0
  44. package/cjs/drivers/mongo/mongo-id-generator.js.map +1 -0
  45. package/cjs/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  46. package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongo/mongo-migration-driver.js +524 -0
  48. package/cjs/drivers/mongo/mongo-migration-driver.js.map +1 -0
  49. package/cjs/drivers/mongo/mongo-query-builder.d.ts +922 -0
  50. package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  51. package/cjs/drivers/mongo/mongo-query-builder.js +1740 -0
  52. package/cjs/drivers/mongo/mongo-query-builder.js.map +1 -0
  53. package/cjs/drivers/mongo/mongo-query-operations.d.ts +226 -0
  54. package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  55. package/cjs/drivers/mongo/mongo-query-operations.js +270 -0
  56. package/cjs/drivers/mongo/mongo-query-operations.js.map +1 -0
  57. package/cjs/drivers/mongo/mongo-query-parser.d.ts +262 -0
  58. package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  59. package/cjs/drivers/mongo/mongo-query-parser.js +1351 -0
  60. package/cjs/drivers/mongo/mongo-query-parser.js.map +1 -0
  61. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  62. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  63. package/cjs/drivers/mongo/mongo-sync-adapter.js +146 -0
  64. package/cjs/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  65. package/cjs/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  66. package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  67. package/cjs/drivers/mongo/mongodb-blueprint.js +51 -0
  68. package/cjs/drivers/mongo/mongodb-blueprint.js.map +1 -0
  69. package/cjs/drivers/mongo/mongodb-driver.d.ts +188 -0
  70. package/cjs/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  71. package/cjs/drivers/mongo/mongodb-driver.js +411 -0
  72. package/cjs/drivers/mongo/mongodb-driver.js.map +1 -0
  73. package/cjs/drivers/mongo/types.d.ts +43 -0
  74. package/cjs/drivers/mongo/types.d.ts.map +1 -0
  75. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  76. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  77. package/cjs/errors/missing-data-source.error.js +29 -0
  78. package/cjs/errors/missing-data-source.error.js.map +1 -0
  79. package/cjs/events/model-events.d.ts +231 -0
  80. package/cjs/events/model-events.d.ts.map +1 -0
  81. package/cjs/events/model-events.js +259 -0
  82. package/cjs/events/model-events.js.map +1 -0
  83. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  84. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  85. package/cjs/expressions/aggregate-expressions.js +221 -0
  86. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  87. package/cjs/expressions/index.d.ts +2 -0
  88. package/cjs/expressions/index.d.ts.map +1 -0
  89. package/cjs/index.d.ts +41 -0
  90. package/cjs/index.d.ts.map +1 -0
  91. package/cjs/index.js +1 -267
  92. package/cjs/index.js.map +1 -1
  93. package/cjs/migration/column-builder.d.ts +167 -0
  94. package/cjs/migration/column-builder.d.ts.map +1 -0
  95. package/cjs/migration/column-builder.js +217 -0
  96. package/cjs/migration/column-builder.js.map +1 -0
  97. package/cjs/migration/foreign-key-builder.d.ts +110 -0
  98. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  99. package/cjs/migration/foreign-key-builder.js +129 -0
  100. package/cjs/migration/foreign-key-builder.js.map +1 -0
  101. package/cjs/migration/index.d.ts +6 -0
  102. package/cjs/migration/index.d.ts.map +1 -0
  103. package/cjs/migration/migration-runner.d.ts +231 -0
  104. package/cjs/migration/migration-runner.d.ts.map +1 -0
  105. package/cjs/migration/migration-runner.js +443 -0
  106. package/cjs/migration/migration-runner.js.map +1 -0
  107. package/cjs/migration/migration.js +1346 -0
  108. package/cjs/migration/migration.js.map +1 -0
  109. package/cjs/migration/types.d.ts +132 -0
  110. package/cjs/migration/types.d.ts.map +1 -0
  111. package/cjs/model/model.d.ts +1267 -0
  112. package/cjs/model/model.d.ts.map +1 -0
  113. package/cjs/model/model.js +1463 -0
  114. package/cjs/model/model.js.map +1 -0
  115. package/cjs/model/register-model.d.ts +80 -0
  116. package/cjs/model/register-model.d.ts.map +1 -0
  117. package/cjs/model/register-model.js +91 -0
  118. package/cjs/model/register-model.js.map +1 -0
  119. package/cjs/remover/database-remover.d.ts +100 -0
  120. package/cjs/remover/database-remover.d.ts.map +1 -0
  121. package/cjs/remover/database-remover.js +209 -0
  122. package/cjs/remover/database-remover.js.map +1 -0
  123. package/cjs/restorer/database-restorer.d.ts +131 -0
  124. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  125. package/cjs/restorer/database-restorer.js +425 -0
  126. package/cjs/restorer/database-restorer.js.map +1 -0
  127. package/cjs/sync/index.d.ts +12 -0
  128. package/cjs/sync/index.d.ts.map +1 -0
  129. package/cjs/sync/model-events.d.ts +62 -0
  130. package/cjs/sync/model-events.d.ts.map +1 -0
  131. package/cjs/sync/model-events.js +49 -0
  132. package/cjs/sync/model-events.js.map +1 -0
  133. package/cjs/sync/model-sync-operation.d.ts +163 -0
  134. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  135. package/cjs/sync/model-sync-operation.js +292 -0
  136. package/cjs/sync/model-sync-operation.js.map +1 -0
  137. package/cjs/sync/model-sync.d.ts +130 -0
  138. package/cjs/sync/model-sync.d.ts.map +1 -0
  139. package/cjs/sync/model-sync.js +178 -0
  140. package/cjs/sync/model-sync.js.map +1 -0
  141. package/cjs/sync/sync-context.d.ts +70 -0
  142. package/cjs/sync/sync-context.d.ts.map +1 -0
  143. package/cjs/sync/sync-context.js +101 -0
  144. package/cjs/sync/sync-context.js.map +1 -0
  145. package/cjs/sync/sync-manager.d.ts +213 -0
  146. package/cjs/sync/sync-manager.d.ts.map +1 -0
  147. package/cjs/sync/sync-manager.js +689 -0
  148. package/cjs/sync/sync-manager.js.map +1 -0
  149. package/cjs/sync/types.d.ts +289 -0
  150. package/cjs/sync/types.d.ts.map +1 -0
  151. package/cjs/types.d.ts +45 -0
  152. package/cjs/types.d.ts.map +1 -0
  153. package/cjs/utils/connect-to-database.d.ts +246 -0
  154. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  155. package/cjs/utils/connect-to-database.js +92 -0
  156. package/cjs/utils/connect-to-database.js.map +1 -0
  157. package/cjs/utils/database-writer.utils.d.ts +15 -0
  158. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  159. package/cjs/utils/database-writer.utils.js +14 -0
  160. package/cjs/utils/database-writer.utils.js.map +1 -0
  161. package/cjs/utils/define-model.js +100 -0
  162. package/cjs/utils/define-model.js.map +1 -0
  163. package/cjs/utils/once-connected.d.ts +146 -0
  164. package/cjs/utils/once-connected.d.ts.map +1 -0
  165. package/cjs/utils/once-connected.js +252 -0
  166. package/cjs/utils/once-connected.js.map +1 -0
  167. package/cjs/validation/database-seal-plugins.d.ts +2 -0
  168. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  169. package/cjs/validation/database-seal-plugins.js +4 -0
  170. package/cjs/validation/database-seal-plugins.js.map +1 -0
  171. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  172. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  173. package/cjs/validation/database-writer-validation-error.js +160 -0
  174. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  175. package/cjs/validation/index.d.ts +3 -0
  176. package/cjs/validation/index.d.ts.map +1 -0
  177. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  178. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  179. package/cjs/validation/mutators/embed-mutator.js +33 -0
  180. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  181. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  182. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  183. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  184. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  185. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  186. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  187. package/cjs/validation/rules/database-model-rule.js +27 -0
  188. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  189. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  190. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  191. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  192. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  193. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  194. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  195. package/cjs/validation/validators/embed-validator.js +42 -0
  196. package/cjs/validation/validators/embed-validator.js.map +1 -0
  197. package/cjs/writer/database-writer.d.ts +181 -0
  198. package/cjs/writer/database-writer.d.ts.map +1 -0
  199. package/cjs/writer/database-writer.js +402 -0
  200. package/cjs/writer/database-writer.js.map +1 -0
  201. package/esm/context/database-data-source-context.d.ts +29 -0
  202. package/esm/context/database-data-source-context.d.ts.map +1 -0
  203. package/esm/context/database-data-source-context.js +28 -0
  204. package/esm/context/database-data-source-context.js.map +1 -0
  205. package/esm/context/database-transaction-context.d.ts +31 -0
  206. package/esm/context/database-transaction-context.d.ts.map +1 -0
  207. package/esm/context/database-transaction-context.js +34 -0
  208. package/esm/context/database-transaction-context.js.map +1 -0
  209. package/esm/contracts/database-driver.contract.d.ts +143 -0
  210. package/esm/contracts/database-driver.contract.d.ts.map +1 -0
  211. package/esm/contracts/database-id-generator.contract.d.ts +109 -0
  212. package/esm/contracts/database-id-generator.contract.d.ts.map +1 -0
  213. package/esm/contracts/database-remover.contract.d.ts +104 -0
  214. package/esm/contracts/database-remover.contract.d.ts.map +1 -0
  215. package/esm/contracts/database-restorer.contract.d.ts +143 -0
  216. package/esm/contracts/database-restorer.contract.d.ts.map +1 -0
  217. package/esm/contracts/database-writer.contract.d.ts +119 -0
  218. package/esm/contracts/database-writer.contract.d.ts.map +1 -0
  219. package/esm/contracts/driver-blueprint.contract.d.ts +45 -0
  220. package/esm/contracts/driver-blueprint.contract.d.ts.map +1 -0
  221. package/esm/contracts/index.d.ts +10 -0
  222. package/esm/contracts/index.d.ts.map +1 -0
  223. package/esm/contracts/migration-driver.contract.d.ts +365 -0
  224. package/esm/contracts/migration-driver.contract.d.ts.map +1 -0
  225. package/esm/contracts/query-builder.contract.d.ts +1128 -0
  226. package/esm/contracts/query-builder.contract.d.ts.map +1 -0
  227. package/esm/contracts/sync-adapter.contract.d.ts +58 -0
  228. package/esm/contracts/sync-adapter.contract.d.ts.map +1 -0
  229. package/esm/data-source/data-source-registry.d.ts +104 -0
  230. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  231. package/esm/data-source/data-source-registry.js +138 -0
  232. package/esm/data-source/data-source-registry.js.map +1 -0
  233. package/esm/data-source/data-source.d.ts +106 -0
  234. package/esm/data-source/data-source.d.ts.map +1 -0
  235. package/esm/data-source/data-source.js +77 -0
  236. package/esm/data-source/data-source.js.map +1 -0
  237. package/esm/database-dirty-tracker.d.ts +253 -0
  238. package/esm/database-dirty-tracker.d.ts.map +1 -0
  239. package/esm/database-dirty-tracker.js +389 -0
  240. package/esm/database-dirty-tracker.js.map +1 -0
  241. package/esm/drivers/mongo/mongo-id-generator.d.ts +116 -0
  242. package/esm/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  243. package/esm/drivers/mongo/mongo-id-generator.js +149 -0
  244. package/esm/drivers/mongo/mongo-id-generator.js.map +1 -0
  245. package/esm/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  246. package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  247. package/esm/drivers/mongo/mongo-migration-driver.js +524 -0
  248. package/esm/drivers/mongo/mongo-migration-driver.js.map +1 -0
  249. package/esm/drivers/mongo/mongo-query-builder.d.ts +922 -0
  250. package/esm/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  251. package/esm/drivers/mongo/mongo-query-builder.js +1740 -0
  252. package/esm/drivers/mongo/mongo-query-builder.js.map +1 -0
  253. package/esm/drivers/mongo/mongo-query-operations.d.ts +226 -0
  254. package/esm/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  255. package/esm/drivers/mongo/mongo-query-operations.js +270 -0
  256. package/esm/drivers/mongo/mongo-query-operations.js.map +1 -0
  257. package/esm/drivers/mongo/mongo-query-parser.d.ts +262 -0
  258. package/esm/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  259. package/esm/drivers/mongo/mongo-query-parser.js +1351 -0
  260. package/esm/drivers/mongo/mongo-query-parser.js.map +1 -0
  261. package/esm/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  262. package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  263. package/esm/drivers/mongo/mongo-sync-adapter.js +146 -0
  264. package/esm/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  265. package/esm/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  266. package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  267. package/esm/drivers/mongo/mongodb-blueprint.js +51 -0
  268. package/esm/drivers/mongo/mongodb-blueprint.js.map +1 -0
  269. package/esm/drivers/mongo/mongodb-driver.d.ts +188 -0
  270. package/esm/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  271. package/esm/drivers/mongo/mongodb-driver.js +411 -0
  272. package/esm/drivers/mongo/mongodb-driver.js.map +1 -0
  273. package/esm/drivers/mongo/types.d.ts +43 -0
  274. package/esm/drivers/mongo/types.d.ts.map +1 -0
  275. package/esm/errors/missing-data-source.error.d.ts +22 -0
  276. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  277. package/esm/errors/missing-data-source.error.js +29 -0
  278. package/esm/errors/missing-data-source.error.js.map +1 -0
  279. package/esm/events/model-events.d.ts +231 -0
  280. package/esm/events/model-events.d.ts.map +1 -0
  281. package/esm/events/model-events.js +259 -0
  282. package/esm/events/model-events.js.map +1 -0
  283. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  284. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  285. package/esm/expressions/aggregate-expressions.js +221 -0
  286. package/esm/expressions/aggregate-expressions.js.map +1 -0
  287. package/esm/expressions/index.d.ts +2 -0
  288. package/esm/expressions/index.d.ts.map +1 -0
  289. package/esm/index.d.ts +41 -0
  290. package/esm/index.d.ts.map +1 -0
  291. package/esm/index.js +1 -40
  292. package/esm/index.js.map +1 -1
  293. package/esm/migration/column-builder.d.ts +167 -0
  294. package/esm/migration/column-builder.d.ts.map +1 -0
  295. package/esm/migration/column-builder.js +217 -0
  296. package/esm/migration/column-builder.js.map +1 -0
  297. package/esm/migration/foreign-key-builder.d.ts +110 -0
  298. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  299. package/esm/migration/foreign-key-builder.js +129 -0
  300. package/esm/migration/foreign-key-builder.js.map +1 -0
  301. package/esm/migration/index.d.ts +6 -0
  302. package/esm/migration/index.d.ts.map +1 -0
  303. package/esm/migration/migration-runner.d.ts +231 -0
  304. package/esm/migration/migration-runner.d.ts.map +1 -0
  305. package/esm/migration/migration-runner.js +443 -0
  306. package/esm/migration/migration-runner.js.map +1 -0
  307. package/esm/migration/migration.js +1346 -0
  308. package/esm/migration/migration.js.map +1 -0
  309. package/esm/migration/types.d.ts +132 -0
  310. package/esm/migration/types.d.ts.map +1 -0
  311. package/esm/model/model.d.ts +1267 -0
  312. package/esm/model/model.d.ts.map +1 -0
  313. package/esm/model/model.js +1463 -0
  314. package/esm/model/model.js.map +1 -0
  315. package/esm/model/register-model.d.ts +80 -0
  316. package/esm/model/register-model.d.ts.map +1 -0
  317. package/esm/model/register-model.js +91 -0
  318. package/esm/model/register-model.js.map +1 -0
  319. package/esm/remover/database-remover.d.ts +100 -0
  320. package/esm/remover/database-remover.d.ts.map +1 -0
  321. package/esm/remover/database-remover.js +209 -0
  322. package/esm/remover/database-remover.js.map +1 -0
  323. package/esm/restorer/database-restorer.d.ts +131 -0
  324. package/esm/restorer/database-restorer.d.ts.map +1 -0
  325. package/esm/restorer/database-restorer.js +425 -0
  326. package/esm/restorer/database-restorer.js.map +1 -0
  327. package/esm/sync/index.d.ts +12 -0
  328. package/esm/sync/index.d.ts.map +1 -0
  329. package/esm/sync/model-events.d.ts +62 -0
  330. package/esm/sync/model-events.d.ts.map +1 -0
  331. package/esm/sync/model-events.js +49 -0
  332. package/esm/sync/model-events.js.map +1 -0
  333. package/esm/sync/model-sync-operation.d.ts +163 -0
  334. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  335. package/esm/sync/model-sync-operation.js +292 -0
  336. package/esm/sync/model-sync-operation.js.map +1 -0
  337. package/esm/sync/model-sync.d.ts +130 -0
  338. package/esm/sync/model-sync.d.ts.map +1 -0
  339. package/esm/sync/model-sync.js +178 -0
  340. package/esm/sync/model-sync.js.map +1 -0
  341. package/esm/sync/sync-context.d.ts +70 -0
  342. package/esm/sync/sync-context.d.ts.map +1 -0
  343. package/esm/sync/sync-context.js +101 -0
  344. package/esm/sync/sync-context.js.map +1 -0
  345. package/esm/sync/sync-manager.d.ts +213 -0
  346. package/esm/sync/sync-manager.d.ts.map +1 -0
  347. package/esm/sync/sync-manager.js +689 -0
  348. package/esm/sync/sync-manager.js.map +1 -0
  349. package/esm/sync/types.d.ts +289 -0
  350. package/esm/sync/types.d.ts.map +1 -0
  351. package/esm/types.d.ts +45 -0
  352. package/esm/types.d.ts.map +1 -0
  353. package/esm/utils/connect-to-database.d.ts +246 -0
  354. package/esm/utils/connect-to-database.d.ts.map +1 -0
  355. package/esm/utils/connect-to-database.js +92 -0
  356. package/esm/utils/connect-to-database.js.map +1 -0
  357. package/esm/utils/database-writer.utils.d.ts +15 -0
  358. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  359. package/esm/utils/database-writer.utils.js +14 -0
  360. package/esm/utils/database-writer.utils.js.map +1 -0
  361. package/esm/utils/define-model.js +100 -0
  362. package/esm/utils/define-model.js.map +1 -0
  363. package/esm/utils/once-connected.d.ts +146 -0
  364. package/esm/utils/once-connected.d.ts.map +1 -0
  365. package/esm/utils/once-connected.js +252 -0
  366. package/esm/utils/once-connected.js.map +1 -0
  367. package/esm/validation/database-seal-plugins.d.ts +2 -0
  368. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  369. package/esm/validation/database-seal-plugins.js +4 -0
  370. package/esm/validation/database-seal-plugins.js.map +1 -0
  371. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  372. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  373. package/esm/validation/database-writer-validation-error.js +160 -0
  374. package/esm/validation/database-writer-validation-error.js.map +1 -0
  375. package/esm/validation/index.d.ts +3 -0
  376. package/esm/validation/index.d.ts.map +1 -0
  377. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  378. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  379. package/esm/validation/mutators/embed-mutator.js +33 -0
  380. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  381. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  382. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  383. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  384. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  385. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  386. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  387. package/esm/validation/rules/database-model-rule.js +27 -0
  388. package/esm/validation/rules/database-model-rule.js.map +1 -0
  389. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  390. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  391. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  392. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  393. package/esm/validation/validators/embed-validator.d.ts +21 -0
  394. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  395. package/esm/validation/validators/embed-validator.js +42 -0
  396. package/esm/validation/validators/embed-validator.js.map +1 -0
  397. package/esm/writer/database-writer.d.ts +181 -0
  398. package/esm/writer/database-writer.d.ts.map +1 -0
  399. package/esm/writer/database-writer.js +402 -0
  400. package/esm/writer/database-writer.js.map +1 -0
  401. package/package.json +61 -52
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-manager.js","sources":["../../src/sync/sync-manager.ts"],"sourcesContent":[null],"names":["DEFAULT_MAX_SYNC_DEPTH","SyncContextManager","Model"],"mappings":"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"}
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Core types for the sync system.
3
+ *
4
+ * @module cascade-next/sync/types
5
+ */
6
+ import type { ChildModel, Model } from "../model/model";
7
+ /**
8
+ * Context information for a sync operation.
9
+ * Tracks the source, target, chain, and results of a sync operation.
10
+ */
11
+ export type SyncContext = {
12
+ /** Source model name (e.g., "Category") */
13
+ sourceModel: string;
14
+ /** Source model primary key value */
15
+ sourceId: string | number;
16
+ /** Current depth in the sync chain (1, 2, 3...) */
17
+ currentDepth: number;
18
+ /** Chain of model names in the sync path (e.g., ["Category", "Product"]) */
19
+ syncChain: string[];
20
+ /** Target model name being synced to */
21
+ targetModel: string;
22
+ /** Filter to identify documents to update in target */
23
+ filter: Record<string, unknown>;
24
+ /** Update operations to apply to matched documents */
25
+ update: Record<string, unknown>;
26
+ /** Number of documents affected by this sync operation */
27
+ affectedCount: number;
28
+ /** Timestamp when the sync operation was executed */
29
+ timestamp: Date;
30
+ };
31
+ /**
32
+ * Result of a sync operation.
33
+ * Contains success status, counts, and error details.
34
+ */
35
+ export type SyncResult = {
36
+ /** Whether the overall sync operation succeeded */
37
+ success: boolean;
38
+ /** Total number of sync instructions attempted */
39
+ attempted: number;
40
+ /** Number of sync instructions that succeeded */
41
+ succeeded: number;
42
+ /** Number of sync instructions that failed */
43
+ failed: number;
44
+ /** Detailed error information for failed operations */
45
+ errors: Array<{
46
+ instruction: SyncInstruction;
47
+ error: Error;
48
+ }>;
49
+ /** Maximum depth reached in the sync chain */
50
+ depthReached: number;
51
+ /** All sync contexts created during the operation */
52
+ contexts: SyncContext[];
53
+ };
54
+ /**
55
+ * A single sync instruction to be executed.
56
+ * Contains all information needed to perform a sync update.
57
+ */
58
+ export type SyncInstruction = {
59
+ /** Target table/collection name */
60
+ targetTable: string;
61
+ /** Target model name */
62
+ targetModel: string;
63
+ /** Filter to identify documents to update */
64
+ filter: Record<string, unknown>;
65
+ /** Update operations to apply */
66
+ update: Record<string, unknown>;
67
+ /** Current depth in the sync chain */
68
+ depth: number;
69
+ /** Chain of model names leading to this instruction */
70
+ chain: string[];
71
+ /** Source model name */
72
+ sourceModel: string;
73
+ /** Source model ID */
74
+ sourceId: string | number;
75
+ /** Whether this is an array update (requires positional operator) */
76
+ isArrayUpdate?: boolean;
77
+ /** Array field path for positional updates */
78
+ arrayField?: string;
79
+ /** Identifier field for array matching */
80
+ identifierField?: string;
81
+ /** Identifier value for array matching */
82
+ identifierValue?: string | number;
83
+ };
84
+ /**
85
+ * Configuration for a single sync relationship.
86
+ */
87
+ export type SyncConfig = {
88
+ /** Target field path in the target model (e.g., "category" or "products") */
89
+ targetField: string;
90
+ /** Whether this is a many relationship (array of embedded documents) */
91
+ isMany: boolean;
92
+ /** Method name to call on source model to get embedded data */
93
+ embedKey: string;
94
+ /** Field name to use as identifier in array matching (for isMany) */
95
+ identifierField: string;
96
+ /** Maximum sync depth allowed from this relationship */
97
+ maxSyncDepth: number;
98
+ /** Whether to prevent circular sync chains */
99
+ preventCircularSync: boolean;
100
+ /** Fields to watch for changes (empty = all fields) */
101
+ watchFields: string[];
102
+ /** Whether to unset the field when source is deleted */
103
+ unsetOnDelete: boolean;
104
+ /** Target model class (for chaining) */
105
+ targetModelClass: ChildModel<Model>;
106
+ };
107
+ /**
108
+ * Options for building sync instructions.
109
+ */
110
+ export type SyncInstructionOptions = {
111
+ /** Current depth in the sync chain */
112
+ currentDepth: number;
113
+ /** Chain of model names leading to this point */
114
+ syncChain: string[];
115
+ /** Maximum allowed depth for this sync operation */
116
+ maxDepth: number;
117
+ /** Whether to prevent circular references */
118
+ preventCircular: boolean;
119
+ };
120
+ /**
121
+ * Payload for collecting sync instructions.
122
+ */
123
+ export type CollectInstructionsPayload = {
124
+ /** Source model ID */
125
+ sourceId: string | number;
126
+ /** Updated data to sync (can be Model instance or plain data) */
127
+ updatedData: Record<string, unknown> | Model;
128
+ /** Fields that changed */
129
+ changedFields: string[];
130
+ /** Sync configurations */
131
+ syncConfigs: SyncConfig[];
132
+ /** Instruction options (depth, chain, etc.) */
133
+ options: SyncInstructionOptions;
134
+ };
135
+ /**
136
+ * Standard embed proeprties names.
137
+ */
138
+ export type EmbedKey = "embedData" | "embedParent" | "embedMinimal";
139
+ /**
140
+ * Event payload for sync events.
141
+ */
142
+ export type SyncEventPayload = {
143
+ /** Source model name */
144
+ sourceModel: string;
145
+ /** Source model ID */
146
+ sourceId: string | number;
147
+ /** Target model name */
148
+ targetModel: string;
149
+ /** Filter used to identify target documents */
150
+ filter: Record<string, unknown>;
151
+ /** Update operations applied */
152
+ update: Record<string, unknown>;
153
+ /** Number of documents affected */
154
+ affectedCount: number;
155
+ /** Current depth in sync chain */
156
+ depth: number;
157
+ /** Sync chain path */
158
+ chain: string[];
159
+ };
160
+ /**
161
+ * Configuration for a model sync operation.
162
+ *
163
+ * Holds all settings for how a source model syncs to a target model.
164
+ */
165
+ export type ModelSyncConfig = {
166
+ /** Source model class that triggers sync on changes */
167
+ readonly sourceModel: ChildModel<Model>;
168
+ /** Target model class that receives synced data */
169
+ readonly targetModel: ChildModel<Model>;
170
+ /** Field path in target model where data is embedded */
171
+ readonly targetField: string;
172
+ /** Whether this syncs to an array field (true) or single field (false) */
173
+ readonly isMany: boolean;
174
+ /** Method name on source model to get embedded data */
175
+ embedKey: string | string[];
176
+ /** Field name used as identifier when syncing to arrays */
177
+ identifierField: string;
178
+ /** Maximum depth for chained sync operations */
179
+ maxSyncDepth: number;
180
+ /** Fields to watch - sync only triggers when these change (empty = all) */
181
+ watchFields: string[];
182
+ /** Whether to unset the target field when source is deleted */
183
+ unsetOnDelete: boolean;
184
+ /** Whether to delete target documents when source is deleted */
185
+ removeOnDelete: boolean;
186
+ };
187
+ /**
188
+ * Contract for a model sync operation instance.
189
+ *
190
+ * Provides fluent configuration methods and lifecycle management.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * Category.sync(Product, "category")
195
+ * .embed("embedMinimal")
196
+ * .watchFields(["name", "slug"])
197
+ * .unsetOnDelete();
198
+ * ```
199
+ */
200
+ export interface ModelSyncOperationContract {
201
+ /**
202
+ * Set the embed method to call on source model.
203
+ *
204
+ * @param method - Method name (e.g., "embedData", "embedMinimal") or an array of strings
205
+ * @returns This operation for chaining
206
+ */
207
+ embed(method: string | string[]): this;
208
+ /**
209
+ * Set the identifier field for array matching.
210
+ * Required when syncing to array fields (syncMany).
211
+ *
212
+ * @param field - Field name used as identifier (default: "id")
213
+ * @returns This operation for chaining
214
+ */
215
+ identifyBy(field: string): this;
216
+ /**
217
+ * Set the maximum sync depth for chained operations.
218
+ *
219
+ * @param depth - Maximum depth (default: 3)
220
+ * @returns This operation for chaining
221
+ */
222
+ maxDepth(depth: number): this;
223
+ /**
224
+ * Set which fields to watch for changes.
225
+ * Sync only triggers when these fields change.
226
+ *
227
+ * @param fields - Array of field names to watch (empty = all)
228
+ * @returns This operation for chaining
229
+ */
230
+ watchFields(fields: string[]): this;
231
+ /**
232
+ * Unset the target field when source is deleted.
233
+ *
234
+ * @returns This operation for chaining
235
+ */
236
+ unsetOnDelete(): this;
237
+ /**
238
+ * Delete target documents when source is deleted.
239
+ *
240
+ * @returns This operation for chaining
241
+ */
242
+ removeOnDelete(): this;
243
+ /**
244
+ * Unsubscribe from all events and cleanup.
245
+ * Called automatically when using modelSync.register().
246
+ */
247
+ unsubscribe(): void;
248
+ }
249
+ /**
250
+ * Contract for the modelSync facade.
251
+ *
252
+ * Provides methods to create and manage sync operations.
253
+ *
254
+ * @example
255
+ * ```typescript
256
+ * export const cleanup = modelSync.register(() => {
257
+ * Category.sync(Product, "category");
258
+ * Tag.syncMany(Post, "tags").identifyBy("id");
259
+ * });
260
+ * ```
261
+ */
262
+ export interface ModelSyncContract {
263
+ /**
264
+ * Create a sync operation for a single embedded document.
265
+ *
266
+ * @param source - Source model class that triggers sync
267
+ * @param target - Target model class that receives data
268
+ * @param field - Field path in target model
269
+ * @returns Sync operation for chaining configuration
270
+ */
271
+ sync(source: ChildModel<Model>, target: ChildModel<Model>, field: string): ModelSyncOperationContract;
272
+ /**
273
+ * Create a sync operation for an array of embedded documents.
274
+ *
275
+ * @param source - Source model class that triggers sync
276
+ * @param target - Target model class that receives data
277
+ * @param field - Array field path in target model
278
+ * @returns Sync operation for chaining configuration
279
+ */
280
+ syncMany(source: ChildModel<Model>, target: ChildModel<Model>, field: string): ModelSyncOperationContract;
281
+ /**
282
+ * Register sync operations with automatic cleanup.
283
+ *
284
+ * @param callback - Function that registers sync operations
285
+ * @returns Cleanup function that unsubscribes all registered operations
286
+ */
287
+ register(callback: () => void): () => void;
288
+ }
289
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
package/cjs/types.d.ts ADDED
@@ -0,0 +1,45 @@
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
+ //# 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"}
@@ -0,0 +1,246 @@
1
+ import { DataSource } from "../data-source/data-source";
2
+ import type { DeleteStrategy, StrictMode } from "../types";
3
+ /**
4
+ * Supported database driver types.
5
+ */
6
+ export type DatabaseDriver = "mongodb" | "postgres" | "mysql";
7
+ /**
8
+ * Default model configuration options.
9
+ *
10
+ * These settings will be applied to all models using this data source,
11
+ * unless overridden by individual model static properties.
12
+ *
13
+ * Note: `autoGenerateId` is NOT included here as it's a driver-level
14
+ * setting (configured in MongoDriverOptions), not a model-level one.
15
+ */
16
+ export type ModelDefaultConfig = {
17
+ /**
18
+ * Initial ID value for auto-generated IDs.
19
+ * Can be a number or a function that returns a number.
20
+ * @default 1
21
+ */
22
+ initialId?: number | (() => number);
23
+ /**
24
+ * Randomly generate the initial ID.
25
+ * - `true`: Random ID between 10000-499999
26
+ * - Function: Custom random ID generator
27
+ * @default false
28
+ */
29
+ randomInitialId?: boolean | (() => number);
30
+ /**
31
+ * Amount to increment ID by for each new record.
32
+ * @default 1
33
+ */
34
+ incrementIdBy?: number;
35
+ /**
36
+ * Randomly generate the increment amount.
37
+ * - `true`: Random increment between 1-10
38
+ * - Function: Custom random increment generator
39
+ * @default false
40
+ */
41
+ randomIncrement?: boolean | (() => number);
42
+ /**
43
+ * Default delete strategy for models.
44
+ * @default undefined (uses data source default or "permanent")
45
+ */
46
+ deleteStrategy?: DeleteStrategy;
47
+ /**
48
+ * Default validation strict mode.
49
+ * - `"allow"`: Allow unknown fields
50
+ * - `"strip"`: Strip unknown fields
51
+ * - `"fail"`: Fail on unknown fields
52
+ * @default "strip"
53
+ */
54
+ strictMode?: StrictMode;
55
+ };
56
+ /**
57
+ * Connection options for establishing a database connection.
58
+ *
59
+ * Generic type that separates concerns:
60
+ * - Shared config (driver, name, database, connection details)
61
+ * - Driver options (cascade-next driver-specific settings)
62
+ * - Client options (native database client settings)
63
+ * - Model options (default model behaviors)
64
+ *
65
+ * @template TDriverOptions - Driver-specific options (e.g., MongoDriverOptions)
66
+ * @template TClientOptions - Native client options (e.g., MongoClientOptions from mongodb package)
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // MongoDB
71
+ * import type { MongoClientOptions } from "mongodb";
72
+ * import type { MongoDriverOptions } from "@warlock.js/cascade";
73
+ *
74
+ * const config: ConnectionOptions<MongoDriverOptions, MongoClientOptions> = {
75
+ * driver: "mongodb",
76
+ * database: "myapp",
77
+ * host: "localhost",
78
+ * port: 27017,
79
+ * driverOptions: {
80
+ * autoGenerateId: true,
81
+ * counterCollection: "counters",
82
+ * },
83
+ * clientOptions: {
84
+ * minPoolSize: 5,
85
+ * maxPoolSize: 10,
86
+ * },
87
+ * modelOptions: {
88
+ * randomIncrement: true,
89
+ * initialId: 1000,
90
+ * },
91
+ * };
92
+ * ```
93
+ */
94
+ export type ConnectionOptions<TDriverOptions = any, TClientOptions = any> = {
95
+ /**
96
+ * Database driver to use.
97
+ * @default "mongodb"
98
+ */
99
+ driver?: DatabaseDriver;
100
+ /**
101
+ * Unique name for this data source.
102
+ * Used for registration in DataSourceRegistry.
103
+ * @default "default"
104
+ */
105
+ name?: string;
106
+ /**
107
+ * Whether this should be the default data source.
108
+ * @default true
109
+ */
110
+ isDefault?: boolean;
111
+ /**
112
+ * Database name (required).
113
+ */
114
+ database: string;
115
+ /**
116
+ * Database connection URI.
117
+ * Alternative to specifying host/port separately.
118
+ *
119
+ * @example "mongodb://localhost:27017/mydb"
120
+ * @example "postgresql://user:pass@localhost:5432/mydb"
121
+ */
122
+ uri?: string;
123
+ /**
124
+ * Database host.
125
+ * @default "localhost"
126
+ */
127
+ host?: string;
128
+ /**
129
+ * Database port.
130
+ * @default 27017 (MongoDB), 5432 (PostgreSQL)
131
+ */
132
+ port?: number;
133
+ /**
134
+ * Database username for authentication.
135
+ */
136
+ username?: string;
137
+ /**
138
+ * Database password for authentication.
139
+ */
140
+ password?: string;
141
+ /**
142
+ * Authentication source database.
143
+ * Typically "admin" for MongoDB.
144
+ */
145
+ authSource?: string;
146
+ /**
147
+ * Driver-specific options.
148
+ *
149
+ * For MongoDB: { autoGenerateId, counterCollection, transactionOptions }
150
+ * For PostgreSQL: { schema, ... }
151
+ */
152
+ driverOptions?: TDriverOptions;
153
+ /**
154
+ * Native database client options.
155
+ *
156
+ * For MongoDB: MongoClientOptions from 'mongodb' package
157
+ * For PostgreSQL: PoolConfig from 'pg' package
158
+ */
159
+ clientOptions?: TClientOptions;
160
+ /**
161
+ * Default model configuration for all models using this data source.
162
+ *
163
+ * These settings will be applied to models that don't have their own
164
+ * static property overrides.
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * {
169
+ * modelOptions: {
170
+ * randomIncrement: true,
171
+ * initialId: 1000,
172
+ * deleteStrategy: "soft",
173
+ * }
174
+ * }
175
+ * ```
176
+ */
177
+ modelOptions?: ModelDefaultConfig;
178
+ /**
179
+ * Default delete strategy for models using this data source.
180
+ *
181
+ * - MongoDB: Typically `"trash"` (uses RecycleBin collection)
182
+ * - PostgreSQL: Typically `"permanent"` or `"soft"`
183
+ *
184
+ * Can be overridden by model static property or destroy() options.
185
+ *
186
+ * @default undefined (falls back to "permanent")
187
+ */
188
+ defaultDeleteStrategy?: DeleteStrategy;
189
+ /**
190
+ * Default trash table/collection name for "trash" delete strategy.
191
+ *
192
+ * - MongoDB: Typically `"RecycleBin"`
193
+ * - If not set, defaults to `{table}Trash` pattern
194
+ *
195
+ * Can be overridden by Model.trashTable static property.
196
+ *
197
+ * @default undefined (uses {table}Trash pattern)
198
+ */
199
+ defaultTrashTable?: string;
200
+ };
201
+ /**
202
+ * Connect to a database and register the data source.
203
+ *
204
+ * This is a high-level utility function that simplifies database connection
205
+ * for small to medium projects. It handles driver instantiation, connection,
206
+ * data source creation, and automatic registration.
207
+ *
208
+ * **Supported Drivers:**
209
+ * - `mongodb` (default) - MongoDB driver with optional auto ID generation
210
+ * - `postgres` - PostgreSQL driver (not yet implemented)
211
+ * - `mysql` - MySQL driver (not yet implemented)
212
+ *
213
+ * **Features:**
214
+ * - Automatic driver instantiation based on driver name
215
+ * - Connection establishment and error handling
216
+ * - DataSource creation and registration
217
+ * - Support for MongoDB-specific features (ID generation, transactions)
218
+ *
219
+ * @param options - Connection configuration options
220
+ * @returns A connected and registered DataSource instance
221
+ * @throws {Error} If connection fails or driver is not implemented
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * // MongoDB with new structure
226
+ * const dataSource = await connectToDatabase({
227
+ * driver: "mongodb",
228
+ * database: "myapp",
229
+ * host: "localhost",
230
+ * port: 27017,
231
+ * driverOptions: {
232
+ * autoGenerateId: true,
233
+ * },
234
+ * clientOptions: {
235
+ * minPoolSize: 5,
236
+ * maxPoolSize: 10,
237
+ * },
238
+ * modelOptions: {
239
+ * randomIncrement: true,
240
+ * initialId: 1000,
241
+ * },
242
+ * });
243
+ * ```
244
+ */
245
+ export declare function connectToDatabase<TDriverOptions = any, TClientOptions = any>(options: ConnectionOptions<TDriverOptions, TClientOptions>): Promise<DataSource>;
246
+ //# 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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAEpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAE3C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAE3C;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;IAMjB;;;;;;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;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAMlC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,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,CA8DrB"}