@n8n/expression-runtime 0.7.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 (82) 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 +60 -5
  13. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
  14. package/dist/cjs/extensions/boolean-extensions.d.ts +1 -1
  15. package/dist/cjs/extensions/object-extensions.d.ts.map +1 -1
  16. package/dist/cjs/extensions/object-extensions.js +8 -4
  17. package/dist/cjs/extensions/object-extensions.js.map +1 -1
  18. package/dist/cjs/index.d.ts +1 -1
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/pool/isolate-pool.d.ts +34 -0
  22. package/dist/cjs/pool/isolate-pool.d.ts.map +1 -0
  23. package/dist/cjs/pool/isolate-pool.js +122 -0
  24. package/dist/cjs/pool/isolate-pool.js.map +1 -0
  25. package/dist/cjs/runtime/index.d.ts +9 -0
  26. package/dist/cjs/runtime/index.d.ts.map +1 -1
  27. package/dist/cjs/runtime/index.js.map +1 -1
  28. package/dist/cjs/runtime/lazy-proxy.d.ts +20 -1
  29. package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
  30. package/dist/cjs/runtime/lazy-proxy.js +70 -8
  31. package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
  32. package/dist/cjs/runtime/reset.d.ts.map +1 -1
  33. package/dist/cjs/runtime/reset.js +37 -21
  34. package/dist/cjs/runtime/reset.js.map +1 -1
  35. package/dist/cjs/types/bridge.d.ts +12 -7
  36. package/dist/cjs/types/bridge.d.ts.map +1 -1
  37. package/dist/cjs/types/bridge.js +7 -1
  38. package/dist/cjs/types/bridge.js.map +1 -1
  39. package/dist/cjs/types/evaluator.d.ts +24 -14
  40. package/dist/cjs/types/evaluator.d.ts.map +1 -1
  41. package/dist/cjs/types/evaluator.js.map +1 -1
  42. package/dist/cjs/types/index.d.ts +1 -1
  43. package/dist/cjs/types/index.d.ts.map +1 -1
  44. package/dist/esm/bridge/isolated-vm-bridge.d.ts +8 -0
  45. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
  46. package/dist/esm/bridge/isolated-vm-bridge.js +223 -117
  47. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
  48. package/dist/esm/build.tsbuildinfo +1 -1
  49. package/dist/esm/evaluator/expression-evaluator.d.ts +8 -1
  50. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
  51. package/dist/esm/evaluator/expression-evaluator.js +59 -4
  52. package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
  53. package/dist/esm/extensions/object-extensions.d.ts.map +1 -1
  54. package/dist/esm/extensions/object-extensions.js +8 -4
  55. package/dist/esm/extensions/object-extensions.js.map +1 -1
  56. package/dist/esm/index.d.ts +1 -1
  57. package/dist/esm/index.d.ts.map +1 -1
  58. package/dist/esm/index.js.map +1 -1
  59. package/dist/esm/pool/isolate-pool.d.ts +34 -0
  60. package/dist/esm/pool/isolate-pool.d.ts.map +1 -0
  61. package/dist/esm/pool/isolate-pool.js +106 -0
  62. package/dist/esm/pool/isolate-pool.js.map +1 -0
  63. package/dist/esm/runtime/index.d.ts +9 -0
  64. package/dist/esm/runtime/index.d.ts.map +1 -1
  65. package/dist/esm/runtime/index.js.map +1 -1
  66. package/dist/esm/runtime/lazy-proxy.d.ts +20 -1
  67. package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
  68. package/dist/esm/runtime/lazy-proxy.js +69 -8
  69. package/dist/esm/runtime/lazy-proxy.js.map +1 -1
  70. package/dist/esm/runtime/reset.d.ts.map +1 -1
  71. package/dist/esm/runtime/reset.js +38 -22
  72. package/dist/esm/runtime/reset.js.map +1 -1
  73. package/dist/esm/types/bridge.d.ts +12 -7
  74. package/dist/esm/types/bridge.d.ts.map +1 -1
  75. package/dist/esm/types/bridge.js +7 -1
  76. package/dist/esm/types/bridge.js.map +1 -1
  77. package/dist/esm/types/evaluator.d.ts +24 -14
  78. package/dist/esm/types/evaluator.d.ts.map +1 -1
  79. package/dist/esm/types/evaluator.js.map +1 -1
  80. package/dist/esm/types/index.d.ts +1 -1
  81. package/dist/esm/types/index.d.ts.map +1 -1
  82. package/package.json +6 -4
@@ -16,6 +16,7 @@ export declare class IsolatedVmBridge implements RuntimeBridge {
16
16
  private initialized;
17
17
  private disposed;
18
18
  private config;
19
+ private logger;
19
20
  private scriptCache;
20
21
  private valueAtPathRef?;
21
22
  private arrayElementRef?;
@@ -117,6 +118,13 @@ export declare class IsolatedVmBridge implements RuntimeBridge {
117
118
  * @throws {Error} If bridge not initialized or execution fails
118
119
  */
119
120
  execute(code: string, data: Record<string, unknown>, options?: ExecuteOptions): unknown;
121
+ /**
122
+ * Reconstruct an error from serialized isolate data.
123
+ *
124
+ * Maps error names back to their host-side classes and restores
125
+ * custom properties that would otherwise be lost crossing the boundary.
126
+ */
127
+ private reconstructError;
120
128
  /**
121
129
  * Dispose of the isolate and free resources.
122
130
  *
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-vm-bridge.d.ts","sourceRoot":"","sources":["../../../src/bridge/isolated-vm-bridge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAwC5E;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyB;IAIvC,OAAO,CAAC,WAAW,CAAiC;IAIpD,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAgB;IAKxC,OAAO,CAAC,mBAAmB,CAAC,CAAgB;gBAEhC,MAAM,GAAE,YAAiB;IAWrC;;;;;;;;;;OAUG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCjC;;;;;;;;;;;OAWG;YACW,mBAAmB;IAoCjC;;;;;;;;OAQG;YACW,iBAAiB;IA+B/B;;;;;;;;;;;OAWG;YACW,kBAAkB;IA0BhC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,iBAAiB;IAsJzB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO;IAsDvF;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB9B;;;;OAIG;IACH,UAAU,IAAI,OAAO;CAGrB"}
1
+ {"version":3,"file":"isolated-vm-bridge.d.ts","sourceRoot":"","sources":["../../../src/bridge/isolated-vm-bridge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA0E5E;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,MAAM,CAAmC;IAIjD,OAAO,CAAC,WAAW,CAAiC;IAIpD,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAgB;IAKxC,OAAO,CAAC,mBAAmB,CAAC,CAAgB;gBAEhC,MAAM,GAAE,YAAiB;IAYrC;;;;;;;;;;OAUG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCjC;;;;;;;;;;;OAWG;YACW,mBAAmB;IAgCjC;;;;;;;;OAQG;YACW,iBAAiB;IA6B/B;;;;;;;;;;;OAWG;YACW,kBAAkB;IAwBhC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,iBAAiB;IAkLzB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO;IAiGvF;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9B;;;;OAIG;IACH,UAAU,IAAI,OAAO;CAGrB"}
@@ -55,6 +55,33 @@ var __importStar = (this && this.__importStar) || (function () {
55
55
  return _ivm;
56
56
  }
57
57
  const BUNDLE_RELATIVE_PATH = path.join('dist', 'bundle', 'runtime.iife.js');
58
+ /** Check if a value is an error sentinel returned by serializeError. */
59
+ function isErrorSentinel(value) {
60
+ return (typeof value === 'object' &&
61
+ value !== null &&
62
+ value.__isError === true);
63
+ }
64
+ /**
65
+ * Serialize an error into a transferable metadata object.
66
+ *
67
+ * Host-side callbacks (getValueAtPath, etc.) catch errors and return this
68
+ * sentinel instead of letting the error cross the isolate boundary (which
69
+ * strips custom class identity and properties). The isolate-side proxy
70
+ * detects __isError and reconstructs a proper Error to throw.
71
+ */
72
+ function serializeError(err) {
73
+ if (err instanceof Error) {
74
+ const extra = Object.fromEntries(Object.entries(err).filter(([key]) => key !== 'name' && key !== 'message' && key !== 'stack'));
75
+ return {
76
+ __isError: true,
77
+ name: err.name,
78
+ message: err.message,
79
+ stack: err.stack,
80
+ extra,
81
+ };
82
+ }
83
+ return { __isError: true, name: 'Error', message: String(err), extra: {} };
84
+ }
58
85
  /**
59
86
  * Read the runtime IIFE bundle by walking up from `__dirname` until
60
87
  * `dist/bundle/runtime.iife.js` is found.
@@ -91,6 +118,7 @@ var __importStar = (this && this.__importStar) || (function () {
91
118
  initialized = false;
92
119
  disposed = false;
93
120
  config;
121
+ logger;
94
122
  // Script compilation cache for performance
95
123
  // Maps expression code -> compiled ivm.Script
96
124
  scriptCache = new Map();
@@ -108,6 +136,7 @@ var __importStar = (this && this.__importStar) || (function () {
108
136
  ...types_1.DEFAULT_BRIDGE_CONFIG,
109
137
  ...config,
110
138
  };
139
+ this.logger = this.config.logger;
111
140
  // Create isolate with memory limit
112
141
  // Note: memoryLimit is in MB
113
142
  this.isolate = new (getIvm().Isolate)({ memoryLimit: this.config.memoryLimit });
@@ -146,9 +175,7 @@ var __importStar = (this && this.__importStar) || (function () {
146
175
  reference: true,
147
176
  });
148
177
  this.initialized = true;
149
- if (this.config.debug) {
150
- console.log('[IsolatedVmBridge] Initialized successfully');
151
- }
178
+ this.logger.info('[IsolatedVmBridge] Initialized successfully');
152
179
  }
153
180
  /**
154
181
  * Load runtime bundle into the isolate.
@@ -172,18 +199,14 @@ var __importStar = (this && this.__importStar) || (function () {
172
199
  // Evaluate bundle in isolate context
173
200
  // This makes all exported globals available (DateTime, extend, extendOptional, SafeObject, SafeError, createDeepLazyProxy, resetDataProxies, __data)
174
201
  await this.context.eval(runtimeBundle);
175
- if (this.config.debug) {
176
- console.log('[IsolatedVmBridge] Runtime bundle loaded');
177
- }
202
+ this.logger.info('[IsolatedVmBridge] Runtime bundle loaded');
178
203
  // Verify vendor libraries loaded correctly
179
204
  const hasDateTime = await this.context.eval('typeof DateTime !== "undefined"');
180
205
  const hasExtend = await this.context.eval('typeof extend !== "undefined"');
181
206
  if (!hasDateTime || !hasExtend) {
182
207
  throw new Error(`Library verification failed: DateTime=${hasDateTime}, extend=${hasExtend}`);
183
208
  }
184
- if (this.config.debug) {
185
- console.log('[IsolatedVmBridge] Vendor libraries verified successfully');
186
- }
209
+ this.logger.info('[IsolatedVmBridge] Vendor libraries verified successfully');
187
210
  }
188
211
  catch (error) {
189
212
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -216,9 +239,7 @@ var __importStar = (this && this.__importStar) || (function () {
216
239
  `SafeObject=${hasSafeObject}, SafeError=${hasSafeError}, ` +
217
240
  `resetDataProxies=${hasResetFunction}`);
218
241
  }
219
- if (this.config.debug) {
220
- console.log('[IsolatedVmBridge] Proxy system verified successfully');
221
- }
242
+ this.logger.info('[IsolatedVmBridge] Proxy system verified successfully');
222
243
  }
223
244
  catch (error) {
224
245
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -256,9 +277,7 @@ var __importStar = (this && this.__importStar) || (function () {
256
277
  };
257
278
  }
258
279
  `);
259
- if (this.config.debug) {
260
- console.log('[IsolatedVmBridge] Error handler injected successfully');
261
- }
280
+ this.logger.info('[IsolatedVmBridge] Error handler injected successfully');
262
281
  }
263
282
  /**
264
283
  * Reset data proxies in the isolate context.
@@ -282,9 +301,7 @@ var __importStar = (this && this.__importStar) || (function () {
282
301
  this.resetDataProxiesRef.applySync(null, [timezone ?? null], {
283
302
  arguments: { copy: true },
284
303
  });
285
- if (this.config.debug) {
286
- console.log('[IsolatedVmBridge] Data proxies reset successfully');
287
- }
304
+ this.logger.debug('[IsolatedVmBridge] Data proxies reset successfully');
288
305
  }
289
306
  catch (error) {
290
307
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -313,113 +330,148 @@ var __importStar = (this && this.__importStar) || (function () {
313
330
  // Callback 1: Get value/metadata at path
314
331
  // Used by createDeepLazyProxy when accessing properties
315
332
  const getValueAtPath = new (getIvm().Reference)((path) => {
316
- // Navigate to value
317
- // Special-case: paths starting with ['$item', index] call data.$item(index)
318
- // to get the sub-proxy for that item, then continue navigating the rest.
319
- let value = data;
320
- let startIndex = 0;
321
- const itemFn = data.$item;
322
- if (path.length >= 2 && path[0] === '$item' && typeof itemFn === 'function') {
323
- const itemIndex = parseInt(path[1], 10);
324
- if (!isNaN(itemIndex)) {
325
- value = itemFn(itemIndex);
326
- startIndex = 2;
333
+ try {
334
+ // Navigate to value
335
+ // Special-case: paths starting with ['$item', index] call data.$item(index)
336
+ // to get the sub-proxy for that item, then continue navigating the rest.
337
+ let value = data;
338
+ let startIndex = 0;
339
+ const itemFn = data.$item;
340
+ if (path.length >= 2 && path[0] === '$item' && typeof itemFn === 'function') {
341
+ const itemIndex = parseInt(path[1], 10);
342
+ if (!isNaN(itemIndex)) {
343
+ value = itemFn(itemIndex);
344
+ startIndex = 2;
345
+ }
327
346
  }
328
- }
329
- for (let i = startIndex; i < path.length; i++) {
330
- value = value?.[path[i]];
331
- if (value === undefined || value === null) {
332
- return value;
347
+ else {
348
+ const dollarFn = data.$;
349
+ if (path.length >= 2 && path[0] === '$' && typeof dollarFn === 'function') {
350
+ value = dollarFn(path[1]);
351
+ startIndex = 2;
352
+ }
333
353
  }
334
- }
335
- // Handle functions - return metadata marker
336
- if (typeof value === 'function') {
337
- const fnString = value.toString();
338
- // Block native functions for security
339
- if (fnString.includes('[native code]')) {
340
- return undefined;
354
+ for (let i = startIndex; i < path.length; i++) {
355
+ value = value?.[path[i]];
356
+ if (value === undefined || value === null) {
357
+ return value;
358
+ }
341
359
  }
342
- return { __isFunction: true, __name: path[path.length - 1] };
343
- }
344
- // Handle arrays - always lazy, only transfer length
345
- if (Array.isArray(value)) {
346
- return {
347
- __isArray: true,
348
- __length: value.length,
349
- __data: null,
350
- };
360
+ // Handle functions - return metadata marker
361
+ if (typeof value === 'function') {
362
+ const fnString = value.toString();
363
+ // Block native functions for security
364
+ if (fnString.includes('[native code]')) {
365
+ return undefined;
366
+ }
367
+ return { __isFunction: true, __name: path[path.length - 1] };
368
+ }
369
+ // Handle arrays - always lazy, only transfer length
370
+ if (Array.isArray(value)) {
371
+ return {
372
+ __isArray: true,
373
+ __length: value.length,
374
+ __data: null,
375
+ };
376
+ }
377
+ // Handle objects - return metadata with keys
378
+ if (value !== null && typeof value === 'object') {
379
+ return {
380
+ __isObject: true,
381
+ __keys: Object.keys(value),
382
+ };
383
+ }
384
+ // Primitive value
385
+ return value;
351
386
  }
352
- // Handle objects - return metadata with keys
353
- if (value !== null && typeof value === 'object') {
354
- return {
355
- __isObject: true,
356
- __keys: Object.keys(value),
357
- };
387
+ catch (err) {
388
+ return serializeError(err);
358
389
  }
359
- // Primitive value
360
- return value;
361
390
  });
362
391
  // Callback 2: Get array element at index
363
392
  // Used by array proxy when accessing numeric indices
364
393
  const getArrayElement = new (getIvm().Reference)((path, index) => {
365
- // Navigate to array
366
- // Special-case: paths starting with ['$item', index] call data.$item(index)
367
- let arr = data;
368
- let startIndex = 0;
369
- const itemFn = data.$item;
370
- if (path.length >= 2 && path[0] === '$item' && typeof itemFn === 'function') {
371
- const itemIndex = parseInt(path[1], 10);
372
- if (!isNaN(itemIndex)) {
373
- arr = itemFn(itemIndex);
374
- startIndex = 2;
394
+ try {
395
+ // Navigate to array
396
+ // Special-case: paths starting with ['$item', index] call data.$item(index)
397
+ let arr = data;
398
+ let startIndex = 0;
399
+ const itemFn = data.$item;
400
+ if (path.length >= 2 && path[0] === '$item' && typeof itemFn === 'function') {
401
+ const itemIndex = parseInt(path[1], 10);
402
+ if (!isNaN(itemIndex)) {
403
+ arr = itemFn(itemIndex);
404
+ startIndex = 2;
405
+ }
375
406
  }
376
- }
377
- for (let i = startIndex; i < path.length; i++) {
378
- arr = arr?.[path[i]];
379
- if (arr === undefined || arr === null) {
407
+ else {
408
+ const dollarFn = data.$;
409
+ if (path.length >= 2 && path[0] === '$' && typeof dollarFn === 'function') {
410
+ arr = dollarFn(path[1]);
411
+ startIndex = 2;
412
+ }
413
+ }
414
+ for (let i = startIndex; i < path.length; i++) {
415
+ arr = arr?.[path[i]];
416
+ if (arr === undefined || arr === null) {
417
+ return undefined;
418
+ }
419
+ }
420
+ if (!Array.isArray(arr)) {
380
421
  return undefined;
381
422
  }
382
- }
383
- if (!Array.isArray(arr)) {
384
- return undefined;
385
- }
386
- const element = arr[index];
387
- // If element is object/array, return metadata
388
- if (element !== null && typeof element === 'object') {
389
- if (Array.isArray(element)) {
423
+ const element = arr[index];
424
+ // If element is object/array, return metadata
425
+ if (element !== null && typeof element === 'object') {
426
+ if (Array.isArray(element)) {
427
+ return {
428
+ __isArray: true,
429
+ __length: element.length,
430
+ __data: null,
431
+ };
432
+ }
390
433
  return {
391
- __isArray: true,
392
- __length: element.length,
393
- __data: null,
434
+ __isObject: true,
435
+ __keys: Object.keys(element),
394
436
  };
395
437
  }
396
- return {
397
- __isObject: true,
398
- __keys: Object.keys(element),
399
- };
438
+ // Primitive element
439
+ return element;
440
+ }
441
+ catch (err) {
442
+ return serializeError(err);
400
443
  }
401
- // Primitive element
402
- return element;
403
444
  });
404
445
  // Callback 3: Call function at path with arguments
405
446
  // Used when expressions invoke functions from workflow data
406
447
  const callFunctionAtPath = new (getIvm().Reference)((path, ...args) => {
407
- // Navigate to function, tracking parent to preserve `this` context
408
- let fn = data;
409
- let parent = undefined;
410
- for (const key of path) {
411
- parent = fn;
412
- fn = fn?.[key];
413
- }
414
- if (typeof fn !== 'function') {
415
- throw new Error(`${path.join('.')} is not a function`);
448
+ try {
449
+ // Navigate to function, tracking parent to preserve `this` context
450
+ let fn = data;
451
+ let parent = undefined;
452
+ let startIndex = 0;
453
+ const dollarFn = data.$;
454
+ if (path.length >= 2 && path[0] === '$' && typeof dollarFn === 'function') {
455
+ fn = dollarFn(path[1]);
456
+ startIndex = 2;
457
+ }
458
+ for (let i = startIndex; i < path.length; i++) {
459
+ parent = fn;
460
+ fn = fn?.[path[i]];
461
+ }
462
+ if (typeof fn !== 'function') {
463
+ throw new Error(`${path.join('.')} is not a function`);
464
+ }
465
+ // Block native functions for security (same check as getValueAtPath)
466
+ if (fn.toString().includes('[native code]')) {
467
+ throw new Error(`${path.join('.')} is a native function and cannot be called`);
468
+ }
469
+ // Execute function with parent as `this` to preserve method context
470
+ return fn.call(parent, ...args);
416
471
  }
417
- // Block native functions for security (same check as getValueAtPath)
418
- if (fn.toString().includes('[native code]')) {
419
- throw new Error(`${path.join('.')} is a native function and cannot be called`);
472
+ catch (err) {
473
+ return serializeError(err);
420
474
  }
421
- // Execute function with parent as `this` to preserve method context
422
- return fn.call(parent, ...args);
423
475
  });
424
476
  // Release previous references before replacing to avoid accumulation
425
477
  this.valueAtPathRef?.release();
@@ -433,9 +485,7 @@ var __importStar = (this && this.__importStar) || (function () {
433
485
  this.context.global.setSync('__getValueAtPath', getValueAtPath);
434
486
  this.context.global.setSync('__getArrayElement', getArrayElement);
435
487
  this.context.global.setSync('__callFunctionAtPath', callFunctionAtPath);
436
- if (this.config.debug) {
437
- console.log('[IsolatedVmBridge] Callbacks registered successfully');
438
- }
488
+ this.logger.debug('[IsolatedVmBridge] Callbacks registered successfully');
439
489
  }
440
490
  /**
441
491
  * Execute JavaScript code in the isolated context.
@@ -465,26 +515,66 @@ var __importStar = (this && this.__importStar) || (function () {
465
515
  // Step 3: Wrap transformed code so 'this' === __data in the isolate.
466
516
  // Tournament generates: this.$json.email, this.$items(), etc.
467
517
  // __data has $json, $items, etc. as lazy proxies (set in resetDataProxies).
468
- const wrappedCode = `(function() { var __result = (function() {\n${code}\n}).call(__data); return __prepareForTransfer(__result); })()`;
518
+ // The outer try-catch serializes errors into a sentinel object and returns
519
+ // it as the result. Errors from host callbacks arrive as sentinels already
520
+ // (via serializeError), so we pass them through. This avoids a round-trip
521
+ // callback and keeps Error reconstruction on the host side only.
522
+ const wrappedCode = `
523
+ (function() {
524
+ try {
525
+ var __result = (function() {
526
+ ${code}
527
+ }).call(__data);
528
+ return __prepareForTransfer(__result);
529
+ } catch(e) {
530
+ if (e && e.__isError) return e;
531
+ if (e == null) return { __isError: true, name: "Error", message: String(e), stack: "", extra: {} };
532
+ var extra = {};
533
+ for (var k in e) {
534
+ if (Object.prototype.hasOwnProperty.call(e, k) && k !== "name" && k !== "message" && k !== "stack") extra[k] = e[k];
535
+ }
536
+ return {
537
+ __isError: true,
538
+ name: e.name || "Error",
539
+ message: e.message || "",
540
+ stack: e.stack || "",
541
+ extra: extra
542
+ };
543
+ }
544
+ })()`;
545
+ // Cache key is `code` (tournament output), but the compiled script uses
546
+ // `wrappedCode` which adds the try-catch/reportError wrapper. This works
547
+ // because wrappedCode is a deterministic transform of code. If the wrapper
548
+ // ever becomes parameterized (e.g., different wrapping based on options),
549
+ // the cache key must include those parameters to avoid serving stale scripts.
469
550
  let script = this.scriptCache.get(code);
470
551
  if (!script) {
471
552
  script = this.isolate.compileScriptSync(wrappedCode);
472
553
  this.scriptCache.set(code, script);
473
- if (this.config.debug) {
474
- console.log('[IsolatedVmBridge] Script compiled and cached');
475
- }
554
+ this.logger.debug('[IsolatedVmBridge] Script compiled and cached');
476
555
  }
477
- // Step 4: Execute with timeout and copy result back
556
+ // Step 5: Execute with timeout and copy result back
478
557
  const result = script.runSync(this.context, {
479
558
  timeout: this.config.timeout,
480
559
  copy: true,
481
560
  });
482
- if (this.config.debug) {
483
- console.log('[IsolatedVmBridge] Expression executed successfully');
561
+ // Step 6: If the result is an error sentinel, reconstruct and throw
562
+ if (isErrorSentinel(result)) {
563
+ throw this.reconstructError(result);
484
564
  }
565
+ this.logger.debug('[IsolatedVmBridge] Expression executed successfully');
485
566
  return result;
486
567
  }
487
568
  catch (error) {
569
+ // Re-throw reconstructed errors as-is.
570
+ // Note: TypeError is intentionally NOT included here — the isolate's
571
+ // E() handler swallows TypeErrors (failed attack attempts return undefined),
572
+ // so TypeErrors from host callbacks should also go through the generic
573
+ // wrapping for consistent behavior.
574
+ if (error instanceof Error &&
575
+ (error.name === 'ExpressionError' || error.name === 'ExpressionExtensionError')) {
576
+ throw error;
577
+ }
488
578
  const errorMessage = error instanceof Error ? error.message : String(error);
489
579
  if (errorMessage.includes('Script execution timed out')) {
490
580
  throw new types_1.TimeoutError(`Expression timed out after ${this.config.timeout}ms`, {});
@@ -495,6 +585,24 @@ var __importStar = (this && this.__importStar) || (function () {
495
585
  throw new Error(`Expression evaluation failed: ${errorMessage}`);
496
586
  }
497
587
  }
588
+ /**
589
+ * Reconstruct an error from serialized isolate data.
590
+ *
591
+ * Maps error names back to their host-side classes and restores
592
+ * custom properties that would otherwise be lost crossing the boundary.
593
+ */
594
+ reconstructError(data) {
595
+ const error = new Error(data.message);
596
+ error.name = data.name || 'Error';
597
+ if (data.stack) {
598
+ error.stack = data.stack;
599
+ }
600
+ // Restore custom properties transferred via copy: true
601
+ if (data.extra) {
602
+ Object.assign(error, data.extra);
603
+ }
604
+ return error;
605
+ }
498
606
  /**
499
607
  * Dispose of the isolate and free resources.
500
608
  *
@@ -515,9 +623,7 @@ var __importStar = (this && this.__importStar) || (function () {
515
623
  this.disposed = true;
516
624
  this.initialized = false;
517
625
  this.scriptCache.clear();
518
- if (this.config.debug) {
519
- console.log('[IsolatedVmBridge] Disposed');
520
- }
626
+ this.logger.info('[IsolatedVmBridge] Disposed');
521
627
  }
522
628
  /**
523
629
  * Check if the bridge has been disposed.
@@ -525,7 +631,7 @@ var __importStar = (this && this.__importStar) || (function () {
525
631
  * @returns true if disposed, false otherwise
526
632
  */
527
633
  isDisposed() {
528
- return this.disposed;
634
+ return this.disposed || this.isolate.isDisposed;
529
635
  }
530
636
  }
531
637
  exports.IsolatedVmBridge = IsolatedVmBridge;
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-vm-bridge.js","sourceRoot":"","sources":["../../../src/bridge/isolated-vm-bridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACA,+CAA4C;IAC5C,gDAAkC;IAElC,oCAAiF;IAMjF,IAAI,IAAI,GAAsB,IAAI,CAAC;IAEnC,SAAS,MAAM;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,iEAAiE;YACjE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAe,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAE5E;;;;;;;OAOG;IACH,KAAK,UAAU,iBAAiB;QAC/B,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC;gBACJ,OAAO,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,KAAK,CACd,kCAAkC,oBAAoB,sBAAsB,SAAS,EAAE,CACvF,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAa,gBAAgB;QACpB,OAAO,CAAc;QACrB,OAAO,CAAe;QACtB,WAAW,GAAG,KAAK,CAAC;QACpB,QAAQ,GAAG,KAAK,CAAC;QACjB,MAAM,CAAyB;QAEvC,2CAA2C;QAC3C,8CAA8C;QACtC,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;QAEpD,wEAAwE;QACxE,2DAA2D;QACnD,cAAc,CAAiB;QAC/B,eAAe,CAAiB;QAChC,eAAe,CAAiB;QAExC,mEAAmE;QACnE,4DAA4D;QAC5D,uDAAuD;QAC/C,mBAAmB,CAAiB;QAE5C,YAAY,SAAuB,EAAE;YACpC,IAAI,CAAC,MAAM,GAAG;gBACb,GAAG,6BAAqB;gBACxB,GAAG,MAAM;aACT,CAAC;YAEF,mCAAmC;YACnC,6BAA6B;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACjF,CAAC;QAED;;;;;;;;;;WAUG;QACH,KAAK,CAAC,UAAU;YACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAElD,uBAAuB;YACvB,qDAAqD;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAEjC,sDAAsD;YACtD,2DAA2D;YAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAE3C,mEAAmE;YACnE,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAEjC,uCAAuC;YACvC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAE/B,yEAAyE;YACzE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEhC,0EAA0E;YAC1E,IAAI,CAAC,mBAAmB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBAC5E,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAExB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAED;;;;;;;;;;;WAWG;QACK,KAAK,CAAC,mBAAmB;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC;gBACJ,iEAAiE;gBACjE,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;gBAEhD,qCAAqC;gBACrC,qJAAqJ;gBACrJ,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBACzD,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAE3E,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CACd,yCAAyC,WAAW,YAAY,SAAS,EAAE,CAC3E,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBAC1E,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;QAED;;;;;;;;WAQG;QACK,KAAK,CAAC,iBAAiB;YAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC;gBACJ,kDAAkD;gBAClD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC9F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBACzE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACnF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACjF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBAE5F,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1F,MAAM,IAAI,KAAK,CACd,oCAAoC;wBACnC,uBAAuB,eAAe,YAAY,OAAO,IAAI;wBAC7D,cAAc,aAAa,eAAe,YAAY,IAAI;wBAC1D,oBAAoB,gBAAgB,EAAE,CACvC,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;gBACtE,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;QAED;;;;;;;;;;;WAWG;QACK,KAAK,CAAC,kBAAkB;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcvB,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;QAED;;;;;;;;;;;;;WAaG;QACK,gBAAgB,CAAC,QAAiB;YACzC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC;gBACJ,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE;oBAC5D,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;iBACzB,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;gBACnE,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QAED;;;;;;;;;;;;;;WAcG;QACK,iBAAiB,CAAC,IAA6B;YACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,yCAAyC;YACzC,wDAAwD;YACxD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAc,EAAE,EAAE;gBAClE,oBAAoB;gBACpB,4EAA4E;gBAC5E,yEAAyE;gBACzE,IAAI,KAAK,GAAY,IAAI,CAAC;gBAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAI,IAAgC,CAAC,KAAK,CAAC;gBACvD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;wBACvB,KAAK,GAAI,MAAiC,CAAC,SAAS,CAAC,CAAC;wBACtD,UAAU,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,KAAK,GAAI,KAAiC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBAC3C,OAAO,KAAK,CAAC;oBACd,CAAC;gBACF,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAClC,sCAAsC;oBACtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;wBACxC,OAAO,SAAS,CAAC;oBAClB,CAAC;oBACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC9D,CAAC;gBAED,oDAAoD;gBACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO;wBACN,SAAS,EAAE,IAAI;wBACf,QAAQ,EAAE,KAAK,CAAC,MAAM;wBACtB,MAAM,EAAE,IAAI;qBACZ,CAAC;gBACH,CAAC;gBAED,6CAA6C;gBAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACjD,OAAO;wBACN,UAAU,EAAE,IAAI;wBAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;qBAC1B,CAAC;gBACH,CAAC;gBAED,kBAAkB;gBAClB,OAAO,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,yCAAyC;YACzC,qDAAqD;YACrD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAc,EAAE,KAAa,EAAE,EAAE;gBAClF,oBAAoB;gBACpB,4EAA4E;gBAC5E,IAAI,GAAG,GAAY,IAAI,CAAC;gBACxB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAI,IAAgC,CAAC,KAAK,CAAC;gBACvD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;wBACvB,GAAG,GAAI,MAAiC,CAAC,SAAS,CAAC,CAAC;wBACpD,UAAU,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACF,CAAC;gBACD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,GAAG,GAAI,GAA+B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACvC,OAAO,SAAS,CAAC;oBAClB,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,SAAS,CAAC;gBAClB,CAAC;gBAED,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;gBAE3B,8CAA8C;gBAC9C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACrD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC5B,OAAO;4BACN,SAAS,EAAE,IAAI;4BACf,QAAQ,EAAE,OAAO,CAAC,MAAM;4BACxB,MAAM,EAAE,IAAI;yBACZ,CAAC;oBACH,CAAC;oBACD,OAAO;wBACN,UAAU,EAAE,IAAI;wBAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;qBAC5B,CAAC;gBACH,CAAC;gBAED,oBAAoB;gBACpB,OAAO,OAAO,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,mDAAmD;YACnD,4DAA4D;YAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAc,EAAE,GAAG,IAAe,EAAE,EAAE;gBAC1F,mEAAmE;gBACnE,IAAI,EAAE,GAAY,IAAI,CAAC;gBACvB,IAAI,MAAM,GAAY,SAAS,CAAC;gBAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACxB,MAAM,GAAG,EAAE,CAAC;oBACZ,EAAE,GAAI,EAA8B,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC7C,CAAC;gBAED,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBACxD,CAAC;gBAED,qEAAqE;gBACrE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAChF,CAAC;gBAED,oEAAoE;gBACpE,OAAQ,EAAwC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,qEAAqE;YACrE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAEhC,4EAA4E;YAC5E,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC;YAE1C,mDAAmD;YACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;YAExE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACrE,CAAC;QACF,CAAC;QAED;;;;;;;;;;;;;;WAcG;QACH,OAAO,CAAC,IAAY,EAAE,IAA6B,EAAE,OAAwB;YAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,CAAC;gBACJ,uDAAuD;gBACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAE7B,4CAA4C;gBAC5C,wDAAwD;gBACxD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAEzC,qEAAqE;gBACrE,8DAA8D;gBAC9D,4EAA4E;gBAC5E,MAAM,WAAW,GAAG,+CAA+C,IAAI,gEAAgE,CAAC;gBAExI,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACrD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAC9D,CAAC;gBACF,CAAC;gBAED,oDAAoD;gBACpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;oBAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC5B,IAAI,EAAE,IAAI;iBACV,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACpE,CAAC;gBAED,OAAO,MAAM,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,oBAAY,CAAC,8BAA8B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,wBAAgB,CACzB,uCAAuC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAClE,EAAE,CACF,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,OAAO;YACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO;YACR,CAAC;YAED,sEAAsE;YACtE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAEhC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAEzB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;QAED;;;;WAIG;QACH,UAAU;YACT,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;KACD;IA/fD,4CA+fC"}
1
+ {"version":3,"file":"isolated-vm-bridge.js","sourceRoot":"","sources":["../../../src/bridge/isolated-vm-bridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACA,+CAA4C;IAC5C,gDAAkC;IAElC,oCAAiF;IAOjF,IAAI,IAAI,GAAsB,IAAI,CAAC;IAEnC,SAAS,MAAM;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,iEAAiE;YACjE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAe,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAE5E,wEAAwE;IACxE,SAAS,eAAe,CAAC,KAAc;QACtC,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACb,KAAiC,CAAC,SAAS,KAAK,IAAI,CACrD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,cAAc,CAAC,GAAY;QACnC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,CAAC,CAC7F,CAAC;YACF,OAAO;gBACN,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK;aACL,CAAC;QACH,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,UAAU,iBAAiB;QAC/B,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC;gBACJ,OAAO,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,KAAK,CACd,kCAAkC,oBAAoB,sBAAsB,SAAS,EAAE,CACvF,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAa,gBAAgB;QACpB,OAAO,CAAc;QACrB,OAAO,CAAe;QACtB,WAAW,GAAG,KAAK,CAAC;QACpB,QAAQ,GAAG,KAAK,CAAC;QACjB,MAAM,CAAyB;QAC/B,MAAM,CAAmC;QAEjD,2CAA2C;QAC3C,8CAA8C;QACtC,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;QAEpD,wEAAwE;QACxE,2DAA2D;QACnD,cAAc,CAAiB;QAC/B,eAAe,CAAiB;QAChC,eAAe,CAAiB;QAExC,mEAAmE;QACnE,4DAA4D;QAC5D,uDAAuD;QAC/C,mBAAmB,CAAiB;QAE5C,YAAY,SAAuB,EAAE;YACpC,IAAI,CAAC,MAAM,GAAG;gBACb,GAAG,6BAAqB;gBACxB,GAAG,MAAM;aACT,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAEjC,mCAAmC;YACnC,6BAA6B;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACjF,CAAC;QAED;;;;;;;;;;WAUG;QACH,KAAK,CAAC,UAAU;YACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAElD,uBAAuB;YACvB,qDAAqD;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAEjC,sDAAsD;YACtD,2DAA2D;YAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAE3C,mEAAmE;YACnE,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAEjC,uCAAuC;YACvC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAE/B,yEAAyE;YACzE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEhC,0EAA0E;YAC1E,IAAI,CAAC,mBAAmB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBAC5E,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAExB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED;;;;;;;;;;;WAWG;QACK,KAAK,CAAC,mBAAmB;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC;gBACJ,iEAAiE;gBACjE,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;gBAEhD,qCAAqC;gBACrC,qJAAqJ;gBACrJ,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAEvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBAE7D,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAE3E,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CACd,yCAAyC,WAAW,YAAY,SAAS,EAAE,CAC3E,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;QAED;;;;;;;;WAQG;QACK,KAAK,CAAC,iBAAiB;YAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC;gBACJ,kDAAkD;gBAClD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC9F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBACzE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACnF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACjF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBAE5F,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1F,MAAM,IAAI,KAAK,CACd,oCAAoC;wBACnC,uBAAuB,eAAe,YAAY,OAAO,IAAI;wBAC7D,cAAc,aAAa,eAAe,YAAY,IAAI;wBAC1D,oBAAoB,gBAAgB,EAAE,CACvC,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;QAED;;;;;;;;;;;WAWG;QACK,KAAK,CAAC,kBAAkB;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcvB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED;;;;;;;;;;;;;WAaG;QACK,gBAAgB,CAAC,QAAiB;YACzC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC;gBACJ,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE;oBAC5D,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;iBACzB,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QAED;;;;;;;;;;;;;;WAcG;QACK,iBAAiB,CAAC,IAA6B;YACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YAED,yCAAyC;YACzC,wDAAwD;YACxD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAc,EAAE,EAAE;gBAClE,IAAI,CAAC;oBACJ,oBAAoB;oBACpB,4EAA4E;oBAC5E,yEAAyE;oBACzE,IAAI,KAAK,GAAY,IAAI,CAAC;oBAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,MAAM,MAAM,GAAI,IAAgC,CAAC,KAAK,CAAC;oBACvD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;4BACvB,KAAK,GAAI,MAAiC,CAAC,SAAS,CAAC,CAAC;4BACtD,UAAU,GAAG,CAAC,CAAC;wBAChB,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,MAAM,QAAQ,GAAI,IAAgC,CAAC,CAAC,CAAC;wBACrD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;4BAC3E,KAAK,GAAI,QAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;4BACzD,UAAU,GAAG,CAAC,CAAC;wBAChB,CAAC;oBACF,CAAC;oBACD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,KAAK,GAAI,KAAiC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BAC3C,OAAO,KAAK,CAAC;wBACd,CAAC;oBACF,CAAC;oBAED,4CAA4C;oBAC5C,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;wBACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAClC,sCAAsC;wBACtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;4BACxC,OAAO,SAAS,CAAC;wBAClB,CAAC;wBACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC9D,CAAC;oBAED,oDAAoD;oBACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1B,OAAO;4BACN,SAAS,EAAE,IAAI;4BACf,QAAQ,EAAE,KAAK,CAAC,MAAM;4BACtB,MAAM,EAAE,IAAI;yBACZ,CAAC;oBACH,CAAC;oBAED,6CAA6C;oBAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACjD,OAAO;4BACN,UAAU,EAAE,IAAI;4BAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;yBAC1B,CAAC;oBACH,CAAC;oBAED,kBAAkB;oBAClB,OAAO,KAAK,CAAC;gBACd,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,yCAAyC;YACzC,qDAAqD;YACrD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAc,EAAE,KAAa,EAAE,EAAE;gBAClF,IAAI,CAAC;oBACJ,oBAAoB;oBACpB,4EAA4E;oBAC5E,IAAI,GAAG,GAAY,IAAI,CAAC;oBACxB,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,MAAM,MAAM,GAAI,IAAgC,CAAC,KAAK,CAAC;oBACvD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;4BACvB,GAAG,GAAI,MAAiC,CAAC,SAAS,CAAC,CAAC;4BACpD,UAAU,GAAG,CAAC,CAAC;wBAChB,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,MAAM,QAAQ,GAAI,IAAgC,CAAC,CAAC,CAAC;wBACrD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;4BAC3E,GAAG,GAAI,QAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvD,UAAU,GAAG,CAAC,CAAC;wBAChB,CAAC;oBACF,CAAC;oBACD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,GAAG,GAAI,GAA+B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;4BACvC,OAAO,SAAS,CAAC;wBAClB,CAAC;oBACF,CAAC;oBAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzB,OAAO,SAAS,CAAC;oBAClB,CAAC;oBAED,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;oBAE3B,8CAA8C;oBAC9C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACrD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC5B,OAAO;gCACN,SAAS,EAAE,IAAI;gCACf,QAAQ,EAAE,OAAO,CAAC,MAAM;gCACxB,MAAM,EAAE,IAAI;6BACZ,CAAC;wBACH,CAAC;wBACD,OAAO;4BACN,UAAU,EAAE,IAAI;4BAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;yBAC5B,CAAC;oBACH,CAAC;oBAED,oBAAoB;oBACpB,OAAO,OAAO,CAAC;gBAChB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,mDAAmD;YACnD,4DAA4D;YAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAc,EAAE,GAAG,IAAe,EAAE,EAAE;gBAC1F,IAAI,CAAC;oBACJ,mEAAmE;oBACnE,IAAI,EAAE,GAAY,IAAI,CAAC;oBACvB,IAAI,MAAM,GAAY,SAAS,CAAC;oBAChC,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,MAAM,QAAQ,GAAI,IAAgC,CAAC,CAAC,CAAC;oBACrD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC3E,EAAE,GAAI,QAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtD,UAAU,GAAG,CAAC,CAAC;oBAChB,CAAC;oBACD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,MAAM,GAAG,EAAE,CAAC;wBACZ,EAAE,GAAI,EAA8B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC;oBAED,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;wBAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBACxD,CAAC;oBAED,qEAAqE;oBACrE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;wBAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;oBAChF,CAAC;oBAED,oEAAoE;oBACpE,OAAQ,EAAwC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;gBACxE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,qEAAqE;YACrE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAEhC,4EAA4E;YAC5E,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC;YAE1C,mDAAmD;YACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;YAExE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC3E,CAAC;QAED;;;;;;;;;;;;;;WAcG;QACH,OAAO,CAAC,IAAY,EAAE,IAA6B,EAAE,OAAwB;YAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,CAAC;gBACJ,uDAAuD;gBACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAE7B,4CAA4C;gBAC5C,wDAAwD;gBACxD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAEzC,qEAAqE;gBACrE,8DAA8D;gBAC9D,4EAA4E;gBAC5E,2EAA2E;gBAC3E,2EAA2E;gBAC3E,0EAA0E;gBAC1E,iEAAiE;gBACjE,MAAM,WAAW,GAAG;;;;QAIf,IAAI;;;;;;;;;;;;;;;;;;KAkBP,CAAC;gBAEH,wEAAwE;gBACxE,yEAAyE;gBACzE,2EAA2E;gBAC3E,0EAA0E;gBAC1E,8EAA8E;gBAC9E,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACrD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACpE,CAAC;gBAED,oDAAoD;gBACpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;oBAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC5B,IAAI,EAAE,IAAI;iBACV,CAAC,CAAC;gBAEH,oEAAoE;gBACpE,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBAEzE,OAAO,MAAM,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,uCAAuC;gBACvC,qEAAqE;gBACrE,6EAA6E;gBAC7E,uEAAuE;gBACvE,oCAAoC;gBACpC,IACC,KAAK,YAAY,KAAK;oBACtB,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,CAAC,EAC9E,CAAC;oBACF,MAAM,KAAK,CAAC;gBACb,CAAC;gBACD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,oBAAY,CAAC,8BAA8B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,wBAAgB,CACzB,uCAAuC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAClE,EAAE,CACF,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QAED;;;;;WAKG;QACK,gBAAgB,CAAC,IAAmB;YAC3C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;YAClC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1B,CAAC;YAED,uDAAuD;YACvD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,KAAK,CAAC;QACd,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,OAAO;YACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO;YACR,CAAC;YAED,sEAAsE;YACtE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;YAEhC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAEzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED;;;;WAIG;QACH,UAAU;YACT,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACjD,CAAC;KACD;IA/kBD,4CA+kBC"}