n8n-workflow 2.43.1 → 2.43.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/expressions/native-evaluation/evaluator.d.ts +17 -1
- package/dist/cjs/expressions/native-evaluation/evaluator.d.ts.map +1 -1
- package/dist/cjs/expressions/native-evaluation/evaluator.js +149 -39
- package/dist/cjs/expressions/native-evaluation/evaluator.js.map +1 -1
- package/dist/cjs/expressions/native-evaluation/grammar.d.ts +37 -1
- package/dist/cjs/expressions/native-evaluation/grammar.d.ts.map +1 -1
- package/dist/cjs/expressions/native-evaluation/grammar.js +47 -6
- package/dist/cjs/expressions/native-evaluation/grammar.js.map +1 -1
- package/dist/cjs/expressions/native-evaluation/index.d.ts +1 -1
- package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -1
- package/dist/cjs/expressions/native-evaluation/index.js +7 -3
- package/dist/cjs/expressions/native-evaluation/index.js.map +1 -1
- package/dist/cjs/expressions/native-evaluation/parser.d.ts +1 -1
- package/dist/cjs/expressions/native-evaluation/parser.d.ts.map +1 -1
- package/dist/cjs/expressions/native-evaluation/parser.js +131 -17
- package/dist/cjs/expressions/native-evaluation/parser.js.map +1 -1
- package/dist/cjs/interfaces.d.ts +12 -0
- package/dist/cjs/interfaces.d.ts.map +1 -1
- package/dist/cjs/nodes-api-version.d.ts +9 -18
- package/dist/cjs/nodes-api-version.d.ts.map +1 -1
- package/dist/cjs/nodes-api-version.js +24 -19
- package/dist/cjs/nodes-api-version.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/evaluator.d.ts +17 -1
- package/dist/esm/expressions/native-evaluation/evaluator.d.ts.map +1 -1
- package/dist/esm/expressions/native-evaluation/evaluator.js +148 -39
- package/dist/esm/expressions/native-evaluation/evaluator.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/grammar.d.ts +37 -1
- package/dist/esm/expressions/native-evaluation/grammar.d.ts.map +1 -1
- package/dist/esm/expressions/native-evaluation/grammar.js +46 -5
- package/dist/esm/expressions/native-evaluation/grammar.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/index.d.ts +1 -1
- package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -1
- package/dist/esm/expressions/native-evaluation/index.js +5 -4
- package/dist/esm/expressions/native-evaluation/index.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/parser.d.ts +1 -1
- package/dist/esm/expressions/native-evaluation/parser.d.ts.map +1 -1
- package/dist/esm/expressions/native-evaluation/parser.js +132 -18
- package/dist/esm/expressions/native-evaluation/parser.js.map +1 -1
- package/dist/esm/interfaces.d.ts +12 -0
- package/dist/esm/interfaces.d.ts.map +1 -1
- package/dist/esm/nodes-api-version.d.ts +9 -18
- package/dist/esm/nodes-api-version.d.ts.map +1 -1
- package/dist/esm/nodes-api-version.js +22 -19
- package/dist/esm/nodes-api-version.js.map +1 -1
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAX_RESULT_LENGTH = exports.CALLABLE_METHODS = void 0;
|
|
3
|
+
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");
|
|
@@ -10,7 +10,10 @@ const grammar_1 = require("./grammar");
|
|
|
10
10
|
const parser_1 = require("./parser");
|
|
11
11
|
var grammar_2 = require("./grammar");
|
|
12
12
|
Object.defineProperty(exports, "CALLABLE_METHODS", { enumerable: true, get: function () { return grammar_2.CALLABLE_METHODS; } });
|
|
13
|
+
Object.defineProperty(exports, "ITERATOR_METHODS", { enumerable: true, get: function () { return grammar_2.ITERATOR_METHODS; } });
|
|
13
14
|
Object.defineProperty(exports, "MAX_RESULT_LENGTH", { enumerable: true, get: function () { return grammar_2.MAX_RESULT_LENGTH; } });
|
|
15
|
+
Object.defineProperty(exports, "MAX_STEPS", { enumerable: true, get: function () { return grammar_2.MAX_STEPS; } });
|
|
16
|
+
Object.defineProperty(exports, "MAX_WORK", { enumerable: true, get: function () { return grammar_2.MAX_WORK; } });
|
|
14
17
|
// null = outside the subset. Declined expressions are cached too, so an
|
|
15
18
|
// expression the engine owns costs one parse here, not one per evaluation.
|
|
16
19
|
// Entries are keyed by expression text, so the key length is capped to keep
|
|
@@ -107,10 +110,11 @@ function copyResult(value) {
|
|
|
107
110
|
}
|
|
108
111
|
}
|
|
109
112
|
function evalCompiled(compiled, data) {
|
|
113
|
+
const env = new evaluator_1.Env(data);
|
|
110
114
|
if (compiled.isWholeValue) {
|
|
111
115
|
const code = compiled.chunks[1];
|
|
112
116
|
// isWholeValue guarantees chunks = [text '', code]
|
|
113
|
-
return code.type === 'code' ? (0, evaluator_1.evalChunk)(code.node,
|
|
117
|
+
return code.type === 'code' ? (0, evaluator_1.evalChunk)(code.node, env) : '';
|
|
114
118
|
}
|
|
115
119
|
// String concatenation, mirroring tmpl semantics: falsy chunk values other
|
|
116
120
|
// than 0/false render as '', parts are joined with String() coercion.
|
|
@@ -123,7 +127,7 @@ function evalCompiled(compiled, data) {
|
|
|
123
127
|
length += chunk.text.length;
|
|
124
128
|
continue;
|
|
125
129
|
}
|
|
126
|
-
const value = (0, evaluator_1.evalChunk)(chunk.node,
|
|
130
|
+
const value = (0, evaluator_1.evalChunk)(chunk.node, env);
|
|
127
131
|
// An object here would coerce through its toString on the host.
|
|
128
132
|
if ((0, grammar_1.isObj)(value)) {
|
|
129
133
|
throw new evaluator_1.EngineFallbackError();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":";;;;;AAAA,gDAAsD;AAEtD,oDAAgD;AAEhD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
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
|
-
export declare function parseSimple(node: AstNode, depth?: number): SimpleNode | null;
|
|
4
|
+
export declare function parseSimple(node: AstNode, depth?: number, param?: string | null): SimpleNode | null;
|
|
5
5
|
export {};
|
|
6
6
|
//# 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,
|
|
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,EAcN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAgBnB,KAAK,OAAO,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAqSlD,wBAAgB,WAAW,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,SAAI,EACT,KAAK,GAAE,MAAM,GAAG,IAAW,GACzB,UAAU,GAAG,IAAI,CA+BnB"}
|
|
@@ -21,8 +21,11 @@ function parseLiteral(node) {
|
|
|
21
21
|
return null;
|
|
22
22
|
return { kind: 'literal', value };
|
|
23
23
|
}
|
|
24
|
-
function parseIdentifier(node) {
|
|
25
|
-
if (node.name ===
|
|
24
|
+
function parseIdentifier(node, param) {
|
|
25
|
+
if (node.name === param) {
|
|
26
|
+
return { kind: 'param' };
|
|
27
|
+
}
|
|
28
|
+
if ((0, grammar_1.isOneOf)(grammar_1.DATA_ROOTS, node.name)) {
|
|
26
29
|
return { kind: 'root', name: node.name };
|
|
27
30
|
}
|
|
28
31
|
if (node.name === 'undefined') {
|
|
@@ -30,6 +33,65 @@ function parseIdentifier(node) {
|
|
|
30
33
|
}
|
|
31
34
|
return null;
|
|
32
35
|
}
|
|
36
|
+
// `['a', 'b']`: every element is a literal. Holes, spread and anything
|
|
37
|
+
// computed decline, as does a literal longer than any result may be.
|
|
38
|
+
function parseArray(node) {
|
|
39
|
+
if (node.elements.length > grammar_1.MAX_RESULT_LENGTH)
|
|
40
|
+
return null;
|
|
41
|
+
const elements = [];
|
|
42
|
+
for (const element of node.elements) {
|
|
43
|
+
if (element?.type !== 'Literal')
|
|
44
|
+
return null;
|
|
45
|
+
const literal = parseLiteral(element);
|
|
46
|
+
if (literal === null)
|
|
47
|
+
return null;
|
|
48
|
+
elements.push(literal);
|
|
49
|
+
}
|
|
50
|
+
return { kind: 'array', elements };
|
|
51
|
+
}
|
|
52
|
+
// A node name is a string literal (`$('Name')`, `$node['Name']`), vetted like
|
|
53
|
+
// an object key so a prototype name never reaches the node getters. Anything
|
|
54
|
+
// else is a dynamic name and stays on the engine.
|
|
55
|
+
function parseNodeName(node) {
|
|
56
|
+
if (node.type !== 'Literal')
|
|
57
|
+
return null;
|
|
58
|
+
const { value } = node;
|
|
59
|
+
return typeof value === 'string' && (0, utils_1.isSafeObjectProperty)(value) ? value : null;
|
|
60
|
+
}
|
|
61
|
+
// `$node['Name']` or `$node.Name`: the dot form names the node by identifier.
|
|
62
|
+
function parseLegacyNodeName(node) {
|
|
63
|
+
if (node.computed === true)
|
|
64
|
+
return parseNodeName(node.property);
|
|
65
|
+
const { property } = node;
|
|
66
|
+
if (property.type !== 'Identifier' || !(0, utils_1.isSafeObjectProperty)(property.name))
|
|
67
|
+
return null;
|
|
68
|
+
return property.name;
|
|
69
|
+
}
|
|
70
|
+
// `$('Name')`, `$input` or `$node['Name']` in object/receiver position, or
|
|
71
|
+
// null when the AST is not a node reference. Only the member and call parsers
|
|
72
|
+
// ask, so a reference never stands alone in the grammar.
|
|
73
|
+
function parseNodeRef(node) {
|
|
74
|
+
if (node.type === 'Identifier') {
|
|
75
|
+
return node.name === '$input' ? { kind: 'nodeRef', ref: 'input' } : null;
|
|
76
|
+
}
|
|
77
|
+
if (node.type === 'CallExpression') {
|
|
78
|
+
const { callee } = node;
|
|
79
|
+
if (callee.type !== 'Identifier' || callee.name !== '$' || node.arguments.length !== 1) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const name = parseNodeName(node.arguments[0]);
|
|
83
|
+
return name === null ? null : { kind: 'nodeRef', ref: 'node', name };
|
|
84
|
+
}
|
|
85
|
+
if (node.type === 'MemberExpression') {
|
|
86
|
+
const { object } = node;
|
|
87
|
+
if (object.type !== 'Identifier' || object.name !== '$node' || node.optional === true) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const name = parseLegacyNodeName(node);
|
|
91
|
+
return name === null ? null : { kind: 'nodeRef', ref: 'legacy', name };
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
33
95
|
// Only static keys are representable. Dynamic keys ($json[$json.key]) need
|
|
34
96
|
// the sandbox's PrototypeSanitizer, so they stay on the engine. String keys
|
|
35
97
|
// are vetted at parse time (isSafeObjectProperty), which keeps prototype
|
|
@@ -37,12 +99,19 @@ function parseIdentifier(node) {
|
|
|
37
99
|
// unnecessary, but $json/$parameter are get-trap proxies for which
|
|
38
100
|
// Object.hasOwn misreports every key, so the parse-time vet is the boundary.
|
|
39
101
|
function parseMember(node, parse) {
|
|
40
|
-
const object = parse(node.object);
|
|
41
|
-
if (object === null)
|
|
42
|
-
return null;
|
|
43
102
|
const key = node.computed === true ? parseComputedKey(node.property) : parseStaticKey(node.property);
|
|
44
103
|
if (key === null)
|
|
45
104
|
return null;
|
|
105
|
+
const ref = parseNodeRef(node.object);
|
|
106
|
+
if (ref !== null) {
|
|
107
|
+
const allowed = ref.ref === 'legacy' ? grammar_1.LEGACY_NODE_REF_MEMBERS : grammar_1.NODE_REF_MEMBERS;
|
|
108
|
+
if (typeof key !== 'string' || !allowed.has(key))
|
|
109
|
+
return null;
|
|
110
|
+
return { kind: 'member', object: ref, key, optional: node.optional === true };
|
|
111
|
+
}
|
|
112
|
+
const object = parse(node.object);
|
|
113
|
+
if (object === null)
|
|
114
|
+
return null;
|
|
46
115
|
return { kind: 'member', object, key, optional: node.optional === true };
|
|
47
116
|
}
|
|
48
117
|
// `a[0]` or `a['b']`: the key is a literal.
|
|
@@ -64,16 +133,60 @@ function parseStaticKey(property) {
|
|
|
64
133
|
return null;
|
|
65
134
|
return property.name;
|
|
66
135
|
}
|
|
67
|
-
|
|
136
|
+
// `x => body`, the sole argument of an iterator method: one plain identifier
|
|
137
|
+
// parameter (not a reserved or prototype name) and an expression body parsed
|
|
138
|
+
// with that parameter bound. A block body, a default, destructuring, rest, a
|
|
139
|
+
// second argument (thisArg), and a callback inside a callback body decline.
|
|
140
|
+
function parseCallback(args, parse, param) {
|
|
141
|
+
if (param !== null || args.length !== 1)
|
|
142
|
+
return null;
|
|
143
|
+
const [fn] = args;
|
|
144
|
+
if (fn.type !== 'ArrowFunctionExpression' || fn.async === true || fn.params.length !== 1) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
const [parameter] = fn.params;
|
|
148
|
+
if (parameter.type !== 'Identifier')
|
|
149
|
+
return null;
|
|
150
|
+
const { name } = parameter;
|
|
151
|
+
if (grammar_1.RESERVED_NAMES.has(name) || !(0, utils_1.isSafeObjectProperty)(name))
|
|
152
|
+
return null;
|
|
153
|
+
if (fn.body.type === 'BlockStatement')
|
|
154
|
+
return null;
|
|
155
|
+
return parse(fn.body, name);
|
|
156
|
+
}
|
|
157
|
+
function parseCall(node, parse, param) {
|
|
68
158
|
const callee = node.callee;
|
|
69
159
|
if (callee.type !== 'MemberExpression' || callee.computed === true)
|
|
70
160
|
return null;
|
|
71
161
|
const property = callee.property;
|
|
72
|
-
if (property.type !== 'Identifier'
|
|
162
|
+
if (property.type !== 'Identifier')
|
|
163
|
+
return null;
|
|
164
|
+
// `$('Name').first()` and friends: the proxy's own methods, no arguments.
|
|
165
|
+
// Branch and run indexes stay on the engine.
|
|
166
|
+
const ref = parseNodeRef(callee.object);
|
|
167
|
+
if (ref !== null) {
|
|
168
|
+
if (ref.ref === 'legacy' || !grammar_1.NODE_REF_METHODS.has(property.name) || node.arguments.length > 0) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
const optional = node.optional === true || callee.optional === true;
|
|
172
|
+
return { kind: 'call', receiver: ref, method: property.name, args: [], optional };
|
|
173
|
+
}
|
|
174
|
+
const method = property.name;
|
|
175
|
+
const isIterator = (0, grammar_1.isOneOf)(grammar_1.ITERATOR_METHODS, method);
|
|
176
|
+
if (!isIterator && !grammar_1.CALLABLE_METHODS.has(method))
|
|
73
177
|
return null;
|
|
74
178
|
const receiver = parse(callee.object);
|
|
75
179
|
if (receiver === null)
|
|
76
180
|
return null;
|
|
181
|
+
// `a?.m()` marks the member optional, `a.m?.()` marks the call optional;
|
|
182
|
+
// both short-circuit on a missing receiver, so one flag carries both.
|
|
183
|
+
const optional = node.optional === true || callee.optional === true;
|
|
184
|
+
if (isIterator) {
|
|
185
|
+
const body = parseCallback(node.arguments, parse, param);
|
|
186
|
+
if (body === null)
|
|
187
|
+
return null;
|
|
188
|
+
return { kind: 'iterate', receiver, method, body, optional };
|
|
189
|
+
}
|
|
77
190
|
const args = [];
|
|
78
191
|
for (const argument of node.arguments) {
|
|
79
192
|
const parsed = parse(argument);
|
|
@@ -81,10 +194,7 @@ function parseCall(node, parse) {
|
|
|
81
194
|
return null;
|
|
82
195
|
args.push(parsed);
|
|
83
196
|
}
|
|
84
|
-
|
|
85
|
-
// both short-circuit on a missing receiver, so one flag carries both.
|
|
86
|
-
const optional = node.optional === true || callee.optional === true;
|
|
87
|
-
return { kind: 'call', receiver, method: property.name, args, optional };
|
|
197
|
+
return { kind: 'call', receiver, method, args, optional };
|
|
88
198
|
}
|
|
89
199
|
// The wrapper esprima puts around every optional chain. It is the boundary an
|
|
90
200
|
// optional hop short-circuits to: `a?.b.c` yields undefined for a missing
|
|
@@ -127,15 +237,19 @@ function parseLogical(node, parse) {
|
|
|
127
237
|
return null;
|
|
128
238
|
return { kind: 'logical', op: node.operator, left, right };
|
|
129
239
|
}
|
|
130
|
-
|
|
240
|
+
// `param` is the callback parameter in scope, if any: the one name a body
|
|
241
|
+
// adds to the grammar.
|
|
242
|
+
function parseSimple(node, depth = 0, param = null) {
|
|
131
243
|
if (depth > grammar_1.MAX_DEPTH)
|
|
132
244
|
return null;
|
|
133
|
-
const parse = (child) => parseSimple(child, depth + 1);
|
|
245
|
+
const parse = (child, childParam = param) => parseSimple(child, depth + 1, childParam);
|
|
134
246
|
switch (node.type) {
|
|
135
247
|
case 'Literal':
|
|
136
248
|
return parseLiteral(node);
|
|
137
249
|
case 'Identifier':
|
|
138
|
-
return parseIdentifier(node);
|
|
250
|
+
return parseIdentifier(node, param);
|
|
251
|
+
case 'ArrayExpression':
|
|
252
|
+
return parseArray(node);
|
|
139
253
|
case 'MemberExpression':
|
|
140
254
|
return parseMember(node, parse);
|
|
141
255
|
case 'ChainExpression':
|
|
@@ -149,10 +263,10 @@ function parseSimple(node, depth = 0) {
|
|
|
149
263
|
case 'ConditionalExpression':
|
|
150
264
|
return parseBranches(node, parse);
|
|
151
265
|
case 'CallExpression':
|
|
152
|
-
return parseCall(node, parse);
|
|
266
|
+
return parseCall(node, parse, param);
|
|
153
267
|
default:
|
|
154
|
-
// Everything else (functions, templates, object
|
|
155
|
-
//
|
|
268
|
+
// Everything else (functions, templates, object literals, regex,
|
|
269
|
+
// dynamic keys, spread, ...) is outside the subset.
|
|
156
270
|
return null;
|
|
157
271
|
}
|
|
158
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/parser.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/interfaces.d.ts
CHANGED
|
@@ -2987,6 +2987,18 @@ export interface IWorkflowExecutionDataProcess {
|
|
|
2987
2987
|
agentRequest?: AiAgentRequest;
|
|
2988
2988
|
httpResponse?: express.Response;
|
|
2989
2989
|
streamingEnabled?: boolean;
|
|
2990
|
+
/**
|
|
2991
|
+
* What, if anything, on the main that started this run awaits its outcome
|
|
2992
|
+
* and would act on a paused segment as if it were the result. A worker must
|
|
2993
|
+
* not park such a run at shutdown.
|
|
2994
|
+
* - `'response'`: a webhook caller is owed a response; satisfied once the run
|
|
2995
|
+
* relays one.
|
|
2996
|
+
* - `'completion'`: a trigger node's done promise (Kafka, RabbitMQ, MQTT), an
|
|
2997
|
+
* Instance AI run or a retry awaits the end of the run; never satisfied early.
|
|
2998
|
+
* - `'none'`: nothing waits, the run may be parked.
|
|
2999
|
+
* Absent (older main): treated as `'completion'`, the strictest reading.
|
|
3000
|
+
*/
|
|
3001
|
+
callerAwaitsOutcome?: 'none' | 'response' | 'completion';
|
|
2990
3002
|
/**
|
|
2991
3003
|
* Only engine v2 reads this. The data-plane execution id, set by a caller that
|
|
2992
3004
|
* minted it before the run starts: to subscribe to the run's answer, or because
|