n8n-workflow 2.45.0 → 2.45.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.
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/errors/expression.error.d.ts.map +1 -1
- package/dist/cjs/errors/expression.error.js +6 -0
- package/dist/cjs/errors/expression.error.js.map +1 -1
- package/dist/cjs/expression.d.ts +20 -0
- package/dist/cjs/expression.d.ts.map +1 -1
- package/dist/cjs/expression.js +90 -5
- package/dist/cjs/expression.js.map +1 -1
- package/dist/cjs/expressions/native-evaluation/compiler.d.ts +14 -0
- package/dist/cjs/expressions/native-evaluation/compiler.d.ts.map +1 -0
- package/dist/cjs/expressions/native-evaluation/compiler.js +68 -0
- package/dist/cjs/expressions/native-evaluation/compiler.js.map +1 -0
- package/dist/cjs/expressions/native-evaluation/evaluator.d.ts +4 -0
- package/dist/cjs/expressions/native-evaluation/evaluator.d.ts.map +1 -1
- package/dist/cjs/expressions/native-evaluation/evaluator.js +30 -25
- package/dist/cjs/expressions/native-evaluation/evaluator.js.map +1 -1
- package/dist/cjs/expressions/native-evaluation/index.d.ts +5 -3
- package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -1
- package/dist/cjs/expressions/native-evaluation/index.js +56 -81
- package/dist/cjs/expressions/native-evaluation/index.js.map +1 -1
- package/dist/cjs/expressions/native-evaluation/skeleton.d.ts +4 -0
- package/dist/cjs/expressions/native-evaluation/skeleton.d.ts.map +1 -0
- package/dist/cjs/expressions/native-evaluation/skeleton.js +89 -0
- package/dist/cjs/expressions/native-evaluation/skeleton.js.map +1 -0
- package/dist/cjs/expressions/native-evaluation/verify.d.ts +30 -0
- package/dist/cjs/expressions/native-evaluation/verify.d.ts.map +1 -0
- package/dist/cjs/expressions/native-evaluation/verify.js +193 -0
- package/dist/cjs/expressions/native-evaluation/verify.js.map +1 -0
- package/dist/cjs/generate-schema-from-example.d.ts +6 -0
- package/dist/cjs/generate-schema-from-example.d.ts.map +1 -0
- package/dist/cjs/generate-schema-from-example.js +16 -0
- package/dist/cjs/generate-schema-from-example.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces.d.ts +2 -2
- package/dist/cjs/utils.d.ts +7 -0
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +10 -4
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/errors/expression.error.d.ts.map +1 -1
- package/dist/esm/errors/expression.error.js +6 -0
- package/dist/esm/errors/expression.error.js.map +1 -1
- package/dist/esm/expression.d.ts +20 -0
- package/dist/esm/expression.d.ts.map +1 -1
- package/dist/esm/expression.js +91 -6
- package/dist/esm/expression.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/compiler.d.ts +14 -0
- package/dist/esm/expressions/native-evaluation/compiler.d.ts.map +1 -0
- package/dist/esm/expressions/native-evaluation/compiler.js +65 -0
- package/dist/esm/expressions/native-evaluation/compiler.js.map +1 -0
- package/dist/esm/expressions/native-evaluation/evaluator.d.ts +4 -0
- package/dist/esm/expressions/native-evaluation/evaluator.d.ts.map +1 -1
- package/dist/esm/expressions/native-evaluation/evaluator.js +30 -25
- package/dist/esm/expressions/native-evaluation/evaluator.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/index.d.ts +5 -3
- package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -1
- package/dist/esm/expressions/native-evaluation/index.js +55 -80
- package/dist/esm/expressions/native-evaluation/index.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/skeleton.d.ts +4 -0
- package/dist/esm/expressions/native-evaluation/skeleton.d.ts.map +1 -0
- package/dist/esm/expressions/native-evaluation/skeleton.js +85 -0
- package/dist/esm/expressions/native-evaluation/skeleton.js.map +1 -0
- package/dist/esm/expressions/native-evaluation/verify.d.ts +30 -0
- package/dist/esm/expressions/native-evaluation/verify.d.ts.map +1 -0
- package/dist/esm/expressions/native-evaluation/verify.js +151 -0
- package/dist/esm/expressions/native-evaluation/verify.js.map +1 -0
- package/dist/esm/generate-schema-from-example.d.ts +6 -0
- package/dist/esm/generate-schema-from-example.d.ts.map +1 -0
- package/dist/esm/generate-schema-from-example.js +13 -0
- package/dist/esm/generate-schema-from-example.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces.d.ts +2 -2
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/dist/esm/utils.d.ts +7 -0
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +7 -1
- package/dist/esm/utils.js.map +1 -1
- package/package.json +8 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
+
import { type NativeFallbackReason } from './evaluator';
|
|
1
2
|
import type { IWorkflowDataProxyData } from '../../interfaces';
|
|
2
3
|
export { CALLABLE_METHODS, ITERATOR_METHODS, MAX_RESULT_LENGTH, MAX_STEPS, MAX_WORK, TIME_METHODS, } from './grammar';
|
|
3
4
|
/** Does the expression (leading `=` stripped) fit the native subset? */
|
|
4
5
|
export declare function isNativelyEvaluable(expression: string): boolean;
|
|
5
6
|
/**
|
|
6
7
|
* Evaluate an expression (with the leading `=` already stripped) in-process.
|
|
7
|
-
* Returns `{ handled: false }` when the expression is outside the subset
|
|
8
|
-
*
|
|
9
|
-
* the regular pipeline.
|
|
8
|
+
* Returns `{ handled: false }` when the expression is outside the subset, and
|
|
9
|
+
* `{ handled: false, fallbackReason }` when a runtime value fell outside what
|
|
10
|
+
* parsing proved; the caller must then run the regular pipeline.
|
|
10
11
|
*/
|
|
11
12
|
export declare function evaluateNatively(expression: string, data: IWorkflowDataProxyData): {
|
|
12
13
|
handled: true;
|
|
13
14
|
value: unknown;
|
|
14
15
|
} | {
|
|
15
16
|
handled: false;
|
|
17
|
+
fallbackReason?: NativeFallbackReason;
|
|
16
18
|
};
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAKN,KAAK,oBAAoB,EACzB,MAAM,aAAa,CAAC;AAErB,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,CAAC;IAAC,cAAc,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAc/F"}
|
|
@@ -1,80 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { EngineFallbackError, Env, bounded, evalChunk } from './evaluator';
|
|
1
|
+
import { getCompiled } from './compiler';
|
|
2
|
+
import { EngineFallbackError, Env, bounded, evalChunk, } from './evaluator';
|
|
4
3
|
import { MAX_DEPTH, MAX_RESULT_LENGTH, hasOwn, isArray, isObj } from './grammar';
|
|
5
|
-
import { parseSimple, usesPolyfilledChain } from './parser';
|
|
6
4
|
const { getPrototypeOf, keys } = Object;
|
|
7
5
|
export { CALLABLE_METHODS, ITERATOR_METHODS, MAX_RESULT_LENGTH, MAX_STEPS, MAX_WORK, TIME_METHODS, } from './grammar';
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (chunk.type === 'text') {
|
|
44
|
-
chunks.push(chunk);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
const node = compileChunk(chunk);
|
|
48
|
-
if (node === null)
|
|
49
|
-
return null;
|
|
50
|
-
chunks.push({ type: 'code', node });
|
|
51
|
-
nodes.push(node);
|
|
52
|
-
}
|
|
53
|
-
if (usesPolyfilledChain(nodes))
|
|
54
|
-
return null;
|
|
55
|
-
// Mirrors the branch condition in ExpressionBuilder.getExpressionCode.
|
|
56
|
-
const isWholeValue = chunks.length === 2 && chunks[0].type === 'text' && chunks[0].text === '';
|
|
57
|
-
return { chunks, isWholeValue };
|
|
58
|
-
}
|
|
59
|
-
function getCompiled(expression) {
|
|
60
|
-
if (expression.length > MAX_CACHED_EXPRESSION_LENGTH)
|
|
61
|
-
return compile(expression);
|
|
62
|
-
let compiled = cache.get(expression);
|
|
63
|
-
if (compiled === undefined) {
|
|
64
|
-
compiled = compile(expression);
|
|
65
|
-
cache.set(expression, compiled);
|
|
66
|
-
}
|
|
67
|
-
return compiled;
|
|
68
|
-
}
|
|
6
|
+
// Fast native evaluation: an in-process interpreter for a closed subset of
|
|
7
|
+
// the expression grammar.
|
|
8
|
+
//
|
|
9
|
+
// The subset is data path access on the data roots (`$json`, `$parameter`,
|
|
10
|
+
// `$vars`, `$binary`, `$itemIndex`, `$runIndex`) and on node references
|
|
11
|
+
// (`$('Name').item`, `$('Name').first()`, `$input.item`, `$node['Name'].json`),
|
|
12
|
+
// primitive reads off the time roots (`$now.toMillis()`, `$today.year`),
|
|
13
|
+
// literals (array literals of literals included), a fixed set of operators,
|
|
14
|
+
// calls to a closed allowlist of native string/number/array methods, and the
|
|
15
|
+
// five array iterators (some/every/find/filter/map) with a one-parameter
|
|
16
|
+
// arrow callback whose body is in the same subset. Such expressions cannot
|
|
17
|
+
// reach prototypes or touch anything outside the data proxy, and the only
|
|
18
|
+
// loop is a native iterator over a size-capped array under a step budget, so
|
|
19
|
+
// they are interpreted here without the sandbox AST hooks, the
|
|
20
|
+
// global-context setup, or an engine (isolate) evaluation. Anything that
|
|
21
|
+
// does not fit the subset is declined and takes the regular pipeline.
|
|
22
|
+
//
|
|
23
|
+
// Structure follows "parse, don't validate": the esprima AST is not checked
|
|
24
|
+
// in place, it is re-parsed into the closed {@link SimpleNode} grammar below.
|
|
25
|
+
// Construction either yields a node of that grammar or null; the interpreter
|
|
26
|
+
// only ever sees objects this module built, so it cannot read a field the
|
|
27
|
+
// parser did not put there, and unsupported constructs are unrepresentable
|
|
28
|
+
// rather than rejected. Expression text is never executed as code.
|
|
29
|
+
//
|
|
30
|
+
// Data is the other input. Node output is normalised to JSON at the node
|
|
31
|
+
// boundary (verified for Set and Code output on a running instance), so
|
|
32
|
+
// `$json` holds plain objects, arrays and primitives. The runtime guards
|
|
33
|
+
// below therefore target what JSON content can do (sizes) and where the host
|
|
34
|
+
// would diverge from the isolates (live references, coercion, aliasing), not
|
|
35
|
+
// hooks that cannot arrive. Non-JSON values in workflow data are engine bugs.
|
|
36
|
+
//
|
|
37
|
+
// Layout: grammar.ts holds the closed grammar and the allowlists, parser.ts
|
|
38
|
+
// turns esprima output into it, compiler.ts splits, compiles and caches whole
|
|
39
|
+
// expressions, evaluator.ts interprets them, and this file runs them.
|
|
40
|
+
// skeleton.ts and verify.ts serve verify mode only.
|
|
69
41
|
/** Does the expression (leading `=` stripped) fit the native subset? */
|
|
70
42
|
export function isNativelyEvaluable(expression) {
|
|
71
43
|
return getCompiled(expression) !== null;
|
|
72
44
|
}
|
|
73
45
|
/**
|
|
74
46
|
* Evaluate an expression (with the leading `=` already stripped) in-process.
|
|
75
|
-
* Returns `{ handled: false }` when the expression is outside the subset
|
|
76
|
-
*
|
|
77
|
-
* the regular pipeline.
|
|
47
|
+
* Returns `{ handled: false }` when the expression is outside the subset, and
|
|
48
|
+
* `{ handled: false, fallbackReason }` when a runtime value fell outside what
|
|
49
|
+
* parsing proved; the caller must then run the regular pipeline.
|
|
78
50
|
*/
|
|
79
51
|
export function evaluateNatively(expression, data) {
|
|
80
52
|
const compiled = getCompiled(expression);
|
|
@@ -85,8 +57,9 @@ export function evaluateNatively(expression, data) {
|
|
|
85
57
|
return { handled: true, value };
|
|
86
58
|
}
|
|
87
59
|
catch (error) {
|
|
88
|
-
if (error instanceof EngineFallbackError)
|
|
89
|
-
return { handled: false };
|
|
60
|
+
if (error instanceof EngineFallbackError) {
|
|
61
|
+
return { handled: false, fallbackReason: error.reason };
|
|
62
|
+
}
|
|
90
63
|
throw error;
|
|
91
64
|
}
|
|
92
65
|
}
|
|
@@ -105,17 +78,19 @@ function copyResult(value) {
|
|
|
105
78
|
const copy = (value, depth) => {
|
|
106
79
|
const nonJsonLeaf = typeof value === 'function' || typeof value === 'symbol' || typeof value === 'bigint';
|
|
107
80
|
if (nonJsonLeaf)
|
|
108
|
-
throw new EngineFallbackError();
|
|
81
|
+
throw new EngineFallbackError('unsupported_type');
|
|
109
82
|
if (!isObj(value))
|
|
110
83
|
return value;
|
|
111
|
-
if (depth > MAX_DEPTH
|
|
112
|
-
throw new EngineFallbackError();
|
|
84
|
+
if (depth > MAX_DEPTH)
|
|
85
|
+
throw new EngineFallbackError('too_deep');
|
|
86
|
+
if (value.isProxy === true)
|
|
87
|
+
throw new EngineFallbackError('unsupported_type');
|
|
113
88
|
if (isArray(value)) {
|
|
114
89
|
if (getPrototypeOf(value) !== Array.prototype)
|
|
115
|
-
throw new EngineFallbackError();
|
|
90
|
+
throw new EngineFallbackError('unsupported_type');
|
|
116
91
|
visits += value.length;
|
|
117
92
|
if (visits > MAX_RESULT_LENGTH)
|
|
118
|
-
throw new EngineFallbackError();
|
|
93
|
+
throw new EngineFallbackError('too_large');
|
|
119
94
|
// Holes stay holes: the corpus pins an engine divergence on sparse arrays.
|
|
120
95
|
const result = new Array(value.length);
|
|
121
96
|
for (let i = 0; i < value.length; i++) {
|
|
@@ -126,15 +101,15 @@ function copyResult(value) {
|
|
|
126
101
|
}
|
|
127
102
|
const proto = getPrototypeOf(value);
|
|
128
103
|
if (proto !== Object.prototype && proto !== null)
|
|
129
|
-
throw new EngineFallbackError();
|
|
104
|
+
throw new EngineFallbackError('unsupported_type');
|
|
130
105
|
const ownKeys = keys(value);
|
|
131
106
|
visits += ownKeys.length;
|
|
132
107
|
if (visits > MAX_RESULT_LENGTH)
|
|
133
|
-
throw new EngineFallbackError();
|
|
108
|
+
throw new EngineFallbackError('too_large');
|
|
134
109
|
const result = {};
|
|
135
110
|
for (const key of ownKeys) {
|
|
136
111
|
if (key === '__proto__')
|
|
137
|
-
throw new EngineFallbackError();
|
|
112
|
+
throw new EngineFallbackError('unsupported_type');
|
|
138
113
|
result[key] = copy(value[key], depth + 1);
|
|
139
114
|
}
|
|
140
115
|
return result;
|
|
@@ -162,14 +137,14 @@ function evalCompiled(compiled, data) {
|
|
|
162
137
|
const value = evalChunk(chunk.node, env);
|
|
163
138
|
// An object here would coerce through its toString on the host.
|
|
164
139
|
if (isObj(value)) {
|
|
165
|
-
throw new EngineFallbackError();
|
|
140
|
+
throw new EngineFallbackError('unsupported_type');
|
|
166
141
|
}
|
|
167
142
|
const part = value || value === 0 || value === false ? value : '';
|
|
168
143
|
parts.push(part);
|
|
169
144
|
length += typeof part === 'string' ? part.length : 1;
|
|
170
145
|
// Bound before the join allocates the combined string.
|
|
171
146
|
if (length > MAX_RESULT_LENGTH)
|
|
172
|
-
throw new EngineFallbackError();
|
|
147
|
+
throw new EngineFallbackError('too_large');
|
|
173
148
|
}
|
|
174
149
|
// Single-chunk expressions (plain text, or a lone blank `{{}}`) return the
|
|
175
150
|
// part as-is; everything else joins to a string.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// The expression's shape without its user data, for verify-mode reports.
|
|
2
|
+
// The grammar is closed, so every method, root and operator here comes from
|
|
3
|
+
// an allowlist; only literals, field names and node names are user text, and
|
|
4
|
+
// those are masked. This masking is the user-data boundary for what verify
|
|
5
|
+
// mode sends to Sentry, so extend it rather than redacting the raw text.
|
|
6
|
+
export function skeletonOf(node) {
|
|
7
|
+
switch (node.kind) {
|
|
8
|
+
case 'literal':
|
|
9
|
+
if (typeof node.value === 'string')
|
|
10
|
+
return '<str>';
|
|
11
|
+
if (typeof node.value === 'number')
|
|
12
|
+
return '<num>';
|
|
13
|
+
return String(node.value);
|
|
14
|
+
case 'root':
|
|
15
|
+
case 'timeRoot':
|
|
16
|
+
return node.name;
|
|
17
|
+
case 'nodeRef':
|
|
18
|
+
if (node.ref === 'input')
|
|
19
|
+
return '$input';
|
|
20
|
+
return node.ref === 'node' ? '$(<str>)' : '$node[<str>]';
|
|
21
|
+
case 'undefined':
|
|
22
|
+
return 'undefined';
|
|
23
|
+
case 'param':
|
|
24
|
+
return 'x';
|
|
25
|
+
case 'member':
|
|
26
|
+
return `${skeletonOf(node.object)}${access(node.optional)}${memberKey(node)}`;
|
|
27
|
+
case 'chain':
|
|
28
|
+
return skeletonOf(node.expression);
|
|
29
|
+
case 'unary':
|
|
30
|
+
return `${node.op}${skeletonOf(node.argument)}`;
|
|
31
|
+
case 'binary':
|
|
32
|
+
case 'logical':
|
|
33
|
+
return `(${skeletonOf(node.left)} ${node.op} ${skeletonOf(node.right)})`;
|
|
34
|
+
case 'conditional':
|
|
35
|
+
return `(${skeletonOf(node.test)} ? ${skeletonOf(node.consequent)} : ${skeletonOf(node.alternate)})`;
|
|
36
|
+
case 'call':
|
|
37
|
+
return `${skeletonOf(node.receiver)}${access(node.optional)}${node.method}(${node.args.map(skeletonOf).join(', ')})`;
|
|
38
|
+
case 'array':
|
|
39
|
+
return `[${node.elements.map(skeletonOf).join(', ')}]`;
|
|
40
|
+
case 'iterate':
|
|
41
|
+
return `${skeletonOf(node.receiver)}${access(node.optional)}${node.method}(x => ${skeletonOf(node.body)})`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const access = (optional) => (optional ? '?.' : '.');
|
|
45
|
+
// n8n's own item keys. `length` tells a string or array read apart.
|
|
46
|
+
const KNOWN_KEYS = new Set(['json', 'binary', 'length']);
|
|
47
|
+
// Keys off node references and time roots come from allowlists; any other
|
|
48
|
+
// key is a field name from workflow data.
|
|
49
|
+
function memberKey(node) {
|
|
50
|
+
if (typeof node.key === 'number')
|
|
51
|
+
return '<num>';
|
|
52
|
+
if (node.object.kind === 'nodeRef' || node.object.kind === 'timeRoot')
|
|
53
|
+
return node.key;
|
|
54
|
+
return KNOWN_KEYS.has(node.key) ? node.key : '<id>';
|
|
55
|
+
}
|
|
56
|
+
// The engine reads its own clock, and a `$parameter` read evaluates that
|
|
57
|
+
// parameter again, which can read the clock too. Two evaluations of such an
|
|
58
|
+
// expression can differ without a bug.
|
|
59
|
+
export function readsClockOrParameter(node) {
|
|
60
|
+
return (node.kind === 'timeRoot' ||
|
|
61
|
+
(node.kind === 'root' && node.name === '$parameter') ||
|
|
62
|
+
childrenOf(node).some(readsClockOrParameter));
|
|
63
|
+
}
|
|
64
|
+
function childrenOf(node) {
|
|
65
|
+
switch (node.kind) {
|
|
66
|
+
case 'member':
|
|
67
|
+
return [node.object];
|
|
68
|
+
case 'chain':
|
|
69
|
+
return [node.expression];
|
|
70
|
+
case 'unary':
|
|
71
|
+
return [node.argument];
|
|
72
|
+
case 'binary':
|
|
73
|
+
case 'logical':
|
|
74
|
+
return [node.left, node.right];
|
|
75
|
+
case 'conditional':
|
|
76
|
+
return [node.test, node.consequent, node.alternate];
|
|
77
|
+
case 'call':
|
|
78
|
+
return [node.receiver, ...node.args];
|
|
79
|
+
case 'iterate':
|
|
80
|
+
return [node.receiver, node.body];
|
|
81
|
+
default:
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/skeleton.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ExpressionEvaluationOutcome } from '../../expression';
|
|
2
|
+
import type { IWorkflowDataProxyData } from '../../interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Whether verify mode can compare the expression: it fits the native subset
|
|
5
|
+
* and reads neither `$now`, `$today` nor `$parameter`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function canVerifyNatively(expression: string): boolean;
|
|
8
|
+
/** The shape of an expression with its user data masked. Null outside the native subset. */
|
|
9
|
+
export declare function nativeSkeleton(expression: string): string | null;
|
|
10
|
+
/** Holds no workflow data. */
|
|
11
|
+
export type NativeVerifyMismatch = {
|
|
12
|
+
engine: 'legacy' | 'vm' | 'quickjs';
|
|
13
|
+
skeleton: string;
|
|
14
|
+
nativeResultType: string;
|
|
15
|
+
engineResultType: string;
|
|
16
|
+
workflowId?: string;
|
|
17
|
+
};
|
|
18
|
+
/** Compares a sample of native results with the engine's and reports each new difference. */
|
|
19
|
+
export declare class NativeVerifier {
|
|
20
|
+
private readonly sample;
|
|
21
|
+
private readonly report;
|
|
22
|
+
private readonly canReport;
|
|
23
|
+
private readonly reportedShapes;
|
|
24
|
+
constructor(sample: number, report: (mismatch: NativeVerifyMismatch) => void, canReport?: () => boolean);
|
|
25
|
+
/** Draws whether this evaluation is part of the sample. False while reports cannot be sent. */
|
|
26
|
+
isSampled(): boolean;
|
|
27
|
+
/** Reports `native` when it differs from `engine`. Never throws. */
|
|
28
|
+
compare(expression: string, engineName: NativeVerifyMismatch['engine'], native: ExpressionEvaluationOutcome, engine: ExpressionEvaluationOutcome, data: IWorkflowDataProxyData): void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/verify.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAa/D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAahE;AAED,8BAA8B;AAC9B,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,6FAA6F;AAC7F,qBAAa,cAAc;IAIzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,YACkB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,EAChD,SAAS,GAAE,MAAM,OAAoB,EACnD;IAEJ,+FAA+F;IAC/F,SAAS,IAAI,OAAO,CAEnB;IAED,oEAAoE;IACpE,OAAO,CACN,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAC1C,MAAM,EAAE,2BAA2B,EACnC,MAAM,EAAE,2BAA2B,EACnC,IAAI,EAAE,sBAAsB,GAC1B,IAAI,CA2BN;CACD"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import isEqualWith from 'lodash/isEqualWith';
|
|
2
|
+
import { getCompiled } from './compiler';
|
|
3
|
+
import { readsClockOrParameter, skeletonOf } from './skeleton';
|
|
4
|
+
import * as LoggerProxy from '../../logger-proxy';
|
|
5
|
+
import { isObject } from '../../utils';
|
|
6
|
+
// Each mismatch shape is reported once per process, up to this many, so a
|
|
7
|
+
// common mismatch cannot spend the Sentry quota.
|
|
8
|
+
const MAX_REPORTED_SHAPES = 1000;
|
|
9
|
+
// The comparison runs outside the engine timeout.
|
|
10
|
+
const MAX_COMPARED_PAIRS = 10_000;
|
|
11
|
+
class ComparisonTooLargeError extends Error {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Whether verify mode can compare the expression: it fits the native subset
|
|
15
|
+
* and reads neither `$now`, `$today` nor `$parameter`.
|
|
16
|
+
*/
|
|
17
|
+
export function canVerifyNatively(expression) {
|
|
18
|
+
const compiled = getCompiled(expression);
|
|
19
|
+
return (compiled !== null &&
|
|
20
|
+
!compiled.chunks.some((chunk) => chunk.type === 'code' && readsClockOrParameter(chunk.node)));
|
|
21
|
+
}
|
|
22
|
+
/** The shape of an expression with its user data masked. Null outside the native subset. */
|
|
23
|
+
export function nativeSkeleton(expression) {
|
|
24
|
+
const compiled = getCompiled(expression);
|
|
25
|
+
if (compiled === null)
|
|
26
|
+
return null;
|
|
27
|
+
return compiled.chunks
|
|
28
|
+
.map((chunk) => chunk.type === 'text'
|
|
29
|
+
? chunk.text === ''
|
|
30
|
+
? ''
|
|
31
|
+
: '<text>'
|
|
32
|
+
: `{{ ${skeletonOf(chunk.node)} }}`)
|
|
33
|
+
.join('');
|
|
34
|
+
}
|
|
35
|
+
/** Compares a sample of native results with the engine's and reports each new difference. */
|
|
36
|
+
export class NativeVerifier {
|
|
37
|
+
sample;
|
|
38
|
+
report;
|
|
39
|
+
canReport;
|
|
40
|
+
reportedShapes = new Set();
|
|
41
|
+
constructor(sample, report, canReport = () => true) {
|
|
42
|
+
this.sample = sample;
|
|
43
|
+
this.report = report;
|
|
44
|
+
this.canReport = canReport;
|
|
45
|
+
}
|
|
46
|
+
/** Draws whether this evaluation is part of the sample. False while reports cannot be sent. */
|
|
47
|
+
isSampled() {
|
|
48
|
+
return this.sample > 0 && this.canReport() && Math.random() < this.sample;
|
|
49
|
+
}
|
|
50
|
+
/** Reports `native` when it differs from `engine`. Never throws. */
|
|
51
|
+
compare(expression, engineName, native, engine, data) {
|
|
52
|
+
try {
|
|
53
|
+
if (compareResults(native, engine) === 'different' && !hitEngineLimit(engine)) {
|
|
54
|
+
const skeleton = nativeSkeleton(expression);
|
|
55
|
+
if (skeleton === null)
|
|
56
|
+
return;
|
|
57
|
+
const shape = {
|
|
58
|
+
skeleton,
|
|
59
|
+
engine: engineName,
|
|
60
|
+
nativeResultType: resultType(native),
|
|
61
|
+
engineResultType: resultType(engine),
|
|
62
|
+
};
|
|
63
|
+
const key = JSON.stringify(shape);
|
|
64
|
+
if (this.reportedShapes.has(key))
|
|
65
|
+
return;
|
|
66
|
+
if (this.reportedShapes.size >= MAX_REPORTED_SHAPES)
|
|
67
|
+
return;
|
|
68
|
+
this.reportedShapes.add(key);
|
|
69
|
+
if (this.reportedShapes.size === MAX_REPORTED_SHAPES) {
|
|
70
|
+
LoggerProxy.warn('Native evaluation verify mode reached its report limit and stops reporting new differences');
|
|
71
|
+
}
|
|
72
|
+
this.report({ ...shape, workflowId: workflowIdOf(data) });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Reporting must never change what the caller gets.
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function compareResults(a, b) {
|
|
81
|
+
if (a.ok && b.ok)
|
|
82
|
+
return compareValues(a.value, b.value);
|
|
83
|
+
if (a.ok || b.ok)
|
|
84
|
+
return 'different';
|
|
85
|
+
const sameError = a.error instanceof Error &&
|
|
86
|
+
b.error instanceof Error &&
|
|
87
|
+
a.error.constructor === b.error.constructor &&
|
|
88
|
+
a.error.message === b.error.message;
|
|
89
|
+
return sameError ? 'same' : 'different';
|
|
90
|
+
}
|
|
91
|
+
// TODO(native-evaluation verify, CET-447): share the bounded comparison with the QuickJS shadow.
|
|
92
|
+
function compareValues(a, b, maxComparedPairs = MAX_COMPARED_PAIRS) {
|
|
93
|
+
let remaining = maxComparedPairs;
|
|
94
|
+
const compare = (x, y) => {
|
|
95
|
+
remaining--;
|
|
96
|
+
if (remaining < 0) {
|
|
97
|
+
throw new ComparisonTooLargeError();
|
|
98
|
+
}
|
|
99
|
+
// QuickJS drops object keys that hold undefined from its results.
|
|
100
|
+
if (isObject(x) && isObject(y)) {
|
|
101
|
+
return sameDefinedEntries(x, y, compare);
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
};
|
|
105
|
+
try {
|
|
106
|
+
return isEqualWith(a, b, compare) ? 'same' : 'different';
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
if (error instanceof ComparisonTooLargeError) {
|
|
110
|
+
return 'too_large';
|
|
111
|
+
}
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function sameDefinedEntries(a, b, compare) {
|
|
116
|
+
const definedKeys = (value) => Object.keys(value).filter((key) => value[key] !== undefined);
|
|
117
|
+
const aKeys = definedKeys(a);
|
|
118
|
+
return (aKeys.length === definedKeys(b).length &&
|
|
119
|
+
aKeys.every((key) => Object.hasOwn(b, key) && isEqualWith(a[key], b[key], compare)));
|
|
120
|
+
}
|
|
121
|
+
function hitEngineLimit(result) {
|
|
122
|
+
return !result.ok && (result.errorClass === 'timeout' || result.errorClass === 'memory_limit');
|
|
123
|
+
}
|
|
124
|
+
function resultType(result) {
|
|
125
|
+
if (!result.ok) {
|
|
126
|
+
return `error:${result.errorClass}`;
|
|
127
|
+
}
|
|
128
|
+
const { value } = result;
|
|
129
|
+
if (value === null)
|
|
130
|
+
return 'null';
|
|
131
|
+
if (Array.isArray(value))
|
|
132
|
+
return 'array';
|
|
133
|
+
if (typeof value === 'object')
|
|
134
|
+
return prototypeName(value);
|
|
135
|
+
return typeof value;
|
|
136
|
+
}
|
|
137
|
+
function prototypeName(value) {
|
|
138
|
+
const prototype = Object.getPrototypeOf(value);
|
|
139
|
+
const constructor = typeof prototype === 'object' && prototype !== null ? prototype.constructor : undefined;
|
|
140
|
+
return typeof constructor === 'function' ? constructor.name : 'object';
|
|
141
|
+
}
|
|
142
|
+
function workflowIdOf(data) {
|
|
143
|
+
try {
|
|
144
|
+
const id = data.$workflow?.id;
|
|
145
|
+
return typeof id === 'string' ? id : undefined;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=verify.js.map
|