@warlock.js/cascade 4.0.174 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1050) hide show
  1. package/README.md +6 -5
  2. package/bin/cascadejs +3 -0
  3. package/esm/cli/commands/migrate-export-sql.mjs +48 -0
  4. package/esm/cli/commands/migrate-export-sql.mjs.map +1 -0
  5. package/esm/cli/commands/migrate-list.mjs +26 -0
  6. package/esm/cli/commands/migrate-list.mjs.map +1 -0
  7. package/esm/cli/commands/migrate-rollback.mjs +50 -0
  8. package/esm/cli/commands/migrate-rollback.mjs.map +1 -0
  9. package/esm/cli/commands/migrate.mjs +65 -0
  10. package/esm/cli/commands/migrate.mjs.map +1 -0
  11. package/esm/cli/connection-from-env.mjs +181 -0
  12. package/esm/cli/connection-from-env.mjs.map +1 -0
  13. package/esm/cli/index.mjs +31 -0
  14. package/esm/cli/index.mjs.map +1 -0
  15. package/esm/cli/load-migrations.mjs +78 -0
  16. package/esm/cli/load-migrations.mjs.map +1 -0
  17. package/esm/cli/printers.mjs +57 -0
  18. package/esm/cli/printers.mjs.map +1 -0
  19. package/esm/cli/setup-logger.mjs +30 -0
  20. package/esm/cli/setup-logger.mjs.map +1 -0
  21. package/esm/cli/with-cli-connection.mjs +39 -0
  22. package/esm/cli/with-cli-connection.mjs.map +1 -0
  23. package/esm/cli.d.mts +1 -0
  24. package/esm/cli.mjs +26 -0
  25. package/esm/cli.mjs.map +1 -0
  26. package/esm/context/database-data-source-context.d.mts +32 -0
  27. package/esm/context/database-data-source-context.d.mts.map +1 -0
  28. package/esm/context/database-data-source-context.mjs +35 -0
  29. package/esm/context/database-data-source-context.mjs.map +1 -0
  30. package/esm/context/database-transaction-context.d.mts +38 -0
  31. package/esm/context/database-transaction-context.d.mts.map +1 -0
  32. package/esm/context/database-transaction-context.mjs +47 -0
  33. package/esm/context/database-transaction-context.mjs.map +1 -0
  34. package/esm/contracts/database-driver.contract.d.mts +443 -0
  35. package/esm/contracts/database-driver.contract.d.mts.map +1 -0
  36. package/esm/contracts/database-id-generator.contract.d.mts +109 -0
  37. package/esm/contracts/database-id-generator.contract.d.mts.map +1 -0
  38. package/esm/contracts/database-remover.contract.d.mts +108 -0
  39. package/esm/contracts/database-remover.contract.d.mts.map +1 -0
  40. package/esm/contracts/database-restorer.contract.d.mts +145 -0
  41. package/esm/contracts/database-restorer.contract.d.mts.map +1 -0
  42. package/esm/contracts/database-writer.contract.d.mts +123 -0
  43. package/esm/contracts/database-writer.contract.d.mts.map +1 -0
  44. package/esm/contracts/driver-blueprint.contract.d.mts +52 -0
  45. package/esm/contracts/driver-blueprint.contract.d.mts.map +1 -0
  46. package/esm/contracts/index.d.mts +9 -0
  47. package/esm/contracts/migration-driver.contract.d.mts +476 -0
  48. package/esm/contracts/migration-driver.contract.d.mts.map +1 -0
  49. package/esm/contracts/query-builder.contract.d.mts +1663 -0
  50. package/esm/contracts/query-builder.contract.d.mts.map +1 -0
  51. package/esm/contracts/sync-adapter.contract.d.mts +49 -0
  52. package/esm/contracts/sync-adapter.contract.d.mts.map +1 -0
  53. package/esm/data-source/data-source-registry.d.mts +111 -0
  54. package/esm/data-source/data-source-registry.d.mts.map +1 -0
  55. package/esm/data-source/data-source-registry.mjs +142 -0
  56. package/esm/data-source/data-source-registry.mjs.map +1 -0
  57. package/esm/data-source/data-source.d.mts +160 -0
  58. package/esm/data-source/data-source.d.mts.map +1 -0
  59. package/esm/data-source/data-source.mjs +87 -0
  60. package/esm/data-source/data-source.mjs.map +1 -0
  61. package/esm/database-dirty-tracker.d.mts +254 -0
  62. package/esm/database-dirty-tracker.d.mts.map +1 -0
  63. package/esm/database-dirty-tracker.mjs +356 -0
  64. package/esm/database-dirty-tracker.mjs.map +1 -0
  65. package/esm/drivers/mongodb/mongodb-blueprint.mjs +54 -0
  66. package/esm/drivers/mongodb/mongodb-blueprint.mjs.map +1 -0
  67. package/esm/drivers/mongodb/mongodb-driver.d.mts +334 -0
  68. package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -0
  69. package/esm/drivers/mongodb/mongodb-driver.mjs +716 -0
  70. package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -0
  71. package/esm/drivers/mongodb/mongodb-id-generator.d.mts +120 -0
  72. package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -0
  73. package/esm/drivers/mongodb/mongodb-id-generator.mjs +141 -0
  74. package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -0
  75. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts +322 -0
  76. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts.map +1 -0
  77. package/esm/drivers/mongodb/mongodb-migration-driver.mjs +531 -0
  78. package/esm/drivers/mongodb/mongodb-migration-driver.mjs.map +1 -0
  79. package/esm/drivers/mongodb/mongodb-query-builder.d.mts +1117 -0
  80. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -0
  81. package/esm/drivers/mongodb/mongodb-query-builder.mjs +1828 -0
  82. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -0
  83. package/esm/drivers/mongodb/mongodb-query-operations.d.mts +230 -0
  84. package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -0
  85. package/esm/drivers/mongodb/mongodb-query-operations.mjs +275 -0
  86. package/esm/drivers/mongodb/mongodb-query-operations.mjs.map +1 -0
  87. package/esm/drivers/mongodb/mongodb-query-parser.d.mts +263 -0
  88. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -0
  89. package/esm/drivers/mongodb/mongodb-query-parser.mjs +965 -0
  90. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -0
  91. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts +78 -0
  92. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts.map +1 -0
  93. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs +118 -0
  94. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs.map +1 -0
  95. package/esm/drivers/mongodb/types.d.mts +43 -0
  96. package/esm/drivers/mongodb/types.d.mts.map +1 -0
  97. package/esm/drivers/postgres/index.d.mts +8 -0
  98. package/esm/drivers/postgres/index.mjs +9 -0
  99. package/esm/drivers/postgres/postgres-blueprint.d.mts +60 -0
  100. package/esm/drivers/postgres/postgres-blueprint.d.mts.map +1 -0
  101. package/esm/drivers/postgres/postgres-blueprint.mjs +105 -0
  102. package/esm/drivers/postgres/postgres-blueprint.mjs.map +1 -0
  103. package/esm/drivers/postgres/postgres-dialect.d.mts +144 -0
  104. package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -0
  105. package/esm/drivers/postgres/postgres-dialect.mjs +227 -0
  106. package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -0
  107. package/esm/drivers/postgres/postgres-driver.d.mts +424 -0
  108. package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -0
  109. package/esm/drivers/postgres/postgres-driver.mjs +845 -0
  110. package/esm/drivers/postgres/postgres-driver.mjs.map +1 -0
  111. package/esm/drivers/postgres/postgres-migration-driver.d.mts +393 -0
  112. package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -0
  113. package/esm/drivers/postgres/postgres-migration-driver.mjs +760 -0
  114. package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -0
  115. package/esm/drivers/postgres/postgres-query-builder.d.mts +399 -0
  116. package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -0
  117. package/esm/drivers/postgres/postgres-query-builder.mjs +1105 -0
  118. package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -0
  119. package/esm/drivers/postgres/postgres-query-parser.d.mts +351 -0
  120. package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -0
  121. package/esm/drivers/postgres/postgres-query-parser.mjs +796 -0
  122. package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -0
  123. package/esm/drivers/postgres/postgres-sql-serializer.mjs +260 -0
  124. package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -0
  125. package/esm/drivers/postgres/postgres-sync-adapter.d.mts +79 -0
  126. package/esm/drivers/postgres/postgres-sync-adapter.d.mts.map +1 -0
  127. package/esm/drivers/postgres/postgres-sync-adapter.mjs +162 -0
  128. package/esm/drivers/postgres/postgres-sync-adapter.mjs.map +1 -0
  129. package/esm/drivers/postgres/types.d.mts +105 -0
  130. package/esm/drivers/postgres/types.d.mts.map +1 -0
  131. package/esm/drivers/sql/sql-dialect.contract.d.mts +221 -0
  132. package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -0
  133. package/esm/drivers/sql/sql-types.d.mts +150 -0
  134. package/esm/drivers/sql/sql-types.d.mts.map +1 -0
  135. package/esm/errors/missing-data-source.error.d.mts +25 -0
  136. package/esm/errors/missing-data-source.error.d.mts.map +1 -0
  137. package/esm/errors/missing-data-source.error.mjs +31 -0
  138. package/esm/errors/missing-data-source.error.mjs.map +1 -0
  139. package/esm/errors/transaction-rollback.error.d.mts +23 -0
  140. package/esm/errors/transaction-rollback.error.d.mts.map +1 -0
  141. package/esm/errors/transaction-rollback.error.mjs +29 -0
  142. package/esm/errors/transaction-rollback.error.mjs.map +1 -0
  143. package/esm/events/model-events.d.mts +234 -0
  144. package/esm/events/model-events.d.mts.map +1 -0
  145. package/esm/events/model-events.mjs +254 -0
  146. package/esm/events/model-events.mjs.map +1 -0
  147. package/esm/expressions/aggregate-expressions.d.mts +224 -0
  148. package/esm/expressions/aggregate-expressions.d.mts.map +1 -0
  149. package/esm/expressions/aggregate-expressions.mjs +232 -0
  150. package/esm/expressions/aggregate-expressions.mjs.map +1 -0
  151. package/esm/index.d.mts +67 -0
  152. package/esm/index.mjs +53 -0
  153. package/esm/migration/column-builder.d.mts +420 -0
  154. package/esm/migration/column-builder.d.mts.map +1 -0
  155. package/esm/migration/column-builder.mjs +532 -0
  156. package/esm/migration/column-builder.mjs.map +1 -0
  157. package/esm/migration/column-helpers.d.mts +280 -0
  158. package/esm/migration/column-helpers.d.mts.map +1 -0
  159. package/esm/migration/column-helpers.mjs +376 -0
  160. package/esm/migration/column-helpers.mjs.map +1 -0
  161. package/esm/migration/foreign-key-builder.d.mts +106 -0
  162. package/esm/migration/foreign-key-builder.d.mts.map +1 -0
  163. package/esm/migration/foreign-key-builder.mjs +126 -0
  164. package/esm/migration/foreign-key-builder.mjs.map +1 -0
  165. package/esm/migration/index.d.mts +6 -0
  166. package/esm/migration/index.mjs +7 -0
  167. package/esm/migration/migration-runner.d.mts +279 -0
  168. package/esm/migration/migration-runner.d.mts.map +1 -0
  169. package/esm/migration/migration-runner.mjs +662 -0
  170. package/esm/migration/migration-runner.mjs.map +1 -0
  171. package/esm/migration/migration.d.mts +2035 -0
  172. package/esm/migration/migration.d.mts.map +1 -0
  173. package/esm/migration/migration.mjs +2083 -0
  174. package/esm/migration/migration.mjs.map +1 -0
  175. package/esm/migration/sql-grammar.mjs +115 -0
  176. package/esm/migration/sql-grammar.mjs.map +1 -0
  177. package/esm/migration/sql-serializer.d.mts +26 -0
  178. package/esm/migration/sql-serializer.d.mts.map +1 -0
  179. package/esm/migration/sql-serializer.mjs +26 -0
  180. package/esm/migration/sql-serializer.mjs.map +1 -0
  181. package/esm/migration/types.d.mts +136 -0
  182. package/esm/migration/types.d.mts.map +1 -0
  183. package/esm/model/methods/accessor-methods.mjs +54 -0
  184. package/esm/model/methods/accessor-methods.mjs.map +1 -0
  185. package/esm/model/methods/delete-methods.mjs +16 -0
  186. package/esm/model/methods/delete-methods.mjs.map +1 -0
  187. package/esm/model/methods/dirty-methods.mjs +20 -0
  188. package/esm/model/methods/dirty-methods.mjs.map +1 -0
  189. package/esm/model/methods/hydration-methods.mjs +51 -0
  190. package/esm/model/methods/hydration-methods.mjs.map +1 -0
  191. package/esm/model/methods/instance-event-methods.mjs +22 -0
  192. package/esm/model/methods/instance-event-methods.mjs.map +1 -0
  193. package/esm/model/methods/meta-methods.mjs +36 -0
  194. package/esm/model/methods/meta-methods.mjs.map +1 -0
  195. package/esm/model/methods/pivot-methods.mjs +48 -0
  196. package/esm/model/methods/pivot-methods.mjs.map +1 -0
  197. package/esm/model/methods/query-methods.mjs +121 -0
  198. package/esm/model/methods/query-methods.mjs.map +1 -0
  199. package/esm/model/methods/restore-methods.mjs +16 -0
  200. package/esm/model/methods/restore-methods.mjs.map +1 -0
  201. package/esm/model/methods/scope-methods.mjs +20 -0
  202. package/esm/model/methods/scope-methods.mjs.map +1 -0
  203. package/esm/model/methods/serialization-methods.mjs +20 -0
  204. package/esm/model/methods/serialization-methods.mjs.map +1 -0
  205. package/esm/model/methods/static-event-methods.mjs +37 -0
  206. package/esm/model/methods/static-event-methods.mjs.map +1 -0
  207. package/esm/model/methods/write-methods.mjs +69 -0
  208. package/esm/model/methods/write-methods.mjs.map +1 -0
  209. package/esm/model/model.d.mts +1778 -0
  210. package/esm/model/model.d.mts.map +1 -0
  211. package/esm/model/model.mjs +1762 -0
  212. package/esm/model/model.mjs.map +1 -0
  213. package/esm/model/model.types.d.mts +47 -0
  214. package/esm/model/model.types.d.mts.map +1 -0
  215. package/esm/model/register-model.d.mts +140 -0
  216. package/esm/model/register-model.d.mts.map +1 -0
  217. package/esm/model/register-model.mjs +175 -0
  218. package/esm/model/register-model.mjs.map +1 -0
  219. package/esm/model/relation-decorators.d.mts +88 -0
  220. package/esm/model/relation-decorators.d.mts.map +1 -0
  221. package/esm/model/relation-decorators.mjs +191 -0
  222. package/esm/model/relation-decorators.mjs.map +1 -0
  223. package/esm/operations/database.d.mts +46 -0
  224. package/esm/operations/database.d.mts.map +1 -0
  225. package/esm/operations/database.mjs +40 -0
  226. package/esm/operations/database.mjs.map +1 -0
  227. package/esm/operations/index.d.mts +2 -0
  228. package/esm/operations/index.mjs +4 -0
  229. package/esm/operations/migrations.d.mts +71 -0
  230. package/esm/operations/migrations.d.mts.map +1 -0
  231. package/esm/operations/migrations.mjs +70 -0
  232. package/esm/operations/migrations.mjs.map +1 -0
  233. package/esm/query-builder/query-builder.d.mts +564 -0
  234. package/esm/query-builder/query-builder.d.mts.map +1 -0
  235. package/esm/query-builder/query-builder.mjs +1097 -0
  236. package/esm/query-builder/query-builder.mjs.map +1 -0
  237. package/esm/relations/index.d.mts +4 -0
  238. package/esm/relations/index.mjs +5 -0
  239. package/esm/relations/key-conventions.mjs +119 -0
  240. package/esm/relations/key-conventions.mjs.map +1 -0
  241. package/esm/relations/pivot-operations.d.mts +155 -0
  242. package/esm/relations/pivot-operations.d.mts.map +1 -0
  243. package/esm/relations/pivot-operations.mjs +232 -0
  244. package/esm/relations/pivot-operations.mjs.map +1 -0
  245. package/esm/relations/relation-hydrator.d.mts +55 -0
  246. package/esm/relations/relation-hydrator.d.mts.map +1 -0
  247. package/esm/relations/relation-hydrator.mjs +52 -0
  248. package/esm/relations/relation-hydrator.mjs.map +1 -0
  249. package/esm/relations/relation-loader.d.mts +190 -0
  250. package/esm/relations/relation-loader.d.mts.map +1 -0
  251. package/esm/relations/relation-loader.mjs +416 -0
  252. package/esm/relations/relation-loader.mjs.map +1 -0
  253. package/esm/relations/types.d.mts +317 -0
  254. package/esm/relations/types.d.mts.map +1 -0
  255. package/esm/remover/database-remover.d.mts +104 -0
  256. package/esm/remover/database-remover.d.mts.map +1 -0
  257. package/esm/remover/database-remover.mjs +174 -0
  258. package/esm/remover/database-remover.mjs.map +1 -0
  259. package/esm/restorer/database-restorer.d.mts +135 -0
  260. package/esm/restorer/database-restorer.d.mts.map +1 -0
  261. package/esm/restorer/database-restorer.mjs +316 -0
  262. package/esm/restorer/database-restorer.mjs.map +1 -0
  263. package/esm/sql-database-dirty-tracker.d.mts +17 -0
  264. package/esm/sql-database-dirty-tracker.d.mts.map +1 -0
  265. package/esm/sql-database-dirty-tracker.mjs +20 -0
  266. package/esm/sql-database-dirty-tracker.mjs.map +1 -0
  267. package/esm/sync/model-events.mjs +46 -0
  268. package/esm/sync/model-events.mjs.map +1 -0
  269. package/esm/sync/model-sync-operation.d.mts +159 -0
  270. package/esm/sync/model-sync-operation.d.mts.map +1 -0
  271. package/esm/sync/model-sync-operation.mjs +257 -0
  272. package/esm/sync/model-sync-operation.mjs.map +1 -0
  273. package/esm/sync/model-sync.d.mts +126 -0
  274. package/esm/sync/model-sync.d.mts.map +1 -0
  275. package/esm/sync/model-sync.mjs +157 -0
  276. package/esm/sync/model-sync.mjs.map +1 -0
  277. package/esm/sync/sync-context.d.mts +69 -0
  278. package/esm/sync/sync-context.d.mts.map +1 -0
  279. package/esm/sync/sync-context.mjs +95 -0
  280. package/esm/sync/sync-context.mjs.map +1 -0
  281. package/esm/sync/sync-manager.d.mts +213 -0
  282. package/esm/sync/sync-manager.d.mts.map +1 -0
  283. package/esm/sync/sync-manager.mjs +597 -0
  284. package/esm/sync/sync-manager.mjs.map +1 -0
  285. package/esm/sync/types.d.mts +215 -0
  286. package/esm/sync/types.d.mts.map +1 -0
  287. package/esm/types.d.mts +423 -0
  288. package/esm/types.d.mts.map +1 -0
  289. package/esm/utils/connect-to-database.d.mts +328 -0
  290. package/esm/utils/connect-to-database.d.mts.map +1 -0
  291. package/esm/utils/connect-to-database.mjs +130 -0
  292. package/esm/utils/connect-to-database.mjs.map +1 -0
  293. package/esm/utils/database-writer.utils.d.mts +18 -0
  294. package/esm/utils/database-writer.utils.d.mts.map +1 -0
  295. package/esm/utils/database-writer.utils.mjs +25 -0
  296. package/esm/utils/database-writer.utils.mjs.map +1 -0
  297. package/esm/utils/define-model.d.mts +185 -0
  298. package/esm/utils/define-model.d.mts.map +1 -0
  299. package/esm/utils/define-model.mjs +105 -0
  300. package/esm/utils/define-model.mjs.map +1 -0
  301. package/esm/utils/is-valid-date-value.mjs +22 -0
  302. package/esm/utils/is-valid-date-value.mjs.map +1 -0
  303. package/esm/utils/once-connected.d.mts +150 -0
  304. package/esm/utils/once-connected.d.mts.map +1 -0
  305. package/esm/utils/once-connected.mjs +203 -0
  306. package/esm/utils/once-connected.mjs.map +1 -0
  307. package/esm/validation/database-seal-plugins.d.mts +1 -0
  308. package/esm/validation/database-seal-plugins.mjs +11 -0
  309. package/esm/validation/database-seal-plugins.mjs.map +1 -0
  310. package/esm/validation/database-writer-validation-error.d.mts +101 -0
  311. package/esm/validation/database-writer-validation-error.d.mts.map +1 -0
  312. package/esm/validation/database-writer-validation-error.mjs +153 -0
  313. package/esm/validation/database-writer-validation-error.mjs.map +1 -0
  314. package/esm/validation/index.d.mts +2 -0
  315. package/esm/validation/index.mjs +4 -0
  316. package/esm/validation/mutators/embed-mutator.mjs +26 -0
  317. package/esm/validation/mutators/embed-mutator.mjs.map +1 -0
  318. package/esm/validation/plugins/database-rules-plugin.d.mts +28 -0
  319. package/esm/validation/plugins/database-rules-plugin.d.mts.map +1 -0
  320. package/esm/validation/plugins/database-rules-plugin.mjs +43 -0
  321. package/esm/validation/plugins/database-rules-plugin.mjs.map +1 -0
  322. package/esm/validation/plugins/embed-validator-plugin.d.mts +17 -0
  323. package/esm/validation/plugins/embed-validator-plugin.d.mts.map +1 -0
  324. package/esm/validation/plugins/embed-validator-plugin.mjs +20 -0
  325. package/esm/validation/plugins/embed-validator-plugin.mjs.map +1 -0
  326. package/esm/validation/rules/database-model-rule.mjs +32 -0
  327. package/esm/validation/rules/database-model-rule.mjs.map +1 -0
  328. package/esm/validation/rules/exists-rule.mjs +29 -0
  329. package/esm/validation/rules/exists-rule.mjs.map +1 -0
  330. package/esm/validation/rules/unique-rule.mjs +43 -0
  331. package/esm/validation/rules/unique-rule.mjs.map +1 -0
  332. package/esm/validation/transformers/embed-model-transformer.mjs +17 -0
  333. package/esm/validation/transformers/embed-model-transformer.mjs.map +1 -0
  334. package/esm/validation/types.d.mts +43 -0
  335. package/esm/validation/types.d.mts.map +1 -0
  336. package/esm/validation/validators/embed-validator.d.mts +25 -0
  337. package/esm/validation/validators/embed-validator.d.mts.map +1 -0
  338. package/esm/validation/validators/embed-validator.mjs +42 -0
  339. package/esm/validation/validators/embed-validator.mjs.map +1 -0
  340. package/esm/writer/database-writer.d.mts +178 -0
  341. package/esm/writer/database-writer.d.mts.map +1 -0
  342. package/esm/writer/database-writer.mjs +317 -0
  343. package/esm/writer/database-writer.mjs.map +1 -0
  344. package/llms-full.txt +2027 -0
  345. package/llms.txt +23 -0
  346. package/package.json +60 -51
  347. package/skills/README.md +65 -0
  348. package/skills/aggregate-data/SKILL.md +102 -0
  349. package/skills/cascade-basics/SKILL.md +93 -0
  350. package/skills/configure-delete-strategy/SKILL.md +126 -0
  351. package/skills/define-model/SKILL.md +170 -0
  352. package/skills/define-relations/SKILL.md +171 -0
  353. package/skills/manage-data-sources/SKILL.md +140 -0
  354. package/skills/manage-transactions/SKILL.md +118 -0
  355. package/skills/paginate-results/SKILL.md +122 -0
  356. package/skills/perform-atomic-ops/SKILL.md +98 -0
  357. package/skills/query-data/SKILL.md +168 -0
  358. package/skills/run-cascade-cli/SKILL.md +125 -0
  359. package/skills/search-by-vector/SKILL.md +127 -0
  360. package/skills/subscribe-to-model-events/SKILL.md +148 -0
  361. package/skills/track-changes/SKILL.md +109 -0
  362. package/skills/write-migration/SKILL.md +144 -0
  363. package/cjs/context/database-data-source-context.d.ts +0 -29
  364. package/cjs/context/database-data-source-context.d.ts.map +0 -1
  365. package/cjs/context/database-data-source-context.js +0 -28
  366. package/cjs/context/database-data-source-context.js.map +0 -1
  367. package/cjs/context/database-transaction-context.d.ts +0 -35
  368. package/cjs/context/database-transaction-context.d.ts.map +0 -1
  369. package/cjs/context/database-transaction-context.js +0 -40
  370. package/cjs/context/database-transaction-context.js.map +0 -1
  371. package/cjs/contracts/database-driver.contract.d.ts +0 -450
  372. package/cjs/contracts/database-driver.contract.d.ts.map +0 -1
  373. package/cjs/contracts/database-id-generator.contract.d.ts +0 -109
  374. package/cjs/contracts/database-id-generator.contract.d.ts.map +0 -1
  375. package/cjs/contracts/database-remover.contract.d.ts +0 -104
  376. package/cjs/contracts/database-remover.contract.d.ts.map +0 -1
  377. package/cjs/contracts/database-restorer.contract.d.ts +0 -143
  378. package/cjs/contracts/database-restorer.contract.d.ts.map +0 -1
  379. package/cjs/contracts/database-writer.contract.d.ts +0 -119
  380. package/cjs/contracts/database-writer.contract.d.ts.map +0 -1
  381. package/cjs/contracts/driver-blueprint.contract.d.ts +0 -49
  382. package/cjs/contracts/driver-blueprint.contract.d.ts.map +0 -1
  383. package/cjs/contracts/index.d.ts +0 -10
  384. package/cjs/contracts/index.d.ts.map +0 -1
  385. package/cjs/contracts/migration-driver.contract.d.ts +0 -522
  386. package/cjs/contracts/migration-driver.contract.d.ts.map +0 -1
  387. package/cjs/contracts/query-builder.contract.d.ts +0 -1609
  388. package/cjs/contracts/query-builder.contract.d.ts.map +0 -1
  389. package/cjs/contracts/sync-adapter.contract.d.ts +0 -58
  390. package/cjs/contracts/sync-adapter.contract.d.ts.map +0 -1
  391. package/cjs/data-source/data-source-registry.d.ts +0 -108
  392. package/cjs/data-source/data-source-registry.d.ts.map +0 -1
  393. package/cjs/data-source/data-source-registry.js +0 -145
  394. package/cjs/data-source/data-source-registry.js.map +0 -1
  395. package/cjs/data-source/data-source.d.ts +0 -147
  396. package/cjs/data-source/data-source.d.ts.map +0 -1
  397. package/cjs/data-source/data-source.js +0 -83
  398. package/cjs/data-source/data-source.js.map +0 -1
  399. package/cjs/database-dirty-tracker.d.ts +0 -252
  400. package/cjs/database-dirty-tracker.d.ts.map +0 -1
  401. package/cjs/database-dirty-tracker.js +0 -386
  402. package/cjs/database-dirty-tracker.js.map +0 -1
  403. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  404. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  405. package/cjs/drivers/mongodb/mongodb-blueprint.js +0 -51
  406. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  407. package/cjs/drivers/mongodb/mongodb-driver.d.ts +0 -325
  408. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  409. package/cjs/drivers/mongodb/mongodb-driver.js +0 -845
  410. package/cjs/drivers/mongodb/mongodb-driver.js.map +0 -1
  411. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  412. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  413. package/cjs/drivers/mongodb/mongodb-id-generator.js +0 -149
  414. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  415. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  416. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  417. package/cjs/drivers/mongodb/mongodb-migration-driver.js +0 -666
  418. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  419. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  420. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  421. package/cjs/drivers/mongodb/mongodb-query-builder.js +0 -1988
  422. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  423. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  424. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  425. package/cjs/drivers/mongodb/mongodb-query-operations.js +0 -270
  426. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  427. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  428. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  429. package/cjs/drivers/mongodb/mongodb-query-parser.js +0 -1351
  430. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  431. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  432. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  433. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  434. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  435. package/cjs/drivers/mongodb/types.d.ts +0 -43
  436. package/cjs/drivers/mongodb/types.d.ts.map +0 -1
  437. package/cjs/drivers/postgres/index.d.ts +0 -16
  438. package/cjs/drivers/postgres/index.d.ts.map +0 -1
  439. package/cjs/drivers/postgres/postgres-blueprint.d.ts +0 -64
  440. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  441. package/cjs/drivers/postgres/postgres-blueprint.js +0 -121
  442. package/cjs/drivers/postgres/postgres-blueprint.js.map +0 -1
  443. package/cjs/drivers/postgres/postgres-dialect.d.ts +0 -136
  444. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  445. package/cjs/drivers/postgres/postgres-dialect.js +0 -268
  446. package/cjs/drivers/postgres/postgres-dialect.js.map +0 -1
  447. package/cjs/drivers/postgres/postgres-driver.d.ts +0 -432
  448. package/cjs/drivers/postgres/postgres-driver.d.ts.map +0 -1
  449. package/cjs/drivers/postgres/postgres-driver.js +0 -1008
  450. package/cjs/drivers/postgres/postgres-driver.js.map +0 -1
  451. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  452. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  453. package/cjs/drivers/postgres/postgres-migration-driver.js +0 -900
  454. package/cjs/drivers/postgres/postgres-migration-driver.js.map +0 -1
  455. package/cjs/drivers/postgres/postgres-query-builder.d.ts +0 -254
  456. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  457. package/cjs/drivers/postgres/postgres-query-builder.js +0 -933
  458. package/cjs/drivers/postgres/postgres-query-builder.js.map +0 -1
  459. package/cjs/drivers/postgres/postgres-query-parser.d.ts +0 -328
  460. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  461. package/cjs/drivers/postgres/postgres-query-parser.js +0 -868
  462. package/cjs/drivers/postgres/postgres-query-parser.js.map +0 -1
  463. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  464. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  465. package/cjs/drivers/postgres/postgres-sql-serializer.js +0 -400
  466. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  467. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  468. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  469. package/cjs/drivers/postgres/postgres-sync-adapter.js +0 -204
  470. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  471. package/cjs/drivers/postgres/types.d.ts +0 -144
  472. package/cjs/drivers/postgres/types.d.ts.map +0 -1
  473. package/cjs/drivers/sql/index.d.ts +0 -10
  474. package/cjs/drivers/sql/index.d.ts.map +0 -1
  475. package/cjs/drivers/sql/sql-dialect.contract.d.ts +0 -204
  476. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  477. package/cjs/drivers/sql/sql-types.d.ts +0 -202
  478. package/cjs/drivers/sql/sql-types.d.ts.map +0 -1
  479. package/cjs/errors/missing-data-source.error.d.ts +0 -22
  480. package/cjs/errors/missing-data-source.error.d.ts.map +0 -1
  481. package/cjs/errors/missing-data-source.error.js +0 -29
  482. package/cjs/errors/missing-data-source.error.js.map +0 -1
  483. package/cjs/errors/transaction-rollback.error.d.ts +0 -20
  484. package/cjs/errors/transaction-rollback.error.d.ts.map +0 -1
  485. package/cjs/errors/transaction-rollback.error.js +0 -27
  486. package/cjs/errors/transaction-rollback.error.js.map +0 -1
  487. package/cjs/events/model-events.d.ts +0 -231
  488. package/cjs/events/model-events.d.ts.map +0 -1
  489. package/cjs/events/model-events.js +0 -259
  490. package/cjs/events/model-events.js.map +0 -1
  491. package/cjs/expressions/aggregate-expressions.d.ts +0 -215
  492. package/cjs/expressions/aggregate-expressions.d.ts.map +0 -1
  493. package/cjs/expressions/aggregate-expressions.js +0 -221
  494. package/cjs/expressions/aggregate-expressions.js.map +0 -1
  495. package/cjs/expressions/index.d.ts +0 -2
  496. package/cjs/expressions/index.d.ts.map +0 -1
  497. package/cjs/index.d.ts +0 -45
  498. package/cjs/index.d.ts.map +0 -1
  499. package/cjs/index.js +0 -1
  500. package/cjs/index.js.map +0 -1
  501. package/cjs/migration/column-builder.d.ts +0 -417
  502. package/cjs/migration/column-builder.d.ts.map +0 -1
  503. package/cjs/migration/column-builder.js +0 -586
  504. package/cjs/migration/column-builder.js.map +0 -1
  505. package/cjs/migration/column-helpers.d.ts +0 -275
  506. package/cjs/migration/column-helpers.d.ts.map +0 -1
  507. package/cjs/migration/column-helpers.js +0 -389
  508. package/cjs/migration/column-helpers.js.map +0 -1
  509. package/cjs/migration/foreign-key-builder.d.ts +0 -103
  510. package/cjs/migration/foreign-key-builder.d.ts.map +0 -1
  511. package/cjs/migration/foreign-key-builder.js +0 -121
  512. package/cjs/migration/foreign-key-builder.js.map +0 -1
  513. package/cjs/migration/index.d.ts +0 -7
  514. package/cjs/migration/index.d.ts.map +0 -1
  515. package/cjs/migration/migration-runner.d.ts +0 -278
  516. package/cjs/migration/migration-runner.d.ts.map +0 -1
  517. package/cjs/migration/migration-runner.js +0 -815
  518. package/cjs/migration/migration-runner.js.map +0 -1
  519. package/cjs/migration/migration.d.ts +0 -1988
  520. package/cjs/migration/migration.d.ts.map +0 -1
  521. package/cjs/migration/migration.js +0 -2162
  522. package/cjs/migration/migration.js.map +0 -1
  523. package/cjs/migration/sql-grammar.d.ts +0 -61
  524. package/cjs/migration/sql-grammar.d.ts.map +0 -1
  525. package/cjs/migration/sql-grammar.js +0 -164
  526. package/cjs/migration/sql-grammar.js.map +0 -1
  527. package/cjs/migration/sql-serializer.d.ts +0 -22
  528. package/cjs/migration/sql-serializer.d.ts.map +0 -1
  529. package/cjs/migration/sql-serializer.js +0 -26
  530. package/cjs/migration/sql-serializer.js.map +0 -1
  531. package/cjs/migration/types.d.ts +0 -155
  532. package/cjs/migration/types.d.ts.map +0 -1
  533. package/cjs/model/methods/accessor-methods.d.ts +0 -13
  534. package/cjs/model/methods/accessor-methods.d.ts.map +0 -1
  535. package/cjs/model/methods/accessor-methods.js +0 -51
  536. package/cjs/model/methods/accessor-methods.js.map +0 -1
  537. package/cjs/model/methods/delete-methods.d.ts +0 -10
  538. package/cjs/model/methods/delete-methods.d.ts.map +0 -1
  539. package/cjs/model/methods/delete-methods.js +0 -10
  540. package/cjs/model/methods/delete-methods.js.map +0 -1
  541. package/cjs/model/methods/dirty-methods.d.ts +0 -10
  542. package/cjs/model/methods/dirty-methods.d.ts.map +0 -1
  543. package/cjs/model/methods/dirty-methods.js +0 -15
  544. package/cjs/model/methods/dirty-methods.js.map +0 -1
  545. package/cjs/model/methods/hydration-methods.d.ts +0 -10
  546. package/cjs/model/methods/hydration-methods.d.ts.map +0 -1
  547. package/cjs/model/methods/hydration-methods.js +0 -57
  548. package/cjs/model/methods/hydration-methods.js.map +0 -1
  549. package/cjs/model/methods/instance-event-methods.d.ts +0 -7
  550. package/cjs/model/methods/instance-event-methods.d.ts.map +0 -1
  551. package/cjs/model/methods/instance-event-methods.js +0 -15
  552. package/cjs/model/methods/instance-event-methods.js.map +0 -1
  553. package/cjs/model/methods/meta-methods.d.ts +0 -7
  554. package/cjs/model/methods/meta-methods.d.ts.map +0 -1
  555. package/cjs/model/methods/meta-methods.js +0 -78
  556. package/cjs/model/methods/meta-methods.js.map +0 -1
  557. package/cjs/model/methods/query-methods.d.ts +0 -24
  558. package/cjs/model/methods/query-methods.d.ts.map +0 -1
  559. package/cjs/model/methods/query-methods.js +0 -164
  560. package/cjs/model/methods/query-methods.js.map +0 -1
  561. package/cjs/model/methods/restore-methods.d.ts +0 -10
  562. package/cjs/model/methods/restore-methods.d.ts.map +0 -1
  563. package/cjs/model/methods/restore-methods.js +0 -13
  564. package/cjs/model/methods/restore-methods.js.map +0 -1
  565. package/cjs/model/methods/scope-methods.d.ts +0 -7
  566. package/cjs/model/methods/scope-methods.d.ts.map +0 -1
  567. package/cjs/model/methods/scope-methods.js +0 -15
  568. package/cjs/model/methods/scope-methods.js.map +0 -1
  569. package/cjs/model/methods/serialization-methods.d.ts +0 -3
  570. package/cjs/model/methods/serialization-methods.d.ts.map +0 -1
  571. package/cjs/model/methods/serialization-methods.js +0 -27
  572. package/cjs/model/methods/serialization-methods.js.map +0 -1
  573. package/cjs/model/methods/static-event-methods.d.ts +0 -9
  574. package/cjs/model/methods/static-event-methods.d.ts.map +0 -1
  575. package/cjs/model/methods/static-event-methods.js +0 -29
  576. package/cjs/model/methods/static-event-methods.js.map +0 -1
  577. package/cjs/model/methods/write-methods.d.ts +0 -10
  578. package/cjs/model/methods/write-methods.d.ts.map +0 -1
  579. package/cjs/model/methods/write-methods.js +0 -52
  580. package/cjs/model/methods/write-methods.js.map +0 -1
  581. package/cjs/model/model.d.ts +0 -1647
  582. package/cjs/model/model.d.ts.map +0 -1
  583. package/cjs/model/model.js +0 -1657
  584. package/cjs/model/model.js.map +0 -1
  585. package/cjs/model/model.types.d.ts +0 -44
  586. package/cjs/model/model.types.d.ts.map +0 -1
  587. package/cjs/model/register-model.d.ts +0 -81
  588. package/cjs/model/register-model.d.ts.map +0 -1
  589. package/cjs/model/register-model.js +0 -94
  590. package/cjs/model/register-model.js.map +0 -1
  591. package/cjs/query-builder/query-builder.d.ts +0 -556
  592. package/cjs/query-builder/query-builder.d.ts.map +0 -1
  593. package/cjs/query-builder/query-builder.js +0 -1070
  594. package/cjs/query-builder/query-builder.js.map +0 -1
  595. package/cjs/relations/helpers.d.ts +0 -156
  596. package/cjs/relations/helpers.d.ts.map +0 -1
  597. package/cjs/relations/helpers.js +0 -202
  598. package/cjs/relations/helpers.js.map +0 -1
  599. package/cjs/relations/index.d.ts +0 -35
  600. package/cjs/relations/index.d.ts.map +0 -1
  601. package/cjs/relations/pivot-operations.d.ts +0 -160
  602. package/cjs/relations/pivot-operations.d.ts.map +0 -1
  603. package/cjs/relations/pivot-operations.js +0 -293
  604. package/cjs/relations/pivot-operations.js.map +0 -1
  605. package/cjs/relations/relation-hydrator.d.ts +0 -68
  606. package/cjs/relations/relation-hydrator.d.ts.map +0 -1
  607. package/cjs/relations/relation-hydrator.js +0 -81
  608. package/cjs/relations/relation-hydrator.js.map +0 -1
  609. package/cjs/relations/relation-loader.d.ts +0 -194
  610. package/cjs/relations/relation-loader.d.ts.map +0 -1
  611. package/cjs/relations/relation-loader.js +0 -466
  612. package/cjs/relations/relation-loader.js.map +0 -1
  613. package/cjs/relations/types.d.ts +0 -306
  614. package/cjs/relations/types.d.ts.map +0 -1
  615. package/cjs/remover/database-remover.d.ts +0 -100
  616. package/cjs/remover/database-remover.d.ts.map +0 -1
  617. package/cjs/remover/database-remover.js +0 -214
  618. package/cjs/remover/database-remover.js.map +0 -1
  619. package/cjs/restorer/database-restorer.d.ts +0 -131
  620. package/cjs/restorer/database-restorer.d.ts.map +0 -1
  621. package/cjs/restorer/database-restorer.js +0 -434
  622. package/cjs/restorer/database-restorer.js.map +0 -1
  623. package/cjs/sql-database-dirty-tracker.d.ts +0 -13
  624. package/cjs/sql-database-dirty-tracker.d.ts.map +0 -1
  625. package/cjs/sql-database-dirty-tracker.js +0 -14
  626. package/cjs/sql-database-dirty-tracker.js.map +0 -1
  627. package/cjs/sync/index.d.ts +0 -12
  628. package/cjs/sync/index.d.ts.map +0 -1
  629. package/cjs/sync/model-events.d.ts +0 -62
  630. package/cjs/sync/model-events.d.ts.map +0 -1
  631. package/cjs/sync/model-events.js +0 -49
  632. package/cjs/sync/model-events.js.map +0 -1
  633. package/cjs/sync/model-sync-operation.d.ts +0 -163
  634. package/cjs/sync/model-sync-operation.d.ts.map +0 -1
  635. package/cjs/sync/model-sync-operation.js +0 -292
  636. package/cjs/sync/model-sync-operation.js.map +0 -1
  637. package/cjs/sync/model-sync.d.ts +0 -130
  638. package/cjs/sync/model-sync.d.ts.map +0 -1
  639. package/cjs/sync/model-sync.js +0 -178
  640. package/cjs/sync/model-sync.js.map +0 -1
  641. package/cjs/sync/sync-context.d.ts +0 -70
  642. package/cjs/sync/sync-context.d.ts.map +0 -1
  643. package/cjs/sync/sync-context.js +0 -101
  644. package/cjs/sync/sync-context.js.map +0 -1
  645. package/cjs/sync/sync-manager.d.ts +0 -213
  646. package/cjs/sync/sync-manager.d.ts.map +0 -1
  647. package/cjs/sync/sync-manager.js +0 -689
  648. package/cjs/sync/sync-manager.js.map +0 -1
  649. package/cjs/sync/types.d.ts +0 -289
  650. package/cjs/sync/types.d.ts.map +0 -1
  651. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  652. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  653. package/cjs/types.d.ts +0 -371
  654. package/cjs/types.d.ts.map +0 -1
  655. package/cjs/utils/connect-to-database.d.ts +0 -307
  656. package/cjs/utils/connect-to-database.d.ts.map +0 -1
  657. package/cjs/utils/connect-to-database.js +0 -130
  658. package/cjs/utils/connect-to-database.js.map +0 -1
  659. package/cjs/utils/database-writer.utils.d.ts +0 -15
  660. package/cjs/utils/database-writer.utils.d.ts.map +0 -1
  661. package/cjs/utils/database-writer.utils.js +0 -14
  662. package/cjs/utils/database-writer.utils.js.map +0 -1
  663. package/cjs/utils/define-model.js +0 -100
  664. package/cjs/utils/define-model.js.map +0 -1
  665. package/cjs/utils/is-valid-date-value.d.ts +0 -5
  666. package/cjs/utils/is-valid-date-value.d.ts.map +0 -1
  667. package/cjs/utils/is-valid-date-value.js +0 -25
  668. package/cjs/utils/is-valid-date-value.js.map +0 -1
  669. package/cjs/utils/once-connected.d.ts +0 -146
  670. package/cjs/utils/once-connected.d.ts.map +0 -1
  671. package/cjs/utils/once-connected.js +0 -251
  672. package/cjs/utils/once-connected.js.map +0 -1
  673. package/cjs/validation/database-seal-plugins.d.ts +0 -12
  674. package/cjs/validation/database-seal-plugins.d.ts.map +0 -1
  675. package/cjs/validation/database-seal-plugins.js +0 -1
  676. package/cjs/validation/database-seal-plugins.js.map +0 -1
  677. package/cjs/validation/database-writer-validation-error.d.ts +0 -97
  678. package/cjs/validation/database-writer-validation-error.d.ts.map +0 -1
  679. package/cjs/validation/database-writer-validation-error.js +0 -160
  680. package/cjs/validation/database-writer-validation-error.js.map +0 -1
  681. package/cjs/validation/index.d.ts +0 -3
  682. package/cjs/validation/index.d.ts.map +0 -1
  683. package/cjs/validation/mutators/embed-mutator.d.ts +0 -9
  684. package/cjs/validation/mutators/embed-mutator.d.ts.map +0 -1
  685. package/cjs/validation/mutators/embed-mutator.js +0 -33
  686. package/cjs/validation/mutators/embed-mutator.js.map +0 -1
  687. package/cjs/validation/plugins/embed-validator-plugin.d.ts +0 -24
  688. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  689. package/cjs/validation/plugins/embed-validator-plugin.js +0 -18
  690. package/cjs/validation/plugins/embed-validator-plugin.js.map +0 -1
  691. package/cjs/validation/rules/database-model-rule.d.ts +0 -7
  692. package/cjs/validation/rules/database-model-rule.d.ts.map +0 -1
  693. package/cjs/validation/rules/database-model-rule.js +0 -27
  694. package/cjs/validation/rules/database-model-rule.js.map +0 -1
  695. package/cjs/validation/transformers/embed-model-transformer.d.ts +0 -3
  696. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  697. package/cjs/validation/transformers/embed-model-transformer.js +0 -18
  698. package/cjs/validation/transformers/embed-model-transformer.js.map +0 -1
  699. package/cjs/validation/validators/embed-validator.d.ts +0 -21
  700. package/cjs/validation/validators/embed-validator.d.ts.map +0 -1
  701. package/cjs/validation/validators/embed-validator.js +0 -43
  702. package/cjs/validation/validators/embed-validator.js.map +0 -1
  703. package/cjs/writer/database-writer.d.ts +0 -174
  704. package/cjs/writer/database-writer.d.ts.map +0 -1
  705. package/cjs/writer/database-writer.js +0 -400
  706. package/cjs/writer/database-writer.js.map +0 -1
  707. package/esm/context/database-data-source-context.d.ts +0 -29
  708. package/esm/context/database-data-source-context.d.ts.map +0 -1
  709. package/esm/context/database-data-source-context.js +0 -28
  710. package/esm/context/database-data-source-context.js.map +0 -1
  711. package/esm/context/database-transaction-context.d.ts +0 -35
  712. package/esm/context/database-transaction-context.d.ts.map +0 -1
  713. package/esm/context/database-transaction-context.js +0 -40
  714. package/esm/context/database-transaction-context.js.map +0 -1
  715. package/esm/contracts/database-driver.contract.d.ts +0 -450
  716. package/esm/contracts/database-driver.contract.d.ts.map +0 -1
  717. package/esm/contracts/database-id-generator.contract.d.ts +0 -109
  718. package/esm/contracts/database-id-generator.contract.d.ts.map +0 -1
  719. package/esm/contracts/database-remover.contract.d.ts +0 -104
  720. package/esm/contracts/database-remover.contract.d.ts.map +0 -1
  721. package/esm/contracts/database-restorer.contract.d.ts +0 -143
  722. package/esm/contracts/database-restorer.contract.d.ts.map +0 -1
  723. package/esm/contracts/database-writer.contract.d.ts +0 -119
  724. package/esm/contracts/database-writer.contract.d.ts.map +0 -1
  725. package/esm/contracts/driver-blueprint.contract.d.ts +0 -49
  726. package/esm/contracts/driver-blueprint.contract.d.ts.map +0 -1
  727. package/esm/contracts/index.d.ts +0 -10
  728. package/esm/contracts/index.d.ts.map +0 -1
  729. package/esm/contracts/migration-driver.contract.d.ts +0 -522
  730. package/esm/contracts/migration-driver.contract.d.ts.map +0 -1
  731. package/esm/contracts/query-builder.contract.d.ts +0 -1609
  732. package/esm/contracts/query-builder.contract.d.ts.map +0 -1
  733. package/esm/contracts/sync-adapter.contract.d.ts +0 -58
  734. package/esm/contracts/sync-adapter.contract.d.ts.map +0 -1
  735. package/esm/data-source/data-source-registry.d.ts +0 -108
  736. package/esm/data-source/data-source-registry.d.ts.map +0 -1
  737. package/esm/data-source/data-source-registry.js +0 -145
  738. package/esm/data-source/data-source-registry.js.map +0 -1
  739. package/esm/data-source/data-source.d.ts +0 -147
  740. package/esm/data-source/data-source.d.ts.map +0 -1
  741. package/esm/data-source/data-source.js +0 -83
  742. package/esm/data-source/data-source.js.map +0 -1
  743. package/esm/database-dirty-tracker.d.ts +0 -252
  744. package/esm/database-dirty-tracker.d.ts.map +0 -1
  745. package/esm/database-dirty-tracker.js +0 -386
  746. package/esm/database-dirty-tracker.js.map +0 -1
  747. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  748. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  749. package/esm/drivers/mongodb/mongodb-blueprint.js +0 -51
  750. package/esm/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  751. package/esm/drivers/mongodb/mongodb-driver.d.ts +0 -325
  752. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  753. package/esm/drivers/mongodb/mongodb-driver.js +0 -845
  754. package/esm/drivers/mongodb/mongodb-driver.js.map +0 -1
  755. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  756. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  757. package/esm/drivers/mongodb/mongodb-id-generator.js +0 -149
  758. package/esm/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  759. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  760. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  761. package/esm/drivers/mongodb/mongodb-migration-driver.js +0 -666
  762. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  763. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  764. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  765. package/esm/drivers/mongodb/mongodb-query-builder.js +0 -1988
  766. package/esm/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  767. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  768. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  769. package/esm/drivers/mongodb/mongodb-query-operations.js +0 -270
  770. package/esm/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  771. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  772. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  773. package/esm/drivers/mongodb/mongodb-query-parser.js +0 -1351
  774. package/esm/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  775. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  776. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  777. package/esm/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  778. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  779. package/esm/drivers/mongodb/types.d.ts +0 -43
  780. package/esm/drivers/mongodb/types.d.ts.map +0 -1
  781. package/esm/drivers/postgres/index.d.ts +0 -16
  782. package/esm/drivers/postgres/index.d.ts.map +0 -1
  783. package/esm/drivers/postgres/postgres-blueprint.d.ts +0 -64
  784. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  785. package/esm/drivers/postgres/postgres-blueprint.js +0 -121
  786. package/esm/drivers/postgres/postgres-blueprint.js.map +0 -1
  787. package/esm/drivers/postgres/postgres-dialect.d.ts +0 -136
  788. package/esm/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  789. package/esm/drivers/postgres/postgres-dialect.js +0 -268
  790. package/esm/drivers/postgres/postgres-dialect.js.map +0 -1
  791. package/esm/drivers/postgres/postgres-driver.d.ts +0 -432
  792. package/esm/drivers/postgres/postgres-driver.d.ts.map +0 -1
  793. package/esm/drivers/postgres/postgres-driver.js +0 -1008
  794. package/esm/drivers/postgres/postgres-driver.js.map +0 -1
  795. package/esm/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  796. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  797. package/esm/drivers/postgres/postgres-migration-driver.js +0 -900
  798. package/esm/drivers/postgres/postgres-migration-driver.js.map +0 -1
  799. package/esm/drivers/postgres/postgres-query-builder.d.ts +0 -254
  800. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  801. package/esm/drivers/postgres/postgres-query-builder.js +0 -933
  802. package/esm/drivers/postgres/postgres-query-builder.js.map +0 -1
  803. package/esm/drivers/postgres/postgres-query-parser.d.ts +0 -328
  804. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  805. package/esm/drivers/postgres/postgres-query-parser.js +0 -868
  806. package/esm/drivers/postgres/postgres-query-parser.js.map +0 -1
  807. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  808. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  809. package/esm/drivers/postgres/postgres-sql-serializer.js +0 -400
  810. package/esm/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  811. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  812. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  813. package/esm/drivers/postgres/postgres-sync-adapter.js +0 -204
  814. package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  815. package/esm/drivers/postgres/types.d.ts +0 -144
  816. package/esm/drivers/postgres/types.d.ts.map +0 -1
  817. package/esm/drivers/sql/index.d.ts +0 -10
  818. package/esm/drivers/sql/index.d.ts.map +0 -1
  819. package/esm/drivers/sql/sql-dialect.contract.d.ts +0 -204
  820. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  821. package/esm/drivers/sql/sql-types.d.ts +0 -202
  822. package/esm/drivers/sql/sql-types.d.ts.map +0 -1
  823. package/esm/errors/missing-data-source.error.d.ts +0 -22
  824. package/esm/errors/missing-data-source.error.d.ts.map +0 -1
  825. package/esm/errors/missing-data-source.error.js +0 -29
  826. package/esm/errors/missing-data-source.error.js.map +0 -1
  827. package/esm/errors/transaction-rollback.error.d.ts +0 -20
  828. package/esm/errors/transaction-rollback.error.d.ts.map +0 -1
  829. package/esm/errors/transaction-rollback.error.js +0 -27
  830. package/esm/errors/transaction-rollback.error.js.map +0 -1
  831. package/esm/events/model-events.d.ts +0 -231
  832. package/esm/events/model-events.d.ts.map +0 -1
  833. package/esm/events/model-events.js +0 -259
  834. package/esm/events/model-events.js.map +0 -1
  835. package/esm/expressions/aggregate-expressions.d.ts +0 -215
  836. package/esm/expressions/aggregate-expressions.d.ts.map +0 -1
  837. package/esm/expressions/aggregate-expressions.js +0 -221
  838. package/esm/expressions/aggregate-expressions.js.map +0 -1
  839. package/esm/expressions/index.d.ts +0 -2
  840. package/esm/expressions/index.d.ts.map +0 -1
  841. package/esm/index.d.ts +0 -45
  842. package/esm/index.d.ts.map +0 -1
  843. package/esm/index.js +0 -1
  844. package/esm/index.js.map +0 -1
  845. package/esm/migration/column-builder.d.ts +0 -417
  846. package/esm/migration/column-builder.d.ts.map +0 -1
  847. package/esm/migration/column-builder.js +0 -586
  848. package/esm/migration/column-builder.js.map +0 -1
  849. package/esm/migration/column-helpers.d.ts +0 -275
  850. package/esm/migration/column-helpers.d.ts.map +0 -1
  851. package/esm/migration/column-helpers.js +0 -389
  852. package/esm/migration/column-helpers.js.map +0 -1
  853. package/esm/migration/foreign-key-builder.d.ts +0 -103
  854. package/esm/migration/foreign-key-builder.d.ts.map +0 -1
  855. package/esm/migration/foreign-key-builder.js +0 -121
  856. package/esm/migration/foreign-key-builder.js.map +0 -1
  857. package/esm/migration/index.d.ts +0 -7
  858. package/esm/migration/index.d.ts.map +0 -1
  859. package/esm/migration/migration-runner.d.ts +0 -278
  860. package/esm/migration/migration-runner.d.ts.map +0 -1
  861. package/esm/migration/migration-runner.js +0 -815
  862. package/esm/migration/migration-runner.js.map +0 -1
  863. package/esm/migration/migration.d.ts +0 -1988
  864. package/esm/migration/migration.d.ts.map +0 -1
  865. package/esm/migration/migration.js +0 -2162
  866. package/esm/migration/migration.js.map +0 -1
  867. package/esm/migration/sql-grammar.d.ts +0 -61
  868. package/esm/migration/sql-grammar.d.ts.map +0 -1
  869. package/esm/migration/sql-grammar.js +0 -164
  870. package/esm/migration/sql-grammar.js.map +0 -1
  871. package/esm/migration/sql-serializer.d.ts +0 -22
  872. package/esm/migration/sql-serializer.d.ts.map +0 -1
  873. package/esm/migration/sql-serializer.js +0 -26
  874. package/esm/migration/sql-serializer.js.map +0 -1
  875. package/esm/migration/types.d.ts +0 -155
  876. package/esm/migration/types.d.ts.map +0 -1
  877. package/esm/model/methods/accessor-methods.d.ts +0 -13
  878. package/esm/model/methods/accessor-methods.d.ts.map +0 -1
  879. package/esm/model/methods/accessor-methods.js +0 -51
  880. package/esm/model/methods/accessor-methods.js.map +0 -1
  881. package/esm/model/methods/delete-methods.d.ts +0 -10
  882. package/esm/model/methods/delete-methods.d.ts.map +0 -1
  883. package/esm/model/methods/delete-methods.js +0 -10
  884. package/esm/model/methods/delete-methods.js.map +0 -1
  885. package/esm/model/methods/dirty-methods.d.ts +0 -10
  886. package/esm/model/methods/dirty-methods.d.ts.map +0 -1
  887. package/esm/model/methods/dirty-methods.js +0 -15
  888. package/esm/model/methods/dirty-methods.js.map +0 -1
  889. package/esm/model/methods/hydration-methods.d.ts +0 -10
  890. package/esm/model/methods/hydration-methods.d.ts.map +0 -1
  891. package/esm/model/methods/hydration-methods.js +0 -57
  892. package/esm/model/methods/hydration-methods.js.map +0 -1
  893. package/esm/model/methods/instance-event-methods.d.ts +0 -7
  894. package/esm/model/methods/instance-event-methods.d.ts.map +0 -1
  895. package/esm/model/methods/instance-event-methods.js +0 -15
  896. package/esm/model/methods/instance-event-methods.js.map +0 -1
  897. package/esm/model/methods/meta-methods.d.ts +0 -7
  898. package/esm/model/methods/meta-methods.d.ts.map +0 -1
  899. package/esm/model/methods/meta-methods.js +0 -78
  900. package/esm/model/methods/meta-methods.js.map +0 -1
  901. package/esm/model/methods/query-methods.d.ts +0 -24
  902. package/esm/model/methods/query-methods.d.ts.map +0 -1
  903. package/esm/model/methods/query-methods.js +0 -164
  904. package/esm/model/methods/query-methods.js.map +0 -1
  905. package/esm/model/methods/restore-methods.d.ts +0 -10
  906. package/esm/model/methods/restore-methods.d.ts.map +0 -1
  907. package/esm/model/methods/restore-methods.js +0 -13
  908. package/esm/model/methods/restore-methods.js.map +0 -1
  909. package/esm/model/methods/scope-methods.d.ts +0 -7
  910. package/esm/model/methods/scope-methods.d.ts.map +0 -1
  911. package/esm/model/methods/scope-methods.js +0 -15
  912. package/esm/model/methods/scope-methods.js.map +0 -1
  913. package/esm/model/methods/serialization-methods.d.ts +0 -3
  914. package/esm/model/methods/serialization-methods.d.ts.map +0 -1
  915. package/esm/model/methods/serialization-methods.js +0 -27
  916. package/esm/model/methods/serialization-methods.js.map +0 -1
  917. package/esm/model/methods/static-event-methods.d.ts +0 -9
  918. package/esm/model/methods/static-event-methods.d.ts.map +0 -1
  919. package/esm/model/methods/static-event-methods.js +0 -29
  920. package/esm/model/methods/static-event-methods.js.map +0 -1
  921. package/esm/model/methods/write-methods.d.ts +0 -10
  922. package/esm/model/methods/write-methods.d.ts.map +0 -1
  923. package/esm/model/methods/write-methods.js +0 -52
  924. package/esm/model/methods/write-methods.js.map +0 -1
  925. package/esm/model/model.d.ts +0 -1647
  926. package/esm/model/model.d.ts.map +0 -1
  927. package/esm/model/model.js +0 -1657
  928. package/esm/model/model.js.map +0 -1
  929. package/esm/model/model.types.d.ts +0 -44
  930. package/esm/model/model.types.d.ts.map +0 -1
  931. package/esm/model/register-model.d.ts +0 -81
  932. package/esm/model/register-model.d.ts.map +0 -1
  933. package/esm/model/register-model.js +0 -94
  934. package/esm/model/register-model.js.map +0 -1
  935. package/esm/query-builder/query-builder.d.ts +0 -556
  936. package/esm/query-builder/query-builder.d.ts.map +0 -1
  937. package/esm/query-builder/query-builder.js +0 -1070
  938. package/esm/query-builder/query-builder.js.map +0 -1
  939. package/esm/relations/helpers.d.ts +0 -156
  940. package/esm/relations/helpers.d.ts.map +0 -1
  941. package/esm/relations/helpers.js +0 -202
  942. package/esm/relations/helpers.js.map +0 -1
  943. package/esm/relations/index.d.ts +0 -35
  944. package/esm/relations/index.d.ts.map +0 -1
  945. package/esm/relations/pivot-operations.d.ts +0 -160
  946. package/esm/relations/pivot-operations.d.ts.map +0 -1
  947. package/esm/relations/pivot-operations.js +0 -293
  948. package/esm/relations/pivot-operations.js.map +0 -1
  949. package/esm/relations/relation-hydrator.d.ts +0 -68
  950. package/esm/relations/relation-hydrator.d.ts.map +0 -1
  951. package/esm/relations/relation-hydrator.js +0 -81
  952. package/esm/relations/relation-hydrator.js.map +0 -1
  953. package/esm/relations/relation-loader.d.ts +0 -194
  954. package/esm/relations/relation-loader.d.ts.map +0 -1
  955. package/esm/relations/relation-loader.js +0 -466
  956. package/esm/relations/relation-loader.js.map +0 -1
  957. package/esm/relations/types.d.ts +0 -306
  958. package/esm/relations/types.d.ts.map +0 -1
  959. package/esm/remover/database-remover.d.ts +0 -100
  960. package/esm/remover/database-remover.d.ts.map +0 -1
  961. package/esm/remover/database-remover.js +0 -214
  962. package/esm/remover/database-remover.js.map +0 -1
  963. package/esm/restorer/database-restorer.d.ts +0 -131
  964. package/esm/restorer/database-restorer.d.ts.map +0 -1
  965. package/esm/restorer/database-restorer.js +0 -434
  966. package/esm/restorer/database-restorer.js.map +0 -1
  967. package/esm/sql-database-dirty-tracker.d.ts +0 -13
  968. package/esm/sql-database-dirty-tracker.d.ts.map +0 -1
  969. package/esm/sql-database-dirty-tracker.js +0 -14
  970. package/esm/sql-database-dirty-tracker.js.map +0 -1
  971. package/esm/sync/index.d.ts +0 -12
  972. package/esm/sync/index.d.ts.map +0 -1
  973. package/esm/sync/model-events.d.ts +0 -62
  974. package/esm/sync/model-events.d.ts.map +0 -1
  975. package/esm/sync/model-events.js +0 -49
  976. package/esm/sync/model-events.js.map +0 -1
  977. package/esm/sync/model-sync-operation.d.ts +0 -163
  978. package/esm/sync/model-sync-operation.d.ts.map +0 -1
  979. package/esm/sync/model-sync-operation.js +0 -292
  980. package/esm/sync/model-sync-operation.js.map +0 -1
  981. package/esm/sync/model-sync.d.ts +0 -130
  982. package/esm/sync/model-sync.d.ts.map +0 -1
  983. package/esm/sync/model-sync.js +0 -178
  984. package/esm/sync/model-sync.js.map +0 -1
  985. package/esm/sync/sync-context.d.ts +0 -70
  986. package/esm/sync/sync-context.d.ts.map +0 -1
  987. package/esm/sync/sync-context.js +0 -101
  988. package/esm/sync/sync-context.js.map +0 -1
  989. package/esm/sync/sync-manager.d.ts +0 -213
  990. package/esm/sync/sync-manager.d.ts.map +0 -1
  991. package/esm/sync/sync-manager.js +0 -689
  992. package/esm/sync/sync-manager.js.map +0 -1
  993. package/esm/sync/types.d.ts +0 -289
  994. package/esm/sync/types.d.ts.map +0 -1
  995. package/esm/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  996. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  997. package/esm/types.d.ts +0 -371
  998. package/esm/types.d.ts.map +0 -1
  999. package/esm/utils/connect-to-database.d.ts +0 -307
  1000. package/esm/utils/connect-to-database.d.ts.map +0 -1
  1001. package/esm/utils/connect-to-database.js +0 -130
  1002. package/esm/utils/connect-to-database.js.map +0 -1
  1003. package/esm/utils/database-writer.utils.d.ts +0 -15
  1004. package/esm/utils/database-writer.utils.d.ts.map +0 -1
  1005. package/esm/utils/database-writer.utils.js +0 -14
  1006. package/esm/utils/database-writer.utils.js.map +0 -1
  1007. package/esm/utils/define-model.js +0 -100
  1008. package/esm/utils/define-model.js.map +0 -1
  1009. package/esm/utils/is-valid-date-value.d.ts +0 -5
  1010. package/esm/utils/is-valid-date-value.d.ts.map +0 -1
  1011. package/esm/utils/is-valid-date-value.js +0 -25
  1012. package/esm/utils/is-valid-date-value.js.map +0 -1
  1013. package/esm/utils/once-connected.d.ts +0 -146
  1014. package/esm/utils/once-connected.d.ts.map +0 -1
  1015. package/esm/utils/once-connected.js +0 -251
  1016. package/esm/utils/once-connected.js.map +0 -1
  1017. package/esm/validation/database-seal-plugins.d.ts +0 -12
  1018. package/esm/validation/database-seal-plugins.d.ts.map +0 -1
  1019. package/esm/validation/database-seal-plugins.js +0 -1
  1020. package/esm/validation/database-seal-plugins.js.map +0 -1
  1021. package/esm/validation/database-writer-validation-error.d.ts +0 -97
  1022. package/esm/validation/database-writer-validation-error.d.ts.map +0 -1
  1023. package/esm/validation/database-writer-validation-error.js +0 -160
  1024. package/esm/validation/database-writer-validation-error.js.map +0 -1
  1025. package/esm/validation/index.d.ts +0 -3
  1026. package/esm/validation/index.d.ts.map +0 -1
  1027. package/esm/validation/mutators/embed-mutator.d.ts +0 -9
  1028. package/esm/validation/mutators/embed-mutator.d.ts.map +0 -1
  1029. package/esm/validation/mutators/embed-mutator.js +0 -33
  1030. package/esm/validation/mutators/embed-mutator.js.map +0 -1
  1031. package/esm/validation/plugins/embed-validator-plugin.d.ts +0 -24
  1032. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  1033. package/esm/validation/plugins/embed-validator-plugin.js +0 -18
  1034. package/esm/validation/plugins/embed-validator-plugin.js.map +0 -1
  1035. package/esm/validation/rules/database-model-rule.d.ts +0 -7
  1036. package/esm/validation/rules/database-model-rule.d.ts.map +0 -1
  1037. package/esm/validation/rules/database-model-rule.js +0 -27
  1038. package/esm/validation/rules/database-model-rule.js.map +0 -1
  1039. package/esm/validation/transformers/embed-model-transformer.d.ts +0 -3
  1040. package/esm/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  1041. package/esm/validation/transformers/embed-model-transformer.js +0 -18
  1042. package/esm/validation/transformers/embed-model-transformer.js.map +0 -1
  1043. package/esm/validation/validators/embed-validator.d.ts +0 -21
  1044. package/esm/validation/validators/embed-validator.d.ts.map +0 -1
  1045. package/esm/validation/validators/embed-validator.js +0 -43
  1046. package/esm/validation/validators/embed-validator.js.map +0 -1
  1047. package/esm/writer/database-writer.d.ts +0 -174
  1048. package/esm/writer/database-writer.d.ts.map +0 -1
  1049. package/esm/writer/database-writer.js +0 -400
  1050. package/esm/writer/database-writer.js.map +0 -1
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # cascade
2
2
 
3
- A powerful and easy to use MongoDB driver for `Nodejs`
3
+ A powerful, model-first TypeScript ORM for **MongoDB and PostgreSQL** on `Node.js`.
4
4
 
5
5
  ## Features
6
6
 
7
- cascade is a MongoDB driver for Nodejs, it's built on top of the official MongoDB driver, and it provides a simple and easy to use API for working with MongoDB, it is fast, efficient, reliable and will make your life easier with real world apps.
7
+ Cascade is a unified ORM for MongoDB and PostgreSQL one model-first API runs against both engines. Define a model once (its `@warlock.js/seal` schema doubles as the TypeScript type, the runtime validator, and the DB shape) and query straight off the class. It's fast, type-safe, and built for real-world apps.
8
8
 
9
9
  Some but not all of the features:
10
10
 
@@ -52,14 +52,15 @@ pnpm add @warlock.js/cascade
52
52
  Here is a simple example of defining a User model:
53
53
 
54
54
  ```ts title="src/models/user.ts"
55
- import { Model } from "@warlock.js/cascade";
55
+ import { Model, RegisterModel } from "@warlock.js/cascade";
56
56
 
57
+ @RegisterModel()
57
58
  export class User extends Model {
58
59
  /**
59
- * The collection name
60
+ * The table / collection name.
60
61
  * Must be defined explicitly.
61
62
  */
62
- public static collection = "users";
63
+ public static table = "users";
63
64
  }
64
65
  ```
65
66
 
package/bin/cascadejs ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import "../cjs/cli.js";
@@ -0,0 +1,48 @@
1
+ import { exportMigrationsSQL } from "../../operations/migrations.mjs";
2
+ import { loadMigrations } from "../load-migrations.mjs";
3
+ import { withCliConnection } from "../with-cli-connection.mjs";
4
+ import { defineCommand } from "citty";
5
+
6
+ //#region ../../@warlock.js/cascade/src/cli/commands/migrate-export-sql.ts
7
+ /**
8
+ * `cascade migrate:export-sql` — write phase-ordered `.up.sql` /
9
+ * `.down.sql` files for the registered migrations under
10
+ * `<cwd>/database/sql/`. No DB writes occur.
11
+ */
12
+ const migrateExportSqlCommand = defineCommand({
13
+ meta: {
14
+ name: "migrate:export-sql",
15
+ description: "Write phase-ordered SQL files for the registered migrations."
16
+ },
17
+ args: {
18
+ "pending-only": {
19
+ type: "boolean",
20
+ description: "Export only pending migrations.",
21
+ default: false
22
+ },
23
+ compact: {
24
+ type: "boolean",
25
+ alias: "c",
26
+ description: "Strip generated comments and blank lines.",
27
+ default: false
28
+ },
29
+ path: {
30
+ type: "string",
31
+ alias: "p",
32
+ description: "Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}."
33
+ }
34
+ },
35
+ async run({ args }) {
36
+ await withCliConnection(async () => {
37
+ await loadMigrations(args.path);
38
+ await exportMigrationsSQL({
39
+ pendingOnly: Boolean(args["pending-only"]),
40
+ compact: Boolean(args.compact)
41
+ });
42
+ });
43
+ }
44
+ });
45
+
46
+ //#endregion
47
+ export { migrateExportSqlCommand };
48
+ //# sourceMappingURL=migrate-export-sql.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-export-sql.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate-export-sql.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { exportMigrationsSQL } from \"../../operations/migrations\";\nimport { loadMigrations } from \"../load-migrations\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate:export-sql` — write phase-ordered `.up.sql` /\n * `.down.sql` files for the registered migrations under\n * `<cwd>/database/sql/`. No DB writes occur.\n */\nexport const migrateExportSqlCommand = defineCommand({\n meta: {\n name: \"migrate:export-sql\",\n description: \"Write phase-ordered SQL files for the registered migrations.\",\n },\n args: {\n \"pending-only\": {\n type: \"boolean\",\n description: \"Export only pending migrations.\",\n default: false,\n },\n compact: {\n type: \"boolean\",\n alias: \"c\",\n description: \"Strip generated comments and blank lines.\",\n default: false,\n },\n path: {\n type: \"string\",\n alias: \"p\",\n description: \"Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}.\",\n },\n },\n async run({ args }) {\n await withCliConnection(async () => {\n await loadMigrations(args.path);\n\n await exportMigrationsSQL({\n pendingOnly: Boolean(args[\"pending-only\"]),\n compact: Boolean(args.compact),\n });\n });\n },\n});\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,0BAA0B,cAAc;CACnD,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;EACJ,gBAAgB;GACd,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,SAAS;GACP,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,MAAM,kBAAkB,YAAY;GAClC,MAAM,eAAe,KAAK,IAAI;GAE9B,MAAM,oBAAoB;IACxB,aAAa,QAAQ,KAAK,eAAe;IACzC,SAAS,QAAQ,KAAK,OAAO;GAC/B,CAAC;EACH,CAAC;CACH;AACF,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { listExecutedMigrations } from "../../operations/migrations.mjs";
2
+ import { printExecutedMigrations } from "../printers.mjs";
3
+ import { withCliConnection } from "../with-cli-connection.mjs";
4
+ import { defineCommand } from "citty";
5
+
6
+ //#region ../../@warlock.js/cascade/src/cli/commands/migrate-list.ts
7
+ /**
8
+ * `cascade migrate:list` — print every migration that has been executed
9
+ * against the configured data source. Reads the migrations table directly;
10
+ * does not load files from disk.
11
+ */
12
+ const migrateListCommand = defineCommand({
13
+ meta: {
14
+ name: "migrate:list",
15
+ description: "List every migration that has been executed against the data source."
16
+ },
17
+ async run() {
18
+ await withCliConnection(async () => {
19
+ printExecutedMigrations(await listExecutedMigrations());
20
+ });
21
+ }
22
+ });
23
+
24
+ //#endregion
25
+ export { migrateListCommand };
26
+ //# sourceMappingURL=migrate-list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-list.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate-list.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { listExecutedMigrations } from \"../../operations/migrations\";\nimport { printExecutedMigrations } from \"../printers\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate:list` — print every migration that has been executed\n * against the configured data source. Reads the migrations table directly;\n * does not load files from disk.\n */\nexport const migrateListCommand = defineCommand({\n meta: {\n name: \"migrate:list\",\n description: \"List every migration that has been executed against the data source.\",\n },\n async run() {\n await withCliConnection(async () => {\n const executed = await listExecutedMigrations();\n\n printExecutedMigrations(executed);\n });\n },\n});\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,qBAAqB,cAAc;CAC9C,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM,MAAM;EACV,MAAM,kBAAkB,YAAY;GAGlC,wBAAwB,MAFD,uBAAuB,CAEd;EAClC,CAAC;CACH;AACF,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { rollbackMigrations } from "../../operations/migrations.mjs";
2
+ import { loadMigrations } from "../load-migrations.mjs";
3
+ import { printRunSummary } from "../printers.mjs";
4
+ import { withCliConnection } from "../with-cli-connection.mjs";
5
+ import { defineCommand } from "citty";
6
+
7
+ //#region ../../@warlock.js/cascade/src/cli/commands/migrate-rollback.ts
8
+ /**
9
+ * `cascade migrate:rollback` — undo the most recent batch (or every executed
10
+ * migration with `--all`). Migration files are loaded so the runner has the
11
+ * `down()` methods available.
12
+ */
13
+ const migrateRollbackCommand = defineCommand({
14
+ meta: {
15
+ name: "migrate:rollback",
16
+ description: "Roll back the most recent batch — or everything with --all."
17
+ },
18
+ args: {
19
+ all: {
20
+ type: "boolean",
21
+ alias: "a",
22
+ description: "Roll back every executed migration. Overrides --batches.",
23
+ default: false
24
+ },
25
+ batches: {
26
+ type: "string",
27
+ description: "Roll back the last N batches (ignored when --all is set). Default: 1."
28
+ },
29
+ path: {
30
+ type: "string",
31
+ alias: "p",
32
+ description: "Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}."
33
+ }
34
+ },
35
+ async run({ args }) {
36
+ await withCliConnection(async () => {
37
+ await loadMigrations(args.path);
38
+ const batches = args.batches ? Number(args.batches) : void 0;
39
+ if (batches !== void 0 && (!Number.isFinite(batches) || batches <= 0)) throw new Error(`Cascade CLI: --batches must be a positive integer, received "${args.batches}".`);
40
+ printRunSummary(await rollbackMigrations({
41
+ all: Boolean(args.all),
42
+ batches
43
+ }));
44
+ });
45
+ }
46
+ });
47
+
48
+ //#endregion
49
+ export { migrateRollbackCommand };
50
+ //# sourceMappingURL=migrate-rollback.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-rollback.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate-rollback.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { rollbackMigrations } from \"../../operations/migrations\";\nimport { loadMigrations } from \"../load-migrations\";\nimport { printRunSummary } from \"../printers\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate:rollback` — undo the most recent batch (or every executed\n * migration with `--all`). Migration files are loaded so the runner has the\n * `down()` methods available.\n */\nexport const migrateRollbackCommand = defineCommand({\n meta: {\n name: \"migrate:rollback\",\n description: \"Roll back the most recent batch — or everything with --all.\",\n },\n args: {\n all: {\n type: \"boolean\",\n alias: \"a\",\n description: \"Roll back every executed migration. Overrides --batches.\",\n default: false,\n },\n batches: {\n type: \"string\",\n description: \"Roll back the last N batches (ignored when --all is set). Default: 1.\",\n },\n path: {\n type: \"string\",\n alias: \"p\",\n description: \"Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}.\",\n },\n },\n async run({ args }) {\n await withCliConnection(async () => {\n await loadMigrations(args.path);\n\n const batches = args.batches ? Number(args.batches) : undefined;\n\n if (batches !== undefined && (!Number.isFinite(batches) || batches <= 0)) {\n throw new Error(\n `Cascade CLI: --batches must be a positive integer, received \"${args.batches}\".`,\n );\n }\n\n const results = await rollbackMigrations({\n all: Boolean(args.all),\n batches,\n });\n\n printRunSummary(results);\n });\n },\n});\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;EACJ,KAAK;GACH,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,SAAS;GACP,MAAM;GACN,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,MAAM,kBAAkB,YAAY;GAClC,MAAM,eAAe,KAAK,IAAI;GAE9B,MAAM,UAAU,KAAK,UAAU,OAAO,KAAK,OAAO,IAAI;GAEtD,IAAI,YAAY,WAAc,CAAC,OAAO,SAAS,OAAO,KAAK,WAAW,IACpE,MAAM,IAAI,MACR,gEAAgE,KAAK,QAAQ,GAC/E;GAQF,gBAAgB,MALM,mBAAmB;IACvC,KAAK,QAAQ,KAAK,GAAG;IACrB;GACF,CAAC,CAEsB;EACzB,CAAC;CACH;AACF,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { exportMigrationsSQL, freshMigrate, runMigrations } from "../../operations/migrations.mjs";
2
+ import { loadMigrations } from "../load-migrations.mjs";
3
+ import { printRunSummary } from "../printers.mjs";
4
+ import { withCliConnection } from "../with-cli-connection.mjs";
5
+ import { defineCommand } from "citty";
6
+
7
+ //#region ../../@warlock.js/cascade/src/cli/commands/migrate.ts
8
+ /**
9
+ * `cascade migrate` — run all pending migrations against the configured
10
+ * data source. With `--fresh` rolls back everything first and re-runs;
11
+ * with `--sql` writes phase-ordered SQL files instead of executing.
12
+ */
13
+ const migrateCommand = defineCommand({
14
+ meta: {
15
+ name: "migrate",
16
+ description: "Run all pending migrations against the configured data source."
17
+ },
18
+ args: {
19
+ fresh: {
20
+ type: "boolean",
21
+ alias: "f",
22
+ description: "Roll back every executed migration first, then run them again.",
23
+ default: false
24
+ },
25
+ sql: {
26
+ type: "boolean",
27
+ alias: "s",
28
+ description: "Export migrations to phase-ordered SQL files instead of executing.",
29
+ default: false
30
+ },
31
+ "pending-only": {
32
+ type: "boolean",
33
+ description: "When used with --sql, export only pending migrations.",
34
+ default: false
35
+ },
36
+ compact: {
37
+ type: "boolean",
38
+ alias: "c",
39
+ description: "When used with --sql, strip generated comments and blank lines.",
40
+ default: false
41
+ },
42
+ path: {
43
+ type: "string",
44
+ alias: "p",
45
+ description: "Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}."
46
+ }
47
+ },
48
+ async run({ args }) {
49
+ await withCliConnection(async () => {
50
+ await loadMigrations(args.path);
51
+ if (args.sql) {
52
+ await exportMigrationsSQL({
53
+ pendingOnly: Boolean(args["pending-only"]),
54
+ compact: Boolean(args.compact)
55
+ });
56
+ return;
57
+ }
58
+ printRunSummary(args.fresh ? await freshMigrate() : await runMigrations());
59
+ });
60
+ }
61
+ });
62
+
63
+ //#endregion
64
+ export { migrateCommand };
65
+ //# sourceMappingURL=migrate.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport {\n exportMigrationsSQL,\n freshMigrate,\n runMigrations,\n} from \"../../operations/migrations\";\nimport { loadMigrations } from \"../load-migrations\";\nimport { printRunSummary } from \"../printers\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate` — run all pending migrations against the configured\n * data source. With `--fresh` rolls back everything first and re-runs;\n * with `--sql` writes phase-ordered SQL files instead of executing.\n */\nexport const migrateCommand = defineCommand({\n meta: {\n name: \"migrate\",\n description: \"Run all pending migrations against the configured data source.\",\n },\n args: {\n fresh: {\n type: \"boolean\",\n alias: \"f\",\n description: \"Roll back every executed migration first, then run them again.\",\n default: false,\n },\n sql: {\n type: \"boolean\",\n alias: \"s\",\n description: \"Export migrations to phase-ordered SQL files instead of executing.\",\n default: false,\n },\n \"pending-only\": {\n type: \"boolean\",\n description: \"When used with --sql, export only pending migrations.\",\n default: false,\n },\n compact: {\n type: \"boolean\",\n alias: \"c\",\n description: \"When used with --sql, strip generated comments and blank lines.\",\n default: false,\n },\n path: {\n type: \"string\",\n alias: \"p\",\n description: \"Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}.\",\n },\n },\n async run({ args }) {\n await withCliConnection(async () => {\n await loadMigrations(args.path);\n\n if (args.sql) {\n await exportMigrationsSQL({\n pendingOnly: Boolean(args[\"pending-only\"]),\n compact: Boolean(args.compact),\n });\n\n return;\n }\n\n const results = args.fresh ? await freshMigrate() : await runMigrations();\n\n printRunSummary(results);\n });\n },\n});\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,iBAAiB,cAAc;CAC1C,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;EACJ,OAAO;GACL,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,KAAK;GACH,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,gBAAgB;GACd,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,SAAS;GACP,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,MAAM,kBAAkB,YAAY;GAClC,MAAM,eAAe,KAAK,IAAI;GAE9B,IAAI,KAAK,KAAK;IACZ,MAAM,oBAAoB;KACxB,aAAa,QAAQ,KAAK,eAAe;KACzC,SAAS,QAAQ,KAAK,OAAO;IAC/B,CAAC;IAED;GACF;GAIA,gBAFgB,KAAK,QAAQ,MAAM,aAAa,IAAI,MAAM,cAAc,CAEjD;EACzB,CAAC;CACH;AACF,CAAC"}
@@ -0,0 +1,181 @@
1
+ import { dataSourceRegistry } from "../data-source/data-source-registry.mjs";
2
+ import { MongoDbDriver } from "../drivers/mongodb/mongodb-driver.mjs";
3
+ import { PostgresDriver } from "../drivers/postgres/postgres-driver.mjs";
4
+
5
+ //#region ../../@warlock.js/cascade/src/cli/connection-from-env.ts
6
+ const VALID_PRIMARY_KEYS = [
7
+ "uuid",
8
+ "int",
9
+ "bigInt"
10
+ ];
11
+ const VALID_UUID_STRATEGIES = ["v4", "v7"];
12
+ const POSTGRES_URL_PREFIXES = ["postgres://", "postgresql://"];
13
+ const MONGODB_URL_PREFIXES = ["mongodb://", "mongodb+srv://"];
14
+ /**
15
+ * Validate and normalise the `CASCADE_PRIMARY_KEY` env var. Throws a CLI-
16
+ * shaped error when the value is set but unrecognised.
17
+ */
18
+ function parsePrimaryKey(raw) {
19
+ if (!raw) return;
20
+ const trimmed = raw.trim();
21
+ const match = VALID_PRIMARY_KEYS.find((value) => value.toLowerCase() === trimmed.toLowerCase());
22
+ if (!match) throw new Error(`Cascade CLI: invalid CASCADE_PRIMARY_KEY="${raw}". Expected one of ${VALID_PRIMARY_KEYS.join(" | ")}.`);
23
+ return match;
24
+ }
25
+ /**
26
+ * Validate and normalise the `CASCADE_UUID_STRATEGY` env var. Throws a CLI-
27
+ * shaped error when the value is set but unrecognised.
28
+ */
29
+ function parseUuidStrategy(raw) {
30
+ if (!raw) return;
31
+ const trimmed = raw.trim().toLowerCase();
32
+ const match = VALID_UUID_STRATEGIES.find((value) => value === trimmed);
33
+ if (!match) throw new Error(`Cascade CLI: invalid CASCADE_UUID_STRATEGY="${raw}". Expected one of ${VALID_UUID_STRATEGIES.join(" | ")}.`);
34
+ return match;
35
+ }
36
+ /**
37
+ * Read process env and collapse the alias pairs into a single resolved shape.
38
+ *
39
+ * Aliases (canonical → also-accepted):
40
+ * - `DATABASE_URL` → `DB_URL`
41
+ * - `DB_DIALECT` → `DB_DRIVER`
42
+ * - `DB_USER` → `DB_USERNAME`
43
+ */
44
+ function resolveDbEnv(env) {
45
+ return {
46
+ databaseUrl: env.DATABASE_URL?.trim() || env.DB_URL?.trim() || void 0,
47
+ dialect: env.DB_DIALECT?.trim() || env.DB_DRIVER?.trim() || void 0,
48
+ host: env.DB_HOST?.trim() || void 0,
49
+ port: env.DB_PORT?.toString().trim() || void 0,
50
+ database: env.DB_NAME?.trim() || void 0,
51
+ user: env.DB_USER?.trim() || env.DB_USERNAME?.trim() || void 0,
52
+ password: env.DB_PASSWORD !== void 0 ? String(env.DB_PASSWORD) : void 0,
53
+ primaryKey: parsePrimaryKey(env.CASCADE_PRIMARY_KEY),
54
+ uuidStrategy: parseUuidStrategy(env.CASCADE_UUID_STRATEGY)
55
+ };
56
+ }
57
+ /**
58
+ * Build the optional `migrationDefaults` shape passed to the data source.
59
+ * Returns `undefined` when neither env var is set — so consumers get the
60
+ * cascade library defaults (`primaryKey: "int"`, `uuidStrategy: "v4"`).
61
+ */
62
+ function buildMigrationDefaults(resolved) {
63
+ if (!resolved.primaryKey && !resolved.uuidStrategy) return;
64
+ return {
65
+ primaryKey: resolved.primaryKey,
66
+ uuidStrategy: resolved.uuidStrategy
67
+ };
68
+ }
69
+ /**
70
+ * Parse the path portion of a database URL as the database name, returning
71
+ * `undefined` when the URL is malformed or carries no database segment.
72
+ */
73
+ function extractDatabaseFromUrl(url) {
74
+ try {
75
+ return new URL(url).pathname.replace(/^\//, "") || void 0;
76
+ } catch {
77
+ return;
78
+ }
79
+ }
80
+ /**
81
+ * Detect the database dialect from env. First inspects the URL scheme, then
82
+ * falls back to an explicit `DB_DIALECT` / `DB_DRIVER` env var.
83
+ *
84
+ * @example
85
+ * const dialect = detectDialect();
86
+ */
87
+ function detectDialect(env = process.env) {
88
+ const resolved = resolveDbEnv(env);
89
+ if (resolved.databaseUrl) {
90
+ if (POSTGRES_URL_PREFIXES.some((prefix) => resolved.databaseUrl.startsWith(prefix))) return "postgres";
91
+ if (MONGODB_URL_PREFIXES.some((prefix) => resolved.databaseUrl.startsWith(prefix))) return "mongodb";
92
+ }
93
+ const dialect = resolved.dialect?.toLowerCase();
94
+ if (dialect === "postgres" || dialect === "postgresql") return "postgres";
95
+ if (dialect === "mongodb" || dialect === "mongo") return "mongodb";
96
+ throw new Error("Cascade CLI: cannot detect database dialect. Set DATABASE_URL / DB_URL (postgres://… or mongodb://…) or DB_DIALECT / DB_DRIVER = postgres | mongodb.");
97
+ }
98
+ /**
99
+ * Construct a Postgres driver — prefers a connection URL, otherwise builds
100
+ * from discrete env vars.
101
+ */
102
+ function buildPostgresDriver(resolved) {
103
+ if (resolved.databaseUrl) {
104
+ const database = extractDatabaseFromUrl(resolved.databaseUrl);
105
+ if (!database) throw new Error("Cascade CLI: DATABASE_URL / DB_URL is missing the database name in its path segment.");
106
+ return new PostgresDriver({
107
+ connectionString: resolved.databaseUrl,
108
+ database
109
+ });
110
+ }
111
+ if (!resolved.database) throw new Error("Cascade CLI: missing required env var DB_NAME.");
112
+ return new PostgresDriver({
113
+ host: resolved.host ?? "localhost",
114
+ port: resolved.port ? Number(resolved.port) : 5432,
115
+ database: resolved.database,
116
+ user: resolved.user,
117
+ password: resolved.password
118
+ });
119
+ }
120
+ /**
121
+ * Construct a MongoDB driver — prefers a connection URI, otherwise builds
122
+ * from discrete env vars.
123
+ */
124
+ function buildMongoDriver(resolved) {
125
+ if (resolved.databaseUrl) {
126
+ const database = resolved.database ?? extractDatabaseFromUrl(resolved.databaseUrl);
127
+ if (!database) throw new Error("Cascade CLI: cannot resolve MongoDB database name. Either include it in DATABASE_URL / DB_URL or set DB_NAME.");
128
+ return new MongoDbDriver({
129
+ uri: resolved.databaseUrl,
130
+ database
131
+ });
132
+ }
133
+ if (!resolved.database) throw new Error("Cascade CLI: missing required env var DB_NAME.");
134
+ return new MongoDbDriver({
135
+ host: resolved.host ?? "localhost",
136
+ port: resolved.port ? Number(resolved.port) : 27017,
137
+ database: resolved.database,
138
+ username: resolved.user,
139
+ password: resolved.password
140
+ });
141
+ }
142
+ /**
143
+ * Register a `default` data source on `dataSourceRegistry` derived entirely
144
+ * from environment variables and open the underlying driver connection.
145
+ *
146
+ * Reads (canonical name → accepted aliases):
147
+ * - `DATABASE_URL` → `DB_URL` (preferred when present)
148
+ * - `DB_DIALECT` → `DB_DRIVER` (needed only when no URL)
149
+ * - `DB_HOST` / `DB_PORT` / `DB_NAME` / `DB_PASSWORD` (no aliases)
150
+ * - `DB_USER` → `DB_USERNAME`
151
+ *
152
+ * Optional migration defaults — affect how `Migration.create()` chooses the
153
+ * primary-key column and which UUID function the driver emits. Unset means
154
+ * the cascade library defaults apply (`primaryKey: "int"`, `uuidStrategy:
155
+ * "v4"`).
156
+ * - `CASCADE_PRIMARY_KEY` — `uuid` | `int` | `bigInt`
157
+ * - `CASCADE_UUID_STRATEGY` — `v4` | `v7`
158
+ *
159
+ * The driver's pool/socket is opened before this function returns, so the
160
+ * caller can issue queries immediately. Pair every call with
161
+ * `disconnect()` (or use `withCliConnection`) so the process exits cleanly.
162
+ *
163
+ * @example
164
+ * await connectFromEnv();
165
+ * const results = await runMigrations();
166
+ */
167
+ async function connectFromEnv(env = process.env) {
168
+ const dialect = detectDialect(env);
169
+ const resolved = resolveDbEnv(env);
170
+ const driver = dialect === "postgres" ? buildPostgresDriver(resolved) : buildMongoDriver(resolved);
171
+ await dataSourceRegistry.register({
172
+ name: "default",
173
+ driver,
174
+ isDefault: true,
175
+ migrationDefaults: buildMigrationDefaults(resolved)
176
+ }).driver.connect();
177
+ }
178
+
179
+ //#endregion
180
+ export { connectFromEnv };
181
+ //# sourceMappingURL=connection-from-env.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-from-env.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/cli/connection-from-env.ts"],"sourcesContent":["import { dataSourceRegistry } from \"../data-source/data-source-registry\";\nimport { MongoDbDriver } from \"../drivers/mongodb/mongodb-driver\";\nimport { PostgresDriver } from \"../drivers/postgres/postgres-driver\";\nimport type { MigrationDefaults, UuidStrategy } from \"../types\";\n\nconst VALID_PRIMARY_KEYS = [\"uuid\", \"int\", \"bigInt\"] as const;\nconst VALID_UUID_STRATEGIES: readonly UuidStrategy[] = [\"v4\", \"v7\"];\n\ntype PrimaryKey = (typeof VALID_PRIMARY_KEYS)[number];\n\n/**\n * Supported database dialects for the standalone Cascade CLI.\n */\nexport type CliDialect = \"postgres\" | \"mongodb\";\n\nconst POSTGRES_URL_PREFIXES = [\"postgres://\", \"postgresql://\"];\nconst MONGODB_URL_PREFIXES = [\"mongodb://\", \"mongodb+srv://\"];\n\n/**\n * Canonical env shape Cascade actually consumes. The CLI accepts two\n * synonymous spellings for every var (canonical + warlock-shaped) so an\n * existing warlock project's `.env` works as-is without duplication.\n */\ntype ResolvedDbEnv = {\n readonly databaseUrl?: string;\n readonly dialect?: string;\n readonly host?: string;\n readonly port?: string;\n readonly database?: string;\n readonly user?: string;\n readonly password?: string;\n readonly primaryKey?: PrimaryKey;\n readonly uuidStrategy?: UuidStrategy;\n};\n\n/**\n * Validate and normalise the `CASCADE_PRIMARY_KEY` env var. Throws a CLI-\n * shaped error when the value is set but unrecognised.\n */\nfunction parsePrimaryKey(raw: string | undefined): PrimaryKey | undefined {\n if (!raw) {\n return undefined;\n }\n\n const trimmed = raw.trim();\n\n // Case-insensitive match — accept \"BIGINT\" / \"bigint\" / \"bigInt\".\n const match = VALID_PRIMARY_KEYS.find((value) => value.toLowerCase() === trimmed.toLowerCase());\n\n if (!match) {\n throw new Error(\n `Cascade CLI: invalid CASCADE_PRIMARY_KEY=\"${raw}\". ` +\n `Expected one of ${VALID_PRIMARY_KEYS.join(\" | \")}.`,\n );\n }\n\n return match;\n}\n\n/**\n * Validate and normalise the `CASCADE_UUID_STRATEGY` env var. Throws a CLI-\n * shaped error when the value is set but unrecognised.\n */\nfunction parseUuidStrategy(raw: string | undefined): UuidStrategy | undefined {\n if (!raw) {\n return undefined;\n }\n\n const trimmed = raw.trim().toLowerCase();\n const match = VALID_UUID_STRATEGIES.find((value) => value === trimmed);\n\n if (!match) {\n throw new Error(\n `Cascade CLI: invalid CASCADE_UUID_STRATEGY=\"${raw}\". ` +\n `Expected one of ${VALID_UUID_STRATEGIES.join(\" | \")}.`,\n );\n }\n\n return match;\n}\n\n/**\n * Read process env and collapse the alias pairs into a single resolved shape.\n *\n * Aliases (canonical → also-accepted):\n * - `DATABASE_URL` → `DB_URL`\n * - `DB_DIALECT` → `DB_DRIVER`\n * - `DB_USER` → `DB_USERNAME`\n */\nfunction resolveDbEnv(env: NodeJS.ProcessEnv): ResolvedDbEnv {\n return {\n databaseUrl: env.DATABASE_URL?.trim() || env.DB_URL?.trim() || undefined,\n dialect: env.DB_DIALECT?.trim() || env.DB_DRIVER?.trim() || undefined,\n host: env.DB_HOST?.trim() || undefined,\n port: env.DB_PORT?.toString().trim() || undefined,\n database: env.DB_NAME?.trim() || undefined,\n user: env.DB_USER?.trim() || env.DB_USERNAME?.trim() || undefined,\n password: env.DB_PASSWORD !== undefined ? String(env.DB_PASSWORD) : undefined,\n primaryKey: parsePrimaryKey(env.CASCADE_PRIMARY_KEY),\n uuidStrategy: parseUuidStrategy(env.CASCADE_UUID_STRATEGY),\n };\n}\n\n/**\n * Build the optional `migrationDefaults` shape passed to the data source.\n * Returns `undefined` when neither env var is set — so consumers get the\n * cascade library defaults (`primaryKey: \"int\"`, `uuidStrategy: \"v4\"`).\n */\nfunction buildMigrationDefaults(resolved: ResolvedDbEnv): MigrationDefaults | undefined {\n if (!resolved.primaryKey && !resolved.uuidStrategy) {\n return undefined;\n }\n\n return {\n primaryKey: resolved.primaryKey,\n uuidStrategy: resolved.uuidStrategy,\n };\n}\n\n/**\n * Parse the path portion of a database URL as the database name, returning\n * `undefined` when the URL is malformed or carries no database segment.\n */\nfunction extractDatabaseFromUrl(url: string): string | undefined {\n try {\n const parsed = new URL(url);\n const segment = parsed.pathname.replace(/^\\//, \"\");\n\n return segment || undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Detect the database dialect from env. First inspects the URL scheme, then\n * falls back to an explicit `DB_DIALECT` / `DB_DRIVER` env var.\n *\n * @example\n * const dialect = detectDialect();\n */\nexport function detectDialect(env: NodeJS.ProcessEnv = process.env): CliDialect {\n const resolved = resolveDbEnv(env);\n\n if (resolved.databaseUrl) {\n if (POSTGRES_URL_PREFIXES.some((prefix) => resolved.databaseUrl!.startsWith(prefix))) {\n return \"postgres\";\n }\n\n if (MONGODB_URL_PREFIXES.some((prefix) => resolved.databaseUrl!.startsWith(prefix))) {\n return \"mongodb\";\n }\n }\n\n const dialect = resolved.dialect?.toLowerCase();\n\n if (dialect === \"postgres\" || dialect === \"postgresql\") {\n return \"postgres\";\n }\n\n if (dialect === \"mongodb\" || dialect === \"mongo\") {\n return \"mongodb\";\n }\n\n throw new Error(\n \"Cascade CLI: cannot detect database dialect. \" +\n \"Set DATABASE_URL / DB_URL (postgres://… or mongodb://…) \" +\n \"or DB_DIALECT / DB_DRIVER = postgres | mongodb.\",\n );\n}\n\n/**\n * Construct a Postgres driver — prefers a connection URL, otherwise builds\n * from discrete env vars.\n */\nfunction buildPostgresDriver(resolved: ResolvedDbEnv): PostgresDriver {\n if (resolved.databaseUrl) {\n const database = extractDatabaseFromUrl(resolved.databaseUrl);\n\n if (!database) {\n throw new Error(\n \"Cascade CLI: DATABASE_URL / DB_URL is missing the database name in its path segment.\",\n );\n }\n\n return new PostgresDriver({\n connectionString: resolved.databaseUrl,\n database,\n });\n }\n\n if (!resolved.database) {\n throw new Error(\"Cascade CLI: missing required env var DB_NAME.\");\n }\n\n return new PostgresDriver({\n host: resolved.host ?? \"localhost\",\n port: resolved.port ? Number(resolved.port) : 5432,\n database: resolved.database,\n user: resolved.user,\n password: resolved.password,\n });\n}\n\n/**\n * Construct a MongoDB driver — prefers a connection URI, otherwise builds\n * from discrete env vars.\n */\nfunction buildMongoDriver(resolved: ResolvedDbEnv): MongoDbDriver {\n if (resolved.databaseUrl) {\n const database = resolved.database ?? extractDatabaseFromUrl(resolved.databaseUrl);\n\n if (!database) {\n throw new Error(\n \"Cascade CLI: cannot resolve MongoDB database name. \" +\n \"Either include it in DATABASE_URL / DB_URL or set DB_NAME.\",\n );\n }\n\n return new MongoDbDriver({\n uri: resolved.databaseUrl,\n database,\n });\n }\n\n if (!resolved.database) {\n throw new Error(\"Cascade CLI: missing required env var DB_NAME.\");\n }\n\n return new MongoDbDriver({\n host: resolved.host ?? \"localhost\",\n port: resolved.port ? Number(resolved.port) : 27017,\n database: resolved.database,\n username: resolved.user,\n password: resolved.password,\n });\n}\n\n/**\n * Register a `default` data source on `dataSourceRegistry` derived entirely\n * from environment variables and open the underlying driver connection.\n *\n * Reads (canonical name → accepted aliases):\n * - `DATABASE_URL` → `DB_URL` (preferred when present)\n * - `DB_DIALECT` → `DB_DRIVER` (needed only when no URL)\n * - `DB_HOST` / `DB_PORT` / `DB_NAME` / `DB_PASSWORD` (no aliases)\n * - `DB_USER` → `DB_USERNAME`\n *\n * Optional migration defaults — affect how `Migration.create()` chooses the\n * primary-key column and which UUID function the driver emits. Unset means\n * the cascade library defaults apply (`primaryKey: \"int\"`, `uuidStrategy:\n * \"v4\"`).\n * - `CASCADE_PRIMARY_KEY` — `uuid` | `int` | `bigInt`\n * - `CASCADE_UUID_STRATEGY` — `v4` | `v7`\n *\n * The driver's pool/socket is opened before this function returns, so the\n * caller can issue queries immediately. Pair every call with\n * `disconnect()` (or use `withCliConnection`) so the process exits cleanly.\n *\n * @example\n * await connectFromEnv();\n * const results = await runMigrations();\n */\nexport async function connectFromEnv(env: NodeJS.ProcessEnv = process.env): Promise<void> {\n const dialect = detectDialect(env);\n const resolved = resolveDbEnv(env);\n\n const driver =\n dialect === \"postgres\" ? buildPostgresDriver(resolved) : buildMongoDriver(resolved);\n\n const dataSource = dataSourceRegistry.register({\n name: \"default\",\n driver,\n isDefault: true,\n migrationDefaults: buildMigrationDefaults(resolved),\n });\n\n await dataSource.driver.connect();\n}\n"],"mappings":";;;;;AAKA,MAAM,qBAAqB;CAAC;CAAQ;CAAO;AAAQ;AACnD,MAAM,wBAAiD,CAAC,MAAM,IAAI;AASlE,MAAM,wBAAwB,CAAC,eAAe,eAAe;AAC7D,MAAM,uBAAuB,CAAC,cAAc,gBAAgB;;;;;AAuB5D,SAAS,gBAAgB,KAAiD;CACxE,IAAI,CAAC,KACH;CAGF,MAAM,UAAU,IAAI,KAAK;CAGzB,MAAM,QAAQ,mBAAmB,MAAM,UAAU,MAAM,YAAY,MAAM,QAAQ,YAAY,CAAC;CAE9F,IAAI,CAAC,OACH,MAAM,IAAI,MACR,6CAA6C,IAAI,qBAC5B,mBAAmB,KAAK,KAAK,EAAE,EACtD;CAGF,OAAO;AACT;;;;;AAMA,SAAS,kBAAkB,KAAmD;CAC5E,IAAI,CAAC,KACH;CAGF,MAAM,UAAU,IAAI,KAAK,EAAE,YAAY;CACvC,MAAM,QAAQ,sBAAsB,MAAM,UAAU,UAAU,OAAO;CAErE,IAAI,CAAC,OACH,MAAM,IAAI,MACR,+CAA+C,IAAI,qBAC9B,sBAAsB,KAAK,KAAK,EAAE,EACzD;CAGF,OAAO;AACT;;;;;;;;;AAUA,SAAS,aAAa,KAAuC;CAC3D,OAAO;EACL,aAAa,IAAI,cAAc,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK;EAC/D,SAAS,IAAI,YAAY,KAAK,KAAK,IAAI,WAAW,KAAK,KAAK;EAC5D,MAAM,IAAI,SAAS,KAAK,KAAK;EAC7B,MAAM,IAAI,SAAS,SAAS,EAAE,KAAK,KAAK;EACxC,UAAU,IAAI,SAAS,KAAK,KAAK;EACjC,MAAM,IAAI,SAAS,KAAK,KAAK,IAAI,aAAa,KAAK,KAAK;EACxD,UAAU,IAAI,gBAAgB,SAAY,OAAO,IAAI,WAAW,IAAI;EACpE,YAAY,gBAAgB,IAAI,mBAAmB;EACnD,cAAc,kBAAkB,IAAI,qBAAqB;CAC3D;AACF;;;;;;AAOA,SAAS,uBAAuB,UAAwD;CACtF,IAAI,CAAC,SAAS,cAAc,CAAC,SAAS,cACpC;CAGF,OAAO;EACL,YAAY,SAAS;EACrB,cAAc,SAAS;CACzB;AACF;;;;;AAMA,SAAS,uBAAuB,KAAiC;CAC/D,IAAI;EAIF,OAFgB,IADG,IAAI,GACF,EAAE,SAAS,QAAQ,OAAO,EAElC,KAAK;CACpB,QAAQ;EACN;CACF;AACF;;;;;;;;AASA,SAAgB,cAAc,MAAyB,QAAQ,KAAiB;CAC9E,MAAM,WAAW,aAAa,GAAG;CAEjC,IAAI,SAAS,aAAa;EACxB,IAAI,sBAAsB,MAAM,WAAW,SAAS,YAAa,WAAW,MAAM,CAAC,GACjF,OAAO;EAGT,IAAI,qBAAqB,MAAM,WAAW,SAAS,YAAa,WAAW,MAAM,CAAC,GAChF,OAAO;CAEX;CAEA,MAAM,UAAU,SAAS,SAAS,YAAY;CAE9C,IAAI,YAAY,cAAc,YAAY,cACxC,OAAO;CAGT,IAAI,YAAY,aAAa,YAAY,SACvC,OAAO;CAGT,MAAM,IAAI,MACR,sJAGF;AACF;;;;;AAMA,SAAS,oBAAoB,UAAyC;CACpE,IAAI,SAAS,aAAa;EACxB,MAAM,WAAW,uBAAuB,SAAS,WAAW;EAE5D,IAAI,CAAC,UACH,MAAM,IAAI,MACR,sFACF;EAGF,OAAO,IAAI,eAAe;GACxB,kBAAkB,SAAS;GAC3B;EACF,CAAC;CACH;CAEA,IAAI,CAAC,SAAS,UACZ,MAAM,IAAI,MAAM,gDAAgD;CAGlE,OAAO,IAAI,eAAe;EACxB,MAAM,SAAS,QAAQ;EACvB,MAAM,SAAS,OAAO,OAAO,SAAS,IAAI,IAAI;EAC9C,UAAU,SAAS;EACnB,MAAM,SAAS;EACf,UAAU,SAAS;CACrB,CAAC;AACH;;;;;AAMA,SAAS,iBAAiB,UAAwC;CAChE,IAAI,SAAS,aAAa;EACxB,MAAM,WAAW,SAAS,YAAY,uBAAuB,SAAS,WAAW;EAEjF,IAAI,CAAC,UACH,MAAM,IAAI,MACR,+GAEF;EAGF,OAAO,IAAI,cAAc;GACvB,KAAK,SAAS;GACd;EACF,CAAC;CACH;CAEA,IAAI,CAAC,SAAS,UACZ,MAAM,IAAI,MAAM,gDAAgD;CAGlE,OAAO,IAAI,cAAc;EACvB,MAAM,SAAS,QAAQ;EACvB,MAAM,SAAS,OAAO,OAAO,SAAS,IAAI,IAAI;EAC9C,UAAU,SAAS;EACnB,UAAU,SAAS;EACnB,UAAU,SAAS;CACrB,CAAC;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,eAAsB,eAAe,MAAyB,QAAQ,KAAoB;CACxF,MAAM,UAAU,cAAc,GAAG;CACjC,MAAM,WAAW,aAAa,GAAG;CAEjC,MAAM,SACJ,YAAY,aAAa,oBAAoB,QAAQ,IAAI,iBAAiB,QAAQ;CASpF,MAPmB,mBAAmB,SAAS;EAC7C,MAAM;EACN;EACA,WAAW;EACX,mBAAmB,uBAAuB,QAAQ;CACpD,CAEe,EAAE,OAAO,QAAQ;AAClC"}
@@ -0,0 +1,31 @@
1
+ import { migrateCommand } from "./commands/migrate.mjs";
2
+ import { migrateExportSqlCommand } from "./commands/migrate-export-sql.mjs";
3
+ import { migrateListCommand } from "./commands/migrate-list.mjs";
4
+ import { migrateRollbackCommand } from "./commands/migrate-rollback.mjs";
5
+ import { defineCommand } from "citty";
6
+
7
+ //#region ../../@warlock.js/cascade/src/cli/index.ts
8
+ /**
9
+ * Root command for the standalone `cascade` CLI binary. Scope is restricted
10
+ * to migration operations — database management (`db:create` etc.) stays in
11
+ * the warlock-core CLI where the project context is available.
12
+ *
13
+ * Subcommands follow colon-style naming (`cascade migrate:list`) so each
14
+ * verb stays addressable as a single argv token.
15
+ */
16
+ const main = defineCommand({
17
+ meta: {
18
+ name: "cascade",
19
+ description: "Standalone Cascade ORM migration CLI."
20
+ },
21
+ subCommands: {
22
+ migrate: migrateCommand,
23
+ "migrate:list": migrateListCommand,
24
+ "migrate:rollback": migrateRollbackCommand,
25
+ "migrate:export-sql": migrateExportSqlCommand
26
+ }
27
+ });
28
+
29
+ //#endregion
30
+ export { main };
31
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/cli/index.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { migrateCommand } from \"./commands/migrate\";\nimport { migrateExportSqlCommand } from \"./commands/migrate-export-sql\";\nimport { migrateListCommand } from \"./commands/migrate-list\";\nimport { migrateRollbackCommand } from \"./commands/migrate-rollback\";\n\n/**\n * Root command for the standalone `cascade` CLI binary. Scope is restricted\n * to migration operations — database management (`db:create` etc.) stays in\n * the warlock-core CLI where the project context is available.\n *\n * Subcommands follow colon-style naming (`cascade migrate:list`) so each\n * verb stays addressable as a single argv token.\n */\nexport const main = defineCommand({\n meta: {\n name: \"cascade\",\n description: \"Standalone Cascade ORM migration CLI.\",\n },\n subCommands: {\n migrate: migrateCommand,\n \"migrate:list\": migrateListCommand,\n \"migrate:rollback\": migrateRollbackCommand,\n \"migrate:export-sql\": migrateExportSqlCommand,\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAa,OAAO,cAAc;CAChC,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa;EACX,SAAS;EACT,gBAAgB;EAChB,oBAAoB;EACpB,sBAAsB;CACxB;AACF,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { migrationRunner } from "../migration/migration-runner.mjs";
2
+ import path from "path";
3
+ import fastGlob from "fast-glob";
4
+ import { pathToFileURL } from "url";
5
+
6
+ //#region ../../@warlock.js/cascade/src/cli/load-migrations.ts
7
+ const DEFAULT_PATTERN = "./migrations/**/*.{ts,js,mjs,cjs}";
8
+ /**
9
+ * Resolve the migration name from a filename. Mirrors warlock-core's
10
+ * convention: drop the extension, strip a trailing `-migration` /
11
+ * `_migration` suffix.
12
+ */
13
+ function inferNameFromFile(file) {
14
+ return path.basename(file).split(".")[0].replace(/-migration$/, "").replace(/_migration$/, "");
15
+ }
16
+ /**
17
+ * Extract a leading `MM-DD-YYYY_HH-MM-SS` (or `DD-MM-YYYY_HH-MM-SS`)
18
+ * timestamp from a migration filename so the runner can sort migrations
19
+ * deterministically. Returns `undefined` when no timestamp is present.
20
+ */
21
+ function inferCreatedAtFromFile(file) {
22
+ const match = path.basename(file).match(/^(\d{2}-\d{2}-\d{4}_\d{2}-\d{2}-\d{2})/);
23
+ return match ? match[1] : void 0;
24
+ }
25
+ /**
26
+ * Produce a helpful CLI error when Node refuses to import a `.ts` migration
27
+ * file directly — the standalone Cascade CLI ships no TS transpiler, and
28
+ * users hitting this error need to invoke through `tsx`/`tsm` or compile
29
+ * their migrations to JS first.
30
+ */
31
+ function explainImportFailure(file, error) {
32
+ const message = error instanceof Error ? error.message : String(error);
33
+ if (file.endsWith(".ts") || file.endsWith(".tsx")) return /* @__PURE__ */ new Error(`Cascade CLI: failed to load TypeScript migration ${file}.\nNode cannot import .ts files natively — invoke the CLI through a TS runtime, e.g.:\n npx tsx node_modules/.bin/cascade migrate\nOr pre-compile migrations to JS before running.\nOriginal error: ${message}`);
34
+ return /* @__PURE__ */ new Error(`Cascade CLI: failed to load migration ${file}. ${message}`);
35
+ }
36
+ /**
37
+ * Discover migration files via `fast-glob`, dynamic-import each, and register
38
+ * the default export on `migrationRunner`. Migration name and `createdAt`
39
+ * are inferred from the filename when the class does not declare them.
40
+ *
41
+ * Default glob: `./migrations/&#42;&#42;/&#42;.{ts,js,mjs,cjs}` from `process.cwd()`.
42
+ * Pass an explicit pattern to override.
43
+ *
44
+ * @returns Number of migration files registered.
45
+ *
46
+ * @example
47
+ * await loadMigrations();
48
+ * await loadMigrations("./db/schema/&#42;.migration.js");
49
+ */
50
+ async function loadMigrations(pattern) {
51
+ const files = await fastGlob(pattern ?? DEFAULT_PATTERN, {
52
+ absolute: true,
53
+ cwd: process.cwd(),
54
+ onlyFiles: true
55
+ });
56
+ for (const file of files) {
57
+ const fileUrl = pathToFileURL(file).href;
58
+ let loadedModule;
59
+ try {
60
+ loadedModule = await import(fileUrl);
61
+ } catch (error) {
62
+ throw explainImportFailure(file, error);
63
+ }
64
+ const MigrationClass = loadedModule.default;
65
+ if (!MigrationClass) throw new Error(`Cascade CLI: ${file} must export a default migration class.`);
66
+ if (!MigrationClass.migrationName) MigrationClass.migrationName = inferNameFromFile(file);
67
+ if (!MigrationClass.createdAt) {
68
+ const createdAt = inferCreatedAtFromFile(file);
69
+ if (createdAt) MigrationClass.createdAt = createdAt;
70
+ }
71
+ migrationRunner.register(MigrationClass);
72
+ }
73
+ return files.length;
74
+ }
75
+
76
+ //#endregion
77
+ export { loadMigrations };
78
+ //# sourceMappingURL=load-migrations.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-migrations.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/cli/load-migrations.ts"],"sourcesContent":["import fastGlob from \"fast-glob\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { migrationRunner } from \"../migration/migration-runner\";\n\nconst DEFAULT_PATTERN = \"./migrations/**/*.{ts,js,mjs,cjs}\";\n\n/**\n * Resolve the migration name from a filename. Mirrors warlock-core's\n * convention: drop the extension, strip a trailing `-migration` /\n * `_migration` suffix.\n */\nfunction inferNameFromFile(file: string): string {\n const basename = path.basename(file).split(\".\")[0];\n\n return basename.replace(/-migration$/, \"\").replace(/_migration$/, \"\");\n}\n\n/**\n * Extract a leading `MM-DD-YYYY_HH-MM-SS` (or `DD-MM-YYYY_HH-MM-SS`)\n * timestamp from a migration filename so the runner can sort migrations\n * deterministically. Returns `undefined` when no timestamp is present.\n */\nfunction inferCreatedAtFromFile(file: string): string | undefined {\n const basename = path.basename(file);\n const match = basename.match(/^(\\d{2}-\\d{2}-\\d{4}_\\d{2}-\\d{2}-\\d{2})/);\n\n return match ? match[1] : undefined;\n}\n\n/**\n * Produce a helpful CLI error when Node refuses to import a `.ts` migration\n * file directly — the standalone Cascade CLI ships no TS transpiler, and\n * users hitting this error need to invoke through `tsx`/`tsm` or compile\n * their migrations to JS first.\n */\nfunction explainImportFailure(file: string, error: unknown): Error {\n const message = error instanceof Error ? error.message : String(error);\n\n if (file.endsWith(\".ts\") || file.endsWith(\".tsx\")) {\n return new Error(\n `Cascade CLI: failed to load TypeScript migration ${file}.\\n` +\n `Node cannot import .ts files natively — invoke the CLI through a TS runtime, e.g.:\\n` +\n ` npx tsx node_modules/.bin/cascade migrate\\n` +\n `Or pre-compile migrations to JS before running.\\n` +\n `Original error: ${message}`,\n );\n }\n\n return new Error(`Cascade CLI: failed to load migration ${file}. ${message}`);\n}\n\n/**\n * Discover migration files via `fast-glob`, dynamic-import each, and register\n * the default export on `migrationRunner`. Migration name and `createdAt`\n * are inferred from the filename when the class does not declare them.\n *\n * Default glob: `./migrations/&#42;&#42;/&#42;.{ts,js,mjs,cjs}` from `process.cwd()`.\n * Pass an explicit pattern to override.\n *\n * @returns Number of migration files registered.\n *\n * @example\n * await loadMigrations();\n * await loadMigrations(\"./db/schema/&#42;.migration.js\");\n */\nexport async function loadMigrations(pattern?: string): Promise<number> {\n const resolvedPattern = pattern ?? DEFAULT_PATTERN;\n\n const files = await fastGlob(resolvedPattern, {\n absolute: true,\n cwd: process.cwd(),\n onlyFiles: true,\n });\n\n for (const file of files) {\n const fileUrl = pathToFileURL(file).href;\n\n let loadedModule: { default?: unknown };\n\n try {\n loadedModule = await import(fileUrl);\n } catch (error) {\n throw explainImportFailure(file, error);\n }\n\n const MigrationClass = loadedModule.default as\n | (Function & { migrationName?: string; createdAt?: string })\n | undefined;\n\n if (!MigrationClass) {\n throw new Error(`Cascade CLI: ${file} must export a default migration class.`);\n }\n\n if (!MigrationClass.migrationName) {\n MigrationClass.migrationName = inferNameFromFile(file);\n }\n\n if (!MigrationClass.createdAt) {\n const createdAt = inferCreatedAtFromFile(file);\n\n if (createdAt) {\n MigrationClass.createdAt = createdAt;\n }\n }\n\n // Cast back through the runner's expected shape; the runner validates\n // `migrationName` exists before registration succeeds.\n migrationRunner.register(MigrationClass as never);\n }\n\n return files.length;\n}\n"],"mappings":";;;;;;AAKA,MAAM,kBAAkB;;;;;;AAOxB,SAAS,kBAAkB,MAAsB;CAG/C,OAFiB,KAAK,SAAS,IAAI,EAAE,MAAM,GAAG,EAAE,GAEhC,QAAQ,eAAe,EAAE,EAAE,QAAQ,eAAe,EAAE;AACtE;;;;;;AAOA,SAAS,uBAAuB,MAAkC;CAEhE,MAAM,QADW,KAAK,SAAS,IACV,EAAE,MAAM,wCAAwC;CAErE,OAAO,QAAQ,MAAM,KAAK;AAC5B;;;;;;;AAQA,SAAS,qBAAqB,MAAc,OAAuB;CACjE,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;CAErE,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,MAAM,GAC9C,uBAAO,IAAI,MACT,oDAAoD,KAAK,uMAIpC,SACvB;CAGF,uBAAO,IAAI,MAAM,yCAAyC,KAAK,IAAI,SAAS;AAC9E;;;;;;;;;;;;;;;AAgBA,eAAsB,eAAe,SAAmC;CAGtE,MAAM,QAAQ,MAAM,SAFI,WAAW,iBAEW;EAC5C,UAAU;EACV,KAAK,QAAQ,IAAI;EACjB,WAAW;CACb,CAAC;CAED,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,UAAU,cAAc,IAAI,EAAE;EAEpC,IAAI;EAEJ,IAAI;GACF,eAAe,MAAM,OAAO;EAC9B,SAAS,OAAO;GACd,MAAM,qBAAqB,MAAM,KAAK;EACxC;EAEA,MAAM,iBAAiB,aAAa;EAIpC,IAAI,CAAC,gBACH,MAAM,IAAI,MAAM,gBAAgB,KAAK,wCAAwC;EAG/E,IAAI,CAAC,eAAe,eAClB,eAAe,gBAAgB,kBAAkB,IAAI;EAGvD,IAAI,CAAC,eAAe,WAAW;GAC7B,MAAM,YAAY,uBAAuB,IAAI;GAE7C,IAAI,WACF,eAAe,YAAY;EAE/B;EAIA,gBAAgB,SAAS,cAAuB;CAClD;CAEA,OAAO,MAAM;AACf"}