n8n-workflow 1.118.0 → 1.118.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.
@@ -1 +1 @@
1
- {"version":3,"file":"expression-evaluator-proxy.d.ts","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;AAClF,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAS3C,eAAO,MAAM,eAAe,GAAI,SAAS,YAAY,SAEpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAEhC,CAAC"}
1
+ {"version":3,"file":"expression-evaluator-proxy.d.ts","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":"AAQA,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;AAClF,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAS3C,eAAO,MAAM,eAAe,GAAI,SAAS,YAAY,SAEpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAEhC,CAAC"}
@@ -14,7 +14,7 @@
14
14
  const expression_sandboxing_1 = require("./expression-sandboxing");
15
15
  const errorHandler = () => { };
16
16
  const tournamentEvaluator = new tournament_1.Tournament(errorHandler, undefined, undefined, {
17
- before: [],
17
+ before: [expression_sandboxing_1.FunctionThisSanitizer],
18
18
  after: [expression_sandboxing_1.PrototypeSanitizer, expression_sandboxing_1.DollarSignValidator],
19
19
  });
20
20
  const evaluator = tournamentEvaluator.execute.bind(tournamentEvaluator);
@@ -1 +1 @@
1
- {"version":3,"file":"expression-evaluator-proxy.js","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gDAA6C;IAE7C,mEAAkF;IAKlF,MAAM,YAAY,GAAiB,GAAG,EAAE,GAAE,CAAC,CAAC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,uBAAU,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;QAC9E,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,CAAC,0CAAkB,EAAE,2CAAmB,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,SAAS,GAAc,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE5E,MAAM,eAAe,GAAG,CAAC,OAAqB,EAAE,EAAE;QACxD,mBAAmB,CAAC,YAAY,GAAG,OAAO,CAAC;IAC5C,CAAC,CAAC;IAFW,QAAA,eAAe,mBAE1B;IAEK,MAAM,kBAAkB,GAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3D,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAFW,QAAA,kBAAkB,sBAE7B"}
1
+ {"version":3,"file":"expression-evaluator-proxy.js","sourceRoot":"","sources":["../../src/expression-evaluator-proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gDAA6C;IAE7C,mEAIiC;IAKjC,MAAM,YAAY,GAAiB,GAAG,EAAE,GAAE,CAAC,CAAC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,uBAAU,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;QAC9E,MAAM,EAAE,CAAC,6CAAqB,CAAC;QAC/B,KAAK,EAAE,CAAC,0CAAkB,EAAE,2CAAmB,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,SAAS,GAAc,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE5E,MAAM,eAAe,GAAG,CAAC,OAAqB,EAAE,EAAE;QACxD,mBAAmB,CAAC,YAAY,GAAG,OAAO,CAAC;IAC5C,CAAC,CAAC;IAFW,QAAA,eAAe,mBAE1B;IAEK,MAAM,kBAAkB,GAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3D,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAFW,QAAA,kBAAkB,sBAE7B"}
@@ -1,6 +1,10 @@
1
- import { type ASTAfterHook } from '@n8n/tournament';
1
+ import { type ASTAfterHook, type ASTBeforeHook } from '@n8n/tournament';
2
2
  export declare const sanitizerName = "__sanitize";
3
3
  export declare const DOLLAR_SIGN_ERROR = "Cannot access \"$\" without calling it as a function";
4
+ /**
5
+ * Prevents regular functions from binding their `this` to the Node.js global.
6
+ */
7
+ export declare const FunctionThisSanitizer: ASTBeforeHook;
4
8
  /**
5
9
  * Validates that the $ identifier is only used in allowed contexts.
6
10
  * This prevents user errors like `{{ $ }}` which would return the function object itself.
@@ -1 +1 @@
1
- {"version":3,"file":"expression-sandboxing.d.ts","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA8B,MAAM,iBAAiB,CAAC;AAKhF,eAAO,MAAM,aAAa,eAAe,CAAC;AAG1C,eAAO,MAAM,iBAAiB,yDAAuD,CAAC;AA2CtF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAsDjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YA0ChC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,OAK1C,CAAC"}
1
+ {"version":3,"file":"expression-sandboxing.d.ts","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAA8B,MAAM,iBAAiB,CAAC;AAKpG,eAAO,MAAM,aAAa,eAAe,CAAC;AAG1C,eAAO,MAAM,iBAAiB,yDAAuD,CAAC;AA+CtF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,aA0DnC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAsDjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YA0ChC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,OAK1C,CAAC"}
@@ -9,13 +9,16 @@
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.sanitizer = exports.PrototypeSanitizer = exports.DollarSignValidator = exports.DOLLAR_SIGN_ERROR = exports.sanitizerName = void 0;
12
+ exports.sanitizer = exports.PrototypeSanitizer = exports.DollarSignValidator = exports.FunctionThisSanitizer = exports.DOLLAR_SIGN_ERROR = exports.sanitizerName = void 0;
13
13
  const tournament_1 = require("@n8n/tournament");
14
14
  const errors_1 = require("./errors");
15
15
  const utils_1 = require("./utils");
16
16
  exports.sanitizerName = '__sanitize';
17
17
  const sanitizerIdentifier = tournament_1.astBuilders.identifier(exports.sanitizerName);
18
18
  exports.DOLLAR_SIGN_ERROR = 'Cannot access "$" without calling it as a function';
19
+ const EMPTY_CONTEXT = tournament_1.astBuilders.objectExpression([
20
+ tournament_1.astBuilders.property('init', tournament_1.astBuilders.identifier('process'), tournament_1.astBuilders.objectExpression([])),
21
+ ]);
19
22
  /**
20
23
  * Helper to check if an expression is a valid property access with $ as the property.
21
24
  * Returns true for obj.$ or obj.nested.$ but false for bare $ or other expression contexts.
@@ -46,6 +49,61 @@
46
49
  (object.type === 'Identifier' || object.type === 'MemberExpression');
47
50
  return isPropertyDollar && !isObjectDollar && isObjectValid;
48
51
  };
52
+ /**
53
+ * Prevents regular functions from binding their `this` to the Node.js global.
54
+ */
55
+ const FunctionThisSanitizer = (ast, dataNode) => {
56
+ (0, tournament_1.astVisit)(ast, {
57
+ visitCallExpression(path) {
58
+ const { node } = path;
59
+ if (node.callee.type !== 'FunctionExpression') {
60
+ this.traverse(path);
61
+ return;
62
+ }
63
+ const fnExpression = node.callee;
64
+ /**
65
+ * Called function expressions (IIFEs) - both anonymous and named:
66
+ *
67
+ * ```js
68
+ * (function(x) { return x * 2; })(5)
69
+ * (function factorial(n) { return n <= 1 ? 1 : n * factorial(n-1); })(5)
70
+ *
71
+ * // become
72
+ *
73
+ * (function(x) { return x * 2; }).call({ process: {} }, 5)
74
+ * (function factorial(n) { return n <= 1 ? 1 : n * factorial(n-1); }).call({ process: {} }, 5)
75
+ * ```
76
+ */
77
+ this.traverse(path); // depth first to transform inside out
78
+ const callExpression = tournament_1.astBuilders.callExpression(tournament_1.astBuilders.memberExpression(fnExpression, tournament_1.astBuilders.identifier('call')), [EMPTY_CONTEXT, ...node.arguments]);
79
+ path.replace(callExpression);
80
+ return false;
81
+ },
82
+ visitFunctionExpression(path) {
83
+ const { node } = path;
84
+ /**
85
+ * Callable function expressions (callbacks) - both anonymous and named:
86
+ *
87
+ * ```js
88
+ * [1, 2, 3].map(function(n) { return n * 2; })
89
+ * [1, 2, 3].map(function factorial(n) { return n <= 1 ? 1 : n * factorial(n-1); })
90
+ *
91
+ * // become
92
+ *
93
+ * [1, 2, 3].map((function(n) { return n * 2; }).bind({ process: {} }))
94
+ * [1, 2, 3].map((function factorial(n) { return n <= 1 ? 1 : n * factorial(n-1); }).bind({ process: {} }))
95
+ * ```
96
+ */
97
+ this.traverse(path);
98
+ const boundFunction = tournament_1.astBuilders.callExpression(tournament_1.astBuilders.memberExpression(node, tournament_1.astBuilders.identifier('bind')), [
99
+ EMPTY_CONTEXT,
100
+ ]);
101
+ path.replace(boundFunction);
102
+ return false;
103
+ },
104
+ });
105
+ };
106
+ exports.FunctionThisSanitizer = FunctionThisSanitizer;
49
107
  /**
50
108
  * Validates that the $ identifier is only used in allowed contexts.
51
109
  * This prevents user errors like `{{ $ }}` which would return the function object itself.
@@ -1 +1 @@
1
- {"version":3,"file":"expression-sandboxing.js","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression-sandboxing.js","sourceRoot":"","sources":["../../src/expression-sandboxing.ts"],"names":[],"mappings":"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"}