n8n-workflow 2.44.1 → 2.45.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 (87) hide show
  1. package/dist/cjs/build.tsbuildinfo +1 -1
  2. package/dist/cjs/dynamic-credentials-helpers.d.ts +11 -2
  3. package/dist/cjs/dynamic-credentials-helpers.d.ts.map +1 -1
  4. package/dist/cjs/dynamic-credentials-helpers.js +40 -2
  5. package/dist/cjs/dynamic-credentials-helpers.js.map +1 -1
  6. package/dist/cjs/execution-context.d.ts +8 -0
  7. package/dist/cjs/execution-context.d.ts.map +1 -1
  8. package/dist/cjs/execution-context.js +12 -0
  9. package/dist/cjs/execution-context.js.map +1 -1
  10. package/dist/cjs/expression.d.ts +53 -0
  11. package/dist/cjs/expression.d.ts.map +1 -1
  12. package/dist/cjs/expression.js +141 -34
  13. package/dist/cjs/expression.js.map +1 -1
  14. package/dist/cjs/expressions/native-evaluation/evaluator.d.ts.map +1 -1
  15. package/dist/cjs/expressions/native-evaluation/evaluator.js +80 -10
  16. package/dist/cjs/expressions/native-evaluation/evaluator.js.map +1 -1
  17. package/dist/cjs/expressions/native-evaluation/grammar.d.ts +1 -1
  18. package/dist/cjs/expressions/native-evaluation/grammar.d.ts.map +1 -1
  19. package/dist/cjs/expressions/native-evaluation/grammar.js +52 -2
  20. package/dist/cjs/expressions/native-evaluation/grammar.js.map +1 -1
  21. package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -1
  22. package/dist/cjs/expressions/native-evaluation/index.js +52 -10
  23. package/dist/cjs/expressions/native-evaluation/index.js.map +1 -1
  24. package/dist/cjs/expressions/native-evaluation/parser.d.ts +11 -0
  25. package/dist/cjs/expressions/native-evaluation/parser.d.ts.map +1 -1
  26. package/dist/cjs/expressions/native-evaluation/parser.js +86 -10
  27. package/dist/cjs/expressions/native-evaluation/parser.js.map +1 -1
  28. package/dist/cjs/extensions/expression-parser.js +2 -2
  29. package/dist/cjs/extensions/expression-parser.js.map +1 -1
  30. package/dist/cjs/interfaces.d.ts +71 -8
  31. package/dist/cjs/interfaces.d.ts.map +1 -1
  32. package/dist/cjs/interfaces.js.map +1 -1
  33. package/dist/cjs/message-event-bus.d.ts +8 -3
  34. package/dist/cjs/message-event-bus.d.ts.map +1 -1
  35. package/dist/cjs/message-event-bus.js +42 -4
  36. package/dist/cjs/message-event-bus.js.map +1 -1
  37. package/dist/cjs/redaction-channels.d.ts +45 -2
  38. package/dist/cjs/redaction-channels.d.ts.map +1 -1
  39. package/dist/cjs/redaction-channels.js +90 -2
  40. package/dist/cjs/redaction-channels.js.map +1 -1
  41. package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts +5 -0
  42. package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
  43. package/dist/cjs/run-execution-data/run-execution-data.v1.js.map +1 -1
  44. package/dist/esm/dynamic-credentials-helpers.d.ts +11 -2
  45. package/dist/esm/dynamic-credentials-helpers.d.ts.map +1 -1
  46. package/dist/esm/dynamic-credentials-helpers.js +39 -2
  47. package/dist/esm/dynamic-credentials-helpers.js.map +1 -1
  48. package/dist/esm/execution-context.d.ts +8 -0
  49. package/dist/esm/execution-context.d.ts.map +1 -1
  50. package/dist/esm/execution-context.js +12 -0
  51. package/dist/esm/execution-context.js.map +1 -1
  52. package/dist/esm/expression.d.ts +53 -0
  53. package/dist/esm/expression.d.ts.map +1 -1
  54. package/dist/esm/expression.js +142 -35
  55. package/dist/esm/expression.js.map +1 -1
  56. package/dist/esm/expressions/native-evaluation/evaluator.d.ts.map +1 -1
  57. package/dist/esm/expressions/native-evaluation/evaluator.js +81 -11
  58. package/dist/esm/expressions/native-evaluation/evaluator.js.map +1 -1
  59. package/dist/esm/expressions/native-evaluation/grammar.d.ts +1 -1
  60. package/dist/esm/expressions/native-evaluation/grammar.d.ts.map +1 -1
  61. package/dist/esm/expressions/native-evaluation/grammar.js +51 -1
  62. package/dist/esm/expressions/native-evaluation/grammar.js.map +1 -1
  63. package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -1
  64. package/dist/esm/expressions/native-evaluation/index.js +54 -12
  65. package/dist/esm/expressions/native-evaluation/index.js.map +1 -1
  66. package/dist/esm/expressions/native-evaluation/parser.d.ts +11 -0
  67. package/dist/esm/expressions/native-evaluation/parser.d.ts.map +1 -1
  68. package/dist/esm/expressions/native-evaluation/parser.js +86 -11
  69. package/dist/esm/expressions/native-evaluation/parser.js.map +1 -1
  70. package/dist/esm/extensions/expression-parser.js +2 -2
  71. package/dist/esm/extensions/expression-parser.js.map +1 -1
  72. package/dist/esm/interfaces.d.ts +71 -8
  73. package/dist/esm/interfaces.d.ts.map +1 -1
  74. package/dist/esm/interfaces.js.map +1 -1
  75. package/dist/esm/message-event-bus.d.ts +8 -3
  76. package/dist/esm/message-event-bus.d.ts.map +1 -1
  77. package/dist/esm/message-event-bus.js +41 -3
  78. package/dist/esm/message-event-bus.js.map +1 -1
  79. package/dist/esm/redaction-channels.d.ts +45 -2
  80. package/dist/esm/redaction-channels.d.ts.map +1 -1
  81. package/dist/esm/redaction-channels.js +84 -2
  82. package/dist/esm/redaction-channels.js.map +1 -1
  83. package/dist/esm/run-execution-data/run-execution-data.v1.d.ts +5 -0
  84. package/dist/esm/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
  85. package/dist/esm/run-execution-data/run-execution-data.v1.js.map +1 -1
  86. package/dist/esm/typecheck.tsbuildinfo +1 -1
  87. package/package.json +6 -6
@@ -1,4 +1,5 @@
1
1
  import { DateTime } from 'luxon';
2
+ import { ExpressionExtensions } from '../../extensions';
2
3
  // The closed subset grammar, its operator and method allowlists, and the
3
4
  // limits the parser and the evaluator share. See index.ts for the overview.
4
5
  export const BINARY_OPS = [
@@ -63,7 +64,6 @@ export const { isArray } = Array;
63
64
  export const { hasOwn } = Object;
64
65
  export const toStr = String;
65
66
  export const toNum = Number;
66
- export const clone = structuredClone;
67
67
  const captureGetters = (proto, names) => {
68
68
  const getters = new Map();
69
69
  for (const name of names) {
@@ -183,6 +183,52 @@ export const CALLABLE_METHODS = new Set([
183
183
  ...NUMBER_METHODS.keys(),
184
184
  ...ARRAY_METHODS.keys(),
185
185
  ]);
186
+ // Expression extensions the native path hands to extend(), the host dispatch
187
+ // the legacy engine calls for them too. The vm and quickjs engines run the
188
+ // copy under @n8n/expression-runtime inside the isolate; the two copies are
189
+ // kept equal except where a Web API is unavailable in the isolate, and those
190
+ // names are excluded here. Pure functions of JSON receiver and arguments,
191
+ // linear in the receiver, so the content weight charged below bounds them.
192
+ // The runtime receiver still picks the implementation (a date string's
193
+ // isEmpty() is the Date extension's), and a non-JSON result bails to the
194
+ // engine.
195
+ const EXCLUDED_EXTENSIONS = new Set([
196
+ // A Luxon or Date value has no representation here; a random result has
197
+ // no parity. The Date extensions are left out as a whole below.
198
+ 'toDate',
199
+ 'toDateTime',
200
+ 'randomItem',
201
+ // A negative size loops forever; the engines kill it, this thread cannot.
202
+ 'chunk',
203
+ // Quadratic: deep equality per pair, regex backtracking per position, the
204
+ // tail rebuilt per sentence, or the accumulator copied per element. The
205
+ // engine's timeout owns those.
206
+ 'unique',
207
+ 'removeDuplicates',
208
+ 'isEmail',
209
+ 'extractEmail',
210
+ 'extractDomain',
211
+ 'removeMarkdown',
212
+ 'toSentenceCase',
213
+ 'isUrl',
214
+ 'isDomain',
215
+ 'merge',
216
+ // Builds a regex from its argument: the safe-regex budget is per call,
217
+ // and an iterator repeats the call per element.
218
+ 'quote',
219
+ // Spread into Math.min/max: the engines overflow at sizes under the cap.
220
+ 'min',
221
+ 'max',
222
+ // The in-isolate copy diverges: Intl.NumberFormat, URL, URLSearchParams
223
+ // and TextDecoder are not available there.
224
+ 'format',
225
+ 'extractUrlPath',
226
+ 'urlEncode',
227
+ 'base64Decode',
228
+ ]);
229
+ export const EXTENSION_METHODS = new Set(ExpressionExtensions.filter((extension) => extension.typeName !== 'Date')
230
+ .flatMap((extension) => Object.keys(extension.functions))
231
+ .filter((name) => !EXCLUDED_EXTENSIONS.has(name)));
186
232
  // The engine evaluates under a timeout and a memory limit; this interpreter
187
233
  // has neither. A string or array result above this length is handed to the
188
234
  // engine so those limits apply (nested replaceAll('', ...) or concat chains
@@ -197,6 +243,10 @@ export const MAX_STEPS = 100_000;
197
243
  // visit does (a body can scan a MAX_RESULT_LENGTH string per element); this
198
244
  // bounds the product, in units the interpreter already computes, so it does
199
245
  // not depend on the clock or the machine.
246
+ //
247
+ // Rule for every allowlisted method: its charge is an upper bound on the
248
+ // characters it touches, not the elements it counts. A method that compares
249
+ // or stringifies elements is charged by their content.
200
250
  export const MAX_WORK = 10 * MAX_RESULT_LENGTH;
201
251
  // Nesting depth of the subset grammar. Parsing and evaluation both recurse
202
252
  // 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":"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"}
@@ -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,EACR,YAAY,GACZ,MAAM,WAAW,CAAC;AA+GnB,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,8 +1,9 @@
1
1
  import { getParsedExpression } from '@n8n/tournament';
2
2
  import { LruCache } from '@n8n/utils/lru-cache';
3
3
  import { EngineFallbackError, Env, bounded, evalChunk } from './evaluator';
4
- import { MAX_RESULT_LENGTH, clone, isObj } from './grammar';
5
- import { parseSimple } from './parser';
4
+ import { MAX_DEPTH, MAX_RESULT_LENGTH, hasOwn, isArray, isObj } from './grammar';
5
+ import { parseSimple, usesPolyfilledChain } from './parser';
6
+ const { getPrototypeOf, keys } = Object;
6
7
  export { CALLABLE_METHODS, ITERATOR_METHODS, MAX_RESULT_LENGTH, MAX_STEPS, MAX_WORK, TIME_METHODS, } from './grammar';
7
8
  // null = outside the subset. Declined expressions are cached too, so an
8
9
  // expression the engine owns costs one parse here, not one per evaluation.
@@ -37,6 +38,7 @@ function compile(expression) {
37
38
  return null;
38
39
  }
39
40
  const chunks = [];
41
+ const nodes = [];
40
42
  for (const chunk of parsed) {
41
43
  if (chunk.type === 'text') {
42
44
  chunks.push(chunk);
@@ -46,7 +48,10 @@ function compile(expression) {
46
48
  if (node === null)
47
49
  return null;
48
50
  chunks.push({ type: 'code', node });
51
+ nodes.push(node);
49
52
  }
53
+ if (usesPolyfilledChain(nodes))
54
+ return null;
50
55
  // Mirrors the branch condition in ExpressionBuilder.getExpressionCode.
51
56
  const isWholeValue = chunks.length === 2 && chunks[0].type === 'text' && chunks[0].text === '';
52
57
  return { chunks, isWholeValue };
@@ -87,17 +92,54 @@ export function evaluateNatively(expression, data) {
87
92
  }
88
93
  // The engines hand back a copy of any object they return; a whole-value read
89
94
  // like `{{ $json.body }}` here would hand back the live execution data, which
90
- // callers then mutate in place (cleanupParameterData). Match the engines.
91
- // The `$parameter` root is a Proxy and cannot be cloned: the engine owns it.
95
+ // callers then mutate in place (cleanupParameterData). Match the engines with
96
+ // a plain-data copy. Everything else is the engine's: a data proxy (the
97
+ // `$parameter` get trap resolves nested expressions), a non-plain object or
98
+ // array (Date, DateTime), a function, symbol or bigint, data deeper than
99
+ // MAX_DEPTH, and an own `__proto__` key,
100
+ // which the vm and quickjs serialiser drops and legacy keeps.
92
101
  function copyResult(value) {
93
- if (!isObj(value))
94
- return value;
95
- try {
96
- return clone(value);
97
- }
98
- catch {
99
- throw new EngineFallbackError();
100
- }
102
+ // A shared object is copied once per reference, so shared or cyclic data
103
+ // and long sparse arrays are bounded by the slots visited, not by depth.
104
+ let visits = 0;
105
+ const copy = (value, depth) => {
106
+ const nonJsonLeaf = typeof value === 'function' || typeof value === 'symbol' || typeof value === 'bigint';
107
+ if (nonJsonLeaf)
108
+ throw new EngineFallbackError();
109
+ if (!isObj(value))
110
+ return value;
111
+ if (depth > MAX_DEPTH || value.isProxy === true)
112
+ throw new EngineFallbackError();
113
+ if (isArray(value)) {
114
+ if (getPrototypeOf(value) !== Array.prototype)
115
+ throw new EngineFallbackError();
116
+ visits += value.length;
117
+ if (visits > MAX_RESULT_LENGTH)
118
+ throw new EngineFallbackError();
119
+ // Holes stay holes: the corpus pins an engine divergence on sparse arrays.
120
+ const result = new Array(value.length);
121
+ for (let i = 0; i < value.length; i++) {
122
+ if (hasOwn(value, i))
123
+ result[i] = copy(value[i], depth + 1);
124
+ }
125
+ return result;
126
+ }
127
+ const proto = getPrototypeOf(value);
128
+ if (proto !== Object.prototype && proto !== null)
129
+ throw new EngineFallbackError();
130
+ const ownKeys = keys(value);
131
+ visits += ownKeys.length;
132
+ if (visits > MAX_RESULT_LENGTH)
133
+ throw new EngineFallbackError();
134
+ const result = {};
135
+ for (const key of ownKeys) {
136
+ if (key === '__proto__')
137
+ throw new EngineFallbackError();
138
+ result[key] = copy(value[key], depth + 1);
139
+ }
140
+ return result;
141
+ };
142
+ return copy(value, 0);
101
143
  }
102
144
  function evalCompiled(compiled, data) {
103
145
  const env = new Env(data);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAmB,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,YAAY,GACZ,MAAM,WAAW,CAAC;AA8CnB,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAoC,IAAI,CAAC,CAAC;AACpE,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAE5C,yEAAyE;AACzE,yEAAyE;AACzE,UAAU;AACV,SAAS,YAAY,CAAC,KAAiB;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,SAAS,CAAC,IAAI,KAAK,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAE1D,IAAI,CAAC;QACJ,OAAO,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,OAAO,CAAC,UAAkB;IAClC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACJ,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACR,oEAAoE;QACpE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,SAAS;QACV,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,uEAAuE;IACvE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;IAE/F,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,UAAkB;IACtC,IAAI,UAAU,CAAC,MAAM,GAAG,4BAA4B;QAAE,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjF,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAErC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACrD,OAAO,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC/B,UAAkB,EAClB,IAA4B;IAE5B,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAEjD,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,mBAAmB;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAEpE,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,SAAS,UAAU,CAAC,KAAc;IACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhC,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,QAA4B,EAAE,IAA4B;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1B,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,mDAAmD;QACnD,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5B,SAAS;QACV,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEzC,gEAAgE;QAChE,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,uDAAuD;QACvD,IAAI,MAAM,GAAG,iBAAiB;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjE,CAAC;IAED,2EAA2E;IAC3E,iDAAiD;IACjD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEtD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAiBN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAgBnB,KAAK,OAAO,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAgUlD,wBAAgB,WAAW,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,SAAI,EACT,KAAK,GAAE,MAAM,GAAG,IAAW,GACzB,UAAU,GAAG,IAAI,CA+BnB"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAkBN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAgBnB,KAAK,OAAO,GAAG,cAAc,GAAG,iBAAiB,CAAC;AA0SlD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CA0ChE;AA8CD,wBAAgB,WAAW,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,SAAI,EACT,KAAK,GAAE,MAAM,GAAG,IAAW,GACzB,UAAU,GAAG,IAAI,CAmCnB"}
@@ -1,4 +1,4 @@
1
- import { BINARY_OPS, CALLABLE_METHODS, DATA_ROOTS, ITERATOR_METHODS, LEGACY_NODE_REF_MEMBERS, MAX_DEPTH, MAX_RESULT_LENGTH, NODE_REF_MEMBERS, NODE_REF_METHODS, RESERVED_NAMES, TIME_MEMBERS, TIME_METHODS, TIME_ROOTS, UNARY_OPS, isOneOf, } from './grammar';
1
+ import { BINARY_OPS, CALLABLE_METHODS, DATA_ROOTS, EXTENSION_METHODS, ITERATOR_METHODS, LEGACY_NODE_REF_MEMBERS, MAX_DEPTH, MAX_RESULT_LENGTH, NODE_REF_MEMBERS, NODE_REF_METHODS, RESERVED_NAMES, TIME_MEMBERS, TIME_METHODS, TIME_ROOTS, UNARY_OPS, isOneOf, } from './grammar';
2
2
  import { isSafeObjectProperty } from '../../utils';
3
3
  function parseLiteral(node) {
4
4
  // Regex literals stay on the engine (backtracking blowup has no isolate
@@ -164,10 +164,22 @@ function parseCallback(args, parse, param) {
164
164
  return null;
165
165
  return parse(fn.body, name);
166
166
  }
167
+ // `$now.toMillis()` and friends: Luxon's own primitive-returning methods, no
168
+ // arguments. Null when the receiver is not a time root or the call declines.
169
+ function parseTimeCall(node, callee, method) {
170
+ const time = parseTimeRoot(callee.object);
171
+ if (time === null || !TIME_METHODS.has(method) || node.arguments.length > 0)
172
+ return null;
173
+ const optional = node.optional === true || callee.optional === true;
174
+ return { kind: 'call', receiver: time, method, args: [], optional };
175
+ }
167
176
  function parseCall(node, parse, param) {
168
177
  const callee = node.callee;
169
178
  if (callee.type !== 'MemberExpression' || callee.computed === true)
170
179
  return null;
180
+ // The callee is read here, not re-parsed, so its comments are checked here.
181
+ if (callee.comments?.length)
182
+ return null;
171
183
  const property = callee.property;
172
184
  if (property.type !== 'Identifier')
173
185
  return null;
@@ -181,22 +193,23 @@ function parseCall(node, parse, param) {
181
193
  const optional = node.optional === true || callee.optional === true;
182
194
  return { kind: 'call', receiver: ref, method: property.name, args: [], optional };
183
195
  }
184
- // `$now.toMillis()` and friends: Luxon's own primitive-returning methods,
185
- // no arguments.
186
- const time = parseTimeRoot(callee.object);
187
- if (time !== null) {
188
- if (!TIME_METHODS.has(property.name) || node.arguments.length > 0)
189
- return null;
190
- const optional = node.optional === true || callee.optional === true;
191
- return { kind: 'call', receiver: time, method: property.name, args: [], optional };
192
- }
196
+ const time = parseTimeCall(node, callee, property.name);
197
+ if (time !== null)
198
+ return time;
193
199
  const method = property.name;
194
200
  const isIterator = isOneOf(ITERATOR_METHODS, method);
195
- if (!isIterator && !CALLABLE_METHODS.has(method))
201
+ if (!isIterator && !CALLABLE_METHODS.has(method) && !EXTENSION_METHODS.has(method))
196
202
  return null;
197
203
  const receiver = parse(callee.object);
198
204
  if (receiver === null)
199
205
  return null;
206
+ // A root is a proxy the engines hand to extend() in their own way, so an
207
+ // extension call on a receiver that can evaluate to one stays on the
208
+ // engine (the syntax has to be checked: a logical or conditional receiver
209
+ // can still yield a root at runtime, and the host $json proxy is built on
210
+ // every access, so there is no instance to compare against).
211
+ if (EXTENSION_METHODS.has(method) && mayBeRoot(receiver))
212
+ return null;
200
213
  // `a?.m()` marks the member optional, `a.m?.()` marks the call optional;
201
214
  // both short-circuit on a missing receiver, so one flag carries both.
202
215
  const optional = node.optional === true || callee.optional === true;
@@ -215,6 +228,10 @@ function parseCall(node, parse, param) {
215
228
  }
216
229
  return { kind: 'call', receiver, method, args, optional };
217
230
  }
231
+ const mayBeRoot = (node) => node.kind === 'root' ||
232
+ (node.kind === 'chain' && mayBeRoot(node.expression)) ||
233
+ (node.kind === 'logical' && (mayBeRoot(node.left) || mayBeRoot(node.right))) ||
234
+ (node.kind === 'conditional' && (mayBeRoot(node.consequent) || mayBeRoot(node.alternate)));
218
235
  // The wrapper esprima puts around every optional chain. It is the boundary an
219
236
  // optional hop short-circuits to: `a?.b.c` yields undefined for a missing
220
237
  // `a`, while `(a?.b).c` throws. Parentheses end the chain in the AST too.
@@ -224,6 +241,59 @@ function parseChain(node, parse) {
224
241
  return null;
225
242
  return { kind: 'chain', expression };
226
243
  }
244
+ /**
245
+ * Once a chunk holds an extension call, extendTransform rewrites every
246
+ * optional chain in it through its own polyfill, and that reprint drops the
247
+ * parentheses around a `??` operand mixed with `&&` or `||`: the engines
248
+ * then throw "invalid syntax" where this interpreter would evaluate. An
249
+ * extension call in any chunk sends every chunk through the rewrite, so an
250
+ * expression with both an optional chain and an extension call is theirs,
251
+ * even when the two are in different chunks. The rewrite matches by method
252
+ * name alone, so a node-ref call like `$input.first()` counts too.
253
+ */
254
+ export function usesPolyfilledChain(roots) {
255
+ let chain = false;
256
+ let extension = false;
257
+ const visit = (node) => {
258
+ switch (node.kind) {
259
+ case 'chain':
260
+ chain = true;
261
+ visit(node.expression);
262
+ return;
263
+ case 'call':
264
+ if (EXTENSION_METHODS.has(node.method)) {
265
+ extension = true;
266
+ }
267
+ visit(node.receiver);
268
+ node.args.forEach(visit);
269
+ return;
270
+ case 'iterate':
271
+ visit(node.receiver);
272
+ visit(node.body);
273
+ return;
274
+ case 'member':
275
+ visit(node.object);
276
+ return;
277
+ case 'unary':
278
+ visit(node.argument);
279
+ return;
280
+ case 'binary':
281
+ case 'logical':
282
+ visit(node.left);
283
+ visit(node.right);
284
+ return;
285
+ case 'conditional':
286
+ visit(node.test);
287
+ visit(node.consequent);
288
+ visit(node.alternate);
289
+ return;
290
+ default:
291
+ return;
292
+ }
293
+ };
294
+ roots.forEach(visit);
295
+ return chain && extension;
296
+ }
227
297
  function parseBranches(node, parse) {
228
298
  const test = parse(node.test);
229
299
  const consequent = parse(node.consequent);
@@ -261,6 +331,11 @@ function parseLogical(node, parse) {
261
331
  export function parseSimple(node, depth = 0, param = null) {
262
332
  if (depth > MAX_DEPTH)
263
333
  return null;
334
+ // extendSyntax finds extension calls by regex over the source text, and a
335
+ // comment between the name and the parentheses hides one from it. The
336
+ // parser attaches comments to the nearest node; any comment declines.
337
+ if (node.comments?.length)
338
+ return null;
264
339
  const parse = (child, childParam = param) => parseSimple(child, depth + 1, childParam);
265
340
  switch (node.type) {
266
341
  case 'Literal':
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/parser.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  const OPEN_BRACKET = /(?<escape>\\|)(?<brackets>\{\{)/;
2
2
  const CLOSE_BRACKET = /(?<escape>\\|)(?<brackets>\}\})/;
3
3
  export const escapeCode = (text) => {
4
- return text.replace('\\}}', '}}');
4
+ return text.replace(/\\\}\}/g, '}}');
5
5
  };
6
6
  export const splitExpression = (expression) => {
7
7
  // Mirror @n8n/tournament's splitExpression: always emit an initial text
@@ -68,7 +68,7 @@ export const splitExpression = (expression) => {
68
68
  };
69
69
  // Expressions only have closing brackets escaped
70
70
  const escapeTmplExpression = (part) => {
71
- return part.replace('}}', '\\}}');
71
+ return part.replace(/\}\}/g, '\\}}');
72
72
  };
73
73
  export const joinExpression = (parts) => {
74
74
  return parts
@@ -1 +1 @@
1
- {"version":3,"file":"expression-parser.js","sourceRoot":"","sources":["../../../src/extensions/expression-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression-parser.js","sourceRoot":"","sources":["../../../src/extensions/expression-parser.ts"],"names":[],"mappings":"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"}