@n8n/expression-runtime 0.5.0 → 0.7.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.
Files changed (59) hide show
  1. package/dist/bundle/runtime.esm.js +16 -16
  2. package/dist/bundle/runtime.esm.js.map +3 -3
  3. package/dist/bundle/runtime.iife.js +16 -16
  4. package/dist/bundle/runtime.iife.js.map +3 -3
  5. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
  6. package/dist/cjs/bridge/isolated-vm-bridge.js +25 -4
  7. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
  8. package/dist/cjs/build.tsbuildinfo +1 -1
  9. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
  10. package/dist/cjs/evaluator/expression-evaluator.js +10 -2
  11. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
  12. package/dist/cjs/evaluator/lru-cache.d.ts +11 -0
  13. package/dist/cjs/evaluator/lru-cache.d.ts.map +1 -0
  14. package/dist/cjs/evaluator/lru-cache.js +50 -0
  15. package/dist/cjs/evaluator/lru-cache.js.map +1 -0
  16. package/dist/cjs/extensions/extend.d.ts.map +1 -1
  17. package/dist/cjs/extensions/extend.js +29 -0
  18. package/dist/cjs/extensions/extend.js.map +1 -1
  19. package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
  20. package/dist/cjs/runtime/lazy-proxy.js +9 -0
  21. package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
  22. package/dist/cjs/runtime/reset.d.ts.map +1 -1
  23. package/dist/cjs/runtime/reset.js +136 -2
  24. package/dist/cjs/runtime/reset.js.map +1 -1
  25. package/dist/cjs/runtime/safe-globals.d.ts +6 -4
  26. package/dist/cjs/runtime/safe-globals.d.ts.map +1 -1
  27. package/dist/cjs/runtime/safe-globals.js +47 -12
  28. package/dist/cjs/runtime/safe-globals.js.map +1 -1
  29. package/dist/cjs/types/evaluator.d.ts +4 -0
  30. package/dist/cjs/types/evaluator.d.ts.map +1 -1
  31. package/dist/cjs/types/evaluator.js.map +1 -1
  32. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
  33. package/dist/esm/bridge/isolated-vm-bridge.js +25 -4
  34. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
  35. package/dist/esm/build.tsbuildinfo +1 -1
  36. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
  37. package/dist/esm/evaluator/expression-evaluator.js +9 -1
  38. package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
  39. package/dist/esm/evaluator/lru-cache.d.ts +11 -0
  40. package/dist/esm/evaluator/lru-cache.d.ts.map +1 -0
  41. package/dist/esm/evaluator/lru-cache.js +36 -0
  42. package/dist/esm/evaluator/lru-cache.js.map +1 -0
  43. package/dist/esm/extensions/extend.d.ts.map +1 -1
  44. package/dist/esm/extensions/extend.js +29 -0
  45. package/dist/esm/extensions/extend.js.map +1 -1
  46. package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
  47. package/dist/esm/runtime/lazy-proxy.js +9 -0
  48. package/dist/esm/runtime/lazy-proxy.js.map +1 -1
  49. package/dist/esm/runtime/reset.d.ts.map +1 -1
  50. package/dist/esm/runtime/reset.js +137 -3
  51. package/dist/esm/runtime/reset.js.map +1 -1
  52. package/dist/esm/runtime/safe-globals.d.ts +6 -4
  53. package/dist/esm/runtime/safe-globals.d.ts.map +1 -1
  54. package/dist/esm/runtime/safe-globals.js +46 -12
  55. package/dist/esm/runtime/safe-globals.js.map +1 -1
  56. package/dist/esm/types/evaluator.d.ts +4 -0
  57. package/dist/esm/types/evaluator.d.ts.map +1 -1
  58. package/dist/esm/types/evaluator.js.map +1 -1
  59. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { Tournament } from '@n8n/tournament';
2
+ import { LruCache } from './lru-cache';
2
3
  export class ExpressionEvaluator {
3
4
  config;
4
5
  disposed = false;
@@ -6,9 +7,12 @@ export class ExpressionEvaluator {
6
7
  tournament;
7
8
  // Cache: template expression → tournament-transformed JavaScript code
8
9
  // Cache hit rate in production: ~99.9% (same expressions repeat within a workflow)
9
- codeCache = new Map();
10
+ codeCache;
10
11
  constructor(config) {
11
12
  this.config = config;
13
+ this.codeCache = new LruCache(config.maxCodeCacheSize, () => {
14
+ this.config.observability?.metrics.counter('expression.code_cache.eviction', 1);
15
+ });
12
16
  }
13
17
  async initialize() {
14
18
  await this.config.bridge.initialize();
@@ -46,8 +50,10 @@ export class ExpressionEvaluator {
46
50
  getTransformedCode(expression) {
47
51
  const cached = this.codeCache.get(expression);
48
52
  if (cached !== undefined) {
53
+ this.config.observability?.metrics.counter('expression.code_cache.hit', 1);
49
54
  return cached;
50
55
  }
56
+ this.config.observability?.metrics.counter('expression.code_cache.miss', 1);
51
57
  if (!this.tournament) {
52
58
  // Tournament requires an errorHandler but we only use getExpressionCode()
53
59
  // for AST transformation — we never call tournament.execute(), so this
@@ -61,11 +67,13 @@ export class ExpressionEvaluator {
61
67
  }
62
68
  const [transformedCode] = this.tournament.getExpressionCode(expression);
63
69
  this.codeCache.set(expression, transformedCode);
70
+ this.config.observability?.metrics.gauge('expression.code_cache.size', this.codeCache.size);
64
71
  return transformedCode;
65
72
  }
66
73
  async dispose() {
67
74
  this.disposed = true;
68
75
  this.codeCache.clear();
76
+ this.config.observability?.metrics.gauge('expression.code_cache.size', 0);
69
77
  await this.config.bridge.dispose();
70
78
  }
71
79
  isDisposed() {
@@ -1 +1 @@
1
- {"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAkB;IAExB,QAAQ,GAAG,KAAK,CAAC;IAEzB,wFAAwF;IAChF,UAAU,CAAc;IAEhC,sEAAsE;IACtE,mFAAmF;IAC3E,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,YAAY,MAAuB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,IAAkB,EAAE,OAAyB;QACzE,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEzD,gEAAgE;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;gBAChE,QAAQ,EAAE,OAAO,EAAE,QAAQ;aAC3B,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;YAED,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,UAAkB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,0EAA0E;YAC1E,uEAAuE;YACvE,uEAAuE;YACvE,6CAA6C;YAC7C,MAAM,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;gBACpE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;aACrC,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAChD,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD"}
1
+ {"version":3,"file":"expression-evaluator.js","sourceRoot":"","sources":["../../../src/evaluator/expression-evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare class LruCache<K, V> {
2
+ private readonly capacity;
3
+ private readonly onEvict?;
4
+ private map;
5
+ constructor(capacity: number, onEvict?: ((key: K, value: V) => void) | undefined);
6
+ get(key: K): V | undefined;
7
+ set(key: K, value: V): void;
8
+ get size(): number;
9
+ clear(): void;
10
+ }
11
+ //# sourceMappingURL=lru-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../../src/evaluator/lru-cache.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IAIxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAJ1B,OAAO,CAAC,GAAG,CAAmB;gBAGZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,GAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,aAAA;IAOtD,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAQ1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAU3B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;CAGb"}
@@ -0,0 +1,36 @@
1
+ export class LruCache {
2
+ capacity;
3
+ onEvict;
4
+ map = new Map();
5
+ constructor(capacity, onEvict) {
6
+ this.capacity = capacity;
7
+ this.onEvict = onEvict;
8
+ if (capacity < 1) {
9
+ throw new Error('LruCache capacity must be at least 1');
10
+ }
11
+ }
12
+ get(key) {
13
+ const value = this.map.get(key);
14
+ if (value === undefined)
15
+ return undefined;
16
+ this.map.delete(key);
17
+ this.map.set(key, value);
18
+ return value;
19
+ }
20
+ set(key, value) {
21
+ this.map.delete(key);
22
+ this.map.set(key, value);
23
+ if (this.map.size > this.capacity) {
24
+ const [oldestKey, oldestValue] = this.map.entries().next().value;
25
+ this.map.delete(oldestKey);
26
+ this.onEvict?.(oldestKey, oldestValue);
27
+ }
28
+ }
29
+ get size() {
30
+ return this.map.size;
31
+ }
32
+ clear() {
33
+ this.map.clear();
34
+ }
35
+ }
36
+ //# sourceMappingURL=lru-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.js","sourceRoot":"","sources":["../../../src/evaluator/lru-cache.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IAIF;IACA;IAJV,GAAG,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE9B,YACkB,QAAgB,EAChB,OAAoC;QADpC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAA6B;QAErD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;IACF,CAAC;IAED,GAAG,CAAC,GAAM;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QACnB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC;YAClE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/extensions/extend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAejD,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAO3C,CAAC;AAsEF;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAkC3E;AAED,wBAAgB,cAAc,CAC7B,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,GAElB,QAAQ,GAAG,SAAS,CAgBtB"}
1
+ {"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/extensions/extend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAejD,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAO3C,CAAC;AAuGF;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAkC3E;AAED,wBAAgB,cAAc,CAC7B,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,GAElB,QAAQ,GAAG,SAAS,CAgBtB"}
@@ -36,7 +36,36 @@ function isDate(input) {
36
36
  const d = new Date(input);
37
37
  return d instanceof Date && !isNaN(d.valueOf()) && d.toISOString() === input;
38
38
  }
39
+ /**
40
+ * Property names that must never be accessed via expression extensions.
41
+ * Matches the host-side blocklist in packages/workflow/src/utils.ts.
42
+ */
43
+ const UNSAFE_PROPERTY_NAMES = new Set([
44
+ '__proto__',
45
+ 'prototype',
46
+ 'constructor',
47
+ 'getPrototypeOf',
48
+ 'mainModule',
49
+ 'binding',
50
+ '_linkedBinding',
51
+ '_load',
52
+ 'prepareStackTrace',
53
+ '__lookupGetter__',
54
+ '__lookupSetter__',
55
+ '__defineGetter__',
56
+ '__defineSetter__',
57
+ 'caller',
58
+ 'arguments',
59
+ 'getBuiltinModule',
60
+ 'dlopen',
61
+ 'execve',
62
+ 'loadEnvFile',
63
+ ]);
39
64
  function findExtendedFunction(input, functionName) {
65
+ const name = typeof functionName === 'string' ? functionName : String(functionName);
66
+ if (UNSAFE_PROPERTY_NAMES.has(name)) {
67
+ throw new ExpressionExtensionError(`Cannot access "${name}" via expression extension due to security concerns`);
68
+ }
40
69
  // eslint-disable-next-line @typescript-eslint/no-restricted-types
41
70
  let foundFunction;
42
71
  if (Array.isArray(input)) {
@@ -1 +1 @@
1
- {"version":3,"file":"extend.js","sourceRoot":"","sources":["../../../src/extensions/extend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extend.js","sourceRoot":"","sources":["../../../src/extensions/extend.ts"],"names":[],"mappings":"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"}
@@ -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,CAgJhE"}
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/runtime/reset.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAwIxD"}
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,8 +1,15 @@
1
1
  import { DateTime, IANAZone, Settings } from 'luxon';
2
2
  import { extend, extendOptional } from '../extensions/extend';
3
3
  import { extendedFunctions } from '../extensions/function-extensions';
4
- import { __sanitize } from './safe-globals';
4
+ import { __sanitize, createSafeErrorSubclass, ExpressionError } from './safe-globals';
5
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);
6
13
  // ============================================================================
7
14
  // Reset Function for Data Proxies
8
15
  // ============================================================================
@@ -29,7 +36,15 @@ export function resetDataProxies(timezone) {
29
36
  globalThis.__data = {};
30
37
  // __sanitize must be on __data because PrototypeSanitizer generates:
31
38
  // obj[this.__sanitize(expr)] where 'this' is __data (via .call(__data) wrapping)
32
- globalThis.__data.__sanitize = __sanitize;
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
+ });
33
48
  // Verify callbacks are available
34
49
  // Note: ivm.Reference may not be typeof 'function', check for existence
35
50
  if (!globalThis.__getValueAtPath) {
@@ -139,6 +154,125 @@ export function resetDataProxies(timezone) {
139
154
  // pattern resolves them correctly when the VM checks __data first
140
155
  globalThis.__data.extend = extend;
141
156
  globalThis.__data.extendOptional = extendOptional;
142
- // TODO: Add other function properties as needed ($item, $vars, etc.)
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;
143
277
  }
144
278
  //# sourceMappingURL=reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/runtime/reset.ts"],"names":[],"mappings":"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"}
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,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"}
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
- * SafeError - Blocks stack manipulation methods
44
- *
45
- * Blocked properties:
46
- * - stackTraceLimit, captureStackTrace, prepareStackTrace: Prevent stack manipulation attacks
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
- // 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)) {
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":"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"}
1
+ {"version":3,"file":"safe-globals.js","sourceRoot":"","sources":["../../../src/runtime/safe-globals.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,10 @@ export interface EvaluatorConfig {
21
21
  * If omitted, expressions are transformed with no security hooks (dev/testing use).
22
22
  */
23
23
  hooks?: TournamentHooks;
24
+ /**
25
+ * Maximum number of tournament-transformed expressions to cache (LRU).
26
+ */
27
+ maxCodeCacheSize: number;
24
28
  }
25
29
  /**
26
30
  * Expression evaluator - main public API.
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IAErF;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE1E;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAExE;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,GAAG,IAAI,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/E;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAChE;AASD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGjC,OAAO,EAAE;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB;gBAND,OAAO,EAAE,MAAM,EACR,OAAO,EAAE;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB;CAKF;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;CAAG;AACxD,qBAAa,YAAa,SAAQ,eAAe;CAAG;AACpD,qBAAa,sBAAuB,SAAQ,eAAe;CAAG;AAC9D,qBAAa,WAAY,SAAQ,eAAe;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"AAiNA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,0DAA0D;AAC1D,wDAAwD;AACxD,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGjC;IAFR,YACC,OAAe,EACR,OAKN;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,YAAO,GAAP,OAAO,CAKb;QAGD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,eAAe;CAAG;AACxD,MAAM,OAAO,YAAa,SAAQ,eAAe;CAAG;AACpD,MAAM,OAAO,sBAAuB,SAAQ,eAAe;CAAG;AAC9D,MAAM,OAAO,WAAY,SAAQ,eAAe;CAAG"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"AAsNA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,0DAA0D;AAC1D,wDAAwD;AACxD,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGjC;IAFR,YACC,OAAe,EACR,OAKN;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,YAAO,GAAP,OAAO,CAKb;QAGD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,eAAe;CAAG;AACxD,MAAM,OAAO,YAAa,SAAQ,eAAe;CAAG;AACpD,MAAM,OAAO,sBAAuB,SAAQ,eAAe;CAAG;AAC9D,MAAM,OAAO,WAAY,SAAQ,eAAe;CAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/expression-runtime",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "Secure, isolated expression evaluation runtime for n8n",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",