@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,130 @@
1
+ /**
2
+ * ModelSync facade for registering sync operations.
3
+ *
4
+ * Provides a clean API for defining sync relationships between models
5
+ * with automatic cleanup support for HMR (Hot Module Replacement).
6
+ *
7
+ * @module cascade-next/sync/model-sync
8
+ */
9
+ import type { ChildModel, Model } from "../model/model";
10
+ import type { ModelSyncContract, ModelSyncOperationContract } from "./types";
11
+ /**
12
+ * ModelSync facade implementation.
13
+ *
14
+ * Manages sync operation registration with scoped cleanup support.
15
+ * Uses a registration stack to track operations created during
16
+ * a `register()` callback for proper HMR cleanup.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // In events file
21
+ * export const cleanup = modelSync.register(() => {
22
+ * Category.sync(Product, "category");
23
+ * Tag.syncMany(Post, "tags").identifyBy("id");
24
+ * });
25
+ * ```
26
+ */
27
+ declare class ModelSyncFacade implements ModelSyncContract {
28
+ /**
29
+ * All active sync operations.
30
+ */
31
+ private readonly operations;
32
+ /**
33
+ * Stack for tracking operations during register() callbacks.
34
+ * Each element is an array of operations created in that scope.
35
+ */
36
+ private readonly registrationStack;
37
+ /**
38
+ * Create a sync operation for a single embedded document.
39
+ *
40
+ * When the source model is updated, the target model's field
41
+ * will be updated with the embedded data.
42
+ *
43
+ * @param source - Source model class that triggers sync
44
+ * @param target - Target model class that receives data
45
+ * @param field - Field path in target model
46
+ * @returns Sync operation for chaining configuration
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * // When Category updates, update Product.category
51
+ * modelSync.sync(Category, Product, "category");
52
+ *
53
+ * // With configuration
54
+ * modelSync.sync(Category, Product, "category")
55
+ * .embed("embedMinimal")
56
+ * .watchFields(["name", "slug"]);
57
+ * ```
58
+ */
59
+ sync(source: ChildModel<Model>, target: ChildModel<Model>, field: string): ModelSyncOperationContract;
60
+ /**
61
+ * Create a sync operation for an array of embedded documents.
62
+ *
63
+ * When the source model is updated, the corresponding element
64
+ * in the target model's array field will be updated.
65
+ *
66
+ * @param source - Source model class that triggers sync
67
+ * @param target - Target model class that receives data
68
+ * @param field - Array field path in target model
69
+ * @returns Sync operation for chaining configuration
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * // When Tag updates, update Post.tags[i] where tags[i].id matches
74
+ * modelSync.syncMany(Tag, Post, "tags").identifyBy("id");
75
+ * ```
76
+ */
77
+ syncMany(source: ChildModel<Model>, target: ChildModel<Model>, field: string): ModelSyncOperationContract;
78
+ /**
79
+ * Register sync operations with automatic cleanup.
80
+ *
81
+ * Executes the callback function which should contain sync registrations.
82
+ * Returns a cleanup function that unsubscribes all operations created
83
+ * during the callback - perfect for HMR module cleanup.
84
+ *
85
+ * @param callback - Function that registers sync operations
86
+ * @returns Cleanup function that unsubscribes all registered operations
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * // In src/app/blog/events/sync.ts
91
+ * export const cleanup = modelSync.register(() => {
92
+ * Category.sync(Product, "category");
93
+ * Tag.syncMany(Post, "tags").identifyBy("id");
94
+ * Author.sync(Article, "author").unsetOnDelete();
95
+ * });
96
+ * ```
97
+ */
98
+ register(callback: () => void): () => void;
99
+ /**
100
+ * Clear all registered sync operations.
101
+ * Useful for testing or complete reset.
102
+ */
103
+ clear(): void;
104
+ /**
105
+ * Get count of active sync operations.
106
+ * Useful for debugging and testing.
107
+ */
108
+ get count(): number;
109
+ /**
110
+ * Track a new operation in global list and current registration scope.
111
+ */
112
+ private trackOperation;
113
+ }
114
+ /**
115
+ * Global modelSync facade instance.
116
+ *
117
+ * Use this to register sync operations between models.
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * import { modelSync } from "@warlock.js/cascade";
122
+ *
123
+ * export const cleanup = modelSync.register(() => {
124
+ * Category.sync(Product, "category");
125
+ * });
126
+ * ```
127
+ */
128
+ export declare const modelSync: ModelSyncFacade;
129
+ export {};
130
+ //# sourceMappingURL=model-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-sync.d.ts","sourceRoot":"","sources":["../../src/sync/model-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,cAAM,eAAgB,YAAW,iBAAiB;IAChD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IAEvD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IAMhE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,IAAI,CACT,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EACzB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EACzB,KAAK,EAAE,MAAM,GACZ,0BAA0B;IAM7B;;;;;;;;;;;;;;;;OAgBG;IACI,QAAQ,CACb,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EACzB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EACzB,KAAK,EAAE,MAAM,GACZ,0BAA0B;IAM7B;;;;;;;;;;;;;;;;;;;OAmBG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IA2BjD;;;OAGG;IACI,KAAK,IAAI,IAAI;IAOpB;;;OAGG;IACH,IAAW,KAAK,IAAI,MAAM,CAEzB;IAMD;;OAEG;IACH,OAAO,CAAC,cAAc;CAUvB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,iBAAwB,CAAC"}
@@ -0,0 +1,178 @@
1
+ 'use strict';var modelSyncOperation=require('./model-sync-operation.js');/**
2
+ * ModelSync facade for registering sync operations.
3
+ *
4
+ * Provides a clean API for defining sync relationships between models
5
+ * with automatic cleanup support for HMR (Hot Module Replacement).
6
+ *
7
+ * @module cascade-next/sync/model-sync
8
+ */
9
+ /**
10
+ * ModelSync facade implementation.
11
+ *
12
+ * Manages sync operation registration with scoped cleanup support.
13
+ * Uses a registration stack to track operations created during
14
+ * a `register()` callback for proper HMR cleanup.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // In events file
19
+ * export const cleanup = modelSync.register(() => {
20
+ * Category.sync(Product, "category");
21
+ * Tag.syncMany(Post, "tags").identifyBy("id");
22
+ * });
23
+ * ```
24
+ */
25
+ class ModelSyncFacade {
26
+ /**
27
+ * All active sync operations.
28
+ */
29
+ operations = [];
30
+ /**
31
+ * Stack for tracking operations during register() callbacks.
32
+ * Each element is an array of operations created in that scope.
33
+ */
34
+ registrationStack = [];
35
+ // ============================================================================
36
+ // PUBLIC API
37
+ // ============================================================================
38
+ /**
39
+ * Create a sync operation for a single embedded document.
40
+ *
41
+ * When the source model is updated, the target model's field
42
+ * will be updated with the embedded data.
43
+ *
44
+ * @param source - Source model class that triggers sync
45
+ * @param target - Target model class that receives data
46
+ * @param field - Field path in target model
47
+ * @returns Sync operation for chaining configuration
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * // When Category updates, update Product.category
52
+ * modelSync.sync(Category, Product, "category");
53
+ *
54
+ * // With configuration
55
+ * modelSync.sync(Category, Product, "category")
56
+ * .embed("embedMinimal")
57
+ * .watchFields(["name", "slug"]);
58
+ * ```
59
+ */
60
+ sync(source, target, field) {
61
+ const operation = new modelSyncOperation.ModelSyncOperation(source, target, field, false);
62
+ this.trackOperation(operation);
63
+ return operation;
64
+ }
65
+ /**
66
+ * Create a sync operation for an array of embedded documents.
67
+ *
68
+ * When the source model is updated, the corresponding element
69
+ * in the target model's array field will be updated.
70
+ *
71
+ * @param source - Source model class that triggers sync
72
+ * @param target - Target model class that receives data
73
+ * @param field - Array field path in target model
74
+ * @returns Sync operation for chaining configuration
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * // When Tag updates, update Post.tags[i] where tags[i].id matches
79
+ * modelSync.syncMany(Tag, Post, "tags").identifyBy("id");
80
+ * ```
81
+ */
82
+ syncMany(source, target, field) {
83
+ const operation = new modelSyncOperation.ModelSyncOperation(source, target, field, true);
84
+ this.trackOperation(operation);
85
+ return operation;
86
+ }
87
+ /**
88
+ * Register sync operations with automatic cleanup.
89
+ *
90
+ * Executes the callback function which should contain sync registrations.
91
+ * Returns a cleanup function that unsubscribes all operations created
92
+ * during the callback - perfect for HMR module cleanup.
93
+ *
94
+ * @param callback - Function that registers sync operations
95
+ * @returns Cleanup function that unsubscribes all registered operations
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * // In src/app/blog/events/sync.ts
100
+ * export const cleanup = modelSync.register(() => {
101
+ * Category.sync(Product, "category");
102
+ * Tag.syncMany(Post, "tags").identifyBy("id");
103
+ * Author.sync(Article, "author").unsetOnDelete();
104
+ * });
105
+ * ```
106
+ */
107
+ register(callback) {
108
+ // Create a new scope for tracking operations
109
+ const scopedOperations = [];
110
+ this.registrationStack.push(scopedOperations);
111
+ try {
112
+ // Execute callback - operations are tracked via trackOperation()
113
+ callback();
114
+ }
115
+ finally {
116
+ // Remove the scope from stack
117
+ this.registrationStack.pop();
118
+ }
119
+ // Return cleanup function for just these scoped operations
120
+ return () => {
121
+ for (const operation of scopedOperations) {
122
+ operation.unsubscribe();
123
+ // Remove from global operations array
124
+ const index = this.operations.indexOf(operation);
125
+ if (index !== -1) {
126
+ this.operations.splice(index, 1);
127
+ }
128
+ }
129
+ };
130
+ }
131
+ /**
132
+ * Clear all registered sync operations.
133
+ * Useful for testing or complete reset.
134
+ */
135
+ clear() {
136
+ for (const operation of this.operations) {
137
+ operation.unsubscribe();
138
+ }
139
+ this.operations.length = 0;
140
+ }
141
+ /**
142
+ * Get count of active sync operations.
143
+ * Useful for debugging and testing.
144
+ */
145
+ get count() {
146
+ return this.operations.length;
147
+ }
148
+ // ============================================================================
149
+ // PRIVATE HELPERS
150
+ // ============================================================================
151
+ /**
152
+ * Track a new operation in global list and current registration scope.
153
+ */
154
+ trackOperation(operation) {
155
+ // Always add to global operations
156
+ this.operations.push(operation);
157
+ // If inside a register() callback, also track in the current scope
158
+ const currentScope = this.registrationStack[this.registrationStack.length - 1];
159
+ if (currentScope) {
160
+ currentScope.push(operation);
161
+ }
162
+ }
163
+ }
164
+ /**
165
+ * Global modelSync facade instance.
166
+ *
167
+ * Use this to register sync operations between models.
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * import { modelSync } from "@warlock.js/cascade";
172
+ *
173
+ * export const cleanup = modelSync.register(() => {
174
+ * Category.sync(Product, "category");
175
+ * });
176
+ * ```
177
+ */
178
+ const modelSync = new ModelSyncFacade();exports.modelSync=modelSync;//# sourceMappingURL=model-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-sync.js","sources":["../../src/sync/model-sync.ts"],"sourcesContent":[null],"names":["ModelSyncOperation"],"mappings":"yEAAA;;;;;;;AAOG;AAMH;;;;;;;;;;;;;;;AAeG;AACH,MAAM,eAAe,CAAA;AACnB;;AAEG;IACc,UAAU,GAAyB,EAAE,CAAC;AAEvD;;;AAGG;IACc,iBAAiB,GAA2B,EAAE,CAAC;;;;AAMhE;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,IAAA,IAAI,CACT,MAAyB,EACzB,MAAyB,EACzB,KAAa,EAAA;AAEb,QAAA,MAAM,SAAS,GAAG,IAAIA,qCAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC/B,QAAA,OAAO,SAAS,CAAC;KAClB;AAED;;;;;;;;;;;;;;;;AAgBG;AACI,IAAA,QAAQ,CACb,MAAyB,EACzB,MAAyB,EACzB,KAAa,EAAA;AAEb,QAAA,MAAM,SAAS,GAAG,IAAIA,qCAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC/B,QAAA,OAAO,SAAS,CAAC;KAClB;AAED;;;;;;;;;;;;;;;;;;;AAmBG;AACI,IAAA,QAAQ,CAAC,QAAoB,EAAA;;QAElC,MAAM,gBAAgB,GAAyB,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE9C,IAAI;;AAEF,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA;AAAS,gBAAA;;AAER,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;AAC9B,SAAA;;AAGD,QAAA,OAAO,MAAK;AACV,YAAA,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE;gBACxC,SAAS,CAAC,WAAW,EAAE,CAAC;;gBAGxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACjD,gBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;oBAChB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAClC,iBAAA;AACF,aAAA;AACH,SAAC,CAAC;KACH;AAED;;;AAGG;IACI,KAAK,GAAA;AACV,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,SAAS,CAAC,WAAW,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5B;AAED;;;AAGG;AACH,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;KAC/B;;;;AAMD;;AAEG;AACK,IAAA,cAAc,CAAC,SAA6B,EAAA;;AAElD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAGhC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/E,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9B,SAAA;KACF;AACF,CAAA;AAED;;;;;;;;;;;;;AAaG;AACU,MAAA,SAAS,GAAG,IAAI,eAAe"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Sync context management and validation.
3
+ *
4
+ * @module cascade-next/sync/sync-context
5
+ */
6
+ import type { SyncContext, SyncInstruction } from "./types";
7
+ /**
8
+ * Default maximum sync depth.
9
+ * Prevents infinite sync chains.
10
+ */
11
+ export declare const DEFAULT_MAX_SYNC_DEPTH = 3;
12
+ /**
13
+ * Manages sync context and provides validation utilities.
14
+ */
15
+ export declare class SyncContextManager {
16
+ /**
17
+ * Creates a new sync context from a sync instruction.
18
+ *
19
+ * @param instruction - The sync instruction to create context from
20
+ * @param affectedCount - Number of documents affected
21
+ * @returns A new sync context
22
+ */
23
+ static createContext(instruction: SyncInstruction, affectedCount: number): SyncContext;
24
+ /**
25
+ * Validates if a sync operation can proceed based on depth and cycle detection.
26
+ *
27
+ * @param depth - Current sync depth
28
+ * @param chain - Current sync chain
29
+ * @param targetModel - Target model name
30
+ * @param maxDepth - Maximum allowed depth
31
+ * @param preventCircular - Whether to prevent circular references
32
+ * @returns Validation result with success flag and optional error message
33
+ */
34
+ static validate(depth: number, chain: string[], targetModel: string, maxDepth: number, preventCircular: boolean): {
35
+ valid: boolean;
36
+ error?: string;
37
+ };
38
+ /**
39
+ * Checks if adding a target model would create a cycle in the sync chain.
40
+ *
41
+ * @param chain - Current sync chain
42
+ * @param targetModel - Model to be added to the chain
43
+ * @returns True if adding the model would create a cycle
44
+ */
45
+ static hasCycle(chain: string[], targetModel: string): boolean;
46
+ /**
47
+ * Creates a new sync chain by appending a model name.
48
+ *
49
+ * @param chain - Current sync chain
50
+ * @param modelName - Model name to append
51
+ * @returns New sync chain array
52
+ */
53
+ static extendChain(chain: string[], modelName: string): string[];
54
+ /**
55
+ * Formats a sync chain for display.
56
+ *
57
+ * @param chain - Sync chain to format
58
+ * @returns Formatted string (e.g., "Category → Product → Module")
59
+ */
60
+ static formatChain(chain: string[]): string;
61
+ /**
62
+ * Checks if the current depth allows for further syncing.
63
+ *
64
+ * @param currentDepth - Current depth in the chain
65
+ * @param maxDepth - Maximum allowed depth
66
+ * @returns True if more syncing is allowed
67
+ */
68
+ static canSyncDeeper(currentDepth: number, maxDepth: number): boolean;
69
+ }
70
+ //# sourceMappingURL=sync-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-context.d.ts","sourceRoot":"","sources":["../../src/sync/sync-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;;;;;OAMG;WACW,aAAa,CACzB,WAAW,EAAE,eAAe,EAC5B,aAAa,EAAE,MAAM,GACpB,WAAW;IAcd;;;;;;;;;OASG;WACW,QAAQ,CACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,OAAO,GACvB;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAoBrC;;;;;;OAMG;WACW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAIrE;;;;;;OAMG;WACW,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAIvE;;;;;OAKG;WACW,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIlD;;;;;;OAMG;WACW,aAAa,CACzB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO;CAGX"}
@@ -0,0 +1,101 @@
1
+ 'use strict';/**
2
+ * Sync context management and validation.
3
+ *
4
+ * @module cascade-next/sync/sync-context
5
+ */
6
+ /**
7
+ * Default maximum sync depth.
8
+ * Prevents infinite sync chains.
9
+ */
10
+ const DEFAULT_MAX_SYNC_DEPTH = 3;
11
+ /**
12
+ * Manages sync context and provides validation utilities.
13
+ */
14
+ class SyncContextManager {
15
+ /**
16
+ * Creates a new sync context from a sync instruction.
17
+ *
18
+ * @param instruction - The sync instruction to create context from
19
+ * @param affectedCount - Number of documents affected
20
+ * @returns A new sync context
21
+ */
22
+ static createContext(instruction, affectedCount) {
23
+ return {
24
+ sourceModel: instruction.sourceModel,
25
+ sourceId: instruction.sourceId,
26
+ currentDepth: instruction.depth,
27
+ syncChain: [...instruction.chain],
28
+ targetModel: instruction.targetModel,
29
+ filter: { ...instruction.filter },
30
+ update: { ...instruction.update },
31
+ affectedCount,
32
+ timestamp: new Date(),
33
+ };
34
+ }
35
+ /**
36
+ * Validates if a sync operation can proceed based on depth and cycle detection.
37
+ *
38
+ * @param depth - Current sync depth
39
+ * @param chain - Current sync chain
40
+ * @param targetModel - Target model name
41
+ * @param maxDepth - Maximum allowed depth
42
+ * @param preventCircular - Whether to prevent circular references
43
+ * @returns Validation result with success flag and optional error message
44
+ */
45
+ static validate(depth, chain, targetModel, maxDepth, preventCircular) {
46
+ // Check depth limit
47
+ if (depth > maxDepth) {
48
+ return {
49
+ valid: false,
50
+ error: `Sync depth limit exceeded: ${depth} > ${maxDepth}. Chain: ${chain.join(" → ")}`,
51
+ };
52
+ }
53
+ // Check for circular references
54
+ if (preventCircular && this.hasCycle(chain, targetModel)) {
55
+ return {
56
+ valid: false,
57
+ error: `Circular sync detected: ${targetModel} already exists in chain [${chain.join(" → ")}]`,
58
+ };
59
+ }
60
+ return { valid: true };
61
+ }
62
+ /**
63
+ * Checks if adding a target model would create a cycle in the sync chain.
64
+ *
65
+ * @param chain - Current sync chain
66
+ * @param targetModel - Model to be added to the chain
67
+ * @returns True if adding the model would create a cycle
68
+ */
69
+ static hasCycle(chain, targetModel) {
70
+ return chain.includes(targetModel);
71
+ }
72
+ /**
73
+ * Creates a new sync chain by appending a model name.
74
+ *
75
+ * @param chain - Current sync chain
76
+ * @param modelName - Model name to append
77
+ * @returns New sync chain array
78
+ */
79
+ static extendChain(chain, modelName) {
80
+ return [...chain, modelName];
81
+ }
82
+ /**
83
+ * Formats a sync chain for display.
84
+ *
85
+ * @param chain - Sync chain to format
86
+ * @returns Formatted string (e.g., "Category → Product → Module")
87
+ */
88
+ static formatChain(chain) {
89
+ return chain.join(" → ");
90
+ }
91
+ /**
92
+ * Checks if the current depth allows for further syncing.
93
+ *
94
+ * @param currentDepth - Current depth in the chain
95
+ * @param maxDepth - Maximum allowed depth
96
+ * @returns True if more syncing is allowed
97
+ */
98
+ static canSyncDeeper(currentDepth, maxDepth) {
99
+ return currentDepth < maxDepth;
100
+ }
101
+ }exports.DEFAULT_MAX_SYNC_DEPTH=DEFAULT_MAX_SYNC_DEPTH;exports.SyncContextManager=SyncContextManager;//# sourceMappingURL=sync-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-context.js","sources":["../../src/sync/sync-context.ts"],"sourcesContent":[null],"names":[],"mappings":"aAAA;;;;AAIG;AAIH;;;AAGG;AACI,MAAM,sBAAsB,GAAG,EAAE;AAExC;;AAEG;MACU,kBAAkB,CAAA;AAC7B;;;;;;AAMG;AACI,IAAA,OAAO,aAAa,CACzB,WAA4B,EAC5B,aAAqB,EAAA;QAErB,OAAO;YACL,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,YAAY,EAAE,WAAW,CAAC,KAAK;AAC/B,YAAA,SAAS,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;YACjC,WAAW,EAAE,WAAW,CAAC,WAAW;AACpC,YAAA,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE;AACjC,YAAA,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE;YACjC,aAAa;YACb,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;KACH;AAED;;;;;;;;;AASG;IACI,OAAO,QAAQ,CACpB,KAAa,EACb,KAAe,EACf,WAAmB,EACnB,QAAgB,EAChB,eAAwB,EAAA;;QAGxB,IAAI,KAAK,GAAG,QAAQ,EAAE;YACpB,OAAO;AACL,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,KAAK,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAA,GAAA,EAAM,QAAQ,CAAA,SAAA,EAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE,CAAA;aACxF,CAAC;AACH,SAAA;;QAGD,IAAI,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;YACxD,OAAO;AACL,gBAAA,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,CAA2B,wBAAA,EAAA,WAAW,CAA6B,0BAAA,EAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAG,CAAA,CAAA;aAC/F,CAAC;AACH,SAAA;AAED,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACxB;AAED;;;;;;AAMG;AACI,IAAA,OAAO,QAAQ,CAAC,KAAe,EAAE,WAAmB,EAAA;AACzD,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KACpC;AAED;;;;;;AAMG;AACI,IAAA,OAAO,WAAW,CAAC,KAAe,EAAE,SAAiB,EAAA;AAC1D,QAAA,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC;KAC9B;AAED;;;;;AAKG;IACI,OAAO,WAAW,CAAC,KAAe,EAAA;AACvC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED;;;;;;AAMG;AACI,IAAA,OAAO,aAAa,CACzB,YAAoB,EACpB,QAAgB,EAAA;QAEhB,OAAO,YAAY,GAAG,QAAQ,CAAC;KAChC;AACF"}