n8n-core 2.32.2 → 2.33.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/dist/binary-data/binary-data.service.d.ts +1 -1
- package/dist/binary-data/binary-data.service.js +7 -2
- package/dist/binary-data/binary-data.service.js.map +1 -1
- package/dist/binary-data/{azure-blob.manager.d.ts → blob.manager.d.ts} +14 -4
- package/dist/binary-data/blob.manager.js +145 -0
- package/dist/binary-data/blob.manager.js.map +1 -0
- package/dist/binary-data/index.d.ts +1 -2
- package/dist/binary-data/index.js +3 -1
- package/dist/binary-data/index.js.map +1 -1
- package/dist/binary-data/types.d.ts +3 -6
- package/dist/binary-data/utils.d.ts +0 -2
- package/dist/binary-data/utils.js +0 -51
- package/dist/binary-data/utils.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/execution-engine/active-workflow-triggers.d.ts +1 -0
- package/dist/execution-engine/active-workflow-triggers.js +34 -5
- package/dist/execution-engine/active-workflow-triggers.js.map +1 -1
- package/dist/execution-engine/execution-context-hook-registry.service.d.ts +2 -0
- package/dist/execution-engine/execution-context-hook-registry.service.js +9 -0
- package/dist/execution-engine/execution-context-hook-registry.service.js.map +1 -1
- package/dist/execution-engine/execution-context.d.ts +1 -1
- package/dist/execution-engine/execution-context.js +4 -0
- package/dist/execution-engine/execution-context.js.map +1 -1
- package/dist/execution-engine/execution-context.service.d.ts +1 -0
- package/dist/execution-engine/execution-context.service.js +19 -0
- package/dist/execution-engine/execution-context.service.js.map +1 -1
- package/dist/execution-engine/index.d.ts +3 -0
- package/dist/execution-engine/index.js +7 -1
- package/dist/execution-engine/index.js.map +1 -1
- package/dist/execution-engine/node-execution-context/base-execute-context.d.ts +1 -0
- package/dist/execution-engine/node-execution-context/base-execute-context.js +15 -0
- package/dist/execution-engine/node-execution-context/base-execute-context.js.map +1 -1
- package/dist/execution-engine/node-execution-context/node-execution-context.js +1 -1
- package/dist/execution-engine/node-execution-context/node-execution-context.js.map +1 -1
- package/dist/execution-engine/node-execution-context/utils/request-helpers/oauth.js +12 -2
- package/dist/execution-engine/node-execution-context/utils/request-helpers/oauth.js.map +1 -1
- package/dist/execution-engine/noop-poll-job-manager.d.ts +8 -0
- package/dist/execution-engine/noop-poll-job-manager.js +14 -0
- package/dist/execution-engine/noop-poll-job-manager.js.map +1 -0
- package/dist/execution-engine/poll-job-manager.d.ts +7 -0
- package/dist/execution-engine/poll-job-manager.js +7 -0
- package/dist/execution-engine/poll-job-manager.js.map +1 -0
- package/dist/instance-settings/instance-settings.d.ts +3 -0
- package/dist/instance-settings/instance-settings.js +8 -5
- package/dist/instance-settings/instance-settings.js.map +1 -1
- package/package.json +11 -13
- package/dist/binary-data/azure-blob/azure-blob.config.d.ts +0 -8
- package/dist/binary-data/azure-blob/azure-blob.config.js +0 -52
- package/dist/binary-data/azure-blob/azure-blob.config.js.map +0 -1
- package/dist/binary-data/azure-blob/azure-blob.service.ee.d.ts +0 -25
- package/dist/binary-data/azure-blob/azure-blob.service.ee.js +0 -157
- package/dist/binary-data/azure-blob/azure-blob.service.ee.js.map +0 -1
- package/dist/binary-data/azure-blob.manager.js +0 -81
- package/dist/binary-data/azure-blob.manager.js.map +0 -1
- package/dist/binary-data/file-system.manager.d.ts +0 -31
- package/dist/binary-data/file-system.manager.js +0 -151
- package/dist/binary-data/file-system.manager.js.map +0 -1
- package/dist/binary-data/object-store/object-store.config.d.ts +0 -21
- package/dist/binary-data/object-store/object-store.config.js +0 -93
- package/dist/binary-data/object-store/object-store.config.js.map +0 -1
- package/dist/binary-data/object-store/object-store.service.ee.d.ts +0 -49
- package/dist/binary-data/object-store/object-store.service.ee.js +0 -290
- package/dist/binary-data/object-store/object-store.service.ee.js.map +0 -1
- package/dist/binary-data/object-store/types.d.ts +0 -8
- package/dist/binary-data/object-store/types.js +0 -3
- package/dist/binary-data/object-store/types.js.map +0 -1
- package/dist/binary-data/object-store.manager.d.ts +0 -23
- package/dist/binary-data/object-store.manager.js +0 -87
- package/dist/binary-data/object-store.manager.js.map +0 -1
|
@@ -21,7 +21,7 @@ export declare class BinaryDataService {
|
|
|
21
21
|
getAsStream(binaryDataId: string, chunkSize?: number): Promise<Readable>;
|
|
22
22
|
getAsBuffer(binaryData: IBinaryData): Promise<Buffer<ArrayBufferLike>>;
|
|
23
23
|
getPath(binaryDataId: string): string;
|
|
24
|
-
getMetadata(binaryDataId: string): Promise<
|
|
24
|
+
getMetadata(binaryDataId: string): Promise<import("@n8n/blob-storage").BlobMetadata>;
|
|
25
25
|
deleteMany(locations: BinaryData.FileLocation[]): Promise<void>;
|
|
26
26
|
deleteManyByBinaryDataId(ids: string[]): Promise<void>;
|
|
27
27
|
duplicateBinaryData(location: BinaryData.FileLocation, inputData: Array<INodeExecutionData[] | null>): Promise<INodeExecutionData[][]>;
|
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.BinaryDataService = void 0;
|
|
16
16
|
const backend_common_1 = require("@n8n/backend-common");
|
|
17
17
|
const backend_network_1 = require("@n8n/backend-network");
|
|
18
|
+
const blob_storage_1 = require("@n8n/blob-storage");
|
|
18
19
|
const di_1 = require("@n8n/di");
|
|
19
20
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
20
21
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
@@ -22,6 +23,7 @@ const promises_1 = require("node:fs/promises");
|
|
|
22
23
|
const pretty_bytes_1 = __importDefault(require("pretty-bytes"));
|
|
23
24
|
const errors_1 = require("../errors");
|
|
24
25
|
const binary_data_config_1 = require("./binary-data.config");
|
|
26
|
+
const blob_manager_1 = require("./blob.manager");
|
|
25
27
|
const invalid_manager_error_1 = require("../errors/invalid-manager.error");
|
|
26
28
|
let BinaryDataService = class BinaryDataService {
|
|
27
29
|
constructor(config, errorReporter, logger) {
|
|
@@ -37,8 +39,11 @@ let BinaryDataService = class BinaryDataService {
|
|
|
37
39
|
async init() {
|
|
38
40
|
const { config } = this;
|
|
39
41
|
this.mode = config.mode === 'filesystem' ? 'filesystem-v2' : config.mode;
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
+
const fsByteStore = new blob_storage_1.FsByteStore({
|
|
43
|
+
storagePath: config.localStoragePath,
|
|
44
|
+
reportError: (error) => this.errorReporter.error(error),
|
|
45
|
+
});
|
|
46
|
+
this.managers.filesystem = new blob_manager_1.BinaryDataBlobManager(fsByteStore, this.errorReporter);
|
|
42
47
|
this.managers['filesystem-v2'] = this.managers.filesystem;
|
|
43
48
|
await this.managers.filesystem.init();
|
|
44
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-data.service.js","sourceRoot":"","sources":["../../src/binary-data/binary-data.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA6C;AAC7C,0DAAsD;AACtD,gCAAkC;AAClC,gEAA+B;AAE/B,+CAAgE;AAEhE,+CAAkD;AAClD,gEAAuC;AAGvC,qCAAyC;AAEzC,6DAAwD;
|
|
1
|
+
{"version":3,"file":"binary-data.service.js","sourceRoot":"","sources":["../../src/binary-data/binary-data.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { ByteStore } from '@n8n/blob-storage';
|
|
1
2
|
import type { Readable } from 'node:stream';
|
|
2
|
-
import {
|
|
3
|
+
import type { ErrorReporter } from '../errors';
|
|
3
4
|
import type { BinaryData } from './types';
|
|
4
|
-
export declare class
|
|
5
|
-
private readonly
|
|
6
|
-
|
|
5
|
+
export declare class BinaryDataBlobManager implements BinaryData.Manager {
|
|
6
|
+
private readonly byteStore;
|
|
7
|
+
private readonly errorReporter;
|
|
8
|
+
constructor(byteStore: ByteStore, errorReporter: ErrorReporter);
|
|
7
9
|
init(): Promise<void>;
|
|
8
10
|
store(location: BinaryData.FileLocation, bufferOrStream: Buffer | Readable, metadata: BinaryData.PreWriteMetadata): Promise<{
|
|
9
11
|
fileId: string;
|
|
@@ -13,6 +15,8 @@ export declare class AzureBlobManager implements BinaryData.Manager {
|
|
|
13
15
|
getAsBuffer(fileId: string): Promise<Buffer<ArrayBufferLike>>;
|
|
14
16
|
getAsStream(fileId: string, chunkSize?: number): Promise<Readable>;
|
|
15
17
|
getMetadata(fileId: string): Promise<BinaryData.Metadata>;
|
|
18
|
+
deleteMany(locations: BinaryData.FileLocation[]): Promise<void>;
|
|
19
|
+
deleteManyByFileId(ids: string[]): Promise<void>;
|
|
16
20
|
copyByFileId(targetLocation: BinaryData.FileLocation, sourceFileId: string): Promise<string>;
|
|
17
21
|
copyByFilePath(targetLocation: BinaryData.FileLocation, sourcePath: string, metadata: BinaryData.PreWriteMetadata): Promise<{
|
|
18
22
|
fileId: string;
|
|
@@ -20,4 +24,10 @@ export declare class AzureBlobManager implements BinaryData.Manager {
|
|
|
20
24
|
}>;
|
|
21
25
|
rename(oldFileId: string, newFileId: string): Promise<void>;
|
|
22
26
|
private toFileId;
|
|
27
|
+
private toRelativePath;
|
|
28
|
+
private parseFileId;
|
|
29
|
+
private assertPathSegments;
|
|
30
|
+
private deleteBinaryDataDirs;
|
|
31
|
+
private metadataKey;
|
|
32
|
+
private storeMetadata;
|
|
23
33
|
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BinaryDataBlobManager = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
8
|
+
const file_not_found_error_1 = require("../errors/file-not-found.error");
|
|
9
|
+
const EXECUTION_PATH_MATCHER = /^workflows\/([^/]+)\/executions\/([^/]+)\/binary_data\//;
|
|
10
|
+
class BinaryDataBlobManager {
|
|
11
|
+
constructor(byteStore, errorReporter) {
|
|
12
|
+
this.byteStore = byteStore;
|
|
13
|
+
this.errorReporter = errorReporter;
|
|
14
|
+
}
|
|
15
|
+
async init() {
|
|
16
|
+
await this.byteStore.init?.();
|
|
17
|
+
}
|
|
18
|
+
async store(location, bufferOrStream, metadata) {
|
|
19
|
+
const fileId = this.toFileId(location);
|
|
20
|
+
const fileSize = await this.byteStore.write(fileId, bufferOrStream, metadata);
|
|
21
|
+
await this.storeMetadata(fileId, { ...metadata, fileSize });
|
|
22
|
+
return { fileId, fileSize };
|
|
23
|
+
}
|
|
24
|
+
getPath(fileId) {
|
|
25
|
+
return this.byteStore.getAbsolutePath?.(fileId) ?? fileId;
|
|
26
|
+
}
|
|
27
|
+
async getAsBuffer(fileId) {
|
|
28
|
+
const buffer = await this.byteStore.read(fileId);
|
|
29
|
+
if (!buffer)
|
|
30
|
+
throw new file_not_found_error_1.FileNotFoundError(fileId);
|
|
31
|
+
return buffer;
|
|
32
|
+
}
|
|
33
|
+
async getAsStream(fileId, chunkSize) {
|
|
34
|
+
const stream = await this.byteStore.readStream(fileId, { chunkSize });
|
|
35
|
+
if (!stream)
|
|
36
|
+
throw new file_not_found_error_1.FileNotFoundError(fileId);
|
|
37
|
+
return stream;
|
|
38
|
+
}
|
|
39
|
+
async getMetadata(fileId) {
|
|
40
|
+
if (this.byteStore.getMetadata) {
|
|
41
|
+
const metadata = await this.byteStore.getMetadata(fileId);
|
|
42
|
+
if (!metadata)
|
|
43
|
+
throw new file_not_found_error_1.FileNotFoundError(fileId);
|
|
44
|
+
return metadata;
|
|
45
|
+
}
|
|
46
|
+
const metadataFile = await this.byteStore.read(this.metadataKey(fileId));
|
|
47
|
+
if (!metadataFile)
|
|
48
|
+
throw new file_not_found_error_1.FileNotFoundError(fileId);
|
|
49
|
+
return (0, n8n_workflow_1.jsonParse)(metadataFile.toString('utf-8'));
|
|
50
|
+
}
|
|
51
|
+
async deleteMany(locations) {
|
|
52
|
+
if (locations.length === 0)
|
|
53
|
+
return;
|
|
54
|
+
await this.deleteBinaryDataDirs(locations);
|
|
55
|
+
}
|
|
56
|
+
async deleteManyByFileId(ids) {
|
|
57
|
+
if (!this.byteStore.deletePrefix)
|
|
58
|
+
return;
|
|
59
|
+
const locations = ids.flatMap((id) => {
|
|
60
|
+
try {
|
|
61
|
+
return [this.parseFileId(id)];
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
this.errorReporter.warn(`Could not parse file ID ${id}. Skip deletion`);
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
await this.deleteBinaryDataDirs(locations);
|
|
69
|
+
}
|
|
70
|
+
async copyByFileId(targetLocation, sourceFileId) {
|
|
71
|
+
const targetFileId = this.toFileId(targetLocation);
|
|
72
|
+
if (this.byteStore.getMetadata) {
|
|
73
|
+
await this.byteStore.copy(sourceFileId, targetFileId);
|
|
74
|
+
return targetFileId;
|
|
75
|
+
}
|
|
76
|
+
const metadata = await this.getMetadata(sourceFileId);
|
|
77
|
+
await this.byteStore.copy(sourceFileId, targetFileId);
|
|
78
|
+
await this.storeMetadata(targetFileId, metadata);
|
|
79
|
+
return targetFileId;
|
|
80
|
+
}
|
|
81
|
+
async copyByFilePath(targetLocation, sourcePath, metadata) {
|
|
82
|
+
const fileId = this.toFileId(targetLocation);
|
|
83
|
+
const fileSize = await this.byteStore.write(fileId, (0, node_fs_1.createReadStream)(sourcePath), metadata);
|
|
84
|
+
await this.storeMetadata(fileId, { ...metadata, fileSize });
|
|
85
|
+
return { fileId, fileSize };
|
|
86
|
+
}
|
|
87
|
+
async rename(oldFileId, newFileId) {
|
|
88
|
+
await this.byteStore.rename(oldFileId, newFileId);
|
|
89
|
+
if (!this.byteStore.getMetadata) {
|
|
90
|
+
await this.byteStore.rename(this.metadataKey(oldFileId), this.metadataKey(newFileId));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
toFileId(location) {
|
|
94
|
+
return `${this.toRelativePath(location)}/binary_data/${(0, uuid_1.v4)()}`;
|
|
95
|
+
}
|
|
96
|
+
toRelativePath(location) {
|
|
97
|
+
switch (location.type) {
|
|
98
|
+
case 'execution': {
|
|
99
|
+
const executionId = location.executionId || 'temp';
|
|
100
|
+
return `workflows/${location.workflowId}/executions/${executionId}`;
|
|
101
|
+
}
|
|
102
|
+
case 'custom': {
|
|
103
|
+
this.assertPathSegments(location.pathSegments);
|
|
104
|
+
return location.pathSegments.join('/');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
parseFileId(fileId) {
|
|
109
|
+
const executionMatch = fileId.match(EXECUTION_PATH_MATCHER);
|
|
110
|
+
if (executionMatch) {
|
|
111
|
+
return utils_1.FileLocation.ofExecution(executionMatch[1], executionMatch[2]);
|
|
112
|
+
}
|
|
113
|
+
const binaryDataIndex = fileId.lastIndexOf('/binary_data/');
|
|
114
|
+
if (binaryDataIndex !== -1) {
|
|
115
|
+
const pathSegments = fileId.substring(0, binaryDataIndex).split('/');
|
|
116
|
+
this.assertPathSegments(pathSegments);
|
|
117
|
+
return utils_1.FileLocation.ofCustom({ pathSegments });
|
|
118
|
+
}
|
|
119
|
+
throw new n8n_workflow_1.UnexpectedError(`File ID ${fileId} has invalid format.`);
|
|
120
|
+
}
|
|
121
|
+
assertPathSegments(pathSegments) {
|
|
122
|
+
if (pathSegments.length === 0 || pathSegments.some((segment) => segment.length === 0)) {
|
|
123
|
+
throw new n8n_workflow_1.UnexpectedError('Custom file location requires non-empty path segments');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async deleteBinaryDataDirs(locations) {
|
|
127
|
+
const deletePrefix = this.byteStore.deletePrefix?.bind(this.byteStore);
|
|
128
|
+
if (!deletePrefix || locations.length === 0)
|
|
129
|
+
return;
|
|
130
|
+
const prefixes = [
|
|
131
|
+
...new Set(locations.map((location) => `${this.toRelativePath(location)}/binary_data`)),
|
|
132
|
+
];
|
|
133
|
+
await Promise.all(prefixes.map(async (prefix) => await deletePrefix(prefix)));
|
|
134
|
+
}
|
|
135
|
+
metadataKey(fileId) {
|
|
136
|
+
return `${fileId}.metadata`;
|
|
137
|
+
}
|
|
138
|
+
async storeMetadata(fileId, metadata) {
|
|
139
|
+
if (this.byteStore.getMetadata)
|
|
140
|
+
return;
|
|
141
|
+
await this.byteStore.write(this.metadataKey(fileId), Buffer.from(JSON.stringify(metadata), 'utf-8'));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.BinaryDataBlobManager = BinaryDataBlobManager;
|
|
145
|
+
//# sourceMappingURL=blob.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob.manager.js","sourceRoot":"","sources":["../../src/binary-data/blob.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from './binary-data.service';
|
|
2
|
+
export { BinaryDataBlobManager } from './blob.manager';
|
|
2
3
|
export { BinaryDataConfig } from './binary-data.config';
|
|
3
4
|
export type * from './types';
|
|
4
|
-
export type { AzureBlobService } from './azure-blob/azure-blob.service.ee';
|
|
5
|
-
export type { ObjectStoreService } from './object-store/object-store.service.ee';
|
|
6
5
|
export { isStoredMode as isValidNonDefaultMode, FileLocation } from './utils';
|
|
@@ -14,8 +14,10 @@ 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.FileLocation = exports.isValidNonDefaultMode = exports.BinaryDataConfig = void 0;
|
|
17
|
+
exports.FileLocation = exports.isValidNonDefaultMode = exports.BinaryDataConfig = exports.BinaryDataBlobManager = void 0;
|
|
18
18
|
__exportStar(require("./binary-data.service"), exports);
|
|
19
|
+
var blob_manager_1 = require("./blob.manager");
|
|
20
|
+
Object.defineProperty(exports, "BinaryDataBlobManager", { enumerable: true, get: function () { return blob_manager_1.BinaryDataBlobManager; } });
|
|
19
21
|
var binary_data_config_1 = require("./binary-data.config");
|
|
20
22
|
Object.defineProperty(exports, "BinaryDataConfig", { enumerable: true, get: function () { return binary_data_config_1.BinaryDataConfig; } });
|
|
21
23
|
var utils_1 = require("./utils");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/binary-data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/binary-data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,+CAAuD;AAA9C,qHAAA,qBAAqB,OAAA;AAC9B,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AAEzB,iCAA8E;AAArE,8GAAA,YAAY,OAAyB;AAAE,qGAAA,YAAY,OAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BlobMetadata, PreWriteBlobMetadata } from '@n8n/blob-storage';
|
|
1
2
|
import type { Readable } from 'stream';
|
|
2
3
|
import type { BINARY_DATA_MODES } from './binary-data.config';
|
|
3
4
|
export declare namespace BinaryData {
|
|
@@ -6,16 +7,12 @@ export declare namespace BinaryData {
|
|
|
6
7
|
export type ConfigMode = (typeof BINARY_DATA_MODES)[number];
|
|
7
8
|
export type ServiceMode = Exclude<ConfigMode, LegacyMode> | UpgradedMode;
|
|
8
9
|
export type StoredMode = Exclude<ConfigMode | UpgradedMode, 'default'>;
|
|
9
|
-
export type Metadata =
|
|
10
|
-
fileName?: string;
|
|
11
|
-
mimeType?: string;
|
|
12
|
-
fileSize: number;
|
|
13
|
-
};
|
|
10
|
+
export type Metadata = BlobMetadata;
|
|
14
11
|
export type WriteResult = {
|
|
15
12
|
fileId: string;
|
|
16
13
|
fileSize: number;
|
|
17
14
|
};
|
|
18
|
-
export type PreWriteMetadata =
|
|
15
|
+
export type PreWriteMetadata = PreWriteBlobMetadata;
|
|
19
16
|
export type FileLocation = {
|
|
20
17
|
type: 'execution';
|
|
21
18
|
workflowId: string;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { Transform } from 'node:stream';
|
|
2
1
|
import type { BinaryData } from './types';
|
|
3
2
|
export { assertDir, exists } from '@n8n/backend-common';
|
|
4
3
|
export declare function isStoredMode(mode: string): mode is BinaryData.StoredMode;
|
|
5
|
-
export declare function createFixedSizeChunker(chunkSize: number): Transform;
|
|
6
4
|
export declare const FileLocation: {
|
|
7
5
|
ofExecution: (workflowId: string, executionId: string) => BinaryData.FileLocation;
|
|
8
6
|
ofCustom: ({ pathSegments, sourceType, sourceId, }: {
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FileLocation = exports.exists = exports.assertDir = void 0;
|
|
4
4
|
exports.isStoredMode = isStoredMode;
|
|
5
|
-
exports.createFixedSizeChunker = createFixedSizeChunker;
|
|
6
|
-
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
|
-
const node_stream_1 = require("node:stream");
|
|
8
5
|
var backend_common_1 = require("@n8n/backend-common");
|
|
9
6
|
Object.defineProperty(exports, "assertDir", { enumerable: true, get: function () { return backend_common_1.assertDir; } });
|
|
10
7
|
Object.defineProperty(exports, "exists", { enumerable: true, get: function () { return backend_common_1.exists; } });
|
|
@@ -12,54 +9,6 @@ const STORED_MODES = ['filesystem', 'filesystem-v2', 's3', 'azure', 'database'];
|
|
|
12
9
|
function isStoredMode(mode) {
|
|
13
10
|
return STORED_MODES.includes(mode);
|
|
14
11
|
}
|
|
15
|
-
function createFixedSizeChunker(chunkSize) {
|
|
16
|
-
if (chunkSize <= 0) {
|
|
17
|
-
throw new n8n_workflow_1.UnexpectedError(`createFixedSizeChunker requires chunkSize > 0, got ${chunkSize}`);
|
|
18
|
-
}
|
|
19
|
-
const queue = [];
|
|
20
|
-
let queued = 0;
|
|
21
|
-
const take = (size) => {
|
|
22
|
-
const out = Buffer.allocUnsafe(size);
|
|
23
|
-
let written = 0;
|
|
24
|
-
while (written < size) {
|
|
25
|
-
const head = queue[0];
|
|
26
|
-
const need = size - written;
|
|
27
|
-
if (head.length <= need) {
|
|
28
|
-
head.copy(out, written);
|
|
29
|
-
written += head.length;
|
|
30
|
-
queue.shift();
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
head.copy(out, written, 0, need);
|
|
34
|
-
queue[0] = head.subarray(need);
|
|
35
|
-
written += need;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
queued -= size;
|
|
39
|
-
return out;
|
|
40
|
-
};
|
|
41
|
-
return new node_stream_1.Transform({
|
|
42
|
-
transform(chunk, _encoding, done) {
|
|
43
|
-
queue.push(chunk);
|
|
44
|
-
queued += chunk.length;
|
|
45
|
-
while (queued >= chunkSize) {
|
|
46
|
-
this.push(take(chunkSize));
|
|
47
|
-
}
|
|
48
|
-
done();
|
|
49
|
-
},
|
|
50
|
-
flush(done) {
|
|
51
|
-
if (queued > 0) {
|
|
52
|
-
this.push(take(queued));
|
|
53
|
-
}
|
|
54
|
-
done();
|
|
55
|
-
},
|
|
56
|
-
destroy(error, done) {
|
|
57
|
-
queue.length = 0;
|
|
58
|
-
queued = 0;
|
|
59
|
-
done(error);
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
12
|
exports.FileLocation = {
|
|
64
13
|
ofExecution: (workflowId, executionId) => ({
|
|
65
14
|
type: 'execution',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/binary-data/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/binary-data/utils.ts"],"names":[],"mappings":";;;;AAEA,sDAAwD;AAA/C,2GAAA,SAAS,OAAA;AAAE,wGAAA,MAAM,OAAA;AAE1B,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AAEzF,sBAA6B,IAAY;IACxC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAA6B,CAAC,CAAC;AAC7D,CAAC;AAEY,QAAA,YAAY,GAAG;IAC3B,WAAW,EAAE,CAAC,UAAkB,EAAE,WAAmB,EAA2B,EAAE,CAAC,CAAC;QACnF,IAAI,EAAE,WAAW;QACjB,UAAU;QACV,WAAW;KACX,CAAC;IAMF,QAAQ,EAAE,CAAC,EACV,YAAY,EACZ,UAAU,EACV,QAAQ,GAKR,EAA2B,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,QAAQ;QACd,YAAY;QACZ,UAAU;QACV,QAAQ;KACR,CAAC;CACF,CAAC"}
|