@n8n/backend-common 0.10.0 → 0.11.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/build.tsbuildinfo +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/module-registry.js +7 -12
- package/dist/modules/module-registry.js.map +1 -1
- package/dist/utils/path-util.d.ts +2 -0
- package/dist/utils/path-util.js +55 -0
- package/dist/utils/path-util.js.map +1 -0
- package/package.json +9 -9
package/dist/index.d.ts
CHANGED
|
@@ -5,3 +5,4 @@ export { isObjectLiteral } from './utils/is-object-literal';
|
|
|
5
5
|
export { Logger } from './logging/logger';
|
|
6
6
|
export { ModuleRegistry } from './modules/module-registry';
|
|
7
7
|
export { ModulesConfig, ModuleName } from './modules/modules.config';
|
|
8
|
+
export { isContainedWithin, safeJoinPath } from './utils/path-util';
|
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.ModulesConfig = exports.ModuleRegistry = exports.Logger = exports.isObjectLiteral = exports.inTest = exports.inProduction = exports.inDevelopment = void 0;
|
|
17
|
+
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
|
__exportStar(require("./types"), exports);
|
|
20
20
|
var environment_1 = require("./environment");
|
|
@@ -29,4 +29,7 @@ var module_registry_1 = require("./modules/module-registry");
|
|
|
29
29
|
Object.defineProperty(exports, "ModuleRegistry", { enumerable: true, get: function () { return module_registry_1.ModuleRegistry; } });
|
|
30
30
|
var modules_config_1 = require("./modules/modules.config");
|
|
31
31
|
Object.defineProperty(exports, "ModulesConfig", { enumerable: true, get: function () { return modules_config_1.ModulesConfig; } });
|
|
32
|
+
var path_util_1 = require("./utils/path-util");
|
|
33
|
+
Object.defineProperty(exports, "isContainedWithin", { enumerable: true, get: function () { return path_util_1.isContainedWithin; } });
|
|
34
|
+
Object.defineProperty(exports, "safeJoinPath", { enumerable: true, get: function () { return path_util_1.safeJoinPath; } });
|
|
32
35
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,0CAAwB;AAExB,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;AACvB,2DAAqE;AAA5D,+GAAA,aAAa,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,0CAAwB;AAExB,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;AACvB,2DAAqE;AAA5D,+GAAA,aAAa,OAAA;AACtB,+CAAoE;AAA3D,8GAAA,iBAAiB,OAAA;AAAE,yGAAA,YAAY,OAAA"}
|
|
@@ -74,20 +74,15 @@ let ModuleRegistry = class ModuleRegistry {
|
|
|
74
74
|
return defaultPlusEnabled.filter((m) => !disabledModules.includes(m));
|
|
75
75
|
}
|
|
76
76
|
async loadModules(modules) {
|
|
77
|
-
const moduleDir = process.env.NODE_ENV === 'test' ? 'src' : 'dist';
|
|
78
77
|
let modulesDir;
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
try {
|
|
79
|
+
const n8nPackagePath = require.resolve('n8n/package.json');
|
|
80
|
+
const n8nRoot = path_1.default.dirname(n8nPackagePath);
|
|
81
|
+
const dir = process.env.NODE_ENV === 'test' ? 'src' : 'dist';
|
|
82
|
+
modulesDir = path_1.default.join(n8nRoot, dir, 'modules');
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const n8nPackagePath = require.resolve('n8n/package.json');
|
|
85
|
-
const n8nRoot = path_1.default.dirname(n8nPackagePath);
|
|
86
|
-
modulesDir = path_1.default.join(n8nRoot, moduleDir, 'modules');
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
modulesDir = path_1.default.resolve(__dirname, `../../../../cli/${moduleDir}/modules`);
|
|
90
|
-
}
|
|
84
|
+
catch {
|
|
85
|
+
modulesDir = path_1.default.resolve(__dirname, '../../../../cli/dist/modules');
|
|
91
86
|
}
|
|
92
87
|
for (const moduleName of modules ?? this.eligibleModules) {
|
|
93
88
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/modules/module-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAiD;AAEjD,gCAA6C;AAC7C,gDAAwB;AAExB,wEAAmE;AACnE,4EAAuE;AACvE,qDAAiD;AAEjD,oDAAgD;AAChD,8CAA2C;AAGpC,IAAM,cAAc,GAApB,MAAM,cAAc;IAK1B,YACkB,cAA8B,EAC9B,YAA0B,EAC1B,MAAc,EACd,aAA4B;QAH5B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAQ;QACd,kBAAa,GAAb,aAAa,CAAe;QARrC,aAAQ,GAAkB,EAAE,CAAC;QAE7B,aAAQ,GAAgC,IAAI,GAAG,EAAE,CAAC;QAS1C,mBAAc,GAAiB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAEhE,kBAAa,GAAa,EAAE,CAAC;IAJ3C,CAAC;IAMJ,IAAI,eAAe;QAClB,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAE/D,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,6CAAoB,CAAC,YAAY,CAAC,CAAC;QAE1E,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAErF,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAUD,KAAK,CAAC,WAAW,CAAC,OAAsB;QACvC,
|
|
1
|
+
{"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/modules/module-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.isContainedWithin = isContainedWithin;
|
|
37
|
+
exports.safeJoinPath = safeJoinPath;
|
|
38
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
39
|
+
const path = __importStar(require("node:path"));
|
|
40
|
+
function isContainedWithin(parentPath, childPath) {
|
|
41
|
+
parentPath = path.resolve(parentPath);
|
|
42
|
+
childPath = path.resolve(childPath);
|
|
43
|
+
if (parentPath === childPath) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return childPath.startsWith(parentPath + path.sep);
|
|
47
|
+
}
|
|
48
|
+
function safeJoinPath(parentPath, ...paths) {
|
|
49
|
+
const candidate = path.join(parentPath, ...paths);
|
|
50
|
+
if (!isContainedWithin(parentPath, candidate)) {
|
|
51
|
+
throw new n8n_workflow_1.UnexpectedError(`Path traversal detected, refusing to join paths: ${parentPath} and ${JSON.stringify(paths)}`);
|
|
52
|
+
}
|
|
53
|
+
return candidate;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=path-util.js.map
|
|
@@ -0,0 +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"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/backend-common",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
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
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"LICENSE_EE.md",
|
|
10
|
+
"LICENSE.md"
|
|
11
11
|
],
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"callsites": "3.1.0",
|
|
14
14
|
"picocolors": "1.0.1",
|
|
15
15
|
"reflect-metadata": "0.2.2",
|
|
16
16
|
"winston": "3.14.2",
|
|
17
|
-
"@n8n/config": "^1.
|
|
18
|
-
"@n8n/
|
|
19
|
-
"n8n
|
|
20
|
-
"
|
|
21
|
-
"@n8n/
|
|
17
|
+
"@n8n/config": "^1.44.0",
|
|
18
|
+
"@n8n/constants": "^0.8.0",
|
|
19
|
+
"@n8n/decorators": "^0.11.0",
|
|
20
|
+
"n8n-workflow": "^1.98.0",
|
|
21
|
+
"@n8n/di": "^0.7.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@n8n/typescript-config": "1.2.0"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"build": "tsc -p tsconfig.build.json",
|
|
41
41
|
"format": "biome format --write .",
|
|
42
42
|
"format:check": "biome ci .",
|
|
43
|
-
"lint": "eslint .",
|
|
43
|
+
"lint": "eslint . --quiet",
|
|
44
44
|
"lintfix": "eslint . --fix",
|
|
45
45
|
"watch": "tsc -p tsconfig.build.json --watch",
|
|
46
46
|
"test": "jest",
|