@n8n/expression-runtime 0.2.0 → 0.3.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/ARCHITECTURE.md +5 -6
- package/LICENSE_EE.md +27 -0
- package/README.md +8 -8
- package/dist/bridge/isolated-vm-bridge.d.ts +132 -0
- package/dist/bridge/isolated-vm-bridge.d.ts.map +1 -0
- package/dist/bridge/isolated-vm-bridge.js +427 -0
- package/dist/bridge/isolated-vm-bridge.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -1
- package/dist/bundle/runtime.esm.js +45 -0
- package/dist/bundle/runtime.esm.js.map +7 -0
- package/dist/bundle/runtime.iife.js +45 -0
- package/dist/bundle/runtime.iife.js.map +7 -0
- package/dist/extensions/array-extensions.d.ts +34 -0
- package/dist/extensions/array-extensions.d.ts.map +1 -0
- package/dist/extensions/array-extensions.js +610 -0
- package/dist/extensions/array-extensions.js.map +1 -0
- package/dist/extensions/boolean-extensions.d.ts +6 -0
- package/dist/extensions/boolean-extensions.d.ts.map +1 -0
- package/dist/extensions/boolean-extensions.js +33 -0
- package/dist/extensions/boolean-extensions.js.map +1 -0
- package/dist/extensions/date-extensions.d.ts +3 -0
- package/dist/extensions/date-extensions.d.ts.map +1 -0
- package/dist/extensions/date-extensions.js +515 -0
- package/dist/extensions/date-extensions.js.map +1 -0
- package/dist/extensions/expression-extension-error.d.ts +7 -0
- package/dist/extensions/expression-extension-error.d.ts.map +1 -0
- package/dist/extensions/expression-extension-error.js +11 -0
- package/dist/extensions/expression-extension-error.js.map +1 -0
- package/dist/extensions/extend.d.ts +12 -0
- package/dist/extensions/extend.d.ts.map +1 -0
- package/dist/extensions/extend.js +134 -0
- package/dist/extensions/extend.js.map +1 -0
- package/dist/extensions/extensions.d.ts +43 -0
- package/dist/extensions/extensions.d.ts.map +1 -0
- package/dist/extensions/extensions.js +2 -0
- package/dist/extensions/extensions.js.map +1 -0
- package/dist/extensions/number-extensions.d.ts +27 -0
- package/dist/extensions/number-extensions.d.ts.map +1 -0
- package/dist/extensions/number-extensions.js +221 -0
- package/dist/extensions/number-extensions.js.map +1 -0
- package/dist/extensions/object-extensions.d.ts +46 -0
- package/dist/extensions/object-extensions.d.ts.map +1 -0
- package/dist/extensions/object-extensions.js +277 -0
- package/dist/extensions/object-extensions.js.map +1 -0
- package/dist/extensions/string-extensions.d.ts +38 -0
- package/dist/extensions/string-extensions.d.ts.map +1 -0
- package/dist/extensions/string-extensions.js +735 -0
- package/dist/extensions/string-extensions.js.map +1 -0
- package/dist/extensions/utils.d.ts +4 -0
- package/dist/extensions/utils.d.ts.map +1 -0
- package/dist/extensions/utils.js +27 -0
- package/dist/extensions/utils.js.map +1 -0
- package/dist/runtime/index.d.ts +17 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +23 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/lazy-proxy.d.ts +18 -0
- package/dist/runtime/lazy-proxy.d.ts.map +1 -0
- package/dist/runtime/lazy-proxy.js +150 -0
- package/dist/runtime/lazy-proxy.js.map +1 -0
- package/dist/runtime/reset.d.ts +16 -0
- package/dist/runtime/reset.d.ts.map +1 -0
- package/dist/runtime/reset.js +124 -0
- package/dist/runtime/reset.js.map +1 -0
- package/dist/runtime/safe-globals.d.ts +21 -0
- package/dist/runtime/safe-globals.d.ts.map +1 -0
- package/dist/runtime/safe-globals.js +110 -0
- package/dist/runtime/safe-globals.js.map +1 -0
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/runtime.d.ts +0 -102
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/runtime.js +0 -6
- package/dist/types/runtime.js.map +1 -1
- package/package.json +15 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-extensions.js","sourceRoot":"","sources":["../../src/extensions/string-extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/extensions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,QAAQ,KAAG,QAAQ,GAAG,SAc9E,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAMlF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { ExpressionExtensionError } from './expression-extension-error';
|
|
3
|
+
// Utility functions and type guards for expression extensions
|
|
4
|
+
export const convertToDateTime = (value) => {
|
|
5
|
+
let converted;
|
|
6
|
+
if (typeof value === 'string') {
|
|
7
|
+
converted = DateTime.fromJSDate(new Date(value));
|
|
8
|
+
if (converted.invalidReason !== null) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
else if (value instanceof Date) {
|
|
13
|
+
converted = DateTime.fromJSDate(value);
|
|
14
|
+
}
|
|
15
|
+
else if (DateTime.isDateTime(value)) {
|
|
16
|
+
converted = value;
|
|
17
|
+
}
|
|
18
|
+
return converted;
|
|
19
|
+
};
|
|
20
|
+
export function checkIfValueDefinedOrThrow(value, functionName) {
|
|
21
|
+
if (value === undefined || value === null) {
|
|
22
|
+
throw new ExpressionExtensionError(`${functionName} can't be used on ${String(value)} value`, {
|
|
23
|
+
description: `To ignore this error, add a ? to the variable before this function, e.g. my_var?.${functionName}`,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/extensions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,8DAA8D;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA+B,EAAwB,EAAE;IAC1F,IAAI,SAA+B,CAAC;IAEpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,SAAS,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO;QACR,CAAC;IACF,CAAC;SAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAClC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,SAAS,GAAG,KAAK,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAI,KAAQ,EAAE,YAAoB;IAC3E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,wBAAwB,CAAC,GAAG,YAAY,qBAAqB,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC7F,WAAW,EAAE,oFAAoF,YAAY,EAAE;SAC/G,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
namespace globalThis {
|
|
3
|
+
var __getValueAtPath: any;
|
|
4
|
+
var __getArrayElement: any;
|
|
5
|
+
var __callFunctionAtPath: any;
|
|
6
|
+
var __data: Record<string, unknown>;
|
|
7
|
+
var createDeepLazyProxy: (basePath?: string[]) => any;
|
|
8
|
+
var resetDataProxies: () => void;
|
|
9
|
+
var SafeObject: typeof Object;
|
|
10
|
+
var SafeError: typeof Error;
|
|
11
|
+
var DateTime: typeof import('luxon').DateTime;
|
|
12
|
+
var extend: typeof import('../extensions/extend').extend;
|
|
13
|
+
var extendOptional: typeof import('../extensions/extend').extendOptional;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AASA,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,MAAM,EAAE,cAAc,sBAAsB,EAAE,MAAM,CAAC;QACzD,IAAI,cAAc,EAAE,cAAc,sBAAsB,EAAE,cAAc,CAAC;KACzE;CACD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { extend, extendOptional } from '../extensions/extend';
|
|
3
|
+
import { SafeObject, SafeError, ExpressionError } from './safe-globals';
|
|
4
|
+
import { createDeepLazyProxy } from './lazy-proxy';
|
|
5
|
+
import { resetDataProxies } from './reset';
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Library Setup
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Expose globals required by tournament-transformed expressions
|
|
10
|
+
globalThis.extend = extend;
|
|
11
|
+
globalThis.extendOptional = extendOptional;
|
|
12
|
+
globalThis.DateTime = DateTime;
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Expose security globals and runtime functions
|
|
15
|
+
// ============================================================================
|
|
16
|
+
globalThis.SafeObject = SafeObject;
|
|
17
|
+
globalThis.SafeError = SafeError;
|
|
18
|
+
globalThis.ExpressionError = ExpressionError;
|
|
19
|
+
globalThis.createDeepLazyProxy = createDeepLazyProxy;
|
|
20
|
+
globalThis.resetDataProxies = resetDataProxies;
|
|
21
|
+
// Initialize empty __data object (populated by resetDataProxies before each evaluation)
|
|
22
|
+
globalThis.__data = {};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,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;AA8B3C,+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;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;AAE/C,wFAAwF;AACxF,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a deep lazy-loading proxy for workflow data.
|
|
3
|
+
*
|
|
4
|
+
* This proxy system enables on-demand loading of nested properties across
|
|
5
|
+
* the isolate boundary using metadata-driven callbacks.
|
|
6
|
+
*
|
|
7
|
+
* Pattern:
|
|
8
|
+
* 1. When property accessed: Call __getValueAtPath([path]) to get metadata
|
|
9
|
+
* 2. Metadata indicates type: primitive, object, array, or function
|
|
10
|
+
* 3. For objects/arrays: Create nested proxy for lazy loading
|
|
11
|
+
* 4. For functions: Create wrapper that calls __callFunctionAtPath
|
|
12
|
+
* 5. Cache all fetched values in target to avoid repeated callbacks
|
|
13
|
+
*
|
|
14
|
+
* @param basePath - Current path in object tree (e.g., ['$json', 'user'])
|
|
15
|
+
* @returns Proxy object with lazy loading behavior
|
|
16
|
+
*/
|
|
17
|
+
export declare function createDeepLazyProxy(basePath?: string[]): any;
|
|
18
|
+
//# sourceMappingURL=lazy-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-proxy.d.ts","sourceRoot":"","sources":["../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAM,EAAO,GAAG,GAAG,CA4IhE"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Deep Lazy Proxy System
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// For more information about Proxies see
|
|
5
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
|
|
6
|
+
/**
|
|
7
|
+
* Creates a deep lazy-loading proxy for workflow data.
|
|
8
|
+
*
|
|
9
|
+
* This proxy system enables on-demand loading of nested properties across
|
|
10
|
+
* the isolate boundary using metadata-driven callbacks.
|
|
11
|
+
*
|
|
12
|
+
* Pattern:
|
|
13
|
+
* 1. When property accessed: Call __getValueAtPath([path]) to get metadata
|
|
14
|
+
* 2. Metadata indicates type: primitive, object, array, or function
|
|
15
|
+
* 3. For objects/arrays: Create nested proxy for lazy loading
|
|
16
|
+
* 4. For functions: Create wrapper that calls __callFunctionAtPath
|
|
17
|
+
* 5. Cache all fetched values in target to avoid repeated callbacks
|
|
18
|
+
*
|
|
19
|
+
* @param basePath - Current path in object tree (e.g., ['$json', 'user'])
|
|
20
|
+
* @returns Proxy object with lazy loading behavior
|
|
21
|
+
*/
|
|
22
|
+
export function createDeepLazyProxy(basePath = []) {
|
|
23
|
+
return new Proxy({}, {
|
|
24
|
+
get(target, prop) {
|
|
25
|
+
// Handle Symbol properties - return undefined
|
|
26
|
+
// Symbols like Symbol.toStringTag are accessed internally
|
|
27
|
+
// We can't transfer Symbols via isolated-vm
|
|
28
|
+
if (typeof prop === 'symbol') {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
// Special properties for introspection
|
|
32
|
+
if (prop === '__isProxy')
|
|
33
|
+
return true;
|
|
34
|
+
if (prop === '__path')
|
|
35
|
+
return basePath;
|
|
36
|
+
// Handle common Object.prototype methods within isolate
|
|
37
|
+
// Don't fetch from parent to avoid native function transfer issues
|
|
38
|
+
if (prop === 'toString') {
|
|
39
|
+
return function () {
|
|
40
|
+
return '[object Object]';
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (prop === 'valueOf') {
|
|
44
|
+
return function () {
|
|
45
|
+
return target;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// Check cache - if already fetched, return cached value
|
|
49
|
+
if (prop in target) {
|
|
50
|
+
return target[prop];
|
|
51
|
+
}
|
|
52
|
+
// Build path for this property
|
|
53
|
+
const path = [...basePath, prop];
|
|
54
|
+
// Call back to parent to get metadata/value
|
|
55
|
+
// Note: __getValueAtPath is an ivm.Reference set by bridge
|
|
56
|
+
const value = globalThis.__getValueAtPath.applySync(null, [path], {
|
|
57
|
+
arguments: { copy: true },
|
|
58
|
+
result: { copy: true },
|
|
59
|
+
});
|
|
60
|
+
// Handle undefined/null - cache and return
|
|
61
|
+
if (value === undefined || value === null) {
|
|
62
|
+
target[prop] = value;
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
// Handle functions - metadata: { __isFunction: true, __name: string }
|
|
66
|
+
if (value && typeof value === 'object' && value.__isFunction) {
|
|
67
|
+
// Create function wrapper that calls back to parent
|
|
68
|
+
target[prop] = function (...args) {
|
|
69
|
+
return globalThis.__callFunctionAtPath.applySync(null, [path, ...args], {
|
|
70
|
+
arguments: { copy: true },
|
|
71
|
+
result: { copy: true },
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
return target[prop];
|
|
75
|
+
}
|
|
76
|
+
// Handle arrays - metadata: { __isArray: true, __length: number }
|
|
77
|
+
if (value && typeof value === 'object' && value.__isArray) {
|
|
78
|
+
const arrayProxy = new Proxy([], {
|
|
79
|
+
get(arrTarget, arrProp) {
|
|
80
|
+
// Handle array length
|
|
81
|
+
if (arrProp === 'length') {
|
|
82
|
+
return value.__length;
|
|
83
|
+
}
|
|
84
|
+
// Handle numeric index
|
|
85
|
+
const index = Number(arrProp);
|
|
86
|
+
if (!isNaN(index) && index >= 0) {
|
|
87
|
+
// Check cache
|
|
88
|
+
if (!(arrProp in arrTarget)) {
|
|
89
|
+
// Fetch element from parent
|
|
90
|
+
const element = globalThis.__getArrayElement.applySync(null, [path, index], {
|
|
91
|
+
arguments: { copy: true },
|
|
92
|
+
result: { copy: true },
|
|
93
|
+
});
|
|
94
|
+
// Handle element metadata (arrays and objects need proxies)
|
|
95
|
+
if (element && typeof element === 'object' && element.__isArray) {
|
|
96
|
+
const elementPath = [...path, String(index)];
|
|
97
|
+
arrTarget[arrProp] = createDeepLazyProxy(elementPath);
|
|
98
|
+
}
|
|
99
|
+
else if (element && typeof element === 'object' && element.__isObject) {
|
|
100
|
+
// Object metadata: create nested proxy
|
|
101
|
+
const elementPath = [...path, String(index)];
|
|
102
|
+
arrTarget[arrProp] = createDeepLazyProxy(elementPath);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Primitive element
|
|
106
|
+
arrTarget[arrProp] = element;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return arrTarget[arrProp];
|
|
110
|
+
}
|
|
111
|
+
// Array methods (map, filter, etc.)
|
|
112
|
+
// Note: These require full array - limitation for now
|
|
113
|
+
return arrTarget[arrProp];
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
target[prop] = arrayProxy;
|
|
117
|
+
return target[prop];
|
|
118
|
+
}
|
|
119
|
+
// Handle objects - metadata: { __isObject: true, __keys: string[] }
|
|
120
|
+
if (value && typeof value === 'object' && value.__isObject) {
|
|
121
|
+
// Create nested proxy for recursive lazy loading
|
|
122
|
+
target[prop] = createDeepLazyProxy(path);
|
|
123
|
+
return target[prop];
|
|
124
|
+
}
|
|
125
|
+
// Primitive value - cache and return
|
|
126
|
+
target[prop] = value;
|
|
127
|
+
return value;
|
|
128
|
+
},
|
|
129
|
+
has(target, prop) {
|
|
130
|
+
// Implement 'in' operator support
|
|
131
|
+
// Example: '$json' in data
|
|
132
|
+
if (typeof prop === 'symbol')
|
|
133
|
+
return false;
|
|
134
|
+
// Check cache first
|
|
135
|
+
if (prop in target) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
// Build path and check existence via callback
|
|
139
|
+
const path = [...basePath, prop];
|
|
140
|
+
const value = globalThis.__getValueAtPath.applySync(null, [path], {
|
|
141
|
+
arguments: { copy: true },
|
|
142
|
+
result: { copy: true },
|
|
143
|
+
});
|
|
144
|
+
// Property exists if value is not undefined
|
|
145
|
+
// Note: null values mean property exists but is null
|
|
146
|
+
return value !== undefined;
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=lazy-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-proxy.js","sourceRoot":"","sources":["../../src/runtime/lazy-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reset workflow data proxies before each evaluation.
|
|
3
|
+
*
|
|
4
|
+
* This function is called from the bridge before executing each expression
|
|
5
|
+
* to clear proxy caches and initialize fresh workflow data references.
|
|
6
|
+
*
|
|
7
|
+
* Pattern:
|
|
8
|
+
* 1. Create lazy proxies for complex properties ($json, $binary, etc.)
|
|
9
|
+
* 2. Fetch primitives directly ($runIndex, $itemIndex)
|
|
10
|
+
* 3. Create function wrappers for callable properties ($items, etc.)
|
|
11
|
+
* 4. Expose all properties to globalThis for expression access
|
|
12
|
+
*
|
|
13
|
+
* Called from bridge: context.evalSync('resetDataProxies()')
|
|
14
|
+
*/
|
|
15
|
+
export declare function resetDataProxies(): void;
|
|
16
|
+
//# sourceMappingURL=reset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/runtime/reset.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAkHvC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { extend, extendOptional } from '../extensions/extend';
|
|
2
|
+
import { __sanitize } from './safe-globals';
|
|
3
|
+
import { createDeepLazyProxy } from './lazy-proxy';
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Reset Function for Data Proxies
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* Reset workflow data proxies before each evaluation.
|
|
9
|
+
*
|
|
10
|
+
* This function is called from the bridge before executing each expression
|
|
11
|
+
* to clear proxy caches and initialize fresh workflow data references.
|
|
12
|
+
*
|
|
13
|
+
* Pattern:
|
|
14
|
+
* 1. Create lazy proxies for complex properties ($json, $binary, etc.)
|
|
15
|
+
* 2. Fetch primitives directly ($runIndex, $itemIndex)
|
|
16
|
+
* 3. Create function wrappers for callable properties ($items, etc.)
|
|
17
|
+
* 4. Expose all properties to globalThis for expression access
|
|
18
|
+
*
|
|
19
|
+
* Called from bridge: context.evalSync('resetDataProxies()')
|
|
20
|
+
*/
|
|
21
|
+
export function resetDataProxies() {
|
|
22
|
+
// Clear existing __data object
|
|
23
|
+
globalThis.__data = {};
|
|
24
|
+
// __sanitize must be on __data because PrototypeSanitizer generates:
|
|
25
|
+
// obj[this.__sanitize(expr)] where 'this' is __data (via .call(__data) wrapping)
|
|
26
|
+
globalThis.__data.__sanitize = __sanitize;
|
|
27
|
+
// Verify callbacks are available
|
|
28
|
+
// Note: ivm.Reference may not be typeof 'function', check for existence
|
|
29
|
+
if (!globalThis.__getValueAtPath) {
|
|
30
|
+
throw new Error('__getValueAtPath callback not registered');
|
|
31
|
+
}
|
|
32
|
+
// -------------------------------------------------------------------------
|
|
33
|
+
// Create lazy proxies for complex workflow properties
|
|
34
|
+
// -------------------------------------------------------------------------
|
|
35
|
+
globalThis.__data.$json = createDeepLazyProxy(['$json']);
|
|
36
|
+
globalThis.__data.$binary = createDeepLazyProxy(['$binary']);
|
|
37
|
+
globalThis.__data.$input = createDeepLazyProxy(['$input']);
|
|
38
|
+
globalThis.__data.$node = createDeepLazyProxy(['$node']);
|
|
39
|
+
globalThis.__data.$parameter = createDeepLazyProxy(['$parameter']);
|
|
40
|
+
globalThis.__data.$workflow = createDeepLazyProxy(['$workflow']);
|
|
41
|
+
globalThis.__data.$prevNode = createDeepLazyProxy(['$prevNode']);
|
|
42
|
+
globalThis.__data.$data = createDeepLazyProxy(['$data']);
|
|
43
|
+
globalThis.__data.$env = createDeepLazyProxy(['$env']);
|
|
44
|
+
// -------------------------------------------------------------------------
|
|
45
|
+
// Fetch primitives directly (no lazy loading needed for simple values)
|
|
46
|
+
// -------------------------------------------------------------------------
|
|
47
|
+
try {
|
|
48
|
+
globalThis.__data.$runIndex = globalThis.__getValueAtPath.applySync(null, [['$runIndex']], {
|
|
49
|
+
arguments: { copy: true },
|
|
50
|
+
result: { copy: true },
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// Property doesn't exist - set to undefined
|
|
55
|
+
globalThis.__data.$runIndex = undefined;
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
globalThis.__data.$itemIndex = globalThis.__getValueAtPath.applySync(null, [['$itemIndex']], {
|
|
59
|
+
arguments: { copy: true },
|
|
60
|
+
result: { copy: true },
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// Property doesn't exist - set to undefined
|
|
65
|
+
globalThis.__data.$itemIndex = undefined;
|
|
66
|
+
}
|
|
67
|
+
// -------------------------------------------------------------------------
|
|
68
|
+
// Expose workflow data to globalThis for expression access
|
|
69
|
+
// -------------------------------------------------------------------------
|
|
70
|
+
globalThis.$json = globalThis.__data.$json;
|
|
71
|
+
globalThis.$binary = globalThis.__data.$binary;
|
|
72
|
+
globalThis.$input = globalThis.__data.$input;
|
|
73
|
+
globalThis.$node = globalThis.__data.$node;
|
|
74
|
+
globalThis.$parameter = globalThis.__data.$parameter;
|
|
75
|
+
globalThis.$workflow = globalThis.__data.$workflow;
|
|
76
|
+
globalThis.$prevNode = globalThis.__data.$prevNode;
|
|
77
|
+
globalThis.$runIndex = globalThis.__data.$runIndex;
|
|
78
|
+
globalThis.$itemIndex = globalThis.__data.$itemIndex;
|
|
79
|
+
globalThis.$data = globalThis.__data.$data;
|
|
80
|
+
globalThis.$env = globalThis.__data.$env;
|
|
81
|
+
// -------------------------------------------------------------------------
|
|
82
|
+
// Handle function properties (check if value is function metadata)
|
|
83
|
+
// -------------------------------------------------------------------------
|
|
84
|
+
// Check if $items exists and is a function
|
|
85
|
+
if (globalThis.__callFunctionAtPath) {
|
|
86
|
+
try {
|
|
87
|
+
const itemsValue = globalThis.__getValueAtPath.applySync(null, [['$items']], {
|
|
88
|
+
arguments: { copy: true },
|
|
89
|
+
result: { copy: true },
|
|
90
|
+
});
|
|
91
|
+
// If it's function metadata, create wrapper
|
|
92
|
+
if (itemsValue && typeof itemsValue === 'object' && itemsValue.__isFunction) {
|
|
93
|
+
globalThis.$items = function (...args) {
|
|
94
|
+
return globalThis.__callFunctionAtPath.applySync(null, [['$items'], ...args], {
|
|
95
|
+
arguments: { copy: true },
|
|
96
|
+
result: { copy: true },
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
globalThis.__data.$items = globalThis.$items;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// Not a function - set to undefined or the value itself
|
|
103
|
+
globalThis.$items = itemsValue;
|
|
104
|
+
globalThis.__data.$items = itemsValue;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
// Property doesn't exist
|
|
109
|
+
globalThis.$items = undefined;
|
|
110
|
+
globalThis.__data.$items = undefined;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// -------------------------------------------------------------------------
|
|
114
|
+
// Expose globals on __data so tournament's "x in this ? this.x : global.x"
|
|
115
|
+
// pattern resolves them correctly (tournament checks __data before global)
|
|
116
|
+
// -------------------------------------------------------------------------
|
|
117
|
+
globalThis.__data.DateTime = globalThis.DateTime;
|
|
118
|
+
// Expose extend/extendOptional on __data so tournament's "x in this ? this.x : global.x"
|
|
119
|
+
// pattern resolves them correctly when the VM checks __data first
|
|
120
|
+
globalThis.__data.extend = extend;
|
|
121
|
+
globalThis.__data.extendOptional = extendOptional;
|
|
122
|
+
// TODO: Add other function properties as needed ($item, $vars, etc.)
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/runtime/reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SafeObject - Blocks dangerous Object methods that could lead to RCE
|
|
3
|
+
*
|
|
4
|
+
* Blocked methods:
|
|
5
|
+
* - defineProperty, setPrototypeOf: Prevent prototype pollution
|
|
6
|
+
* - getOwnPropertyDescriptor: Prevent property descriptor manipulation
|
|
7
|
+
* - __defineGetter__, __defineSetter__: Legacy descriptor manipulation
|
|
8
|
+
*/
|
|
9
|
+
export declare const SafeObject: ObjectConstructor;
|
|
10
|
+
/**
|
|
11
|
+
* SafeError - Blocks stack manipulation methods
|
|
12
|
+
*
|
|
13
|
+
* Blocked properties:
|
|
14
|
+
* - stackTraceLimit, captureStackTrace, prepareStackTrace: Prevent stack manipulation attacks
|
|
15
|
+
*/
|
|
16
|
+
export declare const SafeError: ErrorConstructor;
|
|
17
|
+
export declare class ExpressionError extends Error {
|
|
18
|
+
constructor(message: string);
|
|
19
|
+
}
|
|
20
|
+
export declare function __sanitize(value: unknown): unknown;
|
|
21
|
+
//# sourceMappingURL=safe-globals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-globals.d.ts","sourceRoot":"","sources":["../../src/runtime/safe-globals.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,mBAgCrB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,SAAS,kBA4BpB,CAAC;AAMH,qBAAa,eAAgB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI3B;AAwBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKlD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Safe Wrappers for Security-Sensitive Globals
|
|
3
|
+
// ============================================================================
|
|
4
|
+
/**
|
|
5
|
+
* SafeObject - Blocks dangerous Object methods that could lead to RCE
|
|
6
|
+
*
|
|
7
|
+
* Blocked methods:
|
|
8
|
+
* - defineProperty, setPrototypeOf: Prevent prototype pollution
|
|
9
|
+
* - getOwnPropertyDescriptor: Prevent property descriptor manipulation
|
|
10
|
+
* - __defineGetter__, __defineSetter__: Legacy descriptor manipulation
|
|
11
|
+
*/
|
|
12
|
+
export const SafeObject = new Proxy(Object, {
|
|
13
|
+
get(target, prop) {
|
|
14
|
+
// Block dangerous methods (return undefined)
|
|
15
|
+
const blockedMethods = [
|
|
16
|
+
'defineProperty',
|
|
17
|
+
'defineProperties',
|
|
18
|
+
'setPrototypeOf',
|
|
19
|
+
'getOwnPropertyDescriptor',
|
|
20
|
+
'getOwnPropertyDescriptors',
|
|
21
|
+
'__defineGetter__',
|
|
22
|
+
'__defineSetter__',
|
|
23
|
+
'__lookupGetter__',
|
|
24
|
+
'__lookupSetter__',
|
|
25
|
+
];
|
|
26
|
+
if (blockedMethods.includes(prop)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
// Block getPrototypeOf by throwing (more secure than returning undefined)
|
|
30
|
+
if (prop === 'getPrototypeOf') {
|
|
31
|
+
throw new Error('Object.getPrototypeOf is not allowed');
|
|
32
|
+
}
|
|
33
|
+
// Allow other Object methods
|
|
34
|
+
const value = target[prop];
|
|
35
|
+
if (typeof value === 'function') {
|
|
36
|
+
// Use arrow function wrapper to preserve 'this' binding
|
|
37
|
+
return (...args) => value.apply(target, args);
|
|
38
|
+
}
|
|
39
|
+
return value;
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* SafeError - Blocks stack manipulation methods
|
|
44
|
+
*
|
|
45
|
+
* Blocked properties:
|
|
46
|
+
* - stackTraceLimit, captureStackTrace, prepareStackTrace: Prevent stack manipulation attacks
|
|
47
|
+
*/
|
|
48
|
+
export const SafeError = new Proxy(Error, {
|
|
49
|
+
get(target, prop) {
|
|
50
|
+
// Block stack manipulation (return undefined)
|
|
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)) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const value = target[prop];
|
|
61
|
+
if (typeof value === 'function') {
|
|
62
|
+
return (...args) => value.apply(target, args);
|
|
63
|
+
}
|
|
64
|
+
return value;
|
|
65
|
+
},
|
|
66
|
+
set(target, prop, value) {
|
|
67
|
+
// Block setting prepareStackTrace
|
|
68
|
+
if (prop === 'prepareStackTrace') {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
target[prop] = value;
|
|
72
|
+
return true;
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
// ============================================================================
|
|
76
|
+
// ExpressionError - used by tournament-generated error handlers
|
|
77
|
+
// ============================================================================
|
|
78
|
+
export class ExpressionError extends Error {
|
|
79
|
+
constructor(message) {
|
|
80
|
+
super(message);
|
|
81
|
+
this.name = 'ExpressionError';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// ============================================================================
|
|
85
|
+
// Runtime sanitizer for dynamic property access
|
|
86
|
+
// Generated by PrototypeSanitizer: obj[expr] → obj[this.__sanitize(expr)]
|
|
87
|
+
// Must match the blocklist in packages/workflow/src/expression-sandboxing.ts
|
|
88
|
+
// ============================================================================
|
|
89
|
+
const unsafeObjectProperties = new Set([
|
|
90
|
+
'__proto__',
|
|
91
|
+
'prototype',
|
|
92
|
+
'constructor',
|
|
93
|
+
'__defineGetter__',
|
|
94
|
+
'__defineSetter__',
|
|
95
|
+
'__lookupGetter__',
|
|
96
|
+
'__lookupSetter__',
|
|
97
|
+
'toString',
|
|
98
|
+
'valueOf',
|
|
99
|
+
'toLocaleString',
|
|
100
|
+
'hasOwnProperty',
|
|
101
|
+
'isPrototypeOf',
|
|
102
|
+
'propertyIsEnumerable',
|
|
103
|
+
]);
|
|
104
|
+
export function __sanitize(value) {
|
|
105
|
+
if (typeof value === 'string' && unsafeObjectProperties.has(value)) {
|
|
106
|
+
throw new ExpressionError(`Cannot access "${value}" due to security concerns`);
|
|
107
|
+
}
|
|
108
|
+
return value;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=safe-globals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-globals.js","sourceRoot":"","sources":["../../src/runtime/safe-globals.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* This module exports all TypeScript interfaces and types for the expression runtime.
|
|
5
5
|
*/
|
|
6
6
|
export type { RuntimeBridge, BridgeConfig } from './bridge';
|
|
7
|
-
export type { RuntimeHostInterface, RuntimeGlobals, RuntimeConfig, LazyProxyConfig, } from './runtime';
|
|
8
7
|
export { RuntimeError } from './runtime';
|
|
9
8
|
export type { EvaluatorConfig, IExpressionEvaluator, WorkflowData, EvaluateOptions, ObservabilityProvider, MetricsAPI, TracesAPI, Span, LogsAPI, TournamentHooks, } from './evaluator';
|
|
10
9
|
export { ExpressionError, MemoryLimitError, TimeoutError, SecurityViolationError, SyntaxError, } from './evaluator';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG5D,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,YAAY,EACX,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,OAAO,EACP,eAAe,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACX,MAAM,aAAa,CAAC"}
|