@n8n/expression-runtime 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/runtime.esm.js +17 -17
- package/dist/bundle/runtime.esm.js.map +4 -4
- package/dist/bundle/runtime.iife.js +17 -17
- package/dist/bundle/runtime.iife.js.map +4 -4
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts +3 -2
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/cjs/bridge/isolated-vm-bridge.js +54 -21
- 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 +1 -1
- package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/cjs/evaluator/expression-evaluator.js +4 -2
- package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
- package/dist/cjs/extensions/array-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/array-extensions.js +7 -2
- package/dist/cjs/extensions/array-extensions.js.map +1 -1
- package/dist/cjs/extensions/extend.d.ts.map +1 -1
- package/dist/cjs/extensions/extend.js +29 -0
- package/dist/cjs/extensions/extend.js.map +1 -1
- package/dist/cjs/extensions/function-extensions.d.ts +28 -0
- package/dist/cjs/extensions/function-extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/function-extensions.js +92 -0
- package/dist/cjs/extensions/function-extensions.js.map +1 -0
- package/dist/cjs/extensions/number-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/number-extensions.js +10 -1
- package/dist/cjs/extensions/number-extensions.js.map +1 -1
- package/dist/cjs/extensions/object-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/object-extensions.js +9 -1
- package/dist/cjs/extensions/object-extensions.js.map +1 -1
- package/dist/cjs/extensions/string-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/string-extensions.js +41 -4
- package/dist/cjs/extensions/string-extensions.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/runtime/index.d.ts +17 -0
- package/dist/cjs/runtime/index.d.ts.map +1 -1
- package/dist/cjs/runtime/index.js +5 -1
- package/dist/cjs/runtime/index.js.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.js +9 -0
- package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
- package/dist/cjs/runtime/reset.d.ts +1 -1
- package/dist/cjs/runtime/reset.d.ts.map +1 -1
- package/dist/cjs/runtime/reset.js +158 -4
- package/dist/cjs/runtime/reset.js.map +1 -1
- package/dist/cjs/runtime/safe-globals.d.ts +6 -4
- package/dist/cjs/runtime/safe-globals.d.ts.map +1 -1
- package/dist/cjs/runtime/safe-globals.js +47 -12
- package/dist/cjs/runtime/safe-globals.js.map +1 -1
- package/dist/cjs/runtime/serialize.d.ts +19 -0
- package/dist/cjs/runtime/serialize.d.ts.map +1 -0
- package/dist/cjs/runtime/serialize.js +67 -0
- package/dist/cjs/runtime/serialize.js.map +1 -0
- package/dist/cjs/types/bridge.d.ts +9 -1
- package/dist/cjs/types/bridge.d.ts.map +1 -1
- package/dist/cjs/types/evaluator.d.ts +5 -3
- package/dist/cjs/types/evaluator.d.ts.map +1 -1
- package/dist/cjs/types/evaluator.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -1
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.d.ts +3 -2
- package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.js +53 -17
- 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 +1 -1
- package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/esm/evaluator/expression-evaluator.js +4 -2
- package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
- package/dist/esm/extensions/array-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/array-extensions.js +6 -1
- package/dist/esm/extensions/array-extensions.js.map +1 -1
- package/dist/esm/extensions/extend.d.ts.map +1 -1
- package/dist/esm/extensions/extend.js +29 -0
- package/dist/esm/extensions/extend.js.map +1 -1
- package/dist/esm/extensions/function-extensions.d.ts +28 -0
- package/dist/esm/extensions/function-extensions.d.ts.map +1 -0
- package/dist/esm/extensions/function-extensions.js +79 -0
- package/dist/esm/extensions/function-extensions.js.map +1 -0
- package/dist/esm/extensions/number-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/number-extensions.js +10 -1
- package/dist/esm/extensions/number-extensions.js.map +1 -1
- package/dist/esm/extensions/object-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/object-extensions.js +9 -1
- package/dist/esm/extensions/object-extensions.js.map +1 -1
- package/dist/esm/extensions/string-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/string-extensions.js +41 -4
- package/dist/esm/extensions/string-extensions.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/index.d.ts +17 -0
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js +5 -1
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
- package/dist/esm/runtime/lazy-proxy.js +9 -0
- package/dist/esm/runtime/lazy-proxy.js.map +1 -1
- package/dist/esm/runtime/reset.d.ts +1 -1
- package/dist/esm/runtime/reset.d.ts.map +1 -1
- package/dist/esm/runtime/reset.js +158 -4
- package/dist/esm/runtime/reset.js.map +1 -1
- package/dist/esm/runtime/safe-globals.d.ts +6 -4
- package/dist/esm/runtime/safe-globals.d.ts.map +1 -1
- package/dist/esm/runtime/safe-globals.js +46 -12
- package/dist/esm/runtime/safe-globals.js.map +1 -1
- package/dist/esm/runtime/serialize.d.ts +19 -0
- package/dist/esm/runtime/serialize.d.ts.map +1 -0
- package/dist/esm/runtime/serialize.js +54 -0
- package/dist/esm/runtime/serialize.js.map +1 -0
- package/dist/esm/types/bridge.d.ts +9 -1
- package/dist/esm/types/bridge.d.ts.map +1 -1
- package/dist/esm/types/evaluator.d.ts +5 -3
- package/dist/esm/types/evaluator.d.ts.map +1 -1
- package/dist/esm/types/evaluator.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/types/index.d.ts.map +1 -1
- package/package.json +1 -1
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,OAAO,GACP,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Main exports
|
|
2
2
|
export { ExpressionEvaluator } from './evaluator/expression-evaluator';
|
|
3
|
-
// Bridge exports
|
|
3
|
+
// Bridge exports — IsolatedVmBridge lazy-loads isolated-vm internally,
|
|
4
|
+
// so this value re-export does NOT pull in the native binary at import time.
|
|
4
5
|
export { IsolatedVmBridge } from './bridge/isolated-vm-bridge';
|
|
5
6
|
// Error types
|
|
6
7
|
export { ExpressionError, MemoryLimitError, TimeoutError, SecurityViolationError, SyntaxError, } from './types';
|
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,uEAAuE;AACvE,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAkB/D,cAAc;AACd,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,SAAS,CAAC;AAEjB,4BAA4B;AAC5B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -9,8 +9,25 @@ declare global {
|
|
|
9
9
|
var SafeObject: typeof Object;
|
|
10
10
|
var SafeError: typeof Error;
|
|
11
11
|
var DateTime: typeof import('luxon').DateTime;
|
|
12
|
+
var Duration: typeof import('luxon').Duration;
|
|
13
|
+
var Interval: typeof import('luxon').Interval;
|
|
14
|
+
var __prepareForTransfer: (value: unknown) => unknown;
|
|
12
15
|
var extend: typeof import('../extensions/extend').extend;
|
|
13
16
|
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;
|
|
14
31
|
}
|
|
15
32
|
}
|
|
16
33
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAUA,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,UAAU,CAAC;QAEpB,IAAI,gBAAgB,EAAE,GAAG,CAAC;QAC1B,IAAI,iBAAiB,EAAE,GAAG,CAAC;QAC3B,IAAI,oBAAoB,EAAE,GAAG,CAAC;QAG9B,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAGpC,IAAI,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC;QAGtD,IAAI,gBAAgB,EAAE,MAAM,IAAI,CAAC;QAGjC,IAAI,UAAU,EAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,SAAS,EAAE,OAAO,KAAK,CAAC;QAG5B,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,QAAQ,EAAE,cAAc,OAAO,EAAE,QAAQ,CAAC;QAC9C,IAAI,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;QACtD,IAAI,MAAM,EAAE,cAAc,sBAAsB,EAAE,MAAM,CAAC;QACzD,IAAI,cAAc,EAAE,cAAc,sBAAsB,EAAE,cAAc,CAAC;QAGzE,IAAI,KAAK,EAAE,OAAO,CAAC;QACnB,IAAI,OAAO,EAAE,OAAO,CAAC;QACrB,IAAI,MAAM,EAAE,OAAO,CAAC;QACpB,IAAI,KAAK,EAAE,OAAO,CAAC;QACnB,IAAI,UAAU,EAAE,OAAO,CAAC;QACxB,IAAI,SAAS,EAAE,OAAO,CAAC;QACvB,IAAI,SAAS,EAAE,OAAO,CAAC;QACvB,IAAI,KAAK,EAAE,OAAO,CAAC;QACnB,IAAI,IAAI,EAAE,OAAO,CAAC;QAClB,IAAI,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,IAAI,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC,IAAI,IAAI,EAAE,OAAO,OAAO,EAAE,QAAQ,CAAC;QACnC,IAAI,MAAM,EAAE,OAAO,OAAO,EAAE,QAAQ,CAAC;QACrC,IAAI,MAAM,EAAE,OAAO,CAAC;KACpB;CACD"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DateTime } from 'luxon';
|
|
1
|
+
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
5
|
import { resetDataProxies } from './reset';
|
|
6
|
+
import { __prepareForTransfer } from './serialize';
|
|
6
7
|
// ============================================================================
|
|
7
8
|
// Library Setup
|
|
8
9
|
// ============================================================================
|
|
@@ -10,6 +11,8 @@ import { resetDataProxies } from './reset';
|
|
|
10
11
|
globalThis.extend = extend;
|
|
11
12
|
globalThis.extendOptional = extendOptional;
|
|
12
13
|
globalThis.DateTime = DateTime;
|
|
14
|
+
globalThis.Duration = Duration;
|
|
15
|
+
globalThis.Interval = Interval;
|
|
13
16
|
// ============================================================================
|
|
14
17
|
// Expose security globals and runtime functions
|
|
15
18
|
// ============================================================================
|
|
@@ -18,6 +21,7 @@ globalThis.SafeError = SafeError;
|
|
|
18
21
|
globalThis.ExpressionError = ExpressionError;
|
|
19
22
|
globalThis.createDeepLazyProxy = createDeepLazyProxy;
|
|
20
23
|
globalThis.resetDataProxies = resetDataProxies;
|
|
24
|
+
globalThis.__prepareForTransfer = __prepareForTransfer;
|
|
21
25
|
// Initialize empty __data object (populated by resetDataProxies before each evaluation)
|
|
22
26
|
globalThis.__data = {};
|
|
23
27
|
//# 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,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAiDnD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,gEAAgE;AAChE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;AAC3C,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE/B,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;AACnC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;AAChC,UAAkB,CAAC,eAAe,GAAG,eAAe,CAAC;AAEtD,UAAU,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AACrD,UAAU,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAC/C,UAAU,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AAEvD,wFAAwF;AACxF,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-proxy.d.ts","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"AAYA,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAE9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAM,EAAO,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"lazy-proxy.d.ts","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"AAYA,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAE9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAM,EAAO,GAAG,GAAG,CAwJhE"}
|
|
@@ -84,6 +84,15 @@ export function createDeepLazyProxy(basePath = []) {
|
|
|
84
84
|
// Handle arrays - metadata: { __isArray: true, __length: number }
|
|
85
85
|
if (value && typeof value === 'object' && value.__isArray) {
|
|
86
86
|
const arrayProxy = new Proxy([], {
|
|
87
|
+
has(arrTarget, arrProp) {
|
|
88
|
+
if (typeof arrProp === 'symbol')
|
|
89
|
+
return arrProp in arrTarget;
|
|
90
|
+
const index = Number(arrProp);
|
|
91
|
+
if (!isNaN(index) && index >= 0 && index < value.__length) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return arrProp in arrTarget;
|
|
95
|
+
},
|
|
87
96
|
get(arrTarget, arrProp) {
|
|
88
97
|
// Symbols can't be transferred via isolated-vm; return undefined
|
|
89
98
|
if (typeof arrProp === 'symbol') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-proxy.js","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lazy-proxy.js","sourceRoot":"","sources":["../../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAC/E,yCAAyC;AACzC,yFAAyF;AAEzF,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,UAAU,GAAG,IAAI,OAAO,EAAoB,CAAC;AAEnD,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,GAAY;IACvC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,GAAa,CAAC,CAAC;AACjF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAqB,EAAE;IAC1D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAA6B,EAAE;QACtD,GAAG,CAAC,MAAW,EAAE,IAAqB;YACrC,8CAA8C;YAC9C,0DAA0D;YAC1D,4CAA4C;YAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,wDAAwD;YACxD,mEAAmE;YACnE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzB,OAAO;oBACN,OAAO,iBAAiB,CAAC;gBAC1B,CAAC,CAAC;YACH,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;oBACN,OAAO,MAAM,CAAC;gBACf,CAAC,CAAC;YACH,CAAC;YAED,wDAAwD;YACxD,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,+BAA+B;YAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,IAAc,CAAC,CAAC;YAE3C,4CAA4C;YAC5C,2DAA2D;YAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;gBACjE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;gBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACtB,CAAC,CAAC;YAEH,2CAA2C;YAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBACrB,OAAO,KAAK,CAAC;YACd,CAAC;YAED,sEAAsE;YACtE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC9D,oDAAoD;gBACpD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,IAAW;oBACtC,OAAO,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;wBACvE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;wBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;qBACtB,CAAC,CAAC;gBACJ,CAAC,CAAC;gBACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,kEAAkE;YAClE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3D,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,EAAW,EAAE;oBACzC,GAAG,CAAC,SAAc,EAAE,OAAwB;wBAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ;4BAAE,OAAO,OAAO,IAAI,SAAS,CAAC;wBAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;4BAC3D,OAAO,IAAI,CAAC;wBACb,CAAC;wBACD,OAAO,OAAO,IAAI,SAAS,CAAC;oBAC7B,CAAC;oBACD,GAAG,CAAC,SAAc,EAAE,OAAwB;wBAC3C,iEAAiE;wBACjE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACjC,OAAO,SAAS,CAAC;wBAClB,CAAC;wBAED,sBAAsB;wBACtB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;4BAC1B,OAAO,KAAK,CAAC,QAAQ,CAAC;wBACvB,CAAC;wBAED,uBAAuB;wBACvB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;4BACjC,cAAc;4BACd,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC;gCAC7B,4BAA4B;gCAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;oCAC3E,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;oCACzB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;iCACtB,CAAC,CAAC;gCACH,4DAA4D;gCAC5D,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oCACjE,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oCAC7C,SAAS,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;gCACvD,CAAC;qCAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oCACzE,uCAAuC;oCACvC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oCAC7C,SAAS,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;gCACvD,CAAC;qCAAM,CAAC;oCACP,oBAAoB;oCACpB,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;gCAC9B,CAAC;4BACF,CAAC;4BACD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;wBAC3B,CAAC;wBAED,oCAAoC;wBACpC,sDAAsD;wBACtD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC3B,CAAC;iBACD,CAAC,CAAC;gBAEH,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;gBAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,oEAAoE;YACpE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC5D,iDAAiD;gBACjD,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,qCAAqC;YACrC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,GAAG,CAAC,MAAW,EAAE,IAAqB;YACrC,kCAAkC;YAClC,2BAA2B;YAE3B,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE3C,oBAAoB;YACpB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,8CAA8C;YAC9C,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,IAAc,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;gBACjE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;gBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACtB,CAAC,CAAC;YAEH,4CAA4C;YAC5C,qDAAqD;YACrD,OAAO,KAAK,KAAK,SAAS,CAAC;QAC5B,CAAC;KACD,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/runtime/reset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/runtime/reset.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CA0JxD"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
import { DateTime, IANAZone, Settings } from 'luxon';
|
|
1
2
|
import { extend, extendOptional } from '../extensions/extend';
|
|
2
|
-
import {
|
|
3
|
+
import { extendedFunctions } from '../extensions/function-extensions';
|
|
4
|
+
import { __sanitize, createSafeErrorSubclass, ExpressionError } from './safe-globals';
|
|
3
5
|
import { createDeepLazyProxy } from './lazy-proxy';
|
|
6
|
+
// Pre-create safe error subclass wrappers (reused across evaluations)
|
|
7
|
+
const SafeTypeError = createSafeErrorSubclass(TypeError);
|
|
8
|
+
const SafeSyntaxError = createSafeErrorSubclass(SyntaxError);
|
|
9
|
+
const SafeEvalError = createSafeErrorSubclass(EvalError);
|
|
10
|
+
const SafeRangeError = createSafeErrorSubclass(RangeError);
|
|
11
|
+
const SafeReferenceError = createSafeErrorSubclass(ReferenceError);
|
|
12
|
+
const SafeURIError = createSafeErrorSubclass(URIError);
|
|
4
13
|
// ============================================================================
|
|
5
14
|
// Reset Function for Data Proxies
|
|
6
15
|
// ============================================================================
|
|
@@ -18,12 +27,24 @@ import { createDeepLazyProxy } from './lazy-proxy';
|
|
|
18
27
|
*
|
|
19
28
|
* Called from bridge: context.evalSync('resetDataProxies()')
|
|
20
29
|
*/
|
|
21
|
-
export function resetDataProxies() {
|
|
30
|
+
export function resetDataProxies(timezone) {
|
|
31
|
+
if (timezone && !IANAZone.isValidZone(timezone)) {
|
|
32
|
+
throw new Error(`Invalid timezone: "${timezone}"`);
|
|
33
|
+
}
|
|
34
|
+
Settings.defaultZone = timezone ?? 'system';
|
|
22
35
|
// Clear existing __data object
|
|
23
36
|
globalThis.__data = {};
|
|
24
37
|
// __sanitize must be on __data because PrototypeSanitizer generates:
|
|
25
38
|
// obj[this.__sanitize(expr)] where 'this' is __data (via .call(__data) wrapping)
|
|
26
|
-
|
|
39
|
+
// Use a non-writable property descriptor so override attempts throw instead of silently succeeding.
|
|
40
|
+
Object.defineProperty(globalThis.__data, '__sanitize', {
|
|
41
|
+
get: () => __sanitize,
|
|
42
|
+
set: () => {
|
|
43
|
+
throw new ExpressionError('Cannot override "__sanitize" due to security concerns');
|
|
44
|
+
},
|
|
45
|
+
enumerable: false,
|
|
46
|
+
configurable: false,
|
|
47
|
+
});
|
|
27
48
|
// Verify callbacks are available
|
|
28
49
|
// Note: ivm.Reference may not be typeof 'function', check for existence
|
|
29
50
|
if (!globalThis.__getValueAtPath) {
|
|
@@ -42,6 +63,14 @@ export function resetDataProxies() {
|
|
|
42
63
|
globalThis.__data.$data = createDeepLazyProxy(['$data']);
|
|
43
64
|
globalThis.__data.$env = createDeepLazyProxy(['$env']);
|
|
44
65
|
// -------------------------------------------------------------------------
|
|
66
|
+
// Create DateTime values inside the isolate (not lazy-loaded from host,
|
|
67
|
+
// because host-side DateTime objects lose their prototype crossing the
|
|
68
|
+
// boundary). The isolate has its own luxon with the correct timezone
|
|
69
|
+
// already set via Settings.defaultZone above.
|
|
70
|
+
// -------------------------------------------------------------------------
|
|
71
|
+
globalThis.__data.$now = DateTime.now();
|
|
72
|
+
globalThis.__data.$today = DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
|
|
73
|
+
// -------------------------------------------------------------------------
|
|
45
74
|
// Fetch primitives directly (no lazy loading needed for simple values)
|
|
46
75
|
// -------------------------------------------------------------------------
|
|
47
76
|
try {
|
|
@@ -78,6 +107,10 @@ export function resetDataProxies() {
|
|
|
78
107
|
globalThis.$itemIndex = globalThis.__data.$itemIndex;
|
|
79
108
|
globalThis.$data = globalThis.__data.$data;
|
|
80
109
|
globalThis.$env = globalThis.__data.$env;
|
|
110
|
+
globalThis.$now = globalThis.__data.$now;
|
|
111
|
+
globalThis.$today = globalThis.__data.$today;
|
|
112
|
+
// Expose standalone functions (min, max, average, numberList, zip, $ifEmpty, etc.)
|
|
113
|
+
Object.assign(globalThis.__data, extendedFunctions);
|
|
81
114
|
// -------------------------------------------------------------------------
|
|
82
115
|
// Handle function properties (check if value is function metadata)
|
|
83
116
|
// -------------------------------------------------------------------------
|
|
@@ -115,10 +148,131 @@ export function resetDataProxies() {
|
|
|
115
148
|
// pattern resolves them correctly (tournament checks __data before global)
|
|
116
149
|
// -------------------------------------------------------------------------
|
|
117
150
|
globalThis.__data.DateTime = globalThis.DateTime;
|
|
151
|
+
globalThis.__data.Duration = globalThis.Duration;
|
|
152
|
+
globalThis.__data.Interval = globalThis.Interval;
|
|
118
153
|
// Expose extend/extendOptional on __data so tournament's "x in this ? this.x : global.x"
|
|
119
154
|
// pattern resolves them correctly when the VM checks __data first
|
|
120
155
|
globalThis.__data.extend = extend;
|
|
121
156
|
globalThis.__data.extendOptional = extendOptional;
|
|
122
|
-
//
|
|
157
|
+
// Wire builtins so tournament's VariablePolyfill resolves them from __data
|
|
158
|
+
initializeBuiltins(globalThis.__data);
|
|
159
|
+
// $item(itemIndex) returns a sub-proxy for the specified item (legacy syntax)
|
|
160
|
+
globalThis.__data.$item = function (itemIndex) {
|
|
161
|
+
const indexStr = String(itemIndex);
|
|
162
|
+
return {
|
|
163
|
+
$json: createDeepLazyProxy(['$item', indexStr, '$json']),
|
|
164
|
+
$binary: createDeepLazyProxy(['$item', indexStr, '$binary']),
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// Matches initializeGlobalContext() lines 262-318 in packages/workflow/src/expression.ts
|
|
169
|
+
const DENYLISTED_GLOBALS = [
|
|
170
|
+
'document',
|
|
171
|
+
'global',
|
|
172
|
+
'window',
|
|
173
|
+
'Window',
|
|
174
|
+
'globalThis',
|
|
175
|
+
'self',
|
|
176
|
+
'alert',
|
|
177
|
+
'prompt',
|
|
178
|
+
'confirm',
|
|
179
|
+
'eval',
|
|
180
|
+
'uneval',
|
|
181
|
+
'setTimeout',
|
|
182
|
+
'setInterval',
|
|
183
|
+
'setImmediate',
|
|
184
|
+
'clearImmediate',
|
|
185
|
+
'queueMicrotask',
|
|
186
|
+
'Function',
|
|
187
|
+
'require',
|
|
188
|
+
'module',
|
|
189
|
+
'Buffer',
|
|
190
|
+
'__dirname',
|
|
191
|
+
'__filename',
|
|
192
|
+
'fetch',
|
|
193
|
+
'XMLHttpRequest',
|
|
194
|
+
'Promise',
|
|
195
|
+
'Generator',
|
|
196
|
+
'GeneratorFunction',
|
|
197
|
+
'AsyncFunction',
|
|
198
|
+
'AsyncGenerator',
|
|
199
|
+
'AsyncGeneratorFunction',
|
|
200
|
+
'WebAssembly',
|
|
201
|
+
'Reflect',
|
|
202
|
+
'Proxy',
|
|
203
|
+
'escape',
|
|
204
|
+
'unescape',
|
|
205
|
+
];
|
|
206
|
+
/**
|
|
207
|
+
* Wire builtins onto __data so tournament's VariablePolyfill resolves them.
|
|
208
|
+
*
|
|
209
|
+
* Tournament transforms `Object` → `("Object" in this ? this : window).Object`.
|
|
210
|
+
* `this` = __data. Without these entries on __data, builtins fall through to
|
|
211
|
+
* `window` which doesn't exist in the isolate, causing a ReferenceError.
|
|
212
|
+
*
|
|
213
|
+
* Mirrors Expression.initializeGlobalContext() in packages/workflow/src/expression.ts.
|
|
214
|
+
*/
|
|
215
|
+
function initializeBuiltins(data) {
|
|
216
|
+
// ── Denylist: dangerous globals → empty objects ──
|
|
217
|
+
for (const key of DENYLISTED_GLOBALS) {
|
|
218
|
+
data[key] = {};
|
|
219
|
+
}
|
|
220
|
+
data.__lookupGetter__ = undefined;
|
|
221
|
+
data.__lookupSetter__ = undefined;
|
|
222
|
+
data.__defineGetter__ = undefined;
|
|
223
|
+
data.__defineSetter__ = undefined;
|
|
224
|
+
// ── Allowlist: safe versions of builtins ──
|
|
225
|
+
// Object — use SafeObject wrapper from the runtime bundle
|
|
226
|
+
data.Object = globalThis.SafeObject;
|
|
227
|
+
// Error types — use SafeError and safe subclass wrappers
|
|
228
|
+
data.Error = globalThis.SafeError;
|
|
229
|
+
data.TypeError = SafeTypeError;
|
|
230
|
+
data.SyntaxError = SafeSyntaxError;
|
|
231
|
+
data.EvalError = SafeEvalError;
|
|
232
|
+
data.RangeError = SafeRangeError;
|
|
233
|
+
data.ReferenceError = SafeReferenceError;
|
|
234
|
+
data.URIError = SafeURIError;
|
|
235
|
+
// Arrays
|
|
236
|
+
data.Array = Array;
|
|
237
|
+
data.Int8Array = Int8Array;
|
|
238
|
+
data.Uint8Array = Uint8Array;
|
|
239
|
+
data.Uint8ClampedArray = Uint8ClampedArray;
|
|
240
|
+
data.Int16Array = Int16Array;
|
|
241
|
+
data.Uint16Array = Uint16Array;
|
|
242
|
+
data.Int32Array = Int32Array;
|
|
243
|
+
data.Uint32Array = Uint32Array;
|
|
244
|
+
data.Float32Array = Float32Array;
|
|
245
|
+
data.Float64Array = Float64Array;
|
|
246
|
+
data.BigInt64Array = typeof BigInt64Array !== 'undefined' ? BigInt64Array : {};
|
|
247
|
+
data.BigUint64Array = typeof BigUint64Array !== 'undefined' ? BigUint64Array : {};
|
|
248
|
+
// Collections
|
|
249
|
+
data.Map = Map;
|
|
250
|
+
data.WeakMap = WeakMap;
|
|
251
|
+
data.Set = Set;
|
|
252
|
+
data.WeakSet = WeakSet;
|
|
253
|
+
// Internationalization
|
|
254
|
+
data.Intl = typeof Intl !== 'undefined' ? Intl : {};
|
|
255
|
+
// Text
|
|
256
|
+
data.String = String;
|
|
257
|
+
// Numbers
|
|
258
|
+
data.Number = Number;
|
|
259
|
+
data.BigInt = typeof BigInt !== 'undefined' ? BigInt : {};
|
|
260
|
+
data.Infinity = Infinity;
|
|
261
|
+
data.parseFloat = parseFloat;
|
|
262
|
+
data.parseInt = parseInt;
|
|
263
|
+
// Structured data
|
|
264
|
+
data.JSON = JSON;
|
|
265
|
+
data.ArrayBuffer = typeof ArrayBuffer !== 'undefined' ? ArrayBuffer : {};
|
|
266
|
+
data.SharedArrayBuffer = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : {};
|
|
267
|
+
data.Atomics = typeof Atomics !== 'undefined' ? Atomics : {};
|
|
268
|
+
data.DataView = typeof DataView !== 'undefined' ? DataView : {};
|
|
269
|
+
// Encoding
|
|
270
|
+
data.encodeURI = encodeURI;
|
|
271
|
+
data.encodeURIComponent = encodeURIComponent;
|
|
272
|
+
data.decodeURI = decodeURI;
|
|
273
|
+
data.decodeURIComponent = decodeURIComponent;
|
|
274
|
+
// Other
|
|
275
|
+
data.Boolean = Boolean;
|
|
276
|
+
data.Symbol = Symbol;
|
|
123
277
|
}
|
|
124
278
|
//# sourceMappingURL=reset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/runtime/reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/runtime/reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const SafeObject: ObjectConstructor;
|
|
10
10
|
/**
|
|
11
|
-
* SafeError - Blocks stack manipulation methods
|
|
12
|
-
*
|
|
13
|
-
* Blocked properties:
|
|
14
|
-
* - stackTraceLimit, captureStackTrace, prepareStackTrace: Prevent stack manipulation attacks
|
|
11
|
+
* SafeError - Blocks stack manipulation methods on Error constructor.
|
|
15
12
|
*/
|
|
16
13
|
export declare const SafeError: ErrorConstructor;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a safe wrapper for Error subclasses (TypeError, SyntaxError, etc.)
|
|
16
|
+
* Blocks the same dangerous properties as SafeError for defense in depth.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createSafeErrorSubclass<T extends ErrorConstructor>(ErrorClass: T): T;
|
|
17
19
|
export declare class ExpressionError extends Error {
|
|
18
20
|
constructor(message: string);
|
|
19
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-globals.d.ts","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"safe-globals.d.ts","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,mBAqCrB,CAAC;AAgBH;;GAEG;AACH,eAAO,MAAM,SAAS,kBAsBpB,CAAC;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAmBpF;AAMD,qBAAa,eAAgB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI3B;AAwBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKlD"}
|
|
@@ -30,6 +30,10 @@ export const SafeObject = new Proxy(Object, {
|
|
|
30
30
|
if (prop === 'getPrototypeOf') {
|
|
31
31
|
throw new Error('Object.getPrototypeOf is not allowed');
|
|
32
32
|
}
|
|
33
|
+
// Wrap Object.create to accept only one argument (blocks property descriptor injection)
|
|
34
|
+
if (prop === 'create') {
|
|
35
|
+
return (proto) => Object.create(proto);
|
|
36
|
+
}
|
|
33
37
|
// Allow other Object methods
|
|
34
38
|
const value = target[prop];
|
|
35
39
|
if (typeof value === 'function') {
|
|
@@ -40,21 +44,24 @@ export const SafeObject = new Proxy(Object, {
|
|
|
40
44
|
},
|
|
41
45
|
});
|
|
42
46
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
* Properties blocked on Error and all Error subclasses.
|
|
48
|
+
* These can be exploited for sandbox escape via V8's stack trace API.
|
|
49
|
+
*/
|
|
50
|
+
const blockedErrorProperties = new Set([
|
|
51
|
+
'captureStackTrace',
|
|
52
|
+
'prepareStackTrace',
|
|
53
|
+
'stackTraceLimit',
|
|
54
|
+
'__defineGetter__',
|
|
55
|
+
'__defineSetter__',
|
|
56
|
+
'__lookupGetter__',
|
|
57
|
+
'__lookupSetter__',
|
|
58
|
+
]);
|
|
59
|
+
/**
|
|
60
|
+
* SafeError - Blocks stack manipulation methods on Error constructor.
|
|
47
61
|
*/
|
|
48
62
|
export const SafeError = new Proxy(Error, {
|
|
49
63
|
get(target, prop) {
|
|
50
|
-
|
|
51
|
-
const blockedProps = ['stackTraceLimit', 'captureStackTrace', 'prepareStackTrace'];
|
|
52
|
-
if (blockedProps.includes(prop)) {
|
|
53
|
-
return undefined;
|
|
54
|
-
}
|
|
55
|
-
// Block dangerous methods
|
|
56
|
-
const blockedMethods = ['__defineGetter__', '__defineSetter__'];
|
|
57
|
-
if (blockedMethods.includes(prop)) {
|
|
64
|
+
if (blockedErrorProperties.has(prop)) {
|
|
58
65
|
return undefined;
|
|
59
66
|
}
|
|
60
67
|
const value = target[prop];
|
|
@@ -71,7 +78,34 @@ export const SafeError = new Proxy(Error, {
|
|
|
71
78
|
target[prop] = value;
|
|
72
79
|
return true;
|
|
73
80
|
},
|
|
81
|
+
defineProperty() {
|
|
82
|
+
return false;
|
|
83
|
+
},
|
|
74
84
|
});
|
|
85
|
+
/**
|
|
86
|
+
* Creates a safe wrapper for Error subclasses (TypeError, SyntaxError, etc.)
|
|
87
|
+
* Blocks the same dangerous properties as SafeError for defense in depth.
|
|
88
|
+
*/
|
|
89
|
+
export function createSafeErrorSubclass(ErrorClass) {
|
|
90
|
+
return new Proxy(ErrorClass, {
|
|
91
|
+
get(target, prop) {
|
|
92
|
+
if (blockedErrorProperties.has(prop)) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
const value = target[prop];
|
|
96
|
+
if (typeof value === 'function') {
|
|
97
|
+
return (...args) => value.apply(target, args);
|
|
98
|
+
}
|
|
99
|
+
return value;
|
|
100
|
+
},
|
|
101
|
+
set() {
|
|
102
|
+
return false;
|
|
103
|
+
},
|
|
104
|
+
defineProperty() {
|
|
105
|
+
return false;
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
}
|
|
75
109
|
// ============================================================================
|
|
76
110
|
// ExpressionError - used by tournament-generated error handlers
|
|
77
111
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-globals.js","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;IAC3C,GAAG,CAAC,MAAM,EAAE,IAAI;QACf,6CAA6C;QAC7C,MAAM,cAAc,GAAG;YACtB,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;YAChB,0BAA0B;YAC1B,2BAA2B;YAC3B,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;SAClB,CAAC;QAEF,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAc,CAAC,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,0EAA0E;QAC1E,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;QAED,6BAA6B;QAC7B,MAAM,KAAK,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACjC,wDAAwD;YACxD,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAC,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"safe-globals.js","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prepare a value for transfer across the V8 isolate boundary.
|
|
3
|
+
*
|
|
4
|
+
* isolated-vm's `copy: true` uses structured clone, which strips prototypes
|
|
5
|
+
* from non-standard types. Luxon DateTime/Duration/Interval lose their class
|
|
6
|
+
* identity and arrive on the host as plain objects.
|
|
7
|
+
*
|
|
8
|
+
* This function recursively walks a value and converts types that don't
|
|
9
|
+
* survive structured clone into their string representations. It runs
|
|
10
|
+
* inside the isolate before the result is transferred.
|
|
11
|
+
*
|
|
12
|
+
* Note: JS Date objects survive structured clone with prototype intact
|
|
13
|
+
* (Date is a standard structured-cloneable type) and are not converted.
|
|
14
|
+
*
|
|
15
|
+
* Circular references are not handled — expression results should not
|
|
16
|
+
* contain cycles.
|
|
17
|
+
*/
|
|
18
|
+
export declare function __prepareForTransfer(value: unknown): unknown;
|
|
19
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/runtime/serialize.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA2B5D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { DateTime, Duration, Interval } from 'luxon';
|
|
2
|
+
/** Type guard: plain object with Object.prototype or null prototype. */
|
|
3
|
+
function isPlainObject(value) {
|
|
4
|
+
const proto = Object.getPrototypeOf(value);
|
|
5
|
+
return proto === Object.prototype || proto === null;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Prepare a value for transfer across the V8 isolate boundary.
|
|
9
|
+
*
|
|
10
|
+
* isolated-vm's `copy: true` uses structured clone, which strips prototypes
|
|
11
|
+
* from non-standard types. Luxon DateTime/Duration/Interval lose their class
|
|
12
|
+
* identity and arrive on the host as plain objects.
|
|
13
|
+
*
|
|
14
|
+
* This function recursively walks a value and converts types that don't
|
|
15
|
+
* survive structured clone into their string representations. It runs
|
|
16
|
+
* inside the isolate before the result is transferred.
|
|
17
|
+
*
|
|
18
|
+
* Note: JS Date objects survive structured clone with prototype intact
|
|
19
|
+
* (Date is a standard structured-cloneable type) and are not converted.
|
|
20
|
+
*
|
|
21
|
+
* Circular references are not handled — expression results should not
|
|
22
|
+
* contain cycles.
|
|
23
|
+
*/
|
|
24
|
+
export function __prepareForTransfer(value) {
|
|
25
|
+
if (value === null || value === undefined)
|
|
26
|
+
return value;
|
|
27
|
+
if (typeof value !== 'object')
|
|
28
|
+
return value;
|
|
29
|
+
// Luxon DateTime -> ISO string (toISO() returns null for invalid DateTime)
|
|
30
|
+
if (DateTime.isDateTime(value))
|
|
31
|
+
return value.toISO() ?? null;
|
|
32
|
+
// Luxon Duration -> ISO string (toISO() returns null for invalid Duration)
|
|
33
|
+
if (Duration.isDuration(value))
|
|
34
|
+
return value.toISO() ?? null;
|
|
35
|
+
// Luxon Interval -> ISO string (toISO() returns "Invalid Interval" for invalid Interval)
|
|
36
|
+
if (Interval.isInterval(value)) {
|
|
37
|
+
const iso = value.toISO();
|
|
38
|
+
return iso === 'Invalid Interval' ? null : iso;
|
|
39
|
+
}
|
|
40
|
+
// Array — walk elements
|
|
41
|
+
if (Array.isArray(value))
|
|
42
|
+
return value.map(__prepareForTransfer);
|
|
43
|
+
// Only walk plain objects — structured-cloneable types like Date, Map, Set,
|
|
44
|
+
// RegExp, Error, typed arrays survive copy:true with prototypes intact.
|
|
45
|
+
if (!isPlainObject(value))
|
|
46
|
+
return value;
|
|
47
|
+
// Plain object — walk values
|
|
48
|
+
const result = {};
|
|
49
|
+
for (const key of Object.keys(value)) {
|
|
50
|
+
result[key] = __prepareForTransfer(value[key]);
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/runtime/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;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,MAAM,UAAU,oBAAoB,CAAC,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,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;IAC7D,2EAA2E;IAC3E,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;IAC7D,yFAAyF;IACzF,IAAI,QAAQ,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"}
|
|
@@ -24,7 +24,7 @@ export interface RuntimeBridge {
|
|
|
24
24
|
* Note: Synchronous for Node.js vm module (Slice 1).
|
|
25
25
|
* Will be async for isolated-vm (Slice 2).
|
|
26
26
|
*/
|
|
27
|
-
execute(code: string, data: Record<string, unknown
|
|
27
|
+
execute(code: string, data: Record<string, unknown>, options?: ExecuteOptions): unknown;
|
|
28
28
|
/**
|
|
29
29
|
* Dispose of the isolated context and free resources.
|
|
30
30
|
* After disposal, the bridge cannot be used again.
|
|
@@ -60,4 +60,12 @@ export interface BridgeConfig {
|
|
|
60
60
|
}
|
|
61
61
|
/** Default values for BridgeConfig. Bridge implementations should use this as their baseline. */
|
|
62
62
|
export declare const DEFAULT_BRIDGE_CONFIG: Required<BridgeConfig>;
|
|
63
|
+
/** Options for a single execute() call. */
|
|
64
|
+
export interface ExecuteOptions {
|
|
65
|
+
/**
|
|
66
|
+
* IANA timezone for this evaluation (e.g., 'America/New_York').
|
|
67
|
+
* Sets luxon Settings.defaultZone inside the isolate before execution.
|
|
68
|
+
*/
|
|
69
|
+
timezone?: string;
|
|
70
|
+
}
|
|
63
71
|
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;IAExF;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAIxD,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB"}
|