@warlock.js/cascade 4.0.48 → 4.0.58

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,425 @@
1
+ /**
2
+ * Database restorer service that orchestrates model restoration.
3
+ *
4
+ * Handles the complete restoration pipeline:
5
+ * 1. Strategy detection (trash vs soft delete)
6
+ * 2. Record retrieval from trash table or soft-deleted records
7
+ * 3. ID conflict resolution
8
+ * 4. Event emission (restoring, restored)
9
+ * 5. Driver execution (insert back to original table, remove from trash/clear deletedAt)
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const restorer = new DatabaseRestorer(User);
14
+ * const result = await restorer.restore(123);
15
+ *
16
+ * console.log(result.success); // true
17
+ * console.log(result.strategy); // "trash" | "soft"
18
+ * ```
19
+ */
20
+ class DatabaseRestorer {
21
+ /** Model constructor reference */
22
+ ctor;
23
+ /** Data source containing driver */
24
+ dataSource;
25
+ /** Database driver for executing queries */
26
+ driver;
27
+ /** Table/collection name */
28
+ table;
29
+ /** Primary key field name */
30
+ primaryKey;
31
+ /**
32
+ * Create a new restorer instance for a model class.
33
+ *
34
+ * @param modelClass - The model class (static context)
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const restorer = new DatabaseRestorer(User);
39
+ * await restorer.restore(123);
40
+ * ```
41
+ */
42
+ constructor(modelClass) {
43
+ this.ctor = modelClass;
44
+ this.dataSource = modelClass.getDataSource();
45
+ this.driver = this.dataSource.driver;
46
+ this.table = modelClass.table;
47
+ this.primaryKey = modelClass.primaryKey;
48
+ }
49
+ /**
50
+ * Restore a single deleted record by its ID.
51
+ *
52
+ * @param id - The primary key value of the record to restore
53
+ * @param options - Restorer options
54
+ * @returns Result containing success status, strategy used, and restored record
55
+ * @throws {Error} If record not found in trash or soft-deleted records
56
+ * @throws {Error} If ID conflict and onIdConflict is "fail"
57
+ */
58
+ async restore(id, options = {}) {
59
+ const onIdConflict = options.onIdConflict ?? "assignNew";
60
+ const skipEvents = options.skipEvents ?? false;
61
+ // 1. Resolve strategy (options → model static → data source default)
62
+ const strategy = this.resolveStrategy(options.strategy);
63
+ // 2. Validate strategy (cannot restore permanent deletes)
64
+ if (strategy === "permanent") {
65
+ throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${id}: permanently deleted records cannot be restored.`);
66
+ }
67
+ // 3. Fetch record based on strategy
68
+ const recordData = await this.fetchRecordByStrategy(id, strategy);
69
+ if (!recordData) {
70
+ throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${id}: record not found in ${strategy === "trash" ? "trash table" : "soft-deleted records"}.`);
71
+ }
72
+ // 4. Prepare record data (remove metadata fields)
73
+ const restoredData = { ...recordData };
74
+ delete restoredData.deletedAt;
75
+ delete restoredData.originalTable;
76
+ // 5. Check for ID conflict and handle
77
+ const finalData = await this.handleIdConflict(restoredData, id, onIdConflict);
78
+ // 6. Create temporary model instance for event emission
79
+ // Note: Model is abstract, but at runtime this.ctor is a concrete subclass
80
+ const model = new this.ctor(finalData);
81
+ // 7. Emit restoring event (unless skipEvents)
82
+ if (!skipEvents) {
83
+ await model.emitEvent("restoring");
84
+ }
85
+ // 8. Restore based on strategy
86
+ if (strategy === "trash") {
87
+ // Insert record back into original table (was moved to trash)
88
+ await this.driver.insert(this.table, finalData);
89
+ model.isNew = false;
90
+ // Remove from trash table
91
+ await this.driver.delete(this.resolveTrashTable(), {
92
+ [this.primaryKey]: id,
93
+ });
94
+ }
95
+ else if (strategy === "soft") {
96
+ // Record still exists, just unset deletedAt (don't insert - would create duplicate!)
97
+ const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
98
+ const filter = { [this.primaryKey]: id };
99
+ const updateOperations = {
100
+ $unset: { [deletedAtColumn]: 1 },
101
+ };
102
+ await this.driver.update(this.table, filter, updateOperations);
103
+ model.isNew = false;
104
+ }
105
+ // 10. Emit restored event (unless skipEvents)
106
+ if (!skipEvents) {
107
+ await model.emitEvent("restored");
108
+ }
109
+ return {
110
+ success: true,
111
+ restoredCount: 1,
112
+ strategy,
113
+ restoredRecord: model,
114
+ };
115
+ }
116
+ /**
117
+ * Restore all deleted records for the model's table.
118
+ *
119
+ * @param options - Restorer options
120
+ * @returns Result containing success status, strategy used, and aggregate counts
121
+ */
122
+ async restoreAll(options = {}) {
123
+ const onIdConflict = options.onIdConflict ?? "assignNew";
124
+ const skipEvents = options.skipEvents ?? false;
125
+ // 1. Resolve strategy (options → model static → data source default)
126
+ const strategy = this.resolveStrategy(options.strategy);
127
+ // 2. Validate strategy (cannot restore permanent deletes)
128
+ if (strategy === "permanent") {
129
+ throw new Error(`Cannot restore all ${this.ctor.name} records: permanently deleted records cannot be restored.`);
130
+ }
131
+ // 3. Fetch all records based on strategy
132
+ const recordsToRestore = await this.fetchAllRecordsByStrategy(strategy);
133
+ if (recordsToRestore.length === 0) {
134
+ return {
135
+ success: true,
136
+ restoredCount: 0,
137
+ strategy,
138
+ };
139
+ }
140
+ // 4. Restore each record
141
+ let restoredCount = 0;
142
+ const conflicts = [];
143
+ const restoredRecords = [];
144
+ for (const recordData of recordsToRestore) {
145
+ const id = recordData[this.primaryKey];
146
+ try {
147
+ // Prepare record data (remove metadata fields)
148
+ const restoredData = { ...recordData };
149
+ delete restoredData.deletedAt;
150
+ delete restoredData.originalTable;
151
+ // Check for ID conflict
152
+ const idExists = await this.checkIdExists(id);
153
+ if (idExists) {
154
+ if (onIdConflict === "fail") {
155
+ throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${id}: ID already exists in target table.`);
156
+ }
157
+ // Assign new ID
158
+ const finalData = await this.assignNewId(restoredData);
159
+ conflicts.push({
160
+ id,
161
+ reason: `ID ${id} already exists, assigned new ID ${finalData[this.primaryKey]}`,
162
+ });
163
+ // Create temporary model for events
164
+ const model = new this.ctor(finalData);
165
+ // Emit restoring event
166
+ if (!skipEvents) {
167
+ await model.emitEvent("restoring");
168
+ }
169
+ // Restore based on strategy
170
+ if (strategy === "trash") {
171
+ // Insert with new ID (was moved to trash)
172
+ await this.driver.insert(this.table, finalData);
173
+ model.isNew = false;
174
+ }
175
+ else if (strategy === "soft") {
176
+ // Record still exists, just unset deletedAt
177
+ const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
178
+ const filter = { [this.primaryKey]: id };
179
+ const updateOperations = {
180
+ $unset: { [deletedAtColumn]: 1 },
181
+ };
182
+ await this.driver.update(this.table, filter, updateOperations);
183
+ model.isNew = false;
184
+ }
185
+ restoredRecords.push(model);
186
+ // Emit restored event
187
+ if (!skipEvents) {
188
+ await model.emitEvent("restored");
189
+ }
190
+ }
191
+ else {
192
+ // No conflict, restore with original ID
193
+ const model = new this.ctor(restoredData);
194
+ // Emit restoring event
195
+ if (!skipEvents) {
196
+ await model.emitEvent("restoring");
197
+ }
198
+ // Restore based on strategy
199
+ if (strategy === "trash") {
200
+ // Insert with original ID (was moved to trash)
201
+ await this.driver.insert(this.table, restoredData);
202
+ model.isNew = false;
203
+ }
204
+ else if (strategy === "soft") {
205
+ // Record still exists, just unset deletedAt
206
+ const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
207
+ const filter = { [this.primaryKey]: id };
208
+ const updateOperations = {
209
+ $unset: { [deletedAtColumn]: 1 },
210
+ };
211
+ await this.driver.update(this.table, filter, updateOperations);
212
+ model.isNew = false;
213
+ }
214
+ restoredRecords.push(model);
215
+ // Emit restored event
216
+ if (!skipEvents) {
217
+ await model.emitEvent("restored");
218
+ }
219
+ }
220
+ // Remove from trash (only for trash strategy)
221
+ if (strategy === "trash") {
222
+ const trashTable = this.resolveTrashTable();
223
+ const trashFilter = { [this.primaryKey]: id };
224
+ await this.driver.delete(trashTable, trashFilter);
225
+ }
226
+ restoredCount++;
227
+ }
228
+ catch (error) {
229
+ if (onIdConflict === "fail") {
230
+ throw error;
231
+ }
232
+ // Continue with next record if assignNew mode
233
+ conflicts.push({
234
+ id,
235
+ reason: error instanceof Error ? error.message : String(error),
236
+ });
237
+ }
238
+ }
239
+ return {
240
+ success: true,
241
+ restoredCount,
242
+ restoredRecords,
243
+ strategy,
244
+ conflicts: conflicts.length > 0 ? conflicts : undefined,
245
+ };
246
+ }
247
+ /**
248
+ * Resolve the delete strategy.
249
+ *
250
+ * Priority: options → model static → data source default → "permanent"
251
+ *
252
+ * @param strategyOption - Optional strategy override from options
253
+ * @returns The resolved delete strategy
254
+ * @private
255
+ */
256
+ resolveStrategy(strategyOption) {
257
+ return (strategyOption ??
258
+ this.ctor.deleteStrategy ??
259
+ this.dataSource.defaultDeleteStrategy ??
260
+ "permanent");
261
+ }
262
+ /**
263
+ * Fetch a record by ID based on the delete strategy.
264
+ *
265
+ * @param id - The primary key value
266
+ * @param strategy - The delete strategy to use
267
+ * @returns The record data, or null if not found
268
+ * @private
269
+ */
270
+ async fetchRecordByStrategy(id, strategy) {
271
+ if (strategy === "trash") {
272
+ const trashTable = this.resolveTrashTable();
273
+ try {
274
+ const trashQuery = await this.driver
275
+ .queryBuilder(trashTable)
276
+ .where(this.primaryKey, id)
277
+ .first();
278
+ return trashQuery;
279
+ }
280
+ catch {
281
+ return null;
282
+ }
283
+ }
284
+ else if (strategy === "soft") {
285
+ const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
286
+ try {
287
+ const softDeletedQuery = await this.driver
288
+ .queryBuilder(this.table)
289
+ .where(this.primaryKey, id)
290
+ .whereNotNull(deletedAtColumn)
291
+ .first();
292
+ return softDeletedQuery;
293
+ }
294
+ catch {
295
+ return null;
296
+ }
297
+ }
298
+ return null;
299
+ }
300
+ /**
301
+ * Fetch all records based on the delete strategy.
302
+ *
303
+ * @param strategy - The delete strategy to use
304
+ * @returns Array of record data
305
+ * @private
306
+ */
307
+ async fetchAllRecordsByStrategy(strategy) {
308
+ if (strategy === "trash") {
309
+ const trashTable = this.resolveTrashTable();
310
+ try {
311
+ const trashQuery = this.driver
312
+ .queryBuilder(trashTable)
313
+ .where("originalTable", this.table)
314
+ .get();
315
+ return (await trashQuery);
316
+ }
317
+ catch {
318
+ return [];
319
+ }
320
+ }
321
+ else if (strategy === "soft") {
322
+ const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
323
+ try {
324
+ const softDeletedQuery = this.driver
325
+ .queryBuilder(this.table)
326
+ .whereNotNull(deletedAtColumn)
327
+ .get();
328
+ return (await softDeletedQuery);
329
+ }
330
+ catch {
331
+ return [];
332
+ }
333
+ }
334
+ return [];
335
+ }
336
+ /**
337
+ * Handle ID conflict by checking if ID exists and assigning new one if needed.
338
+ *
339
+ * @param recordData - The record data to restore
340
+ * @param originalId - The original ID value
341
+ * @param onIdConflict - Conflict resolution strategy
342
+ * @returns Record data with potentially new ID
343
+ * @private
344
+ */
345
+ async handleIdConflict(recordData, originalId, onIdConflict) {
346
+ const idExists = await this.checkIdExists(originalId);
347
+ if (idExists) {
348
+ if (onIdConflict === "fail") {
349
+ throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${originalId}: ID already exists in target table.`);
350
+ }
351
+ // Assign new ID
352
+ return await this.assignNewId(recordData);
353
+ }
354
+ return recordData;
355
+ }
356
+ /**
357
+ * Check if an ID already exists in the target table.
358
+ *
359
+ * @param id - The ID to check
360
+ * @returns True if ID exists, false otherwise
361
+ * @private
362
+ */
363
+ async checkIdExists(id) {
364
+ try {
365
+ const query = this.driver
366
+ .queryBuilder(this.table)
367
+ .where(this.primaryKey, id)
368
+ .exists();
369
+ return await query;
370
+ }
371
+ catch {
372
+ return false;
373
+ }
374
+ }
375
+ /**
376
+ * Assign a new ID to the record data.
377
+ *
378
+ * For MongoDB: Generates new ObjectId for `_id`, keeps `id` if it exists
379
+ * For SQL: Removes `id` to let database auto-increment
380
+ *
381
+ * @param recordData - The record data
382
+ * @returns Record data with new ID assigned
383
+ * @private
384
+ */
385
+ async assignNewId(recordData) {
386
+ const isMongoDb = this.driver.name === "mongodb";
387
+ const newData = { ...recordData };
388
+ if (isMongoDb) {
389
+ // MongoDB: Generate new ObjectId for _id
390
+ if (this.primaryKey === "_id") {
391
+ // Remove _id to let MongoDB generate new one
392
+ delete newData._id;
393
+ }
394
+ else if (this.primaryKey === "id") {
395
+ // Remove id to let ID generator create new one
396
+ delete newData.id;
397
+ }
398
+ }
399
+ else {
400
+ // SQL: Remove primary key to let database auto-increment
401
+ delete newData[this.primaryKey];
402
+ }
403
+ return newData;
404
+ }
405
+ /**
406
+ * Resolve the trash table/collection name.
407
+ *
408
+ * Priority:
409
+ * 1. Model.trashTable (if set)
410
+ * 2. Data source defaultTrashTable (e.g., "RecycleBin" for MongoDB)
411
+ * 3. Default pattern: `{table}Trash`
412
+ *
413
+ * @returns The trash table/collection name
414
+ * @private
415
+ */
416
+ resolveTrashTable() {
417
+ if (this.ctor.trashTable) {
418
+ return this.ctor.trashTable;
419
+ }
420
+ if (this.dataSource.defaultTrashTable) {
421
+ return this.dataSource.defaultTrashTable;
422
+ }
423
+ return `${this.table}Trash`;
424
+ }
425
+ }export{DatabaseRestorer};//# sourceMappingURL=database-restorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-restorer.js","sources":["../../src/restorer/database-restorer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Sync system exports.
3
+ *
4
+ * @module cascade-next/sync
5
+ */
6
+ export { modelSync } from "./model-sync";
7
+ export { ModelSyncOperation } from "./model-sync-operation";
8
+ export { MODEL_EVENT_PREFIX, ModelSyncEventType, getModelDeletedEvent, getModelEvent, getModelUpdatedEvent, } from "./model-events";
9
+ export { DEFAULT_MAX_SYNC_DEPTH, SyncContextManager } from "./sync-context";
10
+ export { SyncManager } from "./sync-manager";
11
+ export type { EmbedKey, ModelSyncConfig, ModelSyncContract, ModelSyncOperationContract, SyncConfig, SyncContext, SyncEventPayload, SyncInstruction, SyncInstructionOptions, SyncResult, } from "./types";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,YAAY,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,UAAU,GACX,MAAM,SAAS,CAAC"}
@@ -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"}