@fsai-flow/core 0.0.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 (113) hide show
  1. package/README.md +11 -0
  2. package/dist/README.md +11 -0
  3. package/dist/package.json +44 -0
  4. package/dist/src/index.d.ts +15 -0
  5. package/dist/src/index.js +29 -0
  6. package/dist/src/index.js.map +1 -0
  7. package/dist/src/lib/ActiveWebhooks.d.ts +59 -0
  8. package/dist/src/lib/ActiveWebhooks.js +184 -0
  9. package/dist/src/lib/ActiveWebhooks.js.map +1 -0
  10. package/dist/src/lib/ActiveWorkflows.d.ts +58 -0
  11. package/dist/src/lib/ActiveWorkflows.js +244 -0
  12. package/dist/src/lib/ActiveWorkflows.js.map +1 -0
  13. package/dist/src/lib/BinaryDataManager/FileSystem.d.ts +26 -0
  14. package/dist/src/lib/BinaryDataManager/FileSystem.js +179 -0
  15. package/dist/src/lib/BinaryDataManager/FileSystem.js.map +1 -0
  16. package/dist/src/lib/BinaryDataManager/index.d.ts +21 -0
  17. package/dist/src/lib/BinaryDataManager/index.js +146 -0
  18. package/dist/src/lib/BinaryDataManager/index.js.map +1 -0
  19. package/dist/src/lib/ChangeCase.d.ts +9 -0
  20. package/dist/src/lib/ChangeCase.js +43 -0
  21. package/dist/src/lib/ChangeCase.js.map +1 -0
  22. package/dist/src/lib/Constants.d.ts +14 -0
  23. package/dist/src/lib/Constants.js +19 -0
  24. package/dist/src/lib/Constants.js.map +1 -0
  25. package/dist/src/lib/Credentials.d.ts +27 -0
  26. package/dist/src/lib/Credentials.js +89 -0
  27. package/dist/src/lib/Credentials.js.map +1 -0
  28. package/dist/src/lib/FileSystem.d.ts +26 -0
  29. package/dist/src/lib/FileSystem.js +179 -0
  30. package/dist/src/lib/FileSystem.js.map +1 -0
  31. package/dist/src/lib/InputConnectionDataLegacy.d.ts +2 -0
  32. package/dist/src/lib/InputConnectionDataLegacy.js +79 -0
  33. package/dist/src/lib/InputConnectionDataLegacy.js.map +1 -0
  34. package/dist/src/lib/Interfaces.d.ts +148 -0
  35. package/dist/src/lib/Interfaces.js +3 -0
  36. package/dist/src/lib/Interfaces.js.map +1 -0
  37. package/dist/src/lib/LoadNodeParameterOptions.d.ts +39 -0
  38. package/dist/src/lib/LoadNodeParameterOptions.js +150 -0
  39. package/dist/src/lib/LoadNodeParameterOptions.js.map +1 -0
  40. package/dist/src/lib/NodeExecuteFunctions.d.ts +226 -0
  41. package/dist/src/lib/NodeExecuteFunctions.js +2483 -0
  42. package/dist/src/lib/NodeExecuteFunctions.js.map +1 -0
  43. package/dist/src/lib/NodesLoader/constants.d.ts +5 -0
  44. package/dist/src/lib/NodesLoader/constants.js +106 -0
  45. package/dist/src/lib/NodesLoader/constants.js.map +1 -0
  46. package/dist/src/lib/NodesLoader/custom-directory-loader.d.ts +9 -0
  47. package/dist/src/lib/NodesLoader/custom-directory-loader.js +36 -0
  48. package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +1 -0
  49. package/dist/src/lib/NodesLoader/directory-loader.d.ts +66 -0
  50. package/dist/src/lib/NodesLoader/directory-loader.js +325 -0
  51. package/dist/src/lib/NodesLoader/directory-loader.js.map +1 -0
  52. package/dist/src/lib/NodesLoader/index.d.ts +5 -0
  53. package/dist/src/lib/NodesLoader/index.js +12 -0
  54. package/dist/src/lib/NodesLoader/index.js.map +1 -0
  55. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.d.ts +7 -0
  56. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +52 -0
  57. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +1 -0
  58. package/dist/src/lib/NodesLoader/load-class-in-isolation.d.ts +1 -0
  59. package/dist/src/lib/NodesLoader/load-class-in-isolation.js +22 -0
  60. package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +1 -0
  61. package/dist/src/lib/NodesLoader/package-directory-loader.d.ts +17 -0
  62. package/dist/src/lib/NodesLoader/package-directory-loader.js +100 -0
  63. package/dist/src/lib/NodesLoader/package-directory-loader.js.map +1 -0
  64. package/dist/src/lib/NodesLoader/types.d.ts +14 -0
  65. package/dist/src/lib/NodesLoader/types.js +3 -0
  66. package/dist/src/lib/NodesLoader/types.js.map +1 -0
  67. package/dist/src/lib/UserSettings.d.ts +80 -0
  68. package/dist/src/lib/UserSettings.js +261 -0
  69. package/dist/src/lib/UserSettings.js.map +1 -0
  70. package/dist/src/lib/WorkflowExecute.d.ts +53 -0
  71. package/dist/src/lib/WorkflowExecute.js +835 -0
  72. package/dist/src/lib/WorkflowExecute.js.map +1 -0
  73. package/dist/src/lib/index.d.ts +21 -0
  74. package/dist/src/lib/index.js +146 -0
  75. package/dist/src/lib/index.js.map +1 -0
  76. package/dist/src/utils/crypto.d.ts +1 -0
  77. package/dist/src/utils/crypto.js +8 -0
  78. package/dist/src/utils/crypto.js.map +1 -0
  79. package/eslint.config.js +19 -0
  80. package/jest.config.ts +10 -0
  81. package/package.json +44 -0
  82. package/project.json +19 -0
  83. package/src/index.ts +27 -0
  84. package/src/lib/ActiveWebhooks.ts +245 -0
  85. package/src/lib/ActiveWorkflows.ts +304 -0
  86. package/src/lib/BinaryDataManager/FileSystem.ts +214 -0
  87. package/src/lib/BinaryDataManager/index.ts +187 -0
  88. package/src/lib/ChangeCase.ts +45 -0
  89. package/src/lib/Constants.ts +16 -0
  90. package/src/lib/Credentials.ts +108 -0
  91. package/src/lib/FileSystem.ts +214 -0
  92. package/src/lib/InputConnectionDataLegacy.ts +123 -0
  93. package/src/lib/Interfaces.ts +338 -0
  94. package/src/lib/LoadNodeParameterOptions.ts +235 -0
  95. package/src/lib/NodeExecuteFunctions.ts +3704 -0
  96. package/src/lib/NodesLoader/constants.ts +112 -0
  97. package/src/lib/NodesLoader/custom-directory-loader.ts +31 -0
  98. package/src/lib/NodesLoader/directory-loader.ts +458 -0
  99. package/src/lib/NodesLoader/index.ts +5 -0
  100. package/src/lib/NodesLoader/lazy-package-directory-loader.ts +55 -0
  101. package/src/lib/NodesLoader/load-class-in-isolation.ts +19 -0
  102. package/src/lib/NodesLoader/package-directory-loader.ts +107 -0
  103. package/src/lib/NodesLoader/types.ts +14 -0
  104. package/src/lib/UserSettings.ts +292 -0
  105. package/src/lib/WorkflowExecute.ts +1108 -0
  106. package/src/lib/index.ts +187 -0
  107. package/src/utils/crypto.ts +5 -0
  108. package/tests/Credentials.test.ts +88 -0
  109. package/tests/Helpers.ts +808 -0
  110. package/tests/WorkflowExecute.test.ts +1242 -0
  111. package/tsconfig.json +42 -0
  112. package/tsconfig.lib.json +10 -0
  113. package/tsconfig.spec.json +14 -0
@@ -0,0 +1,80 @@
1
+ import { IUserSettings } from '../../src';
2
+ /**
3
+ * Creates the user settings if they do not exist yet
4
+ *
5
+ * @export
6
+ */
7
+ export declare function prepareUserSettings(): Promise<IUserSettings>;
8
+ /**
9
+ * Returns the encryption key which is used to encrypt
10
+ * the credentials.
11
+ *
12
+ * @export
13
+ * @returns
14
+ */
15
+ export declare function getEncryptionKey(): Promise<string | undefined>;
16
+ /**
17
+ * Returns the instance ID
18
+ *
19
+ * @export
20
+ * @returns
21
+ */
22
+ export declare function getInstanceId(): Promise<string>;
23
+ /**
24
+ * Adds/Overwrite the given settings in the currently
25
+ * saved user settings
26
+ *
27
+ * @export
28
+ * @param {IUserSettings} addSettings The settings to add/overwrite
29
+ * @param {string} [settingsPath] Optional settings file path
30
+ * @returns {Promise<IUserSettings>}
31
+ */
32
+ export declare function addToUserSettings(addSettings: IUserSettings, settingsPath?: string): Promise<IUserSettings>;
33
+ /**
34
+ * Writes a user settings file
35
+ *
36
+ * @export
37
+ * @param {IUserSettings} userSettings The settings to write
38
+ * @param {string} [settingsPath] Optional settings file path
39
+ * @returns {Promise<IUserSettings>}
40
+ */
41
+ export declare function writeUserSettings(userSettings: IUserSettings, settingsPath?: string): Promise<IUserSettings>;
42
+ /**
43
+ * Returns the content of the user settings
44
+ *
45
+ * @export
46
+ * @returns {UserSettings}
47
+ */
48
+ export declare function getUserSettings(settingsPath?: string, ignoreCache?: boolean): Promise<IUserSettings | undefined>;
49
+ /**
50
+ * Returns the path to the user settings
51
+ *
52
+ * @export
53
+ * @returns {string}
54
+ */
55
+ export declare function getUserSettingsPath(): string;
56
+ /**
57
+ * Retruns the path to the n8n folder in which all n8n
58
+ * related data gets saved
59
+ *
60
+ * @export
61
+ * @returns {string}
62
+ */
63
+ export declare function getUserN8nFolderPath(): string;
64
+ /**
65
+ * Returns the path to the n8n user folder with the custom
66
+ * extensions like nodes and credentials
67
+ *
68
+ * @export
69
+ * @returns {string}
70
+ */
71
+ export declare function getUserN8nFolderCustomExtensionPath(): string;
72
+ /**
73
+ * Returns the home folder path of the user if
74
+ * none can be found it falls back to the current
75
+ * working directory
76
+ *
77
+ * @export
78
+ * @returns {string}
79
+ */
80
+ export declare function getUserHome(): string;
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareUserSettings = prepareUserSettings;
4
+ exports.getEncryptionKey = getEncryptionKey;
5
+ exports.getInstanceId = getInstanceId;
6
+ exports.addToUserSettings = addToUserSettings;
7
+ exports.writeUserSettings = writeUserSettings;
8
+ exports.getUserSettings = getUserSettings;
9
+ exports.getUserSettingsPath = getUserSettingsPath;
10
+ exports.getUserN8nFolderPath = getUserN8nFolderPath;
11
+ exports.getUserN8nFolderCustomExtensionPath = getUserN8nFolderCustomExtensionPath;
12
+ exports.getUserHome = getUserHome;
13
+ const tslib_1 = require("tslib");
14
+ /* eslint-disable no-param-reassign */
15
+ /* eslint-disable @typescript-eslint/no-use-before-define */
16
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
17
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
18
+ const fs = tslib_1.__importStar(require("fs"));
19
+ const path = tslib_1.__importStar(require("path"));
20
+ const crypto_1 = require("crypto");
21
+ // eslint-disable-next-line import/no-cycle
22
+ const src_1 = require("../../src");
23
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
24
+ const { promisify } = require('util');
25
+ const fsAccess = promisify(fs.access);
26
+ const fsReadFile = promisify(fs.readFile);
27
+ const fsMkdir = promisify(fs.mkdir);
28
+ const fsWriteFile = promisify(fs.writeFile);
29
+ let settingsCache;
30
+ /**
31
+ * Creates the user settings if they do not exist yet
32
+ *
33
+ * @export
34
+ */
35
+ function prepareUserSettings() {
36
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
+ const settingsPath = getUserSettingsPath();
38
+ let userSettings = yield getUserSettings(settingsPath);
39
+ if (userSettings !== undefined) {
40
+ // Settings already exist, check if they contain the encryptionKey
41
+ if (userSettings.encryptionKey !== undefined) {
42
+ // Key already exists
43
+ if (userSettings.instanceId === undefined) {
44
+ userSettings.instanceId = yield generateInstanceId(userSettings.encryptionKey);
45
+ settingsCache = userSettings;
46
+ }
47
+ return userSettings;
48
+ }
49
+ }
50
+ else {
51
+ userSettings = {};
52
+ }
53
+ if (process.env[src_1.ENCRYPTION_KEY_ENV_OVERWRITE] !== undefined) {
54
+ // Use the encryption key which got set via environment
55
+ userSettings.encryptionKey = process.env[src_1.ENCRYPTION_KEY_ENV_OVERWRITE];
56
+ }
57
+ else {
58
+ // Generate a new encryption key
59
+ userSettings.encryptionKey = (0, crypto_1.randomBytes)(24).toString('base64');
60
+ }
61
+ userSettings.instanceId = yield generateInstanceId(userSettings.encryptionKey);
62
+ // eslint-disable-next-line no-console
63
+ console.log(`UserSettings were generated and saved to: ${settingsPath}`);
64
+ return writeUserSettings(userSettings, settingsPath);
65
+ });
66
+ }
67
+ /**
68
+ * Returns the encryption key which is used to encrypt
69
+ * the credentials.
70
+ *
71
+ * @export
72
+ * @returns
73
+ */
74
+ function getEncryptionKey() {
75
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
76
+ if (process.env[src_1.ENCRYPTION_KEY_ENV_OVERWRITE] !== undefined) {
77
+ return process.env[src_1.ENCRYPTION_KEY_ENV_OVERWRITE];
78
+ }
79
+ const userSettings = yield getUserSettings();
80
+ if (userSettings === undefined) {
81
+ return undefined;
82
+ }
83
+ if (userSettings.encryptionKey === undefined) {
84
+ return undefined;
85
+ }
86
+ return userSettings.encryptionKey;
87
+ });
88
+ }
89
+ /**
90
+ * Returns the instance ID
91
+ *
92
+ * @export
93
+ * @returns
94
+ */
95
+ function getInstanceId() {
96
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
97
+ const userSettings = yield getUserSettings();
98
+ if (userSettings === undefined) {
99
+ return '';
100
+ }
101
+ if (userSettings.instanceId === undefined) {
102
+ return '';
103
+ }
104
+ return userSettings.instanceId;
105
+ });
106
+ }
107
+ function generateInstanceId(key) {
108
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
109
+ const hash = key
110
+ ? (0, crypto_1.createHash)('sha256')
111
+ .update(key.slice(Math.round(key.length / 2)))
112
+ .digest('hex')
113
+ : undefined;
114
+ return hash;
115
+ });
116
+ }
117
+ /**
118
+ * Adds/Overwrite the given settings in the currently
119
+ * saved user settings
120
+ *
121
+ * @export
122
+ * @param {IUserSettings} addSettings The settings to add/overwrite
123
+ * @param {string} [settingsPath] Optional settings file path
124
+ * @returns {Promise<IUserSettings>}
125
+ */
126
+ function addToUserSettings(addSettings, settingsPath) {
127
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
128
+ if (settingsPath === undefined) {
129
+ settingsPath = getUserSettingsPath();
130
+ }
131
+ let userSettings = yield getUserSettings(settingsPath);
132
+ if (userSettings === undefined) {
133
+ userSettings = {};
134
+ }
135
+ // Add the settings
136
+ Object.assign(userSettings, addSettings);
137
+ return writeUserSettings(userSettings, settingsPath);
138
+ });
139
+ }
140
+ /**
141
+ * Writes a user settings file
142
+ *
143
+ * @export
144
+ * @param {IUserSettings} userSettings The settings to write
145
+ * @param {string} [settingsPath] Optional settings file path
146
+ * @returns {Promise<IUserSettings>}
147
+ */
148
+ function writeUserSettings(userSettings, settingsPath) {
149
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
150
+ if (settingsPath === undefined) {
151
+ settingsPath = getUserSettingsPath();
152
+ }
153
+ if (userSettings === undefined) {
154
+ userSettings = {};
155
+ }
156
+ // Check if parent folder exists if not create it.
157
+ try {
158
+ yield fsAccess(path.dirname(settingsPath));
159
+ }
160
+ catch (error) {
161
+ // Parent folder does not exist so create
162
+ yield fsMkdir(path.dirname(settingsPath));
163
+ }
164
+ const settingsToWrite = Object.assign({}, userSettings);
165
+ if (settingsToWrite.instanceId !== undefined) {
166
+ delete settingsToWrite.instanceId;
167
+ }
168
+ yield fsWriteFile(settingsPath, JSON.stringify(settingsToWrite, null, '\t'));
169
+ settingsCache = JSON.parse(JSON.stringify(userSettings));
170
+ return userSettings;
171
+ });
172
+ }
173
+ /**
174
+ * Returns the content of the user settings
175
+ *
176
+ * @export
177
+ * @returns {UserSettings}
178
+ */
179
+ function getUserSettings(settingsPath, ignoreCache) {
180
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
181
+ if (settingsCache !== undefined && ignoreCache !== true) {
182
+ return settingsCache;
183
+ }
184
+ if (settingsPath === undefined) {
185
+ settingsPath = getUserSettingsPath();
186
+ }
187
+ try {
188
+ yield fsAccess(settingsPath);
189
+ }
190
+ catch (error) {
191
+ // The file does not exist
192
+ return undefined;
193
+ }
194
+ const settingsFile = yield fsReadFile(settingsPath, 'utf8');
195
+ try {
196
+ settingsCache = JSON.parse(settingsFile);
197
+ }
198
+ catch (error) {
199
+ throw new Error(`Error parsing n8n-config file "${settingsPath}". It does not seem to be valid JSON.`);
200
+ }
201
+ return settingsCache;
202
+ });
203
+ }
204
+ /**
205
+ * Returns the path to the user settings
206
+ *
207
+ * @export
208
+ * @returns {string}
209
+ */
210
+ function getUserSettingsPath() {
211
+ const n8nFolder = getUserN8nFolderPath();
212
+ return path.join(n8nFolder, src_1.USER_SETTINGS_FILE_NAME);
213
+ }
214
+ /**
215
+ * Retruns the path to the n8n folder in which all n8n
216
+ * related data gets saved
217
+ *
218
+ * @export
219
+ * @returns {string}
220
+ */
221
+ function getUserN8nFolderPath() {
222
+ let userFolder;
223
+ if (process.env[src_1.USER_FOLDER_ENV_OVERWRITE] !== undefined) {
224
+ userFolder = process.env[src_1.USER_FOLDER_ENV_OVERWRITE];
225
+ }
226
+ else {
227
+ userFolder = getUserHome();
228
+ }
229
+ return path.join(userFolder, src_1.USER_SETTINGS_SUBFOLDER);
230
+ }
231
+ /**
232
+ * Returns the path to the n8n user folder with the custom
233
+ * extensions like nodes and credentials
234
+ *
235
+ * @export
236
+ * @returns {string}
237
+ */
238
+ function getUserN8nFolderCustomExtensionPath() {
239
+ return path.join(getUserN8nFolderPath(), src_1.EXTENSIONS_SUBDIRECTORY);
240
+ }
241
+ /**
242
+ * Returns the home folder path of the user if
243
+ * none can be found it falls back to the current
244
+ * working directory
245
+ *
246
+ * @export
247
+ * @returns {string}
248
+ */
249
+ function getUserHome() {
250
+ let variableName = 'HOME';
251
+ if (process.platform === 'win32') {
252
+ variableName = 'USERPROFILE';
253
+ }
254
+ if (process.env[variableName] === undefined) {
255
+ // If for some reason the variable does not exist
256
+ // fall back to current folder
257
+ return process.cwd();
258
+ }
259
+ return process.env[variableName];
260
+ }
261
+ //# sourceMappingURL=UserSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSettings.js","sourceRoot":"","sources":["../../../src/lib/UserSettings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import PCancelable = require('p-cancelable');
2
+ import { ExecutionError, IConnection, INode, INodeExecutionData, IRun, IRunData, IRunExecutionData, IWorkflowExecuteAdditionalData, Workflow, WorkflowExecuteMode } from '@fsai-flow/workflow';
3
+ export declare class WorkflowExecute {
4
+ runExecutionData: IRunExecutionData;
5
+ private additionalData;
6
+ private mode;
7
+ constructor(additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, runExecutionData?: IRunExecutionData);
8
+ /**
9
+ * Executes the given workflow.
10
+ *
11
+ * @param {Workflow} workflow The workflow to execute
12
+ * @param {INode[]} [startNodes] Node to start execution from
13
+ * @param {string} [destinationNode] Node to stop execution at
14
+ * @returns {(Promise<string>)}
15
+ * @memberof WorkflowExecute
16
+ */
17
+ run(workflow: Workflow, startNode?: INode, destinationNode?: string): PCancelable<IRun>;
18
+ /**
19
+ * Executes the given workflow but only
20
+ *
21
+ * @param {Workflow} workflow The workflow to execute
22
+ * @param {IRunData} runData
23
+ * @param {string[]} startNodes Nodes to start execution from
24
+ * @param {string} destinationNode Node to stop execution at
25
+ * @returns {(Promise<string>)}
26
+ * @memberof WorkflowExecute
27
+ */
28
+ runPartialWorkflow(workflow: Workflow, runData: IRunData, startNodes: string[], destinationNode: string): PCancelable<IRun>;
29
+ /**
30
+ * Executes the hook with the given name
31
+ *
32
+ * @param {string} hookName
33
+ * @param {any[]} parameters
34
+ * @returns {Promise<IRun>}
35
+ * @memberof WorkflowExecute
36
+ */
37
+ executeHook(hookName: string, parameters: any[]): Promise<void>;
38
+ /**
39
+ * Checks the incoming connection does not receive any data
40
+ */
41
+ incomingConnectionIsEmpty(runData: IRunData, inputConnections: IConnection[], runIndex: number): boolean;
42
+ addNodeToBeExecuted(workflow: Workflow, connectionData: IConnection, outputIndex: number, parentNodeName: string, nodeSuccessData: INodeExecutionData[][], runIndex: number): void;
43
+ /**
44
+ * Runs the given execution data.
45
+ *
46
+ * @param {Workflow} workflow
47
+ * @returns {Promise<string>}
48
+ * @memberof WorkflowExecute
49
+ */
50
+ processRunExecutionData(workflow: Workflow): PCancelable<IRun>;
51
+ processSuccessExecution(startedAt: Date, workflow: Workflow, executionError?: ExecutionError): Promise<IRun>;
52
+ getFullRunData(startedAt: Date): IRun;
53
+ }