@effect-app/infra 4.0.0-beta.23 → 4.0.0-beta.231

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 (339) hide show
  1. package/CHANGELOG.md +1726 -0
  2. package/_check.sh +1 -1
  3. package/dist/CUPS.d.ts +12 -7
  4. package/dist/CUPS.d.ts.map +1 -1
  5. package/dist/CUPS.js +16 -12
  6. package/dist/Emailer/Sendgrid.d.ts +15 -15
  7. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  8. package/dist/Emailer/Sendgrid.js +21 -17
  9. package/dist/Emailer/fake.d.ts +1 -1
  10. package/dist/Emailer/fake.js +3 -3
  11. package/dist/Emailer/service.d.ts +13 -4
  12. package/dist/Emailer/service.d.ts.map +1 -1
  13. package/dist/Emailer/service.js +4 -3
  14. package/dist/Emailer.d.ts +1 -1
  15. package/dist/MainFiberSet.d.ts +12 -9
  16. package/dist/MainFiberSet.d.ts.map +1 -1
  17. package/dist/MainFiberSet.js +10 -6
  18. package/dist/Model/Repository/Registry.d.ts +21 -0
  19. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  20. package/dist/Model/Repository/Registry.js +18 -0
  21. package/dist/Model/Repository/ext.d.ts +35 -16
  22. package/dist/Model/Repository/ext.d.ts.map +1 -1
  23. package/dist/Model/Repository/ext.js +60 -3
  24. package/dist/Model/Repository/internal/internal.d.ts +9 -6
  25. package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
  26. package/dist/Model/Repository/internal/internal.js +141 -59
  27. package/dist/Model/Repository/legacy.d.ts +4 -2
  28. package/dist/Model/Repository/legacy.d.ts.map +1 -1
  29. package/dist/Model/Repository/makeRepo.d.ts +10 -6
  30. package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
  31. package/dist/Model/Repository/makeRepo.js +5 -2
  32. package/dist/Model/Repository/service.d.ts +32 -24
  33. package/dist/Model/Repository/service.d.ts.map +1 -1
  34. package/dist/Model/Repository/validation.d.ts +47 -18
  35. package/dist/Model/Repository/validation.d.ts.map +1 -1
  36. package/dist/Model/Repository/validation.js +6 -6
  37. package/dist/Model/Repository.d.ts +2 -1
  38. package/dist/Model/Repository.d.ts.map +1 -1
  39. package/dist/Model/Repository.js +2 -1
  40. package/dist/Model/dsl.d.ts +6 -5
  41. package/dist/Model/dsl.d.ts.map +1 -1
  42. package/dist/Model/dsl.js +2 -3
  43. package/dist/Model/filter/filterApi.d.ts +5 -5
  44. package/dist/Model/filter/filterApi.d.ts.map +1 -1
  45. package/dist/Model/filter/types/errors.d.ts +1 -1
  46. package/dist/Model/filter/types/fields.d.ts +1 -1
  47. package/dist/Model/filter/types/path/common.d.ts +1 -1
  48. package/dist/Model/filter/types/path/eager.d.ts +1 -1
  49. package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
  50. package/dist/Model/filter/types/path/eager.js +1 -1
  51. package/dist/Model/filter/types/path/index.d.ts +1 -1
  52. package/dist/Model/filter/types/utils.d.ts +1 -1
  53. package/dist/Model/filter/types/validator.d.ts +1 -1
  54. package/dist/Model/filter/types.d.ts +1 -1
  55. package/dist/Model/query/dsl.d.ts +216 -18
  56. package/dist/Model/query/dsl.d.ts.map +1 -1
  57. package/dist/Model/query/dsl.js +240 -5
  58. package/dist/Model/query/new-kid-interpreter.d.ts +116 -8
  59. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
  60. package/dist/Model/query/new-kid-interpreter.js +177 -6
  61. package/dist/Model/query.d.ts +1 -1
  62. package/dist/Model.d.ts +2 -1
  63. package/dist/Model.d.ts.map +1 -1
  64. package/dist/Model.js +2 -1
  65. package/dist/QueueMaker/SQLQueue.d.ts +7 -8
  66. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  67. package/dist/QueueMaker/SQLQueue.js +135 -117
  68. package/dist/QueueMaker/errors.d.ts +5 -3
  69. package/dist/QueueMaker/errors.d.ts.map +1 -1
  70. package/dist/QueueMaker/errors.js +4 -2
  71. package/dist/QueueMaker/memQueue.d.ts +9 -5
  72. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  73. package/dist/QueueMaker/memQueue.js +81 -65
  74. package/dist/QueueMaker/sbqueue.d.ts +8 -4
  75. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  76. package/dist/QueueMaker/sbqueue.js +57 -55
  77. package/dist/QueueMaker/service.d.ts +4 -2
  78. package/dist/QueueMaker/service.d.ts.map +1 -1
  79. package/dist/QueueMaker/service.js +1 -1
  80. package/dist/RequestContext.d.ts +75 -35
  81. package/dist/RequestContext.d.ts.map +1 -1
  82. package/dist/RequestContext.js +14 -14
  83. package/dist/RequestFiberSet.d.ts +10 -7
  84. package/dist/RequestFiberSet.d.ts.map +1 -1
  85. package/dist/RequestFiberSet.js +12 -7
  86. package/dist/Store/ContextMapContainer.d.ts +22 -3
  87. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  88. package/dist/Store/ContextMapContainer.js +18 -4
  89. package/dist/Store/Cosmos/query.d.ts +13 -2
  90. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  91. package/dist/Store/Cosmos/query.js +179 -41
  92. package/dist/Store/Cosmos.d.ts +2 -2
  93. package/dist/Store/Cosmos.d.ts.map +1 -1
  94. package/dist/Store/Cosmos.js +343 -244
  95. package/dist/Store/Disk.d.ts +3 -3
  96. package/dist/Store/Disk.d.ts.map +1 -1
  97. package/dist/Store/Disk.js +76 -36
  98. package/dist/Store/Memory.d.ts +7 -4
  99. package/dist/Store/Memory.d.ts.map +1 -1
  100. package/dist/Store/Memory.js +327 -62
  101. package/dist/Store/SQL/Pg.d.ts +4 -0
  102. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  103. package/dist/Store/SQL/Pg.js +233 -0
  104. package/dist/Store/SQL/query.d.ts +49 -0
  105. package/dist/Store/SQL/query.d.ts.map +1 -0
  106. package/dist/Store/SQL/query.js +527 -0
  107. package/dist/Store/SQL.d.ts +21 -0
  108. package/dist/Store/SQL.d.ts.map +1 -0
  109. package/dist/Store/SQL.js +450 -0
  110. package/dist/Store/codeFilter.d.ts +2 -2
  111. package/dist/Store/codeFilter.d.ts.map +1 -1
  112. package/dist/Store/codeFilter.js +6 -3
  113. package/dist/Store/index.d.ts +6 -3
  114. package/dist/Store/index.d.ts.map +1 -1
  115. package/dist/Store/index.js +18 -4
  116. package/dist/Store/service.d.ts +32 -8
  117. package/dist/Store/service.d.ts.map +1 -1
  118. package/dist/Store/service.js +25 -6
  119. package/dist/Store/utils.d.ts +3 -2
  120. package/dist/Store/utils.d.ts.map +1 -1
  121. package/dist/Store/utils.js +5 -5
  122. package/dist/Store.d.ts +1 -1
  123. package/dist/adapters/SQL/Model.d.ts +32 -43
  124. package/dist/adapters/SQL/Model.d.ts.map +1 -1
  125. package/dist/adapters/SQL/Model.js +30 -39
  126. package/dist/adapters/SQL.d.ts +1 -1
  127. package/dist/adapters/ServiceBus.d.ts +14 -11
  128. package/dist/adapters/ServiceBus.d.ts.map +1 -1
  129. package/dist/adapters/ServiceBus.js +30 -21
  130. package/dist/adapters/cosmos-client.d.ts +5 -3
  131. package/dist/adapters/cosmos-client.d.ts.map +1 -1
  132. package/dist/adapters/cosmos-client.js +6 -4
  133. package/dist/adapters/index.d.ts +8 -2
  134. package/dist/adapters/index.d.ts.map +1 -1
  135. package/dist/adapters/index.js +8 -2
  136. package/dist/adapters/logger.d.ts +2 -2
  137. package/dist/adapters/logger.d.ts.map +1 -1
  138. package/dist/adapters/memQueue.d.ts +5 -3
  139. package/dist/adapters/memQueue.d.ts.map +1 -1
  140. package/dist/adapters/memQueue.js +6 -5
  141. package/dist/adapters/mongo-client.d.ts +4 -3
  142. package/dist/adapters/mongo-client.d.ts.map +1 -1
  143. package/dist/adapters/mongo-client.js +5 -3
  144. package/dist/adapters/redis-client.d.ts +6 -3
  145. package/dist/adapters/redis-client.d.ts.map +1 -1
  146. package/dist/adapters/redis-client.js +7 -3
  147. package/dist/api/ContextProvider.d.ts +12 -9
  148. package/dist/api/ContextProvider.d.ts.map +1 -1
  149. package/dist/api/ContextProvider.js +9 -7
  150. package/dist/api/codec.d.ts +1 -1
  151. package/dist/api/internal/RequestContextMiddleware.d.ts +3 -3
  152. package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
  153. package/dist/api/internal/RequestContextMiddleware.js +11 -7
  154. package/dist/api/internal/auth.d.ts +45 -7
  155. package/dist/api/internal/auth.d.ts.map +1 -1
  156. package/dist/api/internal/auth.js +162 -29
  157. package/dist/api/internal/events.d.ts +6 -4
  158. package/dist/api/internal/events.d.ts.map +1 -1
  159. package/dist/api/internal/events.js +16 -9
  160. package/dist/api/internal/health.d.ts +1 -1
  161. package/dist/api/layerUtils.d.ts +15 -7
  162. package/dist/api/layerUtils.d.ts.map +1 -1
  163. package/dist/api/layerUtils.js +7 -6
  164. package/dist/api/middlewares.d.ts +1 -1
  165. package/dist/api/reportError.d.ts +2 -2
  166. package/dist/api/reportError.d.ts.map +1 -1
  167. package/dist/api/reportError.js +3 -2
  168. package/dist/api/routing/middleware/RouterMiddleware.d.ts +5 -4
  169. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  170. package/dist/api/routing/middleware/middleware.d.ts +42 -3
  171. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  172. package/dist/api/routing/middleware/middleware.js +53 -17
  173. package/dist/api/routing/middleware.d.ts +1 -2
  174. package/dist/api/routing/middleware.d.ts.map +1 -1
  175. package/dist/api/routing/middleware.js +1 -2
  176. package/dist/api/routing/schema/jwt.d.ts +1 -1
  177. package/dist/api/routing/schema/jwt.d.ts.map +1 -1
  178. package/dist/api/routing/schema/jwt.js +3 -2
  179. package/dist/api/routing/tsort.d.ts +1 -1
  180. package/dist/api/routing/tsort.d.ts.map +1 -1
  181. package/dist/api/routing/utils.d.ts +4 -4
  182. package/dist/api/routing/utils.d.ts.map +1 -1
  183. package/dist/api/routing/utils.js +3 -2
  184. package/dist/api/routing.d.ts +84 -38
  185. package/dist/api/routing.d.ts.map +1 -1
  186. package/dist/api/routing.js +115 -45
  187. package/dist/api/setupRequest.d.ts +10 -6
  188. package/dist/api/setupRequest.d.ts.map +1 -1
  189. package/dist/api/setupRequest.js +19 -11
  190. package/dist/api/util.d.ts +1 -1
  191. package/dist/arbs.d.ts +2 -2
  192. package/dist/arbs.d.ts.map +1 -1
  193. package/dist/arbs.js +5 -3
  194. package/dist/errorReporter.d.ts +7 -5
  195. package/dist/errorReporter.d.ts.map +1 -1
  196. package/dist/errorReporter.js +22 -26
  197. package/dist/errors.d.ts +1 -1
  198. package/dist/fileUtil.d.ts +2 -2
  199. package/dist/fileUtil.d.ts.map +1 -1
  200. package/dist/fileUtil.js +2 -2
  201. package/dist/index.d.ts +1 -1
  202. package/dist/logger/jsonLogger.d.ts +2 -2
  203. package/dist/logger/jsonLogger.d.ts.map +1 -1
  204. package/dist/logger/jsonLogger.js +4 -2
  205. package/dist/logger/logFmtLogger.d.ts +2 -2
  206. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  207. package/dist/logger/logFmtLogger.js +2 -2
  208. package/dist/logger/shared.d.ts +2 -2
  209. package/dist/logger/shared.d.ts.map +1 -1
  210. package/dist/logger/shared.js +3 -3
  211. package/dist/logger.d.ts +1 -1
  212. package/dist/logger.d.ts.map +1 -1
  213. package/dist/otel.d.ts +75 -0
  214. package/dist/otel.d.ts.map +1 -0
  215. package/dist/otel.js +65 -0
  216. package/dist/rateLimit.d.ts +12 -4
  217. package/dist/rateLimit.d.ts.map +1 -1
  218. package/dist/rateLimit.js +7 -12
  219. package/dist/test.d.ts +3 -3
  220. package/dist/test.d.ts.map +1 -1
  221. package/dist/test.js +2 -2
  222. package/dist/vitest.d.ts +1 -1
  223. package/examples/query.ts +46 -38
  224. package/package.json +46 -37
  225. package/src/CUPS.ts +15 -11
  226. package/src/Emailer/Sendgrid.ts +65 -57
  227. package/src/Emailer/fake.ts +2 -2
  228. package/src/Emailer/service.ts +13 -3
  229. package/src/MainFiberSet.ts +12 -10
  230. package/src/Model/Repository/Registry.ts +34 -0
  231. package/src/Model/Repository/ext.ts +103 -11
  232. package/src/Model/Repository/internal/internal.ts +266 -151
  233. package/src/Model/Repository/legacy.ts +3 -1
  234. package/src/Model/Repository/makeRepo.ts +15 -10
  235. package/src/Model/Repository/service.ts +35 -23
  236. package/src/Model/Repository/validation.ts +5 -5
  237. package/src/Model/Repository.ts +1 -0
  238. package/src/Model/dsl.ts +5 -4
  239. package/src/Model/filter/types/path/eager.ts +1 -2
  240. package/src/Model/query/dsl.ts +456 -20
  241. package/src/Model/query/new-kid-interpreter.ts +281 -7
  242. package/src/Model.ts +1 -0
  243. package/src/QueueMaker/SQLQueue.ts +150 -153
  244. package/src/QueueMaker/errors.ts +3 -1
  245. package/src/QueueMaker/memQueue.ts +111 -105
  246. package/src/QueueMaker/sbqueue.ts +76 -88
  247. package/src/QueueMaker/service.ts +3 -1
  248. package/src/RequestContext.ts +15 -16
  249. package/src/RequestFiberSet.ts +12 -7
  250. package/src/Store/ContextMapContainer.ts +46 -3
  251. package/src/Store/Cosmos/query.ts +214 -50
  252. package/src/Store/Cosmos.ts +491 -350
  253. package/src/Store/Disk.ts +106 -66
  254. package/src/Store/Memory.ts +365 -91
  255. package/src/Store/SQL/Pg.ts +364 -0
  256. package/src/Store/SQL/query.ts +603 -0
  257. package/src/Store/SQL.ts +736 -0
  258. package/src/Store/codeFilter.ts +5 -2
  259. package/src/Store/index.ts +20 -3
  260. package/src/Store/service.ts +51 -10
  261. package/src/Store/utils.ts +25 -23
  262. package/src/adapters/SQL/Model.ts +42 -41
  263. package/src/adapters/ServiceBus.ts +131 -121
  264. package/src/adapters/cosmos-client.ts +5 -3
  265. package/src/adapters/index.ts +7 -0
  266. package/src/adapters/memQueue.ts +5 -4
  267. package/src/adapters/mongo-client.ts +4 -2
  268. package/src/adapters/redis-client.ts +6 -2
  269. package/src/api/ContextProvider.ts +19 -16
  270. package/src/api/internal/RequestContextMiddleware.ts +17 -6
  271. package/src/api/internal/auth.ts +248 -44
  272. package/src/api/internal/events.ts +19 -10
  273. package/src/api/layerUtils.ts +13 -9
  274. package/src/api/reportError.ts +2 -1
  275. package/src/api/routing/middleware/RouterMiddleware.ts +5 -4
  276. package/src/api/routing/middleware/middleware.ts +60 -15
  277. package/src/api/routing/middleware.ts +0 -2
  278. package/src/api/routing/schema/jwt.ts +2 -1
  279. package/src/api/routing/utils.ts +2 -1
  280. package/src/api/routing.ts +309 -139
  281. package/src/api/setupRequest.ts +35 -12
  282. package/src/arbs.ts +5 -3
  283. package/src/errorReporter.ts +65 -75
  284. package/src/fileUtil.ts +1 -1
  285. package/src/logger/jsonLogger.ts +3 -1
  286. package/src/logger/logFmtLogger.ts +1 -1
  287. package/src/logger/shared.ts +3 -2
  288. package/src/otel.ts +152 -0
  289. package/src/rateLimit.ts +34 -23
  290. package/src/test.ts +2 -2
  291. package/test/auth.test.ts +101 -0
  292. package/test/contextProvider.test.ts +14 -11
  293. package/test/controller.test.ts +25 -29
  294. package/test/cosmos-query.test.ts +159 -0
  295. package/test/dist/auth.test.d.ts.map +1 -0
  296. package/test/dist/contextProvider.test.d.ts.map +1 -1
  297. package/test/dist/controller.test.d.ts.map +1 -1
  298. package/test/dist/cosmos-query.test.d.ts.map +1 -0
  299. package/test/dist/date-query.test.d.ts.map +1 -0
  300. package/test/dist/fixtures.d.ts +30 -12
  301. package/test/dist/fixtures.d.ts.map +1 -1
  302. package/test/dist/fixtures.js +17 -10
  303. package/test/dist/query.test.d.ts.map +1 -1
  304. package/test/dist/rawQuery.test.d.ts.map +1 -1
  305. package/test/dist/repository-ext.test.d.ts.map +1 -0
  306. package/test/dist/requires.test.d.ts.map +1 -1
  307. package/test/dist/router-generator.test.d.ts.map +1 -0
  308. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  309. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  310. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  311. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  312. package/test/dist/sql-store.test.d.ts.map +1 -0
  313. package/test/fixtures.ts +16 -9
  314. package/test/layerUtils.test.ts +1 -1
  315. package/test/query.test.ts +901 -38
  316. package/test/rawQuery.test.ts +338 -20
  317. package/test/repository-ext.test.ts +62 -0
  318. package/test/requires.test.ts +10 -5
  319. package/test/router-generator.test.ts +187 -0
  320. package/test/routing-interruptibility.test.ts +66 -0
  321. package/test/rpc-e2e-invalidation.test.ts +256 -0
  322. package/test/rpc-multi-middleware.test.ts +84 -9
  323. package/test/rpc-stream-fullstack.test.ts +304 -0
  324. package/test/sql-store.test.ts +1711 -0
  325. package/test/validateSample.test.ts +17 -12
  326. package/tsconfig.examples.json +1 -1
  327. package/tsconfig.json +0 -1
  328. package/tsconfig.json.bak +2 -2
  329. package/tsconfig.src.json +35 -35
  330. package/tsconfig.test.json +2 -2
  331. package/dist/Operations.d.ts +0 -55
  332. package/dist/Operations.d.ts.map +0 -1
  333. package/dist/Operations.js +0 -102
  334. package/dist/OperationsRepo.d.ts +0 -41
  335. package/dist/OperationsRepo.d.ts.map +0 -1
  336. package/dist/OperationsRepo.js +0 -14
  337. package/eslint.config.mjs +0 -24
  338. package/src/Operations.ts +0 -235
  339. package/src/OperationsRepo.ts +0 -16
@@ -1,7 +1,6 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
- import { Data, flow, Pipeable } from "effect-app";
1
+ import * as Data from "effect/Data";
2
+ import { flow } from "effect/Function";
3
+ import * as Pipeable from "effect/Pipeable";
5
4
  export const QId = Symbol();
6
5
  export class Initial extends Data.TaggedClass("value") {
7
6
  [QId];
@@ -100,5 +99,241 @@ export const one = (current) => new One({
100
99
  });
101
100
  // it's better to implement a distinct count so that the implementation can be optimised per adapter
102
101
  export const count = (current) => new Count({ current });
102
+ /**
103
+ * Attach a projection schema to a query.
104
+ *
105
+ * The `select` clause sent to the store is derived from the schema's encoded
106
+ * AST property names (top-level + per-array sub-keys), so a projection always
107
+ * narrows what is read from the store. The repository augments that select
108
+ * with `id` and `_etag` for change tracking. See {@link toFilter} and the
109
+ * dispatch in `Repository/internal/internal.ts`.
110
+ *
111
+ * Modes — pick based on shape of the decoded value and on whether the
112
+ * persistence-model (PM) reverse-mapping is needed:
113
+ *
114
+ * - `"transform"` (default when `mode` omitted): goes through the repo's
115
+ * `parseMany` pipeline. The raw row is reverse-mapped via the
116
+ * etag/PM cache (re-injecting `_etag` and any PM-shape state) before
117
+ * decoding. Decode failures `orDie` (error channel = `never`). Use when
118
+ * the schema operates on the full PM shape (e.g. full-entity reads that
119
+ * must preserve etag tracking).
120
+ *
121
+ * - `"project"`: decodes the raw encoded row directly with the supplied
122
+ * schema. No PM reverse-mapping, no etag cache merge. Decode failures
123
+ * surface as `S.SchemaError`. Use for slim DTOs / aggregations that do not
124
+ * need etag tracking and whose schema input is a plain subset of `Encoded`.
125
+ *
126
+ * - `"collect"`: like `"project"`, but the schema yields `Option<A>` and
127
+ * `None` values are dropped post-decode (`Array.getSomes`). Use to filter
128
+ * rows during decode (e.g. discriminated-union narrowing where some rows
129
+ * should not appear in the result).
130
+ */
103
131
  export const project = (schema, mode = "transform") => (current) => new Project({ current, schema, mode });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01vZGVsL3F1ZXJ5L2RzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsMERBQTBEO0FBQzFELHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBZSxRQUFRLEVBQVUsTUFBTSxZQUFZLENBQUE7QUFvQnRFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQXVGM0IsTUFBTSxPQUFPLE9BQTBDLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQXVCO0lBR25HLENBQUMsR0FBRyxDQUFDLENBQU07SUFDcEI7UUFDRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBa0IsRUFBRSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUNRLElBQUk7UUFDWCw4Q0FBOEM7UUFDOUMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sS0FBd0MsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FLbkY7SUFDUyxDQUFDLEdBQUcsQ0FBQyxDQUFNO0lBRVgsSUFBSTtRQUNYLDhDQUE4QztRQUM5QyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxHQUFzQyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUkvRTtJQUNTLENBQUMsR0FBRyxDQUFDLENBQU07SUFDWCxJQUFJO1FBQ1gsOENBQThDO1FBQzlDLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDaEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLEVBQXFDLFNBQVEsSUFBSSxDQUFDLFdBQVcs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
132
+ export const relation = (path) => ({
133
+ length: () => ({
134
+ _tag: "relation-length",
135
+ path: path
136
+ }),
137
+ count: (operation) => operation
138
+ ? {
139
+ _tag: "relation-count",
140
+ path: path,
141
+ operation
142
+ }
143
+ : {
144
+ _tag: "relation-count",
145
+ path: path
146
+ },
147
+ any: (operation) => operation
148
+ ? {
149
+ _tag: "relation-any",
150
+ path: path,
151
+ operation
152
+ }
153
+ : {
154
+ _tag: "relation-any",
155
+ path: path
156
+ },
157
+ every: (operation) => ({
158
+ _tag: "relation-every",
159
+ path: path,
160
+ operation
161
+ }),
162
+ distinctCount: (field, operation) => operation
163
+ ? {
164
+ _tag: "relation-distinct-count",
165
+ path: path,
166
+ field,
167
+ operation
168
+ }
169
+ : {
170
+ _tag: "relation-distinct-count",
171
+ path: path,
172
+ field
173
+ },
174
+ sum: (field, operation) => operation
175
+ ? {
176
+ _tag: "relation-sum",
177
+ path: path,
178
+ field,
179
+ operation
180
+ }
181
+ : {
182
+ _tag: "relation-sum",
183
+ path: path,
184
+ field
185
+ },
186
+ sumExpr: (expression, operation) => operation
187
+ ? {
188
+ _tag: "relation-sum-expr",
189
+ path: path,
190
+ expression,
191
+ operation
192
+ }
193
+ : {
194
+ _tag: "relation-sum-expr",
195
+ path: path,
196
+ expression
197
+ },
198
+ sumExprBy: (expression, options, operation) => operation
199
+ ? {
200
+ _tag: "relation-sum-expr-by",
201
+ path: path,
202
+ expression,
203
+ unit: options.unit,
204
+ operation
205
+ }
206
+ : {
207
+ _tag: "relation-sum-expr-by",
208
+ path: path,
209
+ expression,
210
+ unit: options.unit
211
+ },
212
+ sumExprNormalized: (expression, options, operation) => operation
213
+ ? {
214
+ _tag: "relation-sum-expr-normalized",
215
+ path: path,
216
+ expression,
217
+ unit: options.unit,
218
+ toBase: options.toBase,
219
+ factors: options.factors,
220
+ operation
221
+ }
222
+ : {
223
+ _tag: "relation-sum-expr-normalized",
224
+ path: path,
225
+ expression,
226
+ unit: options.unit,
227
+ toBase: options.toBase,
228
+ factors: options.factors
229
+ },
230
+ collect: (field, operation) => operation
231
+ ? {
232
+ _tag: "relation-collect",
233
+ path: path,
234
+ field,
235
+ distinct: false,
236
+ operation
237
+ }
238
+ : {
239
+ _tag: "relation-collect",
240
+ path: path,
241
+ field,
242
+ distinct: false
243
+ },
244
+ collectDistinct: (field, operation) => operation
245
+ ? {
246
+ _tag: "relation-collect",
247
+ path: path,
248
+ field,
249
+ distinct: true,
250
+ operation
251
+ }
252
+ : {
253
+ _tag: "relation-collect",
254
+ path: path,
255
+ field,
256
+ distinct: true
257
+ },
258
+ collectFields: (fields, operation) => operation
259
+ ? {
260
+ _tag: "relation-collect-fields",
261
+ path: path,
262
+ fields,
263
+ distinct: false,
264
+ operation
265
+ }
266
+ : {
267
+ _tag: "relation-collect-fields",
268
+ path: path,
269
+ fields,
270
+ distinct: false
271
+ },
272
+ collectDistinctFields: (fields, operation) => operation
273
+ ? {
274
+ _tag: "relation-collect-fields",
275
+ path: path,
276
+ fields,
277
+ distinct: true,
278
+ operation
279
+ }
280
+ : {
281
+ _tag: "relation-collect-fields",
282
+ path: path,
283
+ fields,
284
+ distinct: true
285
+ }
286
+ });
287
+ export const expr = {
288
+ field: (field) => ({ _tag: "field", field }),
289
+ mul: (left, right) => ({ _tag: "mul", left, right })
290
+ };
291
+ export const computed = (value) => value;
292
+ export const projectComputed = (schema, computedProjection, mode = "project") => (current) => new Project({ current, schema, mode, computed: computedProjection });
293
+ /**
294
+ * DSL helpers for building aggregate expressions used with {@link aggregate}.
295
+ *
296
+ * - `agg.field(path)` — references a document field for GROUP BY (with optional output alias)
297
+ * - `agg.count()` — COUNT(*) across all rows in the group
298
+ * - `agg.countWhen(op)` — COUNT of rows matching the filter operation
299
+ * - `agg.sum(field)` — SUM of a numeric document field
300
+ * - `agg.min(field)` / `agg.max(field)` — MIN/MAX of a document field
301
+ */
302
+ export const agg = {
303
+ field: (path) => ({ _tag: "agg-field", path }),
304
+ count: () => ({ _tag: "agg-count" }),
305
+ countWhen: (operation) => ({
306
+ _tag: "agg-count-when",
307
+ operation
308
+ }),
309
+ sum: (field) => ({ _tag: "agg-sum", field }),
310
+ min: (field) => ({ _tag: "agg-min", field }),
311
+ max: (field) => ({ _tag: "agg-max", field })
312
+ };
313
+ /**
314
+ * Attach an aggregate projection to a query, performing GROUP BY + aggregate functions at the
315
+ * database level instead of fetching all rows and grouping in memory.
316
+ *
317
+ * The `aggregateMap` maps each output field name to either:
318
+ * - `agg.field(path)` — a group-by field (document path → output alias)
319
+ * - `agg.count()` / `agg.countWhen(op)` / `agg.sum(f)` / `agg.min(f)` / `agg.max(f)` — an aggregate
320
+ *
321
+ * The output is decoded directly with `schema` (no PM reverse-mapping, no etag tracking).
322
+ * Decode failures surface as `S.SchemaError`.
323
+ *
324
+ * @example
325
+ * ```ts
326
+ * repo.query(
327
+ * where("status", "active"),
328
+ * aggregate(
329
+ * S.Struct({ city: S.String, count: S.Number }),
330
+ * {
331
+ * city: agg.field("address.city"),
332
+ * count: agg.countWhen((q) => q.pipe(where("active", true)))
333
+ * }
334
+ * )
335
+ * )
336
+ * ```
337
+ */
338
+ export const aggregate = (schema, aggregateMap) => (current) => new Project({ current, schema, mode: "aggregate", aggregateMap });
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01vZGVsL3F1ZXJ5L2RzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQW1CM0MsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFBO0FBME0zQixNQUFNLE9BQU8sT0FBMEMsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBdUI7SUFHbkcsQ0FBQyxHQUFHLENBQUMsQ0FBTTtJQUNwQjtRQUNFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFrQixFQUFFLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBQ1EsSUFBSTtRQUNYLDhDQUE4QztRQUM5QyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxLQUF3QyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUtuRjtJQUNTLENBQUMsR0FBRyxDQUFDLENBQU07SUFFWCxJQUFJO1FBQ1gsOENBQThDO1FBQzlDLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDaEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLEdBQXNDLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBSS9FO0lBQ1MsQ0FBQyxHQUFHLENBQUMsQ0FBTTtJQUNYLElBQUk7UUFDWCw4Q0FBOEM7UUFDOUMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sRUFBcUMsU0FB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
@@ -1,19 +1,127 @@
1
- import { S } from "effect-app";
1
+ import * as S from "effect-app/Schema";
2
2
  import type { FilterResult } from "../filter/filterApi.js";
3
3
  import type { FieldValues } from "../filter/types.js";
4
4
  import { type QAll } from "../query/dsl.js";
5
- export declare const toFilter: <TFieldValues extends FieldValues, A, R, TFieldValuesRefined extends TFieldValues = TFieldValues>(q: QAll<TFieldValues, TFieldValuesRefined, A, R>) => {
5
+ export type AggregateIrExpression = {
6
+ readonly _tag: "agg-count";
7
+ } | {
8
+ readonly _tag: "agg-count-when";
9
+ readonly filter: readonly FilterResult[];
10
+ } | {
11
+ readonly _tag: "agg-sum";
12
+ readonly field: string;
13
+ } | {
14
+ readonly _tag: "agg-min";
15
+ readonly field: string;
16
+ } | {
17
+ readonly _tag: "agg-max";
18
+ readonly field: string;
19
+ };
20
+ export type AggregateIrItem = AggregateIrExpression | {
21
+ readonly _tag: "agg-field";
22
+ readonly path: string;
23
+ };
24
+ export type ComputedProjectionMathIrExpression = {
25
+ readonly _tag: "field";
26
+ readonly field: string;
27
+ } | {
28
+ readonly _tag: "mul";
29
+ readonly left: ComputedProjectionMathIrExpression;
30
+ readonly right: ComputedProjectionMathIrExpression;
31
+ };
32
+ export type ComputedProjectionIrExpression = {
33
+ readonly _tag: "relation-count";
34
+ readonly path: string;
35
+ readonly filter: readonly FilterResult[];
36
+ } | {
37
+ readonly _tag: "relation-any";
38
+ readonly path: string;
39
+ readonly filter: readonly FilterResult[];
40
+ } | {
41
+ readonly _tag: "relation-every";
42
+ readonly path: string;
43
+ readonly filter: readonly FilterResult[];
44
+ } | {
45
+ readonly _tag: "relation-distinct-count";
46
+ readonly path: string;
47
+ readonly field: string;
48
+ readonly filter: readonly FilterResult[];
49
+ } | {
50
+ readonly _tag: "relation-sum";
51
+ readonly path: string;
52
+ readonly field: string;
53
+ readonly filter: readonly FilterResult[];
54
+ } | {
55
+ readonly _tag: "relation-sum-expr";
56
+ readonly path: string;
57
+ readonly expression: ComputedProjectionMathIrExpression;
58
+ readonly filter: readonly FilterResult[];
59
+ } | {
60
+ readonly _tag: "relation-sum-expr-by";
61
+ readonly path: string;
62
+ readonly expression: ComputedProjectionMathIrExpression;
63
+ readonly unit: string;
64
+ readonly filter: readonly FilterResult[];
65
+ } | {
66
+ readonly _tag: "relation-sum-expr-normalized";
67
+ readonly path: string;
68
+ readonly expression: ComputedProjectionMathIrExpression;
69
+ readonly unit: string;
70
+ readonly toBase: string;
71
+ readonly factors: Readonly<Record<string, number>>;
72
+ readonly filter: readonly FilterResult[];
73
+ } | {
74
+ readonly _tag: "relation-collect";
75
+ readonly path: string;
76
+ readonly field: string;
77
+ readonly distinct: boolean;
78
+ readonly filter: readonly FilterResult[];
79
+ } | {
80
+ readonly _tag: "relation-collect-fields";
81
+ readonly path: string;
82
+ readonly fields: readonly string[];
83
+ readonly distinct: boolean;
84
+ readonly filter: readonly FilterResult[];
85
+ } | {
86
+ readonly _tag: "relation-length";
87
+ readonly path: string;
88
+ };
89
+ export declare const toFilter: <TFieldValues extends FieldValues, A, R, TFieldValuesRefined extends TFieldValues = TFieldValues>(q: QAll<TFieldValues, TFieldValuesRefined, A, R>, baseSchema?: S.Schema<unknown>) => {
90
+ t: Exclude<TFieldValues, undefined>;
91
+ limit: number;
92
+ skip: number;
93
+ select: any;
94
+ schema: S.Codec<any, TFieldValues, any, never>;
95
+ computed: never;
96
+ order: readonly [{
97
+ key: import("../filter/types/path/eager.js").Path<TFieldValues>;
98
+ direction: "ASC" | "DESC";
99
+ }, ...{
100
+ key: import("../filter/types/path/eager.js").Path<TFieldValues>;
101
+ direction: "ASC" | "DESC";
102
+ }[]];
103
+ ttype: "count" | "many" | "one";
104
+ mode: "aggregate";
105
+ filter: FilterResult[];
106
+ } | {
6
107
  t: Exclude<TFieldValues, undefined>;
7
108
  limit: number;
8
109
  skip: number;
9
- select: readonly [keyof TFieldValues | {
110
+ select: readonly [{
10
111
  key: string;
11
112
  subKeys: string[];
12
- }, ...(keyof TFieldValues | {
113
+ } | {
114
+ key: string;
115
+ computed: ComputedProjectionIrExpression;
116
+ } | keyof TFieldValues, ...({
13
117
  key: string;
14
118
  subKeys: string[];
15
- })[]];
119
+ } | {
120
+ key: string;
121
+ computed: ComputedProjectionIrExpression;
122
+ } | keyof TFieldValues)[]];
16
123
  schema: S.Codec<any, TFieldValues, any, never>;
124
+ computed: Record<string, ComputedProjectionIrExpression>;
17
125
  order: readonly [{
18
126
  key: import("../filter/types/path/eager.js").Path<TFieldValues>;
19
127
  direction: "ASC" | "DESC";
@@ -21,8 +129,8 @@ export declare const toFilter: <TFieldValues extends FieldValues, A, R, TFieldVa
21
129
  key: import("../filter/types/path/eager.js").Path<TFieldValues>;
22
130
  direction: "ASC" | "DESC";
23
131
  }[]];
24
- ttype: "one" | "count" | "many";
25
- mode: "project" | "collect" | "transform";
132
+ ttype: "count" | "many" | "one";
133
+ mode: "aggregate" | "collect" | "project" | "transform";
26
134
  filter: FilterResult[];
27
135
  };
28
- //# sourceMappingURL=new-kid-interpreter.d.ts.map
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWtpZC1pbnRlcnByZXRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01vZGVsL3F1ZXJ5L25ldy1raWQtaW50ZXJwcmV0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxLQUFLLENBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUt0QyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVyRCxPQUFPLEVBQWdCLEtBQUssSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFekQsTUFBTSxNQUFNLHFCQUFxQixHQUM3QjtJQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFBO0NBQUUsR0FDOUI7SUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDO0lBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLFlBQVksRUFBRSxDQUFBO0NBQUUsR0FDN0U7SUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztJQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDcEQ7SUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztJQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDcEQ7SUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztJQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQTtBQUV4RCxNQUFNLE1BQU0sZUFBZSxHQUN2QixxQkFBcUIsR0FDckI7SUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQztJQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQTtBQUV6RCxNQUFNLE1BQU0sa0NBQWtDLEdBQzFDO0lBQ0EsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUE7SUFDdEIsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUE7Q0FDdkIsR0FDQztJQUNBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFBO0lBQ3BCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0NBQWtDLENBQUE7SUFDakQsUUFBUSxDQUFDLEtBQUssRUFBRSxrQ0FBa0MsQ0FBQTtDQUNuRCxDQUFBO0FBRUgsTUFBTSxNQUFNLDhCQUE4QixHQUN0QztJQUNBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUE7SUFDL0IsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDckIsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLFlBQVksRUFBRSxDQUFBO0NBQ3pDLEdBQ0M7SUFDQSxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQTtJQUM3QixRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQTtJQUNyQixRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsWUFBWSxFQUFFLENBQUE7Q0FDekMsR0FDQztJQUNBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUE7SUFDL0IsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDckIsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLFlBQVksRUFBRSxDQUFBO0NBQ3pDLEdBQ0M7SUFDQSxRQUFRLENBQUMsSUFBSSxFQUFFLHlCQUF5QixDQUFBO0lBQ3hDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ3JCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0lBQ3RCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxZQUFZLEVBQUUsQ0FBQTtDQUN6QyxHQUNDO0lBQ0EsUUFBUSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUE7SUFDN0IsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDckIsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUE7SUFDdEIsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLFlBQVksRUFBRSxDQUFBO0NBQ3pDLEdBQ0M7SUFDQSxRQUFRLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFBO0lBQ2xDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ3JCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsa0NBQWtDLENBQUE7SUFDdkQsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLFlBQVksRUFBRSxDQUFBO0NBQ3pDLEdBQ0M7SUFDQSxRQUFRLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFBO0lBQ3JDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ3JCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsa0NBQWtDLENBQUE7SUFDdkQsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDckIsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLFlBQVksRUFBRSxDQUFBO0NBQ3pDLEdBQ0M7SUFDQSxRQUFRLENBQUMsSUFBSSxFQUFFLDhCQUE4QixDQUFBO0lBQzdDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ3JCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsa0NBQWtDLENBQUE7SUFDdkQsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDckIsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7SUFDdkIsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ2xELFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxZQUFZLEVBQUUsQ0FBQTtDQUN6QyxHQUNDO0lBQ0EsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQTtJQUNqQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQTtJQUNyQixRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtJQUN0QixRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQTtJQUMxQixRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsWUFBWSxFQUFFLENBQUE7Q0FDekMsR0FDQztJQUNBLFFBQVEsQ0FBQyxJQUFJLEVBQUUseUJBQXlCLENBQUE7SUFDeEMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDckIsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLE1BQU0sRUFBRSxDQUFBO0lBQ2xDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO0lBQzFCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxZQUFZLEVBQUUsQ0FBQTtDQUN6QyxHQUNDO0lBQ0EsUUFBUSxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQTtJQUNoQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQTtDQUN0QixDQUFBO0FBK1BILGVBQU8sTUFBTSxRQUFRLEdBQ25CLFlBQVksU0FBUyxXQUFXLEVBQ2hDLENBQUMsRUFDRCxDQUFDLEVBQ0QsbUJBQW1CLFNBQVMsWUFBWSxvQkFFckMsSUFBSSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQ25DLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDOzs7O1lBaUJtQyxHQUFHOzs7OzttQkFoUmxCLEtBQUssR0FBRyxNQUFNOzs7Ozs7VUFxUnRELFdBQVc7Ozs7Ozs7YUFNb0IsTUFBTTtpQkFBVyxNQUFNLEVBQUU7O2FBQzNELE1BQU07a0JBQ0QsOEJBQThCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVGM0MsQ0FBQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"new-kid-interpreter.d.ts","sourceRoot":"","sources":["../../../src/Model/query/new-kid-interpreter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,CAAC,EAAE,MAAM,YAAY,CAAA;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAgB,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAiJzD,eAAO,MAAM,QAAQ,GACnB,YAAY,SAAS,WAAW,EAChC,CAAC,EACD,CAAC,EACD,mBAAmB,SAAS,YAAY,GAAG,YAAY,EAEvD,GAAG,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;aAKP,MAAM;iBAAW,MAAM,EAAE;;aAAzB,MAAM;iBAAW,MAAM,EAAE;;;;;mBArJhB,KAAK,GAAG,MAAM;;;mBAAd,KAAK,GAAG,MAAM;;;;;CAkMjE,CAAA"}
1
+ {"version":3,"file":"new-kid-interpreter.d.ts","sourceRoot":"","sources":["../../../src/Model/query/new-kid-interpreter.ts"],"names":[],"mappings":"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"}