@warlock.js/cascade 4.0.162 → 4.0.164

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (661) hide show
  1. package/cjs/context/database-data-source-context.d.ts +29 -0
  2. package/cjs/context/database-data-source-context.d.ts.map +1 -0
  3. package/cjs/context/database-data-source-context.js +28 -0
  4. package/cjs/context/database-data-source-context.js.map +1 -0
  5. package/cjs/context/database-transaction-context.d.ts +35 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +40 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +450 -0
  10. package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
  11. package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
  12. package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
  13. package/cjs/contracts/database-remover.contract.d.ts +104 -0
  14. package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
  15. package/cjs/contracts/database-restorer.contract.d.ts +143 -0
  16. package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
  17. package/cjs/contracts/database-writer.contract.d.ts +119 -0
  18. package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
  19. package/cjs/contracts/driver-blueprint.contract.d.ts +49 -0
  20. package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
  21. package/cjs/contracts/index.d.ts +10 -0
  22. package/cjs/contracts/index.d.ts.map +1 -0
  23. package/cjs/contracts/migration-driver.contract.d.ts +522 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1609 -0
  26. package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
  27. package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
  28. package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
  29. package/cjs/data-source/data-source-registry.d.ts +108 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +145 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +147 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +83 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +252 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +386 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  42. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  43. package/cjs/drivers/mongodb/mongodb-blueprint.js +51 -0
  44. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  45. package/cjs/drivers/mongodb/mongodb-driver.d.ts +325 -0
  46. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongodb/mongodb-driver.js +838 -0
  48. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
  49. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  50. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  51. package/cjs/drivers/mongodb/mongodb-id-generator.js +149 -0
  52. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  53. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  54. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  55. package/cjs/drivers/mongodb/mongodb-migration-driver.js +666 -0
  56. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  57. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  58. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  59. package/cjs/drivers/mongodb/mongodb-query-builder.js +1988 -0
  60. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  61. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  62. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  63. package/cjs/drivers/mongodb/mongodb-query-operations.js +270 -0
  64. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  65. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  66. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  67. package/cjs/drivers/mongodb/mongodb-query-parser.js +1351 -0
  68. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  69. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  70. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  71. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  72. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  73. package/cjs/drivers/mongodb/types.d.ts +43 -0
  74. package/cjs/drivers/mongodb/types.d.ts.map +1 -0
  75. package/cjs/drivers/postgres/index.d.ts +16 -0
  76. package/cjs/drivers/postgres/index.d.ts.map +1 -0
  77. package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
  78. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  79. package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
  80. package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
  81. package/cjs/drivers/postgres/postgres-dialect.d.ts +136 -0
  82. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  83. package/cjs/drivers/postgres/postgres-dialect.js +268 -0
  84. package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
  85. package/cjs/drivers/postgres/postgres-driver.d.ts +432 -0
  86. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
  87. package/cjs/drivers/postgres/postgres-driver.js +1010 -0
  88. package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
  89. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  90. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  91. package/cjs/drivers/postgres/postgres-migration-driver.js +900 -0
  92. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
  93. package/cjs/drivers/postgres/postgres-query-builder.d.ts +254 -0
  94. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  95. package/cjs/drivers/postgres/postgres-query-builder.js +933 -0
  96. package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
  97. package/cjs/drivers/postgres/postgres-query-parser.d.ts +328 -0
  98. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  99. package/cjs/drivers/postgres/postgres-query-parser.js +868 -0
  100. package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
  101. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  102. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  103. package/cjs/drivers/postgres/postgres-sql-serializer.js +400 -0
  104. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  105. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  106. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  107. package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
  108. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  109. package/cjs/drivers/postgres/types.d.ts +144 -0
  110. package/cjs/drivers/postgres/types.d.ts.map +1 -0
  111. package/cjs/drivers/sql/index.d.ts +10 -0
  112. package/cjs/drivers/sql/index.d.ts.map +1 -0
  113. package/cjs/drivers/sql/sql-dialect.contract.d.ts +204 -0
  114. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  115. package/cjs/drivers/sql/sql-types.d.ts +202 -0
  116. package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
  117. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  118. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  119. package/cjs/errors/missing-data-source.error.js +29 -0
  120. package/cjs/errors/missing-data-source.error.js.map +1 -0
  121. package/cjs/errors/transaction-rollback.error.d.ts +20 -0
  122. package/cjs/errors/transaction-rollback.error.d.ts.map +1 -0
  123. package/cjs/errors/transaction-rollback.error.js +27 -0
  124. package/cjs/errors/transaction-rollback.error.js.map +1 -0
  125. package/cjs/events/model-events.d.ts +231 -0
  126. package/cjs/events/model-events.d.ts.map +1 -0
  127. package/cjs/events/model-events.js +259 -0
  128. package/cjs/events/model-events.js.map +1 -0
  129. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  130. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  131. package/cjs/expressions/aggregate-expressions.js +221 -0
  132. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  133. package/cjs/expressions/index.d.ts +2 -0
  134. package/cjs/expressions/index.d.ts.map +1 -0
  135. package/cjs/index.d.ts +45 -0
  136. package/cjs/index.d.ts.map +1 -0
  137. package/cjs/index.js +1 -0
  138. package/cjs/index.js.map +1 -0
  139. package/cjs/migration/column-builder.d.ts +417 -0
  140. package/cjs/migration/column-builder.d.ts.map +1 -0
  141. package/cjs/migration/column-builder.js +586 -0
  142. package/cjs/migration/column-builder.js.map +1 -0
  143. package/cjs/migration/column-helpers.d.ts +275 -0
  144. package/cjs/migration/column-helpers.d.ts.map +1 -0
  145. package/cjs/migration/column-helpers.js +389 -0
  146. package/cjs/migration/column-helpers.js.map +1 -0
  147. package/cjs/migration/foreign-key-builder.d.ts +103 -0
  148. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  149. package/cjs/migration/foreign-key-builder.js +121 -0
  150. package/cjs/migration/foreign-key-builder.js.map +1 -0
  151. package/cjs/migration/index.d.ts +7 -0
  152. package/cjs/migration/index.d.ts.map +1 -0
  153. package/cjs/migration/migration-runner.d.ts +278 -0
  154. package/cjs/migration/migration-runner.d.ts.map +1 -0
  155. package/cjs/migration/migration-runner.js +815 -0
  156. package/cjs/migration/migration-runner.js.map +1 -0
  157. package/cjs/migration/migration.d.ts +1992 -0
  158. package/cjs/migration/migration.d.ts.map +1 -0
  159. package/cjs/migration/migration.js +2162 -0
  160. package/cjs/migration/migration.js.map +1 -0
  161. package/cjs/migration/sql-grammar.d.ts +61 -0
  162. package/cjs/migration/sql-grammar.d.ts.map +1 -0
  163. package/cjs/migration/sql-grammar.js +164 -0
  164. package/cjs/migration/sql-grammar.js.map +1 -0
  165. package/cjs/migration/sql-serializer.d.ts +22 -0
  166. package/cjs/migration/sql-serializer.d.ts.map +1 -0
  167. package/cjs/migration/sql-serializer.js +26 -0
  168. package/cjs/migration/sql-serializer.js.map +1 -0
  169. package/cjs/migration/types.d.ts +155 -0
  170. package/cjs/migration/types.d.ts.map +1 -0
  171. package/cjs/model/methods/accessor-methods.d.ts +13 -0
  172. package/cjs/model/methods/accessor-methods.d.ts.map +1 -0
  173. package/cjs/model/methods/accessor-methods.js +51 -0
  174. package/cjs/model/methods/accessor-methods.js.map +1 -0
  175. package/cjs/model/methods/delete-methods.d.ts +10 -0
  176. package/cjs/model/methods/delete-methods.d.ts.map +1 -0
  177. package/cjs/model/methods/delete-methods.js +10 -0
  178. package/cjs/model/methods/delete-methods.js.map +1 -0
  179. package/cjs/model/methods/dirty-methods.d.ts +10 -0
  180. package/cjs/model/methods/dirty-methods.d.ts.map +1 -0
  181. package/cjs/model/methods/dirty-methods.js +15 -0
  182. package/cjs/model/methods/dirty-methods.js.map +1 -0
  183. package/cjs/model/methods/hydration-methods.d.ts +10 -0
  184. package/cjs/model/methods/hydration-methods.d.ts.map +1 -0
  185. package/cjs/model/methods/hydration-methods.js +57 -0
  186. package/cjs/model/methods/hydration-methods.js.map +1 -0
  187. package/cjs/model/methods/instance-event-methods.d.ts +7 -0
  188. package/cjs/model/methods/instance-event-methods.d.ts.map +1 -0
  189. package/cjs/model/methods/instance-event-methods.js +15 -0
  190. package/cjs/model/methods/instance-event-methods.js.map +1 -0
  191. package/cjs/model/methods/meta-methods.d.ts +7 -0
  192. package/cjs/model/methods/meta-methods.d.ts.map +1 -0
  193. package/cjs/model/methods/meta-methods.js +78 -0
  194. package/cjs/model/methods/meta-methods.js.map +1 -0
  195. package/cjs/model/methods/query-methods.d.ts +24 -0
  196. package/cjs/model/methods/query-methods.d.ts.map +1 -0
  197. package/cjs/model/methods/query-methods.js +164 -0
  198. package/cjs/model/methods/query-methods.js.map +1 -0
  199. package/cjs/model/methods/restore-methods.d.ts +10 -0
  200. package/cjs/model/methods/restore-methods.d.ts.map +1 -0
  201. package/cjs/model/methods/restore-methods.js +13 -0
  202. package/cjs/model/methods/restore-methods.js.map +1 -0
  203. package/cjs/model/methods/scope-methods.d.ts +7 -0
  204. package/cjs/model/methods/scope-methods.d.ts.map +1 -0
  205. package/cjs/model/methods/scope-methods.js +15 -0
  206. package/cjs/model/methods/scope-methods.js.map +1 -0
  207. package/cjs/model/methods/serialization-methods.d.ts +3 -0
  208. package/cjs/model/methods/serialization-methods.d.ts.map +1 -0
  209. package/cjs/model/methods/serialization-methods.js +27 -0
  210. package/cjs/model/methods/serialization-methods.js.map +1 -0
  211. package/cjs/model/methods/static-event-methods.d.ts +9 -0
  212. package/cjs/model/methods/static-event-methods.d.ts.map +1 -0
  213. package/cjs/model/methods/static-event-methods.js +29 -0
  214. package/cjs/model/methods/static-event-methods.js.map +1 -0
  215. package/cjs/model/methods/write-methods.d.ts +10 -0
  216. package/cjs/model/methods/write-methods.d.ts.map +1 -0
  217. package/cjs/model/methods/write-methods.js +52 -0
  218. package/cjs/model/methods/write-methods.js.map +1 -0
  219. package/cjs/model/model.d.ts +1647 -0
  220. package/cjs/model/model.d.ts.map +1 -0
  221. package/cjs/model/model.js +1657 -0
  222. package/cjs/model/model.js.map +1 -0
  223. package/cjs/model/model.types.d.ts +44 -0
  224. package/cjs/model/model.types.d.ts.map +1 -0
  225. package/cjs/model/register-model.d.ts +81 -0
  226. package/cjs/model/register-model.d.ts.map +1 -0
  227. package/cjs/model/register-model.js +94 -0
  228. package/cjs/model/register-model.js.map +1 -0
  229. package/cjs/query-builder/query-builder.d.ts +556 -0
  230. package/cjs/query-builder/query-builder.d.ts.map +1 -0
  231. package/cjs/query-builder/query-builder.js +1070 -0
  232. package/cjs/query-builder/query-builder.js.map +1 -0
  233. package/cjs/relations/helpers.d.ts +156 -0
  234. package/cjs/relations/helpers.d.ts.map +1 -0
  235. package/cjs/relations/helpers.js +202 -0
  236. package/cjs/relations/helpers.js.map +1 -0
  237. package/cjs/relations/index.d.ts +35 -0
  238. package/cjs/relations/index.d.ts.map +1 -0
  239. package/cjs/relations/pivot-operations.d.ts +160 -0
  240. package/cjs/relations/pivot-operations.d.ts.map +1 -0
  241. package/cjs/relations/pivot-operations.js +293 -0
  242. package/cjs/relations/pivot-operations.js.map +1 -0
  243. package/cjs/relations/relation-hydrator.d.ts +68 -0
  244. package/cjs/relations/relation-hydrator.d.ts.map +1 -0
  245. package/cjs/relations/relation-hydrator.js +81 -0
  246. package/cjs/relations/relation-hydrator.js.map +1 -0
  247. package/cjs/relations/relation-loader.d.ts +194 -0
  248. package/cjs/relations/relation-loader.d.ts.map +1 -0
  249. package/cjs/relations/relation-loader.js +466 -0
  250. package/cjs/relations/relation-loader.js.map +1 -0
  251. package/cjs/relations/types.d.ts +306 -0
  252. package/cjs/relations/types.d.ts.map +1 -0
  253. package/cjs/remover/database-remover.d.ts +100 -0
  254. package/cjs/remover/database-remover.d.ts.map +1 -0
  255. package/cjs/remover/database-remover.js +214 -0
  256. package/cjs/remover/database-remover.js.map +1 -0
  257. package/cjs/restorer/database-restorer.d.ts +131 -0
  258. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  259. package/cjs/restorer/database-restorer.js +434 -0
  260. package/cjs/restorer/database-restorer.js.map +1 -0
  261. package/cjs/sql-database-dirty-tracker.d.ts +13 -0
  262. package/cjs/sql-database-dirty-tracker.d.ts.map +1 -0
  263. package/cjs/sql-database-dirty-tracker.js +14 -0
  264. package/cjs/sql-database-dirty-tracker.js.map +1 -0
  265. package/cjs/sync/index.d.ts +12 -0
  266. package/cjs/sync/index.d.ts.map +1 -0
  267. package/cjs/sync/model-events.d.ts +62 -0
  268. package/cjs/sync/model-events.d.ts.map +1 -0
  269. package/cjs/sync/model-events.js +49 -0
  270. package/cjs/sync/model-events.js.map +1 -0
  271. package/cjs/sync/model-sync-operation.d.ts +163 -0
  272. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  273. package/cjs/sync/model-sync-operation.js +292 -0
  274. package/cjs/sync/model-sync-operation.js.map +1 -0
  275. package/cjs/sync/model-sync.d.ts +130 -0
  276. package/cjs/sync/model-sync.d.ts.map +1 -0
  277. package/cjs/sync/model-sync.js +178 -0
  278. package/cjs/sync/model-sync.js.map +1 -0
  279. package/cjs/sync/sync-context.d.ts +70 -0
  280. package/cjs/sync/sync-context.d.ts.map +1 -0
  281. package/cjs/sync/sync-context.js +101 -0
  282. package/cjs/sync/sync-context.js.map +1 -0
  283. package/cjs/sync/sync-manager.d.ts +213 -0
  284. package/cjs/sync/sync-manager.d.ts.map +1 -0
  285. package/cjs/sync/sync-manager.js +689 -0
  286. package/cjs/sync/sync-manager.js.map +1 -0
  287. package/cjs/sync/types.d.ts +289 -0
  288. package/cjs/sync/types.d.ts.map +1 -0
  289. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  290. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  291. package/cjs/types.d.ts +371 -0
  292. package/cjs/types.d.ts.map +1 -0
  293. package/cjs/utils/connect-to-database.d.ts +307 -0
  294. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  295. package/cjs/utils/connect-to-database.js +130 -0
  296. package/cjs/utils/connect-to-database.js.map +1 -0
  297. package/cjs/utils/database-writer.utils.d.ts +15 -0
  298. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  299. package/cjs/utils/database-writer.utils.js +14 -0
  300. package/cjs/utils/database-writer.utils.js.map +1 -0
  301. package/cjs/utils/define-model.js +100 -0
  302. package/cjs/utils/define-model.js.map +1 -0
  303. package/cjs/utils/is-valid-date-value.d.ts +5 -0
  304. package/cjs/utils/is-valid-date-value.d.ts.map +1 -0
  305. package/cjs/utils/is-valid-date-value.js +25 -0
  306. package/cjs/utils/is-valid-date-value.js.map +1 -0
  307. package/cjs/utils/once-connected.d.ts +146 -0
  308. package/cjs/utils/once-connected.d.ts.map +1 -0
  309. package/cjs/utils/once-connected.js +251 -0
  310. package/cjs/utils/once-connected.js.map +1 -0
  311. package/cjs/validation/database-seal-plugins.d.ts +12 -0
  312. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  313. package/cjs/validation/database-seal-plugins.js +1 -0
  314. package/cjs/validation/database-seal-plugins.js.map +1 -0
  315. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  316. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  317. package/cjs/validation/database-writer-validation-error.js +160 -0
  318. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  319. package/cjs/validation/index.d.ts +3 -0
  320. package/cjs/validation/index.d.ts.map +1 -0
  321. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  322. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  323. package/cjs/validation/mutators/embed-mutator.js +33 -0
  324. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  325. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  326. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  327. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  328. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  329. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  330. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  331. package/cjs/validation/rules/database-model-rule.js +27 -0
  332. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  333. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  334. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  335. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  336. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  337. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  338. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  339. package/cjs/validation/validators/embed-validator.js +43 -0
  340. package/cjs/validation/validators/embed-validator.js.map +1 -0
  341. package/cjs/writer/database-writer.d.ts +181 -0
  342. package/cjs/writer/database-writer.d.ts.map +1 -0
  343. package/cjs/writer/database-writer.js +407 -0
  344. package/cjs/writer/database-writer.js.map +1 -0
  345. package/esm/data-source/data-source-registry.d.ts +108 -0
  346. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  347. package/esm/data-source/data-source-registry.js +145 -0
  348. package/esm/data-source/data-source-registry.js.map +1 -0
  349. package/esm/data-source/data-source.d.ts +147 -0
  350. package/esm/data-source/data-source.d.ts.map +1 -0
  351. package/esm/data-source/data-source.js +83 -0
  352. package/esm/data-source/data-source.js.map +1 -0
  353. package/esm/database-dirty-tracker.d.ts +252 -0
  354. package/esm/database-dirty-tracker.d.ts.map +1 -0
  355. package/esm/database-dirty-tracker.js +386 -0
  356. package/esm/database-dirty-tracker.js.map +1 -0
  357. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  358. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  359. package/esm/drivers/mongodb/mongodb-blueprint.js +51 -0
  360. package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  361. package/esm/drivers/mongodb/mongodb-driver.d.ts +325 -0
  362. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  363. package/esm/drivers/mongodb/mongodb-driver.js +838 -0
  364. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
  365. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  366. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  367. package/esm/drivers/mongodb/mongodb-id-generator.js +149 -0
  368. package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  369. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  370. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  371. package/esm/drivers/mongodb/mongodb-migration-driver.js +666 -0
  372. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  373. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  374. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  375. package/esm/drivers/mongodb/mongodb-query-builder.js +1988 -0
  376. package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  377. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  378. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  379. package/esm/drivers/mongodb/mongodb-query-operations.js +270 -0
  380. package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  381. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  382. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  383. package/esm/drivers/mongodb/mongodb-query-parser.js +1351 -0
  384. package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  385. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  386. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  387. package/esm/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  388. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  389. package/esm/drivers/mongodb/types.d.ts +43 -0
  390. package/esm/drivers/mongodb/types.d.ts.map +1 -0
  391. package/esm/drivers/postgres/index.d.ts +16 -0
  392. package/esm/drivers/postgres/index.d.ts.map +1 -0
  393. package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
  394. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  395. package/esm/drivers/postgres/postgres-blueprint.js +121 -0
  396. package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
  397. package/esm/drivers/postgres/postgres-dialect.d.ts +136 -0
  398. package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  399. package/esm/drivers/postgres/postgres-dialect.js +268 -0
  400. package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
  401. package/esm/drivers/postgres/postgres-driver.d.ts +432 -0
  402. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
  403. package/esm/drivers/postgres/postgres-driver.js +1010 -0
  404. package/esm/drivers/postgres/postgres-driver.js.map +1 -0
  405. package/esm/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  406. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  407. package/esm/drivers/postgres/postgres-migration-driver.js +900 -0
  408. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
  409. package/esm/drivers/postgres/postgres-query-builder.d.ts +254 -0
  410. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  411. package/esm/drivers/postgres/postgres-query-builder.js +933 -0
  412. package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
  413. package/esm/drivers/postgres/postgres-query-parser.d.ts +328 -0
  414. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  415. package/esm/drivers/postgres/postgres-query-parser.js +868 -0
  416. package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
  417. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  418. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  419. package/esm/drivers/postgres/postgres-sql-serializer.js +400 -0
  420. package/esm/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  421. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  422. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  423. package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
  424. package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  425. package/esm/drivers/postgres/types.d.ts +144 -0
  426. package/esm/drivers/postgres/types.d.ts.map +1 -0
  427. package/esm/drivers/sql/index.d.ts +10 -0
  428. package/esm/drivers/sql/index.d.ts.map +1 -0
  429. package/esm/drivers/sql/sql-dialect.contract.d.ts +204 -0
  430. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  431. package/esm/drivers/sql/sql-types.d.ts +202 -0
  432. package/esm/drivers/sql/sql-types.d.ts.map +1 -0
  433. package/esm/errors/missing-data-source.error.d.ts +22 -0
  434. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  435. package/esm/errors/missing-data-source.error.js +29 -0
  436. package/esm/errors/missing-data-source.error.js.map +1 -0
  437. package/esm/errors/transaction-rollback.error.d.ts +20 -0
  438. package/esm/errors/transaction-rollback.error.d.ts.map +1 -0
  439. package/esm/errors/transaction-rollback.error.js +27 -0
  440. package/esm/errors/transaction-rollback.error.js.map +1 -0
  441. package/esm/events/model-events.d.ts +231 -0
  442. package/esm/events/model-events.d.ts.map +1 -0
  443. package/esm/events/model-events.js +259 -0
  444. package/esm/events/model-events.js.map +1 -0
  445. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  446. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  447. package/esm/expressions/aggregate-expressions.js +221 -0
  448. package/esm/expressions/aggregate-expressions.js.map +1 -0
  449. package/esm/expressions/index.d.ts +2 -0
  450. package/esm/expressions/index.d.ts.map +1 -0
  451. package/esm/index.d.ts +45 -0
  452. package/esm/index.d.ts.map +1 -0
  453. package/esm/index.js +1 -0
  454. package/esm/index.js.map +1 -0
  455. package/esm/migration/column-builder.d.ts +417 -0
  456. package/esm/migration/column-builder.d.ts.map +1 -0
  457. package/esm/migration/column-builder.js +586 -0
  458. package/esm/migration/column-builder.js.map +1 -0
  459. package/esm/migration/column-helpers.d.ts +275 -0
  460. package/esm/migration/column-helpers.d.ts.map +1 -0
  461. package/esm/migration/column-helpers.js +389 -0
  462. package/esm/migration/column-helpers.js.map +1 -0
  463. package/esm/migration/foreign-key-builder.d.ts +103 -0
  464. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  465. package/esm/migration/foreign-key-builder.js +121 -0
  466. package/esm/migration/foreign-key-builder.js.map +1 -0
  467. package/esm/migration/index.d.ts +7 -0
  468. package/esm/migration/index.d.ts.map +1 -0
  469. package/esm/migration/migration-runner.d.ts +278 -0
  470. package/esm/migration/migration-runner.d.ts.map +1 -0
  471. package/esm/migration/migration-runner.js +815 -0
  472. package/esm/migration/migration-runner.js.map +1 -0
  473. package/esm/migration/migration.d.ts +1992 -0
  474. package/esm/migration/migration.d.ts.map +1 -0
  475. package/esm/migration/migration.js +2162 -0
  476. package/esm/migration/migration.js.map +1 -0
  477. package/esm/migration/sql-grammar.d.ts +61 -0
  478. package/esm/migration/sql-grammar.d.ts.map +1 -0
  479. package/esm/migration/sql-grammar.js +164 -0
  480. package/esm/migration/sql-grammar.js.map +1 -0
  481. package/esm/migration/sql-serializer.d.ts +22 -0
  482. package/esm/migration/sql-serializer.d.ts.map +1 -0
  483. package/esm/migration/sql-serializer.js +26 -0
  484. package/esm/migration/sql-serializer.js.map +1 -0
  485. package/esm/migration/types.d.ts +155 -0
  486. package/esm/migration/types.d.ts.map +1 -0
  487. package/esm/model/methods/accessor-methods.d.ts +13 -0
  488. package/esm/model/methods/accessor-methods.d.ts.map +1 -0
  489. package/esm/model/methods/accessor-methods.js +51 -0
  490. package/esm/model/methods/accessor-methods.js.map +1 -0
  491. package/esm/model/methods/delete-methods.d.ts +10 -0
  492. package/esm/model/methods/delete-methods.d.ts.map +1 -0
  493. package/esm/model/methods/delete-methods.js +10 -0
  494. package/esm/model/methods/delete-methods.js.map +1 -0
  495. package/esm/model/methods/dirty-methods.d.ts +10 -0
  496. package/esm/model/methods/dirty-methods.d.ts.map +1 -0
  497. package/esm/model/methods/dirty-methods.js +15 -0
  498. package/esm/model/methods/dirty-methods.js.map +1 -0
  499. package/esm/model/methods/hydration-methods.d.ts +10 -0
  500. package/esm/model/methods/hydration-methods.d.ts.map +1 -0
  501. package/esm/model/methods/hydration-methods.js +57 -0
  502. package/esm/model/methods/hydration-methods.js.map +1 -0
  503. package/esm/model/methods/instance-event-methods.d.ts +7 -0
  504. package/esm/model/methods/instance-event-methods.d.ts.map +1 -0
  505. package/esm/model/methods/instance-event-methods.js +15 -0
  506. package/esm/model/methods/instance-event-methods.js.map +1 -0
  507. package/esm/model/methods/meta-methods.d.ts +7 -0
  508. package/esm/model/methods/meta-methods.d.ts.map +1 -0
  509. package/esm/model/methods/meta-methods.js +78 -0
  510. package/esm/model/methods/meta-methods.js.map +1 -0
  511. package/esm/model/methods/query-methods.d.ts +24 -0
  512. package/esm/model/methods/query-methods.d.ts.map +1 -0
  513. package/esm/model/methods/query-methods.js +164 -0
  514. package/esm/model/methods/query-methods.js.map +1 -0
  515. package/esm/model/methods/restore-methods.d.ts +10 -0
  516. package/esm/model/methods/restore-methods.d.ts.map +1 -0
  517. package/esm/model/methods/restore-methods.js +13 -0
  518. package/esm/model/methods/restore-methods.js.map +1 -0
  519. package/esm/model/methods/scope-methods.d.ts +7 -0
  520. package/esm/model/methods/scope-methods.d.ts.map +1 -0
  521. package/esm/model/methods/scope-methods.js +15 -0
  522. package/esm/model/methods/scope-methods.js.map +1 -0
  523. package/esm/model/methods/serialization-methods.d.ts +3 -0
  524. package/esm/model/methods/serialization-methods.d.ts.map +1 -0
  525. package/esm/model/methods/serialization-methods.js +27 -0
  526. package/esm/model/methods/serialization-methods.js.map +1 -0
  527. package/esm/model/methods/static-event-methods.d.ts +9 -0
  528. package/esm/model/methods/static-event-methods.d.ts.map +1 -0
  529. package/esm/model/methods/static-event-methods.js +29 -0
  530. package/esm/model/methods/static-event-methods.js.map +1 -0
  531. package/esm/model/methods/write-methods.d.ts +10 -0
  532. package/esm/model/methods/write-methods.d.ts.map +1 -0
  533. package/esm/model/methods/write-methods.js +52 -0
  534. package/esm/model/methods/write-methods.js.map +1 -0
  535. package/esm/model/model.d.ts +1647 -0
  536. package/esm/model/model.d.ts.map +1 -0
  537. package/esm/model/model.js +1657 -0
  538. package/esm/model/model.js.map +1 -0
  539. package/esm/model/model.types.d.ts +44 -0
  540. package/esm/model/model.types.d.ts.map +1 -0
  541. package/esm/model/register-model.d.ts +81 -0
  542. package/esm/model/register-model.d.ts.map +1 -0
  543. package/esm/model/register-model.js +94 -0
  544. package/esm/model/register-model.js.map +1 -0
  545. package/esm/query-builder/query-builder.d.ts +556 -0
  546. package/esm/query-builder/query-builder.d.ts.map +1 -0
  547. package/esm/query-builder/query-builder.js +1070 -0
  548. package/esm/query-builder/query-builder.js.map +1 -0
  549. package/esm/relations/helpers.d.ts +156 -0
  550. package/esm/relations/helpers.d.ts.map +1 -0
  551. package/esm/relations/helpers.js +202 -0
  552. package/esm/relations/helpers.js.map +1 -0
  553. package/esm/relations/index.d.ts +35 -0
  554. package/esm/relations/index.d.ts.map +1 -0
  555. package/esm/relations/pivot-operations.d.ts +160 -0
  556. package/esm/relations/pivot-operations.d.ts.map +1 -0
  557. package/esm/relations/pivot-operations.js +293 -0
  558. package/esm/relations/pivot-operations.js.map +1 -0
  559. package/esm/relations/relation-hydrator.d.ts +68 -0
  560. package/esm/relations/relation-hydrator.d.ts.map +1 -0
  561. package/esm/relations/relation-hydrator.js +81 -0
  562. package/esm/relations/relation-hydrator.js.map +1 -0
  563. package/esm/relations/relation-loader.d.ts +194 -0
  564. package/esm/relations/relation-loader.d.ts.map +1 -0
  565. package/esm/relations/relation-loader.js +466 -0
  566. package/esm/relations/relation-loader.js.map +1 -0
  567. package/esm/relations/types.d.ts +306 -0
  568. package/esm/relations/types.d.ts.map +1 -0
  569. package/esm/remover/database-remover.d.ts +100 -0
  570. package/esm/remover/database-remover.d.ts.map +1 -0
  571. package/esm/remover/database-remover.js +214 -0
  572. package/esm/remover/database-remover.js.map +1 -0
  573. package/esm/restorer/database-restorer.d.ts +131 -0
  574. package/esm/restorer/database-restorer.d.ts.map +1 -0
  575. package/esm/restorer/database-restorer.js +434 -0
  576. package/esm/restorer/database-restorer.js.map +1 -0
  577. package/esm/sql-database-dirty-tracker.d.ts +13 -0
  578. package/esm/sql-database-dirty-tracker.d.ts.map +1 -0
  579. package/esm/sql-database-dirty-tracker.js +14 -0
  580. package/esm/sql-database-dirty-tracker.js.map +1 -0
  581. package/esm/sync/index.d.ts +12 -0
  582. package/esm/sync/index.d.ts.map +1 -0
  583. package/esm/sync/model-events.d.ts +62 -0
  584. package/esm/sync/model-events.d.ts.map +1 -0
  585. package/esm/sync/model-events.js +49 -0
  586. package/esm/sync/model-events.js.map +1 -0
  587. package/esm/sync/model-sync-operation.d.ts +163 -0
  588. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  589. package/esm/sync/model-sync-operation.js +292 -0
  590. package/esm/sync/model-sync-operation.js.map +1 -0
  591. package/esm/sync/model-sync.d.ts +130 -0
  592. package/esm/sync/model-sync.d.ts.map +1 -0
  593. package/esm/sync/model-sync.js +178 -0
  594. package/esm/sync/model-sync.js.map +1 -0
  595. package/esm/sync/sync-context.d.ts +70 -0
  596. package/esm/sync/sync-context.d.ts.map +1 -0
  597. package/esm/sync/sync-context.js +101 -0
  598. package/esm/sync/sync-context.js.map +1 -0
  599. package/esm/sync/sync-manager.d.ts +213 -0
  600. package/esm/sync/sync-manager.d.ts.map +1 -0
  601. package/esm/sync/sync-manager.js +689 -0
  602. package/esm/sync/sync-manager.js.map +1 -0
  603. package/esm/sync/types.d.ts +289 -0
  604. package/esm/sync/types.d.ts.map +1 -0
  605. package/esm/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  606. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  607. package/esm/types.d.ts +371 -0
  608. package/esm/types.d.ts.map +1 -0
  609. package/esm/utils/connect-to-database.d.ts +307 -0
  610. package/esm/utils/connect-to-database.d.ts.map +1 -0
  611. package/esm/utils/connect-to-database.js +130 -0
  612. package/esm/utils/connect-to-database.js.map +1 -0
  613. package/esm/utils/database-writer.utils.d.ts +15 -0
  614. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  615. package/esm/utils/database-writer.utils.js +14 -0
  616. package/esm/utils/database-writer.utils.js.map +1 -0
  617. package/esm/utils/define-model.js +100 -0
  618. package/esm/utils/define-model.js.map +1 -0
  619. package/esm/utils/is-valid-date-value.d.ts +5 -0
  620. package/esm/utils/is-valid-date-value.d.ts.map +1 -0
  621. package/esm/utils/is-valid-date-value.js +25 -0
  622. package/esm/utils/is-valid-date-value.js.map +1 -0
  623. package/esm/utils/once-connected.d.ts +146 -0
  624. package/esm/utils/once-connected.d.ts.map +1 -0
  625. package/esm/utils/once-connected.js +251 -0
  626. package/esm/utils/once-connected.js.map +1 -0
  627. package/esm/validation/database-seal-plugins.d.ts +12 -0
  628. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  629. package/esm/validation/database-seal-plugins.js +1 -0
  630. package/esm/validation/database-seal-plugins.js.map +1 -0
  631. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  632. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  633. package/esm/validation/database-writer-validation-error.js +160 -0
  634. package/esm/validation/database-writer-validation-error.js.map +1 -0
  635. package/esm/validation/index.d.ts +3 -0
  636. package/esm/validation/index.d.ts.map +1 -0
  637. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  638. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  639. package/esm/validation/mutators/embed-mutator.js +33 -0
  640. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  641. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  642. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  643. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  644. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  645. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  646. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  647. package/esm/validation/rules/database-model-rule.js +27 -0
  648. package/esm/validation/rules/database-model-rule.js.map +1 -0
  649. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  650. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  651. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  652. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  653. package/esm/validation/validators/embed-validator.d.ts +21 -0
  654. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  655. package/esm/validation/validators/embed-validator.js +43 -0
  656. package/esm/validation/validators/embed-validator.js.map +1 -0
  657. package/esm/writer/database-writer.d.ts +181 -0
  658. package/esm/writer/database-writer.d.ts.map +1 -0
  659. package/esm/writer/database-writer.js +407 -0
  660. package/esm/writer/database-writer.js.map +1 -0
  661. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb-query-builder.js","sources":["../../../src/drivers/mongodb/mongodb-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
+ * - **data**: 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", data: {...} },
33
+ * // { stage: "$project", mergeable: true, type: "select", data: {...} }
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 data - The operation data 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, data: 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 data - The operation data 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, data: 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 data - The operation data 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, data: 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 data - The operation data 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, data: 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 data - The operation data 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, data: 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 data - The operation data 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, data: Record<string, unknown>, mergeable?: boolean): void;
225
+ }
226
+ //# sourceMappingURL=mongodb-query-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb-query-operations.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongodb/mongodb-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,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI;IAS7F;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,mBAAmB,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,UAAO,GACf,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI;IAS5F;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,iBAAiB,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,UAAQ,GAChB,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACI,YAAY,CACjB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,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
+ * - **data**: 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", data: {...} },
32
+ * // { stage: "$project", mergeable: true, type: "select", data: {...} }
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 data - The operation data 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, data, mergeable = true) {
84
+ this.operations.push({
85
+ stage: "$match",
86
+ mergeable,
87
+ type,
88
+ data,
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 data - The operation data 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, data, mergeable = true) {
117
+ this.operations.push({
118
+ stage: "$project",
119
+ mergeable,
120
+ type,
121
+ data,
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 data - The operation data 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, data, mergeable = true) {
150
+ this.operations.push({
151
+ stage: "$sort",
152
+ mergeable,
153
+ type,
154
+ data,
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 data - The operation data 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, data, mergeable = false) {
183
+ this.operations.push({
184
+ stage: "$group",
185
+ mergeable,
186
+ type,
187
+ data,
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 data - The operation data 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, data) {
222
+ this.operations.push({
223
+ stage: "$lookup",
224
+ mergeable: false,
225
+ type,
226
+ data,
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 data - The operation data 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, data, mergeable = false) {
263
+ this.operations.push({
264
+ stage,
265
+ mergeable,
266
+ type,
267
+ data,
268
+ });
269
+ }
270
+ }export{MongoQueryOperations};//# sourceMappingURL=mongodb-query-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb-query-operations.js","sources":["../../../src/drivers/mongodb/mongodb-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,IAA6B,EAAE,SAAS,GAAG,IAAI,EAAA;AACpF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,QAAQ;YACf,SAAS;YACT,IAAI;YACJ,IAAI;AACL,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,mBAAmB,CACxB,IAAY,EACZ,IAA6B,EAC7B,SAAS,GAAG,IAAI,EAAA;AAEhB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,IAAI;YACJ,IAAI;AACL,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,gBAAgB,CAAC,IAAY,EAAE,IAA6B,EAAE,SAAS,GAAG,IAAI,EAAA;AACnF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,OAAO;YACd,SAAS;YACT,IAAI;YACJ,IAAI;AACL,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,iBAAiB,CACtB,IAAY,EACZ,IAA6B,EAC7B,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,QAAQ;YACf,SAAS;YACT,IAAI;YACJ,IAAI;AACL,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;IACI,kBAAkB,CAAC,IAAY,EAAE,IAA6B,EAAA;AACnE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,SAAS,EAAE,KAAK;YAChB,IAAI;YACJ,IAAI;AACL,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;IACI,YAAY,CACjB,KAAoB,EACpB,IAAY,EACZ,IAA6B,EAC7B,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK;YACL,SAAS;YACT,IAAI;YACJ,IAAI;AACL,SAAA,CAAC,CAAC;KACJ;AACF"}