@warlock.js/cascade 4.0.47 → 4.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/cjs/context/database-data-source-context.d.ts +29 -0
  2. package/cjs/context/database-data-source-context.d.ts.map +1 -0
  3. package/cjs/context/database-data-source-context.js +28 -0
  4. package/cjs/context/database-data-source-context.js.map +1 -0
  5. package/cjs/context/database-transaction-context.d.ts +31 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +34 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +143 -0
  10. package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
  11. package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
  12. package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
  13. package/cjs/contracts/database-remover.contract.d.ts +104 -0
  14. package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
  15. package/cjs/contracts/database-restorer.contract.d.ts +143 -0
  16. package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
  17. package/cjs/contracts/database-writer.contract.d.ts +119 -0
  18. package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
  19. package/cjs/contracts/driver-blueprint.contract.d.ts +45 -0
  20. package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
  21. package/cjs/contracts/index.d.ts +10 -0
  22. package/cjs/contracts/index.d.ts.map +1 -0
  23. package/cjs/contracts/migration-driver.contract.d.ts +365 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1128 -0
  26. package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
  27. package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
  28. package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
  29. package/cjs/data-source/data-source-registry.d.ts +104 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +138 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +106 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +77 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +253 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +389 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongo/mongo-id-generator.d.ts +116 -0
  42. package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  43. package/cjs/drivers/mongo/mongo-id-generator.js +149 -0
  44. package/cjs/drivers/mongo/mongo-id-generator.js.map +1 -0
  45. package/cjs/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  46. package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongo/mongo-migration-driver.js +524 -0
  48. package/cjs/drivers/mongo/mongo-migration-driver.js.map +1 -0
  49. package/cjs/drivers/mongo/mongo-query-builder.d.ts +922 -0
  50. package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  51. package/cjs/drivers/mongo/mongo-query-builder.js +1740 -0
  52. package/cjs/drivers/mongo/mongo-query-builder.js.map +1 -0
  53. package/cjs/drivers/mongo/mongo-query-operations.d.ts +226 -0
  54. package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  55. package/cjs/drivers/mongo/mongo-query-operations.js +270 -0
  56. package/cjs/drivers/mongo/mongo-query-operations.js.map +1 -0
  57. package/cjs/drivers/mongo/mongo-query-parser.d.ts +262 -0
  58. package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  59. package/cjs/drivers/mongo/mongo-query-parser.js +1351 -0
  60. package/cjs/drivers/mongo/mongo-query-parser.js.map +1 -0
  61. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  62. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  63. package/cjs/drivers/mongo/mongo-sync-adapter.js +146 -0
  64. package/cjs/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  65. package/cjs/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  66. package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  67. package/cjs/drivers/mongo/mongodb-blueprint.js +51 -0
  68. package/cjs/drivers/mongo/mongodb-blueprint.js.map +1 -0
  69. package/cjs/drivers/mongo/mongodb-driver.d.ts +188 -0
  70. package/cjs/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  71. package/cjs/drivers/mongo/mongodb-driver.js +411 -0
  72. package/cjs/drivers/mongo/mongodb-driver.js.map +1 -0
  73. package/cjs/drivers/mongo/types.d.ts +43 -0
  74. package/cjs/drivers/mongo/types.d.ts.map +1 -0
  75. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  76. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  77. package/cjs/errors/missing-data-source.error.js +29 -0
  78. package/cjs/errors/missing-data-source.error.js.map +1 -0
  79. package/cjs/events/model-events.d.ts +231 -0
  80. package/cjs/events/model-events.d.ts.map +1 -0
  81. package/cjs/events/model-events.js +259 -0
  82. package/cjs/events/model-events.js.map +1 -0
  83. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  84. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  85. package/cjs/expressions/aggregate-expressions.js +221 -0
  86. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  87. package/cjs/expressions/index.d.ts +2 -0
  88. package/cjs/expressions/index.d.ts.map +1 -0
  89. package/cjs/index.d.ts +41 -0
  90. package/cjs/index.d.ts.map +1 -0
  91. package/cjs/index.js +1 -267
  92. package/cjs/index.js.map +1 -1
  93. package/cjs/migration/column-builder.d.ts +167 -0
  94. package/cjs/migration/column-builder.d.ts.map +1 -0
  95. package/cjs/migration/column-builder.js +217 -0
  96. package/cjs/migration/column-builder.js.map +1 -0
  97. package/cjs/migration/foreign-key-builder.d.ts +110 -0
  98. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  99. package/cjs/migration/foreign-key-builder.js +129 -0
  100. package/cjs/migration/foreign-key-builder.js.map +1 -0
  101. package/cjs/migration/index.d.ts +6 -0
  102. package/cjs/migration/index.d.ts.map +1 -0
  103. package/cjs/migration/migration-runner.d.ts +231 -0
  104. package/cjs/migration/migration-runner.d.ts.map +1 -0
  105. package/cjs/migration/migration-runner.js +443 -0
  106. package/cjs/migration/migration-runner.js.map +1 -0
  107. package/cjs/migration/migration.js +1346 -0
  108. package/cjs/migration/migration.js.map +1 -0
  109. package/cjs/migration/types.d.ts +132 -0
  110. package/cjs/migration/types.d.ts.map +1 -0
  111. package/cjs/model/model.d.ts +1267 -0
  112. package/cjs/model/model.d.ts.map +1 -0
  113. package/cjs/model/model.js +1463 -0
  114. package/cjs/model/model.js.map +1 -0
  115. package/cjs/model/register-model.d.ts +80 -0
  116. package/cjs/model/register-model.d.ts.map +1 -0
  117. package/cjs/model/register-model.js +91 -0
  118. package/cjs/model/register-model.js.map +1 -0
  119. package/cjs/remover/database-remover.d.ts +100 -0
  120. package/cjs/remover/database-remover.d.ts.map +1 -0
  121. package/cjs/remover/database-remover.js +209 -0
  122. package/cjs/remover/database-remover.js.map +1 -0
  123. package/cjs/restorer/database-restorer.d.ts +131 -0
  124. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  125. package/cjs/restorer/database-restorer.js +425 -0
  126. package/cjs/restorer/database-restorer.js.map +1 -0
  127. package/cjs/sync/index.d.ts +12 -0
  128. package/cjs/sync/index.d.ts.map +1 -0
  129. package/cjs/sync/model-events.d.ts +62 -0
  130. package/cjs/sync/model-events.d.ts.map +1 -0
  131. package/cjs/sync/model-events.js +49 -0
  132. package/cjs/sync/model-events.js.map +1 -0
  133. package/cjs/sync/model-sync-operation.d.ts +163 -0
  134. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  135. package/cjs/sync/model-sync-operation.js +292 -0
  136. package/cjs/sync/model-sync-operation.js.map +1 -0
  137. package/cjs/sync/model-sync.d.ts +130 -0
  138. package/cjs/sync/model-sync.d.ts.map +1 -0
  139. package/cjs/sync/model-sync.js +178 -0
  140. package/cjs/sync/model-sync.js.map +1 -0
  141. package/cjs/sync/sync-context.d.ts +70 -0
  142. package/cjs/sync/sync-context.d.ts.map +1 -0
  143. package/cjs/sync/sync-context.js +101 -0
  144. package/cjs/sync/sync-context.js.map +1 -0
  145. package/cjs/sync/sync-manager.d.ts +213 -0
  146. package/cjs/sync/sync-manager.d.ts.map +1 -0
  147. package/cjs/sync/sync-manager.js +689 -0
  148. package/cjs/sync/sync-manager.js.map +1 -0
  149. package/cjs/sync/types.d.ts +289 -0
  150. package/cjs/sync/types.d.ts.map +1 -0
  151. package/cjs/types.d.ts +45 -0
  152. package/cjs/types.d.ts.map +1 -0
  153. package/cjs/utils/connect-to-database.d.ts +246 -0
  154. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  155. package/cjs/utils/connect-to-database.js +92 -0
  156. package/cjs/utils/connect-to-database.js.map +1 -0
  157. package/cjs/utils/database-writer.utils.d.ts +15 -0
  158. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  159. package/cjs/utils/database-writer.utils.js +14 -0
  160. package/cjs/utils/database-writer.utils.js.map +1 -0
  161. package/cjs/utils/define-model.js +100 -0
  162. package/cjs/utils/define-model.js.map +1 -0
  163. package/cjs/utils/once-connected.d.ts +146 -0
  164. package/cjs/utils/once-connected.d.ts.map +1 -0
  165. package/cjs/utils/once-connected.js +252 -0
  166. package/cjs/utils/once-connected.js.map +1 -0
  167. package/cjs/validation/database-seal-plugins.d.ts +2 -0
  168. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  169. package/cjs/validation/database-seal-plugins.js +4 -0
  170. package/cjs/validation/database-seal-plugins.js.map +1 -0
  171. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  172. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  173. package/cjs/validation/database-writer-validation-error.js +160 -0
  174. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  175. package/cjs/validation/index.d.ts +3 -0
  176. package/cjs/validation/index.d.ts.map +1 -0
  177. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  178. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  179. package/cjs/validation/mutators/embed-mutator.js +33 -0
  180. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  181. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  182. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  183. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  184. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  185. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  186. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  187. package/cjs/validation/rules/database-model-rule.js +27 -0
  188. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  189. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  190. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  191. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  192. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  193. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  194. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  195. package/cjs/validation/validators/embed-validator.js +42 -0
  196. package/cjs/validation/validators/embed-validator.js.map +1 -0
  197. package/cjs/writer/database-writer.d.ts +181 -0
  198. package/cjs/writer/database-writer.d.ts.map +1 -0
  199. package/cjs/writer/database-writer.js +402 -0
  200. package/cjs/writer/database-writer.js.map +1 -0
  201. package/esm/context/database-data-source-context.d.ts +29 -0
  202. package/esm/context/database-data-source-context.d.ts.map +1 -0
  203. package/esm/context/database-data-source-context.js +28 -0
  204. package/esm/context/database-data-source-context.js.map +1 -0
  205. package/esm/context/database-transaction-context.d.ts +31 -0
  206. package/esm/context/database-transaction-context.d.ts.map +1 -0
  207. package/esm/context/database-transaction-context.js +34 -0
  208. package/esm/context/database-transaction-context.js.map +1 -0
  209. package/esm/contracts/database-driver.contract.d.ts +143 -0
  210. package/esm/contracts/database-driver.contract.d.ts.map +1 -0
  211. package/esm/contracts/database-id-generator.contract.d.ts +109 -0
  212. package/esm/contracts/database-id-generator.contract.d.ts.map +1 -0
  213. package/esm/contracts/database-remover.contract.d.ts +104 -0
  214. package/esm/contracts/database-remover.contract.d.ts.map +1 -0
  215. package/esm/contracts/database-restorer.contract.d.ts +143 -0
  216. package/esm/contracts/database-restorer.contract.d.ts.map +1 -0
  217. package/esm/contracts/database-writer.contract.d.ts +119 -0
  218. package/esm/contracts/database-writer.contract.d.ts.map +1 -0
  219. package/esm/contracts/driver-blueprint.contract.d.ts +45 -0
  220. package/esm/contracts/driver-blueprint.contract.d.ts.map +1 -0
  221. package/esm/contracts/index.d.ts +10 -0
  222. package/esm/contracts/index.d.ts.map +1 -0
  223. package/esm/contracts/migration-driver.contract.d.ts +365 -0
  224. package/esm/contracts/migration-driver.contract.d.ts.map +1 -0
  225. package/esm/contracts/query-builder.contract.d.ts +1128 -0
  226. package/esm/contracts/query-builder.contract.d.ts.map +1 -0
  227. package/esm/contracts/sync-adapter.contract.d.ts +58 -0
  228. package/esm/contracts/sync-adapter.contract.d.ts.map +1 -0
  229. package/esm/data-source/data-source-registry.d.ts +104 -0
  230. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  231. package/esm/data-source/data-source-registry.js +138 -0
  232. package/esm/data-source/data-source-registry.js.map +1 -0
  233. package/esm/data-source/data-source.d.ts +106 -0
  234. package/esm/data-source/data-source.d.ts.map +1 -0
  235. package/esm/data-source/data-source.js +77 -0
  236. package/esm/data-source/data-source.js.map +1 -0
  237. package/esm/database-dirty-tracker.d.ts +253 -0
  238. package/esm/database-dirty-tracker.d.ts.map +1 -0
  239. package/esm/database-dirty-tracker.js +389 -0
  240. package/esm/database-dirty-tracker.js.map +1 -0
  241. package/esm/drivers/mongo/mongo-id-generator.d.ts +116 -0
  242. package/esm/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  243. package/esm/drivers/mongo/mongo-id-generator.js +149 -0
  244. package/esm/drivers/mongo/mongo-id-generator.js.map +1 -0
  245. package/esm/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  246. package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  247. package/esm/drivers/mongo/mongo-migration-driver.js +524 -0
  248. package/esm/drivers/mongo/mongo-migration-driver.js.map +1 -0
  249. package/esm/drivers/mongo/mongo-query-builder.d.ts +922 -0
  250. package/esm/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  251. package/esm/drivers/mongo/mongo-query-builder.js +1740 -0
  252. package/esm/drivers/mongo/mongo-query-builder.js.map +1 -0
  253. package/esm/drivers/mongo/mongo-query-operations.d.ts +226 -0
  254. package/esm/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  255. package/esm/drivers/mongo/mongo-query-operations.js +270 -0
  256. package/esm/drivers/mongo/mongo-query-operations.js.map +1 -0
  257. package/esm/drivers/mongo/mongo-query-parser.d.ts +262 -0
  258. package/esm/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  259. package/esm/drivers/mongo/mongo-query-parser.js +1351 -0
  260. package/esm/drivers/mongo/mongo-query-parser.js.map +1 -0
  261. package/esm/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  262. package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  263. package/esm/drivers/mongo/mongo-sync-adapter.js +146 -0
  264. package/esm/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  265. package/esm/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  266. package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  267. package/esm/drivers/mongo/mongodb-blueprint.js +51 -0
  268. package/esm/drivers/mongo/mongodb-blueprint.js.map +1 -0
  269. package/esm/drivers/mongo/mongodb-driver.d.ts +188 -0
  270. package/esm/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  271. package/esm/drivers/mongo/mongodb-driver.js +411 -0
  272. package/esm/drivers/mongo/mongodb-driver.js.map +1 -0
  273. package/esm/drivers/mongo/types.d.ts +43 -0
  274. package/esm/drivers/mongo/types.d.ts.map +1 -0
  275. package/esm/errors/missing-data-source.error.d.ts +22 -0
  276. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  277. package/esm/errors/missing-data-source.error.js +29 -0
  278. package/esm/errors/missing-data-source.error.js.map +1 -0
  279. package/esm/events/model-events.d.ts +231 -0
  280. package/esm/events/model-events.d.ts.map +1 -0
  281. package/esm/events/model-events.js +259 -0
  282. package/esm/events/model-events.js.map +1 -0
  283. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  284. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  285. package/esm/expressions/aggregate-expressions.js +221 -0
  286. package/esm/expressions/aggregate-expressions.js.map +1 -0
  287. package/esm/expressions/index.d.ts +2 -0
  288. package/esm/expressions/index.d.ts.map +1 -0
  289. package/esm/index.d.ts +41 -0
  290. package/esm/index.d.ts.map +1 -0
  291. package/esm/index.js +1 -40
  292. package/esm/index.js.map +1 -1
  293. package/esm/migration/column-builder.d.ts +167 -0
  294. package/esm/migration/column-builder.d.ts.map +1 -0
  295. package/esm/migration/column-builder.js +217 -0
  296. package/esm/migration/column-builder.js.map +1 -0
  297. package/esm/migration/foreign-key-builder.d.ts +110 -0
  298. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  299. package/esm/migration/foreign-key-builder.js +129 -0
  300. package/esm/migration/foreign-key-builder.js.map +1 -0
  301. package/esm/migration/index.d.ts +6 -0
  302. package/esm/migration/index.d.ts.map +1 -0
  303. package/esm/migration/migration-runner.d.ts +231 -0
  304. package/esm/migration/migration-runner.d.ts.map +1 -0
  305. package/esm/migration/migration-runner.js +443 -0
  306. package/esm/migration/migration-runner.js.map +1 -0
  307. package/esm/migration/migration.js +1346 -0
  308. package/esm/migration/migration.js.map +1 -0
  309. package/esm/migration/types.d.ts +132 -0
  310. package/esm/migration/types.d.ts.map +1 -0
  311. package/esm/model/model.d.ts +1267 -0
  312. package/esm/model/model.d.ts.map +1 -0
  313. package/esm/model/model.js +1463 -0
  314. package/esm/model/model.js.map +1 -0
  315. package/esm/model/register-model.d.ts +80 -0
  316. package/esm/model/register-model.d.ts.map +1 -0
  317. package/esm/model/register-model.js +91 -0
  318. package/esm/model/register-model.js.map +1 -0
  319. package/esm/remover/database-remover.d.ts +100 -0
  320. package/esm/remover/database-remover.d.ts.map +1 -0
  321. package/esm/remover/database-remover.js +209 -0
  322. package/esm/remover/database-remover.js.map +1 -0
  323. package/esm/restorer/database-restorer.d.ts +131 -0
  324. package/esm/restorer/database-restorer.d.ts.map +1 -0
  325. package/esm/restorer/database-restorer.js +425 -0
  326. package/esm/restorer/database-restorer.js.map +1 -0
  327. package/esm/sync/index.d.ts +12 -0
  328. package/esm/sync/index.d.ts.map +1 -0
  329. package/esm/sync/model-events.d.ts +62 -0
  330. package/esm/sync/model-events.d.ts.map +1 -0
  331. package/esm/sync/model-events.js +49 -0
  332. package/esm/sync/model-events.js.map +1 -0
  333. package/esm/sync/model-sync-operation.d.ts +163 -0
  334. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  335. package/esm/sync/model-sync-operation.js +292 -0
  336. package/esm/sync/model-sync-operation.js.map +1 -0
  337. package/esm/sync/model-sync.d.ts +130 -0
  338. package/esm/sync/model-sync.d.ts.map +1 -0
  339. package/esm/sync/model-sync.js +178 -0
  340. package/esm/sync/model-sync.js.map +1 -0
  341. package/esm/sync/sync-context.d.ts +70 -0
  342. package/esm/sync/sync-context.d.ts.map +1 -0
  343. package/esm/sync/sync-context.js +101 -0
  344. package/esm/sync/sync-context.js.map +1 -0
  345. package/esm/sync/sync-manager.d.ts +213 -0
  346. package/esm/sync/sync-manager.d.ts.map +1 -0
  347. package/esm/sync/sync-manager.js +689 -0
  348. package/esm/sync/sync-manager.js.map +1 -0
  349. package/esm/sync/types.d.ts +289 -0
  350. package/esm/sync/types.d.ts.map +1 -0
  351. package/esm/types.d.ts +45 -0
  352. package/esm/types.d.ts.map +1 -0
  353. package/esm/utils/connect-to-database.d.ts +246 -0
  354. package/esm/utils/connect-to-database.d.ts.map +1 -0
  355. package/esm/utils/connect-to-database.js +92 -0
  356. package/esm/utils/connect-to-database.js.map +1 -0
  357. package/esm/utils/database-writer.utils.d.ts +15 -0
  358. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  359. package/esm/utils/database-writer.utils.js +14 -0
  360. package/esm/utils/database-writer.utils.js.map +1 -0
  361. package/esm/utils/define-model.js +100 -0
  362. package/esm/utils/define-model.js.map +1 -0
  363. package/esm/utils/once-connected.d.ts +146 -0
  364. package/esm/utils/once-connected.d.ts.map +1 -0
  365. package/esm/utils/once-connected.js +252 -0
  366. package/esm/utils/once-connected.js.map +1 -0
  367. package/esm/validation/database-seal-plugins.d.ts +2 -0
  368. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  369. package/esm/validation/database-seal-plugins.js +4 -0
  370. package/esm/validation/database-seal-plugins.js.map +1 -0
  371. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  372. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  373. package/esm/validation/database-writer-validation-error.js +160 -0
  374. package/esm/validation/database-writer-validation-error.js.map +1 -0
  375. package/esm/validation/index.d.ts +3 -0
  376. package/esm/validation/index.d.ts.map +1 -0
  377. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  378. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  379. package/esm/validation/mutators/embed-mutator.js +33 -0
  380. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  381. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  382. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  383. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  384. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  385. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  386. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  387. package/esm/validation/rules/database-model-rule.js +27 -0
  388. package/esm/validation/rules/database-model-rule.js.map +1 -0
  389. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  390. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  391. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  392. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  393. package/esm/validation/validators/embed-validator.d.ts +21 -0
  394. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  395. package/esm/validation/validators/embed-validator.js +42 -0
  396. package/esm/validation/validators/embed-validator.js.map +1 -0
  397. package/esm/writer/database-writer.d.ts +181 -0
  398. package/esm/writer/database-writer.d.ts.map +1 -0
  399. package/esm/writer/database-writer.js +402 -0
  400. package/esm/writer/database-writer.js.map +1 -0
  401. package/package.json +61 -52
@@ -0,0 +1,97 @@
1
+ import type { ValidationResult } from "@warlock.js/seal";
2
+ /**
3
+ * Error thrown when model validation fails during database write operations.
4
+ *
5
+ * Contains detailed information about all validation errors,
6
+ * including field paths, error messages, and validation rules that failed.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * try {
11
+ * const user = new User({ name: "", age: -5 });
12
+ * await user.save();
13
+ * } catch (error) {
14
+ * if (error instanceof DatabaseWriterValidationError) {
15
+ * console.log(error.message); // "Validation failed"
16
+ * console.log(error.errors);
17
+ * // [
18
+ * // { path: "name", error: "name is required", rule: "required" },
19
+ * // { path: "age", error: "age must be at least 0", rule: "min" }
20
+ * // ]
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ export declare class DatabaseWriterValidationError extends Error {
26
+ /**
27
+ * Array of validation errors from @warlock.js/seal.
28
+ *
29
+ * Each error contains:
30
+ * - `path`: Dot-notation path to the field (e.g., "address.city")
31
+ * - `error`: Human-readable error message
32
+ * - `rule`: The validation rule that failed (e.g., "required", "email")
33
+ * - Additional context depending on the rule
34
+ */
35
+ readonly errors: ValidationResult["errors"];
36
+ /**
37
+ * Create a new DatabaseWriterValidationError.
38
+ *
39
+ * @param message - Error message (typically "Validation failed")
40
+ * @param errors - Array of validation errors from seal
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const error = new DatabaseWriterValidationError("Validation failed", [
45
+ * { path: "email", error: "email must be valid", rule: "email" }
46
+ * ]);
47
+ * ```
48
+ */
49
+ constructor(message: string, errors: ValidationResult["errors"]);
50
+ /**
51
+ * Get a formatted string representation of all validation errors.
52
+ *
53
+ * Provides beautiful, colored terminal output with clear field-by-field breakdown.
54
+ *
55
+ * @returns Multi-line string with all errors, formatted for terminal
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * console.log(error.toString());
60
+ * // ❌ Validation Error: UserModel
61
+ * //
62
+ * // Field: email
63
+ * // Error: Email already exists
64
+ * // Value: "john@example.com"
65
+ * ```
66
+ */
67
+ toString(): string;
68
+ /**
69
+ * Get validation errors for a specific field.
70
+ *
71
+ * @param fieldPath - Dot-notation path to the field
72
+ * @returns Array of errors for that field
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * const emailErrors = error.getFieldErrors("email");
77
+ * console.log(emailErrors);
78
+ * // [{ path: "email", error: "email must be valid", rule: "email" }]
79
+ * ```
80
+ */
81
+ getFieldErrors(fieldPath: string): ValidationResult["errors"];
82
+ /**
83
+ * Check if a specific field has validation errors.
84
+ *
85
+ * @param fieldPath - Dot-notation path to the field
86
+ * @returns True if the field has errors
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * if (error.hasFieldError("email")) {
91
+ * console.log("Email is invalid");
92
+ * }
93
+ * ```
94
+ */
95
+ hasFieldError(fieldPath: string): boolean;
96
+ }
97
+ //# sourceMappingURL=database-writer-validation-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-writer-validation-error.d.ts","sourceRoot":"","sources":["../../src/validation/database-writer-validation-error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD;;;;;;;;OAQG;IACH,SAAgB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEnD;;;;;;;;;;;;OAYG;gBACgB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IAyBtE;;;;;;;;;;;;;;;;OAgBG;IACI,QAAQ,IAAI,MAAM;IAqDzB;;;;;;;;;;;;OAYG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAIpE;;;;;;;;;;;;OAYG;IACI,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGjD"}
@@ -0,0 +1,160 @@
1
+ 'use strict';var copper=require('@mongez/copper');/**
2
+ * Error thrown when model validation fails during database write operations.
3
+ *
4
+ * Contains detailed information about all validation errors,
5
+ * including field paths, error messages, and validation rules that failed.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * try {
10
+ * const user = new User({ name: "", age: -5 });
11
+ * await user.save();
12
+ * } catch (error) {
13
+ * if (error instanceof DatabaseWriterValidationError) {
14
+ * console.log(error.message); // "Validation failed"
15
+ * console.log(error.errors);
16
+ * // [
17
+ * // { path: "name", error: "name is required", rule: "required" },
18
+ * // { path: "age", error: "age must be at least 0", rule: "min" }
19
+ * // ]
20
+ * }
21
+ * }
22
+ * ```
23
+ */
24
+ class DatabaseWriterValidationError extends Error {
25
+ /**
26
+ * Array of validation errors from @warlock.js/seal.
27
+ *
28
+ * Each error contains:
29
+ * - `path`: Dot-notation path to the field (e.g., "address.city")
30
+ * - `error`: Human-readable error message
31
+ * - `rule`: The validation rule that failed (e.g., "required", "email")
32
+ * - Additional context depending on the rule
33
+ */
34
+ errors;
35
+ /**
36
+ * Create a new DatabaseWriterValidationError.
37
+ *
38
+ * @param message - Error message (typically "Validation failed")
39
+ * @param errors - Array of validation errors from seal
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const error = new DatabaseWriterValidationError("Validation failed", [
44
+ * { path: "email", error: "email must be valid", rule: "email" }
45
+ * ]);
46
+ * ```
47
+ */
48
+ constructor(message, errors) {
49
+ super(message);
50
+ this.name = "DatabaseWriterValidationError";
51
+ this.errors = errors;
52
+ // Maintain proper stack trace for where error was thrown (V8 only)
53
+ if (Error.captureStackTrace) {
54
+ Error.captureStackTrace(this, DatabaseWriterValidationError);
55
+ }
56
+ // Override Node.js inspect to use our formatted output
57
+ Object.defineProperty(this, "inspect", {
58
+ value: () => this.toString(),
59
+ enumerable: false,
60
+ });
61
+ }
62
+ /**
63
+ * Custom inspect method for Node.js console output.
64
+ * This makes console.log and error logging use our beautiful format.
65
+ */
66
+ [Symbol.for("nodejs.util.inspect.custom")]() {
67
+ return this.toString();
68
+ }
69
+ /**
70
+ * Get a formatted string representation of all validation errors.
71
+ *
72
+ * Provides beautiful, colored terminal output with clear field-by-field breakdown.
73
+ *
74
+ * @returns Multi-line string with all errors, formatted for terminal
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * console.log(error.toString());
79
+ * // ❌ Validation Error: UserModel
80
+ * //
81
+ * // Field: email
82
+ * // Error: Email already exists
83
+ * // Value: "john@example.com"
84
+ * ```
85
+ */
86
+ toString() {
87
+ // Extract model name from message (e.g., "[UserModel Model]")
88
+ const modelMatch = this.message.match(/\[(\w+)\s+Model\]/);
89
+ const modelName = modelMatch ? modelMatch[1] : "Model";
90
+ const operation = this.message.includes("Insert") ? "Insert" : "Update";
91
+ // Build header
92
+ const lines = [];
93
+ lines.push("");
94
+ lines.push(copper.colors.red(`❌ Validation Error: ${modelName} (${operation})`));
95
+ lines.push("");
96
+ // Group errors by field for better readability
97
+ const errorsByField = new Map();
98
+ for (const err of this.errors) {
99
+ const fieldName = err.input || "unknown";
100
+ if (!errorsByField.has(fieldName)) {
101
+ errorsByField.set(fieldName, []);
102
+ }
103
+ errorsByField.get(fieldName).push({
104
+ error: err.error,
105
+ type: err.type,
106
+ value: err.value,
107
+ });
108
+ }
109
+ // Format each field's errors
110
+ for (const [fieldName, fieldErrors] of errorsByField) {
111
+ lines.push(copper.colors.yellow(` Field: ${fieldName}`));
112
+ for (const fieldError of fieldErrors) {
113
+ lines.push(copper.colors.white(` Error: ${fieldError.error}`));
114
+ if (fieldError.value !== undefined) {
115
+ const valueStr = typeof fieldError.value === "string"
116
+ ? `"${fieldError.value}"`
117
+ : JSON.stringify(fieldError.value);
118
+ lines.push(copper.colors.gray(` Value: ${valueStr}`));
119
+ }
120
+ if (fieldError.type) {
121
+ lines.push(copper.colors.cyan(` Type: ${fieldError.type}`));
122
+ }
123
+ }
124
+ lines.push(""); // Blank line between fields
125
+ }
126
+ return lines.join("\n");
127
+ }
128
+ /**
129
+ * Get validation errors for a specific field.
130
+ *
131
+ * @param fieldPath - Dot-notation path to the field
132
+ * @returns Array of errors for that field
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const emailErrors = error.getFieldErrors("email");
137
+ * console.log(emailErrors);
138
+ * // [{ path: "email", error: "email must be valid", rule: "email" }]
139
+ * ```
140
+ */
141
+ getFieldErrors(fieldPath) {
142
+ return this.errors.filter((err) => err.input === fieldPath);
143
+ }
144
+ /**
145
+ * Check if a specific field has validation errors.
146
+ *
147
+ * @param fieldPath - Dot-notation path to the field
148
+ * @returns True if the field has errors
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * if (error.hasFieldError("email")) {
153
+ * console.log("Email is invalid");
154
+ * }
155
+ * ```
156
+ */
157
+ hasFieldError(fieldPath) {
158
+ return this.errors.some((err) => err.input === fieldPath);
159
+ }
160
+ }exports.DatabaseWriterValidationError=DatabaseWriterValidationError;//# sourceMappingURL=database-writer-validation-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-writer-validation-error.js","sources":["../../src/validation/database-writer-validation-error.ts"],"sourcesContent":[null],"names":["colors"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./database-writer-validation-error";
2
+ import "./database-seal-plugins";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,OAAO,yBAAyB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Mutator } from "@warlock.js/seal";
2
+ import { ChildModel } from "../../model/model";
3
+ type DatabaseModelMutatorOptions = {
4
+ model: ChildModel<any> | string;
5
+ };
6
+ export declare const databaseModelMutator: Mutator<DatabaseModelMutatorOptions>;
7
+ export declare const databaseModelsMutator: Mutator<DatabaseModelMutatorOptions>;
8
+ export {};
9
+ //# sourceMappingURL=embed-mutator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-mutator.d.ts","sourceRoot":"","sources":["../../../src/validation/mutators/embed-mutator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAS,MAAM,mBAAmB,CAAC;AAGtD,KAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,2BAA2B,CAuBrE,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,2BAA2B,CAsBtE,CAAC"}
@@ -0,0 +1,33 @@
1
+ 'use strict';var model=require('../../model/model.js'),registerModel=require('../../model/register-model.js');const databaseModelMutator = async (value, context) => {
2
+ let { model: ModelClass } = context.options;
3
+ if (typeof ModelClass === "string") {
4
+ ModelClass = registerModel.getModelFromRegistry(ModelClass);
5
+ }
6
+ if (!ModelClass) {
7
+ throw new Error(`Model ${ModelClass} not found in registry`);
8
+ }
9
+ if (value instanceof model.Model)
10
+ return value;
11
+ if (typeof value === "object" && value?.id) {
12
+ value = Number(value.id);
13
+ }
14
+ if (typeof value !== "number")
15
+ return value;
16
+ return await ModelClass.find(value);
17
+ };
18
+ const databaseModelsMutator = async (value, context) => {
19
+ if (!Array.isArray(value))
20
+ return value;
21
+ let { model: ModelClass } = context.options;
22
+ if (typeof ModelClass === "string") {
23
+ ModelClass = registerModel.getModelFromRegistry(ModelClass);
24
+ }
25
+ if (!ModelClass) {
26
+ throw new Error(`Model ${ModelClass} not found in registry`);
27
+ }
28
+ // first, if all values are list of models, then return them.
29
+ if (value.every((item) => item instanceof model.Model))
30
+ return value;
31
+ const ids = value.map((item) => item?.id || item).filter((item) => item !== undefined);
32
+ return await ModelClass.query().whereIn("id", ids).get();
33
+ };exports.databaseModelMutator=databaseModelMutator;exports.databaseModelsMutator=databaseModelsMutator;//# sourceMappingURL=embed-mutator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-mutator.js","sources":["../../../src/validation/mutators/embed-mutator.ts"],"sourcesContent":[null],"names":["getModelFromRegistry","Model"],"mappings":"8GAQa,MAAA,oBAAoB,GAAyC,OACxE,KAAK,EACL,OAAO,KACL;IACF,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAE5C,IAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,QAAA,UAAU,GAAGA,kCAAoB,CAAC,UAAU,CAAE,CAAC;AAChD,KAAA;IAED,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,CAAA,sBAAA,CAAwB,CAAC,CAAC;AAC9D,KAAA;IAED,IAAI,KAAK,YAAYC,WAAK;AAAE,QAAA,OAAO,KAAK,CAAC;IAEzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,EAAE,EAAE;AAC1C,QAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1B,KAAA;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,KAAK,CAAC;AAE5C,IAAA,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,EAAE;AAEW,MAAA,qBAAqB,GAAyC,OACzE,KAAK,EACL,OAAO,KACL;AACF,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;IAExC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAE5C,IAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,QAAA,UAAU,GAAGD,kCAAoB,CAAC,UAAU,CAAE,CAAC;AAChD,KAAA;IAED,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,CAAA,sBAAA,CAAwB,CAAC,CAAC;AAC9D,KAAA;;AAGD,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAYC,WAAK,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;AAE/D,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,SAAS,CAAC,CAAC;AAEvF,IAAA,OAAO,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3D"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * File Validator Plugin
3
+ *
4
+ * Adds file validation to Seal v factory
5
+ */
6
+ import type { SealPlugin } from "@warlock.js/seal";
7
+ import type { ChildModel } from "../../model/model";
8
+ import { EmbedModelValidator } from "../validators/embed-validator";
9
+ type EmbedOptions = {
10
+ errorMessage?: string;
11
+ embed?: string | string[];
12
+ };
13
+ declare module "@warlock.js/seal" {
14
+ interface ValidatorV {
15
+ embed(model: ChildModel<any> | string, options?: EmbedOptions): EmbedModelValidator;
16
+ embedMany(model: ChildModel<any> | string, options?: EmbedOptions): EmbedModelValidator;
17
+ }
18
+ }
19
+ /**
20
+ * File validation plugin for Seal
21
+ */
22
+ export declare const embedValidator: SealPlugin;
23
+ export {};
24
+ //# sourceMappingURL=embed-validator-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-validator-plugin.d.ts","sourceRoot":"","sources":["../../../src/validation/plugins/embed-validator-plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,KAAK,YAAY,GAAG;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,UAAU;QAClB,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;QACpF,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;KACzF;CACF;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAY5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ 'use strict';var seal=require('@warlock.js/seal'),embedValidator$1=require('../validators/embed-validator.js');/**
2
+ * File Validator Plugin
3
+ *
4
+ * Adds file validation to Seal v factory
5
+ */
6
+ /**
7
+ * File validation plugin for Seal
8
+ */
9
+ const embedValidator = {
10
+ name: "embed",
11
+ version: "1.0.0",
12
+ description: "Adds file upload validation (v.file())",
13
+ install() {
14
+ // Inject file() method into v factory
15
+ seal.v.embed = (model, options) => new embedValidator$1.EmbedModelValidator().model(model).embed(options?.embed);
16
+ seal.v.embedMany = (model, options) => new embedValidator$1.EmbedModelValidator().models(model).embed(options?.embed);
17
+ },
18
+ };exports.embedValidator=embedValidator;//# sourceMappingURL=embed-validator-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-validator-plugin.js","sources":["../../../src/validation/plugins/embed-validator-plugin.ts"],"sourcesContent":[null],"names":["v","EmbedModelValidator"],"mappings":"+GAAA;;;;AAIG;AAmBH;;AAEG;AACU,MAAA,cAAc,GAAe;AACxC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,WAAW,EAAE,wCAAwC;IAErD,OAAO,GAAA;;QAELA,MAAC,CAAC,KAAK,GAAG,CAAC,KAA+B,EAAE,OAAsB,KAChE,IAAIC,oCAAmB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/DD,MAAC,CAAC,SAAS,GAAG,CAAC,KAA+B,EAAE,OAAsB,KACpE,IAAIC,oCAAmB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACjE;"}
@@ -0,0 +1,7 @@
1
+ import { type SchemaRule } from "@warlock.js/seal";
2
+ import { ChildModel } from "./../../model/model";
3
+ export declare const databaseModelRule: SchemaRule;
4
+ export declare const databaseModelsRule: SchemaRule<{
5
+ model: ChildModel<any> | string;
6
+ }>;
7
+ //# sourceMappingURL=database-model-rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-model-rule.d.ts","sourceRoot":"","sources":["../../../src/validation/rules/database-model-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAS,MAAM,qBAAqB,CAAC;AAGxD,eAAO,MAAM,iBAAiB,EAAE,UAW/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;CAAE,CAiB9E,CAAC"}
@@ -0,0 +1,27 @@
1
+ 'use strict';var seal=require('@warlock.js/seal'),model=require('../../model/model.js'),registerModel=require('../../model/register-model.js');const databaseModelRule = {
2
+ name: "databaseModule",
3
+ defaultErrorMessage: "The :input must be a valid :model model",
4
+ async validate(value, context) {
5
+ if (value instanceof model.Model === false) {
6
+ this.context.attributesList.model = this.context.options.model.name;
7
+ return seal.invalidRule(this, context);
8
+ }
9
+ return seal.VALID_RULE;
10
+ },
11
+ };
12
+ const databaseModelsRule = {
13
+ name: "databaseModels",
14
+ defaultErrorMessage: "The :input must be a list of valid :model",
15
+ async validate(value, context) {
16
+ let { model: model$1 } = this.context.options;
17
+ if (typeof model$1 === "string") {
18
+ model$1 = registerModel.getModelFromRegistry(model$1);
19
+ }
20
+ this.context.attributesList.model = model$1.name;
21
+ if (!Array.isArray(value))
22
+ return seal.invalidRule(this, context);
23
+ if (value.every((item) => item instanceof model.Model))
24
+ return seal.VALID_RULE;
25
+ return seal.invalidRule(this, context);
26
+ },
27
+ };exports.databaseModelRule=databaseModelRule;exports.databaseModelsRule=databaseModelsRule;//# sourceMappingURL=database-model-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-model-rule.js","sources":["../../../src/validation/rules/database-model-rule.ts"],"sourcesContent":[null],"names":["Model","invalidRule","VALID_RULE","model","getModelFromRegistry"],"mappings":"+IAIa,MAAA,iBAAiB,GAAe;AAC3C,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,mBAAmB,EAAE,yCAAyC;AAC9D,IAAA,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAA;AAC3B,QAAA,IAAI,KAAK,YAAYA,WAAK,KAAK,KAAK,EAAE;AACpC,YAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACpE,YAAA,OAAOC,gBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,eAAU,CAAC;KACnB;EACD;AAEW,MAAA,kBAAkB,GAAoD;AACjF,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,mBAAmB,EAAE,2CAA2C;AAChE,IAAA,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAA;QAC3B,IAAI,SAAEC,OAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACrC,QAAA,IAAI,OAAOA,OAAK,KAAK,QAAQ,EAAE;AAC7B,YAAAA,OAAK,GAAGC,kCAAoB,CAACD,OAAK,CAAE,CAAC;AACtC,SAAA;QAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAGA,OAAK,CAAC,IAAI,CAAC;AAE/C,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,YAAA,OAAOF,gBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE7D,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAYD,WAAK,CAAC;AAAE,YAAA,OAAOE,eAAU,CAAC;AAEpE,QAAA,OAAOD,gBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
@@ -0,0 +1,3 @@
1
+ import { type TransformerCallback } from "@warlock.js/seal";
2
+ export declare const databaseModelTransformer: TransformerCallback;
3
+ //# sourceMappingURL=embed-model-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-model-transformer.d.ts","sourceRoot":"","sources":["../../../src/validation/transformers/embed-model-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,eAAO,MAAM,wBAAwB,EAAE,mBAsBtC,CAAC"}
@@ -0,0 +1,18 @@
1
+ 'use strict';var model=require('../../model/model.js');const databaseModelTransformer = (value, context) => {
2
+ const embed = context.options.embed ?? "embedData";
3
+ if (value instanceof model.Model === false && !Array.isArray(value)) {
4
+ return value;
5
+ }
6
+ if (Array.isArray(value)) {
7
+ return value.map((item) => {
8
+ if (typeof embed === "string") {
9
+ return item[embed];
10
+ }
11
+ return item.only(embed);
12
+ });
13
+ }
14
+ if (typeof embed === "string") {
15
+ return value[embed];
16
+ }
17
+ return value.only(embed);
18
+ };exports.databaseModelTransformer=databaseModelTransformer;//# sourceMappingURL=embed-model-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-model-transformer.js","sources":["../../../src/validation/transformers/embed-model-transformer.ts"],"sourcesContent":[null],"names":["Model"],"mappings":"6DAGa,wBAAwB,GAAwB,CAAC,KAAK,EAAE,OAAO,KAAI;IAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC;AAEnD,IAAA,IAAI,KAAK,YAAYA,WAAK,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7D,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACxB,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,aAAA;AAED,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;AACJ,KAAA;AAED,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAQ,KAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAA;AAED,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B"}
@@ -0,0 +1,21 @@
1
+ import { BaseValidator } from "@warlock.js/seal";
2
+ import { type ChildModel } from "../../model/model";
3
+ export declare class EmbedModelValidator extends BaseValidator {
4
+ /**
5
+ * Check if value is a string type
6
+ */
7
+ matchesType(value: any): boolean;
8
+ /**
9
+ * Mutate the value to be a model, also fail if the mutated value is not a valid model
10
+ */
11
+ model(model: ChildModel<any> | string): this;
12
+ /**
13
+ * Validate the value is a list of models
14
+ */
15
+ models(model: ChildModel<any> | string): this;
16
+ /**
17
+ * Determine how the data will be stored as an embedded document
18
+ */
19
+ embed(embed?: string | string[]): this;
20
+ }
21
+ //# sourceMappingURL=embed-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-validator.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/embed-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK3D,qBAAa,mBAAoB,SAAQ,aAAa;IACpD;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAQvC;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM;IAY5C;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM;IAa7C;;OAEG;IACI,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAOvC"}
@@ -0,0 +1,42 @@
1
+ 'use strict';var seal=require('@warlock.js/seal'),model=require('../../model/model.js'),embedMutator=require('../mutators/embed-mutator.js'),databaseModelRule=require('../rules/database-model-rule.js'),embedModelTransformer=require('../transformers/embed-model-transformer.js');class EmbedModelValidator extends seal.BaseValidator {
2
+ /**
3
+ * Check if value is a string type
4
+ */
5
+ matchesType(value) {
6
+ return (value instanceof model.Model ||
7
+ typeof value === "number" ||
8
+ (Array.isArray(value) && value.every((item) => item instanceof model.Model)));
9
+ }
10
+ /**
11
+ * Mutate the value to be a model, also fail if the mutated value is not a valid model
12
+ */
13
+ model(model) {
14
+ this.addMutator(embedMutator.databaseModelMutator, {
15
+ model,
16
+ });
17
+ const rule = this.addRule(databaseModelRule.databaseModelRule);
18
+ rule.context.options.model = model;
19
+ return this;
20
+ }
21
+ /**
22
+ * Validate the value is a list of models
23
+ */
24
+ models(model) {
25
+ this.addMutator(embedMutator.databaseModelsMutator, {
26
+ model,
27
+ });
28
+ this.addRule(seal.arrayRule);
29
+ const rule = this.addRule(databaseModelRule.databaseModelsRule);
30
+ rule.context.options.model = model;
31
+ return this;
32
+ }
33
+ /**
34
+ * Determine how the data will be stored as an embedded document
35
+ */
36
+ embed(embed) {
37
+ this.addTransformer(embedModelTransformer.databaseModelTransformer, {
38
+ embed,
39
+ });
40
+ return this;
41
+ }
42
+ }exports.EmbedModelValidator=EmbedModelValidator;//# sourceMappingURL=embed-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-validator.js","sources":["../../../src/validation/validators/embed-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","Model","databaseModelMutator","databaseModelRule","databaseModelsMutator","arrayRule","databaseModelsRule","databaseModelTransformer"],"mappings":"sRAMM,MAAO,mBAAoB,SAAQA,kBAAa,CAAA;AACpD;;AAEG;AACI,IAAA,WAAW,CAAC,KAAU,EAAA;QAC3B,QACE,KAAK,YAAYC,WAAK;YACtB,OAAO,KAAK,KAAK,QAAQ;aACxB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAYA,WAAK,CAAC,CAAC,EACtE;KACH;AAED;;AAEG;AACI,IAAA,KAAK,CAAC,KAA+B,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,CAACC,iCAAoB,EAAE;YACpC,KAAK;AACN,SAAA,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAACC,mCAAiB,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,MAAM,CAAC,KAA+B,EAAA;AAC3C,QAAA,IAAI,CAAC,UAAU,CAACC,kCAAqB,EAAE;YACrC,KAAK;AACN,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,OAAO,CAACC,cAAS,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAACC,oCAAkB,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,KAAK,CAAC,KAAyB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAACC,8CAAwB,EAAE;YAC5C,KAAK;AACN,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC;KACb;AACF"}