@n8n/expression-runtime 0.8.0 → 0.9.1

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 (73) hide show
  1. package/dist/bundle/runtime.esm.js +15 -15
  2. package/dist/bundle/runtime.esm.js.map +4 -4
  3. package/dist/bundle/runtime.iife.js +15 -15
  4. package/dist/bundle/runtime.iife.js.map +4 -4
  5. package/dist/cjs/bridge/isolated-vm-bridge.d.ts +40 -34
  6. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
  7. package/dist/cjs/bridge/isolated-vm-bridge.js +97 -154
  8. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
  9. package/dist/cjs/build.tsbuildinfo +1 -1
  10. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
  11. package/dist/cjs/evaluator/expression-evaluator.js +5 -4
  12. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
  13. package/dist/cjs/extensions/function-extensions.d.ts.map +1 -1
  14. package/dist/cjs/extensions/function-extensions.js +8 -5
  15. package/dist/cjs/extensions/function-extensions.js.map +1 -1
  16. package/dist/cjs/index.d.ts +1 -0
  17. package/dist/cjs/index.d.ts.map +1 -1
  18. package/dist/cjs/index.js +4 -2
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/pool/isolate-pool.d.ts +3 -2
  21. package/dist/cjs/pool/isolate-pool.d.ts.map +1 -1
  22. package/dist/cjs/pool/isolate-pool.js +5 -4
  23. package/dist/cjs/pool/isolate-pool.js.map +1 -1
  24. package/dist/cjs/runtime/context.d.ts +18 -0
  25. package/dist/cjs/runtime/context.d.ts.map +1 -0
  26. package/dist/cjs/runtime/{reset.js → context.js} +93 -114
  27. package/dist/cjs/runtime/context.js.map +1 -0
  28. package/dist/cjs/runtime/index.d.ts +1 -28
  29. package/dist/cjs/runtime/index.d.ts.map +1 -1
  30. package/dist/cjs/runtime/index.js +3 -5
  31. package/dist/cjs/runtime/index.js.map +1 -1
  32. package/dist/cjs/runtime/lazy-proxy.d.ts +9 -3
  33. package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
  34. package/dist/cjs/runtime/lazy-proxy.js +19 -13
  35. package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
  36. package/dist/esm/bridge/isolated-vm-bridge.d.ts +40 -34
  37. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
  38. package/dist/esm/bridge/isolated-vm-bridge.js +97 -154
  39. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
  40. package/dist/esm/build.tsbuildinfo +1 -1
  41. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
  42. package/dist/esm/evaluator/expression-evaluator.js +4 -3
  43. package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
  44. package/dist/esm/extensions/function-extensions.d.ts.map +1 -1
  45. package/dist/esm/extensions/function-extensions.js +8 -5
  46. package/dist/esm/extensions/function-extensions.js.map +1 -1
  47. package/dist/esm/index.d.ts +1 -0
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/index.js +1 -0
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/pool/isolate-pool.d.ts +3 -2
  52. package/dist/esm/pool/isolate-pool.d.ts.map +1 -1
  53. package/dist/esm/pool/isolate-pool.js +4 -3
  54. package/dist/esm/pool/isolate-pool.js.map +1 -1
  55. package/dist/esm/runtime/context.d.ts +18 -0
  56. package/dist/esm/runtime/context.d.ts.map +1 -0
  57. package/dist/esm/runtime/{reset.js → context.js} +92 -113
  58. package/dist/esm/runtime/context.js.map +1 -0
  59. package/dist/esm/runtime/index.d.ts +1 -28
  60. package/dist/esm/runtime/index.d.ts.map +1 -1
  61. package/dist/esm/runtime/index.js +2 -4
  62. package/dist/esm/runtime/index.js.map +1 -1
  63. package/dist/esm/runtime/lazy-proxy.d.ts +9 -3
  64. package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
  65. package/dist/esm/runtime/lazy-proxy.js +19 -13
  66. package/dist/esm/runtime/lazy-proxy.js.map +1 -1
  67. package/package.json +5 -4
  68. package/dist/cjs/runtime/reset.d.ts +0 -16
  69. package/dist/cjs/runtime/reset.d.ts.map +0 -1
  70. package/dist/cjs/runtime/reset.js.map +0 -1
  71. package/dist/esm/runtime/reset.d.ts +0 -16
  72. package/dist/esm/runtime/reset.d.ts.map +0 -1
  73. package/dist/esm/runtime/reset.js.map +0 -1
@@ -1,11 +1,7 @@
1
1
  declare global {
2
2
  namespace globalThis {
3
- var __getValueAtPath: any;
4
- var __getArrayElement: any;
5
- var __callFunctionAtPath: any;
6
- var __data: Record<string, unknown>;
7
3
  var createDeepLazyProxy: (basePath?: string[]) => any;
8
- var resetDataProxies: () => void;
4
+ var buildContext: (getValueAtPath: any, getArrayElement: any, callFunctionAtPath: any, timezone?: string) => Record<string, unknown>;
9
5
  var SafeObject: typeof Object;
10
6
  var SafeError: typeof Error;
11
7
  var DateTime: typeof import('luxon').DateTime;
@@ -14,29 +10,6 @@ declare global {
14
10
  var __prepareForTransfer: (value: unknown) => unknown;
15
11
  var extend: typeof import('../extensions/extend').extend;
16
12
  var extendOptional: typeof import('../extensions/extend').extendOptional;
17
- var $json: unknown;
18
- var $binary: unknown;
19
- var $input: unknown;
20
- var $node: unknown;
21
- var $parameter: unknown;
22
- var $workflow: unknown;
23
- var $prevNode: unknown;
24
- var $data: unknown;
25
- var $env: unknown;
26
- var $runIndex: number | undefined;
27
- var $itemIndex: number | undefined;
28
- var $now: import('luxon').DateTime;
29
- var $today: import('luxon').DateTime;
30
- var $items: unknown;
31
- var $execution: unknown;
32
- var $vars: unknown;
33
- var $secrets: unknown;
34
- var $executionId: string | undefined;
35
- var $resumeWebhookUrl: string | undefined;
36
- var $webhookId: string | undefined;
37
- var $nodeId: string | undefined;
38
- var $nodeVersion: number | undefined;
39
- var $: (nodeName: string) => unknown;
40
13
  }
41
14
  }
42
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAUA,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,UAAU,CAAC;QAEpB,IAAI,gBAAgB,EAAE,GAAG,CAAC;QAC1B,IAAI,iBAAiB,EAAE,GAAG,CAAC;QAC3B,IAAI,oBAAoB,EAAE,GAAG,CAAC;QAG9B,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAGpC,IAAI,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC;QAGtD,IAAI,gBAAgB,EAAE,MAAM,IAAI,CAAC;QAGjC,IAAI,UAAU,EAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,SAAS,EAAE,OAAO,KAAK,CAAC;QAG5B,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;QACtD,IAAI,MAAM,EAAE,cAAc,sBAAsB,EAAE,MAAM,CAAC;QACzD,IAAI,cAAc,EAAE,cAAc,sBAAsB,EAAE,cAAc,CAAC;QAGzE,IAAI,KAAK,EAAE,OAAO,CAAC;QACnB,IAAI,OAAO,EAAE,OAAO,CAAC;QACrB,IAAI,MAAM,EAAE,OAAO,CAAC;QACpB,IAAI,KAAK,EAAE,OAAO,CAAC;QACnB,IAAI,UAAU,EAAE,OAAO,CAAC;QACxB,IAAI,SAAS,EAAE,OAAO,CAAC;QACvB,IAAI,SAAS,EAAE,OAAO,CAAC;QACvB,IAAI,KAAK,EAAE,OAAO,CAAC;QACnB,IAAI,IAAI,EAAE,OAAO,CAAC;QAClB,IAAI,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,IAAI,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,IAAI,IAAI,EAAE,OAAO,OAAO,EAAE,QAAQ,CAAC;QACnC,IAAI,MAAM,EAAE,OAAO,OAAO,EAAE,QAAQ,CAAC;QACrC,IAAI,MAAM,EAAE,OAAO,CAAC;QACpB,IAAI,UAAU,EAAE,OAAO,CAAC;QACxB,IAAI,KAAK,EAAE,OAAO,CAAC;QACnB,IAAI,QAAQ,EAAE,OAAO,CAAC;QACtB,IAAI,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,IAAI,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1C,IAAI,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,IAAI,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,IAAI,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;KACrC;CACD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAUA,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,UAAU,CAAC;QAEpB,IAAI,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC;QAGtD,IAAI,YAAY,EAAE,CACjB,cAAc,EAAE,GAAG,EACnB,eAAe,EAAE,GAAG,EACpB,kBAAkB,EAAE,GAAG,EACvB,QAAQ,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAG7B,IAAI,UAAU,EAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,SAAS,EAAE,OAAO,KAAK,CAAC;QAG5B,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;QACtD,IAAI,MAAM,EAAE,cAAc,sBAAsB,EAAE,MAAM,CAAC;QACzD,IAAI,cAAc,EAAE,cAAc,sBAAsB,EAAE,cAAc,CAAC;KACzE;CACD"}
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "luxon", "../extensions/extend", "./safe-globals", "./lazy-proxy", "./reset", "./serialize"], factory);
7
+ define(["require", "exports", "luxon", "../extensions/extend", "./safe-globals", "./lazy-proxy", "./context", "./serialize"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -13,7 +13,7 @@
13
13
  const extend_1 = require("../extensions/extend");
14
14
  const safe_globals_1 = require("./safe-globals");
15
15
  const lazy_proxy_1 = require("./lazy-proxy");
16
- const reset_1 = require("./reset");
16
+ const context_1 = require("./context");
17
17
  const serialize_1 = require("./serialize");
18
18
  // ============================================================================
19
19
  // Library Setup
@@ -31,9 +31,7 @@
31
31
  globalThis.SafeError = safe_globals_1.SafeError;
32
32
  globalThis.ExpressionError = safe_globals_1.ExpressionError;
33
33
  globalThis.createDeepLazyProxy = lazy_proxy_1.createDeepLazyProxy;
34
- globalThis.resetDataProxies = reset_1.resetDataProxies;
34
+ globalThis.buildContext = context_1.buildContext;
35
35
  globalThis.__prepareForTransfer = serialize_1.__prepareForTransfer;
36
- // Initialize empty __data object (populated by resetDataProxies before each evaluation)
37
- globalThis.__data = {};
38
36
  });
39
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;IAAA,iCAAqD;IAErD,iDAA8D;IAE9D,iDAAwE;IACxE,6CAAmD;IACnD,mCAA2C;IAC3C,2CAAmD;IA0DnD,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E,gEAAgE;IAChE,UAAU,CAAC,MAAM,GAAG,eAAM,CAAC;IAC3B,UAAU,CAAC,cAAc,GAAG,uBAAc,CAAC;IAC3C,UAAU,CAAC,QAAQ,GAAG,gBAAQ,CAAC;IAC/B,UAAU,CAAC,QAAQ,GAAG,gBAAQ,CAAC;IAC/B,UAAU,CAAC,QAAQ,GAAG,gBAAQ,CAAC;IAE/B,+EAA+E;IAC/E,gDAAgD;IAChD,+EAA+E;IAE/E,UAAU,CAAC,UAAU,GAAG,yBAAU,CAAC;IACnC,UAAU,CAAC,SAAS,GAAG,wBAAS,CAAC;IAChC,UAAkB,CAAC,eAAe,GAAG,8BAAe,CAAC;IAEtD,UAAU,CAAC,mBAAmB,GAAG,gCAAmB,CAAC;IACrD,UAAU,CAAC,gBAAgB,GAAG,wBAAgB,CAAC;IAC/C,UAAU,CAAC,oBAAoB,GAAG,gCAAoB,CAAC;IAEvD,wFAAwF;IACxF,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;IAAA,iCAAqD;IAErD,iDAA8D;IAE9D,iDAAwE;IACxE,6CAAmD;IACnD,uCAAyC;IACzC,2CAAmD;IA8BnD,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E,gEAAgE;IAChE,UAAU,CAAC,MAAM,GAAG,eAAM,CAAC;IAC3B,UAAU,CAAC,cAAc,GAAG,uBAAc,CAAC;IAC3C,UAAU,CAAC,QAAQ,GAAG,gBAAQ,CAAC;IAC/B,UAAU,CAAC,QAAQ,GAAG,gBAAQ,CAAC;IAC/B,UAAU,CAAC,QAAQ,GAAG,gBAAQ,CAAC;IAE/B,+EAA+E;IAC/E,gDAAgD;IAChD,+EAA+E;IAE/E,UAAU,CAAC,UAAU,GAAG,yBAAU,CAAC;IACnC,UAAU,CAAC,SAAS,GAAG,wBAAS,CAAC;IAChC,UAAkB,CAAC,eAAe,GAAG,8BAAe,CAAC;IAEtD,UAAU,CAAC,mBAAmB,GAAG,gCAAmB,CAAC;IACrD,UAAU,CAAC,YAAY,GAAG,sBAAY,CAAC;IACvC,UAAU,CAAC,oBAAoB,GAAG,gCAAoB,CAAC"}
@@ -28,14 +28,20 @@ export declare function getProxyPath(obj: object): string[] | undefined;
28
28
  * the isolate boundary using metadata-driven callbacks.
29
29
  *
30
30
  * Pattern:
31
- * 1. When property accessed: Call __getValueAtPath([path]) to get metadata
31
+ * 1. When property accessed: Call getValueAtPath([path]) to get metadata
32
32
  * 2. Metadata indicates type: primitive, object, array, or function
33
33
  * 3. For objects/arrays: Create nested proxy for lazy loading
34
- * 4. For functions: Create wrapper that calls __callFunctionAtPath
34
+ * 4. For functions: Create wrapper that calls callFunctionAtPath
35
35
  * 5. Cache all fetched values in target to avoid repeated callbacks
36
36
  *
37
37
  * @param basePath - Current path in object tree (e.g., ['$json', 'user'])
38
+ * @param knownKeys - Optional pre-known keys for the proxy
39
+ * @param callbacks - ivm.Reference callbacks for cross-isolate communication
38
40
  * @returns Proxy object with lazy loading behavior
39
41
  */
40
- export declare function createDeepLazyProxy(basePath?: string[], knownKeys?: string[]): any;
42
+ export declare function createDeepLazyProxy(basePath?: string[], knownKeys?: string[], callbacks?: {
43
+ getValueAtPath: any;
44
+ getArrayElement: any;
45
+ callFunctionAtPath: any;
46
+ }): any;
41
47
  //# sourceMappingURL=lazy-proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-proxy.d.ts","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAsBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAKzD;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAE9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAM,EAAO,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAkMtF"}
1
+ {"version":3,"file":"lazy-proxy.d.ts","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAsBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAKzD;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAE9D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,GAAE,MAAM,EAAO,EACvB,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,SAAS,CAAC,EAAE;IACX,cAAc,EAAE,GAAG,CAAC;IACpB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;CACxB,GACC,GAAG,CAsML"}
@@ -58,16 +58,22 @@
58
58
  * the isolate boundary using metadata-driven callbacks.
59
59
  *
60
60
  * Pattern:
61
- * 1. When property accessed: Call __getValueAtPath([path]) to get metadata
61
+ * 1. When property accessed: Call getValueAtPath([path]) to get metadata
62
62
  * 2. Metadata indicates type: primitive, object, array, or function
63
63
  * 3. For objects/arrays: Create nested proxy for lazy loading
64
- * 4. For functions: Create wrapper that calls __callFunctionAtPath
64
+ * 4. For functions: Create wrapper that calls callFunctionAtPath
65
65
  * 5. Cache all fetched values in target to avoid repeated callbacks
66
66
  *
67
67
  * @param basePath - Current path in object tree (e.g., ['$json', 'user'])
68
+ * @param knownKeys - Optional pre-known keys for the proxy
69
+ * @param callbacks - ivm.Reference callbacks for cross-isolate communication
68
70
  * @returns Proxy object with lazy loading behavior
69
71
  */
70
- function createDeepLazyProxy(basePath = [], knownKeys) {
72
+ function createDeepLazyProxy(basePath = [], knownKeys, callbacks) {
73
+ if (!callbacks) {
74
+ throw new Error('createDeepLazyProxy requires callbacks parameter');
75
+ }
76
+ const { getValueAtPath, getArrayElement, callFunctionAtPath } = callbacks;
71
77
  // Cache for keys fetched from the bridge (root proxies without knownKeys).
72
78
  // Shared between ownKeys and getOwnPropertyDescriptor for consistency.
73
79
  let fetchedKeys;
@@ -76,7 +82,7 @@
76
82
  return knownKeys;
77
83
  if (fetchedKeys)
78
84
  return fetchedKeys;
79
- const value = globalThis.__getValueAtPath.applySync(null, [basePath], {
85
+ const value = getValueAtPath.applySync(null, [basePath], {
80
86
  arguments: { copy: true },
81
87
  result: { copy: true },
82
88
  });
@@ -124,9 +130,9 @@
124
130
  }
125
131
  // Build path for this property
126
132
  const path = [...basePath, prop];
127
- // Call back to parent to get metadata/value
128
- // Note: __getValueAtPath is an ivm.Reference set by bridge
129
- const value = globalThis.__getValueAtPath.applySync(null, [path], {
133
+ // Call back to host to get metadata/value
134
+ // Note: getValueAtPath is an ivm.Reference passed via callbacks
135
+ const value = getValueAtPath.applySync(null, [path], {
130
136
  arguments: { copy: true },
131
137
  result: { copy: true },
132
138
  });
@@ -142,7 +148,7 @@
142
148
  if (value && typeof value === 'object' && value.__isFunction) {
143
149
  // Create function wrapper that calls back to parent
144
150
  target[prop] = function (...args) {
145
- const result = globalThis.__callFunctionAtPath.applySync(null, [path, ...args], {
151
+ const result = callFunctionAtPath.applySync(null, [path, ...args], {
146
152
  arguments: { copy: true },
147
153
  result: { copy: true },
148
154
  });
@@ -179,7 +185,7 @@
179
185
  // Check cache
180
186
  if (!(arrProp in arrTarget)) {
181
187
  // Fetch element from parent
182
- const element = globalThis.__getArrayElement.applySync(null, [path, index], {
188
+ const element = getArrayElement.applySync(null, [path, index], {
183
189
  arguments: { copy: true },
184
190
  result: { copy: true },
185
191
  });
@@ -187,13 +193,13 @@
187
193
  // Handle element metadata (arrays and objects need proxies)
188
194
  if (element && typeof element === 'object' && element.__isArray) {
189
195
  const elementPath = [...path, String(index)];
190
- arrTarget[arrProp] = createDeepLazyProxy(elementPath);
196
+ arrTarget[arrProp] = createDeepLazyProxy(elementPath, undefined, callbacks);
191
197
  }
192
198
  else if (isObjectMetadata(element)) {
193
199
  // Object metadata: create nested proxy, passing known keys to
194
200
  // avoid an extra __getValueAtPath round-trip for ownKeys/Object.keys()
195
201
  const elementPath = [...path, String(index)];
196
- arrTarget[arrProp] = createDeepLazyProxy(elementPath, element.__keys);
202
+ arrTarget[arrProp] = createDeepLazyProxy(elementPath, element.__keys, callbacks);
197
203
  }
198
204
  else {
199
205
  // Primitive element
@@ -213,7 +219,7 @@
213
219
  // Handle objects - metadata: { __isObject: true, __keys: string[] }
214
220
  if (isObjectMetadata(value)) {
215
221
  // Create nested proxy for recursive lazy loading, passing known keys
216
- target[prop] = createDeepLazyProxy(path, value.__keys);
222
+ target[prop] = createDeepLazyProxy(path, value.__keys, callbacks);
217
223
  return target[prop];
218
224
  }
219
225
  // Primitive value - cache and return
@@ -231,7 +237,7 @@
231
237
  }
232
238
  // Build path and check existence via callback
233
239
  const path = [...basePath, prop];
234
- const value = globalThis.__getValueAtPath.applySync(null, [path], {
240
+ const value = getValueAtPath.applySync(null, [path], {
235
241
  arguments: { copy: true },
236
242
  result: { copy: true },
237
243
  });
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-proxy.js","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lazy-proxy.js","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,6 @@ export declare class IsolatedVmBridge implements RuntimeBridge {
17
17
  private disposed;
18
18
  private config;
19
19
  private logger;
20
- private scriptCache;
21
- private valueAtPathRef?;
22
- private arrayElementRef?;
23
- private callFunctionRef?;
24
- private resetDataProxiesRef?;
25
20
  constructor(config?: BridgeConfig);
26
21
  /**
27
22
  * Initialize the isolate and create execution context.
@@ -42,7 +37,7 @@ export declare class IsolatedVmBridge implements RuntimeBridge {
42
37
  * - DateTime, extend, extendOptional (expression engine globals)
43
38
  * - SafeObject and SafeError wrappers
44
39
  * - createDeepLazyProxy function
45
- * - __data object initialization
40
+ * - buildContext function
46
41
  *
47
42
  * @private
48
43
  * @throws {Error} If context not initialized or bundle loading fails
@@ -61,56 +56,67 @@ export declare class IsolatedVmBridge implements RuntimeBridge {
61
56
  /**
62
57
  * Inject the E() error handler into the isolate context.
63
58
  *
64
- * Tournament wraps expressions with try-catch that calls E(error, this).
65
- * This handler:
66
- * - Re-throws security violations from __sanitize
67
- * - Swallows TypeErrors (failed attack attempts return undefined)
68
- * - Re-throws all other errors
59
+ * There are two exception-handling layers inside the isolate:
60
+ *
61
+ * 1. **Inner layer (this handler, `E()`)** — Tournament wraps each
62
+ * expression with try-catch that calls `E(error, this)`. This handler
63
+ * must match the legacy engine's behavior (set in expression.ts via
64
+ * setErrorHandler):
65
+ * - Re-throw ExpressionError / ExpressionExtensionError
66
+ * - Swallow everything else (TypeErrors, generic Errors, etc.)
67
+ *
68
+ * 2. **Outer layer (`wrappedCode` try-catch in `execute()`)** — Catches
69
+ * anything that escaped `E()` (e.g. re-thrown ExpressionErrors) and
70
+ * serializes it into a sentinel object so the host can reconstruct it.
71
+ *
72
+ * Inside the isolate, errors from host callbacks arrive as sentinel
73
+ * objects ({ __isError, name, message, ... }) rather than class instances,
74
+ * so we match by name instead of instanceof.
69
75
  *
70
76
  * @private
71
77
  * @throws {Error} If context not initialized
72
78
  */
73
79
  private injectErrorHandler;
74
80
  /**
75
- * Reset data proxies in the isolate context.
81
+ * Create an ivm.Reference callback for getting value/metadata at a path.
76
82
  *
77
- * This method should be called before each execute() to:
78
- * 1. Clear proxy caches from previous evaluations
79
- * 2. Initialize fresh workflow data references
80
- * 3. Expose workflow properties to globalThis
81
- *
82
- * The reset function runs in the isolate and calls back to the host
83
- * via ivm.Reference callbacks to fetch workflow data.
83
+ * Used by createDeepLazyProxy when accessing properties. Returns metadata
84
+ * markers for functions, arrays, and objects, or the primitive value directly.
84
85
  *
86
+ * @param data - Current workflow data to use for callback responses
85
87
  * @private
86
- * @throws {Error} If context not initialized or reset fails
87
88
  */
88
- private resetDataProxies;
89
+ private createGetValueAtPathRef;
89
90
  /**
90
- * Register callback functions for cross-isolate communication.
91
+ * Create an ivm.Reference callback for getting array elements at an index.
91
92
  *
92
- * Creates three ivm.Reference callbacks that the runtime bundle uses
93
- * to fetch data from the host process:
93
+ * Used by array proxy when accessing numeric indices.
94
94
  *
95
- * - __getValueAtPath: Returns metadata or primitive for a property path
96
- * - __getArrayElement: Returns individual array elements
97
- * - __callFunctionAtPath: Executes functions in host context
95
+ * @param data - Current workflow data to use for callback responses
96
+ * @private
97
+ */
98
+ private createGetArrayElementRef;
99
+ /**
100
+ * Create an ivm.Reference callback for calling functions at a path.
98
101
  *
99
- * These callbacks are called synchronously from isolate proxy traps.
102
+ * Used when expressions invoke functions from workflow data.
100
103
  *
101
104
  * @param data - Current workflow data to use for callback responses
102
105
  * @private
103
106
  */
104
- private registerCallbacks;
107
+ private createCallFunctionAtPathRef;
105
108
  /**
106
109
  * Execute JavaScript code in the isolated context.
107
110
  *
108
111
  * Flow:
109
- * 1. Register callbacks as ivm.Reference for cross-isolate communication
110
- * 2. Call resetDataProxies() to initialize workflow data proxies
111
- * 3. Compile script (with caching for performance)
112
- * 4. Execute with timeout enforcement
113
- * 5. Return result (copied from isolate)
112
+ * 1. Create three ivm.Reference callbacks scoped to the current data
113
+ * 2. Use evalClosureSync to run the code in a closure where $0/$1/$2
114
+ * are the callback references no global mutable state
115
+ * 3. buildContext() inside the isolate creates a fresh evaluation context
116
+ * from the closure-scoped references
117
+ *
118
+ * Each call gets its own closure, so nested and concurrent evaluations
119
+ * cannot interfere with each other.
114
120
  *
115
121
  * @param code - JavaScript expression to evaluate
116
122
  * @param data - Workflow data (e.g., { $json: {...}, $runIndex: 0 })
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-vm-bridge.d.ts","sourceRoot":"","sources":["../../../src/bridge/isolated-vm-bridge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA0E5E;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,MAAM,CAAmC;IAIjD,OAAO,CAAC,WAAW,CAAiC;IAIpD,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAgB;IAKxC,OAAO,CAAC,mBAAmB,CAAC,CAAgB;gBAEhC,MAAM,GAAE,YAAiB;IAYrC;;;;;;;;;;OAUG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCjC;;;;;;;;;;;OAWG;YACW,mBAAmB;IAgCjC;;;;;;;;OAQG;YACW,iBAAiB;IA6B/B;;;;;;;;;;;OAWG;YACW,kBAAkB;IAwBhC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,iBAAiB;IAkLzB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO;IAiGvF;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9B;;;;OAIG;IACH,UAAU,IAAI,OAAO;CAGrB"}
1
+ {"version":3,"file":"isolated-vm-bridge.d.ts","sourceRoot":"","sources":["../../../src/bridge/isolated-vm-bridge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA0E5E;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,MAAM,CAAmC;gBAErC,MAAM,GAAE,YAAiB;IAYrC;;;;;;;;;;OAUG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC;;;;;;;;;;;OAWG;YACW,mBAAmB;IAgCjC;;;;;;;;OAQG;YACW,iBAAiB;IA4B/B;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,kBAAkB;IAwBhC;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAgE/B;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IAyDhC;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IAkCnC;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO;IAsFvF;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B;;;;OAIG;IACH,UAAU,IAAI,OAAO;CAGrB"}