@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
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Model sync event name helpers.
3
+ *
4
+ * Provides type-safe event names for model sync operations.
5
+ * Avoids hardcoded string literals throughout the codebase.
6
+ *
7
+ * @module cascade-next/sync/model-events
8
+ */
9
+ import type { ChildModel, Model } from "../model/model";
10
+ /**
11
+ * Event name prefix for all model sync events.
12
+ */
13
+ export declare const MODEL_EVENT_PREFIX = "model";
14
+ /**
15
+ * Model sync event types.
16
+ */
17
+ export declare const ModelSyncEventType: {
18
+ readonly UPDATED: "updated";
19
+ readonly DELETED: "deleted";
20
+ };
21
+ export type ModelSyncEventTypeName = (typeof ModelSyncEventType)[keyof typeof ModelSyncEventType];
22
+ /**
23
+ * Get the event name for a model update.
24
+ *
25
+ * @param modelClass - The model class
26
+ * @returns Event name string (e.g., "model.Category.updated")
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const eventName = getModelUpdatedEvent(Category);
31
+ * // Returns: "model.Category.updated"
32
+ * ```
33
+ */
34
+ export declare function getModelUpdatedEvent(modelClass: ChildModel<Model>): string;
35
+ /**
36
+ * Get the event name for a model deletion.
37
+ *
38
+ * @param modelClass - The model class
39
+ * @returns Event name string (e.g., "model.Category.deleted")
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const eventName = getModelDeletedEvent(Category);
44
+ * // Returns: "model.Category.deleted"
45
+ * ```
46
+ */
47
+ export declare function getModelDeletedEvent(modelClass: ChildModel<Model>): string;
48
+ /**
49
+ * Get the event name for a model by name string.
50
+ *
51
+ * @param modelName - The model class name
52
+ * @param eventType - The event type
53
+ * @returns Event name string
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const eventName = getModelEvent("Category", "updated");
58
+ * // Returns: "model.Category.updated"
59
+ * ```
60
+ */
61
+ export declare function getModelEvent(modelName: string, eventType: ModelSyncEventTypeName): string;
62
+ //# sourceMappingURL=model-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-events.d.ts","sourceRoot":"","sources":["../../src/sync/model-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAElG;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAE1F"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Model sync event name helpers.
3
+ *
4
+ * Provides type-safe event names for model sync operations.
5
+ * Avoids hardcoded string literals throughout the codebase.
6
+ *
7
+ * @module cascade-next/sync/model-events
8
+ */
9
+ /**
10
+ * Event name prefix for all model sync events.
11
+ */
12
+ const MODEL_EVENT_PREFIX = "model";
13
+ /**
14
+ * Model sync event types.
15
+ */
16
+ const ModelSyncEventType = {
17
+ UPDATED: "updated",
18
+ DELETED: "deleted",
19
+ };
20
+ /**
21
+ * Get the event name for a model update.
22
+ *
23
+ * @param modelClass - The model class
24
+ * @returns Event name string (e.g., "model.Category.updated")
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const eventName = getModelUpdatedEvent(Category);
29
+ * // Returns: "model.Category.updated"
30
+ * ```
31
+ */
32
+ function getModelUpdatedEvent(modelClass) {
33
+ return `${MODEL_EVENT_PREFIX}.${modelClass.name}.${ModelSyncEventType.UPDATED}`;
34
+ }
35
+ /**
36
+ * Get the event name for a model deletion.
37
+ *
38
+ * @param modelClass - The model class
39
+ * @returns Event name string (e.g., "model.Category.deleted")
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const eventName = getModelDeletedEvent(Category);
44
+ * // Returns: "model.Category.deleted"
45
+ * ```
46
+ */
47
+ function getModelDeletedEvent(modelClass) {
48
+ return `${MODEL_EVENT_PREFIX}.${modelClass.name}.${ModelSyncEventType.DELETED}`;
49
+ }export{MODEL_EVENT_PREFIX,ModelSyncEventType,getModelDeletedEvent,getModelUpdatedEvent};//# sourceMappingURL=model-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-events.js","sources":["../../src/sync/model-events.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;AAOG;AAIH;;AAEG;AACI,MAAM,kBAAkB,GAAG,QAAQ;AAE1C;;AAEG;AACU,MAAA,kBAAkB,GAAG;AAChC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;EACT;AAIX;;;;;;;;;;;AAWG;AACG,SAAU,oBAAoB,CAAC,UAA6B,EAAA;IAChE,OAAO,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,UAAU,CAAC,IAAI,CAAA,CAAA,EAAI,kBAAkB,CAAC,OAAO,CAAA,CAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;AAWG;AACG,SAAU,oBAAoB,CAAC,UAA6B,EAAA;IAChE,OAAO,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,UAAU,CAAC,IAAI,CAAA,CAAA,EAAI,kBAAkB,CAAC,OAAO,CAAA,CAAE,CAAC;AAClF"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Model sync operation class.
3
+ *
4
+ * Manages a single sync relationship between a source and target model.
5
+ * Subscribes to source model events and triggers sync operations when
6
+ * the source is updated or deleted.
7
+ *
8
+ * @module cascade-next/sync/model-sync-operation
9
+ */
10
+ import type { ChildModel, Model } from "../model/model";
11
+ import type { ModelSyncConfig, ModelSyncOperationContract } from "./types";
12
+ /**
13
+ * Manages a single model sync operation.
14
+ *
15
+ * Subscribes to source model events (updated, deleted) and triggers
16
+ * sync operations to update embedded data in target models.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Created via modelSync.sync() or Model.sync()
21
+ * const operation = new ModelSyncOperation(Category, Product, "category", false);
22
+ * operation
23
+ * .embed("embedMinimal")
24
+ * .watchFields(["name", "slug"])
25
+ * .unsetOnDelete();
26
+ * ```
27
+ */
28
+ export declare class ModelSyncOperation implements ModelSyncOperationContract {
29
+ /**
30
+ * Configuration for this sync operation.
31
+ */
32
+ private readonly config;
33
+ /**
34
+ * Active event subscriptions for cleanup.
35
+ */
36
+ private readonly subscriptions;
37
+ /**
38
+ * Whether this operation is currently subscribed to events.
39
+ */
40
+ private isSubscribed;
41
+ /**
42
+ * Create a new model sync operation.
43
+ *
44
+ * @param sourceModel - Source model class that triggers sync
45
+ * @param targetModel - Target model class that receives data
46
+ * @param targetField - Field path in target model
47
+ * @param isMany - Whether this syncs to an array field
48
+ */
49
+ constructor(sourceModelClass: ChildModel<Model>, targetModelClass: ChildModel<Model>, targetField: string, isMany: boolean);
50
+ /**
51
+ * Set the embed method to call on source model.
52
+ *
53
+ * @param embed - getter property name (e.g., "embedData", "embedMinimal") Or Array of fields
54
+ * @returns This operation for chaining
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * Category.sync(Product, "category").embed("embedMinimal");
59
+ * ```
60
+ */
61
+ embed(method: string | string[]): this;
62
+ /**
63
+ * Set the identifier field for array matching.
64
+ * Required when syncing to array fields (syncMany).
65
+ *
66
+ * @param field - Field name used as identifier (default: "id")
67
+ * @returns This operation for chaining
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * Tag.syncMany(Post, "tags").identifyBy("tagId");
72
+ * ```
73
+ */
74
+ identifyBy(field: string): this;
75
+ /**
76
+ * Set the maximum sync depth for chained operations.
77
+ *
78
+ * @param depth - Maximum depth (default: 3)
79
+ * @returns This operation for chaining
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * Category.sync(Product, "category").maxDepth(2);
84
+ * ```
85
+ */
86
+ maxDepth(depth: number): this;
87
+ /**
88
+ * Set which fields to watch for changes.
89
+ * Sync only triggers when these fields change.
90
+ *
91
+ * @param fields - Array of field names to watch (empty = all)
92
+ * @returns This operation for chaining
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * Category.sync(Product, "category").watchFields(["name", "slug"]);
97
+ * ```
98
+ */
99
+ watchFields(fields: string[]): this;
100
+ /**
101
+ * Unset the target field when source is deleted.
102
+ *
103
+ * @returns This operation for chaining
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * Category.sync(Product, "category").unsetOnDelete();
108
+ * ```
109
+ */
110
+ unsetOnDelete(): this;
111
+ /**
112
+ * Delete target documents when source is deleted.
113
+ *
114
+ * @returns This operation for chaining
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * User.sync(Profile, "user").removeOnDelete();
119
+ * ```
120
+ */
121
+ removeOnDelete(): this;
122
+ /**
123
+ * Subscribe to source model events.
124
+ * Called automatically in constructor.
125
+ */
126
+ private subscribe;
127
+ /**
128
+ * Unsubscribe from all events and cleanup.
129
+ * Called automatically when using modelSync.register().
130
+ */
131
+ unsubscribe(): void;
132
+ /**
133
+ * Cleanup the sync operations
134
+ */
135
+ $cleanup(): void;
136
+ /**
137
+ * Handle model updated event.
138
+ * Triggers sync to update embedded data in target models.
139
+ */
140
+ private handleModelUpdated;
141
+ /**
142
+ * Handle model deleted event.
143
+ * Triggers unset or remove based on configuration.
144
+ */
145
+ private handleModelDeleted;
146
+ /**
147
+ * Check if sync should proceed based on watched fields.
148
+ */
149
+ private shouldSync;
150
+ /**
151
+ * Build sync config compatible with SyncManager.
152
+ */
153
+ private buildSyncConfig;
154
+ /**
155
+ * Remove target documents that reference the deleted source.
156
+ */
157
+ private removeTargetDocuments;
158
+ /**
159
+ * Get the current configuration (for debugging/testing).
160
+ */
161
+ getConfig(): Readonly<ModelSyncConfig>;
162
+ }
163
+ //# sourceMappingURL=model-sync-operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-sync-operation.d.ts","sourceRoot":"","sources":["../../src/sync/model-sync-operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAmB,YAAW,0BAA0B;IACnE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IAEzD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;;;OAOG;gBAED,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC,EACnC,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC,EACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO;IAsBjB;;;;;;;;;;OAUG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK7C;;;;;;;;;;;OAWG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtC;;;;;;;;;;OAUG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC;;;;;;;;;;;OAWG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAK1C;;;;;;;;;OASG;IACI,aAAa,IAAI,IAAI;IAK5B;;;;;;;;;OASG;IACI,cAAc,IAAI,IAAI;IAS7B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAoBjB;;;OAGG;IACI,WAAW,IAAI,IAAI;IAS1B;;OAEG;IACI,QAAQ;IAQf;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAgCxB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CA8BxB;IAMF;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;YACW,qBAAqB;IAQnC;;OAEG;IACI,SAAS,IAAI,QAAQ,CAAC,eAAe,CAAC;CAG9C"}
@@ -0,0 +1,292 @@
1
+ import events from'@mongez/events';import {getModelUpdatedEvent,getModelDeletedEvent}from'./model-events.js';import {DEFAULT_MAX_SYNC_DEPTH}from'./sync-context.js';import {SyncManager}from'./sync-manager.js';/**
2
+ * Model sync operation class.
3
+ *
4
+ * Manages a single sync relationship between a source and target model.
5
+ * Subscribes to source model events and triggers sync operations when
6
+ * the source is updated or deleted.
7
+ *
8
+ * @module cascade-next/sync/model-sync-operation
9
+ */
10
+ /**
11
+ * Manages a single model sync operation.
12
+ *
13
+ * Subscribes to source model events (updated, deleted) and triggers
14
+ * sync operations to update embedded data in target models.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Created via modelSync.sync() or Model.sync()
19
+ * const operation = new ModelSyncOperation(Category, Product, "category", false);
20
+ * operation
21
+ * .embed("embedMinimal")
22
+ * .watchFields(["name", "slug"])
23
+ * .unsetOnDelete();
24
+ * ```
25
+ */
26
+ class ModelSyncOperation {
27
+ /**
28
+ * Configuration for this sync operation.
29
+ */
30
+ config;
31
+ /**
32
+ * Active event subscriptions for cleanup.
33
+ */
34
+ subscriptions = [];
35
+ /**
36
+ * Whether this operation is currently subscribed to events.
37
+ */
38
+ isSubscribed = false;
39
+ /**
40
+ * Create a new model sync operation.
41
+ *
42
+ * @param sourceModel - Source model class that triggers sync
43
+ * @param targetModel - Target model class that receives data
44
+ * @param targetField - Field path in target model
45
+ * @param isMany - Whether this syncs to an array field
46
+ */
47
+ constructor(sourceModelClass, targetModelClass, targetField, isMany) {
48
+ this.config = {
49
+ sourceModel: sourceModelClass,
50
+ targetModel: targetModelClass,
51
+ targetField,
52
+ isMany,
53
+ embedKey: "embedData",
54
+ identifierField: "id",
55
+ maxSyncDepth: DEFAULT_MAX_SYNC_DEPTH,
56
+ watchFields: [],
57
+ unsetOnDelete: false,
58
+ removeOnDelete: false,
59
+ };
60
+ this.subscribe();
61
+ }
62
+ // ============================================================================
63
+ // FLUENT CONFIGURATION
64
+ // ============================================================================
65
+ /**
66
+ * Set the embed method to call on source model.
67
+ *
68
+ * @param embed - getter property name (e.g., "embedData", "embedMinimal") Or Array of fields
69
+ * @returns This operation for chaining
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * Category.sync(Product, "category").embed("embedMinimal");
74
+ * ```
75
+ */
76
+ embed(method) {
77
+ this.config.embedKey = method;
78
+ return this;
79
+ }
80
+ /**
81
+ * Set the identifier field for array matching.
82
+ * Required when syncing to array fields (syncMany).
83
+ *
84
+ * @param field - Field name used as identifier (default: "id")
85
+ * @returns This operation for chaining
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * Tag.syncMany(Post, "tags").identifyBy("tagId");
90
+ * ```
91
+ */
92
+ identifyBy(field) {
93
+ this.config.identifierField = field;
94
+ return this;
95
+ }
96
+ /**
97
+ * Set the maximum sync depth for chained operations.
98
+ *
99
+ * @param depth - Maximum depth (default: 3)
100
+ * @returns This operation for chaining
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * Category.sync(Product, "category").maxDepth(2);
105
+ * ```
106
+ */
107
+ maxDepth(depth) {
108
+ this.config.maxSyncDepth = depth;
109
+ return this;
110
+ }
111
+ /**
112
+ * Set which fields to watch for changes.
113
+ * Sync only triggers when these fields change.
114
+ *
115
+ * @param fields - Array of field names to watch (empty = all)
116
+ * @returns This operation for chaining
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * Category.sync(Product, "category").watchFields(["name", "slug"]);
121
+ * ```
122
+ */
123
+ watchFields(fields) {
124
+ this.config.watchFields = fields;
125
+ return this;
126
+ }
127
+ /**
128
+ * Unset the target field when source is deleted.
129
+ *
130
+ * @returns This operation for chaining
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * Category.sync(Product, "category").unsetOnDelete();
135
+ * ```
136
+ */
137
+ unsetOnDelete() {
138
+ this.config.unsetOnDelete = true;
139
+ return this;
140
+ }
141
+ /**
142
+ * Delete target documents when source is deleted.
143
+ *
144
+ * @returns This operation for chaining
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * User.sync(Profile, "user").removeOnDelete();
149
+ * ```
150
+ */
151
+ removeOnDelete() {
152
+ this.config.removeOnDelete = true;
153
+ return this;
154
+ }
155
+ // ============================================================================
156
+ // LIFECYCLE
157
+ // ============================================================================
158
+ /**
159
+ * Subscribe to source model events.
160
+ * Called automatically in constructor.
161
+ */
162
+ subscribe() {
163
+ if (this.isSubscribed) {
164
+ return;
165
+ }
166
+ const sourceModel = this.config.sourceModel;
167
+ // Subscribe to model.updated event
168
+ this.subscriptions.push(events.subscribe(getModelUpdatedEvent(sourceModel), this.handleModelUpdated));
169
+ // Subscribe to model.deleted event
170
+ this.subscriptions.push(events.subscribe(getModelDeletedEvent(sourceModel), this.handleModelDeleted));
171
+ this.isSubscribed = true;
172
+ }
173
+ /**
174
+ * Unsubscribe from all events and cleanup.
175
+ * Called automatically when using modelSync.register().
176
+ */
177
+ unsubscribe() {
178
+ for (const subscription of this.subscriptions) {
179
+ subscription.unsubscribe?.();
180
+ }
181
+ this.subscriptions.length = 0;
182
+ this.isSubscribed = false;
183
+ }
184
+ /**
185
+ * Cleanup the sync operations
186
+ */
187
+ $cleanup() {
188
+ return this.unsubscribe();
189
+ }
190
+ // ============================================================================
191
+ // EVENT HANDLERS
192
+ // ============================================================================
193
+ /**
194
+ * Handle model updated event.
195
+ * Triggers sync to update embedded data in target models.
196
+ */
197
+ handleModelUpdated = async (model, changedFields) => {
198
+ // Check if we should sync based on watched fields
199
+ if (!this.shouldSync(changedFields)) {
200
+ return;
201
+ }
202
+ try {
203
+ const primaryKey = this.config.sourceModel.primaryKey || "id";
204
+ const sourceId = model.get(primaryKey);
205
+ if (!sourceId) {
206
+ return;
207
+ }
208
+ // Get the driver from the source model's data source
209
+ const dataSource = this.config.sourceModel.getDataSource();
210
+ const driver = dataSource.driver;
211
+ // Create sync manager and execute
212
+ const syncManager = new SyncManager(this.config.sourceModel, driver);
213
+ await syncManager.syncUpdateWithConfig(sourceId, model, changedFields, this.buildSyncConfig());
214
+ }
215
+ catch (error) {
216
+ console.error(`[ModelSync] Failed to sync ${this.config.sourceModel.name} -> ${this.config.targetModel.name}:`, error);
217
+ }
218
+ };
219
+ /**
220
+ * Handle model deleted event.
221
+ * Triggers unset or remove based on configuration.
222
+ */
223
+ handleModelDeleted = async (model) => {
224
+ if (!this.config.unsetOnDelete && !this.config.removeOnDelete) {
225
+ return;
226
+ }
227
+ try {
228
+ const primaryKey = this.config.sourceModel.primaryKey || "id";
229
+ const sourceId = model.get(primaryKey);
230
+ if (!sourceId) {
231
+ return;
232
+ }
233
+ const dataSource = this.config.sourceModel.getDataSource();
234
+ const driver = dataSource.driver;
235
+ if (this.config.removeOnDelete) {
236
+ // Delete all target documents that reference this source
237
+ await this.removeTargetDocuments(sourceId, driver);
238
+ }
239
+ else if (this.config.unsetOnDelete) {
240
+ // Unset the field in target documents
241
+ const syncManager = new SyncManager(this.config.sourceModel, driver);
242
+ await syncManager.syncDeleteWithConfig(sourceId, this.buildSyncConfig());
243
+ }
244
+ }
245
+ catch (error) {
246
+ console.error(`[ModelSync] Failed to handle delete for ${this.config.sourceModel.name}:`, error);
247
+ }
248
+ };
249
+ // ============================================================================
250
+ // HELPERS
251
+ // ============================================================================
252
+ /**
253
+ * Check if sync should proceed based on watched fields.
254
+ */
255
+ shouldSync(changedFields) {
256
+ if (this.config.watchFields.length === 0) {
257
+ return true; // Watch all fields
258
+ }
259
+ return this.config.watchFields.some((field) => changedFields.includes(field));
260
+ }
261
+ /**
262
+ * Build sync config compatible with SyncManager.
263
+ */
264
+ buildSyncConfig() {
265
+ return {
266
+ targetField: this.config.targetField,
267
+ isMany: this.config.isMany,
268
+ embedKey: this.config.embedKey,
269
+ identifierField: this.config.identifierField,
270
+ maxSyncDepth: this.config.maxSyncDepth,
271
+ preventCircularSync: true,
272
+ watchFields: this.config.watchFields,
273
+ unsetOnDelete: this.config.unsetOnDelete,
274
+ targetModelClass: this.config.targetModel,
275
+ };
276
+ }
277
+ /**
278
+ * Remove target documents that reference the deleted source.
279
+ */
280
+ async removeTargetDocuments(sourceId, driver) {
281
+ const filter = this.config.isMany
282
+ ? { [`${this.config.targetField}.${this.config.identifierField}`]: sourceId }
283
+ : { [`${this.config.targetField}.${this.config.identifierField}`]: sourceId };
284
+ await driver.deleteMany(this.config.targetModel.table, filter);
285
+ }
286
+ /**
287
+ * Get the current configuration (for debugging/testing).
288
+ */
289
+ getConfig() {
290
+ return { ...this.config };
291
+ }
292
+ }export{ModelSyncOperation};//# sourceMappingURL=model-sync-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-sync-operation.js","sources":["../../src/sync/model-sync-operation.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}