n8n-workflow 2.42.1 → 2.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/common/get-runnable-nodes.d.ts +31 -0
- package/dist/cjs/common/get-runnable-nodes.d.ts.map +1 -0
- package/dist/cjs/common/get-runnable-nodes.js +97 -0
- package/dist/cjs/common/get-runnable-nodes.js.map +1 -0
- package/dist/cjs/common/index.d.ts +1 -0
- package/dist/cjs/common/index.d.ts.map +1 -1
- package/dist/cjs/common/index.js +1 -0
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/constants.d.ts +1 -0
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +4 -3
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/errors/abstract/execution-base.error.d.ts +1 -1
- package/dist/cjs/errors/abstract/execution-base.error.d.ts.map +1 -1
- package/dist/cjs/errors/abstract/execution-base.error.js +2 -2
- package/dist/cjs/errors/abstract/execution-base.error.js.map +1 -1
- package/dist/cjs/errors/db-connection-timeout-error.d.ts +1 -1
- package/dist/cjs/errors/db-connection-timeout-error.d.ts.map +1 -1
- package/dist/cjs/errors/db-connection-timeout-error.js +2 -2
- package/dist/cjs/errors/db-connection-timeout-error.js.map +1 -1
- package/dist/cjs/errors/index.d.ts +1 -5
- package/dist/cjs/errors/index.d.ts.map +1 -1
- package/dist/cjs/errors/index.js +7 -11
- package/dist/cjs/errors/index.js.map +1 -1
- package/dist/cjs/errors/node-operation.error.js +2 -2
- package/dist/cjs/errors/node-operation.error.js.map +1 -1
- package/dist/cjs/errors/node-version-not-found.error.d.ts +1 -1
- package/dist/cjs/errors/node-version-not-found.error.d.ts.map +1 -1
- package/dist/cjs/errors/node-version-not-found.error.js +2 -2
- package/dist/cjs/errors/node-version-not-found.error.js.map +1 -1
- package/dist/cjs/errors/trigger-close.error.d.ts +1 -1
- package/dist/cjs/errors/trigger-close.error.d.ts.map +1 -1
- package/dist/cjs/errors/trigger-close.error.js +2 -2
- package/dist/cjs/errors/trigger-close.error.js.map +1 -1
- package/dist/cjs/execution-context.d.ts +14 -0
- package/dist/cjs/execution-context.d.ts.map +1 -1
- package/dist/cjs/execution-context.js +21 -0
- package/dist/cjs/execution-context.js.map +1 -1
- package/dist/cjs/expression.d.ts +6 -0
- package/dist/cjs/expression.d.ts.map +1 -1
- package/dist/cjs/expression.js +22 -7
- package/dist/cjs/expression.js.map +1 -1
- package/dist/cjs/expressions/native-evaluation/evaluator.d.ts +21 -0
- package/dist/cjs/expressions/native-evaluation/evaluator.d.ts.map +1 -0
- package/dist/cjs/expressions/native-evaluation/evaluator.js +372 -0
- package/dist/cjs/expressions/native-evaluation/evaluator.js.map +1 -0
- package/dist/cjs/expressions/native-evaluation/grammar.d.ts +63 -0
- package/dist/cjs/expressions/native-evaluation/grammar.d.ts.map +1 -0
- package/dist/cjs/expressions/native-evaluation/grammar.js +113 -0
- package/dist/cjs/expressions/native-evaluation/grammar.js.map +1 -0
- package/dist/cjs/expressions/native-evaluation/index.d.ts +17 -0
- package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -0
- package/dist/cjs/expressions/native-evaluation/index.js +144 -0
- package/dist/cjs/expressions/native-evaluation/index.js.map +1 -0
- package/dist/cjs/expressions/native-evaluation/parser.d.ts +6 -0
- package/dist/cjs/expressions/native-evaluation/parser.d.ts.map +1 -0
- package/dist/cjs/expressions/native-evaluation/parser.js +159 -0
- package/dist/cjs/expressions/native-evaluation/parser.js.map +1 -0
- package/dist/cjs/extensions/date-extensions.js +2 -2
- package/dist/cjs/extensions/number-extensions.js +2 -2
- package/dist/cjs/extensions/string-extensions.js +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces.d.ts +27 -6
- package/dist/cjs/interfaces.d.ts.map +1 -1
- package/dist/cjs/interfaces.js +3 -0
- package/dist/cjs/interfaces.js.map +1 -1
- package/dist/cjs/native-methods/array.methods.js +4 -4
- package/dist/cjs/node-helpers.d.ts +13 -1
- package/dist/cjs/node-helpers.d.ts.map +1 -1
- package/dist/cjs/node-helpers.js +3 -1
- package/dist/cjs/node-helpers.js.map +1 -1
- package/dist/cjs/node-parameters/filter-parameter.d.ts +1 -1
- package/dist/cjs/node-parameters/filter-parameter.d.ts.map +1 -1
- package/dist/cjs/node-parameters/filter-parameter.js +2 -2
- package/dist/cjs/node-parameters/filter-parameter.js.map +1 -1
- package/dist/cjs/node-validation.d.ts +17 -5
- package/dist/cjs/node-validation.d.ts.map +1 -1
- package/dist/cjs/node-validation.js +39 -16
- package/dist/cjs/node-validation.js.map +1 -1
- package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts +13 -0
- package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
- package/dist/cjs/run-execution-data/run-execution-data.v1.js.map +1 -1
- package/dist/cjs/run-execution-data-factory.d.ts +1 -0
- package/dist/cjs/run-execution-data-factory.d.ts.map +1 -1
- package/dist/cjs/run-execution-data-factory.js +1 -0
- package/dist/cjs/run-execution-data-factory.js.map +1 -1
- package/dist/cjs/sub-workflow-output.d.ts +13 -1
- package/dist/cjs/sub-workflow-output.d.ts.map +1 -1
- package/dist/cjs/sub-workflow-output.js +64 -0
- package/dist/cjs/sub-workflow-output.js.map +1 -1
- package/dist/cjs/utils.js +2 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/webhook-description-fields.d.ts +31 -0
- package/dist/cjs/webhook-description-fields.d.ts.map +1 -1
- package/dist/cjs/webhook-description-fields.js +34 -0
- package/dist/cjs/webhook-description-fields.js.map +1 -1
- package/dist/esm/common/get-runnable-nodes.d.ts +31 -0
- package/dist/esm/common/get-runnable-nodes.d.ts.map +1 -0
- package/dist/esm/common/get-runnable-nodes.js +93 -0
- package/dist/esm/common/get-runnable-nodes.js.map +1 -0
- package/dist/esm/common/index.d.ts +1 -0
- package/dist/esm/common/index.d.ts.map +1 -1
- package/dist/esm/common/index.js +1 -0
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/constants.d.ts +1 -0
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +1 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/errors/abstract/execution-base.error.d.ts +1 -1
- package/dist/esm/errors/abstract/execution-base.error.d.ts.map +1 -1
- package/dist/esm/errors/abstract/execution-base.error.js +1 -1
- package/dist/esm/errors/abstract/execution-base.error.js.map +1 -1
- package/dist/esm/errors/db-connection-timeout-error.d.ts +1 -1
- package/dist/esm/errors/db-connection-timeout-error.d.ts.map +1 -1
- package/dist/esm/errors/db-connection-timeout-error.js +1 -1
- package/dist/esm/errors/db-connection-timeout-error.js.map +1 -1
- package/dist/esm/errors/index.d.ts +1 -5
- package/dist/esm/errors/index.d.ts.map +1 -1
- package/dist/esm/errors/index.js +1 -5
- package/dist/esm/errors/index.js.map +1 -1
- package/dist/esm/errors/node-operation.error.js +1 -1
- package/dist/esm/errors/node-operation.error.js.map +1 -1
- package/dist/esm/errors/node-version-not-found.error.d.ts +1 -1
- package/dist/esm/errors/node-version-not-found.error.d.ts.map +1 -1
- package/dist/esm/errors/node-version-not-found.error.js +1 -1
- package/dist/esm/errors/node-version-not-found.error.js.map +1 -1
- package/dist/esm/errors/trigger-close.error.d.ts +1 -1
- package/dist/esm/errors/trigger-close.error.d.ts.map +1 -1
- package/dist/esm/errors/trigger-close.error.js +1 -1
- package/dist/esm/errors/trigger-close.error.js.map +1 -1
- package/dist/esm/execution-context.d.ts +14 -0
- package/dist/esm/execution-context.d.ts.map +1 -1
- package/dist/esm/execution-context.js +20 -0
- package/dist/esm/execution-context.js.map +1 -1
- package/dist/esm/expression.d.ts +6 -0
- package/dist/esm/expression.d.ts.map +1 -1
- package/dist/esm/expression.js +22 -7
- package/dist/esm/expression.js.map +1 -1
- package/dist/esm/expressions/native-evaluation/evaluator.d.ts +21 -0
- package/dist/esm/expressions/native-evaluation/evaluator.d.ts.map +1 -0
- package/dist/esm/expressions/native-evaluation/evaluator.js +366 -0
- package/dist/esm/expressions/native-evaluation/evaluator.js.map +1 -0
- package/dist/esm/expressions/native-evaluation/grammar.d.ts +63 -0
- package/dist/esm/expressions/native-evaluation/grammar.d.ts.map +1 -0
- package/dist/esm/expressions/native-evaluation/grammar.js +108 -0
- package/dist/esm/expressions/native-evaluation/grammar.js.map +1 -0
- package/dist/esm/expressions/native-evaluation/index.d.ts +17 -0
- package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -0
- package/dist/esm/expressions/native-evaluation/index.js +137 -0
- package/dist/esm/expressions/native-evaluation/index.js.map +1 -0
- package/dist/esm/expressions/native-evaluation/parser.d.ts +6 -0
- package/dist/esm/expressions/native-evaluation/parser.d.ts.map +1 -0
- package/dist/esm/expressions/native-evaluation/parser.js +156 -0
- package/dist/esm/expressions/native-evaluation/parser.js.map +1 -0
- package/dist/esm/extensions/date-extensions.js +2 -2
- package/dist/esm/extensions/number-extensions.js +2 -2
- package/dist/esm/extensions/string-extensions.js +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces.d.ts +27 -6
- package/dist/esm/interfaces.d.ts.map +1 -1
- package/dist/esm/interfaces.js +3 -0
- package/dist/esm/interfaces.js.map +1 -1
- package/dist/esm/native-methods/array.methods.js +4 -4
- package/dist/esm/node-helpers.d.ts +13 -1
- package/dist/esm/node-helpers.d.ts.map +1 -1
- package/dist/esm/node-helpers.js +3 -1
- package/dist/esm/node-helpers.js.map +1 -1
- package/dist/esm/node-parameters/filter-parameter.d.ts +1 -1
- package/dist/esm/node-parameters/filter-parameter.d.ts.map +1 -1
- package/dist/esm/node-parameters/filter-parameter.js +1 -1
- package/dist/esm/node-parameters/filter-parameter.js.map +1 -1
- package/dist/esm/node-validation.d.ts +17 -5
- package/dist/esm/node-validation.d.ts.map +1 -1
- package/dist/esm/node-validation.js +39 -16
- package/dist/esm/node-validation.js.map +1 -1
- package/dist/esm/run-execution-data/run-execution-data.v1.d.ts +13 -0
- package/dist/esm/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
- package/dist/esm/run-execution-data/run-execution-data.v1.js.map +1 -1
- package/dist/esm/run-execution-data-factory.d.ts +1 -0
- package/dist/esm/run-execution-data-factory.d.ts.map +1 -1
- package/dist/esm/run-execution-data-factory.js +1 -0
- package/dist/esm/run-execution-data-factory.js.map +1 -1
- package/dist/esm/sub-workflow-output.d.ts +13 -1
- package/dist/esm/sub-workflow-output.d.ts.map +1 -1
- package/dist/esm/sub-workflow-output.js +60 -0
- package/dist/esm/sub-workflow-output.js.map +1 -1
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/dist/esm/utils.js +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/webhook-description-fields.d.ts +31 -0
- package/dist/esm/webhook-description-fields.d.ts.map +1 -1
- package/dist/esm/webhook-description-fields.js +33 -0
- package/dist/esm/webhook-description-fields.js.map +1 -1
- package/package.json +15 -14
- package/dist/cjs/errors/base/base.error.d.ts +0 -26
- package/dist/cjs/errors/base/base.error.d.ts.map +0 -1
- package/dist/cjs/errors/base/base.error.js +0 -43
- package/dist/cjs/errors/base/base.error.js.map +0 -1
- package/dist/cjs/errors/base/operational.error.d.ts +0 -16
- package/dist/cjs/errors/base/operational.error.d.ts.map +0 -1
- package/dist/cjs/errors/base/operational.error.js +0 -19
- package/dist/cjs/errors/base/operational.error.js.map +0 -1
- package/dist/cjs/errors/base/unexpected.error.d.ts +0 -16
- package/dist/cjs/errors/base/unexpected.error.d.ts.map +0 -1
- package/dist/cjs/errors/base/unexpected.error.js +0 -19
- package/dist/cjs/errors/base/unexpected.error.js.map +0 -1
- package/dist/cjs/errors/base/user.error.d.ts +0 -18
- package/dist/cjs/errors/base/user.error.d.ts.map +0 -1
- package/dist/cjs/errors/base/user.error.js +0 -19
- package/dist/cjs/errors/base/user.error.js.map +0 -1
- package/dist/esm/errors/base/base.error.d.ts +0 -26
- package/dist/esm/errors/base/base.error.d.ts.map +0 -1
- package/dist/esm/errors/base/base.error.js +0 -36
- package/dist/esm/errors/base/base.error.js.map +0 -1
- package/dist/esm/errors/base/operational.error.d.ts +0 -16
- package/dist/esm/errors/base/operational.error.d.ts.map +0 -1
- package/dist/esm/errors/base/operational.error.js +0 -15
- package/dist/esm/errors/base/operational.error.js.map +0 -1
- package/dist/esm/errors/base/unexpected.error.d.ts +0 -16
- package/dist/esm/errors/base/unexpected.error.d.ts.map +0 -1
- package/dist/esm/errors/base/unexpected.error.js +0 -15
- package/dist/esm/errors/base/unexpected.error.js.map +0 -1
- package/dist/esm/errors/base/user.error.d.ts +0 -18
- package/dist/esm/errors/base/user.error.d.ts.map +0 -1
- package/dist/esm/errors/base/user.error.js +0 -15
- package/dist/esm/errors/base/user.error.js.map +0 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { getParsedExpression } from '@n8n/tournament';
|
|
2
|
+
import { LruCache } from '@n8n/utils/lru-cache';
|
|
3
|
+
import { EngineFallbackError, bounded, evalChunk } from './evaluator';
|
|
4
|
+
import { MAX_RESULT_LENGTH, clone, isObj } from './grammar';
|
|
5
|
+
import { parseSimple } from './parser';
|
|
6
|
+
export { CALLABLE_METHODS, MAX_RESULT_LENGTH } from './grammar';
|
|
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 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 parseSimple(statement.expression);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function compile(expression) {
|
|
31
|
+
let parsed;
|
|
32
|
+
try {
|
|
33
|
+
parsed = 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
|
+
for (const chunk of parsed) {
|
|
41
|
+
if (chunk.type === 'text') {
|
|
42
|
+
chunks.push(chunk);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const node = compileChunk(chunk);
|
|
46
|
+
if (node === null)
|
|
47
|
+
return null;
|
|
48
|
+
chunks.push({ type: 'code', node });
|
|
49
|
+
}
|
|
50
|
+
// Mirrors the branch condition in ExpressionBuilder.getExpressionCode.
|
|
51
|
+
const isWholeValue = chunks.length === 2 && chunks[0].type === 'text' && chunks[0].text === '';
|
|
52
|
+
return { chunks, isWholeValue };
|
|
53
|
+
}
|
|
54
|
+
function getCompiled(expression) {
|
|
55
|
+
if (expression.length > MAX_CACHED_EXPRESSION_LENGTH)
|
|
56
|
+
return compile(expression);
|
|
57
|
+
let compiled = cache.get(expression);
|
|
58
|
+
if (compiled === undefined) {
|
|
59
|
+
compiled = compile(expression);
|
|
60
|
+
cache.set(expression, compiled);
|
|
61
|
+
}
|
|
62
|
+
return compiled;
|
|
63
|
+
}
|
|
64
|
+
/** Does the expression (leading `=` stripped) fit the native subset? */
|
|
65
|
+
export function isNativelyEvaluable(expression) {
|
|
66
|
+
return getCompiled(expression) !== null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Evaluate an expression (with the leading `=` already stripped) in-process.
|
|
70
|
+
* Returns `{ handled: false }` when the expression is outside the subset or a
|
|
71
|
+
* runtime value fell outside what parsing proved; the caller must then run
|
|
72
|
+
* the regular pipeline.
|
|
73
|
+
*/
|
|
74
|
+
export function evaluateNatively(expression, data) {
|
|
75
|
+
const compiled = getCompiled(expression);
|
|
76
|
+
if (compiled === null)
|
|
77
|
+
return { handled: false };
|
|
78
|
+
try {
|
|
79
|
+
const value = copyResult(evalCompiled(compiled, data));
|
|
80
|
+
return { handled: true, value };
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (error instanceof EngineFallbackError)
|
|
84
|
+
return { handled: false };
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// The engines hand back a copy of any object they return; a whole-value read
|
|
89
|
+
// like `{{ $json.body }}` here would hand back the live execution data, which
|
|
90
|
+
// callers then mutate in place (cleanupParameterData). Match the engines.
|
|
91
|
+
// The `$parameter` root is a Proxy and cannot be cloned: the engine owns it.
|
|
92
|
+
function copyResult(value) {
|
|
93
|
+
if (!isObj(value))
|
|
94
|
+
return value;
|
|
95
|
+
try {
|
|
96
|
+
return clone(value);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
throw new EngineFallbackError();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function evalCompiled(compiled, data) {
|
|
103
|
+
if (compiled.isWholeValue) {
|
|
104
|
+
const code = compiled.chunks[1];
|
|
105
|
+
// isWholeValue guarantees chunks = [text '', code]
|
|
106
|
+
return code.type === 'code' ? evalChunk(code.node, data) : '';
|
|
107
|
+
}
|
|
108
|
+
// String concatenation, mirroring tmpl semantics: falsy chunk values other
|
|
109
|
+
// than 0/false render as '', parts are joined with String() coercion.
|
|
110
|
+
const parts = [];
|
|
111
|
+
let length = 0;
|
|
112
|
+
for (const chunk of compiled.chunks) {
|
|
113
|
+
if (chunk.type === 'text') {
|
|
114
|
+
if (chunk.text !== '')
|
|
115
|
+
parts.push(chunk.text);
|
|
116
|
+
length += chunk.text.length;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
const value = evalChunk(chunk.node, data);
|
|
120
|
+
// An object here would coerce through its toString on the host.
|
|
121
|
+
if (isObj(value)) {
|
|
122
|
+
throw new EngineFallbackError();
|
|
123
|
+
}
|
|
124
|
+
const part = value || value === 0 || value === false ? value : '';
|
|
125
|
+
parts.push(part);
|
|
126
|
+
length += typeof part === 'string' ? part.length : 1;
|
|
127
|
+
// Bound before the join allocates the combined string.
|
|
128
|
+
if (length > MAX_RESULT_LENGTH)
|
|
129
|
+
throw new EngineFallbackError();
|
|
130
|
+
}
|
|
131
|
+
// Single-chunk expressions (plain text, or a lone blank `{{}}`) return the
|
|
132
|
+
// part as-is; everything else joins to a string.
|
|
133
|
+
if (compiled.chunks.length < 2)
|
|
134
|
+
return parts[0] ?? '';
|
|
135
|
+
return bounded(parts.join(''));
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExpressionKind, SpreadElementKind } from 'ast-types/lib/gen/kinds';
|
|
2
|
+
import { type SimpleNode } from './grammar';
|
|
3
|
+
type AstNode = ExpressionKind | SpreadElementKind;
|
|
4
|
+
export declare function parseSimple(node: AstNode, depth?: number): SimpleNode | null;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +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,EAMN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAcnB,KAAK,OAAO,GAAG,cAAc,GAAG,iBAAiB,CAAC;AA0JlD,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,UAAU,GAAG,IAAI,CA4BvE"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { BINARY_OPS, CALLABLE_METHODS, MAX_DEPTH, UNARY_OPS, isOneOf, } from './grammar';
|
|
2
|
+
import { isSafeObjectProperty } from '../../utils';
|
|
3
|
+
function parseLiteral(node) {
|
|
4
|
+
// Regex literals stay on the engine (backtracking blowup has no isolate
|
|
5
|
+
// timeout here).
|
|
6
|
+
if ('regex' in node && node.regex)
|
|
7
|
+
return null;
|
|
8
|
+
// BigInt literals carry `bigint` metadata; `value` is null where BigInt
|
|
9
|
+
// is unsupported, so decline on the metadata rather than the value.
|
|
10
|
+
if ('bigint' in node && node.bigint)
|
|
11
|
+
return null;
|
|
12
|
+
const value = node.value;
|
|
13
|
+
const isPrimitiveLiteral = value === null ||
|
|
14
|
+
typeof value === 'string' ||
|
|
15
|
+
typeof value === 'number' ||
|
|
16
|
+
typeof value === 'boolean';
|
|
17
|
+
if (!isPrimitiveLiteral)
|
|
18
|
+
return null;
|
|
19
|
+
return { kind: 'literal', value };
|
|
20
|
+
}
|
|
21
|
+
function parseIdentifier(node) {
|
|
22
|
+
if (node.name === '$json' || node.name === '$parameter') {
|
|
23
|
+
return { kind: 'root', name: node.name };
|
|
24
|
+
}
|
|
25
|
+
if (node.name === 'undefined') {
|
|
26
|
+
return { kind: 'undefined' };
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
// Only static keys are representable. Dynamic keys ($json[$json.key]) need
|
|
31
|
+
// the sandbox's PrototypeSanitizer, so they stay on the engine. String keys
|
|
32
|
+
// are vetted at parse time (isSafeObjectProperty), which keeps prototype
|
|
33
|
+
// names unrepresentable. An own-property-only lookup would make that vetting
|
|
34
|
+
// unnecessary, but $json/$parameter are get-trap proxies for which
|
|
35
|
+
// Object.hasOwn misreports every key, so the parse-time vet is the boundary.
|
|
36
|
+
function parseMember(node, parse) {
|
|
37
|
+
const object = parse(node.object);
|
|
38
|
+
if (object === null)
|
|
39
|
+
return null;
|
|
40
|
+
const key = node.computed === true ? parseComputedKey(node.property) : parseStaticKey(node.property);
|
|
41
|
+
if (key === null)
|
|
42
|
+
return null;
|
|
43
|
+
return { kind: 'member', object, key, optional: node.optional === true };
|
|
44
|
+
}
|
|
45
|
+
// `a[0]` or `a['b']`: the key is a literal.
|
|
46
|
+
function parseComputedKey(property) {
|
|
47
|
+
if (property.type !== 'Literal')
|
|
48
|
+
return null;
|
|
49
|
+
const value = property.value;
|
|
50
|
+
if (typeof value === 'number') {
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
if (typeof value === 'string' && isSafeObjectProperty(value)) {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
// `a.b`: the key is an identifier.
|
|
59
|
+
function parseStaticKey(property) {
|
|
60
|
+
if (property.type !== 'Identifier' || !isSafeObjectProperty(property.name))
|
|
61
|
+
return null;
|
|
62
|
+
return property.name;
|
|
63
|
+
}
|
|
64
|
+
function parseCall(node, parse) {
|
|
65
|
+
const callee = node.callee;
|
|
66
|
+
if (callee.type !== 'MemberExpression' || callee.computed === true)
|
|
67
|
+
return null;
|
|
68
|
+
const property = callee.property;
|
|
69
|
+
if (property.type !== 'Identifier' || !CALLABLE_METHODS.has(property.name))
|
|
70
|
+
return null;
|
|
71
|
+
const receiver = parse(callee.object);
|
|
72
|
+
if (receiver === null)
|
|
73
|
+
return null;
|
|
74
|
+
const args = [];
|
|
75
|
+
for (const argument of node.arguments) {
|
|
76
|
+
const parsed = parse(argument);
|
|
77
|
+
if (parsed === null)
|
|
78
|
+
return null;
|
|
79
|
+
args.push(parsed);
|
|
80
|
+
}
|
|
81
|
+
// `a?.m()` marks the member optional, `a.m?.()` marks the call optional;
|
|
82
|
+
// both short-circuit on a missing receiver, so one flag carries both.
|
|
83
|
+
const optional = node.optional === true || callee.optional === true;
|
|
84
|
+
return { kind: 'call', receiver, method: property.name, args, optional };
|
|
85
|
+
}
|
|
86
|
+
// The wrapper esprima puts around every optional chain. It is the boundary an
|
|
87
|
+
// optional hop short-circuits to: `a?.b.c` yields undefined for a missing
|
|
88
|
+
// `a`, while `(a?.b).c` throws. Parentheses end the chain in the AST too.
|
|
89
|
+
function parseChain(node, parse) {
|
|
90
|
+
const expression = parse(node.expression);
|
|
91
|
+
if (expression === null)
|
|
92
|
+
return null;
|
|
93
|
+
return { kind: 'chain', expression };
|
|
94
|
+
}
|
|
95
|
+
function parseBranches(node, parse) {
|
|
96
|
+
const test = parse(node.test);
|
|
97
|
+
const consequent = parse(node.consequent);
|
|
98
|
+
const alternate = parse(node.alternate);
|
|
99
|
+
if (test === null || consequent === null || alternate === null)
|
|
100
|
+
return null;
|
|
101
|
+
return { kind: 'conditional', test, consequent, alternate };
|
|
102
|
+
}
|
|
103
|
+
function parseUnary(node, parse) {
|
|
104
|
+
if (node.prefix !== true || !isOneOf(UNARY_OPS, node.operator))
|
|
105
|
+
return null;
|
|
106
|
+
const argument = parse(node.argument);
|
|
107
|
+
if (argument === null)
|
|
108
|
+
return null;
|
|
109
|
+
return { kind: 'unary', op: node.operator, argument };
|
|
110
|
+
}
|
|
111
|
+
function parseBinary(node, parse) {
|
|
112
|
+
if (!isOneOf(BINARY_OPS, node.operator))
|
|
113
|
+
return null;
|
|
114
|
+
const left = parse(node.left);
|
|
115
|
+
const right = parse(node.right);
|
|
116
|
+
if (left === null || right === null)
|
|
117
|
+
return null;
|
|
118
|
+
return { kind: 'binary', op: node.operator, left, right };
|
|
119
|
+
}
|
|
120
|
+
function parseLogical(node, parse) {
|
|
121
|
+
const left = parse(node.left);
|
|
122
|
+
const right = parse(node.right);
|
|
123
|
+
if (left === null || right === null)
|
|
124
|
+
return null;
|
|
125
|
+
return { kind: 'logical', op: node.operator, left, right };
|
|
126
|
+
}
|
|
127
|
+
export function parseSimple(node, depth = 0) {
|
|
128
|
+
if (depth > MAX_DEPTH)
|
|
129
|
+
return null;
|
|
130
|
+
const parse = (child) => parseSimple(child, depth + 1);
|
|
131
|
+
switch (node.type) {
|
|
132
|
+
case 'Literal':
|
|
133
|
+
return parseLiteral(node);
|
|
134
|
+
case 'Identifier':
|
|
135
|
+
return parseIdentifier(node);
|
|
136
|
+
case 'MemberExpression':
|
|
137
|
+
return parseMember(node, parse);
|
|
138
|
+
case 'ChainExpression':
|
|
139
|
+
return parseChain(node, parse);
|
|
140
|
+
case 'UnaryExpression':
|
|
141
|
+
return parseUnary(node, parse);
|
|
142
|
+
case 'BinaryExpression':
|
|
143
|
+
return parseBinary(node, parse);
|
|
144
|
+
case 'LogicalExpression':
|
|
145
|
+
return parseLogical(node, parse);
|
|
146
|
+
case 'ConditionalExpression':
|
|
147
|
+
return parseBranches(node, parse);
|
|
148
|
+
case 'CallExpression':
|
|
149
|
+
return parseCall(node, parse);
|
|
150
|
+
default:
|
|
151
|
+
// Everything else (functions, templates, object/array literals,
|
|
152
|
+
// regex, dynamic keys, spread, ...) is outside the subset.
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/parser.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,OAAO,GAEP,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAenD,SAAS,YAAY,CAAC,IAAwB;IAC7C,wEAAwE;IACxE,iBAAiB;IACjB,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/C,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,MAAM,kBAAkB,GACvB,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS,CAAC;IAE5B,IAAI,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,IAA2B;IACnD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,mEAAmE;AACnE,6EAA6E;AAC7E,SAAS,WAAW,CAAC,IAAiC,EAAE,KAAiB;IACxE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,GAAG,GACR,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1F,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED,4CAA4C;AAC5C,SAAS,gBAAgB,CACxB,QAAiD;IAEjD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,mCAAmC;AACnC,SAAS,cAAc,CAAC,QAAiD;IACxE,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAExF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,IAA+B,EAAE,KAAiB;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAExF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;IAEpE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC1E,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,SAAS,UAAU,CAAC,IAAgC,EAAE,KAAiB;IACtE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CACrB,IAAsC,EACtC,KAAiB;IAEjB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAExC,IAAI,IAAI,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE5E,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,IAAgC,EAAE,KAAiB;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,IAAiC,EAAE,KAAiB;IACxE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,IAAkC,EAAE,KAAiB;IAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,KAAK,GAAG,CAAC;IACnD,IAAI,KAAK,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAe,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAEnE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACb,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,KAAK,YAAY;YAChB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,kBAAkB;YACtB,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,KAAK,iBAAiB;YACrB,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChC,KAAK,iBAAiB;YACrB,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChC,KAAK,kBAAkB;YACtB,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,KAAK,mBAAmB;YACvB,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,KAAK,uBAAuB;YAC3B,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,KAAK,gBAAgB;YACpB,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B;YACC,gEAAgE;YAChE,2DAA2D;YAC3D,OAAO,IAAI,CAAC;IACd,CAAC;AACF,CAAC"}
|
|
@@ -376,7 +376,7 @@ minus.doc = {
|
|
|
376
376
|
args: [
|
|
377
377
|
{
|
|
378
378
|
name: 'n',
|
|
379
|
-
description: 'The number of units to subtract. Or use a Luxon <a target="_blank" href
|
|
379
|
+
description: 'The number of units to subtract. Or use a Luxon <a target="_blank" href="https://moment.github.io/luxon/api-docs/index.html#duration">Duration</a> object to subtract multiple units at once.',
|
|
380
380
|
type: 'number | object',
|
|
381
381
|
},
|
|
382
382
|
{
|
|
@@ -407,7 +407,7 @@ plus.doc = {
|
|
|
407
407
|
args: [
|
|
408
408
|
{
|
|
409
409
|
name: 'n',
|
|
410
|
-
description: 'The number of units to add. Or use a Luxon <a target="_blank" href
|
|
410
|
+
description: 'The number of units to add. Or use a Luxon <a target="_blank" href="https://moment.github.io/luxon/api-docs/index.html#duration">Duration</a> object to add multiple units at once.',
|
|
411
411
|
type: 'number | object',
|
|
412
412
|
},
|
|
413
413
|
{
|
|
@@ -108,7 +108,7 @@ isOdd.doc = {
|
|
|
108
108
|
};
|
|
109
109
|
format.doc = {
|
|
110
110
|
name: 'format',
|
|
111
|
-
description: 'Returns a formatted string representing the number. Useful for formatting for a specific language or currency. The same as <a target="_blank" href
|
|
111
|
+
description: 'Returns a formatted string representing the number. Useful for formatting for a specific language or currency. The same as <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat"><code>Intl.NumberFormat()</code></a>.',
|
|
112
112
|
examples: [
|
|
113
113
|
{ example: "(123456.789).format('de-DE')", evaluated: '123.456,789' },
|
|
114
114
|
{
|
|
@@ -121,7 +121,7 @@ format.doc = {
|
|
|
121
121
|
{
|
|
122
122
|
name: 'locale',
|
|
123
123
|
optional: true,
|
|
124
|
-
description: 'A <a target="_blank" href
|
|
124
|
+
description: 'A <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument">locale tag</a> for formatting the number, e.g. <code>fr-FR</code>, <code>en-GB</code>, <code>pt-BR</code>',
|
|
125
125
|
default: '"en-US"',
|
|
126
126
|
type: 'string',
|
|
127
127
|
},
|
|
@@ -398,7 +398,7 @@ toDate.doc = {
|
|
|
398
398
|
};
|
|
399
399
|
toDateTime.doc = {
|
|
400
400
|
name: 'toDateTime',
|
|
401
|
-
description: 'Converts the string to a <a target="_blank" href="https://moment.github.io/luxon/api-docs/">Luxon</a> DateTime. Useful for further transformation. Supported formats for the string are ISO 8601, HTTP, RFC2822, SQL and Unix timestamp in milliseconds. To parse other formats, use <a target="_blank" href
|
|
401
|
+
description: 'Converts the string to a <a target="_blank" href="https://moment.github.io/luxon/api-docs/">Luxon</a> DateTime. Useful for further transformation. Supported formats for the string are ISO 8601, HTTP, RFC2822, SQL and Unix timestamp in milliseconds. To parse other formats, use <a target="_blank" href="https://moment.github.io/luxon/api-docs/index.html#datetimefromformat"> <code>DateTime.fromFormat()</code></a>.',
|
|
402
402
|
section: 'cast',
|
|
403
403
|
returnType: 'DateTime',
|
|
404
404
|
docURL: 'https://docs.n8n.io/build/work-with-data/transform-data/expression-reference/string#stringtodatetime',
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export * from './dynamic-credentials-helpers';
|
|
|
15
15
|
export * from './safe-regex';
|
|
16
16
|
export * from './global-state';
|
|
17
17
|
export * from './interfaces';
|
|
18
|
-
export { fromFunction, fromParameter, nodeParametersAreStatic, resolveWebhookDescriptionField, webhookDescriptionFields, webhookDescriptionIsNativelyResolvable, type NativeResolution, type WebhookDescriptionField, } from './webhook-description-fields';
|
|
18
|
+
export { fromExpression, fromFunction, fromParameter, nodeParametersAreStatic, resolveWebhookDescriptionField, webhookDescriptionFields, webhookDescriptionIsNativelyResolvable, type NativeResolution, type WebhookDescriptionField, } from './webhook-description-fields';
|
|
19
|
+
export { isNativelyEvaluable } from './expressions/native-evaluation';
|
|
19
20
|
export * from './sub-workflow-output';
|
|
20
21
|
export * from './run-execution-data-factory';
|
|
21
22
|
export * from './message-event-bus';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACN,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,sCAAsC,EACtC,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC5B,MAAM,8BAA8B,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,WAAW,CAAC;AAC1B,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AACxE,OAAO,EACN,aAAa,EACb,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,KAAK,EACL,oBAAoB,EACpB,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,aAAa,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACN,iCAAiC,EACjC,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,IAAI,aAAa,GAC9C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,KAAK,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,gBAAgB,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,YAAY,EACX,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,MAAM,CAAC;IACrB,UAAiB,eAAe;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,cAAc,CAAC;QACzB,kBAAkB,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzD,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,EAAE,OAAO,CAAC;QAGf,WAAW,CAAC,EAAE,MAAM,CAAC;QAGrB,GAAG,CAAC,EAAE,aAAa,CAAC;KACpB;CACD"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACN,cAAc,EACd,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,sCAAsC,EACtC,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,WAAW,CAAC;AAC1B,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AACxE,OAAO,EACN,aAAa,EACb,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,KAAK,EACL,oBAAoB,EACpB,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,aAAa,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACN,iCAAiC,EACjC,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,IAAI,aAAa,GAC9C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,KAAK,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,gBAAgB,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,YAAY,EACX,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,MAAM,CAAC;IACrB,UAAiB,eAAe;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,cAAc,CAAC;QACzB,kBAAkB,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzD,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,EAAE,OAAO,CAAC;QAGf,WAAW,CAAC,EAAE,MAAM,CAAC;QAGrB,GAAG,CAAC,EAAE,aAAa,CAAC;KACpB;CACD"}
|
package/dist/esm/index.js
CHANGED
|
@@ -15,7 +15,8 @@ export * from './dynamic-credentials-helpers';
|
|
|
15
15
|
export * from './safe-regex';
|
|
16
16
|
export * from './global-state';
|
|
17
17
|
export * from './interfaces';
|
|
18
|
-
export { fromFunction, fromParameter, nodeParametersAreStatic, resolveWebhookDescriptionField, webhookDescriptionFields, webhookDescriptionIsNativelyResolvable, } from './webhook-description-fields';
|
|
18
|
+
export { fromExpression, fromFunction, fromParameter, nodeParametersAreStatic, resolveWebhookDescriptionField, webhookDescriptionFields, webhookDescriptionIsNativelyResolvable, } from './webhook-description-fields';
|
|
19
|
+
export { isNativelyEvaluable } from './expressions/native-evaluation';
|
|
19
20
|
export * from './sub-workflow-output';
|
|
20
21
|
export * from './run-execution-data-factory';
|
|
21
22
|
export * from './message-event-bus';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/interfaces.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ import type { SecureContextOptions } from 'tls';
|
|
|
15
15
|
import type { URLSearchParams } from 'url';
|
|
16
16
|
import type { CODE_EXECUTION_MODES, CODE_LANGUAGES, LOG_LEVELS, BINARY_MODE_COMBINED, BINARY_MODE_SEPARATE } from './constants';
|
|
17
17
|
import type { IDataTableProjectAggregateService, IDataTableProjectService } from './data-table.types';
|
|
18
|
+
import type { TriggerTime } from './cron';
|
|
18
19
|
import type { ExecutionCancelledError } from './errors';
|
|
19
20
|
import type { ExpressionError } from './errors/expression.error';
|
|
20
21
|
import type { NodeApiError } from './errors/node-api.error';
|
|
@@ -38,6 +39,14 @@ export interface IAdditionalCredentialOptions {
|
|
|
38
39
|
* override when a gateway signals an expired token with a different status.
|
|
39
40
|
*/
|
|
40
41
|
preAuthenticationRetryStatusCode?: number | number[];
|
|
42
|
+
/**
|
|
43
|
+
* Whether a `preAuthenticationRetryStatusCode` other than 401 only forces the
|
|
44
|
+
* refresh-and-resend when the token the credential stored in `n8n_expires_at` is at or past
|
|
45
|
+
* its expiry. The counterpart of `IOAuth2Options.skipRefreshWhileTokenIsFresh`, for
|
|
46
|
+
* credentials that mint their own token in `preAuthentication`. A listed 401 and an unknown
|
|
47
|
+
* expiry still retry.
|
|
48
|
+
*/
|
|
49
|
+
skipPreAuthenticationRetryWhileTokenIsFresh?: boolean;
|
|
41
50
|
}
|
|
42
51
|
export type IAllExecuteFunctions = IExecuteFunctions | IExecutePaginationFunctions | IExecuteSingleFunctions | ISupplyDataFunctions | IHookFunctions | ILoadOptionsFunctions | IPollFunctions | ITriggerFunctions | IWebhookFunctions;
|
|
43
52
|
export type BinaryFileType = 'text' | 'json' | 'image' | 'audio' | 'video' | 'pdf' | 'html';
|
|
@@ -778,8 +787,7 @@ type CronRecurrenceRule = {
|
|
|
778
787
|
/**
|
|
779
788
|
* @deprecated Remnant of the legacy in-memory scheduling path. `registerCron`
|
|
780
789
|
* takes {@link Cron}, not this type; the durable scheduler path never uses it.
|
|
781
|
-
*
|
|
782
|
-
* `CronContext['recurrence']`). Slated to go away with `ScheduledTaskManager`.
|
|
790
|
+
* Legacy test helpers still use it. Use {@link Cron} for new scheduling code.
|
|
783
791
|
*/
|
|
784
792
|
export type CronContext = {
|
|
785
793
|
nodeId: string;
|
|
@@ -806,6 +814,7 @@ export type Cron = {
|
|
|
806
814
|
expression: CronExpression;
|
|
807
815
|
recurrence?: CronRecurrenceRule;
|
|
808
816
|
source?: CronSource;
|
|
817
|
+
triggerTime?: TriggerTime;
|
|
809
818
|
};
|
|
810
819
|
export interface SchedulingFunctions {
|
|
811
820
|
registerCron(cron: Cron, onTick: (scheduledT: Date) => void): void;
|
|
@@ -2480,6 +2489,9 @@ export type WebhookType = 'default' | 'setup';
|
|
|
2480
2489
|
* resolvers for its expression-template fields, keyed by field name. Populated
|
|
2481
2490
|
* by `webhookDescriptionFields()` and read via `resolveWebhookDescriptionField()`.
|
|
2482
2491
|
* Backend-only: not serialized with the description.
|
|
2492
|
+
*
|
|
2493
|
+
* TODO(native-evaluation rollout, CAT-4699): remove with `NativeParameterResolvers` and the
|
|
2494
|
+
* `[WEBHOOK_RESOLVERS]` index below.
|
|
2483
2495
|
*/
|
|
2484
2496
|
export declare const WEBHOOK_RESOLVERS: unique symbol;
|
|
2485
2497
|
/**
|
|
@@ -2964,11 +2976,20 @@ export interface IWorkflowExecutionDataProcess {
|
|
|
2964
2976
|
httpResponse?: express.Response;
|
|
2965
2977
|
streamingEnabled?: boolean;
|
|
2966
2978
|
/**
|
|
2967
|
-
* Only engine v2 reads this. The
|
|
2968
|
-
*
|
|
2969
|
-
*
|
|
2979
|
+
* Only engine v2 reads this. The data-plane execution id, set by a caller that
|
|
2980
|
+
* minted it before the run starts: to subscribe to the run's answer, or because
|
|
2981
|
+
* the trigger node already stored files under it. Without it, the dispatcher
|
|
2982
|
+
* mints one.
|
|
2970
2983
|
*/
|
|
2971
|
-
|
|
2984
|
+
engineV2ExecutionId?: string;
|
|
2985
|
+
/**
|
|
2986
|
+
* Only engine v2 reads this. A caller that waits for the run's answer sets
|
|
2987
|
+
* it, together with `engineV2ExecutionId`. `responseMode` tells the engine
|
|
2988
|
+
* which answer the caller waits for. Without this field, nobody waits.
|
|
2989
|
+
*/
|
|
2990
|
+
engineV2Response?: {
|
|
2991
|
+
responseMode: 'lastNode' | 'responseNode' | 'streaming';
|
|
2992
|
+
};
|
|
2972
2993
|
startedAt?: Date;
|
|
2973
2994
|
/** Whether this execution was triggered by an MCP tool call. */
|
|
2974
2995
|
isMcpExecution?: boolean;
|