@n8n/expression-runtime 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/runtime.esm.js +15 -15
- package/dist/bundle/runtime.esm.js.map +4 -4
- package/dist/bundle/runtime.iife.js +15 -15
- package/dist/bundle/runtime.iife.js.map +4 -4
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts +40 -34
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/cjs/bridge/isolated-vm-bridge.js +97 -154
- package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/cjs/evaluator/expression-evaluator.js +5 -4
- package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/pool/isolate-pool.d.ts +3 -2
- package/dist/cjs/pool/isolate-pool.d.ts.map +1 -1
- package/dist/cjs/pool/isolate-pool.js +5 -4
- package/dist/cjs/pool/isolate-pool.js.map +1 -1
- package/dist/cjs/runtime/context.d.ts +18 -0
- package/dist/cjs/runtime/context.d.ts.map +1 -0
- package/dist/cjs/runtime/{reset.js → context.js} +93 -114
- package/dist/cjs/runtime/context.js.map +1 -0
- package/dist/cjs/runtime/index.d.ts +1 -28
- package/dist/cjs/runtime/index.d.ts.map +1 -1
- package/dist/cjs/runtime/index.js +3 -5
- package/dist/cjs/runtime/index.js.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.d.ts +9 -3
- package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.js +19 -13
- package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.d.ts +40 -34
- package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.js +97 -154
- package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
- package/dist/esm/build.tsbuildinfo +1 -1
- package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/esm/evaluator/expression-evaluator.js +4 -3
- package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pool/isolate-pool.d.ts +3 -2
- package/dist/esm/pool/isolate-pool.d.ts.map +1 -1
- package/dist/esm/pool/isolate-pool.js +4 -3
- package/dist/esm/pool/isolate-pool.js.map +1 -1
- package/dist/esm/runtime/context.d.ts +18 -0
- package/dist/esm/runtime/context.d.ts.map +1 -0
- package/dist/esm/runtime/{reset.js → context.js} +92 -113
- package/dist/esm/runtime/context.js.map +1 -0
- package/dist/esm/runtime/index.d.ts +1 -28
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js +2 -4
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/lazy-proxy.d.ts +9 -3
- package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/esm/runtime/lazy-proxy.js +19 -13
- package/dist/esm/runtime/lazy-proxy.js.map +1 -1
- package/package.json +5 -4
- package/dist/cjs/runtime/reset.d.ts +0 -16
- package/dist/cjs/runtime/reset.d.ts.map +0 -1
- package/dist/cjs/runtime/reset.js.map +0 -1
- package/dist/esm/runtime/reset.d.ts +0 -16
- package/dist/esm/runtime/reset.d.ts.map +0 -1
- package/dist/esm/runtime/reset.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-evaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EAEf,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"expression-evaluator.d.ts","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EAEf,MAAM,UAAU,CAAC;AAMlB,qBAAa,mBAAoB,YAAW,oBAAoB;IAC/D,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,UAAU,CAAC,CAAa;IAIhC,OAAO,CAAC,SAAS,CAA2B;IAE5C,OAAO,CAAC,IAAI,CAAc;IAE1B,OAAO,CAAC,eAAe,CAAwC;IAE/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;gBAEhD,MAAM,EAAE,eAAe;IAsB7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5C,QAAQ,CACP,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO;IA0BV,OAAO,CAAC,SAAS;IAeX,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IA2BpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,UAAU,IAAI,OAAO;CAGrB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Tournament } from '@n8n/tournament';
|
|
2
2
|
import { DEFAULT_BRIDGE_CONFIG } from '../types/bridge';
|
|
3
|
+
import { IsolateError } from '@n8n/errors';
|
|
3
4
|
import { IsolatePool, PoolDisposedError, PoolExhaustedError } from '../pool/isolate-pool';
|
|
4
5
|
import { LruCache } from './lru-cache';
|
|
5
6
|
export class ExpressionEvaluator {
|
|
@@ -51,7 +52,7 @@ export class ExpressionEvaluator {
|
|
|
51
52
|
}
|
|
52
53
|
evaluate(expression, data, caller, options) {
|
|
53
54
|
if (this.disposed)
|
|
54
|
-
throw new
|
|
55
|
+
throw new IsolateError('Evaluator disposed');
|
|
55
56
|
const bridge = this.getBridge(caller);
|
|
56
57
|
// Transform template expression → sanitized JavaScript (cached)
|
|
57
58
|
const transformedCode = this.getTransformedCode(expression);
|
|
@@ -74,12 +75,12 @@ export class ExpressionEvaluator {
|
|
|
74
75
|
getBridge(caller) {
|
|
75
76
|
const bridge = this.bridgesByCaller.get(caller);
|
|
76
77
|
if (!bridge) {
|
|
77
|
-
throw new
|
|
78
|
+
throw new IsolateError('No bridge acquired for this context. Call acquire() first.');
|
|
78
79
|
}
|
|
79
80
|
// If the isolate died mid-execution (e.g. OOM), all remaining expressions
|
|
80
81
|
// in this execution are expected to fail. Recovery is per-execution, not per-expression.
|
|
81
82
|
if (bridge.isDisposed()) {
|
|
82
|
-
throw new
|
|
83
|
+
throw new IsolateError('Isolate for this caller is no longer available');
|
|
83
84
|
}
|
|
84
85
|
return bridge;
|
|
85
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAkB;IAExB,QAAQ,GAAG,KAAK,CAAC;IAEzB,wFAAwF;IAChF,UAAU,CAAc;IAEhC,sEAAsE;IACtE,mFAAmF;IAC3E,SAAS,CAA2B;IAEpC,IAAI,CAAc;IAElB,eAAe,GAAG,IAAI,OAAO,EAAyB,CAAC;IAE9C,YAAY,CAA+B;IAE5D,YAAY,MAAuB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAiB,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC3E,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAC1B,IAAI,CAAC,YAAY,EACjB,MAAM,CAAC,QAAQ,IAAI,CAAC,EACpB,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAC7C,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,iBAAiB;gBAAE,MAAM,KAAK,CAAC;YACpD,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CACP,UAAkB,EAClB,IAAkB,EAClB,MAAc,EACd,OAAyB;QAEzB,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAkB;IAExB,QAAQ,GAAG,KAAK,CAAC;IAEzB,wFAAwF;IAChF,UAAU,CAAc;IAEhC,sEAAsE;IACtE,mFAAmF;IAC3E,SAAS,CAA2B;IAEpC,IAAI,CAAc;IAElB,eAAe,GAAG,IAAI,OAAO,EAAyB,CAAC;IAE9C,YAAY,CAA+B;IAE5D,YAAY,MAAuB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAiB,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC3E,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAC1B,IAAI,CAAC,YAAY,EACjB,MAAM,CAAC,QAAQ,IAAI,CAAC,EACpB,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAC7C,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,iBAAiB;gBAAE,MAAM,KAAK,CAAC;YACpD,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CACP,UAAkB,EAClB,IAAkB,EAClB,MAAc,EACd,OAAyB;QAEzB,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEtC,gEAAgE;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;gBACpD,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;IAEO,SAAS,CAAC,MAAc;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,YAAY,CAAC,4DAA4D,CAAC,CAAC;QACtF,CAAC;QAED,0EAA0E;QAC1E,yFAAyF;QACzF,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,YAAY,CAAC,gDAAgD,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,oBAAoB;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACxC,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,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;QAE5E,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,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5F,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,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { ExpressionEvaluator } from './evaluator/expression-evaluator';
|
|
|
2
2
|
export { IsolatedVmBridge } from './bridge/isolated-vm-bridge';
|
|
3
3
|
export type { IExpressionEvaluator, EvaluatorConfig, WorkflowData, EvaluateOptions, ExecuteOptions, RuntimeBridge, BridgeConfig, Logger, ObservabilityProvider, MetricsAPI, TracesAPI, Span, LogsAPI, } from './types';
|
|
4
4
|
export { ExpressionError, MemoryLimitError, TimeoutError, SecurityViolationError, SyntaxError, } from './types';
|
|
5
|
+
export { IsolateError } from '@n8n/errors';
|
|
5
6
|
export { extend, extendOptional, EXTENSION_OBJECTS } from './extensions/extend';
|
|
6
7
|
export { ExpressionExtensionError } from './extensions/expression-extension-error';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,OAAO,GACP,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,OAAO,GACP,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { ExpressionEvaluator } from './evaluator/expression-evaluator';
|
|
|
5
5
|
export { IsolatedVmBridge } from './bridge/isolated-vm-bridge';
|
|
6
6
|
// Error types
|
|
7
7
|
export { ExpressionError, MemoryLimitError, TimeoutError, SecurityViolationError, SyntaxError, } from './types';
|
|
8
|
+
export { IsolateError } from '@n8n/errors';
|
|
8
9
|
// Extension runtime exports
|
|
9
10
|
export { extend, extendOptional, EXTENSION_OBJECTS } from './extensions/extend';
|
|
10
11
|
export { ExpressionExtensionError } from './extensions/expression-extension-error';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,uEAAuE;AACvE,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAmB/D,cAAc;AACd,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,uEAAuE;AACvE,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAmB/D,cAAc;AACd,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,4BAA4B;AAC5B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { RuntimeBridge } from '../types';
|
|
2
2
|
import type { Logger } from '../types/bridge';
|
|
3
|
-
|
|
3
|
+
import { IsolateError } from '@n8n/errors';
|
|
4
|
+
export declare class PoolDisposedError extends IsolateError {
|
|
4
5
|
constructor();
|
|
5
6
|
}
|
|
6
|
-
export declare class PoolExhaustedError extends
|
|
7
|
+
export declare class PoolExhaustedError extends IsolateError {
|
|
7
8
|
constructor();
|
|
8
9
|
}
|
|
9
10
|
export declare class IsolatePool {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolate-pool.d.ts","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"isolate-pool.d.ts","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,iBAAkB,SAAQ,YAAY;;CAKlD;AAED,qBAAa,kBAAmB,SAAQ,YAAY;;CAKnD;AAED,qBAAa,WAAW;IAStB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAXzB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,iDAAiD;IACjD,OAAO,CAAC,OAAO,CAAK;IACpB,gDAAgD;IAChD,OAAO,CAAC,iBAAiB,CAA4B;gBAGnC,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,aAAA,EAC5C,MAAM,CAAC,EAAE,MAAM,YAAA;IAG3B,UAAU;IAoBhB;;;OAGG;IACH,OAAO,IAAI,aAAa;IAQlB,OAAO,CAAC,MAAM,EAAE,aAAa;IAK7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAK;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAO;IAEhD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3C,OAAO,CAAC,SAAS;CA4BjB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { IsolateError } from '@n8n/errors';
|
|
2
|
+
export class PoolDisposedError extends IsolateError {
|
|
2
3
|
constructor() {
|
|
3
4
|
super('Pool is disposed');
|
|
4
5
|
this.name = 'PoolDisposedError';
|
|
5
6
|
}
|
|
6
7
|
}
|
|
7
|
-
export class PoolExhaustedError extends
|
|
8
|
+
export class PoolExhaustedError extends IsolateError {
|
|
8
9
|
constructor() {
|
|
9
10
|
super('No isolate bridge available in pool');
|
|
10
11
|
this.name = 'PoolExhaustedError';
|
|
@@ -40,7 +41,7 @@ export class IsolatePool {
|
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
if (this.bridges.length === 0) {
|
|
43
|
-
throw new
|
|
44
|
+
throw new IsolateError('IsolatePool failed to create any bridges');
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolate-pool.js","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"isolate-pool.js","sourceRoot":"","sources":["../../../src/pool/isolate-pool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IAClD;QACC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACjC,CAAC;CACD;AAED,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IACnD;QACC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IAClC,CAAC;CACD;AAED,MAAM,OAAO,WAAW;IASL;IACA;IACA;IACA;IAXV,OAAO,GAAoB,EAAE,CAAC;IAC9B,QAAQ,GAAG,KAAK,CAAC;IACzB,iDAAiD;IACzC,OAAO,GAAG,CAAC,CAAC;IACpB,gDAAgD;IACxC,iBAAiB,GAAG,IAAI,GAAG,EAAiB,CAAC;IAErD,YACkB,YAA0C,EAC1C,IAAY,EACZ,iBAA4C,EAC5C,MAAe;QAHf,iBAAY,GAAZ,YAAY,CAA8B;QAC1C,SAAI,GAAJ,IAAI,CAAQ;QACZ,sBAAiB,GAAjB,iBAAiB,CAA2B;QAC5C,WAAM,GAAN,MAAM,CAAS;IAC9B,CAAC;IAEJ,KAAK,CAAC,UAAU;QACf,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACvC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAC5D,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,mDAAmD,EAAE;oBACvE,KAAK,EAAE,MAAM,CAAC,MAAM;iBACpB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,YAAY,CAAC,0CAA0C,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,OAAO;QACN,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,kBAAkB,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAqB;QAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAAE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IAEO,MAAM,CAAU,qBAAqB,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAU,uBAAuB,GAAG,GAAG,CAAC;IAEtD,KAAK,CAAC,oBAAoB;QACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAEO,SAAS,CAAC,OAAO,GAAG,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,OAAsB,CAAC;QAC3B,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;aAC3B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC;YAEhC,IAAI,OAAO,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,WAAW,CAAC,uBAAuB,GAAG,CAAC,IAAI,OAAO,CAAC;gBACjE,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9D,CAAC;QACF,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a fresh, closure-scoped evaluation context.
|
|
3
|
+
*
|
|
4
|
+
* This function creates a context object that contains everything needed to
|
|
5
|
+
* evaluate an expression, without touching any global mutable state
|
|
6
|
+
* (except luxon's Settings.defaultZone which is process-wide).
|
|
7
|
+
*
|
|
8
|
+
* The returned object is used as tournament's `this` context in the
|
|
9
|
+
* evalClosureSync wrapper.
|
|
10
|
+
*
|
|
11
|
+
* @param getValueAtPath - ivm.Reference for fetching values by path
|
|
12
|
+
* @param getArrayElement - ivm.Reference for fetching array elements
|
|
13
|
+
* @param callFunctionAtPath - ivm.Reference for calling functions by path
|
|
14
|
+
* @param timezone - Optional IANA timezone string
|
|
15
|
+
* @returns A context object with all workflow data, proxies, and builtins
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildContext(getValueAtPath: any, getArrayElement: any, callFunctionAtPath: any, timezone?: string): Record<string, unknown>;
|
|
18
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC3B,cAAc,EAAE,GAAG,EACnB,eAAe,EAAE,GAAG,EACpB,kBAAkB,EAAE,GAAG,EACvB,QAAQ,CAAC,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqJzB"}
|
|
@@ -11,44 +11,36 @@ const SafeRangeError = createSafeErrorSubclass(RangeError);
|
|
|
11
11
|
const SafeReferenceError = createSafeErrorSubclass(ReferenceError);
|
|
12
12
|
const SafeURIError = createSafeErrorSubclass(URIError);
|
|
13
13
|
// ============================================================================
|
|
14
|
-
//
|
|
14
|
+
// Build Context Function
|
|
15
15
|
// ============================================================================
|
|
16
|
-
function fetchPrimitive(key) {
|
|
17
|
-
try {
|
|
18
|
-
return globalThis.__getValueAtPath.applySync(null, [[key]], {
|
|
19
|
-
arguments: { copy: true },
|
|
20
|
-
result: { copy: true },
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
16
|
/**
|
|
28
|
-
*
|
|
17
|
+
* Build a fresh, closure-scoped evaluation context.
|
|
29
18
|
*
|
|
30
|
-
* This function
|
|
31
|
-
*
|
|
19
|
+
* This function creates a context object that contains everything needed to
|
|
20
|
+
* evaluate an expression, without touching any global mutable state
|
|
21
|
+
* (except luxon's Settings.defaultZone which is process-wide).
|
|
32
22
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* 2. Fetch primitives directly ($runIndex, $itemIndex)
|
|
36
|
-
* 3. Create function wrappers for callable properties ($items, etc.)
|
|
37
|
-
* 4. Expose all properties to globalThis for expression access
|
|
23
|
+
* The returned object is used as tournament's `this` context in the
|
|
24
|
+
* evalClosureSync wrapper.
|
|
38
25
|
*
|
|
39
|
-
*
|
|
26
|
+
* @param getValueAtPath - ivm.Reference for fetching values by path
|
|
27
|
+
* @param getArrayElement - ivm.Reference for fetching array elements
|
|
28
|
+
* @param callFunctionAtPath - ivm.Reference for calling functions by path
|
|
29
|
+
* @param timezone - Optional IANA timezone string
|
|
30
|
+
* @returns A context object with all workflow data, proxies, and builtins
|
|
40
31
|
*/
|
|
41
|
-
export function
|
|
32
|
+
export function buildContext(getValueAtPath, getArrayElement, callFunctionAtPath, timezone) {
|
|
42
33
|
if (timezone && !IANAZone.isValidZone(timezone)) {
|
|
43
34
|
throw new Error(`Invalid timezone: "${timezone}"`);
|
|
44
35
|
}
|
|
45
36
|
Settings.defaultZone = timezone ?? 'system';
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//
|
|
37
|
+
const ctx = {};
|
|
38
|
+
// Callback bundle passed to createDeepLazyProxy so proxies don't touch globalThis
|
|
39
|
+
const callbacks = { getValueAtPath, getArrayElement, callFunctionAtPath };
|
|
40
|
+
// __sanitize must be on the context because PrototypeSanitizer generates:
|
|
41
|
+
// obj[this.__sanitize(expr)] where 'this' is the context (via .call(ctx) wrapping)
|
|
50
42
|
// Use a non-writable property descriptor so override attempts throw instead of silently succeeding.
|
|
51
|
-
Object.defineProperty(
|
|
43
|
+
Object.defineProperty(ctx, '__sanitize', {
|
|
52
44
|
get: () => __sanitize,
|
|
53
45
|
set: () => {
|
|
54
46
|
throw new ExpressionError('Cannot override "__sanitize" due to security concerns');
|
|
@@ -56,130 +48,117 @@ export function resetDataProxies(timezone) {
|
|
|
56
48
|
enumerable: false,
|
|
57
49
|
configurable: false,
|
|
58
50
|
});
|
|
59
|
-
// Verify callbacks are available
|
|
60
|
-
// Note: ivm.Reference may not be typeof 'function', check for existence
|
|
61
|
-
if (!globalThis.__getValueAtPath) {
|
|
62
|
-
throw new Error('__getValueAtPath callback not registered');
|
|
63
|
-
}
|
|
64
51
|
// -------------------------------------------------------------------------
|
|
65
52
|
// Create lazy proxies for complex workflow properties
|
|
66
53
|
// -------------------------------------------------------------------------
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
54
|
+
ctx.$json = createDeepLazyProxy(['$json'], undefined, callbacks);
|
|
55
|
+
ctx.$binary = createDeepLazyProxy(['$binary'], undefined, callbacks);
|
|
56
|
+
ctx.$input = createDeepLazyProxy(['$input'], undefined, callbacks);
|
|
57
|
+
ctx.$node = createDeepLazyProxy(['$node'], undefined, callbacks);
|
|
58
|
+
ctx.$parameter = createDeepLazyProxy(['$parameter'], undefined, callbacks);
|
|
59
|
+
ctx.$workflow = createDeepLazyProxy(['$workflow'], undefined, callbacks);
|
|
60
|
+
ctx.$prevNode = createDeepLazyProxy(['$prevNode'], undefined, callbacks);
|
|
61
|
+
ctx.$data = createDeepLazyProxy(['$data'], undefined, callbacks);
|
|
62
|
+
ctx.$env = createDeepLazyProxy(['$env'], undefined, callbacks);
|
|
63
|
+
ctx.process = createDeepLazyProxy(['process'], undefined, callbacks);
|
|
64
|
+
ctx.$execution = createDeepLazyProxy(['$execution'], undefined, callbacks);
|
|
65
|
+
ctx.$vars = createDeepLazyProxy(['$vars'], undefined, callbacks);
|
|
66
|
+
ctx.$secrets = createDeepLazyProxy(['$secrets'], undefined, callbacks);
|
|
80
67
|
// -------------------------------------------------------------------------
|
|
81
68
|
// Create DateTime values inside the isolate (not lazy-loaded from host,
|
|
82
69
|
// because host-side DateTime objects lose their prototype crossing the
|
|
83
70
|
// boundary). The isolate has its own luxon with the correct timezone
|
|
84
71
|
// already set via Settings.defaultZone above.
|
|
85
72
|
// -------------------------------------------------------------------------
|
|
86
|
-
|
|
87
|
-
|
|
73
|
+
ctx.$now = DateTime.now();
|
|
74
|
+
ctx.$today = DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
|
|
88
75
|
// -------------------------------------------------------------------------
|
|
89
76
|
// Fetch primitives directly (no lazy loading needed for simple values)
|
|
90
77
|
// -------------------------------------------------------------------------
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
78
|
+
function fetchPrimitive(key) {
|
|
79
|
+
try {
|
|
80
|
+
return getValueAtPath.applySync(null, [[key]], {
|
|
81
|
+
arguments: { copy: true },
|
|
82
|
+
result: { copy: true },
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
ctx.$runIndex = fetchPrimitive('$runIndex');
|
|
90
|
+
ctx.$itemIndex = fetchPrimitive('$itemIndex');
|
|
91
|
+
ctx.$executionId = fetchPrimitive('$executionId');
|
|
92
|
+
ctx.$resumeWebhookUrl = fetchPrimitive('$resumeWebhookUrl');
|
|
93
|
+
ctx.$webhookId = fetchPrimitive('$webhookId');
|
|
94
|
+
ctx.$nodeId = fetchPrimitive('$nodeId');
|
|
95
|
+
ctx.$nodeVersion = fetchPrimitive('$nodeVersion');
|
|
100
96
|
// -------------------------------------------------------------------------
|
|
101
|
-
globalThis.$json = globalThis.__data.$json;
|
|
102
|
-
globalThis.$binary = globalThis.__data.$binary;
|
|
103
|
-
globalThis.$input = globalThis.__data.$input;
|
|
104
|
-
globalThis.$node = globalThis.__data.$node;
|
|
105
|
-
globalThis.$parameter = globalThis.__data.$parameter;
|
|
106
|
-
globalThis.$workflow = globalThis.__data.$workflow;
|
|
107
|
-
globalThis.$prevNode = globalThis.__data.$prevNode;
|
|
108
|
-
globalThis.$runIndex = globalThis.__data.$runIndex;
|
|
109
|
-
globalThis.$itemIndex = globalThis.__data.$itemIndex;
|
|
110
|
-
globalThis.$data = globalThis.__data.$data;
|
|
111
|
-
globalThis.$env = globalThis.__data.$env;
|
|
112
|
-
globalThis.$now = globalThis.__data.$now;
|
|
113
|
-
globalThis.$today = globalThis.__data.$today;
|
|
114
|
-
globalThis.$execution = globalThis.__data.$execution;
|
|
115
|
-
globalThis.$vars = globalThis.__data.$vars;
|
|
116
|
-
globalThis.$secrets = globalThis.__data.$secrets;
|
|
117
|
-
globalThis.$executionId = globalThis.__data.$executionId;
|
|
118
|
-
globalThis.$resumeWebhookUrl = globalThis.__data.$resumeWebhookUrl;
|
|
119
|
-
globalThis.$webhookId = globalThis.__data.$webhookId;
|
|
120
|
-
globalThis.$nodeId = globalThis.__data.$nodeId;
|
|
121
|
-
globalThis.$nodeVersion = globalThis.__data.$nodeVersion;
|
|
122
97
|
// Expose standalone functions (min, max, average, numberList, zip, $ifEmpty, etc.)
|
|
123
|
-
|
|
98
|
+
// -------------------------------------------------------------------------
|
|
99
|
+
Object.assign(ctx, extendedFunctions);
|
|
124
100
|
// -------------------------------------------------------------------------
|
|
125
101
|
// Handle function properties (check if value is function metadata)
|
|
126
102
|
// -------------------------------------------------------------------------
|
|
127
|
-
//
|
|
128
|
-
|
|
103
|
+
// Probe a host-side property: if it is a function, create an isolate
|
|
104
|
+
// wrapper that forwards calls via callFunctionAtPath; otherwise copy
|
|
105
|
+
// the value as-is.
|
|
106
|
+
function exposeHostFunction(name) {
|
|
107
|
+
if (!callFunctionAtPath)
|
|
108
|
+
return;
|
|
129
109
|
try {
|
|
130
|
-
const
|
|
110
|
+
const value = getValueAtPath.applySync(null, [[name]], {
|
|
131
111
|
arguments: { copy: true },
|
|
132
112
|
result: { copy: true },
|
|
133
113
|
});
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const result = globalThis.__callFunctionAtPath.applySync(null, [['$items'], ...args], {
|
|
114
|
+
if (value && typeof value === 'object' && value.__isFunction) {
|
|
115
|
+
ctx[name] = function (...args) {
|
|
116
|
+
const result = callFunctionAtPath.applySync(null, [[name], ...args], {
|
|
138
117
|
arguments: { copy: true },
|
|
139
118
|
result: { copy: true },
|
|
140
119
|
});
|
|
141
120
|
throwIfErrorSentinel(result);
|
|
142
121
|
return result;
|
|
143
122
|
};
|
|
144
|
-
globalThis.__data.$items = globalThis.$items;
|
|
145
123
|
}
|
|
146
124
|
else {
|
|
147
|
-
|
|
148
|
-
globalThis.$items = itemsValue;
|
|
149
|
-
globalThis.__data.$items = itemsValue;
|
|
125
|
+
ctx[name] = value;
|
|
150
126
|
}
|
|
151
127
|
}
|
|
152
|
-
catch
|
|
153
|
-
|
|
154
|
-
globalThis.$items = undefined;
|
|
155
|
-
globalThis.__data.$items = undefined;
|
|
128
|
+
catch {
|
|
129
|
+
ctx[name] = undefined;
|
|
156
130
|
}
|
|
157
131
|
}
|
|
132
|
+
exposeHostFunction('$items');
|
|
133
|
+
exposeHostFunction('$fromAI');
|
|
134
|
+
exposeHostFunction('$fromai');
|
|
135
|
+
exposeHostFunction('$fromAi');
|
|
158
136
|
// -------------------------------------------------------------------------
|
|
159
|
-
// Expose globals on
|
|
160
|
-
// pattern resolves them correctly (tournament checks
|
|
137
|
+
// Expose globals on ctx so tournament's "x in this ? this.x : global.x"
|
|
138
|
+
// pattern resolves them correctly (tournament checks ctx before global)
|
|
161
139
|
// -------------------------------------------------------------------------
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
// Expose extend/extendOptional on
|
|
166
|
-
// pattern resolves them correctly when the VM checks
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
// Wire builtins so tournament's VariablePolyfill resolves them from
|
|
170
|
-
initializeBuiltins(
|
|
140
|
+
ctx.DateTime = globalThis.DateTime;
|
|
141
|
+
ctx.Duration = globalThis.Duration;
|
|
142
|
+
ctx.Interval = globalThis.Interval;
|
|
143
|
+
// Expose extend/extendOptional on ctx so tournament's "x in this ? this.x : global.x"
|
|
144
|
+
// pattern resolves them correctly when the VM checks ctx first
|
|
145
|
+
ctx.extend = extend;
|
|
146
|
+
ctx.extendOptional = extendOptional;
|
|
147
|
+
// Wire builtins so tournament's VariablePolyfill resolves them from ctx
|
|
148
|
+
initializeBuiltins(ctx);
|
|
171
149
|
// $item(itemIndex) returns a sub-proxy for the specified item (legacy syntax)
|
|
172
|
-
|
|
150
|
+
ctx.$item = function (itemIndex) {
|
|
173
151
|
const indexStr = String(itemIndex);
|
|
174
152
|
return {
|
|
175
|
-
$json: createDeepLazyProxy(['$item', indexStr, '$json']),
|
|
176
|
-
$binary: createDeepLazyProxy(['$item', indexStr, '$binary']),
|
|
153
|
+
$json: createDeepLazyProxy(['$item', indexStr, '$json'], undefined, callbacks),
|
|
154
|
+
$binary: createDeepLazyProxy(['$item', indexStr, '$binary'], undefined, callbacks),
|
|
177
155
|
};
|
|
178
156
|
};
|
|
179
|
-
|
|
180
|
-
|
|
157
|
+
// $() function for accessing other nodes
|
|
158
|
+
ctx.$ = function (nodeName) {
|
|
159
|
+
return createDeepLazyProxy(['$', nodeName], undefined, callbacks);
|
|
181
160
|
};
|
|
182
|
-
|
|
161
|
+
return ctx;
|
|
183
162
|
}
|
|
184
163
|
// Matches initializeGlobalContext() lines 262-318 in packages/workflow/src/expression.ts
|
|
185
164
|
const DENYLISTED_GLOBALS = [
|
|
@@ -220,10 +199,10 @@ const DENYLISTED_GLOBALS = [
|
|
|
220
199
|
'unescape',
|
|
221
200
|
];
|
|
222
201
|
/**
|
|
223
|
-
* Wire builtins onto
|
|
202
|
+
* Wire builtins onto a context object so tournament's VariablePolyfill resolves them.
|
|
224
203
|
*
|
|
225
204
|
* Tournament transforms `Object` → `("Object" in this ? this : window).Object`.
|
|
226
|
-
* `this` =
|
|
205
|
+
* `this` = ctx. Without these entries on ctx, builtins fall through to
|
|
227
206
|
* `window` which doesn't exist in the isolate, causing a ReferenceError.
|
|
228
207
|
*
|
|
229
208
|
* Mirrors Expression.initializeGlobalContext() in packages/workflow/src/expression.ts.
|
|
@@ -291,4 +270,4 @@ function initializeBuiltins(data) {
|
|
|
291
270
|
data.Boolean = Boolean;
|
|
292
271
|
data.Symbol = Symbol;
|
|
293
272
|
}
|
|
294
|
-
//# sourceMappingURL=
|
|
273
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
declare global {
|
|
2
2
|
namespace globalThis {
|
|
3
|
-
var __getValueAtPath: any;
|
|
4
|
-
var __getArrayElement: any;
|
|
5
|
-
var __callFunctionAtPath: any;
|
|
6
|
-
var __data: Record<string, unknown>;
|
|
7
3
|
var createDeepLazyProxy: (basePath?: string[]) => any;
|
|
8
|
-
var
|
|
4
|
+
var buildContext: (getValueAtPath: any, getArrayElement: any, callFunctionAtPath: any, timezone?: string) => Record<string, unknown>;
|
|
9
5
|
var SafeObject: typeof Object;
|
|
10
6
|
var SafeError: typeof Error;
|
|
11
7
|
var DateTime: typeof import('luxon').DateTime;
|
|
@@ -14,29 +10,6 @@ declare global {
|
|
|
14
10
|
var __prepareForTransfer: (value: unknown) => unknown;
|
|
15
11
|
var extend: typeof import('../extensions/extend').extend;
|
|
16
12
|
var extendOptional: typeof import('../extensions/extend').extendOptional;
|
|
17
|
-
var $json: unknown;
|
|
18
|
-
var $binary: unknown;
|
|
19
|
-
var $input: unknown;
|
|
20
|
-
var $node: unknown;
|
|
21
|
-
var $parameter: unknown;
|
|
22
|
-
var $workflow: unknown;
|
|
23
|
-
var $prevNode: unknown;
|
|
24
|
-
var $data: unknown;
|
|
25
|
-
var $env: unknown;
|
|
26
|
-
var $runIndex: number | undefined;
|
|
27
|
-
var $itemIndex: number | undefined;
|
|
28
|
-
var $now: import('luxon').DateTime;
|
|
29
|
-
var $today: import('luxon').DateTime;
|
|
30
|
-
var $items: unknown;
|
|
31
|
-
var $execution: unknown;
|
|
32
|
-
var $vars: unknown;
|
|
33
|
-
var $secrets: unknown;
|
|
34
|
-
var $executionId: string | undefined;
|
|
35
|
-
var $resumeWebhookUrl: string | undefined;
|
|
36
|
-
var $webhookId: string | undefined;
|
|
37
|
-
var $nodeId: string | undefined;
|
|
38
|
-
var $nodeVersion: number | undefined;
|
|
39
|
-
var $: (nodeName: string) => unknown;
|
|
40
13
|
}
|
|
41
14
|
}
|
|
42
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAUA,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,UAAU,CAAC;QAEpB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAUA,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,UAAU,CAAC;QAEpB,IAAI,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC;QAGtD,IAAI,YAAY,EAAE,CACjB,cAAc,EAAE,GAAG,EACnB,eAAe,EAAE,GAAG,EACpB,kBAAkB,EAAE,GAAG,EACvB,QAAQ,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAG7B,IAAI,UAAU,EAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,SAAS,EAAE,OAAO,KAAK,CAAC;QAG5B,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;QACtD,IAAI,MAAM,EAAE,cAAc,sBAAsB,EAAE,MAAM,CAAC;QACzD,IAAI,cAAc,EAAE,cAAc,sBAAsB,EAAE,cAAc,CAAC;KACzE;CACD"}
|
|
@@ -2,7 +2,7 @@ import { DateTime, Duration, Interval } from 'luxon';
|
|
|
2
2
|
import { extend, extendOptional } from '../extensions/extend';
|
|
3
3
|
import { SafeObject, SafeError, ExpressionError } from './safe-globals';
|
|
4
4
|
import { createDeepLazyProxy } from './lazy-proxy';
|
|
5
|
-
import {
|
|
5
|
+
import { buildContext } from './context';
|
|
6
6
|
import { __prepareForTransfer } from './serialize';
|
|
7
7
|
// ============================================================================
|
|
8
8
|
// Library Setup
|
|
@@ -20,8 +20,6 @@ globalThis.SafeObject = SafeObject;
|
|
|
20
20
|
globalThis.SafeError = SafeError;
|
|
21
21
|
globalThis.ExpressionError = ExpressionError;
|
|
22
22
|
globalThis.createDeepLazyProxy = createDeepLazyProxy;
|
|
23
|
-
globalThis.
|
|
23
|
+
globalThis.buildContext = buildContext;
|
|
24
24
|
globalThis.__prepareForTransfer = __prepareForTransfer;
|
|
25
|
-
// Initialize empty __data object (populated by resetDataProxies before each evaluation)
|
|
26
|
-
globalThis.__data = {};
|
|
27
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA8BnD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,gEAAgE;AAChE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;AAC3C,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE/B,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;AACnC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;AAChC,UAAkB,CAAC,eAAe,GAAG,eAAe,CAAC;AAEtD,UAAU,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AACrD,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;AACvC,UAAU,CAAC,oBAAoB,GAAG,oBAAoB,CAAC"}
|
|
@@ -28,14 +28,20 @@ export declare function getProxyPath(obj: object): string[] | undefined;
|
|
|
28
28
|
* the isolate boundary using metadata-driven callbacks.
|
|
29
29
|
*
|
|
30
30
|
* Pattern:
|
|
31
|
-
* 1. When property accessed: Call
|
|
31
|
+
* 1. When property accessed: Call getValueAtPath([path]) to get metadata
|
|
32
32
|
* 2. Metadata indicates type: primitive, object, array, or function
|
|
33
33
|
* 3. For objects/arrays: Create nested proxy for lazy loading
|
|
34
|
-
* 4. For functions: Create wrapper that calls
|
|
34
|
+
* 4. For functions: Create wrapper that calls callFunctionAtPath
|
|
35
35
|
* 5. Cache all fetched values in target to avoid repeated callbacks
|
|
36
36
|
*
|
|
37
37
|
* @param basePath - Current path in object tree (e.g., ['$json', 'user'])
|
|
38
|
+
* @param knownKeys - Optional pre-known keys for the proxy
|
|
39
|
+
* @param callbacks - ivm.Reference callbacks for cross-isolate communication
|
|
38
40
|
* @returns Proxy object with lazy loading behavior
|
|
39
41
|
*/
|
|
40
|
-
export declare function createDeepLazyProxy(basePath?: string[], knownKeys?: string[]
|
|
42
|
+
export declare function createDeepLazyProxy(basePath?: string[], knownKeys?: string[], callbacks?: {
|
|
43
|
+
getValueAtPath: any;
|
|
44
|
+
getArrayElement: any;
|
|
45
|
+
callFunctionAtPath: any;
|
|
46
|
+
}): any;
|
|
41
47
|
//# sourceMappingURL=lazy-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,GAAE,MAAM,EAAO,EACvB,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,SAAS,CAAC,EAAE;IACX,cAAc,EAAE,GAAG,CAAC;IACpB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;CACxB,GACC,GAAG,CAsML"}
|