@warlock.js/cascade 4.0.174 → 4.1.2

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,203 @@
1
+ import { dataSourceRegistry } from "../data-source/data-source-registry.mjs";
2
+
3
+ //#region ../../@warlock.js/cascade/src/utils/once-connected.ts
4
+ /**
5
+ * Execute a callback once the driver is connected.
6
+ *
7
+ * If the driver is already connected, the callback is executed immediately.
8
+ * Otherwise, it waits for the "connected" event.
9
+ *
10
+ * **Use Case:**
11
+ * Useful for ensuring database-dependent operations only run after connection
12
+ * is established, especially in small to medium projects with a single data source.
13
+ *
14
+ * @param dataSourceOrNameOrCallback - Data source instance, name, or callback function
15
+ * @param callback - Function to execute once connected (optional if first param is callback)
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // With default data source (just callback)
20
+ * await connectToDatabase({ database: "myapp" });
21
+ *
22
+ * onceConnected((ds) => {
23
+ * console.log("Database is ready!");
24
+ * console.log("Connected to:", ds.name);
25
+ * });
26
+ * ```
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // With data source name
31
+ * onceConnected("primary", (ds) => {
32
+ * console.log("Primary database is ready!");
33
+ * });
34
+ * ```
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // With data source instance
39
+ * const dataSource = await connectToDatabase({ database: "myapp" });
40
+ *
41
+ * onceConnected(dataSource, (ds) => {
42
+ * console.log("Database is ready!");
43
+ * });
44
+ * ```
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // With driver instance
49
+ * const driver = new MongoDbDriver(config);
50
+ * const dataSource = new DataSource({ name: "primary", driver });
51
+ *
52
+ * onceConnected(dataSource, () => {
53
+ * // Start application server
54
+ * app.listen(3000);
55
+ * });
56
+ *
57
+ * // Connect after setting up the callback
58
+ * await driver.connect();
59
+ * ```
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * // Chaining operations
64
+ * onceConnected(async (ds) => {
65
+ * // Seed database
66
+ * await seedDatabase();
67
+ *
68
+ * // Run migrations
69
+ * await runMigrations();
70
+ *
71
+ * console.log("Database ready!");
72
+ * });
73
+ * ```
74
+ */
75
+ function onceConnected(dataSourceOrNameOrCallback, callback) {
76
+ let targetDataSource;
77
+ let actualCallback;
78
+ if (typeof dataSourceOrNameOrCallback === "function") {
79
+ actualCallback = dataSourceOrNameOrCallback;
80
+ targetDataSource = "default";
81
+ } else {
82
+ if (!callback) throw new Error("Callback is required when providing a data source name or instance.");
83
+ actualCallback = callback;
84
+ targetDataSource = dataSourceOrNameOrCallback;
85
+ }
86
+ let resolvedDataSource;
87
+ if (typeof targetDataSource === "string") try {
88
+ resolvedDataSource = targetDataSource === "default" ? dataSourceRegistry.get() : dataSourceRegistry.get(targetDataSource);
89
+ } catch {}
90
+ else resolvedDataSource = targetDataSource;
91
+ if (resolvedDataSource && resolvedDataSource.driver.isConnected) {
92
+ actualCallback(resolvedDataSource);
93
+ return;
94
+ }
95
+ const listener = (ds) => {
96
+ if (typeof targetDataSource === "string" ? targetDataSource === "default" ? ds.isDefault : ds.name === targetDataSource : ds === targetDataSource) {
97
+ dataSourceRegistry.off("connected", listener);
98
+ actualCallback(ds);
99
+ }
100
+ };
101
+ dataSourceRegistry.on("connected", listener);
102
+ }
103
+ /**
104
+ * Execute a callback once the driver is disconnected.
105
+ *
106
+ * If the driver is already disconnected, the callback is executed immediately.
107
+ * Otherwise, it waits for the "disconnected" event.
108
+ *
109
+ * **Use Case:**
110
+ * Useful for cleanup operations, graceful shutdown, or reconnection logic.
111
+ *
112
+ * @param dataSourceOrNameOrCallback - Data source instance, name, or callback function
113
+ * @param callback - Function to execute once disconnected (optional if first param is callback)
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * // With default data source (just callback)
118
+ * await connectToDatabase({ database: "myapp" });
119
+ *
120
+ * onceDisconnected((ds) => {
121
+ * console.log("Database disconnected!");
122
+ * console.log("Attempting reconnection...");
123
+ * });
124
+ * ```
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * // With data source name
129
+ * onceDisconnected("primary", (ds) => {
130
+ * console.log("Primary database disconnected!");
131
+ * });
132
+ * ```
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * // With data source instance
137
+ * const dataSource = await connectToDatabase({ database: "myapp" });
138
+ *
139
+ * onceDisconnected(dataSource, (ds) => {
140
+ * console.log("Database disconnected!");
141
+ * });
142
+ * ```
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * // Graceful shutdown with default data source
147
+ * process.on("SIGTERM", async () => {
148
+ * console.log("Shutting down...");
149
+ *
150
+ * onceDisconnected(() => {
151
+ * console.log("Database closed, exiting process");
152
+ * process.exit(0);
153
+ * });
154
+ *
155
+ * const dataSource = DataSourceRegistry.getDefault();
156
+ * await dataSource?.driver.disconnect();
157
+ * });
158
+ * ```
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * // Cleanup resources on disconnect
163
+ * onceDisconnected(async (ds) => {
164
+ * // Close file handles
165
+ * await closeFileHandles();
166
+ *
167
+ * // Clear caches
168
+ * clearCaches();
169
+ *
170
+ * console.log("Cleanup complete");
171
+ * });
172
+ * ```
173
+ */
174
+ function onceDisconnected(dataSourceOrNameOrCallback, callback) {
175
+ let targetDataSource;
176
+ let actualCallback;
177
+ if (typeof dataSourceOrNameOrCallback === "function") {
178
+ actualCallback = dataSourceOrNameOrCallback;
179
+ targetDataSource = "default";
180
+ } else {
181
+ if (!callback) throw new Error("Callback is required when providing a data source name or instance.");
182
+ actualCallback = callback;
183
+ targetDataSource = dataSourceOrNameOrCallback;
184
+ }
185
+ let resolvedDataSource;
186
+ if (typeof targetDataSource === "string") try {
187
+ resolvedDataSource = targetDataSource === "default" ? dataSourceRegistry.get() : dataSourceRegistry.get(targetDataSource);
188
+ } catch {}
189
+ else resolvedDataSource = targetDataSource;
190
+ if (resolvedDataSource && !resolvedDataSource.driver.isConnected) {
191
+ actualCallback(resolvedDataSource);
192
+ return;
193
+ }
194
+ const listener = (ds) => {
195
+ if (typeof targetDataSource === "string" ? targetDataSource === "default" ? ds.isDefault : ds.name === targetDataSource : ds === targetDataSource) actualCallback(ds);
196
+ else dataSourceRegistry.once("disconnected", listener);
197
+ };
198
+ dataSourceRegistry.once("disconnected", listener);
199
+ }
200
+
201
+ //#endregion
202
+ export { onceConnected, onceDisconnected };
203
+ //# sourceMappingURL=once-connected.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"once-connected.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/utils/once-connected.ts"],"sourcesContent":["import type { DataSource } from \"../data-source/data-source\";\nimport { dataSourceRegistry } from \"../data-source/data-source-registry\";\n\n/**\n * Execute a callback once the driver is connected.\n *\n * If the driver is already connected, the callback is executed immediately.\n * Otherwise, it waits for the \"connected\" event.\n *\n * **Use Case:**\n * Useful for ensuring database-dependent operations only run after connection\n * is established, especially in small to medium projects with a single data source.\n *\n * @param dataSourceOrNameOrCallback - Data source instance, name, or callback function\n * @param callback - Function to execute once connected (optional if first param is callback)\n *\n * @example\n * ```typescript\n * // With default data source (just callback)\n * await connectToDatabase({ database: \"myapp\" });\n *\n * onceConnected((ds) => {\n * console.log(\"Database is ready!\");\n * console.log(\"Connected to:\", ds.name);\n * });\n * ```\n *\n * @example\n * ```typescript\n * // With data source name\n * onceConnected(\"primary\", (ds) => {\n * console.log(\"Primary database is ready!\");\n * });\n * ```\n *\n * @example\n * ```typescript\n * // With data source instance\n * const dataSource = await connectToDatabase({ database: \"myapp\" });\n *\n * onceConnected(dataSource, (ds) => {\n * console.log(\"Database is ready!\");\n * });\n * ```\n *\n * @example\n * ```typescript\n * // With driver instance\n * const driver = new MongoDbDriver(config);\n * const dataSource = new DataSource({ name: \"primary\", driver });\n *\n * onceConnected(dataSource, () => {\n * // Start application server\n * app.listen(3000);\n * });\n *\n * // Connect after setting up the callback\n * await driver.connect();\n * ```\n *\n * @example\n * ```typescript\n * // Chaining operations\n * onceConnected(async (ds) => {\n * // Seed database\n * await seedDatabase();\n *\n * // Run migrations\n * await runMigrations();\n *\n * console.log(\"Database ready!\");\n * });\n * ```\n */\nexport function onceConnected(\n dataSourceOrNameOrCallback: DataSource | string | ((dataSource: DataSource) => void),\n callback?: (dataSource: DataSource) => void,\n): void {\n // Determine if first parameter is a callback\n let targetDataSource: DataSource | string;\n let actualCallback: (dataSource: DataSource) => void;\n\n if (typeof dataSourceOrNameOrCallback === \"function\") {\n // First param is callback, use default data source\n actualCallback = dataSourceOrNameOrCallback;\n targetDataSource = \"default\";\n } else {\n // First param is data source name or instance\n if (!callback) {\n throw new Error(\"Callback is required when providing a data source name or instance.\");\n }\n actualCallback = callback;\n targetDataSource = dataSourceOrNameOrCallback;\n }\n\n // Try to get the data source if it's a string\n let resolvedDataSource: DataSource | undefined;\n if (typeof targetDataSource === \"string\") {\n try {\n resolvedDataSource =\n targetDataSource === \"default\"\n ? dataSourceRegistry.get()\n : dataSourceRegistry.get(targetDataSource);\n } catch {\n // Data source not registered yet, will wait for event\n }\n } else {\n resolvedDataSource = targetDataSource;\n }\n\n // If data source is resolved and already connected, fire immediately\n if (resolvedDataSource && resolvedDataSource.driver.isConnected) {\n actualCallback(resolvedDataSource);\n return;\n }\n\n // Otherwise, wait for the connected event\n const listener = (ds: DataSource) => {\n const matches =\n typeof targetDataSource === \"string\"\n ? targetDataSource === \"default\"\n ? ds.isDefault\n : ds.name === targetDataSource\n : ds === targetDataSource;\n\n if (matches) {\n // Remove the listener once our condition is met\n dataSourceRegistry.off(\"connected\", listener);\n actualCallback(ds);\n }\n // If it doesn't match, we do nothing and just wait for the next \"connected\" event targeting our DB\n };\n\n dataSourceRegistry.on(\"connected\", listener);\n}\n\n/**\n * Execute a callback once the driver is disconnected.\n *\n * If the driver is already disconnected, the callback is executed immediately.\n * Otherwise, it waits for the \"disconnected\" event.\n *\n * **Use Case:**\n * Useful for cleanup operations, graceful shutdown, or reconnection logic.\n *\n * @param dataSourceOrNameOrCallback - Data source instance, name, or callback function\n * @param callback - Function to execute once disconnected (optional if first param is callback)\n *\n * @example\n * ```typescript\n * // With default data source (just callback)\n * await connectToDatabase({ database: \"myapp\" });\n *\n * onceDisconnected((ds) => {\n * console.log(\"Database disconnected!\");\n * console.log(\"Attempting reconnection...\");\n * });\n * ```\n *\n * @example\n * ```typescript\n * // With data source name\n * onceDisconnected(\"primary\", (ds) => {\n * console.log(\"Primary database disconnected!\");\n * });\n * ```\n *\n * @example\n * ```typescript\n * // With data source instance\n * const dataSource = await connectToDatabase({ database: \"myapp\" });\n *\n * onceDisconnected(dataSource, (ds) => {\n * console.log(\"Database disconnected!\");\n * });\n * ```\n *\n * @example\n * ```typescript\n * // Graceful shutdown with default data source\n * process.on(\"SIGTERM\", async () => {\n * console.log(\"Shutting down...\");\n *\n * onceDisconnected(() => {\n * console.log(\"Database closed, exiting process\");\n * process.exit(0);\n * });\n *\n * const dataSource = DataSourceRegistry.getDefault();\n * await dataSource?.driver.disconnect();\n * });\n * ```\n *\n * @example\n * ```typescript\n * // Cleanup resources on disconnect\n * onceDisconnected(async (ds) => {\n * // Close file handles\n * await closeFileHandles();\n *\n * // Clear caches\n * clearCaches();\n *\n * console.log(\"Cleanup complete\");\n * });\n * ```\n */\nexport function onceDisconnected(\n dataSourceOrNameOrCallback: DataSource | string | ((dataSource: DataSource) => void),\n callback?: (dataSource: DataSource) => void,\n): void {\n // Determine if first parameter is a callback\n let targetDataSource: DataSource | string;\n let actualCallback: (dataSource: DataSource) => void;\n\n if (typeof dataSourceOrNameOrCallback === \"function\") {\n // First param is callback, use default data source\n actualCallback = dataSourceOrNameOrCallback;\n targetDataSource = \"default\";\n } else {\n // First param is data source name or instance\n if (!callback) {\n throw new Error(\"Callback is required when providing a data source name or instance.\");\n }\n actualCallback = callback;\n targetDataSource = dataSourceOrNameOrCallback;\n }\n\n // Try to get the data source if it's a string\n let resolvedDataSource: DataSource | undefined;\n if (typeof targetDataSource === \"string\") {\n try {\n resolvedDataSource =\n targetDataSource === \"default\"\n ? dataSourceRegistry.get()\n : dataSourceRegistry.get(targetDataSource);\n } catch {\n // Data source not registered yet, will wait for event\n }\n } else {\n resolvedDataSource = targetDataSource;\n }\n\n // If data source is resolved and already disconnected, fire immediately\n if (resolvedDataSource && !resolvedDataSource.driver.isConnected) {\n actualCallback(resolvedDataSource);\n return;\n }\n\n // Otherwise, wait for the disconnected event\n const listener = (ds: DataSource) => {\n const matches =\n typeof targetDataSource === \"string\"\n ? targetDataSource === \"default\"\n ? ds.isDefault\n : ds.name === targetDataSource\n : ds === targetDataSource;\n\n if (matches) {\n actualCallback(ds);\n } else {\n // Not the one we're looking for, keep listening\n dataSourceRegistry.once(\"disconnected\", listener);\n }\n };\n\n dataSourceRegistry.once(\"disconnected\", listener);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA,SAAgB,cACd,4BACA,UACM;CAEN,IAAI;CACJ,IAAI;CAEJ,IAAI,OAAO,+BAA+B,YAAY;EAEpD,iBAAiB;EACjB,mBAAmB;CACrB,OAAO;EAEL,IAAI,CAAC,UACH,MAAM,IAAI,MAAM,qEAAqE;EAEvF,iBAAiB;EACjB,mBAAmB;CACrB;CAGA,IAAI;CACJ,IAAI,OAAO,qBAAqB,UAC9B,IAAI;EACF,qBACE,qBAAqB,YACjB,mBAAmB,IAAI,IACvB,mBAAmB,IAAI,gBAAgB;CAC/C,QAAQ,CAER;MAEA,qBAAqB;CAIvB,IAAI,sBAAsB,mBAAmB,OAAO,aAAa;EAC/D,eAAe,kBAAkB;EACjC;CACF;CAGA,MAAM,YAAY,OAAmB;EAQnC,IANE,OAAO,qBAAqB,WACxB,qBAAqB,YACnB,GAAG,YACH,GAAG,SAAS,mBACd,OAAO,kBAEA;GAEX,mBAAmB,IAAI,aAAa,QAAQ;GAC5C,eAAe,EAAE;EACnB;CAEF;CAEA,mBAAmB,GAAG,aAAa,QAAQ;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEA,SAAgB,iBACd,4BACA,UACM;CAEN,IAAI;CACJ,IAAI;CAEJ,IAAI,OAAO,+BAA+B,YAAY;EAEpD,iBAAiB;EACjB,mBAAmB;CACrB,OAAO;EAEL,IAAI,CAAC,UACH,MAAM,IAAI,MAAM,qEAAqE;EAEvF,iBAAiB;EACjB,mBAAmB;CACrB;CAGA,IAAI;CACJ,IAAI,OAAO,qBAAqB,UAC9B,IAAI;EACF,qBACE,qBAAqB,YACjB,mBAAmB,IAAI,IACvB,mBAAmB,IAAI,gBAAgB;CAC/C,QAAQ,CAER;MAEA,qBAAqB;CAIvB,IAAI,sBAAsB,CAAC,mBAAmB,OAAO,aAAa;EAChE,eAAe,kBAAkB;EACjC;CACF;CAGA,MAAM,YAAY,OAAmB;EAQnC,IANE,OAAO,qBAAqB,WACxB,qBAAqB,YACnB,GAAG,YACH,GAAG,SAAS,mBACd,OAAO,kBAGX,eAAe,EAAE;OAGjB,mBAAmB,KAAK,gBAAgB,QAAQ;CAEpD;CAEA,mBAAmB,KAAK,gBAAgB,QAAQ;AAClD"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,11 @@
1
+ import { databaseRulesPlugin } from "./plugins/database-rules-plugin.mjs";
2
+ import { embedValidator } from "./plugins/embed-validator-plugin.mjs";
3
+ import { registerPlugin } from "@warlock.js/seal";
4
+
5
+ //#region ../../@warlock.js/cascade/src/validation/database-seal-plugins.ts
6
+ registerPlugin(embedValidator);
7
+ registerPlugin(databaseRulesPlugin);
8
+
9
+ //#endregion
10
+ export { };
11
+ //# sourceMappingURL=database-seal-plugins.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-seal-plugins.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/validation/database-seal-plugins.ts"],"sourcesContent":["import { registerPlugin } from \"@warlock.js/seal\";\nimport { databaseRulesPlugin } from \"./plugins/database-rules-plugin\";\nimport { embedValidator } from \"./plugins/embed-validator-plugin\";\n\nregisterPlugin(embedValidator);\nregisterPlugin(databaseRulesPlugin);\n\n/**\n * This file registers database seal plugins as a side effect.\n * Import this file to ensure the plugins are registered.\n *\n * @example\n * ```ts\n * import \"./validation/database-seal-plugins\";\n * ```\n */\nexport type DatabaseSealPlugins = typeof embedValidator | typeof databaseRulesPlugin;\n"],"mappings":";;;;;AAIA,eAAe,cAAc;AAC7B,eAAe,mBAAmB"}
@@ -0,0 +1,101 @@
1
+ import { ValidationResult } from "@warlock.js/seal";
2
+
3
+ //#region ../../@warlock.js/cascade/src/validation/database-writer-validation-error.d.ts
4
+ /**
5
+ * Error thrown when model validation fails during database write operations.
6
+ *
7
+ * Contains detailed information about all validation errors,
8
+ * including field paths, error messages, and validation rules that failed.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * try {
13
+ * const user = new User({ name: "", age: -5 });
14
+ * await user.save();
15
+ * } catch (error) {
16
+ * if (error instanceof DatabaseWriterValidationError) {
17
+ * console.log(error.message); // "Validation failed"
18
+ * console.log(error.errors);
19
+ * // [
20
+ * // { path: "name", error: "name is required", rule: "required" },
21
+ * // { path: "age", error: "age must be at least 0", rule: "min" }
22
+ * // ]
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ declare class DatabaseWriterValidationError extends Error {
28
+ /**
29
+ * Array of validation errors from @warlock.js/seal.
30
+ *
31
+ * Each error contains:
32
+ * - `path`: Dot-notation path to the field (e.g., "address.city")
33
+ * - `error`: Human-readable error message
34
+ * - `rule`: The validation rule that failed (e.g., "required", "email")
35
+ * - Additional context depending on the rule
36
+ */
37
+ readonly errors: ValidationResult["errors"];
38
+ /**
39
+ * Create a new DatabaseWriterValidationError.
40
+ *
41
+ * @param message - Error message (typically "Validation failed")
42
+ * @param errors - Array of validation errors from seal
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const error = new DatabaseWriterValidationError("Validation failed", [
47
+ * { path: "email", error: "email must be valid", rule: "email" }
48
+ * ]);
49
+ * ```
50
+ */
51
+ constructor(message: string, errors: ValidationResult["errors"]);
52
+ /**
53
+ * Get a formatted string representation of all validation errors.
54
+ *
55
+ * Provides beautiful, colored terminal output with clear field-by-field breakdown.
56
+ *
57
+ * @returns Multi-line string with all errors, formatted for terminal
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * console.log(error.toString());
62
+ * // ❌ Validation Error: UserModel
63
+ * //
64
+ * // Field: email
65
+ * // Error: Email already exists
66
+ * // Value: "john@example.com"
67
+ * ```
68
+ */
69
+ toString(): string;
70
+ /**
71
+ * Get validation errors for a specific field.
72
+ *
73
+ * @param fieldPath - Dot-notation path to the field
74
+ * @returns Array of errors for that field
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * const emailErrors = error.getFieldErrors("email");
79
+ * console.log(emailErrors);
80
+ * // [{ path: "email", error: "email must be valid", rule: "email" }]
81
+ * ```
82
+ */
83
+ getFieldErrors(fieldPath: string): ValidationResult["errors"];
84
+ /**
85
+ * Check if a specific field has validation errors.
86
+ *
87
+ * @param fieldPath - Dot-notation path to the field
88
+ * @returns True if the field has errors
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * if (error.hasFieldError("email")) {
93
+ * console.log("Email is invalid");
94
+ * }
95
+ * ```
96
+ */
97
+ hasFieldError(fieldPath: string): boolean;
98
+ }
99
+ //#endregion
100
+ export { DatabaseWriterValidationError };
101
+ //# sourceMappingURL=database-writer-validation-error.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-writer-validation-error.d.mts","names":[],"sources":["../../../../../../@warlock.js/cascade/src/validation/database-writer-validation-error.ts"],"mappings":";;;;;AA0BA;;;;;;;;;;;;;;;;;;;;;cAAa,6BAAA,SAAsC,KAAA;EAsJX;AAAA;;;;;;;;EAAA,SA5ItB,MAAA,EAAQ,gBAAA;;;;;;;;;;;;;;cAeL,OAAA,UAAiB,MAAA,EAAQ,gBAAA;;;;;;;;;;;;;;;;;;EA0CrC,QAAA,CAAA;;;;;;;;;;;;;;EAkEA,cAAA,CAAe,SAAA,WAAoB,gBAAA;;;;;;;;;;;;;;EAiBnC,aAAA,CAAc,SAAA;AAAA"}
@@ -0,0 +1,153 @@
1
+ import { colors } from "@mongez/copper";
2
+
3
+ //#region ../../@warlock.js/cascade/src/validation/database-writer-validation-error.ts
4
+ /**
5
+ * Error thrown when model validation fails during database write operations.
6
+ *
7
+ * Contains detailed information about all validation errors,
8
+ * including field paths, error messages, and validation rules that failed.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * try {
13
+ * const user = new User({ name: "", age: -5 });
14
+ * await user.save();
15
+ * } catch (error) {
16
+ * if (error instanceof DatabaseWriterValidationError) {
17
+ * console.log(error.message); // "Validation failed"
18
+ * console.log(error.errors);
19
+ * // [
20
+ * // { path: "name", error: "name is required", rule: "required" },
21
+ * // { path: "age", error: "age must be at least 0", rule: "min" }
22
+ * // ]
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ var DatabaseWriterValidationError = class DatabaseWriterValidationError extends Error {
28
+ /**
29
+ * Array of validation errors from @warlock.js/seal.
30
+ *
31
+ * Each error contains:
32
+ * - `path`: Dot-notation path to the field (e.g., "address.city")
33
+ * - `error`: Human-readable error message
34
+ * - `rule`: The validation rule that failed (e.g., "required", "email")
35
+ * - Additional context depending on the rule
36
+ */
37
+ errors;
38
+ /**
39
+ * Create a new DatabaseWriterValidationError.
40
+ *
41
+ * @param message - Error message (typically "Validation failed")
42
+ * @param errors - Array of validation errors from seal
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const error = new DatabaseWriterValidationError("Validation failed", [
47
+ * { path: "email", error: "email must be valid", rule: "email" }
48
+ * ]);
49
+ * ```
50
+ */
51
+ constructor(message, errors) {
52
+ super(message);
53
+ this.name = "DatabaseWriterValidationError";
54
+ this.errors = errors;
55
+ if (Error.captureStackTrace) Error.captureStackTrace(this, DatabaseWriterValidationError);
56
+ Object.defineProperty(this, "inspect", {
57
+ value: () => this.toString(),
58
+ enumerable: false
59
+ });
60
+ }
61
+ /**
62
+ * Custom inspect method for Node.js console output.
63
+ * This makes console.log and error logging use our beautiful format.
64
+ */
65
+ [Symbol.for("nodejs.util.inspect.custom")]() {
66
+ return this.toString();
67
+ }
68
+ /**
69
+ * Get a formatted string representation of all validation errors.
70
+ *
71
+ * Provides beautiful, colored terminal output with clear field-by-field breakdown.
72
+ *
73
+ * @returns Multi-line string with all errors, formatted for terminal
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * console.log(error.toString());
78
+ * // ❌ Validation Error: UserModel
79
+ * //
80
+ * // Field: email
81
+ * // Error: Email already exists
82
+ * // Value: "john@example.com"
83
+ * ```
84
+ */
85
+ toString() {
86
+ const modelMatch = this.message.match(/\[(\w+)\s+Model\]/);
87
+ const modelName = modelMatch ? modelMatch[1] : "Model";
88
+ const operation = this.message.includes("Insert") ? "Insert" : "Update";
89
+ const lines = [];
90
+ lines.push("");
91
+ lines.push(colors.red(`❌ Validation Error: ${modelName} (${operation})`));
92
+ lines.push("");
93
+ const errorsByField = /* @__PURE__ */ new Map();
94
+ for (const err of this.errors) {
95
+ const fieldName = err.input || "unknown";
96
+ if (!errorsByField.has(fieldName)) errorsByField.set(fieldName, []);
97
+ errorsByField.get(fieldName).push({
98
+ error: err.error,
99
+ type: err.type,
100
+ value: err.value
101
+ });
102
+ }
103
+ for (const [fieldName, fieldErrors] of errorsByField) {
104
+ lines.push(colors.yellow(` Field: ${fieldName}`));
105
+ for (const fieldError of fieldErrors) {
106
+ lines.push(colors.white(` Error: ${fieldError.error}`));
107
+ if (fieldError.value !== void 0) {
108
+ const valueStr = typeof fieldError.value === "string" ? `"${fieldError.value}"` : JSON.stringify(fieldError.value);
109
+ lines.push(colors.gray(` Value: ${valueStr}`));
110
+ }
111
+ if (fieldError.type) lines.push(colors.cyan(` Type: ${fieldError.type}`));
112
+ }
113
+ lines.push("");
114
+ }
115
+ return lines.join("\n");
116
+ }
117
+ /**
118
+ * Get validation errors for a specific field.
119
+ *
120
+ * @param fieldPath - Dot-notation path to the field
121
+ * @returns Array of errors for that field
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const emailErrors = error.getFieldErrors("email");
126
+ * console.log(emailErrors);
127
+ * // [{ path: "email", error: "email must be valid", rule: "email" }]
128
+ * ```
129
+ */
130
+ getFieldErrors(fieldPath) {
131
+ return this.errors.filter((err) => err.input === fieldPath);
132
+ }
133
+ /**
134
+ * Check if a specific field has validation errors.
135
+ *
136
+ * @param fieldPath - Dot-notation path to the field
137
+ * @returns True if the field has errors
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * if (error.hasFieldError("email")) {
142
+ * console.log("Email is invalid");
143
+ * }
144
+ * ```
145
+ */
146
+ hasFieldError(fieldPath) {
147
+ return this.errors.some((err) => err.input === fieldPath);
148
+ }
149
+ };
150
+
151
+ //#endregion
152
+ export { DatabaseWriterValidationError };
153
+ //# sourceMappingURL=database-writer-validation-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-writer-validation-error.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/validation/database-writer-validation-error.ts"],"sourcesContent":["import { colors } from \"@mongez/copper\";\nimport type { ValidationResult } from \"@warlock.js/seal\";\n\n/**\n * Error thrown when model validation fails during database write operations.\n *\n * Contains detailed information about all validation errors,\n * including field paths, error messages, and validation rules that failed.\n *\n * @example\n * ```typescript\n * try {\n * const user = new User({ name: \"\", age: -5 });\n * await user.save();\n * } catch (error) {\n * if (error instanceof DatabaseWriterValidationError) {\n * console.log(error.message); // \"Validation failed\"\n * console.log(error.errors);\n * // [\n * // { path: \"name\", error: \"name is required\", rule: \"required\" },\n * // { path: \"age\", error: \"age must be at least 0\", rule: \"min\" }\n * // ]\n * }\n * }\n * ```\n */\nexport class DatabaseWriterValidationError extends Error {\n /**\n * Array of validation errors from @warlock.js/seal.\n *\n * Each error contains:\n * - `path`: Dot-notation path to the field (e.g., \"address.city\")\n * - `error`: Human-readable error message\n * - `rule`: The validation rule that failed (e.g., \"required\", \"email\")\n * - Additional context depending on the rule\n */\n public readonly errors: ValidationResult[\"errors\"];\n\n /**\n * Create a new DatabaseWriterValidationError.\n *\n * @param message - Error message (typically \"Validation failed\")\n * @param errors - Array of validation errors from seal\n *\n * @example\n * ```typescript\n * const error = new DatabaseWriterValidationError(\"Validation failed\", [\n * { path: \"email\", error: \"email must be valid\", rule: \"email\" }\n * ]);\n * ```\n */\n public constructor(message: string, errors: ValidationResult[\"errors\"]) {\n super(message);\n this.name = \"DatabaseWriterValidationError\";\n this.errors = errors;\n\n // Maintain proper stack trace for where error was thrown (V8 only)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, DatabaseWriterValidationError);\n }\n\n // Override Node.js inspect to use our formatted output\n Object.defineProperty(this, \"inspect\", {\n value: () => this.toString(),\n enumerable: false,\n });\n }\n\n /**\n * Custom inspect method for Node.js console output.\n * This makes console.log and error logging use our beautiful format.\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")](): string {\n return this.toString();\n }\n\n /**\n * Get a formatted string representation of all validation errors.\n *\n * Provides beautiful, colored terminal output with clear field-by-field breakdown.\n *\n * @returns Multi-line string with all errors, formatted for terminal\n *\n * @example\n * ```typescript\n * console.log(error.toString());\n * // ❌ Validation Error: UserModel\n * //\n * // Field: email\n * // Error: Email already exists\n * // Value: \"john@example.com\"\n * ```\n */\n public toString(): string {\n // Extract model name from message (e.g., \"[UserModel Model]\")\n const modelMatch = this.message.match(/\\[(\\w+)\\s+Model\\]/);\n const modelName = modelMatch ? modelMatch[1] : \"Model\";\n const operation = this.message.includes(\"Insert\") ? \"Insert\" : \"Update\";\n\n // Build header\n const lines: string[] = [];\n lines.push(\"\");\n lines.push(colors.red(`❌ Validation Error: ${modelName} (${operation})`));\n lines.push(\"\");\n\n // Group errors by field for better readability\n const errorsByField = new Map<string, Array<{ error: string; type?: string; value?: any }>>();\n\n for (const err of this.errors) {\n const fieldName = err.input || \"unknown\";\n if (!errorsByField.has(fieldName)) {\n errorsByField.set(fieldName, []);\n }\n errorsByField.get(fieldName)!.push({\n error: err.error,\n type: err.type,\n value: (err as any).value,\n });\n }\n\n // Format each field's errors\n for (const [fieldName, fieldErrors] of errorsByField) {\n lines.push(colors.yellow(` Field: ${fieldName}`));\n\n for (const fieldError of fieldErrors) {\n lines.push(colors.white(` Error: ${fieldError.error}`));\n\n if (fieldError.value !== undefined) {\n const valueStr =\n typeof fieldError.value === \"string\"\n ? `\"${fieldError.value}\"`\n : JSON.stringify(fieldError.value);\n lines.push(colors.gray(` Value: ${valueStr}`));\n }\n\n if (fieldError.type) {\n lines.push(colors.cyan(` Type: ${fieldError.type}`));\n }\n }\n\n lines.push(\"\"); // Blank line between fields\n }\n\n return lines.join(\"\\n\");\n }\n\n /**\n * Get validation errors for a specific field.\n *\n * @param fieldPath - Dot-notation path to the field\n * @returns Array of errors for that field\n *\n * @example\n * ```typescript\n * const emailErrors = error.getFieldErrors(\"email\");\n * console.log(emailErrors);\n * // [{ path: \"email\", error: \"email must be valid\", rule: \"email\" }]\n * ```\n */\n public getFieldErrors(fieldPath: string): ValidationResult[\"errors\"] {\n return this.errors.filter((err) => err.input === fieldPath);\n }\n\n /**\n * Check if a specific field has validation errors.\n *\n * @param fieldPath - Dot-notation path to the field\n * @returns True if the field has errors\n *\n * @example\n * ```typescript\n * if (error.hasFieldError(\"email\")) {\n * console.log(\"Email is invalid\");\n * }\n * ```\n */\n public hasFieldError(fieldPath: string): boolean {\n return this.errors.some((err) => err.input === fieldPath);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAa,gCAAb,MAAa,sCAAsC,MAAM;;;;;;;;;;CAUvD,AAAgB;;;;;;;;;;;;;;CAehB,AAAO,YAAY,SAAiB,QAAoC;EACtE,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;EAGd,IAAI,MAAM,mBACR,MAAM,kBAAkB,MAAM,6BAA6B;EAI7D,OAAO,eAAe,MAAM,WAAW;GACrC,aAAa,KAAK,SAAS;GAC3B,YAAY;EACd,CAAC;CACH;;;;;CAMA,CAAC,OAAO,IAAI,4BAA4B,KAAa;EACnD,OAAO,KAAK,SAAS;CACvB;;;;;;;;;;;;;;;;;;CAmBA,AAAO,WAAmB;EAExB,MAAM,aAAa,KAAK,QAAQ,MAAM,mBAAmB;EACzD,MAAM,YAAY,aAAa,WAAW,KAAK;EAC/C,MAAM,YAAY,KAAK,QAAQ,SAAS,QAAQ,IAAI,WAAW;EAG/D,MAAM,QAAkB,CAAC;EACzB,MAAM,KAAK,EAAE;EACb,MAAM,KAAK,OAAO,IAAI,uBAAuB,UAAU,IAAI,UAAU,EAAE,CAAC;EACxE,MAAM,KAAK,EAAE;EAGb,MAAM,gCAAgB,IAAI,IAAkE;EAE5F,KAAK,MAAM,OAAO,KAAK,QAAQ;GAC7B,MAAM,YAAY,IAAI,SAAS;GAC/B,IAAI,CAAC,cAAc,IAAI,SAAS,GAC9B,cAAc,IAAI,WAAW,CAAC,CAAC;GAEjC,cAAc,IAAI,SAAS,EAAG,KAAK;IACjC,OAAO,IAAI;IACX,MAAM,IAAI;IACV,OAAQ,IAAY;GACtB,CAAC;EACH;EAGA,KAAK,MAAM,CAAC,WAAW,gBAAgB,eAAe;GACpD,MAAM,KAAK,OAAO,OAAO,YAAY,WAAW,CAAC;GAEjD,KAAK,MAAM,cAAc,aAAa;IACpC,MAAM,KAAK,OAAO,MAAM,YAAY,WAAW,OAAO,CAAC;IAEvD,IAAI,WAAW,UAAU,QAAW;KAClC,MAAM,WACJ,OAAO,WAAW,UAAU,WACxB,IAAI,WAAW,MAAM,KACrB,KAAK,UAAU,WAAW,KAAK;KACrC,MAAM,KAAK,OAAO,KAAK,YAAY,UAAU,CAAC;IAChD;IAEA,IAAI,WAAW,MACb,MAAM,KAAK,OAAO,KAAK,YAAY,WAAW,MAAM,CAAC;GAEzD;GAEA,MAAM,KAAK,EAAE;EACf;EAEA,OAAO,MAAM,KAAK,IAAI;CACxB;;;;;;;;;;;;;;CAeA,AAAO,eAAe,WAA+C;EACnE,OAAO,KAAK,OAAO,QAAQ,QAAQ,IAAI,UAAU,SAAS;CAC5D;;;;;;;;;;;;;;CAeA,AAAO,cAAc,WAA4B;EAC/C,OAAO,KAAK,OAAO,MAAM,QAAQ,IAAI,UAAU,SAAS;CAC1D;AACF"}
@@ -0,0 +1,2 @@
1
+ import { DatabaseWriterValidationError } from "./database-writer-validation-error.mjs";
2
+ import { BaseQueryRuleOptions, BaseUniqueRuleOptions, ExistsRuleOptions, UniqueRuleOptions } from "./types.mjs";
@@ -0,0 +1,4 @@
1
+ import { DatabaseWriterValidationError } from "./database-writer-validation-error.mjs";
2
+ import "./database-seal-plugins.mjs";
3
+
4
+ export { };
@@ -0,0 +1,26 @@
1
+ import { getModelFromRegistry } from "../../model/register-model.mjs";
2
+ import { Model } from "../../model/model.mjs";
3
+
4
+ //#region ../../@warlock.js/cascade/src/validation/mutators/embed-mutator.ts
5
+ const databaseModelMutator = async (value, context) => {
6
+ let { model: ModelClass } = context?.options || {};
7
+ if (typeof ModelClass === "string") ModelClass = getModelFromRegistry(ModelClass);
8
+ if (!ModelClass) throw new Error(`Model ${ModelClass} not found in registry`);
9
+ if (value instanceof Model) return value;
10
+ if (typeof value === "object" && value?.id) value = Number(value.id);
11
+ if (typeof value !== "number") return value;
12
+ return await ModelClass.find(value);
13
+ };
14
+ const databaseModelsMutator = async (value, context) => {
15
+ if (!Array.isArray(value)) return value;
16
+ let { model: ModelClass } = context?.options || {};
17
+ if (typeof ModelClass === "string") ModelClass = getModelFromRegistry(ModelClass);
18
+ if (!ModelClass) throw new Error(`Model ${ModelClass} not found in registry`);
19
+ if (value.every((item) => item instanceof Model)) return value;
20
+ const ids = value.map((item) => item?.id || item).filter((item) => item !== void 0);
21
+ return await ModelClass.query().whereIn("id", ids).get();
22
+ };
23
+
24
+ //#endregion
25
+ export { databaseModelMutator, databaseModelsMutator };
26
+ //# sourceMappingURL=embed-mutator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-mutator.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/validation/mutators/embed-mutator.ts"],"sourcesContent":["import type { Mutator } from \"@warlock.js/seal\";\nimport { ChildModel, Model } from \"../../model/model\";\nimport { getModelFromRegistry } from \"../../model/register-model\";\n\ntype DatabaseModelMutatorOptions = {\n model: ChildModel<any> | string;\n};\n\nexport const databaseModelMutator: Mutator<DatabaseModelMutatorOptions> = async (\n value,\n context,\n) => {\n let { model: ModelClass } = context?.options || {};\n\n if (typeof ModelClass === \"string\") {\n ModelClass = getModelFromRegistry(ModelClass)!;\n }\n\n if (!ModelClass) {\n throw new Error(`Model ${ModelClass} not found in registry`);\n }\n\n if (value instanceof Model) return value;\n\n if (typeof value === \"object\" && value?.id) {\n value = Number(value.id);\n }\n\n if (typeof value !== \"number\") return value;\n\n return await ModelClass.find(value);\n};\n\nexport const databaseModelsMutator: Mutator<DatabaseModelMutatorOptions> = async (\n value,\n context,\n) => {\n if (!Array.isArray(value)) return value;\n\n let { model: ModelClass } = context?.options || {};\n\n if (typeof ModelClass === \"string\") {\n ModelClass = getModelFromRegistry(ModelClass)!;\n }\n\n if (!ModelClass) {\n throw new Error(`Model ${ModelClass} not found in registry`);\n }\n\n // first, if all values are list of models, then return them.\n if (value.every((item) => item instanceof Model)) return value;\n\n const ids = value.map((item) => item?.id || item).filter((item) => item !== undefined);\n\n return await ModelClass.query().whereIn(\"id\", ids).get();\n};\n"],"mappings":";;;;AAQA,MAAa,uBAA6D,OACxE,OACA,YACG;CACH,IAAI,EAAE,OAAO,eAAe,SAAS,WAAW,CAAC;CAEjD,IAAI,OAAO,eAAe,UACxB,aAAa,qBAAqB,UAAU;CAG9C,IAAI,CAAC,YACH,MAAM,IAAI,MAAM,SAAS,WAAW,uBAAuB;CAG7D,IAAI,iBAAiB,OAAO,OAAO;CAEnC,IAAI,OAAO,UAAU,YAAY,OAAO,IACtC,QAAQ,OAAO,MAAM,EAAE;CAGzB,IAAI,OAAO,UAAU,UAAU,OAAO;CAEtC,OAAO,MAAM,WAAW,KAAK,KAAK;AACpC;AAEA,MAAa,wBAA8D,OACzE,OACA,YACG;CACH,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,OAAO;CAElC,IAAI,EAAE,OAAO,eAAe,SAAS,WAAW,CAAC;CAEjD,IAAI,OAAO,eAAe,UACxB,aAAa,qBAAqB,UAAU;CAG9C,IAAI,CAAC,YACH,MAAM,IAAI,MAAM,SAAS,WAAW,uBAAuB;CAI7D,IAAI,MAAM,OAAO,SAAS,gBAAgB,KAAK,GAAG,OAAO;CAEzD,MAAM,MAAM,MAAM,KAAK,SAAS,MAAM,MAAM,IAAI,EAAE,QAAQ,SAAS,SAAS,MAAS;CAErF,OAAO,MAAM,WAAW,MAAM,EAAE,QAAQ,MAAM,GAAG,EAAE,IAAI;AACzD"}
@@ -0,0 +1,28 @@
1
+ import { ChildModel } from "../../model/model.types.mjs";
2
+ import { Model } from "../../model/model.mjs";
3
+ import { ExistsRuleOptions, UniqueRuleOptions } from "../types.mjs";
4
+ //#region ../../@warlock.js/cascade/src/validation/plugins/database-rules-plugin.d.ts
5
+ declare module "@warlock.js/seal" {
6
+ interface ScalarValidator {
7
+ /** Value must be unique in database */
8
+ unique(model: ChildModel<Model> | string, optionsList?: Partial<UniqueRuleOptions> & {
9
+ errorMessage?: string;
10
+ }): this;
11
+ /** Value must exist in database */
12
+ exists(model: ChildModel<Model> | string, optionsList?: Partial<ExistsRuleOptions> & {
13
+ errorMessage?: string;
14
+ }): this;
15
+ }
16
+ interface StringValidator {
17
+ unique: ScalarValidator["unique"];
18
+ exists: ScalarValidator["exists"];
19
+ }
20
+ interface NumberValidator {
21
+ unique: ScalarValidator["unique"];
22
+ exists: ScalarValidator["exists"];
23
+ }
24
+ }
25
+ /**
26
+ * Cascade's database-rules plugin for Seal.
27
+ */
28
+ //# sourceMappingURL=database-rules-plugin.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-rules-plugin.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/validation/plugins/database-rules-plugin.ts"],"mappings":";;;;;YAmBY,eAAA;IAYgB;IAVxB,MAAA,CACE,KAAA,EAAO,UAAA,CAAW,KAAA,YAClB,WAAA,GAAc,OAAA,CAAQ,iBAAA;MACpB,YAAA;IAAA;IAmBI;IAdR,MAAA,CACE,KAAA,EAAO,UAAA,CAAW,KAAA,YAClB,WAAA,GAAc,OAAA,CAAQ,iBAAA;MACpB,YAAA;IAAA;EAAA;EAAA,UAKI,eAAA;IACR,MAAA,EAAQ,eAAA;IACR,MAAA,EAAQ,eAAA;EAAA;EAAA,UAGA,eAAA;IACR,MAAA,EAAQ,eAAA;IACR,MAAA,EAAQ,eAAA;EAAA;AAAA"}
@@ -0,0 +1,43 @@
1
+ import { existsRule } from "../rules/exists-rule.mjs";
2
+ import { uniqueRule } from "../rules/unique-rule.mjs";
3
+ import { NumberValidator, ScalarValidator, StringValidator } from "@warlock.js/seal";
4
+
5
+ //#region ../../@warlock.js/cascade/src/validation/plugins/database-rules-plugin.ts
6
+ /**
7
+ * Cascade's database-rules plugin for Seal.
8
+ */
9
+ const databaseRulesPlugin = {
10
+ name: "cascade-database-rules",
11
+ version: "1.0.0",
12
+ description: "Adds unique() and exists() database validation methods to Seal scalar validators",
13
+ install() {
14
+ Object.assign(ScalarValidator.prototype, {
15
+ unique(model, optionsList) {
16
+ const { errorMessage, ...options } = optionsList || {};
17
+ return this.addRule(uniqueRule, errorMessage, {
18
+ Model: model,
19
+ ...options
20
+ });
21
+ },
22
+ exists(model, optionsList) {
23
+ const { errorMessage, ...options } = optionsList || {};
24
+ return this.addRule(existsRule, errorMessage, {
25
+ Model: model,
26
+ ...options
27
+ });
28
+ }
29
+ });
30
+ Object.assign(StringValidator.prototype, {
31
+ unique: ScalarValidator.prototype.unique,
32
+ exists: ScalarValidator.prototype.exists
33
+ });
34
+ Object.assign(NumberValidator.prototype, {
35
+ unique: ScalarValidator.prototype.unique,
36
+ exists: ScalarValidator.prototype.exists
37
+ });
38
+ }
39
+ };
40
+
41
+ //#endregion
42
+ export { databaseRulesPlugin };
43
+ //# sourceMappingURL=database-rules-plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-rules-plugin.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/validation/plugins/database-rules-plugin.ts"],"sourcesContent":["/**\n * Database Rules Plugin\n *\n * Injects the `.unique()` and `.exists()` method-chain entries onto Seal's\n * scalar validators. These are the Cascade-owned, DB-aware validation rules.\n *\n * Request-aware variants (`uniqueExceptCurrentUser`, etc.) live in\n * `@warlock.js/core` because they depend on the HTTP request store, which\n * Cascade has no business knowing about.\n */\n\nimport type { SealPlugin } from \"@warlock.js/seal\";\nimport { NumberValidator, ScalarValidator, StringValidator } from \"@warlock.js/seal\";\nimport type { ChildModel, Model } from \"../../model/model\";\nimport { existsRule } from \"../rules/exists-rule\";\nimport { uniqueRule } from \"../rules/unique-rule\";\nimport type { ExistsRuleOptions, UniqueRuleOptions } from \"../types\";\n\ndeclare module \"@warlock.js/seal\" {\n interface ScalarValidator {\n /** Value must be unique in database */\n unique(\n model: ChildModel<Model> | string,\n optionsList?: Partial<UniqueRuleOptions> & {\n errorMessage?: string;\n },\n ): this;\n\n /** Value must exist in database */\n exists(\n model: ChildModel<Model> | string,\n optionsList?: Partial<ExistsRuleOptions> & {\n errorMessage?: string;\n },\n ): this;\n }\n\n interface StringValidator {\n unique: ScalarValidator[\"unique\"];\n exists: ScalarValidator[\"exists\"];\n }\n\n interface NumberValidator {\n unique: ScalarValidator[\"unique\"];\n exists: ScalarValidator[\"exists\"];\n }\n}\n\n/**\n * Cascade's database-rules plugin for Seal.\n */\nexport const databaseRulesPlugin: SealPlugin = {\n name: \"cascade-database-rules\",\n version: \"1.0.0\",\n description: \"Adds unique() and exists() database validation methods to Seal scalar validators\",\n\n install() {\n Object.assign(ScalarValidator.prototype, {\n unique(\n this: ScalarValidator,\n model: ChildModel<Model> | string,\n optionsList?: Partial<UniqueRuleOptions> & {\n errorMessage?: string;\n },\n ) {\n const { errorMessage, ...options } = optionsList || {};\n\n return this.addRule(uniqueRule, errorMessage, {\n Model: model,\n ...options,\n });\n },\n\n exists(\n this: ScalarValidator,\n model: ChildModel<Model> | string,\n optionsList?: Partial<ExistsRuleOptions> & {\n errorMessage?: string;\n },\n ) {\n const { errorMessage, ...options } = optionsList || {};\n\n return this.addRule(existsRule, errorMessage, {\n Model: model,\n ...options,\n });\n },\n });\n\n Object.assign(StringValidator.prototype, {\n unique: ScalarValidator.prototype.unique,\n exists: ScalarValidator.prototype.exists,\n });\n\n Object.assign(NumberValidator.prototype, {\n unique: ScalarValidator.prototype.unique,\n exists: ScalarValidator.prototype.exists,\n });\n },\n};\n"],"mappings":";;;;;;;;AAmDA,MAAa,sBAAkC;CAC7C,MAAM;CACN,SAAS;CACT,aAAa;CAEb,UAAU;EACR,OAAO,OAAO,gBAAgB,WAAW;GACvC,OAEE,OACA,aAGA;IACA,MAAM,EAAE,cAAc,GAAG,YAAY,eAAe,CAAC;IAErD,OAAO,KAAK,QAAQ,YAAY,cAAc;KAC5C,OAAO;KACP,GAAG;IACL,CAAC;GACH;GAEA,OAEE,OACA,aAGA;IACA,MAAM,EAAE,cAAc,GAAG,YAAY,eAAe,CAAC;IAErD,OAAO,KAAK,QAAQ,YAAY,cAAc;KAC5C,OAAO;KACP,GAAG;IACL,CAAC;GACH;EACF,CAAC;EAED,OAAO,OAAO,gBAAgB,WAAW;GACvC,QAAQ,gBAAgB,UAAU;GAClC,QAAQ,gBAAgB,UAAU;EACpC,CAAC;EAED,OAAO,OAAO,gBAAgB,WAAW;GACvC,QAAQ,gBAAgB,UAAU;GAClC,QAAQ,gBAAgB,UAAU;EACpC,CAAC;CACH;AACF"}