@warlock.js/cascade 4.0.48 → 4.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/cjs/context/database-data-source-context.d.ts +29 -0
  2. package/cjs/context/database-data-source-context.d.ts.map +1 -0
  3. package/cjs/context/database-data-source-context.js +28 -0
  4. package/cjs/context/database-data-source-context.js.map +1 -0
  5. package/cjs/context/database-transaction-context.d.ts +31 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +34 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +143 -0
  10. package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
  11. package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
  12. package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
  13. package/cjs/contracts/database-remover.contract.d.ts +104 -0
  14. package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
  15. package/cjs/contracts/database-restorer.contract.d.ts +143 -0
  16. package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
  17. package/cjs/contracts/database-writer.contract.d.ts +119 -0
  18. package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
  19. package/cjs/contracts/driver-blueprint.contract.d.ts +45 -0
  20. package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
  21. package/cjs/contracts/index.d.ts +10 -0
  22. package/cjs/contracts/index.d.ts.map +1 -0
  23. package/cjs/contracts/migration-driver.contract.d.ts +365 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1128 -0
  26. package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
  27. package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
  28. package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
  29. package/cjs/data-source/data-source-registry.d.ts +104 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +138 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +106 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +77 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +253 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +389 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongo/mongo-id-generator.d.ts +116 -0
  42. package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  43. package/cjs/drivers/mongo/mongo-id-generator.js +149 -0
  44. package/cjs/drivers/mongo/mongo-id-generator.js.map +1 -0
  45. package/cjs/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  46. package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongo/mongo-migration-driver.js +524 -0
  48. package/cjs/drivers/mongo/mongo-migration-driver.js.map +1 -0
  49. package/cjs/drivers/mongo/mongo-query-builder.d.ts +922 -0
  50. package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  51. package/cjs/drivers/mongo/mongo-query-builder.js +1740 -0
  52. package/cjs/drivers/mongo/mongo-query-builder.js.map +1 -0
  53. package/cjs/drivers/mongo/mongo-query-operations.d.ts +226 -0
  54. package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  55. package/cjs/drivers/mongo/mongo-query-operations.js +270 -0
  56. package/cjs/drivers/mongo/mongo-query-operations.js.map +1 -0
  57. package/cjs/drivers/mongo/mongo-query-parser.d.ts +262 -0
  58. package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  59. package/cjs/drivers/mongo/mongo-query-parser.js +1351 -0
  60. package/cjs/drivers/mongo/mongo-query-parser.js.map +1 -0
  61. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  62. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  63. package/cjs/drivers/mongo/mongo-sync-adapter.js +146 -0
  64. package/cjs/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  65. package/cjs/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  66. package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  67. package/cjs/drivers/mongo/mongodb-blueprint.js +51 -0
  68. package/cjs/drivers/mongo/mongodb-blueprint.js.map +1 -0
  69. package/cjs/drivers/mongo/mongodb-driver.d.ts +188 -0
  70. package/cjs/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  71. package/cjs/drivers/mongo/mongodb-driver.js +411 -0
  72. package/cjs/drivers/mongo/mongodb-driver.js.map +1 -0
  73. package/cjs/drivers/mongo/types.d.ts +43 -0
  74. package/cjs/drivers/mongo/types.d.ts.map +1 -0
  75. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  76. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  77. package/cjs/errors/missing-data-source.error.js +29 -0
  78. package/cjs/errors/missing-data-source.error.js.map +1 -0
  79. package/cjs/events/model-events.d.ts +231 -0
  80. package/cjs/events/model-events.d.ts.map +1 -0
  81. package/cjs/events/model-events.js +259 -0
  82. package/cjs/events/model-events.js.map +1 -0
  83. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  84. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  85. package/cjs/expressions/aggregate-expressions.js +221 -0
  86. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  87. package/cjs/expressions/index.d.ts +2 -0
  88. package/cjs/expressions/index.d.ts.map +1 -0
  89. package/cjs/index.d.ts +41 -0
  90. package/cjs/index.d.ts.map +1 -0
  91. package/cjs/index.js +1 -267
  92. package/cjs/index.js.map +1 -1
  93. package/cjs/migration/column-builder.d.ts +167 -0
  94. package/cjs/migration/column-builder.d.ts.map +1 -0
  95. package/cjs/migration/column-builder.js +217 -0
  96. package/cjs/migration/column-builder.js.map +1 -0
  97. package/cjs/migration/foreign-key-builder.d.ts +110 -0
  98. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  99. package/cjs/migration/foreign-key-builder.js +129 -0
  100. package/cjs/migration/foreign-key-builder.js.map +1 -0
  101. package/cjs/migration/index.d.ts +6 -0
  102. package/cjs/migration/index.d.ts.map +1 -0
  103. package/cjs/migration/migration-runner.d.ts +231 -0
  104. package/cjs/migration/migration-runner.d.ts.map +1 -0
  105. package/cjs/migration/migration-runner.js +443 -0
  106. package/cjs/migration/migration-runner.js.map +1 -0
  107. package/cjs/migration/migration.js +1346 -0
  108. package/cjs/migration/migration.js.map +1 -0
  109. package/cjs/migration/types.d.ts +132 -0
  110. package/cjs/migration/types.d.ts.map +1 -0
  111. package/cjs/model/model.d.ts +1267 -0
  112. package/cjs/model/model.d.ts.map +1 -0
  113. package/cjs/model/model.js +1463 -0
  114. package/cjs/model/model.js.map +1 -0
  115. package/cjs/model/register-model.d.ts +80 -0
  116. package/cjs/model/register-model.d.ts.map +1 -0
  117. package/cjs/model/register-model.js +91 -0
  118. package/cjs/model/register-model.js.map +1 -0
  119. package/cjs/remover/database-remover.d.ts +100 -0
  120. package/cjs/remover/database-remover.d.ts.map +1 -0
  121. package/cjs/remover/database-remover.js +209 -0
  122. package/cjs/remover/database-remover.js.map +1 -0
  123. package/cjs/restorer/database-restorer.d.ts +131 -0
  124. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  125. package/cjs/restorer/database-restorer.js +425 -0
  126. package/cjs/restorer/database-restorer.js.map +1 -0
  127. package/cjs/sync/index.d.ts +12 -0
  128. package/cjs/sync/index.d.ts.map +1 -0
  129. package/cjs/sync/model-events.d.ts +62 -0
  130. package/cjs/sync/model-events.d.ts.map +1 -0
  131. package/cjs/sync/model-events.js +49 -0
  132. package/cjs/sync/model-events.js.map +1 -0
  133. package/cjs/sync/model-sync-operation.d.ts +163 -0
  134. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  135. package/cjs/sync/model-sync-operation.js +292 -0
  136. package/cjs/sync/model-sync-operation.js.map +1 -0
  137. package/cjs/sync/model-sync.d.ts +130 -0
  138. package/cjs/sync/model-sync.d.ts.map +1 -0
  139. package/cjs/sync/model-sync.js +178 -0
  140. package/cjs/sync/model-sync.js.map +1 -0
  141. package/cjs/sync/sync-context.d.ts +70 -0
  142. package/cjs/sync/sync-context.d.ts.map +1 -0
  143. package/cjs/sync/sync-context.js +101 -0
  144. package/cjs/sync/sync-context.js.map +1 -0
  145. package/cjs/sync/sync-manager.d.ts +213 -0
  146. package/cjs/sync/sync-manager.d.ts.map +1 -0
  147. package/cjs/sync/sync-manager.js +689 -0
  148. package/cjs/sync/sync-manager.js.map +1 -0
  149. package/cjs/sync/types.d.ts +289 -0
  150. package/cjs/sync/types.d.ts.map +1 -0
  151. package/cjs/types.d.ts +45 -0
  152. package/cjs/types.d.ts.map +1 -0
  153. package/cjs/utils/connect-to-database.d.ts +246 -0
  154. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  155. package/cjs/utils/connect-to-database.js +92 -0
  156. package/cjs/utils/connect-to-database.js.map +1 -0
  157. package/cjs/utils/database-writer.utils.d.ts +15 -0
  158. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  159. package/cjs/utils/database-writer.utils.js +14 -0
  160. package/cjs/utils/database-writer.utils.js.map +1 -0
  161. package/cjs/utils/define-model.js +100 -0
  162. package/cjs/utils/define-model.js.map +1 -0
  163. package/cjs/utils/once-connected.d.ts +146 -0
  164. package/cjs/utils/once-connected.d.ts.map +1 -0
  165. package/cjs/utils/once-connected.js +252 -0
  166. package/cjs/utils/once-connected.js.map +1 -0
  167. package/cjs/validation/database-seal-plugins.d.ts +2 -0
  168. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  169. package/cjs/validation/database-seal-plugins.js +4 -0
  170. package/cjs/validation/database-seal-plugins.js.map +1 -0
  171. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  172. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  173. package/cjs/validation/database-writer-validation-error.js +160 -0
  174. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  175. package/cjs/validation/index.d.ts +3 -0
  176. package/cjs/validation/index.d.ts.map +1 -0
  177. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  178. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  179. package/cjs/validation/mutators/embed-mutator.js +33 -0
  180. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  181. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  182. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  183. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  184. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  185. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  186. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  187. package/cjs/validation/rules/database-model-rule.js +27 -0
  188. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  189. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  190. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  191. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  192. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  193. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  194. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  195. package/cjs/validation/validators/embed-validator.js +42 -0
  196. package/cjs/validation/validators/embed-validator.js.map +1 -0
  197. package/cjs/writer/database-writer.d.ts +181 -0
  198. package/cjs/writer/database-writer.d.ts.map +1 -0
  199. package/cjs/writer/database-writer.js +402 -0
  200. package/cjs/writer/database-writer.js.map +1 -0
  201. package/esm/context/database-data-source-context.d.ts +29 -0
  202. package/esm/context/database-data-source-context.d.ts.map +1 -0
  203. package/esm/context/database-data-source-context.js +28 -0
  204. package/esm/context/database-data-source-context.js.map +1 -0
  205. package/esm/context/database-transaction-context.d.ts +31 -0
  206. package/esm/context/database-transaction-context.d.ts.map +1 -0
  207. package/esm/context/database-transaction-context.js +34 -0
  208. package/esm/context/database-transaction-context.js.map +1 -0
  209. package/esm/contracts/database-driver.contract.d.ts +143 -0
  210. package/esm/contracts/database-driver.contract.d.ts.map +1 -0
  211. package/esm/contracts/database-id-generator.contract.d.ts +109 -0
  212. package/esm/contracts/database-id-generator.contract.d.ts.map +1 -0
  213. package/esm/contracts/database-remover.contract.d.ts +104 -0
  214. package/esm/contracts/database-remover.contract.d.ts.map +1 -0
  215. package/esm/contracts/database-restorer.contract.d.ts +143 -0
  216. package/esm/contracts/database-restorer.contract.d.ts.map +1 -0
  217. package/esm/contracts/database-writer.contract.d.ts +119 -0
  218. package/esm/contracts/database-writer.contract.d.ts.map +1 -0
  219. package/esm/contracts/driver-blueprint.contract.d.ts +45 -0
  220. package/esm/contracts/driver-blueprint.contract.d.ts.map +1 -0
  221. package/esm/contracts/index.d.ts +10 -0
  222. package/esm/contracts/index.d.ts.map +1 -0
  223. package/esm/contracts/migration-driver.contract.d.ts +365 -0
  224. package/esm/contracts/migration-driver.contract.d.ts.map +1 -0
  225. package/esm/contracts/query-builder.contract.d.ts +1128 -0
  226. package/esm/contracts/query-builder.contract.d.ts.map +1 -0
  227. package/esm/contracts/sync-adapter.contract.d.ts +58 -0
  228. package/esm/contracts/sync-adapter.contract.d.ts.map +1 -0
  229. package/esm/data-source/data-source-registry.d.ts +104 -0
  230. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  231. package/esm/data-source/data-source-registry.js +138 -0
  232. package/esm/data-source/data-source-registry.js.map +1 -0
  233. package/esm/data-source/data-source.d.ts +106 -0
  234. package/esm/data-source/data-source.d.ts.map +1 -0
  235. package/esm/data-source/data-source.js +77 -0
  236. package/esm/data-source/data-source.js.map +1 -0
  237. package/esm/database-dirty-tracker.d.ts +253 -0
  238. package/esm/database-dirty-tracker.d.ts.map +1 -0
  239. package/esm/database-dirty-tracker.js +389 -0
  240. package/esm/database-dirty-tracker.js.map +1 -0
  241. package/esm/drivers/mongo/mongo-id-generator.d.ts +116 -0
  242. package/esm/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  243. package/esm/drivers/mongo/mongo-id-generator.js +149 -0
  244. package/esm/drivers/mongo/mongo-id-generator.js.map +1 -0
  245. package/esm/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  246. package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  247. package/esm/drivers/mongo/mongo-migration-driver.js +524 -0
  248. package/esm/drivers/mongo/mongo-migration-driver.js.map +1 -0
  249. package/esm/drivers/mongo/mongo-query-builder.d.ts +922 -0
  250. package/esm/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  251. package/esm/drivers/mongo/mongo-query-builder.js +1740 -0
  252. package/esm/drivers/mongo/mongo-query-builder.js.map +1 -0
  253. package/esm/drivers/mongo/mongo-query-operations.d.ts +226 -0
  254. package/esm/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  255. package/esm/drivers/mongo/mongo-query-operations.js +270 -0
  256. package/esm/drivers/mongo/mongo-query-operations.js.map +1 -0
  257. package/esm/drivers/mongo/mongo-query-parser.d.ts +262 -0
  258. package/esm/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  259. package/esm/drivers/mongo/mongo-query-parser.js +1351 -0
  260. package/esm/drivers/mongo/mongo-query-parser.js.map +1 -0
  261. package/esm/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  262. package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  263. package/esm/drivers/mongo/mongo-sync-adapter.js +146 -0
  264. package/esm/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  265. package/esm/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  266. package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  267. package/esm/drivers/mongo/mongodb-blueprint.js +51 -0
  268. package/esm/drivers/mongo/mongodb-blueprint.js.map +1 -0
  269. package/esm/drivers/mongo/mongodb-driver.d.ts +188 -0
  270. package/esm/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  271. package/esm/drivers/mongo/mongodb-driver.js +411 -0
  272. package/esm/drivers/mongo/mongodb-driver.js.map +1 -0
  273. package/esm/drivers/mongo/types.d.ts +43 -0
  274. package/esm/drivers/mongo/types.d.ts.map +1 -0
  275. package/esm/errors/missing-data-source.error.d.ts +22 -0
  276. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  277. package/esm/errors/missing-data-source.error.js +29 -0
  278. package/esm/errors/missing-data-source.error.js.map +1 -0
  279. package/esm/events/model-events.d.ts +231 -0
  280. package/esm/events/model-events.d.ts.map +1 -0
  281. package/esm/events/model-events.js +259 -0
  282. package/esm/events/model-events.js.map +1 -0
  283. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  284. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  285. package/esm/expressions/aggregate-expressions.js +221 -0
  286. package/esm/expressions/aggregate-expressions.js.map +1 -0
  287. package/esm/expressions/index.d.ts +2 -0
  288. package/esm/expressions/index.d.ts.map +1 -0
  289. package/esm/index.d.ts +41 -0
  290. package/esm/index.d.ts.map +1 -0
  291. package/esm/index.js +1 -40
  292. package/esm/index.js.map +1 -1
  293. package/esm/migration/column-builder.d.ts +167 -0
  294. package/esm/migration/column-builder.d.ts.map +1 -0
  295. package/esm/migration/column-builder.js +217 -0
  296. package/esm/migration/column-builder.js.map +1 -0
  297. package/esm/migration/foreign-key-builder.d.ts +110 -0
  298. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  299. package/esm/migration/foreign-key-builder.js +129 -0
  300. package/esm/migration/foreign-key-builder.js.map +1 -0
  301. package/esm/migration/index.d.ts +6 -0
  302. package/esm/migration/index.d.ts.map +1 -0
  303. package/esm/migration/migration-runner.d.ts +231 -0
  304. package/esm/migration/migration-runner.d.ts.map +1 -0
  305. package/esm/migration/migration-runner.js +443 -0
  306. package/esm/migration/migration-runner.js.map +1 -0
  307. package/esm/migration/migration.js +1346 -0
  308. package/esm/migration/migration.js.map +1 -0
  309. package/esm/migration/types.d.ts +132 -0
  310. package/esm/migration/types.d.ts.map +1 -0
  311. package/esm/model/model.d.ts +1267 -0
  312. package/esm/model/model.d.ts.map +1 -0
  313. package/esm/model/model.js +1463 -0
  314. package/esm/model/model.js.map +1 -0
  315. package/esm/model/register-model.d.ts +80 -0
  316. package/esm/model/register-model.d.ts.map +1 -0
  317. package/esm/model/register-model.js +91 -0
  318. package/esm/model/register-model.js.map +1 -0
  319. package/esm/remover/database-remover.d.ts +100 -0
  320. package/esm/remover/database-remover.d.ts.map +1 -0
  321. package/esm/remover/database-remover.js +209 -0
  322. package/esm/remover/database-remover.js.map +1 -0
  323. package/esm/restorer/database-restorer.d.ts +131 -0
  324. package/esm/restorer/database-restorer.d.ts.map +1 -0
  325. package/esm/restorer/database-restorer.js +425 -0
  326. package/esm/restorer/database-restorer.js.map +1 -0
  327. package/esm/sync/index.d.ts +12 -0
  328. package/esm/sync/index.d.ts.map +1 -0
  329. package/esm/sync/model-events.d.ts +62 -0
  330. package/esm/sync/model-events.d.ts.map +1 -0
  331. package/esm/sync/model-events.js +49 -0
  332. package/esm/sync/model-events.js.map +1 -0
  333. package/esm/sync/model-sync-operation.d.ts +163 -0
  334. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  335. package/esm/sync/model-sync-operation.js +292 -0
  336. package/esm/sync/model-sync-operation.js.map +1 -0
  337. package/esm/sync/model-sync.d.ts +130 -0
  338. package/esm/sync/model-sync.d.ts.map +1 -0
  339. package/esm/sync/model-sync.js +178 -0
  340. package/esm/sync/model-sync.js.map +1 -0
  341. package/esm/sync/sync-context.d.ts +70 -0
  342. package/esm/sync/sync-context.d.ts.map +1 -0
  343. package/esm/sync/sync-context.js +101 -0
  344. package/esm/sync/sync-context.js.map +1 -0
  345. package/esm/sync/sync-manager.d.ts +213 -0
  346. package/esm/sync/sync-manager.d.ts.map +1 -0
  347. package/esm/sync/sync-manager.js +689 -0
  348. package/esm/sync/sync-manager.js.map +1 -0
  349. package/esm/sync/types.d.ts +289 -0
  350. package/esm/sync/types.d.ts.map +1 -0
  351. package/esm/types.d.ts +45 -0
  352. package/esm/types.d.ts.map +1 -0
  353. package/esm/utils/connect-to-database.d.ts +246 -0
  354. package/esm/utils/connect-to-database.d.ts.map +1 -0
  355. package/esm/utils/connect-to-database.js +92 -0
  356. package/esm/utils/connect-to-database.js.map +1 -0
  357. package/esm/utils/database-writer.utils.d.ts +15 -0
  358. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  359. package/esm/utils/database-writer.utils.js +14 -0
  360. package/esm/utils/database-writer.utils.js.map +1 -0
  361. package/esm/utils/define-model.js +100 -0
  362. package/esm/utils/define-model.js.map +1 -0
  363. package/esm/utils/once-connected.d.ts +146 -0
  364. package/esm/utils/once-connected.d.ts.map +1 -0
  365. package/esm/utils/once-connected.js +252 -0
  366. package/esm/utils/once-connected.js.map +1 -0
  367. package/esm/validation/database-seal-plugins.d.ts +2 -0
  368. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  369. package/esm/validation/database-seal-plugins.js +4 -0
  370. package/esm/validation/database-seal-plugins.js.map +1 -0
  371. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  372. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  373. package/esm/validation/database-writer-validation-error.js +160 -0
  374. package/esm/validation/database-writer-validation-error.js.map +1 -0
  375. package/esm/validation/index.d.ts +3 -0
  376. package/esm/validation/index.d.ts.map +1 -0
  377. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  378. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  379. package/esm/validation/mutators/embed-mutator.js +33 -0
  380. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  381. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  382. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  383. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  384. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  385. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  386. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  387. package/esm/validation/rules/database-model-rule.js +27 -0
  388. package/esm/validation/rules/database-model-rule.js.map +1 -0
  389. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  390. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  391. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  392. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  393. package/esm/validation/validators/embed-validator.d.ts +21 -0
  394. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  395. package/esm/validation/validators/embed-validator.js +42 -0
  396. package/esm/validation/validators/embed-validator.js.map +1 -0
  397. package/esm/writer/database-writer.d.ts +181 -0
  398. package/esm/writer/database-writer.d.ts.map +1 -0
  399. package/esm/writer/database-writer.js +402 -0
  400. package/esm/writer/database-writer.js.map +1 -0
  401. package/package.json +61 -52
@@ -0,0 +1,231 @@
1
+ import { QueryBuilderContract } from "../contracts";
2
+ import type { Model } from "../model/model";
3
+ import { DeleteStrategy } from "../types";
4
+ type OnValidatingEventContext = {
5
+ isInsert: boolean;
6
+ mode: "insert" | "update";
7
+ };
8
+ type OnSavingEventContext = {
9
+ isInsert: boolean;
10
+ mode: "insert" | "update";
11
+ };
12
+ type OnDeletingEventContext = {
13
+ strategy: DeleteStrategy;
14
+ primaryKeyValue: string | number;
15
+ primaryKey: string;
16
+ };
17
+ export type OnDeletedEventContext = OnDeletingEventContext & {
18
+ deletedCount: number;
19
+ trashRecord?: Record<string, unknown>;
20
+ };
21
+ type OnFetchingEventContext = {
22
+ table: string;
23
+ modelClass: any;
24
+ };
25
+ type OnHydratingEventContext = {
26
+ query: QueryBuilderContract;
27
+ hydrateCallback?: (data: any, index: number) => any;
28
+ };
29
+ type OnFetchedEventContext = {
30
+ query: QueryBuilderContract;
31
+ rawRecords: any[];
32
+ duration: number;
33
+ };
34
+ /**
35
+ * Lifecycle events understood by Cascade models.
36
+ *
37
+ * The list mirrors the hooks in the legacy ORM so downstream code can subscribe
38
+ * with consistent semantics.
39
+ */
40
+ export type ModelEventName = "initializing" | "fetching" | "hydrating" | "fetched" | "validating" | "validated" | "saving" | "saved" | "creating" | "created" | "updating" | "updated" | "deleting" | "deleted" | "restoring" | "restored";
41
+ /** Signature of an event listener registered against a model lifecycle hook. */
42
+ export type ModelEventListener<TModel, TContext = unknown> = (model: TModel, context: TContext) => void | Promise<void>;
43
+ /**
44
+ * Light-weight async event emitter used to power model lifecycle hooks.
45
+ *
46
+ * The implementation intentionally avoids any external dependency so we can
47
+ * re-use it in drivers, writers, and other core services without pulling in
48
+ * heavier event libraries.
49
+ */
50
+ export declare class ModelEvents<TModel> {
51
+ readonly listeners: Map<ModelEventName, Set<ModelEventListener<TModel, unknown>>>;
52
+ /**
53
+ * Register a listener for the given event.
54
+ * Returns an unsubscribe function for convenience.
55
+ */
56
+ on<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<TModel, TContext>): () => void;
57
+ /**
58
+ * Register a listener that automatically unsubscribes after the first call.
59
+ */
60
+ once<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<TModel, TContext>): () => void;
61
+ /**
62
+ * Deregister a listener for the given event.
63
+ */
64
+ off<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<TModel, TContext>): void;
65
+ /**
66
+ * Emit an event to all registered listeners.
67
+ */
68
+ emit<TContext = unknown>(event: ModelEventName, model: TModel, context: TContext): Promise<void>;
69
+ /**
70
+ * Emit events for fetching
71
+ */
72
+ emitFetching<TContext = unknown>(query: QueryBuilderContract, context?: TContext): Promise<void>;
73
+ /**
74
+ * Remove all registered listeners.
75
+ */
76
+ clear(): void;
77
+ /**
78
+ * Registers a listener for the "saving" event.
79
+ *
80
+ * Fired before a model is persisted (both insert and update), and before validation.
81
+ * Use this hook for data enrichment and preparation (e.g., setting createdBy, updatedBy).
82
+ *
83
+ * @param listener - The callback to invoke
84
+ * @returns An unsubscribe function
85
+ */
86
+ onSaving<TContext = OnSavingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
87
+ /**
88
+ * Registers a listener for the "saved" event.
89
+ *
90
+ * Fired after a model has been successfully persisted.
91
+ *
92
+ * @param listener - The callback to invoke
93
+ * @returns An unsubscribe function
94
+ */
95
+ onSaved<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
96
+ /**
97
+ * Registers a listener for the "creating" event.
98
+ *
99
+ * Fired before a new model is inserted into the database.
100
+ *
101
+ * @param listener - The callback to invoke
102
+ * @returns An unsubscribe function
103
+ */
104
+ onCreating<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
105
+ /**
106
+ * Registers a listener for the "created" event.
107
+ *
108
+ * Fired after a new model has been successfully inserted.
109
+ *
110
+ * @param listener - The callback to invoke
111
+ * @returns An unsubscribe function
112
+ */
113
+ onCreated<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
114
+ /**
115
+ * Registers a listener for the "updating" event.
116
+ *
117
+ * Fired before an existing model is updated in the database.
118
+ *
119
+ * @param listener - The callback to invoke
120
+ * @returns An unsubscribe function
121
+ */
122
+ onUpdating<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
123
+ /**
124
+ * Registers a listener for the "updated" event.
125
+ *
126
+ * Fired after an existing model has been successfully updated.
127
+ *
128
+ * @param listener - The callback to invoke
129
+ * @returns An unsubscribe function
130
+ */
131
+ onUpdated<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
132
+ /**
133
+ * Registers a listener for the "deleting" event.
134
+ *
135
+ * Fired before a model is deleted from the database.
136
+ *
137
+ * @param listener - The callback to invoke
138
+ * @returns An unsubscribe function
139
+ */
140
+ onDeleting<TContext = OnDeletingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
141
+ /**
142
+ * Registers a listener for the "deleted" event.
143
+ *
144
+ * Fired after a model has been successfully deleted.
145
+ *
146
+ * @param listener - The callback to invoke
147
+ * @returns An unsubscribe function
148
+ */
149
+ onDeleted<TContext = OnDeletedEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
150
+ /**
151
+ * Registers a listener for the "validating" event.
152
+ *
153
+ * Fired before model validation is performed.
154
+ *
155
+ * @param listener - The callback to invoke
156
+ * @returns An unsubscribe function
157
+ */
158
+ onValidating<TContext = OnValidatingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
159
+ /**
160
+ * Registers a listener for the "validated" event.
161
+ *
162
+ * Fired after model validation has completed.
163
+ *
164
+ * @param listener - The callback to invoke
165
+ * @returns An unsubscribe function
166
+ */
167
+ onValidated<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
168
+ /**
169
+ * Registers a listener for the "fetching" event.
170
+ *
171
+ * Fired before a query is executed to fetch models.
172
+ * Receives the query builder instance, allowing modification before execution.
173
+ *
174
+ * @param listener - The callback to invoke
175
+ * @returns An unsubscribe function
176
+ */
177
+ onFetching<TContext = OnFetchingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
178
+ /**
179
+ * Registers a listener for the "hydrating" event.
180
+ *
181
+ * Fired after raw records are fetched but before they are hydrated into model instances.
182
+ * Allows modification of raw data before hydration.
183
+ *
184
+ * @param listener - The callback to invoke
185
+ * @returns An unsubscribe function
186
+ */
187
+ onHydrating<TContext = OnHydratingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
188
+ /**
189
+ * Registers a listener for the "fetched" event.
190
+ *
191
+ * Fired after models have been fetched and hydrated.
192
+ * Receives hydrated model instances and query context.
193
+ *
194
+ * @param listener - The callback to invoke
195
+ * @returns An unsubscribe function
196
+ */
197
+ onFetched<TContext = OnFetchedEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
198
+ /**
199
+ * Registers a listener for the "restoring" event.
200
+ *
201
+ * Fired before a soft-deleted model is restored.
202
+ *
203
+ * @param listener - The callback to invoke
204
+ * @returns An unsubscribe function
205
+ */
206
+ onRestoring<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
207
+ /**
208
+ * Registers a listener for the "restored" event.
209
+ *
210
+ * Fired after a soft-deleted model has been successfully restored.
211
+ *
212
+ * @param listener - The callback to invoke
213
+ * @returns An unsubscribe function
214
+ */
215
+ onRestored<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
216
+ /**
217
+ * Ensures a listener set exists for the given event.
218
+ *
219
+ * @param event - The event name
220
+ * @returns The listener set for the event
221
+ * @private
222
+ */
223
+ private ensureListenerSet;
224
+ }
225
+ /**
226
+ * Global event emitter invoked for every model instance, regardless of type.
227
+ * Useful for cross-cutting concerns like auditing or request-scoped enrichment.
228
+ */
229
+ export declare const globalModelEvents: ModelEvents<Model<import("../model/model").ModelSchema>>;
230
+ export {};
231
+ //# sourceMappingURL=model-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-events.d.ts","sourceRoot":"","sources":["../../src/events/model-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC3B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC3B,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;CACrD,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,UAAU,GACV,WAAW,GACX,SAAS,GACT,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,OAAO,GACP,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,CAAC;AAEf,gFAAgF;AAChF,MAAM,MAAM,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,IAAI,CAC3D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,KACd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;GAMG;AACH,qBAAa,WAAW,CAAC,MAAM;IAC7B,SAAgB,SAAS,gEAA8D;IAEvF;;;OAGG;IACI,EAAE,CAAC,QAAQ,GAAG,OAAO,EAC1B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAMb;;OAEG;IACI,IAAI,CAAC,QAAQ,GAAG,OAAO,EAC5B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAWb;;OAEG;IACI,GAAG,CAAC,QAAQ,GAAG,OAAO,EAC3B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,IAAI;IAWP;;OAEG;IACU,IAAI,CAAC,QAAQ,GAAG,OAAO,EAClC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACU,YAAY,CAAC,QAAQ,GAAG,OAAO,EAC1C,KAAK,EAAE,oBAAoB,EAC3B,OAAO,CAAC,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;;;;;OAQG;IACI,QAAQ,CAAC,QAAQ,GAAG,oBAAoB,EAC7C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIjF;;;;;;;OAOG;IACI,UAAU,CAAC,QAAQ,GAAG,OAAO,EAClC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAI;IAIhG;;;;;;;OAOG;IACI,UAAU,CAAC,QAAQ,GAAG,OAAO,EAClC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAI;IAIhG;;;;;;;OAOG;IACI,UAAU,CAAC,QAAQ,GAAG,sBAAsB,EACjD,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,SAAS,CAAC,QAAQ,GAAG,qBAAqB,EAC/C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,YAAY,CAAC,QAAQ,GAAG,wBAAwB,EACrD,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,WAAW,CAAC,QAAQ,GAAG,OAAO,EACnC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;;OAQG;IACI,UAAU,CAAC,QAAQ,GAAG,sBAAsB,EACjD,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;;OAQG;IACI,WAAW,CAAC,QAAQ,GAAG,uBAAuB,EACnD,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;;OAQG;IACI,SAAS,CAAC,QAAQ,GAAG,qBAAqB,EAC/C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,WAAW,CAAC,QAAQ,GAAG,OAAO,EACnC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,UAAU,CAAC,QAAQ,GAAG,OAAO,EAClC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI;IAIb;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;CAQ1B;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,0DAA2B,CAAC"}
@@ -0,0 +1,259 @@
1
+ 'use strict';/**
2
+ * Light-weight async event emitter used to power model lifecycle hooks.
3
+ *
4
+ * The implementation intentionally avoids any external dependency so we can
5
+ * re-use it in drivers, writers, and other core services without pulling in
6
+ * heavier event libraries.
7
+ */
8
+ class ModelEvents {
9
+ listeners = new Map();
10
+ /**
11
+ * Register a listener for the given event.
12
+ * Returns an unsubscribe function for convenience.
13
+ */
14
+ on(event, listener) {
15
+ const listeners = this.ensureListenerSet(event);
16
+ listeners.add(listener);
17
+ return () => this.off(event, listener);
18
+ }
19
+ /**
20
+ * Register a listener that automatically unsubscribes after the first call.
21
+ */
22
+ once(event, listener) {
23
+ const wrapper = async (model, context) => {
24
+ try {
25
+ await listener(model, context);
26
+ }
27
+ finally {
28
+ this.off(event, wrapper);
29
+ }
30
+ };
31
+ return this.on(event, wrapper);
32
+ }
33
+ /**
34
+ * Deregister a listener for the given event.
35
+ */
36
+ off(event, listener) {
37
+ const listeners = this.listeners.get(event);
38
+ if (!listeners) {
39
+ return;
40
+ }
41
+ listeners.delete(listener);
42
+ if (listeners.size === 0) {
43
+ this.listeners.delete(event);
44
+ }
45
+ }
46
+ /**
47
+ * Emit an event to all registered listeners.
48
+ */
49
+ async emit(event, model, context) {
50
+ const listeners = this.listeners.get(event);
51
+ if (!listeners || listeners.size === 0) {
52
+ return;
53
+ }
54
+ for (const listener of Array.from(listeners)) {
55
+ await listener(model, context);
56
+ }
57
+ }
58
+ /**
59
+ * Emit events for fetching
60
+ */
61
+ async emitFetching(query, context) {
62
+ await this.emit("fetching", query, context);
63
+ }
64
+ /**
65
+ * Remove all registered listeners.
66
+ */
67
+ clear() {
68
+ this.listeners.clear();
69
+ }
70
+ /**
71
+ * Registers a listener for the "saving" event.
72
+ *
73
+ * Fired before a model is persisted (both insert and update), and before validation.
74
+ * Use this hook for data enrichment and preparation (e.g., setting createdBy, updatedBy).
75
+ *
76
+ * @param listener - The callback to invoke
77
+ * @returns An unsubscribe function
78
+ */
79
+ onSaving(listener) {
80
+ return this.on("saving", listener);
81
+ }
82
+ /**
83
+ * Registers a listener for the "saved" event.
84
+ *
85
+ * Fired after a model has been successfully persisted.
86
+ *
87
+ * @param listener - The callback to invoke
88
+ * @returns An unsubscribe function
89
+ */
90
+ onSaved(listener) {
91
+ return this.on("saved", listener);
92
+ }
93
+ /**
94
+ * Registers a listener for the "creating" event.
95
+ *
96
+ * Fired before a new model is inserted into the database.
97
+ *
98
+ * @param listener - The callback to invoke
99
+ * @returns An unsubscribe function
100
+ */
101
+ onCreating(listener) {
102
+ return this.on("creating", listener);
103
+ }
104
+ /**
105
+ * Registers a listener for the "created" event.
106
+ *
107
+ * Fired after a new model has been successfully inserted.
108
+ *
109
+ * @param listener - The callback to invoke
110
+ * @returns An unsubscribe function
111
+ */
112
+ onCreated(listener) {
113
+ return this.on("created", listener);
114
+ }
115
+ /**
116
+ * Registers a listener for the "updating" event.
117
+ *
118
+ * Fired before an existing model is updated in the database.
119
+ *
120
+ * @param listener - The callback to invoke
121
+ * @returns An unsubscribe function
122
+ */
123
+ onUpdating(listener) {
124
+ return this.on("updating", listener);
125
+ }
126
+ /**
127
+ * Registers a listener for the "updated" event.
128
+ *
129
+ * Fired after an existing model has been successfully updated.
130
+ *
131
+ * @param listener - The callback to invoke
132
+ * @returns An unsubscribe function
133
+ */
134
+ onUpdated(listener) {
135
+ return this.on("updated", listener);
136
+ }
137
+ /**
138
+ * Registers a listener for the "deleting" event.
139
+ *
140
+ * Fired before a model is deleted from the database.
141
+ *
142
+ * @param listener - The callback to invoke
143
+ * @returns An unsubscribe function
144
+ */
145
+ onDeleting(listener) {
146
+ return this.on("deleting", listener);
147
+ }
148
+ /**
149
+ * Registers a listener for the "deleted" event.
150
+ *
151
+ * Fired after a model has been successfully deleted.
152
+ *
153
+ * @param listener - The callback to invoke
154
+ * @returns An unsubscribe function
155
+ */
156
+ onDeleted(listener) {
157
+ return this.on("deleted", listener);
158
+ }
159
+ /**
160
+ * Registers a listener for the "validating" event.
161
+ *
162
+ * Fired before model validation is performed.
163
+ *
164
+ * @param listener - The callback to invoke
165
+ * @returns An unsubscribe function
166
+ */
167
+ onValidating(listener) {
168
+ return this.on("validating", listener);
169
+ }
170
+ /**
171
+ * Registers a listener for the "validated" event.
172
+ *
173
+ * Fired after model validation has completed.
174
+ *
175
+ * @param listener - The callback to invoke
176
+ * @returns An unsubscribe function
177
+ */
178
+ onValidated(listener) {
179
+ return this.on("validated", listener);
180
+ }
181
+ /**
182
+ * Registers a listener for the "fetching" event.
183
+ *
184
+ * Fired before a query is executed to fetch models.
185
+ * Receives the query builder instance, allowing modification before execution.
186
+ *
187
+ * @param listener - The callback to invoke
188
+ * @returns An unsubscribe function
189
+ */
190
+ onFetching(listener) {
191
+ return this.on("fetching", listener);
192
+ }
193
+ /**
194
+ * Registers a listener for the "hydrating" event.
195
+ *
196
+ * Fired after raw records are fetched but before they are hydrated into model instances.
197
+ * Allows modification of raw data before hydration.
198
+ *
199
+ * @param listener - The callback to invoke
200
+ * @returns An unsubscribe function
201
+ */
202
+ onHydrating(listener) {
203
+ return this.on("hydrating", listener);
204
+ }
205
+ /**
206
+ * Registers a listener for the "fetched" event.
207
+ *
208
+ * Fired after models have been fetched and hydrated.
209
+ * Receives hydrated model instances and query context.
210
+ *
211
+ * @param listener - The callback to invoke
212
+ * @returns An unsubscribe function
213
+ */
214
+ onFetched(listener) {
215
+ return this.on("fetched", listener);
216
+ }
217
+ /**
218
+ * Registers a listener for the "restoring" event.
219
+ *
220
+ * Fired before a soft-deleted model is restored.
221
+ *
222
+ * @param listener - The callback to invoke
223
+ * @returns An unsubscribe function
224
+ */
225
+ onRestoring(listener) {
226
+ return this.on("restoring", listener);
227
+ }
228
+ /**
229
+ * Registers a listener for the "restored" event.
230
+ *
231
+ * Fired after a soft-deleted model has been successfully restored.
232
+ *
233
+ * @param listener - The callback to invoke
234
+ * @returns An unsubscribe function
235
+ */
236
+ onRestored(listener) {
237
+ return this.on("restored", listener);
238
+ }
239
+ /**
240
+ * Ensures a listener set exists for the given event.
241
+ *
242
+ * @param event - The event name
243
+ * @returns The listener set for the event
244
+ * @private
245
+ */
246
+ ensureListenerSet(event) {
247
+ let listeners = this.listeners.get(event);
248
+ if (!listeners) {
249
+ listeners = new Set();
250
+ this.listeners.set(event, listeners);
251
+ }
252
+ return listeners;
253
+ }
254
+ }
255
+ /**
256
+ * Global event emitter invoked for every model instance, regardless of type.
257
+ * Useful for cross-cutting concerns like auditing or request-scoped enrichment.
258
+ */
259
+ const globalModelEvents = new ModelEvents();exports.ModelEvents=ModelEvents;exports.globalModelEvents=globalModelEvents;//# sourceMappingURL=model-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-events.js","sources":["../../src/events/model-events.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}