@warlock.js/cascade 4.0.48 → 4.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/cjs/context/database-data-source-context.d.ts +29 -0
  2. package/cjs/context/database-data-source-context.d.ts.map +1 -0
  3. package/cjs/context/database-data-source-context.js +28 -0
  4. package/cjs/context/database-data-source-context.js.map +1 -0
  5. package/cjs/context/database-transaction-context.d.ts +31 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +34 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +143 -0
  10. package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
  11. package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
  12. package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
  13. package/cjs/contracts/database-remover.contract.d.ts +104 -0
  14. package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
  15. package/cjs/contracts/database-restorer.contract.d.ts +143 -0
  16. package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
  17. package/cjs/contracts/database-writer.contract.d.ts +119 -0
  18. package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
  19. package/cjs/contracts/driver-blueprint.contract.d.ts +45 -0
  20. package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
  21. package/cjs/contracts/index.d.ts +10 -0
  22. package/cjs/contracts/index.d.ts.map +1 -0
  23. package/cjs/contracts/migration-driver.contract.d.ts +365 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1128 -0
  26. package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
  27. package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
  28. package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
  29. package/cjs/data-source/data-source-registry.d.ts +104 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +138 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +106 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +77 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +253 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +389 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongo/mongo-id-generator.d.ts +116 -0
  42. package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  43. package/cjs/drivers/mongo/mongo-id-generator.js +149 -0
  44. package/cjs/drivers/mongo/mongo-id-generator.js.map +1 -0
  45. package/cjs/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  46. package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongo/mongo-migration-driver.js +524 -0
  48. package/cjs/drivers/mongo/mongo-migration-driver.js.map +1 -0
  49. package/cjs/drivers/mongo/mongo-query-builder.d.ts +922 -0
  50. package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  51. package/cjs/drivers/mongo/mongo-query-builder.js +1740 -0
  52. package/cjs/drivers/mongo/mongo-query-builder.js.map +1 -0
  53. package/cjs/drivers/mongo/mongo-query-operations.d.ts +226 -0
  54. package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  55. package/cjs/drivers/mongo/mongo-query-operations.js +270 -0
  56. package/cjs/drivers/mongo/mongo-query-operations.js.map +1 -0
  57. package/cjs/drivers/mongo/mongo-query-parser.d.ts +262 -0
  58. package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  59. package/cjs/drivers/mongo/mongo-query-parser.js +1351 -0
  60. package/cjs/drivers/mongo/mongo-query-parser.js.map +1 -0
  61. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  62. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  63. package/cjs/drivers/mongo/mongo-sync-adapter.js +146 -0
  64. package/cjs/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  65. package/cjs/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  66. package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  67. package/cjs/drivers/mongo/mongodb-blueprint.js +51 -0
  68. package/cjs/drivers/mongo/mongodb-blueprint.js.map +1 -0
  69. package/cjs/drivers/mongo/mongodb-driver.d.ts +188 -0
  70. package/cjs/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  71. package/cjs/drivers/mongo/mongodb-driver.js +411 -0
  72. package/cjs/drivers/mongo/mongodb-driver.js.map +1 -0
  73. package/cjs/drivers/mongo/types.d.ts +43 -0
  74. package/cjs/drivers/mongo/types.d.ts.map +1 -0
  75. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  76. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  77. package/cjs/errors/missing-data-source.error.js +29 -0
  78. package/cjs/errors/missing-data-source.error.js.map +1 -0
  79. package/cjs/events/model-events.d.ts +231 -0
  80. package/cjs/events/model-events.d.ts.map +1 -0
  81. package/cjs/events/model-events.js +259 -0
  82. package/cjs/events/model-events.js.map +1 -0
  83. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  84. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  85. package/cjs/expressions/aggregate-expressions.js +221 -0
  86. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  87. package/cjs/expressions/index.d.ts +2 -0
  88. package/cjs/expressions/index.d.ts.map +1 -0
  89. package/cjs/index.d.ts +41 -0
  90. package/cjs/index.d.ts.map +1 -0
  91. package/cjs/index.js +1 -267
  92. package/cjs/index.js.map +1 -1
  93. package/cjs/migration/column-builder.d.ts +167 -0
  94. package/cjs/migration/column-builder.d.ts.map +1 -0
  95. package/cjs/migration/column-builder.js +217 -0
  96. package/cjs/migration/column-builder.js.map +1 -0
  97. package/cjs/migration/foreign-key-builder.d.ts +110 -0
  98. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  99. package/cjs/migration/foreign-key-builder.js +129 -0
  100. package/cjs/migration/foreign-key-builder.js.map +1 -0
  101. package/cjs/migration/index.d.ts +6 -0
  102. package/cjs/migration/index.d.ts.map +1 -0
  103. package/cjs/migration/migration-runner.d.ts +231 -0
  104. package/cjs/migration/migration-runner.d.ts.map +1 -0
  105. package/cjs/migration/migration-runner.js +443 -0
  106. package/cjs/migration/migration-runner.js.map +1 -0
  107. package/cjs/migration/migration.js +1346 -0
  108. package/cjs/migration/migration.js.map +1 -0
  109. package/cjs/migration/types.d.ts +132 -0
  110. package/cjs/migration/types.d.ts.map +1 -0
  111. package/cjs/model/model.d.ts +1267 -0
  112. package/cjs/model/model.d.ts.map +1 -0
  113. package/cjs/model/model.js +1463 -0
  114. package/cjs/model/model.js.map +1 -0
  115. package/cjs/model/register-model.d.ts +80 -0
  116. package/cjs/model/register-model.d.ts.map +1 -0
  117. package/cjs/model/register-model.js +91 -0
  118. package/cjs/model/register-model.js.map +1 -0
  119. package/cjs/remover/database-remover.d.ts +100 -0
  120. package/cjs/remover/database-remover.d.ts.map +1 -0
  121. package/cjs/remover/database-remover.js +209 -0
  122. package/cjs/remover/database-remover.js.map +1 -0
  123. package/cjs/restorer/database-restorer.d.ts +131 -0
  124. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  125. package/cjs/restorer/database-restorer.js +425 -0
  126. package/cjs/restorer/database-restorer.js.map +1 -0
  127. package/cjs/sync/index.d.ts +12 -0
  128. package/cjs/sync/index.d.ts.map +1 -0
  129. package/cjs/sync/model-events.d.ts +62 -0
  130. package/cjs/sync/model-events.d.ts.map +1 -0
  131. package/cjs/sync/model-events.js +49 -0
  132. package/cjs/sync/model-events.js.map +1 -0
  133. package/cjs/sync/model-sync-operation.d.ts +163 -0
  134. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  135. package/cjs/sync/model-sync-operation.js +292 -0
  136. package/cjs/sync/model-sync-operation.js.map +1 -0
  137. package/cjs/sync/model-sync.d.ts +130 -0
  138. package/cjs/sync/model-sync.d.ts.map +1 -0
  139. package/cjs/sync/model-sync.js +178 -0
  140. package/cjs/sync/model-sync.js.map +1 -0
  141. package/cjs/sync/sync-context.d.ts +70 -0
  142. package/cjs/sync/sync-context.d.ts.map +1 -0
  143. package/cjs/sync/sync-context.js +101 -0
  144. package/cjs/sync/sync-context.js.map +1 -0
  145. package/cjs/sync/sync-manager.d.ts +213 -0
  146. package/cjs/sync/sync-manager.d.ts.map +1 -0
  147. package/cjs/sync/sync-manager.js +689 -0
  148. package/cjs/sync/sync-manager.js.map +1 -0
  149. package/cjs/sync/types.d.ts +289 -0
  150. package/cjs/sync/types.d.ts.map +1 -0
  151. package/cjs/types.d.ts +45 -0
  152. package/cjs/types.d.ts.map +1 -0
  153. package/cjs/utils/connect-to-database.d.ts +246 -0
  154. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  155. package/cjs/utils/connect-to-database.js +92 -0
  156. package/cjs/utils/connect-to-database.js.map +1 -0
  157. package/cjs/utils/database-writer.utils.d.ts +15 -0
  158. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  159. package/cjs/utils/database-writer.utils.js +14 -0
  160. package/cjs/utils/database-writer.utils.js.map +1 -0
  161. package/cjs/utils/define-model.js +100 -0
  162. package/cjs/utils/define-model.js.map +1 -0
  163. package/cjs/utils/once-connected.d.ts +146 -0
  164. package/cjs/utils/once-connected.d.ts.map +1 -0
  165. package/cjs/utils/once-connected.js +252 -0
  166. package/cjs/utils/once-connected.js.map +1 -0
  167. package/cjs/validation/database-seal-plugins.d.ts +2 -0
  168. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  169. package/cjs/validation/database-seal-plugins.js +4 -0
  170. package/cjs/validation/database-seal-plugins.js.map +1 -0
  171. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  172. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  173. package/cjs/validation/database-writer-validation-error.js +160 -0
  174. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  175. package/cjs/validation/index.d.ts +3 -0
  176. package/cjs/validation/index.d.ts.map +1 -0
  177. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  178. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  179. package/cjs/validation/mutators/embed-mutator.js +33 -0
  180. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  181. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  182. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  183. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  184. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  185. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  186. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  187. package/cjs/validation/rules/database-model-rule.js +27 -0
  188. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  189. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  190. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  191. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  192. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  193. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  194. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  195. package/cjs/validation/validators/embed-validator.js +42 -0
  196. package/cjs/validation/validators/embed-validator.js.map +1 -0
  197. package/cjs/writer/database-writer.d.ts +181 -0
  198. package/cjs/writer/database-writer.d.ts.map +1 -0
  199. package/cjs/writer/database-writer.js +402 -0
  200. package/cjs/writer/database-writer.js.map +1 -0
  201. package/esm/context/database-data-source-context.d.ts +29 -0
  202. package/esm/context/database-data-source-context.d.ts.map +1 -0
  203. package/esm/context/database-data-source-context.js +28 -0
  204. package/esm/context/database-data-source-context.js.map +1 -0
  205. package/esm/context/database-transaction-context.d.ts +31 -0
  206. package/esm/context/database-transaction-context.d.ts.map +1 -0
  207. package/esm/context/database-transaction-context.js +34 -0
  208. package/esm/context/database-transaction-context.js.map +1 -0
  209. package/esm/contracts/database-driver.contract.d.ts +143 -0
  210. package/esm/contracts/database-driver.contract.d.ts.map +1 -0
  211. package/esm/contracts/database-id-generator.contract.d.ts +109 -0
  212. package/esm/contracts/database-id-generator.contract.d.ts.map +1 -0
  213. package/esm/contracts/database-remover.contract.d.ts +104 -0
  214. package/esm/contracts/database-remover.contract.d.ts.map +1 -0
  215. package/esm/contracts/database-restorer.contract.d.ts +143 -0
  216. package/esm/contracts/database-restorer.contract.d.ts.map +1 -0
  217. package/esm/contracts/database-writer.contract.d.ts +119 -0
  218. package/esm/contracts/database-writer.contract.d.ts.map +1 -0
  219. package/esm/contracts/driver-blueprint.contract.d.ts +45 -0
  220. package/esm/contracts/driver-blueprint.contract.d.ts.map +1 -0
  221. package/esm/contracts/index.d.ts +10 -0
  222. package/esm/contracts/index.d.ts.map +1 -0
  223. package/esm/contracts/migration-driver.contract.d.ts +365 -0
  224. package/esm/contracts/migration-driver.contract.d.ts.map +1 -0
  225. package/esm/contracts/query-builder.contract.d.ts +1128 -0
  226. package/esm/contracts/query-builder.contract.d.ts.map +1 -0
  227. package/esm/contracts/sync-adapter.contract.d.ts +58 -0
  228. package/esm/contracts/sync-adapter.contract.d.ts.map +1 -0
  229. package/esm/data-source/data-source-registry.d.ts +104 -0
  230. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  231. package/esm/data-source/data-source-registry.js +138 -0
  232. package/esm/data-source/data-source-registry.js.map +1 -0
  233. package/esm/data-source/data-source.d.ts +106 -0
  234. package/esm/data-source/data-source.d.ts.map +1 -0
  235. package/esm/data-source/data-source.js +77 -0
  236. package/esm/data-source/data-source.js.map +1 -0
  237. package/esm/database-dirty-tracker.d.ts +253 -0
  238. package/esm/database-dirty-tracker.d.ts.map +1 -0
  239. package/esm/database-dirty-tracker.js +389 -0
  240. package/esm/database-dirty-tracker.js.map +1 -0
  241. package/esm/drivers/mongo/mongo-id-generator.d.ts +116 -0
  242. package/esm/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  243. package/esm/drivers/mongo/mongo-id-generator.js +149 -0
  244. package/esm/drivers/mongo/mongo-id-generator.js.map +1 -0
  245. package/esm/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  246. package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  247. package/esm/drivers/mongo/mongo-migration-driver.js +524 -0
  248. package/esm/drivers/mongo/mongo-migration-driver.js.map +1 -0
  249. package/esm/drivers/mongo/mongo-query-builder.d.ts +922 -0
  250. package/esm/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  251. package/esm/drivers/mongo/mongo-query-builder.js +1740 -0
  252. package/esm/drivers/mongo/mongo-query-builder.js.map +1 -0
  253. package/esm/drivers/mongo/mongo-query-operations.d.ts +226 -0
  254. package/esm/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  255. package/esm/drivers/mongo/mongo-query-operations.js +270 -0
  256. package/esm/drivers/mongo/mongo-query-operations.js.map +1 -0
  257. package/esm/drivers/mongo/mongo-query-parser.d.ts +262 -0
  258. package/esm/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  259. package/esm/drivers/mongo/mongo-query-parser.js +1351 -0
  260. package/esm/drivers/mongo/mongo-query-parser.js.map +1 -0
  261. package/esm/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  262. package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  263. package/esm/drivers/mongo/mongo-sync-adapter.js +146 -0
  264. package/esm/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  265. package/esm/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  266. package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  267. package/esm/drivers/mongo/mongodb-blueprint.js +51 -0
  268. package/esm/drivers/mongo/mongodb-blueprint.js.map +1 -0
  269. package/esm/drivers/mongo/mongodb-driver.d.ts +188 -0
  270. package/esm/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  271. package/esm/drivers/mongo/mongodb-driver.js +411 -0
  272. package/esm/drivers/mongo/mongodb-driver.js.map +1 -0
  273. package/esm/drivers/mongo/types.d.ts +43 -0
  274. package/esm/drivers/mongo/types.d.ts.map +1 -0
  275. package/esm/errors/missing-data-source.error.d.ts +22 -0
  276. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  277. package/esm/errors/missing-data-source.error.js +29 -0
  278. package/esm/errors/missing-data-source.error.js.map +1 -0
  279. package/esm/events/model-events.d.ts +231 -0
  280. package/esm/events/model-events.d.ts.map +1 -0
  281. package/esm/events/model-events.js +259 -0
  282. package/esm/events/model-events.js.map +1 -0
  283. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  284. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  285. package/esm/expressions/aggregate-expressions.js +221 -0
  286. package/esm/expressions/aggregate-expressions.js.map +1 -0
  287. package/esm/expressions/index.d.ts +2 -0
  288. package/esm/expressions/index.d.ts.map +1 -0
  289. package/esm/index.d.ts +41 -0
  290. package/esm/index.d.ts.map +1 -0
  291. package/esm/index.js +1 -40
  292. package/esm/index.js.map +1 -1
  293. package/esm/migration/column-builder.d.ts +167 -0
  294. package/esm/migration/column-builder.d.ts.map +1 -0
  295. package/esm/migration/column-builder.js +217 -0
  296. package/esm/migration/column-builder.js.map +1 -0
  297. package/esm/migration/foreign-key-builder.d.ts +110 -0
  298. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  299. package/esm/migration/foreign-key-builder.js +129 -0
  300. package/esm/migration/foreign-key-builder.js.map +1 -0
  301. package/esm/migration/index.d.ts +6 -0
  302. package/esm/migration/index.d.ts.map +1 -0
  303. package/esm/migration/migration-runner.d.ts +231 -0
  304. package/esm/migration/migration-runner.d.ts.map +1 -0
  305. package/esm/migration/migration-runner.js +443 -0
  306. package/esm/migration/migration-runner.js.map +1 -0
  307. package/esm/migration/migration.js +1346 -0
  308. package/esm/migration/migration.js.map +1 -0
  309. package/esm/migration/types.d.ts +132 -0
  310. package/esm/migration/types.d.ts.map +1 -0
  311. package/esm/model/model.d.ts +1267 -0
  312. package/esm/model/model.d.ts.map +1 -0
  313. package/esm/model/model.js +1463 -0
  314. package/esm/model/model.js.map +1 -0
  315. package/esm/model/register-model.d.ts +80 -0
  316. package/esm/model/register-model.d.ts.map +1 -0
  317. package/esm/model/register-model.js +91 -0
  318. package/esm/model/register-model.js.map +1 -0
  319. package/esm/remover/database-remover.d.ts +100 -0
  320. package/esm/remover/database-remover.d.ts.map +1 -0
  321. package/esm/remover/database-remover.js +209 -0
  322. package/esm/remover/database-remover.js.map +1 -0
  323. package/esm/restorer/database-restorer.d.ts +131 -0
  324. package/esm/restorer/database-restorer.d.ts.map +1 -0
  325. package/esm/restorer/database-restorer.js +425 -0
  326. package/esm/restorer/database-restorer.js.map +1 -0
  327. package/esm/sync/index.d.ts +12 -0
  328. package/esm/sync/index.d.ts.map +1 -0
  329. package/esm/sync/model-events.d.ts +62 -0
  330. package/esm/sync/model-events.d.ts.map +1 -0
  331. package/esm/sync/model-events.js +49 -0
  332. package/esm/sync/model-events.js.map +1 -0
  333. package/esm/sync/model-sync-operation.d.ts +163 -0
  334. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  335. package/esm/sync/model-sync-operation.js +292 -0
  336. package/esm/sync/model-sync-operation.js.map +1 -0
  337. package/esm/sync/model-sync.d.ts +130 -0
  338. package/esm/sync/model-sync.d.ts.map +1 -0
  339. package/esm/sync/model-sync.js +178 -0
  340. package/esm/sync/model-sync.js.map +1 -0
  341. package/esm/sync/sync-context.d.ts +70 -0
  342. package/esm/sync/sync-context.d.ts.map +1 -0
  343. package/esm/sync/sync-context.js +101 -0
  344. package/esm/sync/sync-context.js.map +1 -0
  345. package/esm/sync/sync-manager.d.ts +213 -0
  346. package/esm/sync/sync-manager.d.ts.map +1 -0
  347. package/esm/sync/sync-manager.js +689 -0
  348. package/esm/sync/sync-manager.js.map +1 -0
  349. package/esm/sync/types.d.ts +289 -0
  350. package/esm/sync/types.d.ts.map +1 -0
  351. package/esm/types.d.ts +45 -0
  352. package/esm/types.d.ts.map +1 -0
  353. package/esm/utils/connect-to-database.d.ts +246 -0
  354. package/esm/utils/connect-to-database.d.ts.map +1 -0
  355. package/esm/utils/connect-to-database.js +92 -0
  356. package/esm/utils/connect-to-database.js.map +1 -0
  357. package/esm/utils/database-writer.utils.d.ts +15 -0
  358. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  359. package/esm/utils/database-writer.utils.js +14 -0
  360. package/esm/utils/database-writer.utils.js.map +1 -0
  361. package/esm/utils/define-model.js +100 -0
  362. package/esm/utils/define-model.js.map +1 -0
  363. package/esm/utils/once-connected.d.ts +146 -0
  364. package/esm/utils/once-connected.d.ts.map +1 -0
  365. package/esm/utils/once-connected.js +252 -0
  366. package/esm/utils/once-connected.js.map +1 -0
  367. package/esm/validation/database-seal-plugins.d.ts +2 -0
  368. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  369. package/esm/validation/database-seal-plugins.js +4 -0
  370. package/esm/validation/database-seal-plugins.js.map +1 -0
  371. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  372. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  373. package/esm/validation/database-writer-validation-error.js +160 -0
  374. package/esm/validation/database-writer-validation-error.js.map +1 -0
  375. package/esm/validation/index.d.ts +3 -0
  376. package/esm/validation/index.d.ts.map +1 -0
  377. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  378. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  379. package/esm/validation/mutators/embed-mutator.js +33 -0
  380. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  381. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  382. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  383. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  384. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  385. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  386. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  387. package/esm/validation/rules/database-model-rule.js +27 -0
  388. package/esm/validation/rules/database-model-rule.js.map +1 -0
  389. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  390. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  391. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  392. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  393. package/esm/validation/validators/embed-validator.d.ts +21 -0
  394. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  395. package/esm/validation/validators/embed-validator.js +42 -0
  396. package/esm/validation/validators/embed-validator.js.map +1 -0
  397. package/esm/writer/database-writer.d.ts +181 -0
  398. package/esm/writer/database-writer.d.ts.map +1 -0
  399. package/esm/writer/database-writer.js +402 -0
  400. package/esm/writer/database-writer.js.map +1 -0
  401. package/package.json +61 -52
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-query-builder.js","sources":["../../../src/drivers/mongo/mongo-query-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ import type { Operation, PipelineStage } from "./types";
2
+ /**
3
+ * Helper class for constructing MongoDB aggregation pipeline operations.
4
+ *
5
+ * This class encapsulates the logic for creating operation objects that will be
6
+ * converted to MongoDB aggregation stages by the query parser. It provides a
7
+ * clean abstraction over the low-level operation structure, making the query
8
+ * builder code more maintainable and testable.
9
+ *
10
+ * Each operation consists of:
11
+ * - **stage**: The MongoDB aggregation stage name (e.g., "$match", "$project")
12
+ * - **type**: An internal identifier for the operation type
13
+ * - **payload**: The data associated with the operation
14
+ * - **mergeable**: Whether this operation can be merged with adjacent similar operations
15
+ *
16
+ * @internal This class is for internal use within the MongoDB driver
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const operations: Operation[] = [];
21
+ * const helper = new MongoQueryOperations(operations);
22
+ *
23
+ * // Add a match operation
24
+ * helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
25
+ *
26
+ * // Add a project operation
27
+ * helper.addProjectOperation("select", { fields: ["name", "email"] });
28
+ *
29
+ * // Operations array is now populated
30
+ * console.log(operations);
31
+ * // [
32
+ * // { stage: "$match", mergeable: true, type: "whereIn", payload: {...} },
33
+ * // { stage: "$project", mergeable: true, type: "select", payload: {...} }
34
+ * // ]
35
+ * ```
36
+ */
37
+ export declare class MongoQueryOperations {
38
+ private operations;
39
+ /**
40
+ * Creates a new operations helper.
41
+ *
42
+ * The helper maintains a reference to the operations array and populates it
43
+ * as methods are called. This allows the query builder to maintain a single
44
+ * ordered list of operations that will be converted to a MongoDB aggregation
45
+ * pipeline.
46
+ *
47
+ * @param operations - Reference to the operations array to populate
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const operations: Operation[] = [];
52
+ * const helper = new MongoQueryOperations(operations);
53
+ * ```
54
+ */
55
+ constructor(operations: Operation[]);
56
+ setOperations(operations: Operation[]): void;
57
+ /**
58
+ * Adds a $match stage operation to the pipeline.
59
+ *
60
+ * Match operations filter documents in the aggregation pipeline, similar to
61
+ * the WHERE clause in SQL. Multiple match operations can be merged together
62
+ * by the parser for optimization.
63
+ *
64
+ * @param type - The operation type identifier (e.g., "where", "whereIn", "whereLike")
65
+ * @param payload - The operation payload data containing filter criteria
66
+ * @param mergeable - Whether this operation can be merged with adjacent match operations (default: true)
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // Simple where operation
71
+ * helper.addMatchOperation("where", { field: "age", operator: ">", value: 18 });
72
+ *
73
+ * // WhereIn operation
74
+ * helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
75
+ *
76
+ * // Non-mergeable match (e.g., after a group stage)
77
+ * helper.addMatchOperation("having", { field: "count", operator: ">", value: 5 }, false);
78
+ * ```
79
+ */
80
+ addMatchOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
81
+ /**
82
+ * Adds a $project stage operation to the pipeline.
83
+ *
84
+ * Project operations control which fields are included or excluded in the
85
+ * output documents, similar to the SELECT clause in SQL. They can also be
86
+ * used to compute new fields or reshape documents.
87
+ *
88
+ * @param type - The operation type identifier (e.g., "select", "deselect", "selectRaw")
89
+ * @param payload - The operation payload data containing projection specifications
90
+ * @param mergeable - Whether this operation can be merged with adjacent project operations (default: true)
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * // Select specific fields
95
+ * helper.addProjectOperation("select", { fields: ["name", "email", "age"] });
96
+ *
97
+ * // Deselect fields
98
+ * helper.addProjectOperation("deselect", { fields: ["password", "secret"] });
99
+ *
100
+ * // Computed field
101
+ * helper.addProjectOperation("selectRaw", {
102
+ * expression: { fullName: { $concat: ["$firstName", " ", "$lastName"] } }
103
+ * });
104
+ * ```
105
+ */
106
+ addProjectOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
107
+ /**
108
+ * Adds a $sort stage operation to the pipeline.
109
+ *
110
+ * Sort operations order the documents in the pipeline, similar to the ORDER BY
111
+ * clause in SQL. Multiple sort operations can be merged to create compound
112
+ * sorting.
113
+ *
114
+ * @param type - The operation type identifier (e.g., "orderBy", "orderByRandom")
115
+ * @param payload - The operation payload data containing sort specifications
116
+ * @param mergeable - Whether this operation can be merged with adjacent sort operations (default: true)
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * // Order by a single field
121
+ * helper.addSortOperation("orderBy", { field: "createdAt", direction: "desc" });
122
+ *
123
+ * // Random ordering (not mergeable)
124
+ * helper.addSortOperation("orderByRandom", {limit: 1000}, false);
125
+ *
126
+ * // Order by raw expression
127
+ * helper.addSortOperation("orderByRaw", {
128
+ * expression: { score: -1, name: 1 }
129
+ * });
130
+ * ```
131
+ */
132
+ addSortOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
133
+ /**
134
+ * Adds a $group stage operation to the pipeline.
135
+ *
136
+ * Group operations aggregate documents by specified fields and compute
137
+ * aggregate values, similar to the GROUP BY clause in SQL. Group operations
138
+ * are typically not mergeable as they represent distinct aggregation boundaries.
139
+ *
140
+ * @param type - The operation type identifier (e.g., "groupBy", "distinct")
141
+ * @param payload - The operation payload data containing grouping specifications
142
+ * @param mergeable - Whether this operation can be merged with adjacent group operations (default: false)
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * // Group by a single field
147
+ * helper.addGroupOperation("groupBy", { fields: "category" });
148
+ *
149
+ * // Group by multiple fields
150
+ * helper.addGroupOperation("groupBy", {
151
+ * fields: { category: "$category", status: "$status" }
152
+ * });
153
+ *
154
+ * // Distinct operation (special case of grouping)
155
+ * helper.addGroupOperation("distinct", { fields: ["email"] });
156
+ * ```
157
+ */
158
+ addGroupOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
159
+ /**
160
+ * Adds a $lookup stage operation to the pipeline.
161
+ *
162
+ * Lookup operations perform left outer joins with other collections, similar
163
+ * to JOIN in SQL. Lookup operations are never mergeable as each represents a
164
+ * distinct join operation.
165
+ *
166
+ * @param type - The operation type identifier (typically "join")
167
+ * @param payload - The operation payload data containing join specifications
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * // Simple lookup
172
+ * helper.addLookupOperation("join", {
173
+ * table: "orders",
174
+ * localField: "id",
175
+ * foreignField: "userId",
176
+ * alias: "userOrders"
177
+ * });
178
+ *
179
+ * // Lookup with pipeline
180
+ * helper.addLookupOperation("join", {
181
+ * table: "products",
182
+ * pipeline: [
183
+ * { $match: { inStock: true } },
184
+ * { $sort: { price: 1 } }
185
+ * ],
186
+ * alias: "availableProducts"
187
+ * });
188
+ * ```
189
+ */
190
+ addLookupOperation(type: string, payload: Record<string, unknown>): void;
191
+ /**
192
+ * Adds a generic stage operation to the pipeline.
193
+ *
194
+ * This method provides flexibility to add any MongoDB aggregation stage,
195
+ * including less common stages like $facet, $bucket, $setWindowFields, etc.
196
+ * Use this for operations that don't fit into the standard categories.
197
+ *
198
+ * @param stage - The MongoDB aggregation stage name (e.g., "$limit", "$skip", "$unwind")
199
+ * @param type - The operation type identifier
200
+ * @param payload - The operation payload data
201
+ * @param mergeable - Whether this operation can be merged with adjacent operations (default: false)
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * // Add a limit operation
206
+ * helper.addOperation("$limit", "limit", { value: 10 });
207
+ *
208
+ * // Add a skip operation
209
+ * helper.addOperation("$skip", "skip", { value: 20 });
210
+ *
211
+ * // Add an unwind operation
212
+ * helper.addOperation("$unwind", "unwind", { path: "$tags" });
213
+ *
214
+ * // Add a window function
215
+ * helper.addOperation("$setWindowFields", "selectWindow", {
216
+ * spec: {
217
+ * partitionBy: "$category",
218
+ * sortBy: { price: 1 },
219
+ * output: { rank: { $rank: {} } }
220
+ * }
221
+ * });
222
+ * ```
223
+ */
224
+ addOperation(stage: PipelineStage, type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
225
+ }
226
+ //# sourceMappingURL=mongo-query-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-query-operations.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongo/mongo-query-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,oBAAoB;IAiBZ,OAAO,CAAC,UAAU;IAhBrC;;;;;;;;;;;;;;;OAeG;gBACwB,UAAU,EAAE,SAAS,EAAE;IAE3C,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAInD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI;IAShG;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,mBAAmB,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAO,GACf,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI;IAS/F;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,iBAAiB,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAQ,GAChB,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACI,YAAY,CACjB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAQ,GAChB,IAAI;CAQR"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Helper class for constructing MongoDB aggregation pipeline operations.
3
+ *
4
+ * This class encapsulates the logic for creating operation objects that will be
5
+ * converted to MongoDB aggregation stages by the query parser. It provides a
6
+ * clean abstraction over the low-level operation structure, making the query
7
+ * builder code more maintainable and testable.
8
+ *
9
+ * Each operation consists of:
10
+ * - **stage**: The MongoDB aggregation stage name (e.g., "$match", "$project")
11
+ * - **type**: An internal identifier for the operation type
12
+ * - **payload**: The data associated with the operation
13
+ * - **mergeable**: Whether this operation can be merged with adjacent similar operations
14
+ *
15
+ * @internal This class is for internal use within the MongoDB driver
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const operations: Operation[] = [];
20
+ * const helper = new MongoQueryOperations(operations);
21
+ *
22
+ * // Add a match operation
23
+ * helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
24
+ *
25
+ * // Add a project operation
26
+ * helper.addProjectOperation("select", { fields: ["name", "email"] });
27
+ *
28
+ * // Operations array is now populated
29
+ * console.log(operations);
30
+ * // [
31
+ * // { stage: "$match", mergeable: true, type: "whereIn", payload: {...} },
32
+ * // { stage: "$project", mergeable: true, type: "select", payload: {...} }
33
+ * // ]
34
+ * ```
35
+ */
36
+ class MongoQueryOperations {
37
+ operations;
38
+ /**
39
+ * Creates a new operations helper.
40
+ *
41
+ * The helper maintains a reference to the operations array and populates it
42
+ * as methods are called. This allows the query builder to maintain a single
43
+ * ordered list of operations that will be converted to a MongoDB aggregation
44
+ * pipeline.
45
+ *
46
+ * @param operations - Reference to the operations array to populate
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const operations: Operation[] = [];
51
+ * const helper = new MongoQueryOperations(operations);
52
+ * ```
53
+ */
54
+ constructor(operations) {
55
+ this.operations = operations;
56
+ }
57
+ setOperations(operations) {
58
+ this.operations = operations;
59
+ }
60
+ /**
61
+ * Adds a $match stage operation to the pipeline.
62
+ *
63
+ * Match operations filter documents in the aggregation pipeline, similar to
64
+ * the WHERE clause in SQL. Multiple match operations can be merged together
65
+ * by the parser for optimization.
66
+ *
67
+ * @param type - The operation type identifier (e.g., "where", "whereIn", "whereLike")
68
+ * @param payload - The operation payload data containing filter criteria
69
+ * @param mergeable - Whether this operation can be merged with adjacent match operations (default: true)
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * // Simple where operation
74
+ * helper.addMatchOperation("where", { field: "age", operator: ">", value: 18 });
75
+ *
76
+ * // WhereIn operation
77
+ * helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
78
+ *
79
+ * // Non-mergeable match (e.g., after a group stage)
80
+ * helper.addMatchOperation("having", { field: "count", operator: ">", value: 5 }, false);
81
+ * ```
82
+ */
83
+ addMatchOperation(type, payload, mergeable = true) {
84
+ this.operations.push({
85
+ stage: "$match",
86
+ mergeable,
87
+ type,
88
+ payload,
89
+ });
90
+ }
91
+ /**
92
+ * Adds a $project stage operation to the pipeline.
93
+ *
94
+ * Project operations control which fields are included or excluded in the
95
+ * output documents, similar to the SELECT clause in SQL. They can also be
96
+ * used to compute new fields or reshape documents.
97
+ *
98
+ * @param type - The operation type identifier (e.g., "select", "deselect", "selectRaw")
99
+ * @param payload - The operation payload data containing projection specifications
100
+ * @param mergeable - Whether this operation can be merged with adjacent project operations (default: true)
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * // Select specific fields
105
+ * helper.addProjectOperation("select", { fields: ["name", "email", "age"] });
106
+ *
107
+ * // Deselect fields
108
+ * helper.addProjectOperation("deselect", { fields: ["password", "secret"] });
109
+ *
110
+ * // Computed field
111
+ * helper.addProjectOperation("selectRaw", {
112
+ * expression: { fullName: { $concat: ["$firstName", " ", "$lastName"] } }
113
+ * });
114
+ * ```
115
+ */
116
+ addProjectOperation(type, payload, mergeable = true) {
117
+ this.operations.push({
118
+ stage: "$project",
119
+ mergeable,
120
+ type,
121
+ payload,
122
+ });
123
+ }
124
+ /**
125
+ * Adds a $sort stage operation to the pipeline.
126
+ *
127
+ * Sort operations order the documents in the pipeline, similar to the ORDER BY
128
+ * clause in SQL. Multiple sort operations can be merged to create compound
129
+ * sorting.
130
+ *
131
+ * @param type - The operation type identifier (e.g., "orderBy", "orderByRandom")
132
+ * @param payload - The operation payload data containing sort specifications
133
+ * @param mergeable - Whether this operation can be merged with adjacent sort operations (default: true)
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * // Order by a single field
138
+ * helper.addSortOperation("orderBy", { field: "createdAt", direction: "desc" });
139
+ *
140
+ * // Random ordering (not mergeable)
141
+ * helper.addSortOperation("orderByRandom", {limit: 1000}, false);
142
+ *
143
+ * // Order by raw expression
144
+ * helper.addSortOperation("orderByRaw", {
145
+ * expression: { score: -1, name: 1 }
146
+ * });
147
+ * ```
148
+ */
149
+ addSortOperation(type, payload, mergeable = true) {
150
+ this.operations.push({
151
+ stage: "$sort",
152
+ mergeable,
153
+ type,
154
+ payload,
155
+ });
156
+ }
157
+ /**
158
+ * Adds a $group stage operation to the pipeline.
159
+ *
160
+ * Group operations aggregate documents by specified fields and compute
161
+ * aggregate values, similar to the GROUP BY clause in SQL. Group operations
162
+ * are typically not mergeable as they represent distinct aggregation boundaries.
163
+ *
164
+ * @param type - The operation type identifier (e.g., "groupBy", "distinct")
165
+ * @param payload - The operation payload data containing grouping specifications
166
+ * @param mergeable - Whether this operation can be merged with adjacent group operations (default: false)
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * // Group by a single field
171
+ * helper.addGroupOperation("groupBy", { fields: "category" });
172
+ *
173
+ * // Group by multiple fields
174
+ * helper.addGroupOperation("groupBy", {
175
+ * fields: { category: "$category", status: "$status" }
176
+ * });
177
+ *
178
+ * // Distinct operation (special case of grouping)
179
+ * helper.addGroupOperation("distinct", { fields: ["email"] });
180
+ * ```
181
+ */
182
+ addGroupOperation(type, payload, mergeable = false) {
183
+ this.operations.push({
184
+ stage: "$group",
185
+ mergeable,
186
+ type,
187
+ payload,
188
+ });
189
+ }
190
+ /**
191
+ * Adds a $lookup stage operation to the pipeline.
192
+ *
193
+ * Lookup operations perform left outer joins with other collections, similar
194
+ * to JOIN in SQL. Lookup operations are never mergeable as each represents a
195
+ * distinct join operation.
196
+ *
197
+ * @param type - The operation type identifier (typically "join")
198
+ * @param payload - The operation payload data containing join specifications
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * // Simple lookup
203
+ * helper.addLookupOperation("join", {
204
+ * table: "orders",
205
+ * localField: "id",
206
+ * foreignField: "userId",
207
+ * alias: "userOrders"
208
+ * });
209
+ *
210
+ * // Lookup with pipeline
211
+ * helper.addLookupOperation("join", {
212
+ * table: "products",
213
+ * pipeline: [
214
+ * { $match: { inStock: true } },
215
+ * { $sort: { price: 1 } }
216
+ * ],
217
+ * alias: "availableProducts"
218
+ * });
219
+ * ```
220
+ */
221
+ addLookupOperation(type, payload) {
222
+ this.operations.push({
223
+ stage: "$lookup",
224
+ mergeable: false,
225
+ type,
226
+ payload,
227
+ });
228
+ }
229
+ /**
230
+ * Adds a generic stage operation to the pipeline.
231
+ *
232
+ * This method provides flexibility to add any MongoDB aggregation stage,
233
+ * including less common stages like $facet, $bucket, $setWindowFields, etc.
234
+ * Use this for operations that don't fit into the standard categories.
235
+ *
236
+ * @param stage - The MongoDB aggregation stage name (e.g., "$limit", "$skip", "$unwind")
237
+ * @param type - The operation type identifier
238
+ * @param payload - The operation payload data
239
+ * @param mergeable - Whether this operation can be merged with adjacent operations (default: false)
240
+ *
241
+ * @example
242
+ * ```typescript
243
+ * // Add a limit operation
244
+ * helper.addOperation("$limit", "limit", { value: 10 });
245
+ *
246
+ * // Add a skip operation
247
+ * helper.addOperation("$skip", "skip", { value: 20 });
248
+ *
249
+ * // Add an unwind operation
250
+ * helper.addOperation("$unwind", "unwind", { path: "$tags" });
251
+ *
252
+ * // Add a window function
253
+ * helper.addOperation("$setWindowFields", "selectWindow", {
254
+ * spec: {
255
+ * partitionBy: "$category",
256
+ * sortBy: { price: 1 },
257
+ * output: { rank: { $rank: {} } }
258
+ * }
259
+ * });
260
+ * ```
261
+ */
262
+ addOperation(stage, type, payload, mergeable = false) {
263
+ this.operations.push({
264
+ stage,
265
+ mergeable,
266
+ type,
267
+ payload,
268
+ });
269
+ }
270
+ }export{MongoQueryOperations};//# sourceMappingURL=mongo-query-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-query-operations.js","sources":["../../../src/drivers/mongo/mongo-query-operations.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MACU,oBAAoB,CAAA;AAiBJ,IAAA,UAAA,CAAA;AAhB3B;;;;;;;;;;;;;;;AAeG;AACH,IAAA,WAAA,CAA2B,UAAuB,EAAA;QAAvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;KAAI;AAE/C,IAAA,aAAa,CAAC,UAAuB,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,IAAA,iBAAiB,CAAC,IAAY,EAAE,OAAgC,EAAE,SAAS,GAAG,IAAI,EAAA;AACvF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,QAAQ;YACf,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,mBAAmB,CACxB,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,IAAI,EAAA;AAEhB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,gBAAgB,CAAC,IAAY,EAAE,OAAgC,EAAE,SAAS,GAAG,IAAI,EAAA;AACtF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,OAAO;YACd,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,iBAAiB,CACtB,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,QAAQ;YACf,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;IACI,kBAAkB,CAAC,IAAY,EAAE,OAAgC,EAAA;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,SAAS,EAAE,KAAK;YAChB,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;IACI,YAAY,CACjB,KAAoB,EACpB,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK;YACL,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AACF"}