@n8n/backend-common 1.29.5 → 1.29.7

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/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { Logger } from './logging/logger';
6
6
  export { ModuleRegistry } from './modules/module-registry';
7
7
  export type { ModuleName } from './modules/modules.config';
8
8
  export { ModulesConfig } from './modules/modules.config';
9
- export { isContainedWithin, safeJoinPath } from './utils/path-util';
9
+ export { isContainedWithin, safeJoinPath, pathComponents, pathSegmentsBetween, containsSymlinkedComponent, } from './utils/path-util';
10
10
  export { assertDir, exists } from './utils/fs';
11
11
  export { parseFlatted } from './utils/parse-flatted';
12
12
  export { CliParser } from './cli-parser';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.LockAcquisitionTimeoutError = exports.LockNamespace = exports.LockService = exports.TypedEmitter = exports.CliParser = exports.parseFlatted = exports.exists = exports.assertDir = exports.safeJoinPath = exports.isContainedWithin = exports.ModulesConfig = exports.ModuleRegistry = exports.Logger = exports.isObjectLiteral = exports.inTest = exports.inProduction = exports.inDevelopment = void 0;
17
+ exports.LockAcquisitionTimeoutError = exports.LockNamespace = exports.LockService = exports.TypedEmitter = exports.CliParser = exports.parseFlatted = exports.exists = exports.assertDir = exports.containsSymlinkedComponent = exports.pathSegmentsBetween = exports.pathComponents = exports.safeJoinPath = exports.isContainedWithin = exports.ModulesConfig = exports.ModuleRegistry = exports.Logger = exports.isObjectLiteral = exports.inTest = exports.inProduction = exports.inDevelopment = void 0;
18
18
  __exportStar(require("./license-state"), exports);
19
19
  var environment_1 = require("./environment");
20
20
  Object.defineProperty(exports, "inDevelopment", { enumerable: true, get: function () { return environment_1.inDevelopment; } });
@@ -31,6 +31,9 @@ Object.defineProperty(exports, "ModulesConfig", { enumerable: true, get: functio
31
31
  var path_util_1 = require("./utils/path-util");
32
32
  Object.defineProperty(exports, "isContainedWithin", { enumerable: true, get: function () { return path_util_1.isContainedWithin; } });
33
33
  Object.defineProperty(exports, "safeJoinPath", { enumerable: true, get: function () { return path_util_1.safeJoinPath; } });
34
+ Object.defineProperty(exports, "pathComponents", { enumerable: true, get: function () { return path_util_1.pathComponents; } });
35
+ Object.defineProperty(exports, "pathSegmentsBetween", { enumerable: true, get: function () { return path_util_1.pathSegmentsBetween; } });
36
+ Object.defineProperty(exports, "containsSymlinkedComponent", { enumerable: true, get: function () { return path_util_1.containsSymlinkedComponent; } });
34
37
  var fs_1 = require("./utils/fs");
35
38
  Object.defineProperty(exports, "assertDir", { enumerable: true, get: function () { return fs_1.assertDir; } });
36
39
  Object.defineProperty(exports, "exists", { enumerable: true, get: function () { return fs_1.exists; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAAgC;AAGhC,6CAAoE;AAA3D,4GAAA,aAAa,OAAA;AAAE,2GAAA,YAAY,OAAA;AAAE,qGAAA,MAAM,OAAA;AAC5C,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AAEvB,2DAAyD;AAAhD,+GAAA,aAAa,OAAA;AACtB,+CAAoE;AAA3D,8GAAA,iBAAiB,OAAA;AAAE,yGAAA,YAAY,OAAA;AACxC,iCAA+C;AAAtC,+FAAA,SAAS,OAAA;AAAE,4FAAA,MAAM,OAAA;AAC1B,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AACrB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AACpB,2EAI0C;AAFzC,uHAAA,aAAa,OAAA;AACb,qIAAA,2BAA2B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAAgC;AAGhC,6CAAoE;AAA3D,4GAAA,aAAa,OAAA;AAAE,2GAAA,YAAY,OAAA;AAAE,qGAAA,MAAM,OAAA;AAC5C,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AAEvB,2DAAyD;AAAhD,+GAAA,aAAa,OAAA;AACtB,+CAM2B;AAL1B,8GAAA,iBAAiB,OAAA;AACjB,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AACd,gHAAA,mBAAmB,OAAA;AACnB,uHAAA,0BAA0B,OAAA;AAE3B,iCAA+C;AAAtC,+FAAA,SAAS,OAAA;AAAE,4FAAA,MAAM,OAAA;AAC1B,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AACrB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AACpB,2EAI0C;AAFzC,uHAAA,aAAa,OAAA;AACb,qIAAA,2BAA2B,OAAA"}
@@ -1,2 +1,5 @@
1
1
  export declare function isContainedWithin(parentPath: string, childPath: string): boolean;
2
2
  export declare function safeJoinPath(parentPath: string, ...paths: string[]): string;
3
+ export declare function pathComponents(targetPath: string): string[];
4
+ export declare function pathSegmentsBetween(ancestor: string, descendant: string): string[] | null;
5
+ export declare function containsSymlinkedComponent(resolvedPath: string): Promise<boolean>;
@@ -35,7 +35,11 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.isContainedWithin = isContainedWithin;
37
37
  exports.safeJoinPath = safeJoinPath;
38
+ exports.pathComponents = pathComponents;
39
+ exports.pathSegmentsBetween = pathSegmentsBetween;
40
+ exports.containsSymlinkedComponent = containsSymlinkedComponent;
38
41
  const n8n_workflow_1 = require("n8n-workflow");
42
+ const promises_1 = require("node:fs/promises");
39
43
  const path = __importStar(require("node:path"));
40
44
  function isContainedWithin(parentPath, childPath) {
41
45
  parentPath = path.resolve(parentPath);
@@ -52,4 +56,36 @@ function safeJoinPath(parentPath, ...paths) {
52
56
  }
53
57
  return candidate;
54
58
  }
59
+ function pathComponents(targetPath) {
60
+ const root = path.parse(targetPath).root;
61
+ const segments = targetPath.slice(root.length).split(path.sep).filter(Boolean);
62
+ return segments.reduce((components, segment) => [...components, path.join(components.at(-1) ?? root, segment)], []);
63
+ }
64
+ function pathSegmentsBetween(ancestor, descendant) {
65
+ if (!isContainedWithin(ancestor, descendant)) {
66
+ return null;
67
+ }
68
+ const relative = path.relative(ancestor, descendant);
69
+ return relative.split(path.sep).filter(Boolean);
70
+ }
71
+ async function containsSymlinkedComponent(resolvedPath) {
72
+ for (const component of pathComponents(resolvedPath)) {
73
+ let stats;
74
+ try {
75
+ stats = await (0, promises_1.lstat)(component);
76
+ }
77
+ catch (error) {
78
+ if (error instanceof Error &&
79
+ 'code' in error &&
80
+ (error.code === 'ENOENT' || error.code === 'ENOTDIR')) {
81
+ continue;
82
+ }
83
+ throw error;
84
+ }
85
+ if (stats.isSymbolicLink()) {
86
+ return true;
87
+ }
88
+ }
89
+ return false;
90
+ }
55
91
  //# sourceMappingURL=path-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-util.js","sourceRoot":"","sources":["../../src/utils/path-util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,8CASC;AASD,oCAUC;AAnCD,+CAA+C;AAC/C,gDAAkC;AAMlC,SAAgB,iBAAiB,CAAC,UAAkB,EAAE,SAAiB;IACtE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,SAAS,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AASD,SAAgB,YAAY,CAAC,UAAkB,EAAE,GAAG,KAAe;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;IAElD,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,8BAAe,CACxB,oDAAoD,UAAU,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"path-util.js","sourceRoot":"","sources":["../../src/utils/path-util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,8CASC;AASD,oCAUC;AAGD,wCASC;AAMD,kDAMC;AAED,gEAoBC;AAlFD,+CAA+C;AAC/C,+CAAyC;AACzC,gDAAkC;AAMlC,SAAgB,iBAAiB,CAAC,UAAkB,EAAE,SAAiB;IACtE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,SAAS,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AASD,SAAgB,YAAY,CAAC,UAAkB,EAAE,GAAG,KAAe;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;IAElD,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,8BAAe,CACxB,oDAAoD,UAAU,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAGD,SAAgB,cAAc,CAAC,UAAkB;IAGhD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/E,OAAO,QAAQ,CAAC,MAAM,CACrB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC,EACvF,EAAE,CACF,CAAC;AACH,CAAC;AAMD,SAAgB,mBAAmB,CAAC,QAAgB,EAAE,UAAkB;IACvE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAAC,YAAoB;IACpE,KAAK,MAAM,SAAS,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACJ,KAAK,GAAG,MAAM,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IACC,KAAK,YAAY,KAAK;gBACtB,MAAM,IAAI,KAAK;gBACf,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EACpD,CAAC;gBACF,SAAS;YACV,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@n8n/backend-common",
3
- "version": "1.29.5",
3
+ "version": "1.29.7",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist/**/*",
9
- "LICENSE_EE.md",
10
- "LICENSE.md"
9
+ "LICENSE.md",
10
+ "LICENSE_EE.md"
11
11
  ],
12
12
  "dependencies": {
13
13
  "callsites": "3.1.0",
@@ -18,11 +18,11 @@
18
18
  "reflect-metadata": "0.2.2",
19
19
  "winston": "3.14.2",
20
20
  "yargs-parser": "21.1.1",
21
+ "@n8n/config": "2.27.3",
22
+ "@n8n/decorators": "1.29.6",
21
23
  "@n8n/constants": "0.29.0",
22
- "@n8n/config": "2.27.2",
23
- "n8n-workflow": "2.29.2",
24
- "@n8n/decorators": "1.29.4",
25
- "@n8n/di": "0.14.0"
24
+ "@n8n/di": "0.14.0",
25
+ "n8n-workflow": "2.29.3"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/stream-json": "1.7.8",
@@ -31,8 +31,8 @@
31
31
  "vitest": "^4.1.9",
32
32
  "vitest-mock-extended": "^3.1.0",
33
33
  "zod": "3.25.67",
34
- "@n8n/vitest-config": "1.16.0",
35
- "@n8n/typescript-config": "1.7.0"
34
+ "@n8n/typescript-config": "1.7.0",
35
+ "@n8n/vitest-config": "1.16.0"
36
36
  },
37
37
  "license": "SEE LICENSE IN LICENSE.md",
38
38
  "homepage": "https://n8n.io",