n8n-workflow 2.43.1 → 2.43.3
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/common/map-connections-by-destination.d.ts +2 -0
- package/dist/cjs/common/map-connections-by-destination.d.ts.map +1 -1
- package/dist/cjs/common/map-connections-by-destination.js +12 -0
- package/dist/cjs/common/map-connections-by-destination.js.map +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/extensions/array-extensions.js +2 -2
- package/dist/cjs/extensions/array-extensions.js.map +1 -1
- package/dist/cjs/interfaces.d.ts +12 -0
- package/dist/cjs/interfaces.d.ts.map +1 -1
- package/dist/cjs/node-helpers.d.ts.map +1 -1
- package/dist/cjs/node-helpers.js +16 -3
- package/dist/cjs/node-helpers.js.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/cjs/workflow-structure-validation.d.ts.map +1 -1
- package/dist/cjs/workflow-structure-validation.js +2 -1
- package/dist/cjs/workflow-structure-validation.js.map +1 -1
- package/dist/cjs/workflow.d.ts.map +1 -1
- package/dist/cjs/workflow.js +1 -36
- package/dist/cjs/workflow.js.map +1 -1
- package/dist/esm/common/map-connections-by-destination.d.ts +2 -0
- package/dist/esm/common/map-connections-by-destination.d.ts.map +1 -1
- package/dist/esm/common/map-connections-by-destination.js +11 -0
- package/dist/esm/common/map-connections-by-destination.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/extensions/array-extensions.js +2 -2
- package/dist/esm/extensions/array-extensions.js.map +1 -1
- package/dist/esm/interfaces.d.ts +12 -0
- package/dist/esm/interfaces.d.ts.map +1 -1
- package/dist/esm/node-helpers.d.ts.map +1 -1
- package/dist/esm/node-helpers.js +16 -3
- package/dist/esm/node-helpers.js.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/dist/esm/workflow-structure-validation.d.ts.map +1 -1
- package/dist/esm/workflow-structure-validation.js +2 -1
- package/dist/esm/workflow-structure-validation.js.map +1 -1
- package/dist/esm/workflow.d.ts.map +1 -1
- package/dist/esm/workflow.js +1 -36
- package/dist/esm/workflow.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { IConnections } from '../interfaces';
|
|
2
|
+
export declare const MAX_CONNECTION_INDEX = 1000;
|
|
3
|
+
export declare const MAX_DESTINATION_INPUT_SLOTS = 100000;
|
|
2
4
|
export declare function mapConnectionsByDestination(connections: IConnections): IConnections;
|
|
3
5
|
//# sourceMappingURL=map-connections-by-destination.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-connections-by-destination.d.ts","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map-connections-by-destination.d.ts","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAC;AAEtE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,eAAO,MAAM,2BAA2B,SAAU,CAAC;AAEnD,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,YAAY,gBAwDpE"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-for-in-array */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.MAX_DESTINATION_INPUT_SLOTS = exports.MAX_CONNECTION_INDEX = void 0;
|
|
4
5
|
exports.mapConnectionsByDestination = mapConnectionsByDestination;
|
|
6
|
+
const errors_1 = require("../errors");
|
|
7
|
+
exports.MAX_CONNECTION_INDEX = 1000;
|
|
8
|
+
exports.MAX_DESTINATION_INPUT_SLOTS = 100_000;
|
|
5
9
|
function mapConnectionsByDestination(connections) {
|
|
6
10
|
const returnConnection = {};
|
|
7
11
|
let connectionInfo;
|
|
8
12
|
let maxIndex;
|
|
13
|
+
let inputSlots = 0;
|
|
9
14
|
for (const sourceNode in connections) {
|
|
10
15
|
if (!connections.hasOwnProperty(sourceNode)) {
|
|
11
16
|
continue;
|
|
@@ -19,6 +24,9 @@ function mapConnectionsByDestination(connections) {
|
|
|
19
24
|
continue;
|
|
20
25
|
}
|
|
21
26
|
for (connectionInfo of connections[sourceNode][type][inputIndex] ?? []) {
|
|
27
|
+
if (connectionInfo.index > exports.MAX_CONNECTION_INDEX) {
|
|
28
|
+
throw new errors_1.UserError(`Connection from "${sourceNode}" to "${connectionInfo.node}" has an input index above ${exports.MAX_CONNECTION_INDEX}`);
|
|
29
|
+
}
|
|
22
30
|
if (!returnConnection.hasOwnProperty(connectionInfo.node)) {
|
|
23
31
|
returnConnection[connectionInfo.node] = {};
|
|
24
32
|
}
|
|
@@ -26,6 +34,10 @@ function mapConnectionsByDestination(connections) {
|
|
|
26
34
|
returnConnection[connectionInfo.node][connectionInfo.type] = [];
|
|
27
35
|
}
|
|
28
36
|
maxIndex = returnConnection[connectionInfo.node][connectionInfo.type].length - 1;
|
|
37
|
+
inputSlots += Math.max(0, connectionInfo.index - maxIndex);
|
|
38
|
+
if (inputSlots > exports.MAX_DESTINATION_INPUT_SLOTS) {
|
|
39
|
+
throw new errors_1.UserError(`Workflow connections use more than ${exports.MAX_DESTINATION_INPUT_SLOTS} input slots`);
|
|
40
|
+
}
|
|
29
41
|
for (let j = maxIndex; j < connectionInfo.index; j++) {
|
|
30
42
|
returnConnection[connectionInfo.node][connectionInfo.type].push([]);
|
|
31
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-connections-by-destination.js","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":";AAAA,uDAAuD
|
|
1
|
+
{"version":3,"file":"map-connections-by-destination.js","sourceRoot":"","sources":["../../../src/common/map-connections-by-destination.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import type { IWorkflowDataProxyData } from '../../interfaces';
|
|
2
2
|
import { type SimpleNode } from './grammar';
|
|
3
|
+
/**
|
|
4
|
+
* One evaluation's state: the data proxy, the value bound to the callback
|
|
5
|
+
* parameter while a body runs, and the step and work budgets spent so far.
|
|
6
|
+
* Only one callback is ever in scope (a nested one is unrepresentable), so a
|
|
7
|
+
* single slot holds the parameter, and both budgets are shared by every node
|
|
8
|
+
* of the expression.
|
|
9
|
+
*/
|
|
10
|
+
export declare class Env {
|
|
11
|
+
readonly data: IWorkflowDataProxyData;
|
|
12
|
+
param: unknown;
|
|
13
|
+
steps: number;
|
|
14
|
+
work: number;
|
|
15
|
+
readonly parameters: Map<string | number, unknown>;
|
|
16
|
+
constructor(data: IWorkflowDataProxyData);
|
|
17
|
+
charge(units: number): void;
|
|
18
|
+
}
|
|
3
19
|
/**
|
|
4
20
|
* Thrown when a runtime value falls outside what parsing proved statically
|
|
5
21
|
* (a whitelisted string method on a non-string receiver, an operator on an
|
|
@@ -17,5 +33,5 @@ export declare function bounded<T>(value: T): T;
|
|
|
17
33
|
* handler, which rethrows ExpressionErrors and swallows everything else (the
|
|
18
34
|
* chunk then yields undefined). Mirror that exactly.
|
|
19
35
|
*/
|
|
20
|
-
export declare function evalChunk(node: SimpleNode,
|
|
36
|
+
export declare function evalChunk(node: SimpleNode, env: Env): unknown;
|
|
21
37
|
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAgBN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAQnB;;;;;;GAMG;AACH,qBAAa,GAAG;IASH,QAAQ,CAAC,IAAI,EAAE,sBAAsB;IARjD,KAAK,EAAE,OAAO,CAAa;IAE3B,KAAK,SAAK;IAEV,IAAI,SAAK;IAET,QAAQ,CAAC,UAAU,gCAAuC;IAE1D,YAAqB,IAAI,EAAE,sBAAsB,EAAI;IAErD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG1B;CACD;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AA0BjD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQtC;AAmbD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAa7D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EngineFallbackError = void 0;
|
|
3
|
+
exports.EngineFallbackError = exports.Env = void 0;
|
|
4
4
|
exports.bounded = bounded;
|
|
5
5
|
exports.evalChunk = evalChunk;
|
|
6
6
|
const expression_extension_error_1 = require("../../errors/expression-extension.error");
|
|
@@ -11,6 +11,29 @@ const grammar_1 = require("./grammar");
|
|
|
11
11
|
// evalNode reads only fields parseSimple constructed, because those are the
|
|
12
12
|
// only fields that exist. The switch has no default branch: adding a kind to
|
|
13
13
|
// the grammar stops compilation until it is handled here.
|
|
14
|
+
/**
|
|
15
|
+
* One evaluation's state: the data proxy, the value bound to the callback
|
|
16
|
+
* parameter while a body runs, and the step and work budgets spent so far.
|
|
17
|
+
* Only one callback is ever in scope (a nested one is unrepresentable), so a
|
|
18
|
+
* single slot holds the parameter, and both budgets are shared by every node
|
|
19
|
+
* of the expression.
|
|
20
|
+
*/
|
|
21
|
+
class Env {
|
|
22
|
+
data;
|
|
23
|
+
param = undefined;
|
|
24
|
+
steps = 0;
|
|
25
|
+
work = 0;
|
|
26
|
+
parameters = new Map();
|
|
27
|
+
constructor(data) {
|
|
28
|
+
this.data = data;
|
|
29
|
+
}
|
|
30
|
+
charge(units) {
|
|
31
|
+
this.work += units;
|
|
32
|
+
if (this.work > grammar_1.MAX_WORK)
|
|
33
|
+
throw new EngineFallbackError();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.Env = Env;
|
|
14
37
|
/**
|
|
15
38
|
* Thrown when a runtime value falls outside what parsing proved statically
|
|
16
39
|
* (a whitelisted string method on a non-string receiver, an operator on an
|
|
@@ -71,25 +94,26 @@ const binaryOps = Object.freeze({
|
|
|
71
94
|
'%': (l, r) => l % r,
|
|
72
95
|
});
|
|
73
96
|
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
74
|
-
function evalMember(node,
|
|
75
|
-
const object = evalNode(node.object,
|
|
97
|
+
function evalMember(node, env) {
|
|
98
|
+
const object = evalNode(node.object, env);
|
|
76
99
|
if (node.optional && (object === null || object === undefined)) {
|
|
77
100
|
throw chainShortCircuit;
|
|
78
101
|
}
|
|
79
102
|
if (!isIndexable(object)) {
|
|
80
103
|
throw new TypeError(`Cannot read properties of ${(0, grammar_1.toStr)(object)} (reading '${node.key}')`);
|
|
81
104
|
}
|
|
82
|
-
// Below the roots (get-trap proxies, where Object.hasOwn
|
|
83
|
-
// key) the data is plain JSON, so an inherited property is
|
|
84
|
-
// the isolates never see. The engine decides what it yields.
|
|
105
|
+
// Below the roots and node references (get-trap proxies, where Object.hasOwn
|
|
106
|
+
// misreports every key) the data is plain JSON, so an inherited property is
|
|
107
|
+
// a host prototype the isolates never see. The engine decides what it yields.
|
|
85
108
|
const inherited = node.object.kind !== 'root' &&
|
|
109
|
+
node.object.kind !== 'nodeRef' &&
|
|
86
110
|
typeof object === 'object' &&
|
|
87
111
|
node.key in object &&
|
|
88
112
|
!(0, grammar_1.hasOwn)(object, node.key);
|
|
89
113
|
if (inherited) {
|
|
90
114
|
throw new EngineFallbackError();
|
|
91
115
|
}
|
|
92
|
-
const value = object[node.key];
|
|
116
|
+
const value = isParameterRead(node) ? readParameter(object, node.key, env) : object[node.key];
|
|
93
117
|
// Neither crosses an engine boundary the same way twice (the vm bridge
|
|
94
118
|
// drops a nested function but fails on an inherited one; legacy throws),
|
|
95
119
|
// so the configured engine decides rather than this module guessing.
|
|
@@ -98,6 +122,19 @@ function evalMember(node, data) {
|
|
|
98
122
|
}
|
|
99
123
|
return value;
|
|
100
124
|
}
|
|
125
|
+
const isParameterRead = (node) => node.object.kind === 'root' && node.object.name === '$parameter';
|
|
126
|
+
/**
|
|
127
|
+
* A `$parameter` read resolves a nested `=` expression through the proxy on
|
|
128
|
+
* every access, each in its own evaluation with its own budgets. A callback
|
|
129
|
+
* body would resolve it once per element, multiplying the budgets. The vm
|
|
130
|
+
* bridge resolves each parameter once per evaluation; do the same, so nested
|
|
131
|
+
* work is one budget per key the expression names.
|
|
132
|
+
*/
|
|
133
|
+
function readParameter(proxy, key, env) {
|
|
134
|
+
if (!env.parameters.has(key))
|
|
135
|
+
env.parameters.set(key, proxy[key]);
|
|
136
|
+
return env.parameters.get(key);
|
|
137
|
+
}
|
|
101
138
|
/**
|
|
102
139
|
* Parsing only proves the method name; the receiver's type is data. A
|
|
103
140
|
* receiver whose type has no allowlist entry for the method could be
|
|
@@ -133,9 +170,10 @@ function isAllowedArgument(method, arg) {
|
|
|
133
170
|
* interrupted, so the input size is the budget. A receiver above the result
|
|
134
171
|
* cap goes to the engine before any work is done, and the amplifying methods
|
|
135
172
|
* (which can allocate far beyond MAX_RESULT_LENGTH before bounded() sees the
|
|
136
|
-
* result) bail on an upper bound of their output.
|
|
173
|
+
* result) bail on an upper bound of their output. Returns that bound, which
|
|
174
|
+
* the caller charges against the expression's work budget.
|
|
137
175
|
*/
|
|
138
|
-
function
|
|
176
|
+
function preflightSize(receiver, method, args) {
|
|
139
177
|
let upperBound = typeof receiver === 'number' ? 0 : receiver.length;
|
|
140
178
|
if (method === 'concat') {
|
|
141
179
|
for (const arg of args) {
|
|
@@ -172,6 +210,7 @@ function assertPreflightSize(receiver, method, args) {
|
|
|
172
210
|
if (upperBound > grammar_1.MAX_RESULT_LENGTH) {
|
|
173
211
|
throw new EngineFallbackError();
|
|
174
212
|
}
|
|
213
|
+
return upperBound;
|
|
175
214
|
}
|
|
176
215
|
/**
|
|
177
216
|
* Element count of `array.flat(depth)`, stopping early once past the cap
|
|
@@ -258,8 +297,8 @@ function assertConcatWeight(receiver, args) {
|
|
|
258
297
|
if (weight > grammar_1.MAX_RESULT_LENGTH)
|
|
259
298
|
throw new EngineFallbackError();
|
|
260
299
|
}
|
|
261
|
-
function
|
|
262
|
-
const receiver = evalNode(node.receiver,
|
|
300
|
+
function evalReceiver(node, env) {
|
|
301
|
+
const receiver = evalNode(node.receiver, env);
|
|
263
302
|
const receiverMissing = receiver === null || receiver === undefined;
|
|
264
303
|
if (node.optional && receiverMissing) {
|
|
265
304
|
throw chainShortCircuit;
|
|
@@ -267,13 +306,20 @@ function evalCall(node, data) {
|
|
|
267
306
|
if (receiverMissing) {
|
|
268
307
|
throw new TypeError(`Cannot read properties of ${(0, grammar_1.toStr)(receiver)} (reading '${node.method}')`);
|
|
269
308
|
}
|
|
309
|
+
return receiver;
|
|
310
|
+
}
|
|
311
|
+
function evalCall(node, env) {
|
|
312
|
+
const receiver = evalReceiver(node, env);
|
|
313
|
+
if (node.receiver.kind === 'nodeRef') {
|
|
314
|
+
return evalNodeRefCall(receiver, node.method);
|
|
315
|
+
}
|
|
270
316
|
// An own property shadowing the method (an engine-resolved $parameter value
|
|
271
317
|
// can carry one) would take precedence in the engines.
|
|
272
318
|
if ((0, grammar_1.hasOwn)(receiver, node.method)) {
|
|
273
319
|
throw new EngineFallbackError();
|
|
274
320
|
}
|
|
275
321
|
const method = methodFor(receiver, node.method);
|
|
276
|
-
const args = node.args.map((argument) => evalNode(argument,
|
|
322
|
+
const args = node.args.map((argument) => evalNode(argument, env));
|
|
277
323
|
if (!args.every((arg) => isAllowedArgument(node.method, arg))) {
|
|
278
324
|
throw new EngineFallbackError();
|
|
279
325
|
}
|
|
@@ -283,12 +329,61 @@ function evalCall(node, data) {
|
|
|
283
329
|
if (node.method === 'concat')
|
|
284
330
|
assertConcatWeight(receiver, args);
|
|
285
331
|
}
|
|
286
|
-
|
|
332
|
+
env.charge(preflightSize(receiver, node.method, args));
|
|
287
333
|
return bounded(method.apply(receiver, args));
|
|
288
334
|
}
|
|
289
|
-
|
|
335
|
+
/**
|
|
336
|
+
* `some`/`every`/`find`/`filter`/`map` with a callback body. The native
|
|
337
|
+
* method drives the iteration; the body runs per element with the element
|
|
338
|
+
* bound to the parameter, under the shared step and work budgets. map is the one
|
|
339
|
+
* method whose result is new content per element, so it is bounded by the
|
|
340
|
+
* content weight of its results the way concat is bounded by its operands.
|
|
341
|
+
*/
|
|
342
|
+
function evalIterate(node, env) {
|
|
343
|
+
const receiver = evalReceiver(node, env);
|
|
344
|
+
if (!(0, grammar_1.isArray)(receiver) || (0, grammar_1.hasOwn)(receiver, node.method)) {
|
|
345
|
+
throw new EngineFallbackError();
|
|
346
|
+
}
|
|
347
|
+
const method = grammar_1.ITERATOR_NATIVES.get(node.method);
|
|
348
|
+
if (method === undefined)
|
|
349
|
+
throw new EngineFallbackError();
|
|
350
|
+
env.charge(preflightSize(receiver, node.method, []));
|
|
351
|
+
let weight = 0;
|
|
352
|
+
const visit = (element) => {
|
|
353
|
+
if (++env.steps > grammar_1.MAX_STEPS)
|
|
354
|
+
throw new EngineFallbackError();
|
|
355
|
+
env.param = element;
|
|
356
|
+
const result = evalNode(node.body, env);
|
|
357
|
+
if (node.method === 'map') {
|
|
358
|
+
weight += contentWeight(result, grammar_1.MAX_RESULT_LENGTH - weight);
|
|
359
|
+
if (weight > grammar_1.MAX_RESULT_LENGTH)
|
|
360
|
+
throw new EngineFallbackError();
|
|
361
|
+
}
|
|
362
|
+
return result;
|
|
363
|
+
};
|
|
364
|
+
return bounded(method.call(receiver, visit));
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* `first()`, `last()` and `all()` on a node proxy. The proxy hands back a
|
|
368
|
+
* host function that reads run data for the node the reference names, which
|
|
369
|
+
* is what the engines call too (the vm bridge routes it through typed RPC).
|
|
370
|
+
*/
|
|
371
|
+
function evalNodeRefCall(proxy, method) {
|
|
372
|
+
const fn = Reflect.get(proxy, method);
|
|
373
|
+
if (typeof fn !== 'function')
|
|
374
|
+
throw new EngineFallbackError();
|
|
375
|
+
return bounded(fn.call(proxy));
|
|
376
|
+
}
|
|
377
|
+
function evalNodeRef(node, env) {
|
|
378
|
+
if (node.ref === 'input')
|
|
379
|
+
return env.data.$input;
|
|
380
|
+
if (node.ref === 'legacy')
|
|
381
|
+
return env.data.$node[node.name];
|
|
382
|
+
return env.data.$(node.name);
|
|
383
|
+
}
|
|
384
|
+
function evalChain(node, env) {
|
|
290
385
|
try {
|
|
291
|
-
return evalNode(node.expression,
|
|
386
|
+
return evalNode(node.expression, env);
|
|
292
387
|
}
|
|
293
388
|
catch (error) {
|
|
294
389
|
if (error === chainShortCircuit)
|
|
@@ -296,8 +391,8 @@ function evalChain(node, data) {
|
|
|
296
391
|
throw error;
|
|
297
392
|
}
|
|
298
393
|
}
|
|
299
|
-
function evalUnary(node,
|
|
300
|
-
const argument = evalNode(node.argument,
|
|
394
|
+
function evalUnary(node, env) {
|
|
395
|
+
const argument = evalNode(node.argument, env);
|
|
301
396
|
if (node.op === '!') {
|
|
302
397
|
return !argument;
|
|
303
398
|
}
|
|
@@ -306,49 +401,64 @@ function evalUnary(node, data) {
|
|
|
306
401
|
}
|
|
307
402
|
return node.op === '-' ? -(0, grammar_1.toNum)(argument) : (0, grammar_1.toNum)(argument);
|
|
308
403
|
}
|
|
309
|
-
function evalBinary(node,
|
|
310
|
-
const left = evalNode(node.left,
|
|
311
|
-
const right = evalNode(node.right,
|
|
404
|
+
function evalBinary(node, env) {
|
|
405
|
+
const left = evalNode(node.left, env);
|
|
406
|
+
const right = evalNode(node.right, env);
|
|
312
407
|
if (!isPrimitive(left) || !isPrimitive(right)) {
|
|
313
408
|
throw new EngineFallbackError();
|
|
314
409
|
}
|
|
315
|
-
|
|
410
|
+
const result = binaryOps[node.op](left, right);
|
|
411
|
+
// `+` is the one operator that allocates; a body concatenating a payload
|
|
412
|
+
// string per element repeats that allocation.
|
|
413
|
+
if (typeof result === 'string')
|
|
414
|
+
env.charge(result.length);
|
|
415
|
+
return result;
|
|
316
416
|
}
|
|
317
|
-
function evalLogical(node,
|
|
318
|
-
const left = evalNode(node.left,
|
|
417
|
+
function evalLogical(node, env) {
|
|
418
|
+
const left = evalNode(node.left, env);
|
|
319
419
|
switch (node.op) {
|
|
320
420
|
case '&&':
|
|
321
|
-
return left ? evalNode(node.right,
|
|
421
|
+
return left ? evalNode(node.right, env) : left;
|
|
322
422
|
case '||':
|
|
323
|
-
return left ? left : evalNode(node.right,
|
|
423
|
+
return left ? left : evalNode(node.right, env);
|
|
324
424
|
case '??':
|
|
325
|
-
return left ?? evalNode(node.right,
|
|
425
|
+
return left ?? evalNode(node.right, env);
|
|
326
426
|
}
|
|
327
427
|
}
|
|
328
|
-
function evalNode(node,
|
|
428
|
+
function evalNode(node, env) {
|
|
329
429
|
switch (node.kind) {
|
|
330
430
|
case 'literal':
|
|
331
431
|
return node.value;
|
|
332
432
|
case 'root':
|
|
333
|
-
return node.name
|
|
433
|
+
return env.data[node.name];
|
|
434
|
+
case 'nodeRef':
|
|
435
|
+
return evalNodeRef(node, env);
|
|
334
436
|
case 'undefined':
|
|
335
437
|
return undefined;
|
|
336
438
|
case 'member':
|
|
337
|
-
return evalMember(node,
|
|
439
|
+
return evalMember(node, env);
|
|
338
440
|
case 'chain':
|
|
339
|
-
return evalChain(node,
|
|
441
|
+
return evalChain(node, env);
|
|
340
442
|
case 'unary':
|
|
341
|
-
return evalUnary(node,
|
|
443
|
+
return evalUnary(node, env);
|
|
342
444
|
case 'binary':
|
|
343
|
-
return evalBinary(node,
|
|
445
|
+
return evalBinary(node, env);
|
|
344
446
|
case 'logical':
|
|
345
|
-
return evalLogical(node,
|
|
447
|
+
return evalLogical(node, env);
|
|
346
448
|
case 'conditional':
|
|
347
|
-
return evalNode(node.test,
|
|
348
|
-
? evalNode(node.consequent,
|
|
349
|
-
: evalNode(node.alternate,
|
|
449
|
+
return evalNode(node.test, env)
|
|
450
|
+
? evalNode(node.consequent, env)
|
|
451
|
+
: evalNode(node.alternate, env);
|
|
350
452
|
case 'call':
|
|
351
|
-
return evalCall(node,
|
|
453
|
+
return evalCall(node, env);
|
|
454
|
+
case 'array':
|
|
455
|
+
// A literal is built afresh on every evaluation, once per visit in a body.
|
|
456
|
+
env.charge(node.elements.length);
|
|
457
|
+
return node.elements.map((element) => element.value);
|
|
458
|
+
case 'param':
|
|
459
|
+
return env.param;
|
|
460
|
+
case 'iterate':
|
|
461
|
+
return evalIterate(node, env);
|
|
352
462
|
}
|
|
353
463
|
}
|
|
354
464
|
/**
|
|
@@ -356,9 +466,9 @@ function evalNode(node, data) {
|
|
|
356
466
|
* handler, which rethrows ExpressionErrors and swallows everything else (the
|
|
357
467
|
* chunk then yields undefined). Mirror that exactly.
|
|
358
468
|
*/
|
|
359
|
-
function evalChunk(node,
|
|
469
|
+
function evalChunk(node, env) {
|
|
360
470
|
try {
|
|
361
|
-
return evalNode(node,
|
|
471
|
+
return evalNode(node, env);
|
|
362
472
|
}
|
|
363
473
|
catch (error) {
|
|
364
474
|
const rethrow = error instanceof EngineFallbackError ||
|
|
@@ -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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"}
|
|
@@ -9,7 +9,18 @@ export type SimpleNode = {
|
|
|
9
9
|
value: string | number | boolean | null;
|
|
10
10
|
} | {
|
|
11
11
|
kind: 'root';
|
|
12
|
-
name:
|
|
12
|
+
name: DataRoot;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'nodeRef';
|
|
15
|
+
ref: 'input';
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'nodeRef';
|
|
18
|
+
ref: 'node';
|
|
19
|
+
name: string;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'nodeRef';
|
|
22
|
+
ref: 'legacy';
|
|
23
|
+
name: string;
|
|
13
24
|
} | {
|
|
14
25
|
kind: 'undefined';
|
|
15
26
|
} | {
|
|
@@ -45,7 +56,26 @@ export type SimpleNode = {
|
|
|
45
56
|
method: string;
|
|
46
57
|
args: SimpleNode[];
|
|
47
58
|
optional: boolean;
|
|
59
|
+
} | {
|
|
60
|
+
kind: 'array';
|
|
61
|
+
elements: Literal[];
|
|
62
|
+
} | {
|
|
63
|
+
kind: 'param';
|
|
64
|
+
} | {
|
|
65
|
+
kind: 'iterate';
|
|
66
|
+
receiver: SimpleNode;
|
|
67
|
+
method: IteratorMethod;
|
|
68
|
+
body: SimpleNode;
|
|
69
|
+
optional: boolean;
|
|
48
70
|
};
|
|
71
|
+
export type Literal = Extract<SimpleNode, {
|
|
72
|
+
kind: 'literal';
|
|
73
|
+
}>;
|
|
74
|
+
export declare const DATA_ROOTS: readonly ['$json', '$parameter', '$vars', '$binary', '$itemIndex', '$runIndex'];
|
|
75
|
+
export type DataRoot = (typeof DATA_ROOTS)[number];
|
|
76
|
+
export declare const NODE_REF_MEMBERS: Set<string>;
|
|
77
|
+
export declare const LEGACY_NODE_REF_MEMBERS: Set<string>;
|
|
78
|
+
export declare const NODE_REF_METHODS: Set<string>;
|
|
49
79
|
export declare const isArray: (arg: any) => arg is any[];
|
|
50
80
|
export declare const hasOwn: (o: object, v: PropertyKey) => boolean;
|
|
51
81
|
export declare const toStr: StringConstructor;
|
|
@@ -55,8 +85,14 @@ export type NativeMethod = (this: unknown, ...args: unknown[]) => unknown;
|
|
|
55
85
|
export declare const STRING_METHODS: ReadonlyMap<string, NativeMethod>;
|
|
56
86
|
export declare const NUMBER_METHODS: ReadonlyMap<string, NativeMethod>;
|
|
57
87
|
export declare const ARRAY_METHODS: ReadonlyMap<string, NativeMethod>;
|
|
88
|
+
export declare const ITERATOR_METHODS: readonly ['some', 'every', 'find', 'filter', 'map'];
|
|
89
|
+
export type IteratorMethod = (typeof ITERATOR_METHODS)[number];
|
|
90
|
+
export declare const ITERATOR_NATIVES: ReadonlyMap<string, NativeMethod>;
|
|
91
|
+
export declare const RESERVED_NAMES: Set<string>;
|
|
58
92
|
export declare const CALLABLE_METHODS: Set<string>;
|
|
59
93
|
export declare const MAX_RESULT_LENGTH = 1000000;
|
|
94
|
+
export declare const MAX_STEPS = 100000;
|
|
95
|
+
export declare const MAX_WORK: number;
|
|
60
96
|
export declare const MAX_DEPTH = 64;
|
|
61
97
|
export declare const isObj: (value: unknown) => value is Record<string, unknown>;
|
|
62
98
|
export declare const isOneOf: <T extends string>(ops: readonly T[], op: unknown) => op is T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/grammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,eAAO,MAAM,UAAU,YACtB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACM,CAAC;AACX,eAAO,MAAM,SAAS,YAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACjE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAKjD,MAAM,MAAM,UAAU,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/grammar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isOneOf = exports.isObj = exports.MAX_DEPTH = exports.MAX_RESULT_LENGTH = exports.CALLABLE_METHODS = exports.ARRAY_METHODS = exports.NUMBER_METHODS = exports.STRING_METHODS = exports.clone = exports.toNum = exports.toStr = exports.hasOwn = exports.isArray = exports.UNARY_OPS = exports.BINARY_OPS = void 0;
|
|
3
|
+
exports.isOneOf = exports.isObj = exports.MAX_DEPTH = exports.MAX_WORK = exports.MAX_STEPS = exports.MAX_RESULT_LENGTH = exports.CALLABLE_METHODS = exports.RESERVED_NAMES = exports.ITERATOR_NATIVES = exports.ITERATOR_METHODS = exports.ARRAY_METHODS = exports.NUMBER_METHODS = exports.STRING_METHODS = exports.clone = exports.toNum = exports.toStr = exports.hasOwn = exports.isArray = exports.NODE_REF_METHODS = exports.LEGACY_NODE_REF_MEMBERS = exports.NODE_REF_MEMBERS = exports.DATA_ROOTS = exports.UNARY_OPS = exports.BINARY_OPS = void 0;
|
|
4
4
|
// The closed subset grammar, its operator and method allowlists, and the
|
|
5
5
|
// limits the parser and the evaluator share. See index.ts for the overview.
|
|
6
6
|
exports.BINARY_OPS = [
|
|
@@ -19,8 +19,7 @@ exports.BINARY_OPS = [
|
|
|
19
19
|
'%',
|
|
20
20
|
];
|
|
21
21
|
exports.UNARY_OPS = ['!', '-', '+'];
|
|
22
|
-
//
|
|
23
|
-
// parseIdentifier). More roots are CAT-4697. `$now`/`$today` are excluded on
|
|
22
|
+
// Data roots: plain reads off the data proxy. `$now`/`$today` are excluded on
|
|
24
23
|
// purpose: they are Luxon DateTimes whose methods would make every useful
|
|
25
24
|
// expression on them a CallExpression anyway.
|
|
26
25
|
//
|
|
@@ -28,6 +27,27 @@ exports.UNARY_OPS = ['!', '-', '+'];
|
|
|
28
27
|
// re-entering resolveSimpleParameterValue - a nested non-simple value simply
|
|
29
28
|
// takes the engine path there (under lazy acquisition, creating the bridge on
|
|
30
29
|
// demand).
|
|
30
|
+
//
|
|
31
|
+
// Note on $binary: the proxy strips the `data` field from every entry, so a
|
|
32
|
+
// whole-value read never carries a payload.
|
|
33
|
+
exports.DATA_ROOTS = [
|
|
34
|
+
'$json',
|
|
35
|
+
'$parameter',
|
|
36
|
+
'$vars',
|
|
37
|
+
'$binary',
|
|
38
|
+
'$itemIndex',
|
|
39
|
+
'$runIndex',
|
|
40
|
+
];
|
|
41
|
+
// Node references: `$('Name')` and `$input` resolve to the node proxy, the
|
|
42
|
+
// legacy `$node['Name']` to the item-level proxy. A nodeRef is only ever
|
|
43
|
+
// built as the object of an allowlisted member (NODE_REF_MEMBERS) or the
|
|
44
|
+
// receiver of an allowlisted zero-argument call (NODE_REF_METHODS), so a bare
|
|
45
|
+
// reference is unrepresentable. Evaluation goes through the same host proxy
|
|
46
|
+
// the engines call, paired-item resolution included, which is what keeps the
|
|
47
|
+
// two paths in parity; the proxy's ExpressionErrors propagate unchanged.
|
|
48
|
+
exports.NODE_REF_MEMBERS = new Set(['item']);
|
|
49
|
+
exports.LEGACY_NODE_REF_MEMBERS = new Set(['json', 'binary']);
|
|
50
|
+
exports.NODE_REF_METHODS = new Set(['first', 'last', 'all']);
|
|
31
51
|
// Intrinsics are captured at import so a later patch to a prototype or a
|
|
32
52
|
// global (a polyfill, a community package) does not change what the native
|
|
33
53
|
// path runs; the isolates never see such a patch either.
|
|
@@ -51,9 +71,9 @@ const captureMethods = (proto, names) => {
|
|
|
51
71
|
// natives pass through untouched) - pinned by a test in the parity corpus.
|
|
52
72
|
// The receiver's type is only known at runtime: a receiver whose type has no
|
|
53
73
|
// allowlist entry for the method makes the evaluation bail to the engine
|
|
54
|
-
// (EngineFallbackError below).
|
|
55
|
-
//
|
|
56
|
-
//
|
|
74
|
+
// (EngineFallbackError below). Regex and function arguments are
|
|
75
|
+
// unrepresentable: those argument nodes decline parsing. The one callback
|
|
76
|
+
// form is ITERATOR_METHODS below.
|
|
57
77
|
exports.STRING_METHODS = captureMethods(String.prototype, [
|
|
58
78
|
'toUpperCase',
|
|
59
79
|
'toLowerCase',
|
|
@@ -92,6 +112,17 @@ exports.ARRAY_METHODS = captureMethods(Array.prototype, [
|
|
|
92
112
|
'toSorted',
|
|
93
113
|
'toReversed',
|
|
94
114
|
]);
|
|
115
|
+
// Array methods that take one callback. The callback is a single-parameter
|
|
116
|
+
// arrow function with an expression body in the same closed grammar; the
|
|
117
|
+
// parameter is the only name it adds, and a nested callback declines. These
|
|
118
|
+
// are the only calls where the interpreter runs an expression per element,
|
|
119
|
+
// so they are a grammar kind of their own (iterate), under MAX_STEPS.
|
|
120
|
+
exports.ITERATOR_METHODS = ['some', 'every', 'find', 'filter', 'map'];
|
|
121
|
+
exports.ITERATOR_NATIVES = captureMethods(Array.prototype, [...exports.ITERATOR_METHODS]);
|
|
122
|
+
// A callback parameter may not take one of these names: the body would then
|
|
123
|
+
// read the parameter where this grammar reads the root. `undefined` is a
|
|
124
|
+
// legal parameter name in JS; here it is a literal.
|
|
125
|
+
exports.RESERVED_NAMES = new Set([...exports.DATA_ROOTS, '$input', '$node', '$', 'undefined']);
|
|
95
126
|
exports.CALLABLE_METHODS = new Set([
|
|
96
127
|
...exports.STRING_METHODS.keys(),
|
|
97
128
|
...exports.NUMBER_METHODS.keys(),
|
|
@@ -102,6 +133,16 @@ exports.CALLABLE_METHODS = new Set([
|
|
|
102
133
|
// engine so those limits apply (nested replaceAll('', ...) or concat chains
|
|
103
134
|
// can otherwise expand without bound on the main thread).
|
|
104
135
|
exports.MAX_RESULT_LENGTH = 1_000_000;
|
|
136
|
+
// Callback body evaluations one expression may run, across all its iterate
|
|
137
|
+
// nodes. The receiver cap alone would let a body with its own allocation
|
|
138
|
+
// (a replaceAll per element) repeat a million times on the main thread.
|
|
139
|
+
exports.MAX_STEPS = 100_000;
|
|
140
|
+
// Characters one expression may put through its method calls and string
|
|
141
|
+
// concatenations in total. The step cap bounds visits, not the work one
|
|
142
|
+
// visit does (a body can scan a MAX_RESULT_LENGTH string per element); this
|
|
143
|
+
// bounds the product, in units the interpreter already computes, so it does
|
|
144
|
+
// not depend on the clock or the machine.
|
|
145
|
+
exports.MAX_WORK = 10 * exports.MAX_RESULT_LENGTH;
|
|
105
146
|
// Nesting depth of the subset grammar. Parsing and evaluation both recurse
|
|
106
147
|
// once per level, so this keeps a pathological expression off the host stack;
|
|
107
148
|
// real expressions are a handful of levels deep.
|