n8n-workflow 2.45.0 → 2.45.1

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 (41) hide show
  1. package/dist/cjs/build.tsbuildinfo +1 -1
  2. package/dist/cjs/expression.d.ts +17 -0
  3. package/dist/cjs/expression.d.ts.map +1 -1
  4. package/dist/cjs/expression.js +60 -4
  5. package/dist/cjs/expression.js.map +1 -1
  6. package/dist/cjs/expressions/native-evaluation/compiler.d.ts +14 -0
  7. package/dist/cjs/expressions/native-evaluation/compiler.d.ts.map +1 -0
  8. package/dist/cjs/expressions/native-evaluation/compiler.js +68 -0
  9. package/dist/cjs/expressions/native-evaluation/compiler.js.map +1 -0
  10. package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -1
  11. package/dist/cjs/expressions/native-evaluation/index.js +38 -66
  12. package/dist/cjs/expressions/native-evaluation/index.js.map +1 -1
  13. package/dist/cjs/expressions/native-evaluation/skeleton.d.ts +4 -0
  14. package/dist/cjs/expressions/native-evaluation/skeleton.d.ts.map +1 -0
  15. package/dist/cjs/expressions/native-evaluation/skeleton.js +89 -0
  16. package/dist/cjs/expressions/native-evaluation/skeleton.js.map +1 -0
  17. package/dist/cjs/expressions/native-evaluation/verify.d.ts +30 -0
  18. package/dist/cjs/expressions/native-evaluation/verify.d.ts.map +1 -0
  19. package/dist/cjs/expressions/native-evaluation/verify.js +193 -0
  20. package/dist/cjs/expressions/native-evaluation/verify.js.map +1 -0
  21. package/dist/esm/expression.d.ts +17 -0
  22. package/dist/esm/expression.d.ts.map +1 -1
  23. package/dist/esm/expression.js +60 -4
  24. package/dist/esm/expression.js.map +1 -1
  25. package/dist/esm/expressions/native-evaluation/compiler.d.ts +14 -0
  26. package/dist/esm/expressions/native-evaluation/compiler.d.ts.map +1 -0
  27. package/dist/esm/expressions/native-evaluation/compiler.js +65 -0
  28. package/dist/esm/expressions/native-evaluation/compiler.js.map +1 -0
  29. package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -1
  30. package/dist/esm/expressions/native-evaluation/index.js +36 -64
  31. package/dist/esm/expressions/native-evaluation/index.js.map +1 -1
  32. package/dist/esm/expressions/native-evaluation/skeleton.d.ts +4 -0
  33. package/dist/esm/expressions/native-evaluation/skeleton.d.ts.map +1 -0
  34. package/dist/esm/expressions/native-evaluation/skeleton.js +85 -0
  35. package/dist/esm/expressions/native-evaluation/skeleton.js.map +1 -0
  36. package/dist/esm/expressions/native-evaluation/verify.d.ts +30 -0
  37. package/dist/esm/expressions/native-evaluation/verify.d.ts.map +1 -0
  38. package/dist/esm/expressions/native-evaluation/verify.js +151 -0
  39. package/dist/esm/expressions/native-evaluation/verify.js.map +1 -0
  40. package/dist/esm/typecheck.tsbuildinfo +1 -1
  41. package/package.json +5 -5
@@ -1,5 +1,7 @@
1
1
  import type { ObservabilityProvider } from '@n8n/expression-runtime';
2
+ import { type NativeVerifyMismatch } from './expressions/native-evaluation/verify';
2
3
  import type { IDataObject, INodeParameters, IWorkflowDataProxyData, NodeParameterValue } from './interfaces';
4
+ export type { NativeVerifyMismatch } from './expressions/native-evaluation/verify';
3
5
  /** What one engine did with one expression. `errorClass` names the failure without its message. */
4
6
  export type ExpressionEvaluationOutcome = {
5
7
  ok: true;
@@ -39,6 +41,7 @@ export declare class Expression {
39
41
  private static readonly BROWSER_CALLER;
40
42
  private static useSharedCaller;
41
43
  private static nativeEvaluation;
44
+ private static nativeVerifier?;
42
45
  private static shadowRunner?;
43
46
  constructor(timezone: string);
44
47
  /**
@@ -79,6 +82,15 @@ export declare class Expression {
79
82
  compileCache?: boolean;
80
83
  /** Experimental: interpret expressions that fit the native subset in-process. Applies to every engine. */
81
84
  nativeEvaluation?: boolean;
85
+ /**
86
+ * Experimental: share of native-subset expressions, from 0 to 1, to also evaluate
87
+ * natively and compare with the vm or quickjs engine, returning the engine's result.
88
+ * Only while native evaluation is off.
89
+ */
90
+ nativeEvaluationVerifySample?: number;
91
+ reportNativeVerifyMismatch?: (mismatch: NativeVerifyMismatch) => void;
92
+ /** Whether reports can be sent now. `verify` compares nothing while this is false. */
93
+ canReportNativeVerifyMismatch?: () => boolean;
82
94
  }): Promise<void>;
83
95
  private static buildEvaluator;
84
96
  /**
@@ -120,6 +132,9 @@ export declare class Expression {
120
132
  static setExpressionEngine(engine: 'legacy' | 'vm' | 'quickjs'): void;
121
133
  /** Toggle native evaluation without restarting the engine. For tests and benchmarks; production sets `N8N_EXPRESSION_ENGINE_NATIVE_EVALUATION`. */
122
134
  static setNativeEvaluation(enabled: boolean): void;
135
+ /** For tests; production sets `N8N_EXPRESSION_ENGINE_NATIVE_EVALUATION_VERIFY_SAMPLE`. */
136
+ static setNativeEvaluationVerify(sample: number, reportMismatch?: (mismatch: NativeVerifyMismatch) => void, canReportMismatch?: () => boolean): void;
137
+ private static shouldVerifyNative;
123
138
  static initializeGlobalContext(data: IDataObject): void;
124
139
  static resolveWithoutWorkflow(expression: string, data?: IDataObject): string | (() => unknown) | null;
125
140
  /**
@@ -137,6 +152,8 @@ export declare class Expression {
137
152
  * @param {boolean} [returnObjectAsString=false] - Whether to convert objects to strings
138
153
  */
139
154
  resolveSimpleParameterValue(parameterValue: NodeParameterValue, data: IWorkflowDataProxyData, returnObjectAsString?: boolean): NodeParameterValue | INodeParameters | NodeParameterValue[] | INodeParameters[];
155
+ /** Returns or throws the engine's result, after comparing it with `native`. */
156
+ private renderAndVerify;
140
157
  private finalizeResolvedValue;
141
158
  private renderExpression;
142
159
  private static startShadow;
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAoB3F,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,cAAc,CAAC;AAiBtB,mGAAmG;AACnG,MAAM,MAAM,2BAA2B,GACpC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACvC,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACtC;;;OAGG;IACH,YAAY,CACX,OAAO,EAAE,uBAAuB,GAC9B,CAAC,CAAC,MAAM,EAAE,2BAA2B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CACP,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,EAAE,MAAM,GACd,2BAA2B,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AA0MD,qBAAa,UAAU;IAaV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZrC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAyC;IAExE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAuB;IAElD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;IAE5C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAS;IAEvC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAS;IAExC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAyB;IAErD,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEjD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAKjC;;;;OAIG;IACH,OAAa,oBAAoB,CAAC,OAAO,EAAE;QAC1C,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;;;;;WAMG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,0GAA0G;QAC1G,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAuChB;mBAEoB,cAAc;IAmCnC;;;;OAIG;IACH,OAAa,4BAA4B,CAAC,OAAO,EAAE;QAClD,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6B3B;IAED,mGAAmG;IACnG,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAEvE;IAED,yHAAyH;IACnH,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAGvC;IAEK,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEK,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAarD;IAED;;;OAGG;IACH,OAAa,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CASpD;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB,IAAI,QAAQ,GAAG,IAAI,GAAG,SAAS,CAG5D;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEpE;IAED,mJAAmJ;IACnJ,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjD;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,WAAW,QA2J/C;IAED,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,mCAEvE;IAED;;;;OAIG;IACH,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+BhD;IAED;;;;;;;OAOG;IACH,2BAA2B,CAC1B,cAAc,EAAE,kBAAkB,EAClC,IAAI,EAAE,sBAAsB,EAC5B,oBAAoB,UAAQ,GAC1B,kBAAkB,GAAG,eAAe,GAAG,kBAAkB,EAAE,GAAG,eAAe,EAAE,CAsFjF;IAED,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,gBAAgB;IAmDxB,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B;;;OAGG;IACH,OAAO,CAAC,cAAc;CAoCtB"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ const expression_evaluator_proxy_1 = require("./expression-evaluator-proxy");
43
43
  const expression_sandboxing_1 = require("./expression-sandboxing");
44
44
  const expression_helpers_1 = require("./expressions/expression-helpers");
45
45
  const native_evaluation_1 = require("./expressions/native-evaluation");
46
+ const verify_1 = require("./expressions/native-evaluation/verify");
46
47
  const LoggerProxy = __importStar(require("./logger-proxy"));
47
48
  const extensions_1 = require("./extensions");
48
49
  const expression_extension_1 = require("./extensions/expression-extension");
@@ -65,7 +66,8 @@ const KNOWN_ERROR_CLASSES = new Set([
65
66
  .split(' '));
66
67
  function errorClassOf(error) {
67
68
  // Timeout and memory errors share the name `ExpressionError`, so classify them first.
68
- const runtimeClass = (0, expression_runtime_1.classifyExpressionError)(error);
69
+ // `mapVmError` wraps them in an ExpressionError and keeps them as `cause`.
70
+ const runtimeClass = (0, expression_runtime_1.classifyExpressionError)(error instanceof expression_error_1.ExpressionError && error.cause ? error.cause : error);
69
71
  if (runtimeClass !== 'unknown')
70
72
  return runtimeClass;
71
73
  // A minified build renames classes, and n8n errors take their `name` from the
@@ -252,6 +254,7 @@ class Expression {
252
254
  static BROWSER_CALLER = {};
253
255
  static useSharedCaller = false;
254
256
  static nativeEvaluation = false;
257
+ static nativeVerifier;
255
258
  static shadowRunner;
256
259
  constructor(timezone) {
257
260
  this.timezone = timezone;
@@ -281,8 +284,21 @@ class Expression {
281
284
  */
282
285
  static async initExpressionEngine(options) {
283
286
  this.nativeEvaluation = options.nativeEvaluation ?? false;
284
- if (options.engine === 'legacy')
287
+ const verifySample = options.nativeEvaluationVerifySample ?? 0;
288
+ this.nativeVerifier = options.reportNativeVerifyMismatch
289
+ ? new verify_1.NativeVerifier(verifySample, options.reportNativeVerifyMismatch, options.canReportNativeVerifyMismatch)
290
+ : undefined;
291
+ if (verifySample > 0 && this.nativeEvaluation) {
292
+ LoggerProxy.warn('Native evaluation verify sample is ignored because native evaluation is on');
293
+ }
294
+ if (options.engine === 'legacy') {
295
+ // Legacy differs from the isolates on purpose in places, so its
296
+ // differences would read as native bugs.
297
+ if (verifySample > 0 && !this.nativeEvaluation) {
298
+ LoggerProxy.warn('Native evaluation verify sample is ignored because it only applies to the vm or quickjs expression engine');
299
+ }
285
300
  return;
301
+ }
286
302
  if (options.engine === 'vm' && runtime_environment_1.IS_FRONTEND)
287
303
  return;
288
304
  this.expressionEngine = options.engine;
@@ -453,6 +469,18 @@ class Expression {
453
469
  static setNativeEvaluation(enabled) {
454
470
  this.nativeEvaluation = enabled;
455
471
  }
472
+ /** For tests; production sets `N8N_EXPRESSION_ENGINE_NATIVE_EVALUATION_VERIFY_SAMPLE`. */
473
+ static setNativeEvaluationVerify(sample, reportMismatch, canReportMismatch) {
474
+ this.nativeVerifier = reportMismatch
475
+ ? new verify_1.NativeVerifier(sample, reportMismatch, canReportMismatch)
476
+ : undefined;
477
+ }
478
+ static shouldVerifyNative(expression) {
479
+ return (!this.nativeEvaluation &&
480
+ this.shouldUseVm() &&
481
+ this.nativeVerifier?.isSampled() === true &&
482
+ (0, verify_1.canVerifyNatively)(expression));
483
+ }
456
484
  static initializeGlobalContext(data) {
457
485
  /**
458
486
  * Denylist
@@ -644,7 +672,19 @@ class Expression {
644
672
  // An expression that fits the native subset grammar is interpreted
645
673
  // in-process, skipping the global-context setup, extendSyntax, and the
646
674
  // engine (isolate). Everything else takes the regular pipeline below.
647
- if (Expression.nativeEvaluation) {
675
+ // Verify mode evaluates natively here, then returns the engine's result.
676
+ let nativeResult;
677
+ if (Expression.shouldVerifyNative(parameterValue)) {
678
+ try {
679
+ const native = (0, native_evaluation_1.evaluateNatively)(parameterValue, data);
680
+ if (native.handled)
681
+ nativeResult = { ok: true, value: native.value };
682
+ }
683
+ catch (error) {
684
+ nativeResult = { ok: false, error, errorClass: errorClassOf(error) };
685
+ }
686
+ }
687
+ else if (Expression.nativeEvaluation) {
648
688
  const native = (0, native_evaluation_1.evaluateNatively)(parameterValue, data);
649
689
  if (native.handled)
650
690
  return this.finalizeResolvedValue(native.value, returnObjectAsString);
@@ -705,9 +745,25 @@ class Expression {
705
745
  }
706
746
  // Execute the expression
707
747
  const extendedExpression = (0, expression_extension_1.extendSyntax)(parameterValue);
708
- const returnValue = this.renderExpression(extendedExpression, data, parameterValue);
748
+ const returnValue = nativeResult === undefined
749
+ ? this.renderExpression(extendedExpression, data, parameterValue)
750
+ : this.renderAndVerify(extendedExpression, data, parameterValue, nativeResult);
709
751
  return this.finalizeResolvedValue(returnValue, returnObjectAsString);
710
752
  }
753
+ /** Returns or throws the engine's result, after comparing it with `native`. */
754
+ renderAndVerify(expression, data, source, native) {
755
+ let engine;
756
+ try {
757
+ engine = { ok: true, value: this.renderExpression(expression, data, source) };
758
+ }
759
+ catch (error) {
760
+ engine = { ok: false, error, errorClass: errorClassOf(error) };
761
+ }
762
+ Expression.nativeVerifier?.compare(source, Expression.expressionEngine, native, engine, data);
763
+ if (!engine.ok)
764
+ throw engine.error;
765
+ return engine.value;
766
+ }
711
767
  finalizeResolvedValue(returnValue, returnObjectAsString) {
712
768
  if (typeof returnValue === 'function') {
713
769
  if (returnValue.name === 'DateTime')
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { SimpleNode } from './grammar';
2
+ export type CompiledChunk = {
3
+ type: 'text';
4
+ text: string;
5
+ } | {
6
+ type: 'code';
7
+ node: SimpleNode;
8
+ };
9
+ export interface CompiledExpression {
10
+ chunks: CompiledChunk[];
11
+ isWholeValue: boolean;
12
+ }
13
+ export declare function getCompiled(expression: string): CompiledExpression | null;
14
+ //# sourceMappingURL=compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/compiler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEhG,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,aAAa,EAAE,CAAC;IAGxB,YAAY,EAAE,OAAO,CAAC;CACtB;AA0DD,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAWzE"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCompiled = getCompiled;
4
+ const tournament_1 = require("@n8n/tournament");
5
+ const lru_cache_1 = require("@n8n/utils/lru-cache");
6
+ const parser_1 = require("./parser");
7
+ // null = outside the subset. Declined expressions are cached too, so an
8
+ // expression the engine owns costs one parse here, not one per evaluation.
9
+ // Entries are keyed by expression text, so the key length is capped to keep
10
+ // the cache's memory bounded; longer expressions are compiled per evaluation.
11
+ const cache = new lru_cache_1.LruCache(1024);
12
+ const MAX_CACHED_EXPRESSION_LENGTH = 10_000;
13
+ // One code chunk of the split expression, or null when it is outside the
14
+ // subset. A throw during the re-parse must always mean "declined", never
15
+ // escape.
16
+ function compileChunk(chunk) {
17
+ const body = chunk.parsed.program.body;
18
+ if (body.length !== 1)
19
+ return null;
20
+ const statement = body[0];
21
+ if (statement.type !== 'ExpressionStatement')
22
+ return null;
23
+ try {
24
+ return (0, parser_1.parseSimple)(statement.expression);
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ function compile(expression) {
31
+ let parsed;
32
+ try {
33
+ parsed = (0, tournament_1.getParsedExpression)(expression);
34
+ }
35
+ catch {
36
+ // Syntax errors fall through to the engine for its error reporting.
37
+ return null;
38
+ }
39
+ const chunks = [];
40
+ const nodes = [];
41
+ for (const chunk of parsed) {
42
+ if (chunk.type === 'text') {
43
+ chunks.push(chunk);
44
+ continue;
45
+ }
46
+ const node = compileChunk(chunk);
47
+ if (node === null)
48
+ return null;
49
+ chunks.push({ type: 'code', node });
50
+ nodes.push(node);
51
+ }
52
+ if ((0, parser_1.usesPolyfilledChain)(nodes))
53
+ return null;
54
+ // Mirrors the branch condition in ExpressionBuilder.getExpressionCode.
55
+ const isWholeValue = chunks.length === 2 && chunks[0].type === 'text' && chunks[0].text === '';
56
+ return { chunks, isWholeValue };
57
+ }
58
+ function getCompiled(expression) {
59
+ if (expression.length > MAX_CACHED_EXPRESSION_LENGTH)
60
+ return compile(expression);
61
+ let compiled = cache.get(expression);
62
+ if (compiled === undefined) {
63
+ compiled = compile(expression);
64
+ cache.set(expression, compiled);
65
+ }
66
+ return compiled;
67
+ }
68
+ //# sourceMappingURL=compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/compiler.ts"],"names":[],"mappings":";;;AAAA,gDAAsD;AAEtD,oDAAgD;AAGhD,qCAA4D;AAW5D,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,KAAK,GAAG,IAAI,oBAAQ,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,IAAA,oBAAW,EAAC,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,IAAA,gCAAmB,EAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACR,oEAAoE;QACpE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,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;QACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAA,4BAAmB,EAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,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,qBAA4B,UAAkB;IAC7C,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"}
@@ -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;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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"AAGA,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;AAsCnB,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"}
@@ -3,11 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
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
- const tournament_1 = require("@n8n/tournament");
7
- const lru_cache_1 = require("@n8n/utils/lru-cache");
6
+ const compiler_1 = require("./compiler");
8
7
  const evaluator_1 = require("./evaluator");
9
8
  const grammar_1 = require("./grammar");
10
- const parser_1 = require("./parser");
11
9
  const { getPrototypeOf, keys } = Object;
12
10
  var grammar_2 = require("./grammar");
13
11
  Object.defineProperty(exports, "CALLABLE_METHODS", { enumerable: true, get: function () { return grammar_2.CALLABLE_METHODS; } });
@@ -16,70 +14,44 @@ Object.defineProperty(exports, "MAX_RESULT_LENGTH", { enumerable: true, get: fun
16
14
  Object.defineProperty(exports, "MAX_STEPS", { enumerable: true, get: function () { return grammar_2.MAX_STEPS; } });
17
15
  Object.defineProperty(exports, "MAX_WORK", { enumerable: true, get: function () { return grammar_2.MAX_WORK; } });
18
16
  Object.defineProperty(exports, "TIME_METHODS", { enumerable: true, get: function () { return grammar_2.TIME_METHODS; } });
19
- // null = outside the subset. Declined expressions are cached too, so an
20
- // expression the engine owns costs one parse here, not one per evaluation.
21
- // Entries are keyed by expression text, so the key length is capped to keep
22
- // the cache's memory bounded; longer expressions are compiled per evaluation.
23
- const cache = new lru_cache_1.LruCache(1024);
24
- const MAX_CACHED_EXPRESSION_LENGTH = 10_000;
25
- // One code chunk of the split expression, or null when it is outside the
26
- // subset. A throw during the re-parse must always mean "declined", never
27
- // escape.
28
- function compileChunk(chunk) {
29
- const body = chunk.parsed.program.body;
30
- if (body.length !== 1)
31
- return null;
32
- const statement = body[0];
33
- if (statement.type !== 'ExpressionStatement')
34
- return null;
35
- try {
36
- return (0, parser_1.parseSimple)(statement.expression);
37
- }
38
- catch {
39
- return null;
40
- }
41
- }
42
- function compile(expression) {
43
- let parsed;
44
- try {
45
- parsed = (0, tournament_1.getParsedExpression)(expression);
46
- }
47
- catch {
48
- // Syntax errors fall through to the engine for its error reporting.
49
- return null;
50
- }
51
- const chunks = [];
52
- const nodes = [];
53
- for (const chunk of parsed) {
54
- if (chunk.type === 'text') {
55
- chunks.push(chunk);
56
- continue;
57
- }
58
- const node = compileChunk(chunk);
59
- if (node === null)
60
- return null;
61
- chunks.push({ type: 'code', node });
62
- nodes.push(node);
63
- }
64
- if ((0, parser_1.usesPolyfilledChain)(nodes))
65
- return null;
66
- // Mirrors the branch condition in ExpressionBuilder.getExpressionCode.
67
- const isWholeValue = chunks.length === 2 && chunks[0].type === 'text' && chunks[0].text === '';
68
- return { chunks, isWholeValue };
69
- }
70
- function getCompiled(expression) {
71
- if (expression.length > MAX_CACHED_EXPRESSION_LENGTH)
72
- return compile(expression);
73
- let compiled = cache.get(expression);
74
- if (compiled === undefined) {
75
- compiled = compile(expression);
76
- cache.set(expression, compiled);
77
- }
78
- return compiled;
79
- }
17
+ // Fast native evaluation: an in-process interpreter for a closed subset of
18
+ // the expression grammar.
19
+ //
20
+ // The subset is data path access on the data roots (`$json`, `$parameter`,
21
+ // `$vars`, `$binary`, `$itemIndex`, `$runIndex`) and on node references
22
+ // (`$('Name').item`, `$('Name').first()`, `$input.item`, `$node['Name'].json`),
23
+ // primitive reads off the time roots (`$now.toMillis()`, `$today.year`),
24
+ // literals (array literals of literals included), a fixed set of operators,
25
+ // calls to a closed allowlist of native string/number/array methods, and the
26
+ // five array iterators (some/every/find/filter/map) with a one-parameter
27
+ // arrow callback whose body is in the same subset. Such expressions cannot
28
+ // reach prototypes or touch anything outside the data proxy, and the only
29
+ // loop is a native iterator over a size-capped array under a step budget, so
30
+ // they are interpreted here without the sandbox AST hooks, the
31
+ // global-context setup, or an engine (isolate) evaluation. Anything that
32
+ // does not fit the subset is declined and takes the regular pipeline.
33
+ //
34
+ // Structure follows "parse, don't validate": the esprima AST is not checked
35
+ // in place, it is re-parsed into the closed {@link SimpleNode} grammar below.
36
+ // Construction either yields a node of that grammar or null; the interpreter
37
+ // only ever sees objects this module built, so it cannot read a field the
38
+ // parser did not put there, and unsupported constructs are unrepresentable
39
+ // rather than rejected. Expression text is never executed as code.
40
+ //
41
+ // Data is the other input. Node output is normalised to JSON at the node
42
+ // boundary (verified for Set and Code output on a running instance), so
43
+ // `$json` holds plain objects, arrays and primitives. The runtime guards
44
+ // below therefore target what JSON content can do (sizes) and where the host
45
+ // would diverge from the isolates (live references, coercion, aliasing), not
46
+ // hooks that cannot arrive. Non-JSON values in workflow data are engine bugs.
47
+ //
48
+ // Layout: grammar.ts holds the closed grammar and the allowlists, parser.ts
49
+ // turns esprima output into it, compiler.ts splits, compiles and caches whole
50
+ // expressions, evaluator.ts interprets them, and this file runs them.
51
+ // skeleton.ts and verify.ts serve verify mode only.
80
52
  /** Does the expression (leading `=` stripped) fit the native subset? */
81
53
  function isNativelyEvaluable(expression) {
82
- return getCompiled(expression) !== null;
54
+ return (0, compiler_1.getCompiled)(expression) !== null;
83
55
  }
84
56
  /**
85
57
  * Evaluate an expression (with the leading `=` already stripped) in-process.
@@ -88,7 +60,7 @@ function isNativelyEvaluable(expression) {
88
60
  * the regular pipeline.
89
61
  */
90
62
  function evaluateNatively(expression, data) {
91
- const compiled = getCompiled(expression);
63
+ const compiled = (0, compiler_1.getCompiled)(expression);
92
64
  if (compiled === null)
93
65
  return { handled: false };
94
66
  try {
@@ -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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"}
@@ -0,0 +1,4 @@
1
+ import type { SimpleNode } from './grammar';
2
+ export declare function skeletonOf(node: SimpleNode): string;
3
+ export declare function readsClockOrParameter(node: SimpleNode): boolean;
4
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAO5C,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAkCnD;AAkBD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAM/D"}