@manifesto-ai/core 0.2.0 → 1.0.0

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 (259) hide show
  1. package/README.md +130 -368
  2. package/dist/core/apply.d.ts +16 -0
  3. package/dist/core/apply.d.ts.map +1 -0
  4. package/dist/core/apply.js +52 -0
  5. package/dist/core/apply.js.map +1 -0
  6. package/dist/core/compute.d.ts +17 -0
  7. package/dist/core/compute.d.ts.map +1 -0
  8. package/dist/core/compute.js +197 -0
  9. package/dist/core/compute.js.map +1 -0
  10. package/dist/core/compute.test.d.ts +2 -0
  11. package/dist/core/compute.test.d.ts.map +1 -0
  12. package/dist/core/compute.test.js +400 -0
  13. package/dist/core/compute.test.js.map +1 -0
  14. package/dist/core/explain.d.ts +14 -0
  15. package/dist/core/explain.d.ts.map +1 -0
  16. package/dist/core/explain.js +74 -0
  17. package/dist/core/explain.js.map +1 -0
  18. package/dist/core/index.d.ts +5 -0
  19. package/dist/core/index.d.ts.map +1 -0
  20. package/dist/core/index.js +5 -0
  21. package/dist/core/index.js.map +1 -0
  22. package/dist/core/validate.d.ts +15 -0
  23. package/dist/core/validate.d.ts.map +1 -0
  24. package/dist/core/validate.js +143 -0
  25. package/dist/core/validate.js.map +1 -0
  26. package/dist/core/validate.test.d.ts +2 -0
  27. package/dist/core/validate.test.d.ts.map +1 -0
  28. package/dist/core/validate.test.js +450 -0
  29. package/dist/core/validate.test.js.map +1 -0
  30. package/dist/errors.d.ts +30 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +51 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/evaluator/computed.d.ts +14 -0
  35. package/dist/evaluator/computed.d.ts.map +1 -0
  36. package/dist/evaluator/computed.js +57 -0
  37. package/dist/evaluator/computed.js.map +1 -0
  38. package/dist/evaluator/context.d.ts +46 -0
  39. package/dist/evaluator/context.d.ts.map +1 -0
  40. package/dist/evaluator/context.js +35 -0
  41. package/dist/evaluator/context.js.map +1 -0
  42. package/dist/evaluator/dag.d.ts +30 -0
  43. package/dist/evaluator/dag.d.ts.map +1 -0
  44. package/dist/evaluator/dag.js +121 -0
  45. package/dist/evaluator/dag.js.map +1 -0
  46. package/dist/evaluator/expr.d.ts +11 -0
  47. package/dist/evaluator/expr.d.ts.map +1 -0
  48. package/dist/evaluator/expr.js +498 -0
  49. package/dist/evaluator/expr.js.map +1 -0
  50. package/dist/evaluator/expr.test.d.ts +2 -0
  51. package/dist/evaluator/expr.test.d.ts.map +1 -0
  52. package/dist/evaluator/expr.test.js +426 -0
  53. package/dist/evaluator/expr.test.js.map +1 -0
  54. package/dist/evaluator/flow.d.ts +35 -0
  55. package/dist/evaluator/flow.d.ts.map +1 -0
  56. package/dist/evaluator/flow.js +234 -0
  57. package/dist/evaluator/flow.js.map +1 -0
  58. package/dist/evaluator/flow.test.d.ts +2 -0
  59. package/dist/evaluator/flow.test.d.ts.map +1 -0
  60. package/dist/evaluator/flow.test.js +446 -0
  61. package/dist/evaluator/flow.test.js.map +1 -0
  62. package/dist/evaluator/index.d.ts +6 -0
  63. package/dist/evaluator/index.d.ts.map +1 -0
  64. package/dist/evaluator/index.js +6 -0
  65. package/dist/evaluator/index.js.map +1 -0
  66. package/dist/factories.d.ts +20 -0
  67. package/dist/factories.d.ts.map +1 -0
  68. package/dist/factories.js +43 -0
  69. package/dist/factories.js.map +1 -0
  70. package/dist/index.d.ts +46 -11
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +30 -45
  73. package/dist/index.js.map +1 -1
  74. package/dist/index.test.d.ts +2 -0
  75. package/dist/index.test.d.ts.map +1 -0
  76. package/dist/index.test.js +13 -0
  77. package/dist/index.test.js.map +1 -0
  78. package/dist/schema/action.d.ts +14 -0
  79. package/dist/schema/action.d.ts.map +1 -0
  80. package/dist/schema/action.js +30 -0
  81. package/dist/schema/action.js.map +1 -0
  82. package/dist/schema/common.d.ts +37 -0
  83. package/dist/schema/common.d.ts.map +1 -0
  84. package/dist/schema/common.js +20 -0
  85. package/dist/schema/common.js.map +1 -0
  86. package/dist/schema/computed.d.ts +23 -0
  87. package/dist/schema/computed.d.ts.map +1 -0
  88. package/dist/schema/computed.js +34 -0
  89. package/dist/schema/computed.js.map +1 -0
  90. package/dist/schema/domain.d.ts +46 -0
  91. package/dist/schema/domain.d.ts.map +1 -0
  92. package/dist/schema/domain.js +54 -0
  93. package/dist/schema/domain.js.map +1 -0
  94. package/dist/schema/expr.d.ts +260 -0
  95. package/dist/schema/expr.d.ts.map +1 -0
  96. package/dist/schema/expr.js +247 -0
  97. package/dist/schema/expr.js.map +1 -0
  98. package/dist/schema/field.d.ts +48 -0
  99. package/dist/schema/field.d.ts.map +1 -0
  100. package/dist/schema/field.js +31 -0
  101. package/dist/schema/field.js.map +1 -0
  102. package/dist/schema/flow.d.ts +103 -0
  103. package/dist/schema/flow.d.ts.map +1 -0
  104. package/dist/schema/flow.js +82 -0
  105. package/dist/schema/flow.js.map +1 -0
  106. package/dist/schema/index.d.ts +11 -2
  107. package/dist/schema/index.d.ts.map +1 -1
  108. package/dist/schema/index.js +22 -2
  109. package/dist/schema/index.js.map +1 -1
  110. package/dist/schema/patch.d.ts +59 -0
  111. package/dist/schema/patch.d.ts.map +1 -0
  112. package/dist/schema/patch.js +60 -0
  113. package/dist/schema/patch.js.map +1 -0
  114. package/dist/schema/result.d.ts +130 -0
  115. package/dist/schema/result.d.ts.map +1 -0
  116. package/dist/schema/result.js +90 -0
  117. package/dist/schema/result.js.map +1 -0
  118. package/dist/schema/snapshot.d.ts +151 -0
  119. package/dist/schema/snapshot.d.ts.map +1 -0
  120. package/dist/schema/snapshot.js +156 -0
  121. package/dist/schema/snapshot.js.map +1 -0
  122. package/dist/schema/trace.d.ts +87 -0
  123. package/dist/schema/trace.d.ts.map +1 -0
  124. package/dist/schema/trace.js +79 -0
  125. package/dist/schema/trace.js.map +1 -0
  126. package/dist/utils/canonical.d.ts +29 -0
  127. package/dist/utils/canonical.d.ts.map +1 -0
  128. package/dist/utils/canonical.js +56 -0
  129. package/dist/utils/canonical.js.map +1 -0
  130. package/dist/utils/canonical.test.d.ts +2 -0
  131. package/dist/utils/canonical.test.d.ts.map +1 -0
  132. package/dist/utils/canonical.test.js +153 -0
  133. package/dist/utils/canonical.test.js.map +1 -0
  134. package/dist/utils/hash.d.ts +20 -0
  135. package/dist/utils/hash.d.ts.map +1 -0
  136. package/dist/utils/hash.js +38 -0
  137. package/dist/utils/hash.js.map +1 -0
  138. package/dist/utils/hash.test.d.ts +2 -0
  139. package/dist/utils/hash.test.d.ts.map +1 -0
  140. package/dist/utils/hash.test.js +146 -0
  141. package/dist/utils/hash.test.js.map +1 -0
  142. package/dist/utils/index.d.ts +4 -0
  143. package/dist/utils/index.d.ts.map +1 -0
  144. package/dist/utils/index.js +4 -0
  145. package/dist/utils/index.js.map +1 -0
  146. package/dist/utils/path.d.ts +40 -0
  147. package/dist/utils/path.d.ts.map +1 -0
  148. package/dist/utils/path.js +132 -0
  149. package/dist/utils/path.js.map +1 -0
  150. package/dist/utils/path.test.d.ts +2 -0
  151. package/dist/utils/path.test.d.ts.map +1 -0
  152. package/dist/utils/path.test.js +191 -0
  153. package/dist/utils/path.test.js.map +1 -0
  154. package/package.json +28 -42
  155. package/LICENSE +0 -21
  156. package/dist/dag/graph.d.ts +0 -62
  157. package/dist/dag/graph.d.ts.map +0 -1
  158. package/dist/dag/graph.js +0 -244
  159. package/dist/dag/graph.js.map +0 -1
  160. package/dist/dag/index.d.ts +0 -4
  161. package/dist/dag/index.d.ts.map +0 -1
  162. package/dist/dag/index.js +0 -4
  163. package/dist/dag/index.js.map +0 -1
  164. package/dist/dag/propagation.d.ts +0 -58
  165. package/dist/dag/propagation.d.ts.map +0 -1
  166. package/dist/dag/propagation.js +0 -224
  167. package/dist/dag/propagation.js.map +0 -1
  168. package/dist/dag/topological.d.ts +0 -33
  169. package/dist/dag/topological.d.ts.map +0 -1
  170. package/dist/dag/topological.js +0 -173
  171. package/dist/dag/topological.js.map +0 -1
  172. package/dist/domain/define.d.ts +0 -82
  173. package/dist/domain/define.d.ts.map +0 -1
  174. package/dist/domain/define.js +0 -91
  175. package/dist/domain/define.js.map +0 -1
  176. package/dist/domain/index.d.ts +0 -4
  177. package/dist/domain/index.d.ts.map +0 -1
  178. package/dist/domain/index.js +0 -4
  179. package/dist/domain/index.js.map +0 -1
  180. package/dist/domain/types.d.ts +0 -203
  181. package/dist/domain/types.d.ts.map +0 -1
  182. package/dist/domain/types.js +0 -2
  183. package/dist/domain/types.js.map +0 -1
  184. package/dist/domain/validate.d.ts +0 -17
  185. package/dist/domain/validate.d.ts.map +0 -1
  186. package/dist/domain/validate.js +0 -204
  187. package/dist/domain/validate.js.map +0 -1
  188. package/dist/effect/index.d.ts +0 -4
  189. package/dist/effect/index.d.ts.map +0 -1
  190. package/dist/effect/index.js +0 -4
  191. package/dist/effect/index.js.map +0 -1
  192. package/dist/effect/result.d.ts +0 -100
  193. package/dist/effect/result.d.ts.map +0 -1
  194. package/dist/effect/result.js +0 -163
  195. package/dist/effect/result.js.map +0 -1
  196. package/dist/effect/runner.d.ts +0 -98
  197. package/dist/effect/runner.d.ts.map +0 -1
  198. package/dist/effect/runner.js +0 -321
  199. package/dist/effect/runner.js.map +0 -1
  200. package/dist/effect/types.d.ts +0 -169
  201. package/dist/effect/types.d.ts.map +0 -1
  202. package/dist/effect/types.js +0 -28
  203. package/dist/effect/types.js.map +0 -1
  204. package/dist/expression/analyzer.d.ts +0 -42
  205. package/dist/expression/analyzer.d.ts.map +0 -1
  206. package/dist/expression/analyzer.js +0 -166
  207. package/dist/expression/analyzer.js.map +0 -1
  208. package/dist/expression/evaluator.d.ts +0 -16
  209. package/dist/expression/evaluator.d.ts.map +0 -1
  210. package/dist/expression/evaluator.js +0 -382
  211. package/dist/expression/evaluator.js.map +0 -1
  212. package/dist/expression/index.d.ts +0 -5
  213. package/dist/expression/index.d.ts.map +0 -1
  214. package/dist/expression/index.js +0 -5
  215. package/dist/expression/index.js.map +0 -1
  216. package/dist/expression/parser.d.ts +0 -37
  217. package/dist/expression/parser.d.ts.map +0 -1
  218. package/dist/expression/parser.js +0 -201
  219. package/dist/expression/parser.js.map +0 -1
  220. package/dist/expression/types.d.ts +0 -123
  221. package/dist/expression/types.d.ts.map +0 -1
  222. package/dist/expression/types.js +0 -10
  223. package/dist/expression/types.js.map +0 -1
  224. package/dist/policy/field-policy.d.ts +0 -63
  225. package/dist/policy/field-policy.d.ts.map +0 -1
  226. package/dist/policy/field-policy.js +0 -138
  227. package/dist/policy/field-policy.js.map +0 -1
  228. package/dist/policy/index.d.ts +0 -3
  229. package/dist/policy/index.d.ts.map +0 -1
  230. package/dist/policy/index.js +0 -3
  231. package/dist/policy/index.js.map +0 -1
  232. package/dist/policy/precondition.d.ts +0 -58
  233. package/dist/policy/precondition.d.ts.map +0 -1
  234. package/dist/policy/precondition.js +0 -115
  235. package/dist/policy/precondition.js.map +0 -1
  236. package/dist/runtime/index.d.ts +0 -4
  237. package/dist/runtime/index.d.ts.map +0 -1
  238. package/dist/runtime/index.js +0 -4
  239. package/dist/runtime/index.js.map +0 -1
  240. package/dist/runtime/runtime.d.ts +0 -94
  241. package/dist/runtime/runtime.d.ts.map +0 -1
  242. package/dist/runtime/runtime.js +0 -294
  243. package/dist/runtime/runtime.js.map +0 -1
  244. package/dist/runtime/snapshot.d.ts +0 -39
  245. package/dist/runtime/snapshot.d.ts.map +0 -1
  246. package/dist/runtime/snapshot.js +0 -264
  247. package/dist/runtime/snapshot.js.map +0 -1
  248. package/dist/runtime/subscription.d.ts +0 -82
  249. package/dist/runtime/subscription.d.ts.map +0 -1
  250. package/dist/runtime/subscription.js +0 -222
  251. package/dist/runtime/subscription.js.map +0 -1
  252. package/dist/schema/integration.d.ts +0 -89
  253. package/dist/schema/integration.d.ts.map +0 -1
  254. package/dist/schema/integration.js +0 -171
  255. package/dist/schema/integration.js.map +0 -1
  256. package/dist/schema/validation.d.ts +0 -51
  257. package/dist/schema/validation.d.ts.map +0 -1
  258. package/dist/schema/validation.js +0 -212
  259. package/dist/schema/validation.js.map +0 -1
@@ -0,0 +1,498 @@
1
+ import { ok, err } from "../schema/common.js";
2
+ import { createError } from "../errors.js";
3
+ import { getByPath } from "../utils/path.js";
4
+ import { withCollectionContext } from "./context.js";
5
+ /**
6
+ * Evaluate an expression node
7
+ * All expressions are pure and total (always return a value or error)
8
+ */
9
+ export function evaluateExpr(expr, ctx) {
10
+ switch (expr.kind) {
11
+ // Literals
12
+ case "lit":
13
+ return ok(expr.value);
14
+ case "get":
15
+ return evaluateGet(expr.path, ctx);
16
+ // Comparison
17
+ case "eq":
18
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => a === b);
19
+ case "neq":
20
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => a !== b);
21
+ case "gt":
22
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => toNumber(a) > toNumber(b));
23
+ case "gte":
24
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => toNumber(a) >= toNumber(b));
25
+ case "lt":
26
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => toNumber(a) < toNumber(b));
27
+ case "lte":
28
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => toNumber(a) <= toNumber(b));
29
+ // Logical
30
+ case "and":
31
+ return evaluateAnd(expr.args, ctx);
32
+ case "or":
33
+ return evaluateOr(expr.args, ctx);
34
+ case "not":
35
+ return evaluateNot(expr.arg, ctx);
36
+ // Conditional
37
+ case "if":
38
+ return evaluateIf(expr, ctx);
39
+ // Arithmetic
40
+ case "add":
41
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => toNumber(a) + toNumber(b));
42
+ case "sub":
43
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => toNumber(a) - toNumber(b));
44
+ case "mul":
45
+ return evaluateBinary(expr.left, expr.right, ctx, (a, b) => toNumber(a) * toNumber(b));
46
+ case "div":
47
+ return evaluateDiv(expr.left, expr.right, ctx);
48
+ case "mod":
49
+ return evaluateMod(expr.left, expr.right, ctx);
50
+ // String
51
+ case "concat":
52
+ return evaluateConcat(expr.args, ctx);
53
+ case "substring":
54
+ return evaluateSubstring(expr, ctx);
55
+ // Collection
56
+ case "len":
57
+ return evaluateLen(expr.arg, ctx);
58
+ case "at":
59
+ return evaluateAt(expr.array, expr.index, ctx);
60
+ case "first":
61
+ return evaluateFirst(expr.array, ctx);
62
+ case "last":
63
+ return evaluateLast(expr.array, ctx);
64
+ case "slice":
65
+ return evaluateSlice(expr, ctx);
66
+ case "includes":
67
+ return evaluateIncludes(expr.array, expr.item, ctx);
68
+ case "filter":
69
+ return evaluateFilter(expr.array, expr.predicate, ctx);
70
+ case "map":
71
+ return evaluateMap(expr.array, expr.mapper, ctx);
72
+ case "find":
73
+ return evaluateFind(expr.array, expr.predicate, ctx);
74
+ case "every":
75
+ return evaluateEvery(expr.array, expr.predicate, ctx);
76
+ case "some":
77
+ return evaluateSome(expr.array, expr.predicate, ctx);
78
+ // Object
79
+ case "keys":
80
+ return evaluateKeys(expr.obj, ctx);
81
+ case "values":
82
+ return evaluateValues(expr.obj, ctx);
83
+ case "entries":
84
+ return evaluateEntries(expr.obj, ctx);
85
+ case "merge":
86
+ return evaluateMerge(expr.objects, ctx);
87
+ // Type
88
+ case "typeof":
89
+ return evaluateTypeof(expr.arg, ctx);
90
+ case "isNull":
91
+ return evaluateIsNull(expr.arg, ctx);
92
+ case "coalesce":
93
+ return evaluateCoalesce(expr.args, ctx);
94
+ default:
95
+ return err(createError("INTERNAL_ERROR", `Unknown expression kind: ${expr.kind}`, ctx.currentAction ?? "", ctx.nodePath));
96
+ }
97
+ }
98
+ // ============ Helper Functions ============
99
+ function toNumber(value) {
100
+ if (typeof value === "number")
101
+ return value;
102
+ if (typeof value === "string")
103
+ return parseFloat(value) || 0;
104
+ if (typeof value === "boolean")
105
+ return value ? 1 : 0;
106
+ return 0;
107
+ }
108
+ function toBoolean(value) {
109
+ if (value === null || value === undefined)
110
+ return false;
111
+ if (typeof value === "boolean")
112
+ return value;
113
+ if (typeof value === "number")
114
+ return value !== 0;
115
+ if (typeof value === "string")
116
+ return value.length > 0;
117
+ return true;
118
+ }
119
+ function toString(value) {
120
+ if (value === null || value === undefined)
121
+ return "";
122
+ if (typeof value === "string")
123
+ return value;
124
+ return String(value);
125
+ }
126
+ // ============ Get ============
127
+ function evaluateGet(path, ctx) {
128
+ // Handle collection context variables
129
+ if (path.startsWith("$item")) {
130
+ if (ctx.$item === undefined) {
131
+ return ok(undefined);
132
+ }
133
+ if (path === "$item") {
134
+ return ok(ctx.$item);
135
+ }
136
+ // e.g., $item.completed
137
+ const subPath = path.slice(6); // Remove "$item."
138
+ return ok(getByPath(ctx.$item, subPath));
139
+ }
140
+ if (path === "$index") {
141
+ return ok(ctx.$index);
142
+ }
143
+ if (path === "$array") {
144
+ return ok(ctx.$array);
145
+ }
146
+ // Handle input path
147
+ if (path.startsWith("input.") || path === "input") {
148
+ const subPath = path === "input" ? "" : path.slice(6);
149
+ return ok(subPath ? getByPath(ctx.snapshot.input, subPath) : ctx.snapshot.input);
150
+ }
151
+ // Handle computed path
152
+ if (path.startsWith("computed.")) {
153
+ return ok(ctx.snapshot.computed[path]);
154
+ }
155
+ // Handle system path
156
+ if (path.startsWith("system.")) {
157
+ const subPath = path.slice(7);
158
+ return ok(getByPath(ctx.snapshot.system, subPath));
159
+ }
160
+ // Default: get from data
161
+ return ok(getByPath(ctx.snapshot.data, path));
162
+ }
163
+ // ============ Binary Operations ============
164
+ function evaluateBinary(left, right, ctx, op) {
165
+ const leftResult = evaluateExpr(left, ctx);
166
+ if (!leftResult.ok)
167
+ return leftResult;
168
+ const rightResult = evaluateExpr(right, ctx);
169
+ if (!rightResult.ok)
170
+ return rightResult;
171
+ return ok(op(leftResult.value, rightResult.value));
172
+ }
173
+ // ============ Logical ============
174
+ function evaluateAnd(args, ctx) {
175
+ for (const arg of args) {
176
+ const result = evaluateExpr(arg, ctx);
177
+ if (!result.ok)
178
+ return result;
179
+ if (!toBoolean(result.value))
180
+ return ok(false);
181
+ }
182
+ return ok(true);
183
+ }
184
+ function evaluateOr(args, ctx) {
185
+ for (const arg of args) {
186
+ const result = evaluateExpr(arg, ctx);
187
+ if (!result.ok)
188
+ return result;
189
+ if (toBoolean(result.value))
190
+ return ok(true);
191
+ }
192
+ return ok(false);
193
+ }
194
+ function evaluateNot(arg, ctx) {
195
+ const result = evaluateExpr(arg, ctx);
196
+ if (!result.ok)
197
+ return result;
198
+ return ok(!toBoolean(result.value));
199
+ }
200
+ // ============ Conditional ============
201
+ function evaluateIf(expr, ctx) {
202
+ const condResult = evaluateExpr(expr.cond, ctx);
203
+ if (!condResult.ok)
204
+ return condResult;
205
+ return evaluateExpr(toBoolean(condResult.value) ? expr.then : expr.else, ctx);
206
+ }
207
+ // ============ Arithmetic ============
208
+ function evaluateDiv(left, right, ctx) {
209
+ const leftResult = evaluateExpr(left, ctx);
210
+ if (!leftResult.ok)
211
+ return leftResult;
212
+ const rightResult = evaluateExpr(right, ctx);
213
+ if (!rightResult.ok)
214
+ return rightResult;
215
+ const divisor = toNumber(rightResult.value);
216
+ if (divisor === 0)
217
+ return ok(null); // Division by zero returns null, not error
218
+ return ok(toNumber(leftResult.value) / divisor);
219
+ }
220
+ function evaluateMod(left, right, ctx) {
221
+ const leftResult = evaluateExpr(left, ctx);
222
+ if (!leftResult.ok)
223
+ return leftResult;
224
+ const rightResult = evaluateExpr(right, ctx);
225
+ if (!rightResult.ok)
226
+ return rightResult;
227
+ const divisor = toNumber(rightResult.value);
228
+ if (divisor === 0)
229
+ return ok(null);
230
+ return ok(toNumber(leftResult.value) % divisor);
231
+ }
232
+ // ============ String ============
233
+ function evaluateConcat(args, ctx) {
234
+ const parts = [];
235
+ for (const arg of args) {
236
+ const result = evaluateExpr(arg, ctx);
237
+ if (!result.ok)
238
+ return result;
239
+ parts.push(toString(result.value));
240
+ }
241
+ return ok(parts.join(""));
242
+ }
243
+ function evaluateSubstring(expr, ctx) {
244
+ const strResult = evaluateExpr(expr.str, ctx);
245
+ if (!strResult.ok)
246
+ return strResult;
247
+ const startResult = evaluateExpr(expr.start, ctx);
248
+ if (!startResult.ok)
249
+ return startResult;
250
+ const str = toString(strResult.value);
251
+ const start = toNumber(startResult.value);
252
+ if (expr.end) {
253
+ const endResult = evaluateExpr(expr.end, ctx);
254
+ if (!endResult.ok)
255
+ return endResult;
256
+ return ok(str.substring(start, toNumber(endResult.value)));
257
+ }
258
+ return ok(str.substring(start));
259
+ }
260
+ // ============ Collection ============
261
+ function evaluateLen(arg, ctx) {
262
+ const result = evaluateExpr(arg, ctx);
263
+ if (!result.ok)
264
+ return result;
265
+ const value = result.value;
266
+ if (Array.isArray(value))
267
+ return ok(value.length);
268
+ if (typeof value === "string")
269
+ return ok(value.length);
270
+ if (typeof value === "object" && value !== null)
271
+ return ok(Object.keys(value).length);
272
+ return ok(0);
273
+ }
274
+ function evaluateAt(array, index, ctx) {
275
+ const arrayResult = evaluateExpr(array, ctx);
276
+ if (!arrayResult.ok)
277
+ return arrayResult;
278
+ const indexResult = evaluateExpr(index, ctx);
279
+ if (!indexResult.ok)
280
+ return indexResult;
281
+ const arr = arrayResult.value;
282
+ if (!Array.isArray(arr))
283
+ return ok(null);
284
+ const idx = toNumber(indexResult.value);
285
+ if (idx < 0 || idx >= arr.length)
286
+ return ok(null); // Out of bounds returns null
287
+ return ok(arr[idx]);
288
+ }
289
+ function evaluateFirst(array, ctx) {
290
+ const result = evaluateExpr(array, ctx);
291
+ if (!result.ok)
292
+ return result;
293
+ const arr = result.value;
294
+ if (!Array.isArray(arr) || arr.length === 0)
295
+ return ok(null);
296
+ return ok(arr[0]);
297
+ }
298
+ function evaluateLast(array, ctx) {
299
+ const result = evaluateExpr(array, ctx);
300
+ if (!result.ok)
301
+ return result;
302
+ const arr = result.value;
303
+ if (!Array.isArray(arr) || arr.length === 0)
304
+ return ok(null);
305
+ return ok(arr[arr.length - 1]);
306
+ }
307
+ function evaluateSlice(expr, ctx) {
308
+ const arrayResult = evaluateExpr(expr.array, ctx);
309
+ if (!arrayResult.ok)
310
+ return arrayResult;
311
+ const startResult = evaluateExpr(expr.start, ctx);
312
+ if (!startResult.ok)
313
+ return startResult;
314
+ const arr = arrayResult.value;
315
+ if (!Array.isArray(arr))
316
+ return ok([]);
317
+ const start = toNumber(startResult.value);
318
+ if (expr.end) {
319
+ const endResult = evaluateExpr(expr.end, ctx);
320
+ if (!endResult.ok)
321
+ return endResult;
322
+ return ok(arr.slice(start, toNumber(endResult.value)));
323
+ }
324
+ return ok(arr.slice(start));
325
+ }
326
+ function evaluateIncludes(array, item, ctx) {
327
+ const arrayResult = evaluateExpr(array, ctx);
328
+ if (!arrayResult.ok)
329
+ return arrayResult;
330
+ const itemResult = evaluateExpr(item, ctx);
331
+ if (!itemResult.ok)
332
+ return itemResult;
333
+ const arr = arrayResult.value;
334
+ if (!Array.isArray(arr))
335
+ return ok(false);
336
+ return ok(arr.includes(itemResult.value));
337
+ }
338
+ function evaluateFilter(array, predicate, ctx) {
339
+ const arrayResult = evaluateExpr(array, ctx);
340
+ if (!arrayResult.ok)
341
+ return arrayResult;
342
+ const arr = arrayResult.value;
343
+ if (!Array.isArray(arr))
344
+ return ok([]);
345
+ const filtered = [];
346
+ for (let i = 0; i < arr.length; i++) {
347
+ const itemCtx = withCollectionContext(ctx, arr[i], i, arr);
348
+ const predicateResult = evaluateExpr(predicate, itemCtx);
349
+ if (!predicateResult.ok)
350
+ return predicateResult;
351
+ if (toBoolean(predicateResult.value)) {
352
+ filtered.push(arr[i]);
353
+ }
354
+ }
355
+ return ok(filtered);
356
+ }
357
+ function evaluateMap(array, mapper, ctx) {
358
+ const arrayResult = evaluateExpr(array, ctx);
359
+ if (!arrayResult.ok)
360
+ return arrayResult;
361
+ const arr = arrayResult.value;
362
+ if (!Array.isArray(arr))
363
+ return ok([]);
364
+ const mapped = [];
365
+ for (let i = 0; i < arr.length; i++) {
366
+ const itemCtx = withCollectionContext(ctx, arr[i], i, arr);
367
+ const mapResult = evaluateExpr(mapper, itemCtx);
368
+ if (!mapResult.ok)
369
+ return mapResult;
370
+ mapped.push(mapResult.value);
371
+ }
372
+ return ok(mapped);
373
+ }
374
+ function evaluateFind(array, predicate, ctx) {
375
+ const arrayResult = evaluateExpr(array, ctx);
376
+ if (!arrayResult.ok)
377
+ return arrayResult;
378
+ const arr = arrayResult.value;
379
+ if (!Array.isArray(arr))
380
+ return ok(null);
381
+ for (let i = 0; i < arr.length; i++) {
382
+ const itemCtx = withCollectionContext(ctx, arr[i], i, arr);
383
+ const predicateResult = evaluateExpr(predicate, itemCtx);
384
+ if (!predicateResult.ok)
385
+ return predicateResult;
386
+ if (toBoolean(predicateResult.value)) {
387
+ return ok(arr[i]);
388
+ }
389
+ }
390
+ return ok(null);
391
+ }
392
+ function evaluateEvery(array, predicate, ctx) {
393
+ const arrayResult = evaluateExpr(array, ctx);
394
+ if (!arrayResult.ok)
395
+ return arrayResult;
396
+ const arr = arrayResult.value;
397
+ if (!Array.isArray(arr))
398
+ return ok(true);
399
+ for (let i = 0; i < arr.length; i++) {
400
+ const itemCtx = withCollectionContext(ctx, arr[i], i, arr);
401
+ const predicateResult = evaluateExpr(predicate, itemCtx);
402
+ if (!predicateResult.ok)
403
+ return predicateResult;
404
+ if (!toBoolean(predicateResult.value)) {
405
+ return ok(false);
406
+ }
407
+ }
408
+ return ok(true);
409
+ }
410
+ function evaluateSome(array, predicate, ctx) {
411
+ const arrayResult = evaluateExpr(array, ctx);
412
+ if (!arrayResult.ok)
413
+ return arrayResult;
414
+ const arr = arrayResult.value;
415
+ if (!Array.isArray(arr))
416
+ return ok(false);
417
+ for (let i = 0; i < arr.length; i++) {
418
+ const itemCtx = withCollectionContext(ctx, arr[i], i, arr);
419
+ const predicateResult = evaluateExpr(predicate, itemCtx);
420
+ if (!predicateResult.ok)
421
+ return predicateResult;
422
+ if (toBoolean(predicateResult.value)) {
423
+ return ok(true);
424
+ }
425
+ }
426
+ return ok(false);
427
+ }
428
+ // ============ Object ============
429
+ function evaluateKeys(obj, ctx) {
430
+ const result = evaluateExpr(obj, ctx);
431
+ if (!result.ok)
432
+ return result;
433
+ const value = result.value;
434
+ if (typeof value !== "object" || value === null)
435
+ return ok([]);
436
+ return ok(Object.keys(value));
437
+ }
438
+ function evaluateValues(obj, ctx) {
439
+ const result = evaluateExpr(obj, ctx);
440
+ if (!result.ok)
441
+ return result;
442
+ const value = result.value;
443
+ if (typeof value !== "object" || value === null)
444
+ return ok([]);
445
+ return ok(Object.values(value));
446
+ }
447
+ function evaluateEntries(obj, ctx) {
448
+ const result = evaluateExpr(obj, ctx);
449
+ if (!result.ok)
450
+ return result;
451
+ const value = result.value;
452
+ if (typeof value !== "object" || value === null)
453
+ return ok([]);
454
+ return ok(Object.entries(value));
455
+ }
456
+ function evaluateMerge(objects, ctx) {
457
+ const merged = {};
458
+ for (const objExpr of objects) {
459
+ const result = evaluateExpr(objExpr, ctx);
460
+ if (!result.ok)
461
+ return result;
462
+ const value = result.value;
463
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
464
+ Object.assign(merged, value);
465
+ }
466
+ }
467
+ return ok(merged);
468
+ }
469
+ // ============ Type ============
470
+ function evaluateTypeof(arg, ctx) {
471
+ const result = evaluateExpr(arg, ctx);
472
+ if (!result.ok)
473
+ return result;
474
+ const value = result.value;
475
+ if (value === null)
476
+ return ok("null");
477
+ if (Array.isArray(value))
478
+ return ok("array");
479
+ return ok(typeof value);
480
+ }
481
+ function evaluateIsNull(arg, ctx) {
482
+ const result = evaluateExpr(arg, ctx);
483
+ if (!result.ok)
484
+ return result;
485
+ return ok(result.value === null || result.value === undefined);
486
+ }
487
+ function evaluateCoalesce(args, ctx) {
488
+ for (const arg of args) {
489
+ const result = evaluateExpr(arg, ctx);
490
+ if (!result.ok)
491
+ return result;
492
+ if (result.value !== null && result.value !== undefined) {
493
+ return result;
494
+ }
495
+ }
496
+ return ok(null);
497
+ }
498
+ //# sourceMappingURL=expr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/evaluator/expr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAoB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAIvE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,GAAgB;IAC3D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,WAAW;QACX,KAAK,KAAK;YACR,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAErC,aAAa;QACb,KAAK,IAAI;YACP,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,KAAK,IAAI;YACP,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,KAAK,IAAI;YACP,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1F,UAAU;QACV,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,KAAK,IAAI;YACP,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpC,cAAc;QACd,KAAK,IAAI;YACP,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE/B,aAAa;QACb,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjD,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEjD,SAAS;QACT,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxC,KAAK,WAAW;YACd,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtC,aAAa;QACb,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI;YACP,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjD,KAAK,OAAO;YACV,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxC,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzD,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnD,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACvD,KAAK,OAAO;YACV,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACxD,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEvD,SAAS;QACT,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,KAAK,OAAO;YACV,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE1C,OAAO;QACP,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE1C;YACE,OAAO,GAAG,CAAC,WAAW,CACpB,gBAAgB,EAChB,4BAA6B,IAAiB,CAAC,IAAI,EAAE,EACrD,GAAG,CAAC,aAAa,IAAI,EAAE,EACvB,GAAG,CAAC,QAAQ,CACb,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,6CAA6C;AAE7C,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,gCAAgC;AAEhC,SAAS,WAAW,CAAC,IAAY,EAAE,GAAgB;IACjD,sCAAsC;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QACjD,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,oBAAoB;IACpB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,yBAAyB;IACzB,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,8CAA8C;AAE9C,SAAS,cAAc,CACrB,IAAc,EACd,KAAe,EACf,GAAgB,EAChB,EAAuC;IAEvC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IAEtC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,OAAO,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,oCAAoC;AAEpC,SAAS,WAAW,CAAC,IAAgB,EAAE,GAAgB;IACrD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,GAAgB;IACpD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,GAAa,EAAE,GAAgB;IAClD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,wCAAwC;AAExC,SAAS,UAAU,CAAC,IAAwD,EAAE,GAAgB;IAC5F,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IAEtC,OAAO,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,uCAAuC;AAEvC,SAAS,WAAW,CAAC,IAAc,EAAE,KAAe,EAAE,GAAgB;IACpE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IAEtC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2CAA2C;IAE/E,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,IAAc,EAAE,KAAe,EAAE,GAAgB;IACpE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IAEtC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,mCAAmC;AAEnC,SAAS,cAAc,CAAC,IAAgB,EAAE,GAAgB;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAwD,EACxD,GAAgB;IAEhB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QACpC,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,uCAAuC;AAEvC,SAAS,WAAW,CAAC,GAAa,EAAE,GAAgB;IAClD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,KAAe,EAAE,GAAgB;IACpE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B;IAEhF,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,GAAgB;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,GAAgB;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CACpB,IAA0D,EAC1D,GAAgB;IAEhB,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QACpC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAe,EAAE,IAAc,EAAE,GAAgB;IACzE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IAEtC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,cAAc,CAAC,KAAe,EAAE,SAAmB,EAAE,GAAgB;IAC5E,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,EAAE;YAAE,OAAO,eAAe,CAAC;QAChD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,WAAW,CAAC,KAAe,EAAE,MAAgB,EAAE,GAAgB;IACtE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,SAAmB,EAAE,GAAgB;IAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,EAAE;YAAE,OAAO,eAAe,CAAC;QAChD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,SAAmB,EAAE,GAAgB;IAC3E,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,EAAE;YAAE,OAAO,eAAe,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,SAAmB,EAAE,GAAgB;IAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,EAAE;YAAE,OAAO,eAAe,CAAC;QAChD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,mCAAmC;AAEnC,SAAS,YAAY,CAAC,GAAa,EAAE,GAAgB;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,GAAa,EAAE,GAAgB;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,GAAa,EAAE,GAAgB;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB,EAAE,GAAgB;IAC1D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,iCAAiC;AAEjC,SAAS,cAAc,CAAC,GAAa,EAAE,GAAgB;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,GAAa,EAAE,GAAgB;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAgB,EAAE,GAAgB;IAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=expr.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expr.test.d.ts","sourceRoot":"","sources":["../../src/evaluator/expr.test.ts"],"names":[],"mappings":""}