@n8n/expression-runtime 0.12.0 → 0.12.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.
- package/dist/bundle/runtime.esm.js +17 -17
- package/dist/bundle/runtime.esm.js.map +3 -3
- package/dist/bundle/runtime.iife.js +17 -17
- package/dist/bundle/runtime.iife.js.map +3 -3
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/runtime/context.d.ts.map +1 -1
- package/dist/cjs/runtime/context.js +7 -5
- package/dist/cjs/runtime/context.js.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.d.ts +30 -3
- package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.js +143 -121
- package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
- package/dist/esm/build.tsbuildinfo +1 -1
- package/dist/esm/runtime/context.d.ts.map +1 -1
- package/dist/esm/runtime/context.js +8 -6
- package/dist/esm/runtime/context.js.map +1 -1
- package/dist/esm/runtime/lazy-proxy.d.ts +30 -3
- package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/esm/runtime/lazy-proxy.js +142 -122
- package/dist/esm/runtime/lazy-proxy.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC3B,cAAc,EAAE,GAAG,EACnB,eAAe,EAAE,GAAG,EACpB,kBAAkB,EAAE,GAAG,EACvB,QAAQ,CAAC,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4JzB"}
|
|
@@ -137,11 +137,13 @@
|
|
|
137
137
|
};
|
|
138
138
|
return true;
|
|
139
139
|
}
|
|
140
|
-
// Object metadata — create a lazy proxy for deep access
|
|
141
|
-
if (value
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
// Object / array metadata — create a shape-matched lazy proxy for deep access
|
|
141
|
+
if ((0, lazy_proxy_1.isArrayMetadata)(value)) {
|
|
142
|
+
target[key] = (0, lazy_proxy_1.createDeepLazyProxy)([key], { kind: 'array', length: value.__length }, callbacks);
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
if ((0, lazy_proxy_1.isObjectMetadata)(value)) {
|
|
146
|
+
target[key] = (0, lazy_proxy_1.createDeepLazyProxy)([key], { kind: 'object', keys: value.__keys }, callbacks);
|
|
145
147
|
return true;
|
|
146
148
|
}
|
|
147
149
|
// Primitive or null — store directly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,16 @@ export interface ErrorSentinel {
|
|
|
11
11
|
stack?: string;
|
|
12
12
|
extra?: Record<string, unknown>;
|
|
13
13
|
}
|
|
14
|
+
interface ObjectMetadata {
|
|
15
|
+
__isObject: true;
|
|
16
|
+
__keys: string[];
|
|
17
|
+
}
|
|
18
|
+
interface ArrayMetadata {
|
|
19
|
+
__isArray: true;
|
|
20
|
+
__length: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function isObjectMetadata(value: unknown): value is ObjectMetadata;
|
|
23
|
+
export declare function isArrayMetadata(value: unknown): value is ArrayMetadata;
|
|
14
24
|
/**
|
|
15
25
|
* If `value` is an error sentinel from a host-side callback, throw it
|
|
16
26
|
* directly. The isolate's outer try-catch will detect __isError and
|
|
@@ -21,6 +31,22 @@ export declare function throwIfErrorSentinel(value: unknown): void;
|
|
|
21
31
|
export declare function isLazyProxy(obj: unknown): boolean;
|
|
22
32
|
/** Returns the basePath the proxy was created with, or undefined if not a proxy. */
|
|
23
33
|
export declare function getProxyPath(obj: object): string[] | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Tagged-union shape descriptor for a deep lazy proxy.
|
|
36
|
+
*
|
|
37
|
+
* - `object` proxies wrap a plain object target. `keys` is optional —
|
|
38
|
+
* when omitted, ownKeys/Object.keys() trigger a lazy `getValueAtPath`
|
|
39
|
+
* round-trip to fetch them.
|
|
40
|
+
* - `array` proxies wrap an array target so `Array.isArray(proxy)` is `true`
|
|
41
|
+
* and structured clone / `Array.prototype.map` iterate indices correctly.
|
|
42
|
+
*/
|
|
43
|
+
export type ProxyMeta = {
|
|
44
|
+
kind: 'object';
|
|
45
|
+
keys?: string[];
|
|
46
|
+
} | {
|
|
47
|
+
kind: 'array';
|
|
48
|
+
length: number;
|
|
49
|
+
};
|
|
24
50
|
/**
|
|
25
51
|
* Creates a deep lazy-loading proxy for workflow data.
|
|
26
52
|
*
|
|
@@ -30,18 +56,19 @@ export declare function getProxyPath(obj: object): string[] | undefined;
|
|
|
30
56
|
* Pattern:
|
|
31
57
|
* 1. When property accessed: Call getValueAtPath([path]) to get metadata
|
|
32
58
|
* 2. Metadata indicates type: primitive, object, array, or function
|
|
33
|
-
* 3. For objects/arrays: Create nested proxy for lazy loading
|
|
59
|
+
* 3. For objects/arrays: Create nested proxy (shape-matched) for lazy loading
|
|
34
60
|
* 4. For functions: Create wrapper that calls callFunctionAtPath
|
|
35
61
|
* 5. Cache all fetched values in target to avoid repeated callbacks
|
|
36
62
|
*
|
|
37
63
|
* @param basePath - Current path in object tree (e.g., ['$json', 'user'])
|
|
38
|
-
* @param
|
|
64
|
+
* @param meta - Optional shape descriptor (object/array + known keys/length)
|
|
39
65
|
* @param callbacks - ivm.Reference callbacks for cross-isolate communication
|
|
40
66
|
* @returns Proxy object with lazy loading behavior
|
|
41
67
|
*/
|
|
42
|
-
export declare function createDeepLazyProxy(basePath?: string[],
|
|
68
|
+
export declare function createDeepLazyProxy(basePath?: string[], meta?: ProxyMeta, callbacks?: {
|
|
43
69
|
getValueAtPath: any;
|
|
44
70
|
getArrayElement: any;
|
|
45
71
|
callFunctionAtPath: any;
|
|
46
72
|
}): any;
|
|
73
|
+
export {};
|
|
47
74
|
//# 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;
|
|
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;AAED,UAAU,cAAc;IACvB,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,UAAU,aAAa;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAOxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAItE;AAQD;;;;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;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,GAAE,MAAM,EAAO,EACvB,IAAI,CAAC,EAAE,SAAS,EAChB,SAAS,CAAC,EAAE;IACX,cAAc,EAAE,GAAG,CAAC;IACpB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;CACxB,GACC,GAAG,CAqNL"}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
})(function (require, exports) {
|
|
15
15
|
"use strict";
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.isObjectMetadata = isObjectMetadata;
|
|
18
|
+
exports.isArrayMetadata = isArrayMetadata;
|
|
17
19
|
exports.throwIfErrorSentinel = throwIfErrorSentinel;
|
|
18
20
|
exports.isLazyProxy = isLazyProxy;
|
|
19
21
|
exports.getProxyPath = getProxyPath;
|
|
@@ -29,6 +31,9 @@
|
|
|
29
31
|
'__isObject' in value &&
|
|
30
32
|
value.__isObject === true);
|
|
31
33
|
}
|
|
34
|
+
function isArrayMetadata(value) {
|
|
35
|
+
return (typeof value === 'object' && value !== null && '__isArray' in value && value.__isArray === true);
|
|
36
|
+
}
|
|
32
37
|
function isErrorSentinel(value) {
|
|
33
38
|
return (typeof value === 'object' && value !== null && '__isError' in value && value.__isError === true);
|
|
34
39
|
}
|
|
@@ -60,26 +65,29 @@
|
|
|
60
65
|
* Pattern:
|
|
61
66
|
* 1. When property accessed: Call getValueAtPath([path]) to get metadata
|
|
62
67
|
* 2. Metadata indicates type: primitive, object, array, or function
|
|
63
|
-
* 3. For objects/arrays: Create nested proxy for lazy loading
|
|
68
|
+
* 3. For objects/arrays: Create nested proxy (shape-matched) for lazy loading
|
|
64
69
|
* 4. For functions: Create wrapper that calls callFunctionAtPath
|
|
65
70
|
* 5. Cache all fetched values in target to avoid repeated callbacks
|
|
66
71
|
*
|
|
67
72
|
* @param basePath - Current path in object tree (e.g., ['$json', 'user'])
|
|
68
|
-
* @param
|
|
73
|
+
* @param meta - Optional shape descriptor (object/array + known keys/length)
|
|
69
74
|
* @param callbacks - ivm.Reference callbacks for cross-isolate communication
|
|
70
75
|
* @returns Proxy object with lazy loading behavior
|
|
71
76
|
*/
|
|
72
|
-
function createDeepLazyProxy(basePath = [],
|
|
77
|
+
function createDeepLazyProxy(basePath = [], meta, callbacks) {
|
|
73
78
|
if (!callbacks) {
|
|
74
79
|
throw new Error('createDeepLazyProxy requires callbacks parameter');
|
|
75
80
|
}
|
|
76
81
|
const { getValueAtPath, getArrayElement, callFunctionAtPath } = callbacks;
|
|
77
|
-
|
|
82
|
+
const isArray = meta?.kind === 'array';
|
|
83
|
+
const arrayLength = isArray ? meta.length : 0;
|
|
84
|
+
const objectKeys = meta?.kind === 'object' ? meta.keys : undefined;
|
|
85
|
+
// Cache for keys fetched from the bridge (root object proxies without known keys).
|
|
78
86
|
// Shared between ownKeys and getOwnPropertyDescriptor for consistency.
|
|
79
87
|
let fetchedKeys;
|
|
80
|
-
function
|
|
81
|
-
if (
|
|
82
|
-
return
|
|
88
|
+
function resolveObjectKeys() {
|
|
89
|
+
if (objectKeys)
|
|
90
|
+
return objectKeys;
|
|
83
91
|
if (fetchedKeys)
|
|
84
92
|
return fetchedKeys;
|
|
85
93
|
const value = getValueAtPath.applySync(null, [basePath], {
|
|
@@ -93,42 +101,134 @@
|
|
|
93
101
|
}
|
|
94
102
|
return [];
|
|
95
103
|
}
|
|
96
|
-
|
|
104
|
+
function isInArrayBounds(prop) {
|
|
105
|
+
const idx = Number(prop);
|
|
106
|
+
if (!Number.isInteger(idx) || idx < 0 || idx >= arrayLength)
|
|
107
|
+
return undefined;
|
|
108
|
+
if (String(idx) !== prop)
|
|
109
|
+
return undefined; // reject '00', '1.0', etc.
|
|
110
|
+
return idx;
|
|
111
|
+
}
|
|
112
|
+
function materializeChild(basePath, propOrIdx, value) {
|
|
113
|
+
if (value === undefined || value === null)
|
|
114
|
+
return value;
|
|
115
|
+
throwIfErrorSentinel(value);
|
|
116
|
+
// `path = [...basePath, propOrIdx]` is built only inside the three branches
|
|
117
|
+
// that actually use it, so non-metadata objects don't pay for the spread.
|
|
118
|
+
if (value && typeof value === 'object' && value.__isFunction) {
|
|
119
|
+
const path = [...basePath, propOrIdx];
|
|
120
|
+
return function (...args) {
|
|
121
|
+
const result = callFunctionAtPath.applySync(null, [path, ...args], {
|
|
122
|
+
arguments: { copy: true },
|
|
123
|
+
result: { copy: true },
|
|
124
|
+
});
|
|
125
|
+
throwIfErrorSentinel(result);
|
|
126
|
+
return result;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if (isArrayMetadata(value)) {
|
|
130
|
+
const path = [...basePath, propOrIdx];
|
|
131
|
+
return createDeepLazyProxy(path, { kind: 'array', length: value.__length }, callbacks);
|
|
132
|
+
}
|
|
133
|
+
if (isObjectMetadata(value)) {
|
|
134
|
+
const path = [...basePath, propOrIdx];
|
|
135
|
+
return createDeepLazyProxy(path, { kind: 'object', keys: value.__keys }, callbacks);
|
|
136
|
+
}
|
|
137
|
+
return value;
|
|
138
|
+
}
|
|
139
|
+
const target = isArray ? [] : {};
|
|
140
|
+
const proxy = new Proxy(target, {
|
|
97
141
|
ownKeys() {
|
|
98
|
-
|
|
142
|
+
if (isArray) {
|
|
143
|
+
const keys = Array.from({ length: arrayLength }, (_, i) => String(i));
|
|
144
|
+
// Required by proxy invariant: target [] has non-configurable 'length'
|
|
145
|
+
keys.push('length');
|
|
146
|
+
return keys;
|
|
147
|
+
}
|
|
148
|
+
return resolveObjectKeys();
|
|
99
149
|
},
|
|
100
150
|
getOwnPropertyDescriptor(_target, prop) {
|
|
101
151
|
if (typeof prop === 'symbol')
|
|
102
152
|
return undefined;
|
|
103
|
-
if (
|
|
153
|
+
if (isArray) {
|
|
154
|
+
if (prop === 'length') {
|
|
155
|
+
// Match the target array's own length descriptor shape so the
|
|
156
|
+
// proxy invariant holds: writable & non-configurable.
|
|
157
|
+
return {
|
|
158
|
+
configurable: false,
|
|
159
|
+
enumerable: false,
|
|
160
|
+
writable: true,
|
|
161
|
+
value: arrayLength,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
if (isInArrayBounds(prop) !== undefined) {
|
|
165
|
+
// Lazy proxies are read-only views of host data — writes from
|
|
166
|
+
// expression code must not propagate back across the isolate.
|
|
167
|
+
// Reading `proxy[prop]` triggers the get trap, which fetches the
|
|
168
|
+
// element from the host (if not cached) and stores it on the
|
|
169
|
+
// target. Including `value` matches a native array's data
|
|
170
|
+
// descriptor; the fetch is one-shot per index because of caching.
|
|
171
|
+
return {
|
|
172
|
+
configurable: true,
|
|
173
|
+
enumerable: true,
|
|
174
|
+
writable: false,
|
|
175
|
+
value: proxy[prop],
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
if (resolveObjectKeys().includes(prop)) {
|
|
104
181
|
return { configurable: true, enumerable: true, writable: false };
|
|
105
182
|
}
|
|
106
183
|
return undefined;
|
|
107
184
|
},
|
|
108
|
-
get(
|
|
109
|
-
//
|
|
110
|
-
//
|
|
111
|
-
//
|
|
185
|
+
get(targetObj, prop) {
|
|
186
|
+
// Symbol-keyed access falls through to the proxy target so that
|
|
187
|
+
// well-known symbols on the prototype chain are reachable. For array
|
|
188
|
+
// proxies this exposes `Array.prototype[Symbol.iterator]` etc., which
|
|
189
|
+
// `[...arr]`, `for…of`, and destructuring need. For object proxies the
|
|
190
|
+
// `{}` target has no own symbol-keyed entries; reads return undefined.
|
|
191
|
+
// Symbols themselves aren't transferred across the isolate boundary —
|
|
192
|
+
// only the values yielded by iteration, which already pay the proxy's
|
|
193
|
+
// indexed `[[Get]]` (primitives or sub-proxies).
|
|
112
194
|
if (typeof prop === 'symbol') {
|
|
113
|
-
return
|
|
114
|
-
}
|
|
115
|
-
// Handle common Object.prototype methods within isolate
|
|
116
|
-
// Don't fetch from parent to avoid native function transfer issues
|
|
117
|
-
if (prop === 'toString') {
|
|
118
|
-
return function () {
|
|
119
|
-
return '[object Object]';
|
|
120
|
-
};
|
|
195
|
+
return targetObj[prop];
|
|
121
196
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
197
|
+
// `toString` and `valueOf` aren't intercepted — they fall through to the
|
|
198
|
+
// target's prototype via the cache check below. That means `arr.toString()`
|
|
199
|
+
// returns the canonical comma-joined string (via `Array.prototype.toString`
|
|
200
|
+
// → `.join(',')`, paying one bridge call per element), and `obj.valueOf()`
|
|
201
|
+
// returns the proxy itself instead of the internal target. Pre-fix this
|
|
202
|
+
// trap shortcut to `''` / `targetObj` to avoid the O(n) cost, but the
|
|
203
|
+
// divergence from native was surprising in expressions like
|
|
204
|
+
// `={{ "items: " + $json.arr }}`. Users who care about the cost can call
|
|
205
|
+
// `$json.arr.length` and index explicitly.
|
|
206
|
+
// Array length is known at construction — no bridge call needed
|
|
207
|
+
if (isArray && prop === 'length') {
|
|
208
|
+
return arrayLength;
|
|
126
209
|
}
|
|
127
210
|
// Check cache - if already fetched, return cached value
|
|
128
|
-
if (prop in
|
|
129
|
-
return
|
|
211
|
+
if (prop in targetObj) {
|
|
212
|
+
return targetObj[prop];
|
|
213
|
+
}
|
|
214
|
+
if (isArray) {
|
|
215
|
+
const idx = isInArrayBounds(prop);
|
|
216
|
+
if (idx === undefined)
|
|
217
|
+
return undefined;
|
|
218
|
+
const element = getArrayElement.applySync(null, [basePath, idx], {
|
|
219
|
+
arguments: { copy: true },
|
|
220
|
+
result: { copy: true },
|
|
221
|
+
});
|
|
222
|
+
// Primitives (and null) skip `materializeChild`'s metadata checks.
|
|
223
|
+
if (element === null || typeof element !== 'object') {
|
|
224
|
+
targetObj[prop] = element;
|
|
225
|
+
return element;
|
|
226
|
+
}
|
|
227
|
+
targetObj[prop] = materializeChild(basePath, String(idx), element);
|
|
228
|
+
return targetObj[prop];
|
|
130
229
|
}
|
|
131
|
-
// Build path for this property
|
|
230
|
+
// Build path for this property — needed for the getValueAtPath call.
|
|
231
|
+
// materializeChild rebuilds it only inside metadata branches.
|
|
132
232
|
const path = [...basePath, prop];
|
|
133
233
|
// Call back to host to get metadata/value
|
|
134
234
|
// Note: getValueAtPath is an ivm.Reference passed via callbacks
|
|
@@ -136,103 +236,25 @@
|
|
|
136
236
|
arguments: { copy: true },
|
|
137
237
|
result: { copy: true },
|
|
138
238
|
});
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
target[prop] = value;
|
|
142
|
-
return value;
|
|
143
|
-
}
|
|
144
|
-
// Handle errors serialized by host-side callbacks — reconstruct and throw
|
|
145
|
-
// so the isolate's outer try-catch can serialize them back via __reportError
|
|
146
|
-
throwIfErrorSentinel(value);
|
|
147
|
-
// Handle functions - metadata: { __isFunction: true, __name: string }
|
|
148
|
-
if (value && typeof value === 'object' && value.__isFunction) {
|
|
149
|
-
// Create function wrapper that calls back to parent
|
|
150
|
-
target[prop] = function (...args) {
|
|
151
|
-
const result = callFunctionAtPath.applySync(null, [path, ...args], {
|
|
152
|
-
arguments: { copy: true },
|
|
153
|
-
result: { copy: true },
|
|
154
|
-
});
|
|
155
|
-
// Check if the host-side function threw — reconstruct and throw
|
|
156
|
-
throwIfErrorSentinel(result);
|
|
157
|
-
return result;
|
|
158
|
-
};
|
|
159
|
-
return target[prop];
|
|
160
|
-
}
|
|
161
|
-
// Handle arrays - metadata: { __isArray: true, __length: number }
|
|
162
|
-
if (value && typeof value === 'object' && value.__isArray) {
|
|
163
|
-
const arrayProxy = new Proxy([], {
|
|
164
|
-
has(arrTarget, arrProp) {
|
|
165
|
-
if (typeof arrProp === 'symbol')
|
|
166
|
-
return arrProp in arrTarget;
|
|
167
|
-
const index = Number(arrProp);
|
|
168
|
-
if (!isNaN(index) && index >= 0 && index < value.__length) {
|
|
169
|
-
return true;
|
|
170
|
-
}
|
|
171
|
-
return arrProp in arrTarget;
|
|
172
|
-
},
|
|
173
|
-
get(arrTarget, arrProp) {
|
|
174
|
-
// Symbols can't be transferred via isolated-vm; return undefined
|
|
175
|
-
if (typeof arrProp === 'symbol') {
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
178
|
-
// Handle array length
|
|
179
|
-
if (arrProp === 'length') {
|
|
180
|
-
return value.__length;
|
|
181
|
-
}
|
|
182
|
-
// Handle numeric index
|
|
183
|
-
const index = Number(arrProp);
|
|
184
|
-
if (!isNaN(index) && index >= 0) {
|
|
185
|
-
// Check cache
|
|
186
|
-
if (!(arrProp in arrTarget)) {
|
|
187
|
-
// Fetch element from parent
|
|
188
|
-
const element = getArrayElement.applySync(null, [path, index], {
|
|
189
|
-
arguments: { copy: true },
|
|
190
|
-
result: { copy: true },
|
|
191
|
-
});
|
|
192
|
-
throwIfErrorSentinel(element);
|
|
193
|
-
// Handle element metadata (arrays and objects need proxies)
|
|
194
|
-
if (element && typeof element === 'object' && element.__isArray) {
|
|
195
|
-
const elementPath = [...path, String(index)];
|
|
196
|
-
arrTarget[arrProp] = createDeepLazyProxy(elementPath, undefined, callbacks);
|
|
197
|
-
}
|
|
198
|
-
else if (isObjectMetadata(element)) {
|
|
199
|
-
// Object metadata: create nested proxy, passing known keys to
|
|
200
|
-
// avoid an extra __getValueAtPath round-trip for ownKeys/Object.keys()
|
|
201
|
-
const elementPath = [...path, String(index)];
|
|
202
|
-
arrTarget[arrProp] = createDeepLazyProxy(elementPath, element.__keys, callbacks);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
// Primitive element
|
|
206
|
-
arrTarget[arrProp] = element;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
return arrTarget[arrProp];
|
|
210
|
-
}
|
|
211
|
-
// Array methods (map, filter, etc.)
|
|
212
|
-
// Note: These require full array - limitation for now
|
|
213
|
-
return arrTarget[arrProp];
|
|
214
|
-
},
|
|
215
|
-
});
|
|
216
|
-
target[prop] = arrayProxy;
|
|
217
|
-
return target[prop];
|
|
218
|
-
}
|
|
219
|
-
// Handle objects - metadata: { __isObject: true, __keys: string[] }
|
|
220
|
-
if (isObjectMetadata(value)) {
|
|
221
|
-
// Create nested proxy for recursive lazy loading, passing known keys
|
|
222
|
-
target[prop] = createDeepLazyProxy(path, value.__keys, callbacks);
|
|
223
|
-
return target[prop];
|
|
224
|
-
}
|
|
225
|
-
// Primitive value - cache and return
|
|
226
|
-
target[prop] = value;
|
|
227
|
-
return value;
|
|
239
|
+
targetObj[prop] = materializeChild(basePath, prop, value);
|
|
240
|
+
return targetObj[prop];
|
|
228
241
|
},
|
|
229
|
-
has(
|
|
242
|
+
has(targetObj, prop) {
|
|
230
243
|
// Implement 'in' operator support
|
|
231
244
|
// Example: '$json' in data
|
|
245
|
+
// Mirror the get trap: symbol-keyed lookups defer to the target so
|
|
246
|
+
// `Symbol.iterator in arr` reflects the prototype chain.
|
|
232
247
|
if (typeof prop === 'symbol')
|
|
233
|
-
return
|
|
248
|
+
return prop in targetObj;
|
|
249
|
+
if (isArray) {
|
|
250
|
+
if (prop === 'length')
|
|
251
|
+
return true;
|
|
252
|
+
if (prop in targetObj)
|
|
253
|
+
return true;
|
|
254
|
+
return isInArrayBounds(prop) !== undefined;
|
|
255
|
+
}
|
|
234
256
|
// Check cache first
|
|
235
|
-
if (prop in
|
|
257
|
+
if (prop in targetObj) {
|
|
236
258
|
return true;
|
|
237
259
|
}
|
|
238
260
|
// Build path and check existence via callback
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-proxy.js","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAC/E,yCAAyC;AACzC,yFAAyF;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"lazy-proxy.js","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"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"}
|