@fsai-flow/core 0.0.3 → 0.0.4

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 (90) hide show
  1. package/dist/README.md +31 -0
  2. package/dist/package.json +54 -0
  3. package/dist/src/index.d.ts +16 -0
  4. package/dist/src/index.js +30 -0
  5. package/dist/src/index.js.map +1 -0
  6. package/dist/src/lib/ActiveWebhooks.d.ts +59 -0
  7. package/dist/src/lib/ActiveWebhooks.js +184 -0
  8. package/dist/src/lib/ActiveWebhooks.js.map +1 -0
  9. package/dist/src/lib/ActiveWorkflows.d.ts +87 -0
  10. package/dist/src/lib/ActiveWorkflows.js +456 -0
  11. package/dist/src/lib/ActiveWorkflows.js.map +1 -0
  12. package/dist/src/lib/BinaryDataManager/FileSystem.d.ts +26 -0
  13. package/dist/src/lib/BinaryDataManager/FileSystem.js +179 -0
  14. package/dist/src/lib/BinaryDataManager/FileSystem.js.map +1 -0
  15. package/dist/src/lib/BinaryDataManager/index.d.ts +21 -0
  16. package/dist/src/lib/BinaryDataManager/index.js +146 -0
  17. package/dist/src/lib/BinaryDataManager/index.js.map +1 -0
  18. package/dist/src/lib/ChangeCase.d.ts +9 -0
  19. package/dist/src/lib/ChangeCase.js +43 -0
  20. package/dist/src/lib/ChangeCase.js.map +1 -0
  21. package/dist/src/lib/Constants.d.ts +14 -0
  22. package/dist/src/lib/Constants.js +19 -0
  23. package/dist/src/lib/Constants.js.map +1 -0
  24. package/dist/src/lib/Credentials.d.ts +27 -0
  25. package/dist/src/lib/Credentials.js +89 -0
  26. package/dist/src/lib/Credentials.js.map +1 -0
  27. package/dist/src/lib/FileSystem.d.ts +26 -0
  28. package/dist/src/lib/FileSystem.js +179 -0
  29. package/dist/src/lib/FileSystem.js.map +1 -0
  30. package/dist/src/lib/InputConnectionDataLegacy.d.ts +2 -0
  31. package/dist/src/lib/InputConnectionDataLegacy.js +79 -0
  32. package/dist/src/lib/InputConnectionDataLegacy.js.map +1 -0
  33. package/dist/src/lib/Interfaces.d.ts +148 -0
  34. package/dist/src/lib/Interfaces.js +3 -0
  35. package/dist/src/lib/Interfaces.js.map +1 -0
  36. package/dist/src/lib/LoadNodeParameterOptions.d.ts +39 -0
  37. package/dist/src/lib/LoadNodeParameterOptions.js +150 -0
  38. package/dist/src/lib/LoadNodeParameterOptions.js.map +1 -0
  39. package/dist/src/lib/NodeExecuteFunctions.d.ts +226 -0
  40. package/dist/src/lib/NodeExecuteFunctions.js +2479 -0
  41. package/dist/src/lib/NodeExecuteFunctions.js.map +1 -0
  42. package/dist/src/lib/NodesLoader/constants.d.ts +5 -0
  43. package/dist/src/lib/NodesLoader/constants.js +106 -0
  44. package/dist/src/lib/NodesLoader/constants.js.map +1 -0
  45. package/dist/src/lib/NodesLoader/custom-directory-loader.d.ts +9 -0
  46. package/dist/src/lib/NodesLoader/custom-directory-loader.js +36 -0
  47. package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +1 -0
  48. package/dist/src/lib/NodesLoader/directory-loader.d.ts +66 -0
  49. package/dist/src/lib/NodesLoader/directory-loader.js +325 -0
  50. package/dist/src/lib/NodesLoader/directory-loader.js.map +1 -0
  51. package/dist/src/lib/NodesLoader/index.d.ts +5 -0
  52. package/dist/src/lib/NodesLoader/index.js +12 -0
  53. package/dist/src/lib/NodesLoader/index.js.map +1 -0
  54. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.d.ts +7 -0
  55. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +52 -0
  56. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +1 -0
  57. package/dist/src/lib/NodesLoader/load-class-in-isolation.d.ts +1 -0
  58. package/dist/src/lib/NodesLoader/load-class-in-isolation.js +22 -0
  59. package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +1 -0
  60. package/dist/src/lib/NodesLoader/package-directory-loader.d.ts +17 -0
  61. package/dist/src/lib/NodesLoader/package-directory-loader.js +100 -0
  62. package/dist/src/lib/NodesLoader/package-directory-loader.js.map +1 -0
  63. package/dist/src/lib/NodesLoader/types.d.ts +14 -0
  64. package/dist/src/lib/NodesLoader/types.js +3 -0
  65. package/dist/src/lib/NodesLoader/types.js.map +1 -0
  66. package/dist/src/lib/RedisLeaderElectionManager.d.ts +53 -0
  67. package/dist/src/lib/RedisLeaderElectionManager.js +294 -0
  68. package/dist/src/lib/RedisLeaderElectionManager.js.map +1 -0
  69. package/dist/src/lib/UserSettings.d.ts +80 -0
  70. package/dist/src/lib/UserSettings.js +261 -0
  71. package/dist/src/lib/UserSettings.js.map +1 -0
  72. package/dist/src/lib/WorkflowExecute.d.ts +53 -0
  73. package/dist/src/lib/WorkflowExecute.js +854 -0
  74. package/dist/src/lib/WorkflowExecute.js.map +1 -0
  75. package/dist/src/lib/index.d.ts +21 -0
  76. package/dist/src/lib/index.js +146 -0
  77. package/dist/src/lib/index.js.map +1 -0
  78. package/dist/src/utils/crypto.d.ts +1 -0
  79. package/dist/src/utils/crypto.js +8 -0
  80. package/dist/src/utils/crypto.js.map +1 -0
  81. package/package.json +2 -2
  82. package/src/lib/ActiveWebhooks.ts +1 -1
  83. package/src/lib/ActiveWorkflows.ts +1 -1
  84. package/src/lib/LoadNodeParameterOptions.ts +1 -1
  85. package/src/lib/NodeExecuteFunctions.ts +1 -1
  86. package/src/lib/RedisLeaderElectionManager.ts +82 -0
  87. package/src/lib/UserSettings.ts +1 -1
  88. package/src/lib/WorkflowExecute.ts +1 -5
  89. package/tsconfig.json +0 -1
  90. package/tsconfig.base.json +0 -28
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BinaryDataFileSystem = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_1 = require("fs");
6
+ const path = tslib_1.__importStar(require("path"));
7
+ const uuid_1 = require("uuid");
8
+ const PREFIX_METAFILE = 'binarymeta';
9
+ const PREFIX_PERSISTED_METAFILE = 'persistedmeta';
10
+ class BinaryDataFileSystem {
11
+ constructor(config) {
12
+ this.storagePath = config.localStoragePath;
13
+ this.binaryDataTTL = config.binaryDataTTL;
14
+ this.persistedBinaryDataTTL = config.persistedBinaryDataTTL;
15
+ }
16
+ init() {
17
+ return tslib_1.__awaiter(this, arguments, void 0, function* (startPurger = false) {
18
+ if (startPurger) {
19
+ setInterval(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ yield this.deleteMarkedFiles();
21
+ }), this.binaryDataTTL * 30000);
22
+ setInterval(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ yield this.deleteMarkedPersistedFiles();
24
+ }), this.persistedBinaryDataTTL * 30000);
25
+ }
26
+ return fs_1.promises
27
+ .readdir(this.storagePath)
28
+ .catch(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return fs_1.promises.mkdir(this.storagePath, { recursive: true }); }))
29
+ .then(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return fs_1.promises.readdir(this.getBinaryDataMetaPath()); }))
30
+ .catch(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return fs_1.promises.mkdir(this.getBinaryDataMetaPath(), { recursive: true }); }))
31
+ .then(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return fs_1.promises.readdir(this.getBinaryDataPersistMetaPath()); }))
32
+ .catch(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return fs_1.promises.mkdir(this.getBinaryDataPersistMetaPath(), { recursive: true }); }))
33
+ .then(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return this.deleteMarkedFiles(); }))
34
+ .then(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return this.deleteMarkedPersistedFiles(); }))
35
+ .then(() => { });
36
+ });
37
+ }
38
+ storeBinaryData(binaryBuffer, executionId) {
39
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
40
+ const binaryDataId = this.generateFileName(executionId);
41
+ return this.addBinaryIdToPersistMeta(executionId, binaryDataId).then(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return this.saveToLocalStorage(binaryBuffer, binaryDataId).then(() => binaryDataId); }));
42
+ });
43
+ }
44
+ retrieveBinaryDataByIdentifier(identifier) {
45
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
46
+ return this.retrieveFromLocalStorage(identifier);
47
+ });
48
+ }
49
+ markDataForDeletionByExecutionId(executionId) {
50
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
51
+ const tt = new Date(new Date().getTime() + this.binaryDataTTL * 60000);
52
+ return fs_1.promises.writeFile(path.join(this.getBinaryDataMetaPath(), `${PREFIX_METAFILE}_${executionId}_${tt.valueOf()}`), '');
53
+ });
54
+ }
55
+ deleteMarkedFiles() {
56
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
+ return this.deleteMarkedFilesByMeta(this.getBinaryDataMetaPath(), PREFIX_METAFILE);
58
+ });
59
+ }
60
+ deleteMarkedPersistedFiles() {
61
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
62
+ return this.deleteMarkedFilesByMeta(this.getBinaryDataPersistMetaPath(), PREFIX_PERSISTED_METAFILE);
63
+ });
64
+ }
65
+ addBinaryIdToPersistMeta(executionId, identifier) {
66
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
+ const currentTime = new Date().getTime();
68
+ const timeAtNextHour = currentTime + 3600000 - (currentTime % 3600000);
69
+ const timeoutTime = timeAtNextHour + this.persistedBinaryDataTTL * 60000;
70
+ const filePath = path.join(this.getBinaryDataPersistMetaPath(), `${PREFIX_PERSISTED_METAFILE}_${executionId}_${timeoutTime}`);
71
+ return fs_1.promises
72
+ .readFile(filePath)
73
+ .catch(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return fs_1.promises.writeFile(filePath, identifier); }))
74
+ .then(() => { });
75
+ });
76
+ }
77
+ deleteMarkedFilesByMeta(metaPath, filePrefix) {
78
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
+ const currentTimeValue = new Date().valueOf();
80
+ const metaFileNames = yield fs_1.promises.readdir(metaPath);
81
+ const execsAdded = {};
82
+ const proms = metaFileNames.reduce((prev, curr) => {
83
+ const [prefix, executionId, ts] = curr.split('_');
84
+ if (prefix !== filePrefix) {
85
+ return prev;
86
+ }
87
+ const execTimestamp = parseInt(ts, 10);
88
+ if (execTimestamp < currentTimeValue) {
89
+ if (execsAdded[executionId]) {
90
+ // do not delete data, only meta file
91
+ prev.push(this.deleteMetaFileByPath(path.join(metaPath, curr)));
92
+ return prev;
93
+ }
94
+ execsAdded[executionId] = 1;
95
+ prev.push(this.deleteBinaryDataByExecutionId(executionId).then(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return this.deleteMetaFileByPath(path.join(metaPath, curr)); })));
96
+ }
97
+ return prev;
98
+ }, [Promise.resolve()]);
99
+ return Promise.all(proms).then(() => { });
100
+ });
101
+ }
102
+ duplicateBinaryDataByIdentifier(binaryDataId, prefix) {
103
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
104
+ const newBinaryDataId = this.generateFileName(prefix);
105
+ return fs_1.promises
106
+ .copyFile(path.join(this.storagePath, binaryDataId), path.join(this.storagePath, newBinaryDataId))
107
+ .then(() => newBinaryDataId);
108
+ });
109
+ }
110
+ deleteBinaryDataByExecutionId(executionId) {
111
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
+ const regex = new RegExp(`${executionId}_*`);
113
+ const filenames = yield fs_1.promises.readdir(path.join(this.storagePath));
114
+ const proms = filenames.reduce((allProms, filename) => {
115
+ if (regex.test(filename)) {
116
+ allProms.push(fs_1.promises.rm(path.join(this.storagePath, filename)));
117
+ }
118
+ return allProms;
119
+ }, [Promise.resolve()]);
120
+ return Promise.all(proms).then(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return Promise.resolve(); }));
121
+ });
122
+ }
123
+ deleteBinaryDataByIdentifier(identifier) {
124
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
125
+ return this.deleteFromLocalStorage(identifier);
126
+ });
127
+ }
128
+ persistBinaryDataForExecutionId(executionId) {
129
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
130
+ return fs_1.promises.readdir(this.getBinaryDataPersistMetaPath()).then((metafiles) => tslib_1.__awaiter(this, void 0, void 0, function* () {
131
+ const proms = metafiles.reduce((prev, curr) => {
132
+ if (curr.startsWith(`${PREFIX_PERSISTED_METAFILE}_${executionId}_`)) {
133
+ prev.push(fs_1.promises.rm(path.join(this.getBinaryDataPersistMetaPath(), curr)));
134
+ return prev;
135
+ }
136
+ return prev;
137
+ }, [Promise.resolve()]);
138
+ return Promise.all(proms).then(() => { });
139
+ }));
140
+ });
141
+ }
142
+ generateFileName(prefix) {
143
+ return `${prefix}_${(0, uuid_1.v4)()}`;
144
+ }
145
+ getBinaryDataMetaPath() {
146
+ return path.join(this.storagePath, 'meta');
147
+ }
148
+ getBinaryDataPersistMetaPath() {
149
+ return path.join(this.storagePath, 'persistMeta');
150
+ }
151
+ deleteMetaFileByPath(metafilePath) {
152
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
153
+ return fs_1.promises.rm(metafilePath);
154
+ });
155
+ }
156
+ deleteFromLocalStorage(identifier) {
157
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
158
+ return fs_1.promises.rm(path.join(this.storagePath, identifier));
159
+ });
160
+ }
161
+ saveToLocalStorage(data, identifier) {
162
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
163
+ yield fs_1.promises.writeFile(path.join(this.storagePath, identifier), data);
164
+ });
165
+ }
166
+ retrieveFromLocalStorage(identifier) {
167
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
168
+ const filePath = path.join(this.storagePath, identifier);
169
+ try {
170
+ return yield fs_1.promises.readFile(filePath);
171
+ }
172
+ catch (e) {
173
+ throw new Error(`Error finding file: ${filePath}`);
174
+ }
175
+ });
176
+ }
177
+ }
178
+ exports.BinaryDataFileSystem = BinaryDataFileSystem;
179
+ //# sourceMappingURL=FileSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystem.js","sourceRoot":"","sources":["../../../../src/lib/BinaryDataManager/FileSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { IBinaryData, INodeExecutionData } from '@fsai-flow/workflow';
2
+ import { IBinaryDataConfig } from '../Interfaces';
3
+ export declare class BinaryDataManager {
4
+ private static instance;
5
+ private managers;
6
+ private binaryDataMode;
7
+ private availableModes;
8
+ constructor(config: IBinaryDataConfig);
9
+ static init(config: IBinaryDataConfig, mainManager?: boolean): Promise<void>;
10
+ static getInstance(): BinaryDataManager;
11
+ storeBinaryData(binaryData: IBinaryData, binaryBuffer: Buffer, executionId: string): Promise<IBinaryData>;
12
+ retrieveBinaryData(binaryData: IBinaryData): Promise<Buffer>;
13
+ retrieveBinaryDataByIdentifier(identifier: string): Promise<Buffer>;
14
+ markDataForDeletionByExecutionId(executionId: string): Promise<void>;
15
+ persistBinaryDataForExecutionId(executionId: string): Promise<void>;
16
+ deleteBinaryDataByExecutionId(executionId: string): Promise<void>;
17
+ duplicateBinaryData(inputData: Array<INodeExecutionData[] | null> | unknown, executionId: string): Promise<INodeExecutionData[][]>;
18
+ private generateBinaryId;
19
+ private splitBinaryModeFileId;
20
+ private duplicateBinaryDataInExecData;
21
+ }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BinaryDataManager = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const Constants_1 = require("../Constants");
6
+ const FileSystem_1 = require("./FileSystem");
7
+ class BinaryDataManager {
8
+ constructor(config) {
9
+ this.binaryDataMode = config.mode;
10
+ this.availableModes = config.availableModes.split(',');
11
+ this.managers = {};
12
+ }
13
+ static init(config_1) {
14
+ return tslib_1.__awaiter(this, arguments, void 0, function* (config, mainManager = false) {
15
+ if (BinaryDataManager.instance) {
16
+ throw new Error('Binary Data Manager already initialized');
17
+ }
18
+ BinaryDataManager.instance = new BinaryDataManager(config);
19
+ if (BinaryDataManager.instance.availableModes.includes('filesystem')) {
20
+ BinaryDataManager.instance.managers['filesystem'] = new FileSystem_1.BinaryDataFileSystem(config);
21
+ yield BinaryDataManager.instance.managers['filesystem'].init(mainManager);
22
+ }
23
+ return undefined;
24
+ });
25
+ }
26
+ static getInstance() {
27
+ if (!BinaryDataManager.instance) {
28
+ throw new Error('Binary Data Manager not initialized');
29
+ }
30
+ return BinaryDataManager.instance;
31
+ }
32
+ storeBinaryData(binaryData, binaryBuffer, executionId) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ const retBinaryData = binaryData;
35
+ if (this.managers[this.binaryDataMode]) {
36
+ return this.managers[this.binaryDataMode]
37
+ .storeBinaryData(binaryBuffer, executionId)
38
+ .then((filename) => {
39
+ retBinaryData.id = this.generateBinaryId(filename);
40
+ return retBinaryData;
41
+ });
42
+ }
43
+ retBinaryData.data = binaryBuffer.toString(Constants_1.BINARY_ENCODING);
44
+ return binaryData;
45
+ });
46
+ }
47
+ retrieveBinaryData(binaryData) {
48
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
49
+ if (binaryData.id) {
50
+ return this.retrieveBinaryDataByIdentifier(binaryData.id);
51
+ }
52
+ return Buffer.from(binaryData.data, Constants_1.BINARY_ENCODING);
53
+ });
54
+ }
55
+ retrieveBinaryDataByIdentifier(identifier) {
56
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
+ const { mode, id } = this.splitBinaryModeFileId(identifier);
58
+ if (this.managers[mode]) {
59
+ return this.managers[mode].retrieveBinaryDataByIdentifier(id);
60
+ }
61
+ throw new Error('Storage mode used to store binary data not available');
62
+ });
63
+ }
64
+ markDataForDeletionByExecutionId(executionId) {
65
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
66
+ if (this.managers[this.binaryDataMode]) {
67
+ return this.managers[this.binaryDataMode].markDataForDeletionByExecutionId(executionId);
68
+ }
69
+ return Promise.resolve();
70
+ });
71
+ }
72
+ persistBinaryDataForExecutionId(executionId) {
73
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
+ if (this.managers[this.binaryDataMode]) {
75
+ return this.managers[this.binaryDataMode].persistBinaryDataForExecutionId(executionId);
76
+ }
77
+ return Promise.resolve();
78
+ });
79
+ }
80
+ deleteBinaryDataByExecutionId(executionId) {
81
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
82
+ if (this.managers[this.binaryDataMode]) {
83
+ return this.managers[this.binaryDataMode].deleteBinaryDataByExecutionId(executionId);
84
+ }
85
+ return Promise.resolve();
86
+ });
87
+ }
88
+ duplicateBinaryData(inputData, executionId) {
89
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
90
+ if (inputData && this.managers[this.binaryDataMode]) {
91
+ const returnInputData = inputData.map((executionDataArray) => tslib_1.__awaiter(this, void 0, void 0, function* () {
92
+ if (executionDataArray) {
93
+ return Promise.all(executionDataArray.map((executionData) => {
94
+ if (executionData.binary) {
95
+ return this.duplicateBinaryDataInExecData(executionData, executionId);
96
+ }
97
+ return executionData;
98
+ }));
99
+ }
100
+ return executionDataArray;
101
+ }));
102
+ return Promise.all(returnInputData);
103
+ }
104
+ return Promise.resolve(inputData);
105
+ });
106
+ }
107
+ generateBinaryId(filename) {
108
+ return `${this.binaryDataMode}:${filename}`;
109
+ }
110
+ splitBinaryModeFileId(fileId) {
111
+ const [mode, id] = fileId.split(':');
112
+ return { mode, id };
113
+ }
114
+ duplicateBinaryDataInExecData(executionData, executionId) {
115
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
116
+ const binaryManager = this.managers[this.binaryDataMode];
117
+ if (executionData.binary) {
118
+ const binaryDataKeys = Object.keys(executionData.binary);
119
+ const bdPromises = binaryDataKeys.map((key) => tslib_1.__awaiter(this, void 0, void 0, function* () {
120
+ if (!executionData.binary) {
121
+ return { key, newId: undefined };
122
+ }
123
+ const binaryDataId = executionData.binary[key].id;
124
+ if (!binaryDataId) {
125
+ return { key, newId: undefined };
126
+ }
127
+ return binaryManager === null || binaryManager === void 0 ? void 0 : binaryManager.duplicateBinaryDataByIdentifier(this.splitBinaryModeFileId(binaryDataId).id, executionId).then((filename) => ({
128
+ newId: this.generateBinaryId(filename),
129
+ key,
130
+ }));
131
+ }));
132
+ return Promise.all(bdPromises).then((b) => {
133
+ return b.reduce((acc, curr) => {
134
+ if (acc.binary && curr) {
135
+ acc.binary[curr.key].id = curr.newId;
136
+ }
137
+ return acc;
138
+ }, executionData);
139
+ });
140
+ }
141
+ return executionData;
142
+ });
143
+ }
144
+ }
145
+ exports.BinaryDataManager = BinaryDataManager;
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/BinaryDataManager/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class ChangeCase {
2
+ private static transformInput;
3
+ static toCamelCase(str: string): string;
4
+ static toPascalCase(str: string): string;
5
+ static toSnakeCase(str: string): string;
6
+ static toCapitalCase(str: string): string;
7
+ static toParamCase(str: string): string;
8
+ static noCase(str: string): string;
9
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChangeCase = void 0;
4
+ class ChangeCase {
5
+ static transformInput(input) {
6
+ return input
7
+ .split(/[^a-zA-Z0-9]+/) // Split by non-alphanumeric characters
8
+ .filter((word) => word.length > 0) // Remove empty segments
9
+ .map((word) => word[0].toUpperCase() + word.slice(1).toLowerCase()); // Capitalize first letter and lowercase the rest
10
+ }
11
+ static toCamelCase(str) {
12
+ const words = ChangeCase.transformInput(str);
13
+ return words[0].toLowerCase() + words.slice(1).join('');
14
+ }
15
+ static toPascalCase(str) {
16
+ const words = str
17
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2') // insert space before capital letters in camelCase
18
+ .split(/[^a-zA-Z0-9]+|[\s]+/) // split by non-alphanumerics and added spaces
19
+ .filter(word => word.length > 0)
20
+ .map(word => word[0].toUpperCase() + word.slice(1).toLowerCase());
21
+ return words.join('');
22
+ }
23
+ static toSnakeCase(str) {
24
+ return str
25
+ .replace(/([a-z])([A-Z])/g, '$1_$2')
26
+ .replace(/[\W_]+/g, '_')
27
+ .toLowerCase();
28
+ }
29
+ static toCapitalCase(str) {
30
+ return str.replace(/\b\w/g, (chr) => chr.toUpperCase());
31
+ }
32
+ static toParamCase(str) {
33
+ return str
34
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
35
+ .replace(/[\W_]+/g, '-')
36
+ .toLowerCase();
37
+ }
38
+ static noCase(str) {
39
+ return str.replace(/[^\w\s]/g, '').toLowerCase();
40
+ }
41
+ }
42
+ exports.ChangeCase = ChangeCase;
43
+ //# sourceMappingURL=ChangeCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangeCase.js","sourceRoot":"","sources":["../../../src/lib/ChangeCase.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACb,MAAM,CAAC,cAAc,CAAC,KAAa;QACzC,OAAO,KAAK;aACT,KAAK,CAAC,eAAe,CAAC,CAAC,uCAAuC;aAC9D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,wBAAwB;aAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iDAAiD;IAC1H,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,MAAM,KAAK,GAAG,GAAG;aAChB,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,mDAAmD;aAC1F,KAAK,CAAC,qBAAqB,CAAC,CAAC,8CAA8C;aAC3E,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAElE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,GAAG;aACP,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,WAAW,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAW;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,GAAG;aACP,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,WAAW,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAW;QACvB,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;CACF;AA5CD,gCA4CC"}
@@ -0,0 +1,14 @@
1
+ export declare const inProduction: boolean;
2
+ export declare const inDevelopment: boolean;
3
+ export declare const inTest: boolean;
4
+ export declare const BINARY_ENCODING = "base64";
5
+ export declare const CUSTOM_EXTENSION_ENV = "N8N_CUSTOM_EXTENSIONS";
6
+ export declare const ENCRYPTION_KEY_ENV_OVERWRITE = "FSAI_FLOW_ENCRYPTION_KEY";
7
+ export declare const EXTENSIONS_SUBDIRECTORY = "custom";
8
+ export declare const USER_FOLDER_ENV_OVERWRITE = "N8N_USER_FOLDER";
9
+ export declare const USER_SETTINGS_FILE_NAME = "config";
10
+ export declare const USER_SETTINGS_SUBFOLDER = ".n8n";
11
+ export declare const PLACEHOLDER_EMPTY_EXECUTION_ID = "__UNKOWN__";
12
+ export declare const PLACEHOLDER_EMPTY_WORKFLOW_ID = "__EMPTY__";
13
+ export declare const TUNNEL_SUBDOMAIN_ENV = "N8N_TUNNEL_SUBDOMAIN";
14
+ export declare const WAIT_TIME_UNLIMITED = "3000-01-01T00:00:00.000Z";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ 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.CUSTOM_EXTENSION_ENV = exports.BINARY_ENCODING = exports.inTest = exports.inDevelopment = exports.inProduction = void 0;
4
+ const { NODE_ENV } = process.env;
5
+ exports.inProduction = NODE_ENV === 'production';
6
+ exports.inDevelopment = !NODE_ENV || NODE_ENV === 'development';
7
+ exports.inTest = NODE_ENV === 'test';
8
+ exports.BINARY_ENCODING = 'base64';
9
+ exports.CUSTOM_EXTENSION_ENV = 'N8N_CUSTOM_EXTENSIONS';
10
+ exports.ENCRYPTION_KEY_ENV_OVERWRITE = 'FSAI_FLOW_ENCRYPTION_KEY';
11
+ exports.EXTENSIONS_SUBDIRECTORY = 'custom';
12
+ exports.USER_FOLDER_ENV_OVERWRITE = 'N8N_USER_FOLDER';
13
+ exports.USER_SETTINGS_FILE_NAME = 'config';
14
+ exports.USER_SETTINGS_SUBFOLDER = '.n8n';
15
+ exports.PLACEHOLDER_EMPTY_EXECUTION_ID = '__UNKOWN__';
16
+ exports.PLACEHOLDER_EMPTY_WORKFLOW_ID = '__EMPTY__';
17
+ exports.TUNNEL_SUBDOMAIN_ENV = 'N8N_TUNNEL_SUBDOMAIN';
18
+ exports.WAIT_TIME_UNLIMITED = '3000-01-01T00:00:00.000Z';
19
+ //# sourceMappingURL=Constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AACpB,QAAA,YAAY,GAAG,QAAQ,KAAK,YAAY,CAAC;AACzC,QAAA,aAAa,GAAG,CAAC,QAAQ,IAAI,QAAQ,KAAK,aAAa,CAAC;AACxD,QAAA,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;AAE7B,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAC/C,QAAA,4BAA4B,GAAG,0BAA0B,CAAC;AAC1D,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,YAAY,CAAC;AAC9C,QAAA,6BAA6B,GAAG,WAAW,CAAC;AAC5C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,mBAAmB,GAAG,0BAA0B,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { CredentialInformation, ICredentialDataDecryptedObject, ICredentials, ICredentialsEncrypted } from '@fsai-flow/workflow';
2
+ export declare class Credentials extends ICredentials {
3
+ /**
4
+ * Returns if the given nodeType has access to data
5
+ */
6
+ hasNodeAccess(nodeType: string): boolean;
7
+ /**
8
+ * Sets new credential object
9
+ */
10
+ setData(data: ICredentialDataDecryptedObject, encryptionKey: string): void;
11
+ /**
12
+ * Sets new credentials for given key
13
+ */
14
+ setDataKey(key: string, data: CredentialInformation, encryptionKey: string): void;
15
+ /**
16
+ * Returns the decrypted credential object
17
+ */
18
+ getData(encryptionKey: string, nodeType?: string): ICredentialDataDecryptedObject;
19
+ /**
20
+ * Returns the decrypted credentials for given key
21
+ */
22
+ getDataKey(key: string, encryptionKey: string, nodeType?: string): CredentialInformation;
23
+ /**
24
+ * Returns the encrypted credentials to be saved
25
+ */
26
+ getDataToSave(): ICredentialsEncrypted;
27
+ }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Credentials = void 0;
4
+ const workflow_1 = require("@fsai-flow/workflow");
5
+ const crypto_js_1 = require("crypto-js");
6
+ class Credentials extends workflow_1.ICredentials {
7
+ /**
8
+ * Returns if the given nodeType has access to data
9
+ */
10
+ hasNodeAccess(nodeType) {
11
+ // eslint-disable-next-line no-restricted-syntax
12
+ for (const accessData of this.nodesAccess) {
13
+ if (accessData.nodeType === nodeType) {
14
+ return true;
15
+ }
16
+ }
17
+ return false;
18
+ }
19
+ /**
20
+ * Sets new credential object
21
+ */
22
+ setData(data, encryptionKey) {
23
+ this.data = crypto_js_1.AES.encrypt(JSON.stringify(data), encryptionKey).toString();
24
+ }
25
+ /**
26
+ * Sets new credentials for given key
27
+ */
28
+ setDataKey(key, data, encryptionKey) {
29
+ let fullData;
30
+ try {
31
+ fullData = this.getData(encryptionKey);
32
+ }
33
+ catch (e) {
34
+ fullData = {};
35
+ }
36
+ fullData[key] = data;
37
+ return this.setData(fullData, encryptionKey);
38
+ }
39
+ /**
40
+ * Returns the decrypted credential object
41
+ */
42
+ getData(encryptionKey, nodeType) {
43
+ if (nodeType && !this.hasNodeAccess(nodeType)) {
44
+ throw new Error(`The node of type "${nodeType}" does not have access to credentials "${this.name}" of type "${this.type}".`);
45
+ }
46
+ if (this.data === undefined) {
47
+ throw new Error('No data is set so nothing can be returned.');
48
+ }
49
+ const decryptedData = crypto_js_1.AES.decrypt(this.data, encryptionKey);
50
+ try {
51
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
52
+ return JSON.parse(decryptedData.toString(crypto_js_1.enc.Utf8));
53
+ }
54
+ catch (e) {
55
+ throw new Error('Credentials could not be decrypted. The likely reason is that a different "encryptionKey" was used to encrypt the data.');
56
+ }
57
+ }
58
+ /**
59
+ * Returns the decrypted credentials for given key
60
+ */
61
+ getDataKey(key, encryptionKey, nodeType) {
62
+ const fullData = this.getData(encryptionKey, nodeType);
63
+ if (fullData === null) {
64
+ throw new Error(`No data was set.`);
65
+ }
66
+ // eslint-disable-next-line no-prototype-builtins
67
+ if (!fullData.hasOwnProperty(key)) {
68
+ throw new Error(`No data for key "${key}" exists.`);
69
+ }
70
+ return fullData[key];
71
+ }
72
+ /**
73
+ * Returns the encrypted credentials to be saved
74
+ */
75
+ getDataToSave() {
76
+ if (this.data === undefined) {
77
+ throw new Error(`No credentials were set to save.`);
78
+ }
79
+ return {
80
+ id: this.id,
81
+ name: this.name,
82
+ type: this.type,
83
+ data: this.data,
84
+ nodesAccess: this.nodesAccess,
85
+ };
86
+ }
87
+ }
88
+ exports.Credentials = Credentials;
89
+ //# sourceMappingURL=Credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../../../src/lib/Credentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { IBinaryDataConfig, IBinaryDataManager } from './Interfaces';
2
+ export declare class BinaryDataFileSystem implements IBinaryDataManager {
3
+ private storagePath;
4
+ private binaryDataTTL;
5
+ private persistedBinaryDataTTL;
6
+ constructor(config: IBinaryDataConfig);
7
+ init(startPurger?: boolean): Promise<void>;
8
+ storeBinaryData(binaryBuffer: Buffer, executionId: string): Promise<string>;
9
+ retrieveBinaryDataByIdentifier(identifier: string): Promise<Buffer>;
10
+ markDataForDeletionByExecutionId(executionId: string): Promise<void>;
11
+ deleteMarkedFiles(): Promise<void>;
12
+ deleteMarkedPersistedFiles(): Promise<void>;
13
+ private addBinaryIdToPersistMeta;
14
+ private deleteMarkedFilesByMeta;
15
+ duplicateBinaryDataByIdentifier(binaryDataId: string, prefix: string): Promise<string>;
16
+ deleteBinaryDataByExecutionId(executionId: string): Promise<void>;
17
+ deleteBinaryDataByIdentifier(identifier: string): Promise<void>;
18
+ persistBinaryDataForExecutionId(executionId: string): Promise<void>;
19
+ private generateFileName;
20
+ private getBinaryDataMetaPath;
21
+ private getBinaryDataPersistMetaPath;
22
+ private deleteMetaFileByPath;
23
+ private deleteFromLocalStorage;
24
+ private saveToLocalStorage;
25
+ private retrieveFromLocalStorage;
26
+ }