n8n-workflow 2.42.2 → 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.
Files changed (225) hide show
  1. package/dist/cjs/build.tsbuildinfo +1 -1
  2. package/dist/cjs/common/get-runnable-nodes.d.ts +31 -0
  3. package/dist/cjs/common/get-runnable-nodes.d.ts.map +1 -0
  4. package/dist/cjs/common/get-runnable-nodes.js +97 -0
  5. package/dist/cjs/common/get-runnable-nodes.js.map +1 -0
  6. package/dist/cjs/common/index.d.ts +1 -0
  7. package/dist/cjs/common/index.d.ts.map +1 -1
  8. package/dist/cjs/common/index.js +1 -0
  9. package/dist/cjs/common/index.js.map +1 -1
  10. package/dist/cjs/constants.d.ts +1 -0
  11. package/dist/cjs/constants.d.ts.map +1 -1
  12. package/dist/cjs/constants.js +4 -3
  13. package/dist/cjs/constants.js.map +1 -1
  14. package/dist/cjs/errors/abstract/execution-base.error.d.ts +1 -1
  15. package/dist/cjs/errors/abstract/execution-base.error.d.ts.map +1 -1
  16. package/dist/cjs/errors/abstract/execution-base.error.js +2 -2
  17. package/dist/cjs/errors/abstract/execution-base.error.js.map +1 -1
  18. package/dist/cjs/errors/db-connection-timeout-error.d.ts +1 -1
  19. package/dist/cjs/errors/db-connection-timeout-error.d.ts.map +1 -1
  20. package/dist/cjs/errors/db-connection-timeout-error.js +2 -2
  21. package/dist/cjs/errors/db-connection-timeout-error.js.map +1 -1
  22. package/dist/cjs/errors/index.d.ts +1 -5
  23. package/dist/cjs/errors/index.d.ts.map +1 -1
  24. package/dist/cjs/errors/index.js +7 -11
  25. package/dist/cjs/errors/index.js.map +1 -1
  26. package/dist/cjs/errors/node-operation.error.js +2 -2
  27. package/dist/cjs/errors/node-operation.error.js.map +1 -1
  28. package/dist/cjs/errors/node-version-not-found.error.d.ts +1 -1
  29. package/dist/cjs/errors/node-version-not-found.error.d.ts.map +1 -1
  30. package/dist/cjs/errors/node-version-not-found.error.js +2 -2
  31. package/dist/cjs/errors/node-version-not-found.error.js.map +1 -1
  32. package/dist/cjs/errors/trigger-close.error.d.ts +1 -1
  33. package/dist/cjs/errors/trigger-close.error.d.ts.map +1 -1
  34. package/dist/cjs/errors/trigger-close.error.js +2 -2
  35. package/dist/cjs/errors/trigger-close.error.js.map +1 -1
  36. package/dist/cjs/expression.d.ts +6 -0
  37. package/dist/cjs/expression.d.ts.map +1 -1
  38. package/dist/cjs/expression.js +22 -7
  39. package/dist/cjs/expression.js.map +1 -1
  40. package/dist/cjs/expressions/native-evaluation/evaluator.d.ts +21 -0
  41. package/dist/cjs/expressions/native-evaluation/evaluator.d.ts.map +1 -0
  42. package/dist/cjs/expressions/native-evaluation/evaluator.js +372 -0
  43. package/dist/cjs/expressions/native-evaluation/evaluator.js.map +1 -0
  44. package/dist/cjs/expressions/native-evaluation/grammar.d.ts +63 -0
  45. package/dist/cjs/expressions/native-evaluation/grammar.d.ts.map +1 -0
  46. package/dist/cjs/expressions/native-evaluation/grammar.js +113 -0
  47. package/dist/cjs/expressions/native-evaluation/grammar.js.map +1 -0
  48. package/dist/cjs/expressions/native-evaluation/index.d.ts +17 -0
  49. package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -0
  50. package/dist/cjs/expressions/native-evaluation/index.js +144 -0
  51. package/dist/cjs/expressions/native-evaluation/index.js.map +1 -0
  52. package/dist/cjs/expressions/native-evaluation/parser.d.ts +6 -0
  53. package/dist/cjs/expressions/native-evaluation/parser.d.ts.map +1 -0
  54. package/dist/cjs/expressions/native-evaluation/parser.js +159 -0
  55. package/dist/cjs/expressions/native-evaluation/parser.js.map +1 -0
  56. package/dist/cjs/extensions/date-extensions.js +2 -2
  57. package/dist/cjs/extensions/number-extensions.js +2 -2
  58. package/dist/cjs/extensions/string-extensions.js +1 -1
  59. package/dist/cjs/index.d.ts +2 -1
  60. package/dist/cjs/index.d.ts.map +1 -1
  61. package/dist/cjs/index.js +5 -1
  62. package/dist/cjs/index.js.map +1 -1
  63. package/dist/cjs/interfaces.d.ts +27 -6
  64. package/dist/cjs/interfaces.d.ts.map +1 -1
  65. package/dist/cjs/interfaces.js +3 -0
  66. package/dist/cjs/interfaces.js.map +1 -1
  67. package/dist/cjs/native-methods/array.methods.js +4 -4
  68. package/dist/cjs/node-helpers.d.ts +13 -1
  69. package/dist/cjs/node-helpers.d.ts.map +1 -1
  70. package/dist/cjs/node-helpers.js +3 -1
  71. package/dist/cjs/node-helpers.js.map +1 -1
  72. package/dist/cjs/node-parameters/filter-parameter.d.ts +1 -1
  73. package/dist/cjs/node-parameters/filter-parameter.d.ts.map +1 -1
  74. package/dist/cjs/node-parameters/filter-parameter.js +2 -2
  75. package/dist/cjs/node-parameters/filter-parameter.js.map +1 -1
  76. package/dist/cjs/node-validation.d.ts +17 -5
  77. package/dist/cjs/node-validation.d.ts.map +1 -1
  78. package/dist/cjs/node-validation.js +39 -16
  79. package/dist/cjs/node-validation.js.map +1 -1
  80. package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts +13 -0
  81. package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
  82. package/dist/cjs/run-execution-data/run-execution-data.v1.js.map +1 -1
  83. package/dist/cjs/run-execution-data-factory.d.ts +1 -0
  84. package/dist/cjs/run-execution-data-factory.d.ts.map +1 -1
  85. package/dist/cjs/run-execution-data-factory.js +1 -0
  86. package/dist/cjs/run-execution-data-factory.js.map +1 -1
  87. package/dist/cjs/sub-workflow-output.d.ts +13 -1
  88. package/dist/cjs/sub-workflow-output.d.ts.map +1 -1
  89. package/dist/cjs/sub-workflow-output.js +64 -0
  90. package/dist/cjs/sub-workflow-output.js.map +1 -1
  91. package/dist/cjs/utils.js +2 -2
  92. package/dist/cjs/utils.js.map +1 -1
  93. package/dist/cjs/webhook-description-fields.d.ts +31 -0
  94. package/dist/cjs/webhook-description-fields.d.ts.map +1 -1
  95. package/dist/cjs/webhook-description-fields.js +34 -0
  96. package/dist/cjs/webhook-description-fields.js.map +1 -1
  97. package/dist/esm/common/get-runnable-nodes.d.ts +31 -0
  98. package/dist/esm/common/get-runnable-nodes.d.ts.map +1 -0
  99. package/dist/esm/common/get-runnable-nodes.js +93 -0
  100. package/dist/esm/common/get-runnable-nodes.js.map +1 -0
  101. package/dist/esm/common/index.d.ts +1 -0
  102. package/dist/esm/common/index.d.ts.map +1 -1
  103. package/dist/esm/common/index.js +1 -0
  104. package/dist/esm/common/index.js.map +1 -1
  105. package/dist/esm/constants.d.ts +1 -0
  106. package/dist/esm/constants.d.ts.map +1 -1
  107. package/dist/esm/constants.js +1 -0
  108. package/dist/esm/constants.js.map +1 -1
  109. package/dist/esm/errors/abstract/execution-base.error.d.ts +1 -1
  110. package/dist/esm/errors/abstract/execution-base.error.d.ts.map +1 -1
  111. package/dist/esm/errors/abstract/execution-base.error.js +1 -1
  112. package/dist/esm/errors/abstract/execution-base.error.js.map +1 -1
  113. package/dist/esm/errors/db-connection-timeout-error.d.ts +1 -1
  114. package/dist/esm/errors/db-connection-timeout-error.d.ts.map +1 -1
  115. package/dist/esm/errors/db-connection-timeout-error.js +1 -1
  116. package/dist/esm/errors/db-connection-timeout-error.js.map +1 -1
  117. package/dist/esm/errors/index.d.ts +1 -5
  118. package/dist/esm/errors/index.d.ts.map +1 -1
  119. package/dist/esm/errors/index.js +1 -5
  120. package/dist/esm/errors/index.js.map +1 -1
  121. package/dist/esm/errors/node-operation.error.js +1 -1
  122. package/dist/esm/errors/node-operation.error.js.map +1 -1
  123. package/dist/esm/errors/node-version-not-found.error.d.ts +1 -1
  124. package/dist/esm/errors/node-version-not-found.error.d.ts.map +1 -1
  125. package/dist/esm/errors/node-version-not-found.error.js +1 -1
  126. package/dist/esm/errors/node-version-not-found.error.js.map +1 -1
  127. package/dist/esm/errors/trigger-close.error.d.ts +1 -1
  128. package/dist/esm/errors/trigger-close.error.d.ts.map +1 -1
  129. package/dist/esm/errors/trigger-close.error.js +1 -1
  130. package/dist/esm/errors/trigger-close.error.js.map +1 -1
  131. package/dist/esm/expression.d.ts +6 -0
  132. package/dist/esm/expression.d.ts.map +1 -1
  133. package/dist/esm/expression.js +22 -7
  134. package/dist/esm/expression.js.map +1 -1
  135. package/dist/esm/expressions/native-evaluation/evaluator.d.ts +21 -0
  136. package/dist/esm/expressions/native-evaluation/evaluator.d.ts.map +1 -0
  137. package/dist/esm/expressions/native-evaluation/evaluator.js +366 -0
  138. package/dist/esm/expressions/native-evaluation/evaluator.js.map +1 -0
  139. package/dist/esm/expressions/native-evaluation/grammar.d.ts +63 -0
  140. package/dist/esm/expressions/native-evaluation/grammar.d.ts.map +1 -0
  141. package/dist/esm/expressions/native-evaluation/grammar.js +108 -0
  142. package/dist/esm/expressions/native-evaluation/grammar.js.map +1 -0
  143. package/dist/esm/expressions/native-evaluation/index.d.ts +17 -0
  144. package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -0
  145. package/dist/esm/expressions/native-evaluation/index.js +137 -0
  146. package/dist/esm/expressions/native-evaluation/index.js.map +1 -0
  147. package/dist/esm/expressions/native-evaluation/parser.d.ts +6 -0
  148. package/dist/esm/expressions/native-evaluation/parser.d.ts.map +1 -0
  149. package/dist/esm/expressions/native-evaluation/parser.js +156 -0
  150. package/dist/esm/expressions/native-evaluation/parser.js.map +1 -0
  151. package/dist/esm/extensions/date-extensions.js +2 -2
  152. package/dist/esm/extensions/number-extensions.js +2 -2
  153. package/dist/esm/extensions/string-extensions.js +1 -1
  154. package/dist/esm/index.d.ts +2 -1
  155. package/dist/esm/index.d.ts.map +1 -1
  156. package/dist/esm/index.js +2 -1
  157. package/dist/esm/index.js.map +1 -1
  158. package/dist/esm/interfaces.d.ts +27 -6
  159. package/dist/esm/interfaces.d.ts.map +1 -1
  160. package/dist/esm/interfaces.js +3 -0
  161. package/dist/esm/interfaces.js.map +1 -1
  162. package/dist/esm/native-methods/array.methods.js +4 -4
  163. package/dist/esm/node-helpers.d.ts +13 -1
  164. package/dist/esm/node-helpers.d.ts.map +1 -1
  165. package/dist/esm/node-helpers.js +3 -1
  166. package/dist/esm/node-helpers.js.map +1 -1
  167. package/dist/esm/node-parameters/filter-parameter.d.ts +1 -1
  168. package/dist/esm/node-parameters/filter-parameter.d.ts.map +1 -1
  169. package/dist/esm/node-parameters/filter-parameter.js +1 -1
  170. package/dist/esm/node-parameters/filter-parameter.js.map +1 -1
  171. package/dist/esm/node-validation.d.ts +17 -5
  172. package/dist/esm/node-validation.d.ts.map +1 -1
  173. package/dist/esm/node-validation.js +39 -16
  174. package/dist/esm/node-validation.js.map +1 -1
  175. package/dist/esm/run-execution-data/run-execution-data.v1.d.ts +13 -0
  176. package/dist/esm/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
  177. package/dist/esm/run-execution-data/run-execution-data.v1.js.map +1 -1
  178. package/dist/esm/run-execution-data-factory.d.ts +1 -0
  179. package/dist/esm/run-execution-data-factory.d.ts.map +1 -1
  180. package/dist/esm/run-execution-data-factory.js +1 -0
  181. package/dist/esm/run-execution-data-factory.js.map +1 -1
  182. package/dist/esm/sub-workflow-output.d.ts +13 -1
  183. package/dist/esm/sub-workflow-output.d.ts.map +1 -1
  184. package/dist/esm/sub-workflow-output.js +60 -0
  185. package/dist/esm/sub-workflow-output.js.map +1 -1
  186. package/dist/esm/typecheck.tsbuildinfo +1 -1
  187. package/dist/esm/utils.js +1 -1
  188. package/dist/esm/utils.js.map +1 -1
  189. package/dist/esm/webhook-description-fields.d.ts +31 -0
  190. package/dist/esm/webhook-description-fields.d.ts.map +1 -1
  191. package/dist/esm/webhook-description-fields.js +33 -0
  192. package/dist/esm/webhook-description-fields.js.map +1 -1
  193. package/package.json +15 -14
  194. package/dist/cjs/errors/base/base.error.d.ts +0 -26
  195. package/dist/cjs/errors/base/base.error.d.ts.map +0 -1
  196. package/dist/cjs/errors/base/base.error.js +0 -43
  197. package/dist/cjs/errors/base/base.error.js.map +0 -1
  198. package/dist/cjs/errors/base/operational.error.d.ts +0 -16
  199. package/dist/cjs/errors/base/operational.error.d.ts.map +0 -1
  200. package/dist/cjs/errors/base/operational.error.js +0 -19
  201. package/dist/cjs/errors/base/operational.error.js.map +0 -1
  202. package/dist/cjs/errors/base/unexpected.error.d.ts +0 -16
  203. package/dist/cjs/errors/base/unexpected.error.d.ts.map +0 -1
  204. package/dist/cjs/errors/base/unexpected.error.js +0 -19
  205. package/dist/cjs/errors/base/unexpected.error.js.map +0 -1
  206. package/dist/cjs/errors/base/user.error.d.ts +0 -18
  207. package/dist/cjs/errors/base/user.error.d.ts.map +0 -1
  208. package/dist/cjs/errors/base/user.error.js +0 -19
  209. package/dist/cjs/errors/base/user.error.js.map +0 -1
  210. package/dist/esm/errors/base/base.error.d.ts +0 -26
  211. package/dist/esm/errors/base/base.error.d.ts.map +0 -1
  212. package/dist/esm/errors/base/base.error.js +0 -36
  213. package/dist/esm/errors/base/base.error.js.map +0 -1
  214. package/dist/esm/errors/base/operational.error.d.ts +0 -16
  215. package/dist/esm/errors/base/operational.error.d.ts.map +0 -1
  216. package/dist/esm/errors/base/operational.error.js +0 -15
  217. package/dist/esm/errors/base/operational.error.js.map +0 -1
  218. package/dist/esm/errors/base/unexpected.error.d.ts +0 -16
  219. package/dist/esm/errors/base/unexpected.error.d.ts.map +0 -1
  220. package/dist/esm/errors/base/unexpected.error.js +0 -15
  221. package/dist/esm/errors/base/unexpected.error.js.map +0 -1
  222. package/dist/esm/errors/base/user.error.d.ts +0 -18
  223. package/dist/esm/errors/base/user.error.d.ts.map +0 -1
  224. package/dist/esm/errors/base/user.error.js +0 -15
  225. 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":"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"}
@@ -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=”https://moment.github.io/luxon/api-docs/index.html#duration”>Duration</a> object to subtract multiple units at once.',
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=”https://moment.github.io/luxon/api-docs/index.html#duration”>Duration</a> object to add multiple units at once.',
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=”https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat”><code>Intl.NumberFormat()</code></a>.',
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=”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>pr-BR</code>',
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=”https://moment.github.io/luxon/api-docs/index.html#datetimefromformat”> <code>DateTime.fromFormat()</code></a>.',
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',
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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';
@@ -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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"}
@@ -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
- * Only `ScheduledTaskManager` and its helper still reference it (and only for
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 caller mints the data-plane execution id
2968
- * when it has to wait for the run's answer, so it can subscribe before the
2969
- * run starts.
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
- engineExecutionId?: string;
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;