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.
Files changed (233) 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/execution-context.d.ts +14 -0
  37. package/dist/cjs/execution-context.d.ts.map +1 -1
  38. package/dist/cjs/execution-context.js +21 -0
  39. package/dist/cjs/execution-context.js.map +1 -1
  40. package/dist/cjs/expression.d.ts +6 -0
  41. package/dist/cjs/expression.d.ts.map +1 -1
  42. package/dist/cjs/expression.js +22 -7
  43. package/dist/cjs/expression.js.map +1 -1
  44. package/dist/cjs/expressions/native-evaluation/evaluator.d.ts +21 -0
  45. package/dist/cjs/expressions/native-evaluation/evaluator.d.ts.map +1 -0
  46. package/dist/cjs/expressions/native-evaluation/evaluator.js +372 -0
  47. package/dist/cjs/expressions/native-evaluation/evaluator.js.map +1 -0
  48. package/dist/cjs/expressions/native-evaluation/grammar.d.ts +63 -0
  49. package/dist/cjs/expressions/native-evaluation/grammar.d.ts.map +1 -0
  50. package/dist/cjs/expressions/native-evaluation/grammar.js +113 -0
  51. package/dist/cjs/expressions/native-evaluation/grammar.js.map +1 -0
  52. package/dist/cjs/expressions/native-evaluation/index.d.ts +17 -0
  53. package/dist/cjs/expressions/native-evaluation/index.d.ts.map +1 -0
  54. package/dist/cjs/expressions/native-evaluation/index.js +144 -0
  55. package/dist/cjs/expressions/native-evaluation/index.js.map +1 -0
  56. package/dist/cjs/expressions/native-evaluation/parser.d.ts +6 -0
  57. package/dist/cjs/expressions/native-evaluation/parser.d.ts.map +1 -0
  58. package/dist/cjs/expressions/native-evaluation/parser.js +159 -0
  59. package/dist/cjs/expressions/native-evaluation/parser.js.map +1 -0
  60. package/dist/cjs/extensions/date-extensions.js +2 -2
  61. package/dist/cjs/extensions/number-extensions.js +2 -2
  62. package/dist/cjs/extensions/string-extensions.js +1 -1
  63. package/dist/cjs/index.d.ts +2 -1
  64. package/dist/cjs/index.d.ts.map +1 -1
  65. package/dist/cjs/index.js +5 -1
  66. package/dist/cjs/index.js.map +1 -1
  67. package/dist/cjs/interfaces.d.ts +27 -6
  68. package/dist/cjs/interfaces.d.ts.map +1 -1
  69. package/dist/cjs/interfaces.js +3 -0
  70. package/dist/cjs/interfaces.js.map +1 -1
  71. package/dist/cjs/native-methods/array.methods.js +4 -4
  72. package/dist/cjs/node-helpers.d.ts +13 -1
  73. package/dist/cjs/node-helpers.d.ts.map +1 -1
  74. package/dist/cjs/node-helpers.js +3 -1
  75. package/dist/cjs/node-helpers.js.map +1 -1
  76. package/dist/cjs/node-parameters/filter-parameter.d.ts +1 -1
  77. package/dist/cjs/node-parameters/filter-parameter.d.ts.map +1 -1
  78. package/dist/cjs/node-parameters/filter-parameter.js +2 -2
  79. package/dist/cjs/node-parameters/filter-parameter.js.map +1 -1
  80. package/dist/cjs/node-validation.d.ts +17 -5
  81. package/dist/cjs/node-validation.d.ts.map +1 -1
  82. package/dist/cjs/node-validation.js +39 -16
  83. package/dist/cjs/node-validation.js.map +1 -1
  84. package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts +13 -0
  85. package/dist/cjs/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
  86. package/dist/cjs/run-execution-data/run-execution-data.v1.js.map +1 -1
  87. package/dist/cjs/run-execution-data-factory.d.ts +1 -0
  88. package/dist/cjs/run-execution-data-factory.d.ts.map +1 -1
  89. package/dist/cjs/run-execution-data-factory.js +1 -0
  90. package/dist/cjs/run-execution-data-factory.js.map +1 -1
  91. package/dist/cjs/sub-workflow-output.d.ts +13 -1
  92. package/dist/cjs/sub-workflow-output.d.ts.map +1 -1
  93. package/dist/cjs/sub-workflow-output.js +64 -0
  94. package/dist/cjs/sub-workflow-output.js.map +1 -1
  95. package/dist/cjs/utils.js +2 -2
  96. package/dist/cjs/utils.js.map +1 -1
  97. package/dist/cjs/webhook-description-fields.d.ts +31 -0
  98. package/dist/cjs/webhook-description-fields.d.ts.map +1 -1
  99. package/dist/cjs/webhook-description-fields.js +34 -0
  100. package/dist/cjs/webhook-description-fields.js.map +1 -1
  101. package/dist/esm/common/get-runnable-nodes.d.ts +31 -0
  102. package/dist/esm/common/get-runnable-nodes.d.ts.map +1 -0
  103. package/dist/esm/common/get-runnable-nodes.js +93 -0
  104. package/dist/esm/common/get-runnable-nodes.js.map +1 -0
  105. package/dist/esm/common/index.d.ts +1 -0
  106. package/dist/esm/common/index.d.ts.map +1 -1
  107. package/dist/esm/common/index.js +1 -0
  108. package/dist/esm/common/index.js.map +1 -1
  109. package/dist/esm/constants.d.ts +1 -0
  110. package/dist/esm/constants.d.ts.map +1 -1
  111. package/dist/esm/constants.js +1 -0
  112. package/dist/esm/constants.js.map +1 -1
  113. package/dist/esm/errors/abstract/execution-base.error.d.ts +1 -1
  114. package/dist/esm/errors/abstract/execution-base.error.d.ts.map +1 -1
  115. package/dist/esm/errors/abstract/execution-base.error.js +1 -1
  116. package/dist/esm/errors/abstract/execution-base.error.js.map +1 -1
  117. package/dist/esm/errors/db-connection-timeout-error.d.ts +1 -1
  118. package/dist/esm/errors/db-connection-timeout-error.d.ts.map +1 -1
  119. package/dist/esm/errors/db-connection-timeout-error.js +1 -1
  120. package/dist/esm/errors/db-connection-timeout-error.js.map +1 -1
  121. package/dist/esm/errors/index.d.ts +1 -5
  122. package/dist/esm/errors/index.d.ts.map +1 -1
  123. package/dist/esm/errors/index.js +1 -5
  124. package/dist/esm/errors/index.js.map +1 -1
  125. package/dist/esm/errors/node-operation.error.js +1 -1
  126. package/dist/esm/errors/node-operation.error.js.map +1 -1
  127. package/dist/esm/errors/node-version-not-found.error.d.ts +1 -1
  128. package/dist/esm/errors/node-version-not-found.error.d.ts.map +1 -1
  129. package/dist/esm/errors/node-version-not-found.error.js +1 -1
  130. package/dist/esm/errors/node-version-not-found.error.js.map +1 -1
  131. package/dist/esm/errors/trigger-close.error.d.ts +1 -1
  132. package/dist/esm/errors/trigger-close.error.d.ts.map +1 -1
  133. package/dist/esm/errors/trigger-close.error.js +1 -1
  134. package/dist/esm/errors/trigger-close.error.js.map +1 -1
  135. package/dist/esm/execution-context.d.ts +14 -0
  136. package/dist/esm/execution-context.d.ts.map +1 -1
  137. package/dist/esm/execution-context.js +20 -0
  138. package/dist/esm/execution-context.js.map +1 -1
  139. package/dist/esm/expression.d.ts +6 -0
  140. package/dist/esm/expression.d.ts.map +1 -1
  141. package/dist/esm/expression.js +22 -7
  142. package/dist/esm/expression.js.map +1 -1
  143. package/dist/esm/expressions/native-evaluation/evaluator.d.ts +21 -0
  144. package/dist/esm/expressions/native-evaluation/evaluator.d.ts.map +1 -0
  145. package/dist/esm/expressions/native-evaluation/evaluator.js +366 -0
  146. package/dist/esm/expressions/native-evaluation/evaluator.js.map +1 -0
  147. package/dist/esm/expressions/native-evaluation/grammar.d.ts +63 -0
  148. package/dist/esm/expressions/native-evaluation/grammar.d.ts.map +1 -0
  149. package/dist/esm/expressions/native-evaluation/grammar.js +108 -0
  150. package/dist/esm/expressions/native-evaluation/grammar.js.map +1 -0
  151. package/dist/esm/expressions/native-evaluation/index.d.ts +17 -0
  152. package/dist/esm/expressions/native-evaluation/index.d.ts.map +1 -0
  153. package/dist/esm/expressions/native-evaluation/index.js +137 -0
  154. package/dist/esm/expressions/native-evaluation/index.js.map +1 -0
  155. package/dist/esm/expressions/native-evaluation/parser.d.ts +6 -0
  156. package/dist/esm/expressions/native-evaluation/parser.d.ts.map +1 -0
  157. package/dist/esm/expressions/native-evaluation/parser.js +156 -0
  158. package/dist/esm/expressions/native-evaluation/parser.js.map +1 -0
  159. package/dist/esm/extensions/date-extensions.js +2 -2
  160. package/dist/esm/extensions/number-extensions.js +2 -2
  161. package/dist/esm/extensions/string-extensions.js +1 -1
  162. package/dist/esm/index.d.ts +2 -1
  163. package/dist/esm/index.d.ts.map +1 -1
  164. package/dist/esm/index.js +2 -1
  165. package/dist/esm/index.js.map +1 -1
  166. package/dist/esm/interfaces.d.ts +27 -6
  167. package/dist/esm/interfaces.d.ts.map +1 -1
  168. package/dist/esm/interfaces.js +3 -0
  169. package/dist/esm/interfaces.js.map +1 -1
  170. package/dist/esm/native-methods/array.methods.js +4 -4
  171. package/dist/esm/node-helpers.d.ts +13 -1
  172. package/dist/esm/node-helpers.d.ts.map +1 -1
  173. package/dist/esm/node-helpers.js +3 -1
  174. package/dist/esm/node-helpers.js.map +1 -1
  175. package/dist/esm/node-parameters/filter-parameter.d.ts +1 -1
  176. package/dist/esm/node-parameters/filter-parameter.d.ts.map +1 -1
  177. package/dist/esm/node-parameters/filter-parameter.js +1 -1
  178. package/dist/esm/node-parameters/filter-parameter.js.map +1 -1
  179. package/dist/esm/node-validation.d.ts +17 -5
  180. package/dist/esm/node-validation.d.ts.map +1 -1
  181. package/dist/esm/node-validation.js +39 -16
  182. package/dist/esm/node-validation.js.map +1 -1
  183. package/dist/esm/run-execution-data/run-execution-data.v1.d.ts +13 -0
  184. package/dist/esm/run-execution-data/run-execution-data.v1.d.ts.map +1 -1
  185. package/dist/esm/run-execution-data/run-execution-data.v1.js.map +1 -1
  186. package/dist/esm/run-execution-data-factory.d.ts +1 -0
  187. package/dist/esm/run-execution-data-factory.d.ts.map +1 -1
  188. package/dist/esm/run-execution-data-factory.js +1 -0
  189. package/dist/esm/run-execution-data-factory.js.map +1 -1
  190. package/dist/esm/sub-workflow-output.d.ts +13 -1
  191. package/dist/esm/sub-workflow-output.d.ts.map +1 -1
  192. package/dist/esm/sub-workflow-output.js +60 -0
  193. package/dist/esm/sub-workflow-output.js.map +1 -1
  194. package/dist/esm/typecheck.tsbuildinfo +1 -1
  195. package/dist/esm/utils.js +1 -1
  196. package/dist/esm/utils.js.map +1 -1
  197. package/dist/esm/webhook-description-fields.d.ts +31 -0
  198. package/dist/esm/webhook-description-fields.d.ts.map +1 -1
  199. package/dist/esm/webhook-description-fields.js +33 -0
  200. package/dist/esm/webhook-description-fields.js.map +1 -1
  201. package/package.json +15 -14
  202. package/dist/cjs/errors/base/base.error.d.ts +0 -26
  203. package/dist/cjs/errors/base/base.error.d.ts.map +0 -1
  204. package/dist/cjs/errors/base/base.error.js +0 -43
  205. package/dist/cjs/errors/base/base.error.js.map +0 -1
  206. package/dist/cjs/errors/base/operational.error.d.ts +0 -16
  207. package/dist/cjs/errors/base/operational.error.d.ts.map +0 -1
  208. package/dist/cjs/errors/base/operational.error.js +0 -19
  209. package/dist/cjs/errors/base/operational.error.js.map +0 -1
  210. package/dist/cjs/errors/base/unexpected.error.d.ts +0 -16
  211. package/dist/cjs/errors/base/unexpected.error.d.ts.map +0 -1
  212. package/dist/cjs/errors/base/unexpected.error.js +0 -19
  213. package/dist/cjs/errors/base/unexpected.error.js.map +0 -1
  214. package/dist/cjs/errors/base/user.error.d.ts +0 -18
  215. package/dist/cjs/errors/base/user.error.d.ts.map +0 -1
  216. package/dist/cjs/errors/base/user.error.js +0 -19
  217. package/dist/cjs/errors/base/user.error.js.map +0 -1
  218. package/dist/esm/errors/base/base.error.d.ts +0 -26
  219. package/dist/esm/errors/base/base.error.d.ts.map +0 -1
  220. package/dist/esm/errors/base/base.error.js +0 -36
  221. package/dist/esm/errors/base/base.error.js.map +0 -1
  222. package/dist/esm/errors/base/operational.error.d.ts +0 -16
  223. package/dist/esm/errors/base/operational.error.d.ts.map +0 -1
  224. package/dist/esm/errors/base/operational.error.js +0 -15
  225. package/dist/esm/errors/base/operational.error.js.map +0 -1
  226. package/dist/esm/errors/base/unexpected.error.d.ts +0 -16
  227. package/dist/esm/errors/base/unexpected.error.d.ts.map +0 -1
  228. package/dist/esm/errors/base/unexpected.error.js +0 -15
  229. package/dist/esm/errors/base/unexpected.error.js.map +0 -1
  230. package/dist/esm/errors/base/user.error.d.ts +0 -18
  231. package/dist/esm/errors/base/user.error.d.ts.map +0 -1
  232. package/dist/esm/errors/base/user.error.js +0 -15
  233. package/dist/esm/errors/base/user.error.js.map +0 -1
@@ -6,6 +6,7 @@ export declare class Expression {
6
6
  private static vmEvaluator?;
7
7
  private static readonly BROWSER_CALLER;
8
8
  private static useSharedCaller;
9
+ private static nativeEvaluation;
9
10
  constructor(timezone: string);
10
11
  /**
11
12
  * Check if VM evaluator should be used for evaluation.
@@ -43,6 +44,8 @@ export declare class Expression {
43
44
  sharedCaller?: boolean;
44
45
  lazyAcquire?: boolean;
45
46
  compileCache?: boolean;
47
+ /** Experimental: interpret expressions that fit the native subset in-process. Applies to every engine. */
48
+ nativeEvaluation?: boolean;
46
49
  }): Promise<void>;
47
50
  /** Returns whether an isolate was newly acquired; `false` means this caller already held one and must not release it. */
48
51
  acquireIsolate(): Promise<boolean>;
@@ -68,6 +71,8 @@ export declare class Expression {
68
71
  * process startup instead.
69
72
  */
70
73
  static setExpressionEngine(engine: 'legacy' | 'vm' | 'quickjs'): void;
74
+ /** Toggle native evaluation without restarting the engine. For tests and benchmarks; production sets `N8N_EXPRESSION_ENGINE_NATIVE_EVALUATION`. */
75
+ static setNativeEvaluation(enabled: boolean): void;
71
76
  static initializeGlobalContext(data: IDataObject): void;
72
77
  static resolveWithoutWorkflow(expression: string, data?: IDataObject): string | (() => unknown) | null;
73
78
  /**
@@ -85,6 +90,7 @@ export declare class Expression {
85
90
  * @param {boolean} [returnObjectAsString=false] - Whether to convert objects to strings
86
91
  */
87
92
  resolveSimpleParameterValue(parameterValue: NodeParameterValue, data: IWorkflowDataProxyData, returnObjectAsString?: boolean): NodeParameterValue | INodeParameters | NodeParameterValue[] | INodeParameters[];
93
+ private finalizeResolvedValue;
88
94
  private renderExpression;
89
95
  }
90
96
  //# sourceMappingURL=expression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAc3F,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,cAAc,CAAC;AAwMtB,qBAAa,UAAU;IASV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IARrC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAyC;IAExE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAuB;IAElD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;IAE5C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAS;IAEvC,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEjD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAKjC;;;;OAIG;IACH,OAAa,oBAAoB,CAAC,OAAO,EAAE;QAC1C,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;;;;;WAMG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEhB;IAED,yHAAyH;IACnH,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAGvC;IAEK,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEK,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAarD;IAED;;;OAGG;IACH,OAAa,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CASpD;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB,IAAI,QAAQ,GAAG,IAAI,GAAG,SAAS,CAG5D;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEpE;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,WAAW,QA2J/C;IAED,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,mCAEvE;IAED;;;;OAIG;IACH,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+BhD;IAED;;;;;;;OAOG;IACH,2BAA2B,CAC1B,cAAc,EAAE,kBAAkB,EAClC,IAAI,EAAE,sBAAsB,EAC5B,oBAAoB,UAAQ,GAC1B,kBAAkB,GAAG,eAAe,GAAG,kBAAkB,EAAE,GAAG,eAAe,EAAE,CA2FjF;IAED,OAAO,CAAC,gBAAgB;CAuDxB"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAe3F,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,cAAc,CAAC;AAwMtB,qBAAa,UAAU;IAWV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAVrC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAyC;IAExE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAuB;IAElD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;IAE5C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAS;IAEvC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAS;IAExC,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEjD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAKjC;;;;OAIG;IACH,OAAa,oBAAoB,CAAC,OAAO,EAAE;QAC1C,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;;;;;WAMG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,0GAA0G;QAC1G,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEhB;IAED,yHAAyH;IACnH,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAGvC;IAEK,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEK,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAarD;IAED;;;OAGG;IACH,OAAa,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CASpD;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB,IAAI,QAAQ,GAAG,IAAI,GAAG,SAAS,CAG5D;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEpE;IAED,mJAAmJ;IACnJ,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjD;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,WAAW,QA2J/C;IAED,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,mCAEvE;IAED;;;;OAIG;IACH,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+BhD;IAED;;;;;;;OAOG;IACH,2BAA2B,CAC1B,cAAc,EAAE,kBAAkB,EAClC,IAAI,EAAE,sBAAsB,EAC5B,oBAAoB,UAAQ,GAC1B,kBAAkB,GAAG,eAAe,GAAG,kBAAkB,EAAE,GAAG,eAAe,EAAE,CAsFjF;IAED,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,gBAAgB;CAuDxB"}
@@ -42,6 +42,7 @@ const expression_error_1 = require("./errors/expression.error");
42
42
  const expression_evaluator_proxy_1 = require("./expression-evaluator-proxy");
43
43
  const expression_sandboxing_1 = require("./expression-sandboxing");
44
44
  const expression_helpers_1 = require("./expressions/expression-helpers");
45
+ const native_evaluation_1 = require("./expressions/native-evaluation");
45
46
  const LoggerProxy = __importStar(require("./logger-proxy"));
46
47
  const extensions_1 = require("./extensions");
47
48
  const expression_extension_1 = require("./extensions/expression-extension");
@@ -230,6 +231,7 @@ class Expression {
230
231
  static vmEvaluator;
231
232
  static BROWSER_CALLER = {};
232
233
  static useSharedCaller = false;
234
+ static nativeEvaluation = false;
233
235
  constructor(timezone) {
234
236
  this.timezone = timezone;
235
237
  }
@@ -257,6 +259,7 @@ class Expression {
257
259
  * Only available in Node.js environments (not in browser).
258
260
  */
259
261
  static async initExpressionEngine(options) {
262
+ this.nativeEvaluation = options.nativeEvaluation ?? false;
260
263
  if (options.engine === 'legacy')
261
264
  return;
262
265
  if (options.engine === 'vm' && IS_FRONTEND)
@@ -382,6 +385,10 @@ class Expression {
382
385
  static setExpressionEngine(engine) {
383
386
  this.expressionEngine = engine;
384
387
  }
388
+ /** Toggle native evaluation without restarting the engine. For tests and benchmarks; production sets `N8N_EXPRESSION_ENGINE_NATIVE_EVALUATION`. */
389
+ static setNativeEvaluation(enabled) {
390
+ this.nativeEvaluation = enabled;
391
+ }
385
392
  static initializeGlobalContext(data) {
386
393
  /**
387
394
  * Denylist
@@ -570,6 +577,14 @@ class Expression {
570
577
  // Is an expression
571
578
  // Remove the equal sign
572
579
  parameterValue = parameterValue.substr(1);
580
+ // An expression that fits the native subset grammar is interpreted
581
+ // in-process, skipping the global-context setup, extendSyntax, and the
582
+ // engine (isolate). Everything else takes the regular pipeline below.
583
+ if (Expression.nativeEvaluation) {
584
+ const native = (0, native_evaluation_1.evaluateNatively)(parameterValue, data);
585
+ if (native.handled)
586
+ return this.finalizeResolvedValue(native.value, returnObjectAsString);
587
+ }
573
588
  // Support only a subset of process properties
574
589
  data.process =
575
590
  typeof process !== 'undefined'
@@ -627,19 +642,19 @@ class Expression {
627
642
  // Execute the expression
628
643
  const extendedExpression = (0, expression_extension_1.extendSyntax)(parameterValue);
629
644
  const returnValue = this.renderExpression(extendedExpression, data);
645
+ return this.finalizeResolvedValue(returnValue, returnObjectAsString);
646
+ }
647
+ finalizeResolvedValue(returnValue, returnObjectAsString) {
630
648
  if (typeof returnValue === 'function') {
631
649
  if (returnValue.name === 'DateTime')
632
650
  throw new errors_1.UserError('this is a DateTime, please access its methods');
633
651
  throw new errors_1.UserError('this is a function, please add ()');
634
652
  }
635
- else if (typeof returnValue === 'string') {
636
- return returnValue;
637
- }
638
- else if (returnValue !== null && typeof returnValue === 'object') {
639
- if (returnObjectAsString) {
640
- return this.convertObjectValueToString(returnValue);
641
- }
653
+ else if (returnValue !== null && typeof returnValue === 'object' && returnObjectAsString) {
654
+ return this.convertObjectValueToString(returnValue);
642
655
  }
656
+ // The engines return arbitrary JSON-ish values; mirror the loose typing
657
+ // the previous inline code relied on.
643
658
  return returnValue;
644
659
  }
645
660
  renderExpression(expression, data) {
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gEAAiG;AACjG,iCAAqD;AAErD,qCAAsD;AACtD,oFAA+E;AAC/E,gEAA4D;AAC5D,6EAAmF;AACnF,mEAA2F;AAC3F,yEAAgE;AAChE,uEAAmE;AACnE,MAAY,WAAW,2CAAuB;AAC9C,6CAAsD;AACtD,4EAAiE;AACjE,wEAAoE;AAOpE,MAAM,uBAAuB,GAC5B,OAAO,OAAO,KAAK,QAAQ;IAC3B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;IACjC,KAAK,IAAI,OAAO;IAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAEvC,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,uBAAuB,CAAC;AAE9E,MAAM,aAAa,GAAG,CAAC,KAAc,EAAwB,EAAE,CAC9D,KAAK,YAAY,WAAW,IAAI,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;AAE1F,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA4B,EAAE,CACtE,KAAK,YAAY,kCAAe,IAAI,KAAK,YAAY,qDAAwB,CAAC;AAE/E,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAC1D,KAAK,YAAY,SAAS,IAAI,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;AAEtF,qCAAqC;AACrC,IAAA,4CAAe,EAAC,CAAC,KAAY,EAAE,EAAE;IAChC,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,MAAM,KAAK,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,KAAc;IACjC,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,qEAAqE;IACrE,mEAAmE;IACnE,8EAA8E;IAC9E,IAAI,KAAK,YAAY,iCAAY,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,kCAAe,CAAC,sBAAsB,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,YAAY,qCAAgB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,kCAAe,CAAC,kCAAkC,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,YAAY,2CAAsB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,kCAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,yEAAyE;IACzE,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,qDAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,aAAa,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAChE,MAAM,aAAa,GAAG,IAAI,kCAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,kCAAe,CAAC,gBAAgB,CAAC,CAAC;IAEvE,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,gBAAgB,GAAG,GAAkB,EAAE;IAC5C,MAAM,UAAU,GAAG,CAAC,KAAoB,EAAU,EAAE;QACnD,8DAA8D;QAC9D,+DAA+D;QAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,+CAA+C;IAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC9B,wDAAwD;QACxD,gBAAgB;QAChB,kBAAkB;QAClB,gBAAgB;QAChB,gBAAgB;QAChB,0BAA0B;QAC1B,2BAA2B;QAC3B,iDAAiD;QACjD,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;KAClB,CAAC,CAAC;IAEH,+CAA+C;IAC/C,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACxB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACzB,IAAI,cAAc,CAAC,GAAG,CAAC,IAAc,CAAC,EAAE,CAAC;gBACxC,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,6DAA6D;YAC7D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvB,OAAO,UAAU,CAAC;YACnB,CAAC;YAED,+DAA+D;YAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,qEAAqE;QACrE,cAAc;YACb,OAAO,KAAK,CAAC;QACd,CAAC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACtC,8BAA8B;IAC9B,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,iDAAiD;IACjD,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;CAClB,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,eAAe,GAAG,GAAiB,EAAE;IAC1C,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACzB,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAc,CAAC,EAAE,CAAC;gBAChD,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,+DAA+D;YAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,GAAG;YACF,mEAAmE;YACnE,OAAO,KAAK,CAAC;QACd,CAAC;QACD,cAAc;YACb,8DAA8D;YAC9D,OAAO,KAAK,CAAC;QACd,CAAC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAA6B,UAAa,EAAK,EAAE;IAChF,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE;QAC5B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACzB,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAc,CAAC,EAAE,CAAC;gBAChD,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,GAAG;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QACD,cAAc;YACb,OAAO,KAAK,CAAC;QACd,CAAC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;IAW8B,QAAQ;IAV7B,MAAM,CAAC,gBAAgB,GAAgC,QAAQ,CAAC;IAEhE,MAAM,CAAC,WAAW,CAAwB;IAE1C,MAAM,CAAU,cAAc,GAAG,EAAE,CAAC;IAEpC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;IAE/B,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAExC,YAA6B,QAAgB;wBAAhB,QAAQ;IAAW,CAAC;IAEjD;;;OAGG;IACK,MAAM,CAAC,WAAW;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,kBAAkB;QAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACrD,OAAO,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAqBjC;QACA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;QACxC,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,WAAW;YAAE,OAAO;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,6EAA6E;YAC7E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACxD,MAAM,YAAY,GACjB,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC3B,CAAC,CAAC,GAAG,EAAE,CACL,IAAI,OAAO,CAAC,aAAa,CAAC;oBACzB,OAAO,EAAE,OAAO,CAAC,aAAa;oBAC9B,WAAW,EAAE,OAAO,CAAC,iBAAiB;oBACtC,MAAM,EAAE,WAAW;oBACnB,aAAa,EAAE,OAAO,CAAC,aAAa;iBACpC,CAAC;gBACJ,CAAC,CAAC,GAAG,EAAE,CACL,IAAI,OAAO,CAAC,gBAAgB,CAAC;oBAC5B,OAAO,EAAE,OAAO,CAAC,aAAa;oBAC9B,WAAW,EAAE,OAAO,CAAC,iBAAiB;oBACtC,MAAM,EAAE,WAAW;oBACnB,YAAY,EAAE,OAAO,CAAC,YAAY;iBAClC,CAAC,CAAC;YACP,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;gBACjD,YAAY;gBACZ,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,8CAAsB;gBAC7B,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,OAAO,CAAC,aAAa;aACpC,CAAC,CAAC;YAEH,mEAAmE;YACnE,oEAAoE;YACpE,mEAAmE;YACnE,qCAAqC;YACrC,IAAI,CAAC;gBACJ,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC7B,kEAAkE;gBAClE,sEAAsE;gBACtE,oEAAoE;gBACpE,mEAAmE;gBACnE,oEAAoE;gBACpE,gEAAgE;gBAChE,0DAA0D;gBAC1D,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC1B,sEAAsE;oBACtE,qEAAqE;oBACrE,iDAAiD;oBACjD,MAAM,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,kEAAkE;gBAClE,iEAAiE;gBACjE,sDAAsD;gBACtD,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;IACF,CAAC;IAED,yHAAyH;IACzH,KAAK,CAAC,cAAc;QACnB,IAAI,UAAU,CAAC,WAAW;YAAE,OAAO,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,IAAI,UAAU,CAAC,WAAW;YAAE,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,EAAoB;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,IAAI,CAAC;YACJ,OAAO,MAAM,EAAE,EAAE,CAAC;QACnB,CAAC;gBAAS,CAAC;YACV,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,WAAW,CAAC,KAAK,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACtE,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,uBAAuB;QACnC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,wEAAwE;YACxE,oEAAoE;YACpE,IAAI,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACpF,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,QAAQ,CAAC;QACzC,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAmC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,mJAAmJ;IACnJ,MAAM,CAAC,mBAAmB,CAAC,OAAgB;QAC1C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAiB;QAC/C;;WAEG;QAEH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAEf,SAAS;QACT,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,gCAAgC;QAChC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB,gCAAgC;QAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,mBAAmB;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QAEjC,eAAe;QACf,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,qBAAqB;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,6EAA6E;QAC7E,8EAA8E;QAC9E,4EAA4E;QAC5E,uEAAuE;QACvE,KAAK,MAAM,GAAG,IAAI;YACjB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;SAClB,EAAE,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;gBAChC,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aAClB,CAAC,CAAC;QACJ,CAAC;QAED,aAAa;QACb,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB;;WAEG;QAEH,QAAQ;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,gBAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,gBAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,gBAAQ,CAAC;QAEzB,4EAA4E;QAC5E,IAAI,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAEjC,SAAS;QACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,cAAc,GAAG,OAAO,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAElF,cAAc;QACd,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7D,4EAA4E;QAC5E,kEAAkE;QAClE,IAAI,CAAC,KAAK,GAAG,eAAe,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAElD,uBAAuB;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpD,OAAO;QACP,uCAAuC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,OAAO;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,uCAAuC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,kBAAkB;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,OAAO,iBAAiB,KAAK,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,OAAO,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAE7C,QAAQ;QACR,uCAAuC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,UAAkB,EAAE,IAAI,GAAgB,EAAE;QACvE,OAAO,IAAA,+CAAkB,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,0BAA0B,CAAC,KAAa;QACvC,IAAI,KAAK,YAAY,gBAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC/D,MAAM,IAAI,kBAAS,CAAC,kBAAkB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC;QAClD,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,QAAQ,GAAG,UAAU,CAAC;QACvB,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC3B,sFAAsF;YACtF,MAAM,GAAG,gBAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,QAAQ;aACnB,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,GAAG,MAAM;aACb,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,cAAc;aACpC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc;QAEvC,OAAO,IAAI,QAAQ,KAAK,MAAM,GAAG,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,2BAA2B,CAC1B,cAAkC,EAClC,IAA4B,EAC5B,oBAAoB,GAAG,KAAK;QAE5B,+BAA+B;QAC/B,IAAI,CAAC,IAAA,iCAAY,EAAC,cAAc,CAAC,EAAE,CAAC;YACnC,mCAAmC;YACnC,OAAO,cAAc,CAAC;QACvB,CAAC;QAED,mBAAmB;QAEnB,wBAAwB;QACxB,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE1C,mEAAmE;QACnE,uEAAuE;QACvE,sEAAsE;QACtE,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAA,oCAAgB,EAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAC3F,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC,OAAO;YACX,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC;oBACA,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;oBAC5E,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC1B;gBACF,CAAC,CAAC,EAAE,CAAC;QAEP,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAEzC,+DAA+D;QAC/D,EAAE;QACF,0DAA0D;QAC1D,kEAAkE;QAClE,+DAA+D;QAC/D,4DAA4D;QAC5D,gEAAgE;QAChE,gEAAgE;QAChE,+DAA+D;QAC/D,aAAa;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,mBAAM,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,2BAAc,CAAC;QACtC,CAAC;QAED,mEAAmE;QACnE,qEAAqE;QACrE,8CAA8C;QAC9C,uEAAuE;QACvE,mEAAmE;QACnE,4DAA4D;QAC5D,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CAAC;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;QAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qCAAa,EAAE;YAC1C,KAAK,EAAE,iCAAS;YAChB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,sCAAiB,CAAC,CAAC;QAEvC,MAAM,qBAAqB,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC/D,IAAI,cAAc,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,kCAAe,CAAC,uDAAuD,EAAE;gBAClF,aAAa,EAAE,sEAAsE;gBACrF,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,SAAS,EAAE,IAAI,CAAC,cAAc;aAC9B,CAAC,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,MAAM,kBAAkB,GAAG,IAAA,mCAAY,EAAC,cAAc,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IACtE,CAAC;IAEO,qBAAqB,CAC5B,WAAoB,EACpB,oBAA6B;QAE7B,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU;gBAClC,MAAM,IAAI,kBAAS,CAAC,+CAA+C,CAAC,CAAC;YAEtE,MAAM,IAAI,kBAAS,CAAC,mCAAmC,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,oBAAoB,EAAE,CAAC;YAC5F,OAAO,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;QAED,wEAAwE;QACxE,sCAAsC;QACtC,OAAO,WAAiC,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,UAAkB,EAAE,IAA4B;QACxE,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;QAEzC,IAAI,SAAS,IAAI,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;oBAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACvB,CAAC,CAAC;gBACH,OAAO,MAAyC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;QAED,4EAA4E;QAC5E,yEAAyE;QACzE,uEAAuE;QACvE,0EAA0E;QAC1E,qEAAqE;QACrE,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnE,MAAM,IAAI,wBAAe,CACxB,OAAO,UAAU,CAAC,gBAAgB,iHAAiH,CACnJ,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC;YACJ,OAAO,IAAA,+CAAkB,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,iBAAiB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAE1C,IAAI,aAAa,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,kBAAS,CAAC,gBAAgB,CAAC,CAAC;YAEhE,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACtF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAEpE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;oBAAE,OAAO,IAAI,CAAC;gBAErC,MAAM,IAAI,kBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CAWD"}
@@ -0,0 +1,21 @@
1
+ import type { IWorkflowDataProxyData } from '../../interfaces';
2
+ import { type SimpleNode } from './grammar';
3
+ /**
4
+ * Thrown when a runtime value falls outside what parsing proved statically
5
+ * (a whitelisted string method on a non-string receiver, an operator on an
6
+ * object operand, a result above MAX_RESULT_LENGTH). The whole evaluation is
7
+ * abandoned and the caller re-runs the expression through the regular engine
8
+ * pipeline. Anything evaluated before the bail runs again in the engine: a
9
+ * nested `$parameter` expression, or a getter on a data object. Expressions
10
+ * are pure and workflow data is JSON, so the only cost is the repeated work.
11
+ */
12
+ export declare class EngineFallbackError extends Error {
13
+ }
14
+ export declare function bounded<T>(value: T): T;
15
+ /**
16
+ * Tournament wraps each code chunk in try/catch and routes errors to the E()
17
+ * handler, which rethrows ExpressionErrors and swallows everything else (the
18
+ * chunk then yields undefined). Mirror that exactly.
19
+ */
20
+ export declare function evalChunk(node: SimpleNode, data: IWorkflowDataProxyData): unknown;
21
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +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,EAaN,KAAK,UAAU,EACf,MAAM,WAAW,CAAC;AAQnB;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AA0BjD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQtC;AA2VD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAajF"}
@@ -0,0 +1,372 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EngineFallbackError = void 0;
4
+ exports.bounded = bounded;
5
+ exports.evalChunk = evalChunk;
6
+ const expression_extension_error_1 = require("../../errors/expression-extension.error");
7
+ const expression_error_1 = require("../../errors/expression.error");
8
+ const grammar_1 = require("./grammar");
9
+ // ── Evaluation: total over the grammar. ────────────────────────────────────
10
+ //
11
+ // evalNode reads only fields parseSimple constructed, because those are the
12
+ // only fields that exist. The switch has no default branch: adding a kind to
13
+ // the grammar stops compilation until it is handled here.
14
+ /**
15
+ * Thrown when a runtime value falls outside what parsing proved statically
16
+ * (a whitelisted string method on a non-string receiver, an operator on an
17
+ * object operand, a result above MAX_RESULT_LENGTH). The whole evaluation is
18
+ * abandoned and the caller re-runs the expression through the regular engine
19
+ * pipeline. Anything evaluated before the bail runs again in the engine: a
20
+ * nested `$parameter` expression, or a getter on a data object. Expressions
21
+ * are pure and workflow data is JSON, so the only cost is the repeated work.
22
+ */
23
+ class EngineFallbackError extends Error {
24
+ }
25
+ exports.EngineFallbackError = EngineFallbackError;
26
+ /**
27
+ * Thrown by an optional member/call on a nullish receiver and caught by the
28
+ * enclosing chain node, which yields undefined for the whole chain. One
29
+ * shared instance: a missing optional hop is ordinary data, not an error.
30
+ */
31
+ class ChainShortCircuit extends Error {
32
+ }
33
+ const chainShortCircuit = new ChainShortCircuit();
34
+ /**
35
+ * Property lookup on a non-nullish primitive is well-defined and side-effect
36
+ * free, so primitives are indexable here even though the predicate's type
37
+ * only names objects.
38
+ */
39
+ const isIndexable = (value) => value !== null && value !== undefined;
40
+ /**
41
+ * Operators only ever see primitives. An object operand would coerce through
42
+ * its valueOf/toString on the host, where the engine sees a structured-clone
43
+ * copy; a reference comparison would differ from the engine's copy semantics.
44
+ */
45
+ const isPrimitive = (value) => value === null || (typeof value !== 'object' && typeof value !== 'function');
46
+ function bounded(value) {
47
+ const isSizeable = typeof value === 'string' || (0, grammar_1.isArray)(value);
48
+ if (isSizeable && value.length > grammar_1.MAX_RESULT_LENGTH) {
49
+ throw new EngineFallbackError();
50
+ }
51
+ return value;
52
+ }
53
+ // Operand casts are intentional: the interpreter must reproduce JS coercion
54
+ // semantics exactly (parity with the engines), not re-implement them.
55
+ /* eslint-disable @typescript-eslint/no-explicit-any */
56
+ const binaryOps = Object.freeze({
57
+ '===': (l, r) => l === r,
58
+ '!==': (l, r) => l !== r,
59
+ // eslint-disable-next-line eqeqeq
60
+ '==': (l, r) => l == r,
61
+ // eslint-disable-next-line eqeqeq
62
+ '!=': (l, r) => l != r,
63
+ '<': (l, r) => l < r,
64
+ '<=': (l, r) => l <= r,
65
+ '>': (l, r) => l > r,
66
+ '>=': (l, r) => l >= r,
67
+ '+': (l, r) => bounded(l + r),
68
+ '-': (l, r) => l - r,
69
+ '*': (l, r) => l * r,
70
+ '/': (l, r) => l / r,
71
+ '%': (l, r) => l % r,
72
+ });
73
+ /* eslint-enable @typescript-eslint/no-explicit-any */
74
+ function evalMember(node, data) {
75
+ const object = evalNode(node.object, data);
76
+ if (node.optional && (object === null || object === undefined)) {
77
+ throw chainShortCircuit;
78
+ }
79
+ if (!isIndexable(object)) {
80
+ throw new TypeError(`Cannot read properties of ${(0, grammar_1.toStr)(object)} (reading '${node.key}')`);
81
+ }
82
+ // Below the roots (get-trap proxies, where Object.hasOwn misreports every
83
+ // key) the data is plain JSON, so an inherited property is a host prototype
84
+ // the isolates never see. The engine decides what it yields.
85
+ const inherited = node.object.kind !== 'root' &&
86
+ typeof object === 'object' &&
87
+ node.key in object &&
88
+ !(0, grammar_1.hasOwn)(object, node.key);
89
+ if (inherited) {
90
+ throw new EngineFallbackError();
91
+ }
92
+ const value = object[node.key];
93
+ // Neither crosses an engine boundary the same way twice (the vm bridge
94
+ // drops a nested function but fails on an inherited one; legacy throws),
95
+ // so the configured engine decides rather than this module guessing.
96
+ if (typeof value === 'function' || typeof value === 'symbol') {
97
+ throw new EngineFallbackError();
98
+ }
99
+ return value;
100
+ }
101
+ /**
102
+ * Parsing only proves the method name; the receiver's type is data. A
103
+ * receiver whose type has no allowlist entry for the method could be
104
+ * intercepted by extensions, so it hands the whole expression to the engine.
105
+ */
106
+ function methodFor(receiver, name) {
107
+ let method;
108
+ if (typeof receiver === 'string') {
109
+ method = grammar_1.STRING_METHODS.get(name);
110
+ }
111
+ else if (typeof receiver === 'number') {
112
+ method = grammar_1.NUMBER_METHODS.get(name);
113
+ }
114
+ else if ((0, grammar_1.isArray)(receiver)) {
115
+ method = grammar_1.ARRAY_METHODS.get(name);
116
+ }
117
+ if (method === undefined)
118
+ throw new EngineFallbackError();
119
+ return method;
120
+ }
121
+ /**
122
+ * Arguments are primitives, plus arrays for concat. An object argument would
123
+ * compare by live reference where the isolate compares copies (includes/
124
+ * indexOf) or coerce on the host where the isolate sees a copy.
125
+ */
126
+ function isAllowedArgument(method, arg) {
127
+ if (isPrimitive(arg))
128
+ return true;
129
+ return method === 'concat' && (0, grammar_1.isArray)(arg);
130
+ }
131
+ /**
132
+ * The engine runs under a timeout; a synchronous native call cannot be
133
+ * interrupted, so the input size is the budget. A receiver above the result
134
+ * cap goes to the engine before any work is done, and the amplifying methods
135
+ * (which can allocate far beyond MAX_RESULT_LENGTH before bounded() sees the
136
+ * result) bail on an upper bound of their output.
137
+ */
138
+ function assertPreflightSize(receiver, method, args) {
139
+ let upperBound = typeof receiver === 'number' ? 0 : receiver.length;
140
+ if (method === 'concat') {
141
+ for (const arg of args) {
142
+ upperBound += (0, grammar_1.isArray)(arg) ? arg.length : 1;
143
+ }
144
+ }
145
+ else if (method === 'flat' && (0, grammar_1.isArray)(receiver)) {
146
+ const depth = args.length === 0 ? 1 : (0, grammar_1.toNum)(args[0]);
147
+ upperBound = flatSize(receiver, depth);
148
+ }
149
+ else if ((method === 'replace' || method === 'replaceAll') && typeof receiver === 'string') {
150
+ // A missing replacement inserts the string "undefined".
151
+ const replacement = args.length < 2 ? 'undefined' : (0, grammar_1.toStr)(args[1]);
152
+ // Three replacement tokens expand: `$&`, `$\`` and `$'` insert match
153
+ // context, so the output is not bounded by the replacement's length.
154
+ // `$$` is an escaped literal `$`; strip those pairs first so that `$$&`
155
+ // (a literal "$&") stays native while `$$$&` (a literal "$" then `$&`)
156
+ // bails. With a string pattern every other `$` is literal.
157
+ if (/\$[&`']/.test(replacement.replaceAll('$$', '')))
158
+ throw new EngineFallbackError();
159
+ upperBound =
160
+ method === 'replace'
161
+ ? receiver.length + replacement.length
162
+ : (receiver.length + 1) * (replacement.length + 1);
163
+ }
164
+ else if (method === 'join' && (0, grammar_1.isArray)(receiver)) {
165
+ // Only an undefined separator means ","; null joins with "null".
166
+ const separator = args[0] === undefined ? ',' : (0, grammar_1.toStr)(args[0]);
167
+ upperBound = separator.length * Math.max(receiver.length - 1, 0);
168
+ for (const element of receiver) {
169
+ upperBound += (0, grammar_1.toStr)(element ?? '').length;
170
+ }
171
+ }
172
+ if (upperBound > grammar_1.MAX_RESULT_LENGTH) {
173
+ throw new EngineFallbackError();
174
+ }
175
+ }
176
+ /**
177
+ * Element count of `array.flat(depth)`, stopping early once past the cap
178
+ * (a nested structure can flatten to far more elements than the outer
179
+ * array holds).
180
+ */
181
+ function flatSize(array, depth) {
182
+ let size = 0;
183
+ for (const element of array) {
184
+ size += depth >= 1 && (0, grammar_1.isArray)(element) ? flatSize(element, depth - 1) : 1;
185
+ if (size > grammar_1.MAX_RESULT_LENGTH)
186
+ break;
187
+ }
188
+ return size;
189
+ }
190
+ /**
191
+ * Array methods that call toString on their elements: join() on every
192
+ * element, toSorted()'s default comparator on both operands per comparison.
193
+ * On nested arrays that work is proportional to the nested size, which no
194
+ * element count bounds, so these run natively over primitive elements only.
195
+ */
196
+ const STRINGIFIES_ELEMENTS = new Set(['join', 'toSorted']);
197
+ /**
198
+ * Hands off to the engine unless every element is a primitive. O(n) over a
199
+ * receiver the size cap already limits, and runs before anything is
200
+ * stringified.
201
+ */
202
+ function assertPrimitiveElements(receiver) {
203
+ // The receiver cap applies before the scan, so the scan never walks more
204
+ // than the cap either.
205
+ if (receiver.length > grammar_1.MAX_RESULT_LENGTH)
206
+ throw new EngineFallbackError();
207
+ for (const element of receiver) {
208
+ if (!isPrimitive(element))
209
+ throw new EngineFallbackError();
210
+ }
211
+ }
212
+ /**
213
+ * Content size of a JSON value: string lengths plus one per element and
214
+ * key, stopping early past the budget. Deeper than the grammar's own depth
215
+ * cap hands off: the engine owns data that deep.
216
+ */
217
+ function contentWeight(value, budget, depth = 0) {
218
+ if (depth > grammar_1.MAX_DEPTH)
219
+ throw new EngineFallbackError();
220
+ if (typeof value === 'string')
221
+ return value.length;
222
+ if (!(0, grammar_1.isObj)(value))
223
+ return 1;
224
+ let weight = 1;
225
+ if ((0, grammar_1.isArray)(value)) {
226
+ for (const element of value) {
227
+ weight += contentWeight(element, budget - weight, depth + 1);
228
+ if (weight > budget)
229
+ break;
230
+ }
231
+ return weight;
232
+ }
233
+ // Walk keys without materialising an entries array: an object with many
234
+ // keys would otherwise be copied before the budget is checked.
235
+ for (const key in value) {
236
+ if (!(0, grammar_1.hasOwn)(value, key))
237
+ continue;
238
+ weight += key.length + contentWeight(value[key], budget - weight, depth + 1);
239
+ if (weight > budget)
240
+ break;
241
+ }
242
+ return weight;
243
+ }
244
+ /**
245
+ * concat() is the one method that can hold more content than the payload
246
+ * delivered: N arguments that reference one large string become N copies
247
+ * when the result is cloned (copyResult) and N operands for every method
248
+ * downstream (join, toSorted, includes). Element count does not see that,
249
+ * so concat is bounded by the content size of receiver plus arguments.
250
+ */
251
+ function assertConcatWeight(receiver, args) {
252
+ let weight = contentWeight(receiver, grammar_1.MAX_RESULT_LENGTH);
253
+ for (const arg of args) {
254
+ if (weight > grammar_1.MAX_RESULT_LENGTH)
255
+ break;
256
+ weight += contentWeight(arg, grammar_1.MAX_RESULT_LENGTH - weight);
257
+ }
258
+ if (weight > grammar_1.MAX_RESULT_LENGTH)
259
+ throw new EngineFallbackError();
260
+ }
261
+ function evalCall(node, data) {
262
+ const receiver = evalNode(node.receiver, data);
263
+ const receiverMissing = receiver === null || receiver === undefined;
264
+ if (node.optional && receiverMissing) {
265
+ throw chainShortCircuit;
266
+ }
267
+ if (receiverMissing) {
268
+ throw new TypeError(`Cannot read properties of ${(0, grammar_1.toStr)(receiver)} (reading '${node.method}')`);
269
+ }
270
+ // An own property shadowing the method (an engine-resolved $parameter value
271
+ // can carry one) would take precedence in the engines.
272
+ if ((0, grammar_1.hasOwn)(receiver, node.method)) {
273
+ throw new EngineFallbackError();
274
+ }
275
+ const method = methodFor(receiver, node.method);
276
+ const args = node.args.map((argument) => evalNode(argument, data));
277
+ if (!args.every((arg) => isAllowedArgument(node.method, arg))) {
278
+ throw new EngineFallbackError();
279
+ }
280
+ if ((0, grammar_1.isArray)(receiver)) {
281
+ if (STRINGIFIES_ELEMENTS.has(node.method))
282
+ assertPrimitiveElements(receiver);
283
+ if (node.method === 'concat')
284
+ assertConcatWeight(receiver, args);
285
+ }
286
+ assertPreflightSize(receiver, node.method, args);
287
+ return bounded(method.apply(receiver, args));
288
+ }
289
+ function evalChain(node, data) {
290
+ try {
291
+ return evalNode(node.expression, data);
292
+ }
293
+ catch (error) {
294
+ if (error === chainShortCircuit)
295
+ return undefined;
296
+ throw error;
297
+ }
298
+ }
299
+ function evalUnary(node, data) {
300
+ const argument = evalNode(node.argument, data);
301
+ if (node.op === '!') {
302
+ return !argument;
303
+ }
304
+ if (!isPrimitive(argument)) {
305
+ throw new EngineFallbackError();
306
+ }
307
+ return node.op === '-' ? -(0, grammar_1.toNum)(argument) : (0, grammar_1.toNum)(argument);
308
+ }
309
+ function evalBinary(node, data) {
310
+ const left = evalNode(node.left, data);
311
+ const right = evalNode(node.right, data);
312
+ if (!isPrimitive(left) || !isPrimitive(right)) {
313
+ throw new EngineFallbackError();
314
+ }
315
+ return binaryOps[node.op](left, right);
316
+ }
317
+ function evalLogical(node, data) {
318
+ const left = evalNode(node.left, data);
319
+ switch (node.op) {
320
+ case '&&':
321
+ return left ? evalNode(node.right, data) : left;
322
+ case '||':
323
+ return left ? left : evalNode(node.right, data);
324
+ case '??':
325
+ return left ?? evalNode(node.right, data);
326
+ }
327
+ }
328
+ function evalNode(node, data) {
329
+ switch (node.kind) {
330
+ case 'literal':
331
+ return node.value;
332
+ case 'root':
333
+ return node.name === '$json' ? data.$json : data.$parameter;
334
+ case 'undefined':
335
+ return undefined;
336
+ case 'member':
337
+ return evalMember(node, data);
338
+ case 'chain':
339
+ return evalChain(node, data);
340
+ case 'unary':
341
+ return evalUnary(node, data);
342
+ case 'binary':
343
+ return evalBinary(node, data);
344
+ case 'logical':
345
+ return evalLogical(node, data);
346
+ case 'conditional':
347
+ return evalNode(node.test, data)
348
+ ? evalNode(node.consequent, data)
349
+ : evalNode(node.alternate, data);
350
+ case 'call':
351
+ return evalCall(node, data);
352
+ }
353
+ }
354
+ /**
355
+ * Tournament wraps each code chunk in try/catch and routes errors to the E()
356
+ * handler, which rethrows ExpressionErrors and swallows everything else (the
357
+ * chunk then yields undefined). Mirror that exactly.
358
+ */
359
+ function evalChunk(node, data) {
360
+ try {
361
+ return evalNode(node, data);
362
+ }
363
+ catch (error) {
364
+ const rethrow = error instanceof EngineFallbackError ||
365
+ error instanceof expression_error_1.ExpressionError ||
366
+ error instanceof expression_extension_error_1.ExpressionExtensionError;
367
+ if (rethrow)
368
+ throw error;
369
+ return undefined;
370
+ }
371
+ }
372
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../../src/expressions/native-evaluation/evaluator.ts"],"names":[],"mappings":"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"}