@n8n/expression-runtime 0.8.0 → 0.10.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.
- package/dist/bundle/runtime.esm.js +15 -15
- package/dist/bundle/runtime.esm.js.map +4 -4
- package/dist/bundle/runtime.iife.js +15 -15
- package/dist/bundle/runtime.iife.js.map +4 -4
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts +40 -34
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/cjs/bridge/isolated-vm-bridge.js +97 -154
- package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/cjs/evaluator/expression-evaluator.js +5 -4
- package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/pool/isolate-pool.d.ts +3 -2
- package/dist/cjs/pool/isolate-pool.d.ts.map +1 -1
- package/dist/cjs/pool/isolate-pool.js +5 -4
- package/dist/cjs/pool/isolate-pool.js.map +1 -1
- package/dist/cjs/runtime/context.d.ts +18 -0
- package/dist/cjs/runtime/context.d.ts.map +1 -0
- package/dist/cjs/runtime/{reset.js → context.js} +115 -134
- package/dist/cjs/runtime/context.js.map +1 -0
- package/dist/cjs/runtime/index.d.ts +1 -28
- package/dist/cjs/runtime/index.d.ts.map +1 -1
- package/dist/cjs/runtime/index.js +3 -5
- package/dist/cjs/runtime/index.js.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.d.ts +9 -3
- package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.js +19 -13
- package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.d.ts +40 -34
- package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.js +97 -154
- package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
- package/dist/esm/build.tsbuildinfo +1 -1
- package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/esm/evaluator/expression-evaluator.js +4 -3
- package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pool/isolate-pool.d.ts +3 -2
- package/dist/esm/pool/isolate-pool.d.ts.map +1 -1
- package/dist/esm/pool/isolate-pool.js +4 -3
- package/dist/esm/pool/isolate-pool.js.map +1 -1
- package/dist/esm/runtime/context.d.ts +18 -0
- package/dist/esm/runtime/context.d.ts.map +1 -0
- package/dist/esm/runtime/{reset.js → context.js} +114 -133
- package/dist/esm/runtime/context.js.map +1 -0
- package/dist/esm/runtime/index.d.ts +1 -28
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js +2 -4
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/lazy-proxy.d.ts +9 -3
- package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/esm/runtime/lazy-proxy.js +19 -13
- package/dist/esm/runtime/lazy-proxy.js.map +1 -1
- package/package.json +5 -4
- package/dist/cjs/runtime/reset.d.ts +0 -16
- package/dist/cjs/runtime/reset.d.ts.map +0 -1
- package/dist/cjs/runtime/reset.js.map +0 -1
- package/dist/esm/runtime/reset.d.ts +0 -16
- package/dist/esm/runtime/reset.d.ts.map +0 -1
- package/dist/esm/runtime/reset.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-evaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EAEf,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"expression-evaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EAEf,MAAM,UAAU,CAAC;AAMlB,qBAAa,mBAAoB,YAAW,oBAAoB;IAC/D,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,UAAU,CAAC,CAAa;IAIhC,OAAO,CAAC,SAAS,CAA2B;IAE5C,OAAO,CAAC,IAAI,CAAc;IAE1B,OAAO,CAAC,eAAe,CAAwC;IAE/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;gBAEhD,MAAM,EAAE,eAAe;IAsB7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5C,QAAQ,CACP,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO;IA0BV,OAAO,CAAC,SAAS;IAeX,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IA2BpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,UAAU,IAAI,OAAO;CAGrB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Tournament } from '@n8n/tournament';
|
|
2
2
|
import { DEFAULT_BRIDGE_CONFIG } from '../types/bridge';
|
|
3
|
+
import { IsolateError } from '@n8n/errors';
|
|
3
4
|
import { IsolatePool, PoolDisposedError, PoolExhaustedError } from '../pool/isolate-pool';
|
|
4
5
|
import { LruCache } from './lru-cache';
|
|
5
6
|
export class ExpressionEvaluator {
|
|
@@ -51,7 +52,7 @@ export class ExpressionEvaluator {
|
|
|
51
52
|
}
|
|
52
53
|
evaluate(expression, data, caller, options) {
|
|
53
54
|
if (this.disposed)
|
|
54
|
-
throw new
|
|
55
|
+
throw new IsolateError('Evaluator disposed');
|
|
55
56
|
const bridge = this.getBridge(caller);
|
|
56
57
|
// Transform template expression → sanitized JavaScript (cached)
|
|
57
58
|
const transformedCode = this.getTransformedCode(expression);
|
|
@@ -74,12 +75,12 @@ export class ExpressionEvaluator {
|
|
|
74
75
|
getBridge(caller) {
|
|
75
76
|
const bridge = this.bridgesByCaller.get(caller);
|
|
76
77
|
if (!bridge) {
|
|
77
|
-
throw new
|
|
78
|
+
throw new IsolateError('No bridge acquired for this context. Call acquire() first.');
|
|
78
79
|
}
|
|
79
80
|
// If the isolate died mid-execution (e.g. OOM), all remaining expressions
|
|
80
81
|
// in this execution are expected to fail. Recovery is per-execution, not per-expression.
|
|
81
82
|
if (bridge.isDisposed()) {
|
|
82
|
-
throw new
|
|
83
|
+
throw new IsolateError('Isolate for this caller is no longer available');
|
|
83
84
|
}
|
|
84
85
|
return bridge;
|
|
85
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAkB;IAExB,QAAQ,GAAG,KAAK,CAAC;IAEzB,wFAAwF;IAChF,UAAU,CAAc;IAEhC,sEAAsE;IACtE,mFAAmF;IAC3E,SAAS,CAA2B;IAEpC,IAAI,CAAc;IAElB,eAAe,GAAG,IAAI,OAAO,EAAyB,CAAC;IAE9C,YAAY,CAA+B;IAE5D,YAAY,MAAuB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAiB,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC3E,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAC1B,IAAI,CAAC,YAAY,EACjB,MAAM,CAAC,QAAQ,IAAI,CAAC,EACpB,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAC7C,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,iBAAiB;gBAAE,MAAM,KAAK,CAAC;YACpD,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CACP,UAAkB,EAClB,IAAkB,EAClB,MAAc,EACd,OAAyB;QAEzB,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { ExpressionEvaluator } from './evaluator/expression-evaluator';
|
|
|
2
2
|
export { IsolatedVmBridge } from './bridge/isolated-vm-bridge';
|
|
3
3
|
export type { IExpressionEvaluator, EvaluatorConfig, WorkflowData, EvaluateOptions, ExecuteOptions, RuntimeBridge, BridgeConfig, Logger, ObservabilityProvider, MetricsAPI, TracesAPI, Span, LogsAPI, } from './types';
|
|
4
4
|
export { ExpressionError, MemoryLimitError, TimeoutError, SecurityViolationError, SyntaxError, } from './types';
|
|
5
|
+
export { IsolateError } from '@n8n/errors';
|
|
5
6
|
export { extend, extendOptional, EXTENSION_OBJECTS } from './extensions/extend';
|
|
6
7
|
export { ExpressionExtensionError } from './extensions/expression-extension-error';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,OAAO,GACP,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,OAAO,GACP,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { ExpressionEvaluator } from './evaluator/expression-evaluator';
|
|
|
5
5
|
export { IsolatedVmBridge } from './bridge/isolated-vm-bridge';
|
|
6
6
|
// Error types
|
|
7
7
|
export { ExpressionError, MemoryLimitError, TimeoutError, SecurityViolationError, SyntaxError, } from './types';
|
|
8
|
+
export { IsolateError } from '@n8n/errors';
|
|
8
9
|
// Extension runtime exports
|
|
9
10
|
export { extend, extendOptional, EXTENSION_OBJECTS } from './extensions/extend';
|
|
10
11
|
export { ExpressionExtensionError } from './extensions/expression-extension-error';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,uEAAuE;AACvE,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAmB/D,cAAc;AACd,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,uEAAuE;AACvE,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAmB/D,cAAc;AACd,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,4BAA4B;AAC5B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { RuntimeBridge } from '../types';
|
|
2
2
|
import type { Logger } from '../types/bridge';
|
|
3
|
-
|
|
3
|
+
import { IsolateError } from '@n8n/errors';
|
|
4
|
+
export declare class PoolDisposedError extends IsolateError {
|
|
4
5
|
constructor();
|
|
5
6
|
}
|
|
6
|
-
export declare class PoolExhaustedError extends
|
|
7
|
+
export declare class PoolExhaustedError extends IsolateError {
|
|
7
8
|
constructor();
|
|
8
9
|
}
|
|
9
10
|
export declare class IsolatePool {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolate-pool.d.ts","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"isolate-pool.d.ts","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,iBAAkB,SAAQ,YAAY;;CAKlD;AAED,qBAAa,kBAAmB,SAAQ,YAAY;;CAKnD;AAED,qBAAa,WAAW;IAStB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAXzB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,iDAAiD;IACjD,OAAO,CAAC,OAAO,CAAK;IACpB,gDAAgD;IAChD,OAAO,CAAC,iBAAiB,CAA4B;gBAGnC,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,aAAA,EAC5C,MAAM,CAAC,EAAE,MAAM,YAAA;IAG3B,UAAU;IAoBhB;;;OAGG;IACH,OAAO,IAAI,aAAa;IAQlB,OAAO,CAAC,MAAM,EAAE,aAAa;IAK7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAK;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAO;IAEhD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3C,OAAO,CAAC,SAAS;CA4BjB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { IsolateError } from '@n8n/errors';
|
|
2
|
+
export class PoolDisposedError extends IsolateError {
|
|
2
3
|
constructor() {
|
|
3
4
|
super('Pool is disposed');
|
|
4
5
|
this.name = 'PoolDisposedError';
|
|
5
6
|
}
|
|
6
7
|
}
|
|
7
|
-
export class PoolExhaustedError extends
|
|
8
|
+
export class PoolExhaustedError extends IsolateError {
|
|
8
9
|
constructor() {
|
|
9
10
|
super('No isolate bridge available in pool');
|
|
10
11
|
this.name = 'PoolExhaustedError';
|
|
@@ -40,7 +41,7 @@ export class IsolatePool {
|
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
if (this.bridges.length === 0) {
|
|
43
|
-
throw new
|
|
44
|
+
throw new IsolateError('IsolatePool failed to create any bridges');
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolate-pool.js","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"isolate-pool.js","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a fresh, closure-scoped evaluation context.
|
|
3
|
+
*
|
|
4
|
+
* This function creates a context object that contains everything needed to
|
|
5
|
+
* evaluate an expression, without touching any global mutable state
|
|
6
|
+
* (except luxon's Settings.defaultZone which is process-wide).
|
|
7
|
+
*
|
|
8
|
+
* The returned object is used as tournament's `this` context in the
|
|
9
|
+
* evalClosureSync wrapper.
|
|
10
|
+
*
|
|
11
|
+
* @param getValueAtPath - ivm.Reference for fetching values by path
|
|
12
|
+
* @param getArrayElement - ivm.Reference for fetching array elements
|
|
13
|
+
* @param callFunctionAtPath - ivm.Reference for calling functions by path
|
|
14
|
+
* @param timezone - Optional IANA timezone string
|
|
15
|
+
* @returns A context object with all workflow data, proxies, and builtins
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildContext(getValueAtPath: any, getArrayElement: any, callFunctionAtPath: any, timezone?: string): Record<string, unknown>;
|
|
18
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;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,CAwJzB"}
|
|
@@ -11,44 +11,36 @@ const SafeRangeError = createSafeErrorSubclass(RangeError);
|
|
|
11
11
|
const SafeReferenceError = createSafeErrorSubclass(ReferenceError);
|
|
12
12
|
const SafeURIError = createSafeErrorSubclass(URIError);
|
|
13
13
|
// ============================================================================
|
|
14
|
-
//
|
|
14
|
+
// Build Context Function
|
|
15
15
|
// ============================================================================
|
|
16
|
-
function fetchPrimitive(key) {
|
|
17
|
-
try {
|
|
18
|
-
return globalThis.__getValueAtPath.applySync(null, [[key]], {
|
|
19
|
-
arguments: { copy: true },
|
|
20
|
-
result: { copy: true },
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
16
|
/**
|
|
28
|
-
*
|
|
17
|
+
* Build a fresh, closure-scoped evaluation context.
|
|
29
18
|
*
|
|
30
|
-
* This function
|
|
31
|
-
*
|
|
19
|
+
* This function creates a context object that contains everything needed to
|
|
20
|
+
* evaluate an expression, without touching any global mutable state
|
|
21
|
+
* (except luxon's Settings.defaultZone which is process-wide).
|
|
32
22
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* 2. Fetch primitives directly ($runIndex, $itemIndex)
|
|
36
|
-
* 3. Create function wrappers for callable properties ($items, etc.)
|
|
37
|
-
* 4. Expose all properties to globalThis for expression access
|
|
23
|
+
* The returned object is used as tournament's `this` context in the
|
|
24
|
+
* evalClosureSync wrapper.
|
|
38
25
|
*
|
|
39
|
-
*
|
|
26
|
+
* @param getValueAtPath - ivm.Reference for fetching values by path
|
|
27
|
+
* @param getArrayElement - ivm.Reference for fetching array elements
|
|
28
|
+
* @param callFunctionAtPath - ivm.Reference for calling functions by path
|
|
29
|
+
* @param timezone - Optional IANA timezone string
|
|
30
|
+
* @returns A context object with all workflow data, proxies, and builtins
|
|
40
31
|
*/
|
|
41
|
-
export function
|
|
32
|
+
export function buildContext(getValueAtPath, getArrayElement, callFunctionAtPath, timezone) {
|
|
42
33
|
if (timezone && !IANAZone.isValidZone(timezone)) {
|
|
43
34
|
throw new Error(`Invalid timezone: "${timezone}"`);
|
|
44
35
|
}
|
|
45
36
|
Settings.defaultZone = timezone ?? 'system';
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//
|
|
37
|
+
const target = {};
|
|
38
|
+
// Callback bundle passed to createDeepLazyProxy so proxies don't touch globalThis
|
|
39
|
+
const callbacks = { getValueAtPath, getArrayElement, callFunctionAtPath };
|
|
40
|
+
// __sanitize must be on the context because PrototypeSanitizer generates:
|
|
41
|
+
// obj[this.__sanitize(expr)] where 'this' is the context (via .call(ctx) wrapping)
|
|
50
42
|
// Use a non-writable property descriptor so override attempts throw instead of silently succeeding.
|
|
51
|
-
Object.defineProperty(
|
|
43
|
+
Object.defineProperty(target, '__sanitize', {
|
|
52
44
|
get: () => __sanitize,
|
|
53
45
|
set: () => {
|
|
54
46
|
throw new ExpressionError('Cannot override "__sanitize" due to security concerns');
|
|
@@ -56,130 +48,119 @@ export function resetDataProxies(timezone) {
|
|
|
56
48
|
enumerable: false,
|
|
57
49
|
configurable: false,
|
|
58
50
|
});
|
|
59
|
-
// Verify callbacks are available
|
|
60
|
-
// Note: ivm.Reference may not be typeof 'function', check for existence
|
|
61
|
-
if (!globalThis.__getValueAtPath) {
|
|
62
|
-
throw new Error('__getValueAtPath callback not registered');
|
|
63
|
-
}
|
|
64
|
-
// -------------------------------------------------------------------------
|
|
65
|
-
// Create lazy proxies for complex workflow properties
|
|
66
|
-
// -------------------------------------------------------------------------
|
|
67
|
-
globalThis.__data.$json = createDeepLazyProxy(['$json']);
|
|
68
|
-
globalThis.__data.$binary = createDeepLazyProxy(['$binary']);
|
|
69
|
-
globalThis.__data.$input = createDeepLazyProxy(['$input']);
|
|
70
|
-
globalThis.__data.$node = createDeepLazyProxy(['$node']);
|
|
71
|
-
globalThis.__data.$parameter = createDeepLazyProxy(['$parameter']);
|
|
72
|
-
globalThis.__data.$workflow = createDeepLazyProxy(['$workflow']);
|
|
73
|
-
globalThis.__data.$prevNode = createDeepLazyProxy(['$prevNode']);
|
|
74
|
-
globalThis.__data.$data = createDeepLazyProxy(['$data']);
|
|
75
|
-
globalThis.__data.$env = createDeepLazyProxy(['$env']);
|
|
76
|
-
globalThis.__data.process = createDeepLazyProxy(['process']);
|
|
77
|
-
globalThis.__data.$execution = createDeepLazyProxy(['$execution']);
|
|
78
|
-
globalThis.__data.$vars = createDeepLazyProxy(['$vars']);
|
|
79
|
-
globalThis.__data.$secrets = createDeepLazyProxy(['$secrets']);
|
|
80
51
|
// -------------------------------------------------------------------------
|
|
81
52
|
// Create DateTime values inside the isolate (not lazy-loaded from host,
|
|
82
53
|
// because host-side DateTime objects lose their prototype crossing the
|
|
83
54
|
// boundary). The isolate has its own luxon with the correct timezone
|
|
84
55
|
// already set via Settings.defaultZone above.
|
|
85
56
|
// -------------------------------------------------------------------------
|
|
86
|
-
|
|
87
|
-
|
|
57
|
+
target.$now = DateTime.now();
|
|
58
|
+
target.$today = DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
|
|
88
59
|
// -------------------------------------------------------------------------
|
|
89
|
-
//
|
|
60
|
+
// Expose standalone functions (min, max, average, numberList, zip, $ifEmpty, etc.)
|
|
90
61
|
// -------------------------------------------------------------------------
|
|
91
|
-
|
|
92
|
-
globalThis.__data.$itemIndex = fetchPrimitive('$itemIndex');
|
|
93
|
-
globalThis.__data.$executionId = fetchPrimitive('$executionId');
|
|
94
|
-
globalThis.__data.$resumeWebhookUrl = fetchPrimitive('$resumeWebhookUrl');
|
|
95
|
-
globalThis.__data.$webhookId = fetchPrimitive('$webhookId');
|
|
96
|
-
globalThis.__data.$nodeId = fetchPrimitive('$nodeId');
|
|
97
|
-
globalThis.__data.$nodeVersion = fetchPrimitive('$nodeVersion');
|
|
62
|
+
Object.assign(target, extendedFunctions);
|
|
98
63
|
// -------------------------------------------------------------------------
|
|
99
|
-
// Expose
|
|
64
|
+
// Expose globals on target so tournament's "x in this ? this.x : global.x"
|
|
65
|
+
// pattern resolves them correctly (tournament checks ctx before global)
|
|
100
66
|
// -------------------------------------------------------------------------
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
// Expose standalone functions (min, max, average, numberList, zip, $ifEmpty, etc.)
|
|
123
|
-
Object.assign(globalThis.__data, extendedFunctions);
|
|
67
|
+
target.DateTime = globalThis.DateTime;
|
|
68
|
+
target.Duration = globalThis.Duration;
|
|
69
|
+
target.Interval = globalThis.Interval;
|
|
70
|
+
// Expose extend/extendOptional on target so tournament's "x in this ? this.x : global.x"
|
|
71
|
+
// pattern resolves them correctly when the VM checks ctx first
|
|
72
|
+
target.extend = extend;
|
|
73
|
+
target.extendOptional = extendOptional;
|
|
74
|
+
// Wire builtins so tournament's VariablePolyfill resolves them from ctx
|
|
75
|
+
initializeBuiltins(target);
|
|
76
|
+
// $item(itemIndex) returns a sub-proxy for the specified item (legacy syntax)
|
|
77
|
+
target.$item = function (itemIndex) {
|
|
78
|
+
const indexStr = String(itemIndex);
|
|
79
|
+
return {
|
|
80
|
+
$json: createDeepLazyProxy(['$item', indexStr, '$json'], undefined, callbacks),
|
|
81
|
+
$binary: createDeepLazyProxy(['$item', indexStr, '$binary'], undefined, callbacks),
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
// $() function for accessing other nodes
|
|
85
|
+
target.$ = function (nodeName) {
|
|
86
|
+
return createDeepLazyProxy(['$', nodeName], undefined, callbacks);
|
|
87
|
+
};
|
|
124
88
|
// -------------------------------------------------------------------------
|
|
125
|
-
//
|
|
89
|
+
// Resolve an unknown key from the host. Called by the proxy's has/get traps
|
|
90
|
+
// for keys not already on the target. The resolved value is cached on target
|
|
91
|
+
// so each key is fetched at most once per evaluation.
|
|
126
92
|
// -------------------------------------------------------------------------
|
|
127
|
-
//
|
|
128
|
-
if
|
|
93
|
+
// Track keys we've already probed so we never call applySync twice
|
|
94
|
+
// for the same key — even if the host returned undefined.
|
|
95
|
+
const probedKeys = new Set();
|
|
96
|
+
function resolveFromHost(key) {
|
|
97
|
+
if (probedKeys.has(key))
|
|
98
|
+
return false;
|
|
99
|
+
let value;
|
|
129
100
|
try {
|
|
130
|
-
|
|
101
|
+
value = getValueAtPath.applySync(null, [[key]], {
|
|
131
102
|
arguments: { copy: true },
|
|
132
103
|
result: { copy: true },
|
|
133
104
|
});
|
|
134
|
-
// If it's function metadata, create wrapper
|
|
135
|
-
if (itemsValue && typeof itemsValue === 'object' && itemsValue.__isFunction) {
|
|
136
|
-
globalThis.$items = function (...args) {
|
|
137
|
-
const result = globalThis.__callFunctionAtPath.applySync(null, [['$items'], ...args], {
|
|
138
|
-
arguments: { copy: true },
|
|
139
|
-
result: { copy: true },
|
|
140
|
-
});
|
|
141
|
-
throwIfErrorSentinel(result);
|
|
142
|
-
return result;
|
|
143
|
-
};
|
|
144
|
-
globalThis.__data.$items = globalThis.$items;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
// Not a function - set to undefined or the value itself
|
|
148
|
-
globalThis.$items = itemsValue;
|
|
149
|
-
globalThis.__data.$items = itemsValue;
|
|
150
|
-
}
|
|
151
105
|
}
|
|
152
|
-
catch
|
|
153
|
-
//
|
|
154
|
-
|
|
155
|
-
|
|
106
|
+
catch {
|
|
107
|
+
// Don't mark as probed — the throw may be transient
|
|
108
|
+
// (e.g. host data not yet available) and a retry should be allowed.
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
// Mark as probed only after a definitive answer from the host.
|
|
112
|
+
probedKeys.add(key);
|
|
113
|
+
if (value === undefined)
|
|
114
|
+
return false;
|
|
115
|
+
throwIfErrorSentinel(value);
|
|
116
|
+
// Function metadata — create a callable wrapper
|
|
117
|
+
if (value && typeof value === 'object' && value.__isFunction) {
|
|
118
|
+
target[key] = function (...args) {
|
|
119
|
+
const result = callFunctionAtPath.applySync(null, [[key], ...args], {
|
|
120
|
+
arguments: { copy: true },
|
|
121
|
+
result: { copy: true },
|
|
122
|
+
});
|
|
123
|
+
throwIfErrorSentinel(result);
|
|
124
|
+
return result;
|
|
125
|
+
};
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
// Object metadata — create a lazy proxy for deep access
|
|
129
|
+
if (value &&
|
|
130
|
+
typeof value === 'object' &&
|
|
131
|
+
('__isObject' in value || '__isArray' in value)) {
|
|
132
|
+
target[key] = createDeepLazyProxy([key], undefined, callbacks);
|
|
133
|
+
return true;
|
|
156
134
|
}
|
|
135
|
+
// Primitive or null — store directly
|
|
136
|
+
target[key] = value;
|
|
137
|
+
return true;
|
|
157
138
|
}
|
|
158
139
|
// -------------------------------------------------------------------------
|
|
159
|
-
//
|
|
160
|
-
//
|
|
140
|
+
// Wrap target in a Proxy so unknown keys are resolved lazily from the host.
|
|
141
|
+
// Tournament's VariablePolyfill transforms identifiers to:
|
|
142
|
+
// ("x" in this ? this : global).x
|
|
143
|
+
// The has trap intercepts the "in" check, resolves the key on demand, and
|
|
144
|
+
// caches it on target. The get trap then finds it cached.
|
|
161
145
|
// -------------------------------------------------------------------------
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return createDeepLazyProxy(['$', nodeName]);
|
|
181
|
-
};
|
|
182
|
-
globalThis.__data.$ = globalThis.$;
|
|
146
|
+
return new Proxy(target, {
|
|
147
|
+
has(_target, prop) {
|
|
148
|
+
if (typeof prop === 'symbol')
|
|
149
|
+
return prop in target;
|
|
150
|
+
if (prop in target)
|
|
151
|
+
return true;
|
|
152
|
+
return resolveFromHost(prop);
|
|
153
|
+
},
|
|
154
|
+
get(_target, prop) {
|
|
155
|
+
if (typeof prop === 'symbol')
|
|
156
|
+
return undefined;
|
|
157
|
+
if (prop in target)
|
|
158
|
+
return target[prop];
|
|
159
|
+
// has() should have resolved it, but handle direct get() too
|
|
160
|
+
resolveFromHost(prop);
|
|
161
|
+
return target[prop];
|
|
162
|
+
},
|
|
163
|
+
});
|
|
183
164
|
}
|
|
184
165
|
// Matches initializeGlobalContext() lines 262-318 in packages/workflow/src/expression.ts
|
|
185
166
|
const DENYLISTED_GLOBALS = [
|
|
@@ -220,10 +201,10 @@ const DENYLISTED_GLOBALS = [
|
|
|
220
201
|
'unescape',
|
|
221
202
|
];
|
|
222
203
|
/**
|
|
223
|
-
* Wire builtins onto
|
|
204
|
+
* Wire builtins onto a context object so tournament's VariablePolyfill resolves them.
|
|
224
205
|
*
|
|
225
206
|
* Tournament transforms `Object` → `("Object" in this ? this : window).Object`.
|
|
226
|
-
* `this` =
|
|
207
|
+
* `this` = ctx. Without these entries on ctx, builtins fall through to
|
|
227
208
|
* `window` which doesn't exist in the isolate, causing a ReferenceError.
|
|
228
209
|
*
|
|
229
210
|
* Mirrors Expression.initializeGlobalContext() in packages/workflow/src/expression.ts.
|
|
@@ -291,4 +272,4 @@ function initializeBuiltins(data) {
|
|
|
291
272
|
data.Boolean = Boolean;
|
|
292
273
|
data.Symbol = Symbol;
|
|
293
274
|
}
|
|
294
|
-
//# sourceMappingURL=
|
|
275
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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,
|
|
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"}
|
|
@@ -2,7 +2,7 @@ import { DateTime, Duration, Interval } from 'luxon';
|
|
|
2
2
|
import { extend, extendOptional } from '../extensions/extend';
|
|
3
3
|
import { SafeObject, SafeError, ExpressionError } from './safe-globals';
|
|
4
4
|
import { createDeepLazyProxy } from './lazy-proxy';
|
|
5
|
-
import {
|
|
5
|
+
import { buildContext } from './context';
|
|
6
6
|
import { __prepareForTransfer } from './serialize';
|
|
7
7
|
// ============================================================================
|
|
8
8
|
// Library Setup
|
|
@@ -20,8 +20,6 @@ globalThis.SafeObject = SafeObject;
|
|
|
20
20
|
globalThis.SafeError = SafeError;
|
|
21
21
|
globalThis.ExpressionError = ExpressionError;
|
|
22
22
|
globalThis.createDeepLazyProxy = createDeepLazyProxy;
|
|
23
|
-
globalThis.
|
|
23
|
+
globalThis.buildContext = buildContext;
|
|
24
24
|
globalThis.__prepareForTransfer = __prepareForTransfer;
|
|
25
|
-
// Initialize empty __data object (populated by resetDataProxies before each evaluation)
|
|
26
|
-
globalThis.__data = {};
|
|
27
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA8BnD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,gEAAgE;AAChE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;AAC3C,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE/B,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;AACnC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;AAChC,UAAkB,CAAC,eAAe,GAAG,eAAe,CAAC;AAEtD,UAAU,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AACrD,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;AACvC,UAAU,CAAC,oBAAoB,GAAG,oBAAoB,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
|
|
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
|
|
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[]
|
|
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
|