@warlock.js/cascade 4.0.174 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1050) hide show
  1. package/README.md +6 -5
  2. package/bin/cascadejs +3 -0
  3. package/esm/cli/commands/migrate-export-sql.mjs +48 -0
  4. package/esm/cli/commands/migrate-export-sql.mjs.map +1 -0
  5. package/esm/cli/commands/migrate-list.mjs +26 -0
  6. package/esm/cli/commands/migrate-list.mjs.map +1 -0
  7. package/esm/cli/commands/migrate-rollback.mjs +50 -0
  8. package/esm/cli/commands/migrate-rollback.mjs.map +1 -0
  9. package/esm/cli/commands/migrate.mjs +65 -0
  10. package/esm/cli/commands/migrate.mjs.map +1 -0
  11. package/esm/cli/connection-from-env.mjs +181 -0
  12. package/esm/cli/connection-from-env.mjs.map +1 -0
  13. package/esm/cli/index.mjs +31 -0
  14. package/esm/cli/index.mjs.map +1 -0
  15. package/esm/cli/load-migrations.mjs +78 -0
  16. package/esm/cli/load-migrations.mjs.map +1 -0
  17. package/esm/cli/printers.mjs +57 -0
  18. package/esm/cli/printers.mjs.map +1 -0
  19. package/esm/cli/setup-logger.mjs +30 -0
  20. package/esm/cli/setup-logger.mjs.map +1 -0
  21. package/esm/cli/with-cli-connection.mjs +39 -0
  22. package/esm/cli/with-cli-connection.mjs.map +1 -0
  23. package/esm/cli.d.mts +1 -0
  24. package/esm/cli.mjs +26 -0
  25. package/esm/cli.mjs.map +1 -0
  26. package/esm/context/database-data-source-context.d.mts +32 -0
  27. package/esm/context/database-data-source-context.d.mts.map +1 -0
  28. package/esm/context/database-data-source-context.mjs +35 -0
  29. package/esm/context/database-data-source-context.mjs.map +1 -0
  30. package/esm/context/database-transaction-context.d.mts +38 -0
  31. package/esm/context/database-transaction-context.d.mts.map +1 -0
  32. package/esm/context/database-transaction-context.mjs +47 -0
  33. package/esm/context/database-transaction-context.mjs.map +1 -0
  34. package/esm/contracts/database-driver.contract.d.mts +443 -0
  35. package/esm/contracts/database-driver.contract.d.mts.map +1 -0
  36. package/esm/contracts/database-id-generator.contract.d.mts +109 -0
  37. package/esm/contracts/database-id-generator.contract.d.mts.map +1 -0
  38. package/esm/contracts/database-remover.contract.d.mts +108 -0
  39. package/esm/contracts/database-remover.contract.d.mts.map +1 -0
  40. package/esm/contracts/database-restorer.contract.d.mts +145 -0
  41. package/esm/contracts/database-restorer.contract.d.mts.map +1 -0
  42. package/esm/contracts/database-writer.contract.d.mts +123 -0
  43. package/esm/contracts/database-writer.contract.d.mts.map +1 -0
  44. package/esm/contracts/driver-blueprint.contract.d.mts +52 -0
  45. package/esm/contracts/driver-blueprint.contract.d.mts.map +1 -0
  46. package/esm/contracts/index.d.mts +9 -0
  47. package/esm/contracts/migration-driver.contract.d.mts +476 -0
  48. package/esm/contracts/migration-driver.contract.d.mts.map +1 -0
  49. package/esm/contracts/query-builder.contract.d.mts +1663 -0
  50. package/esm/contracts/query-builder.contract.d.mts.map +1 -0
  51. package/esm/contracts/sync-adapter.contract.d.mts +49 -0
  52. package/esm/contracts/sync-adapter.contract.d.mts.map +1 -0
  53. package/esm/data-source/data-source-registry.d.mts +111 -0
  54. package/esm/data-source/data-source-registry.d.mts.map +1 -0
  55. package/esm/data-source/data-source-registry.mjs +142 -0
  56. package/esm/data-source/data-source-registry.mjs.map +1 -0
  57. package/esm/data-source/data-source.d.mts +160 -0
  58. package/esm/data-source/data-source.d.mts.map +1 -0
  59. package/esm/data-source/data-source.mjs +87 -0
  60. package/esm/data-source/data-source.mjs.map +1 -0
  61. package/esm/database-dirty-tracker.d.mts +254 -0
  62. package/esm/database-dirty-tracker.d.mts.map +1 -0
  63. package/esm/database-dirty-tracker.mjs +356 -0
  64. package/esm/database-dirty-tracker.mjs.map +1 -0
  65. package/esm/drivers/mongodb/mongodb-blueprint.mjs +54 -0
  66. package/esm/drivers/mongodb/mongodb-blueprint.mjs.map +1 -0
  67. package/esm/drivers/mongodb/mongodb-driver.d.mts +334 -0
  68. package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -0
  69. package/esm/drivers/mongodb/mongodb-driver.mjs +716 -0
  70. package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -0
  71. package/esm/drivers/mongodb/mongodb-id-generator.d.mts +120 -0
  72. package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -0
  73. package/esm/drivers/mongodb/mongodb-id-generator.mjs +141 -0
  74. package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -0
  75. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts +322 -0
  76. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts.map +1 -0
  77. package/esm/drivers/mongodb/mongodb-migration-driver.mjs +531 -0
  78. package/esm/drivers/mongodb/mongodb-migration-driver.mjs.map +1 -0
  79. package/esm/drivers/mongodb/mongodb-query-builder.d.mts +1117 -0
  80. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -0
  81. package/esm/drivers/mongodb/mongodb-query-builder.mjs +1828 -0
  82. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -0
  83. package/esm/drivers/mongodb/mongodb-query-operations.d.mts +230 -0
  84. package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -0
  85. package/esm/drivers/mongodb/mongodb-query-operations.mjs +275 -0
  86. package/esm/drivers/mongodb/mongodb-query-operations.mjs.map +1 -0
  87. package/esm/drivers/mongodb/mongodb-query-parser.d.mts +263 -0
  88. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -0
  89. package/esm/drivers/mongodb/mongodb-query-parser.mjs +965 -0
  90. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -0
  91. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts +78 -0
  92. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts.map +1 -0
  93. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs +118 -0
  94. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs.map +1 -0
  95. package/esm/drivers/mongodb/types.d.mts +43 -0
  96. package/esm/drivers/mongodb/types.d.mts.map +1 -0
  97. package/esm/drivers/postgres/index.d.mts +8 -0
  98. package/esm/drivers/postgres/index.mjs +9 -0
  99. package/esm/drivers/postgres/postgres-blueprint.d.mts +60 -0
  100. package/esm/drivers/postgres/postgres-blueprint.d.mts.map +1 -0
  101. package/esm/drivers/postgres/postgres-blueprint.mjs +105 -0
  102. package/esm/drivers/postgres/postgres-blueprint.mjs.map +1 -0
  103. package/esm/drivers/postgres/postgres-dialect.d.mts +144 -0
  104. package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -0
  105. package/esm/drivers/postgres/postgres-dialect.mjs +227 -0
  106. package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -0
  107. package/esm/drivers/postgres/postgres-driver.d.mts +424 -0
  108. package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -0
  109. package/esm/drivers/postgres/postgres-driver.mjs +845 -0
  110. package/esm/drivers/postgres/postgres-driver.mjs.map +1 -0
  111. package/esm/drivers/postgres/postgres-migration-driver.d.mts +393 -0
  112. package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -0
  113. package/esm/drivers/postgres/postgres-migration-driver.mjs +760 -0
  114. package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -0
  115. package/esm/drivers/postgres/postgres-query-builder.d.mts +399 -0
  116. package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -0
  117. package/esm/drivers/postgres/postgres-query-builder.mjs +1105 -0
  118. package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -0
  119. package/esm/drivers/postgres/postgres-query-parser.d.mts +351 -0
  120. package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -0
  121. package/esm/drivers/postgres/postgres-query-parser.mjs +796 -0
  122. package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -0
  123. package/esm/drivers/postgres/postgres-sql-serializer.mjs +260 -0
  124. package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -0
  125. package/esm/drivers/postgres/postgres-sync-adapter.d.mts +79 -0
  126. package/esm/drivers/postgres/postgres-sync-adapter.d.mts.map +1 -0
  127. package/esm/drivers/postgres/postgres-sync-adapter.mjs +162 -0
  128. package/esm/drivers/postgres/postgres-sync-adapter.mjs.map +1 -0
  129. package/esm/drivers/postgres/types.d.mts +105 -0
  130. package/esm/drivers/postgres/types.d.mts.map +1 -0
  131. package/esm/drivers/sql/sql-dialect.contract.d.mts +221 -0
  132. package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -0
  133. package/esm/drivers/sql/sql-types.d.mts +150 -0
  134. package/esm/drivers/sql/sql-types.d.mts.map +1 -0
  135. package/esm/errors/missing-data-source.error.d.mts +25 -0
  136. package/esm/errors/missing-data-source.error.d.mts.map +1 -0
  137. package/esm/errors/missing-data-source.error.mjs +31 -0
  138. package/esm/errors/missing-data-source.error.mjs.map +1 -0
  139. package/esm/errors/transaction-rollback.error.d.mts +23 -0
  140. package/esm/errors/transaction-rollback.error.d.mts.map +1 -0
  141. package/esm/errors/transaction-rollback.error.mjs +29 -0
  142. package/esm/errors/transaction-rollback.error.mjs.map +1 -0
  143. package/esm/events/model-events.d.mts +234 -0
  144. package/esm/events/model-events.d.mts.map +1 -0
  145. package/esm/events/model-events.mjs +254 -0
  146. package/esm/events/model-events.mjs.map +1 -0
  147. package/esm/expressions/aggregate-expressions.d.mts +224 -0
  148. package/esm/expressions/aggregate-expressions.d.mts.map +1 -0
  149. package/esm/expressions/aggregate-expressions.mjs +232 -0
  150. package/esm/expressions/aggregate-expressions.mjs.map +1 -0
  151. package/esm/index.d.mts +67 -0
  152. package/esm/index.mjs +53 -0
  153. package/esm/migration/column-builder.d.mts +420 -0
  154. package/esm/migration/column-builder.d.mts.map +1 -0
  155. package/esm/migration/column-builder.mjs +532 -0
  156. package/esm/migration/column-builder.mjs.map +1 -0
  157. package/esm/migration/column-helpers.d.mts +280 -0
  158. package/esm/migration/column-helpers.d.mts.map +1 -0
  159. package/esm/migration/column-helpers.mjs +376 -0
  160. package/esm/migration/column-helpers.mjs.map +1 -0
  161. package/esm/migration/foreign-key-builder.d.mts +106 -0
  162. package/esm/migration/foreign-key-builder.d.mts.map +1 -0
  163. package/esm/migration/foreign-key-builder.mjs +126 -0
  164. package/esm/migration/foreign-key-builder.mjs.map +1 -0
  165. package/esm/migration/index.d.mts +6 -0
  166. package/esm/migration/index.mjs +7 -0
  167. package/esm/migration/migration-runner.d.mts +279 -0
  168. package/esm/migration/migration-runner.d.mts.map +1 -0
  169. package/esm/migration/migration-runner.mjs +662 -0
  170. package/esm/migration/migration-runner.mjs.map +1 -0
  171. package/esm/migration/migration.d.mts +2035 -0
  172. package/esm/migration/migration.d.mts.map +1 -0
  173. package/esm/migration/migration.mjs +2083 -0
  174. package/esm/migration/migration.mjs.map +1 -0
  175. package/esm/migration/sql-grammar.mjs +115 -0
  176. package/esm/migration/sql-grammar.mjs.map +1 -0
  177. package/esm/migration/sql-serializer.d.mts +26 -0
  178. package/esm/migration/sql-serializer.d.mts.map +1 -0
  179. package/esm/migration/sql-serializer.mjs +26 -0
  180. package/esm/migration/sql-serializer.mjs.map +1 -0
  181. package/esm/migration/types.d.mts +136 -0
  182. package/esm/migration/types.d.mts.map +1 -0
  183. package/esm/model/methods/accessor-methods.mjs +54 -0
  184. package/esm/model/methods/accessor-methods.mjs.map +1 -0
  185. package/esm/model/methods/delete-methods.mjs +16 -0
  186. package/esm/model/methods/delete-methods.mjs.map +1 -0
  187. package/esm/model/methods/dirty-methods.mjs +20 -0
  188. package/esm/model/methods/dirty-methods.mjs.map +1 -0
  189. package/esm/model/methods/hydration-methods.mjs +51 -0
  190. package/esm/model/methods/hydration-methods.mjs.map +1 -0
  191. package/esm/model/methods/instance-event-methods.mjs +22 -0
  192. package/esm/model/methods/instance-event-methods.mjs.map +1 -0
  193. package/esm/model/methods/meta-methods.mjs +36 -0
  194. package/esm/model/methods/meta-methods.mjs.map +1 -0
  195. package/esm/model/methods/pivot-methods.mjs +48 -0
  196. package/esm/model/methods/pivot-methods.mjs.map +1 -0
  197. package/esm/model/methods/query-methods.mjs +121 -0
  198. package/esm/model/methods/query-methods.mjs.map +1 -0
  199. package/esm/model/methods/restore-methods.mjs +16 -0
  200. package/esm/model/methods/restore-methods.mjs.map +1 -0
  201. package/esm/model/methods/scope-methods.mjs +20 -0
  202. package/esm/model/methods/scope-methods.mjs.map +1 -0
  203. package/esm/model/methods/serialization-methods.mjs +20 -0
  204. package/esm/model/methods/serialization-methods.mjs.map +1 -0
  205. package/esm/model/methods/static-event-methods.mjs +37 -0
  206. package/esm/model/methods/static-event-methods.mjs.map +1 -0
  207. package/esm/model/methods/write-methods.mjs +69 -0
  208. package/esm/model/methods/write-methods.mjs.map +1 -0
  209. package/esm/model/model.d.mts +1778 -0
  210. package/esm/model/model.d.mts.map +1 -0
  211. package/esm/model/model.mjs +1762 -0
  212. package/esm/model/model.mjs.map +1 -0
  213. package/esm/model/model.types.d.mts +47 -0
  214. package/esm/model/model.types.d.mts.map +1 -0
  215. package/esm/model/register-model.d.mts +140 -0
  216. package/esm/model/register-model.d.mts.map +1 -0
  217. package/esm/model/register-model.mjs +175 -0
  218. package/esm/model/register-model.mjs.map +1 -0
  219. package/esm/model/relation-decorators.d.mts +88 -0
  220. package/esm/model/relation-decorators.d.mts.map +1 -0
  221. package/esm/model/relation-decorators.mjs +191 -0
  222. package/esm/model/relation-decorators.mjs.map +1 -0
  223. package/esm/operations/database.d.mts +46 -0
  224. package/esm/operations/database.d.mts.map +1 -0
  225. package/esm/operations/database.mjs +40 -0
  226. package/esm/operations/database.mjs.map +1 -0
  227. package/esm/operations/index.d.mts +2 -0
  228. package/esm/operations/index.mjs +4 -0
  229. package/esm/operations/migrations.d.mts +71 -0
  230. package/esm/operations/migrations.d.mts.map +1 -0
  231. package/esm/operations/migrations.mjs +70 -0
  232. package/esm/operations/migrations.mjs.map +1 -0
  233. package/esm/query-builder/query-builder.d.mts +564 -0
  234. package/esm/query-builder/query-builder.d.mts.map +1 -0
  235. package/esm/query-builder/query-builder.mjs +1097 -0
  236. package/esm/query-builder/query-builder.mjs.map +1 -0
  237. package/esm/relations/index.d.mts +4 -0
  238. package/esm/relations/index.mjs +5 -0
  239. package/esm/relations/key-conventions.mjs +119 -0
  240. package/esm/relations/key-conventions.mjs.map +1 -0
  241. package/esm/relations/pivot-operations.d.mts +155 -0
  242. package/esm/relations/pivot-operations.d.mts.map +1 -0
  243. package/esm/relations/pivot-operations.mjs +232 -0
  244. package/esm/relations/pivot-operations.mjs.map +1 -0
  245. package/esm/relations/relation-hydrator.d.mts +55 -0
  246. package/esm/relations/relation-hydrator.d.mts.map +1 -0
  247. package/esm/relations/relation-hydrator.mjs +52 -0
  248. package/esm/relations/relation-hydrator.mjs.map +1 -0
  249. package/esm/relations/relation-loader.d.mts +190 -0
  250. package/esm/relations/relation-loader.d.mts.map +1 -0
  251. package/esm/relations/relation-loader.mjs +416 -0
  252. package/esm/relations/relation-loader.mjs.map +1 -0
  253. package/esm/relations/types.d.mts +317 -0
  254. package/esm/relations/types.d.mts.map +1 -0
  255. package/esm/remover/database-remover.d.mts +104 -0
  256. package/esm/remover/database-remover.d.mts.map +1 -0
  257. package/esm/remover/database-remover.mjs +174 -0
  258. package/esm/remover/database-remover.mjs.map +1 -0
  259. package/esm/restorer/database-restorer.d.mts +135 -0
  260. package/esm/restorer/database-restorer.d.mts.map +1 -0
  261. package/esm/restorer/database-restorer.mjs +316 -0
  262. package/esm/restorer/database-restorer.mjs.map +1 -0
  263. package/esm/sql-database-dirty-tracker.d.mts +17 -0
  264. package/esm/sql-database-dirty-tracker.d.mts.map +1 -0
  265. package/esm/sql-database-dirty-tracker.mjs +20 -0
  266. package/esm/sql-database-dirty-tracker.mjs.map +1 -0
  267. package/esm/sync/model-events.mjs +46 -0
  268. package/esm/sync/model-events.mjs.map +1 -0
  269. package/esm/sync/model-sync-operation.d.mts +159 -0
  270. package/esm/sync/model-sync-operation.d.mts.map +1 -0
  271. package/esm/sync/model-sync-operation.mjs +257 -0
  272. package/esm/sync/model-sync-operation.mjs.map +1 -0
  273. package/esm/sync/model-sync.d.mts +126 -0
  274. package/esm/sync/model-sync.d.mts.map +1 -0
  275. package/esm/sync/model-sync.mjs +157 -0
  276. package/esm/sync/model-sync.mjs.map +1 -0
  277. package/esm/sync/sync-context.d.mts +69 -0
  278. package/esm/sync/sync-context.d.mts.map +1 -0
  279. package/esm/sync/sync-context.mjs +95 -0
  280. package/esm/sync/sync-context.mjs.map +1 -0
  281. package/esm/sync/sync-manager.d.mts +213 -0
  282. package/esm/sync/sync-manager.d.mts.map +1 -0
  283. package/esm/sync/sync-manager.mjs +597 -0
  284. package/esm/sync/sync-manager.mjs.map +1 -0
  285. package/esm/sync/types.d.mts +215 -0
  286. package/esm/sync/types.d.mts.map +1 -0
  287. package/esm/types.d.mts +423 -0
  288. package/esm/types.d.mts.map +1 -0
  289. package/esm/utils/connect-to-database.d.mts +328 -0
  290. package/esm/utils/connect-to-database.d.mts.map +1 -0
  291. package/esm/utils/connect-to-database.mjs +130 -0
  292. package/esm/utils/connect-to-database.mjs.map +1 -0
  293. package/esm/utils/database-writer.utils.d.mts +18 -0
  294. package/esm/utils/database-writer.utils.d.mts.map +1 -0
  295. package/esm/utils/database-writer.utils.mjs +25 -0
  296. package/esm/utils/database-writer.utils.mjs.map +1 -0
  297. package/esm/utils/define-model.d.mts +185 -0
  298. package/esm/utils/define-model.d.mts.map +1 -0
  299. package/esm/utils/define-model.mjs +105 -0
  300. package/esm/utils/define-model.mjs.map +1 -0
  301. package/esm/utils/is-valid-date-value.mjs +22 -0
  302. package/esm/utils/is-valid-date-value.mjs.map +1 -0
  303. package/esm/utils/once-connected.d.mts +150 -0
  304. package/esm/utils/once-connected.d.mts.map +1 -0
  305. package/esm/utils/once-connected.mjs +203 -0
  306. package/esm/utils/once-connected.mjs.map +1 -0
  307. package/esm/validation/database-seal-plugins.d.mts +1 -0
  308. package/esm/validation/database-seal-plugins.mjs +11 -0
  309. package/esm/validation/database-seal-plugins.mjs.map +1 -0
  310. package/esm/validation/database-writer-validation-error.d.mts +101 -0
  311. package/esm/validation/database-writer-validation-error.d.mts.map +1 -0
  312. package/esm/validation/database-writer-validation-error.mjs +153 -0
  313. package/esm/validation/database-writer-validation-error.mjs.map +1 -0
  314. package/esm/validation/index.d.mts +2 -0
  315. package/esm/validation/index.mjs +4 -0
  316. package/esm/validation/mutators/embed-mutator.mjs +26 -0
  317. package/esm/validation/mutators/embed-mutator.mjs.map +1 -0
  318. package/esm/validation/plugins/database-rules-plugin.d.mts +28 -0
  319. package/esm/validation/plugins/database-rules-plugin.d.mts.map +1 -0
  320. package/esm/validation/plugins/database-rules-plugin.mjs +43 -0
  321. package/esm/validation/plugins/database-rules-plugin.mjs.map +1 -0
  322. package/esm/validation/plugins/embed-validator-plugin.d.mts +17 -0
  323. package/esm/validation/plugins/embed-validator-plugin.d.mts.map +1 -0
  324. package/esm/validation/plugins/embed-validator-plugin.mjs +20 -0
  325. package/esm/validation/plugins/embed-validator-plugin.mjs.map +1 -0
  326. package/esm/validation/rules/database-model-rule.mjs +32 -0
  327. package/esm/validation/rules/database-model-rule.mjs.map +1 -0
  328. package/esm/validation/rules/exists-rule.mjs +29 -0
  329. package/esm/validation/rules/exists-rule.mjs.map +1 -0
  330. package/esm/validation/rules/unique-rule.mjs +43 -0
  331. package/esm/validation/rules/unique-rule.mjs.map +1 -0
  332. package/esm/validation/transformers/embed-model-transformer.mjs +17 -0
  333. package/esm/validation/transformers/embed-model-transformer.mjs.map +1 -0
  334. package/esm/validation/types.d.mts +43 -0
  335. package/esm/validation/types.d.mts.map +1 -0
  336. package/esm/validation/validators/embed-validator.d.mts +25 -0
  337. package/esm/validation/validators/embed-validator.d.mts.map +1 -0
  338. package/esm/validation/validators/embed-validator.mjs +42 -0
  339. package/esm/validation/validators/embed-validator.mjs.map +1 -0
  340. package/esm/writer/database-writer.d.mts +178 -0
  341. package/esm/writer/database-writer.d.mts.map +1 -0
  342. package/esm/writer/database-writer.mjs +317 -0
  343. package/esm/writer/database-writer.mjs.map +1 -0
  344. package/llms-full.txt +2027 -0
  345. package/llms.txt +23 -0
  346. package/package.json +60 -51
  347. package/skills/README.md +65 -0
  348. package/skills/aggregate-data/SKILL.md +102 -0
  349. package/skills/cascade-basics/SKILL.md +93 -0
  350. package/skills/configure-delete-strategy/SKILL.md +126 -0
  351. package/skills/define-model/SKILL.md +170 -0
  352. package/skills/define-relations/SKILL.md +171 -0
  353. package/skills/manage-data-sources/SKILL.md +140 -0
  354. package/skills/manage-transactions/SKILL.md +118 -0
  355. package/skills/paginate-results/SKILL.md +122 -0
  356. package/skills/perform-atomic-ops/SKILL.md +98 -0
  357. package/skills/query-data/SKILL.md +168 -0
  358. package/skills/run-cascade-cli/SKILL.md +125 -0
  359. package/skills/search-by-vector/SKILL.md +127 -0
  360. package/skills/subscribe-to-model-events/SKILL.md +148 -0
  361. package/skills/track-changes/SKILL.md +109 -0
  362. package/skills/write-migration/SKILL.md +144 -0
  363. package/cjs/context/database-data-source-context.d.ts +0 -29
  364. package/cjs/context/database-data-source-context.d.ts.map +0 -1
  365. package/cjs/context/database-data-source-context.js +0 -28
  366. package/cjs/context/database-data-source-context.js.map +0 -1
  367. package/cjs/context/database-transaction-context.d.ts +0 -35
  368. package/cjs/context/database-transaction-context.d.ts.map +0 -1
  369. package/cjs/context/database-transaction-context.js +0 -40
  370. package/cjs/context/database-transaction-context.js.map +0 -1
  371. package/cjs/contracts/database-driver.contract.d.ts +0 -450
  372. package/cjs/contracts/database-driver.contract.d.ts.map +0 -1
  373. package/cjs/contracts/database-id-generator.contract.d.ts +0 -109
  374. package/cjs/contracts/database-id-generator.contract.d.ts.map +0 -1
  375. package/cjs/contracts/database-remover.contract.d.ts +0 -104
  376. package/cjs/contracts/database-remover.contract.d.ts.map +0 -1
  377. package/cjs/contracts/database-restorer.contract.d.ts +0 -143
  378. package/cjs/contracts/database-restorer.contract.d.ts.map +0 -1
  379. package/cjs/contracts/database-writer.contract.d.ts +0 -119
  380. package/cjs/contracts/database-writer.contract.d.ts.map +0 -1
  381. package/cjs/contracts/driver-blueprint.contract.d.ts +0 -49
  382. package/cjs/contracts/driver-blueprint.contract.d.ts.map +0 -1
  383. package/cjs/contracts/index.d.ts +0 -10
  384. package/cjs/contracts/index.d.ts.map +0 -1
  385. package/cjs/contracts/migration-driver.contract.d.ts +0 -522
  386. package/cjs/contracts/migration-driver.contract.d.ts.map +0 -1
  387. package/cjs/contracts/query-builder.contract.d.ts +0 -1609
  388. package/cjs/contracts/query-builder.contract.d.ts.map +0 -1
  389. package/cjs/contracts/sync-adapter.contract.d.ts +0 -58
  390. package/cjs/contracts/sync-adapter.contract.d.ts.map +0 -1
  391. package/cjs/data-source/data-source-registry.d.ts +0 -108
  392. package/cjs/data-source/data-source-registry.d.ts.map +0 -1
  393. package/cjs/data-source/data-source-registry.js +0 -145
  394. package/cjs/data-source/data-source-registry.js.map +0 -1
  395. package/cjs/data-source/data-source.d.ts +0 -147
  396. package/cjs/data-source/data-source.d.ts.map +0 -1
  397. package/cjs/data-source/data-source.js +0 -83
  398. package/cjs/data-source/data-source.js.map +0 -1
  399. package/cjs/database-dirty-tracker.d.ts +0 -252
  400. package/cjs/database-dirty-tracker.d.ts.map +0 -1
  401. package/cjs/database-dirty-tracker.js +0 -386
  402. package/cjs/database-dirty-tracker.js.map +0 -1
  403. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  404. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  405. package/cjs/drivers/mongodb/mongodb-blueprint.js +0 -51
  406. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  407. package/cjs/drivers/mongodb/mongodb-driver.d.ts +0 -325
  408. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  409. package/cjs/drivers/mongodb/mongodb-driver.js +0 -845
  410. package/cjs/drivers/mongodb/mongodb-driver.js.map +0 -1
  411. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  412. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  413. package/cjs/drivers/mongodb/mongodb-id-generator.js +0 -149
  414. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  415. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  416. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  417. package/cjs/drivers/mongodb/mongodb-migration-driver.js +0 -666
  418. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  419. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  420. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  421. package/cjs/drivers/mongodb/mongodb-query-builder.js +0 -1988
  422. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  423. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  424. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  425. package/cjs/drivers/mongodb/mongodb-query-operations.js +0 -270
  426. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  427. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  428. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  429. package/cjs/drivers/mongodb/mongodb-query-parser.js +0 -1351
  430. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  431. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  432. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  433. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  434. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  435. package/cjs/drivers/mongodb/types.d.ts +0 -43
  436. package/cjs/drivers/mongodb/types.d.ts.map +0 -1
  437. package/cjs/drivers/postgres/index.d.ts +0 -16
  438. package/cjs/drivers/postgres/index.d.ts.map +0 -1
  439. package/cjs/drivers/postgres/postgres-blueprint.d.ts +0 -64
  440. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  441. package/cjs/drivers/postgres/postgres-blueprint.js +0 -121
  442. package/cjs/drivers/postgres/postgres-blueprint.js.map +0 -1
  443. package/cjs/drivers/postgres/postgres-dialect.d.ts +0 -136
  444. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  445. package/cjs/drivers/postgres/postgres-dialect.js +0 -268
  446. package/cjs/drivers/postgres/postgres-dialect.js.map +0 -1
  447. package/cjs/drivers/postgres/postgres-driver.d.ts +0 -432
  448. package/cjs/drivers/postgres/postgres-driver.d.ts.map +0 -1
  449. package/cjs/drivers/postgres/postgres-driver.js +0 -1008
  450. package/cjs/drivers/postgres/postgres-driver.js.map +0 -1
  451. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  452. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  453. package/cjs/drivers/postgres/postgres-migration-driver.js +0 -900
  454. package/cjs/drivers/postgres/postgres-migration-driver.js.map +0 -1
  455. package/cjs/drivers/postgres/postgres-query-builder.d.ts +0 -254
  456. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  457. package/cjs/drivers/postgres/postgres-query-builder.js +0 -933
  458. package/cjs/drivers/postgres/postgres-query-builder.js.map +0 -1
  459. package/cjs/drivers/postgres/postgres-query-parser.d.ts +0 -328
  460. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  461. package/cjs/drivers/postgres/postgres-query-parser.js +0 -868
  462. package/cjs/drivers/postgres/postgres-query-parser.js.map +0 -1
  463. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  464. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  465. package/cjs/drivers/postgres/postgres-sql-serializer.js +0 -400
  466. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  467. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  468. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  469. package/cjs/drivers/postgres/postgres-sync-adapter.js +0 -204
  470. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  471. package/cjs/drivers/postgres/types.d.ts +0 -144
  472. package/cjs/drivers/postgres/types.d.ts.map +0 -1
  473. package/cjs/drivers/sql/index.d.ts +0 -10
  474. package/cjs/drivers/sql/index.d.ts.map +0 -1
  475. package/cjs/drivers/sql/sql-dialect.contract.d.ts +0 -204
  476. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  477. package/cjs/drivers/sql/sql-types.d.ts +0 -202
  478. package/cjs/drivers/sql/sql-types.d.ts.map +0 -1
  479. package/cjs/errors/missing-data-source.error.d.ts +0 -22
  480. package/cjs/errors/missing-data-source.error.d.ts.map +0 -1
  481. package/cjs/errors/missing-data-source.error.js +0 -29
  482. package/cjs/errors/missing-data-source.error.js.map +0 -1
  483. package/cjs/errors/transaction-rollback.error.d.ts +0 -20
  484. package/cjs/errors/transaction-rollback.error.d.ts.map +0 -1
  485. package/cjs/errors/transaction-rollback.error.js +0 -27
  486. package/cjs/errors/transaction-rollback.error.js.map +0 -1
  487. package/cjs/events/model-events.d.ts +0 -231
  488. package/cjs/events/model-events.d.ts.map +0 -1
  489. package/cjs/events/model-events.js +0 -259
  490. package/cjs/events/model-events.js.map +0 -1
  491. package/cjs/expressions/aggregate-expressions.d.ts +0 -215
  492. package/cjs/expressions/aggregate-expressions.d.ts.map +0 -1
  493. package/cjs/expressions/aggregate-expressions.js +0 -221
  494. package/cjs/expressions/aggregate-expressions.js.map +0 -1
  495. package/cjs/expressions/index.d.ts +0 -2
  496. package/cjs/expressions/index.d.ts.map +0 -1
  497. package/cjs/index.d.ts +0 -45
  498. package/cjs/index.d.ts.map +0 -1
  499. package/cjs/index.js +0 -1
  500. package/cjs/index.js.map +0 -1
  501. package/cjs/migration/column-builder.d.ts +0 -417
  502. package/cjs/migration/column-builder.d.ts.map +0 -1
  503. package/cjs/migration/column-builder.js +0 -586
  504. package/cjs/migration/column-builder.js.map +0 -1
  505. package/cjs/migration/column-helpers.d.ts +0 -275
  506. package/cjs/migration/column-helpers.d.ts.map +0 -1
  507. package/cjs/migration/column-helpers.js +0 -389
  508. package/cjs/migration/column-helpers.js.map +0 -1
  509. package/cjs/migration/foreign-key-builder.d.ts +0 -103
  510. package/cjs/migration/foreign-key-builder.d.ts.map +0 -1
  511. package/cjs/migration/foreign-key-builder.js +0 -121
  512. package/cjs/migration/foreign-key-builder.js.map +0 -1
  513. package/cjs/migration/index.d.ts +0 -7
  514. package/cjs/migration/index.d.ts.map +0 -1
  515. package/cjs/migration/migration-runner.d.ts +0 -278
  516. package/cjs/migration/migration-runner.d.ts.map +0 -1
  517. package/cjs/migration/migration-runner.js +0 -815
  518. package/cjs/migration/migration-runner.js.map +0 -1
  519. package/cjs/migration/migration.d.ts +0 -1988
  520. package/cjs/migration/migration.d.ts.map +0 -1
  521. package/cjs/migration/migration.js +0 -2162
  522. package/cjs/migration/migration.js.map +0 -1
  523. package/cjs/migration/sql-grammar.d.ts +0 -61
  524. package/cjs/migration/sql-grammar.d.ts.map +0 -1
  525. package/cjs/migration/sql-grammar.js +0 -164
  526. package/cjs/migration/sql-grammar.js.map +0 -1
  527. package/cjs/migration/sql-serializer.d.ts +0 -22
  528. package/cjs/migration/sql-serializer.d.ts.map +0 -1
  529. package/cjs/migration/sql-serializer.js +0 -26
  530. package/cjs/migration/sql-serializer.js.map +0 -1
  531. package/cjs/migration/types.d.ts +0 -155
  532. package/cjs/migration/types.d.ts.map +0 -1
  533. package/cjs/model/methods/accessor-methods.d.ts +0 -13
  534. package/cjs/model/methods/accessor-methods.d.ts.map +0 -1
  535. package/cjs/model/methods/accessor-methods.js +0 -51
  536. package/cjs/model/methods/accessor-methods.js.map +0 -1
  537. package/cjs/model/methods/delete-methods.d.ts +0 -10
  538. package/cjs/model/methods/delete-methods.d.ts.map +0 -1
  539. package/cjs/model/methods/delete-methods.js +0 -10
  540. package/cjs/model/methods/delete-methods.js.map +0 -1
  541. package/cjs/model/methods/dirty-methods.d.ts +0 -10
  542. package/cjs/model/methods/dirty-methods.d.ts.map +0 -1
  543. package/cjs/model/methods/dirty-methods.js +0 -15
  544. package/cjs/model/methods/dirty-methods.js.map +0 -1
  545. package/cjs/model/methods/hydration-methods.d.ts +0 -10
  546. package/cjs/model/methods/hydration-methods.d.ts.map +0 -1
  547. package/cjs/model/methods/hydration-methods.js +0 -57
  548. package/cjs/model/methods/hydration-methods.js.map +0 -1
  549. package/cjs/model/methods/instance-event-methods.d.ts +0 -7
  550. package/cjs/model/methods/instance-event-methods.d.ts.map +0 -1
  551. package/cjs/model/methods/instance-event-methods.js +0 -15
  552. package/cjs/model/methods/instance-event-methods.js.map +0 -1
  553. package/cjs/model/methods/meta-methods.d.ts +0 -7
  554. package/cjs/model/methods/meta-methods.d.ts.map +0 -1
  555. package/cjs/model/methods/meta-methods.js +0 -78
  556. package/cjs/model/methods/meta-methods.js.map +0 -1
  557. package/cjs/model/methods/query-methods.d.ts +0 -24
  558. package/cjs/model/methods/query-methods.d.ts.map +0 -1
  559. package/cjs/model/methods/query-methods.js +0 -164
  560. package/cjs/model/methods/query-methods.js.map +0 -1
  561. package/cjs/model/methods/restore-methods.d.ts +0 -10
  562. package/cjs/model/methods/restore-methods.d.ts.map +0 -1
  563. package/cjs/model/methods/restore-methods.js +0 -13
  564. package/cjs/model/methods/restore-methods.js.map +0 -1
  565. package/cjs/model/methods/scope-methods.d.ts +0 -7
  566. package/cjs/model/methods/scope-methods.d.ts.map +0 -1
  567. package/cjs/model/methods/scope-methods.js +0 -15
  568. package/cjs/model/methods/scope-methods.js.map +0 -1
  569. package/cjs/model/methods/serialization-methods.d.ts +0 -3
  570. package/cjs/model/methods/serialization-methods.d.ts.map +0 -1
  571. package/cjs/model/methods/serialization-methods.js +0 -27
  572. package/cjs/model/methods/serialization-methods.js.map +0 -1
  573. package/cjs/model/methods/static-event-methods.d.ts +0 -9
  574. package/cjs/model/methods/static-event-methods.d.ts.map +0 -1
  575. package/cjs/model/methods/static-event-methods.js +0 -29
  576. package/cjs/model/methods/static-event-methods.js.map +0 -1
  577. package/cjs/model/methods/write-methods.d.ts +0 -10
  578. package/cjs/model/methods/write-methods.d.ts.map +0 -1
  579. package/cjs/model/methods/write-methods.js +0 -52
  580. package/cjs/model/methods/write-methods.js.map +0 -1
  581. package/cjs/model/model.d.ts +0 -1647
  582. package/cjs/model/model.d.ts.map +0 -1
  583. package/cjs/model/model.js +0 -1657
  584. package/cjs/model/model.js.map +0 -1
  585. package/cjs/model/model.types.d.ts +0 -44
  586. package/cjs/model/model.types.d.ts.map +0 -1
  587. package/cjs/model/register-model.d.ts +0 -81
  588. package/cjs/model/register-model.d.ts.map +0 -1
  589. package/cjs/model/register-model.js +0 -94
  590. package/cjs/model/register-model.js.map +0 -1
  591. package/cjs/query-builder/query-builder.d.ts +0 -556
  592. package/cjs/query-builder/query-builder.d.ts.map +0 -1
  593. package/cjs/query-builder/query-builder.js +0 -1070
  594. package/cjs/query-builder/query-builder.js.map +0 -1
  595. package/cjs/relations/helpers.d.ts +0 -156
  596. package/cjs/relations/helpers.d.ts.map +0 -1
  597. package/cjs/relations/helpers.js +0 -202
  598. package/cjs/relations/helpers.js.map +0 -1
  599. package/cjs/relations/index.d.ts +0 -35
  600. package/cjs/relations/index.d.ts.map +0 -1
  601. package/cjs/relations/pivot-operations.d.ts +0 -160
  602. package/cjs/relations/pivot-operations.d.ts.map +0 -1
  603. package/cjs/relations/pivot-operations.js +0 -293
  604. package/cjs/relations/pivot-operations.js.map +0 -1
  605. package/cjs/relations/relation-hydrator.d.ts +0 -68
  606. package/cjs/relations/relation-hydrator.d.ts.map +0 -1
  607. package/cjs/relations/relation-hydrator.js +0 -81
  608. package/cjs/relations/relation-hydrator.js.map +0 -1
  609. package/cjs/relations/relation-loader.d.ts +0 -194
  610. package/cjs/relations/relation-loader.d.ts.map +0 -1
  611. package/cjs/relations/relation-loader.js +0 -466
  612. package/cjs/relations/relation-loader.js.map +0 -1
  613. package/cjs/relations/types.d.ts +0 -306
  614. package/cjs/relations/types.d.ts.map +0 -1
  615. package/cjs/remover/database-remover.d.ts +0 -100
  616. package/cjs/remover/database-remover.d.ts.map +0 -1
  617. package/cjs/remover/database-remover.js +0 -214
  618. package/cjs/remover/database-remover.js.map +0 -1
  619. package/cjs/restorer/database-restorer.d.ts +0 -131
  620. package/cjs/restorer/database-restorer.d.ts.map +0 -1
  621. package/cjs/restorer/database-restorer.js +0 -434
  622. package/cjs/restorer/database-restorer.js.map +0 -1
  623. package/cjs/sql-database-dirty-tracker.d.ts +0 -13
  624. package/cjs/sql-database-dirty-tracker.d.ts.map +0 -1
  625. package/cjs/sql-database-dirty-tracker.js +0 -14
  626. package/cjs/sql-database-dirty-tracker.js.map +0 -1
  627. package/cjs/sync/index.d.ts +0 -12
  628. package/cjs/sync/index.d.ts.map +0 -1
  629. package/cjs/sync/model-events.d.ts +0 -62
  630. package/cjs/sync/model-events.d.ts.map +0 -1
  631. package/cjs/sync/model-events.js +0 -49
  632. package/cjs/sync/model-events.js.map +0 -1
  633. package/cjs/sync/model-sync-operation.d.ts +0 -163
  634. package/cjs/sync/model-sync-operation.d.ts.map +0 -1
  635. package/cjs/sync/model-sync-operation.js +0 -292
  636. package/cjs/sync/model-sync-operation.js.map +0 -1
  637. package/cjs/sync/model-sync.d.ts +0 -130
  638. package/cjs/sync/model-sync.d.ts.map +0 -1
  639. package/cjs/sync/model-sync.js +0 -178
  640. package/cjs/sync/model-sync.js.map +0 -1
  641. package/cjs/sync/sync-context.d.ts +0 -70
  642. package/cjs/sync/sync-context.d.ts.map +0 -1
  643. package/cjs/sync/sync-context.js +0 -101
  644. package/cjs/sync/sync-context.js.map +0 -1
  645. package/cjs/sync/sync-manager.d.ts +0 -213
  646. package/cjs/sync/sync-manager.d.ts.map +0 -1
  647. package/cjs/sync/sync-manager.js +0 -689
  648. package/cjs/sync/sync-manager.js.map +0 -1
  649. package/cjs/sync/types.d.ts +0 -289
  650. package/cjs/sync/types.d.ts.map +0 -1
  651. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  652. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  653. package/cjs/types.d.ts +0 -371
  654. package/cjs/types.d.ts.map +0 -1
  655. package/cjs/utils/connect-to-database.d.ts +0 -307
  656. package/cjs/utils/connect-to-database.d.ts.map +0 -1
  657. package/cjs/utils/connect-to-database.js +0 -130
  658. package/cjs/utils/connect-to-database.js.map +0 -1
  659. package/cjs/utils/database-writer.utils.d.ts +0 -15
  660. package/cjs/utils/database-writer.utils.d.ts.map +0 -1
  661. package/cjs/utils/database-writer.utils.js +0 -14
  662. package/cjs/utils/database-writer.utils.js.map +0 -1
  663. package/cjs/utils/define-model.js +0 -100
  664. package/cjs/utils/define-model.js.map +0 -1
  665. package/cjs/utils/is-valid-date-value.d.ts +0 -5
  666. package/cjs/utils/is-valid-date-value.d.ts.map +0 -1
  667. package/cjs/utils/is-valid-date-value.js +0 -25
  668. package/cjs/utils/is-valid-date-value.js.map +0 -1
  669. package/cjs/utils/once-connected.d.ts +0 -146
  670. package/cjs/utils/once-connected.d.ts.map +0 -1
  671. package/cjs/utils/once-connected.js +0 -251
  672. package/cjs/utils/once-connected.js.map +0 -1
  673. package/cjs/validation/database-seal-plugins.d.ts +0 -12
  674. package/cjs/validation/database-seal-plugins.d.ts.map +0 -1
  675. package/cjs/validation/database-seal-plugins.js +0 -1
  676. package/cjs/validation/database-seal-plugins.js.map +0 -1
  677. package/cjs/validation/database-writer-validation-error.d.ts +0 -97
  678. package/cjs/validation/database-writer-validation-error.d.ts.map +0 -1
  679. package/cjs/validation/database-writer-validation-error.js +0 -160
  680. package/cjs/validation/database-writer-validation-error.js.map +0 -1
  681. package/cjs/validation/index.d.ts +0 -3
  682. package/cjs/validation/index.d.ts.map +0 -1
  683. package/cjs/validation/mutators/embed-mutator.d.ts +0 -9
  684. package/cjs/validation/mutators/embed-mutator.d.ts.map +0 -1
  685. package/cjs/validation/mutators/embed-mutator.js +0 -33
  686. package/cjs/validation/mutators/embed-mutator.js.map +0 -1
  687. package/cjs/validation/plugins/embed-validator-plugin.d.ts +0 -24
  688. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  689. package/cjs/validation/plugins/embed-validator-plugin.js +0 -18
  690. package/cjs/validation/plugins/embed-validator-plugin.js.map +0 -1
  691. package/cjs/validation/rules/database-model-rule.d.ts +0 -7
  692. package/cjs/validation/rules/database-model-rule.d.ts.map +0 -1
  693. package/cjs/validation/rules/database-model-rule.js +0 -27
  694. package/cjs/validation/rules/database-model-rule.js.map +0 -1
  695. package/cjs/validation/transformers/embed-model-transformer.d.ts +0 -3
  696. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  697. package/cjs/validation/transformers/embed-model-transformer.js +0 -18
  698. package/cjs/validation/transformers/embed-model-transformer.js.map +0 -1
  699. package/cjs/validation/validators/embed-validator.d.ts +0 -21
  700. package/cjs/validation/validators/embed-validator.d.ts.map +0 -1
  701. package/cjs/validation/validators/embed-validator.js +0 -43
  702. package/cjs/validation/validators/embed-validator.js.map +0 -1
  703. package/cjs/writer/database-writer.d.ts +0 -174
  704. package/cjs/writer/database-writer.d.ts.map +0 -1
  705. package/cjs/writer/database-writer.js +0 -400
  706. package/cjs/writer/database-writer.js.map +0 -1
  707. package/esm/context/database-data-source-context.d.ts +0 -29
  708. package/esm/context/database-data-source-context.d.ts.map +0 -1
  709. package/esm/context/database-data-source-context.js +0 -28
  710. package/esm/context/database-data-source-context.js.map +0 -1
  711. package/esm/context/database-transaction-context.d.ts +0 -35
  712. package/esm/context/database-transaction-context.d.ts.map +0 -1
  713. package/esm/context/database-transaction-context.js +0 -40
  714. package/esm/context/database-transaction-context.js.map +0 -1
  715. package/esm/contracts/database-driver.contract.d.ts +0 -450
  716. package/esm/contracts/database-driver.contract.d.ts.map +0 -1
  717. package/esm/contracts/database-id-generator.contract.d.ts +0 -109
  718. package/esm/contracts/database-id-generator.contract.d.ts.map +0 -1
  719. package/esm/contracts/database-remover.contract.d.ts +0 -104
  720. package/esm/contracts/database-remover.contract.d.ts.map +0 -1
  721. package/esm/contracts/database-restorer.contract.d.ts +0 -143
  722. package/esm/contracts/database-restorer.contract.d.ts.map +0 -1
  723. package/esm/contracts/database-writer.contract.d.ts +0 -119
  724. package/esm/contracts/database-writer.contract.d.ts.map +0 -1
  725. package/esm/contracts/driver-blueprint.contract.d.ts +0 -49
  726. package/esm/contracts/driver-blueprint.contract.d.ts.map +0 -1
  727. package/esm/contracts/index.d.ts +0 -10
  728. package/esm/contracts/index.d.ts.map +0 -1
  729. package/esm/contracts/migration-driver.contract.d.ts +0 -522
  730. package/esm/contracts/migration-driver.contract.d.ts.map +0 -1
  731. package/esm/contracts/query-builder.contract.d.ts +0 -1609
  732. package/esm/contracts/query-builder.contract.d.ts.map +0 -1
  733. package/esm/contracts/sync-adapter.contract.d.ts +0 -58
  734. package/esm/contracts/sync-adapter.contract.d.ts.map +0 -1
  735. package/esm/data-source/data-source-registry.d.ts +0 -108
  736. package/esm/data-source/data-source-registry.d.ts.map +0 -1
  737. package/esm/data-source/data-source-registry.js +0 -145
  738. package/esm/data-source/data-source-registry.js.map +0 -1
  739. package/esm/data-source/data-source.d.ts +0 -147
  740. package/esm/data-source/data-source.d.ts.map +0 -1
  741. package/esm/data-source/data-source.js +0 -83
  742. package/esm/data-source/data-source.js.map +0 -1
  743. package/esm/database-dirty-tracker.d.ts +0 -252
  744. package/esm/database-dirty-tracker.d.ts.map +0 -1
  745. package/esm/database-dirty-tracker.js +0 -386
  746. package/esm/database-dirty-tracker.js.map +0 -1
  747. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  748. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  749. package/esm/drivers/mongodb/mongodb-blueprint.js +0 -51
  750. package/esm/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  751. package/esm/drivers/mongodb/mongodb-driver.d.ts +0 -325
  752. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  753. package/esm/drivers/mongodb/mongodb-driver.js +0 -845
  754. package/esm/drivers/mongodb/mongodb-driver.js.map +0 -1
  755. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  756. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  757. package/esm/drivers/mongodb/mongodb-id-generator.js +0 -149
  758. package/esm/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  759. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  760. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  761. package/esm/drivers/mongodb/mongodb-migration-driver.js +0 -666
  762. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  763. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  764. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  765. package/esm/drivers/mongodb/mongodb-query-builder.js +0 -1988
  766. package/esm/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  767. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  768. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  769. package/esm/drivers/mongodb/mongodb-query-operations.js +0 -270
  770. package/esm/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  771. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  772. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  773. package/esm/drivers/mongodb/mongodb-query-parser.js +0 -1351
  774. package/esm/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  775. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  776. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  777. package/esm/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  778. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  779. package/esm/drivers/mongodb/types.d.ts +0 -43
  780. package/esm/drivers/mongodb/types.d.ts.map +0 -1
  781. package/esm/drivers/postgres/index.d.ts +0 -16
  782. package/esm/drivers/postgres/index.d.ts.map +0 -1
  783. package/esm/drivers/postgres/postgres-blueprint.d.ts +0 -64
  784. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  785. package/esm/drivers/postgres/postgres-blueprint.js +0 -121
  786. package/esm/drivers/postgres/postgres-blueprint.js.map +0 -1
  787. package/esm/drivers/postgres/postgres-dialect.d.ts +0 -136
  788. package/esm/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  789. package/esm/drivers/postgres/postgres-dialect.js +0 -268
  790. package/esm/drivers/postgres/postgres-dialect.js.map +0 -1
  791. package/esm/drivers/postgres/postgres-driver.d.ts +0 -432
  792. package/esm/drivers/postgres/postgres-driver.d.ts.map +0 -1
  793. package/esm/drivers/postgres/postgres-driver.js +0 -1008
  794. package/esm/drivers/postgres/postgres-driver.js.map +0 -1
  795. package/esm/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  796. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  797. package/esm/drivers/postgres/postgres-migration-driver.js +0 -900
  798. package/esm/drivers/postgres/postgres-migration-driver.js.map +0 -1
  799. package/esm/drivers/postgres/postgres-query-builder.d.ts +0 -254
  800. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  801. package/esm/drivers/postgres/postgres-query-builder.js +0 -933
  802. package/esm/drivers/postgres/postgres-query-builder.js.map +0 -1
  803. package/esm/drivers/postgres/postgres-query-parser.d.ts +0 -328
  804. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  805. package/esm/drivers/postgres/postgres-query-parser.js +0 -868
  806. package/esm/drivers/postgres/postgres-query-parser.js.map +0 -1
  807. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  808. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  809. package/esm/drivers/postgres/postgres-sql-serializer.js +0 -400
  810. package/esm/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  811. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  812. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  813. package/esm/drivers/postgres/postgres-sync-adapter.js +0 -204
  814. package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  815. package/esm/drivers/postgres/types.d.ts +0 -144
  816. package/esm/drivers/postgres/types.d.ts.map +0 -1
  817. package/esm/drivers/sql/index.d.ts +0 -10
  818. package/esm/drivers/sql/index.d.ts.map +0 -1
  819. package/esm/drivers/sql/sql-dialect.contract.d.ts +0 -204
  820. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  821. package/esm/drivers/sql/sql-types.d.ts +0 -202
  822. package/esm/drivers/sql/sql-types.d.ts.map +0 -1
  823. package/esm/errors/missing-data-source.error.d.ts +0 -22
  824. package/esm/errors/missing-data-source.error.d.ts.map +0 -1
  825. package/esm/errors/missing-data-source.error.js +0 -29
  826. package/esm/errors/missing-data-source.error.js.map +0 -1
  827. package/esm/errors/transaction-rollback.error.d.ts +0 -20
  828. package/esm/errors/transaction-rollback.error.d.ts.map +0 -1
  829. package/esm/errors/transaction-rollback.error.js +0 -27
  830. package/esm/errors/transaction-rollback.error.js.map +0 -1
  831. package/esm/events/model-events.d.ts +0 -231
  832. package/esm/events/model-events.d.ts.map +0 -1
  833. package/esm/events/model-events.js +0 -259
  834. package/esm/events/model-events.js.map +0 -1
  835. package/esm/expressions/aggregate-expressions.d.ts +0 -215
  836. package/esm/expressions/aggregate-expressions.d.ts.map +0 -1
  837. package/esm/expressions/aggregate-expressions.js +0 -221
  838. package/esm/expressions/aggregate-expressions.js.map +0 -1
  839. package/esm/expressions/index.d.ts +0 -2
  840. package/esm/expressions/index.d.ts.map +0 -1
  841. package/esm/index.d.ts +0 -45
  842. package/esm/index.d.ts.map +0 -1
  843. package/esm/index.js +0 -1
  844. package/esm/index.js.map +0 -1
  845. package/esm/migration/column-builder.d.ts +0 -417
  846. package/esm/migration/column-builder.d.ts.map +0 -1
  847. package/esm/migration/column-builder.js +0 -586
  848. package/esm/migration/column-builder.js.map +0 -1
  849. package/esm/migration/column-helpers.d.ts +0 -275
  850. package/esm/migration/column-helpers.d.ts.map +0 -1
  851. package/esm/migration/column-helpers.js +0 -389
  852. package/esm/migration/column-helpers.js.map +0 -1
  853. package/esm/migration/foreign-key-builder.d.ts +0 -103
  854. package/esm/migration/foreign-key-builder.d.ts.map +0 -1
  855. package/esm/migration/foreign-key-builder.js +0 -121
  856. package/esm/migration/foreign-key-builder.js.map +0 -1
  857. package/esm/migration/index.d.ts +0 -7
  858. package/esm/migration/index.d.ts.map +0 -1
  859. package/esm/migration/migration-runner.d.ts +0 -278
  860. package/esm/migration/migration-runner.d.ts.map +0 -1
  861. package/esm/migration/migration-runner.js +0 -815
  862. package/esm/migration/migration-runner.js.map +0 -1
  863. package/esm/migration/migration.d.ts +0 -1988
  864. package/esm/migration/migration.d.ts.map +0 -1
  865. package/esm/migration/migration.js +0 -2162
  866. package/esm/migration/migration.js.map +0 -1
  867. package/esm/migration/sql-grammar.d.ts +0 -61
  868. package/esm/migration/sql-grammar.d.ts.map +0 -1
  869. package/esm/migration/sql-grammar.js +0 -164
  870. package/esm/migration/sql-grammar.js.map +0 -1
  871. package/esm/migration/sql-serializer.d.ts +0 -22
  872. package/esm/migration/sql-serializer.d.ts.map +0 -1
  873. package/esm/migration/sql-serializer.js +0 -26
  874. package/esm/migration/sql-serializer.js.map +0 -1
  875. package/esm/migration/types.d.ts +0 -155
  876. package/esm/migration/types.d.ts.map +0 -1
  877. package/esm/model/methods/accessor-methods.d.ts +0 -13
  878. package/esm/model/methods/accessor-methods.d.ts.map +0 -1
  879. package/esm/model/methods/accessor-methods.js +0 -51
  880. package/esm/model/methods/accessor-methods.js.map +0 -1
  881. package/esm/model/methods/delete-methods.d.ts +0 -10
  882. package/esm/model/methods/delete-methods.d.ts.map +0 -1
  883. package/esm/model/methods/delete-methods.js +0 -10
  884. package/esm/model/methods/delete-methods.js.map +0 -1
  885. package/esm/model/methods/dirty-methods.d.ts +0 -10
  886. package/esm/model/methods/dirty-methods.d.ts.map +0 -1
  887. package/esm/model/methods/dirty-methods.js +0 -15
  888. package/esm/model/methods/dirty-methods.js.map +0 -1
  889. package/esm/model/methods/hydration-methods.d.ts +0 -10
  890. package/esm/model/methods/hydration-methods.d.ts.map +0 -1
  891. package/esm/model/methods/hydration-methods.js +0 -57
  892. package/esm/model/methods/hydration-methods.js.map +0 -1
  893. package/esm/model/methods/instance-event-methods.d.ts +0 -7
  894. package/esm/model/methods/instance-event-methods.d.ts.map +0 -1
  895. package/esm/model/methods/instance-event-methods.js +0 -15
  896. package/esm/model/methods/instance-event-methods.js.map +0 -1
  897. package/esm/model/methods/meta-methods.d.ts +0 -7
  898. package/esm/model/methods/meta-methods.d.ts.map +0 -1
  899. package/esm/model/methods/meta-methods.js +0 -78
  900. package/esm/model/methods/meta-methods.js.map +0 -1
  901. package/esm/model/methods/query-methods.d.ts +0 -24
  902. package/esm/model/methods/query-methods.d.ts.map +0 -1
  903. package/esm/model/methods/query-methods.js +0 -164
  904. package/esm/model/methods/query-methods.js.map +0 -1
  905. package/esm/model/methods/restore-methods.d.ts +0 -10
  906. package/esm/model/methods/restore-methods.d.ts.map +0 -1
  907. package/esm/model/methods/restore-methods.js +0 -13
  908. package/esm/model/methods/restore-methods.js.map +0 -1
  909. package/esm/model/methods/scope-methods.d.ts +0 -7
  910. package/esm/model/methods/scope-methods.d.ts.map +0 -1
  911. package/esm/model/methods/scope-methods.js +0 -15
  912. package/esm/model/methods/scope-methods.js.map +0 -1
  913. package/esm/model/methods/serialization-methods.d.ts +0 -3
  914. package/esm/model/methods/serialization-methods.d.ts.map +0 -1
  915. package/esm/model/methods/serialization-methods.js +0 -27
  916. package/esm/model/methods/serialization-methods.js.map +0 -1
  917. package/esm/model/methods/static-event-methods.d.ts +0 -9
  918. package/esm/model/methods/static-event-methods.d.ts.map +0 -1
  919. package/esm/model/methods/static-event-methods.js +0 -29
  920. package/esm/model/methods/static-event-methods.js.map +0 -1
  921. package/esm/model/methods/write-methods.d.ts +0 -10
  922. package/esm/model/methods/write-methods.d.ts.map +0 -1
  923. package/esm/model/methods/write-methods.js +0 -52
  924. package/esm/model/methods/write-methods.js.map +0 -1
  925. package/esm/model/model.d.ts +0 -1647
  926. package/esm/model/model.d.ts.map +0 -1
  927. package/esm/model/model.js +0 -1657
  928. package/esm/model/model.js.map +0 -1
  929. package/esm/model/model.types.d.ts +0 -44
  930. package/esm/model/model.types.d.ts.map +0 -1
  931. package/esm/model/register-model.d.ts +0 -81
  932. package/esm/model/register-model.d.ts.map +0 -1
  933. package/esm/model/register-model.js +0 -94
  934. package/esm/model/register-model.js.map +0 -1
  935. package/esm/query-builder/query-builder.d.ts +0 -556
  936. package/esm/query-builder/query-builder.d.ts.map +0 -1
  937. package/esm/query-builder/query-builder.js +0 -1070
  938. package/esm/query-builder/query-builder.js.map +0 -1
  939. package/esm/relations/helpers.d.ts +0 -156
  940. package/esm/relations/helpers.d.ts.map +0 -1
  941. package/esm/relations/helpers.js +0 -202
  942. package/esm/relations/helpers.js.map +0 -1
  943. package/esm/relations/index.d.ts +0 -35
  944. package/esm/relations/index.d.ts.map +0 -1
  945. package/esm/relations/pivot-operations.d.ts +0 -160
  946. package/esm/relations/pivot-operations.d.ts.map +0 -1
  947. package/esm/relations/pivot-operations.js +0 -293
  948. package/esm/relations/pivot-operations.js.map +0 -1
  949. package/esm/relations/relation-hydrator.d.ts +0 -68
  950. package/esm/relations/relation-hydrator.d.ts.map +0 -1
  951. package/esm/relations/relation-hydrator.js +0 -81
  952. package/esm/relations/relation-hydrator.js.map +0 -1
  953. package/esm/relations/relation-loader.d.ts +0 -194
  954. package/esm/relations/relation-loader.d.ts.map +0 -1
  955. package/esm/relations/relation-loader.js +0 -466
  956. package/esm/relations/relation-loader.js.map +0 -1
  957. package/esm/relations/types.d.ts +0 -306
  958. package/esm/relations/types.d.ts.map +0 -1
  959. package/esm/remover/database-remover.d.ts +0 -100
  960. package/esm/remover/database-remover.d.ts.map +0 -1
  961. package/esm/remover/database-remover.js +0 -214
  962. package/esm/remover/database-remover.js.map +0 -1
  963. package/esm/restorer/database-restorer.d.ts +0 -131
  964. package/esm/restorer/database-restorer.d.ts.map +0 -1
  965. package/esm/restorer/database-restorer.js +0 -434
  966. package/esm/restorer/database-restorer.js.map +0 -1
  967. package/esm/sql-database-dirty-tracker.d.ts +0 -13
  968. package/esm/sql-database-dirty-tracker.d.ts.map +0 -1
  969. package/esm/sql-database-dirty-tracker.js +0 -14
  970. package/esm/sql-database-dirty-tracker.js.map +0 -1
  971. package/esm/sync/index.d.ts +0 -12
  972. package/esm/sync/index.d.ts.map +0 -1
  973. package/esm/sync/model-events.d.ts +0 -62
  974. package/esm/sync/model-events.d.ts.map +0 -1
  975. package/esm/sync/model-events.js +0 -49
  976. package/esm/sync/model-events.js.map +0 -1
  977. package/esm/sync/model-sync-operation.d.ts +0 -163
  978. package/esm/sync/model-sync-operation.d.ts.map +0 -1
  979. package/esm/sync/model-sync-operation.js +0 -292
  980. package/esm/sync/model-sync-operation.js.map +0 -1
  981. package/esm/sync/model-sync.d.ts +0 -130
  982. package/esm/sync/model-sync.d.ts.map +0 -1
  983. package/esm/sync/model-sync.js +0 -178
  984. package/esm/sync/model-sync.js.map +0 -1
  985. package/esm/sync/sync-context.d.ts +0 -70
  986. package/esm/sync/sync-context.d.ts.map +0 -1
  987. package/esm/sync/sync-context.js +0 -101
  988. package/esm/sync/sync-context.js.map +0 -1
  989. package/esm/sync/sync-manager.d.ts +0 -213
  990. package/esm/sync/sync-manager.d.ts.map +0 -1
  991. package/esm/sync/sync-manager.js +0 -689
  992. package/esm/sync/sync-manager.js.map +0 -1
  993. package/esm/sync/types.d.ts +0 -289
  994. package/esm/sync/types.d.ts.map +0 -1
  995. package/esm/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  996. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  997. package/esm/types.d.ts +0 -371
  998. package/esm/types.d.ts.map +0 -1
  999. package/esm/utils/connect-to-database.d.ts +0 -307
  1000. package/esm/utils/connect-to-database.d.ts.map +0 -1
  1001. package/esm/utils/connect-to-database.js +0 -130
  1002. package/esm/utils/connect-to-database.js.map +0 -1
  1003. package/esm/utils/database-writer.utils.d.ts +0 -15
  1004. package/esm/utils/database-writer.utils.d.ts.map +0 -1
  1005. package/esm/utils/database-writer.utils.js +0 -14
  1006. package/esm/utils/database-writer.utils.js.map +0 -1
  1007. package/esm/utils/define-model.js +0 -100
  1008. package/esm/utils/define-model.js.map +0 -1
  1009. package/esm/utils/is-valid-date-value.d.ts +0 -5
  1010. package/esm/utils/is-valid-date-value.d.ts.map +0 -1
  1011. package/esm/utils/is-valid-date-value.js +0 -25
  1012. package/esm/utils/is-valid-date-value.js.map +0 -1
  1013. package/esm/utils/once-connected.d.ts +0 -146
  1014. package/esm/utils/once-connected.d.ts.map +0 -1
  1015. package/esm/utils/once-connected.js +0 -251
  1016. package/esm/utils/once-connected.js.map +0 -1
  1017. package/esm/validation/database-seal-plugins.d.ts +0 -12
  1018. package/esm/validation/database-seal-plugins.d.ts.map +0 -1
  1019. package/esm/validation/database-seal-plugins.js +0 -1
  1020. package/esm/validation/database-seal-plugins.js.map +0 -1
  1021. package/esm/validation/database-writer-validation-error.d.ts +0 -97
  1022. package/esm/validation/database-writer-validation-error.d.ts.map +0 -1
  1023. package/esm/validation/database-writer-validation-error.js +0 -160
  1024. package/esm/validation/database-writer-validation-error.js.map +0 -1
  1025. package/esm/validation/index.d.ts +0 -3
  1026. package/esm/validation/index.d.ts.map +0 -1
  1027. package/esm/validation/mutators/embed-mutator.d.ts +0 -9
  1028. package/esm/validation/mutators/embed-mutator.d.ts.map +0 -1
  1029. package/esm/validation/mutators/embed-mutator.js +0 -33
  1030. package/esm/validation/mutators/embed-mutator.js.map +0 -1
  1031. package/esm/validation/plugins/embed-validator-plugin.d.ts +0 -24
  1032. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  1033. package/esm/validation/plugins/embed-validator-plugin.js +0 -18
  1034. package/esm/validation/plugins/embed-validator-plugin.js.map +0 -1
  1035. package/esm/validation/rules/database-model-rule.d.ts +0 -7
  1036. package/esm/validation/rules/database-model-rule.d.ts.map +0 -1
  1037. package/esm/validation/rules/database-model-rule.js +0 -27
  1038. package/esm/validation/rules/database-model-rule.js.map +0 -1
  1039. package/esm/validation/transformers/embed-model-transformer.d.ts +0 -3
  1040. package/esm/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  1041. package/esm/validation/transformers/embed-model-transformer.js +0 -18
  1042. package/esm/validation/transformers/embed-model-transformer.js.map +0 -1
  1043. package/esm/validation/validators/embed-validator.d.ts +0 -21
  1044. package/esm/validation/validators/embed-validator.d.ts.map +0 -1
  1045. package/esm/validation/validators/embed-validator.js +0 -43
  1046. package/esm/validation/validators/embed-validator.js.map +0 -1
  1047. package/esm/writer/database-writer.d.ts +0 -174
  1048. package/esm/writer/database-writer.d.ts.map +0 -1
  1049. package/esm/writer/database-writer.js +0 -400
  1050. package/esm/writer/database-writer.js.map +0 -1
@@ -0,0 +1,1097 @@
1
+ //#region ../../@warlock.js/cascade/src/query-builder/query-builder.ts
2
+ /**
3
+ * Pure, driver-agnostic query builder.
4
+ *
5
+ * Records operations in `operations[]`. Subclasses own execution, parsing, and
6
+ * driver-specific clause generation. Safe to instantiate directly inside
7
+ * callbacks where only operation recording is needed.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // Driver subclass usage:
12
+ * const users = await User.query()
13
+ * .select(["id", "name"])
14
+ * .where("status", "active")
15
+ * .where(q => q.where("role", "admin").orWhere("role", "mod"))
16
+ * .orderBy("createdAt", "desc")
17
+ * .limit(10)
18
+ * .get();
19
+ *
20
+ * // Direct instantiation (callback context — no driver needed):
21
+ * joinWith({ actions: q => q.where("status", "pending").limit(5) });
22
+ * // The sub-QB's operations[] are captured and stored in the joinWith op data.
23
+ * ```
24
+ */
25
+ var QueryBuilder = class QueryBuilder {
26
+ /** Flat, ordered list of recorded operations. Public for parser access. */
27
+ operations = [];
28
+ /**
29
+ * type → ordered list of indices into `operations[]`.
30
+ *
31
+ * Protected (not private) so:
32
+ * - `rebuildIndex()` can reset it after direct `operations[]` mutation.
33
+ * - Subclasses can inspect it without unsafe casts.
34
+ *
35
+ * External consumers should use `getOps(type)` instead.
36
+ */
37
+ opIndex = /* @__PURE__ */ new Map();
38
+ /** Global scope definitions injected by Model.query(). Keyed by scope name. */
39
+ pendingGlobalScopes;
40
+ /** Local scope callbacks injected by Model.query(). Applied on demand via scope(). */
41
+ availableLocalScopes;
42
+ /** Names of global scopes that have been intentionally disabled. */
43
+ disabledGlobalScopes = /* @__PURE__ */ new Set();
44
+ /** True once the driver subclass has applied pending scopes. */
45
+ scopesApplied = false;
46
+ /** Relations to eager-load via separate queries. */
47
+ eagerLoadRelations = /* @__PURE__ */ new Map();
48
+ /** Count expressions to emit per result row, keyed by output column alias. */
49
+ countRelations = /* @__PURE__ */ new Map();
50
+ /** Relation definition map injected from the owning Model. */
51
+ relationDefinitions;
52
+ /** The Model class reference, required for relation resolution. */
53
+ modelClass;
54
+ /**
55
+ * Append an operation to `operations[]` and update `opIndex`.
56
+ * Every fluent method calls this.
57
+ */
58
+ addOperation(type, data) {
59
+ const idx = this.operations.length;
60
+ this.operations.push({
61
+ type,
62
+ data
63
+ });
64
+ const list = this.opIndex.get(type);
65
+ if (list) list.push(idx);
66
+ else this.opIndex.set(type, [idx]);
67
+ }
68
+ /**
69
+ * Return all recorded operations of the specified types in original
70
+ * insertion order.
71
+ *
72
+ * @example
73
+ * builder.getOps("where", "orWhere", "whereIn")
74
+ */
75
+ getOps(...types) {
76
+ if (types.length === 1) return (this.opIndex.get(types[0]) ?? []).map((i) => this.operations[i]);
77
+ const result = [];
78
+ for (const type of types) for (const idx of this.opIndex.get(type) ?? []) result.push({
79
+ idx,
80
+ op: this.operations[idx]
81
+ });
82
+ return result.sort((a, b) => a.idx - b.idx).map((r) => r.op);
83
+ }
84
+ /**
85
+ * Rebuild `opIndex` from scratch.
86
+ *
87
+ * Call this after any direct mutation of `this.operations[]` (e.g. scope
88
+ * injection, joinWith consumption in the executor, clone post-processing).
89
+ */
90
+ rebuildIndex() {
91
+ this.opIndex = /* @__PURE__ */ new Map();
92
+ for (let i = 0; i < this.operations.length; i++) {
93
+ const type = this.operations[i].type;
94
+ const list = this.opIndex.get(type);
95
+ if (list) list.push(i);
96
+ else this.opIndex.set(type, [i]);
97
+ }
98
+ }
99
+ /**
100
+ * Factory for sub-QueryBuilders used inside callbacks.
101
+ *
102
+ * Override in driver subclasses to return a driver-typed instance, so that
103
+ * driver-specific methods (e.g. `whereArrayContains`) are available inside
104
+ * nested `where(q => ...)` / `whereHas` / `joinWith` callbacks.
105
+ *
106
+ * @example
107
+ * // In PostgresQueryBuilder:
108
+ * protected override subQuery(): QueryBuilder {
109
+ * return new PostgresQueryBuilder("__sub__", this.dataSource);
110
+ * }
111
+ */
112
+ subQuery() {
113
+ return new QueryBuilder();
114
+ }
115
+ /**
116
+ * Shallow-clone this builder — copies operations, opIndex, and all shared state.
117
+ *
118
+ * Subclasses MUST call `super.clone()` and then copy their own fields
119
+ * (dataSource, joinRelations, …).
120
+ */
121
+ clone() {
122
+ const cloned = Object.create(Object.getPrototypeOf(this));
123
+ cloned.operations = [...this.operations];
124
+ cloned.opIndex = new Map(Array.from(this.opIndex.entries()).map(([k, v]) => [k, [...v]]));
125
+ cloned.pendingGlobalScopes = this.pendingGlobalScopes;
126
+ cloned.availableLocalScopes = this.availableLocalScopes;
127
+ cloned.disabledGlobalScopes = new Set(this.disabledGlobalScopes);
128
+ cloned.scopesApplied = this.scopesApplied;
129
+ cloned.eagerLoadRelations = new Map(this.eagerLoadRelations);
130
+ cloned.countRelations = new Map(this.countRelations);
131
+ cloned.relationDefinitions = this.relationDefinitions;
132
+ cloned.modelClass = this.modelClass;
133
+ return cloned;
134
+ }
135
+ /** Disable one or more named global scopes for this query. */
136
+ withoutGlobalScope(...scopeNames) {
137
+ scopeNames.forEach((name) => this.disabledGlobalScopes.add(name));
138
+ return this;
139
+ }
140
+ /** Disable ALL pending global scopes for this query. */
141
+ withoutGlobalScopes() {
142
+ this.pendingGlobalScopes?.forEach((_, name) => this.disabledGlobalScopes.add(name));
143
+ return this;
144
+ }
145
+ /**
146
+ * Apply a registered local scope by name.
147
+ * @throws if no local scopes are available or the named scope is not found
148
+ */
149
+ scope(scopeName, ...args) {
150
+ if (!this.availableLocalScopes) throw new Error("No local scopes available on this query builder.");
151
+ const cb = this.availableLocalScopes.get(scopeName);
152
+ if (!cb) throw new Error(`Local scope "${scopeName}" not found.`);
153
+ cb(this, ...args);
154
+ return this;
155
+ }
156
+ where(...args) {
157
+ if (args.length === 1 && typeof args[0] === "function") {
158
+ const sub = this.subQuery();
159
+ args[0](sub);
160
+ this.addOperation("where", { nested: sub.operations });
161
+ } else if (args.length === 1 && typeof args[0] === "object" && args[0] !== null) for (const [key, value] of Object.entries(args[0])) this.addOperation("where", {
162
+ field: key,
163
+ operator: "=",
164
+ value
165
+ });
166
+ else if (args.length === 2) this.addOperation("where", {
167
+ field: args[0],
168
+ operator: "=",
169
+ value: args[1]
170
+ });
171
+ else this.addOperation("where", {
172
+ field: args[0],
173
+ operator: args[1],
174
+ value: args[2]
175
+ });
176
+ return this;
177
+ }
178
+ orWhere(...args) {
179
+ if (args.length === 1 && typeof args[0] === "function") {
180
+ const sub = this.subQuery();
181
+ args[0](sub);
182
+ this.addOperation("orWhere", { nested: sub.operations });
183
+ } else if (args.length === 1 && typeof args[0] === "object" && args[0] !== null) for (const [key, value] of Object.entries(args[0])) this.addOperation("orWhere", {
184
+ field: key,
185
+ operator: "=",
186
+ value
187
+ });
188
+ else if (args.length === 2) this.addOperation("orWhere", {
189
+ field: args[0],
190
+ operator: "=",
191
+ value: args[1]
192
+ });
193
+ else this.addOperation("orWhere", {
194
+ field: args[0],
195
+ operator: args[1],
196
+ value: args[2]
197
+ });
198
+ return this;
199
+ }
200
+ /**
201
+ * Raw WHERE expression in the target dialect (AND).
202
+ *
203
+ * @example
204
+ * q.whereRaw("age > ? AND role = ?", [18, "admin"]) // SQL
205
+ * q.whereRaw({ $expr: { $gt: ["$stock", "$reserved"] } }) // MongoDB
206
+ */
207
+ whereRaw(expression, bindings) {
208
+ this.addOperation("whereRaw", {
209
+ expression,
210
+ bindings: bindings ?? []
211
+ });
212
+ return this;
213
+ }
214
+ /** Raw OR WHERE expression. */
215
+ orWhereRaw(expression, bindings) {
216
+ this.addOperation("orWhereRaw", {
217
+ expression,
218
+ bindings: bindings ?? []
219
+ });
220
+ return this;
221
+ }
222
+ /**
223
+ * Compare two columns directly (AND).
224
+ * @example q.whereColumn("stock", ">", "reserved")
225
+ */
226
+ whereColumn(first, operator, second) {
227
+ this.addOperation("whereColumn", {
228
+ first,
229
+ operator,
230
+ second
231
+ });
232
+ return this;
233
+ }
234
+ /** Compare two columns directly (OR). */
235
+ orWhereColumn(first, operator, second) {
236
+ this.addOperation("orWhereColumn", {
237
+ first,
238
+ operator,
239
+ second
240
+ });
241
+ return this;
242
+ }
243
+ /** Compare multiple column pairs in one call. */
244
+ whereColumns(comparisons) {
245
+ for (const [left, operator, right] of comparisons) this.whereColumn(left, operator, right);
246
+ return this;
247
+ }
248
+ /**
249
+ * Field value must fall between two other column values.
250
+ * Stored as a `whereBetween` op with `useColumns: true` so the SQL parser
251
+ * knows to quote the values as identifiers rather than bind them.
252
+ */
253
+ whereBetweenColumns(field, lowerColumn, upperColumn) {
254
+ this.addOperation("whereBetween", {
255
+ field,
256
+ lowerColumn,
257
+ upperColumn,
258
+ useColumns: true
259
+ });
260
+ return this;
261
+ }
262
+ /** WHERE field IN values. */
263
+ whereIn(field, values) {
264
+ this.addOperation("whereIn", {
265
+ field,
266
+ values
267
+ });
268
+ return this;
269
+ }
270
+ /** WHERE field NOT IN values. */
271
+ whereNotIn(field, values) {
272
+ this.addOperation("whereNotIn", {
273
+ field,
274
+ values
275
+ });
276
+ return this;
277
+ }
278
+ /** WHERE field IS NULL. */
279
+ whereNull(field) {
280
+ this.addOperation("whereNull", { field });
281
+ return this;
282
+ }
283
+ /** WHERE field IS NOT NULL. */
284
+ whereNotNull(field) {
285
+ this.addOperation("whereNotNull", { field });
286
+ return this;
287
+ }
288
+ /** WHERE field BETWEEN low AND high. */
289
+ whereBetween(field, range) {
290
+ this.addOperation("whereBetween", {
291
+ field,
292
+ range
293
+ });
294
+ return this;
295
+ }
296
+ /** WHERE field NOT BETWEEN low AND high. */
297
+ whereNotBetween(field, range) {
298
+ this.addOperation("whereNotBetween", {
299
+ field,
300
+ range
301
+ });
302
+ return this;
303
+ }
304
+ /**
305
+ * LIKE pattern match (AND).
306
+ * @example q.whereLike("email", "%@gmail.com")
307
+ */
308
+ whereLike(field, pattern) {
309
+ const patternStr = pattern instanceof RegExp ? pattern.source : pattern;
310
+ this.addOperation("whereLike", {
311
+ field,
312
+ pattern: patternStr
313
+ });
314
+ return this;
315
+ }
316
+ /** NOT LIKE pattern match. */
317
+ whereNotLike(field, pattern) {
318
+ const patternStr = pattern instanceof RegExp ? pattern.source : pattern;
319
+ this.addOperation("whereNotLike", {
320
+ field,
321
+ pattern: patternStr
322
+ });
323
+ return this;
324
+ }
325
+ /** Starts with a prefix. */
326
+ whereStartsWith(field, value) {
327
+ return this.whereLike(field, `${value}%`);
328
+ }
329
+ /** Does NOT start with a prefix. */
330
+ whereNotStartsWith(field, value) {
331
+ return this.whereNotLike(field, `${value}%`);
332
+ }
333
+ /** Ends with a suffix. */
334
+ whereEndsWith(field, value) {
335
+ return this.whereLike(field, `%${value}`);
336
+ }
337
+ /** Does NOT end with a suffix. */
338
+ whereNotEndsWith(field, value) {
339
+ return this.whereNotLike(field, `%${value}`);
340
+ }
341
+ /**
342
+ * Match on date portion only (time ignored).
343
+ * @example q.whereDate("createdAt", "2024-05-01")
344
+ */
345
+ whereDate(field, value) {
346
+ this.addOperation("whereDate", {
347
+ field,
348
+ value
349
+ });
350
+ return this;
351
+ }
352
+ /** Alias for whereDate. */
353
+ whereDateEquals(field, value) {
354
+ return this.whereDate(field, value);
355
+ }
356
+ /** Field date is before value. */
357
+ whereDateBefore(field, value) {
358
+ this.addOperation("whereDateBefore", {
359
+ field,
360
+ value
361
+ });
362
+ return this;
363
+ }
364
+ /** Field date is after value. */
365
+ whereDateAfter(field, value) {
366
+ this.addOperation("whereDateAfter", {
367
+ field,
368
+ value
369
+ });
370
+ return this;
371
+ }
372
+ /** Field date is within a range [from, to]. */
373
+ whereDateBetween(field, range) {
374
+ this.addOperation("whereDateBetween", {
375
+ field,
376
+ range
377
+ });
378
+ return this;
379
+ }
380
+ /** Field date is NOT within a range. */
381
+ whereDateNotBetween(field, range) {
382
+ this.addOperation("whereNotBetween", {
383
+ field,
384
+ range
385
+ });
386
+ return this;
387
+ }
388
+ /**
389
+ * Match on the time portion of a datetime field.
390
+ * Emits a `whereRaw` op with a driver-agnostic marker; the driver parser
391
+ * rewrites it to the appropriate SQL (`TIME(field) = ?`) or Mongo expression.
392
+ */
393
+ whereTime(field, value) {
394
+ this.addOperation("whereRaw", {
395
+ expression: `TIME(${field}) = ?`,
396
+ bindings: [value]
397
+ });
398
+ return this;
399
+ }
400
+ /**
401
+ * Day-of-month from a date field (1–31).
402
+ * Uses a `whereRaw` op so SQL parsers get the `EXTRACT` expression directly.
403
+ * MongoDB drivers override to emit `$dayOfMonth`.
404
+ */
405
+ whereDay(field, value) {
406
+ this.addOperation("whereRaw", {
407
+ expression: `EXTRACT(DAY FROM ${field}) = ?`,
408
+ bindings: [value]
409
+ });
410
+ return this;
411
+ }
412
+ /** Month extracted from a date field (1–12). */
413
+ whereMonth(field, value) {
414
+ this.addOperation("whereRaw", {
415
+ expression: `EXTRACT(MONTH FROM ${field}) = ?`,
416
+ bindings: [value]
417
+ });
418
+ return this;
419
+ }
420
+ /** Year extracted from a date field. */
421
+ whereYear(field, value) {
422
+ this.addOperation("whereRaw", {
423
+ expression: `EXTRACT(YEAR FROM ${field}) = ?`,
424
+ bindings: [value]
425
+ });
426
+ return this;
427
+ }
428
+ /**
429
+ * JSON/array path contains the given value.
430
+ * @example q.whereJsonContains("tags", "typescript")
431
+ */
432
+ whereJsonContains(path, value) {
433
+ this.addOperation("whereJsonContains", {
434
+ path,
435
+ value
436
+ });
437
+ return this;
438
+ }
439
+ /** JSON/array path does NOT contain the value. */
440
+ whereJsonDoesntContain(path, value) {
441
+ this.addOperation("whereJsonDoesntContain", {
442
+ path,
443
+ value
444
+ });
445
+ return this;
446
+ }
447
+ /**
448
+ * JSON path key exists.
449
+ * Uses a `whereRaw` so existing SQL parsers get `IS NOT NULL` immediately.
450
+ */
451
+ whereJsonContainsKey(path) {
452
+ this.addOperation("whereRaw", {
453
+ expression: `${path} IS NOT NULL`,
454
+ bindings: []
455
+ });
456
+ return this;
457
+ }
458
+ /**
459
+ * Constrain the length of a JSON array at a path.
460
+ * @example q.whereJsonLength("tags", ">", 3)
461
+ */
462
+ whereJsonLength(path, operator, value) {
463
+ this.addOperation("whereRaw", {
464
+ expression: `jsonb_array_length(${path}) ${operator} ?`,
465
+ bindings: [value]
466
+ });
467
+ return this;
468
+ }
469
+ /** JSON path must resolve to an array. */
470
+ whereJsonIsArray(path) {
471
+ this.addOperation("whereRaw", {
472
+ expression: `jsonb_typeof(${path}) = 'array'`,
473
+ bindings: []
474
+ });
475
+ return this;
476
+ }
477
+ /** JSON path must resolve to an object. */
478
+ whereJsonIsObject(path) {
479
+ this.addOperation("whereRaw", {
480
+ expression: `jsonb_typeof(${path}) = 'object'`,
481
+ bindings: []
482
+ });
483
+ return this;
484
+ }
485
+ /**
486
+ * Constrain the number of elements in an array field.
487
+ * @example q.whereArrayLength("roles", ">=", 2)
488
+ */
489
+ whereArrayLength(field, operator, value) {
490
+ this.addOperation("whereRaw", {
491
+ expression: `array_length(${field}, 1) ${operator} ?`,
492
+ bindings: [value]
493
+ });
494
+ return this;
495
+ }
496
+ /** WHERE id = value. */
497
+ whereId(value) {
498
+ return this.where("id", value);
499
+ }
500
+ /** WHERE id IN values. */
501
+ whereIds(values) {
502
+ return this.whereIn("id", values);
503
+ }
504
+ /** WHERE uuid = value. */
505
+ whereUuid(value) {
506
+ return this.where("uuid", value);
507
+ }
508
+ /** WHERE ulid = value. */
509
+ whereUlid(value) {
510
+ return this.where("ulid", value);
511
+ }
512
+ /**
513
+ * Full-text search across one or more fields.
514
+ * @example q.whereFullText(["title", "body"], "typescript")
515
+ */
516
+ whereFullText(fields, query) {
517
+ this.addOperation("whereFullText", {
518
+ fields: Array.isArray(fields) ? fields : [fields],
519
+ query
520
+ });
521
+ return this;
522
+ }
523
+ /** Full-text search (OR). */
524
+ orWhereFullText(fields, query) {
525
+ return this.whereFullText(fields, query);
526
+ }
527
+ /** Alias for whereFullText with a single field. */
528
+ whereSearch(field, query) {
529
+ return this.whereFullText([field], query);
530
+ }
531
+ /**
532
+ * Text search with optional extra equality filters.
533
+ * MongoDB-style convenience shorthand.
534
+ */
535
+ textSearch(query, filters) {
536
+ if (filters) for (const [key, value] of Object.entries(filters)) this.where(key, value);
537
+ return this;
538
+ }
539
+ whereExists(param) {
540
+ if (typeof param === "function") {
541
+ const sub = this.subQuery();
542
+ param(sub);
543
+ this.addOperation("whereExists", { subquery: sub.operations });
544
+ } else this.addOperation("whereNotNull", { field: param });
545
+ return this;
546
+ }
547
+ whereNotExists(param) {
548
+ if (typeof param === "function") {
549
+ const sub = this.subQuery();
550
+ param(sub);
551
+ this.addOperation("whereNotExists", { subquery: sub.operations });
552
+ } else this.addOperation("whereNull", { field: param });
553
+ return this;
554
+ }
555
+ whereSize(field, ...args) {
556
+ const operator = args.length === 2 ? args[0] : "=";
557
+ const size = args.length === 2 ? args[1] : args[0];
558
+ return this.whereArrayLength(field, operator, size);
559
+ }
560
+ /**
561
+ * AND NOT wrapper — negate a nested group.
562
+ * @example q.whereNot(q => q.where("status", "banned").where("role", "user"))
563
+ */
564
+ whereNot(callback) {
565
+ const sub = this.subQuery();
566
+ callback(sub);
567
+ this.addOperation("whereNot", { nested: sub.operations });
568
+ return this;
569
+ }
570
+ /** OR NOT wrapper. */
571
+ orWhereNot(callback) {
572
+ const sub = this.subQuery();
573
+ callback(sub);
574
+ this.addOperation("orWhereNot", { nested: sub.operations });
575
+ return this;
576
+ }
577
+ join(...args) {
578
+ if (args.length === 3) this.addOperation("join", {
579
+ table: args[0],
580
+ localField: args[1],
581
+ foreignField: args[2]
582
+ });
583
+ else this.addOperation("join", args[0]);
584
+ return this;
585
+ }
586
+ leftJoin(...args) {
587
+ if (args.length === 3) this.addOperation("leftJoin", {
588
+ table: args[0],
589
+ localField: args[1],
590
+ foreignField: args[2]
591
+ });
592
+ else this.addOperation("leftJoin", args[0]);
593
+ return this;
594
+ }
595
+ rightJoin(...args) {
596
+ if (args.length === 3) this.addOperation("rightJoin", {
597
+ table: args[0],
598
+ localField: args[1],
599
+ foreignField: args[2]
600
+ });
601
+ else this.addOperation("rightJoin", args[0]);
602
+ return this;
603
+ }
604
+ innerJoin(...args) {
605
+ if (args.length === 3) this.addOperation("innerJoin", {
606
+ table: args[0],
607
+ localField: args[1],
608
+ foreignField: args[2]
609
+ });
610
+ else this.addOperation("innerJoin", args[0]);
611
+ return this;
612
+ }
613
+ fullJoin(...args) {
614
+ if (args.length === 3) this.addOperation("fullJoin", {
615
+ table: args[0],
616
+ localField: args[1],
617
+ foreignField: args[2]
618
+ });
619
+ else this.addOperation("fullJoin", args[0]);
620
+ return this;
621
+ }
622
+ /** CROSS JOIN. */
623
+ crossJoin(table) {
624
+ this.addOperation("crossJoin", { table });
625
+ return this;
626
+ }
627
+ /** Raw JOIN expression. Driver responsible for handling. */
628
+ joinRaw(expression, bindings) {
629
+ this.addOperation("joinRaw", {
630
+ expression,
631
+ bindings: bindings ?? []
632
+ });
633
+ return this;
634
+ }
635
+ /**
636
+ * Eager-load named relations via a single JOIN / $lookup query.
637
+ *
638
+ * Constraints are eagerly resolved at call time:
639
+ * - Callbacks are invoked immediately → `subOps` stored in op data.
640
+ * - Column shorthands are parsed into a `columns[]` array.
641
+ *
642
+ * The driver executor reads the `joinWith` op and uses the resolved data
643
+ * alongside its own relation definition map to emit the appropriate SQL JOIN
644
+ * or MongoDB $lookup stage.
645
+ *
646
+ * Supported arg forms (may be mixed):
647
+ * - `"author"` / `["author", "category"]` — no constraint
648
+ * - `{ author: "id,name" }` — column shorthand
649
+ * - `{ actions: q => q.where("status","pending").limit(5) }` — callback
650
+ *
651
+ * @example
652
+ * Post.joinWith("author", "category")
653
+ * ChatMessage.joinWith({ actions: q => q.where("status", "pending").limit(5) })
654
+ * ChatMessage.joinWith({ org: "id,name", actions: q => q.orderBy("sort_order") })
655
+ */
656
+ joinWith(...args) {
657
+ const resolved = {};
658
+ for (const arg of args) if (typeof arg === "string") resolved[arg] = {};
659
+ else if (Array.isArray(arg)) for (const rel of arg) resolved[rel] = {};
660
+ else if (typeof arg === "object" && arg !== null) for (const [rel, constraint] of Object.entries(arg)) if (typeof constraint === "function") {
661
+ const sub = this.subQuery();
662
+ constraint(sub);
663
+ resolved[rel] = { subOps: sub.operations };
664
+ } else if (typeof constraint === "string" && constraint !== "") resolved[rel] = { columns: constraint.split(",").map((s) => s.trim()).filter(Boolean) };
665
+ else resolved[rel] = {};
666
+ this.addOperation("joinWith", { resolved });
667
+ return this;
668
+ }
669
+ /**
670
+ * Eager-load relations via separate queries (N+1 avoided by batching).
671
+ *
672
+ * @example
673
+ * q.with("posts")
674
+ * q.with("posts", q => q.where("published", true))
675
+ * q.with({ posts: true, comments: q => q.limit(5) })
676
+ */
677
+ with(...args) {
678
+ for (let i = 0; i < args.length; i++) {
679
+ const arg = args[i];
680
+ if (typeof arg === "string") {
681
+ const next = args[i + 1];
682
+ if (typeof next === "function") {
683
+ this.eagerLoadRelations.set(arg, next);
684
+ i++;
685
+ } else this.eagerLoadRelations.set(arg, true);
686
+ } else if (typeof arg === "object" && arg !== null) for (const [key, value] of Object.entries(arg)) this.eagerLoadRelations.set(key, value);
687
+ }
688
+ return this;
689
+ }
690
+ /**
691
+ * Register one or more relation counts to emit alongside each result row.
692
+ *
693
+ * Accepts:
694
+ * - Bare relation names (variadic strings or array): `withCount("posts", "comments")`
695
+ * - Alias shorthand: `withCount("posts as totalPosts")`
696
+ * - Object form for per-relation constraints / aliases:
697
+ * `withCount({ posts: true, "posts as approved": (q) => q.where("approved", true) })`
698
+ *
699
+ * Each entry is stored in `countRelations` keyed by its output column alias
700
+ * (default `${relationName}Count`). The driver subclass consumes the map at
701
+ * execute time to emit count expressions.
702
+ *
703
+ * @example
704
+ * ```typescript
705
+ * await User.query().withCount("posts").get(); // postsCount
706
+ * await User.query().withCount("posts as totalPosts").get(); // totalPosts
707
+ * await User.query()
708
+ * .withCount({
709
+ * posts: true,
710
+ * "posts as published": (q) => q.where("isPublished", true),
711
+ * comments: "commentTotal",
712
+ * })
713
+ * .get();
714
+ * ```
715
+ */
716
+ withCount(...args) {
717
+ for (const arg of args) {
718
+ if (typeof arg === "string") {
719
+ this.recordCountEntry(arg);
720
+ continue;
721
+ }
722
+ if (Array.isArray(arg)) {
723
+ for (const spec of arg) this.recordCountEntry(spec);
724
+ continue;
725
+ }
726
+ if (typeof arg === "object" && arg !== null) {
727
+ const entries = Object.entries(arg);
728
+ for (const [key, value] of entries) if (value === true) this.recordCountEntry(key);
729
+ else if (typeof value === "string") this.recordCountEntry(`${key} as ${value}`);
730
+ else if (typeof value === "function") this.recordCountEntry(key, value);
731
+ }
732
+ }
733
+ return this;
734
+ }
735
+ /**
736
+ * Parse a count spec ("relation" or "relation as alias") into its relation
737
+ * name and output alias, optionally capturing a constraint callback's
738
+ * operations via a sub-builder. Stored in `countRelations` keyed by alias.
739
+ */
740
+ recordCountEntry(spec, constraint) {
741
+ const { relation, alias } = this.parseCountSpec(spec);
742
+ let constraintOps;
743
+ if (constraint) {
744
+ const sub = this.subQuery();
745
+ constraint(sub);
746
+ constraintOps = sub.operations;
747
+ }
748
+ this.countRelations.set(alias, {
749
+ relation,
750
+ constraintOps
751
+ });
752
+ }
753
+ /**
754
+ * Split a `"<relation>"` or `"<relation> as <alias>"` spec. Returns the
755
+ * resolved relation name and the output column alias (defaulting to
756
+ * `${relation}Count` when no `as` is present).
757
+ */
758
+ parseCountSpec(spec) {
759
+ const trimmed = spec.trim();
760
+ const match = /^(.+?)\s+as\s+(.+)$/i.exec(trimmed);
761
+ if (!match) return {
762
+ relation: trimmed,
763
+ alias: `${trimmed}Count`
764
+ };
765
+ return {
766
+ relation: match[1].trim(),
767
+ alias: match[2].trim()
768
+ };
769
+ }
770
+ /**
771
+ * Filter to rows that have at least one related record.
772
+ * @example q.has("comments")
773
+ * @example q.has("comments", ">=", 3)
774
+ */
775
+ has(relation, operator, count) {
776
+ this.addOperation("has", {
777
+ relation,
778
+ operator: operator ?? ">=",
779
+ count: count ?? 1
780
+ });
781
+ return this;
782
+ }
783
+ /**
784
+ * Filter to rows with related records matching a sub-query (AND).
785
+ * @example q.whereHas("comments", q => q.where("approved", true))
786
+ */
787
+ whereHas(relation, callback) {
788
+ const sub = this.subQuery();
789
+ callback(sub);
790
+ this.addOperation("whereHas", {
791
+ relation,
792
+ subquery: sub.operations
793
+ });
794
+ return this;
795
+ }
796
+ /** Same as whereHas but OR-joined. */
797
+ orWhereHas(relation, callback) {
798
+ const sub = this.subQuery();
799
+ callback(sub);
800
+ this.addOperation("orWhereHas", {
801
+ relation,
802
+ subquery: sub.operations
803
+ });
804
+ return this;
805
+ }
806
+ /** Filter to rows with NO related records. */
807
+ doesntHave(relation) {
808
+ this.addOperation("doesntHave", { relation });
809
+ return this;
810
+ }
811
+ /** Filter to rows with NO related records matching conditions. */
812
+ whereDoesntHave(relation, callback) {
813
+ const sub = this.subQuery();
814
+ callback(sub);
815
+ this.addOperation("whereDoesntHave", {
816
+ relation,
817
+ subquery: sub.operations
818
+ });
819
+ return this;
820
+ }
821
+ select(...args) {
822
+ if (args.length === 1 && Array.isArray(args[0])) this.addOperation("select", { fields: args[0] });
823
+ else if (args.length === 1 && typeof args[0] === "object" && !Array.isArray(args[0])) this.addOperation("select", { fields: args[0] });
824
+ else this.addOperation("select", { fields: args.flat() });
825
+ return this;
826
+ }
827
+ /** Select a field under an alias. @example q.selectAs("fullName", "name") */
828
+ selectAs(field, alias) {
829
+ this.addOperation("select", { fields: { [field]: alias } });
830
+ return this;
831
+ }
832
+ /**
833
+ * Raw SELECT expression.
834
+ * @example q.selectRaw("COUNT(*) AS total")
835
+ */
836
+ selectRaw(expression, bindings) {
837
+ this.addOperation("selectRaw", {
838
+ expression,
839
+ bindings: bindings ?? []
840
+ });
841
+ return this;
842
+ }
843
+ /** Multiple raw SELECT expressions in one call. */
844
+ selectRawMany(definitions) {
845
+ for (const def of definitions) this.selectRaw({ [def.alias]: def.expression }, def.bindings);
846
+ return this;
847
+ }
848
+ /** Subquery as a named projected field. */
849
+ selectSub(expression, alias) {
850
+ this.addOperation("selectRaw", { expression: { [alias]: expression } });
851
+ return this;
852
+ }
853
+ /** Alias for selectSub. */
854
+ addSelectSub(expression, alias) {
855
+ return this.selectSub(expression, alias);
856
+ }
857
+ /**
858
+ * Aggregate function as a projected field.
859
+ * @example q.selectAggregate("price", "sum", "totalRevenue")
860
+ */
861
+ selectAggregate(field, aggregate, alias) {
862
+ return this.selectRaw({ [alias]: `${aggregate.toUpperCase()}(${field})` });
863
+ }
864
+ /** Existence check as a projected boolean field. */
865
+ selectExists(field, alias) {
866
+ return this.selectRaw({ [alias]: `${field} IS NOT NULL` });
867
+ }
868
+ /** COUNT as a projected field. */
869
+ selectCount(field, alias) {
870
+ return this.selectAggregate(field, "count", alias);
871
+ }
872
+ /**
873
+ * CASE / switch expression.
874
+ * @example q.selectCase([{ when: "status = 1", then: "'active'" }], "'inactive'", "statusLabel")
875
+ */
876
+ selectCase(cases, otherwise, alias) {
877
+ const caseExpr = cases.map((c) => `WHEN ${c.when} THEN ${c.then}`).join(" ");
878
+ return this.selectRaw({ [alias]: `CASE ${caseExpr} ELSE ${otherwise} END` });
879
+ }
880
+ /** IF/ELSE conditional field. */
881
+ selectWhen(condition, thenValue, elseValue, alias) {
882
+ return this.selectRaw({ [alias]: `CASE WHEN ${condition} THEN ${thenValue} ELSE ${elseValue} END` });
883
+ }
884
+ /**
885
+ * Driver-native projection manipulation.
886
+ * No-op in base — override in driver subclasses.
887
+ */
888
+ selectDriverProjection(_callback) {
889
+ return this;
890
+ }
891
+ /** JSON path extraction as a projected field. */
892
+ selectJson(path, alias) {
893
+ const parts = path.split("->");
894
+ const column = parts[0];
895
+ const jsonPath = parts.slice(1).join("->");
896
+ const expr = jsonPath ? `${column}->>'${jsonPath}'` : column;
897
+ return alias ? this.selectAs(expr, alias) : this.selectRaw(expr);
898
+ }
899
+ /** JSON extraction via raw expression. */
900
+ selectJsonRaw(_path, expression, alias) {
901
+ return this.selectRaw({ [alias]: expression });
902
+ }
903
+ /** Exclude a JSON path from projection. */
904
+ deselectJson(path) {
905
+ return this.deselect([path]);
906
+ }
907
+ /** String concatenation as a projected field. */
908
+ selectConcat(fields, alias) {
909
+ return this.selectRaw({ [alias]: fields.join(" || ") });
910
+ }
911
+ /** COALESCE (first non-null) as a projected field. */
912
+ selectCoalesce(fields, alias) {
913
+ return this.selectRaw({ [alias]: `COALESCE(${fields.join(", ")})` });
914
+ }
915
+ /** Window function expression. */
916
+ selectWindow(spec) {
917
+ this.addOperation("selectRaw", { expression: spec });
918
+ return this;
919
+ }
920
+ /** Exclude specific columns from results. */
921
+ deselect(fields) {
922
+ this.addOperation("deselect", { fields });
923
+ return this;
924
+ }
925
+ /**
926
+ * Remove all select operations (resets to wildcard).
927
+ * Uses `rebuildIndex()` — no unsafe casts.
928
+ */
929
+ clearSelect() {
930
+ this.operations = this.operations.filter((op) => !op.type.startsWith("select") && op.type !== "deselect");
931
+ this.rebuildIndex();
932
+ return this;
933
+ }
934
+ /** Alias for clearSelect. */
935
+ selectAll() {
936
+ return this.clearSelect();
937
+ }
938
+ /** Alias for clearSelect. */
939
+ selectDefault() {
940
+ return this.clearSelect();
941
+ }
942
+ /** Append additional fields to existing selection. */
943
+ addSelect(fields) {
944
+ this.addOperation("select", {
945
+ fields,
946
+ add: true
947
+ });
948
+ return this;
949
+ }
950
+ /**
951
+ * Record a DISTINCT flag (fluent — does not execute).
952
+ * Subclasses expose a separate async `distinct(field)` execution method.
953
+ */
954
+ distinctValues(fields) {
955
+ const fieldList = fields ? Array.isArray(fields) ? fields : [fields] : [];
956
+ this.addOperation("distinct", { fields: fieldList });
957
+ return this;
958
+ }
959
+ orderBy(...args) {
960
+ if (typeof args[0] === "string") this.addOperation("orderBy", {
961
+ field: args[0],
962
+ direction: args[1] ?? "asc"
963
+ });
964
+ else for (const [field, direction] of Object.entries(args[0])) this.addOperation("orderBy", {
965
+ field,
966
+ direction
967
+ });
968
+ return this;
969
+ }
970
+ /** ORDER BY descending shorthand. */
971
+ orderByDesc(field) {
972
+ return this.orderBy(field, "desc");
973
+ }
974
+ /**
975
+ * Raw ORDER BY expression.
976
+ * @example q.orderByRaw("RANDOM()")
977
+ * @example q.orderByRaw({ $meta: "textScore" })
978
+ */
979
+ orderByRaw(expression, bindings) {
980
+ this.addOperation("orderByRaw", {
981
+ expression,
982
+ bindings: bindings ?? []
983
+ });
984
+ return this;
985
+ }
986
+ /**
987
+ * Random order. Maps to `RANDOM()` in SQL or `$sample` in MongoDB.
988
+ * @param limit - Optional limit (required for MongoDB $sample)
989
+ */
990
+ orderByRandom(limit) {
991
+ this.addOperation("orderByRaw", { expression: "RANDOM()" });
992
+ if (limit !== void 0) this.limit(limit);
993
+ return this;
994
+ }
995
+ /** Order ascending by a date column (oldest first). */
996
+ oldest(column = "createdAt") {
997
+ return this.orderBy(column, "asc");
998
+ }
999
+ /** Limit number of results. */
1000
+ limit(value) {
1001
+ this.addOperation("limit", { value });
1002
+ return this;
1003
+ }
1004
+ /** Skip N results (OFFSET). */
1005
+ skip(value) {
1006
+ this.addOperation("offset", { value });
1007
+ return this;
1008
+ }
1009
+ /** Alias for skip. */
1010
+ offset(value) {
1011
+ return this.skip(value);
1012
+ }
1013
+ /** Alias for limit. */
1014
+ take(value) {
1015
+ return this.limit(value);
1016
+ }
1017
+ /**
1018
+ * GROUP BY clause.
1019
+ * @example q.groupBy("status")
1020
+ * @example q.groupBy(["year", "month"])
1021
+ */
1022
+ groupBy(input) {
1023
+ const fields = Array.isArray(input) ? input : [input];
1024
+ this.addOperation("groupBy", { fields });
1025
+ return this;
1026
+ }
1027
+ /** Raw GROUP BY expression. */
1028
+ groupByRaw(expression, bindings) {
1029
+ this.addOperation("groupBy", {
1030
+ expression,
1031
+ bindings: bindings ?? []
1032
+ });
1033
+ return this;
1034
+ }
1035
+ having(...args) {
1036
+ if (args.length === 1) {
1037
+ const input = args[0];
1038
+ if (Array.isArray(input)) if (input.length === 2) this.addOperation("having", {
1039
+ field: input[0],
1040
+ operator: "=",
1041
+ value: input[1]
1042
+ });
1043
+ else this.addOperation("having", {
1044
+ field: input[0],
1045
+ operator: input[1],
1046
+ value: input[2]
1047
+ });
1048
+ else for (const [key, value] of Object.entries(input)) this.addOperation("having", {
1049
+ field: key,
1050
+ operator: "=",
1051
+ value
1052
+ });
1053
+ } else if (args.length === 2) this.addOperation("having", {
1054
+ field: args[0],
1055
+ operator: "=",
1056
+ value: args[1]
1057
+ });
1058
+ else this.addOperation("having", {
1059
+ field: args[0],
1060
+ operator: args[1],
1061
+ value: args[2]
1062
+ });
1063
+ return this;
1064
+ }
1065
+ /** Raw HAVING expression. */
1066
+ havingRaw(expression, bindings) {
1067
+ this.addOperation("havingRaw", {
1068
+ expression,
1069
+ bindings: bindings ?? []
1070
+ });
1071
+ return this;
1072
+ }
1073
+ /**
1074
+ * Side-effect tap — executes callback synchronously and returns `this`.
1075
+ * @example q.where(...).tap(q => console.log(q.operations.length)).limit(10)
1076
+ */
1077
+ tap(callback) {
1078
+ callback(this);
1079
+ return this;
1080
+ }
1081
+ /**
1082
+ * Conditionally apply query modifications.
1083
+ *
1084
+ * @example
1085
+ * q.when(userId, (q, id) => q.where("userId", id))
1086
+ * q.when(isAdmin, q => q.withoutGlobalScopes(), q => q.scope("active"))
1087
+ */
1088
+ when(condition, callback, otherwise) {
1089
+ if (condition) callback(this, condition);
1090
+ else if (otherwise) otherwise(this);
1091
+ return this;
1092
+ }
1093
+ };
1094
+
1095
+ //#endregion
1096
+ export { QueryBuilder };
1097
+ //# sourceMappingURL=query-builder.mjs.map