@n8n/expression-runtime 0.6.0 → 0.8.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 +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/bridge/isolated-vm-bridge.d.ts +8 -0
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/cjs/bridge/isolated-vm-bridge.js +223 -117
- 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 +8 -1
- package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/cjs/evaluator/expression-evaluator.js +69 -6
- package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
- package/dist/cjs/evaluator/lru-cache.d.ts +11 -0
- package/dist/cjs/evaluator/lru-cache.d.ts.map +1 -0
- package/dist/cjs/evaluator/lru-cache.js +50 -0
- package/dist/cjs/evaluator/lru-cache.js.map +1 -0
- package/dist/cjs/extensions/boolean-extensions.d.ts +1 -1
- package/dist/cjs/extensions/object-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/object-extensions.js +8 -4
- package/dist/cjs/extensions/object-extensions.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/pool/isolate-pool.d.ts +34 -0
- package/dist/cjs/pool/isolate-pool.d.ts.map +1 -0
- package/dist/cjs/pool/isolate-pool.js +122 -0
- package/dist/cjs/pool/isolate-pool.js.map +1 -0
- package/dist/cjs/runtime/index.d.ts +9 -0
- package/dist/cjs/runtime/index.d.ts.map +1 -1
- package/dist/cjs/runtime/index.js.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.d.ts +20 -1
- package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.js +70 -8
- package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
- package/dist/cjs/runtime/reset.d.ts.map +1 -1
- package/dist/cjs/runtime/reset.js +37 -21
- package/dist/cjs/runtime/reset.js.map +1 -1
- package/dist/cjs/types/bridge.d.ts +12 -7
- package/dist/cjs/types/bridge.d.ts.map +1 -1
- package/dist/cjs/types/bridge.js +7 -1
- package/dist/cjs/types/bridge.js.map +1 -1
- package/dist/cjs/types/evaluator.d.ts +28 -14
- package/dist/cjs/types/evaluator.d.ts.map +1 -1
- package/dist/cjs/types/evaluator.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -1
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.d.ts +8 -0
- package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.js +223 -117
- 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 +8 -1
- package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/esm/evaluator/expression-evaluator.js +68 -5
- package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
- package/dist/esm/evaluator/lru-cache.d.ts +11 -0
- package/dist/esm/evaluator/lru-cache.d.ts.map +1 -0
- package/dist/esm/evaluator/lru-cache.js +36 -0
- package/dist/esm/evaluator/lru-cache.js.map +1 -0
- package/dist/esm/extensions/object-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/object-extensions.js +8 -4
- package/dist/esm/extensions/object-extensions.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pool/isolate-pool.d.ts +34 -0
- package/dist/esm/pool/isolate-pool.d.ts.map +1 -0
- package/dist/esm/pool/isolate-pool.js +106 -0
- package/dist/esm/pool/isolate-pool.js.map +1 -0
- package/dist/esm/runtime/index.d.ts +9 -0
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/lazy-proxy.d.ts +20 -1
- package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/esm/runtime/lazy-proxy.js +69 -8
- package/dist/esm/runtime/lazy-proxy.js.map +1 -1
- package/dist/esm/runtime/reset.d.ts.map +1 -1
- package/dist/esm/runtime/reset.js +38 -22
- package/dist/esm/runtime/reset.js.map +1 -1
- package/dist/esm/types/bridge.d.ts +12 -7
- package/dist/esm/types/bridge.d.ts.map +1 -1
- package/dist/esm/types/bridge.js +7 -1
- package/dist/esm/types/bridge.js.map +1 -1
- package/dist/esm/types/evaluator.d.ts +28 -14
- package/dist/esm/types/evaluator.d.ts.map +1 -1
- package/dist/esm/types/evaluator.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/types/index.d.ts.map +1 -1
- package/package.json +6 -4
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "@n8n/tournament"], factory);
|
|
7
|
+
define(["require", "exports", "@n8n/tournament", "../types/bridge", "../pool/isolate-pool", "./lru-cache"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.ExpressionEvaluator = void 0;
|
|
13
13
|
const tournament_1 = require("@n8n/tournament");
|
|
14
|
+
const bridge_1 = require("../types/bridge");
|
|
15
|
+
const isolate_pool_1 = require("../pool/isolate-pool");
|
|
16
|
+
const lru_cache_1 = require("./lru-cache");
|
|
14
17
|
class ExpressionEvaluator {
|
|
15
18
|
config;
|
|
16
19
|
disposed = false;
|
|
@@ -18,20 +21,54 @@
|
|
|
18
21
|
tournament;
|
|
19
22
|
// Cache: template expression → tournament-transformed JavaScript code
|
|
20
23
|
// Cache hit rate in production: ~99.9% (same expressions repeat within a workflow)
|
|
21
|
-
codeCache
|
|
24
|
+
codeCache;
|
|
25
|
+
pool;
|
|
26
|
+
bridgesByCaller = new WeakMap();
|
|
27
|
+
createBridge;
|
|
22
28
|
constructor(config) {
|
|
23
29
|
this.config = config;
|
|
30
|
+
this.codeCache = new lru_cache_1.LruCache(config.maxCodeCacheSize, () => {
|
|
31
|
+
this.config.observability?.metrics.counter('expression.code_cache.eviction', 1);
|
|
32
|
+
});
|
|
33
|
+
const logger = config.logger ?? bridge_1.DEFAULT_BRIDGE_CONFIG.logger;
|
|
34
|
+
this.createBridge = async () => {
|
|
35
|
+
const bridge = config.createBridge();
|
|
36
|
+
await bridge.initialize();
|
|
37
|
+
return bridge;
|
|
38
|
+
};
|
|
39
|
+
this.pool = new isolate_pool_1.IsolatePool(this.createBridge, config.poolSize ?? 1, (error) => {
|
|
40
|
+
logger.error('[IsolatePool] Failed to replenish bridge', { error });
|
|
41
|
+
config.observability?.metrics.counter('expression.pool.replenish_failed', 1);
|
|
42
|
+
}, logger);
|
|
24
43
|
}
|
|
25
44
|
async initialize() {
|
|
26
|
-
await this.
|
|
45
|
+
await this.pool.initialize();
|
|
27
46
|
}
|
|
28
|
-
|
|
47
|
+
async acquire(caller) {
|
|
48
|
+
if (this.bridgesByCaller.has(caller))
|
|
49
|
+
return;
|
|
50
|
+
let bridge;
|
|
51
|
+
try {
|
|
52
|
+
bridge = this.pool.acquire();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (error instanceof isolate_pool_1.PoolDisposedError)
|
|
56
|
+
throw error;
|
|
57
|
+
if (!(error instanceof isolate_pool_1.PoolExhaustedError))
|
|
58
|
+
throw error;
|
|
59
|
+
bridge = await this.createBridge();
|
|
60
|
+
}
|
|
61
|
+
this.config.observability?.metrics.counter('expression.pool.acquired', 1);
|
|
62
|
+
this.bridgesByCaller.set(caller, bridge);
|
|
63
|
+
}
|
|
64
|
+
evaluate(expression, data, caller, options) {
|
|
29
65
|
if (this.disposed)
|
|
30
66
|
throw new Error('Evaluator disposed');
|
|
67
|
+
const bridge = this.getBridge(caller);
|
|
31
68
|
// Transform template expression → sanitized JavaScript (cached)
|
|
32
69
|
const transformedCode = this.getTransformedCode(expression);
|
|
33
70
|
try {
|
|
34
|
-
const result =
|
|
71
|
+
const result = bridge.execute(transformedCode, data, {
|
|
35
72
|
timezone: options?.timezone,
|
|
36
73
|
});
|
|
37
74
|
if (this.config.observability) {
|
|
@@ -46,6 +83,28 @@
|
|
|
46
83
|
throw error;
|
|
47
84
|
}
|
|
48
85
|
}
|
|
86
|
+
getBridge(caller) {
|
|
87
|
+
const bridge = this.bridgesByCaller.get(caller);
|
|
88
|
+
if (!bridge) {
|
|
89
|
+
throw new Error('No bridge acquired for this context. Call acquire() first.');
|
|
90
|
+
}
|
|
91
|
+
// If the isolate died mid-execution (e.g. OOM), all remaining expressions
|
|
92
|
+
// in this execution are expected to fail. Recovery is per-execution, not per-expression.
|
|
93
|
+
if (bridge.isDisposed()) {
|
|
94
|
+
throw new Error('Isolate for this caller is no longer available');
|
|
95
|
+
}
|
|
96
|
+
return bridge;
|
|
97
|
+
}
|
|
98
|
+
async release(caller) {
|
|
99
|
+
const bridge = this.bridgesByCaller.get(caller);
|
|
100
|
+
if (!bridge)
|
|
101
|
+
return;
|
|
102
|
+
this.bridgesByCaller.delete(caller);
|
|
103
|
+
await this.pool.release(bridge);
|
|
104
|
+
}
|
|
105
|
+
async waitForReplenishment() {
|
|
106
|
+
await this.pool.waitForReplenishment();
|
|
107
|
+
}
|
|
49
108
|
/**
|
|
50
109
|
* Transform a template expression to executable JavaScript via tournament.
|
|
51
110
|
*
|
|
@@ -58,8 +117,10 @@
|
|
|
58
117
|
getTransformedCode(expression) {
|
|
59
118
|
const cached = this.codeCache.get(expression);
|
|
60
119
|
if (cached !== undefined) {
|
|
120
|
+
this.config.observability?.metrics.counter('expression.code_cache.hit', 1);
|
|
61
121
|
return cached;
|
|
62
122
|
}
|
|
123
|
+
this.config.observability?.metrics.counter('expression.code_cache.miss', 1);
|
|
63
124
|
if (!this.tournament) {
|
|
64
125
|
// Tournament requires an errorHandler but we only use getExpressionCode()
|
|
65
126
|
// for AST transformation — we never call tournament.execute(), so this
|
|
@@ -73,12 +134,14 @@
|
|
|
73
134
|
}
|
|
74
135
|
const [transformedCode] = this.tournament.getExpressionCode(expression);
|
|
75
136
|
this.codeCache.set(expression, transformedCode);
|
|
137
|
+
this.config.observability?.metrics.gauge('expression.code_cache.size', this.codeCache.size);
|
|
76
138
|
return transformedCode;
|
|
77
139
|
}
|
|
78
140
|
async dispose() {
|
|
79
141
|
this.disposed = true;
|
|
80
142
|
this.codeCache.clear();
|
|
81
|
-
|
|
143
|
+
this.config.observability?.metrics.gauge('expression.code_cache.size', 0);
|
|
144
|
+
await this.pool.dispose();
|
|
82
145
|
}
|
|
83
146
|
isDisposed() {
|
|
84
147
|
return this.disposed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gDAA6C;IAQ7C,MAAa,mBAAmB;QACvB,MAAM,CAAkB;QAExB,QAAQ,GAAG,KAAK,CAAC;QAEzB,wFAAwF;QAChF,UAAU,CAAc;QAEhC,sEAAsE;QACtE,mFAAmF;QAC3E,SAAS,
|
|
1
|
+
{"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class LruCache<K, V> {
|
|
2
|
+
private readonly capacity;
|
|
3
|
+
private readonly onEvict?;
|
|
4
|
+
private map;
|
|
5
|
+
constructor(capacity: number, onEvict?: ((key: K, value: V) => void) | undefined);
|
|
6
|
+
get(key: K): V | undefined;
|
|
7
|
+
set(key: K, value: V): void;
|
|
8
|
+
get size(): number;
|
|
9
|
+
clear(): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=lru-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../../src/evaluator/lru-cache.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IAIxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAJ1B,OAAO,CAAC,GAAG,CAAmB;gBAGZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,GAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,aAAA;IAOtD,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAQ1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAU3B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LruCache = void 0;
|
|
13
|
+
class LruCache {
|
|
14
|
+
capacity;
|
|
15
|
+
onEvict;
|
|
16
|
+
map = new Map();
|
|
17
|
+
constructor(capacity, onEvict) {
|
|
18
|
+
this.capacity = capacity;
|
|
19
|
+
this.onEvict = onEvict;
|
|
20
|
+
if (capacity < 1) {
|
|
21
|
+
throw new Error('LruCache capacity must be at least 1');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
get(key) {
|
|
25
|
+
const value = this.map.get(key);
|
|
26
|
+
if (value === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
this.map.delete(key);
|
|
29
|
+
this.map.set(key, value);
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
set(key, value) {
|
|
33
|
+
this.map.delete(key);
|
|
34
|
+
this.map.set(key, value);
|
|
35
|
+
if (this.map.size > this.capacity) {
|
|
36
|
+
const [oldestKey, oldestValue] = this.map.entries().next().value;
|
|
37
|
+
this.map.delete(oldestKey);
|
|
38
|
+
this.onEvict?.(oldestKey, oldestValue);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
get size() {
|
|
42
|
+
return this.map.size;
|
|
43
|
+
}
|
|
44
|
+
clear() {
|
|
45
|
+
this.map.clear();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.LruCache = LruCache;
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=lru-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lru-cache.js","sourceRoot":"","sources":["../../../src/evaluator/lru-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,MAAa,QAAQ;QAIF;QACA;QAJV,GAAG,GAAG,IAAI,GAAG,EAAQ,CAAC;QAE9B,YACkB,QAAgB,EAChB,OAAoC;YADpC,aAAQ,GAAR,QAAQ,CAAQ;YAChB,YAAO,GAAP,OAAO,CAA6B;YAErD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,GAAG,CAAC,GAAM;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,GAAG,CAAC,GAAM,EAAE,KAAQ;YACnB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;QAED,IAAI,IAAI;YACP,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;KACD;IArCD,4BAqCC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExtensionMap } from './extensions';
|
|
2
2
|
export declare function toBoolean(value: boolean): boolean;
|
|
3
|
-
export declare function toInt(value: boolean):
|
|
3
|
+
export declare function toInt(value: boolean): 0 | 1;
|
|
4
4
|
export declare function toDateTime(): undefined;
|
|
5
5
|
export declare const booleanExtensions: ExtensionMap;
|
|
6
6
|
//# sourceMappingURL=boolean-extensions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/object-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmEjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB7C;yBAjBe,OAAO;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"object-extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/object-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmEjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB7C;yBAjBe,OAAO;;;;;;;;;;;;AA8BvB,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,UAItC;yBAJe,SAAS;;;;;;;;;;;;AAMzB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,UAEzC;yBAFe,YAAY;;;;;;;;;;;;AAI5B,wBAAgB,KAAK,cAEpB;AAED,wBAAgB,OAAO,cAEtB;AAED,wBAAgB,SAAS,cAExB;AAED,wBAAgB,UAAU,cAEzB;AA+LD,eAAO,MAAM,gBAAgB,EAAE,YAmB9B,CAAC"}
|
|
@@ -95,12 +95,16 @@
|
|
|
95
95
|
// DIVERGENCE from packages/workflow/src/extensions/object-extensions.ts:
|
|
96
96
|
// The original uses URLSearchParams which is a Web API unavailable inside the
|
|
97
97
|
// V8 isolate. encodeURIComponent is an ECMAScript built-in available in all
|
|
98
|
-
// V8 contexts
|
|
98
|
+
// V8 contexts, but it doesn't encode !'()~ which WHATWG requires. The extra
|
|
99
|
+
// replace step covers those characters to match URLSearchParams output.
|
|
100
|
+
function whatwgEncode(str) {
|
|
101
|
+
return encodeURIComponent(str)
|
|
102
|
+
.replace(/%20/g, '+')
|
|
103
|
+
.replace(/[!'()~]/g, (c) => '%' + c.charCodeAt(0).toString(16).toUpperCase());
|
|
104
|
+
}
|
|
99
105
|
function urlEncode(value) {
|
|
100
106
|
return Object.entries(value)
|
|
101
|
-
.map(([k, v]) =>
|
|
102
|
-
'=' +
|
|
103
|
-
encodeURIComponent(String(v)).replace(/%20/g, '+'))
|
|
107
|
+
.map(([k, v]) => whatwgEncode(k) + '=' + whatwgEncode(String(v)))
|
|
104
108
|
.join('&');
|
|
105
109
|
}
|
|
106
110
|
function toJsonString(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-extensions.js","sourceRoot":"","sources":["../../../src/extensions/object-extensions.ts"],"names":[],"mappings":";;;;;;;;;;;;IAmEA,0BAiBC;
|
|
1
|
+
{"version":3,"file":"object-extensions.js","sourceRoot":"","sources":["../../../src/extensions/object-extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ExpressionEvaluator } from './evaluator/expression-evaluator';
|
|
2
2
|
export { IsolatedVmBridge } from './bridge/isolated-vm-bridge';
|
|
3
|
-
export type { IExpressionEvaluator, EvaluatorConfig, WorkflowData, EvaluateOptions, ExecuteOptions, RuntimeBridge, BridgeConfig, ObservabilityProvider, MetricsAPI, TracesAPI, Span, LogsAPI, } from './types';
|
|
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
5
|
export { extend, extendOptional, EXTENSION_OBJECTS } from './extensions/extend';
|
|
6
6
|
export { ExpressionExtensionError } from './extensions/expression-extension-error';
|
package/dist/cjs/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,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;AAGjB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,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;AAGjB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,eAAe;IACf,yEAAuE;IAA9D,2HAAA,mBAAmB,OAAA;IAE5B,uEAAuE;IACvE,6EAA6E;IAC7E,kEAA+D;IAAtD,sHAAA,gBAAgB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,eAAe;IACf,yEAAuE;IAA9D,2HAAA,mBAAmB,OAAA;IAE5B,uEAAuE;IACvE,6EAA6E;IAC7E,kEAA+D;IAAtD,sHAAA,gBAAgB,OAAA;IAmBzB,cAAc;IACd,iCAMiB;IALhB,wGAAA,eAAe,OAAA;IACf,yGAAA,gBAAgB,OAAA;IAChB,qGAAA,YAAY,OAAA;IACZ,+GAAA,sBAAsB,OAAA;IACtB,oGAAA,WAAW,OAAA;IAGZ,4BAA4B;IAC5B,8CAAgF;IAAvE,gGAAA,MAAM,OAAA;IAAE,wGAAA,cAAc,OAAA;IAAE,2GAAA,iBAAiB,OAAA;IAClD,sFAAmF;IAA1E,sIAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { RuntimeBridge } from '../types';
|
|
2
|
+
import type { Logger } from '../types/bridge';
|
|
3
|
+
export declare class PoolDisposedError extends Error {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export declare class PoolExhaustedError extends Error {
|
|
7
|
+
constructor();
|
|
8
|
+
}
|
|
9
|
+
export declare class IsolatePool {
|
|
10
|
+
private readonly createBridge;
|
|
11
|
+
private readonly size;
|
|
12
|
+
private readonly onReplenishFailed?;
|
|
13
|
+
private readonly logger?;
|
|
14
|
+
private bridges;
|
|
15
|
+
private disposed;
|
|
16
|
+
/** Number of bridges currently being created. */
|
|
17
|
+
private warming;
|
|
18
|
+
/** In-flight isolate replenishment promises. */
|
|
19
|
+
private replenishPromises;
|
|
20
|
+
constructor(createBridge: () => Promise<RuntimeBridge>, size: number, onReplenishFailed?: ((error: unknown) => void) | undefined, logger?: Logger | undefined);
|
|
21
|
+
initialize(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Pops a warm bridge from the pool. Kickstarts replenishment.
|
|
24
|
+
* Throws if disposed or pool is empty. Callers are expected to handle the empty case by falling back to cold-start bridge creation.
|
|
25
|
+
*/
|
|
26
|
+
acquire(): RuntimeBridge;
|
|
27
|
+
release(bridge: RuntimeBridge): Promise<void>;
|
|
28
|
+
dispose(): Promise<void>;
|
|
29
|
+
private static readonly MAX_REPLENISH_RETRIES;
|
|
30
|
+
private static readonly REPLENISH_RETRY_BASE_MS;
|
|
31
|
+
waitForReplenishment(): Promise<void>;
|
|
32
|
+
private replenish;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=isolate-pool.d.ts.map
|
|
@@ -0,0 +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;AAE9C,qBAAa,iBAAkB,SAAQ,KAAK;;CAK3C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;;CAK5C;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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.IsolatePool = exports.PoolExhaustedError = exports.PoolDisposedError = void 0;
|
|
13
|
+
class PoolDisposedError extends Error {
|
|
14
|
+
constructor() {
|
|
15
|
+
super('Pool is disposed');
|
|
16
|
+
this.name = 'PoolDisposedError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PoolDisposedError = PoolDisposedError;
|
|
20
|
+
class PoolExhaustedError extends Error {
|
|
21
|
+
constructor() {
|
|
22
|
+
super('No isolate bridge available in pool');
|
|
23
|
+
this.name = 'PoolExhaustedError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.PoolExhaustedError = PoolExhaustedError;
|
|
27
|
+
class IsolatePool {
|
|
28
|
+
createBridge;
|
|
29
|
+
size;
|
|
30
|
+
onReplenishFailed;
|
|
31
|
+
logger;
|
|
32
|
+
bridges = [];
|
|
33
|
+
disposed = false;
|
|
34
|
+
/** Number of bridges currently being created. */
|
|
35
|
+
warming = 0;
|
|
36
|
+
/** In-flight isolate replenishment promises. */
|
|
37
|
+
replenishPromises = new Set();
|
|
38
|
+
constructor(createBridge, size, onReplenishFailed, logger) {
|
|
39
|
+
this.createBridge = createBridge;
|
|
40
|
+
this.size = size;
|
|
41
|
+
this.onReplenishFailed = onReplenishFailed;
|
|
42
|
+
this.logger = logger;
|
|
43
|
+
}
|
|
44
|
+
async initialize() {
|
|
45
|
+
const results = await Promise.allSettled(Array.from({ length: this.size }, () => this.createBridge()));
|
|
46
|
+
for (const result of results) {
|
|
47
|
+
if (result.status === 'fulfilled') {
|
|
48
|
+
this.bridges.push(result.value);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.logger?.error('[IsolatePool] Failed to create bridge during init', {
|
|
52
|
+
error: result.reason,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (this.bridges.length === 0) {
|
|
57
|
+
throw new Error('IsolatePool failed to create any bridges');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Pops a warm bridge from the pool. Kickstarts replenishment.
|
|
62
|
+
* Throws if disposed or pool is empty. Callers are expected to handle the empty case by falling back to cold-start bridge creation.
|
|
63
|
+
*/
|
|
64
|
+
acquire() {
|
|
65
|
+
if (this.disposed)
|
|
66
|
+
throw new PoolDisposedError();
|
|
67
|
+
const bridge = this.bridges.shift();
|
|
68
|
+
if (!bridge)
|
|
69
|
+
throw new PoolExhaustedError();
|
|
70
|
+
void this.replenish();
|
|
71
|
+
return bridge;
|
|
72
|
+
}
|
|
73
|
+
async release(bridge) {
|
|
74
|
+
if (!bridge.isDisposed())
|
|
75
|
+
await bridge.dispose();
|
|
76
|
+
this.replenish();
|
|
77
|
+
}
|
|
78
|
+
async dispose() {
|
|
79
|
+
this.disposed = true;
|
|
80
|
+
await Promise.all([...this.replenishPromises]);
|
|
81
|
+
await Promise.all(this.bridges.map((b) => b.dispose()));
|
|
82
|
+
this.bridges = [];
|
|
83
|
+
}
|
|
84
|
+
static MAX_REPLENISH_RETRIES = 3;
|
|
85
|
+
static REPLENISH_RETRY_BASE_MS = 500;
|
|
86
|
+
async waitForReplenishment() {
|
|
87
|
+
if (this.replenishPromises.size > 0) {
|
|
88
|
+
await Promise.all([...this.replenishPromises]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
replenish(attempt = 0) {
|
|
92
|
+
if (this.disposed)
|
|
93
|
+
return;
|
|
94
|
+
if (this.bridges.length + this.warming >= this.size)
|
|
95
|
+
return;
|
|
96
|
+
this.warming++;
|
|
97
|
+
let promise;
|
|
98
|
+
promise = this.createBridge()
|
|
99
|
+
.then((bridge) => {
|
|
100
|
+
this.warming--;
|
|
101
|
+
this.replenishPromises.delete(promise);
|
|
102
|
+
if (this.disposed) {
|
|
103
|
+
void bridge.dispose();
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this.bridges.push(bridge);
|
|
107
|
+
})
|
|
108
|
+
.catch((error) => {
|
|
109
|
+
this.warming--;
|
|
110
|
+
this.replenishPromises.delete(promise);
|
|
111
|
+
this.onReplenishFailed?.(error);
|
|
112
|
+
if (attempt < IsolatePool.MAX_REPLENISH_RETRIES) {
|
|
113
|
+
const delay = IsolatePool.REPLENISH_RETRY_BASE_MS * 2 ** attempt;
|
|
114
|
+
setTimeout(() => this.replenish(attempt + 1), delay).unref();
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
this.replenishPromises.add(promise);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.IsolatePool = IsolatePool;
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=isolate-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isolate-pool.js","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,15 @@ declare global {
|
|
|
28
28
|
var $now: import('luxon').DateTime;
|
|
29
29
|
var $today: import('luxon').DateTime;
|
|
30
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;
|
|
31
40
|
}
|
|
32
41
|
}
|
|
33
42
|
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;
|
|
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 +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;
|
|
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,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serialized error sentinel returned by host-side bridge callbacks.
|
|
3
|
+
* When a callback throws, the bridge catches the error and returns this
|
|
4
|
+
* sentinel instead of letting it cross the isolate boundary (which strips
|
|
5
|
+
* custom class identity and properties).
|
|
6
|
+
*/
|
|
7
|
+
export interface ErrorSentinel {
|
|
8
|
+
__isError: true;
|
|
9
|
+
name: string;
|
|
10
|
+
message: string;
|
|
11
|
+
stack?: string;
|
|
12
|
+
extra?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* If `value` is an error sentinel from a host-side callback, throw it
|
|
16
|
+
* directly. The isolate's outer try-catch will detect __isError and
|
|
17
|
+
* return it as the result. Error reconstruction happens on the host only.
|
|
18
|
+
*/
|
|
19
|
+
export declare function throwIfErrorSentinel(value: unknown): void;
|
|
1
20
|
/** Returns true if `obj` is a deep lazy proxy created by createDeepLazyProxy. */
|
|
2
21
|
export declare function isLazyProxy(obj: unknown): boolean;
|
|
3
22
|
/** Returns the basePath the proxy was created with, or undefined if not a proxy. */
|
|
@@ -18,5 +37,5 @@ export declare function getProxyPath(obj: object): string[] | undefined;
|
|
|
18
37
|
* @param basePath - Current path in object tree (e.g., ['$json', 'user'])
|
|
19
38
|
* @returns Proxy object with lazy loading behavior
|
|
20
39
|
*/
|
|
21
|
-
export declare function createDeepLazyProxy(basePath?: string[]): any;
|
|
40
|
+
export declare function createDeepLazyProxy(basePath?: string[], knownKeys?: string[]): any;
|
|
22
41
|
//# 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,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,GAAG,GAAG,
|
|
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"}
|