n8n-core 0.143.1 → 0.145.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.
package/bin/common.js ADDED
@@ -0,0 +1,19 @@
1
+ const path = require('path');
2
+ const { mkdir, writeFile } = require('fs/promises');
3
+
4
+ const packageDir = process.cwd();
5
+ const distDir = path.join(packageDir, 'dist');
6
+
7
+ const writeJSON = async (file, data) => {
8
+ const filePath = path.resolve(distDir, file);
9
+ await mkdir(path.dirname(filePath), { recursive: true });
10
+ const payload = Array.isArray(data)
11
+ ? `[\n${data.map((entry) => JSON.stringify(entry)).join(',\n')}\n]`
12
+ : JSON.stringify(data, null, 2);
13
+ await writeFile(filePath, payload, { encoding: 'utf-8' });
14
+ };
15
+
16
+ module.exports = {
17
+ packageDir,
18
+ writeJSON,
19
+ };
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env node
2
+
3
+ const path = require('path');
4
+ const glob = require('fast-glob');
5
+ const { LoggerProxy } = require('n8n-workflow');
6
+ const { packageDir, writeJSON } = require('./common');
7
+ const { loadClassInIsolation } = require('../dist/ClassLoader');
8
+
9
+ LoggerProxy.init({
10
+ log: console.log.bind(console),
11
+ warn: console.warn.bind(console),
12
+ });
13
+
14
+ const loadClass = (sourcePath) => {
15
+ try {
16
+ const [className] = path.parse(sourcePath).name.split('.');
17
+ const filePath = path.resolve(packageDir, sourcePath);
18
+ const instance = loadClassInIsolation(filePath, className);
19
+ return { instance, sourcePath, className };
20
+ } catch (e) {
21
+ LoggerProxy.warn(`Failed to load ${sourcePath}: ${e.message}`);
22
+ }
23
+ };
24
+
25
+ const nodesToTestWith = {};
26
+
27
+ const generate = async (kind) => {
28
+ const data = glob
29
+ .sync(`dist/${kind}/**/*.${kind === 'nodes' ? 'node' : kind}.js`, {
30
+ cwd: packageDir,
31
+ })
32
+ .filter((filePath) => !/[vV]\d.node\.js$/.test(filePath))
33
+ .map(loadClass)
34
+ .filter((data) => !!data)
35
+ .reduce((obj, { className, sourcePath, instance }) => {
36
+ const name = kind === 'nodes' ? instance.description.name : instance.name;
37
+ if (name in obj) console.error('already loaded', kind, name, sourcePath);
38
+ else obj[name] = { className, sourcePath };
39
+
40
+ if (kind === 'nodes') {
41
+ const { credentials } = instance.description;
42
+ if (credentials && credentials.length) {
43
+ for (const credential of credentials) {
44
+ nodesToTestWith[credential.name] = nodesToTestWith[credential.name] || [];
45
+ nodesToTestWith[credential.name].push(name);
46
+ }
47
+ }
48
+ } else {
49
+ if (name in nodesToTestWith) {
50
+ obj[name].nodesToTestWith = nodesToTestWith[name];
51
+ }
52
+ }
53
+ return obj;
54
+ }, {});
55
+ LoggerProxy.info(`Detected ${Object.keys(data).length} ${kind}`);
56
+ await writeJSON(`known/${kind}.json`, data);
57
+ return data;
58
+ };
59
+
60
+ (async () => {
61
+ await generate('nodes');
62
+ await generate('credentials');
63
+ })();
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { LoggerProxy, NodeHelpers } = require('n8n-workflow');
4
+ const { PackageDirectoryLoader } = require('../dist/DirectoryLoader');
5
+ const { packageDir, writeJSON } = require('./common');
6
+
7
+ LoggerProxy.init({
8
+ log: console.log.bind(console),
9
+ warn: console.warn.bind(console),
10
+ });
11
+
12
+ (async () => {
13
+ const loader = new PackageDirectoryLoader(packageDir);
14
+ await loader.loadAll();
15
+
16
+ const credentialTypes = Object.values(loader.credentialTypes).map((data) => data.type);
17
+
18
+ const nodeTypes = Object.values(loader.nodeTypes)
19
+ .map((data) => {
20
+ const nodeType = NodeHelpers.getVersionedNodeType(data.type);
21
+ const applyParameters = NodeHelpers.getSpecialNodeParameters(nodeType);
22
+ if (applyParameters.length) {
23
+ nodeType.description.properties.unshift(...applyParameters);
24
+ }
25
+ return data.type;
26
+ })
27
+ .flatMap((nodeData) => {
28
+ const allNodeTypes = NodeHelpers.getVersionedNodeTypeAll(nodeData);
29
+ return allNodeTypes.map((element) => element.description);
30
+ });
31
+
32
+ await Promise.all([
33
+ writeJSON('types/credentials.json', credentialTypes),
34
+ writeJSON('types/nodes.json', nodeTypes),
35
+ ]);
36
+ })();
@@ -1,13 +1,19 @@
1
1
  /// <reference types="node" />
2
- import { IBinaryDataConfig, IBinaryDataManager } from '../Interfaces';
2
+ import { BinaryMetadata, IBinaryDataConfig, IBinaryDataManager } from '../Interfaces';
3
3
  export declare class BinaryDataFileSystem implements IBinaryDataManager {
4
4
  private storagePath;
5
5
  private binaryDataTTL;
6
6
  private persistedBinaryDataTTL;
7
7
  constructor(config: IBinaryDataConfig);
8
8
  init(startPurger?: boolean): Promise<void>;
9
+ getFileSize(identifier: string): Promise<number>;
10
+ copyBinaryFile(filePath: string, executionId: string): Promise<string>;
11
+ storeBinaryMetadata(identifier: string, metadata: BinaryMetadata): Promise<void>;
12
+ getBinaryMetadata(identifier: string): Promise<BinaryMetadata>;
9
13
  storeBinaryData(binaryBuffer: Buffer, executionId: string): Promise<string>;
10
14
  retrieveBinaryDataByIdentifier(identifier: string): Promise<Buffer>;
15
+ getBinaryPath(identifier: string): string;
16
+ getMetadataPath(identifier: string): string;
11
17
  markDataForDeletionByExecutionId(executionId: string): Promise<void>;
12
18
  deleteMarkedFiles(): Promise<void>;
13
19
  deleteMarkedPersistedFiles(): Promise<void>;
@@ -22,6 +28,7 @@ export declare class BinaryDataFileSystem implements IBinaryDataManager {
22
28
  private getBinaryDataPersistMetaPath;
23
29
  private deleteMetaFileByPath;
24
30
  private deleteFromLocalStorage;
31
+ private copyFileToLocalStorage;
25
32
  private saveToLocalStorage;
26
33
  private retrieveFromLocalStorage;
27
34
  }
@@ -4,7 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BinaryDataFileSystem = void 0;
7
- const fs_1 = require("fs");
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const n8n_workflow_1 = require("n8n-workflow");
8
9
  const path_1 = __importDefault(require("path"));
9
10
  const uuid_1 = require("uuid");
10
11
  const PREFIX_METAFILE = 'binarymeta';
@@ -24,27 +25,53 @@ class BinaryDataFileSystem {
24
25
  await this.deleteMarkedPersistedFiles();
25
26
  }, this.persistedBinaryDataTTL * 30000);
26
27
  }
27
- return fs_1.promises
28
+ return promises_1.default
28
29
  .readdir(this.storagePath)
29
- .catch(async () => fs_1.promises.mkdir(this.storagePath, { recursive: true }))
30
- .then(async () => fs_1.promises.readdir(this.getBinaryDataMetaPath()))
31
- .catch(async () => fs_1.promises.mkdir(this.getBinaryDataMetaPath(), { recursive: true }))
32
- .then(async () => fs_1.promises.readdir(this.getBinaryDataPersistMetaPath()))
33
- .catch(async () => fs_1.promises.mkdir(this.getBinaryDataPersistMetaPath(), { recursive: true }))
30
+ .catch(async () => promises_1.default.mkdir(this.storagePath, { recursive: true }))
31
+ .then(async () => promises_1.default.readdir(this.getBinaryDataMetaPath()))
32
+ .catch(async () => promises_1.default.mkdir(this.getBinaryDataMetaPath(), { recursive: true }))
33
+ .then(async () => promises_1.default.readdir(this.getBinaryDataPersistMetaPath()))
34
+ .catch(async () => promises_1.default.mkdir(this.getBinaryDataPersistMetaPath(), { recursive: true }))
34
35
  .then(async () => this.deleteMarkedFiles())
35
36
  .then(async () => this.deleteMarkedPersistedFiles())
36
37
  .then(() => { });
37
38
  }
39
+ async getFileSize(identifier) {
40
+ const stats = await promises_1.default.stat(this.getBinaryPath(identifier));
41
+ return stats.size;
42
+ }
43
+ async copyBinaryFile(filePath, executionId) {
44
+ const binaryDataId = this.generateFileName(executionId);
45
+ await this.addBinaryIdToPersistMeta(executionId, binaryDataId);
46
+ await this.copyFileToLocalStorage(filePath, binaryDataId);
47
+ return binaryDataId;
48
+ }
49
+ async storeBinaryMetadata(identifier, metadata) {
50
+ await promises_1.default.writeFile(this.getMetadataPath(identifier), JSON.stringify(metadata), {
51
+ encoding: 'utf-8',
52
+ });
53
+ }
54
+ async getBinaryMetadata(identifier) {
55
+ return (0, n8n_workflow_1.jsonParse)(await promises_1.default.readFile(this.getMetadataPath(identifier), { encoding: 'utf-8' }));
56
+ }
38
57
  async storeBinaryData(binaryBuffer, executionId) {
39
58
  const binaryDataId = this.generateFileName(executionId);
40
- return this.addBinaryIdToPersistMeta(executionId, binaryDataId).then(async () => this.saveToLocalStorage(binaryBuffer, binaryDataId).then(() => binaryDataId));
59
+ await this.addBinaryIdToPersistMeta(executionId, binaryDataId);
60
+ await this.saveToLocalStorage(binaryBuffer, binaryDataId);
61
+ return binaryDataId;
41
62
  }
42
63
  async retrieveBinaryDataByIdentifier(identifier) {
43
64
  return this.retrieveFromLocalStorage(identifier);
44
65
  }
66
+ getBinaryPath(identifier) {
67
+ return path_1.default.join(this.storagePath, identifier);
68
+ }
69
+ getMetadataPath(identifier) {
70
+ return path_1.default.join(this.storagePath, `${identifier}.metadata`);
71
+ }
45
72
  async markDataForDeletionByExecutionId(executionId) {
46
73
  const tt = new Date(new Date().getTime() + this.binaryDataTTL * 60000);
47
- return fs_1.promises.writeFile(path_1.default.join(this.getBinaryDataMetaPath(), `${PREFIX_METAFILE}_${executionId}_${tt.valueOf()}`), '');
74
+ return promises_1.default.writeFile(path_1.default.join(this.getBinaryDataMetaPath(), `${PREFIX_METAFILE}_${executionId}_${tt.valueOf()}`), '');
48
75
  }
49
76
  async deleteMarkedFiles() {
50
77
  return this.deleteMarkedFilesByMeta(this.getBinaryDataMetaPath(), PREFIX_METAFILE);
@@ -57,14 +84,14 @@ class BinaryDataFileSystem {
57
84
  const timeAtNextHour = currentTime + 3600000 - (currentTime % 3600000);
58
85
  const timeoutTime = timeAtNextHour + this.persistedBinaryDataTTL * 60000;
59
86
  const filePath = path_1.default.join(this.getBinaryDataPersistMetaPath(), `${PREFIX_PERSISTED_METAFILE}_${executionId}_${timeoutTime}`);
60
- return fs_1.promises
87
+ return promises_1.default
61
88
  .readFile(filePath)
62
- .catch(async () => fs_1.promises.writeFile(filePath, identifier))
89
+ .catch(async () => promises_1.default.writeFile(filePath, identifier))
63
90
  .then(() => { });
64
91
  }
65
92
  async deleteMarkedFilesByMeta(metaPath, filePrefix) {
66
93
  const currentTimeValue = new Date().valueOf();
67
- const metaFileNames = await fs_1.promises.readdir(metaPath);
94
+ const metaFileNames = await promises_1.default.readdir(metaPath);
68
95
  const execsAdded = {};
69
96
  const proms = metaFileNames.reduce((prev, curr) => {
70
97
  const [prefix, executionId, ts] = curr.split('_');
@@ -86,16 +113,16 @@ class BinaryDataFileSystem {
86
113
  }
87
114
  async duplicateBinaryDataByIdentifier(binaryDataId, prefix) {
88
115
  const newBinaryDataId = this.generateFileName(prefix);
89
- return fs_1.promises
116
+ return promises_1.default
90
117
  .copyFile(path_1.default.join(this.storagePath, binaryDataId), path_1.default.join(this.storagePath, newBinaryDataId))
91
118
  .then(() => newBinaryDataId);
92
119
  }
93
120
  async deleteBinaryDataByExecutionId(executionId) {
94
121
  const regex = new RegExp(`${executionId}_*`);
95
- const filenames = await fs_1.promises.readdir(path_1.default.join(this.storagePath));
122
+ const filenames = await promises_1.default.readdir(path_1.default.join(this.storagePath));
96
123
  const proms = filenames.reduce((allProms, filename) => {
97
124
  if (regex.test(filename)) {
98
- allProms.push(fs_1.promises.rm(path_1.default.join(this.storagePath, filename)));
125
+ allProms.push(promises_1.default.rm(path_1.default.join(this.storagePath, filename)));
99
126
  }
100
127
  return allProms;
101
128
  }, [Promise.resolve()]);
@@ -105,10 +132,10 @@ class BinaryDataFileSystem {
105
132
  return this.deleteFromLocalStorage(identifier);
106
133
  }
107
134
  async persistBinaryDataForExecutionId(executionId) {
108
- return fs_1.promises.readdir(this.getBinaryDataPersistMetaPath()).then(async (metafiles) => {
135
+ return promises_1.default.readdir(this.getBinaryDataPersistMetaPath()).then(async (metafiles) => {
109
136
  const proms = metafiles.reduce((prev, curr) => {
110
137
  if (curr.startsWith(`${PREFIX_PERSISTED_METAFILE}_${executionId}_`)) {
111
- prev.push(fs_1.promises.rm(path_1.default.join(this.getBinaryDataPersistMetaPath(), curr)));
138
+ prev.push(promises_1.default.rm(path_1.default.join(this.getBinaryDataPersistMetaPath(), curr)));
112
139
  return prev;
113
140
  }
114
141
  return prev;
@@ -117,7 +144,7 @@ class BinaryDataFileSystem {
117
144
  });
118
145
  }
119
146
  generateFileName(prefix) {
120
- return `${prefix}_${(0, uuid_1.v4)()}`;
147
+ return [prefix, (0, uuid_1.v4)()].join('');
121
148
  }
122
149
  getBinaryDataMetaPath() {
123
150
  return path_1.default.join(this.storagePath, 'meta');
@@ -126,18 +153,21 @@ class BinaryDataFileSystem {
126
153
  return path_1.default.join(this.storagePath, 'persistMeta');
127
154
  }
128
155
  async deleteMetaFileByPath(metafilePath) {
129
- return fs_1.promises.rm(metafilePath);
156
+ return promises_1.default.rm(metafilePath);
130
157
  }
131
158
  async deleteFromLocalStorage(identifier) {
132
- return fs_1.promises.rm(path_1.default.join(this.storagePath, identifier));
159
+ return promises_1.default.rm(this.getBinaryPath(identifier));
160
+ }
161
+ async copyFileToLocalStorage(source, identifier) {
162
+ await promises_1.default.cp(source, this.getBinaryPath(identifier));
133
163
  }
134
164
  async saveToLocalStorage(data, identifier) {
135
- await fs_1.promises.writeFile(path_1.default.join(this.storagePath, identifier), data);
165
+ await promises_1.default.writeFile(this.getBinaryPath(identifier), data);
136
166
  }
137
167
  async retrieveFromLocalStorage(identifier) {
138
- const filePath = path_1.default.join(this.storagePath, identifier);
168
+ const filePath = this.getBinaryPath(identifier);
139
169
  try {
140
- return await fs_1.promises.readFile(filePath);
170
+ return await promises_1.default.readFile(filePath);
141
171
  }
142
172
  catch (e) {
143
173
  throw new Error(`Error finding file: ${filePath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"FileSystem.js","sourceRoot":"","sources":["../../src/BinaryDataManager/FileSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileSystem.js","sourceRoot":"","sources":["../../src/BinaryDataManager/FileSystem.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
- import { IBinaryData, INodeExecutionData } from 'n8n-workflow';
3
- import { IBinaryDataConfig } from '../Interfaces';
2
+ import type { IBinaryData, INodeExecutionData } from 'n8n-workflow';
3
+ import type { BinaryMetadata, IBinaryDataConfig } from '../Interfaces';
4
4
  export declare class BinaryDataManager {
5
5
  static instance: BinaryDataManager | undefined;
6
6
  private managers;
@@ -9,10 +9,14 @@ export declare class BinaryDataManager {
9
9
  constructor(config: IBinaryDataConfig);
10
10
  static init(config: IBinaryDataConfig, mainManager?: boolean): Promise<void>;
11
11
  static getInstance(): BinaryDataManager;
12
+ copyBinaryFile(binaryData: IBinaryData, filePath: string, executionId: string): Promise<IBinaryData>;
12
13
  storeBinaryData(binaryData: IBinaryData, binaryBuffer: Buffer, executionId: string): Promise<IBinaryData>;
13
14
  retrieveBinaryData(binaryData: IBinaryData): Promise<Buffer>;
14
15
  retrieveBinaryDataByIdentifier(identifier: string): Promise<Buffer>;
16
+ getBinaryPath(identifier: string): string;
17
+ getBinaryMetadata(identifier: string): Promise<BinaryMetadata>;
15
18
  markDataForDeletionByExecutionId(executionId: string): Promise<void>;
19
+ markDataForDeletionByExecutionIds(executionIds: string[]): Promise<void>;
16
20
  persistBinaryDataForExecutionId(executionId: string): Promise<void>;
17
21
  deleteBinaryDataByExecutionId(executionId: string): Promise<void>;
18
22
  duplicateBinaryData(inputData: Array<INodeExecutionData[] | null> | unknown, executionId: string): Promise<INodeExecutionData[][]>;
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.BinaryDataManager = void 0;
7
+ const pretty_bytes_1 = __importDefault(require("pretty-bytes"));
4
8
  const Constants_1 = require("../Constants");
5
9
  const FileSystem_1 = require("./FileSystem");
10
+ const promises_1 = require("fs/promises");
6
11
  class BinaryDataManager {
7
12
  constructor(config) {
8
13
  this.binaryDataMode = config.mode;
@@ -26,18 +31,38 @@ class BinaryDataManager {
26
31
  }
27
32
  return BinaryDataManager.instance;
28
33
  }
29
- async storeBinaryData(binaryData, binaryBuffer, executionId) {
30
- const retBinaryData = binaryData;
31
- if (this.managers[this.binaryDataMode]) {
32
- return this.managers[this.binaryDataMode]
33
- .storeBinaryData(binaryBuffer, executionId)
34
- .then((filename) => {
35
- retBinaryData.id = this.generateBinaryId(filename);
36
- retBinaryData.data = this.binaryDataMode;
37
- return retBinaryData;
34
+ async copyBinaryFile(binaryData, filePath, executionId) {
35
+ const manager = this.managers[this.binaryDataMode];
36
+ if (manager) {
37
+ const identifier = await manager.copyBinaryFile(filePath, executionId);
38
+ binaryData.id = this.generateBinaryId(identifier);
39
+ binaryData.data = this.binaryDataMode;
40
+ const fileSize = await manager.getFileSize(identifier);
41
+ binaryData.fileSize = (0, pretty_bytes_1.default)(fileSize);
42
+ await manager.storeBinaryMetadata(identifier, {
43
+ fileName: binaryData.fileName,
44
+ mimeType: binaryData.mimeType,
45
+ fileSize,
38
46
  });
39
47
  }
40
- retBinaryData.data = binaryBuffer.toString(Constants_1.BINARY_ENCODING);
48
+ else {
49
+ const { size } = await (0, promises_1.stat)(filePath);
50
+ binaryData.fileSize = (0, pretty_bytes_1.default)(size);
51
+ binaryData.data = await (0, promises_1.readFile)(filePath, { encoding: Constants_1.BINARY_ENCODING });
52
+ }
53
+ return binaryData;
54
+ }
55
+ async storeBinaryData(binaryData, binaryBuffer, executionId) {
56
+ binaryData.fileSize = (0, pretty_bytes_1.default)(binaryBuffer.length);
57
+ const manager = this.managers[this.binaryDataMode];
58
+ if (manager) {
59
+ const identifier = await manager.storeBinaryData(binaryBuffer, executionId);
60
+ binaryData.id = this.generateBinaryId(identifier);
61
+ binaryData.data = this.binaryDataMode;
62
+ }
63
+ else {
64
+ binaryData.data = binaryBuffer.toString(Constants_1.BINARY_ENCODING);
65
+ }
41
66
  return binaryData;
42
67
  }
43
68
  async retrieveBinaryData(binaryData) {
@@ -53,12 +78,32 @@ class BinaryDataManager {
53
78
  }
54
79
  throw new Error('Storage mode used to store binary data not available');
55
80
  }
81
+ getBinaryPath(identifier) {
82
+ const { mode, id } = this.splitBinaryModeFileId(identifier);
83
+ if (this.managers[mode]) {
84
+ return this.managers[mode].getBinaryPath(id);
85
+ }
86
+ throw new Error('Storage mode used to store binary data not available');
87
+ }
88
+ async getBinaryMetadata(identifier) {
89
+ const { mode, id } = this.splitBinaryModeFileId(identifier);
90
+ if (this.managers[mode]) {
91
+ return this.managers[mode].getBinaryMetadata(id);
92
+ }
93
+ throw new Error('Storage mode used to store binary data not available');
94
+ }
56
95
  async markDataForDeletionByExecutionId(executionId) {
57
96
  if (this.managers[this.binaryDataMode]) {
58
97
  return this.managers[this.binaryDataMode].markDataForDeletionByExecutionId(executionId);
59
98
  }
60
99
  return Promise.resolve();
61
100
  }
101
+ async markDataForDeletionByExecutionIds(executionIds) {
102
+ if (this.managers[this.binaryDataMode]) {
103
+ return Promise.all(executionIds.map(async (id) => this.managers[this.binaryDataMode].markDataForDeletionByExecutionId(id))).then(() => { });
104
+ }
105
+ return Promise.resolve();
106
+ }
62
107
  async persistBinaryDataForExecutionId(executionId) {
63
108
  if (this.managers[this.binaryDataMode]) {
64
109
  return this.managers[this.binaryDataMode].persistBinaryDataForExecutionId(executionId);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/BinaryDataManager/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/BinaryDataManager/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const loadClassInIsolation: <T>(filePath: string, className: string) => T;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadClassInIsolation = void 0;
4
+ const vm_1 = require("vm");
5
+ const context = (0, vm_1.createContext)({ require });
6
+ const loadClassInIsolation = (filePath, className) => {
7
+ if (process.platform === 'win32') {
8
+ filePath = filePath.replace(/\\/g, '/');
9
+ }
10
+ const script = new vm_1.Script(`new (require('${filePath}').${className})()`);
11
+ return script.runInContext(context);
12
+ };
13
+ exports.loadClassInIsolation = loadClassInIsolation;
14
+ //# sourceMappingURL=ClassLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassLoader.js","sourceRoot":"","sources":["../src/ClassLoader.ts"],"names":[],"mappings":";;;AAAA,2BAA2C;AAE3C,MAAM,OAAO,GAAG,IAAA,kBAAa,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACpC,MAAM,oBAAoB,GAAG,CAAI,QAAgB,EAAE,SAAiB,EAAE,EAAE;IAC9E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACjC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACxC;IACD,MAAM,MAAM,GAAG,IAAI,WAAM,CAAC,iBAAiB,QAAQ,MAAM,SAAS,KAAK,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAM,CAAC;AAC1C,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B"}
@@ -13,3 +13,4 @@ export declare const WAIT_TIME_UNLIMITED = "3000-01-01T00:00:00.000Z";
13
13
  export declare const RESPONSE_ERROR_MESSAGES: {
14
14
  NO_ENCRYPTION_KEY: string;
15
15
  };
16
+ export declare const CUSTOM_NODES_CATEGORY = "Custom Nodes";
package/dist/Constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RESPONSE_ERROR_MESSAGES = exports.WAIT_TIME_UNLIMITED = exports.TUNNEL_SUBDOMAIN_ENV = exports.PLACEHOLDER_EMPTY_WORKFLOW_ID = exports.PLACEHOLDER_EMPTY_EXECUTION_ID = exports.USER_SETTINGS_SUBFOLDER = exports.USER_SETTINGS_FILE_NAME = exports.USER_FOLDER_ENV_OVERWRITE = exports.EXTENSIONS_SUBDIRECTORY = exports.ENCRYPTION_KEY_ENV_OVERWRITE = exports.DOWNLOADED_NODES_SUBDIRECTORY = exports.CUSTOM_EXTENSION_ENV = exports.BINARY_ENCODING = void 0;
3
+ exports.CUSTOM_NODES_CATEGORY = exports.RESPONSE_ERROR_MESSAGES = exports.WAIT_TIME_UNLIMITED = exports.TUNNEL_SUBDOMAIN_ENV = exports.PLACEHOLDER_EMPTY_WORKFLOW_ID = exports.PLACEHOLDER_EMPTY_EXECUTION_ID = exports.USER_SETTINGS_SUBFOLDER = exports.USER_SETTINGS_FILE_NAME = exports.USER_FOLDER_ENV_OVERWRITE = exports.EXTENSIONS_SUBDIRECTORY = exports.ENCRYPTION_KEY_ENV_OVERWRITE = exports.DOWNLOADED_NODES_SUBDIRECTORY = exports.CUSTOM_EXTENSION_ENV = exports.BINARY_ENCODING = void 0;
4
4
  exports.BINARY_ENCODING = 'base64';
5
5
  exports.CUSTOM_EXTENSION_ENV = 'N8N_CUSTOM_EXTENSIONS';
6
6
  exports.DOWNLOADED_NODES_SUBDIRECTORY = 'nodes';
@@ -16,4 +16,5 @@ exports.WAIT_TIME_UNLIMITED = '3000-01-01T00:00:00.000Z';
16
16
  exports.RESPONSE_ERROR_MESSAGES = {
17
17
  NO_ENCRYPTION_KEY: 'Encryption key is missing or was not set',
18
18
  };
19
+ exports.CUSTOM_NODES_CATEGORY = 'Custom Nodes';
19
20
  //# sourceMappingURL=Constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":";;;AACa,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAC/C,QAAA,6BAA6B,GAAG,OAAO,CAAC;AACxC,QAAA,4BAA4B,GAAG,oBAAoB,CAAC;AACpD,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,uBAAuB,GAAG,MAAM,CAAC;AACjC,QAAA,8BAA8B,GAAG,aAAa,CAAC;AAC/C,QAAA,6BAA6B,GAAG,WAAW,CAAC;AAC5C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,mBAAmB,GAAG,0BAA0B,CAAC;AAEjD,QAAA,uBAAuB,GAAG;IACtC,iBAAiB,EAAE,0CAA0C;CAC7D,CAAC"}
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":";;;AACa,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAC/C,QAAA,6BAA6B,GAAG,OAAO,CAAC;AACxC,QAAA,4BAA4B,GAAG,oBAAoB,CAAC;AACpD,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,uBAAuB,GAAG,MAAM,CAAC;AACjC,QAAA,8BAA8B,GAAG,aAAa,CAAC;AAC/C,QAAA,6BAA6B,GAAG,WAAW,CAAC;AAC5C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,mBAAmB,GAAG,0BAA0B,CAAC;AAEjD,QAAA,uBAAuB,GAAG;IACtC,iBAAiB,EAAE,0CAA0C;CAC7D,CAAC;AAEW,QAAA,qBAAqB,GAAG,cAAc,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { KnownNodesAndCredentials } from 'n8n-workflow';
2
+ import type { ICredentialType, ICredentialTypeData, INodeTypeBaseDescription, INodeTypeData, INodeTypeNameVersion } from 'n8n-workflow';
3
+ import type { n8n } from './Interfaces';
4
+ export declare type Types = {
5
+ nodes: INodeTypeBaseDescription[];
6
+ credentials: ICredentialType[];
7
+ };
8
+ export declare abstract class DirectoryLoader {
9
+ protected readonly directory: string;
10
+ private readonly excludeNodes?;
11
+ private readonly includeNodes?;
12
+ readonly loadedNodes: INodeTypeNameVersion[];
13
+ readonly nodeTypes: INodeTypeData;
14
+ readonly credentialTypes: ICredentialTypeData;
15
+ readonly known: KnownNodesAndCredentials;
16
+ readonly types: Types;
17
+ constructor(directory: string, excludeNodes?: string | undefined, includeNodes?: string | undefined);
18
+ abstract loadAll(): Promise<void>;
19
+ protected resolvePath(file: string): string;
20
+ protected loadNodeFromFile(packageName: string, nodeName: string, filePath: string): void;
21
+ protected loadCredentialFromFile(credentialName: string, filePath: string): void;
22
+ private getCodex;
23
+ private addCodex;
24
+ private fixIconPath;
25
+ }
26
+ export declare class CustomDirectoryLoader extends DirectoryLoader {
27
+ loadAll(): Promise<void>;
28
+ }
29
+ export declare class PackageDirectoryLoader extends DirectoryLoader {
30
+ packageName: string;
31
+ packageJson: n8n.PackageJson;
32
+ readPackageJson(): Promise<void>;
33
+ loadAll(): Promise<void>;
34
+ protected readJSON<T>(file: string): Promise<T>;
35
+ }
36
+ export declare class LazyPackageDirectoryLoader extends PackageDirectoryLoader {
37
+ loadAll(): Promise<void>;
38
+ }