@warlock.js/cascade 4.0.162 → 4.0.164

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (661) hide show
  1. package/cjs/context/database-data-source-context.d.ts +29 -0
  2. package/cjs/context/database-data-source-context.d.ts.map +1 -0
  3. package/cjs/context/database-data-source-context.js +28 -0
  4. package/cjs/context/database-data-source-context.js.map +1 -0
  5. package/cjs/context/database-transaction-context.d.ts +35 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +40 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +450 -0
  10. package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
  11. package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
  12. package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
  13. package/cjs/contracts/database-remover.contract.d.ts +104 -0
  14. package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
  15. package/cjs/contracts/database-restorer.contract.d.ts +143 -0
  16. package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
  17. package/cjs/contracts/database-writer.contract.d.ts +119 -0
  18. package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
  19. package/cjs/contracts/driver-blueprint.contract.d.ts +49 -0
  20. package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
  21. package/cjs/contracts/index.d.ts +10 -0
  22. package/cjs/contracts/index.d.ts.map +1 -0
  23. package/cjs/contracts/migration-driver.contract.d.ts +522 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1609 -0
  26. package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
  27. package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
  28. package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
  29. package/cjs/data-source/data-source-registry.d.ts +108 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +145 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +147 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +83 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +252 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +386 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  42. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  43. package/cjs/drivers/mongodb/mongodb-blueprint.js +51 -0
  44. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  45. package/cjs/drivers/mongodb/mongodb-driver.d.ts +325 -0
  46. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongodb/mongodb-driver.js +838 -0
  48. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
  49. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  50. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  51. package/cjs/drivers/mongodb/mongodb-id-generator.js +149 -0
  52. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  53. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  54. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  55. package/cjs/drivers/mongodb/mongodb-migration-driver.js +666 -0
  56. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  57. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  58. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  59. package/cjs/drivers/mongodb/mongodb-query-builder.js +1988 -0
  60. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  61. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  62. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  63. package/cjs/drivers/mongodb/mongodb-query-operations.js +270 -0
  64. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  65. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  66. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  67. package/cjs/drivers/mongodb/mongodb-query-parser.js +1351 -0
  68. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  69. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  70. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  71. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  72. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  73. package/cjs/drivers/mongodb/types.d.ts +43 -0
  74. package/cjs/drivers/mongodb/types.d.ts.map +1 -0
  75. package/cjs/drivers/postgres/index.d.ts +16 -0
  76. package/cjs/drivers/postgres/index.d.ts.map +1 -0
  77. package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
  78. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  79. package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
  80. package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
  81. package/cjs/drivers/postgres/postgres-dialect.d.ts +136 -0
  82. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  83. package/cjs/drivers/postgres/postgres-dialect.js +268 -0
  84. package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
  85. package/cjs/drivers/postgres/postgres-driver.d.ts +432 -0
  86. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
  87. package/cjs/drivers/postgres/postgres-driver.js +1010 -0
  88. package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
  89. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  90. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  91. package/cjs/drivers/postgres/postgres-migration-driver.js +900 -0
  92. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
  93. package/cjs/drivers/postgres/postgres-query-builder.d.ts +254 -0
  94. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  95. package/cjs/drivers/postgres/postgres-query-builder.js +933 -0
  96. package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
  97. package/cjs/drivers/postgres/postgres-query-parser.d.ts +328 -0
  98. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  99. package/cjs/drivers/postgres/postgres-query-parser.js +868 -0
  100. package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
  101. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  102. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  103. package/cjs/drivers/postgres/postgres-sql-serializer.js +400 -0
  104. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  105. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  106. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  107. package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
  108. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  109. package/cjs/drivers/postgres/types.d.ts +144 -0
  110. package/cjs/drivers/postgres/types.d.ts.map +1 -0
  111. package/cjs/drivers/sql/index.d.ts +10 -0
  112. package/cjs/drivers/sql/index.d.ts.map +1 -0
  113. package/cjs/drivers/sql/sql-dialect.contract.d.ts +204 -0
  114. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  115. package/cjs/drivers/sql/sql-types.d.ts +202 -0
  116. package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
  117. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  118. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  119. package/cjs/errors/missing-data-source.error.js +29 -0
  120. package/cjs/errors/missing-data-source.error.js.map +1 -0
  121. package/cjs/errors/transaction-rollback.error.d.ts +20 -0
  122. package/cjs/errors/transaction-rollback.error.d.ts.map +1 -0
  123. package/cjs/errors/transaction-rollback.error.js +27 -0
  124. package/cjs/errors/transaction-rollback.error.js.map +1 -0
  125. package/cjs/events/model-events.d.ts +231 -0
  126. package/cjs/events/model-events.d.ts.map +1 -0
  127. package/cjs/events/model-events.js +259 -0
  128. package/cjs/events/model-events.js.map +1 -0
  129. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  130. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  131. package/cjs/expressions/aggregate-expressions.js +221 -0
  132. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  133. package/cjs/expressions/index.d.ts +2 -0
  134. package/cjs/expressions/index.d.ts.map +1 -0
  135. package/cjs/index.d.ts +45 -0
  136. package/cjs/index.d.ts.map +1 -0
  137. package/cjs/index.js +1 -0
  138. package/cjs/index.js.map +1 -0
  139. package/cjs/migration/column-builder.d.ts +417 -0
  140. package/cjs/migration/column-builder.d.ts.map +1 -0
  141. package/cjs/migration/column-builder.js +586 -0
  142. package/cjs/migration/column-builder.js.map +1 -0
  143. package/cjs/migration/column-helpers.d.ts +275 -0
  144. package/cjs/migration/column-helpers.d.ts.map +1 -0
  145. package/cjs/migration/column-helpers.js +389 -0
  146. package/cjs/migration/column-helpers.js.map +1 -0
  147. package/cjs/migration/foreign-key-builder.d.ts +103 -0
  148. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  149. package/cjs/migration/foreign-key-builder.js +121 -0
  150. package/cjs/migration/foreign-key-builder.js.map +1 -0
  151. package/cjs/migration/index.d.ts +7 -0
  152. package/cjs/migration/index.d.ts.map +1 -0
  153. package/cjs/migration/migration-runner.d.ts +278 -0
  154. package/cjs/migration/migration-runner.d.ts.map +1 -0
  155. package/cjs/migration/migration-runner.js +815 -0
  156. package/cjs/migration/migration-runner.js.map +1 -0
  157. package/cjs/migration/migration.d.ts +1992 -0
  158. package/cjs/migration/migration.d.ts.map +1 -0
  159. package/cjs/migration/migration.js +2162 -0
  160. package/cjs/migration/migration.js.map +1 -0
  161. package/cjs/migration/sql-grammar.d.ts +61 -0
  162. package/cjs/migration/sql-grammar.d.ts.map +1 -0
  163. package/cjs/migration/sql-grammar.js +164 -0
  164. package/cjs/migration/sql-grammar.js.map +1 -0
  165. package/cjs/migration/sql-serializer.d.ts +22 -0
  166. package/cjs/migration/sql-serializer.d.ts.map +1 -0
  167. package/cjs/migration/sql-serializer.js +26 -0
  168. package/cjs/migration/sql-serializer.js.map +1 -0
  169. package/cjs/migration/types.d.ts +155 -0
  170. package/cjs/migration/types.d.ts.map +1 -0
  171. package/cjs/model/methods/accessor-methods.d.ts +13 -0
  172. package/cjs/model/methods/accessor-methods.d.ts.map +1 -0
  173. package/cjs/model/methods/accessor-methods.js +51 -0
  174. package/cjs/model/methods/accessor-methods.js.map +1 -0
  175. package/cjs/model/methods/delete-methods.d.ts +10 -0
  176. package/cjs/model/methods/delete-methods.d.ts.map +1 -0
  177. package/cjs/model/methods/delete-methods.js +10 -0
  178. package/cjs/model/methods/delete-methods.js.map +1 -0
  179. package/cjs/model/methods/dirty-methods.d.ts +10 -0
  180. package/cjs/model/methods/dirty-methods.d.ts.map +1 -0
  181. package/cjs/model/methods/dirty-methods.js +15 -0
  182. package/cjs/model/methods/dirty-methods.js.map +1 -0
  183. package/cjs/model/methods/hydration-methods.d.ts +10 -0
  184. package/cjs/model/methods/hydration-methods.d.ts.map +1 -0
  185. package/cjs/model/methods/hydration-methods.js +57 -0
  186. package/cjs/model/methods/hydration-methods.js.map +1 -0
  187. package/cjs/model/methods/instance-event-methods.d.ts +7 -0
  188. package/cjs/model/methods/instance-event-methods.d.ts.map +1 -0
  189. package/cjs/model/methods/instance-event-methods.js +15 -0
  190. package/cjs/model/methods/instance-event-methods.js.map +1 -0
  191. package/cjs/model/methods/meta-methods.d.ts +7 -0
  192. package/cjs/model/methods/meta-methods.d.ts.map +1 -0
  193. package/cjs/model/methods/meta-methods.js +78 -0
  194. package/cjs/model/methods/meta-methods.js.map +1 -0
  195. package/cjs/model/methods/query-methods.d.ts +24 -0
  196. package/cjs/model/methods/query-methods.d.ts.map +1 -0
  197. package/cjs/model/methods/query-methods.js +164 -0
  198. package/cjs/model/methods/query-methods.js.map +1 -0
  199. package/cjs/model/methods/restore-methods.d.ts +10 -0
  200. package/cjs/model/methods/restore-methods.d.ts.map +1 -0
  201. package/cjs/model/methods/restore-methods.js +13 -0
  202. package/cjs/model/methods/restore-methods.js.map +1 -0
  203. package/cjs/model/methods/scope-methods.d.ts +7 -0
  204. package/cjs/model/methods/scope-methods.d.ts.map +1 -0
  205. package/cjs/model/methods/scope-methods.js +15 -0
  206. package/cjs/model/methods/scope-methods.js.map +1 -0
  207. package/cjs/model/methods/serialization-methods.d.ts +3 -0
  208. package/cjs/model/methods/serialization-methods.d.ts.map +1 -0
  209. package/cjs/model/methods/serialization-methods.js +27 -0
  210. package/cjs/model/methods/serialization-methods.js.map +1 -0
  211. package/cjs/model/methods/static-event-methods.d.ts +9 -0
  212. package/cjs/model/methods/static-event-methods.d.ts.map +1 -0
  213. package/cjs/model/methods/static-event-methods.js +29 -0
  214. package/cjs/model/methods/static-event-methods.js.map +1 -0
  215. package/cjs/model/methods/write-methods.d.ts +10 -0
  216. package/cjs/model/methods/write-methods.d.ts.map +1 -0
  217. package/cjs/model/methods/write-methods.js +52 -0
  218. package/cjs/model/methods/write-methods.js.map +1 -0
  219. package/cjs/model/model.d.ts +1647 -0
  220. package/cjs/model/model.d.ts.map +1 -0
  221. package/cjs/model/model.js +1657 -0
  222. package/cjs/model/model.js.map +1 -0
  223. package/cjs/model/model.types.d.ts +44 -0
  224. package/cjs/model/model.types.d.ts.map +1 -0
  225. package/cjs/model/register-model.d.ts +81 -0
  226. package/cjs/model/register-model.d.ts.map +1 -0
  227. package/cjs/model/register-model.js +94 -0
  228. package/cjs/model/register-model.js.map +1 -0
  229. package/cjs/query-builder/query-builder.d.ts +556 -0
  230. package/cjs/query-builder/query-builder.d.ts.map +1 -0
  231. package/cjs/query-builder/query-builder.js +1070 -0
  232. package/cjs/query-builder/query-builder.js.map +1 -0
  233. package/cjs/relations/helpers.d.ts +156 -0
  234. package/cjs/relations/helpers.d.ts.map +1 -0
  235. package/cjs/relations/helpers.js +202 -0
  236. package/cjs/relations/helpers.js.map +1 -0
  237. package/cjs/relations/index.d.ts +35 -0
  238. package/cjs/relations/index.d.ts.map +1 -0
  239. package/cjs/relations/pivot-operations.d.ts +160 -0
  240. package/cjs/relations/pivot-operations.d.ts.map +1 -0
  241. package/cjs/relations/pivot-operations.js +293 -0
  242. package/cjs/relations/pivot-operations.js.map +1 -0
  243. package/cjs/relations/relation-hydrator.d.ts +68 -0
  244. package/cjs/relations/relation-hydrator.d.ts.map +1 -0
  245. package/cjs/relations/relation-hydrator.js +81 -0
  246. package/cjs/relations/relation-hydrator.js.map +1 -0
  247. package/cjs/relations/relation-loader.d.ts +194 -0
  248. package/cjs/relations/relation-loader.d.ts.map +1 -0
  249. package/cjs/relations/relation-loader.js +466 -0
  250. package/cjs/relations/relation-loader.js.map +1 -0
  251. package/cjs/relations/types.d.ts +306 -0
  252. package/cjs/relations/types.d.ts.map +1 -0
  253. package/cjs/remover/database-remover.d.ts +100 -0
  254. package/cjs/remover/database-remover.d.ts.map +1 -0
  255. package/cjs/remover/database-remover.js +214 -0
  256. package/cjs/remover/database-remover.js.map +1 -0
  257. package/cjs/restorer/database-restorer.d.ts +131 -0
  258. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  259. package/cjs/restorer/database-restorer.js +434 -0
  260. package/cjs/restorer/database-restorer.js.map +1 -0
  261. package/cjs/sql-database-dirty-tracker.d.ts +13 -0
  262. package/cjs/sql-database-dirty-tracker.d.ts.map +1 -0
  263. package/cjs/sql-database-dirty-tracker.js +14 -0
  264. package/cjs/sql-database-dirty-tracker.js.map +1 -0
  265. package/cjs/sync/index.d.ts +12 -0
  266. package/cjs/sync/index.d.ts.map +1 -0
  267. package/cjs/sync/model-events.d.ts +62 -0
  268. package/cjs/sync/model-events.d.ts.map +1 -0
  269. package/cjs/sync/model-events.js +49 -0
  270. package/cjs/sync/model-events.js.map +1 -0
  271. package/cjs/sync/model-sync-operation.d.ts +163 -0
  272. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  273. package/cjs/sync/model-sync-operation.js +292 -0
  274. package/cjs/sync/model-sync-operation.js.map +1 -0
  275. package/cjs/sync/model-sync.d.ts +130 -0
  276. package/cjs/sync/model-sync.d.ts.map +1 -0
  277. package/cjs/sync/model-sync.js +178 -0
  278. package/cjs/sync/model-sync.js.map +1 -0
  279. package/cjs/sync/sync-context.d.ts +70 -0
  280. package/cjs/sync/sync-context.d.ts.map +1 -0
  281. package/cjs/sync/sync-context.js +101 -0
  282. package/cjs/sync/sync-context.js.map +1 -0
  283. package/cjs/sync/sync-manager.d.ts +213 -0
  284. package/cjs/sync/sync-manager.d.ts.map +1 -0
  285. package/cjs/sync/sync-manager.js +689 -0
  286. package/cjs/sync/sync-manager.js.map +1 -0
  287. package/cjs/sync/types.d.ts +289 -0
  288. package/cjs/sync/types.d.ts.map +1 -0
  289. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  290. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  291. package/cjs/types.d.ts +371 -0
  292. package/cjs/types.d.ts.map +1 -0
  293. package/cjs/utils/connect-to-database.d.ts +307 -0
  294. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  295. package/cjs/utils/connect-to-database.js +130 -0
  296. package/cjs/utils/connect-to-database.js.map +1 -0
  297. package/cjs/utils/database-writer.utils.d.ts +15 -0
  298. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  299. package/cjs/utils/database-writer.utils.js +14 -0
  300. package/cjs/utils/database-writer.utils.js.map +1 -0
  301. package/cjs/utils/define-model.js +100 -0
  302. package/cjs/utils/define-model.js.map +1 -0
  303. package/cjs/utils/is-valid-date-value.d.ts +5 -0
  304. package/cjs/utils/is-valid-date-value.d.ts.map +1 -0
  305. package/cjs/utils/is-valid-date-value.js +25 -0
  306. package/cjs/utils/is-valid-date-value.js.map +1 -0
  307. package/cjs/utils/once-connected.d.ts +146 -0
  308. package/cjs/utils/once-connected.d.ts.map +1 -0
  309. package/cjs/utils/once-connected.js +251 -0
  310. package/cjs/utils/once-connected.js.map +1 -0
  311. package/cjs/validation/database-seal-plugins.d.ts +12 -0
  312. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  313. package/cjs/validation/database-seal-plugins.js +1 -0
  314. package/cjs/validation/database-seal-plugins.js.map +1 -0
  315. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  316. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  317. package/cjs/validation/database-writer-validation-error.js +160 -0
  318. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  319. package/cjs/validation/index.d.ts +3 -0
  320. package/cjs/validation/index.d.ts.map +1 -0
  321. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  322. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  323. package/cjs/validation/mutators/embed-mutator.js +33 -0
  324. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  325. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  326. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  327. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  328. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  329. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  330. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  331. package/cjs/validation/rules/database-model-rule.js +27 -0
  332. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  333. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  334. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  335. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  336. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  337. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  338. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  339. package/cjs/validation/validators/embed-validator.js +43 -0
  340. package/cjs/validation/validators/embed-validator.js.map +1 -0
  341. package/cjs/writer/database-writer.d.ts +181 -0
  342. package/cjs/writer/database-writer.d.ts.map +1 -0
  343. package/cjs/writer/database-writer.js +407 -0
  344. package/cjs/writer/database-writer.js.map +1 -0
  345. package/esm/data-source/data-source-registry.d.ts +108 -0
  346. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  347. package/esm/data-source/data-source-registry.js +145 -0
  348. package/esm/data-source/data-source-registry.js.map +1 -0
  349. package/esm/data-source/data-source.d.ts +147 -0
  350. package/esm/data-source/data-source.d.ts.map +1 -0
  351. package/esm/data-source/data-source.js +83 -0
  352. package/esm/data-source/data-source.js.map +1 -0
  353. package/esm/database-dirty-tracker.d.ts +252 -0
  354. package/esm/database-dirty-tracker.d.ts.map +1 -0
  355. package/esm/database-dirty-tracker.js +386 -0
  356. package/esm/database-dirty-tracker.js.map +1 -0
  357. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  358. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  359. package/esm/drivers/mongodb/mongodb-blueprint.js +51 -0
  360. package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  361. package/esm/drivers/mongodb/mongodb-driver.d.ts +325 -0
  362. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  363. package/esm/drivers/mongodb/mongodb-driver.js +838 -0
  364. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
  365. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  366. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  367. package/esm/drivers/mongodb/mongodb-id-generator.js +149 -0
  368. package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  369. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  370. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  371. package/esm/drivers/mongodb/mongodb-migration-driver.js +666 -0
  372. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  373. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  374. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  375. package/esm/drivers/mongodb/mongodb-query-builder.js +1988 -0
  376. package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  377. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  378. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  379. package/esm/drivers/mongodb/mongodb-query-operations.js +270 -0
  380. package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  381. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  382. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  383. package/esm/drivers/mongodb/mongodb-query-parser.js +1351 -0
  384. package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  385. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  386. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  387. package/esm/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  388. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  389. package/esm/drivers/mongodb/types.d.ts +43 -0
  390. package/esm/drivers/mongodb/types.d.ts.map +1 -0
  391. package/esm/drivers/postgres/index.d.ts +16 -0
  392. package/esm/drivers/postgres/index.d.ts.map +1 -0
  393. package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
  394. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  395. package/esm/drivers/postgres/postgres-blueprint.js +121 -0
  396. package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
  397. package/esm/drivers/postgres/postgres-dialect.d.ts +136 -0
  398. package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  399. package/esm/drivers/postgres/postgres-dialect.js +268 -0
  400. package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
  401. package/esm/drivers/postgres/postgres-driver.d.ts +432 -0
  402. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
  403. package/esm/drivers/postgres/postgres-driver.js +1010 -0
  404. package/esm/drivers/postgres/postgres-driver.js.map +1 -0
  405. package/esm/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  406. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  407. package/esm/drivers/postgres/postgres-migration-driver.js +900 -0
  408. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
  409. package/esm/drivers/postgres/postgres-query-builder.d.ts +254 -0
  410. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  411. package/esm/drivers/postgres/postgres-query-builder.js +933 -0
  412. package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
  413. package/esm/drivers/postgres/postgres-query-parser.d.ts +328 -0
  414. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  415. package/esm/drivers/postgres/postgres-query-parser.js +868 -0
  416. package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
  417. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  418. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  419. package/esm/drivers/postgres/postgres-sql-serializer.js +400 -0
  420. package/esm/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  421. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  422. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  423. package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
  424. package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  425. package/esm/drivers/postgres/types.d.ts +144 -0
  426. package/esm/drivers/postgres/types.d.ts.map +1 -0
  427. package/esm/drivers/sql/index.d.ts +10 -0
  428. package/esm/drivers/sql/index.d.ts.map +1 -0
  429. package/esm/drivers/sql/sql-dialect.contract.d.ts +204 -0
  430. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  431. package/esm/drivers/sql/sql-types.d.ts +202 -0
  432. package/esm/drivers/sql/sql-types.d.ts.map +1 -0
  433. package/esm/errors/missing-data-source.error.d.ts +22 -0
  434. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  435. package/esm/errors/missing-data-source.error.js +29 -0
  436. package/esm/errors/missing-data-source.error.js.map +1 -0
  437. package/esm/errors/transaction-rollback.error.d.ts +20 -0
  438. package/esm/errors/transaction-rollback.error.d.ts.map +1 -0
  439. package/esm/errors/transaction-rollback.error.js +27 -0
  440. package/esm/errors/transaction-rollback.error.js.map +1 -0
  441. package/esm/events/model-events.d.ts +231 -0
  442. package/esm/events/model-events.d.ts.map +1 -0
  443. package/esm/events/model-events.js +259 -0
  444. package/esm/events/model-events.js.map +1 -0
  445. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  446. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  447. package/esm/expressions/aggregate-expressions.js +221 -0
  448. package/esm/expressions/aggregate-expressions.js.map +1 -0
  449. package/esm/expressions/index.d.ts +2 -0
  450. package/esm/expressions/index.d.ts.map +1 -0
  451. package/esm/index.d.ts +45 -0
  452. package/esm/index.d.ts.map +1 -0
  453. package/esm/index.js +1 -0
  454. package/esm/index.js.map +1 -0
  455. package/esm/migration/column-builder.d.ts +417 -0
  456. package/esm/migration/column-builder.d.ts.map +1 -0
  457. package/esm/migration/column-builder.js +586 -0
  458. package/esm/migration/column-builder.js.map +1 -0
  459. package/esm/migration/column-helpers.d.ts +275 -0
  460. package/esm/migration/column-helpers.d.ts.map +1 -0
  461. package/esm/migration/column-helpers.js +389 -0
  462. package/esm/migration/column-helpers.js.map +1 -0
  463. package/esm/migration/foreign-key-builder.d.ts +103 -0
  464. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  465. package/esm/migration/foreign-key-builder.js +121 -0
  466. package/esm/migration/foreign-key-builder.js.map +1 -0
  467. package/esm/migration/index.d.ts +7 -0
  468. package/esm/migration/index.d.ts.map +1 -0
  469. package/esm/migration/migration-runner.d.ts +278 -0
  470. package/esm/migration/migration-runner.d.ts.map +1 -0
  471. package/esm/migration/migration-runner.js +815 -0
  472. package/esm/migration/migration-runner.js.map +1 -0
  473. package/esm/migration/migration.d.ts +1992 -0
  474. package/esm/migration/migration.d.ts.map +1 -0
  475. package/esm/migration/migration.js +2162 -0
  476. package/esm/migration/migration.js.map +1 -0
  477. package/esm/migration/sql-grammar.d.ts +61 -0
  478. package/esm/migration/sql-grammar.d.ts.map +1 -0
  479. package/esm/migration/sql-grammar.js +164 -0
  480. package/esm/migration/sql-grammar.js.map +1 -0
  481. package/esm/migration/sql-serializer.d.ts +22 -0
  482. package/esm/migration/sql-serializer.d.ts.map +1 -0
  483. package/esm/migration/sql-serializer.js +26 -0
  484. package/esm/migration/sql-serializer.js.map +1 -0
  485. package/esm/migration/types.d.ts +155 -0
  486. package/esm/migration/types.d.ts.map +1 -0
  487. package/esm/model/methods/accessor-methods.d.ts +13 -0
  488. package/esm/model/methods/accessor-methods.d.ts.map +1 -0
  489. package/esm/model/methods/accessor-methods.js +51 -0
  490. package/esm/model/methods/accessor-methods.js.map +1 -0
  491. package/esm/model/methods/delete-methods.d.ts +10 -0
  492. package/esm/model/methods/delete-methods.d.ts.map +1 -0
  493. package/esm/model/methods/delete-methods.js +10 -0
  494. package/esm/model/methods/delete-methods.js.map +1 -0
  495. package/esm/model/methods/dirty-methods.d.ts +10 -0
  496. package/esm/model/methods/dirty-methods.d.ts.map +1 -0
  497. package/esm/model/methods/dirty-methods.js +15 -0
  498. package/esm/model/methods/dirty-methods.js.map +1 -0
  499. package/esm/model/methods/hydration-methods.d.ts +10 -0
  500. package/esm/model/methods/hydration-methods.d.ts.map +1 -0
  501. package/esm/model/methods/hydration-methods.js +57 -0
  502. package/esm/model/methods/hydration-methods.js.map +1 -0
  503. package/esm/model/methods/instance-event-methods.d.ts +7 -0
  504. package/esm/model/methods/instance-event-methods.d.ts.map +1 -0
  505. package/esm/model/methods/instance-event-methods.js +15 -0
  506. package/esm/model/methods/instance-event-methods.js.map +1 -0
  507. package/esm/model/methods/meta-methods.d.ts +7 -0
  508. package/esm/model/methods/meta-methods.d.ts.map +1 -0
  509. package/esm/model/methods/meta-methods.js +78 -0
  510. package/esm/model/methods/meta-methods.js.map +1 -0
  511. package/esm/model/methods/query-methods.d.ts +24 -0
  512. package/esm/model/methods/query-methods.d.ts.map +1 -0
  513. package/esm/model/methods/query-methods.js +164 -0
  514. package/esm/model/methods/query-methods.js.map +1 -0
  515. package/esm/model/methods/restore-methods.d.ts +10 -0
  516. package/esm/model/methods/restore-methods.d.ts.map +1 -0
  517. package/esm/model/methods/restore-methods.js +13 -0
  518. package/esm/model/methods/restore-methods.js.map +1 -0
  519. package/esm/model/methods/scope-methods.d.ts +7 -0
  520. package/esm/model/methods/scope-methods.d.ts.map +1 -0
  521. package/esm/model/methods/scope-methods.js +15 -0
  522. package/esm/model/methods/scope-methods.js.map +1 -0
  523. package/esm/model/methods/serialization-methods.d.ts +3 -0
  524. package/esm/model/methods/serialization-methods.d.ts.map +1 -0
  525. package/esm/model/methods/serialization-methods.js +27 -0
  526. package/esm/model/methods/serialization-methods.js.map +1 -0
  527. package/esm/model/methods/static-event-methods.d.ts +9 -0
  528. package/esm/model/methods/static-event-methods.d.ts.map +1 -0
  529. package/esm/model/methods/static-event-methods.js +29 -0
  530. package/esm/model/methods/static-event-methods.js.map +1 -0
  531. package/esm/model/methods/write-methods.d.ts +10 -0
  532. package/esm/model/methods/write-methods.d.ts.map +1 -0
  533. package/esm/model/methods/write-methods.js +52 -0
  534. package/esm/model/methods/write-methods.js.map +1 -0
  535. package/esm/model/model.d.ts +1647 -0
  536. package/esm/model/model.d.ts.map +1 -0
  537. package/esm/model/model.js +1657 -0
  538. package/esm/model/model.js.map +1 -0
  539. package/esm/model/model.types.d.ts +44 -0
  540. package/esm/model/model.types.d.ts.map +1 -0
  541. package/esm/model/register-model.d.ts +81 -0
  542. package/esm/model/register-model.d.ts.map +1 -0
  543. package/esm/model/register-model.js +94 -0
  544. package/esm/model/register-model.js.map +1 -0
  545. package/esm/query-builder/query-builder.d.ts +556 -0
  546. package/esm/query-builder/query-builder.d.ts.map +1 -0
  547. package/esm/query-builder/query-builder.js +1070 -0
  548. package/esm/query-builder/query-builder.js.map +1 -0
  549. package/esm/relations/helpers.d.ts +156 -0
  550. package/esm/relations/helpers.d.ts.map +1 -0
  551. package/esm/relations/helpers.js +202 -0
  552. package/esm/relations/helpers.js.map +1 -0
  553. package/esm/relations/index.d.ts +35 -0
  554. package/esm/relations/index.d.ts.map +1 -0
  555. package/esm/relations/pivot-operations.d.ts +160 -0
  556. package/esm/relations/pivot-operations.d.ts.map +1 -0
  557. package/esm/relations/pivot-operations.js +293 -0
  558. package/esm/relations/pivot-operations.js.map +1 -0
  559. package/esm/relations/relation-hydrator.d.ts +68 -0
  560. package/esm/relations/relation-hydrator.d.ts.map +1 -0
  561. package/esm/relations/relation-hydrator.js +81 -0
  562. package/esm/relations/relation-hydrator.js.map +1 -0
  563. package/esm/relations/relation-loader.d.ts +194 -0
  564. package/esm/relations/relation-loader.d.ts.map +1 -0
  565. package/esm/relations/relation-loader.js +466 -0
  566. package/esm/relations/relation-loader.js.map +1 -0
  567. package/esm/relations/types.d.ts +306 -0
  568. package/esm/relations/types.d.ts.map +1 -0
  569. package/esm/remover/database-remover.d.ts +100 -0
  570. package/esm/remover/database-remover.d.ts.map +1 -0
  571. package/esm/remover/database-remover.js +214 -0
  572. package/esm/remover/database-remover.js.map +1 -0
  573. package/esm/restorer/database-restorer.d.ts +131 -0
  574. package/esm/restorer/database-restorer.d.ts.map +1 -0
  575. package/esm/restorer/database-restorer.js +434 -0
  576. package/esm/restorer/database-restorer.js.map +1 -0
  577. package/esm/sql-database-dirty-tracker.d.ts +13 -0
  578. package/esm/sql-database-dirty-tracker.d.ts.map +1 -0
  579. package/esm/sql-database-dirty-tracker.js +14 -0
  580. package/esm/sql-database-dirty-tracker.js.map +1 -0
  581. package/esm/sync/index.d.ts +12 -0
  582. package/esm/sync/index.d.ts.map +1 -0
  583. package/esm/sync/model-events.d.ts +62 -0
  584. package/esm/sync/model-events.d.ts.map +1 -0
  585. package/esm/sync/model-events.js +49 -0
  586. package/esm/sync/model-events.js.map +1 -0
  587. package/esm/sync/model-sync-operation.d.ts +163 -0
  588. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  589. package/esm/sync/model-sync-operation.js +292 -0
  590. package/esm/sync/model-sync-operation.js.map +1 -0
  591. package/esm/sync/model-sync.d.ts +130 -0
  592. package/esm/sync/model-sync.d.ts.map +1 -0
  593. package/esm/sync/model-sync.js +178 -0
  594. package/esm/sync/model-sync.js.map +1 -0
  595. package/esm/sync/sync-context.d.ts +70 -0
  596. package/esm/sync/sync-context.d.ts.map +1 -0
  597. package/esm/sync/sync-context.js +101 -0
  598. package/esm/sync/sync-context.js.map +1 -0
  599. package/esm/sync/sync-manager.d.ts +213 -0
  600. package/esm/sync/sync-manager.d.ts.map +1 -0
  601. package/esm/sync/sync-manager.js +689 -0
  602. package/esm/sync/sync-manager.js.map +1 -0
  603. package/esm/sync/types.d.ts +289 -0
  604. package/esm/sync/types.d.ts.map +1 -0
  605. package/esm/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  606. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  607. package/esm/types.d.ts +371 -0
  608. package/esm/types.d.ts.map +1 -0
  609. package/esm/utils/connect-to-database.d.ts +307 -0
  610. package/esm/utils/connect-to-database.d.ts.map +1 -0
  611. package/esm/utils/connect-to-database.js +130 -0
  612. package/esm/utils/connect-to-database.js.map +1 -0
  613. package/esm/utils/database-writer.utils.d.ts +15 -0
  614. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  615. package/esm/utils/database-writer.utils.js +14 -0
  616. package/esm/utils/database-writer.utils.js.map +1 -0
  617. package/esm/utils/define-model.js +100 -0
  618. package/esm/utils/define-model.js.map +1 -0
  619. package/esm/utils/is-valid-date-value.d.ts +5 -0
  620. package/esm/utils/is-valid-date-value.d.ts.map +1 -0
  621. package/esm/utils/is-valid-date-value.js +25 -0
  622. package/esm/utils/is-valid-date-value.js.map +1 -0
  623. package/esm/utils/once-connected.d.ts +146 -0
  624. package/esm/utils/once-connected.d.ts.map +1 -0
  625. package/esm/utils/once-connected.js +251 -0
  626. package/esm/utils/once-connected.js.map +1 -0
  627. package/esm/validation/database-seal-plugins.d.ts +12 -0
  628. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  629. package/esm/validation/database-seal-plugins.js +1 -0
  630. package/esm/validation/database-seal-plugins.js.map +1 -0
  631. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  632. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  633. package/esm/validation/database-writer-validation-error.js +160 -0
  634. package/esm/validation/database-writer-validation-error.js.map +1 -0
  635. package/esm/validation/index.d.ts +3 -0
  636. package/esm/validation/index.d.ts.map +1 -0
  637. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  638. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  639. package/esm/validation/mutators/embed-mutator.js +33 -0
  640. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  641. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  642. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  643. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  644. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  645. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  646. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  647. package/esm/validation/rules/database-model-rule.js +27 -0
  648. package/esm/validation/rules/database-model-rule.js.map +1 -0
  649. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  650. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  651. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  652. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  653. package/esm/validation/validators/embed-validator.d.ts +21 -0
  654. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  655. package/esm/validation/validators/embed-validator.js +43 -0
  656. package/esm/validation/validators/embed-validator.js.map +1 -0
  657. package/esm/writer/database-writer.d.ts +181 -0
  658. package/esm/writer/database-writer.d.ts.map +1 -0
  659. package/esm/writer/database-writer.js +407 -0
  660. package/esm/writer/database-writer.js.map +1 -0
  661. package/package.json +4 -4
@@ -0,0 +1,251 @@
1
+ import {dataSourceRegistry}from'../data-source/data-source-registry.js';/**
2
+ * Execute a callback once the driver is connected.
3
+ *
4
+ * If the driver is already connected, the callback is executed immediately.
5
+ * Otherwise, it waits for the "connected" event.
6
+ *
7
+ * **Use Case:**
8
+ * Useful for ensuring database-dependent operations only run after connection
9
+ * is established, especially in small to medium projects with a single data source.
10
+ *
11
+ * @param dataSourceOrNameOrCallback - Data source instance, name, or callback function
12
+ * @param callback - Function to execute once connected (optional if first param is callback)
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // With default data source (just callback)
17
+ * await connectToDatabase({ database: "myapp" });
18
+ *
19
+ * onceConnected((ds) => {
20
+ * console.log("Database is ready!");
21
+ * console.log("Connected to:", ds.name);
22
+ * });
23
+ * ```
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // With data source name
28
+ * onceConnected("primary", (ds) => {
29
+ * console.log("Primary database is ready!");
30
+ * });
31
+ * ```
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * // With data source instance
36
+ * const dataSource = await connectToDatabase({ database: "myapp" });
37
+ *
38
+ * onceConnected(dataSource, (ds) => {
39
+ * console.log("Database is ready!");
40
+ * });
41
+ * ```
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * // With driver instance
46
+ * const driver = new MongoDbDriver(config);
47
+ * const dataSource = new DataSource({ name: "primary", driver });
48
+ *
49
+ * onceConnected(dataSource, () => {
50
+ * // Start application server
51
+ * app.listen(3000);
52
+ * });
53
+ *
54
+ * // Connect after setting up the callback
55
+ * await driver.connect();
56
+ * ```
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Chaining operations
61
+ * onceConnected(async (ds) => {
62
+ * // Seed database
63
+ * await seedDatabase();
64
+ *
65
+ * // Run migrations
66
+ * await runMigrations();
67
+ *
68
+ * console.log("Database ready!");
69
+ * });
70
+ * ```
71
+ */
72
+ function onceConnected(dataSourceOrNameOrCallback, callback) {
73
+ // Determine if first parameter is a callback
74
+ let targetDataSource;
75
+ let actualCallback;
76
+ if (typeof dataSourceOrNameOrCallback === "function") {
77
+ // First param is callback, use default data source
78
+ actualCallback = dataSourceOrNameOrCallback;
79
+ targetDataSource = "default";
80
+ }
81
+ else {
82
+ // First param is data source name or instance
83
+ if (!callback) {
84
+ throw new Error("Callback is required when providing a data source name or instance.");
85
+ }
86
+ actualCallback = callback;
87
+ targetDataSource = dataSourceOrNameOrCallback;
88
+ }
89
+ // Try to get the data source if it's a string
90
+ let resolvedDataSource;
91
+ if (typeof targetDataSource === "string") {
92
+ try {
93
+ resolvedDataSource =
94
+ targetDataSource === "default"
95
+ ? dataSourceRegistry.get()
96
+ : dataSourceRegistry.get(targetDataSource);
97
+ }
98
+ catch {
99
+ // Data source not registered yet, will wait for event
100
+ }
101
+ }
102
+ else {
103
+ resolvedDataSource = targetDataSource;
104
+ }
105
+ // If data source is resolved and already connected, fire immediately
106
+ if (resolvedDataSource && resolvedDataSource.driver.isConnected) {
107
+ actualCallback(resolvedDataSource);
108
+ return;
109
+ }
110
+ // Otherwise, wait for the connected event
111
+ const listener = (ds) => {
112
+ const matches = typeof targetDataSource === "string"
113
+ ? targetDataSource === "default"
114
+ ? ds.isDefault
115
+ : ds.name === targetDataSource
116
+ : ds === targetDataSource;
117
+ if (matches) {
118
+ // Remove the listener once our condition is met
119
+ dataSourceRegistry.off("connected", listener);
120
+ actualCallback(ds);
121
+ }
122
+ // If it doesn't match, we do nothing and just wait for the next "connected" event targeting our DB
123
+ };
124
+ dataSourceRegistry.on("connected", listener);
125
+ }
126
+ /**
127
+ * Execute a callback once the driver is disconnected.
128
+ *
129
+ * If the driver is already disconnected, the callback is executed immediately.
130
+ * Otherwise, it waits for the "disconnected" event.
131
+ *
132
+ * **Use Case:**
133
+ * Useful for cleanup operations, graceful shutdown, or reconnection logic.
134
+ *
135
+ * @param dataSourceOrNameOrCallback - Data source instance, name, or callback function
136
+ * @param callback - Function to execute once disconnected (optional if first param is callback)
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * // With default data source (just callback)
141
+ * await connectToDatabase({ database: "myapp" });
142
+ *
143
+ * onceDisconnected((ds) => {
144
+ * console.log("Database disconnected!");
145
+ * console.log("Attempting reconnection...");
146
+ * });
147
+ * ```
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // With data source name
152
+ * onceDisconnected("primary", (ds) => {
153
+ * console.log("Primary database disconnected!");
154
+ * });
155
+ * ```
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * // With data source instance
160
+ * const dataSource = await connectToDatabase({ database: "myapp" });
161
+ *
162
+ * onceDisconnected(dataSource, (ds) => {
163
+ * console.log("Database disconnected!");
164
+ * });
165
+ * ```
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * // Graceful shutdown with default data source
170
+ * process.on("SIGTERM", async () => {
171
+ * console.log("Shutting down...");
172
+ *
173
+ * onceDisconnected(() => {
174
+ * console.log("Database closed, exiting process");
175
+ * process.exit(0);
176
+ * });
177
+ *
178
+ * const dataSource = DataSourceRegistry.getDefault();
179
+ * await dataSource?.driver.disconnect();
180
+ * });
181
+ * ```
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * // Cleanup resources on disconnect
186
+ * onceDisconnected(async (ds) => {
187
+ * // Close file handles
188
+ * await closeFileHandles();
189
+ *
190
+ * // Clear caches
191
+ * clearCaches();
192
+ *
193
+ * console.log("Cleanup complete");
194
+ * });
195
+ * ```
196
+ */
197
+ function onceDisconnected(dataSourceOrNameOrCallback, callback) {
198
+ // Determine if first parameter is a callback
199
+ let targetDataSource;
200
+ let actualCallback;
201
+ if (typeof dataSourceOrNameOrCallback === "function") {
202
+ // First param is callback, use default data source
203
+ actualCallback = dataSourceOrNameOrCallback;
204
+ targetDataSource = "default";
205
+ }
206
+ else {
207
+ // First param is data source name or instance
208
+ if (!callback) {
209
+ throw new Error("Callback is required when providing a data source name or instance.");
210
+ }
211
+ actualCallback = callback;
212
+ targetDataSource = dataSourceOrNameOrCallback;
213
+ }
214
+ // Try to get the data source if it's a string
215
+ let resolvedDataSource;
216
+ if (typeof targetDataSource === "string") {
217
+ try {
218
+ resolvedDataSource =
219
+ targetDataSource === "default"
220
+ ? dataSourceRegistry.get()
221
+ : dataSourceRegistry.get(targetDataSource);
222
+ }
223
+ catch {
224
+ // Data source not registered yet, will wait for event
225
+ }
226
+ }
227
+ else {
228
+ resolvedDataSource = targetDataSource;
229
+ }
230
+ // If data source is resolved and already disconnected, fire immediately
231
+ if (resolvedDataSource && !resolvedDataSource.driver.isConnected) {
232
+ actualCallback(resolvedDataSource);
233
+ return;
234
+ }
235
+ // Otherwise, wait for the disconnected event
236
+ const listener = (ds) => {
237
+ const matches = typeof targetDataSource === "string"
238
+ ? targetDataSource === "default"
239
+ ? ds.isDefault
240
+ : ds.name === targetDataSource
241
+ : ds === targetDataSource;
242
+ if (matches) {
243
+ actualCallback(ds);
244
+ }
245
+ else {
246
+ // Not the one we're looking for, keep listening
247
+ dataSourceRegistry.once("disconnected", listener);
248
+ }
249
+ };
250
+ dataSourceRegistry.once("disconnected", listener);
251
+ }export{onceConnected,onceDisconnected};//# sourceMappingURL=once-connected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"once-connected.js","sources":["../../src/utils/once-connected.ts"],"sourcesContent":[null],"names":[],"mappings":"wEAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACa,SAAA,aAAa,CAC3B,0BAAoF,EACpF,QAA2C,EAAA;;AAG3C,IAAA,IAAI,gBAAqC,CAAC;AAC1C,IAAA,IAAI,cAAgD,CAAC;AAErD,IAAA,IAAI,OAAO,0BAA0B,KAAK,UAAU,EAAE;;QAEpD,cAAc,GAAG,0BAA0B,CAAC;QAC5C,gBAAgB,GAAG,SAAS,CAAC;AAC9B,KAAA;AAAM,SAAA;;QAEL,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACxF,SAAA;QACD,cAAc,GAAG,QAAQ,CAAC;QAC1B,gBAAgB,GAAG,0BAA0B,CAAC;AAC/C,KAAA;;AAGD,IAAA,IAAI,kBAA0C,CAAC;AAC/C,IAAA,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QACxC,IAAI;YACF,kBAAkB;AAChB,gBAAA,gBAAgB,KAAK,SAAS;AAC5B,sBAAE,kBAAkB,CAAC,GAAG,EAAE;AAC1B,sBAAE,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAChD,SAAA;QAAC,MAAM;;AAEP,SAAA;AACF,KAAA;AAAM,SAAA;QACL,kBAAkB,GAAG,gBAAgB,CAAC;AACvC,KAAA;;AAGD,IAAA,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE;QAC/D,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACnC,OAAO;AACR,KAAA;;AAGD,IAAA,MAAM,QAAQ,GAAG,CAAC,EAAc,KAAI;AAClC,QAAA,MAAM,OAAO,GACX,OAAO,gBAAgB,KAAK,QAAQ;cAChC,gBAAgB,KAAK,SAAS;kBAC5B,EAAE,CAAC,SAAS;AACd,kBAAE,EAAE,CAAC,IAAI,KAAK,gBAAgB;AAChC,cAAE,EAAE,KAAK,gBAAgB,CAAC;AAE9B,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC9C,cAAc,CAAC,EAAE,CAAC,CAAC;AACpB,SAAA;;AAEH,KAAC,CAAC;AAEF,IAAA,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACa,SAAA,gBAAgB,CAC9B,0BAAoF,EACpF,QAA2C,EAAA;;AAG3C,IAAA,IAAI,gBAAqC,CAAC;AAC1C,IAAA,IAAI,cAAgD,CAAC;AAErD,IAAA,IAAI,OAAO,0BAA0B,KAAK,UAAU,EAAE;;QAEpD,cAAc,GAAG,0BAA0B,CAAC;QAC5C,gBAAgB,GAAG,SAAS,CAAC;AAC9B,KAAA;AAAM,SAAA;;QAEL,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACxF,SAAA;QACD,cAAc,GAAG,QAAQ,CAAC;QAC1B,gBAAgB,GAAG,0BAA0B,CAAC;AAC/C,KAAA;;AAGD,IAAA,IAAI,kBAA0C,CAAC;AAC/C,IAAA,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QACxC,IAAI;YACF,kBAAkB;AAChB,gBAAA,gBAAgB,KAAK,SAAS;AAC5B,sBAAE,kBAAkB,CAAC,GAAG,EAAE;AAC1B,sBAAE,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAChD,SAAA;QAAC,MAAM;;AAEP,SAAA;AACF,KAAA;AAAM,SAAA;QACL,kBAAkB,GAAG,gBAAgB,CAAC;AACvC,KAAA;;IAGD,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE;QAChE,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACnC,OAAO;AACR,KAAA;;AAGD,IAAA,MAAM,QAAQ,GAAG,CAAC,EAAc,KAAI;AAClC,QAAA,MAAM,OAAO,GACX,OAAO,gBAAgB,KAAK,QAAQ;cAChC,gBAAgB,KAAK,SAAS;kBAC5B,EAAE,CAAC,SAAS;AACd,kBAAE,EAAE,CAAC,IAAI,KAAK,gBAAgB;AAChC,cAAE,EAAE,KAAK,gBAAgB,CAAC;AAE9B,QAAA,IAAI,OAAO,EAAE;YACX,cAAc,CAAC,EAAE,CAAC,CAAC;AACpB,SAAA;AAAM,aAAA;;AAEL,YAAA,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACnD,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACpD"}
@@ -0,0 +1,12 @@
1
+ import { embedValidator } from "./plugins/embed-validator-plugin";
2
+ /**
3
+ * This file registers database seal plugins as a side effect.
4
+ * Import this file to ensure the plugins are registered.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import "./validation/database-seal-plugins";
9
+ * ```
10
+ */
11
+ export type DatabaseSealPlugins = typeof embedValidator;
12
+ //# sourceMappingURL=database-seal-plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-seal-plugins.d.ts","sourceRoot":"","sources":["../../src/validation/database-seal-plugins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIlE;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ import {registerPlugin}from'@warlock.js/seal';import {embedValidator}from'./plugins/embed-validator-plugin.js';registerPlugin(embedValidator);//# sourceMappingURL=database-seal-plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-seal-plugins.js","sources":["../../src/validation/database-seal-plugins.ts"],"sourcesContent":[null],"names":[],"mappings":"+GAGA,cAAc,CAAC,cAAc,CAAC"}
@@ -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
+ import {colors}from'@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(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(colors.yellow(` Field: ${fieldName}`));
112
+ for (const fieldError of fieldErrors) {
113
+ lines.push(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(colors.gray(` Value: ${valueStr}`));
119
+ }
120
+ if (fieldError.type) {
121
+ lines.push(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
+ }export{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":[],"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
+ import {Model}from'../../model/model.js';import {getModelFromRegistry}from'../../model/register-model.js';const databaseModelMutator = async (value, context) => {
2
+ let { model: ModelClass } = context?.options || {};
3
+ if (typeof ModelClass === "string") {
4
+ ModelClass = getModelFromRegistry(ModelClass);
5
+ }
6
+ if (!ModelClass) {
7
+ throw new Error(`Model ${ModelClass} not found in registry`);
8
+ }
9
+ if (value instanceof 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 = 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))
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
+ };export{databaseModelMutator,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":[],"mappings":"0GAQa,MAAA,oBAAoB,GAAyC,OACxE,KAAK,EACL,OAAO,KACL;IACF,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AAEnD,IAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,QAAA,UAAU,GAAG,oBAAoB,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,YAAY,KAAK;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,EAAE,OAAO,IAAI,EAAE,CAAC;AAEnD,IAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,QAAA,UAAU,GAAG,oBAAoB,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,YAAY,KAAK,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
+ import {v}from'@warlock.js/seal';import {EmbedModelValidator}from'../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
+ v.embed = (model, options) => new EmbedModelValidator().model(model).embed(options?.embed);
16
+ v.embedMany = (model, options) => new EmbedModelValidator().models(model).embed(options?.embed);
17
+ },
18
+ };export{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":[],"mappings":"oGAAA;;;;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;;QAEL,CAAC,CAAC,KAAK,GAAG,CAAC,KAA+B,EAAE,OAAsB,KAChE,IAAI,mBAAmB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,SAAS,GAAG,CAAC,KAA+B,EAAE,OAAsB,KACpE,IAAI,mBAAmB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACjE;"}