@n8n/expression-runtime 0.21.0 → 0.23.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 (115) hide show
  1. package/dist/cjs/bridge/bridge-messages.d.ts +8 -8
  2. package/dist/cjs/bridge/bridge-messages.js +234 -244
  3. package/dist/cjs/bridge/bridge-messages.js.map +1 -1
  4. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
  5. package/dist/cjs/bridge/isolated-vm-bridge.js +633 -643
  6. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
  7. package/dist/cjs/build.tsbuildinfo +1 -1
  8. package/dist/cjs/evaluator/error-classification.js +15 -25
  9. package/dist/cjs/evaluator/error-classification.js.map +1 -1
  10. package/dist/cjs/evaluator/expression-evaluator.d.ts +7 -1
  11. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
  12. package/dist/cjs/evaluator/expression-evaluator.js +152 -155
  13. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
  14. package/dist/cjs/evaluator/lru-cache.d.ts.map +1 -1
  15. package/dist/cjs/evaluator/lru-cache.js +35 -45
  16. package/dist/cjs/evaluator/lru-cache.js.map +1 -1
  17. package/dist/cjs/extensions/array-extensions.js +589 -599
  18. package/dist/cjs/extensions/array-extensions.js.map +1 -1
  19. package/dist/cjs/extensions/boolean-extensions.js +38 -48
  20. package/dist/cjs/extensions/boolean-extensions.js.map +1 -1
  21. package/dist/cjs/extensions/date-extensions.js +500 -510
  22. package/dist/cjs/extensions/date-extensions.js.map +1 -1
  23. package/dist/cjs/extensions/expression-extension-error.d.ts.map +1 -1
  24. package/dist/cjs/extensions/expression-extension-error.js +12 -22
  25. package/dist/cjs/extensions/expression-extension-error.js.map +1 -1
  26. package/dist/cjs/extensions/extend.js +162 -172
  27. package/dist/cjs/extensions/extend.js.map +1 -1
  28. package/dist/cjs/extensions/extensions.js +2 -12
  29. package/dist/cjs/extensions/function-extensions.d.ts +10 -18
  30. package/dist/cjs/extensions/function-extensions.d.ts.map +1 -1
  31. package/dist/cjs/extensions/function-extensions.js +78 -88
  32. package/dist/cjs/extensions/function-extensions.js.map +1 -1
  33. package/dist/cjs/extensions/number-extensions.js +225 -235
  34. package/dist/cjs/extensions/number-extensions.js.map +1 -1
  35. package/dist/cjs/extensions/object-extensions.js +286 -296
  36. package/dist/cjs/extensions/object-extensions.js.map +1 -1
  37. package/dist/cjs/extensions/string-extensions.d.ts +1 -1
  38. package/dist/cjs/extensions/string-extensions.d.ts.map +1 -1
  39. package/dist/cjs/extensions/string-extensions.js +758 -768
  40. package/dist/cjs/extensions/string-extensions.js.map +1 -1
  41. package/dist/cjs/extensions/utils.d.ts.map +1 -1
  42. package/dist/cjs/extensions/utils.js +28 -38
  43. package/dist/cjs/extensions/utils.js.map +1 -1
  44. package/dist/cjs/index.js +32 -42
  45. package/dist/cjs/index.js.map +1 -1
  46. package/dist/cjs/observability/metrics.d.ts +27 -27
  47. package/dist/cjs/observability/metrics.d.ts.map +1 -1
  48. package/dist/cjs/observability/metrics.js +59 -69
  49. package/dist/cjs/observability/metrics.js.map +1 -1
  50. package/dist/cjs/observability/noop-provider.js +28 -38
  51. package/dist/cjs/observability/noop-provider.js.map +1 -1
  52. package/dist/cjs/pool/idle-scaling-pool.d.ts.map +1 -1
  53. package/dist/cjs/pool/idle-scaling-pool.js +134 -144
  54. package/dist/cjs/pool/idle-scaling-pool.js.map +1 -1
  55. package/dist/cjs/pool/isolate-pool.d.ts.map +1 -1
  56. package/dist/cjs/pool/isolate-pool.js +101 -111
  57. package/dist/cjs/pool/isolate-pool.js.map +1 -1
  58. package/dist/cjs/runtime/context.js +418 -428
  59. package/dist/cjs/runtime/context.js.map +1 -1
  60. package/dist/cjs/runtime/index.js +26 -36
  61. package/dist/cjs/runtime/index.js.map +1 -1
  62. package/dist/cjs/runtime/jmespath.js +72 -82
  63. package/dist/cjs/runtime/jmespath.js.map +1 -1
  64. package/dist/cjs/runtime/lazy-proxy.js +238 -248
  65. package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
  66. package/dist/cjs/runtime/safe-globals.d.ts.map +1 -1
  67. package/dist/cjs/runtime/safe-globals.js +134 -144
  68. package/dist/cjs/runtime/safe-globals.js.map +1 -1
  69. package/dist/cjs/runtime/serialize.js +54 -64
  70. package/dist/cjs/runtime/serialize.js.map +1 -1
  71. package/dist/cjs/runtime/utils.js +20 -30
  72. package/dist/cjs/runtime/utils.js.map +1 -1
  73. package/dist/cjs/types/bridge.js +15 -25
  74. package/dist/cjs/types/bridge.js.map +1 -1
  75. package/dist/cjs/types/evaluator.d.ts +5 -1
  76. package/dist/cjs/types/evaluator.d.ts.map +1 -1
  77. package/dist/cjs/types/evaluator.js +35 -45
  78. package/dist/cjs/types/evaluator.js.map +1 -1
  79. package/dist/cjs/types/index.js +14 -24
  80. package/dist/cjs/types/index.js.map +1 -1
  81. package/dist/cjs/types/runtime.d.ts.map +1 -1
  82. package/dist/cjs/types/runtime.js +27 -37
  83. package/dist/cjs/types/runtime.js.map +1 -1
  84. package/dist/esm/bridge/bridge-messages.d.ts +8 -8
  85. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
  86. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
  87. package/dist/esm/build.tsbuildinfo +1 -1
  88. package/dist/esm/evaluator/expression-evaluator.d.ts +7 -1
  89. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
  90. package/dist/esm/evaluator/expression-evaluator.js +8 -1
  91. package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
  92. package/dist/esm/evaluator/lru-cache.d.ts.map +1 -1
  93. package/dist/esm/evaluator/lru-cache.js.map +1 -1
  94. package/dist/esm/extensions/expression-extension-error.d.ts.map +1 -1
  95. package/dist/esm/extensions/function-extensions.d.ts +10 -18
  96. package/dist/esm/extensions/function-extensions.d.ts.map +1 -1
  97. package/dist/esm/extensions/number-extensions.js.map +1 -1
  98. package/dist/esm/extensions/string-extensions.d.ts +1 -1
  99. package/dist/esm/extensions/string-extensions.d.ts.map +1 -1
  100. package/dist/esm/extensions/string-extensions.js.map +1 -1
  101. package/dist/esm/extensions/utils.d.ts.map +1 -1
  102. package/dist/esm/observability/metrics.d.ts +27 -27
  103. package/dist/esm/observability/metrics.d.ts.map +1 -1
  104. package/dist/esm/pool/idle-scaling-pool.d.ts.map +1 -1
  105. package/dist/esm/pool/idle-scaling-pool.js.map +1 -1
  106. package/dist/esm/pool/isolate-pool.d.ts.map +1 -1
  107. package/dist/esm/pool/isolate-pool.js.map +1 -1
  108. package/dist/esm/runtime/lazy-proxy.js.map +1 -1
  109. package/dist/esm/runtime/safe-globals.d.ts.map +1 -1
  110. package/dist/esm/types/evaluator.d.ts +5 -1
  111. package/dist/esm/types/evaluator.d.ts.map +1 -1
  112. package/dist/esm/types/evaluator.js.map +1 -1
  113. package/dist/esm/types/runtime.d.ts.map +1 -1
  114. package/dist/esm/types/runtime.js.map +1 -1
  115. package/package.json +7 -6
@@ -1,270 +1,260 @@
1
+ "use strict";
1
2
  // ============================================================================
2
3
  // Deep Lazy Proxy System
3
4
  // ============================================================================
4
5
  // For more information about Proxies see
5
6
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
6
- (function (factory) {
7
- if (typeof module === "object" && typeof module.exports === "object") {
8
- var v = factory(require, exports);
9
- if (v !== undefined) module.exports = v;
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.isObjectMetadata = isObjectMetadata;
9
+ exports.isArrayMetadata = isArrayMetadata;
10
+ exports.throwIfErrorSentinel = throwIfErrorSentinel;
11
+ exports.isLazyProxy = isLazyProxy;
12
+ exports.getProxyPath = getProxyPath;
13
+ exports.createDeepLazyProxy = createDeepLazyProxy;
14
+ // ---------------------------------------------------------------------------
15
+ // Proxy registry — used only for testing/introspection, not accessible from
16
+ // expression code. Avoids shadowing user data keys like __isProxy / __path.
17
+ // ---------------------------------------------------------------------------
18
+ const proxyPaths = new WeakMap();
19
+ function isObjectMetadata(value) {
20
+ return (typeof value === 'object' &&
21
+ value !== null &&
22
+ '__isObject' in value &&
23
+ value.__isObject === true);
24
+ }
25
+ function isArrayMetadata(value) {
26
+ return (typeof value === 'object' && value !== null && '__isArray' in value && value.__isArray === true);
27
+ }
28
+ function isErrorSentinel(value) {
29
+ return (typeof value === 'object' && value !== null && '__isError' in value && value.__isError === true);
30
+ }
31
+ /**
32
+ * If `value` is an error sentinel from a host-side callback, throw it
33
+ * directly. The isolate's outer try-catch will detect __isError and
34
+ * return it as the result. Error reconstruction happens on the host only.
35
+ */
36
+ function throwIfErrorSentinel(value) {
37
+ if (isErrorSentinel(value)) {
38
+ // eslint-disable-next-line @typescript-eslint/no-throw-literal -- sentinel is reconstructed on the host
39
+ throw value;
10
40
  }
11
- else if (typeof define === "function" && define.amd) {
12
- define(["require", "exports"], factory);
41
+ }
42
+ /** Returns true if `obj` is a deep lazy proxy created by createDeepLazyProxy. */
43
+ function isLazyProxy(obj) {
44
+ return typeof obj === 'object' && obj !== null && proxyPaths.has(obj);
45
+ }
46
+ /** Returns the basePath the proxy was created with, or undefined if not a proxy. */
47
+ function getProxyPath(obj) {
48
+ return proxyPaths.get(obj);
49
+ }
50
+ /**
51
+ * Creates a deep lazy-loading proxy for workflow data.
52
+ *
53
+ * This proxy system enables on-demand loading of nested properties across
54
+ * the isolate boundary using metadata-driven callbacks.
55
+ *
56
+ * Pattern:
57
+ * 1. When property accessed: Call getValueAtPath([path]) to get metadata
58
+ * 2. Metadata indicates type: primitive, object, or array
59
+ * 3. For objects/arrays: Create nested proxy (shape-matched) for lazy loading
60
+ * 4. Cache all fetched values in target to avoid repeated callbacks
61
+ *
62
+ * Callable host bindings (`$('Foo').first()`, `$items()`, etc.) do not flow
63
+ * through this proxy — they are wired as in-isolate stubs on `target` that
64
+ * route through the typed-RPC dispatcher (`callHost`).
65
+ *
66
+ * @param basePath - Current path in object tree (e.g., ['$json', 'user'])
67
+ * @param meta - Optional shape descriptor (object/array + known keys/length)
68
+ * @param callbacks - ivm.Reference callbacks for cross-isolate communication
69
+ * @returns Proxy object with lazy loading behavior
70
+ */
71
+ function createDeepLazyProxy(basePath = [], meta, callbacks) {
72
+ if (!callbacks) {
73
+ throw new Error('createDeepLazyProxy requires callbacks parameter');
13
74
  }
14
- })(function (require, exports) {
15
- "use strict";
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.isObjectMetadata = isObjectMetadata;
18
- exports.isArrayMetadata = isArrayMetadata;
19
- exports.throwIfErrorSentinel = throwIfErrorSentinel;
20
- exports.isLazyProxy = isLazyProxy;
21
- exports.getProxyPath = getProxyPath;
22
- exports.createDeepLazyProxy = createDeepLazyProxy;
23
- // ---------------------------------------------------------------------------
24
- // Proxy registry — used only for testing/introspection, not accessible from
25
- // expression code. Avoids shadowing user data keys like __isProxy / __path.
26
- // ---------------------------------------------------------------------------
27
- const proxyPaths = new WeakMap();
28
- function isObjectMetadata(value) {
29
- return (typeof value === 'object' &&
30
- value !== null &&
31
- '__isObject' in value &&
32
- value.__isObject === true);
33
- }
34
- function isArrayMetadata(value) {
35
- return (typeof value === 'object' && value !== null && '__isArray' in value && value.__isArray === true);
36
- }
37
- function isErrorSentinel(value) {
38
- return (typeof value === 'object' && value !== null && '__isError' in value && value.__isError === true);
39
- }
40
- /**
41
- * If `value` is an error sentinel from a host-side callback, throw it
42
- * directly. The isolate's outer try-catch will detect __isError and
43
- * return it as the result. Error reconstruction happens on the host only.
44
- */
45
- function throwIfErrorSentinel(value) {
46
- if (isErrorSentinel(value)) {
47
- // eslint-disable-next-line @typescript-eslint/no-throw-literal -- sentinel is reconstructed on the host
48
- throw value;
75
+ const { getValueAtPath, getArrayElement } = callbacks;
76
+ const isArray = meta?.kind === 'array';
77
+ const arrayLength = isArray ? meta.length : 0;
78
+ const objectKeys = meta?.kind === 'object' ? meta.keys : undefined;
79
+ // Cache for keys fetched from the bridge (root object proxies without known keys).
80
+ // Shared between ownKeys and getOwnPropertyDescriptor for consistency.
81
+ let fetchedKeys;
82
+ function resolveObjectKeys() {
83
+ if (objectKeys)
84
+ return objectKeys;
85
+ if (fetchedKeys)
86
+ return fetchedKeys;
87
+ const value = getValueAtPath.applySync(null, [basePath], {
88
+ arguments: { copy: true },
89
+ result: { copy: true },
90
+ });
91
+ throwIfErrorSentinel(value);
92
+ if (isObjectMetadata(value)) {
93
+ fetchedKeys = value.__keys;
94
+ return fetchedKeys;
49
95
  }
96
+ return [];
50
97
  }
51
- /** Returns true if `obj` is a deep lazy proxy created by createDeepLazyProxy. */
52
- function isLazyProxy(obj) {
53
- return typeof obj === 'object' && obj !== null && proxyPaths.has(obj);
98
+ function isInArrayBounds(prop) {
99
+ const idx = Number(prop);
100
+ if (!Number.isInteger(idx) || idx < 0 || idx >= arrayLength)
101
+ return undefined;
102
+ if (String(idx) !== prop)
103
+ return undefined; // reject '00', '1.0', etc.
104
+ return idx;
54
105
  }
55
- /** Returns the basePath the proxy was created with, or undefined if not a proxy. */
56
- function getProxyPath(obj) {
57
- return proxyPaths.get(obj);
58
- }
59
- /**
60
- * Creates a deep lazy-loading proxy for workflow data.
61
- *
62
- * This proxy system enables on-demand loading of nested properties across
63
- * the isolate boundary using metadata-driven callbacks.
64
- *
65
- * Pattern:
66
- * 1. When property accessed: Call getValueAtPath([path]) to get metadata
67
- * 2. Metadata indicates type: primitive, object, or array
68
- * 3. For objects/arrays: Create nested proxy (shape-matched) for lazy loading
69
- * 4. Cache all fetched values in target to avoid repeated callbacks
70
- *
71
- * Callable host bindings (`$('Foo').first()`, `$items()`, etc.) do not flow
72
- * through this proxy — they are wired as in-isolate stubs on `target` that
73
- * route through the typed-RPC dispatcher (`callHost`).
74
- *
75
- * @param basePath - Current path in object tree (e.g., ['$json', 'user'])
76
- * @param meta - Optional shape descriptor (object/array + known keys/length)
77
- * @param callbacks - ivm.Reference callbacks for cross-isolate communication
78
- * @returns Proxy object with lazy loading behavior
79
- */
80
- function createDeepLazyProxy(basePath = [], meta, callbacks) {
81
- if (!callbacks) {
82
- throw new Error('createDeepLazyProxy requires callbacks parameter');
83
- }
84
- const { getValueAtPath, getArrayElement } = callbacks;
85
- const isArray = meta?.kind === 'array';
86
- const arrayLength = isArray ? meta.length : 0;
87
- const objectKeys = meta?.kind === 'object' ? meta.keys : undefined;
88
- // Cache for keys fetched from the bridge (root object proxies without known keys).
89
- // Shared between ownKeys and getOwnPropertyDescriptor for consistency.
90
- let fetchedKeys;
91
- function resolveObjectKeys() {
92
- if (objectKeys)
93
- return objectKeys;
94
- if (fetchedKeys)
95
- return fetchedKeys;
96
- const value = getValueAtPath.applySync(null, [basePath], {
97
- arguments: { copy: true },
98
- result: { copy: true },
99
- });
100
- throwIfErrorSentinel(value);
101
- if (isObjectMetadata(value)) {
102
- fetchedKeys = value.__keys;
103
- return fetchedKeys;
104
- }
105
- return [];
106
+ function materializeChild(basePath, propOrIdx, value) {
107
+ if (value === undefined || value === null)
108
+ return value;
109
+ throwIfErrorSentinel(value);
110
+ // `path = [...basePath, propOrIdx]` is built only inside the two branches
111
+ // that actually use it, so non-metadata objects don't pay for the spread.
112
+ if (isArrayMetadata(value)) {
113
+ const path = [...basePath, propOrIdx];
114
+ return createDeepLazyProxy(path, { kind: 'array', length: value.__length }, callbacks);
106
115
  }
107
- function isInArrayBounds(prop) {
108
- const idx = Number(prop);
109
- if (!Number.isInteger(idx) || idx < 0 || idx >= arrayLength)
110
- return undefined;
111
- if (String(idx) !== prop)
112
- return undefined; // reject '00', '1.0', etc.
113
- return idx;
116
+ if (isObjectMetadata(value)) {
117
+ const path = [...basePath, propOrIdx];
118
+ return createDeepLazyProxy(path, { kind: 'object', keys: value.__keys }, callbacks);
114
119
  }
115
- function materializeChild(basePath, propOrIdx, value) {
116
- if (value === undefined || value === null)
117
- return value;
118
- throwIfErrorSentinel(value);
119
- // `path = [...basePath, propOrIdx]` is built only inside the two branches
120
- // that actually use it, so non-metadata objects don't pay for the spread.
121
- if (isArrayMetadata(value)) {
122
- const path = [...basePath, propOrIdx];
123
- return createDeepLazyProxy(path, { kind: 'array', length: value.__length }, callbacks);
124
- }
125
- if (isObjectMetadata(value)) {
126
- const path = [...basePath, propOrIdx];
127
- return createDeepLazyProxy(path, { kind: 'object', keys: value.__keys }, callbacks);
120
+ return value;
121
+ }
122
+ const target = isArray ? [] : {};
123
+ const proxy = new Proxy(target, {
124
+ ownKeys() {
125
+ if (isArray) {
126
+ const keys = Array.from({ length: arrayLength }, (_, i) => String(i));
127
+ // Required by proxy invariant: target [] has non-configurable 'length'
128
+ keys.push('length');
129
+ return keys;
128
130
  }
129
- return value;
130
- }
131
- const target = isArray ? [] : {};
132
- const proxy = new Proxy(target, {
133
- ownKeys() {
134
- if (isArray) {
135
- const keys = Array.from({ length: arrayLength }, (_, i) => String(i));
136
- // Required by proxy invariant: target [] has non-configurable 'length'
137
- keys.push('length');
138
- return keys;
139
- }
140
- return resolveObjectKeys();
141
- },
142
- getOwnPropertyDescriptor(_target, prop) {
143
- if (typeof prop === 'symbol')
144
- return undefined;
145
- if (isArray) {
146
- if (prop === 'length') {
147
- // Match the target array's own length descriptor shape so the
148
- // proxy invariant holds: writable & non-configurable.
149
- return {
150
- configurable: false,
151
- enumerable: false,
152
- writable: true,
153
- value: arrayLength,
154
- };
155
- }
156
- if (isInArrayBounds(prop) !== undefined) {
157
- // Lazy proxies are read-only views of host data — writes from
158
- // expression code must not propagate back across the isolate.
159
- // Reading `proxy[prop]` triggers the get trap, which fetches the
160
- // element from the host (if not cached) and stores it on the
161
- // target. Including `value` matches a native array's data
162
- // descriptor; the fetch is one-shot per index because of caching.
163
- return {
164
- configurable: true,
165
- enumerable: true,
166
- writable: false,
167
- value: proxy[prop],
168
- };
169
- }
170
- return undefined;
171
- }
172
- if (resolveObjectKeys().includes(prop)) {
173
- return { configurable: true, enumerable: true, writable: false };
174
- }
131
+ return resolveObjectKeys();
132
+ },
133
+ getOwnPropertyDescriptor(_target, prop) {
134
+ if (typeof prop === 'symbol')
175
135
  return undefined;
176
- },
177
- get(targetObj, prop) {
178
- // Symbol-keyed access falls through to the proxy target so that
179
- // well-known symbols on the prototype chain are reachable. For array
180
- // proxies this exposes `Array.prototype[Symbol.iterator]` etc., which
181
- // `[...arr]`, `for…of`, and destructuring need. For object proxies the
182
- // `{}` target has no own symbol-keyed entries; reads return undefined.
183
- // Symbols themselves aren't transferred across the isolate boundary —
184
- // only the values yielded by iteration, which already pay the proxy's
185
- // indexed `[[Get]]` (primitives or sub-proxies).
186
- if (typeof prop === 'symbol') {
187
- return targetObj[prop];
188
- }
189
- // `toString` and `valueOf` aren't intercepted — they fall through to the
190
- // target's prototype via the cache check below. That means `arr.toString()`
191
- // returns the canonical comma-joined string (via `Array.prototype.toString`
192
- // → `.join(',')`, paying one bridge call per element), and `obj.valueOf()`
193
- // returns the proxy itself instead of the internal target. Pre-fix this
194
- // trap shortcut to `''` / `targetObj` to avoid the O(n) cost, but the
195
- // divergence from native was surprising in expressions like
196
- // `={{ "items: " + $json.arr }}`. Users who care about the cost can call
197
- // `$json.arr.length` and index explicitly.
198
- // Array length is known at construction — no bridge call needed
199
- if (isArray && prop === 'length') {
200
- return arrayLength;
136
+ if (isArray) {
137
+ if (prop === 'length') {
138
+ // Match the target array's own length descriptor shape so the
139
+ // proxy invariant holds: writable & non-configurable.
140
+ return {
141
+ configurable: false,
142
+ enumerable: false,
143
+ writable: true,
144
+ value: arrayLength,
145
+ };
201
146
  }
202
- // Check cache - if already fetched, return cached value
203
- if (prop in targetObj) {
204
- return targetObj[prop];
147
+ if (isInArrayBounds(prop) !== undefined) {
148
+ // Lazy proxies are read-only views of host data — writes from
149
+ // expression code must not propagate back across the isolate.
150
+ // Reading `proxy[prop]` triggers the get trap, which fetches the
151
+ // element from the host (if not cached) and stores it on the
152
+ // target. Including `value` matches a native array's data
153
+ // descriptor; the fetch is one-shot per index because of caching.
154
+ return {
155
+ configurable: true,
156
+ enumerable: true,
157
+ writable: false,
158
+ value: proxy[prop],
159
+ };
205
160
  }
206
- if (isArray) {
207
- const idx = isInArrayBounds(prop);
208
- if (idx === undefined)
209
- return undefined;
210
- const element = getArrayElement.applySync(null, [basePath, idx], {
211
- arguments: { copy: true },
212
- result: { copy: true },
213
- });
214
- // Primitives (and null) skip `materializeChild`'s metadata checks.
215
- if (element === null || typeof element !== 'object') {
216
- targetObj[prop] = element;
217
- return element;
218
- }
219
- targetObj[prop] = materializeChild(basePath, String(idx), element);
220
- return targetObj[prop];
221
- }
222
- // Build path for this property — needed for the getValueAtPath call.
223
- // materializeChild rebuilds it only inside metadata branches.
224
- const path = [...basePath, prop];
225
- // Call back to host to get metadata/value
226
- // Note: getValueAtPath is an ivm.Reference passed via callbacks
227
- const value = getValueAtPath.applySync(null, [path], {
161
+ return undefined;
162
+ }
163
+ if (resolveObjectKeys().includes(prop)) {
164
+ return { configurable: true, enumerable: true, writable: false };
165
+ }
166
+ return undefined;
167
+ },
168
+ get(targetObj, prop) {
169
+ // Symbol-keyed access falls through to the proxy target so that
170
+ // well-known symbols on the prototype chain are reachable. For array
171
+ // proxies this exposes `Array.prototype[Symbol.iterator]` etc., which
172
+ // `[...arr]`, `for…of`, and destructuring need. For object proxies the
173
+ // `{}` target has no own symbol-keyed entries; reads return undefined.
174
+ // Symbols themselves aren't transferred across the isolate boundary —
175
+ // only the values yielded by iteration, which already pay the proxy's
176
+ // indexed `[[Get]]` (primitives or sub-proxies).
177
+ if (typeof prop === 'symbol') {
178
+ return targetObj[prop];
179
+ }
180
+ // `toString` and `valueOf` aren't intercepted — they fall through to the
181
+ // target's prototype via the cache check below. That means `arr.toString()`
182
+ // returns the canonical comma-joined string (via `Array.prototype.toString`
183
+ // → `.join(',')`, paying one bridge call per element), and `obj.valueOf()`
184
+ // returns the proxy itself instead of the internal target. Pre-fix this
185
+ // trap shortcut to `''` / `targetObj` to avoid the O(n) cost, but the
186
+ // divergence from native was surprising in expressions like
187
+ // `={{ "items: " + $json.arr }}`. Users who care about the cost can call
188
+ // `$json.arr.length` and index explicitly.
189
+ // Array length is known at construction — no bridge call needed
190
+ if (isArray && prop === 'length') {
191
+ return arrayLength;
192
+ }
193
+ // Check cache - if already fetched, return cached value
194
+ if (prop in targetObj) {
195
+ return targetObj[prop];
196
+ }
197
+ if (isArray) {
198
+ const idx = isInArrayBounds(prop);
199
+ if (idx === undefined)
200
+ return undefined;
201
+ const element = getArrayElement.applySync(null, [basePath, idx], {
228
202
  arguments: { copy: true },
229
203
  result: { copy: true },
230
204
  });
231
- targetObj[prop] = materializeChild(basePath, prop, value);
232
- return targetObj[prop];
233
- },
234
- has(targetObj, prop) {
235
- // Implement 'in' operator support
236
- // Example: '$json' in data
237
- // Mirror the get trap: symbol-keyed lookups defer to the target so
238
- // `Symbol.iterator in arr` reflects the prototype chain.
239
- if (typeof prop === 'symbol')
240
- return prop in targetObj;
241
- if (isArray) {
242
- if (prop === 'length')
243
- return true;
244
- if (prop in targetObj)
245
- return true;
246
- return isInArrayBounds(prop) !== undefined;
205
+ // Primitives (and null) skip `materializeChild`'s metadata checks.
206
+ if (element === null || typeof element !== 'object') {
207
+ targetObj[prop] = element;
208
+ return element;
247
209
  }
248
- // Check cache first
249
- if (prop in targetObj) {
210
+ targetObj[prop] = materializeChild(basePath, String(idx), element);
211
+ return targetObj[prop];
212
+ }
213
+ // Build path for this property — needed for the getValueAtPath call.
214
+ // materializeChild rebuilds it only inside metadata branches.
215
+ const path = [...basePath, prop];
216
+ // Call back to host to get metadata/value
217
+ // Note: getValueAtPath is an ivm.Reference passed via callbacks
218
+ const value = getValueAtPath.applySync(null, [path], {
219
+ arguments: { copy: true },
220
+ result: { copy: true },
221
+ });
222
+ targetObj[prop] = materializeChild(basePath, prop, value);
223
+ return targetObj[prop];
224
+ },
225
+ has(targetObj, prop) {
226
+ // Implement 'in' operator support
227
+ // Example: '$json' in data
228
+ // Mirror the get trap: symbol-keyed lookups defer to the target so
229
+ // `Symbol.iterator in arr` reflects the prototype chain.
230
+ if (typeof prop === 'symbol')
231
+ return prop in targetObj;
232
+ if (isArray) {
233
+ if (prop === 'length')
250
234
  return true;
251
- }
252
- // Build path and check existence via callback
253
- const path = [...basePath, prop];
254
- const value = getValueAtPath.applySync(null, [path], {
255
- arguments: { copy: true },
256
- result: { copy: true },
257
- });
258
- // Handle errors serialized by host-side callbacks — reconstruct and throw
259
- // so the isolate's outer try-catch can serialize them back via __reportError
260
- throwIfErrorSentinel(value);
261
- // Property exists if value is not undefined
262
- // Note: null values mean property exists but is null
263
- return value !== undefined;
264
- },
265
- });
266
- proxyPaths.set(proxy, basePath);
267
- return proxy;
268
- }
269
- });
235
+ if (prop in targetObj)
236
+ return true;
237
+ return isInArrayBounds(prop) !== undefined;
238
+ }
239
+ // Check cache first
240
+ if (prop in targetObj) {
241
+ return true;
242
+ }
243
+ // Build path and check existence via callback
244
+ const path = [...basePath, prop];
245
+ const value = getValueAtPath.applySync(null, [path], {
246
+ arguments: { copy: true },
247
+ result: { copy: true },
248
+ });
249
+ // Handle errors serialized by host-side callbacks — reconstruct and throw
250
+ // so the isolate's outer try-catch can serialize them back via __reportError
251
+ throwIfErrorSentinel(value);
252
+ // Property exists if value is not undefined
253
+ // Note: null values mean property exists but is null
254
+ return value !== undefined;
255
+ },
256
+ });
257
+ proxyPaths.set(proxy, basePath);
258
+ return proxy;
259
+ }
270
260
  //# sourceMappingURL=lazy-proxy.js.map
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"safe-globals.d.ts","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,mBAqCrB,CAAC;AAgBH;;GAEG;AACH,eAAO,MAAM,SAAS,kBAsBpB,CAAC;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAmBpF;AAMD,qBAAa,eAAgB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI3B;AAwBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASlD"}
1
+ {"version":3,"file":"safe-globals.d.ts","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,mBAqCrB,CAAC;AAgBH;;GAEG;AACH,eAAO,MAAM,SAAS,kBAsBpB,CAAC;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAmBpF;AAMD,qBAAa,eAAgB,SAAQ,KAAK;IACzC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACD;AAwBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASlD"}