n8n-core 1.10.0 → 1.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.
Files changed (33) hide show
  1. package/dist/BinaryData/BinaryData.service.js +14 -7
  2. package/dist/BinaryData/BinaryData.service.js.map +1 -1
  3. package/dist/BinaryData/FileSystem.manager.d.ts +6 -7
  4. package/dist/BinaryData/FileSystem.manager.js +50 -39
  5. package/dist/BinaryData/FileSystem.manager.js.map +1 -1
  6. package/dist/BinaryData/ObjectStore.manager.d.ts +27 -0
  7. package/dist/BinaryData/ObjectStore.manager.js +90 -0
  8. package/dist/BinaryData/ObjectStore.manager.js.map +1 -0
  9. package/dist/BinaryData/errors.d.ts +3 -3
  10. package/dist/BinaryData/errors.js +7 -6
  11. package/dist/BinaryData/errors.js.map +1 -1
  12. package/dist/BinaryData/types.d.ts +16 -13
  13. package/dist/BinaryData/utils.d.ts +4 -3
  14. package/dist/BinaryData/utils.js +12 -7
  15. package/dist/BinaryData/utils.js.map +1 -1
  16. package/dist/NodeExecuteFunctions.d.ts +1 -0
  17. package/dist/NodeExecuteFunctions.js +17 -1
  18. package/dist/NodeExecuteFunctions.js.map +1 -1
  19. package/dist/ObjectStore/ObjectStore.service.ee.d.ts +18 -17
  20. package/dist/ObjectStore/ObjectStore.service.ee.js +53 -23
  21. package/dist/ObjectStore/ObjectStore.service.ee.js.map +1 -1
  22. package/dist/ObjectStore/types.d.ts +14 -8
  23. package/dist/ObjectStore/utils.d.ts +1 -0
  24. package/dist/ObjectStore/utils.js +5 -1
  25. package/dist/ObjectStore/utils.js.map +1 -1
  26. package/dist/build.tsbuildinfo +1 -1
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.js +3 -1
  29. package/dist/index.js.map +1 -1
  30. package/package.json +3 -3
  31. package/dist/ObjectStore/errors.d.ts +0 -4
  32. package/dist/ObjectStore/errors.js +0 -11
  33. package/dist/ObjectStore/errors.js.map +0 -1
@@ -36,27 +36,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.BinaryDataService = void 0;
39
- const promises_1 = require("fs/promises");
39
+ const promises_1 = require("node:fs/promises");
40
40
  const pretty_bytes_1 = __importDefault(require("pretty-bytes"));
41
- const typedi_1 = require("typedi");
41
+ const typedi_1 = __importStar(require("typedi"));
42
42
  const n8n_workflow_1 = require("n8n-workflow");
43
43
  const errors_1 = require("./errors");
44
- const LogCatch_decorator_1 = require("../decorators/LogCatch.decorator");
45
44
  const utils_1 = require("./utils");
45
+ const LogCatch_decorator_1 = require("../decorators/LogCatch.decorator");
46
46
  let BinaryDataService = class BinaryDataService {
47
47
  constructor() {
48
48
  this.mode = 'default';
49
49
  this.managers = {};
50
50
  }
51
51
  async init(config) {
52
- if (!(0, utils_1.areValidModes)(config.availableModes))
53
- throw new errors_1.InvalidBinaryDataMode();
54
- this.mode = config.mode;
52
+ if (!(0, utils_1.areConfigModes)(config.availableModes))
53
+ throw new errors_1.InvalidModeError();
54
+ this.mode = config.mode === 'filesystem' ? 'filesystem-v2' : config.mode;
55
55
  if (config.availableModes.includes('filesystem')) {
56
56
  const { FileSystemManager } = await Promise.resolve().then(() => __importStar(require('./FileSystem.manager')));
57
57
  this.managers.filesystem = new FileSystemManager(config.localStoragePath);
58
+ this.managers['filesystem-v2'] = this.managers.filesystem;
58
59
  await this.managers.filesystem.init();
59
60
  }
61
+ if (config.availableModes.includes('s3')) {
62
+ const { ObjectStoreManager } = await Promise.resolve().then(() => __importStar(require('./ObjectStore.manager')));
63
+ const { ObjectStoreService } = await Promise.resolve().then(() => __importStar(require('../ObjectStore/ObjectStore.service.ee')));
64
+ this.managers.s3 = new ObjectStoreManager(typedi_1.default.get(ObjectStoreService));
65
+ await this.managers.s3.init();
66
+ }
60
67
  }
61
68
  async copyBinaryFile(workflowId, executionId, binaryData, filePath) {
62
69
  const manager = this.managers[this.mode];
@@ -181,7 +188,7 @@ let BinaryDataService = class BinaryDataService {
181
188
  const manager = this.managers[mode];
182
189
  if (manager)
183
190
  return manager;
184
- throw new errors_1.UnknownBinaryDataManager(mode);
191
+ throw new errors_1.UnknownManagerError(mode);
185
192
  }
186
193
  };
187
194
  exports.BinaryDataService = BinaryDataService;
@@ -1 +1 @@
1
- {"version":3,"file":"BinaryData.service.js","sourceRoot":"","sources":["../../src/BinaryData/BinaryData.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BinaryData.service.js","sourceRoot":"","sources":["../../src/BinaryData/BinaryData.service.ts"],"names":[],"mappings":"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"}
@@ -7,21 +7,20 @@ export declare class FileSystemManager implements BinaryData.Manager {
7
7
  private storagePath;
8
8
  constructor(storagePath: string);
9
9
  init(): Promise<void>;
10
+ store(workflowId: string, executionId: string, bufferOrStream: Buffer | Readable, { mimeType, fileName }: BinaryData.PreWriteMetadata): Promise<{
11
+ fileId: string;
12
+ fileSize: number;
13
+ }>;
10
14
  getPath(fileId: string): string;
11
15
  getAsStream(fileId: string, chunkSize?: number): Promise<import("fs").ReadStream>;
12
16
  getAsBuffer(fileId: string): Promise<Buffer>;
13
17
  getMetadata(fileId: string): Promise<BinaryData.Metadata>;
14
- store(_workflowId: string, executionId: string, bufferOrStream: Buffer | Readable, { mimeType, fileName }: BinaryData.PreWriteMetadata): Promise<{
15
- fileId: string;
16
- fileSize: number;
17
- }>;
18
- deleteOne(fileId: string): Promise<void>;
19
18
  deleteMany(ids: BinaryData.IdsForDeletion): Promise<void>;
20
- copyByFilePath(_workflowId: string, executionId: string, filePath: string, { mimeType, fileName }: BinaryData.PreWriteMetadata): Promise<{
19
+ copyByFilePath(workflowId: string, executionId: string, sourcePath: string, { mimeType, fileName }: BinaryData.PreWriteMetadata): Promise<{
21
20
  fileId: string;
22
21
  fileSize: number;
23
22
  }>;
24
- copyByFileId(_workflowId: string, executionId: string, sourceFileId: string): Promise<string>;
23
+ copyByFileId(workflowId: string, executionId: string, sourceFileId: string): Promise<string>;
25
24
  rename(oldFileId: string, newFileId: string): Promise<void>;
26
25
  private toFileId;
27
26
  private resolvePath;
@@ -4,31 +4,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FileSystemManager = void 0;
7
- const fs_1 = require("fs");
8
- const promises_1 = __importDefault(require("fs/promises"));
9
- const path_1 = __importDefault(require("path"));
7
+ const node_fs_1 = require("node:fs");
8
+ const promises_1 = __importDefault(require("node:fs/promises"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
10
  const uuid_1 = require("uuid");
11
11
  const n8n_workflow_1 = require("n8n-workflow");
12
- const promises_2 = require("node:fs/promises");
13
- const errors_1 = require("../errors");
14
12
  const utils_1 = require("./utils");
13
+ const errors_1 = require("../errors");
15
14
  const EXECUTION_ID_EXTRACTOR = /^(\w+)(?:[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12})$/;
16
15
  class FileSystemManager {
17
16
  constructor(storagePath) {
18
17
  this.storagePath = storagePath;
19
18
  }
20
19
  async init() {
21
- await (0, utils_1.ensureDirExists)(this.storagePath);
20
+ await (0, utils_1.assertDir)(this.storagePath);
21
+ }
22
+ async store(workflowId, executionId, bufferOrStream, { mimeType, fileName }) {
23
+ const fileId = this.toFileId(workflowId, executionId);
24
+ const filePath = this.resolvePath(fileId);
25
+ await (0, utils_1.assertDir)(node_path_1.default.dirname(filePath));
26
+ await promises_1.default.writeFile(filePath, bufferOrStream);
27
+ const fileSize = await this.getSize(fileId);
28
+ await this.storeMetadata(fileId, { mimeType, fileName, fileSize });
29
+ return { fileId, fileSize };
22
30
  }
23
31
  getPath(fileId) {
24
32
  return this.resolvePath(fileId);
25
33
  }
26
34
  async getAsStream(fileId, chunkSize) {
27
- const filePath = this.getPath(fileId);
28
- return (0, fs_1.createReadStream)(filePath, { highWaterMark: chunkSize });
35
+ const filePath = this.resolvePath(fileId);
36
+ return (0, node_fs_1.createReadStream)(filePath, { highWaterMark: chunkSize });
29
37
  }
30
38
  async getAsBuffer(fileId) {
31
- const filePath = this.getPath(fileId);
39
+ const filePath = this.resolvePath(fileId);
32
40
  try {
33
41
  return await promises_1.default.readFile(filePath);
34
42
  }
@@ -40,20 +48,10 @@ class FileSystemManager {
40
48
  const filePath = this.resolvePath(`${fileId}.metadata`);
41
49
  return (0, n8n_workflow_1.jsonParse)(await promises_1.default.readFile(filePath, { encoding: 'utf-8' }));
42
50
  }
43
- async store(_workflowId, executionId, bufferOrStream, { mimeType, fileName }) {
44
- const fileId = this.toFileId(executionId);
45
- const filePath = this.getPath(fileId);
46
- await promises_1.default.writeFile(filePath, bufferOrStream);
47
- const fileSize = await this.getSize(fileId);
48
- await this.storeMetadata(fileId, { mimeType, fileName, fileSize });
49
- return { fileId, fileSize };
50
- }
51
- async deleteOne(fileId) {
52
- const filePath = this.getPath(fileId);
53
- return promises_1.default.rm(filePath);
54
- }
55
51
  async deleteMany(ids) {
56
52
  var _a;
53
+ if (ids.length === 0)
54
+ return;
57
55
  const executionIds = ids.map((o) => o.executionId);
58
56
  const set = new Set(executionIds);
59
57
  const fileNames = await promises_1.default.readdir(this.storagePath);
@@ -64,35 +62,48 @@ class FileSystemManager {
64
62
  await Promise.all([promises_1.default.rm(filePath), promises_1.default.rm(`${filePath}.metadata`)]);
65
63
  }
66
64
  }
65
+ const binaryDataDirs = ids.map(({ workflowId, executionId }) => this.resolvePath(`workflows/${workflowId}/executions/${executionId}/binary_data/`));
66
+ await Promise.all(binaryDataDirs.map(async (dir) => {
67
+ await promises_1.default.rm(dir, { recursive: true, force: true });
68
+ }));
67
69
  }
68
- async copyByFilePath(_workflowId, executionId, filePath, { mimeType, fileName }) {
69
- const newFileId = this.toFileId(executionId);
70
- await promises_1.default.cp(filePath, this.getPath(newFileId));
71
- const fileSize = await this.getSize(newFileId);
72
- await this.storeMetadata(newFileId, { mimeType, fileName, fileSize });
73
- return { fileId: newFileId, fileSize };
74
- }
75
- async copyByFileId(_workflowId, executionId, sourceFileId) {
76
- const targetFileId = this.toFileId(executionId);
70
+ async copyByFilePath(workflowId, executionId, sourcePath, { mimeType, fileName }) {
71
+ const targetFileId = this.toFileId(workflowId, executionId);
72
+ const targetPath = this.resolvePath(targetFileId);
73
+ await (0, utils_1.assertDir)(node_path_1.default.dirname(targetPath));
74
+ await promises_1.default.cp(sourcePath, targetPath);
75
+ const fileSize = await this.getSize(targetFileId);
76
+ await this.storeMetadata(targetFileId, { mimeType, fileName, fileSize });
77
+ return { fileId: targetFileId, fileSize };
78
+ }
79
+ async copyByFileId(workflowId, executionId, sourceFileId) {
80
+ const targetFileId = this.toFileId(workflowId, executionId);
77
81
  const sourcePath = this.resolvePath(sourceFileId);
78
82
  const targetPath = this.resolvePath(targetFileId);
83
+ await (0, utils_1.assertDir)(node_path_1.default.dirname(targetPath));
79
84
  await promises_1.default.copyFile(sourcePath, targetPath);
80
85
  return targetFileId;
81
86
  }
82
87
  async rename(oldFileId, newFileId) {
83
- const oldPath = this.getPath(oldFileId);
84
- const newPath = this.getPath(newFileId);
88
+ const oldPath = this.resolvePath(oldFileId);
89
+ const newPath = this.resolvePath(newFileId);
90
+ await (0, utils_1.assertDir)(node_path_1.default.dirname(newPath));
85
91
  await Promise.all([
86
- (0, promises_2.rename)(oldPath, newPath),
87
- (0, promises_2.rename)(`${oldPath}.metadata`, `${newPath}.metadata`),
92
+ promises_1.default.rename(oldPath, newPath),
93
+ promises_1.default.rename(`${oldPath}.metadata`, `${newPath}.metadata`),
88
94
  ]);
95
+ const [tempDirParent] = oldPath.split('/temp/');
96
+ const tempDir = node_path_1.default.join(tempDirParent, 'temp');
97
+ await promises_1.default.rm(tempDir, { recursive: true });
89
98
  }
90
- toFileId(executionId) {
91
- return [executionId, (0, uuid_1.v4)()].join('');
99
+ toFileId(workflowId, executionId) {
100
+ if (!executionId)
101
+ executionId = 'temp';
102
+ return `workflows/${workflowId}/executions/${executionId}/binary_data/${(0, uuid_1.v4)()}`;
92
103
  }
93
104
  resolvePath(...args) {
94
- const returnPath = path_1.default.join(this.storagePath, ...args);
95
- if (path_1.default.relative(this.storagePath, returnPath).startsWith('..')) {
105
+ const returnPath = node_path_1.default.join(this.storagePath, ...args);
106
+ if (node_path_1.default.relative(this.storagePath, returnPath).startsWith('..')) {
96
107
  throw new errors_1.FileNotFoundError('Invalid path detected');
97
108
  }
98
109
  return returnPath;
@@ -102,7 +113,7 @@ class FileSystemManager {
102
113
  await promises_1.default.writeFile(filePath, JSON.stringify(metadata), { encoding: 'utf-8' });
103
114
  }
104
115
  async getSize(fileId) {
105
- const filePath = this.getPath(fileId);
116
+ const filePath = this.resolvePath(fileId);
106
117
  try {
107
118
  const stats = await promises_1.default.stat(filePath);
108
119
  return stats.size;
@@ -1 +1 @@
1
- {"version":3,"file":"FileSystem.manager.js","sourceRoot":"","sources":["../../src/BinaryData/FileSystem.manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileSystem.manager.js","sourceRoot":"","sources":["../../src/BinaryData/FileSystem.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { ObjectStoreService } from '../ObjectStore/ObjectStore.service.ee';
4
+ import type { Readable } from 'node:stream';
5
+ import type { BinaryData } from './types';
6
+ export declare class ObjectStoreManager implements BinaryData.Manager {
7
+ private readonly objectStoreService;
8
+ constructor(objectStoreService: ObjectStoreService);
9
+ init(): Promise<void>;
10
+ store(workflowId: string, executionId: string, bufferOrStream: Buffer | Readable, metadata: BinaryData.PreWriteMetadata): Promise<{
11
+ fileId: string;
12
+ fileSize: number;
13
+ }>;
14
+ getPath(fileId: string): string;
15
+ getAsBuffer(fileId: string): Promise<Buffer>;
16
+ getAsStream(fileId: string): Promise<Readable>;
17
+ getMetadata(fileId: string): Promise<BinaryData.Metadata>;
18
+ copyByFileId(workflowId: string, executionId: string, sourceFileId: string): Promise<string>;
19
+ copyByFilePath(workflowId: string, executionId: string, sourcePath: string, metadata: BinaryData.PreWriteMetadata): Promise<{
20
+ fileId: string;
21
+ fileSize: number;
22
+ }>;
23
+ deleteMany(ids: BinaryData.IdsForDeletion): Promise<void>;
24
+ rename(oldFileId: string, newFileId: string): Promise<void>;
25
+ private toFileId;
26
+ private toBuffer;
27
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ObjectStoreManager = void 0;
16
+ const promises_1 = __importDefault(require("node:fs/promises"));
17
+ const typedi_1 = require("typedi");
18
+ const uuid_1 = require("uuid");
19
+ const utils_1 = require("./utils");
20
+ const ObjectStore_service_ee_1 = require("../ObjectStore/ObjectStore.service.ee");
21
+ let ObjectStoreManager = class ObjectStoreManager {
22
+ constructor(objectStoreService) {
23
+ this.objectStoreService = objectStoreService;
24
+ }
25
+ async init() {
26
+ await this.objectStoreService.checkConnection();
27
+ }
28
+ async store(workflowId, executionId, bufferOrStream, metadata) {
29
+ const fileId = this.toFileId(workflowId, executionId);
30
+ const buffer = await this.toBuffer(bufferOrStream);
31
+ await this.objectStoreService.put(fileId, buffer, metadata);
32
+ return { fileId, fileSize: buffer.length };
33
+ }
34
+ getPath(fileId) {
35
+ return fileId;
36
+ }
37
+ async getAsBuffer(fileId) {
38
+ return this.objectStoreService.get(fileId, { mode: 'buffer' });
39
+ }
40
+ async getAsStream(fileId) {
41
+ return this.objectStoreService.get(fileId, { mode: 'stream' });
42
+ }
43
+ async getMetadata(fileId) {
44
+ const { 'content-length': contentLength, 'content-type': contentType, 'x-amz-meta-filename': fileName, } = await this.objectStoreService.getMetadata(fileId);
45
+ const metadata = { fileSize: Number(contentLength) };
46
+ if (contentType)
47
+ metadata.mimeType = contentType;
48
+ if (fileName)
49
+ metadata.fileName = fileName;
50
+ return metadata;
51
+ }
52
+ async copyByFileId(workflowId, executionId, sourceFileId) {
53
+ const targetFileId = this.toFileId(workflowId, executionId);
54
+ const sourceFile = await this.objectStoreService.get(sourceFileId, { mode: 'buffer' });
55
+ await this.objectStoreService.put(targetFileId, sourceFile);
56
+ return targetFileId;
57
+ }
58
+ async copyByFilePath(workflowId, executionId, sourcePath, metadata) {
59
+ const targetFileId = this.toFileId(workflowId, executionId);
60
+ const sourceFile = await promises_1.default.readFile(sourcePath);
61
+ await this.objectStoreService.put(targetFileId, sourceFile, metadata);
62
+ return { fileId: targetFileId, fileSize: sourceFile.length };
63
+ }
64
+ async deleteMany(ids) {
65
+ const prefixes = ids.map(({ workflowId, executionId }) => `workflows/${workflowId}/executions/${executionId}/binary_data/`);
66
+ await Promise.all(prefixes.map(async (prefix) => {
67
+ await this.objectStoreService.deleteMany(prefix);
68
+ }));
69
+ }
70
+ async rename(oldFileId, newFileId) {
71
+ const oldFile = await this.objectStoreService.get(oldFileId, { mode: 'buffer' });
72
+ const oldFileMetadata = await this.objectStoreService.getMetadata(oldFileId);
73
+ await this.objectStoreService.put(newFileId, oldFile, oldFileMetadata);
74
+ await this.objectStoreService.deleteOne(oldFileId);
75
+ }
76
+ toFileId(workflowId, executionId) {
77
+ if (!executionId)
78
+ executionId = 'temp';
79
+ return `workflows/${workflowId}/executions/${executionId}/binary_data/${(0, uuid_1.v4)()}`;
80
+ }
81
+ async toBuffer(bufferOrStream) {
82
+ return (0, utils_1.toBuffer)(bufferOrStream);
83
+ }
84
+ };
85
+ exports.ObjectStoreManager = ObjectStoreManager;
86
+ exports.ObjectStoreManager = ObjectStoreManager = __decorate([
87
+ (0, typedi_1.Service)(),
88
+ __metadata("design:paramtypes", [ObjectStore_service_ee_1.ObjectStoreService])
89
+ ], ObjectStoreManager);
90
+ //# sourceMappingURL=ObjectStore.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectStore.manager.js","sourceRoot":"","sources":["../../src/BinaryData/ObjectStore.manager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export declare class InvalidBinaryDataMode extends Error {
2
- constructor();
1
+ export declare class InvalidModeError extends Error {
2
+ message: string;
3
3
  }
4
- export declare class UnknownBinaryDataManager extends Error {
4
+ export declare class UnknownManagerError extends Error {
5
5
  constructor(mode: string);
6
6
  }
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnknownBinaryDataManager = exports.InvalidBinaryDataMode = void 0;
3
+ exports.UnknownManagerError = exports.InvalidModeError = void 0;
4
4
  const utils_1 = require("./utils");
5
- class InvalidBinaryDataMode extends Error {
5
+ class InvalidModeError extends Error {
6
6
  constructor() {
7
- super(`Invalid binary data mode. Valid modes: ${utils_1.BINARY_DATA_MODES.join(', ')}`);
7
+ super(...arguments);
8
+ this.message = `Invalid binary data mode. Valid modes: ${utils_1.CONFIG_MODES.join(', ')}`;
8
9
  }
9
10
  }
10
- exports.InvalidBinaryDataMode = InvalidBinaryDataMode;
11
- class UnknownBinaryDataManager extends Error {
11
+ exports.InvalidModeError = InvalidModeError;
12
+ class UnknownManagerError extends Error {
12
13
  constructor(mode) {
13
14
  super(`No binary data manager found for: ${mode}`);
14
15
  }
15
16
  }
16
- exports.UnknownBinaryDataManager = UnknownBinaryDataManager;
17
+ exports.UnknownManagerError = UnknownManagerError;
17
18
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/BinaryData/errors.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAE5C,MAAa,qBAAsB,SAAQ,KAAK;IAC/C;QACC,KAAK,CAAC,0CAA0C,yBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;CACD;AAJD,sDAIC;AAED,MAAa,wBAAyB,SAAQ,KAAK;IAClD,YAAY,IAAY;QACvB,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;CACD;AAJD,4DAIC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/BinaryData/errors.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AAEvC,MAAa,gBAAiB,SAAQ,KAAK;IAA3C;;QACC,YAAO,GAAG,0CAA0C,oBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/E,CAAC;CAAA;AAFD,4CAEC;AAED,MAAa,mBAAoB,SAAQ,KAAK;IAC7C,YAAY,IAAY;QACvB,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;CACD;AAJD,kDAIC"}
@@ -1,39 +1,42 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import type { Readable } from 'stream';
4
- import type { BINARY_DATA_MODES } from './utils';
5
4
  export declare namespace BinaryData {
6
- type Mode = (typeof BINARY_DATA_MODES)[number];
7
- type Config = {
8
- mode: 'default' | 'filesystem';
9
- availableModes: string[];
5
+ type LegacyMode = 'filesystem';
6
+ type UpgradedMode = 'filesystem-v2';
7
+ export type ConfigMode = 'default' | 'filesystem' | 's3';
8
+ export type ServiceMode = Exclude<ConfigMode, LegacyMode> | UpgradedMode;
9
+ export type StoredMode = Exclude<ConfigMode | UpgradedMode, 'default'>;
10
+ export type Config = {
11
+ mode: ConfigMode;
12
+ availableModes: ConfigMode[];
10
13
  localStoragePath: string;
11
14
  };
12
- type Metadata = {
15
+ export type Metadata = {
13
16
  fileName?: string;
14
17
  mimeType?: string;
15
18
  fileSize: number;
16
19
  };
17
- type WriteResult = {
20
+ export type WriteResult = {
18
21
  fileId: string;
19
22
  fileSize: number;
20
23
  };
21
- type PreWriteMetadata = Omit<Metadata, 'fileSize'>;
22
- type IdsForDeletion = Array<{
24
+ export type PreWriteMetadata = Omit<Metadata, 'fileSize'>;
25
+ export type IdsForDeletion = Array<{
23
26
  workflowId: string;
24
27
  executionId: string;
25
28
  }>;
26
- interface Manager {
29
+ export interface Manager {
27
30
  init(): Promise<void>;
28
31
  store(workflowId: string, executionId: string, bufferOrStream: Buffer | Readable, metadata: PreWriteMetadata): Promise<WriteResult>;
29
32
  getPath(fileId: string): string;
30
33
  getAsBuffer(fileId: string): Promise<Buffer>;
31
34
  getAsStream(fileId: string, chunkSize?: number): Promise<Readable>;
32
35
  getMetadata(fileId: string): Promise<Metadata>;
33
- copyByFileId(workflowId: string, executionId: string, sourceFileId: string): Promise<string>;
34
- copyByFilePath(workflowId: string, executionId: string, filePath: string, metadata: PreWriteMetadata): Promise<WriteResult>;
35
- deleteOne(fileId: string): Promise<void>;
36
36
  deleteMany(ids: IdsForDeletion): Promise<void>;
37
+ copyByFileId(workflowId: string, executionId: string, sourceFileId: string): Promise<string>;
38
+ copyByFilePath(workflowId: string, executionId: string, sourcePath: string, metadata: PreWriteMetadata): Promise<WriteResult>;
37
39
  rename(oldFileId: string, newFileId: string): Promise<void>;
38
40
  }
41
+ export {};
39
42
  }
@@ -2,7 +2,8 @@
2
2
  /// <reference types="node" />
3
3
  import type { Readable } from 'node:stream';
4
4
  import type { BinaryData } from './types';
5
- export declare const BINARY_DATA_MODES: readonly ["default", "filesystem", "s3"];
6
- export declare function areValidModes(modes: string[]): modes is BinaryData.Mode[];
7
- export declare function ensureDirExists(dir: string): Promise<void>;
5
+ export declare const CONFIG_MODES: readonly ["default", "filesystem", "s3"];
6
+ export declare function areConfigModes(modes: string[]): modes is BinaryData.ConfigMode[];
7
+ export declare function isStoredMode(mode: string): mode is BinaryData.StoredMode;
8
+ export declare function assertDir(dir: string): Promise<void>;
8
9
  export declare function toBuffer(body: Buffer | Readable): Promise<Buffer>;
@@ -3,15 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.toBuffer = exports.ensureDirExists = exports.areValidModes = exports.BINARY_DATA_MODES = void 0;
6
+ exports.toBuffer = exports.assertDir = exports.isStoredMode = exports.areConfigModes = exports.CONFIG_MODES = void 0;
7
7
  const promises_1 = __importDefault(require("node:fs/promises"));
8
8
  const concat_stream_1 = __importDefault(require("concat-stream"));
9
- exports.BINARY_DATA_MODES = ['default', 'filesystem', 's3'];
10
- function areValidModes(modes) {
11
- return modes.every((m) => exports.BINARY_DATA_MODES.includes(m));
9
+ exports.CONFIG_MODES = ['default', 'filesystem', 's3'];
10
+ const STORED_MODES = ['filesystem', 'filesystem-v2', 's3'];
11
+ function areConfigModes(modes) {
12
+ return modes.every((m) => exports.CONFIG_MODES.includes(m));
12
13
  }
13
- exports.areValidModes = areValidModes;
14
- async function ensureDirExists(dir) {
14
+ exports.areConfigModes = areConfigModes;
15
+ function isStoredMode(mode) {
16
+ return STORED_MODES.includes(mode);
17
+ }
18
+ exports.isStoredMode = isStoredMode;
19
+ async function assertDir(dir) {
15
20
  try {
16
21
  await promises_1.default.access(dir);
17
22
  }
@@ -19,7 +24,7 @@ async function ensureDirExists(dir) {
19
24
  await promises_1.default.mkdir(dir, { recursive: true });
20
25
  }
21
26
  }
22
- exports.ensureDirExists = ensureDirExists;
27
+ exports.assertDir = assertDir;
23
28
  async function toBuffer(body) {
24
29
  return new Promise((resolve) => {
25
30
  if (Buffer.isBuffer(body))
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/BinaryData/utils.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAGlC,kEAAyC;AAQ5B,QAAA,iBAAiB,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAU,CAAC;AAE1E,SAAgB,aAAa,CAAC,KAAe;IAC5C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAiB,CAAC,QAAQ,CAAC,CAAoB,CAAC,CAAC,CAAC;AAC7E,CAAC;AAFD,sCAEC;AAEM,KAAK,UAAU,eAAe,CAAC,GAAW;IAChD,IAAI;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACrB;IAAC,MAAM;QACP,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACzC;AACF,CAAC;AAND,0CAMC;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAuB;IACrD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;;YACpC,IAAI,CAAC,IAAI,CAAC,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACJ,CAAC;AALD,4BAKC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/BinaryData/utils.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAGlC,kEAAyC;AAE5B,QAAA,YAAY,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAU,CAAC;AAErE,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAU,CAAC;AAEpE,SAAgB,cAAc,CAAC,KAAe;IAC7C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAY,CAAC,QAAQ,CAAC,CAA0B,CAAC,CAAC,CAAC;AAC9E,CAAC;AAFD,wCAEC;AAED,SAAgB,YAAY,CAAC,IAAY;IACxC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAA6B,CAAC,CAAC;AAC7D,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,SAAS,CAAC,GAAW;IAC1C,IAAI;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACrB;IAAC,MAAM;QACP,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACzC;AACF,CAAC;AAND,8BAMC;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAuB;IACrD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;;YACpC,IAAI,CAAC,IAAI,CAAC,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACJ,CAAC;AALD,4BAKC"}
@@ -34,6 +34,7 @@ export declare function continueOnFail(node: INode): boolean;
34
34
  export declare function getNodeWebhookUrl(name: string, workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, timezone: string, additionalKeys: IWorkflowDataProxyAdditionalKeys, isTest?: boolean): string | undefined;
35
35
  export declare function getTimezone(workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData): string;
36
36
  export declare function getWebhookDescription(name: string, workflow: Workflow, node: INode): IWebhookDescription | undefined;
37
+ export declare function copyInputItems(items: INodeExecutionData[], properties: string[]): IDataObject[];
37
38
  export declare function getExecutePollFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): IPollFunctions;
38
39
  export declare function getExecuteTriggerFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): ITriggerFunctions;
39
40
  export declare function getExecuteFunctions(workflow: Workflow, runExecutionData: IRunExecutionData, runIndex: number, connectionInputData: INodeExecutionData[], inputData: ITaskDataConnections, node: INode, additionalData: IWorkflowExecuteAdditionalData, executeData: IExecuteData, mode: WorkflowExecuteMode): IExecuteFunctions;
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getExecuteWebhookFunctions = exports.getExecuteHookFunctions = exports.getLoadOptionsFunctions = exports.getCredentialTestFunctions = exports.getExecuteSingleFunctions = exports.getExecuteFunctions = exports.getExecuteTriggerFunctions = exports.getExecutePollFunctions = exports.getWebhookDescription = exports.getTimezone = exports.getNodeWebhookUrl = exports.continueOnFail = exports.getNodeParameter = exports.validateValueAgainstSchema = exports.getCredentials = exports.getAdditionalKeys = exports.requestWithAuthentication = exports.normalizeItems = exports.constructExecutionMetaData = exports.returnJsonArray = exports.httpRequestWithAuthentication = exports.requestOAuth1 = exports.requestOAuth2 = exports.copyBinaryFile = exports.setBinaryDataBuffer = exports.getBinaryDataBuffer = exports.assertBinaryData = exports.getBinaryStream = exports.getBinaryMetadata = exports.getBinaryPath = exports.proxyRequestToAxios = exports.parseIncomingMessage = void 0;
29
+ exports.getExecuteWebhookFunctions = exports.getExecuteHookFunctions = exports.getLoadOptionsFunctions = exports.getCredentialTestFunctions = exports.getExecuteSingleFunctions = exports.getExecuteFunctions = exports.getExecuteTriggerFunctions = exports.getExecutePollFunctions = exports.copyInputItems = exports.getWebhookDescription = exports.getTimezone = exports.getNodeWebhookUrl = exports.continueOnFail = exports.getNodeParameter = exports.validateValueAgainstSchema = exports.getCredentials = exports.getAdditionalKeys = exports.requestWithAuthentication = exports.normalizeItems = exports.constructExecutionMetaData = exports.returnJsonArray = exports.httpRequestWithAuthentication = exports.requestOAuth1 = exports.requestOAuth2 = exports.copyBinaryFile = exports.setBinaryDataBuffer = exports.getBinaryDataBuffer = exports.assertBinaryData = exports.getBinaryStream = exports.getBinaryMetadata = exports.getBinaryPath = exports.proxyRequestToAxios = exports.parseIncomingMessage = void 0;
30
30
  const client_oauth2_1 = require("@n8n/client-oauth2");
31
31
  const axios_1 = __importDefault(require("axios"));
32
32
  const crypto_1 = __importStar(require("crypto"));
@@ -1683,6 +1683,21 @@ const getBinaryHelperFunctions = ({ executionId }, workflowId) => ({
1683
1683
  throw new Error('copyBinaryFile has been removed. Please upgrade this node');
1684
1684
  },
1685
1685
  });
1686
+ function copyInputItems(items, properties) {
1687
+ return items.map((item) => {
1688
+ const newItem = {};
1689
+ for (const property of properties) {
1690
+ if (item.json[property] === undefined) {
1691
+ newItem[property] = null;
1692
+ }
1693
+ else {
1694
+ newItem[property] = (0, n8n_workflow_1.deepCopy)(item.json[property]);
1695
+ }
1696
+ }
1697
+ return newItem;
1698
+ });
1699
+ }
1700
+ exports.copyInputItems = copyInputItems;
1686
1701
  function getExecutePollFunctions(workflow, node, additionalData, mode, activation) {
1687
1702
  return ((workflow, node) => {
1688
1703
  return {
@@ -1941,6 +1956,7 @@ function getExecuteFunctions(workflow, runExecutionData, runIndex, connectionInp
1941
1956
  },
1942
1957
  helpers: {
1943
1958
  createDeferredPromise: n8n_workflow_1.createDeferredPromise,
1959
+ copyInputItems,
1944
1960
  ...getRequestHelperFunctions(workflow, node, additionalData),
1945
1961
  ...getFileSystemHelperFunctions(node),
1946
1962
  ...getBinaryHelperFunctions(additionalData, workflow.id),