@n8n/expression-runtime 0.21.0 → 0.23.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 (115) hide show
  1. package/dist/cjs/bridge/bridge-messages.d.ts +8 -8
  2. package/dist/cjs/bridge/bridge-messages.js +234 -244
  3. package/dist/cjs/bridge/bridge-messages.js.map +1 -1
  4. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
  5. package/dist/cjs/bridge/isolated-vm-bridge.js +633 -643
  6. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
  7. package/dist/cjs/build.tsbuildinfo +1 -1
  8. package/dist/cjs/evaluator/error-classification.js +15 -25
  9. package/dist/cjs/evaluator/error-classification.js.map +1 -1
  10. package/dist/cjs/evaluator/expression-evaluator.d.ts +7 -1
  11. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
  12. package/dist/cjs/evaluator/expression-evaluator.js +152 -155
  13. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
  14. package/dist/cjs/evaluator/lru-cache.d.ts.map +1 -1
  15. package/dist/cjs/evaluator/lru-cache.js +35 -45
  16. package/dist/cjs/evaluator/lru-cache.js.map +1 -1
  17. package/dist/cjs/extensions/array-extensions.js +589 -599
  18. package/dist/cjs/extensions/array-extensions.js.map +1 -1
  19. package/dist/cjs/extensions/boolean-extensions.js +38 -48
  20. package/dist/cjs/extensions/boolean-extensions.js.map +1 -1
  21. package/dist/cjs/extensions/date-extensions.js +500 -510
  22. package/dist/cjs/extensions/date-extensions.js.map +1 -1
  23. package/dist/cjs/extensions/expression-extension-error.d.ts.map +1 -1
  24. package/dist/cjs/extensions/expression-extension-error.js +12 -22
  25. package/dist/cjs/extensions/expression-extension-error.js.map +1 -1
  26. package/dist/cjs/extensions/extend.js +162 -172
  27. package/dist/cjs/extensions/extend.js.map +1 -1
  28. package/dist/cjs/extensions/extensions.js +2 -12
  29. package/dist/cjs/extensions/function-extensions.d.ts +10 -18
  30. package/dist/cjs/extensions/function-extensions.d.ts.map +1 -1
  31. package/dist/cjs/extensions/function-extensions.js +78 -88
  32. package/dist/cjs/extensions/function-extensions.js.map +1 -1
  33. package/dist/cjs/extensions/number-extensions.js +225 -235
  34. package/dist/cjs/extensions/number-extensions.js.map +1 -1
  35. package/dist/cjs/extensions/object-extensions.js +286 -296
  36. package/dist/cjs/extensions/object-extensions.js.map +1 -1
  37. package/dist/cjs/extensions/string-extensions.d.ts +1 -1
  38. package/dist/cjs/extensions/string-extensions.d.ts.map +1 -1
  39. package/dist/cjs/extensions/string-extensions.js +758 -768
  40. package/dist/cjs/extensions/string-extensions.js.map +1 -1
  41. package/dist/cjs/extensions/utils.d.ts.map +1 -1
  42. package/dist/cjs/extensions/utils.js +28 -38
  43. package/dist/cjs/extensions/utils.js.map +1 -1
  44. package/dist/cjs/index.js +32 -42
  45. package/dist/cjs/index.js.map +1 -1
  46. package/dist/cjs/observability/metrics.d.ts +27 -27
  47. package/dist/cjs/observability/metrics.d.ts.map +1 -1
  48. package/dist/cjs/observability/metrics.js +59 -69
  49. package/dist/cjs/observability/metrics.js.map +1 -1
  50. package/dist/cjs/observability/noop-provider.js +28 -38
  51. package/dist/cjs/observability/noop-provider.js.map +1 -1
  52. package/dist/cjs/pool/idle-scaling-pool.d.ts.map +1 -1
  53. package/dist/cjs/pool/idle-scaling-pool.js +134 -144
  54. package/dist/cjs/pool/idle-scaling-pool.js.map +1 -1
  55. package/dist/cjs/pool/isolate-pool.d.ts.map +1 -1
  56. package/dist/cjs/pool/isolate-pool.js +101 -111
  57. package/dist/cjs/pool/isolate-pool.js.map +1 -1
  58. package/dist/cjs/runtime/context.js +418 -428
  59. package/dist/cjs/runtime/context.js.map +1 -1
  60. package/dist/cjs/runtime/index.js +26 -36
  61. package/dist/cjs/runtime/index.js.map +1 -1
  62. package/dist/cjs/runtime/jmespath.js +72 -82
  63. package/dist/cjs/runtime/jmespath.js.map +1 -1
  64. package/dist/cjs/runtime/lazy-proxy.js +238 -248
  65. package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
  66. package/dist/cjs/runtime/safe-globals.d.ts.map +1 -1
  67. package/dist/cjs/runtime/safe-globals.js +134 -144
  68. package/dist/cjs/runtime/safe-globals.js.map +1 -1
  69. package/dist/cjs/runtime/serialize.js +54 -64
  70. package/dist/cjs/runtime/serialize.js.map +1 -1
  71. package/dist/cjs/runtime/utils.js +20 -30
  72. package/dist/cjs/runtime/utils.js.map +1 -1
  73. package/dist/cjs/types/bridge.js +15 -25
  74. package/dist/cjs/types/bridge.js.map +1 -1
  75. package/dist/cjs/types/evaluator.d.ts +5 -1
  76. package/dist/cjs/types/evaluator.d.ts.map +1 -1
  77. package/dist/cjs/types/evaluator.js +35 -45
  78. package/dist/cjs/types/evaluator.js.map +1 -1
  79. package/dist/cjs/types/index.js +14 -24
  80. package/dist/cjs/types/index.js.map +1 -1
  81. package/dist/cjs/types/runtime.d.ts.map +1 -1
  82. package/dist/cjs/types/runtime.js +27 -37
  83. package/dist/cjs/types/runtime.js.map +1 -1
  84. package/dist/esm/bridge/bridge-messages.d.ts +8 -8
  85. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
  86. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
  87. package/dist/esm/build.tsbuildinfo +1 -1
  88. package/dist/esm/evaluator/expression-evaluator.d.ts +7 -1
  89. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
  90. package/dist/esm/evaluator/expression-evaluator.js +8 -1
  91. package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
  92. package/dist/esm/evaluator/lru-cache.d.ts.map +1 -1
  93. package/dist/esm/evaluator/lru-cache.js.map +1 -1
  94. package/dist/esm/extensions/expression-extension-error.d.ts.map +1 -1
  95. package/dist/esm/extensions/function-extensions.d.ts +10 -18
  96. package/dist/esm/extensions/function-extensions.d.ts.map +1 -1
  97. package/dist/esm/extensions/number-extensions.js.map +1 -1
  98. package/dist/esm/extensions/string-extensions.d.ts +1 -1
  99. package/dist/esm/extensions/string-extensions.d.ts.map +1 -1
  100. package/dist/esm/extensions/string-extensions.js.map +1 -1
  101. package/dist/esm/extensions/utils.d.ts.map +1 -1
  102. package/dist/esm/observability/metrics.d.ts +27 -27
  103. package/dist/esm/observability/metrics.d.ts.map +1 -1
  104. package/dist/esm/pool/idle-scaling-pool.d.ts.map +1 -1
  105. package/dist/esm/pool/idle-scaling-pool.js.map +1 -1
  106. package/dist/esm/pool/isolate-pool.d.ts.map +1 -1
  107. package/dist/esm/pool/isolate-pool.js.map +1 -1
  108. package/dist/esm/runtime/lazy-proxy.js.map +1 -1
  109. package/dist/esm/runtime/safe-globals.d.ts.map +1 -1
  110. package/dist/esm/types/evaluator.d.ts +5 -1
  111. package/dist/esm/types/evaluator.d.ts.map +1 -1
  112. package/dist/esm/types/evaluator.js.map +1 -1
  113. package/dist/esm/types/runtime.d.ts.map +1 -1
  114. package/dist/esm/types/runtime.js.map +1 -1
  115. package/package.json +7 -6
@@ -1,79 +1,98 @@
1
+ "use strict";
1
2
  // ============================================================================
2
3
  // Safe Wrappers for Security-Sensitive Globals
3
4
  // ============================================================================
4
- (function (factory) {
5
- if (typeof module === "object" && typeof module.exports === "object") {
6
- var v = factory(require, exports);
7
- if (v !== undefined) module.exports = v;
8
- }
9
- else if (typeof define === "function" && define.amd) {
10
- define(["require", "exports"], factory);
11
- }
12
- })(function (require, exports) {
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ExpressionError = exports.SafeError = exports.SafeObject = void 0;
16
- exports.createSafeErrorSubclass = createSafeErrorSubclass;
17
- exports.__sanitize = __sanitize;
18
- /**
19
- * SafeObject - Blocks dangerous Object methods that could lead to RCE
20
- *
21
- * Blocked methods:
22
- * - defineProperty, setPrototypeOf: Prevent prototype pollution
23
- * - getOwnPropertyDescriptor: Prevent property descriptor manipulation
24
- * - __defineGetter__, __defineSetter__: Legacy descriptor manipulation
25
- */
26
- exports.SafeObject = new Proxy(Object, {
27
- get(target, prop) {
28
- // Block dangerous methods (return undefined)
29
- const blockedMethods = [
30
- 'defineProperty',
31
- 'defineProperties',
32
- 'setPrototypeOf',
33
- 'getOwnPropertyDescriptor',
34
- 'getOwnPropertyDescriptors',
35
- '__defineGetter__',
36
- '__defineSetter__',
37
- '__lookupGetter__',
38
- '__lookupSetter__',
39
- ];
40
- if (blockedMethods.includes(prop)) {
41
- return undefined;
42
- }
43
- // Block getPrototypeOf by throwing (more secure than returning undefined)
44
- if (prop === 'getPrototypeOf') {
45
- throw new Error('Object.getPrototypeOf is not allowed');
46
- }
47
- // Wrap Object.create to accept only one argument (blocks property descriptor injection)
48
- if (prop === 'create') {
49
- return (proto) => Object.create(proto);
50
- }
51
- // Allow other Object methods
52
- const value = target[prop];
53
- if (typeof value === 'function') {
54
- // Use arrow function wrapper to preserve 'this' binding
55
- return (...args) => value.apply(target, args);
56
- }
57
- return value;
58
- },
59
- });
60
- /**
61
- * Properties blocked on Error and all Error subclasses.
62
- * These can be exploited for sandbox escape via V8's stack trace API.
63
- */
64
- const blockedErrorProperties = new Set([
65
- 'captureStackTrace',
66
- 'prepareStackTrace',
67
- 'stackTraceLimit',
68
- '__defineGetter__',
69
- '__defineSetter__',
70
- '__lookupGetter__',
71
- '__lookupSetter__',
72
- ]);
73
- /**
74
- * SafeError - Blocks stack manipulation methods on Error constructor.
75
- */
76
- exports.SafeError = new Proxy(Error, {
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ExpressionError = exports.SafeError = exports.SafeObject = void 0;
7
+ exports.createSafeErrorSubclass = createSafeErrorSubclass;
8
+ exports.__sanitize = __sanitize;
9
+ /**
10
+ * SafeObject - Blocks dangerous Object methods that could lead to RCE
11
+ *
12
+ * Blocked methods:
13
+ * - defineProperty, setPrototypeOf: Prevent prototype pollution
14
+ * - getOwnPropertyDescriptor: Prevent property descriptor manipulation
15
+ * - __defineGetter__, __defineSetter__: Legacy descriptor manipulation
16
+ */
17
+ exports.SafeObject = new Proxy(Object, {
18
+ get(target, prop) {
19
+ // Block dangerous methods (return undefined)
20
+ const blockedMethods = [
21
+ 'defineProperty',
22
+ 'defineProperties',
23
+ 'setPrototypeOf',
24
+ 'getOwnPropertyDescriptor',
25
+ 'getOwnPropertyDescriptors',
26
+ '__defineGetter__',
27
+ '__defineSetter__',
28
+ '__lookupGetter__',
29
+ '__lookupSetter__',
30
+ ];
31
+ if (blockedMethods.includes(prop)) {
32
+ return undefined;
33
+ }
34
+ // Block getPrototypeOf by throwing (more secure than returning undefined)
35
+ if (prop === 'getPrototypeOf') {
36
+ throw new Error('Object.getPrototypeOf is not allowed');
37
+ }
38
+ // Wrap Object.create to accept only one argument (blocks property descriptor injection)
39
+ if (prop === 'create') {
40
+ return (proto) => Object.create(proto);
41
+ }
42
+ // Allow other Object methods
43
+ const value = target[prop];
44
+ if (typeof value === 'function') {
45
+ // Use arrow function wrapper to preserve 'this' binding
46
+ return (...args) => value.apply(target, args);
47
+ }
48
+ return value;
49
+ },
50
+ });
51
+ /**
52
+ * Properties blocked on Error and all Error subclasses.
53
+ * These can be exploited for sandbox escape via V8's stack trace API.
54
+ */
55
+ const blockedErrorProperties = new Set([
56
+ 'captureStackTrace',
57
+ 'prepareStackTrace',
58
+ 'stackTraceLimit',
59
+ '__defineGetter__',
60
+ '__defineSetter__',
61
+ '__lookupGetter__',
62
+ '__lookupSetter__',
63
+ ]);
64
+ /**
65
+ * SafeError - Blocks stack manipulation methods on Error constructor.
66
+ */
67
+ exports.SafeError = new Proxy(Error, {
68
+ get(target, prop) {
69
+ if (blockedErrorProperties.has(prop)) {
70
+ return undefined;
71
+ }
72
+ const value = target[prop];
73
+ if (typeof value === 'function') {
74
+ return (...args) => value.apply(target, args);
75
+ }
76
+ return value;
77
+ },
78
+ set(target, prop, value) {
79
+ // Block setting prepareStackTrace
80
+ if (prop === 'prepareStackTrace') {
81
+ return false;
82
+ }
83
+ target[prop] = value;
84
+ return true;
85
+ },
86
+ defineProperty() {
87
+ return false;
88
+ },
89
+ });
90
+ /**
91
+ * Creates a safe wrapper for Error subclasses (TypeError, SyntaxError, etc.)
92
+ * Blocks the same dangerous properties as SafeError for defense in depth.
93
+ */
94
+ function createSafeErrorSubclass(ErrorClass) {
95
+ return new Proxy(ErrorClass, {
77
96
  get(target, prop) {
78
97
  if (blockedErrorProperties.has(prop)) {
79
98
  return undefined;
@@ -84,82 +103,53 @@
84
103
  }
85
104
  return value;
86
105
  },
87
- set(target, prop, value) {
88
- // Block setting prepareStackTrace
89
- if (prop === 'prepareStackTrace') {
90
- return false;
91
- }
92
- target[prop] = value;
93
- return true;
106
+ set() {
107
+ return false;
94
108
  },
95
109
  defineProperty() {
96
110
  return false;
97
111
  },
98
112
  });
99
- /**
100
- * Creates a safe wrapper for Error subclasses (TypeError, SyntaxError, etc.)
101
- * Blocks the same dangerous properties as SafeError for defense in depth.
102
- */
103
- function createSafeErrorSubclass(ErrorClass) {
104
- return new Proxy(ErrorClass, {
105
- get(target, prop) {
106
- if (blockedErrorProperties.has(prop)) {
107
- return undefined;
108
- }
109
- const value = target[prop];
110
- if (typeof value === 'function') {
111
- return (...args) => value.apply(target, args);
112
- }
113
- return value;
114
- },
115
- set() {
116
- return false;
117
- },
118
- defineProperty() {
119
- return false;
120
- },
121
- });
122
- }
123
- // ============================================================================
124
- // ExpressionError - used by tournament-generated error handlers
125
- // ============================================================================
126
- class ExpressionError extends Error {
127
- constructor(message) {
128
- super(message);
129
- this.name = 'ExpressionError';
130
- }
113
+ }
114
+ // ============================================================================
115
+ // ExpressionError - used by tournament-generated error handlers
116
+ // ============================================================================
117
+ class ExpressionError extends Error {
118
+ constructor(message) {
119
+ super(message);
120
+ this.name = 'ExpressionError';
131
121
  }
132
- exports.ExpressionError = ExpressionError;
133
- // ============================================================================
134
- // Runtime sanitizer for dynamic property access
135
- // Generated by PrototypeSanitizer: obj[expr] obj[this.__sanitize(expr)]
136
- // Must match the blocklist in packages/workflow/src/expression-sandboxing.ts
137
- // ============================================================================
138
- const unsafeObjectProperties = new Set([
139
- '__proto__',
140
- 'prototype',
141
- 'constructor',
142
- '__defineGetter__',
143
- '__defineSetter__',
144
- '__lookupGetter__',
145
- '__lookupSetter__',
146
- 'toString',
147
- 'valueOf',
148
- 'toLocaleString',
149
- 'hasOwnProperty',
150
- 'isPrototypeOf',
151
- 'propertyIsEnumerable',
152
- ]);
153
- function __sanitize(value) {
154
- // Symbols are not string-coercible and fall outside the denylist; pass through.
155
- if (typeof value === 'symbol')
156
- return value;
157
- // Coerce once and return the string so the caller uses the already-checked key.
158
- const key = String(value);
159
- if (unsafeObjectProperties.has(key)) {
160
- throw new ExpressionError(`Cannot access "${key}" due to security concerns`);
161
- }
162
- return key;
122
+ }
123
+ exports.ExpressionError = ExpressionError;
124
+ // ============================================================================
125
+ // Runtime sanitizer for dynamic property access
126
+ // Generated by PrototypeSanitizer: obj[expr] obj[this.__sanitize(expr)]
127
+ // Must match the blocklist in packages/workflow/src/expression-sandboxing.ts
128
+ // ============================================================================
129
+ const unsafeObjectProperties = new Set([
130
+ '__proto__',
131
+ 'prototype',
132
+ 'constructor',
133
+ '__defineGetter__',
134
+ '__defineSetter__',
135
+ '__lookupGetter__',
136
+ '__lookupSetter__',
137
+ 'toString',
138
+ 'valueOf',
139
+ 'toLocaleString',
140
+ 'hasOwnProperty',
141
+ 'isPrototypeOf',
142
+ 'propertyIsEnumerable',
143
+ ]);
144
+ function __sanitize(value) {
145
+ // Symbols are not string-coercible and fall outside the denylist; pass through.
146
+ if (typeof value === 'symbol')
147
+ return value;
148
+ // Coerce once and return the string so the caller uses the already-checked key.
149
+ const key = String(value);
150
+ if (unsafeObjectProperties.has(key)) {
151
+ throw new ExpressionError(`Cannot access "${key}" due to security concerns`);
163
152
  }
164
- });
153
+ return key;
154
+ }
165
155
  //# sourceMappingURL=safe-globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-globals.js","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-globals.js","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"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"}
@@ -1,67 +1,57 @@
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;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__prepareForTransfer = __prepareForTransfer;
4
+ const luxon_1 = require("luxon");
5
+ /** Type guard: plain object with Object.prototype or null prototype. */
6
+ function isPlainObject(value) {
7
+ const proto = Object.getPrototypeOf(value);
8
+ return proto === Object.prototype || proto === null;
9
+ }
10
+ /**
11
+ * Prepare a value for transfer across the V8 isolate boundary.
12
+ *
13
+ * isolated-vm's `copy: true` uses structured clone, which strips prototypes
14
+ * from non-standard types. Luxon DateTime/Duration/Interval lose their class
15
+ * identity and arrive on the host as plain objects.
16
+ *
17
+ * This function recursively walks a value and converts types that don't
18
+ * survive structured clone into their string representations. It runs
19
+ * inside the isolate before the result is transferred.
20
+ *
21
+ * Note: JS Date objects survive structured clone with prototype intact
22
+ * (Date is a standard structured-cloneable type) and are not converted.
23
+ *
24
+ * Circular references are not handled — expression results should not
25
+ * contain cycles.
26
+ */
27
+ function __prepareForTransfer(value) {
28
+ if (value === null || value === undefined)
29
+ return value;
30
+ if (typeof value !== 'object')
31
+ return value;
32
+ // Luxon DateTime -> ISO string (toISO() returns null for invalid DateTime)
33
+ if (luxon_1.DateTime.isDateTime(value))
34
+ return value.toISO() ?? null;
35
+ // Luxon Duration -> ISO string (toISO() returns null for invalid Duration)
36
+ if (luxon_1.Duration.isDuration(value))
37
+ return value.toISO() ?? null;
38
+ // Luxon Interval -> ISO string (toISO() returns "Invalid Interval" for invalid Interval)
39
+ if (luxon_1.Interval.isInterval(value)) {
40
+ const iso = value.toISO();
41
+ return iso === 'Invalid Interval' ? null : iso;
5
42
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "luxon"], factory);
43
+ // Array walk elements
44
+ if (Array.isArray(value))
45
+ return value.map(__prepareForTransfer);
46
+ // Only walk plain objects — structured-cloneable types like Date, Map, Set,
47
+ // RegExp, Error, typed arrays survive copy:true with prototypes intact.
48
+ if (!isPlainObject(value))
49
+ return value;
50
+ // Plain object — walk values
51
+ const result = {};
52
+ for (const key of Object.keys(value)) {
53
+ result[key] = __prepareForTransfer(value[key]);
8
54
  }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.__prepareForTransfer = __prepareForTransfer;
13
- const luxon_1 = require("luxon");
14
- /** Type guard: plain object with Object.prototype or null prototype. */
15
- function isPlainObject(value) {
16
- const proto = Object.getPrototypeOf(value);
17
- return proto === Object.prototype || proto === null;
18
- }
19
- /**
20
- * Prepare a value for transfer across the V8 isolate boundary.
21
- *
22
- * isolated-vm's `copy: true` uses structured clone, which strips prototypes
23
- * from non-standard types. Luxon DateTime/Duration/Interval lose their class
24
- * identity and arrive on the host as plain objects.
25
- *
26
- * This function recursively walks a value and converts types that don't
27
- * survive structured clone into their string representations. It runs
28
- * inside the isolate before the result is transferred.
29
- *
30
- * Note: JS Date objects survive structured clone with prototype intact
31
- * (Date is a standard structured-cloneable type) and are not converted.
32
- *
33
- * Circular references are not handled — expression results should not
34
- * contain cycles.
35
- */
36
- function __prepareForTransfer(value) {
37
- if (value === null || value === undefined)
38
- return value;
39
- if (typeof value !== 'object')
40
- return value;
41
- // Luxon DateTime -> ISO string (toISO() returns null for invalid DateTime)
42
- if (luxon_1.DateTime.isDateTime(value))
43
- return value.toISO() ?? null;
44
- // Luxon Duration -> ISO string (toISO() returns null for invalid Duration)
45
- if (luxon_1.Duration.isDuration(value))
46
- return value.toISO() ?? null;
47
- // Luxon Interval -> ISO string (toISO() returns "Invalid Interval" for invalid Interval)
48
- if (luxon_1.Interval.isInterval(value)) {
49
- const iso = value.toISO();
50
- return iso === 'Invalid Interval' ? null : iso;
51
- }
52
- // Array — walk elements
53
- if (Array.isArray(value))
54
- return value.map(__prepareForTransfer);
55
- // Only walk plain objects — structured-cloneable types like Date, Map, Set,
56
- // RegExp, Error, typed arrays survive copy:true with prototypes intact.
57
- if (!isPlainObject(value))
58
- return value;
59
- // Plain object — walk values
60
- const result = {};
61
- for (const key of Object.keys(value)) {
62
- result[key] = __prepareForTransfer(value[key]);
63
- }
64
- return result;
65
- }
66
- });
55
+ return result;
56
+ }
67
57
  //# sourceMappingURL=serialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/runtime/serialize.ts"],"names":[],"mappings":";;;;;;;;;;;IAyBA,oDA2BC;IApDD,iCAAqD;IAErD,wEAAwE;IACxE,SAAS,aAAa,CAAC,KAAa;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,oBAAoB,CAAC,KAAc;QAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5C,2EAA2E;QAC3E,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;QAC7D,2EAA2E;QAC3E,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;QAC7D,yFAAyF;QACzF,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,GAAG,KAAK,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,CAAC;QAED,wBAAwB;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAEjE,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAExC,6BAA6B;QAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/runtime/serialize.ts"],"names":[],"mappings":";;;AAAA,iCAAqD;AAErD,wEAAwE;AACxE,SAAS,aAAa,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAqC,KAAc;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,2EAA2E;IAC3E,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;IAC7D,2EAA2E;IAC3E,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;IAC7D,yFAAyF;IACzF,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,GAAG,KAAK,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAEjE,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,6BAA6B;IAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,31 +1,21 @@
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.isKeyOf = isKeyOf;
13
- /**
14
- * Type guard: narrows `key` to `keyof T` when it is a real own (non-inherited)
15
- * string key of `object`. Used in `Proxy` `get`/`has` traps to route on a
16
- * registry of known property names without resorting to `as keyof T` casts.
17
- *
18
- * Uses `Object.hasOwn` rather than the `in` operator so prototype-chain
19
- * properties (`toString`, `constructor`, `hasOwnProperty`, ...) do NOT pass
20
- * the guard. Otherwise a synthetic `Proxy` would treat `obj.toString` as a
21
- * registered method and route it through whatever the trap dispatches on,
22
- * producing a malformed envelope and breaking the user-visible fallthrough.
23
- *
24
- * Parameter order matches the `Object.hasOwn(obj, key)` / `Reflect.has(obj, key)`
25
- * convention from the standard library.
26
- */
27
- function isKeyOf(object, key) {
28
- return typeof key !== 'symbol' && Object.hasOwn(object, key);
29
- }
30
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isKeyOf = isKeyOf;
4
+ /**
5
+ * Type guard: narrows `key` to `keyof T` when it is a real own (non-inherited)
6
+ * string key of `object`. Used in `Proxy` `get`/`has` traps to route on a
7
+ * registry of known property names without resorting to `as keyof T` casts.
8
+ *
9
+ * Uses `Object.hasOwn` rather than the `in` operator so prototype-chain
10
+ * properties (`toString`, `constructor`, `hasOwnProperty`, ...) do NOT pass
11
+ * the guard. Otherwise a synthetic `Proxy` would treat `obj.toString` as a
12
+ * registered method and route it through whatever the trap dispatches on,
13
+ * producing a malformed envelope and breaking the user-visible fallthrough.
14
+ *
15
+ * Parameter order matches the `Object.hasOwn(obj, key)` / `Reflect.has(obj, key)`
16
+ * convention from the standard library.
17
+ */
18
+ function isKeyOf(object, key) {
19
+ return typeof key !== 'symbol' && Object.hasOwn(object, key);
20
+ }
31
21
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/runtime/utils.ts"],"names":[],"mappings":";;;;;;;;;;;IAcA,0BAEC;IAhBD;;;;;;;;;;;;;OAaG;IACH,SAAgB,OAAO,CAAmB,MAAS,EAAE,GAAgB;QACpE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/runtime/utils.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,iBAA0C,MAAS,EAAE,GAAgB;IACpE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC"}
@@ -1,32 +1,22 @@
1
+ "use strict";
1
2
  // ============================================================================
2
3
  // Phase 1.1: Bridge Interface (CORE - IMPLEMENT FIRST)
3
4
  //
4
5
  // This is the main interface all environments must implement.
5
6
  // Start here for CLI/backend (IsolatedVmBridge) or frontend (WebWorkerBridge).
6
7
  // ============================================================================
7
- (function (factory) {
8
- if (typeof module === "object" && typeof module.exports === "object") {
9
- var v = factory(require, exports);
10
- if (v !== undefined) module.exports = v;
11
- }
12
- else if (typeof define === "function" && define.amd) {
13
- define(["require", "exports"], factory);
14
- }
15
- })(function (require, exports) {
16
- "use strict";
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.DEFAULT_BRIDGE_CONFIG = void 0;
19
- const NO_OP_LOGGER = {
20
- error: () => { },
21
- warn: () => { },
22
- info: () => { },
23
- debug: () => { },
24
- };
25
- /** Default values for BridgeConfig. Bridge implementations should use this as their baseline. */
26
- exports.DEFAULT_BRIDGE_CONFIG = {
27
- memoryLimit: 128,
28
- timeout: 5000,
29
- logger: NO_OP_LOGGER,
30
- };
31
- });
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DEFAULT_BRIDGE_CONFIG = void 0;
10
+ const NO_OP_LOGGER = {
11
+ error: () => { },
12
+ warn: () => { },
13
+ info: () => { },
14
+ debug: () => { },
15
+ };
16
+ /** Default values for BridgeConfig. Bridge implementations should use this as their baseline. */
17
+ exports.DEFAULT_BRIDGE_CONFIG = {
18
+ memoryLimit: 128,
19
+ timeout: 5000,
20
+ logger: NO_OP_LOGGER,
21
+ };
32
22
  //# sourceMappingURL=bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8DAA8D;AAC9D,+EAA+E;AAC/E,+EAA+E;;;;;;;;;;;;;IA6E/E,MAAM,YAAY,GAAW;QAC5B,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;KACf,CAAC;IAEF,iGAAiG;IACpF,QAAA,qBAAqB,GAA2B;QAC5D,WAAW,EAAE,GAAG;QAChB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,YAAY;KACpB,CAAC"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8DAA8D;AAC9D,+EAA+E;AAC/E,+EAA+E;;;AA6E/E,MAAM,YAAY,GAAW;IAC5B,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CACf,CAAC;AAEF,iGAAiG;AACpF,QAAA,qBAAqB,GAA2B;IAC5D,WAAW,EAAE,GAAG;IAChB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,YAAY;CACpB,CAAC"}
@@ -60,8 +60,12 @@ export interface IExpressionEvaluator {
60
60
  * Acquire a bridge for an owner object (e.g. an Expression instance).
61
61
  * Must be called before evaluate(). The same object must be passed as
62
62
  * the caller argument to evaluate().
63
+ *
64
+ * Returns whether a bridge was newly acquired: `false` means the owner
65
+ * already held one, so the current scope must not release it (release is
66
+ * not reference-counted).
63
67
  */
64
- acquire(owner: object): Promise<void>;
68
+ acquire(owner: object): Promise<boolean>;
65
69
  /**
66
70
  * Release the bridge held for an owner object.
67
71
  */
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,oDAAoD;IACpD,YAAY,EAAE,MAAM,aAAa,CAAC;IAElC;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;OAQG;IACH,QAAQ,CACP,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC;IAEX;;;;;;;;OAQG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACzB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,UAAU;IAC1B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG,CACpB,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,OAAO,KAClB,OAAO,CAAC;AAEb;;;;GAIG;AACH,MAAM,WAAW,UAAU;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC5B,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1E,cAAc,CAAC,EAAE,CAChB,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,EAAE,UAAU,GAAG,IAAI,EACrC,iBAAiB,EAAE,cAAc,KAC7B,OAAO,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE1E;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAExE;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,GAAG,IAAI,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/E;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAChE;AASD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGjC,OAAO,EAAE;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB;IAPF,YACC,OAAO,EAAE,MAAM,EACR,OAAO,EAAE;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,EAID;CACD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;CAAG;AACxD,qBAAa,YAAa,SAAQ,eAAe;CAAG;AACpD,qBAAa,sBAAuB,SAAQ,eAAe;CAAG;AAC9D,qBAAa,WAAY,SAAQ,eAAe;CAAG"}