@warlock.js/cascade 4.0.174 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1050) hide show
  1. package/README.md +6 -5
  2. package/bin/cascadejs +3 -0
  3. package/esm/cli/commands/migrate-export-sql.mjs +48 -0
  4. package/esm/cli/commands/migrate-export-sql.mjs.map +1 -0
  5. package/esm/cli/commands/migrate-list.mjs +26 -0
  6. package/esm/cli/commands/migrate-list.mjs.map +1 -0
  7. package/esm/cli/commands/migrate-rollback.mjs +50 -0
  8. package/esm/cli/commands/migrate-rollback.mjs.map +1 -0
  9. package/esm/cli/commands/migrate.mjs +65 -0
  10. package/esm/cli/commands/migrate.mjs.map +1 -0
  11. package/esm/cli/connection-from-env.mjs +181 -0
  12. package/esm/cli/connection-from-env.mjs.map +1 -0
  13. package/esm/cli/index.mjs +31 -0
  14. package/esm/cli/index.mjs.map +1 -0
  15. package/esm/cli/load-migrations.mjs +78 -0
  16. package/esm/cli/load-migrations.mjs.map +1 -0
  17. package/esm/cli/printers.mjs +57 -0
  18. package/esm/cli/printers.mjs.map +1 -0
  19. package/esm/cli/setup-logger.mjs +30 -0
  20. package/esm/cli/setup-logger.mjs.map +1 -0
  21. package/esm/cli/with-cli-connection.mjs +39 -0
  22. package/esm/cli/with-cli-connection.mjs.map +1 -0
  23. package/esm/cli.d.mts +1 -0
  24. package/esm/cli.mjs +26 -0
  25. package/esm/cli.mjs.map +1 -0
  26. package/esm/context/database-data-source-context.d.mts +32 -0
  27. package/esm/context/database-data-source-context.d.mts.map +1 -0
  28. package/esm/context/database-data-source-context.mjs +35 -0
  29. package/esm/context/database-data-source-context.mjs.map +1 -0
  30. package/esm/context/database-transaction-context.d.mts +38 -0
  31. package/esm/context/database-transaction-context.d.mts.map +1 -0
  32. package/esm/context/database-transaction-context.mjs +47 -0
  33. package/esm/context/database-transaction-context.mjs.map +1 -0
  34. package/esm/contracts/database-driver.contract.d.mts +443 -0
  35. package/esm/contracts/database-driver.contract.d.mts.map +1 -0
  36. package/esm/contracts/database-id-generator.contract.d.mts +109 -0
  37. package/esm/contracts/database-id-generator.contract.d.mts.map +1 -0
  38. package/esm/contracts/database-remover.contract.d.mts +108 -0
  39. package/esm/contracts/database-remover.contract.d.mts.map +1 -0
  40. package/esm/contracts/database-restorer.contract.d.mts +145 -0
  41. package/esm/contracts/database-restorer.contract.d.mts.map +1 -0
  42. package/esm/contracts/database-writer.contract.d.mts +123 -0
  43. package/esm/contracts/database-writer.contract.d.mts.map +1 -0
  44. package/esm/contracts/driver-blueprint.contract.d.mts +52 -0
  45. package/esm/contracts/driver-blueprint.contract.d.mts.map +1 -0
  46. package/esm/contracts/index.d.mts +9 -0
  47. package/esm/contracts/migration-driver.contract.d.mts +476 -0
  48. package/esm/contracts/migration-driver.contract.d.mts.map +1 -0
  49. package/esm/contracts/query-builder.contract.d.mts +1663 -0
  50. package/esm/contracts/query-builder.contract.d.mts.map +1 -0
  51. package/esm/contracts/sync-adapter.contract.d.mts +49 -0
  52. package/esm/contracts/sync-adapter.contract.d.mts.map +1 -0
  53. package/esm/data-source/data-source-registry.d.mts +111 -0
  54. package/esm/data-source/data-source-registry.d.mts.map +1 -0
  55. package/esm/data-source/data-source-registry.mjs +142 -0
  56. package/esm/data-source/data-source-registry.mjs.map +1 -0
  57. package/esm/data-source/data-source.d.mts +160 -0
  58. package/esm/data-source/data-source.d.mts.map +1 -0
  59. package/esm/data-source/data-source.mjs +87 -0
  60. package/esm/data-source/data-source.mjs.map +1 -0
  61. package/esm/database-dirty-tracker.d.mts +254 -0
  62. package/esm/database-dirty-tracker.d.mts.map +1 -0
  63. package/esm/database-dirty-tracker.mjs +356 -0
  64. package/esm/database-dirty-tracker.mjs.map +1 -0
  65. package/esm/drivers/mongodb/mongodb-blueprint.mjs +54 -0
  66. package/esm/drivers/mongodb/mongodb-blueprint.mjs.map +1 -0
  67. package/esm/drivers/mongodb/mongodb-driver.d.mts +334 -0
  68. package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -0
  69. package/esm/drivers/mongodb/mongodb-driver.mjs +716 -0
  70. package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -0
  71. package/esm/drivers/mongodb/mongodb-id-generator.d.mts +120 -0
  72. package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -0
  73. package/esm/drivers/mongodb/mongodb-id-generator.mjs +141 -0
  74. package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -0
  75. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts +322 -0
  76. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts.map +1 -0
  77. package/esm/drivers/mongodb/mongodb-migration-driver.mjs +531 -0
  78. package/esm/drivers/mongodb/mongodb-migration-driver.mjs.map +1 -0
  79. package/esm/drivers/mongodb/mongodb-query-builder.d.mts +1117 -0
  80. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -0
  81. package/esm/drivers/mongodb/mongodb-query-builder.mjs +1828 -0
  82. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -0
  83. package/esm/drivers/mongodb/mongodb-query-operations.d.mts +230 -0
  84. package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -0
  85. package/esm/drivers/mongodb/mongodb-query-operations.mjs +275 -0
  86. package/esm/drivers/mongodb/mongodb-query-operations.mjs.map +1 -0
  87. package/esm/drivers/mongodb/mongodb-query-parser.d.mts +263 -0
  88. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -0
  89. package/esm/drivers/mongodb/mongodb-query-parser.mjs +965 -0
  90. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -0
  91. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts +78 -0
  92. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts.map +1 -0
  93. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs +118 -0
  94. package/esm/drivers/mongodb/mongodb-sync-adapter.mjs.map +1 -0
  95. package/esm/drivers/mongodb/types.d.mts +43 -0
  96. package/esm/drivers/mongodb/types.d.mts.map +1 -0
  97. package/esm/drivers/postgres/index.d.mts +8 -0
  98. package/esm/drivers/postgres/index.mjs +9 -0
  99. package/esm/drivers/postgres/postgres-blueprint.d.mts +60 -0
  100. package/esm/drivers/postgres/postgres-blueprint.d.mts.map +1 -0
  101. package/esm/drivers/postgres/postgres-blueprint.mjs +105 -0
  102. package/esm/drivers/postgres/postgres-blueprint.mjs.map +1 -0
  103. package/esm/drivers/postgres/postgres-dialect.d.mts +144 -0
  104. package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -0
  105. package/esm/drivers/postgres/postgres-dialect.mjs +227 -0
  106. package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -0
  107. package/esm/drivers/postgres/postgres-driver.d.mts +424 -0
  108. package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -0
  109. package/esm/drivers/postgres/postgres-driver.mjs +845 -0
  110. package/esm/drivers/postgres/postgres-driver.mjs.map +1 -0
  111. package/esm/drivers/postgres/postgres-migration-driver.d.mts +393 -0
  112. package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -0
  113. package/esm/drivers/postgres/postgres-migration-driver.mjs +760 -0
  114. package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -0
  115. package/esm/drivers/postgres/postgres-query-builder.d.mts +399 -0
  116. package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -0
  117. package/esm/drivers/postgres/postgres-query-builder.mjs +1105 -0
  118. package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -0
  119. package/esm/drivers/postgres/postgres-query-parser.d.mts +351 -0
  120. package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -0
  121. package/esm/drivers/postgres/postgres-query-parser.mjs +796 -0
  122. package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -0
  123. package/esm/drivers/postgres/postgres-sql-serializer.mjs +260 -0
  124. package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -0
  125. package/esm/drivers/postgres/postgres-sync-adapter.d.mts +79 -0
  126. package/esm/drivers/postgres/postgres-sync-adapter.d.mts.map +1 -0
  127. package/esm/drivers/postgres/postgres-sync-adapter.mjs +162 -0
  128. package/esm/drivers/postgres/postgres-sync-adapter.mjs.map +1 -0
  129. package/esm/drivers/postgres/types.d.mts +105 -0
  130. package/esm/drivers/postgres/types.d.mts.map +1 -0
  131. package/esm/drivers/sql/sql-dialect.contract.d.mts +221 -0
  132. package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -0
  133. package/esm/drivers/sql/sql-types.d.mts +150 -0
  134. package/esm/drivers/sql/sql-types.d.mts.map +1 -0
  135. package/esm/errors/missing-data-source.error.d.mts +25 -0
  136. package/esm/errors/missing-data-source.error.d.mts.map +1 -0
  137. package/esm/errors/missing-data-source.error.mjs +31 -0
  138. package/esm/errors/missing-data-source.error.mjs.map +1 -0
  139. package/esm/errors/transaction-rollback.error.d.mts +23 -0
  140. package/esm/errors/transaction-rollback.error.d.mts.map +1 -0
  141. package/esm/errors/transaction-rollback.error.mjs +29 -0
  142. package/esm/errors/transaction-rollback.error.mjs.map +1 -0
  143. package/esm/events/model-events.d.mts +234 -0
  144. package/esm/events/model-events.d.mts.map +1 -0
  145. package/esm/events/model-events.mjs +254 -0
  146. package/esm/events/model-events.mjs.map +1 -0
  147. package/esm/expressions/aggregate-expressions.d.mts +224 -0
  148. package/esm/expressions/aggregate-expressions.d.mts.map +1 -0
  149. package/esm/expressions/aggregate-expressions.mjs +232 -0
  150. package/esm/expressions/aggregate-expressions.mjs.map +1 -0
  151. package/esm/index.d.mts +67 -0
  152. package/esm/index.mjs +53 -0
  153. package/esm/migration/column-builder.d.mts +420 -0
  154. package/esm/migration/column-builder.d.mts.map +1 -0
  155. package/esm/migration/column-builder.mjs +532 -0
  156. package/esm/migration/column-builder.mjs.map +1 -0
  157. package/esm/migration/column-helpers.d.mts +280 -0
  158. package/esm/migration/column-helpers.d.mts.map +1 -0
  159. package/esm/migration/column-helpers.mjs +376 -0
  160. package/esm/migration/column-helpers.mjs.map +1 -0
  161. package/esm/migration/foreign-key-builder.d.mts +106 -0
  162. package/esm/migration/foreign-key-builder.d.mts.map +1 -0
  163. package/esm/migration/foreign-key-builder.mjs +126 -0
  164. package/esm/migration/foreign-key-builder.mjs.map +1 -0
  165. package/esm/migration/index.d.mts +6 -0
  166. package/esm/migration/index.mjs +7 -0
  167. package/esm/migration/migration-runner.d.mts +279 -0
  168. package/esm/migration/migration-runner.d.mts.map +1 -0
  169. package/esm/migration/migration-runner.mjs +662 -0
  170. package/esm/migration/migration-runner.mjs.map +1 -0
  171. package/esm/migration/migration.d.mts +2035 -0
  172. package/esm/migration/migration.d.mts.map +1 -0
  173. package/esm/migration/migration.mjs +2083 -0
  174. package/esm/migration/migration.mjs.map +1 -0
  175. package/esm/migration/sql-grammar.mjs +115 -0
  176. package/esm/migration/sql-grammar.mjs.map +1 -0
  177. package/esm/migration/sql-serializer.d.mts +26 -0
  178. package/esm/migration/sql-serializer.d.mts.map +1 -0
  179. package/esm/migration/sql-serializer.mjs +26 -0
  180. package/esm/migration/sql-serializer.mjs.map +1 -0
  181. package/esm/migration/types.d.mts +136 -0
  182. package/esm/migration/types.d.mts.map +1 -0
  183. package/esm/model/methods/accessor-methods.mjs +54 -0
  184. package/esm/model/methods/accessor-methods.mjs.map +1 -0
  185. package/esm/model/methods/delete-methods.mjs +16 -0
  186. package/esm/model/methods/delete-methods.mjs.map +1 -0
  187. package/esm/model/methods/dirty-methods.mjs +20 -0
  188. package/esm/model/methods/dirty-methods.mjs.map +1 -0
  189. package/esm/model/methods/hydration-methods.mjs +51 -0
  190. package/esm/model/methods/hydration-methods.mjs.map +1 -0
  191. package/esm/model/methods/instance-event-methods.mjs +22 -0
  192. package/esm/model/methods/instance-event-methods.mjs.map +1 -0
  193. package/esm/model/methods/meta-methods.mjs +36 -0
  194. package/esm/model/methods/meta-methods.mjs.map +1 -0
  195. package/esm/model/methods/pivot-methods.mjs +48 -0
  196. package/esm/model/methods/pivot-methods.mjs.map +1 -0
  197. package/esm/model/methods/query-methods.mjs +121 -0
  198. package/esm/model/methods/query-methods.mjs.map +1 -0
  199. package/esm/model/methods/restore-methods.mjs +16 -0
  200. package/esm/model/methods/restore-methods.mjs.map +1 -0
  201. package/esm/model/methods/scope-methods.mjs +20 -0
  202. package/esm/model/methods/scope-methods.mjs.map +1 -0
  203. package/esm/model/methods/serialization-methods.mjs +20 -0
  204. package/esm/model/methods/serialization-methods.mjs.map +1 -0
  205. package/esm/model/methods/static-event-methods.mjs +37 -0
  206. package/esm/model/methods/static-event-methods.mjs.map +1 -0
  207. package/esm/model/methods/write-methods.mjs +69 -0
  208. package/esm/model/methods/write-methods.mjs.map +1 -0
  209. package/esm/model/model.d.mts +1778 -0
  210. package/esm/model/model.d.mts.map +1 -0
  211. package/esm/model/model.mjs +1762 -0
  212. package/esm/model/model.mjs.map +1 -0
  213. package/esm/model/model.types.d.mts +47 -0
  214. package/esm/model/model.types.d.mts.map +1 -0
  215. package/esm/model/register-model.d.mts +140 -0
  216. package/esm/model/register-model.d.mts.map +1 -0
  217. package/esm/model/register-model.mjs +175 -0
  218. package/esm/model/register-model.mjs.map +1 -0
  219. package/esm/model/relation-decorators.d.mts +88 -0
  220. package/esm/model/relation-decorators.d.mts.map +1 -0
  221. package/esm/model/relation-decorators.mjs +191 -0
  222. package/esm/model/relation-decorators.mjs.map +1 -0
  223. package/esm/operations/database.d.mts +46 -0
  224. package/esm/operations/database.d.mts.map +1 -0
  225. package/esm/operations/database.mjs +40 -0
  226. package/esm/operations/database.mjs.map +1 -0
  227. package/esm/operations/index.d.mts +2 -0
  228. package/esm/operations/index.mjs +4 -0
  229. package/esm/operations/migrations.d.mts +71 -0
  230. package/esm/operations/migrations.d.mts.map +1 -0
  231. package/esm/operations/migrations.mjs +70 -0
  232. package/esm/operations/migrations.mjs.map +1 -0
  233. package/esm/query-builder/query-builder.d.mts +564 -0
  234. package/esm/query-builder/query-builder.d.mts.map +1 -0
  235. package/esm/query-builder/query-builder.mjs +1097 -0
  236. package/esm/query-builder/query-builder.mjs.map +1 -0
  237. package/esm/relations/index.d.mts +4 -0
  238. package/esm/relations/index.mjs +5 -0
  239. package/esm/relations/key-conventions.mjs +119 -0
  240. package/esm/relations/key-conventions.mjs.map +1 -0
  241. package/esm/relations/pivot-operations.d.mts +155 -0
  242. package/esm/relations/pivot-operations.d.mts.map +1 -0
  243. package/esm/relations/pivot-operations.mjs +232 -0
  244. package/esm/relations/pivot-operations.mjs.map +1 -0
  245. package/esm/relations/relation-hydrator.d.mts +55 -0
  246. package/esm/relations/relation-hydrator.d.mts.map +1 -0
  247. package/esm/relations/relation-hydrator.mjs +52 -0
  248. package/esm/relations/relation-hydrator.mjs.map +1 -0
  249. package/esm/relations/relation-loader.d.mts +190 -0
  250. package/esm/relations/relation-loader.d.mts.map +1 -0
  251. package/esm/relations/relation-loader.mjs +416 -0
  252. package/esm/relations/relation-loader.mjs.map +1 -0
  253. package/esm/relations/types.d.mts +317 -0
  254. package/esm/relations/types.d.mts.map +1 -0
  255. package/esm/remover/database-remover.d.mts +104 -0
  256. package/esm/remover/database-remover.d.mts.map +1 -0
  257. package/esm/remover/database-remover.mjs +174 -0
  258. package/esm/remover/database-remover.mjs.map +1 -0
  259. package/esm/restorer/database-restorer.d.mts +135 -0
  260. package/esm/restorer/database-restorer.d.mts.map +1 -0
  261. package/esm/restorer/database-restorer.mjs +316 -0
  262. package/esm/restorer/database-restorer.mjs.map +1 -0
  263. package/esm/sql-database-dirty-tracker.d.mts +17 -0
  264. package/esm/sql-database-dirty-tracker.d.mts.map +1 -0
  265. package/esm/sql-database-dirty-tracker.mjs +20 -0
  266. package/esm/sql-database-dirty-tracker.mjs.map +1 -0
  267. package/esm/sync/model-events.mjs +46 -0
  268. package/esm/sync/model-events.mjs.map +1 -0
  269. package/esm/sync/model-sync-operation.d.mts +159 -0
  270. package/esm/sync/model-sync-operation.d.mts.map +1 -0
  271. package/esm/sync/model-sync-operation.mjs +257 -0
  272. package/esm/sync/model-sync-operation.mjs.map +1 -0
  273. package/esm/sync/model-sync.d.mts +126 -0
  274. package/esm/sync/model-sync.d.mts.map +1 -0
  275. package/esm/sync/model-sync.mjs +157 -0
  276. package/esm/sync/model-sync.mjs.map +1 -0
  277. package/esm/sync/sync-context.d.mts +69 -0
  278. package/esm/sync/sync-context.d.mts.map +1 -0
  279. package/esm/sync/sync-context.mjs +95 -0
  280. package/esm/sync/sync-context.mjs.map +1 -0
  281. package/esm/sync/sync-manager.d.mts +213 -0
  282. package/esm/sync/sync-manager.d.mts.map +1 -0
  283. package/esm/sync/sync-manager.mjs +597 -0
  284. package/esm/sync/sync-manager.mjs.map +1 -0
  285. package/esm/sync/types.d.mts +215 -0
  286. package/esm/sync/types.d.mts.map +1 -0
  287. package/esm/types.d.mts +423 -0
  288. package/esm/types.d.mts.map +1 -0
  289. package/esm/utils/connect-to-database.d.mts +328 -0
  290. package/esm/utils/connect-to-database.d.mts.map +1 -0
  291. package/esm/utils/connect-to-database.mjs +130 -0
  292. package/esm/utils/connect-to-database.mjs.map +1 -0
  293. package/esm/utils/database-writer.utils.d.mts +18 -0
  294. package/esm/utils/database-writer.utils.d.mts.map +1 -0
  295. package/esm/utils/database-writer.utils.mjs +25 -0
  296. package/esm/utils/database-writer.utils.mjs.map +1 -0
  297. package/esm/utils/define-model.d.mts +185 -0
  298. package/esm/utils/define-model.d.mts.map +1 -0
  299. package/esm/utils/define-model.mjs +105 -0
  300. package/esm/utils/define-model.mjs.map +1 -0
  301. package/esm/utils/is-valid-date-value.mjs +22 -0
  302. package/esm/utils/is-valid-date-value.mjs.map +1 -0
  303. package/esm/utils/once-connected.d.mts +150 -0
  304. package/esm/utils/once-connected.d.mts.map +1 -0
  305. package/esm/utils/once-connected.mjs +203 -0
  306. package/esm/utils/once-connected.mjs.map +1 -0
  307. package/esm/validation/database-seal-plugins.d.mts +1 -0
  308. package/esm/validation/database-seal-plugins.mjs +11 -0
  309. package/esm/validation/database-seal-plugins.mjs.map +1 -0
  310. package/esm/validation/database-writer-validation-error.d.mts +101 -0
  311. package/esm/validation/database-writer-validation-error.d.mts.map +1 -0
  312. package/esm/validation/database-writer-validation-error.mjs +153 -0
  313. package/esm/validation/database-writer-validation-error.mjs.map +1 -0
  314. package/esm/validation/index.d.mts +2 -0
  315. package/esm/validation/index.mjs +4 -0
  316. package/esm/validation/mutators/embed-mutator.mjs +26 -0
  317. package/esm/validation/mutators/embed-mutator.mjs.map +1 -0
  318. package/esm/validation/plugins/database-rules-plugin.d.mts +28 -0
  319. package/esm/validation/plugins/database-rules-plugin.d.mts.map +1 -0
  320. package/esm/validation/plugins/database-rules-plugin.mjs +43 -0
  321. package/esm/validation/plugins/database-rules-plugin.mjs.map +1 -0
  322. package/esm/validation/plugins/embed-validator-plugin.d.mts +17 -0
  323. package/esm/validation/plugins/embed-validator-plugin.d.mts.map +1 -0
  324. package/esm/validation/plugins/embed-validator-plugin.mjs +20 -0
  325. package/esm/validation/plugins/embed-validator-plugin.mjs.map +1 -0
  326. package/esm/validation/rules/database-model-rule.mjs +32 -0
  327. package/esm/validation/rules/database-model-rule.mjs.map +1 -0
  328. package/esm/validation/rules/exists-rule.mjs +29 -0
  329. package/esm/validation/rules/exists-rule.mjs.map +1 -0
  330. package/esm/validation/rules/unique-rule.mjs +43 -0
  331. package/esm/validation/rules/unique-rule.mjs.map +1 -0
  332. package/esm/validation/transformers/embed-model-transformer.mjs +17 -0
  333. package/esm/validation/transformers/embed-model-transformer.mjs.map +1 -0
  334. package/esm/validation/types.d.mts +43 -0
  335. package/esm/validation/types.d.mts.map +1 -0
  336. package/esm/validation/validators/embed-validator.d.mts +25 -0
  337. package/esm/validation/validators/embed-validator.d.mts.map +1 -0
  338. package/esm/validation/validators/embed-validator.mjs +42 -0
  339. package/esm/validation/validators/embed-validator.mjs.map +1 -0
  340. package/esm/writer/database-writer.d.mts +178 -0
  341. package/esm/writer/database-writer.d.mts.map +1 -0
  342. package/esm/writer/database-writer.mjs +317 -0
  343. package/esm/writer/database-writer.mjs.map +1 -0
  344. package/llms-full.txt +2027 -0
  345. package/llms.txt +23 -0
  346. package/package.json +60 -51
  347. package/skills/README.md +65 -0
  348. package/skills/aggregate-data/SKILL.md +102 -0
  349. package/skills/cascade-basics/SKILL.md +93 -0
  350. package/skills/configure-delete-strategy/SKILL.md +126 -0
  351. package/skills/define-model/SKILL.md +170 -0
  352. package/skills/define-relations/SKILL.md +171 -0
  353. package/skills/manage-data-sources/SKILL.md +140 -0
  354. package/skills/manage-transactions/SKILL.md +118 -0
  355. package/skills/paginate-results/SKILL.md +122 -0
  356. package/skills/perform-atomic-ops/SKILL.md +98 -0
  357. package/skills/query-data/SKILL.md +168 -0
  358. package/skills/run-cascade-cli/SKILL.md +125 -0
  359. package/skills/search-by-vector/SKILL.md +127 -0
  360. package/skills/subscribe-to-model-events/SKILL.md +148 -0
  361. package/skills/track-changes/SKILL.md +109 -0
  362. package/skills/write-migration/SKILL.md +144 -0
  363. package/cjs/context/database-data-source-context.d.ts +0 -29
  364. package/cjs/context/database-data-source-context.d.ts.map +0 -1
  365. package/cjs/context/database-data-source-context.js +0 -28
  366. package/cjs/context/database-data-source-context.js.map +0 -1
  367. package/cjs/context/database-transaction-context.d.ts +0 -35
  368. package/cjs/context/database-transaction-context.d.ts.map +0 -1
  369. package/cjs/context/database-transaction-context.js +0 -40
  370. package/cjs/context/database-transaction-context.js.map +0 -1
  371. package/cjs/contracts/database-driver.contract.d.ts +0 -450
  372. package/cjs/contracts/database-driver.contract.d.ts.map +0 -1
  373. package/cjs/contracts/database-id-generator.contract.d.ts +0 -109
  374. package/cjs/contracts/database-id-generator.contract.d.ts.map +0 -1
  375. package/cjs/contracts/database-remover.contract.d.ts +0 -104
  376. package/cjs/contracts/database-remover.contract.d.ts.map +0 -1
  377. package/cjs/contracts/database-restorer.contract.d.ts +0 -143
  378. package/cjs/contracts/database-restorer.contract.d.ts.map +0 -1
  379. package/cjs/contracts/database-writer.contract.d.ts +0 -119
  380. package/cjs/contracts/database-writer.contract.d.ts.map +0 -1
  381. package/cjs/contracts/driver-blueprint.contract.d.ts +0 -49
  382. package/cjs/contracts/driver-blueprint.contract.d.ts.map +0 -1
  383. package/cjs/contracts/index.d.ts +0 -10
  384. package/cjs/contracts/index.d.ts.map +0 -1
  385. package/cjs/contracts/migration-driver.contract.d.ts +0 -522
  386. package/cjs/contracts/migration-driver.contract.d.ts.map +0 -1
  387. package/cjs/contracts/query-builder.contract.d.ts +0 -1609
  388. package/cjs/contracts/query-builder.contract.d.ts.map +0 -1
  389. package/cjs/contracts/sync-adapter.contract.d.ts +0 -58
  390. package/cjs/contracts/sync-adapter.contract.d.ts.map +0 -1
  391. package/cjs/data-source/data-source-registry.d.ts +0 -108
  392. package/cjs/data-source/data-source-registry.d.ts.map +0 -1
  393. package/cjs/data-source/data-source-registry.js +0 -145
  394. package/cjs/data-source/data-source-registry.js.map +0 -1
  395. package/cjs/data-source/data-source.d.ts +0 -147
  396. package/cjs/data-source/data-source.d.ts.map +0 -1
  397. package/cjs/data-source/data-source.js +0 -83
  398. package/cjs/data-source/data-source.js.map +0 -1
  399. package/cjs/database-dirty-tracker.d.ts +0 -252
  400. package/cjs/database-dirty-tracker.d.ts.map +0 -1
  401. package/cjs/database-dirty-tracker.js +0 -386
  402. package/cjs/database-dirty-tracker.js.map +0 -1
  403. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  404. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  405. package/cjs/drivers/mongodb/mongodb-blueprint.js +0 -51
  406. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  407. package/cjs/drivers/mongodb/mongodb-driver.d.ts +0 -325
  408. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  409. package/cjs/drivers/mongodb/mongodb-driver.js +0 -845
  410. package/cjs/drivers/mongodb/mongodb-driver.js.map +0 -1
  411. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  412. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  413. package/cjs/drivers/mongodb/mongodb-id-generator.js +0 -149
  414. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  415. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  416. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  417. package/cjs/drivers/mongodb/mongodb-migration-driver.js +0 -666
  418. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  419. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  420. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  421. package/cjs/drivers/mongodb/mongodb-query-builder.js +0 -1988
  422. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  423. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  424. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  425. package/cjs/drivers/mongodb/mongodb-query-operations.js +0 -270
  426. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  427. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  428. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  429. package/cjs/drivers/mongodb/mongodb-query-parser.js +0 -1351
  430. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  431. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  432. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  433. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  434. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  435. package/cjs/drivers/mongodb/types.d.ts +0 -43
  436. package/cjs/drivers/mongodb/types.d.ts.map +0 -1
  437. package/cjs/drivers/postgres/index.d.ts +0 -16
  438. package/cjs/drivers/postgres/index.d.ts.map +0 -1
  439. package/cjs/drivers/postgres/postgres-blueprint.d.ts +0 -64
  440. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  441. package/cjs/drivers/postgres/postgres-blueprint.js +0 -121
  442. package/cjs/drivers/postgres/postgres-blueprint.js.map +0 -1
  443. package/cjs/drivers/postgres/postgres-dialect.d.ts +0 -136
  444. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  445. package/cjs/drivers/postgres/postgres-dialect.js +0 -268
  446. package/cjs/drivers/postgres/postgres-dialect.js.map +0 -1
  447. package/cjs/drivers/postgres/postgres-driver.d.ts +0 -432
  448. package/cjs/drivers/postgres/postgres-driver.d.ts.map +0 -1
  449. package/cjs/drivers/postgres/postgres-driver.js +0 -1008
  450. package/cjs/drivers/postgres/postgres-driver.js.map +0 -1
  451. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  452. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  453. package/cjs/drivers/postgres/postgres-migration-driver.js +0 -900
  454. package/cjs/drivers/postgres/postgres-migration-driver.js.map +0 -1
  455. package/cjs/drivers/postgres/postgres-query-builder.d.ts +0 -254
  456. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  457. package/cjs/drivers/postgres/postgres-query-builder.js +0 -933
  458. package/cjs/drivers/postgres/postgres-query-builder.js.map +0 -1
  459. package/cjs/drivers/postgres/postgres-query-parser.d.ts +0 -328
  460. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  461. package/cjs/drivers/postgres/postgres-query-parser.js +0 -868
  462. package/cjs/drivers/postgres/postgres-query-parser.js.map +0 -1
  463. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  464. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  465. package/cjs/drivers/postgres/postgres-sql-serializer.js +0 -400
  466. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  467. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  468. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  469. package/cjs/drivers/postgres/postgres-sync-adapter.js +0 -204
  470. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  471. package/cjs/drivers/postgres/types.d.ts +0 -144
  472. package/cjs/drivers/postgres/types.d.ts.map +0 -1
  473. package/cjs/drivers/sql/index.d.ts +0 -10
  474. package/cjs/drivers/sql/index.d.ts.map +0 -1
  475. package/cjs/drivers/sql/sql-dialect.contract.d.ts +0 -204
  476. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  477. package/cjs/drivers/sql/sql-types.d.ts +0 -202
  478. package/cjs/drivers/sql/sql-types.d.ts.map +0 -1
  479. package/cjs/errors/missing-data-source.error.d.ts +0 -22
  480. package/cjs/errors/missing-data-source.error.d.ts.map +0 -1
  481. package/cjs/errors/missing-data-source.error.js +0 -29
  482. package/cjs/errors/missing-data-source.error.js.map +0 -1
  483. package/cjs/errors/transaction-rollback.error.d.ts +0 -20
  484. package/cjs/errors/transaction-rollback.error.d.ts.map +0 -1
  485. package/cjs/errors/transaction-rollback.error.js +0 -27
  486. package/cjs/errors/transaction-rollback.error.js.map +0 -1
  487. package/cjs/events/model-events.d.ts +0 -231
  488. package/cjs/events/model-events.d.ts.map +0 -1
  489. package/cjs/events/model-events.js +0 -259
  490. package/cjs/events/model-events.js.map +0 -1
  491. package/cjs/expressions/aggregate-expressions.d.ts +0 -215
  492. package/cjs/expressions/aggregate-expressions.d.ts.map +0 -1
  493. package/cjs/expressions/aggregate-expressions.js +0 -221
  494. package/cjs/expressions/aggregate-expressions.js.map +0 -1
  495. package/cjs/expressions/index.d.ts +0 -2
  496. package/cjs/expressions/index.d.ts.map +0 -1
  497. package/cjs/index.d.ts +0 -45
  498. package/cjs/index.d.ts.map +0 -1
  499. package/cjs/index.js +0 -1
  500. package/cjs/index.js.map +0 -1
  501. package/cjs/migration/column-builder.d.ts +0 -417
  502. package/cjs/migration/column-builder.d.ts.map +0 -1
  503. package/cjs/migration/column-builder.js +0 -586
  504. package/cjs/migration/column-builder.js.map +0 -1
  505. package/cjs/migration/column-helpers.d.ts +0 -275
  506. package/cjs/migration/column-helpers.d.ts.map +0 -1
  507. package/cjs/migration/column-helpers.js +0 -389
  508. package/cjs/migration/column-helpers.js.map +0 -1
  509. package/cjs/migration/foreign-key-builder.d.ts +0 -103
  510. package/cjs/migration/foreign-key-builder.d.ts.map +0 -1
  511. package/cjs/migration/foreign-key-builder.js +0 -121
  512. package/cjs/migration/foreign-key-builder.js.map +0 -1
  513. package/cjs/migration/index.d.ts +0 -7
  514. package/cjs/migration/index.d.ts.map +0 -1
  515. package/cjs/migration/migration-runner.d.ts +0 -278
  516. package/cjs/migration/migration-runner.d.ts.map +0 -1
  517. package/cjs/migration/migration-runner.js +0 -815
  518. package/cjs/migration/migration-runner.js.map +0 -1
  519. package/cjs/migration/migration.d.ts +0 -1988
  520. package/cjs/migration/migration.d.ts.map +0 -1
  521. package/cjs/migration/migration.js +0 -2162
  522. package/cjs/migration/migration.js.map +0 -1
  523. package/cjs/migration/sql-grammar.d.ts +0 -61
  524. package/cjs/migration/sql-grammar.d.ts.map +0 -1
  525. package/cjs/migration/sql-grammar.js +0 -164
  526. package/cjs/migration/sql-grammar.js.map +0 -1
  527. package/cjs/migration/sql-serializer.d.ts +0 -22
  528. package/cjs/migration/sql-serializer.d.ts.map +0 -1
  529. package/cjs/migration/sql-serializer.js +0 -26
  530. package/cjs/migration/sql-serializer.js.map +0 -1
  531. package/cjs/migration/types.d.ts +0 -155
  532. package/cjs/migration/types.d.ts.map +0 -1
  533. package/cjs/model/methods/accessor-methods.d.ts +0 -13
  534. package/cjs/model/methods/accessor-methods.d.ts.map +0 -1
  535. package/cjs/model/methods/accessor-methods.js +0 -51
  536. package/cjs/model/methods/accessor-methods.js.map +0 -1
  537. package/cjs/model/methods/delete-methods.d.ts +0 -10
  538. package/cjs/model/methods/delete-methods.d.ts.map +0 -1
  539. package/cjs/model/methods/delete-methods.js +0 -10
  540. package/cjs/model/methods/delete-methods.js.map +0 -1
  541. package/cjs/model/methods/dirty-methods.d.ts +0 -10
  542. package/cjs/model/methods/dirty-methods.d.ts.map +0 -1
  543. package/cjs/model/methods/dirty-methods.js +0 -15
  544. package/cjs/model/methods/dirty-methods.js.map +0 -1
  545. package/cjs/model/methods/hydration-methods.d.ts +0 -10
  546. package/cjs/model/methods/hydration-methods.d.ts.map +0 -1
  547. package/cjs/model/methods/hydration-methods.js +0 -57
  548. package/cjs/model/methods/hydration-methods.js.map +0 -1
  549. package/cjs/model/methods/instance-event-methods.d.ts +0 -7
  550. package/cjs/model/methods/instance-event-methods.d.ts.map +0 -1
  551. package/cjs/model/methods/instance-event-methods.js +0 -15
  552. package/cjs/model/methods/instance-event-methods.js.map +0 -1
  553. package/cjs/model/methods/meta-methods.d.ts +0 -7
  554. package/cjs/model/methods/meta-methods.d.ts.map +0 -1
  555. package/cjs/model/methods/meta-methods.js +0 -78
  556. package/cjs/model/methods/meta-methods.js.map +0 -1
  557. package/cjs/model/methods/query-methods.d.ts +0 -24
  558. package/cjs/model/methods/query-methods.d.ts.map +0 -1
  559. package/cjs/model/methods/query-methods.js +0 -164
  560. package/cjs/model/methods/query-methods.js.map +0 -1
  561. package/cjs/model/methods/restore-methods.d.ts +0 -10
  562. package/cjs/model/methods/restore-methods.d.ts.map +0 -1
  563. package/cjs/model/methods/restore-methods.js +0 -13
  564. package/cjs/model/methods/restore-methods.js.map +0 -1
  565. package/cjs/model/methods/scope-methods.d.ts +0 -7
  566. package/cjs/model/methods/scope-methods.d.ts.map +0 -1
  567. package/cjs/model/methods/scope-methods.js +0 -15
  568. package/cjs/model/methods/scope-methods.js.map +0 -1
  569. package/cjs/model/methods/serialization-methods.d.ts +0 -3
  570. package/cjs/model/methods/serialization-methods.d.ts.map +0 -1
  571. package/cjs/model/methods/serialization-methods.js +0 -27
  572. package/cjs/model/methods/serialization-methods.js.map +0 -1
  573. package/cjs/model/methods/static-event-methods.d.ts +0 -9
  574. package/cjs/model/methods/static-event-methods.d.ts.map +0 -1
  575. package/cjs/model/methods/static-event-methods.js +0 -29
  576. package/cjs/model/methods/static-event-methods.js.map +0 -1
  577. package/cjs/model/methods/write-methods.d.ts +0 -10
  578. package/cjs/model/methods/write-methods.d.ts.map +0 -1
  579. package/cjs/model/methods/write-methods.js +0 -52
  580. package/cjs/model/methods/write-methods.js.map +0 -1
  581. package/cjs/model/model.d.ts +0 -1647
  582. package/cjs/model/model.d.ts.map +0 -1
  583. package/cjs/model/model.js +0 -1657
  584. package/cjs/model/model.js.map +0 -1
  585. package/cjs/model/model.types.d.ts +0 -44
  586. package/cjs/model/model.types.d.ts.map +0 -1
  587. package/cjs/model/register-model.d.ts +0 -81
  588. package/cjs/model/register-model.d.ts.map +0 -1
  589. package/cjs/model/register-model.js +0 -94
  590. package/cjs/model/register-model.js.map +0 -1
  591. package/cjs/query-builder/query-builder.d.ts +0 -556
  592. package/cjs/query-builder/query-builder.d.ts.map +0 -1
  593. package/cjs/query-builder/query-builder.js +0 -1070
  594. package/cjs/query-builder/query-builder.js.map +0 -1
  595. package/cjs/relations/helpers.d.ts +0 -156
  596. package/cjs/relations/helpers.d.ts.map +0 -1
  597. package/cjs/relations/helpers.js +0 -202
  598. package/cjs/relations/helpers.js.map +0 -1
  599. package/cjs/relations/index.d.ts +0 -35
  600. package/cjs/relations/index.d.ts.map +0 -1
  601. package/cjs/relations/pivot-operations.d.ts +0 -160
  602. package/cjs/relations/pivot-operations.d.ts.map +0 -1
  603. package/cjs/relations/pivot-operations.js +0 -293
  604. package/cjs/relations/pivot-operations.js.map +0 -1
  605. package/cjs/relations/relation-hydrator.d.ts +0 -68
  606. package/cjs/relations/relation-hydrator.d.ts.map +0 -1
  607. package/cjs/relations/relation-hydrator.js +0 -81
  608. package/cjs/relations/relation-hydrator.js.map +0 -1
  609. package/cjs/relations/relation-loader.d.ts +0 -194
  610. package/cjs/relations/relation-loader.d.ts.map +0 -1
  611. package/cjs/relations/relation-loader.js +0 -466
  612. package/cjs/relations/relation-loader.js.map +0 -1
  613. package/cjs/relations/types.d.ts +0 -306
  614. package/cjs/relations/types.d.ts.map +0 -1
  615. package/cjs/remover/database-remover.d.ts +0 -100
  616. package/cjs/remover/database-remover.d.ts.map +0 -1
  617. package/cjs/remover/database-remover.js +0 -214
  618. package/cjs/remover/database-remover.js.map +0 -1
  619. package/cjs/restorer/database-restorer.d.ts +0 -131
  620. package/cjs/restorer/database-restorer.d.ts.map +0 -1
  621. package/cjs/restorer/database-restorer.js +0 -434
  622. package/cjs/restorer/database-restorer.js.map +0 -1
  623. package/cjs/sql-database-dirty-tracker.d.ts +0 -13
  624. package/cjs/sql-database-dirty-tracker.d.ts.map +0 -1
  625. package/cjs/sql-database-dirty-tracker.js +0 -14
  626. package/cjs/sql-database-dirty-tracker.js.map +0 -1
  627. package/cjs/sync/index.d.ts +0 -12
  628. package/cjs/sync/index.d.ts.map +0 -1
  629. package/cjs/sync/model-events.d.ts +0 -62
  630. package/cjs/sync/model-events.d.ts.map +0 -1
  631. package/cjs/sync/model-events.js +0 -49
  632. package/cjs/sync/model-events.js.map +0 -1
  633. package/cjs/sync/model-sync-operation.d.ts +0 -163
  634. package/cjs/sync/model-sync-operation.d.ts.map +0 -1
  635. package/cjs/sync/model-sync-operation.js +0 -292
  636. package/cjs/sync/model-sync-operation.js.map +0 -1
  637. package/cjs/sync/model-sync.d.ts +0 -130
  638. package/cjs/sync/model-sync.d.ts.map +0 -1
  639. package/cjs/sync/model-sync.js +0 -178
  640. package/cjs/sync/model-sync.js.map +0 -1
  641. package/cjs/sync/sync-context.d.ts +0 -70
  642. package/cjs/sync/sync-context.d.ts.map +0 -1
  643. package/cjs/sync/sync-context.js +0 -101
  644. package/cjs/sync/sync-context.js.map +0 -1
  645. package/cjs/sync/sync-manager.d.ts +0 -213
  646. package/cjs/sync/sync-manager.d.ts.map +0 -1
  647. package/cjs/sync/sync-manager.js +0 -689
  648. package/cjs/sync/sync-manager.js.map +0 -1
  649. package/cjs/sync/types.d.ts +0 -289
  650. package/cjs/sync/types.d.ts.map +0 -1
  651. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  652. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  653. package/cjs/types.d.ts +0 -371
  654. package/cjs/types.d.ts.map +0 -1
  655. package/cjs/utils/connect-to-database.d.ts +0 -307
  656. package/cjs/utils/connect-to-database.d.ts.map +0 -1
  657. package/cjs/utils/connect-to-database.js +0 -130
  658. package/cjs/utils/connect-to-database.js.map +0 -1
  659. package/cjs/utils/database-writer.utils.d.ts +0 -15
  660. package/cjs/utils/database-writer.utils.d.ts.map +0 -1
  661. package/cjs/utils/database-writer.utils.js +0 -14
  662. package/cjs/utils/database-writer.utils.js.map +0 -1
  663. package/cjs/utils/define-model.js +0 -100
  664. package/cjs/utils/define-model.js.map +0 -1
  665. package/cjs/utils/is-valid-date-value.d.ts +0 -5
  666. package/cjs/utils/is-valid-date-value.d.ts.map +0 -1
  667. package/cjs/utils/is-valid-date-value.js +0 -25
  668. package/cjs/utils/is-valid-date-value.js.map +0 -1
  669. package/cjs/utils/once-connected.d.ts +0 -146
  670. package/cjs/utils/once-connected.d.ts.map +0 -1
  671. package/cjs/utils/once-connected.js +0 -251
  672. package/cjs/utils/once-connected.js.map +0 -1
  673. package/cjs/validation/database-seal-plugins.d.ts +0 -12
  674. package/cjs/validation/database-seal-plugins.d.ts.map +0 -1
  675. package/cjs/validation/database-seal-plugins.js +0 -1
  676. package/cjs/validation/database-seal-plugins.js.map +0 -1
  677. package/cjs/validation/database-writer-validation-error.d.ts +0 -97
  678. package/cjs/validation/database-writer-validation-error.d.ts.map +0 -1
  679. package/cjs/validation/database-writer-validation-error.js +0 -160
  680. package/cjs/validation/database-writer-validation-error.js.map +0 -1
  681. package/cjs/validation/index.d.ts +0 -3
  682. package/cjs/validation/index.d.ts.map +0 -1
  683. package/cjs/validation/mutators/embed-mutator.d.ts +0 -9
  684. package/cjs/validation/mutators/embed-mutator.d.ts.map +0 -1
  685. package/cjs/validation/mutators/embed-mutator.js +0 -33
  686. package/cjs/validation/mutators/embed-mutator.js.map +0 -1
  687. package/cjs/validation/plugins/embed-validator-plugin.d.ts +0 -24
  688. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  689. package/cjs/validation/plugins/embed-validator-plugin.js +0 -18
  690. package/cjs/validation/plugins/embed-validator-plugin.js.map +0 -1
  691. package/cjs/validation/rules/database-model-rule.d.ts +0 -7
  692. package/cjs/validation/rules/database-model-rule.d.ts.map +0 -1
  693. package/cjs/validation/rules/database-model-rule.js +0 -27
  694. package/cjs/validation/rules/database-model-rule.js.map +0 -1
  695. package/cjs/validation/transformers/embed-model-transformer.d.ts +0 -3
  696. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  697. package/cjs/validation/transformers/embed-model-transformer.js +0 -18
  698. package/cjs/validation/transformers/embed-model-transformer.js.map +0 -1
  699. package/cjs/validation/validators/embed-validator.d.ts +0 -21
  700. package/cjs/validation/validators/embed-validator.d.ts.map +0 -1
  701. package/cjs/validation/validators/embed-validator.js +0 -43
  702. package/cjs/validation/validators/embed-validator.js.map +0 -1
  703. package/cjs/writer/database-writer.d.ts +0 -174
  704. package/cjs/writer/database-writer.d.ts.map +0 -1
  705. package/cjs/writer/database-writer.js +0 -400
  706. package/cjs/writer/database-writer.js.map +0 -1
  707. package/esm/context/database-data-source-context.d.ts +0 -29
  708. package/esm/context/database-data-source-context.d.ts.map +0 -1
  709. package/esm/context/database-data-source-context.js +0 -28
  710. package/esm/context/database-data-source-context.js.map +0 -1
  711. package/esm/context/database-transaction-context.d.ts +0 -35
  712. package/esm/context/database-transaction-context.d.ts.map +0 -1
  713. package/esm/context/database-transaction-context.js +0 -40
  714. package/esm/context/database-transaction-context.js.map +0 -1
  715. package/esm/contracts/database-driver.contract.d.ts +0 -450
  716. package/esm/contracts/database-driver.contract.d.ts.map +0 -1
  717. package/esm/contracts/database-id-generator.contract.d.ts +0 -109
  718. package/esm/contracts/database-id-generator.contract.d.ts.map +0 -1
  719. package/esm/contracts/database-remover.contract.d.ts +0 -104
  720. package/esm/contracts/database-remover.contract.d.ts.map +0 -1
  721. package/esm/contracts/database-restorer.contract.d.ts +0 -143
  722. package/esm/contracts/database-restorer.contract.d.ts.map +0 -1
  723. package/esm/contracts/database-writer.contract.d.ts +0 -119
  724. package/esm/contracts/database-writer.contract.d.ts.map +0 -1
  725. package/esm/contracts/driver-blueprint.contract.d.ts +0 -49
  726. package/esm/contracts/driver-blueprint.contract.d.ts.map +0 -1
  727. package/esm/contracts/index.d.ts +0 -10
  728. package/esm/contracts/index.d.ts.map +0 -1
  729. package/esm/contracts/migration-driver.contract.d.ts +0 -522
  730. package/esm/contracts/migration-driver.contract.d.ts.map +0 -1
  731. package/esm/contracts/query-builder.contract.d.ts +0 -1609
  732. package/esm/contracts/query-builder.contract.d.ts.map +0 -1
  733. package/esm/contracts/sync-adapter.contract.d.ts +0 -58
  734. package/esm/contracts/sync-adapter.contract.d.ts.map +0 -1
  735. package/esm/data-source/data-source-registry.d.ts +0 -108
  736. package/esm/data-source/data-source-registry.d.ts.map +0 -1
  737. package/esm/data-source/data-source-registry.js +0 -145
  738. package/esm/data-source/data-source-registry.js.map +0 -1
  739. package/esm/data-source/data-source.d.ts +0 -147
  740. package/esm/data-source/data-source.d.ts.map +0 -1
  741. package/esm/data-source/data-source.js +0 -83
  742. package/esm/data-source/data-source.js.map +0 -1
  743. package/esm/database-dirty-tracker.d.ts +0 -252
  744. package/esm/database-dirty-tracker.d.ts.map +0 -1
  745. package/esm/database-dirty-tracker.js +0 -386
  746. package/esm/database-dirty-tracker.js.map +0 -1
  747. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  748. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  749. package/esm/drivers/mongodb/mongodb-blueprint.js +0 -51
  750. package/esm/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  751. package/esm/drivers/mongodb/mongodb-driver.d.ts +0 -325
  752. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  753. package/esm/drivers/mongodb/mongodb-driver.js +0 -845
  754. package/esm/drivers/mongodb/mongodb-driver.js.map +0 -1
  755. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  756. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  757. package/esm/drivers/mongodb/mongodb-id-generator.js +0 -149
  758. package/esm/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  759. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  760. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  761. package/esm/drivers/mongodb/mongodb-migration-driver.js +0 -666
  762. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  763. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  764. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  765. package/esm/drivers/mongodb/mongodb-query-builder.js +0 -1988
  766. package/esm/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  767. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  768. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  769. package/esm/drivers/mongodb/mongodb-query-operations.js +0 -270
  770. package/esm/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  771. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  772. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  773. package/esm/drivers/mongodb/mongodb-query-parser.js +0 -1351
  774. package/esm/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  775. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  776. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  777. package/esm/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  778. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  779. package/esm/drivers/mongodb/types.d.ts +0 -43
  780. package/esm/drivers/mongodb/types.d.ts.map +0 -1
  781. package/esm/drivers/postgres/index.d.ts +0 -16
  782. package/esm/drivers/postgres/index.d.ts.map +0 -1
  783. package/esm/drivers/postgres/postgres-blueprint.d.ts +0 -64
  784. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  785. package/esm/drivers/postgres/postgres-blueprint.js +0 -121
  786. package/esm/drivers/postgres/postgres-blueprint.js.map +0 -1
  787. package/esm/drivers/postgres/postgres-dialect.d.ts +0 -136
  788. package/esm/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  789. package/esm/drivers/postgres/postgres-dialect.js +0 -268
  790. package/esm/drivers/postgres/postgres-dialect.js.map +0 -1
  791. package/esm/drivers/postgres/postgres-driver.d.ts +0 -432
  792. package/esm/drivers/postgres/postgres-driver.d.ts.map +0 -1
  793. package/esm/drivers/postgres/postgres-driver.js +0 -1008
  794. package/esm/drivers/postgres/postgres-driver.js.map +0 -1
  795. package/esm/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  796. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  797. package/esm/drivers/postgres/postgres-migration-driver.js +0 -900
  798. package/esm/drivers/postgres/postgres-migration-driver.js.map +0 -1
  799. package/esm/drivers/postgres/postgres-query-builder.d.ts +0 -254
  800. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  801. package/esm/drivers/postgres/postgres-query-builder.js +0 -933
  802. package/esm/drivers/postgres/postgres-query-builder.js.map +0 -1
  803. package/esm/drivers/postgres/postgres-query-parser.d.ts +0 -328
  804. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  805. package/esm/drivers/postgres/postgres-query-parser.js +0 -868
  806. package/esm/drivers/postgres/postgres-query-parser.js.map +0 -1
  807. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  808. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  809. package/esm/drivers/postgres/postgres-sql-serializer.js +0 -400
  810. package/esm/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  811. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  812. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  813. package/esm/drivers/postgres/postgres-sync-adapter.js +0 -204
  814. package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  815. package/esm/drivers/postgres/types.d.ts +0 -144
  816. package/esm/drivers/postgres/types.d.ts.map +0 -1
  817. package/esm/drivers/sql/index.d.ts +0 -10
  818. package/esm/drivers/sql/index.d.ts.map +0 -1
  819. package/esm/drivers/sql/sql-dialect.contract.d.ts +0 -204
  820. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  821. package/esm/drivers/sql/sql-types.d.ts +0 -202
  822. package/esm/drivers/sql/sql-types.d.ts.map +0 -1
  823. package/esm/errors/missing-data-source.error.d.ts +0 -22
  824. package/esm/errors/missing-data-source.error.d.ts.map +0 -1
  825. package/esm/errors/missing-data-source.error.js +0 -29
  826. package/esm/errors/missing-data-source.error.js.map +0 -1
  827. package/esm/errors/transaction-rollback.error.d.ts +0 -20
  828. package/esm/errors/transaction-rollback.error.d.ts.map +0 -1
  829. package/esm/errors/transaction-rollback.error.js +0 -27
  830. package/esm/errors/transaction-rollback.error.js.map +0 -1
  831. package/esm/events/model-events.d.ts +0 -231
  832. package/esm/events/model-events.d.ts.map +0 -1
  833. package/esm/events/model-events.js +0 -259
  834. package/esm/events/model-events.js.map +0 -1
  835. package/esm/expressions/aggregate-expressions.d.ts +0 -215
  836. package/esm/expressions/aggregate-expressions.d.ts.map +0 -1
  837. package/esm/expressions/aggregate-expressions.js +0 -221
  838. package/esm/expressions/aggregate-expressions.js.map +0 -1
  839. package/esm/expressions/index.d.ts +0 -2
  840. package/esm/expressions/index.d.ts.map +0 -1
  841. package/esm/index.d.ts +0 -45
  842. package/esm/index.d.ts.map +0 -1
  843. package/esm/index.js +0 -1
  844. package/esm/index.js.map +0 -1
  845. package/esm/migration/column-builder.d.ts +0 -417
  846. package/esm/migration/column-builder.d.ts.map +0 -1
  847. package/esm/migration/column-builder.js +0 -586
  848. package/esm/migration/column-builder.js.map +0 -1
  849. package/esm/migration/column-helpers.d.ts +0 -275
  850. package/esm/migration/column-helpers.d.ts.map +0 -1
  851. package/esm/migration/column-helpers.js +0 -389
  852. package/esm/migration/column-helpers.js.map +0 -1
  853. package/esm/migration/foreign-key-builder.d.ts +0 -103
  854. package/esm/migration/foreign-key-builder.d.ts.map +0 -1
  855. package/esm/migration/foreign-key-builder.js +0 -121
  856. package/esm/migration/foreign-key-builder.js.map +0 -1
  857. package/esm/migration/index.d.ts +0 -7
  858. package/esm/migration/index.d.ts.map +0 -1
  859. package/esm/migration/migration-runner.d.ts +0 -278
  860. package/esm/migration/migration-runner.d.ts.map +0 -1
  861. package/esm/migration/migration-runner.js +0 -815
  862. package/esm/migration/migration-runner.js.map +0 -1
  863. package/esm/migration/migration.d.ts +0 -1988
  864. package/esm/migration/migration.d.ts.map +0 -1
  865. package/esm/migration/migration.js +0 -2162
  866. package/esm/migration/migration.js.map +0 -1
  867. package/esm/migration/sql-grammar.d.ts +0 -61
  868. package/esm/migration/sql-grammar.d.ts.map +0 -1
  869. package/esm/migration/sql-grammar.js +0 -164
  870. package/esm/migration/sql-grammar.js.map +0 -1
  871. package/esm/migration/sql-serializer.d.ts +0 -22
  872. package/esm/migration/sql-serializer.d.ts.map +0 -1
  873. package/esm/migration/sql-serializer.js +0 -26
  874. package/esm/migration/sql-serializer.js.map +0 -1
  875. package/esm/migration/types.d.ts +0 -155
  876. package/esm/migration/types.d.ts.map +0 -1
  877. package/esm/model/methods/accessor-methods.d.ts +0 -13
  878. package/esm/model/methods/accessor-methods.d.ts.map +0 -1
  879. package/esm/model/methods/accessor-methods.js +0 -51
  880. package/esm/model/methods/accessor-methods.js.map +0 -1
  881. package/esm/model/methods/delete-methods.d.ts +0 -10
  882. package/esm/model/methods/delete-methods.d.ts.map +0 -1
  883. package/esm/model/methods/delete-methods.js +0 -10
  884. package/esm/model/methods/delete-methods.js.map +0 -1
  885. package/esm/model/methods/dirty-methods.d.ts +0 -10
  886. package/esm/model/methods/dirty-methods.d.ts.map +0 -1
  887. package/esm/model/methods/dirty-methods.js +0 -15
  888. package/esm/model/methods/dirty-methods.js.map +0 -1
  889. package/esm/model/methods/hydration-methods.d.ts +0 -10
  890. package/esm/model/methods/hydration-methods.d.ts.map +0 -1
  891. package/esm/model/methods/hydration-methods.js +0 -57
  892. package/esm/model/methods/hydration-methods.js.map +0 -1
  893. package/esm/model/methods/instance-event-methods.d.ts +0 -7
  894. package/esm/model/methods/instance-event-methods.d.ts.map +0 -1
  895. package/esm/model/methods/instance-event-methods.js +0 -15
  896. package/esm/model/methods/instance-event-methods.js.map +0 -1
  897. package/esm/model/methods/meta-methods.d.ts +0 -7
  898. package/esm/model/methods/meta-methods.d.ts.map +0 -1
  899. package/esm/model/methods/meta-methods.js +0 -78
  900. package/esm/model/methods/meta-methods.js.map +0 -1
  901. package/esm/model/methods/query-methods.d.ts +0 -24
  902. package/esm/model/methods/query-methods.d.ts.map +0 -1
  903. package/esm/model/methods/query-methods.js +0 -164
  904. package/esm/model/methods/query-methods.js.map +0 -1
  905. package/esm/model/methods/restore-methods.d.ts +0 -10
  906. package/esm/model/methods/restore-methods.d.ts.map +0 -1
  907. package/esm/model/methods/restore-methods.js +0 -13
  908. package/esm/model/methods/restore-methods.js.map +0 -1
  909. package/esm/model/methods/scope-methods.d.ts +0 -7
  910. package/esm/model/methods/scope-methods.d.ts.map +0 -1
  911. package/esm/model/methods/scope-methods.js +0 -15
  912. package/esm/model/methods/scope-methods.js.map +0 -1
  913. package/esm/model/methods/serialization-methods.d.ts +0 -3
  914. package/esm/model/methods/serialization-methods.d.ts.map +0 -1
  915. package/esm/model/methods/serialization-methods.js +0 -27
  916. package/esm/model/methods/serialization-methods.js.map +0 -1
  917. package/esm/model/methods/static-event-methods.d.ts +0 -9
  918. package/esm/model/methods/static-event-methods.d.ts.map +0 -1
  919. package/esm/model/methods/static-event-methods.js +0 -29
  920. package/esm/model/methods/static-event-methods.js.map +0 -1
  921. package/esm/model/methods/write-methods.d.ts +0 -10
  922. package/esm/model/methods/write-methods.d.ts.map +0 -1
  923. package/esm/model/methods/write-methods.js +0 -52
  924. package/esm/model/methods/write-methods.js.map +0 -1
  925. package/esm/model/model.d.ts +0 -1647
  926. package/esm/model/model.d.ts.map +0 -1
  927. package/esm/model/model.js +0 -1657
  928. package/esm/model/model.js.map +0 -1
  929. package/esm/model/model.types.d.ts +0 -44
  930. package/esm/model/model.types.d.ts.map +0 -1
  931. package/esm/model/register-model.d.ts +0 -81
  932. package/esm/model/register-model.d.ts.map +0 -1
  933. package/esm/model/register-model.js +0 -94
  934. package/esm/model/register-model.js.map +0 -1
  935. package/esm/query-builder/query-builder.d.ts +0 -556
  936. package/esm/query-builder/query-builder.d.ts.map +0 -1
  937. package/esm/query-builder/query-builder.js +0 -1070
  938. package/esm/query-builder/query-builder.js.map +0 -1
  939. package/esm/relations/helpers.d.ts +0 -156
  940. package/esm/relations/helpers.d.ts.map +0 -1
  941. package/esm/relations/helpers.js +0 -202
  942. package/esm/relations/helpers.js.map +0 -1
  943. package/esm/relations/index.d.ts +0 -35
  944. package/esm/relations/index.d.ts.map +0 -1
  945. package/esm/relations/pivot-operations.d.ts +0 -160
  946. package/esm/relations/pivot-operations.d.ts.map +0 -1
  947. package/esm/relations/pivot-operations.js +0 -293
  948. package/esm/relations/pivot-operations.js.map +0 -1
  949. package/esm/relations/relation-hydrator.d.ts +0 -68
  950. package/esm/relations/relation-hydrator.d.ts.map +0 -1
  951. package/esm/relations/relation-hydrator.js +0 -81
  952. package/esm/relations/relation-hydrator.js.map +0 -1
  953. package/esm/relations/relation-loader.d.ts +0 -194
  954. package/esm/relations/relation-loader.d.ts.map +0 -1
  955. package/esm/relations/relation-loader.js +0 -466
  956. package/esm/relations/relation-loader.js.map +0 -1
  957. package/esm/relations/types.d.ts +0 -306
  958. package/esm/relations/types.d.ts.map +0 -1
  959. package/esm/remover/database-remover.d.ts +0 -100
  960. package/esm/remover/database-remover.d.ts.map +0 -1
  961. package/esm/remover/database-remover.js +0 -214
  962. package/esm/remover/database-remover.js.map +0 -1
  963. package/esm/restorer/database-restorer.d.ts +0 -131
  964. package/esm/restorer/database-restorer.d.ts.map +0 -1
  965. package/esm/restorer/database-restorer.js +0 -434
  966. package/esm/restorer/database-restorer.js.map +0 -1
  967. package/esm/sql-database-dirty-tracker.d.ts +0 -13
  968. package/esm/sql-database-dirty-tracker.d.ts.map +0 -1
  969. package/esm/sql-database-dirty-tracker.js +0 -14
  970. package/esm/sql-database-dirty-tracker.js.map +0 -1
  971. package/esm/sync/index.d.ts +0 -12
  972. package/esm/sync/index.d.ts.map +0 -1
  973. package/esm/sync/model-events.d.ts +0 -62
  974. package/esm/sync/model-events.d.ts.map +0 -1
  975. package/esm/sync/model-events.js +0 -49
  976. package/esm/sync/model-events.js.map +0 -1
  977. package/esm/sync/model-sync-operation.d.ts +0 -163
  978. package/esm/sync/model-sync-operation.d.ts.map +0 -1
  979. package/esm/sync/model-sync-operation.js +0 -292
  980. package/esm/sync/model-sync-operation.js.map +0 -1
  981. package/esm/sync/model-sync.d.ts +0 -130
  982. package/esm/sync/model-sync.d.ts.map +0 -1
  983. package/esm/sync/model-sync.js +0 -178
  984. package/esm/sync/model-sync.js.map +0 -1
  985. package/esm/sync/sync-context.d.ts +0 -70
  986. package/esm/sync/sync-context.d.ts.map +0 -1
  987. package/esm/sync/sync-context.js +0 -101
  988. package/esm/sync/sync-context.js.map +0 -1
  989. package/esm/sync/sync-manager.d.ts +0 -213
  990. package/esm/sync/sync-manager.d.ts.map +0 -1
  991. package/esm/sync/sync-manager.js +0 -689
  992. package/esm/sync/sync-manager.js.map +0 -1
  993. package/esm/sync/types.d.ts +0 -289
  994. package/esm/sync/types.d.ts.map +0 -1
  995. package/esm/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  996. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  997. package/esm/types.d.ts +0 -371
  998. package/esm/types.d.ts.map +0 -1
  999. package/esm/utils/connect-to-database.d.ts +0 -307
  1000. package/esm/utils/connect-to-database.d.ts.map +0 -1
  1001. package/esm/utils/connect-to-database.js +0 -130
  1002. package/esm/utils/connect-to-database.js.map +0 -1
  1003. package/esm/utils/database-writer.utils.d.ts +0 -15
  1004. package/esm/utils/database-writer.utils.d.ts.map +0 -1
  1005. package/esm/utils/database-writer.utils.js +0 -14
  1006. package/esm/utils/database-writer.utils.js.map +0 -1
  1007. package/esm/utils/define-model.js +0 -100
  1008. package/esm/utils/define-model.js.map +0 -1
  1009. package/esm/utils/is-valid-date-value.d.ts +0 -5
  1010. package/esm/utils/is-valid-date-value.d.ts.map +0 -1
  1011. package/esm/utils/is-valid-date-value.js +0 -25
  1012. package/esm/utils/is-valid-date-value.js.map +0 -1
  1013. package/esm/utils/once-connected.d.ts +0 -146
  1014. package/esm/utils/once-connected.d.ts.map +0 -1
  1015. package/esm/utils/once-connected.js +0 -251
  1016. package/esm/utils/once-connected.js.map +0 -1
  1017. package/esm/validation/database-seal-plugins.d.ts +0 -12
  1018. package/esm/validation/database-seal-plugins.d.ts.map +0 -1
  1019. package/esm/validation/database-seal-plugins.js +0 -1
  1020. package/esm/validation/database-seal-plugins.js.map +0 -1
  1021. package/esm/validation/database-writer-validation-error.d.ts +0 -97
  1022. package/esm/validation/database-writer-validation-error.d.ts.map +0 -1
  1023. package/esm/validation/database-writer-validation-error.js +0 -160
  1024. package/esm/validation/database-writer-validation-error.js.map +0 -1
  1025. package/esm/validation/index.d.ts +0 -3
  1026. package/esm/validation/index.d.ts.map +0 -1
  1027. package/esm/validation/mutators/embed-mutator.d.ts +0 -9
  1028. package/esm/validation/mutators/embed-mutator.d.ts.map +0 -1
  1029. package/esm/validation/mutators/embed-mutator.js +0 -33
  1030. package/esm/validation/mutators/embed-mutator.js.map +0 -1
  1031. package/esm/validation/plugins/embed-validator-plugin.d.ts +0 -24
  1032. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  1033. package/esm/validation/plugins/embed-validator-plugin.js +0 -18
  1034. package/esm/validation/plugins/embed-validator-plugin.js.map +0 -1
  1035. package/esm/validation/rules/database-model-rule.d.ts +0 -7
  1036. package/esm/validation/rules/database-model-rule.d.ts.map +0 -1
  1037. package/esm/validation/rules/database-model-rule.js +0 -27
  1038. package/esm/validation/rules/database-model-rule.js.map +0 -1
  1039. package/esm/validation/transformers/embed-model-transformer.d.ts +0 -3
  1040. package/esm/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  1041. package/esm/validation/transformers/embed-model-transformer.js +0 -18
  1042. package/esm/validation/transformers/embed-model-transformer.js.map +0 -1
  1043. package/esm/validation/validators/embed-validator.d.ts +0 -21
  1044. package/esm/validation/validators/embed-validator.d.ts.map +0 -1
  1045. package/esm/validation/validators/embed-validator.js +0 -43
  1046. package/esm/validation/validators/embed-validator.js.map +0 -1
  1047. package/esm/writer/database-writer.d.ts +0 -174
  1048. package/esm/writer/database-writer.d.ts.map +0 -1
  1049. package/esm/writer/database-writer.js +0 -400
  1050. package/esm/writer/database-writer.js.map +0 -1
@@ -0,0 +1,1117 @@
1
+ import { CursorPaginationOptions, CursorPaginationResult, DriverQuery, GroupByInput, HavingInput, JoinOptions, OrderDirection, PaginationOptions, PaginationResult, QueryBuilderContract, RawExpression, WhereCallback, WhereObject, WhereOperator } from "../../contracts/query-builder.contract.mjs";
2
+ import { DataSource } from "../../data-source/data-source.mjs";
3
+ import { Operation } from "./types.mjs";
4
+ import { QueryBuilder } from "../../query-builder/query-builder.mjs";
5
+ import { MongoQueryOperations } from "./mongodb-query-operations.mjs";
6
+ import { MongoQueryParser } from "./mongodb-query-parser.mjs";
7
+ import { GenericObject } from "@mongez/reinforcements";
8
+ import { Collection } from "mongodb";
9
+
10
+ //#region ../../@warlock.js/cascade/src/drivers/mongodb/mongodb-query-builder.d.ts
11
+ /**
12
+ * MongoDB-specific query builder implementation using aggregation pipeline.
13
+ */
14
+ declare class MongoQueryBuilder<T = unknown> extends QueryBuilder<T> implements QueryBuilderContract<T> {
15
+ readonly table: string;
16
+ /**
17
+ * Ordered list of operations to be converted to MongoDB aggregation pipeline.
18
+ * Public to allow parser access. Uses MongoDB's own Operation type.
19
+ *
20
+ * NOTE: This shadows the base `operations: Op[]` field intentionally — the Mongo
21
+ * Operation type carries an extra `stage` discriminator used by the pipeline assembler.
22
+ */
23
+ operations: Operation[];
24
+ /**
25
+ * Data source instance
26
+ */
27
+ readonly dataSource: DataSource;
28
+ /**
29
+ * Lazy-loaded operations helper for constructing pipeline operations.
30
+ */
31
+ protected _operationsHelper?: MongoQueryOperations;
32
+ hydrateCallback?: (data: any, index: number) => any;
33
+ private fetchingCallback?;
34
+ private hydratingCallback?;
35
+ private fetchedCallback?;
36
+ /**
37
+ * Create a new query builder for the given collection.
38
+ * @param collection - The MongoDB collection to query
39
+ */
40
+ constructor(table: string, dataSource?: DataSource);
41
+ /**
42
+ * Gets the operations helper instance, creating it if needed.
43
+ * @returns The operations helper instance
44
+ */
45
+ protected get operationsHelper(): MongoQueryOperations;
46
+ /**
47
+ * Get collection instance
48
+ */
49
+ get collection(): Collection;
50
+ /**
51
+ * Add hydrate callback function
52
+ */
53
+ hydrate(callback: (data: any, index: number) => any): this;
54
+ /**
55
+ * Register a callback to be invoked before query execution
56
+ * @returns Unsubscribe function to remove the callback
57
+ */
58
+ onFetching(callback: (query: this) => void | Promise<void>): () => void;
59
+ /**
60
+ * Register a callback to be invoked after records are fetched but before hydration
61
+ * @returns Unsubscribe function to remove the callback
62
+ */
63
+ onHydrating(callback: (records: any[], context: any) => void | Promise<void>): () => void;
64
+ /**
65
+ * Register a callback to be invoked after records are fetched and hydrated
66
+ * @returns Unsubscribe function to remove the callback
67
+ */
68
+ onFetched(callback: (records: any[], context: any) => void | Promise<void>): () => void;
69
+ /**
70
+ * Disable one or more global scopes for this query
71
+ */
72
+ withoutGlobalScope(...scopeNames: string[]): this;
73
+ /**
74
+ * Disable all global scopes for this query
75
+ */
76
+ withoutGlobalScopes(): this;
77
+ /**
78
+ * Apply a local scope to this query
79
+ */
80
+ scope(scopeName: string, ...args: any[]): this;
81
+ /**
82
+ * Apply pending global scopes before query execution
83
+ */
84
+ private applyPendingScopes;
85
+ /**
86
+ * Adds a WHERE clause to filter documents. Supports equality, operators, objects, or callbacks.
87
+ * @param field - Field name, or conditions object, or callback
88
+ * @param operator - Comparison operator
89
+ * @param value - Value to compare
90
+ */
91
+ where(field: string, value: unknown): this;
92
+ where(field: string, operator: WhereOperator, value: unknown): this;
93
+ where(conditions: WhereObject): this;
94
+ where(callback: WhereCallback<T>): this;
95
+ /**
96
+ * Adds an OR WHERE clause. Works like where() but uses OR logic.
97
+ * @param field - Field name, or conditions object, or callback
98
+ * @param operator - Comparison operator
99
+ * @param value - Value to compare
100
+ */
101
+ orWhere(field: string, value: unknown): this;
102
+ orWhere(field: string, operator: WhereOperator, value: unknown): this;
103
+ orWhere(conditions: WhereObject): this;
104
+ orWhere(callback: WhereCallback<T>): this;
105
+ /**
106
+ * Adds a raw WHERE clause using MongoDB's native query syntax.
107
+ * @param expression - Raw MongoDB expression
108
+ * @param bindings - Optional parameter bindings for string expressions
109
+ */
110
+ whereRaw(expression: RawExpression, bindings?: unknown[]): this;
111
+ /**
112
+ * Adds a raw OR WHERE clause using MongoDB's native query syntax.
113
+ * @param expression - Raw MongoDB expression
114
+ * @param bindings - Optional parameter bindings
115
+ */
116
+ orWhereRaw(expression: RawExpression, bindings?: unknown[]): this;
117
+ /**
118
+ * Adds a WHERE clause comparing two columns/fields directly.
119
+ * @param first - The first field name
120
+ * @param operator - The comparison operator
121
+ * @param second - The second field name
122
+ */
123
+ whereColumn(first: string, operator: WhereOperator, second: string): this;
124
+ /**
125
+ * Adds an OR WHERE clause comparing two columns/fields directly.
126
+ * @param first - The first field name
127
+ * @param operator - The comparison operator
128
+ * @param second - The second field name
129
+ */
130
+ orWhereColumn(first: string, operator: WhereOperator, second: string): this;
131
+ /**
132
+ * Adds multiple column comparison clauses at once.
133
+ * @param comparisons - Array of tuples [leftField, operator, rightField]
134
+ */
135
+ whereColumns(comparisons: Array<[left: string, operator: WhereOperator, right: string]>): this;
136
+ /**
137
+ * Filters documents where a field's value falls between two other fields.
138
+ * @param field - The field to check
139
+ * @param lowerColumn - The field defining the lower bound
140
+ * @param upperColumn - The field defining the upper bound
141
+ */
142
+ whereBetweenColumns(field: string, lowerColumn: string, upperColumn: string): this;
143
+ /**
144
+ * Filters documents where a date field matches the given date (ignoring time).
145
+ * @param field - The date field name
146
+ * @param value - The date to match
147
+ */
148
+ whereDate(field: string, value: Date | string): this;
149
+ /**
150
+ * Alias for `whereDate()`. Filters by exact date match (ignoring time).
151
+ * @param field - The date field name
152
+ * @param value - The date to match
153
+ */
154
+ whereDateEquals(field: string, value: Date | string): this;
155
+ /**
156
+ * Filters documents where a date field is before the given date.
157
+ * @param field - The date field name
158
+ * @param value - The cutoff date
159
+ */
160
+ whereDateBefore(field: string, value: Date | string): this;
161
+ /**
162
+ * Filters documents where a date field is after the given date.
163
+ * @param field - The date field name
164
+ * @param value - The cutoff date
165
+ */
166
+ whereDateAfter(field: string, value: Date | string): this;
167
+ /**
168
+ * Filters documents where a time field matches the given time (HH:MM:SS format).
169
+ * @param field - The time/datetime field name
170
+ * @param value - The time string in HH:MM:SS format
171
+ */
172
+ whereTime(field: string, value: string): this;
173
+ /**
174
+ * Filters documents where the day of the month matches the given value (1-31).
175
+ * @param field - The date field name
176
+ * @param value - The day of the month
177
+ */
178
+ whereDay(field: string, value: number): this;
179
+ /**
180
+ * Filters documents where the month matches the given value (1-12).
181
+ * @param field - The date field name
182
+ * @param value - The month number
183
+ */
184
+ whereMonth(field: string, value: number): this;
185
+ /**
186
+ * Filters documents where the year matches the given value.
187
+ * @param field - The date field name
188
+ * @param value - The year
189
+ */
190
+ whereYear(field: string, value: number): this;
191
+ /**
192
+ * Filters documents where a JSON field contains the specified value.
193
+ * @param path - The JSON path to check
194
+ * @param value - The value to search for
195
+ */
196
+ whereJsonContains(path: string, value: unknown): this;
197
+ /**
198
+ * Filters documents where a JSON field does NOT contain the specified value.
199
+ * @param path - The JSON path to check
200
+ * @param value - The value to exclude
201
+ */
202
+ whereJsonDoesntContain(path: string, value: unknown): this;
203
+ /**
204
+ * Filters documents where a JSON field contains a specific key.
205
+ * @param path - The JSON path to check for key existence
206
+ */
207
+ whereJsonContainsKey(path: string): this;
208
+ /**
209
+ * Filters documents where a JSON array or string has a specific length.
210
+ * @param path - The JSON path to check
211
+ * @param operator - The comparison operator
212
+ * @param value - The length value to compare against
213
+ */
214
+ whereJsonLength(path: string, operator: WhereOperator, value: number): this;
215
+ /**
216
+ * Filters documents where a JSON field is an array.
217
+ * @param path - The JSON path to check
218
+ */
219
+ whereJsonIsArray(path: string): this;
220
+ /**
221
+ * Filters documents where a JSON field is an object.
222
+ * @param path - The JSON path to check
223
+ */
224
+ whereJsonIsObject(path: string): this;
225
+ /**
226
+ * Filters documents where an array field has a specific length.
227
+ * @param field - The array field name
228
+ * @param operator - The comparison operator
229
+ * @param value - The length value to compare against
230
+ */
231
+ whereArrayLength(field: string, operator: WhereOperator, value: number): this;
232
+ /**
233
+ * Filters documents by ID (convenience method for `where("id", value)`).
234
+ * @param value - The ID value to match
235
+ */
236
+ whereId(value: string | number): this;
237
+ /**
238
+ * Filters documents by multiple IDs (convenience method for `whereIn("id", values)`).
239
+ * @param values - Array of ID values to match
240
+ */
241
+ whereIds(values: Array<string | number>): this;
242
+ /**
243
+ * Filters documents by UUID (convenience method for `where("uuid", value)`).
244
+ * @param value - The UUID string to match
245
+ */
246
+ whereUuid(value: string): this;
247
+ /**
248
+ * Filters documents by ULID (convenience method for `where("ulid", value)`).
249
+ * @param value - The ULID string to match
250
+ */
251
+ whereUlid(value: string): this;
252
+ /**
253
+ * Performs full-text search on one or more fields.
254
+ * @param fields - Field name or array of field names to search
255
+ * @param query - The search query string
256
+ */
257
+ whereFullText(fields: string | string[], query: string): this;
258
+ /**
259
+ * Performs full-text search with OR logic.
260
+ * @param fields - Field name or array of field names to search
261
+ * @param query - The search query string
262
+ */
263
+ orWhereFullText(fields: string | string[], query: string): this;
264
+ /**
265
+ * Alias for `whereFullText()` with a single field.
266
+ * @param field - The field name to search
267
+ * @param query - The search query string
268
+ */
269
+ whereSearch(field: string, query: string): this;
270
+ /**
271
+ * Negates a set of conditions using a callback.
272
+ * @param callback - Callback function defining conditions to negate
273
+ */
274
+ whereNot(callback: WhereCallback<T>): this;
275
+ /**
276
+ * Negates a set of conditions with OR logic.
277
+ * @param callback - Callback function defining conditions to negate
278
+ */
279
+ orWhereNot(callback: WhereCallback<T>): this;
280
+ /**
281
+ * Filters documents where a field's value matches any value in the given array.
282
+ * @param field - The field name to check
283
+ * @param values - Array of values to match against
284
+ */
285
+ whereIn(field: string, values: unknown[]): this;
286
+ /**
287
+ * Filters documents where a field's value does NOT match any value in the array.
288
+ * @param field - The field name to check
289
+ * @param values - Array of values to exclude
290
+ */
291
+ whereNotIn(field: string, values: unknown[]): this;
292
+ /**
293
+ * Filters documents where a field's value is null or undefined.
294
+ * @param field - The field name to check
295
+ */
296
+ whereNull(field: string): this;
297
+ /**
298
+ * Filters documents where a field's value is NOT null or undefined.
299
+ * @param field - The field name to check
300
+ */
301
+ whereNotNull(field: string): this;
302
+ /**
303
+ * Filters documents where a field's value falls within the given range (inclusive).
304
+ * @param field - The field name to check
305
+ * @param range - Tuple of [min, max] values
306
+ */
307
+ whereBetween(field: string, range: [unknown, unknown]): this;
308
+ /**
309
+ * Filters documents where a field's value is NOT within the given range.
310
+ * @param field - The field name to check
311
+ * @param range - Tuple of [min, max] values to exclude
312
+ */
313
+ whereNotBetween(field: string, range: [unknown, unknown]): this;
314
+ /**
315
+ * Filters documents where a field matches the given pattern (case-insensitive).
316
+ * @param field - The field name to search
317
+ * @param pattern - The pattern to match
318
+ */
319
+ whereLike(field: string, pattern: RegExp | string): this;
320
+ /**
321
+ * Filters documents where a field does NOT match the given pattern.
322
+ * @param field - The field name to search
323
+ * @param pattern - The pattern to exclude
324
+ */
325
+ whereNotLike(field: string, pattern: RegExp | string): this;
326
+ /**
327
+ * Filters documents where a field's value starts with the given prefix.
328
+ * @param field - The field name to check
329
+ * @param value - The prefix to match
330
+ */
331
+ whereStartsWith(field: string, value: string | number): this;
332
+ /**
333
+ * Filters documents where a field's value does NOT start with the given prefix.
334
+ * @param field - The field name to check
335
+ * @param value - The prefix to exclude
336
+ */
337
+ whereNotStartsWith(field: string, value: string | number): this;
338
+ /**
339
+ * Filters documents where a field's value ends with the given suffix.
340
+ * @param field - The field name to check
341
+ * @param value - The suffix to match
342
+ */
343
+ whereEndsWith(field: string, value: string | number): this;
344
+ /**
345
+ * Filters documents where a field's value does NOT end with the given suffix.
346
+ * @param field - The field name to check
347
+ * @param value - The suffix to exclude
348
+ */
349
+ whereNotEndsWith(field: string, value: string | number): this;
350
+ /**
351
+ * Filters documents where a date field falls within the given date range.
352
+ * @param field - The date field name
353
+ * @param range - Tuple of [startDate, endDate]
354
+ */
355
+ whereDateBetween(field: string, range: [Date, Date]): this;
356
+ /**
357
+ * Filters documents where a date field is NOT within the given date range.
358
+ * @param field - The date field name
359
+ * @param range - Tuple of [startDate, endDate] to exclude
360
+ */
361
+ whereDateNotBetween(field: string, range: [Date, Date]): this;
362
+ /**
363
+ * Filters documents where a field exists (has any value including null).
364
+ * @param field - The field name to check for existence
365
+ * @param callback - Optional callback for subquery existence
366
+ */
367
+ whereExists(field: string): this;
368
+ whereExists(callback: WhereCallback<T>): this;
369
+ /**
370
+ * Filters documents where a field does NOT exist in the document.
371
+ * @param field - The field name to check for absence
372
+ * @param callback - Optional callback for subquery non-existence
373
+ */
374
+ whereNotExists(field: string): this;
375
+ whereNotExists(callback: WhereCallback<T>): this;
376
+ /**
377
+ * Filters documents where an array field has a specific size.
378
+ * @param field - The array field name
379
+ * @param size - The exact size to match
380
+ * @param operator - Optional comparison operator
381
+ */
382
+ whereSize(field: string, size: number): this;
383
+ whereSize(field: string, operator: ">" | ">=" | "=" | "<" | "<=", size: number): this;
384
+ /**
385
+ * Performs a full-text search on the specified fields.
386
+ * @param query - The search query string
387
+ * @param filters - Optional additional filter conditions
388
+ */
389
+ textSearch(query: string, filters?: WhereObject): this;
390
+ /**
391
+ * Filters documents where an array field contains the given value.
392
+ * @param field - The array field name
393
+ * @param value - The value to search for in the array
394
+ * @param key - Optional key to check within array objects
395
+ */
396
+ whereArrayContains(field: string, value: unknown, key?: string): this;
397
+ /**
398
+ * Filters documents where an array field does NOT contain the given value.
399
+ * @param field - The array field name
400
+ * @param value - The value to exclude from the array
401
+ * @param key - Optional key to check within array objects
402
+ */
403
+ whereArrayNotContains(field: string, value: unknown, key?: string): this;
404
+ /**
405
+ * Filters documents where an array field contains the value OR is empty.
406
+ * @param field - The array field name
407
+ * @param value - The value to search for
408
+ * @param key - Optional key to check within array objects
409
+ */
410
+ whereArrayHasOrEmpty(field: string, value: unknown, key?: string): this;
411
+ /**
412
+ * Filters documents where an array field does NOT contain the value AND is not empty.
413
+ * @param field - The array field name
414
+ * @param value - The value to exclude
415
+ * @param key - Optional key to check within array objects
416
+ */
417
+ whereArrayNotHaveOrEmpty(field: string, value: unknown, key?: string): this;
418
+ /**
419
+ * Internal helper for processing where clause arguments.
420
+ * @param prefix - The operation prefix
421
+ * @param args - The arguments passed to where/orWhere
422
+ */
423
+ protected addWhereClause(prefix: "where" | "orWhere", args: any[]): void;
424
+ /**
425
+ * Internal helper for adding raw where clauses.
426
+ * @param type - The operation type
427
+ * @param expression - The raw expression in MongoDB query language
428
+ * @param bindings - Optional bindings for the expression
429
+ */
430
+ protected addRawWhere(type: "whereRaw" | "orWhereRaw", expression: RawExpression, bindings?: unknown[]): this;
431
+ /**
432
+ * Normalizes select field arguments into a structured format.
433
+ * @param args - The arguments to normalize
434
+ * @returns Normalized selection object with fields and aliases
435
+ */
436
+ protected normalizeSelectFields(args: any[]): {
437
+ fields?: string[];
438
+ projection?: Record<string, unknown>;
439
+ };
440
+ /**
441
+ * Specifies which fields to include in the query results.
442
+ * Supports arrays, multiple args, or object with aliases/inclusion/exclusion.
443
+ * @param fields - Field names, array, or projection object
444
+ */
445
+ select(fields: string[]): this;
446
+ select(fields: Record<string, 0 | 1 | boolean | string>): this;
447
+ select(...fields: string[]): this;
448
+ /**
449
+ * Selects a field with an alias.
450
+ * @param field - The field to select
451
+ * @param alias - The alias name for the field
452
+ * @returns The query builder instance
453
+ */
454
+ selectAs(field: string, alias: string): this;
455
+ /**
456
+ * Adds a computed field using a raw MongoDB expression.
457
+ * @param expression - The raw MongoDB expression
458
+ * @param bindings - Optional parameter bindings for string expressions
459
+ */
460
+ selectRaw(expression: RawExpression, bindings?: unknown[]): this;
461
+ /**
462
+ * Adds multiple computed fields using raw MongoDB expressions.
463
+ * @param definitions - Array of field definitions with alias, expression, and optional bindings
464
+ */
465
+ selectRawMany(definitions: Array<{
466
+ alias: string;
467
+ expression: RawExpression;
468
+ bindings?: unknown[];
469
+ }>): this;
470
+ /**
471
+ * Adds a subquery as a computed field.
472
+ * @param expression - The subquery expression
473
+ * @param alias - The alias for the computed field
474
+ */
475
+ selectSub(expression: RawExpression, alias: string): this;
476
+ /**
477
+ * Adds an additional subquery field to existing selections.
478
+ * @param expression - The subquery expression
479
+ * @param alias - The alias for the computed field
480
+ */
481
+ addSelectSub(expression: RawExpression, alias: string): this;
482
+ /**
483
+ * Adds an aggregate value as a computed field.
484
+ * @param field - The field to aggregate
485
+ * @param aggregate - The aggregate function to apply
486
+ * @param alias - The alias for the computed field
487
+ */
488
+ selectAggregate(field: string, aggregate: "sum" | "avg" | "min" | "max" | "count" | "first" | "last", alias: string): this;
489
+ /**
490
+ * Adds a boolean field indicating whether a related document exists.
491
+ * @param field - The field to check for existence
492
+ * @param alias - The alias for the boolean field
493
+ */
494
+ selectExists(field: string, alias: string): this;
495
+ /**
496
+ * Adds a count field for a related collection.
497
+ * @param field - The field to count
498
+ * @param alias - The alias for the count field
499
+ */
500
+ selectCount(field: string, alias: string): this;
501
+ /**
502
+ * Adds a CASE-like conditional field using multiple conditions.
503
+ * @param cases - Array of when/then pairs
504
+ * @param otherwise - Default value if no conditions match
505
+ * @param alias - The alias for the computed field
506
+ */
507
+ selectCase(cases: Array<{
508
+ when: RawExpression;
509
+ then: RawExpression | unknown;
510
+ }>, otherwise: RawExpression | unknown, alias: string): this;
511
+ /**
512
+ * Adds a simple conditional field (if/else).
513
+ * @param condition - The condition to evaluate
514
+ * @param thenValue - Value if condition is true
515
+ * @param elseValue - Value if condition is false
516
+ * @param alias - The alias for the computed field
517
+ */
518
+ selectWhen(condition: RawExpression, thenValue: RawExpression | unknown, elseValue: RawExpression | unknown, alias: string): this;
519
+ /**
520
+ * Allows direct manipulation of the MongoDB projection object.
521
+ * @param callback - Function that receives and modifies the projection object
522
+ */
523
+ selectDriverProjection(callback: (projection: Record<string, unknown>) => void): this;
524
+ /**
525
+ * Extracts a JSON field from a document.
526
+ * @param path - The JSON path to extract
527
+ * @param alias - Optional alias for the extracted field
528
+ */
529
+ selectJson(path: string, alias?: string): this;
530
+ /**
531
+ * Extracts a JSON field using a raw MongoDB expression.
532
+ * @param path - The JSON path
533
+ * @param expression - The raw expression for extraction
534
+ * @param alias - The alias for the extracted field
535
+ */
536
+ selectJsonRaw(path: string, expression: RawExpression, alias: string): this;
537
+ /**
538
+ * Excludes a JSON path from the results.
539
+ * @param path - The JSON path to exclude
540
+ */
541
+ deselectJson(path: string): this;
542
+ /**
543
+ * Concatenates multiple fields into a single string field.
544
+ * @param fields - Array of fields or expressions to concatenate
545
+ * @param alias - The alias for the concatenated field
546
+ */
547
+ selectConcat(fields: Array<string | RawExpression>, alias: string): this;
548
+ /**
549
+ * Returns the first non-null value from a list of fields.
550
+ * @param fields - Array of fields to check
551
+ * @param alias - The alias for the coalesced field
552
+ */
553
+ selectCoalesce(fields: Array<string | RawExpression>, alias: string): this;
554
+ /**
555
+ * Adds window function operations to the query.
556
+ * @param spec - The window function specification
557
+ */
558
+ selectWindow(spec: RawExpression): this;
559
+ /**
560
+ * Excludes specific fields from the query results.
561
+ * @param fields - Field names to exclude
562
+ */
563
+ deselect(fields: string[]): this;
564
+ deselect(...fields: Array<string | string[]>): this;
565
+ /**
566
+ * Returns only distinct values for the specified fields.
567
+ * @param fields - Optional field names to use for distinctness
568
+ */
569
+ distinctValues(fields?: string | string[]): this;
570
+ /**
571
+ * Adds additional fields to an existing selection.
572
+ * @param fields - Additional field names to include
573
+ */
574
+ addSelect(fields: string[]): this;
575
+ addSelect(...fields: Array<string | string[]>): this;
576
+ /**
577
+ * Removes all field selection restrictions.
578
+ */
579
+ clearSelect(): this;
580
+ /**
581
+ * Alias for `clearSelect()`. Removes all field restrictions.
582
+ */
583
+ selectAll(): this;
584
+ /**
585
+ * Alias for `clearSelect()`. Resets to default field selection.
586
+ */
587
+ selectDefault(): this;
588
+ /**
589
+ * Orders the query results by a specific field or multiple fields.
590
+ *
591
+ * @param field - The field name to sort by, or an object with multiple fields
592
+ * @param direction - The sort direction (only used when field is a string)
593
+ *
594
+ * @example
595
+ * ```typescript
596
+ * // Single field
597
+ * query.orderBy("createdAt", "desc");
598
+ *
599
+ * // Multiple fields
600
+ * query.orderBy({ id: "asc", age: "desc", createdAt: "desc" });
601
+ * ```
602
+ */
603
+ orderBy(field: string, direction?: OrderDirection): this;
604
+ orderBy(fields: Record<string, OrderDirection>): this;
605
+ /**
606
+ * Orders the query results by a field in descending order.
607
+ * @param field - The field name to sort by
608
+ */
609
+ orderByDesc(field: string): this;
610
+ /**
611
+ * Orders the query results using a raw MongoDB sort expression.
612
+ * @param expression - The raw MongoDB sort expression
613
+ * @param bindings - Optional parameter bindings
614
+ */
615
+ orderByRaw(expression: RawExpression, bindings?: unknown[]): this;
616
+ /**
617
+ * Orders the query results randomly.
618
+ */
619
+ orderByRandom(limit?: number): this;
620
+ /**
621
+ * Orders results by a date field in descending order (newest first).
622
+ * @param column - The date column to sort by
623
+ */
624
+ latest(column?: string): Promise<T[]>;
625
+ /**
626
+ * Orders results by a date field in ascending order (oldest first).
627
+ * @param column - The date column to sort by
628
+ */
629
+ oldest(column?: string): this;
630
+ /**
631
+ * Limits the number of documents returned by the query.
632
+ * @param value - The maximum number of documents to return
633
+ */
634
+ limit(value: number): this;
635
+ /**
636
+ * Skips a specified number of documents in the query results.
637
+ * @param value - The number of documents to skip
638
+ */
639
+ skip(value: number): this;
640
+ /**
641
+ * Alias for `skip()`. Skips a specified number of documents.
642
+ * @param value - The number of documents to skip
643
+ */
644
+ offset(value: number): this;
645
+ /**
646
+ * Alias for `limit()`. Limits the number of documents returned.
647
+ * @param value - The maximum number of documents to return
648
+ */
649
+ take(value: number): this;
650
+ /**
651
+ * Applies cursor-based filtering for pagination.
652
+ * @param after - Cursor value for forward pagination
653
+ * @param before - Cursor value for backward pagination
654
+ */
655
+ cursor(after?: unknown, before?: unknown): this;
656
+ /**
657
+ * Groups documents by one or more fields.
658
+ *
659
+ * @param fields - Field(s) to group by
660
+ * @param aggregates - Optional aggregate operations to perform
661
+ *
662
+ * @example
663
+ * ```typescript
664
+ * import { $agg } from '@warlock.js/cascade';
665
+ *
666
+ * // Simple grouping
667
+ * query.groupBy("type");
668
+ *
669
+ * // Grouping with aggregates
670
+ * query.groupBy("type", {
671
+ * count: $agg.count(),
672
+ * total: $agg.sum("duration")
673
+ * });
674
+ * ```
675
+ */
676
+ groupBy(fields: GroupByInput): this;
677
+ groupBy(fields: GroupByInput, aggregates: Record<string, RawExpression>): this;
678
+ /**
679
+ * Groups documents using a raw MongoDB expression.
680
+ * @param expression - The raw grouping expression
681
+ * @param bindings - Optional parameter bindings
682
+ */
683
+ groupByRaw(expression: RawExpression, bindings?: unknown[]): this;
684
+ /**
685
+ * Filters grouped results based on aggregate conditions.
686
+ * @param field - The aggregate field to filter on
687
+ * @param value - The value to compare against
688
+ * @param operator - The comparison operator
689
+ * @param condition - A condition object for complex filters
690
+ */
691
+ having(field: string, value: unknown): this;
692
+ having(field: string, operator: WhereOperator, value: unknown): this;
693
+ having(condition: HavingInput): this;
694
+ /**
695
+ * Filters grouped results using a raw MongoDB expression.
696
+ * @param expression - The raw having expression
697
+ * @param bindings - Optional parameter bindings
698
+ */
699
+ havingRaw(expression: RawExpression, bindings?: unknown[]): this;
700
+ /**
701
+ * Performs a join with another collection using MongoDB's $lookup.
702
+ *
703
+ * @param table - Target collection name
704
+ * @param localField - Field from the input documents
705
+ * @param foreignField - Field from the documents of the "from" collection
706
+ */
707
+ join(table: string, localField: string, foreignField: string): this;
708
+ /**
709
+ * Performs a join with another collection using MongoDB's $lookup.
710
+ *
711
+ * @param options - Join configuration including table, fields, and optional pipeline
712
+ */
713
+ join(options: JoinOptions): this;
714
+ /**
715
+ * Performs a left outer join with another collection.
716
+ * In MongoDB, this is the standard $lookup behavior.
717
+ *
718
+ * @param table - Target collection name
719
+ * @param localField - Field from the input documents
720
+ * @param foreignField - Field from the documents of the "from" collection
721
+ */
722
+ leftJoin(table: string, localField: string, foreignField: string): this;
723
+ /**
724
+ * Performs a left outer join with another collection.
725
+ *
726
+ * @param options - Join configuration
727
+ */
728
+ leftJoin(options: JoinOptions): this;
729
+ /**
730
+ * Performs a right outer join with another collection.
731
+ *
732
+ * Note: MongoDB doesn't natively support right joins. This is implemented
733
+ * as a regular left join with a warning. For true right join semantics,
734
+ * consider reversing the collections in your query.
735
+ *
736
+ * @param table - Target collection name
737
+ * @param localField - Field from the input documents
738
+ * @param foreignField - Field from the documents of the "from" collection
739
+ */
740
+ rightJoin(table: string, localField: string, foreignField: string): this;
741
+ /**
742
+ * Performs a right outer join with another collection.
743
+ *
744
+ * @param options - Join configuration
745
+ */
746
+ rightJoin(options: JoinOptions): this;
747
+ /**
748
+ * Performs an inner join with another collection.
749
+ *
750
+ * This adds a $lookup followed by a $match to filter out documents
751
+ * where the joined array is empty.
752
+ *
753
+ * @param table - Target collection name
754
+ * @param localField - Field from the input documents
755
+ * @param foreignField - Field from the documents of the "from" collection
756
+ */
757
+ innerJoin(table: string, localField: string, foreignField: string): this;
758
+ /**
759
+ * Performs an inner join with another collection.
760
+ *
761
+ * @param options - Join configuration
762
+ */
763
+ innerJoin(options: JoinOptions): this;
764
+ /**
765
+ * Performs a full outer join with another collection.
766
+ *
767
+ * Note: MongoDB doesn't natively support full outer joins. This is implemented
768
+ * as a regular left join. For true full outer join semantics, you would need
769
+ * to use $unionWith and additional aggregation logic.
770
+ *
771
+ * @param table - Target collection name
772
+ * @param localField - Field from the input documents
773
+ * @param foreignField - Field from the documents of the "from" collection
774
+ */
775
+ fullJoin(table: string, localField: string, foreignField: string): this;
776
+ /**
777
+ * Performs a full outer join with another collection.
778
+ *
779
+ * @param options - Join configuration
780
+ */
781
+ fullJoin(options: JoinOptions): this;
782
+ /**
783
+ * Performs a cross join with another collection.
784
+ *
785
+ * This creates a cartesian product by using $lookup with empty matching criteria.
786
+ *
787
+ * @param table - Target collection name
788
+ */
789
+ crossJoin(table: string): this;
790
+ /**
791
+ * Performs a raw join using a custom aggregation pipeline.
792
+ *
793
+ * This allows full control over the $lookup stage for complex join scenarios.
794
+ *
795
+ * @param expression - Raw expression (typically a $lookup stage or pipeline)
796
+ * @param _bindings - Optional bindings (not used in MongoDB but kept for API consistency)
797
+ */
798
+ joinRaw(expression: RawExpression, _bindings?: unknown[]): this;
799
+ /**
800
+ * Allows direct manipulation of the native MongoDB query.
801
+ * @param builder - Function that receives and modifies the native query
802
+ */
803
+ raw(builder: (native: unknown) => unknown): this;
804
+ /**
805
+ * Extends the query builder with driver-specific functionality.
806
+ * @param extension - The extension name
807
+ * @param _args - Extension-specific arguments
808
+ * @returns The extension's return value
809
+ */
810
+ extend<R>(extension: string, ..._args: unknown[]): R;
811
+ /**
812
+ * Creates a deep copy of the query builder.
813
+ * @returns A new query builder instance with copied operations
814
+ */
815
+ clone(): this;
816
+ /**
817
+ * Executes a callback with the query builder without breaking the chain.
818
+ * @param callback - Function to execute with the builder
819
+ */
820
+ tap(callback: (builder: this) => void): this;
821
+ /**
822
+ * Conditionally applies query modifications based on a condition.
823
+ * @param condition - The condition to evaluate
824
+ * @param callback - Function to execute if condition is true
825
+ * @param otherwise - Optional function to execute if condition is false
826
+ *
827
+ * @example
828
+ * query.when(searchTerm, (q, term) => q.whereLike('name', term))
829
+ */
830
+ when<V>(condition: V | boolean, callback: (builder: this, value: V) => void, otherwise?: (builder: this) => void): this;
831
+ /**
832
+ * Executes the query and returns all matching documents.
833
+ * @returns an array of matching documents
834
+ */
835
+ get<Output = T>(): Promise<Output[]>;
836
+ /**
837
+ * Execute the query and get first result
838
+ * This is different than `first` as first adds a `limit = 1` to the pipeline
839
+ */
840
+ getFirst<Output = T>(): Promise<Output | null>;
841
+ /**
842
+ * Executes the query and returns the first matching document.
843
+ * @returns the first document or null
844
+ */
845
+ first<Output = T>(): Promise<Output | null>;
846
+ /**
847
+ * Executes the query and returns the first matching document, throwing if none found.
848
+ * @returns the first document
849
+ */
850
+ firstOrFail<Output = T>(): Promise<Output>;
851
+ /**
852
+ * Find a document by its primary key (id field).
853
+ */
854
+ find<Output = T>(id: number | string): Promise<Output | null>;
855
+ /**
856
+ * Configures the query to retrieve the last matching document.
857
+ */
858
+ last<Output = T>(field?: string): Promise<Output | null>;
859
+ /**
860
+ * Counts the number of documents matching the query.
861
+ * @returns the count of matching documents
862
+ */
863
+ count(): Promise<number>;
864
+ /**
865
+ * Calculates the sum of a numeric field across matching documents.
866
+ * @param field - The numeric field to sum
867
+ * @returns the sum value
868
+ */
869
+ sum(field: string): Promise<number>;
870
+ /**
871
+ * Calculates the average value of a numeric field across matching documents.
872
+ * @param field - The numeric field to average
873
+ * @returns the average value
874
+ */
875
+ avg(field: string): Promise<number>;
876
+ /**
877
+ * Finds the minimum value of a field across matching documents.
878
+ * @param field - The field to find the minimum of
879
+ * @returns the minimum value
880
+ */
881
+ min(field: string): Promise<number>;
882
+ /**
883
+ * Finds the maximum value of a field across matching documents.
884
+ * @param field - The field to find the maximum of
885
+ * @returns the maximum value
886
+ */
887
+ max(field: string): Promise<number>;
888
+ /**
889
+ * Returns an array of distinct values for a field, respecting query filters.
890
+ * @param field - The field to get distinct values from
891
+ * @returns an array of distinct values
892
+ */
893
+ distinct<T = unknown>(field: string, ignoreNull?: boolean): Promise<T[]>;
894
+ /**
895
+ * Count distinct values for a field, respecting query filters.
896
+ * @param field - The field to count distinct values for
897
+ * @returns the count of distinct values
898
+ */
899
+ countDistinct(field: string, ignoreNull?: boolean): Promise<number>;
900
+ /**
901
+ * Extracts a single field value from each matching document.
902
+ * @param field - The field to extract
903
+ * @returns an array of field values
904
+ */
905
+ pluck<T = unknown>(field: string): Promise<T[]>;
906
+ /**
907
+ * Gets the value of a single field from the first matching document.
908
+ * @param field - The field to extract
909
+ * @returns the field value or null
910
+ */
911
+ value<T = unknown>(field: string): Promise<T | null>;
912
+ /**
913
+ * Checks if any documents match the query.
914
+ * @param filter - Optional filter to apply to the query
915
+ * @returns true if documents exist, false otherwise
916
+ */
917
+ exists(filter?: GenericObject): Promise<boolean>;
918
+ /**
919
+ * Checks if no documents match the query.
920
+ * @param filter - Optional filter to apply to the query
921
+ * @returns true if no documents exist, false otherwise
922
+ */
923
+ notExists(filter?: GenericObject): Promise<boolean>;
924
+ /**
925
+ * Increments a numeric field by the specified amount for first matching document.
926
+ * @param field - The field to increment
927
+ * @param amount - The amount to increment by (default: 1)
928
+ * @returns the new value
929
+ */
930
+ increment(field: string, amount?: number): Promise<number>;
931
+ /**
932
+ * Decrements a numeric field by the specified amount.
933
+ * @param field - The field to decrement
934
+ * @param amount - The amount to decrement by
935
+ * @returns the new value
936
+ */
937
+ decrement(field: string, amount?: number): Promise<number>;
938
+ /**
939
+ * Increments a numeric field by the specified amount for all matching documents.
940
+ * @param field - The field to increment
941
+ * @param amount - The amount to increment by (default: 1)
942
+ * @returns the number of documents modified
943
+ */
944
+ incrementMany(field: string, amount?: number): Promise<number>;
945
+ /**
946
+ * Decrements a numeric field by the specified amount for all matching documents.
947
+ * @param field - The field to decrement
948
+ * @param amount - The amount to decrement by (default: 1)
949
+ * @returns the number of documents modified
950
+ */
951
+ decrementMany(field: string, amount?: number): Promise<number>;
952
+ /**
953
+ * Delete all documents matching the query.
954
+ */
955
+ delete(): Promise<number>;
956
+ /**
957
+ * Delete a single document matching the query.
958
+ */
959
+ deleteOne(): Promise<number>;
960
+ /**
961
+ * Update the given fields for all documents matching the query.
962
+ */
963
+ update(fields: Record<string, unknown>): Promise<number>;
964
+ /**
965
+ * Unset the given fields from all documents matching the query.
966
+ */
967
+ unset(...fields: string[]): Promise<number>;
968
+ /**
969
+ * Processes query results in chunks, executing a callback for each chunk.
970
+ * @param size - The number of documents per chunk
971
+ * @param callback - Function to execute for each chunk
972
+ * @returns void
973
+ */
974
+ chunk(size: number, callback: (rows: T[], chunkIndex: number) => Promise<boolean | void> | boolean | void): Promise<void>;
975
+ /**
976
+ * Executes the query with traditional page-based pagination.
977
+ * @param options - Pagination options
978
+ * @returns pagination result with data and metadata
979
+ */
980
+ paginate(options?: PaginationOptions): Promise<PaginationResult<T>>;
981
+ /**
982
+ * Executes the query with cursor-based pagination supporting both directions.
983
+ * @param options - Cursor pagination options
984
+ * @returns cursor pagination result with data and cursor info
985
+ */
986
+ cursorPaginate(options?: CursorPaginationOptions): Promise<CursorPaginationResult<T>>;
987
+ /**
988
+ * Returns the MongoDB aggregation pipeline that will be executed.
989
+ */
990
+ parse(): DriverQuery;
991
+ /**
992
+ * Returns a formatted string representation of the query pipeline.
993
+ * @returns A formatted string representation of the pipeline
994
+ */
995
+ pretty(): string;
996
+ /**
997
+ * Returns the MongoDB query execution plan.
998
+ * @returns MongoDB's explain output
999
+ */
1000
+ explain(): Promise<unknown>;
1001
+ /**
1002
+ * Get query parser instance
1003
+ */
1004
+ protected getParser(): MongoQueryParser;
1005
+ /**
1006
+ * Build the MongoDB aggregation pipeline from the operations list.
1007
+ * @returns The MongoDB aggregation pipeline
1008
+ */
1009
+ protected buildPipeline(): any[];
1010
+ /**
1011
+ * Build a MongoDB filter object from the query's where clauses.
1012
+ * Used for update operations like increment/decrement.
1013
+ * @returns The MongoDB filter object
1014
+ */
1015
+ protected buildFilter(): Record<string, unknown>;
1016
+ /**
1017
+ * Execute the aggregate command
1018
+ */
1019
+ protected execute<T extends any = any>(pipeline?: any[]): Promise<T[]>;
1020
+ /**
1021
+ * Relations to eagerly load.
1022
+ */
1023
+ eagerLoadRelations: Map<string, boolean | ((query: QueryBuilderContract) => void)>;
1024
+ /**
1025
+ * Relations to load via $lookup (single query).
1026
+ */
1027
+ joinRelations: Map<string, {
1028
+ alias: string;
1029
+ type: "belongsTo" | "hasOne" | "hasMany";
1030
+ }>;
1031
+ /**
1032
+ * Relation definitions from the model.
1033
+ */
1034
+ relationDefinitions?: Record<string, any>;
1035
+ /**
1036
+ * Model class reference.
1037
+ */
1038
+ modelClass?: any;
1039
+ /**
1040
+ * Load relations using MongoDB $lookup in a single aggregation query.
1041
+ *
1042
+ * Unlike `with()` which uses separate queries, `joinWith()` uses
1043
+ * $lookup to fetch related data in a single aggregation pipeline.
1044
+ *
1045
+ * @param relations - Relation names to load via $lookup
1046
+ * @returns This builder for chaining
1047
+ */
1048
+ joinWith(...relations: string[]): this;
1049
+ /**
1050
+ * Eagerly load one or more relations.
1051
+ *
1052
+ * Supported patterns:
1053
+ * - `with("posts")` - Load relation
1054
+ * - `with("posts", "comments")` - Load multiple relations
1055
+ * - `with("posts", callback)` - Load relation with constraint
1056
+ * - `with({ posts: true, comments: callback })` - Object configuration
1057
+ *
1058
+ * @param args - Relation name(s), callbacks, or configuration object
1059
+ */
1060
+ with(...args: (string | Record<string, boolean | ((query: QueryBuilderContract) => void)> | ((query: QueryBuilderContract) => void))[]): this;
1061
+ /**
1062
+ * Filter results to only those that have related models.
1063
+ * @param relation - Relation name
1064
+ * @param operator - Optional comparison operator
1065
+ * @param count - Optional count to compare against
1066
+ */
1067
+ has(relation: string, operator?: string, count?: number): this;
1068
+ /**
1069
+ * Filter results that have related models matching specific conditions.
1070
+ * @param relation - Relation name
1071
+ * @param callback - Callback to define conditions
1072
+ */
1073
+ whereHas(relation: string, callback: (query: QueryBuilderContract) => void): this;
1074
+ /**
1075
+ * Filter results that don't have any related models.
1076
+ * @param relation - Relation name
1077
+ */
1078
+ doesntHave(relation: string): this;
1079
+ /**
1080
+ * Filter results that don't have related models matching specific conditions.
1081
+ * @param relation - Relation name
1082
+ * @param callback - Callback to define conditions
1083
+ */
1084
+ whereDoesntHave(relation: string, callback: (query: QueryBuilderContract) => void): this;
1085
+ /**
1086
+ * Nearest-neighbour vector similarity search via MongoDB Atlas $vectorSearch.
1087
+ *
1088
+ * Adds two pipeline stages:
1089
+ * 1. `$vectorSearch` — runs the ANN search using the Atlas vector index.
1090
+ * Must be the first stage in the pipeline. Limit is embedded here.
1091
+ * 2. `$addFields` — exposes `{ $meta: "vectorSearchScore" }` under `alias`
1092
+ * so callers can filter by minimum score after `.get()`.
1093
+ *
1094
+ * **Prerequisites:**
1095
+ * - MongoDB Atlas cluster (local/Community MongoDB does NOT support $vectorSearch)
1096
+ * - A vector search index on the collection, e.g.:
1097
+ * `{ "fields": [{ "type": "vector", "path": "embedding", "numDimensions": 1536, "similarity": "cosine" }] }`
1098
+ * - The index name convention used here is `"${column}_index"` (override via `alias` if needed).
1099
+ *
1100
+ * @param column - Vector column name (e.g. `"embedding"`)
1101
+ * @param embedding - Query embedding as a plain number array
1102
+ * @param alias - Score alias added to each result row (default: `"score"`)
1103
+ *
1104
+ * @example
1105
+ * ```typescript
1106
+ * const results = await Vector.query()
1107
+ * .where({ organization_id: "org-123" })
1108
+ * .similarTo("embedding", queryEmbedding)
1109
+ * .limit(5)
1110
+ * .get<VectorRow & { score: number }>();
1111
+ * ```
1112
+ */
1113
+ similarTo(column: string, embedding: number[], alias?: string): this;
1114
+ }
1115
+ //#endregion
1116
+ export { MongoQueryBuilder };
1117
+ //# sourceMappingURL=mongodb-query-builder.d.mts.map