@n8n/expression-runtime 0.14.0 → 0.14.2
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/build.tsbuildinfo +1 -1
- package/dist/cjs/runtime/context.d.ts.map +1 -1
- package/dist/cjs/runtime/context.js +8 -1
- package/dist/cjs/runtime/context.js.map +1 -1
- package/dist/cjs/runtime/jmespath.d.ts +22 -0
- package/dist/cjs/runtime/jmespath.d.ts.map +1 -0
- package/dist/cjs/runtime/jmespath.js +112 -0
- package/dist/cjs/runtime/jmespath.js.map +1 -0
- package/dist/esm/build.tsbuildinfo +1 -1
- package/dist/esm/runtime/context.d.ts.map +1 -1
- package/dist/esm/runtime/context.js +7 -0
- package/dist/esm/runtime/context.js.map +1 -1
- package/dist/esm/runtime/jmespath.d.ts +22 -0
- package/dist/esm/runtime/jmespath.d.ts.map +1 -0
- package/dist/esm/runtime/jmespath.js +66 -0
- package/dist/esm/runtime/jmespath.js.map +1 -0
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;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,CAmKzB"}
|
|
@@ -3,6 +3,7 @@ import { extend, extendOptional } from '../extensions/extend';
|
|
|
3
3
|
import { extendedFunctions } from '../extensions/function-extensions';
|
|
4
4
|
import { __sanitize, createSafeErrorSubclass, ExpressionError } from './safe-globals';
|
|
5
5
|
import { createDeepLazyProxy, isArrayMetadata, isObjectMetadata, throwIfErrorSentinel, } from './lazy-proxy';
|
|
6
|
+
import { jmesPath } from './jmespath';
|
|
6
7
|
// Pre-create safe error subclass wrappers (reused across evaluations)
|
|
7
8
|
const SafeTypeError = createSafeErrorSubclass(TypeError);
|
|
8
9
|
const SafeSyntaxError = createSafeErrorSubclass(SyntaxError);
|
|
@@ -71,6 +72,12 @@ export function buildContext(getValueAtPath, getArrayElement, callFunctionAtPath
|
|
|
71
72
|
// pattern resolves them correctly when the VM checks ctx first
|
|
72
73
|
target.extend = extend;
|
|
73
74
|
target.extendOptional = extendOptional;
|
|
75
|
+
// Expose jmespath helpers in-isolate so they shadow the host-side
|
|
76
|
+
// `data.$jmesPath` / `data.$jmespath` from WorkflowDataProxy. Same rationale
|
|
77
|
+
// as extend / extendOptional above: keeping these in-isolate removes them
|
|
78
|
+
// from the bridge's reachable host-callable surface.
|
|
79
|
+
target.$jmesPath = jmesPath;
|
|
80
|
+
target.$jmespath = jmesPath;
|
|
74
81
|
// Wire builtins so tournament's VariablePolyfill resolves them from ctx
|
|
75
82
|
initializeBuiltins(target);
|
|
76
83
|
// $item(itemIndex) returns a sub-proxy for the specified item (legacy syntax)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.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;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-isolate `$jmespath` / `$jmesPath` implementation.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the host-side wrapper in `packages/workflow/src/workflow-data-proxy.ts`
|
|
5
|
+
* so that expressions resolve `$jmespath` from the in-isolate runtime via
|
|
6
|
+
* Tournament's polyfill, instead of falling through to the bridge's
|
|
7
|
+
* `callFunctionAtPath` channel. This shrinks the host-callable surface
|
|
8
|
+
* exposed by the data object.
|
|
9
|
+
*
|
|
10
|
+
* Behavioural parity with the host wrapper:
|
|
11
|
+
* - Throws `ExpressionError` (same name) when args are wrong.
|
|
12
|
+
* - Rejects queries that contain unsafe property tokens.
|
|
13
|
+
* - Spreads non-array, non-null objects to drop proxies at the top level.
|
|
14
|
+
*
|
|
15
|
+
* Note on lazy proxies: when `data` is a lazy proxy (e.g. `$json`), each
|
|
16
|
+
* property access during `jmespath.search` triggers a synchronous host
|
|
17
|
+
* roundtrip via `getValueAtPath`. Functional but slow for deep traversals.
|
|
18
|
+
* Performance optimisation (e.g. bulk pre-fetch of the queried subtree) is
|
|
19
|
+
* a follow-up.
|
|
20
|
+
*/
|
|
21
|
+
export declare function jmesPath(data: unknown, query: string): unknown;
|
|
22
|
+
//# sourceMappingURL=jmespath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jmespath.d.ts","sourceRoot":"","sources":["../../../src/runtime/jmespath.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAoB9D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as jmespath from 'jmespath';
|
|
2
|
+
import { ExpressionError } from './safe-globals';
|
|
3
|
+
const unsafeJmespathProperties = [
|
|
4
|
+
'__proto__',
|
|
5
|
+
'prototype',
|
|
6
|
+
'constructor',
|
|
7
|
+
'getPrototypeOf',
|
|
8
|
+
'setPrototypeOf',
|
|
9
|
+
'getOwnPropertyDescriptor',
|
|
10
|
+
'getOwnPropertyDescriptors',
|
|
11
|
+
'defineProperty',
|
|
12
|
+
'defineProperties',
|
|
13
|
+
'mainModule',
|
|
14
|
+
'binding',
|
|
15
|
+
'_linkedBinding',
|
|
16
|
+
'_load',
|
|
17
|
+
'prepareStackTrace',
|
|
18
|
+
'__lookupGetter__',
|
|
19
|
+
'__lookupSetter__',
|
|
20
|
+
'__defineGetter__',
|
|
21
|
+
'__defineSetter__',
|
|
22
|
+
'caller',
|
|
23
|
+
'arguments',
|
|
24
|
+
'getBuiltinModule',
|
|
25
|
+
'dlopen',
|
|
26
|
+
'execve',
|
|
27
|
+
'loadEnvFile',
|
|
28
|
+
];
|
|
29
|
+
const unsafeJmespathPropertyPattern = new RegExp(`\\b(?:${unsafeJmespathProperties.map((p) => p.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|')})\\b`);
|
|
30
|
+
/**
|
|
31
|
+
* In-isolate `$jmespath` / `$jmesPath` implementation.
|
|
32
|
+
*
|
|
33
|
+
* Mirrors the host-side wrapper in `packages/workflow/src/workflow-data-proxy.ts`
|
|
34
|
+
* so that expressions resolve `$jmespath` from the in-isolate runtime via
|
|
35
|
+
* Tournament's polyfill, instead of falling through to the bridge's
|
|
36
|
+
* `callFunctionAtPath` channel. This shrinks the host-callable surface
|
|
37
|
+
* exposed by the data object.
|
|
38
|
+
*
|
|
39
|
+
* Behavioural parity with the host wrapper:
|
|
40
|
+
* - Throws `ExpressionError` (same name) when args are wrong.
|
|
41
|
+
* - Rejects queries that contain unsafe property tokens.
|
|
42
|
+
* - Spreads non-array, non-null objects to drop proxies at the top level.
|
|
43
|
+
*
|
|
44
|
+
* Note on lazy proxies: when `data` is a lazy proxy (e.g. `$json`), each
|
|
45
|
+
* property access during `jmespath.search` triggers a synchronous host
|
|
46
|
+
* roundtrip via `getValueAtPath`. Functional but slow for deep traversals.
|
|
47
|
+
* Performance optimisation (e.g. bulk pre-fetch of the queried subtree) is
|
|
48
|
+
* a follow-up.
|
|
49
|
+
*/
|
|
50
|
+
export function jmesPath(data, query) {
|
|
51
|
+
if (typeof data !== 'object' || typeof query !== 'string') {
|
|
52
|
+
throw new ExpressionError('expected two arguments (Object, string) for this function');
|
|
53
|
+
}
|
|
54
|
+
// jmespath decodes escape sequences inside quoted identifiers, so the
|
|
55
|
+
// token check must run against an unescaped query. Reject any backslash
|
|
56
|
+
// up front to keep the property-name match meaningful.
|
|
57
|
+
if (query.includes('\\') || unsafeJmespathPropertyPattern.test(query)) {
|
|
58
|
+
throw new ExpressionError('Cannot access this property in a jmespath query due to security concerns');
|
|
59
|
+
}
|
|
60
|
+
if (data !== null && !Array.isArray(data) && typeof data === 'object') {
|
|
61
|
+
return jmespath.search({ ...data }, query);
|
|
62
|
+
}
|
|
63
|
+
// Array or null — pass through to jmespath which accepts both
|
|
64
|
+
return jmespath.search(data, query);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=jmespath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jmespath.js","sourceRoot":"","sources":["../../../src/runtime/jmespath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,wBAAwB,GAAG;IAChC,WAAW;IACX,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,0BAA0B;IAC1B,2BAA2B;IAC3B,gBAAgB;IAChB,kBAAkB;IAClB,YAAY;IACZ,SAAS;IACT,gBAAgB;IAChB,OAAO;IACP,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,QAAQ;IACR,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,QAAQ;IACR,aAAa;CACb,CAAC;AAEF,MAAM,6BAA6B,GAAG,IAAI,MAAM,CAC/C,SAAS,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CACtG,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAa,EAAE,KAAa;IACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,eAAe,CAAC,2DAA2D,CAAC,CAAC;IACxF,CAAC;IAED,sEAAsE;IACtE,wEAAwE;IACxE,uDAAuD;IACvD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,eAAe,CACxB,0EAA0E,CAC1E,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAI,IAAgC,EAAE,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,8DAA8D;IAC9D,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAa,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/expression-runtime",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.2",
|
|
4
4
|
"description": "Secure, isolated expression evaluation runtime for n8n",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"isolated-vm": "^6.1.2",
|
|
27
|
+
"jmespath": "0.16.0",
|
|
27
28
|
"js-base64": "3.7.8",
|
|
28
29
|
"jssha": "3.3.1",
|
|
29
30
|
"lodash": "4.18.1",
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
"@n8n/tournament": "1.2.0"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
39
|
+
"@types/jmespath": "^0.15.0",
|
|
38
40
|
"@types/lodash": "4.17.17",
|
|
39
41
|
"@types/luxon": "3.2.0",
|
|
40
42
|
"@types/md5": "^2.3.5",
|