@n8n/expression-runtime 0.9.0 → 0.10.1
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 +7 -7
- package/dist/bundle/runtime.esm.js.map +3 -3
- package/dist/bundle/runtime.iife.js +7 -7
- package/dist/bundle/runtime.iife.js.map +3 -3
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/extensions/function-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/function-extensions.js +8 -5
- package/dist/cjs/extensions/function-extensions.js.map +1 -1
- package/dist/cjs/runtime/context.d.ts.map +1 -1
- package/dist/cjs/runtime/context.js +91 -89
- package/dist/cjs/runtime/context.js.map +1 -1
- package/dist/esm/build.tsbuildinfo +1 -1
- package/dist/esm/extensions/function-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/function-extensions.js +8 -5
- package/dist/esm/extensions/function-extensions.js.map +1 -1
- package/dist/esm/runtime/context.d.ts.map +1 -1
- package/dist/esm/runtime/context.js +91 -89
- package/dist/esm/runtime/context.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/function-extensions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"function-extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/function-extensions.ts"],"names":[],"mappings":"AA4CA,iBAAS,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,gBAsB/C;kBAtBQ,OAAO;;;;;;;;;;;;AAoChB,eAAO,MAAM,iBAAiB;;;iBAxCV,OAAO,KAAG,OAAO;uBAJX,MAAM,EAAE;wBA9BP,MAAM,OAAO,MAAM,KAAG,MAAM,EAAE;gBAgBtC,OAAO,EAAE,UAAU,OAAO,EAAE,KAAG,OAAO;;;wBAc/B,MAAM,EAAE;kBAId,OAAO,KAAG,OAAO;;CAoDpC,CAAC"}
|
|
@@ -29,14 +29,17 @@
|
|
|
29
29
|
return arr;
|
|
30
30
|
};
|
|
31
31
|
const zip = (keys, values) => {
|
|
32
|
+
if (!Array.isArray(keys) || !Array.isArray(values)) {
|
|
33
|
+
throw new expression_extension_error_1.ExpressionExtensionError('keys and values must be arrays');
|
|
34
|
+
}
|
|
32
35
|
if (keys.length !== values.length) {
|
|
33
36
|
throw new expression_extension_error_1.ExpressionExtensionError('keys and values not of equal length');
|
|
34
37
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
const result = {};
|
|
39
|
+
for (let i = 0; i < keys.length; i++) {
|
|
40
|
+
result[keys[i]] = values[i];
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
40
43
|
};
|
|
41
44
|
const average = (...args) => {
|
|
42
45
|
return (0, array_extensions_1.average)(args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-extensions.js","sourceRoot":"","sources":["../../../src/extensions/function-extensions.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,yDAAyD;IACzD,6EAAwE;IAExE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAErB,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,GAAW,EAAY,EAAE;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;QAEpC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBACjB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,IAAe,EAAE,MAAiB,EAAW,EAAE;QAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,qDAAwB,CAAC,qCAAqC,CAAC,CAAC;QAC3E,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"function-extensions.js","sourceRoot":"","sources":["../../../src/extensions/function-extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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,CAwJzB"}
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
throw new Error(`Invalid timezone: "${timezone}"`);
|
|
47
47
|
}
|
|
48
48
|
luxon_1.Settings.defaultZone = timezone ?? 'system';
|
|
49
|
-
const
|
|
49
|
+
const target = {};
|
|
50
50
|
// Callback bundle passed to createDeepLazyProxy so proxies don't touch globalThis
|
|
51
51
|
const callbacks = { getValueAtPath, getArrayElement, callFunctionAtPath };
|
|
52
52
|
// __sanitize must be on the context because PrototypeSanitizer generates:
|
|
53
53
|
// obj[this.__sanitize(expr)] where 'this' is the context (via .call(ctx) wrapping)
|
|
54
54
|
// Use a non-writable property descriptor so override attempts throw instead of silently succeeding.
|
|
55
|
-
Object.defineProperty(
|
|
55
|
+
Object.defineProperty(target, '__sanitize', {
|
|
56
56
|
get: () => safe_globals_1.__sanitize,
|
|
57
57
|
set: () => {
|
|
58
58
|
throw new safe_globals_1.ExpressionError('Cannot override "__sanitize" due to security concerns');
|
|
@@ -61,105 +61,32 @@
|
|
|
61
61
|
configurable: false,
|
|
62
62
|
});
|
|
63
63
|
// -------------------------------------------------------------------------
|
|
64
|
-
// Create lazy proxies for complex workflow properties
|
|
65
|
-
// -------------------------------------------------------------------------
|
|
66
|
-
ctx.$json = (0, lazy_proxy_1.createDeepLazyProxy)(['$json'], undefined, callbacks);
|
|
67
|
-
ctx.$binary = (0, lazy_proxy_1.createDeepLazyProxy)(['$binary'], undefined, callbacks);
|
|
68
|
-
ctx.$input = (0, lazy_proxy_1.createDeepLazyProxy)(['$input'], undefined, callbacks);
|
|
69
|
-
ctx.$node = (0, lazy_proxy_1.createDeepLazyProxy)(['$node'], undefined, callbacks);
|
|
70
|
-
ctx.$parameter = (0, lazy_proxy_1.createDeepLazyProxy)(['$parameter'], undefined, callbacks);
|
|
71
|
-
ctx.$workflow = (0, lazy_proxy_1.createDeepLazyProxy)(['$workflow'], undefined, callbacks);
|
|
72
|
-
ctx.$prevNode = (0, lazy_proxy_1.createDeepLazyProxy)(['$prevNode'], undefined, callbacks);
|
|
73
|
-
ctx.$data = (0, lazy_proxy_1.createDeepLazyProxy)(['$data'], undefined, callbacks);
|
|
74
|
-
ctx.$env = (0, lazy_proxy_1.createDeepLazyProxy)(['$env'], undefined, callbacks);
|
|
75
|
-
ctx.process = (0, lazy_proxy_1.createDeepLazyProxy)(['process'], undefined, callbacks);
|
|
76
|
-
ctx.$execution = (0, lazy_proxy_1.createDeepLazyProxy)(['$execution'], undefined, callbacks);
|
|
77
|
-
ctx.$vars = (0, lazy_proxy_1.createDeepLazyProxy)(['$vars'], undefined, callbacks);
|
|
78
|
-
ctx.$secrets = (0, lazy_proxy_1.createDeepLazyProxy)(['$secrets'], undefined, callbacks);
|
|
79
|
-
// -------------------------------------------------------------------------
|
|
80
64
|
// Create DateTime values inside the isolate (not lazy-loaded from host,
|
|
81
65
|
// because host-side DateTime objects lose their prototype crossing the
|
|
82
66
|
// boundary). The isolate has its own luxon with the correct timezone
|
|
83
67
|
// already set via Settings.defaultZone above.
|
|
84
68
|
// -------------------------------------------------------------------------
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
// -------------------------------------------------------------------------
|
|
88
|
-
// Fetch primitives directly (no lazy loading needed for simple values)
|
|
89
|
-
// -------------------------------------------------------------------------
|
|
90
|
-
function fetchPrimitive(key) {
|
|
91
|
-
try {
|
|
92
|
-
return getValueAtPath.applySync(null, [[key]], {
|
|
93
|
-
arguments: { copy: true },
|
|
94
|
-
result: { copy: true },
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
ctx.$runIndex = fetchPrimitive('$runIndex');
|
|
102
|
-
ctx.$itemIndex = fetchPrimitive('$itemIndex');
|
|
103
|
-
ctx.$executionId = fetchPrimitive('$executionId');
|
|
104
|
-
ctx.$resumeWebhookUrl = fetchPrimitive('$resumeWebhookUrl');
|
|
105
|
-
ctx.$webhookId = fetchPrimitive('$webhookId');
|
|
106
|
-
ctx.$nodeId = fetchPrimitive('$nodeId');
|
|
107
|
-
ctx.$nodeVersion = fetchPrimitive('$nodeVersion');
|
|
69
|
+
target.$now = luxon_1.DateTime.now();
|
|
70
|
+
target.$today = luxon_1.DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
|
|
108
71
|
// -------------------------------------------------------------------------
|
|
109
72
|
// Expose standalone functions (min, max, average, numberList, zip, $ifEmpty, etc.)
|
|
110
73
|
// -------------------------------------------------------------------------
|
|
111
|
-
Object.assign(
|
|
112
|
-
// -------------------------------------------------------------------------
|
|
113
|
-
// Handle function properties (check if value is function metadata)
|
|
74
|
+
Object.assign(target, function_extensions_1.extendedFunctions);
|
|
114
75
|
// -------------------------------------------------------------------------
|
|
115
|
-
//
|
|
116
|
-
// wrapper that forwards calls via callFunctionAtPath; otherwise copy
|
|
117
|
-
// the value as-is.
|
|
118
|
-
function exposeHostFunction(name) {
|
|
119
|
-
if (!callFunctionAtPath)
|
|
120
|
-
return;
|
|
121
|
-
try {
|
|
122
|
-
const value = getValueAtPath.applySync(null, [[name]], {
|
|
123
|
-
arguments: { copy: true },
|
|
124
|
-
result: { copy: true },
|
|
125
|
-
});
|
|
126
|
-
if (value && typeof value === 'object' && value.__isFunction) {
|
|
127
|
-
ctx[name] = function (...args) {
|
|
128
|
-
const result = callFunctionAtPath.applySync(null, [[name], ...args], {
|
|
129
|
-
arguments: { copy: true },
|
|
130
|
-
result: { copy: true },
|
|
131
|
-
});
|
|
132
|
-
(0, lazy_proxy_1.throwIfErrorSentinel)(result);
|
|
133
|
-
return result;
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
ctx[name] = value;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
ctx[name] = undefined;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
exposeHostFunction('$items');
|
|
145
|
-
exposeHostFunction('$fromAI');
|
|
146
|
-
exposeHostFunction('$fromai');
|
|
147
|
-
exposeHostFunction('$fromAi');
|
|
148
|
-
// -------------------------------------------------------------------------
|
|
149
|
-
// Expose globals on ctx so tournament's "x in this ? this.x : global.x"
|
|
76
|
+
// Expose globals on target so tournament's "x in this ? this.x : global.x"
|
|
150
77
|
// pattern resolves them correctly (tournament checks ctx before global)
|
|
151
78
|
// -------------------------------------------------------------------------
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
// Expose extend/extendOptional on
|
|
79
|
+
target.DateTime = globalThis.DateTime;
|
|
80
|
+
target.Duration = globalThis.Duration;
|
|
81
|
+
target.Interval = globalThis.Interval;
|
|
82
|
+
// Expose extend/extendOptional on target so tournament's "x in this ? this.x : global.x"
|
|
156
83
|
// pattern resolves them correctly when the VM checks ctx first
|
|
157
|
-
|
|
158
|
-
|
|
84
|
+
target.extend = extend_1.extend;
|
|
85
|
+
target.extendOptional = extend_1.extendOptional;
|
|
159
86
|
// Wire builtins so tournament's VariablePolyfill resolves them from ctx
|
|
160
|
-
initializeBuiltins(
|
|
87
|
+
initializeBuiltins(target);
|
|
161
88
|
// $item(itemIndex) returns a sub-proxy for the specified item (legacy syntax)
|
|
162
|
-
|
|
89
|
+
target.$item = function (itemIndex) {
|
|
163
90
|
const indexStr = String(itemIndex);
|
|
164
91
|
return {
|
|
165
92
|
$json: (0, lazy_proxy_1.createDeepLazyProxy)(['$item', indexStr, '$json'], undefined, callbacks),
|
|
@@ -167,10 +94,85 @@
|
|
|
167
94
|
};
|
|
168
95
|
};
|
|
169
96
|
// $() function for accessing other nodes
|
|
170
|
-
|
|
97
|
+
target.$ = function (nodeName) {
|
|
171
98
|
return (0, lazy_proxy_1.createDeepLazyProxy)(['$', nodeName], undefined, callbacks);
|
|
172
99
|
};
|
|
173
|
-
|
|
100
|
+
// -------------------------------------------------------------------------
|
|
101
|
+
// Resolve an unknown key from the host. Called by the proxy's has/get traps
|
|
102
|
+
// for keys not already on the target. The resolved value is cached on target
|
|
103
|
+
// so each key is fetched at most once per evaluation.
|
|
104
|
+
// -------------------------------------------------------------------------
|
|
105
|
+
// Track keys we've already probed so we never call applySync twice
|
|
106
|
+
// for the same key — even if the host returned undefined.
|
|
107
|
+
const probedKeys = new Set();
|
|
108
|
+
function resolveFromHost(key) {
|
|
109
|
+
if (probedKeys.has(key))
|
|
110
|
+
return false;
|
|
111
|
+
let value;
|
|
112
|
+
try {
|
|
113
|
+
value = getValueAtPath.applySync(null, [[key]], {
|
|
114
|
+
arguments: { copy: true },
|
|
115
|
+
result: { copy: true },
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Don't mark as probed — the throw may be transient
|
|
120
|
+
// (e.g. host data not yet available) and a retry should be allowed.
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
// Mark as probed only after a definitive answer from the host.
|
|
124
|
+
probedKeys.add(key);
|
|
125
|
+
if (value === undefined)
|
|
126
|
+
return false;
|
|
127
|
+
(0, lazy_proxy_1.throwIfErrorSentinel)(value);
|
|
128
|
+
// Function metadata — create a callable wrapper
|
|
129
|
+
if (value && typeof value === 'object' && value.__isFunction) {
|
|
130
|
+
target[key] = function (...args) {
|
|
131
|
+
const result = callFunctionAtPath.applySync(null, [[key], ...args], {
|
|
132
|
+
arguments: { copy: true },
|
|
133
|
+
result: { copy: true },
|
|
134
|
+
});
|
|
135
|
+
(0, lazy_proxy_1.throwIfErrorSentinel)(result);
|
|
136
|
+
return result;
|
|
137
|
+
};
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
// Object metadata — create a lazy proxy for deep access
|
|
141
|
+
if (value &&
|
|
142
|
+
typeof value === 'object' &&
|
|
143
|
+
('__isObject' in value || '__isArray' in value)) {
|
|
144
|
+
target[key] = (0, lazy_proxy_1.createDeepLazyProxy)([key], undefined, callbacks);
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
// Primitive or null — store directly
|
|
148
|
+
target[key] = value;
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
// -------------------------------------------------------------------------
|
|
152
|
+
// Wrap target in a Proxy so unknown keys are resolved lazily from the host.
|
|
153
|
+
// Tournament's VariablePolyfill transforms identifiers to:
|
|
154
|
+
// ("x" in this ? this : global).x
|
|
155
|
+
// The has trap intercepts the "in" check, resolves the key on demand, and
|
|
156
|
+
// caches it on target. The get trap then finds it cached.
|
|
157
|
+
// -------------------------------------------------------------------------
|
|
158
|
+
return new Proxy(target, {
|
|
159
|
+
has(_target, prop) {
|
|
160
|
+
if (typeof prop === 'symbol')
|
|
161
|
+
return prop in target;
|
|
162
|
+
if (prop in target)
|
|
163
|
+
return true;
|
|
164
|
+
return resolveFromHost(prop);
|
|
165
|
+
},
|
|
166
|
+
get(_target, prop) {
|
|
167
|
+
if (typeof prop === 'symbol')
|
|
168
|
+
return undefined;
|
|
169
|
+
if (prop in target)
|
|
170
|
+
return target[prop];
|
|
171
|
+
// has() should have resolved it, but handle direct get() too
|
|
172
|
+
resolveFromHost(prop);
|
|
173
|
+
return target[prop];
|
|
174
|
+
},
|
|
175
|
+
});
|
|
174
176
|
}
|
|
175
177
|
// Matches initializeGlobalContext() lines 262-318 in packages/workflow/src/expression.ts
|
|
176
178
|
const DENYLISTED_GLOBALS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":";;;;;;;;;;;IAoCA,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|