n8n-workflow 2.44.0 → 2.44.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cjs/build.tsbuildinfo +1 -1
  2. package/dist/cjs/common/map-connections-by-destination.d.ts +2 -0
  3. package/dist/cjs/common/map-connections-by-destination.d.ts.map +1 -1
  4. package/dist/cjs/common/map-connections-by-destination.js +12 -0
  5. package/dist/cjs/common/map-connections-by-destination.js.map +1 -1
  6. package/dist/cjs/expressions/native-evaluation/evaluator.d.ts.map +1 -1
  7. package/dist/cjs/expressions/native-evaluation/evaluator.js +63 -3
  8. package/dist/cjs/expressions/native-evaluation/evaluator.js.map +1 -1
  9. package/dist/cjs/expressions/native-evaluation/grammar.d.ts +7 -1
  10. package/dist/cjs/expressions/native-evaluation/grammar.d.ts.map +1 -1
  11. package/dist/cjs/expressions/native-evaluation/grammar.js +67 -6
  12. package/dist/cjs/expressions/native-evaluation/grammar.js.map +1 -1
  13. package/dist/cjs/expressions/native-evaluation/index.d.ts +1 -1
  14. package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -1
  15. package/dist/cjs/expressions/native-evaluation/index.js +54 -11
  16. package/dist/cjs/expressions/native-evaluation/index.js.map +1 -1
  17. package/dist/cjs/expressions/native-evaluation/parser.d.ts +11 -0
  18. package/dist/cjs/expressions/native-evaluation/parser.d.ts.map +1 -1
  19. package/dist/cjs/expressions/native-evaluation/parser.js +77 -0
  20. package/dist/cjs/expressions/native-evaluation/parser.js.map +1 -1
  21. package/dist/cjs/extensions/expression-extension.d.ts +1 -0
  22. package/dist/cjs/extensions/expression-extension.d.ts.map +1 -1
  23. package/dist/cjs/extensions/expression-extension.js +4 -3
  24. package/dist/cjs/extensions/expression-extension.js.map +1 -1
  25. package/dist/cjs/node-helpers.d.ts.map +1 -1
  26. package/dist/cjs/node-helpers.js +16 -3
  27. package/dist/cjs/node-helpers.js.map +1 -1
  28. package/dist/cjs/workflow-structure-validation.d.ts.map +1 -1
  29. package/dist/cjs/workflow-structure-validation.js +2 -1
  30. package/dist/cjs/workflow-structure-validation.js.map +1 -1
  31. package/dist/cjs/workflow.d.ts.map +1 -1
  32. package/dist/cjs/workflow.js +1 -36
  33. package/dist/cjs/workflow.js.map +1 -1
  34. package/dist/esm/common/map-connections-by-destination.d.ts +2 -0
  35. package/dist/esm/common/map-connections-by-destination.d.ts.map +1 -1
  36. package/dist/esm/common/map-connections-by-destination.js +11 -0
  37. package/dist/esm/common/map-connections-by-destination.js.map +1 -1
  38. package/dist/esm/expressions/native-evaluation/evaluator.d.ts.map +1 -1
  39. package/dist/esm/expressions/native-evaluation/evaluator.js +64 -4
  40. package/dist/esm/expressions/native-evaluation/evaluator.js.map +1 -1
  41. package/dist/esm/expressions/native-evaluation/grammar.d.ts +7 -1
  42. package/dist/esm/expressions/native-evaluation/grammar.d.ts.map +1 -1
  43. package/dist/esm/expressions/native-evaluation/grammar.js +66 -5
  44. package/dist/esm/expressions/native-evaluation/grammar.js.map +1 -1
  45. package/dist/esm/expressions/native-evaluation/index.d.ts +1 -1
  46. package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -1
  47. package/dist/esm/expressions/native-evaluation/index.js +55 -13
  48. package/dist/esm/expressions/native-evaluation/index.js.map +1 -1
  49. package/dist/esm/expressions/native-evaluation/parser.d.ts +11 -0
  50. package/dist/esm/expressions/native-evaluation/parser.d.ts.map +1 -1
  51. package/dist/esm/expressions/native-evaluation/parser.js +77 -1
  52. package/dist/esm/expressions/native-evaluation/parser.js.map +1 -1
  53. package/dist/esm/extensions/expression-extension.d.ts +1 -0
  54. package/dist/esm/extensions/expression-extension.d.ts.map +1 -1
  55. package/dist/esm/extensions/expression-extension.js +1 -1
  56. package/dist/esm/extensions/expression-extension.js.map +1 -1
  57. package/dist/esm/node-helpers.d.ts.map +1 -1
  58. package/dist/esm/node-helpers.js +16 -3
  59. package/dist/esm/node-helpers.js.map +1 -1
  60. package/dist/esm/typecheck.tsbuildinfo +1 -1
  61. package/dist/esm/workflow-structure-validation.d.ts.map +1 -1
  62. package/dist/esm/workflow-structure-validation.js +2 -1
  63. package/dist/esm/workflow-structure-validation.js.map +1 -1
  64. package/dist/esm/workflow.d.ts.map +1 -1
  65. package/dist/esm/workflow.js +1 -36
  66. package/dist/esm/workflow.js.map +1 -1
  67. package/package.json +2 -2
@@ -1,3 +1,5 @@
1
1
  import type { IConnections } from '../interfaces';
2
+ export declare const MAX_CONNECTION_INDEX = 1000;
3
+ export declare const MAX_DESTINATION_INPUT_SLOTS = 100000;
2
4
  export declare function mapConnectionsByDestination(connections: IConnections): IConnections;
3
5
  //# sourceMappingURL=map-connections-by-destination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-connections-by-destination.d.ts","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAC;AAEtE,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,YAAY,gBA4CpE"}
1
+ {"version":3,"file":"map-connections-by-destination.d.ts","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAC;AAEtE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,eAAO,MAAM,2BAA2B,SAAU,CAAC;AAEnD,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,YAAY,gBAwDpE"}
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
  /* eslint-disable @typescript-eslint/no-for-in-array */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MAX_DESTINATION_INPUT_SLOTS = exports.MAX_CONNECTION_INDEX = void 0;
4
5
  exports.mapConnectionsByDestination = mapConnectionsByDestination;
6
+ const errors_1 = require("../errors");
7
+ exports.MAX_CONNECTION_INDEX = 1000;
8
+ exports.MAX_DESTINATION_INPUT_SLOTS = 100_000;
5
9
  function mapConnectionsByDestination(connections) {
6
10
  const returnConnection = {};
7
11
  let connectionInfo;
8
12
  let maxIndex;
13
+ let inputSlots = 0;
9
14
  for (const sourceNode in connections) {
10
15
  if (!connections.hasOwnProperty(sourceNode)) {
11
16
  continue;
@@ -19,6 +24,9 @@ function mapConnectionsByDestination(connections) {
19
24
  continue;
20
25
  }
21
26
  for (connectionInfo of connections[sourceNode][type][inputIndex] ?? []) {
27
+ if (connectionInfo.index > exports.MAX_CONNECTION_INDEX) {
28
+ throw new errors_1.UserError(`Connection from "${sourceNode}" to "${connectionInfo.node}" has an input index above ${exports.MAX_CONNECTION_INDEX}`);
29
+ }
22
30
  if (!returnConnection.hasOwnProperty(connectionInfo.node)) {
23
31
  returnConnection[connectionInfo.node] = {};
24
32
  }
@@ -26,6 +34,10 @@ function mapConnectionsByDestination(connections) {
26
34
  returnConnection[connectionInfo.node][connectionInfo.type] = [];
27
35
  }
28
36
  maxIndex = returnConnection[connectionInfo.node][connectionInfo.type].length - 1;
37
+ inputSlots += Math.max(0, connectionInfo.index - maxIndex);
38
+ if (inputSlots > exports.MAX_DESTINATION_INPUT_SLOTS) {
39
+ throw new errors_1.UserError(`Workflow connections use more than ${exports.MAX_DESTINATION_INPUT_SLOTS} input slots`);
40
+ }
29
41
  for (let j = maxIndex; j < connectionInfo.index; j++) {
30
42
  returnConnection[connectionInfo.node][connectionInfo.type].push([]);
31
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"map-connections-by-destination.js","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAIvD,qCAA4C,WAAyB;IACpE,MAAM,gBAAgB,GAAiB,EAAE,CAAC;IAE1C,IAAI,cAAc,CAAC;IACnB,IAAI,QAAgB,CAAC;IACrB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,SAAS;QACV,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAyB,EAAE,CAAC;YACjF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,SAAS;YACV,CAAC;YAED,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/D,SAAS;gBACV,CAAC;gBAED,KAAK,cAAc,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;oBACxE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3D,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC5C,CAAC;oBACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChF,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACjE,CAAC;oBAED,QAAQ,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBACjF,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtD,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrE,CAAC;oBAED,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;wBACtF,IAAI,EAAE,UAAU;wBAChB,IAAI;wBACJ,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;qBAC/B,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,gBAAgB,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"map-connections-by-destination.js","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAgBN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAQnB;;;;;;GAMG;AACH,qBAAa,GAAG;IASH,QAAQ,CAAC,IAAI,EAAE,sBAAsB;IARjD,KAAK,EAAE,OAAO,CAAa;IAE3B,KAAK,SAAK;IAEV,IAAI,SAAK;IAET,QAAQ,CAAC,UAAU,gCAAuC;IAE1D,YAAqB,IAAI,EAAE,sBAAsB,EAAI;IAErD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG1B;CACD;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AA0BjD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQtC;AAmbD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAa7D"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAkBN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAQnB;;;;;;GAMG;AACH,qBAAa,GAAG;IASH,QAAQ,CAAC,IAAI,EAAE,sBAAsB;IARjD,KAAK,EAAE,OAAO,CAAa;IAE3B,KAAK,SAAK;IAEV,IAAI,SAAK;IAET,QAAQ,CAAC,UAAU,gCAAuC;IAE1D,YAAqB,IAAI,EAAE,sBAAsB,EAAI;IAErD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG1B;CACD;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AA0BjD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQtC;AAsfD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAa7D"}
@@ -5,6 +5,7 @@ exports.bounded = bounded;
5
5
  exports.evalChunk = evalChunk;
6
6
  const expression_extension_error_1 = require("../../errors/expression-extension.error");
7
7
  const expression_error_1 = require("../../errors/expression.error");
8
+ const luxon_1 = require("luxon");
8
9
  const grammar_1 = require("./grammar");
9
10
  // ── Evaluation: total over the grammar. ────────────────────────────────────
10
11
  //
@@ -95,6 +96,9 @@ const binaryOps = Object.freeze({
95
96
  });
96
97
  /* eslint-enable @typescript-eslint/no-explicit-any */
97
98
  function evalMember(node, env) {
99
+ if (node.object.kind === 'timeRoot') {
100
+ return evalTimeRead(env.data[node.object.name], grammar_1.TIME_MEMBERS.get((0, grammar_1.toStr)(node.key)));
101
+ }
98
102
  const object = evalNode(node.object, env);
99
103
  if (node.optional && (object === null || object === undefined)) {
100
104
  throw chainShortCircuit;
@@ -113,6 +117,9 @@ function evalMember(node, env) {
113
117
  if (inherited) {
114
118
  throw new EngineFallbackError();
115
119
  }
120
+ // A node reference member (`.item`, `.json`) resolves through the proxy.
121
+ if (node.object.kind === 'nodeRef')
122
+ env.charge(1);
116
123
  const value = isParameterRead(node) ? readParameter(object, node.key, env) : object[node.key];
117
124
  // Neither crosses an engine boundary the same way twice (the vm bridge
118
125
  // drops a nested function but fails on an inherited one; legacy throws),
@@ -248,6 +255,28 @@ function assertPrimitiveElements(receiver) {
248
255
  throw new EngineFallbackError();
249
256
  }
250
257
  }
258
+ /**
259
+ * toSorted() stringifies both operands of every comparison, and includes(),
260
+ * indexOf() and lastIndexOf() compare each element with the search value, so
261
+ * their work follows element content, not element count. Returns that
262
+ * content, which the caller charges on top of the preflight bound.
263
+ */
264
+ function elementContentWork(receiver, method) {
265
+ if (method === 'toSorted') {
266
+ let content = 0;
267
+ for (const element of receiver)
268
+ content += (0, grammar_1.toStr)(element).length;
269
+ // Each comparison reads both operands, so a pass can read the content twice.
270
+ return 2 * content * Math.ceil(Math.log2(receiver.length + 1));
271
+ }
272
+ if (method === 'includes' || method === 'indexOf' || method === 'lastIndexOf') {
273
+ let content = 0;
274
+ for (const element of receiver)
275
+ content += typeof element === 'string' ? element.length : 1;
276
+ return content;
277
+ }
278
+ return 0;
279
+ }
251
280
  /**
252
281
  * Content size of a JSON value: string lengths plus one per element and
253
282
  * key, stopping early past the budget. Deeper than the grammar's own depth
@@ -311,7 +340,10 @@ function evalReceiver(node, env) {
311
340
  function evalCall(node, env) {
312
341
  const receiver = evalReceiver(node, env);
313
342
  if (node.receiver.kind === 'nodeRef') {
314
- return evalNodeRefCall(receiver, node.method);
343
+ return evalNodeRefCall(receiver, node.method, env);
344
+ }
345
+ if (node.receiver.kind === 'timeRoot') {
346
+ return evalTimeRead(receiver, grammar_1.TIME_METHODS.get(node.method));
315
347
  }
316
348
  // An own property shadowing the method (an engine-resolved $parameter value
317
349
  // can carry one) would take precedence in the engines.
@@ -330,6 +362,8 @@ function evalCall(node, env) {
330
362
  assertConcatWeight(receiver, args);
331
363
  }
332
364
  env.charge(preflightSize(receiver, node.method, args));
365
+ if ((0, grammar_1.isArray)(receiver))
366
+ env.charge(elementContentWork(receiver, node.method));
333
367
  return bounded(method.apply(receiver, args));
334
368
  }
335
369
  /**
@@ -367,12 +401,36 @@ function evalIterate(node, env) {
367
401
  * `first()`, `last()` and `all()` on a node proxy. The proxy hands back a
368
402
  * host function that reads run data for the node the reference names, which
369
403
  * is what the engines call too (the vm bridge routes it through typed RPC).
404
+ * The host can copy every item per call (combined binary mode does), so the
405
+ * result is charged per element; a callback body repeats the call per visit.
370
406
  */
371
- function evalNodeRefCall(proxy, method) {
407
+ function evalNodeRefCall(proxy, method, env) {
372
408
  const fn = Reflect.get(proxy, method);
373
409
  if (typeof fn !== 'function')
374
410
  throw new EngineFallbackError();
375
- return bounded(fn.call(proxy));
411
+ const result = bounded(fn.call(proxy));
412
+ // A node name that is an Object.prototype key resolves through a plain
413
+ // object lookup on the host. Only the item shapes stay native.
414
+ const expected = method === 'all' ? (0, grammar_1.isArray)(result) : result === undefined || isItem(result);
415
+ if (!expected)
416
+ throw new EngineFallbackError();
417
+ env.charge((0, grammar_1.isArray)(result) ? result.length : 1);
418
+ return result;
419
+ }
420
+ const isItem = (value) => (0, grammar_1.isObj)(value) && !(0, grammar_1.isArray)(value);
421
+ /**
422
+ * A captured Luxon getter or zero-argument method on `$now`/`$today`. The
423
+ * root is the proxy's own DateTime (anything else is the engine's), and the
424
+ * result is a primitive by allowlist; a non-primitive would mean a patched
425
+ * prototype, which is also the engine's.
426
+ */
427
+ function evalTimeRead(root, fn) {
428
+ if (fn === undefined || !luxon_1.DateTime.isDateTime(root))
429
+ throw new EngineFallbackError();
430
+ const result = fn.call(root);
431
+ if (!isPrimitive(result))
432
+ throw new EngineFallbackError();
433
+ return result;
376
434
  }
377
435
  function evalNodeRef(node, env) {
378
436
  if (node.ref === 'input')
@@ -433,6 +491,8 @@ function evalNode(node, env) {
433
491
  return env.data[node.name];
434
492
  case 'nodeRef':
435
493
  return evalNodeRef(node, env);
494
+ case 'timeRoot':
495
+ return env.data[node.name];
436
496
  case 'undefined':
437
497
  return undefined;
438
498
  case 'member':
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":";;;;;AAAA,wFAAmF;AACnF,oEAAgE;AAEhE,uCAiBmB;AAEnB,8EAA8E;AAC9E,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,0DAA0D;AAE1D;;;;;;GAMG;AACH;IASsB,IAAI;IARzB,KAAK,GAAY,SAAS,CAAC;IAE3B,KAAK,GAAG,CAAC,CAAC;IAEV,IAAI,GAAG,CAAC,CAAC;IAEA,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE1D,YAAqB,IAA4B;oBAA5B,IAAI;IAA2B,CAAC;IAErD,MAAM,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAQ;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAC3D,CAAC;CACD;;AAED;;;;;;;;GAQG;AACH,yBAAiC,SAAQ,KAAK;CAAG;;AAEjD;;;;GAIG;AACH,MAAM,iBAAkB,SAAQ,KAAK;CAAG;AACxC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,KAAc,EAA6C,EAAE,CACjF,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CAC/C,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC;AAE9E,iBAA2B,KAAQ;IAClC,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;IAE/D,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,2BAAiB,EAAE,CAAC;QACpD,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,uDAAuD;AACvD,MAAM,SAAS,GAAkD,MAAM,CAAC,MAAM,CAAC;IAC9E,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IACxB,kCAAkC;IAClC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,kCAAkC;IAClC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;CACpB,CAAC,CAAC;AACH,sDAAsD;AAEtD,SAAS,UAAU,CAAC,IAA6C,EAAE,GAAQ;IAC1E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,iBAAiB,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,6BAA6B,IAAA,eAAK,EAAC,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,SAAS,GACd,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAC9B,OAAO,MAAM,KAAK,QAAQ;QAC1B,IAAI,CAAC,GAAG,IAAI,MAAM;QAClB,CAAC,IAAA,gBAAM,EAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9F,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,IAA6C,EAAW,EAAE,CAClF,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC;AAElE;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAuC,EAAE,GAAoB,EAAE,GAAQ;IAC7F,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAElE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,QAAiB,EAAE,IAAY;IACjD,IAAI,MAAgC,CAAC;IAErC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,wBAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,GAAG,wBAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,uBAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE1D,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,GAAY;IACtD,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,OAAO,MAAM,KAAK,QAAQ,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,QAAiB,EAAE,MAAc,EAAE,IAAe;IACxE,IAAI,UAAU,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,QAA+B,CAAC,MAAM,CAAC;IAE5F,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,UAAU,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,YAAY,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9F,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,qEAAqE;QACrE,qEAAqE;QACrE,wEAAwE;QACxE,uEAAuE;QACvE,2DAA2D;QAC3D,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAEtF,UAAU;YACT,MAAM,KAAK,SAAS;gBACnB,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;gBACtC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,iEAAiE;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,UAAU,IAAI,IAAA,eAAK,EAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,IAAI,UAAU,GAAG,2BAAiB,EAAE,CAAC;QACpC,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,KAAgB,EAAE,KAAa;IAChD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,IAAI,GAAG,2BAAiB;YAAE,MAAM;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAE3D;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,QAAmB;IACnD,yEAAyE;IACzE,uBAAuB;IACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,2BAAiB;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAEzE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAC5D,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAc,EAAE,MAAc,EAAE,KAAK,GAAG,CAAC;IAC/D,IAAI,KAAK,GAAG,mBAAS;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IACnD,IAAI,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAA,iBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7D,IAAI,MAAM,GAAG,MAAM;gBAAE,MAAM;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,wEAAwE;IACxE,+DAA+D;IAC/D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAA,gBAAM,EAAC,KAAK,EAAE,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,MAAM,GAAG,MAAM;YAAE,MAAM;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,QAAmB,EAAE,IAAe;IAC/D,IAAI,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,2BAAiB,CAAC,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,MAAM,GAAG,2BAAiB;YAAE,MAAM;QACtC,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,2BAAiB,GAAG,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,GAAG,2BAAiB;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,YAAY,CACpB,IAAuD,EACvD,GAAQ;IAER,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC;IAEpE,IAAI,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,iBAAiB,CAAC;IACzB,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,6BAA6B,IAAA,eAAK,EAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAChG,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,IAA2C,EAAE,GAAQ;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEzC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,uDAAuD;IACvD,IAAI,IAAA,gBAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEvD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,IAA8C,EAAE,GAAQ;IAC5E,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC,IAAA,iBAAO,EAAC,QAAQ,CAAC,IAAI,IAAA,gBAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,0BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE1D,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAErD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAE,EAAE;QAClC,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,mBAAS;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAE7D,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;QACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,2BAAiB,GAAG,MAAM,CAAC,CAAC;YAC5D,IAAI,MAAM,GAAG,2BAAiB;gBAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAc,EAAE,MAAc;IACtD,MAAM,EAAE,GAAY,OAAO,CAAC,GAAG,CAAC,KAAe,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE9D,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,IAA8C,EAAE,GAAQ;IAC5E,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IACjD,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,IAA4C,EAAE,GAAQ;IACxE,IAAI,CAAC;QACJ,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,KAAK,iBAAiB;YAAE,OAAO,SAAS,CAAC;QAElD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,IAA4C,EAAE,GAAQ;IACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,IAA6C,EAAE,GAAQ;IAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAExC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/C,yEAAyE;IACzE,8CAA8C;IAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAA8C,EAAE,GAAQ;IAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QACjB,KAAK,IAAI;YACR,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,KAAK,IAAI;YACR,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,KAAK,IAAI;YACR,OAAO,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAgB,EAAE,GAAQ;IAC3C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACb,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,KAAK,WAAW;YACf,OAAO,SAAS,CAAC;QAClB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,KAAK,aAAa;YACjB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;gBAC9B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;gBAChC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,KAAK,OAAO;YACX,2EAA2E;YAC3E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEjC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,KAAK,OAAO;YACX,OAAO,GAAG,CAAC,KAAK,CAAC;QAClB,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,mBAA0B,IAAgB,EAAE,GAAQ;IACnD,IAAI,CAAC;QACJ,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GACZ,KAAK,YAAY,mBAAmB;YACpC,KAAK,YAAY,kCAAe;YAChC,KAAK,YAAY,qDAAwB,CAAC;QAE3C,IAAI,OAAO;YAAE,MAAM,KAAK,CAAC;QAEzB,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":";;;;;AAAA,wFAAmF;AACnF,oEAAgE;AAChE,iCAAiC;AAGjC,uCAmBmB;AAEnB,8EAA8E;AAC9E,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,0DAA0D;AAE1D;;;;;;GAMG;AACH;IASsB,IAAI;IARzB,KAAK,GAAY,SAAS,CAAC;IAE3B,KAAK,GAAG,CAAC,CAAC;IAEV,IAAI,GAAG,CAAC,CAAC;IAEA,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE1D,YAAqB,IAA4B;oBAA5B,IAAI;IAA2B,CAAC;IAErD,MAAM,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAQ;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAC3D,CAAC;CACD;;AAED;;;;;;;;GAQG;AACH,yBAAiC,SAAQ,KAAK;CAAG;;AAEjD;;;;GAIG;AACH,MAAM,iBAAkB,SAAQ,KAAK;CAAG;AACxC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,KAAc,EAA6C,EAAE,CACjF,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CAC/C,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC;AAE9E,iBAA2B,KAAQ;IAClC,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;IAE/D,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,2BAAiB,EAAE,CAAC;QACpD,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,uDAAuD;AACvD,MAAM,SAAS,GAAkD,MAAM,CAAC,MAAM,CAAC;IAC9E,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IACxB,kCAAkC;IAClC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,kCAAkC;IAClC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;CACpB,CAAC,CAAC;AACH,sDAAsD;AAEtD,SAAS,UAAU,CAAC,IAA6C,EAAE,GAAQ;IAC1E,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,sBAAY,CAAC,GAAG,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,iBAAiB,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,6BAA6B,IAAA,eAAK,EAAC,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,SAAS,GACd,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAC9B,OAAO,MAAM,KAAK,QAAQ;QAC1B,IAAI,CAAC,GAAG,IAAI,MAAM;QAClB,CAAC,IAAA,gBAAM,EAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,yEAAyE;IACzE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9F,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,IAA6C,EAAW,EAAE,CAClF,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC;AAElE;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAuC,EAAE,GAAoB,EAAE,GAAQ;IAC7F,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAElE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,QAAiB,EAAE,IAAY;IACjD,IAAI,MAAgC,CAAC;IAErC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,wBAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,GAAG,wBAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,uBAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE1D,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,GAAY;IACtD,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,OAAO,MAAM,KAAK,QAAQ,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,QAAiB,EAAE,MAAc,EAAE,IAAe;IACxE,IAAI,UAAU,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,QAA+B,CAAC,MAAM,CAAC;IAE5F,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,UAAU,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,YAAY,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9F,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,qEAAqE;QACrE,qEAAqE;QACrE,wEAAwE;QACxE,uEAAuE;QACvE,2DAA2D;QAC3D,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAEtF,UAAU;YACT,MAAM,KAAK,SAAS;gBACnB,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;gBACtC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,iEAAiE;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,UAAU,IAAI,IAAA,eAAK,EAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,IAAI,UAAU,GAAG,2BAAiB,EAAE,CAAC;QACpC,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,KAAgB,EAAE,KAAa;IAChD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,IAAI,GAAG,2BAAiB;YAAE,MAAM;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAE3D;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,QAAmB;IACnD,yEAAyE;IACzE,uBAAuB;IACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,2BAAiB;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAEzE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAC5D,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,QAAmB,EAAE,MAAc;IAC9D,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,OAAO,IAAI,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAEjE,6EAA6E;QAC7E,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC/E,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5F,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,CAAC;AACV,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAc,EAAE,MAAc,EAAE,KAAK,GAAG,CAAC;IAC/D,IAAI,KAAK,GAAG,mBAAS;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IACnD,IAAI,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAA,iBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7D,IAAI,MAAM,GAAG,MAAM;gBAAE,MAAM;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,wEAAwE;IACxE,+DAA+D;IAC/D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAA,gBAAM,EAAC,KAAK,EAAE,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,MAAM,GAAG,MAAM;YAAE,MAAM;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,QAAmB,EAAE,IAAe;IAC/D,IAAI,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,2BAAiB,CAAC,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,MAAM,GAAG,2BAAiB;YAAE,MAAM;QACtC,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,2BAAiB,GAAG,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,GAAG,2BAAiB;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,YAAY,CACpB,IAAuD,EACvD,GAAQ;IAER,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC;IAEpE,IAAI,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,iBAAiB,CAAC;IACzB,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,6BAA6B,IAAA,eAAK,EAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAChG,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,IAA2C,EAAE,GAAQ;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEzC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,YAAY,CAAC,QAAQ,EAAE,sBAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,4EAA4E;IAC5E,uDAAuD;IACvD,IAAI,IAAA,gBAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC;QAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7E,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,IAA8C,EAAE,GAAQ;IAC5E,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC,IAAA,iBAAO,EAAC,QAAQ,CAAC,IAAI,IAAA,gBAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,0BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE1D,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAErD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAE,EAAE;QAClC,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,mBAAS;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAE7D,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;QACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,2BAAiB,GAAG,MAAM,CAAC,CAAC;YAC5D,IAAI,MAAM,GAAG,2BAAiB;gBAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAc,EAAE,MAAc,EAAE,GAAQ;IAChE,MAAM,EAAE,GAAY,OAAO,CAAC,GAAG,CAAC,KAAe,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE9D,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvC,uEAAuE;IACvE,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE/C,GAAG,CAAC,MAAM,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAAa,EAAE,EAA4B;IAChE,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAEpF,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAE1D,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAA8C,EAAE,GAAQ;IAC5E,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IACjD,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,IAA4C,EAAE,GAAQ;IACxE,IAAI,CAAC;QACJ,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,KAAK,iBAAiB;YAAE,OAAO,SAAS,CAAC;QAElD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,IAA4C,EAAE,GAAQ;IACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,IAA6C,EAAE,GAAQ;IAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAExC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/C,yEAAyE;IACzE,8CAA8C;IAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAA8C,EAAE,GAAQ;IAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QACjB,KAAK,IAAI;YACR,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,KAAK,IAAI;YACR,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,KAAK,IAAI;YACR,OAAO,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAgB,EAAE,GAAQ;IAC3C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACb,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,KAAK,UAAU;YACd,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,WAAW;YACf,OAAO,SAAS,CAAC;QAClB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,KAAK,aAAa;YACjB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;gBAC9B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;gBAChC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,KAAK,OAAO;YACX,2EAA2E;YAC3E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEjC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,KAAK,OAAO;YACX,OAAO,GAAG,CAAC,KAAK,CAAC;QAClB,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,mBAA0B,IAAgB,EAAE,GAAQ;IACnD,IAAI,CAAC;QACJ,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GACZ,KAAK,YAAY,mBAAmB;YACpC,KAAK,YAAY,kCAAe;YAChC,KAAK,YAAY,qDAAwB,CAAC;QAE3C,IAAI,OAAO;YAAE,MAAM,KAAK,CAAC;QAEzB,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC"}
@@ -21,6 +21,9 @@ export type SimpleNode = {
21
21
  kind: 'nodeRef';
22
22
  ref: 'legacy';
23
23
  name: string;
24
+ } | {
25
+ kind: 'timeRoot';
26
+ name: TimeRoot;
24
27
  } | {
25
28
  kind: 'undefined';
26
29
  } | {
@@ -76,11 +79,12 @@ export type DataRoot = (typeof DATA_ROOTS)[number];
76
79
  export declare const NODE_REF_MEMBERS: Set<string>;
77
80
  export declare const LEGACY_NODE_REF_MEMBERS: Set<string>;
78
81
  export declare const NODE_REF_METHODS: Set<string>;
82
+ export declare const TIME_ROOTS: readonly ['$now', '$today'];
83
+ export type TimeRoot = (typeof TIME_ROOTS)[number];
79
84
  export declare const isArray: (arg: any) => arg is any[];
80
85
  export declare const hasOwn: (o: object, v: PropertyKey) => boolean;
81
86
  export declare const toStr: StringConstructor;
82
87
  export declare const toNum: NumberConstructor;
83
- export declare const clone: typeof structuredClone;
84
88
  export type NativeMethod = (this: unknown, ...args: unknown[]) => unknown;
85
89
  export declare const STRING_METHODS: ReadonlyMap<string, NativeMethod>;
86
90
  export declare const NUMBER_METHODS: ReadonlyMap<string, NativeMethod>;
@@ -89,6 +93,8 @@ export declare const ITERATOR_METHODS: readonly ['some', 'every', 'find', 'filte
89
93
  export type IteratorMethod = (typeof ITERATOR_METHODS)[number];
90
94
  export declare const ITERATOR_NATIVES: ReadonlyMap<string, NativeMethod>;
91
95
  export declare const RESERVED_NAMES: Set<string>;
96
+ export declare const TIME_MEMBERS: ReadonlyMap<string, NativeMethod>;
97
+ export declare const TIME_METHODS: ReadonlyMap<string, NativeMethod>;
92
98
  export declare const CALLABLE_METHODS: Set<string>;
93
99
  export declare const MAX_RESULT_LENGTH = 1000000;
94
100
  export declare const MAX_STEPS = 100000;
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/grammar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/grammar.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isOneOf = exports.isObj = exports.MAX_DEPTH = exports.MAX_WORK = exports.MAX_STEPS = exports.MAX_RESULT_LENGTH = exports.CALLABLE_METHODS = exports.RESERVED_NAMES = exports.ITERATOR_NATIVES = exports.ITERATOR_METHODS = exports.ARRAY_METHODS = exports.NUMBER_METHODS = exports.STRING_METHODS = exports.clone = exports.toNum = exports.toStr = exports.hasOwn = exports.isArray = exports.NODE_REF_METHODS = exports.LEGACY_NODE_REF_MEMBERS = exports.NODE_REF_MEMBERS = exports.DATA_ROOTS = exports.UNARY_OPS = exports.BINARY_OPS = void 0;
3
+ exports.isOneOf = exports.isObj = exports.MAX_DEPTH = exports.MAX_WORK = exports.MAX_STEPS = exports.MAX_RESULT_LENGTH = exports.CALLABLE_METHODS = exports.TIME_METHODS = exports.TIME_MEMBERS = exports.RESERVED_NAMES = exports.ITERATOR_NATIVES = exports.ITERATOR_METHODS = exports.ARRAY_METHODS = exports.NUMBER_METHODS = exports.STRING_METHODS = exports.toNum = exports.toStr = exports.hasOwn = exports.isArray = exports.TIME_ROOTS = exports.NODE_REF_METHODS = exports.LEGACY_NODE_REF_MEMBERS = exports.NODE_REF_MEMBERS = exports.DATA_ROOTS = exports.UNARY_OPS = exports.BINARY_OPS = void 0;
4
+ const luxon_1 = require("luxon");
4
5
  // The closed subset grammar, its operator and method allowlists, and the
5
6
  // limits the parser and the evaluator share. See index.ts for the overview.
6
7
  exports.BINARY_OPS = [
@@ -19,9 +20,9 @@ exports.BINARY_OPS = [
19
20
  '%',
20
21
  ];
21
22
  exports.UNARY_OPS = ['!', '-', '+'];
22
- // Data roots: plain reads off the data proxy. `$now`/`$today` are excluded on
23
- // purpose: they are Luxon DateTimes whose methods would make every useful
24
- // expression on them a CallExpression anyway.
23
+ // Data roots: plain reads off the data proxy. `$now`/`$today` are Luxon
24
+ // DateTimes, which this grammar cannot hold as a value; they are time roots
25
+ // below, readable only through an allowlisted getter or method.
25
26
  //
26
27
  // Note on $parameter: the proxy resolves nested `=` parameter values by
27
28
  // re-entering resolveSimpleParameterValue - a nested non-simple value simply
@@ -48,6 +49,16 @@ exports.DATA_ROOTS = [
48
49
  exports.NODE_REF_MEMBERS = new Set(['item']);
49
50
  exports.LEGACY_NODE_REF_MEMBERS = new Set(['json', 'binary']);
50
51
  exports.NODE_REF_METHODS = new Set(['first', 'last', 'all']);
52
+ // Time roots: `$now` and `$today`, the proxy's Luxon DateTimes. Like a node
53
+ // reference, a time root is only ever built as the object of an allowlisted
54
+ // getter (TIME_MEMBERS) or the receiver of an allowlisted zero-argument
55
+ // method (TIME_METHODS), each of which yields a primitive; the DateTime
56
+ // itself never stands alone in the grammar. Both lists stay clear of Intl:
57
+ // the in-isolate Luxon copy formats and localises differently, so
58
+ // toFormat(), toLocaleString() and the locale-dependent getters are the
59
+ // engine's. The proxy builds both roots with the workflow timezone as
60
+ // Luxon's default zone, which is what the isolates set too.
61
+ exports.TIME_ROOTS = ['$now', '$today'];
51
62
  // Intrinsics are captured at import so a later patch to a prototype or a
52
63
  // global (a polyfill, a community package) does not change what the native
53
64
  // path runs; the isolates never see such a patch either.
@@ -55,7 +66,15 @@ exports.NODE_REF_METHODS = new Set(['first', 'last', 'all']);
55
66
  ({ hasOwn: exports.hasOwn } = Object);
56
67
  exports.toStr = String;
57
68
  exports.toNum = Number;
58
- exports.clone = structuredClone;
69
+ const captureGetters = (proto, names) => {
70
+ const getters = new Map();
71
+ for (const name of names) {
72
+ const getter = Object.getOwnPropertyDescriptor(proto, name)?.get;
73
+ if (typeof getter === 'function')
74
+ getters.set(name, getter);
75
+ }
76
+ return getters;
77
+ };
59
78
  const captureMethods = (proto, names) => {
60
79
  const methods = new Map();
61
80
  for (const name of names) {
@@ -122,7 +141,45 @@ exports.ITERATOR_NATIVES = captureMethods(Array.prototype, [...exports.ITERATOR_
122
141
  // A callback parameter may not take one of these names: the body would then
123
142
  // read the parameter where this grammar reads the root. `undefined` is a
124
143
  // legal parameter name in JS; here it is a literal.
125
- exports.RESERVED_NAMES = new Set([...exports.DATA_ROOTS, '$input', '$node', '$', 'undefined']);
144
+ exports.RESERVED_NAMES = new Set([
145
+ ...exports.DATA_ROOTS,
146
+ ...exports.TIME_ROOTS,
147
+ '$input',
148
+ '$node',
149
+ '$',
150
+ 'undefined',
151
+ ]);
152
+ // A test that mocks luxon leaves DateTime without a prototype; the lists are
153
+ // then empty and every time root declines.
154
+ const capturedProto = Reflect.get(luxon_1.DateTime ?? {}, 'prototype');
155
+ const dateTimeProto = typeof capturedProto === 'object' && capturedProto !== null ? capturedProto : {};
156
+ exports.TIME_MEMBERS = captureGetters(dateTimeProto, [
157
+ 'year',
158
+ 'month',
159
+ 'day',
160
+ 'hour',
161
+ 'minute',
162
+ 'second',
163
+ 'millisecond',
164
+ 'weekday',
165
+ 'weekNumber',
166
+ 'quarter',
167
+ 'daysInMonth',
168
+ 'offset',
169
+ ]);
170
+ // Zero-argument only: the one argument these take is an options object,
171
+ // which the grammar has no literal for. toString() is toISO(). Like
172
+ // CALLABLE_METHODS, the names stay disjoint from the expression extensions
173
+ // (plus/minus/format are extensions in the engines, not Luxon's).
174
+ exports.TIME_METHODS = captureMethods(dateTimeProto, [
175
+ 'toMillis',
176
+ 'toSeconds',
177
+ 'toUnixInteger',
178
+ 'toISO',
179
+ 'toISODate',
180
+ 'toISOTime',
181
+ 'toString',
182
+ ]);
126
183
  exports.CALLABLE_METHODS = new Set([
127
184
  ...exports.STRING_METHODS.keys(),
128
185
  ...exports.NUMBER_METHODS.keys(),
@@ -142,6 +199,10 @@ exports.MAX_STEPS = 100_000;
142
199
  // visit does (a body can scan a MAX_RESULT_LENGTH string per element); this
143
200
  // bounds the product, in units the interpreter already computes, so it does
144
201
  // not depend on the clock or the machine.
202
+ //
203
+ // Rule for every allowlisted method: its charge is an upper bound on the
204
+ // characters it touches, not the elements it counts. A method that compares
205
+ // or stringifies elements is charged by their content.
145
206
  exports.MAX_WORK = 10 * exports.MAX_RESULT_LENGTH;
146
207
  // Nesting depth of the subset grammar. Parsing and evaluation both recurse
147
208
  // once per level, so this keeps a pathological expression off the host stack;
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/grammar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/grammar.ts"],"names":[],"mappings":";;;AACA,iCAAiC;AAEjC,yEAAyE;AACzE,4EAA4E;AAE/D,QAAA,UAAU,GAAG;IACzB,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,IAAI;IACJ,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACM,CAAC;AACE,QAAA,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAoClD,wEAAwE;AACxE,4EAA4E;AAC5E,gEAAgE;AAChE,EAAE;AACF,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,WAAW;AACX,EAAE;AACF,4EAA4E;AAC5E,4CAA4C;AAC/B,QAAA,UAAU,GAAG;IACzB,OAAO;IACP,YAAY;IACZ,OAAO;IACP,SAAS;IACT,YAAY;IACZ,WAAW;CACF,CAAC;AAGX,2EAA2E;AAC3E,yEAAyE;AACzE,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,yEAAyE;AAC5D,QAAA,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,QAAA,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtD,QAAA,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAElE,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,wEAAwE;AACxE,2EAA2E;AAC3E,kEAAkE;AAClE,wEAAwE;AACxE,sEAAsE;AACtE,4DAA4D;AAC/C,QAAA,UAAU,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAC;AAGtD,yEAAyE;AACzE,2EAA2E;AAC3E,yDAAyD;AACzD,CAAa,EAAE,OAAO,EAAP,QAAA,OAAO,EAAE,GAAG,KAAK,EAAC;AACjC,CAAa,EAAE,MAAM,EAAN,QAAA,MAAM,EAAE,GAAG,MAAM,EAAC;AACpB,QAAA,KAAK,GAAG,MAAM,CAAC;AACf,QAAA,KAAK,GAAG,MAAM,CAAC;AAI5B,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,KAAe,EAAqC,EAAE;IAC5F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QACjE,IAAI,OAAO,MAAM,KAAK,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAsB,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,KAAe,EAAqC,EAAE;IAC5F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,MAAM,KAAK,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAsB,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,gEAAgE;AAChE,0EAA0E;AAC1E,kCAAkC;AACrB,QAAA,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE;IAC9D,aAAa;IACb,aAAa;IACb,MAAM;IACN,WAAW;IACX,SAAS;IACT,UAAU;IACV,YAAY;IACZ,UAAU;IACV,OAAO;IACP,SAAS;IACT,QAAQ;IACR,SAAS;IACT,YAAY;CACZ,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE;IAC9D,SAAS;IACT,aAAa;IACb,UAAU;CACV,CAAC,CAAC;AAEH,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,wDAAwD;AAC3C,QAAA,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE;IAC5D,UAAU;IACV,SAAS;IACT,aAAa;IACb,MAAM;IACN,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,UAAU;IACV,YAAY;CACZ,CAAC,CAAC;AAEH,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,sEAAsE;AACzD,QAAA,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAEvE,QAAA,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,QAAA,gBAAgB,CAAC,CAAC,CAAC;AAEvF,4EAA4E;AAC5E,yEAAyE;AACzE,oDAAoD;AACvC,QAAA,cAAc,GAAG,IAAI,GAAG,CAAS;IAC7C,GAAG,QAAA,UAAU;IACb,GAAG,QAAA,UAAU;IACb,QAAQ;IACR,OAAO;IACP,GAAG;IACH,WAAW;CACX,CAAC,CAAC;AAEH,6EAA6E;AAC7E,2CAA2C;AAC3C,MAAM,aAAa,GAAY,OAAO,CAAC,GAAG,CAAC,gBAAQ,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;AACxE,MAAM,aAAa,GAClB,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AAErE,QAAA,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE;IACzD,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,SAAS;IACT,YAAY;IACZ,SAAS;IACT,aAAa;IACb,QAAQ;CACR,CAAC,CAAC;AAEH,wEAAwE;AACxE,oEAAoE;AACpE,2EAA2E;AAC3E,kEAAkE;AACrD,QAAA,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE;IACzD,UAAU;IACV,WAAW;IACX,eAAe;IACf,OAAO;IACP,WAAW;IACX,WAAW;IACX,UAAU;CACV,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,IAAI,GAAG,CAAC;IACvC,GAAG,QAAA,cAAc,CAAC,IAAI,EAAE;IACxB,GAAG,QAAA,cAAc,CAAC,IAAI,EAAE;IACxB,GAAG,QAAA,aAAa,CAAC,IAAI,EAAE;CACvB,CAAC,CAAC;AAEH,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,0DAA0D;AAC7C,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAE3C,2EAA2E;AAC3E,yEAAyE;AACzE,wEAAwE;AAC3D,QAAA,SAAS,GAAG,OAAO,CAAC;AAEjC,wEAAwE;AACxE,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,0CAA0C;AAC1C,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,uDAAuD;AAC1C,QAAA,QAAQ,GAAG,EAAE,GAAG,QAAA,iBAAiB,CAAC;AAE/C,2EAA2E;AAC3E,8EAA8E;AAC9E,iDAAiD;AACpC,QAAA,SAAS,GAAG,EAAE,CAAC;AAErB,MAAM,KAAK,GAAG,CAAC,KAAc,EAAoC,EAAE,CACzE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AADhC,QAAA,KAAK,GAAL,KAAK,CAC2B;AAEtC,MAAM,OAAO,GAAG,CAAmB,GAAiB,EAAE,EAAW,EAAW,EAAE,CACpF,OAAO,EAAE,KAAK,QAAQ,IAAK,GAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AADtD,QAAA,OAAO,GAAP,OAAO,CAC+C"}
@@ -1,5 +1,5 @@
1
1
  import type { IWorkflowDataProxyData } from '../../interfaces';
2
- export { CALLABLE_METHODS, ITERATOR_METHODS, MAX_RESULT_LENGTH, MAX_STEPS, MAX_WORK, } from './grammar';
2
+ export { CALLABLE_METHODS, ITERATOR_METHODS, MAX_RESULT_LENGTH, MAX_STEPS, MAX_WORK, TIME_METHODS, } from './grammar';
3
3
  /** Does the expression (leading `=` stripped) fit the native subset? */
4
4
  export declare function isNativelyEvaluable(expression: string): boolean;
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,QAAQ,GACR,MAAM,WAAW,CAAC;AA8GnB,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,sBAAsB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAYxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,YAAY,GACZ,MAAM,WAAW,CAAC;AAmHnB,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,sBAAsB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAYxD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_WORK = exports.MAX_STEPS = exports.MAX_RESULT_LENGTH = exports.ITERATOR_METHODS = exports.CALLABLE_METHODS = void 0;
3
+ exports.TIME_METHODS = exports.MAX_WORK = exports.MAX_STEPS = exports.MAX_RESULT_LENGTH = exports.ITERATOR_METHODS = exports.CALLABLE_METHODS = void 0;
4
4
  exports.isNativelyEvaluable = isNativelyEvaluable;
5
5
  exports.evaluateNatively = evaluateNatively;
6
6
  const tournament_1 = require("@n8n/tournament");
@@ -8,12 +8,14 @@ const lru_cache_1 = require("@n8n/utils/lru-cache");
8
8
  const evaluator_1 = require("./evaluator");
9
9
  const grammar_1 = require("./grammar");
10
10
  const parser_1 = require("./parser");
11
+ const { getPrototypeOf, keys } = Object;
11
12
  var grammar_2 = require("./grammar");
12
13
  Object.defineProperty(exports, "CALLABLE_METHODS", { enumerable: true, get: function () { return grammar_2.CALLABLE_METHODS; } });
13
14
  Object.defineProperty(exports, "ITERATOR_METHODS", { enumerable: true, get: function () { return grammar_2.ITERATOR_METHODS; } });
14
15
  Object.defineProperty(exports, "MAX_RESULT_LENGTH", { enumerable: true, get: function () { return grammar_2.MAX_RESULT_LENGTH; } });
15
16
  Object.defineProperty(exports, "MAX_STEPS", { enumerable: true, get: function () { return grammar_2.MAX_STEPS; } });
16
17
  Object.defineProperty(exports, "MAX_WORK", { enumerable: true, get: function () { return grammar_2.MAX_WORK; } });
18
+ Object.defineProperty(exports, "TIME_METHODS", { enumerable: true, get: function () { return grammar_2.TIME_METHODS; } });
17
19
  // null = outside the subset. Declined expressions are cached too, so an
18
20
  // expression the engine owns costs one parse here, not one per evaluation.
19
21
  // Entries are keyed by expression text, so the key length is capped to keep
@@ -47,6 +49,7 @@ function compile(expression) {
47
49
  return null;
48
50
  }
49
51
  const chunks = [];
52
+ const nodes = [];
50
53
  for (const chunk of parsed) {
51
54
  if (chunk.type === 'text') {
52
55
  chunks.push(chunk);
@@ -56,7 +59,10 @@ function compile(expression) {
56
59
  if (node === null)
57
60
  return null;
58
61
  chunks.push({ type: 'code', node });
62
+ nodes.push(node);
59
63
  }
64
+ if ((0, parser_1.usesPolyfilledChain)(nodes))
65
+ return null;
60
66
  // Mirrors the branch condition in ExpressionBuilder.getExpressionCode.
61
67
  const isWholeValue = chunks.length === 2 && chunks[0].type === 'text' && chunks[0].text === '';
62
68
  return { chunks, isWholeValue };
@@ -97,17 +103,54 @@ function evaluateNatively(expression, data) {
97
103
  }
98
104
  // The engines hand back a copy of any object they return; a whole-value read
99
105
  // like `{{ $json.body }}` here would hand back the live execution data, which
100
- // callers then mutate in place (cleanupParameterData). Match the engines.
101
- // The `$parameter` root is a Proxy and cannot be cloned: the engine owns it.
106
+ // callers then mutate in place (cleanupParameterData). Match the engines with
107
+ // a plain-data copy. Everything else is the engine's: a data proxy (the
108
+ // `$parameter` get trap resolves nested expressions), a non-plain object or
109
+ // array (Date, DateTime), a function, symbol or bigint, data deeper than
110
+ // MAX_DEPTH, and an own `__proto__` key,
111
+ // which the vm and quickjs serialiser drops and legacy keeps.
102
112
  function copyResult(value) {
103
- if (!(0, grammar_1.isObj)(value))
104
- return value;
105
- try {
106
- return (0, grammar_1.clone)(value);
107
- }
108
- catch {
109
- throw new evaluator_1.EngineFallbackError();
110
- }
113
+ // A shared object is copied once per reference, so shared or cyclic data
114
+ // and long sparse arrays are bounded by the slots visited, not by depth.
115
+ let visits = 0;
116
+ const copy = (value, depth) => {
117
+ const nonJsonLeaf = typeof value === 'function' || typeof value === 'symbol' || typeof value === 'bigint';
118
+ if (nonJsonLeaf)
119
+ throw new evaluator_1.EngineFallbackError();
120
+ if (!(0, grammar_1.isObj)(value))
121
+ return value;
122
+ if (depth > grammar_1.MAX_DEPTH || value.isProxy === true)
123
+ throw new evaluator_1.EngineFallbackError();
124
+ if ((0, grammar_1.isArray)(value)) {
125
+ if (getPrototypeOf(value) !== Array.prototype)
126
+ throw new evaluator_1.EngineFallbackError();
127
+ visits += value.length;
128
+ if (visits > grammar_1.MAX_RESULT_LENGTH)
129
+ throw new evaluator_1.EngineFallbackError();
130
+ // Holes stay holes: the corpus pins an engine divergence on sparse arrays.
131
+ const result = new Array(value.length);
132
+ for (let i = 0; i < value.length; i++) {
133
+ if ((0, grammar_1.hasOwn)(value, i))
134
+ result[i] = copy(value[i], depth + 1);
135
+ }
136
+ return result;
137
+ }
138
+ const proto = getPrototypeOf(value);
139
+ if (proto !== Object.prototype && proto !== null)
140
+ throw new evaluator_1.EngineFallbackError();
141
+ const ownKeys = keys(value);
142
+ visits += ownKeys.length;
143
+ if (visits > grammar_1.MAX_RESULT_LENGTH)
144
+ throw new evaluator_1.EngineFallbackError();
145
+ const result = {};
146
+ for (const key of ownKeys) {
147
+ if (key === '__proto__')
148
+ throw new evaluator_1.EngineFallbackError();
149
+ result[key] = copy(value[key], depth + 1);
150
+ }
151
+ return result;
152
+ };
153
+ return copy(value, 0);
111
154
  }
112
155
  function evalCompiled(compiled, data) {
113
156
  const env = new evaluator_1.Env(data);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,17 @@
1
1
  import type { ExpressionKind, SpreadElementKind } from 'ast-types/lib/gen/kinds';
2
2
  import { type SimpleNode } from './grammar';
3
3
  type AstNode = ExpressionKind | SpreadElementKind;
4
+ /**
5
+ * Once a chunk holds an extension call, extendTransform rewrites every
6
+ * optional chain in it through its own polyfill, and that reprint drops the
7
+ * parentheses around a `??` operand mixed with `&&` or `||`: the engines
8
+ * then throw "invalid syntax" where this interpreter would evaluate. An
9
+ * extension call in any chunk sends every chunk through the rewrite, so an
10
+ * expression with both an optional chain and an extension call is theirs,
11
+ * even when the two are in different chunks. The rewrite matches by method
12
+ * name alone, so a node-ref call like `$input.first()` counts too.
13
+ */
14
+ export declare function usesPolyfilledChain(roots: SimpleNode[]): boolean;
4
15
  export declare function parseSimple(node: AstNode, depth?: number, param?: string | null): SimpleNode | null;
5
16
  export {};
6
17
  //# sourceMappingURL=parser.d.ts.map