@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.
Files changed (90) hide show
  1. package/dist/bundle/runtime.esm.js +17 -17
  2. package/dist/bundle/runtime.esm.js.map +3 -3
  3. package/dist/bundle/runtime.iife.js +17 -17
  4. package/dist/bundle/runtime.iife.js.map +3 -3
  5. package/dist/cjs/bridge/isolated-vm-bridge.d.ts +8 -0
  6. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
  7. package/dist/cjs/bridge/isolated-vm-bridge.js +223 -117
  8. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
  9. package/dist/cjs/build.tsbuildinfo +1 -1
  10. package/dist/cjs/evaluator/expression-evaluator.d.ts +8 -1
  11. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
  12. package/dist/cjs/evaluator/expression-evaluator.js +69 -6
  13. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
  14. package/dist/cjs/evaluator/lru-cache.d.ts +11 -0
  15. package/dist/cjs/evaluator/lru-cache.d.ts.map +1 -0
  16. package/dist/cjs/evaluator/lru-cache.js +50 -0
  17. package/dist/cjs/evaluator/lru-cache.js.map +1 -0
  18. package/dist/cjs/extensions/boolean-extensions.d.ts +1 -1
  19. package/dist/cjs/extensions/object-extensions.d.ts.map +1 -1
  20. package/dist/cjs/extensions/object-extensions.js +8 -4
  21. package/dist/cjs/extensions/object-extensions.js.map +1 -1
  22. package/dist/cjs/index.d.ts +1 -1
  23. package/dist/cjs/index.d.ts.map +1 -1
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/pool/isolate-pool.d.ts +34 -0
  26. package/dist/cjs/pool/isolate-pool.d.ts.map +1 -0
  27. package/dist/cjs/pool/isolate-pool.js +122 -0
  28. package/dist/cjs/pool/isolate-pool.js.map +1 -0
  29. package/dist/cjs/runtime/index.d.ts +9 -0
  30. package/dist/cjs/runtime/index.d.ts.map +1 -1
  31. package/dist/cjs/runtime/index.js.map +1 -1
  32. package/dist/cjs/runtime/lazy-proxy.d.ts +20 -1
  33. package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
  34. package/dist/cjs/runtime/lazy-proxy.js +70 -8
  35. package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
  36. package/dist/cjs/runtime/reset.d.ts.map +1 -1
  37. package/dist/cjs/runtime/reset.js +37 -21
  38. package/dist/cjs/runtime/reset.js.map +1 -1
  39. package/dist/cjs/types/bridge.d.ts +12 -7
  40. package/dist/cjs/types/bridge.d.ts.map +1 -1
  41. package/dist/cjs/types/bridge.js +7 -1
  42. package/dist/cjs/types/bridge.js.map +1 -1
  43. package/dist/cjs/types/evaluator.d.ts +28 -14
  44. package/dist/cjs/types/evaluator.d.ts.map +1 -1
  45. package/dist/cjs/types/evaluator.js.map +1 -1
  46. package/dist/cjs/types/index.d.ts +1 -1
  47. package/dist/cjs/types/index.d.ts.map +1 -1
  48. package/dist/esm/bridge/isolated-vm-bridge.d.ts +8 -0
  49. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
  50. package/dist/esm/bridge/isolated-vm-bridge.js +223 -117
  51. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
  52. package/dist/esm/build.tsbuildinfo +1 -1
  53. package/dist/esm/evaluator/expression-evaluator.d.ts +8 -1
  54. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
  55. package/dist/esm/evaluator/expression-evaluator.js +68 -5
  56. package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
  57. package/dist/esm/evaluator/lru-cache.d.ts +11 -0
  58. package/dist/esm/evaluator/lru-cache.d.ts.map +1 -0
  59. package/dist/esm/evaluator/lru-cache.js +36 -0
  60. package/dist/esm/evaluator/lru-cache.js.map +1 -0
  61. package/dist/esm/extensions/object-extensions.d.ts.map +1 -1
  62. package/dist/esm/extensions/object-extensions.js +8 -4
  63. package/dist/esm/extensions/object-extensions.js.map +1 -1
  64. package/dist/esm/index.d.ts +1 -1
  65. package/dist/esm/index.d.ts.map +1 -1
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/esm/pool/isolate-pool.d.ts +34 -0
  68. package/dist/esm/pool/isolate-pool.d.ts.map +1 -0
  69. package/dist/esm/pool/isolate-pool.js +106 -0
  70. package/dist/esm/pool/isolate-pool.js.map +1 -0
  71. package/dist/esm/runtime/index.d.ts +9 -0
  72. package/dist/esm/runtime/index.d.ts.map +1 -1
  73. package/dist/esm/runtime/index.js.map +1 -1
  74. package/dist/esm/runtime/lazy-proxy.d.ts +20 -1
  75. package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
  76. package/dist/esm/runtime/lazy-proxy.js +69 -8
  77. package/dist/esm/runtime/lazy-proxy.js.map +1 -1
  78. package/dist/esm/runtime/reset.d.ts.map +1 -1
  79. package/dist/esm/runtime/reset.js +38 -22
  80. package/dist/esm/runtime/reset.js.map +1 -1
  81. package/dist/esm/types/bridge.d.ts +12 -7
  82. package/dist/esm/types/bridge.d.ts.map +1 -1
  83. package/dist/esm/types/bridge.js +7 -1
  84. package/dist/esm/types/bridge.js.map +1 -1
  85. package/dist/esm/types/evaluator.d.ts +28 -14
  86. package/dist/esm/types/evaluator.d.ts.map +1 -1
  87. package/dist/esm/types/evaluator.js.map +1 -1
  88. package/dist/esm/types/index.d.ts +1 -1
  89. package/dist/esm/types/index.d.ts.map +1 -1
  90. package/package.json +6 -4
@@ -1,4 +1,7 @@
1
1
  import { Tournament } from '@n8n/tournament';
2
+ import { DEFAULT_BRIDGE_CONFIG } from '../types/bridge';
3
+ import { IsolatePool, PoolDisposedError, PoolExhaustedError } from '../pool/isolate-pool';
4
+ import { LruCache } from './lru-cache';
2
5
  export class ExpressionEvaluator {
3
6
  config;
4
7
  disposed = false;
@@ -6,20 +9,54 @@ export class ExpressionEvaluator {
6
9
  tournament;
7
10
  // Cache: template expression → tournament-transformed JavaScript code
8
11
  // Cache hit rate in production: ~99.9% (same expressions repeat within a workflow)
9
- codeCache = new Map();
12
+ codeCache;
13
+ pool;
14
+ bridgesByCaller = new WeakMap();
15
+ createBridge;
10
16
  constructor(config) {
11
17
  this.config = config;
18
+ this.codeCache = new LruCache(config.maxCodeCacheSize, () => {
19
+ this.config.observability?.metrics.counter('expression.code_cache.eviction', 1);
20
+ });
21
+ const logger = config.logger ?? DEFAULT_BRIDGE_CONFIG.logger;
22
+ this.createBridge = async () => {
23
+ const bridge = config.createBridge();
24
+ await bridge.initialize();
25
+ return bridge;
26
+ };
27
+ this.pool = new IsolatePool(this.createBridge, config.poolSize ?? 1, (error) => {
28
+ logger.error('[IsolatePool] Failed to replenish bridge', { error });
29
+ config.observability?.metrics.counter('expression.pool.replenish_failed', 1);
30
+ }, logger);
12
31
  }
13
32
  async initialize() {
14
- await this.config.bridge.initialize();
33
+ await this.pool.initialize();
15
34
  }
16
- evaluate(expression, data, options) {
35
+ async acquire(caller) {
36
+ if (this.bridgesByCaller.has(caller))
37
+ return;
38
+ let bridge;
39
+ try {
40
+ bridge = this.pool.acquire();
41
+ }
42
+ catch (error) {
43
+ if (error instanceof PoolDisposedError)
44
+ throw error;
45
+ if (!(error instanceof PoolExhaustedError))
46
+ throw error;
47
+ bridge = await this.createBridge();
48
+ }
49
+ this.config.observability?.metrics.counter('expression.pool.acquired', 1);
50
+ this.bridgesByCaller.set(caller, bridge);
51
+ }
52
+ evaluate(expression, data, caller, options) {
17
53
  if (this.disposed)
18
54
  throw new Error('Evaluator disposed');
55
+ const bridge = this.getBridge(caller);
19
56
  // Transform template expression → sanitized JavaScript (cached)
20
57
  const transformedCode = this.getTransformedCode(expression);
21
58
  try {
22
- const result = this.config.bridge.execute(transformedCode, data, {
59
+ const result = bridge.execute(transformedCode, data, {
23
60
  timezone: options?.timezone,
24
61
  });
25
62
  if (this.config.observability) {
@@ -34,6 +71,28 @@ export class ExpressionEvaluator {
34
71
  throw error;
35
72
  }
36
73
  }
74
+ getBridge(caller) {
75
+ const bridge = this.bridgesByCaller.get(caller);
76
+ if (!bridge) {
77
+ throw new Error('No bridge acquired for this context. Call acquire() first.');
78
+ }
79
+ // If the isolate died mid-execution (e.g. OOM), all remaining expressions
80
+ // in this execution are expected to fail. Recovery is per-execution, not per-expression.
81
+ if (bridge.isDisposed()) {
82
+ throw new Error('Isolate for this caller is no longer available');
83
+ }
84
+ return bridge;
85
+ }
86
+ async release(caller) {
87
+ const bridge = this.bridgesByCaller.get(caller);
88
+ if (!bridge)
89
+ return;
90
+ this.bridgesByCaller.delete(caller);
91
+ await this.pool.release(bridge);
92
+ }
93
+ async waitForReplenishment() {
94
+ await this.pool.waitForReplenishment();
95
+ }
37
96
  /**
38
97
  * Transform a template expression to executable JavaScript via tournament.
39
98
  *
@@ -46,8 +105,10 @@ export class ExpressionEvaluator {
46
105
  getTransformedCode(expression) {
47
106
  const cached = this.codeCache.get(expression);
48
107
  if (cached !== undefined) {
108
+ this.config.observability?.metrics.counter('expression.code_cache.hit', 1);
49
109
  return cached;
50
110
  }
111
+ this.config.observability?.metrics.counter('expression.code_cache.miss', 1);
51
112
  if (!this.tournament) {
52
113
  // Tournament requires an errorHandler but we only use getExpressionCode()
53
114
  // for AST transformation — we never call tournament.execute(), so this
@@ -61,12 +122,14 @@ export class ExpressionEvaluator {
61
122
  }
62
123
  const [transformedCode] = this.tournament.getExpressionCode(expression);
63
124
  this.codeCache.set(expression, transformedCode);
125
+ this.config.observability?.metrics.gauge('expression.code_cache.size', this.codeCache.size);
64
126
  return transformedCode;
65
127
  }
66
128
  async dispose() {
67
129
  this.disposed = true;
68
130
  this.codeCache.clear();
69
- await this.config.bridge.dispose();
131
+ this.config.observability?.metrics.gauge('expression.code_cache.size', 0);
132
+ await this.pool.dispose();
70
133
  }
71
134
  isDisposed() {
72
135
  return this.disposed;
@@ -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,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAkB;IAExB,QAAQ,GAAG,KAAK,CAAC;IAEzB,wFAAwF;IAChF,UAAU,CAAc;IAEhC,sEAAsE;IACtE,mFAAmF;IAC3E,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,YAAY,MAAuB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,IAAkB,EAAE,OAAyB;QACzE,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEzD,gEAAgE;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;gBAChE,QAAQ,EAAE,OAAO,EAAE,QAAQ;aAC3B,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;YAED,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,UAAkB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,0EAA0E;YAC1E,uEAAuE;YACvE,uEAAuE;YACvE,6CAA6C;YAC7C,MAAM,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;gBACpE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;aACrC,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAChD,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD"}
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,36 @@
1
+ export class LruCache {
2
+ capacity;
3
+ onEvict;
4
+ map = new Map();
5
+ constructor(capacity, onEvict) {
6
+ this.capacity = capacity;
7
+ this.onEvict = onEvict;
8
+ if (capacity < 1) {
9
+ throw new Error('LruCache capacity must be at least 1');
10
+ }
11
+ }
12
+ get(key) {
13
+ const value = this.map.get(key);
14
+ if (value === undefined)
15
+ return undefined;
16
+ this.map.delete(key);
17
+ this.map.set(key, value);
18
+ return value;
19
+ }
20
+ set(key, value) {
21
+ this.map.delete(key);
22
+ this.map.set(key, value);
23
+ if (this.map.size > this.capacity) {
24
+ const [oldestKey, oldestValue] = this.map.entries().next().value;
25
+ this.map.delete(oldestKey);
26
+ this.onEvict?.(oldestKey, oldestValue);
27
+ }
28
+ }
29
+ get size() {
30
+ return this.map.size;
31
+ }
32
+ clear() {
33
+ this.map.clear();
34
+ }
35
+ }
36
+ //# sourceMappingURL=lru-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.js","sourceRoot":"","sources":["../../../src/evaluator/lru-cache.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IAIF;IACA;IAJV,GAAG,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE9B,YACkB,QAAgB,EAChB,OAAoC;QADpC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAA6B;QAErD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;IACF,CAAC;IAED,GAAG,CAAC,GAAM;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QACnB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC;YAClE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACD"}
@@ -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;;;;;;;;;;;;AAuBvB,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,UAStC;yBATe,SAAS;;;;;;;;;;;;AAWzB,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"}
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"}
@@ -76,12 +76,16 @@ export function compact(value) {
76
76
  // DIVERGENCE from packages/workflow/src/extensions/object-extensions.ts:
77
77
  // The original uses URLSearchParams which is a Web API unavailable inside the
78
78
  // V8 isolate. encodeURIComponent is an ECMAScript built-in available in all
79
- // V8 contexts and produces the same output for the supported input type.
79
+ // V8 contexts, but it doesn't encode !'()~ which WHATWG requires. The extra
80
+ // replace step covers those characters to match URLSearchParams output.
81
+ function whatwgEncode(str) {
82
+ return encodeURIComponent(str)
83
+ .replace(/%20/g, '+')
84
+ .replace(/[!'()~]/g, (c) => '%' + c.charCodeAt(0).toString(16).toUpperCase());
85
+ }
80
86
  export function urlEncode(value) {
81
87
  return Object.entries(value)
82
- .map(([k, v]) => encodeURIComponent(k).replace(/%20/g, '+') +
83
- '=' +
84
- encodeURIComponent(String(v)).replace(/%20/g, '+'))
88
+ .map(([k, v]) => whatwgEncode(k) + '=' + whatwgEncode(String(v)))
85
89
  .join('&');
86
90
  }
87
91
  export function toJsonString(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"object-extensions.js","sourceRoot":"","sources":["../../../src/extensions/object-extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-extensions.js","sourceRoot":"","sources":["../../../src/extensions/object-extensions.ts"],"names":[],"mappings":"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"}
@@ -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';
@@ -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"}
@@ -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;AAkB/D,cAAc;AACd,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;AAEjB,4BAA4B;AAC5B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,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;AAEjB,4BAA4B;AAC5B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -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,106 @@
1
+ export class PoolDisposedError extends Error {
2
+ constructor() {
3
+ super('Pool is disposed');
4
+ this.name = 'PoolDisposedError';
5
+ }
6
+ }
7
+ export class PoolExhaustedError extends Error {
8
+ constructor() {
9
+ super('No isolate bridge available in pool');
10
+ this.name = 'PoolExhaustedError';
11
+ }
12
+ }
13
+ export class IsolatePool {
14
+ createBridge;
15
+ size;
16
+ onReplenishFailed;
17
+ logger;
18
+ bridges = [];
19
+ disposed = false;
20
+ /** Number of bridges currently being created. */
21
+ warming = 0;
22
+ /** In-flight isolate replenishment promises. */
23
+ replenishPromises = new Set();
24
+ constructor(createBridge, size, onReplenishFailed, logger) {
25
+ this.createBridge = createBridge;
26
+ this.size = size;
27
+ this.onReplenishFailed = onReplenishFailed;
28
+ this.logger = logger;
29
+ }
30
+ async initialize() {
31
+ const results = await Promise.allSettled(Array.from({ length: this.size }, () => this.createBridge()));
32
+ for (const result of results) {
33
+ if (result.status === 'fulfilled') {
34
+ this.bridges.push(result.value);
35
+ }
36
+ else {
37
+ this.logger?.error('[IsolatePool] Failed to create bridge during init', {
38
+ error: result.reason,
39
+ });
40
+ }
41
+ }
42
+ if (this.bridges.length === 0) {
43
+ throw new Error('IsolatePool failed to create any bridges');
44
+ }
45
+ }
46
+ /**
47
+ * Pops a warm bridge from the pool. Kickstarts replenishment.
48
+ * Throws if disposed or pool is empty. Callers are expected to handle the empty case by falling back to cold-start bridge creation.
49
+ */
50
+ acquire() {
51
+ if (this.disposed)
52
+ throw new PoolDisposedError();
53
+ const bridge = this.bridges.shift();
54
+ if (!bridge)
55
+ throw new PoolExhaustedError();
56
+ void this.replenish();
57
+ return bridge;
58
+ }
59
+ async release(bridge) {
60
+ if (!bridge.isDisposed())
61
+ await bridge.dispose();
62
+ this.replenish();
63
+ }
64
+ async dispose() {
65
+ this.disposed = true;
66
+ await Promise.all([...this.replenishPromises]);
67
+ await Promise.all(this.bridges.map((b) => b.dispose()));
68
+ this.bridges = [];
69
+ }
70
+ static MAX_REPLENISH_RETRIES = 3;
71
+ static REPLENISH_RETRY_BASE_MS = 500;
72
+ async waitForReplenishment() {
73
+ if (this.replenishPromises.size > 0) {
74
+ await Promise.all([...this.replenishPromises]);
75
+ }
76
+ }
77
+ replenish(attempt = 0) {
78
+ if (this.disposed)
79
+ return;
80
+ if (this.bridges.length + this.warming >= this.size)
81
+ return;
82
+ this.warming++;
83
+ let promise;
84
+ promise = this.createBridge()
85
+ .then((bridge) => {
86
+ this.warming--;
87
+ this.replenishPromises.delete(promise);
88
+ if (this.disposed) {
89
+ void bridge.dispose();
90
+ return;
91
+ }
92
+ this.bridges.push(bridge);
93
+ })
94
+ .catch((error) => {
95
+ this.warming--;
96
+ this.replenishPromises.delete(promise);
97
+ this.onReplenishFailed?.(error);
98
+ if (attempt < IsolatePool.MAX_REPLENISH_RETRIES) {
99
+ const delay = IsolatePool.REPLENISH_RETRY_BASE_MS * 2 ** attempt;
100
+ setTimeout(() => this.replenish(attempt + 1), delay).unref();
101
+ }
102
+ });
103
+ this.replenishPromises.add(promise);
104
+ }
105
+ }
106
+ //# 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;KACpB;CACD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAUA,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,UAAU,CAAC;QAEpB,IAAI,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":"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,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAiDnD,+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,gBAAgB,GAAG,gBAAgB,CAAC;AAC/C,UAAU,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AAEvD,wFAAwF;AACxF,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC"}
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,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA0DnD,+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,gBAAgB,GAAG,gBAAgB,CAAC;AAC/C,UAAU,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AAEvD,wFAAwF;AACxF,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,CAwJhE"}
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"}