@warlock.js/cascade 4.0.171 → 4.1.1

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 (1050) hide show
  1. package/README.md +6 -5
  2. package/bin/cascadejs +3 -0
  3. package/esm/cli/commands/migrate-export-sql.mjs +48 -0
  4. package/esm/cli/commands/migrate-export-sql.mjs.map +1 -0
  5. package/esm/cli/commands/migrate-list.mjs +26 -0
  6. package/esm/cli/commands/migrate-list.mjs.map +1 -0
  7. package/esm/cli/commands/migrate-rollback.mjs +50 -0
  8. package/esm/cli/commands/migrate-rollback.mjs.map +1 -0
  9. package/esm/cli/commands/migrate.mjs +65 -0
  10. package/esm/cli/commands/migrate.mjs.map +1 -0
  11. package/esm/cli/connection-from-env.mjs +181 -0
  12. package/esm/cli/connection-from-env.mjs.map +1 -0
  13. package/esm/cli/index.mjs +31 -0
  14. package/esm/cli/index.mjs.map +1 -0
  15. package/esm/cli/load-migrations.mjs +78 -0
  16. package/esm/cli/load-migrations.mjs.map +1 -0
  17. package/esm/cli/printers.mjs +57 -0
  18. package/esm/cli/printers.mjs.map +1 -0
  19. package/esm/cli/setup-logger.mjs +30 -0
  20. package/esm/cli/setup-logger.mjs.map +1 -0
  21. package/esm/cli/with-cli-connection.mjs +39 -0
  22. package/esm/cli/with-cli-connection.mjs.map +1 -0
  23. package/esm/cli.d.mts +1 -0
  24. package/esm/cli.mjs +26 -0
  25. package/esm/cli.mjs.map +1 -0
  26. package/esm/context/database-data-source-context.d.mts +32 -0
  27. package/esm/context/database-data-source-context.d.mts.map +1 -0
  28. package/esm/context/database-data-source-context.mjs +35 -0
  29. package/esm/context/database-data-source-context.mjs.map +1 -0
  30. package/esm/context/database-transaction-context.d.mts +38 -0
  31. package/esm/context/database-transaction-context.d.mts.map +1 -0
  32. package/esm/context/database-transaction-context.mjs +47 -0
  33. package/esm/context/database-transaction-context.mjs.map +1 -0
  34. package/esm/contracts/database-driver.contract.d.mts +443 -0
  35. package/esm/contracts/database-driver.contract.d.mts.map +1 -0
  36. package/esm/contracts/database-id-generator.contract.d.mts +109 -0
  37. package/esm/contracts/database-id-generator.contract.d.mts.map +1 -0
  38. package/esm/contracts/database-remover.contract.d.mts +108 -0
  39. package/esm/contracts/database-remover.contract.d.mts.map +1 -0
  40. package/esm/contracts/database-restorer.contract.d.mts +145 -0
  41. package/esm/contracts/database-restorer.contract.d.mts.map +1 -0
  42. package/esm/contracts/database-writer.contract.d.mts +123 -0
  43. package/esm/contracts/database-writer.contract.d.mts.map +1 -0
  44. package/esm/contracts/driver-blueprint.contract.d.mts +52 -0
  45. package/esm/contracts/driver-blueprint.contract.d.mts.map +1 -0
  46. package/esm/contracts/index.d.mts +9 -0
  47. package/esm/contracts/migration-driver.contract.d.mts +476 -0
  48. package/esm/contracts/migration-driver.contract.d.mts.map +1 -0
  49. package/esm/contracts/query-builder.contract.d.mts +1663 -0
  50. package/esm/contracts/query-builder.contract.d.mts.map +1 -0
  51. package/esm/contracts/sync-adapter.contract.d.mts +49 -0
  52. package/esm/contracts/sync-adapter.contract.d.mts.map +1 -0
  53. package/esm/data-source/data-source-registry.d.mts +111 -0
  54. package/esm/data-source/data-source-registry.d.mts.map +1 -0
  55. package/esm/data-source/data-source-registry.mjs +142 -0
  56. package/esm/data-source/data-source-registry.mjs.map +1 -0
  57. package/esm/data-source/data-source.d.mts +160 -0
  58. package/esm/data-source/data-source.d.mts.map +1 -0
  59. package/esm/data-source/data-source.mjs +87 -0
  60. package/esm/data-source/data-source.mjs.map +1 -0
  61. package/esm/database-dirty-tracker.d.mts +254 -0
  62. package/esm/database-dirty-tracker.d.mts.map +1 -0
  63. package/esm/database-dirty-tracker.mjs +356 -0
  64. package/esm/database-dirty-tracker.mjs.map +1 -0
  65. package/esm/drivers/mongodb/mongodb-blueprint.mjs +54 -0
  66. package/esm/drivers/mongodb/mongodb-blueprint.mjs.map +1 -0
  67. package/esm/drivers/mongodb/mongodb-driver.d.mts +334 -0
  68. package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -0
  69. package/esm/drivers/mongodb/mongodb-driver.mjs +716 -0
  70. package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -0
  71. package/esm/drivers/mongodb/mongodb-id-generator.d.mts +120 -0
  72. package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -0
  73. package/esm/drivers/mongodb/mongodb-id-generator.mjs +141 -0
  74. package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -0
  75. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts +322 -0
  76. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts.map +1 -0
  77. package/esm/drivers/mongodb/mongodb-migration-driver.mjs +531 -0
  78. package/esm/drivers/mongodb/mongodb-migration-driver.mjs.map +1 -0
  79. package/esm/drivers/mongodb/mongodb-query-builder.d.mts +1117 -0
  80. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -0
  81. package/esm/drivers/mongodb/mongodb-query-builder.mjs +1828 -0
  82. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -0
  83. package/esm/drivers/mongodb/mongodb-query-operations.d.mts +230 -0
  84. package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -0
  85. package/esm/drivers/mongodb/mongodb-query-operations.mjs +275 -0
  86. package/esm/drivers/mongodb/mongodb-query-operations.mjs.map +1 -0
  87. package/esm/drivers/mongodb/mongodb-query-parser.d.mts +263 -0
  88. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -0
  89. package/esm/drivers/mongodb/mongodb-query-parser.mjs +965 -0
  90. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -0
  91. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts +78 -0
  92. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts.map +1 -0
  93. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs +118 -0
  94. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs.map +1 -0
  95. package/esm/drivers/mongodb/types.d.mts +43 -0
  96. package/esm/drivers/mongodb/types.d.mts.map +1 -0
  97. package/esm/drivers/postgres/index.d.mts +8 -0
  98. package/esm/drivers/postgres/index.mjs +9 -0
  99. package/esm/drivers/postgres/postgres-blueprint.d.mts +60 -0
  100. package/esm/drivers/postgres/postgres-blueprint.d.mts.map +1 -0
  101. package/esm/drivers/postgres/postgres-blueprint.mjs +105 -0
  102. package/esm/drivers/postgres/postgres-blueprint.mjs.map +1 -0
  103. package/esm/drivers/postgres/postgres-dialect.d.mts +144 -0
  104. package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -0
  105. package/esm/drivers/postgres/postgres-dialect.mjs +227 -0
  106. package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -0
  107. package/esm/drivers/postgres/postgres-driver.d.mts +424 -0
  108. package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -0
  109. package/esm/drivers/postgres/postgres-driver.mjs +845 -0
  110. package/esm/drivers/postgres/postgres-driver.mjs.map +1 -0
  111. package/esm/drivers/postgres/postgres-migration-driver.d.mts +393 -0
  112. package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -0
  113. package/esm/drivers/postgres/postgres-migration-driver.mjs +760 -0
  114. package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -0
  115. package/esm/drivers/postgres/postgres-query-builder.d.mts +399 -0
  116. package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -0
  117. package/esm/drivers/postgres/postgres-query-builder.mjs +1105 -0
  118. package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -0
  119. package/esm/drivers/postgres/postgres-query-parser.d.mts +351 -0
  120. package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -0
  121. package/esm/drivers/postgres/postgres-query-parser.mjs +796 -0
  122. package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -0
  123. package/esm/drivers/postgres/postgres-sql-serializer.mjs +260 -0
  124. package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -0
  125. package/esm/drivers/postgres/postgres-sync-adapter.d.mts +79 -0
  126. package/esm/drivers/postgres/postgres-sync-adapter.d.mts.map +1 -0
  127. package/esm/drivers/postgres/postgres-sync-adapter.mjs +162 -0
  128. package/esm/drivers/postgres/postgres-sync-adapter.mjs.map +1 -0
  129. package/esm/drivers/postgres/types.d.mts +105 -0
  130. package/esm/drivers/postgres/types.d.mts.map +1 -0
  131. package/esm/drivers/sql/sql-dialect.contract.d.mts +221 -0
  132. package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -0
  133. package/esm/drivers/sql/sql-types.d.mts +150 -0
  134. package/esm/drivers/sql/sql-types.d.mts.map +1 -0
  135. package/esm/errors/missing-data-source.error.d.mts +25 -0
  136. package/esm/errors/missing-data-source.error.d.mts.map +1 -0
  137. package/esm/errors/missing-data-source.error.mjs +31 -0
  138. package/esm/errors/missing-data-source.error.mjs.map +1 -0
  139. package/esm/errors/transaction-rollback.error.d.mts +23 -0
  140. package/esm/errors/transaction-rollback.error.d.mts.map +1 -0
  141. package/esm/errors/transaction-rollback.error.mjs +29 -0
  142. package/esm/errors/transaction-rollback.error.mjs.map +1 -0
  143. package/esm/events/model-events.d.mts +234 -0
  144. package/esm/events/model-events.d.mts.map +1 -0
  145. package/esm/events/model-events.mjs +254 -0
  146. package/esm/events/model-events.mjs.map +1 -0
  147. package/esm/expressions/aggregate-expressions.d.mts +224 -0
  148. package/esm/expressions/aggregate-expressions.d.mts.map +1 -0
  149. package/esm/expressions/aggregate-expressions.mjs +232 -0
  150. package/esm/expressions/aggregate-expressions.mjs.map +1 -0
  151. package/esm/index.d.mts +67 -0
  152. package/esm/index.mjs +53 -0
  153. package/esm/migration/column-builder.d.mts +420 -0
  154. package/esm/migration/column-builder.d.mts.map +1 -0
  155. package/esm/migration/column-builder.mjs +532 -0
  156. package/esm/migration/column-builder.mjs.map +1 -0
  157. package/esm/migration/column-helpers.d.mts +280 -0
  158. package/esm/migration/column-helpers.d.mts.map +1 -0
  159. package/esm/migration/column-helpers.mjs +376 -0
  160. package/esm/migration/column-helpers.mjs.map +1 -0
  161. package/esm/migration/foreign-key-builder.d.mts +106 -0
  162. package/esm/migration/foreign-key-builder.d.mts.map +1 -0
  163. package/esm/migration/foreign-key-builder.mjs +126 -0
  164. package/esm/migration/foreign-key-builder.mjs.map +1 -0
  165. package/esm/migration/index.d.mts +6 -0
  166. package/esm/migration/index.mjs +7 -0
  167. package/esm/migration/migration-runner.d.mts +279 -0
  168. package/esm/migration/migration-runner.d.mts.map +1 -0
  169. package/esm/migration/migration-runner.mjs +662 -0
  170. package/esm/migration/migration-runner.mjs.map +1 -0
  171. package/esm/migration/migration.d.mts +2035 -0
  172. package/esm/migration/migration.d.mts.map +1 -0
  173. package/esm/migration/migration.mjs +2083 -0
  174. package/esm/migration/migration.mjs.map +1 -0
  175. package/esm/migration/sql-grammar.mjs +115 -0
  176. package/esm/migration/sql-grammar.mjs.map +1 -0
  177. package/esm/migration/sql-serializer.d.mts +26 -0
  178. package/esm/migration/sql-serializer.d.mts.map +1 -0
  179. package/esm/migration/sql-serializer.mjs +26 -0
  180. package/esm/migration/sql-serializer.mjs.map +1 -0
  181. package/esm/migration/types.d.mts +136 -0
  182. package/esm/migration/types.d.mts.map +1 -0
  183. package/esm/model/methods/accessor-methods.mjs +54 -0
  184. package/esm/model/methods/accessor-methods.mjs.map +1 -0
  185. package/esm/model/methods/delete-methods.mjs +16 -0
  186. package/esm/model/methods/delete-methods.mjs.map +1 -0
  187. package/esm/model/methods/dirty-methods.mjs +20 -0
  188. package/esm/model/methods/dirty-methods.mjs.map +1 -0
  189. package/esm/model/methods/hydration-methods.mjs +51 -0
  190. package/esm/model/methods/hydration-methods.mjs.map +1 -0
  191. package/esm/model/methods/instance-event-methods.mjs +22 -0
  192. package/esm/model/methods/instance-event-methods.mjs.map +1 -0
  193. package/esm/model/methods/meta-methods.mjs +36 -0
  194. package/esm/model/methods/meta-methods.mjs.map +1 -0
  195. package/esm/model/methods/pivot-methods.mjs +48 -0
  196. package/esm/model/methods/pivot-methods.mjs.map +1 -0
  197. package/esm/model/methods/query-methods.mjs +121 -0
  198. package/esm/model/methods/query-methods.mjs.map +1 -0
  199. package/esm/model/methods/restore-methods.mjs +16 -0
  200. package/esm/model/methods/restore-methods.mjs.map +1 -0
  201. package/esm/model/methods/scope-methods.mjs +20 -0
  202. package/esm/model/methods/scope-methods.mjs.map +1 -0
  203. package/esm/model/methods/serialization-methods.mjs +20 -0
  204. package/esm/model/methods/serialization-methods.mjs.map +1 -0
  205. package/esm/model/methods/static-event-methods.mjs +37 -0
  206. package/esm/model/methods/static-event-methods.mjs.map +1 -0
  207. package/esm/model/methods/write-methods.mjs +69 -0
  208. package/esm/model/methods/write-methods.mjs.map +1 -0
  209. package/esm/model/model.d.mts +1778 -0
  210. package/esm/model/model.d.mts.map +1 -0
  211. package/esm/model/model.mjs +1762 -0
  212. package/esm/model/model.mjs.map +1 -0
  213. package/esm/model/model.types.d.mts +47 -0
  214. package/esm/model/model.types.d.mts.map +1 -0
  215. package/esm/model/register-model.d.mts +140 -0
  216. package/esm/model/register-model.d.mts.map +1 -0
  217. package/esm/model/register-model.mjs +175 -0
  218. package/esm/model/register-model.mjs.map +1 -0
  219. package/esm/model/relation-decorators.d.mts +88 -0
  220. package/esm/model/relation-decorators.d.mts.map +1 -0
  221. package/esm/model/relation-decorators.mjs +191 -0
  222. package/esm/model/relation-decorators.mjs.map +1 -0
  223. package/esm/operations/database.d.mts +46 -0
  224. package/esm/operations/database.d.mts.map +1 -0
  225. package/esm/operations/database.mjs +40 -0
  226. package/esm/operations/database.mjs.map +1 -0
  227. package/esm/operations/index.d.mts +2 -0
  228. package/esm/operations/index.mjs +4 -0
  229. package/esm/operations/migrations.d.mts +71 -0
  230. package/esm/operations/migrations.d.mts.map +1 -0
  231. package/esm/operations/migrations.mjs +70 -0
  232. package/esm/operations/migrations.mjs.map +1 -0
  233. package/esm/query-builder/query-builder.d.mts +564 -0
  234. package/esm/query-builder/query-builder.d.mts.map +1 -0
  235. package/esm/query-builder/query-builder.mjs +1097 -0
  236. package/esm/query-builder/query-builder.mjs.map +1 -0
  237. package/esm/relations/index.d.mts +4 -0
  238. package/esm/relations/index.mjs +5 -0
  239. package/esm/relations/key-conventions.mjs +119 -0
  240. package/esm/relations/key-conventions.mjs.map +1 -0
  241. package/esm/relations/pivot-operations.d.mts +155 -0
  242. package/esm/relations/pivot-operations.d.mts.map +1 -0
  243. package/esm/relations/pivot-operations.mjs +232 -0
  244. package/esm/relations/pivot-operations.mjs.map +1 -0
  245. package/esm/relations/relation-hydrator.d.mts +55 -0
  246. package/esm/relations/relation-hydrator.d.mts.map +1 -0
  247. package/esm/relations/relation-hydrator.mjs +52 -0
  248. package/esm/relations/relation-hydrator.mjs.map +1 -0
  249. package/esm/relations/relation-loader.d.mts +190 -0
  250. package/esm/relations/relation-loader.d.mts.map +1 -0
  251. package/esm/relations/relation-loader.mjs +416 -0
  252. package/esm/relations/relation-loader.mjs.map +1 -0
  253. package/esm/relations/types.d.mts +317 -0
  254. package/esm/relations/types.d.mts.map +1 -0
  255. package/esm/remover/database-remover.d.mts +104 -0
  256. package/esm/remover/database-remover.d.mts.map +1 -0
  257. package/esm/remover/database-remover.mjs +174 -0
  258. package/esm/remover/database-remover.mjs.map +1 -0
  259. package/esm/restorer/database-restorer.d.mts +135 -0
  260. package/esm/restorer/database-restorer.d.mts.map +1 -0
  261. package/esm/restorer/database-restorer.mjs +316 -0
  262. package/esm/restorer/database-restorer.mjs.map +1 -0
  263. package/esm/sql-database-dirty-tracker.d.mts +17 -0
  264. package/esm/sql-database-dirty-tracker.d.mts.map +1 -0
  265. package/esm/sql-database-dirty-tracker.mjs +20 -0
  266. package/esm/sql-database-dirty-tracker.mjs.map +1 -0
  267. package/esm/sync/model-events.mjs +46 -0
  268. package/esm/sync/model-events.mjs.map +1 -0
  269. package/esm/sync/model-sync-operation.d.mts +159 -0
  270. package/esm/sync/model-sync-operation.d.mts.map +1 -0
  271. package/esm/sync/model-sync-operation.mjs +257 -0
  272. package/esm/sync/model-sync-operation.mjs.map +1 -0
  273. package/esm/sync/model-sync.d.mts +126 -0
  274. package/esm/sync/model-sync.d.mts.map +1 -0
  275. package/esm/sync/model-sync.mjs +157 -0
  276. package/esm/sync/model-sync.mjs.map +1 -0
  277. package/esm/sync/sync-context.d.mts +69 -0
  278. package/esm/sync/sync-context.d.mts.map +1 -0
  279. package/esm/sync/sync-context.mjs +95 -0
  280. package/esm/sync/sync-context.mjs.map +1 -0
  281. package/esm/sync/sync-manager.d.mts +213 -0
  282. package/esm/sync/sync-manager.d.mts.map +1 -0
  283. package/esm/sync/sync-manager.mjs +597 -0
  284. package/esm/sync/sync-manager.mjs.map +1 -0
  285. package/esm/sync/types.d.mts +215 -0
  286. package/esm/sync/types.d.mts.map +1 -0
  287. package/esm/types.d.mts +423 -0
  288. package/esm/types.d.mts.map +1 -0
  289. package/esm/utils/connect-to-database.d.mts +328 -0
  290. package/esm/utils/connect-to-database.d.mts.map +1 -0
  291. package/esm/utils/connect-to-database.mjs +130 -0
  292. package/esm/utils/connect-to-database.mjs.map +1 -0
  293. package/esm/utils/database-writer.utils.d.mts +18 -0
  294. package/esm/utils/database-writer.utils.d.mts.map +1 -0
  295. package/esm/utils/database-writer.utils.mjs +25 -0
  296. package/esm/utils/database-writer.utils.mjs.map +1 -0
  297. package/esm/utils/define-model.d.mts +185 -0
  298. package/esm/utils/define-model.d.mts.map +1 -0
  299. package/esm/utils/define-model.mjs +105 -0
  300. package/esm/utils/define-model.mjs.map +1 -0
  301. package/esm/utils/is-valid-date-value.mjs +22 -0
  302. package/esm/utils/is-valid-date-value.mjs.map +1 -0
  303. package/esm/utils/once-connected.d.mts +150 -0
  304. package/esm/utils/once-connected.d.mts.map +1 -0
  305. package/esm/utils/once-connected.mjs +203 -0
  306. package/esm/utils/once-connected.mjs.map +1 -0
  307. package/esm/validation/database-seal-plugins.d.mts +1 -0
  308. package/esm/validation/database-seal-plugins.mjs +11 -0
  309. package/esm/validation/database-seal-plugins.mjs.map +1 -0
  310. package/esm/validation/database-writer-validation-error.d.mts +101 -0
  311. package/esm/validation/database-writer-validation-error.d.mts.map +1 -0
  312. package/esm/validation/database-writer-validation-error.mjs +153 -0
  313. package/esm/validation/database-writer-validation-error.mjs.map +1 -0
  314. package/esm/validation/index.d.mts +2 -0
  315. package/esm/validation/index.mjs +4 -0
  316. package/esm/validation/mutators/embed-mutator.mjs +26 -0
  317. package/esm/validation/mutators/embed-mutator.mjs.map +1 -0
  318. package/esm/validation/plugins/database-rules-plugin.d.mts +28 -0
  319. package/esm/validation/plugins/database-rules-plugin.d.mts.map +1 -0
  320. package/esm/validation/plugins/database-rules-plugin.mjs +43 -0
  321. package/esm/validation/plugins/database-rules-plugin.mjs.map +1 -0
  322. package/esm/validation/plugins/embed-validator-plugin.d.mts +17 -0
  323. package/esm/validation/plugins/embed-validator-plugin.d.mts.map +1 -0
  324. package/esm/validation/plugins/embed-validator-plugin.mjs +20 -0
  325. package/esm/validation/plugins/embed-validator-plugin.mjs.map +1 -0
  326. package/esm/validation/rules/database-model-rule.mjs +32 -0
  327. package/esm/validation/rules/database-model-rule.mjs.map +1 -0
  328. package/esm/validation/rules/exists-rule.mjs +29 -0
  329. package/esm/validation/rules/exists-rule.mjs.map +1 -0
  330. package/esm/validation/rules/unique-rule.mjs +43 -0
  331. package/esm/validation/rules/unique-rule.mjs.map +1 -0
  332. package/esm/validation/transformers/embed-model-transformer.mjs +17 -0
  333. package/esm/validation/transformers/embed-model-transformer.mjs.map +1 -0
  334. package/esm/validation/types.d.mts +43 -0
  335. package/esm/validation/types.d.mts.map +1 -0
  336. package/esm/validation/validators/embed-validator.d.mts +25 -0
  337. package/esm/validation/validators/embed-validator.d.mts.map +1 -0
  338. package/esm/validation/validators/embed-validator.mjs +42 -0
  339. package/esm/validation/validators/embed-validator.mjs.map +1 -0
  340. package/esm/writer/database-writer.d.mts +178 -0
  341. package/esm/writer/database-writer.d.mts.map +1 -0
  342. package/esm/writer/database-writer.mjs +317 -0
  343. package/esm/writer/database-writer.mjs.map +1 -0
  344. package/llms-full.txt +2027 -0
  345. package/llms.txt +23 -0
  346. package/package.json +60 -51
  347. package/skills/README.md +65 -0
  348. package/skills/aggregate-data/SKILL.md +102 -0
  349. package/skills/cascade-basics/SKILL.md +93 -0
  350. package/skills/configure-delete-strategy/SKILL.md +126 -0
  351. package/skills/define-model/SKILL.md +170 -0
  352. package/skills/define-relations/SKILL.md +171 -0
  353. package/skills/manage-data-sources/SKILL.md +140 -0
  354. package/skills/manage-transactions/SKILL.md +118 -0
  355. package/skills/paginate-results/SKILL.md +122 -0
  356. package/skills/perform-atomic-ops/SKILL.md +98 -0
  357. package/skills/query-data/SKILL.md +168 -0
  358. package/skills/run-cascade-cli/SKILL.md +125 -0
  359. package/skills/search-by-vector/SKILL.md +127 -0
  360. package/skills/subscribe-to-model-events/SKILL.md +148 -0
  361. package/skills/track-changes/SKILL.md +109 -0
  362. package/skills/write-migration/SKILL.md +144 -0
  363. package/cjs/context/database-data-source-context.d.ts +0 -29
  364. package/cjs/context/database-data-source-context.d.ts.map +0 -1
  365. package/cjs/context/database-data-source-context.js +0 -28
  366. package/cjs/context/database-data-source-context.js.map +0 -1
  367. package/cjs/context/database-transaction-context.d.ts +0 -35
  368. package/cjs/context/database-transaction-context.d.ts.map +0 -1
  369. package/cjs/context/database-transaction-context.js +0 -40
  370. package/cjs/context/database-transaction-context.js.map +0 -1
  371. package/cjs/contracts/database-driver.contract.d.ts +0 -450
  372. package/cjs/contracts/database-driver.contract.d.ts.map +0 -1
  373. package/cjs/contracts/database-id-generator.contract.d.ts +0 -109
  374. package/cjs/contracts/database-id-generator.contract.d.ts.map +0 -1
  375. package/cjs/contracts/database-remover.contract.d.ts +0 -104
  376. package/cjs/contracts/database-remover.contract.d.ts.map +0 -1
  377. package/cjs/contracts/database-restorer.contract.d.ts +0 -143
  378. package/cjs/contracts/database-restorer.contract.d.ts.map +0 -1
  379. package/cjs/contracts/database-writer.contract.d.ts +0 -119
  380. package/cjs/contracts/database-writer.contract.d.ts.map +0 -1
  381. package/cjs/contracts/driver-blueprint.contract.d.ts +0 -49
  382. package/cjs/contracts/driver-blueprint.contract.d.ts.map +0 -1
  383. package/cjs/contracts/index.d.ts +0 -10
  384. package/cjs/contracts/index.d.ts.map +0 -1
  385. package/cjs/contracts/migration-driver.contract.d.ts +0 -522
  386. package/cjs/contracts/migration-driver.contract.d.ts.map +0 -1
  387. package/cjs/contracts/query-builder.contract.d.ts +0 -1609
  388. package/cjs/contracts/query-builder.contract.d.ts.map +0 -1
  389. package/cjs/contracts/sync-adapter.contract.d.ts +0 -58
  390. package/cjs/contracts/sync-adapter.contract.d.ts.map +0 -1
  391. package/cjs/data-source/data-source-registry.d.ts +0 -108
  392. package/cjs/data-source/data-source-registry.d.ts.map +0 -1
  393. package/cjs/data-source/data-source-registry.js +0 -145
  394. package/cjs/data-source/data-source-registry.js.map +0 -1
  395. package/cjs/data-source/data-source.d.ts +0 -147
  396. package/cjs/data-source/data-source.d.ts.map +0 -1
  397. package/cjs/data-source/data-source.js +0 -83
  398. package/cjs/data-source/data-source.js.map +0 -1
  399. package/cjs/database-dirty-tracker.d.ts +0 -252
  400. package/cjs/database-dirty-tracker.d.ts.map +0 -1
  401. package/cjs/database-dirty-tracker.js +0 -386
  402. package/cjs/database-dirty-tracker.js.map +0 -1
  403. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  404. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  405. package/cjs/drivers/mongodb/mongodb-blueprint.js +0 -51
  406. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  407. package/cjs/drivers/mongodb/mongodb-driver.d.ts +0 -325
  408. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  409. package/cjs/drivers/mongodb/mongodb-driver.js +0 -845
  410. package/cjs/drivers/mongodb/mongodb-driver.js.map +0 -1
  411. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  412. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  413. package/cjs/drivers/mongodb/mongodb-id-generator.js +0 -149
  414. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  415. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  416. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  417. package/cjs/drivers/mongodb/mongodb-migration-driver.js +0 -666
  418. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  419. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  420. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  421. package/cjs/drivers/mongodb/mongodb-query-builder.js +0 -1988
  422. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  423. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  424. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  425. package/cjs/drivers/mongodb/mongodb-query-operations.js +0 -270
  426. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  427. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  428. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  429. package/cjs/drivers/mongodb/mongodb-query-parser.js +0 -1351
  430. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  431. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  432. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  433. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  434. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  435. package/cjs/drivers/mongodb/types.d.ts +0 -43
  436. package/cjs/drivers/mongodb/types.d.ts.map +0 -1
  437. package/cjs/drivers/postgres/index.d.ts +0 -16
  438. package/cjs/drivers/postgres/index.d.ts.map +0 -1
  439. package/cjs/drivers/postgres/postgres-blueprint.d.ts +0 -64
  440. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  441. package/cjs/drivers/postgres/postgres-blueprint.js +0 -121
  442. package/cjs/drivers/postgres/postgres-blueprint.js.map +0 -1
  443. package/cjs/drivers/postgres/postgres-dialect.d.ts +0 -136
  444. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  445. package/cjs/drivers/postgres/postgres-dialect.js +0 -268
  446. package/cjs/drivers/postgres/postgres-dialect.js.map +0 -1
  447. package/cjs/drivers/postgres/postgres-driver.d.ts +0 -432
  448. package/cjs/drivers/postgres/postgres-driver.d.ts.map +0 -1
  449. package/cjs/drivers/postgres/postgres-driver.js +0 -1008
  450. package/cjs/drivers/postgres/postgres-driver.js.map +0 -1
  451. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  452. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  453. package/cjs/drivers/postgres/postgres-migration-driver.js +0 -900
  454. package/cjs/drivers/postgres/postgres-migration-driver.js.map +0 -1
  455. package/cjs/drivers/postgres/postgres-query-builder.d.ts +0 -254
  456. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  457. package/cjs/drivers/postgres/postgres-query-builder.js +0 -933
  458. package/cjs/drivers/postgres/postgres-query-builder.js.map +0 -1
  459. package/cjs/drivers/postgres/postgres-query-parser.d.ts +0 -328
  460. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  461. package/cjs/drivers/postgres/postgres-query-parser.js +0 -868
  462. package/cjs/drivers/postgres/postgres-query-parser.js.map +0 -1
  463. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  464. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  465. package/cjs/drivers/postgres/postgres-sql-serializer.js +0 -400
  466. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  467. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  468. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  469. package/cjs/drivers/postgres/postgres-sync-adapter.js +0 -204
  470. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  471. package/cjs/drivers/postgres/types.d.ts +0 -144
  472. package/cjs/drivers/postgres/types.d.ts.map +0 -1
  473. package/cjs/drivers/sql/index.d.ts +0 -10
  474. package/cjs/drivers/sql/index.d.ts.map +0 -1
  475. package/cjs/drivers/sql/sql-dialect.contract.d.ts +0 -204
  476. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  477. package/cjs/drivers/sql/sql-types.d.ts +0 -202
  478. package/cjs/drivers/sql/sql-types.d.ts.map +0 -1
  479. package/cjs/errors/missing-data-source.error.d.ts +0 -22
  480. package/cjs/errors/missing-data-source.error.d.ts.map +0 -1
  481. package/cjs/errors/missing-data-source.error.js +0 -29
  482. package/cjs/errors/missing-data-source.error.js.map +0 -1
  483. package/cjs/errors/transaction-rollback.error.d.ts +0 -20
  484. package/cjs/errors/transaction-rollback.error.d.ts.map +0 -1
  485. package/cjs/errors/transaction-rollback.error.js +0 -27
  486. package/cjs/errors/transaction-rollback.error.js.map +0 -1
  487. package/cjs/events/model-events.d.ts +0 -231
  488. package/cjs/events/model-events.d.ts.map +0 -1
  489. package/cjs/events/model-events.js +0 -259
  490. package/cjs/events/model-events.js.map +0 -1
  491. package/cjs/expressions/aggregate-expressions.d.ts +0 -215
  492. package/cjs/expressions/aggregate-expressions.d.ts.map +0 -1
  493. package/cjs/expressions/aggregate-expressions.js +0 -221
  494. package/cjs/expressions/aggregate-expressions.js.map +0 -1
  495. package/cjs/expressions/index.d.ts +0 -2
  496. package/cjs/expressions/index.d.ts.map +0 -1
  497. package/cjs/index.d.ts +0 -45
  498. package/cjs/index.d.ts.map +0 -1
  499. package/cjs/index.js +0 -1
  500. package/cjs/index.js.map +0 -1
  501. package/cjs/migration/column-builder.d.ts +0 -417
  502. package/cjs/migration/column-builder.d.ts.map +0 -1
  503. package/cjs/migration/column-builder.js +0 -586
  504. package/cjs/migration/column-builder.js.map +0 -1
  505. package/cjs/migration/column-helpers.d.ts +0 -275
  506. package/cjs/migration/column-helpers.d.ts.map +0 -1
  507. package/cjs/migration/column-helpers.js +0 -389
  508. package/cjs/migration/column-helpers.js.map +0 -1
  509. package/cjs/migration/foreign-key-builder.d.ts +0 -103
  510. package/cjs/migration/foreign-key-builder.d.ts.map +0 -1
  511. package/cjs/migration/foreign-key-builder.js +0 -121
  512. package/cjs/migration/foreign-key-builder.js.map +0 -1
  513. package/cjs/migration/index.d.ts +0 -7
  514. package/cjs/migration/index.d.ts.map +0 -1
  515. package/cjs/migration/migration-runner.d.ts +0 -278
  516. package/cjs/migration/migration-runner.d.ts.map +0 -1
  517. package/cjs/migration/migration-runner.js +0 -815
  518. package/cjs/migration/migration-runner.js.map +0 -1
  519. package/cjs/migration/migration.d.ts +0 -1988
  520. package/cjs/migration/migration.d.ts.map +0 -1
  521. package/cjs/migration/migration.js +0 -2162
  522. package/cjs/migration/migration.js.map +0 -1
  523. package/cjs/migration/sql-grammar.d.ts +0 -61
  524. package/cjs/migration/sql-grammar.d.ts.map +0 -1
  525. package/cjs/migration/sql-grammar.js +0 -164
  526. package/cjs/migration/sql-grammar.js.map +0 -1
  527. package/cjs/migration/sql-serializer.d.ts +0 -22
  528. package/cjs/migration/sql-serializer.d.ts.map +0 -1
  529. package/cjs/migration/sql-serializer.js +0 -26
  530. package/cjs/migration/sql-serializer.js.map +0 -1
  531. package/cjs/migration/types.d.ts +0 -155
  532. package/cjs/migration/types.d.ts.map +0 -1
  533. package/cjs/model/methods/accessor-methods.d.ts +0 -13
  534. package/cjs/model/methods/accessor-methods.d.ts.map +0 -1
  535. package/cjs/model/methods/accessor-methods.js +0 -51
  536. package/cjs/model/methods/accessor-methods.js.map +0 -1
  537. package/cjs/model/methods/delete-methods.d.ts +0 -10
  538. package/cjs/model/methods/delete-methods.d.ts.map +0 -1
  539. package/cjs/model/methods/delete-methods.js +0 -10
  540. package/cjs/model/methods/delete-methods.js.map +0 -1
  541. package/cjs/model/methods/dirty-methods.d.ts +0 -10
  542. package/cjs/model/methods/dirty-methods.d.ts.map +0 -1
  543. package/cjs/model/methods/dirty-methods.js +0 -15
  544. package/cjs/model/methods/dirty-methods.js.map +0 -1
  545. package/cjs/model/methods/hydration-methods.d.ts +0 -10
  546. package/cjs/model/methods/hydration-methods.d.ts.map +0 -1
  547. package/cjs/model/methods/hydration-methods.js +0 -57
  548. package/cjs/model/methods/hydration-methods.js.map +0 -1
  549. package/cjs/model/methods/instance-event-methods.d.ts +0 -7
  550. package/cjs/model/methods/instance-event-methods.d.ts.map +0 -1
  551. package/cjs/model/methods/instance-event-methods.js +0 -15
  552. package/cjs/model/methods/instance-event-methods.js.map +0 -1
  553. package/cjs/model/methods/meta-methods.d.ts +0 -7
  554. package/cjs/model/methods/meta-methods.d.ts.map +0 -1
  555. package/cjs/model/methods/meta-methods.js +0 -78
  556. package/cjs/model/methods/meta-methods.js.map +0 -1
  557. package/cjs/model/methods/query-methods.d.ts +0 -24
  558. package/cjs/model/methods/query-methods.d.ts.map +0 -1
  559. package/cjs/model/methods/query-methods.js +0 -164
  560. package/cjs/model/methods/query-methods.js.map +0 -1
  561. package/cjs/model/methods/restore-methods.d.ts +0 -10
  562. package/cjs/model/methods/restore-methods.d.ts.map +0 -1
  563. package/cjs/model/methods/restore-methods.js +0 -13
  564. package/cjs/model/methods/restore-methods.js.map +0 -1
  565. package/cjs/model/methods/scope-methods.d.ts +0 -7
  566. package/cjs/model/methods/scope-methods.d.ts.map +0 -1
  567. package/cjs/model/methods/scope-methods.js +0 -15
  568. package/cjs/model/methods/scope-methods.js.map +0 -1
  569. package/cjs/model/methods/serialization-methods.d.ts +0 -3
  570. package/cjs/model/methods/serialization-methods.d.ts.map +0 -1
  571. package/cjs/model/methods/serialization-methods.js +0 -27
  572. package/cjs/model/methods/serialization-methods.js.map +0 -1
  573. package/cjs/model/methods/static-event-methods.d.ts +0 -9
  574. package/cjs/model/methods/static-event-methods.d.ts.map +0 -1
  575. package/cjs/model/methods/static-event-methods.js +0 -29
  576. package/cjs/model/methods/static-event-methods.js.map +0 -1
  577. package/cjs/model/methods/write-methods.d.ts +0 -10
  578. package/cjs/model/methods/write-methods.d.ts.map +0 -1
  579. package/cjs/model/methods/write-methods.js +0 -52
  580. package/cjs/model/methods/write-methods.js.map +0 -1
  581. package/cjs/model/model.d.ts +0 -1647
  582. package/cjs/model/model.d.ts.map +0 -1
  583. package/cjs/model/model.js +0 -1657
  584. package/cjs/model/model.js.map +0 -1
  585. package/cjs/model/model.types.d.ts +0 -44
  586. package/cjs/model/model.types.d.ts.map +0 -1
  587. package/cjs/model/register-model.d.ts +0 -81
  588. package/cjs/model/register-model.d.ts.map +0 -1
  589. package/cjs/model/register-model.js +0 -94
  590. package/cjs/model/register-model.js.map +0 -1
  591. package/cjs/query-builder/query-builder.d.ts +0 -556
  592. package/cjs/query-builder/query-builder.d.ts.map +0 -1
  593. package/cjs/query-builder/query-builder.js +0 -1070
  594. package/cjs/query-builder/query-builder.js.map +0 -1
  595. package/cjs/relations/helpers.d.ts +0 -156
  596. package/cjs/relations/helpers.d.ts.map +0 -1
  597. package/cjs/relations/helpers.js +0 -202
  598. package/cjs/relations/helpers.js.map +0 -1
  599. package/cjs/relations/index.d.ts +0 -35
  600. package/cjs/relations/index.d.ts.map +0 -1
  601. package/cjs/relations/pivot-operations.d.ts +0 -160
  602. package/cjs/relations/pivot-operations.d.ts.map +0 -1
  603. package/cjs/relations/pivot-operations.js +0 -293
  604. package/cjs/relations/pivot-operations.js.map +0 -1
  605. package/cjs/relations/relation-hydrator.d.ts +0 -68
  606. package/cjs/relations/relation-hydrator.d.ts.map +0 -1
  607. package/cjs/relations/relation-hydrator.js +0 -81
  608. package/cjs/relations/relation-hydrator.js.map +0 -1
  609. package/cjs/relations/relation-loader.d.ts +0 -194
  610. package/cjs/relations/relation-loader.d.ts.map +0 -1
  611. package/cjs/relations/relation-loader.js +0 -466
  612. package/cjs/relations/relation-loader.js.map +0 -1
  613. package/cjs/relations/types.d.ts +0 -306
  614. package/cjs/relations/types.d.ts.map +0 -1
  615. package/cjs/remover/database-remover.d.ts +0 -100
  616. package/cjs/remover/database-remover.d.ts.map +0 -1
  617. package/cjs/remover/database-remover.js +0 -214
  618. package/cjs/remover/database-remover.js.map +0 -1
  619. package/cjs/restorer/database-restorer.d.ts +0 -131
  620. package/cjs/restorer/database-restorer.d.ts.map +0 -1
  621. package/cjs/restorer/database-restorer.js +0 -434
  622. package/cjs/restorer/database-restorer.js.map +0 -1
  623. package/cjs/sql-database-dirty-tracker.d.ts +0 -13
  624. package/cjs/sql-database-dirty-tracker.d.ts.map +0 -1
  625. package/cjs/sql-database-dirty-tracker.js +0 -14
  626. package/cjs/sql-database-dirty-tracker.js.map +0 -1
  627. package/cjs/sync/index.d.ts +0 -12
  628. package/cjs/sync/index.d.ts.map +0 -1
  629. package/cjs/sync/model-events.d.ts +0 -62
  630. package/cjs/sync/model-events.d.ts.map +0 -1
  631. package/cjs/sync/model-events.js +0 -49
  632. package/cjs/sync/model-events.js.map +0 -1
  633. package/cjs/sync/model-sync-operation.d.ts +0 -163
  634. package/cjs/sync/model-sync-operation.d.ts.map +0 -1
  635. package/cjs/sync/model-sync-operation.js +0 -292
  636. package/cjs/sync/model-sync-operation.js.map +0 -1
  637. package/cjs/sync/model-sync.d.ts +0 -130
  638. package/cjs/sync/model-sync.d.ts.map +0 -1
  639. package/cjs/sync/model-sync.js +0 -178
  640. package/cjs/sync/model-sync.js.map +0 -1
  641. package/cjs/sync/sync-context.d.ts +0 -70
  642. package/cjs/sync/sync-context.d.ts.map +0 -1
  643. package/cjs/sync/sync-context.js +0 -101
  644. package/cjs/sync/sync-context.js.map +0 -1
  645. package/cjs/sync/sync-manager.d.ts +0 -213
  646. package/cjs/sync/sync-manager.d.ts.map +0 -1
  647. package/cjs/sync/sync-manager.js +0 -689
  648. package/cjs/sync/sync-manager.js.map +0 -1
  649. package/cjs/sync/types.d.ts +0 -289
  650. package/cjs/sync/types.d.ts.map +0 -1
  651. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  652. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  653. package/cjs/types.d.ts +0 -371
  654. package/cjs/types.d.ts.map +0 -1
  655. package/cjs/utils/connect-to-database.d.ts +0 -307
  656. package/cjs/utils/connect-to-database.d.ts.map +0 -1
  657. package/cjs/utils/connect-to-database.js +0 -130
  658. package/cjs/utils/connect-to-database.js.map +0 -1
  659. package/cjs/utils/database-writer.utils.d.ts +0 -15
  660. package/cjs/utils/database-writer.utils.d.ts.map +0 -1
  661. package/cjs/utils/database-writer.utils.js +0 -14
  662. package/cjs/utils/database-writer.utils.js.map +0 -1
  663. package/cjs/utils/define-model.js +0 -100
  664. package/cjs/utils/define-model.js.map +0 -1
  665. package/cjs/utils/is-valid-date-value.d.ts +0 -5
  666. package/cjs/utils/is-valid-date-value.d.ts.map +0 -1
  667. package/cjs/utils/is-valid-date-value.js +0 -25
  668. package/cjs/utils/is-valid-date-value.js.map +0 -1
  669. package/cjs/utils/once-connected.d.ts +0 -146
  670. package/cjs/utils/once-connected.d.ts.map +0 -1
  671. package/cjs/utils/once-connected.js +0 -251
  672. package/cjs/utils/once-connected.js.map +0 -1
  673. package/cjs/validation/database-seal-plugins.d.ts +0 -12
  674. package/cjs/validation/database-seal-plugins.d.ts.map +0 -1
  675. package/cjs/validation/database-seal-plugins.js +0 -1
  676. package/cjs/validation/database-seal-plugins.js.map +0 -1
  677. package/cjs/validation/database-writer-validation-error.d.ts +0 -97
  678. package/cjs/validation/database-writer-validation-error.d.ts.map +0 -1
  679. package/cjs/validation/database-writer-validation-error.js +0 -160
  680. package/cjs/validation/database-writer-validation-error.js.map +0 -1
  681. package/cjs/validation/index.d.ts +0 -3
  682. package/cjs/validation/index.d.ts.map +0 -1
  683. package/cjs/validation/mutators/embed-mutator.d.ts +0 -9
  684. package/cjs/validation/mutators/embed-mutator.d.ts.map +0 -1
  685. package/cjs/validation/mutators/embed-mutator.js +0 -33
  686. package/cjs/validation/mutators/embed-mutator.js.map +0 -1
  687. package/cjs/validation/plugins/embed-validator-plugin.d.ts +0 -24
  688. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  689. package/cjs/validation/plugins/embed-validator-plugin.js +0 -18
  690. package/cjs/validation/plugins/embed-validator-plugin.js.map +0 -1
  691. package/cjs/validation/rules/database-model-rule.d.ts +0 -7
  692. package/cjs/validation/rules/database-model-rule.d.ts.map +0 -1
  693. package/cjs/validation/rules/database-model-rule.js +0 -27
  694. package/cjs/validation/rules/database-model-rule.js.map +0 -1
  695. package/cjs/validation/transformers/embed-model-transformer.d.ts +0 -3
  696. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  697. package/cjs/validation/transformers/embed-model-transformer.js +0 -18
  698. package/cjs/validation/transformers/embed-model-transformer.js.map +0 -1
  699. package/cjs/validation/validators/embed-validator.d.ts +0 -21
  700. package/cjs/validation/validators/embed-validator.d.ts.map +0 -1
  701. package/cjs/validation/validators/embed-validator.js +0 -43
  702. package/cjs/validation/validators/embed-validator.js.map +0 -1
  703. package/cjs/writer/database-writer.d.ts +0 -174
  704. package/cjs/writer/database-writer.d.ts.map +0 -1
  705. package/cjs/writer/database-writer.js +0 -400
  706. package/cjs/writer/database-writer.js.map +0 -1
  707. package/esm/context/database-data-source-context.d.ts +0 -29
  708. package/esm/context/database-data-source-context.d.ts.map +0 -1
  709. package/esm/context/database-data-source-context.js +0 -28
  710. package/esm/context/database-data-source-context.js.map +0 -1
  711. package/esm/context/database-transaction-context.d.ts +0 -35
  712. package/esm/context/database-transaction-context.d.ts.map +0 -1
  713. package/esm/context/database-transaction-context.js +0 -40
  714. package/esm/context/database-transaction-context.js.map +0 -1
  715. package/esm/contracts/database-driver.contract.d.ts +0 -450
  716. package/esm/contracts/database-driver.contract.d.ts.map +0 -1
  717. package/esm/contracts/database-id-generator.contract.d.ts +0 -109
  718. package/esm/contracts/database-id-generator.contract.d.ts.map +0 -1
  719. package/esm/contracts/database-remover.contract.d.ts +0 -104
  720. package/esm/contracts/database-remover.contract.d.ts.map +0 -1
  721. package/esm/contracts/database-restorer.contract.d.ts +0 -143
  722. package/esm/contracts/database-restorer.contract.d.ts.map +0 -1
  723. package/esm/contracts/database-writer.contract.d.ts +0 -119
  724. package/esm/contracts/database-writer.contract.d.ts.map +0 -1
  725. package/esm/contracts/driver-blueprint.contract.d.ts +0 -49
  726. package/esm/contracts/driver-blueprint.contract.d.ts.map +0 -1
  727. package/esm/contracts/index.d.ts +0 -10
  728. package/esm/contracts/index.d.ts.map +0 -1
  729. package/esm/contracts/migration-driver.contract.d.ts +0 -522
  730. package/esm/contracts/migration-driver.contract.d.ts.map +0 -1
  731. package/esm/contracts/query-builder.contract.d.ts +0 -1609
  732. package/esm/contracts/query-builder.contract.d.ts.map +0 -1
  733. package/esm/contracts/sync-adapter.contract.d.ts +0 -58
  734. package/esm/contracts/sync-adapter.contract.d.ts.map +0 -1
  735. package/esm/data-source/data-source-registry.d.ts +0 -108
  736. package/esm/data-source/data-source-registry.d.ts.map +0 -1
  737. package/esm/data-source/data-source-registry.js +0 -145
  738. package/esm/data-source/data-source-registry.js.map +0 -1
  739. package/esm/data-source/data-source.d.ts +0 -147
  740. package/esm/data-source/data-source.d.ts.map +0 -1
  741. package/esm/data-source/data-source.js +0 -83
  742. package/esm/data-source/data-source.js.map +0 -1
  743. package/esm/database-dirty-tracker.d.ts +0 -252
  744. package/esm/database-dirty-tracker.d.ts.map +0 -1
  745. package/esm/database-dirty-tracker.js +0 -386
  746. package/esm/database-dirty-tracker.js.map +0 -1
  747. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  748. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  749. package/esm/drivers/mongodb/mongodb-blueprint.js +0 -51
  750. package/esm/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  751. package/esm/drivers/mongodb/mongodb-driver.d.ts +0 -325
  752. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  753. package/esm/drivers/mongodb/mongodb-driver.js +0 -845
  754. package/esm/drivers/mongodb/mongodb-driver.js.map +0 -1
  755. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  756. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  757. package/esm/drivers/mongodb/mongodb-id-generator.js +0 -149
  758. package/esm/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  759. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  760. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  761. package/esm/drivers/mongodb/mongodb-migration-driver.js +0 -666
  762. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  763. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  764. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  765. package/esm/drivers/mongodb/mongodb-query-builder.js +0 -1988
  766. package/esm/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  767. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  768. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  769. package/esm/drivers/mongodb/mongodb-query-operations.js +0 -270
  770. package/esm/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  771. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  772. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  773. package/esm/drivers/mongodb/mongodb-query-parser.js +0 -1351
  774. package/esm/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  775. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  776. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  777. package/esm/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  778. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  779. package/esm/drivers/mongodb/types.d.ts +0 -43
  780. package/esm/drivers/mongodb/types.d.ts.map +0 -1
  781. package/esm/drivers/postgres/index.d.ts +0 -16
  782. package/esm/drivers/postgres/index.d.ts.map +0 -1
  783. package/esm/drivers/postgres/postgres-blueprint.d.ts +0 -64
  784. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  785. package/esm/drivers/postgres/postgres-blueprint.js +0 -121
  786. package/esm/drivers/postgres/postgres-blueprint.js.map +0 -1
  787. package/esm/drivers/postgres/postgres-dialect.d.ts +0 -136
  788. package/esm/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  789. package/esm/drivers/postgres/postgres-dialect.js +0 -268
  790. package/esm/drivers/postgres/postgres-dialect.js.map +0 -1
  791. package/esm/drivers/postgres/postgres-driver.d.ts +0 -432
  792. package/esm/drivers/postgres/postgres-driver.d.ts.map +0 -1
  793. package/esm/drivers/postgres/postgres-driver.js +0 -1008
  794. package/esm/drivers/postgres/postgres-driver.js.map +0 -1
  795. package/esm/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  796. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  797. package/esm/drivers/postgres/postgres-migration-driver.js +0 -900
  798. package/esm/drivers/postgres/postgres-migration-driver.js.map +0 -1
  799. package/esm/drivers/postgres/postgres-query-builder.d.ts +0 -254
  800. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  801. package/esm/drivers/postgres/postgres-query-builder.js +0 -933
  802. package/esm/drivers/postgres/postgres-query-builder.js.map +0 -1
  803. package/esm/drivers/postgres/postgres-query-parser.d.ts +0 -328
  804. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  805. package/esm/drivers/postgres/postgres-query-parser.js +0 -868
  806. package/esm/drivers/postgres/postgres-query-parser.js.map +0 -1
  807. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  808. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  809. package/esm/drivers/postgres/postgres-sql-serializer.js +0 -400
  810. package/esm/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  811. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  812. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  813. package/esm/drivers/postgres/postgres-sync-adapter.js +0 -204
  814. package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  815. package/esm/drivers/postgres/types.d.ts +0 -144
  816. package/esm/drivers/postgres/types.d.ts.map +0 -1
  817. package/esm/drivers/sql/index.d.ts +0 -10
  818. package/esm/drivers/sql/index.d.ts.map +0 -1
  819. package/esm/drivers/sql/sql-dialect.contract.d.ts +0 -204
  820. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  821. package/esm/drivers/sql/sql-types.d.ts +0 -202
  822. package/esm/drivers/sql/sql-types.d.ts.map +0 -1
  823. package/esm/errors/missing-data-source.error.d.ts +0 -22
  824. package/esm/errors/missing-data-source.error.d.ts.map +0 -1
  825. package/esm/errors/missing-data-source.error.js +0 -29
  826. package/esm/errors/missing-data-source.error.js.map +0 -1
  827. package/esm/errors/transaction-rollback.error.d.ts +0 -20
  828. package/esm/errors/transaction-rollback.error.d.ts.map +0 -1
  829. package/esm/errors/transaction-rollback.error.js +0 -27
  830. package/esm/errors/transaction-rollback.error.js.map +0 -1
  831. package/esm/events/model-events.d.ts +0 -231
  832. package/esm/events/model-events.d.ts.map +0 -1
  833. package/esm/events/model-events.js +0 -259
  834. package/esm/events/model-events.js.map +0 -1
  835. package/esm/expressions/aggregate-expressions.d.ts +0 -215
  836. package/esm/expressions/aggregate-expressions.d.ts.map +0 -1
  837. package/esm/expressions/aggregate-expressions.js +0 -221
  838. package/esm/expressions/aggregate-expressions.js.map +0 -1
  839. package/esm/expressions/index.d.ts +0 -2
  840. package/esm/expressions/index.d.ts.map +0 -1
  841. package/esm/index.d.ts +0 -45
  842. package/esm/index.d.ts.map +0 -1
  843. package/esm/index.js +0 -1
  844. package/esm/index.js.map +0 -1
  845. package/esm/migration/column-builder.d.ts +0 -417
  846. package/esm/migration/column-builder.d.ts.map +0 -1
  847. package/esm/migration/column-builder.js +0 -586
  848. package/esm/migration/column-builder.js.map +0 -1
  849. package/esm/migration/column-helpers.d.ts +0 -275
  850. package/esm/migration/column-helpers.d.ts.map +0 -1
  851. package/esm/migration/column-helpers.js +0 -389
  852. package/esm/migration/column-helpers.js.map +0 -1
  853. package/esm/migration/foreign-key-builder.d.ts +0 -103
  854. package/esm/migration/foreign-key-builder.d.ts.map +0 -1
  855. package/esm/migration/foreign-key-builder.js +0 -121
  856. package/esm/migration/foreign-key-builder.js.map +0 -1
  857. package/esm/migration/index.d.ts +0 -7
  858. package/esm/migration/index.d.ts.map +0 -1
  859. package/esm/migration/migration-runner.d.ts +0 -278
  860. package/esm/migration/migration-runner.d.ts.map +0 -1
  861. package/esm/migration/migration-runner.js +0 -815
  862. package/esm/migration/migration-runner.js.map +0 -1
  863. package/esm/migration/migration.d.ts +0 -1988
  864. package/esm/migration/migration.d.ts.map +0 -1
  865. package/esm/migration/migration.js +0 -2162
  866. package/esm/migration/migration.js.map +0 -1
  867. package/esm/migration/sql-grammar.d.ts +0 -61
  868. package/esm/migration/sql-grammar.d.ts.map +0 -1
  869. package/esm/migration/sql-grammar.js +0 -164
  870. package/esm/migration/sql-grammar.js.map +0 -1
  871. package/esm/migration/sql-serializer.d.ts +0 -22
  872. package/esm/migration/sql-serializer.d.ts.map +0 -1
  873. package/esm/migration/sql-serializer.js +0 -26
  874. package/esm/migration/sql-serializer.js.map +0 -1
  875. package/esm/migration/types.d.ts +0 -155
  876. package/esm/migration/types.d.ts.map +0 -1
  877. package/esm/model/methods/accessor-methods.d.ts +0 -13
  878. package/esm/model/methods/accessor-methods.d.ts.map +0 -1
  879. package/esm/model/methods/accessor-methods.js +0 -51
  880. package/esm/model/methods/accessor-methods.js.map +0 -1
  881. package/esm/model/methods/delete-methods.d.ts +0 -10
  882. package/esm/model/methods/delete-methods.d.ts.map +0 -1
  883. package/esm/model/methods/delete-methods.js +0 -10
  884. package/esm/model/methods/delete-methods.js.map +0 -1
  885. package/esm/model/methods/dirty-methods.d.ts +0 -10
  886. package/esm/model/methods/dirty-methods.d.ts.map +0 -1
  887. package/esm/model/methods/dirty-methods.js +0 -15
  888. package/esm/model/methods/dirty-methods.js.map +0 -1
  889. package/esm/model/methods/hydration-methods.d.ts +0 -10
  890. package/esm/model/methods/hydration-methods.d.ts.map +0 -1
  891. package/esm/model/methods/hydration-methods.js +0 -57
  892. package/esm/model/methods/hydration-methods.js.map +0 -1
  893. package/esm/model/methods/instance-event-methods.d.ts +0 -7
  894. package/esm/model/methods/instance-event-methods.d.ts.map +0 -1
  895. package/esm/model/methods/instance-event-methods.js +0 -15
  896. package/esm/model/methods/instance-event-methods.js.map +0 -1
  897. package/esm/model/methods/meta-methods.d.ts +0 -7
  898. package/esm/model/methods/meta-methods.d.ts.map +0 -1
  899. package/esm/model/methods/meta-methods.js +0 -78
  900. package/esm/model/methods/meta-methods.js.map +0 -1
  901. package/esm/model/methods/query-methods.d.ts +0 -24
  902. package/esm/model/methods/query-methods.d.ts.map +0 -1
  903. package/esm/model/methods/query-methods.js +0 -164
  904. package/esm/model/methods/query-methods.js.map +0 -1
  905. package/esm/model/methods/restore-methods.d.ts +0 -10
  906. package/esm/model/methods/restore-methods.d.ts.map +0 -1
  907. package/esm/model/methods/restore-methods.js +0 -13
  908. package/esm/model/methods/restore-methods.js.map +0 -1
  909. package/esm/model/methods/scope-methods.d.ts +0 -7
  910. package/esm/model/methods/scope-methods.d.ts.map +0 -1
  911. package/esm/model/methods/scope-methods.js +0 -15
  912. package/esm/model/methods/scope-methods.js.map +0 -1
  913. package/esm/model/methods/serialization-methods.d.ts +0 -3
  914. package/esm/model/methods/serialization-methods.d.ts.map +0 -1
  915. package/esm/model/methods/serialization-methods.js +0 -27
  916. package/esm/model/methods/serialization-methods.js.map +0 -1
  917. package/esm/model/methods/static-event-methods.d.ts +0 -9
  918. package/esm/model/methods/static-event-methods.d.ts.map +0 -1
  919. package/esm/model/methods/static-event-methods.js +0 -29
  920. package/esm/model/methods/static-event-methods.js.map +0 -1
  921. package/esm/model/methods/write-methods.d.ts +0 -10
  922. package/esm/model/methods/write-methods.d.ts.map +0 -1
  923. package/esm/model/methods/write-methods.js +0 -52
  924. package/esm/model/methods/write-methods.js.map +0 -1
  925. package/esm/model/model.d.ts +0 -1647
  926. package/esm/model/model.d.ts.map +0 -1
  927. package/esm/model/model.js +0 -1657
  928. package/esm/model/model.js.map +0 -1
  929. package/esm/model/model.types.d.ts +0 -44
  930. package/esm/model/model.types.d.ts.map +0 -1
  931. package/esm/model/register-model.d.ts +0 -81
  932. package/esm/model/register-model.d.ts.map +0 -1
  933. package/esm/model/register-model.js +0 -94
  934. package/esm/model/register-model.js.map +0 -1
  935. package/esm/query-builder/query-builder.d.ts +0 -556
  936. package/esm/query-builder/query-builder.d.ts.map +0 -1
  937. package/esm/query-builder/query-builder.js +0 -1070
  938. package/esm/query-builder/query-builder.js.map +0 -1
  939. package/esm/relations/helpers.d.ts +0 -156
  940. package/esm/relations/helpers.d.ts.map +0 -1
  941. package/esm/relations/helpers.js +0 -202
  942. package/esm/relations/helpers.js.map +0 -1
  943. package/esm/relations/index.d.ts +0 -35
  944. package/esm/relations/index.d.ts.map +0 -1
  945. package/esm/relations/pivot-operations.d.ts +0 -160
  946. package/esm/relations/pivot-operations.d.ts.map +0 -1
  947. package/esm/relations/pivot-operations.js +0 -293
  948. package/esm/relations/pivot-operations.js.map +0 -1
  949. package/esm/relations/relation-hydrator.d.ts +0 -68
  950. package/esm/relations/relation-hydrator.d.ts.map +0 -1
  951. package/esm/relations/relation-hydrator.js +0 -81
  952. package/esm/relations/relation-hydrator.js.map +0 -1
  953. package/esm/relations/relation-loader.d.ts +0 -194
  954. package/esm/relations/relation-loader.d.ts.map +0 -1
  955. package/esm/relations/relation-loader.js +0 -466
  956. package/esm/relations/relation-loader.js.map +0 -1
  957. package/esm/relations/types.d.ts +0 -306
  958. package/esm/relations/types.d.ts.map +0 -1
  959. package/esm/remover/database-remover.d.ts +0 -100
  960. package/esm/remover/database-remover.d.ts.map +0 -1
  961. package/esm/remover/database-remover.js +0 -214
  962. package/esm/remover/database-remover.js.map +0 -1
  963. package/esm/restorer/database-restorer.d.ts +0 -131
  964. package/esm/restorer/database-restorer.d.ts.map +0 -1
  965. package/esm/restorer/database-restorer.js +0 -434
  966. package/esm/restorer/database-restorer.js.map +0 -1
  967. package/esm/sql-database-dirty-tracker.d.ts +0 -13
  968. package/esm/sql-database-dirty-tracker.d.ts.map +0 -1
  969. package/esm/sql-database-dirty-tracker.js +0 -14
  970. package/esm/sql-database-dirty-tracker.js.map +0 -1
  971. package/esm/sync/index.d.ts +0 -12
  972. package/esm/sync/index.d.ts.map +0 -1
  973. package/esm/sync/model-events.d.ts +0 -62
  974. package/esm/sync/model-events.d.ts.map +0 -1
  975. package/esm/sync/model-events.js +0 -49
  976. package/esm/sync/model-events.js.map +0 -1
  977. package/esm/sync/model-sync-operation.d.ts +0 -163
  978. package/esm/sync/model-sync-operation.d.ts.map +0 -1
  979. package/esm/sync/model-sync-operation.js +0 -292
  980. package/esm/sync/model-sync-operation.js.map +0 -1
  981. package/esm/sync/model-sync.d.ts +0 -130
  982. package/esm/sync/model-sync.d.ts.map +0 -1
  983. package/esm/sync/model-sync.js +0 -178
  984. package/esm/sync/model-sync.js.map +0 -1
  985. package/esm/sync/sync-context.d.ts +0 -70
  986. package/esm/sync/sync-context.d.ts.map +0 -1
  987. package/esm/sync/sync-context.js +0 -101
  988. package/esm/sync/sync-context.js.map +0 -1
  989. package/esm/sync/sync-manager.d.ts +0 -213
  990. package/esm/sync/sync-manager.d.ts.map +0 -1
  991. package/esm/sync/sync-manager.js +0 -689
  992. package/esm/sync/sync-manager.js.map +0 -1
  993. package/esm/sync/types.d.ts +0 -289
  994. package/esm/sync/types.d.ts.map +0 -1
  995. package/esm/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  996. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  997. package/esm/types.d.ts +0 -371
  998. package/esm/types.d.ts.map +0 -1
  999. package/esm/utils/connect-to-database.d.ts +0 -307
  1000. package/esm/utils/connect-to-database.d.ts.map +0 -1
  1001. package/esm/utils/connect-to-database.js +0 -130
  1002. package/esm/utils/connect-to-database.js.map +0 -1
  1003. package/esm/utils/database-writer.utils.d.ts +0 -15
  1004. package/esm/utils/database-writer.utils.d.ts.map +0 -1
  1005. package/esm/utils/database-writer.utils.js +0 -14
  1006. package/esm/utils/database-writer.utils.js.map +0 -1
  1007. package/esm/utils/define-model.js +0 -100
  1008. package/esm/utils/define-model.js.map +0 -1
  1009. package/esm/utils/is-valid-date-value.d.ts +0 -5
  1010. package/esm/utils/is-valid-date-value.d.ts.map +0 -1
  1011. package/esm/utils/is-valid-date-value.js +0 -25
  1012. package/esm/utils/is-valid-date-value.js.map +0 -1
  1013. package/esm/utils/once-connected.d.ts +0 -146
  1014. package/esm/utils/once-connected.d.ts.map +0 -1
  1015. package/esm/utils/once-connected.js +0 -251
  1016. package/esm/utils/once-connected.js.map +0 -1
  1017. package/esm/validation/database-seal-plugins.d.ts +0 -12
  1018. package/esm/validation/database-seal-plugins.d.ts.map +0 -1
  1019. package/esm/validation/database-seal-plugins.js +0 -1
  1020. package/esm/validation/database-seal-plugins.js.map +0 -1
  1021. package/esm/validation/database-writer-validation-error.d.ts +0 -97
  1022. package/esm/validation/database-writer-validation-error.d.ts.map +0 -1
  1023. package/esm/validation/database-writer-validation-error.js +0 -160
  1024. package/esm/validation/database-writer-validation-error.js.map +0 -1
  1025. package/esm/validation/index.d.ts +0 -3
  1026. package/esm/validation/index.d.ts.map +0 -1
  1027. package/esm/validation/mutators/embed-mutator.d.ts +0 -9
  1028. package/esm/validation/mutators/embed-mutator.d.ts.map +0 -1
  1029. package/esm/validation/mutators/embed-mutator.js +0 -33
  1030. package/esm/validation/mutators/embed-mutator.js.map +0 -1
  1031. package/esm/validation/plugins/embed-validator-plugin.d.ts +0 -24
  1032. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  1033. package/esm/validation/plugins/embed-validator-plugin.js +0 -18
  1034. package/esm/validation/plugins/embed-validator-plugin.js.map +0 -1
  1035. package/esm/validation/rules/database-model-rule.d.ts +0 -7
  1036. package/esm/validation/rules/database-model-rule.d.ts.map +0 -1
  1037. package/esm/validation/rules/database-model-rule.js +0 -27
  1038. package/esm/validation/rules/database-model-rule.js.map +0 -1
  1039. package/esm/validation/transformers/embed-model-transformer.d.ts +0 -3
  1040. package/esm/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  1041. package/esm/validation/transformers/embed-model-transformer.js +0 -18
  1042. package/esm/validation/transformers/embed-model-transformer.js.map +0 -1
  1043. package/esm/validation/validators/embed-validator.d.ts +0 -21
  1044. package/esm/validation/validators/embed-validator.d.ts.map +0 -1
  1045. package/esm/validation/validators/embed-validator.js +0 -43
  1046. package/esm/validation/validators/embed-validator.js.map +0 -1
  1047. package/esm/writer/database-writer.d.ts +0 -174
  1048. package/esm/writer/database-writer.d.ts.map +0 -1
  1049. package/esm/writer/database-writer.js +0 -400
  1050. package/esm/writer/database-writer.js.map +0 -1
@@ -0,0 +1,232 @@
1
+ import { resolveModelClass, resolveModelName } from "../model/register-model.mjs";
2
+ import { inferPivotKey, inferPivotTable } from "./key-conventions.mjs";
3
+
4
+ //#region ../../@warlock.js/cascade/src/relations/pivot-operations.ts
5
+ /**
6
+ * Manages pivot table operations for many-to-many relationships.
7
+ *
8
+ * Provides attach, detach, sync, and toggle operations for managing
9
+ * the connections between two models through a pivot table.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const pivotOps = new PivotOperations(post, "tags", tagsDefinition);
14
+ *
15
+ * // Attach tags
16
+ * await pivotOps.attach([1, 2, 3]);
17
+ *
18
+ * // Attach with pivot data
19
+ * await pivotOps.attach([4], { addedBy: userId });
20
+ *
21
+ * // Detach specific tags
22
+ * await pivotOps.detach([2]);
23
+ *
24
+ * // Sync (replace all)
25
+ * await pivotOps.sync([1, 5, 6]);
26
+ *
27
+ * // Toggle (attach if missing, detach if present)
28
+ * await pivotOps.toggle([1, 7]);
29
+ * ```
30
+ */
31
+ var PivotOperations = class {
32
+ /**
33
+ * The model instance performing the pivot operation.
34
+ */
35
+ model;
36
+ /**
37
+ * The name of the relation.
38
+ */
39
+ relationName;
40
+ /**
41
+ * The relation definition with pivot table configuration.
42
+ */
43
+ definition;
44
+ /**
45
+ * The model class of the source model.
46
+ */
47
+ modelClass;
48
+ /**
49
+ * Creates a new PivotOperations instance.
50
+ *
51
+ * @param model - The model instance performing the operation
52
+ * @param relationName - The name of the belongsToMany relation
53
+ * @param definition - The relation definition
54
+ * @param modelClass - The model class constructor
55
+ */
56
+ constructor(model, relationName, definition, modelClass) {
57
+ if (definition.type !== "belongsToMany") throw new Error(`Pivot operations are only available for belongsToMany relations. Relation "${relationName}" is of type "${definition.type}".`);
58
+ this.model = model;
59
+ this.relationName = relationName;
60
+ this.definition = definition;
61
+ this.modelClass = modelClass;
62
+ }
63
+ /**
64
+ * Read the configured relation conventions from this pivot's owning
65
+ * data source. Returns `undefined` when no overrides are set.
66
+ */
67
+ get relationDefaults() {
68
+ try {
69
+ return this.modelClass.getDataSource()?.relationDefaults;
70
+ } catch {
71
+ return;
72
+ }
73
+ }
74
+ /**
75
+ * Attaches one or more related models via the pivot table.
76
+ *
77
+ * Creates new records in the pivot table linking this model to the
78
+ * specified related model IDs. Existing attachments are not duplicated.
79
+ *
80
+ * @param ids - The IDs of the related models to attach
81
+ * @param pivotData - Optional additional data to store in the pivot record
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * // Attach tags to a post
86
+ * await post.attach("tags", [1, 2, 3]);
87
+ *
88
+ * // Attach with additional pivot data
89
+ * await post.attach("tags", [4], { addedBy: currentUserId });
90
+ * ```
91
+ */
92
+ async attach(ids, pivotData) {
93
+ if (ids.length === 0) return;
94
+ const { pivotTable, localKeyValue, pivotLocalKey, pivotForeignKey } = this.getPivotConfig();
95
+ const existingIds = await this.getExistingPivotIds();
96
+ const newIds = ids.filter((id) => !existingIds.has(id));
97
+ if (newIds.length === 0) return;
98
+ const records = newIds.map((id) => ({
99
+ [pivotLocalKey]: localKeyValue,
100
+ [pivotForeignKey]: id,
101
+ ...pivotData
102
+ }));
103
+ await this.modelClass.getDataSource().driver.insertMany(pivotTable, records);
104
+ }
105
+ /**
106
+ * Detaches one or more related models from the pivot table.
107
+ *
108
+ * Removes records from the pivot table. If no IDs are specified,
109
+ * all attachments for this model are removed.
110
+ *
111
+ * @param ids - Optional IDs to detach. If omitted, detaches all.
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * // Detach specific tags
116
+ * await post.detach("tags", [2, 3]);
117
+ *
118
+ * // Detach all tags
119
+ * await post.detach("tags");
120
+ * ```
121
+ */
122
+ async detach(ids) {
123
+ const { pivotTable, localKeyValue, pivotLocalKey, pivotForeignKey } = this.getPivotConfig();
124
+ const dataSource = this.modelClass.getDataSource();
125
+ const filter = { [pivotLocalKey]: localKeyValue };
126
+ if (ids && ids.length > 0) filter[pivotForeignKey] = { $in: ids };
127
+ await dataSource.driver.deleteMany(pivotTable, filter);
128
+ }
129
+ /**
130
+ * Synchronizes the pivot table to match the specified IDs.
131
+ *
132
+ * Attaches any new IDs and detaches any IDs not in the list.
133
+ * After sync, the pivot table will contain exactly the specified IDs.
134
+ *
135
+ * @param ids - The IDs that should be attached after sync
136
+ * @param pivotData - Optional data for newly attached records
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * // Set tags to exactly [1, 3, 5], removing any others
141
+ * await post.sync("tags", [1, 3, 5]);
142
+ * ```
143
+ */
144
+ async sync(ids, pivotData) {
145
+ const existingIds = await this.getExistingPivotIds();
146
+ const newIdSet = new Set(ids);
147
+ const toDetach = [];
148
+ for (const existingId of existingIds) if (!newIdSet.has(existingId)) toDetach.push(existingId);
149
+ const toAttach = ids.filter((id) => !existingIds.has(id));
150
+ if (toDetach.length > 0) await this.detach(toDetach);
151
+ if (toAttach.length > 0) await this.attach(toAttach, pivotData);
152
+ }
153
+ /**
154
+ * Toggles the attachment status of the specified IDs.
155
+ *
156
+ * For each ID: if attached, detaches it; if not attached, attaches it.
157
+ *
158
+ * @param ids - The IDs to toggle
159
+ * @param pivotData - Optional data for newly attached records
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * // Toggle tags - attached become detached, detached become attached
164
+ * await post.toggle("tags", [1, 4]);
165
+ * ```
166
+ */
167
+ async toggle(ids, pivotData) {
168
+ if (ids.length === 0) return;
169
+ const existingIds = await this.getExistingPivotIds();
170
+ const toAttach = [];
171
+ const toDetach = [];
172
+ for (const id of ids) if (existingIds.has(id)) toDetach.push(id);
173
+ else toAttach.push(id);
174
+ if (toDetach.length > 0) await this.detach(toDetach);
175
+ if (toAttach.length > 0) await this.attach(toAttach, pivotData);
176
+ }
177
+ /**
178
+ * Gets the pivot table configuration.
179
+ *
180
+ * @returns The pivot configuration object
181
+ */
182
+ getPivotConfig() {
183
+ const conventions = this.relationDefaults;
184
+ const relatedModelName = resolveModelName(this.definition.model);
185
+ const pivotTable = this.definition.pivot ?? inferPivotTable(this.modelClass.name, relatedModelName, conventions);
186
+ const RelatedModel = resolveModelClass(this.definition.model);
187
+ const localKey = this.definition.pivotLocalKey ?? this.modelClass.primaryKey ?? "id";
188
+ const pivotLocalKey = this.definition.localKey ?? inferPivotKey(this.modelClass.name, conventions);
189
+ const pivotForeignKey = this.definition.foreignKey ?? inferPivotKey(relatedModelName, conventions);
190
+ const relatedKey = this.definition.pivotForeignKey ?? RelatedModel?.primaryKey ?? "id";
191
+ return {
192
+ pivotTable,
193
+ localKeyValue: this.model.get(localKey),
194
+ pivotLocalKey,
195
+ pivotForeignKey,
196
+ relatedKey
197
+ };
198
+ }
199
+ /**
200
+ * Gets all currently attached IDs from the pivot table.
201
+ *
202
+ * @returns A set of attached foreign key values
203
+ */
204
+ async getExistingPivotIds() {
205
+ const { pivotTable, localKeyValue, pivotLocalKey, pivotForeignKey } = this.getPivotConfig();
206
+ const records = await this.modelClass.getDataSource().driver.queryBuilder(pivotTable).select([pivotForeignKey]).where(pivotLocalKey, localKeyValue).get();
207
+ const ids = /* @__PURE__ */ new Set();
208
+ for (const record of records) {
209
+ const id = record[pivotForeignKey];
210
+ if (id !== void 0 && id !== null) ids.add(id);
211
+ }
212
+ return ids;
213
+ }
214
+ };
215
+ /**
216
+ * Creates a PivotOperations instance for a model and relation.
217
+ *
218
+ * @param model - The model instance
219
+ * @param relationName - The name of the belongsToMany relation
220
+ * @returns A PivotOperations instance
221
+ * @throws Error if the relation is not a belongsToMany or not defined
222
+ */
223
+ function createPivotOperations(model, relationName) {
224
+ const ModelClass = model.constructor;
225
+ const relations = ModelClass.relations;
226
+ if (!relations || !relations[relationName]) throw new Error(`Relation "${relationName}" is not defined on model "${ModelClass.name}".`);
227
+ return new PivotOperations(model, relationName, relations[relationName], ModelClass);
228
+ }
229
+
230
+ //#endregion
231
+ export { PivotOperations, createPivotOperations };
232
+ //# sourceMappingURL=pivot-operations.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pivot-operations.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/relations/pivot-operations.ts"],"sourcesContent":["/**\n * @fileoverview Pivot table operations for many-to-many relationships.\n *\n * This module provides methods for managing the pivot table in\n * belongsToMany relationships: attach, detach, sync, and toggle.\n *\n * @module @warlock.js/cascade/relations/pivot-operations\n */\n\nimport type { ChildModel, Model } from \"../model/model\";\nimport { resolveModelClass, resolveModelName } from \"../model/register-model\";\nimport { inferPivotKey, inferPivotTable } from \"./key-conventions\";\nimport type { PivotData, PivotIds, RelationDefinition } from \"./types\";\n\n// ============================================================================\n// PIVOT OPERATIONS CLASS\n// ============================================================================\n\n/**\n * Manages pivot table operations for many-to-many relationships.\n *\n * Provides attach, detach, sync, and toggle operations for managing\n * the connections between two models through a pivot table.\n *\n * @example\n * ```typescript\n * const pivotOps = new PivotOperations(post, \"tags\", tagsDefinition);\n *\n * // Attach tags\n * await pivotOps.attach([1, 2, 3]);\n *\n * // Attach with pivot data\n * await pivotOps.attach([4], { addedBy: userId });\n *\n * // Detach specific tags\n * await pivotOps.detach([2]);\n *\n * // Sync (replace all)\n * await pivotOps.sync([1, 5, 6]);\n *\n * // Toggle (attach if missing, detach if present)\n * await pivotOps.toggle([1, 7]);\n * ```\n */\nexport class PivotOperations {\n // ==========================================================================\n // PRIVATE PROPERTIES\n // ==========================================================================\n\n /**\n * The model instance performing the pivot operation.\n */\n private readonly model: Model;\n\n /**\n * The name of the relation.\n */\n private readonly relationName: string;\n\n /**\n * The relation definition with pivot table configuration.\n */\n private readonly definition: RelationDefinition;\n\n /**\n * The model class of the source model.\n */\n private readonly modelClass: ChildModel<Model>;\n\n // ==========================================================================\n // CONSTRUCTOR\n // ==========================================================================\n\n /**\n * Creates a new PivotOperations instance.\n *\n * @param model - The model instance performing the operation\n * @param relationName - The name of the belongsToMany relation\n * @param definition - The relation definition\n * @param modelClass - The model class constructor\n */\n public constructor(\n model: Model,\n relationName: string,\n definition: RelationDefinition,\n modelClass: ChildModel<Model>,\n ) {\n if (definition.type !== \"belongsToMany\") {\n throw new Error(\n `Pivot operations are only available for belongsToMany relations. ` +\n `Relation \"${relationName}\" is of type \"${definition.type}\".`,\n );\n }\n\n this.model = model;\n this.relationName = relationName;\n this.definition = definition;\n this.modelClass = modelClass;\n }\n\n /**\n * Read the configured relation conventions from this pivot's owning\n * data source. Returns `undefined` when no overrides are set.\n */\n private get relationDefaults() {\n try {\n return this.modelClass.getDataSource()?.relationDefaults;\n } catch {\n return undefined;\n }\n }\n\n // ==========================================================================\n // PUBLIC METHODS\n // ==========================================================================\n\n /**\n * Attaches one or more related models via the pivot table.\n *\n * Creates new records in the pivot table linking this model to the\n * specified related model IDs. Existing attachments are not duplicated.\n *\n * @param ids - The IDs of the related models to attach\n * @param pivotData - Optional additional data to store in the pivot record\n *\n * @example\n * ```typescript\n * // Attach tags to a post\n * await post.attach(\"tags\", [1, 2, 3]);\n *\n * // Attach with additional pivot data\n * await post.attach(\"tags\", [4], { addedBy: currentUserId });\n * ```\n */\n public async attach(ids: PivotIds, pivotData?: PivotData): Promise<void> {\n if (ids.length === 0) return;\n\n const { pivotTable, localKeyValue, pivotLocalKey, pivotForeignKey } = this.getPivotConfig();\n\n // Get existing attachments to avoid duplicates\n const existingIds = await this.getExistingPivotIds();\n const newIds = ids.filter((id) => !existingIds.has(id));\n\n if (newIds.length === 0) return;\n\n // Create pivot records\n const records = newIds.map((id) => ({\n [pivotLocalKey]: localKeyValue,\n [pivotForeignKey]: id,\n ...pivotData,\n }));\n\n const dataSource = this.modelClass.getDataSource();\n await dataSource.driver.insertMany(pivotTable, records);\n }\n\n /**\n * Detaches one or more related models from the pivot table.\n *\n * Removes records from the pivot table. If no IDs are specified,\n * all attachments for this model are removed.\n *\n * @param ids - Optional IDs to detach. If omitted, detaches all.\n *\n * @example\n * ```typescript\n * // Detach specific tags\n * await post.detach(\"tags\", [2, 3]);\n *\n * // Detach all tags\n * await post.detach(\"tags\");\n * ```\n */\n public async detach(ids?: PivotIds): Promise<void> {\n const { pivotTable, localKeyValue, pivotLocalKey, pivotForeignKey } = this.getPivotConfig();\n\n const dataSource = this.modelClass.getDataSource();\n\n // Build filter based on local key and optionally foreign keys\n const filter: Record<string, unknown> = { [pivotLocalKey]: localKeyValue };\n\n if (ids && ids.length > 0) {\n // Use $in operator style for filtering by multiple IDs\n filter[pivotForeignKey] = { $in: ids };\n }\n\n await dataSource.driver.deleteMany(pivotTable, filter);\n }\n\n /**\n * Synchronizes the pivot table to match the specified IDs.\n *\n * Attaches any new IDs and detaches any IDs not in the list.\n * After sync, the pivot table will contain exactly the specified IDs.\n *\n * @param ids - The IDs that should be attached after sync\n * @param pivotData - Optional data for newly attached records\n *\n * @example\n * ```typescript\n * // Set tags to exactly [1, 3, 5], removing any others\n * await post.sync(\"tags\", [1, 3, 5]);\n * ```\n */\n public async sync(ids: PivotIds, pivotData?: PivotData): Promise<void> {\n const existingIds = await this.getExistingPivotIds();\n const newIdSet = new Set(ids);\n\n // Find IDs to detach (in existing but not in new)\n const toDetach: PivotIds = [];\n for (const existingId of existingIds) {\n if (!newIdSet.has(existingId)) {\n toDetach.push(existingId);\n }\n }\n\n // Find IDs to attach (in new but not in existing)\n const toAttach = ids.filter((id) => !existingIds.has(id));\n\n // Perform operations\n if (toDetach.length > 0) {\n await this.detach(toDetach);\n }\n\n if (toAttach.length > 0) {\n await this.attach(toAttach, pivotData);\n }\n }\n\n /**\n * Toggles the attachment status of the specified IDs.\n *\n * For each ID: if attached, detaches it; if not attached, attaches it.\n *\n * @param ids - The IDs to toggle\n * @param pivotData - Optional data for newly attached records\n *\n * @example\n * ```typescript\n * // Toggle tags - attached become detached, detached become attached\n * await post.toggle(\"tags\", [1, 4]);\n * ```\n */\n public async toggle(ids: PivotIds, pivotData?: PivotData): Promise<void> {\n if (ids.length === 0) return;\n\n const existingIds = await this.getExistingPivotIds();\n\n const toAttach: PivotIds = [];\n const toDetach: PivotIds = [];\n\n for (const id of ids) {\n if (existingIds.has(id)) {\n toDetach.push(id);\n } else {\n toAttach.push(id);\n }\n }\n\n if (toDetach.length > 0) {\n await this.detach(toDetach);\n }\n\n if (toAttach.length > 0) {\n await this.attach(toAttach, pivotData);\n }\n }\n\n // ==========================================================================\n // PRIVATE METHODS\n // ==========================================================================\n\n /**\n * Gets the pivot table configuration.\n *\n * @returns The pivot configuration object\n */\n private getPivotConfig(): {\n pivotTable: string;\n localKeyValue: unknown;\n pivotLocalKey: string;\n pivotForeignKey: string;\n relatedKey: string;\n } {\n const conventions = this.relationDefaults;\n const relatedModelName = resolveModelName(this.definition.model);\n const pivotTable =\n this.definition.pivot ??\n inferPivotTable(this.modelClass.name, relatedModelName, conventions);\n const RelatedModel = resolveModelClass(this.definition.model);\n const localKey = this.definition.pivotLocalKey ?? this.modelClass.primaryKey ?? \"id\";\n const pivotLocalKey =\n this.definition.localKey ?? inferPivotKey(this.modelClass.name, conventions);\n const pivotForeignKey =\n this.definition.foreignKey ?? inferPivotKey(relatedModelName, conventions);\n const relatedKey = this.definition.pivotForeignKey ?? RelatedModel?.primaryKey ?? \"id\";\n const localKeyValue = this.model.get(localKey);\n\n return {\n pivotTable,\n localKeyValue,\n pivotLocalKey,\n pivotForeignKey,\n relatedKey,\n };\n }\n\n /**\n * Gets all currently attached IDs from the pivot table.\n *\n * @returns A set of attached foreign key values\n */\n private async getExistingPivotIds(): Promise<Set<number | string>> {\n const { pivotTable, localKeyValue, pivotLocalKey, pivotForeignKey } = this.getPivotConfig();\n\n const dataSource = this.modelClass.getDataSource();\n const records = await dataSource.driver\n .queryBuilder(pivotTable)\n .select([pivotForeignKey])\n .where(pivotLocalKey, localKeyValue)\n .get();\n\n const ids = new Set<number | string>();\n for (const record of records as Record<string, unknown>[]) {\n const id = record[pivotForeignKey];\n if (id !== undefined && id !== null) {\n ids.add(id as number | string);\n }\n }\n\n return ids;\n }\n\n}\n\n// ============================================================================\n// FACTORY FUNCTION\n// ============================================================================\n\n/**\n * Creates a PivotOperations instance for a model and relation.\n *\n * @param model - The model instance\n * @param relationName - The name of the belongsToMany relation\n * @returns A PivotOperations instance\n * @throws Error if the relation is not a belongsToMany or not defined\n */\nexport function createPivotOperations(model: Model, relationName: string): PivotOperations {\n const ModelClass = model.constructor as ChildModel<Model>;\n const relations = (ModelClass as unknown as { relations?: Record<string, RelationDefinition> })\n .relations;\n\n if (!relations || !relations[relationName]) {\n throw new Error(`Relation \"${relationName}\" is not defined on model \"${ModelClass.name}\".`);\n }\n\n return new PivotOperations(model, relationName, relations[relationName], ModelClass);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,IAAa,kBAAb,MAA6B;;;;CAQ3B,AAAiB;;;;CAKjB,AAAiB;;;;CAKjB,AAAiB;;;;CAKjB,AAAiB;;;;;;;;;CAcjB,AAAO,YACL,OACA,cACA,YACA,YACA;EACA,IAAI,WAAW,SAAS,iBACtB,MAAM,IAAI,MACR,8EACe,aAAa,gBAAgB,WAAW,KAAK,GAC9D;EAGF,KAAK,QAAQ;EACb,KAAK,eAAe;EACpB,KAAK,aAAa;EAClB,KAAK,aAAa;CACpB;;;;;CAMA,IAAY,mBAAmB;EAC7B,IAAI;GACF,OAAO,KAAK,WAAW,cAAc,GAAG;EAC1C,QAAQ;GACN;EACF;CACF;;;;;;;;;;;;;;;;;;;CAwBA,MAAa,OAAO,KAAe,WAAsC;EACvE,IAAI,IAAI,WAAW,GAAG;EAEtB,MAAM,EAAE,YAAY,eAAe,eAAe,oBAAoB,KAAK,eAAe;EAG1F,MAAM,cAAc,MAAM,KAAK,oBAAoB;EACnD,MAAM,SAAS,IAAI,QAAQ,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;EAEtD,IAAI,OAAO,WAAW,GAAG;EAGzB,MAAM,UAAU,OAAO,KAAK,QAAQ;IACjC,gBAAgB;IAChB,kBAAkB;GACnB,GAAG;EACL,EAAE;EAGF,MADmB,KAAK,WAAW,cACpB,EAAE,OAAO,WAAW,YAAY,OAAO;CACxD;;;;;;;;;;;;;;;;;;CAmBA,MAAa,OAAO,KAA+B;EACjD,MAAM,EAAE,YAAY,eAAe,eAAe,oBAAoB,KAAK,eAAe;EAE1F,MAAM,aAAa,KAAK,WAAW,cAAc;EAGjD,MAAM,SAAkC,GAAG,gBAAgB,cAAc;EAEzE,IAAI,OAAO,IAAI,SAAS,GAEtB,OAAO,mBAAmB,EAAE,KAAK,IAAI;EAGvC,MAAM,WAAW,OAAO,WAAW,YAAY,MAAM;CACvD;;;;;;;;;;;;;;;;CAiBA,MAAa,KAAK,KAAe,WAAsC;EACrE,MAAM,cAAc,MAAM,KAAK,oBAAoB;EACnD,MAAM,WAAW,IAAI,IAAI,GAAG;EAG5B,MAAM,WAAqB,CAAC;EAC5B,KAAK,MAAM,cAAc,aACvB,IAAI,CAAC,SAAS,IAAI,UAAU,GAC1B,SAAS,KAAK,UAAU;EAK5B,MAAM,WAAW,IAAI,QAAQ,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;EAGxD,IAAI,SAAS,SAAS,GACpB,MAAM,KAAK,OAAO,QAAQ;EAG5B,IAAI,SAAS,SAAS,GACpB,MAAM,KAAK,OAAO,UAAU,SAAS;CAEzC;;;;;;;;;;;;;;;CAgBA,MAAa,OAAO,KAAe,WAAsC;EACvE,IAAI,IAAI,WAAW,GAAG;EAEtB,MAAM,cAAc,MAAM,KAAK,oBAAoB;EAEnD,MAAM,WAAqB,CAAC;EAC5B,MAAM,WAAqB,CAAC;EAE5B,KAAK,MAAM,MAAM,KACf,IAAI,YAAY,IAAI,EAAE,GACpB,SAAS,KAAK,EAAE;OAEhB,SAAS,KAAK,EAAE;EAIpB,IAAI,SAAS,SAAS,GACpB,MAAM,KAAK,OAAO,QAAQ;EAG5B,IAAI,SAAS,SAAS,GACpB,MAAM,KAAK,OAAO,UAAU,SAAS;CAEzC;;;;;;CAWA,AAAQ,iBAMN;EACA,MAAM,cAAc,KAAK;EACzB,MAAM,mBAAmB,iBAAiB,KAAK,WAAW,KAAK;EAC/D,MAAM,aACJ,KAAK,WAAW,SAChB,gBAAgB,KAAK,WAAW,MAAM,kBAAkB,WAAW;EACrE,MAAM,eAAe,kBAAkB,KAAK,WAAW,KAAK;EAC5D,MAAM,WAAW,KAAK,WAAW,iBAAiB,KAAK,WAAW,cAAc;EAChF,MAAM,gBACJ,KAAK,WAAW,YAAY,cAAc,KAAK,WAAW,MAAM,WAAW;EAC7E,MAAM,kBACJ,KAAK,WAAW,cAAc,cAAc,kBAAkB,WAAW;EAC3E,MAAM,aAAa,KAAK,WAAW,mBAAmB,cAAc,cAAc;EAGlF,OAAO;GACL;GACA,eAJoB,KAAK,MAAM,IAAI,QAIvB;GACZ;GACA;GACA;EACF;CACF;;;;;;CAOA,MAAc,sBAAqD;EACjE,MAAM,EAAE,YAAY,eAAe,eAAe,oBAAoB,KAAK,eAAe;EAG1F,MAAM,UAAU,MADG,KAAK,WAAW,cACJ,EAAE,OAC9B,aAAa,UAAU,EACvB,OAAO,CAAC,eAAe,CAAC,EACxB,MAAM,eAAe,aAAa,EAClC,IAAI;EAEP,MAAM,sBAAM,IAAI,IAAqB;EACrC,KAAK,MAAM,UAAU,SAAsC;GACzD,MAAM,KAAK,OAAO;GAClB,IAAI,OAAO,UAAa,OAAO,MAC7B,IAAI,IAAI,EAAqB;EAEjC;EAEA,OAAO;CACT;AAEF;;;;;;;;;AAcA,SAAgB,sBAAsB,OAAc,cAAuC;CACzF,MAAM,aAAa,MAAM;CACzB,MAAM,YAAa,WAChB;CAEH,IAAI,CAAC,aAAa,CAAC,UAAU,eAC3B,MAAM,IAAI,MAAM,aAAa,aAAa,6BAA6B,WAAW,KAAK,GAAG;CAG5F,OAAO,IAAI,gBAAgB,OAAO,cAAc,UAAU,eAAe,UAAU;AACrF"}
@@ -0,0 +1,55 @@
1
+ import { RelationDefinition } from "./types.mjs";
2
+ import { Model } from "../model/model.mjs";
3
+
4
+ //#region ../../@warlock.js/cascade/src/relations/relation-hydrator.d.ts
5
+ /**
6
+ * The serialized shape of a single relation entry inside a model snapshot.
7
+ * Each value is either:
8
+ * - `null` — the relation was loaded and resolved to nothing (e.g. belongsTo with no match)
9
+ * - A nested snapshot object `{ data, relations }` — a single related model
10
+ * - An array of nested snapshot objects — a collection relation
11
+ */
12
+ type SerializedRelation = null | ModelSnapshot | ModelSnapshot[];
13
+ /**
14
+ * The plain-object shape produced by `model.toSnapshot()` and consumed by
15
+ * `Model.fromSnapshot()`. The `relations` map uses the same relation names
16
+ * defined in the model's static `relations` property.
17
+ */
18
+ type ModelSnapshot = {
19
+ data: Record<string, unknown>;
20
+ relations: Record<string, SerializedRelation>;
21
+ };
22
+ /**
23
+ * Restores eager-loaded relations from a plain snapshot onto a model instance.
24
+ *
25
+ * Mirrors the interface of RelationLoader but instead of issuing DB queries,
26
+ * it recursively instantiates related models from serialized snapshot data.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Used internally by Model.fromSnapshot():
31
+ * const model = new Chat(snapshot.data);
32
+ * RelationHydrator.hydrate(model, Chat.relations, snapshot.relations);
33
+ * ```
34
+ */
35
+ declare class RelationHydrator {
36
+ /**
37
+ * Hydrate all relations from a snapshot onto `model`.
38
+ *
39
+ * - Looks up each relation name in `relationDefs` to find the target model class.
40
+ * - Recursively calls `fromSnapshot` on nested snapshots so deeply nested
41
+ * relations are fully hydrated as well.
42
+ * - Sets each relation on both `model.loadedRelations` (Map) and as a direct
43
+ * property (`model[name]`) to match the behaviour of RelationLoader.
44
+ * - Intentionally preserves `null` entries — a null relation was explicitly
45
+ * loaded and resolved to nothing; this is different from a missing relation.
46
+ *
47
+ * @param model - The model instance to attach relations to
48
+ * @param relationDefs - The static `relations` map from the model class
49
+ * @param relationsSnapshot - The `relations` portion of a `ModelSnapshot`
50
+ */
51
+ static hydrate(model: Model, relationDefs: Record<string, RelationDefinition>, relationsSnapshot: Record<string, SerializedRelation> | undefined): void;
52
+ }
53
+ //#endregion
54
+ export { ModelSnapshot, RelationHydrator, SerializedRelation };
55
+ //# sourceMappingURL=relation-hydrator.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-hydrator.d.mts","names":[],"sources":["../../../../../../@warlock.js/cascade/src/relations/relation-hydrator.ts"],"mappings":";;;;;;;;AA0C8C;AAoB9C;;KA7BY,kBAAA,UAA4B,aAAA,GAAgB,aAAa;;;;;;KAOzD,aAAA;EACV,IAAA,EAAM,MAAA;EACN,SAAA,EAAW,MAAA,SAAe,kBAAA;AAAA;;;;;;;;;AAuCyC;;;;;cAnBxD,gBAAA;;;;;;;;;;;;;;;;SAgBG,OAAA,CACZ,KAAA,EAAO,KAAA,EACP,YAAA,EAAc,MAAA,SAAe,kBAAA,GAC7B,iBAAA,EAAmB,MAAA,SAAe,kBAAA;AAAA"}
@@ -0,0 +1,52 @@
1
+ import { resolveModelClass } from "../model/register-model.mjs";
2
+
3
+ //#region ../../@warlock.js/cascade/src/relations/relation-hydrator.ts
4
+ /**
5
+ * Restores eager-loaded relations from a plain snapshot onto a model instance.
6
+ *
7
+ * Mirrors the interface of RelationLoader but instead of issuing DB queries,
8
+ * it recursively instantiates related models from serialized snapshot data.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // Used internally by Model.fromSnapshot():
13
+ * const model = new Chat(snapshot.data);
14
+ * RelationHydrator.hydrate(model, Chat.relations, snapshot.relations);
15
+ * ```
16
+ */
17
+ var RelationHydrator = class {
18
+ /**
19
+ * Hydrate all relations from a snapshot onto `model`.
20
+ *
21
+ * - Looks up each relation name in `relationDefs` to find the target model class.
22
+ * - Recursively calls `fromSnapshot` on nested snapshots so deeply nested
23
+ * relations are fully hydrated as well.
24
+ * - Sets each relation on both `model.loadedRelations` (Map) and as a direct
25
+ * property (`model[name]`) to match the behaviour of RelationLoader.
26
+ * - Intentionally preserves `null` entries — a null relation was explicitly
27
+ * loaded and resolved to nothing; this is different from a missing relation.
28
+ *
29
+ * @param model - The model instance to attach relations to
30
+ * @param relationDefs - The static `relations` map from the model class
31
+ * @param relationsSnapshot - The `relations` portion of a `ModelSnapshot`
32
+ */
33
+ static hydrate(model, relationDefs, relationsSnapshot) {
34
+ if (!relationsSnapshot) return;
35
+ for (const [name, snapshot] of Object.entries(relationsSnapshot)) {
36
+ const def = relationDefs[name];
37
+ if (!def) continue;
38
+ const RelModel = resolveModelClass(def.model);
39
+ if (!RelModel) continue;
40
+ let hydrated;
41
+ if (snapshot === null) hydrated = null;
42
+ else if (Array.isArray(snapshot)) hydrated = snapshot.map((item) => RelModel.fromSnapshot(item));
43
+ else hydrated = RelModel.fromSnapshot(snapshot);
44
+ model.loadedRelations.set(name, hydrated);
45
+ model[name] = hydrated;
46
+ }
47
+ }
48
+ };
49
+
50
+ //#endregion
51
+ export { RelationHydrator };
52
+ //# sourceMappingURL=relation-hydrator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-hydrator.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/relations/relation-hydrator.ts"],"sourcesContent":["/**\n * @fileoverview Restores relation data onto model instances from a plain object snapshot.\n *\n * This is the cache-restoration counterpart to RelationLoader (which loads from the DB).\n * It is intentionally decoupled from query execution — it only deals with instantiating\n * related models from already-serialized data.\n *\n * @module @warlock.js/cascade/relations/relation-hydrator\n *\n * @example\n * ```typescript\n * // Restoring a model + its relations from a cache snapshot:\n * const snapshot = await cache.get(key);\n * const chat = Chat.fromSnapshot(snapshot);\n * // chat.unit, chat.organization etc. are fully hydrated Model instances.\n * ```\n */\n\nimport type { ChildModel, Model } from \"../model/model\";\nimport { resolveModelClass } from \"../model/register-model\";\nimport type { RelationDefinition } from \"./types\";\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\n/**\n * The serialized shape of a single relation entry inside a model snapshot.\n * Each value is either:\n * - `null` — the relation was loaded and resolved to nothing (e.g. belongsTo with no match)\n * - A nested snapshot object `{ data, relations }` — a single related model\n * - An array of nested snapshot objects — a collection relation\n */\nexport type SerializedRelation = null | ModelSnapshot | ModelSnapshot[];\n\n/**\n * The plain-object shape produced by `model.toSnapshot()` and consumed by\n * `Model.fromSnapshot()`. The `relations` map uses the same relation names\n * defined in the model's static `relations` property.\n */\nexport type ModelSnapshot = {\n data: Record<string, unknown>;\n relations: Record<string, SerializedRelation>;\n};\n\n// ============================================================================\n// RELATION HYDRATOR CLASS\n// ============================================================================\n\n/**\n * Restores eager-loaded relations from a plain snapshot onto a model instance.\n *\n * Mirrors the interface of RelationLoader but instead of issuing DB queries,\n * it recursively instantiates related models from serialized snapshot data.\n *\n * @example\n * ```typescript\n * // Used internally by Model.fromSnapshot():\n * const model = new Chat(snapshot.data);\n * RelationHydrator.hydrate(model, Chat.relations, snapshot.relations);\n * ```\n */\nexport class RelationHydrator {\n /**\n * Hydrate all relations from a snapshot onto `model`.\n *\n * - Looks up each relation name in `relationDefs` to find the target model class.\n * - Recursively calls `fromSnapshot` on nested snapshots so deeply nested\n * relations are fully hydrated as well.\n * - Sets each relation on both `model.loadedRelations` (Map) and as a direct\n * property (`model[name]`) to match the behaviour of RelationLoader.\n * - Intentionally preserves `null` entries — a null relation was explicitly\n * loaded and resolved to nothing; this is different from a missing relation.\n *\n * @param model - The model instance to attach relations to\n * @param relationDefs - The static `relations` map from the model class\n * @param relationsSnapshot - The `relations` portion of a `ModelSnapshot`\n */\n public static hydrate(\n model: Model,\n relationDefs: Record<string, RelationDefinition>,\n relationsSnapshot: Record<string, SerializedRelation> | undefined,\n ): void {\n if (!relationsSnapshot) return;\n\n for (const [name, snapshot] of Object.entries(relationsSnapshot)) {\n const def = relationDefs[name];\n\n // Relation name not in definition — skip gracefully rather than throwing,\n // since the snapshot could be from an older schema version.\n if (!def) continue;\n\n const RelModel = resolveModelClass(def.model) as ChildModel<Model> | undefined;\n if (!RelModel) continue;\n\n let hydrated: Model | Model[] | null;\n\n if (snapshot === null) {\n // Explicitly loaded relation that resolved to nothing — keep as null.\n hydrated = null;\n } else if (Array.isArray(snapshot)) {\n // Collection relation (hasMany / belongsToMany)\n hydrated = snapshot.map((item) => RelModel.fromSnapshot(item));\n } else {\n // Single relation (belongsTo / hasOne)\n hydrated = RelModel.fromSnapshot(snapshot);\n }\n\n // Set on the Map for getRelation() / isLoaded() API\n model.loadedRelations.set(name, hydrated);\n\n // Set as direct property for convenient access (model.unit, model.posts, …)\n (model as unknown as Record<string, unknown>)[name] = hydrated;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA8DA,IAAa,mBAAb,MAA8B;;;;;;;;;;;;;;;;CAgB5B,OAAc,QACZ,OACA,cACA,mBACM;EACN,IAAI,CAAC,mBAAmB;EAExB,KAAK,MAAM,CAAC,MAAM,aAAa,OAAO,QAAQ,iBAAiB,GAAG;GAChE,MAAM,MAAM,aAAa;GAIzB,IAAI,CAAC,KAAK;GAEV,MAAM,WAAW,kBAAkB,IAAI,KAAK;GAC5C,IAAI,CAAC,UAAU;GAEf,IAAI;GAEJ,IAAI,aAAa,MAEf,WAAW;QACN,IAAI,MAAM,QAAQ,QAAQ,GAE/B,WAAW,SAAS,KAAK,SAAS,SAAS,aAAa,IAAI,CAAC;QAG7D,WAAW,SAAS,aAAa,QAAQ;GAI3C,MAAM,gBAAgB,IAAI,MAAM,QAAQ;GAGxC,AAAC,MAA6C,QAAQ;EACxD;CACF;AACF"}
@@ -0,0 +1,190 @@
1
+ import { ChildModel } from "../model/model.types.mjs";
2
+ import { RelationConstraints } from "./types.mjs";
3
+ import { Model } from "../model/model.mjs";
4
+
5
+ //#region ../../@warlock.js/cascade/src/relations/relation-loader.d.ts
6
+ /**
7
+ * Efficiently loads relationships for one or more model instances.
8
+ *
9
+ * The RelationLoader handles:
10
+ * - Batch loading to prevent N+1 query problems
11
+ * - Nested relation loading via dot notation
12
+ * - Constrained loading with query callbacks
13
+ * - All relation types (hasOne, hasMany, belongsTo, belongsToMany)
14
+ *
15
+ * @template TModel - The type of model being loaded
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const users = await User.query().get();
20
+ * const loader = new RelationLoader(users, User);
21
+ *
22
+ * // Load single relation
23
+ * await loader.load("posts");
24
+ *
25
+ * // Load multiple relations
26
+ * await loader.load(["posts", "organization"]);
27
+ *
28
+ * // Load nested relations
29
+ * await loader.load("posts.comments.author");
30
+ *
31
+ * // Load with constraints
32
+ * await loader.load("posts", {
33
+ * posts: (query) => query.where("isPublished", true),
34
+ * });
35
+ * ```
36
+ */
37
+ declare class RelationLoader<TModel extends Model = Model> {
38
+ /**
39
+ * The model instances to load relations for.
40
+ */
41
+ private readonly models;
42
+ /**
43
+ * The model class constructor.
44
+ */
45
+ private readonly modelClass;
46
+ /**
47
+ * Creates a new RelationLoader instance.
48
+ *
49
+ * @param models - The model instances to load relations for
50
+ * @param modelClass - The model class constructor
51
+ */
52
+ constructor(models: TModel[], modelClass: ChildModel<TModel>);
53
+ /**
54
+ * Read the configured relation conventions from this model's data
55
+ * source. Returns `undefined` when no overrides are set — the inference
56
+ * helpers fall back to framework defaults in that case.
57
+ */
58
+ private get relationDefaults();
59
+ /**
60
+ * Loads one or more relations for all model instances.
61
+ *
62
+ * @param relations - A single relation name, array of names, or constraints object
63
+ * @param constraints - Optional constraints to apply to the loading query
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * // Single relation
68
+ * await loader.load("posts");
69
+ *
70
+ * // Multiple relations
71
+ * await loader.load(["posts", "organization"]);
72
+ *
73
+ * // With constraints
74
+ * await loader.load("posts", {
75
+ * posts: (query) => query.where("status", "active"),
76
+ * });
77
+ * ```
78
+ */
79
+ load(relations: string | string[], constraints?: RelationConstraints): Promise<void>;
80
+ /**
81
+ * Loads a single relation, handling nested relations via dot notation.
82
+ *
83
+ * @param name - The relation name, possibly with dot notation for nesting
84
+ * @param constraint - Optional constraint callback
85
+ */
86
+ private loadRelation;
87
+ /**
88
+ * Loads a hasMany relation for all models.
89
+ *
90
+ * @param name - The relation name
91
+ * @param definition - The relation definition
92
+ * @param constraint - Optional constraint callback
93
+ */
94
+ private loadHasMany;
95
+ /**
96
+ * Loads a hasOne relation for all models.
97
+ *
98
+ * @param name - The relation name
99
+ * @param definition - The relation definition
100
+ * @param constraint - Optional constraint callback
101
+ */
102
+ private loadHasOne;
103
+ /**
104
+ * Loads a belongsTo relation for all models.
105
+ *
106
+ * @param name - The relation name
107
+ * @param definition - The relation definition
108
+ * @param constraint - Optional constraint callback
109
+ */
110
+ private loadBelongsTo;
111
+ /**
112
+ * Loads a belongsToMany relation for all models.
113
+ *
114
+ * @param name - The relation name
115
+ * @param definition - The relation definition
116
+ * @param constraint - Optional constraint callback
117
+ */
118
+ private loadBelongsToMany;
119
+ /**
120
+ * Loads nested relations recursively.
121
+ *
122
+ * @param parentRelation - The name of the parent relation
123
+ * @param remainingPath - The remaining path segments to load
124
+ * @param constraint - Optional constraint callback
125
+ */
126
+ private loadNestedRelations;
127
+ /**
128
+ * Parses a dot-notation relation path into segments.
129
+ *
130
+ * @param path - The relation path (e.g., "posts.comments.author")
131
+ * @returns An array of relation names
132
+ */
133
+ private parseNestedRelation;
134
+ /**
135
+ * Resolves a model class from the registry by name.
136
+ *
137
+ * @param name - The registered model name
138
+ * @returns The model class constructor
139
+ * @throws Error if the model is not found in the registry
140
+ */
141
+ private resolveModelClass;
142
+ /**
143
+ * Gets the relation definition from the model class.
144
+ *
145
+ * @param name - The relation name
146
+ * @returns The relation definition or undefined
147
+ */
148
+ private getRelationDefinition;
149
+ /**
150
+ * Collects unique key values from all models.
151
+ *
152
+ * @param key - The key to collect values for
153
+ * @returns An array of unique key values
154
+ */
155
+ private collectKeyValues;
156
+ /**
157
+ * Groups records by a key value.
158
+ *
159
+ * @param records - The records to group
160
+ * @param key - The key to group by
161
+ * @returns A map of key values to records
162
+ */
163
+ private groupBy;
164
+ /**
165
+ * Sets a relation value on all models using a getter function.
166
+ *
167
+ * @param name - The relation name
168
+ * @param getter - Function that returns the relation value for each model
169
+ */
170
+ private setRelationOnModels;
171
+ /**
172
+ * Gets a loaded relation from a model instance.
173
+ *
174
+ * @param model - The model instance
175
+ * @param name - The relation name
176
+ * @returns The loaded relation value or undefined
177
+ */
178
+ private getLoadedRelation;
179
+ /**
180
+ * Sets a loaded relation on a model instance.
181
+ *
182
+ * @param model - The model instance
183
+ * @param name - The relation name
184
+ * @param value - The relation value
185
+ */
186
+ private setLoadedRelation;
187
+ }
188
+ //#endregion
189
+ export { RelationLoader };
190
+ //# sourceMappingURL=relation-loader.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-loader.d.mts","names":[],"sources":["../../../../../../@warlock.js/cascade/src/relations/relation-loader.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkpB2B;;;;;;;;;;cAjiBd,cAAA,gBAA8B,KAAA,GAAQ,KAAA;;;;mBAQhC,MAAA;;;;mBAKA,UAAA;;;;;;;cAYE,MAAA,EAAQ,MAAA,IAAU,UAAA,EAAY,UAAA,CAAW,MAAA;;;;;;cAUhD,gBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;EAgCC,IAAA,CACX,SAAA,qBACA,WAAA,GAAc,mBAAA,GACb,OAAA;;;;;;;UA4BW,YAAA;;;;;;;;UA8CA,WAAA;;;;;;;;UA2CA,UAAA;;;;;;;;UAiDA,aAAA;;;;;;;;UA8CA,iBAAA;;;;;;;;UAyFA,mBAAA;;;;;;;UA8CN,mBAAA;;;;;;;;UAWA,iBAAA;;;;;;;UAkCA,qBAAA;;;;;;;UAaA,gBAAA;;;;;;;;UAoBA,OAAA;;;;;;;UAsBA,mBAAA;;;;;;;;UAcA,iBAAA;;;;;;;;UAcA,iBAAA;AAAA"}