@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.
- package/README.md +11 -0
- package/dist/README.md +11 -0
- package/dist/package.json +44 -0
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.js +29 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/ActiveWebhooks.d.ts +59 -0
- package/dist/src/lib/ActiveWebhooks.js +184 -0
- package/dist/src/lib/ActiveWebhooks.js.map +1 -0
- package/dist/src/lib/ActiveWorkflows.d.ts +58 -0
- package/dist/src/lib/ActiveWorkflows.js +244 -0
- package/dist/src/lib/ActiveWorkflows.js.map +1 -0
- package/dist/src/lib/BinaryDataManager/FileSystem.d.ts +26 -0
- package/dist/src/lib/BinaryDataManager/FileSystem.js +179 -0
- package/dist/src/lib/BinaryDataManager/FileSystem.js.map +1 -0
- package/dist/src/lib/BinaryDataManager/index.d.ts +21 -0
- package/dist/src/lib/BinaryDataManager/index.js +146 -0
- package/dist/src/lib/BinaryDataManager/index.js.map +1 -0
- package/dist/src/lib/ChangeCase.d.ts +9 -0
- package/dist/src/lib/ChangeCase.js +43 -0
- package/dist/src/lib/ChangeCase.js.map +1 -0
- package/dist/src/lib/Constants.d.ts +14 -0
- package/dist/src/lib/Constants.js +19 -0
- package/dist/src/lib/Constants.js.map +1 -0
- package/dist/src/lib/Credentials.d.ts +27 -0
- package/dist/src/lib/Credentials.js +89 -0
- package/dist/src/lib/Credentials.js.map +1 -0
- package/dist/src/lib/FileSystem.d.ts +26 -0
- package/dist/src/lib/FileSystem.js +179 -0
- package/dist/src/lib/FileSystem.js.map +1 -0
- package/dist/src/lib/InputConnectionDataLegacy.d.ts +2 -0
- package/dist/src/lib/InputConnectionDataLegacy.js +79 -0
- package/dist/src/lib/InputConnectionDataLegacy.js.map +1 -0
- package/dist/src/lib/Interfaces.d.ts +148 -0
- package/dist/src/lib/Interfaces.js +3 -0
- package/dist/src/lib/Interfaces.js.map +1 -0
- package/dist/src/lib/LoadNodeParameterOptions.d.ts +39 -0
- package/dist/src/lib/LoadNodeParameterOptions.js +150 -0
- package/dist/src/lib/LoadNodeParameterOptions.js.map +1 -0
- package/dist/src/lib/NodeExecuteFunctions.d.ts +226 -0
- package/dist/src/lib/NodeExecuteFunctions.js +2483 -0
- package/dist/src/lib/NodeExecuteFunctions.js.map +1 -0
- package/dist/src/lib/NodesLoader/constants.d.ts +5 -0
- package/dist/src/lib/NodesLoader/constants.js +106 -0
- package/dist/src/lib/NodesLoader/constants.js.map +1 -0
- package/dist/src/lib/NodesLoader/custom-directory-loader.d.ts +9 -0
- package/dist/src/lib/NodesLoader/custom-directory-loader.js +36 -0
- package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +1 -0
- package/dist/src/lib/NodesLoader/directory-loader.d.ts +66 -0
- package/dist/src/lib/NodesLoader/directory-loader.js +325 -0
- package/dist/src/lib/NodesLoader/directory-loader.js.map +1 -0
- package/dist/src/lib/NodesLoader/index.d.ts +5 -0
- package/dist/src/lib/NodesLoader/index.js +12 -0
- package/dist/src/lib/NodesLoader/index.js.map +1 -0
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.d.ts +7 -0
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +52 -0
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +1 -0
- package/dist/src/lib/NodesLoader/load-class-in-isolation.d.ts +1 -0
- package/dist/src/lib/NodesLoader/load-class-in-isolation.js +22 -0
- package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +1 -0
- package/dist/src/lib/NodesLoader/package-directory-loader.d.ts +17 -0
- package/dist/src/lib/NodesLoader/package-directory-loader.js +100 -0
- package/dist/src/lib/NodesLoader/package-directory-loader.js.map +1 -0
- package/dist/src/lib/NodesLoader/types.d.ts +14 -0
- package/dist/src/lib/NodesLoader/types.js +3 -0
- package/dist/src/lib/NodesLoader/types.js.map +1 -0
- package/dist/src/lib/UserSettings.d.ts +80 -0
- package/dist/src/lib/UserSettings.js +261 -0
- package/dist/src/lib/UserSettings.js.map +1 -0
- package/dist/src/lib/WorkflowExecute.d.ts +53 -0
- package/dist/src/lib/WorkflowExecute.js +835 -0
- package/dist/src/lib/WorkflowExecute.js.map +1 -0
- package/dist/src/lib/index.d.ts +21 -0
- package/dist/src/lib/index.js +146 -0
- package/dist/src/lib/index.js.map +1 -0
- package/dist/src/utils/crypto.d.ts +1 -0
- package/dist/src/utils/crypto.js +8 -0
- package/dist/src/utils/crypto.js.map +1 -0
- package/eslint.config.js +19 -0
- package/jest.config.ts +10 -0
- package/package.json +44 -0
- package/project.json +19 -0
- package/src/index.ts +27 -0
- package/src/lib/ActiveWebhooks.ts +245 -0
- package/src/lib/ActiveWorkflows.ts +304 -0
- package/src/lib/BinaryDataManager/FileSystem.ts +214 -0
- package/src/lib/BinaryDataManager/index.ts +187 -0
- package/src/lib/ChangeCase.ts +45 -0
- package/src/lib/Constants.ts +16 -0
- package/src/lib/Credentials.ts +108 -0
- package/src/lib/FileSystem.ts +214 -0
- package/src/lib/InputConnectionDataLegacy.ts +123 -0
- package/src/lib/Interfaces.ts +338 -0
- package/src/lib/LoadNodeParameterOptions.ts +235 -0
- package/src/lib/NodeExecuteFunctions.ts +3704 -0
- package/src/lib/NodesLoader/constants.ts +112 -0
- package/src/lib/NodesLoader/custom-directory-loader.ts +31 -0
- package/src/lib/NodesLoader/directory-loader.ts +458 -0
- package/src/lib/NodesLoader/index.ts +5 -0
- package/src/lib/NodesLoader/lazy-package-directory-loader.ts +55 -0
- package/src/lib/NodesLoader/load-class-in-isolation.ts +19 -0
- package/src/lib/NodesLoader/package-directory-loader.ts +107 -0
- package/src/lib/NodesLoader/types.ts +14 -0
- package/src/lib/UserSettings.ts +292 -0
- package/src/lib/WorkflowExecute.ts +1108 -0
- package/src/lib/index.ts +187 -0
- package/src/utils/crypto.ts +5 -0
- package/tests/Credentials.test.ts +88 -0
- package/tests/Helpers.ts +808 -0
- package/tests/WorkflowExecute.test.ts +1242 -0
- package/tsconfig.json +42 -0
- package/tsconfig.lib.json +10 -0
- 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":";;AAgCA,kDAiCC;AAUD,4CAgBC;AAQD,sCAYC;AAqBD,8CAkBC;AAUD,8CA6BC;AAQD,0CA8BC;AAQD,kDAIC;AASD,oDASC;AASD,kFAEC;AAUD,kCAaC;;AAnSD,sCAAsC;AACtC,4DAA4D;AAC5D,sDAAsD;AACtD,4DAA4D;AAC5D,+CAAyB;AACzB,mDAA6B;AAC7B,mCAAiD;AACjD,2CAA2C;AAC3C,mCAOmB;AAEnB,8DAA8D;AAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtC,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACpC,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAE5C,IAAI,aAAwC,CAAC;AAE7C;;;;GAIG;AACH,SAAsB,mBAAmB;;QACxC,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;QAE3C,IAAI,YAAY,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,kEAAkE;YAClE,IAAI,YAAY,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9C,qBAAqB;gBACrB,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3C,YAAY,CAAC,UAAU,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC/E,aAAa,GAAG,YAAY,CAAC;gBAC9B,CAAC;gBAED,OAAO,YAAY,CAAC;YACrB,CAAC;QACF,CAAC;aAAM,CAAC;YACP,YAAY,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,kCAA4B,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7D,uDAAuD;YACvD,YAAY,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kCAA4B,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACP,gCAAgC;YAChC,YAAY,CAAC,aAAa,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC;QAED,YAAY,CAAC,UAAU,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAE/E,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAC;QAEzE,OAAO,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;CAAA;AAED;;;;;;GAMG;AAEH,SAAsB,gBAAgB;;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,kCAA4B,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,kCAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;QAE7C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,YAAY,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,OAAO,YAAY,CAAC,aAAa,CAAC;IACnC,CAAC;CAAA;AAED;;;;;GAKG;AACH,SAAsB,aAAa;;QAClC,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;QAE7C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,YAAY,CAAC,UAAU,CAAC;IAChC,CAAC;CAAA;AAED,SAAe,kBAAkB,CAAC,GAAY;;QAC7C,MAAM,IAAI,GAAG,GAAG;YACf,CAAC,CAAC,IAAA,mBAAU,EAAC,QAAQ,CAAC;iBACnB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC7C,MAAM,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,SAAS,CAAC;QAEb,OAAO,IAAI,CAAC;IACb,CAAC;CAAA;AAED;;;;;;;;GAQG;AACH,SAAsB,iBAAiB,CACtC,WAA0B,EAC1B,YAAqB;;QAErB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,GAAG,mBAAmB,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,YAAY,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;QAEvD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,mBAAmB;QACnB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAEzC,OAAO,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;CAAA;AAED;;;;;;;GAOG;AACH,SAAsB,iBAAiB,CACtC,YAA2B,EAC3B,YAAqB;;QAErB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,GAAG,mBAAmB,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,kDAAkD;QAClD,IAAI,CAAC;YACJ,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,yCAAyC;YACzC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,eAAe,qBAAQ,YAAY,CAAE,CAAC;QAC5C,IAAI,eAAe,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,eAAe,CAAC,UAAU,CAAC;QACnC,CAAC;QAED,MAAM,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7E,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAEzD,OAAO,YAAY,CAAC;IACrB,CAAC;CAAA;AAED;;;;;GAKG;AACH,SAAsB,eAAe,CACpC,YAAqB,EACrB,WAAqB;;QAErB,IAAI,aAAa,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO,aAAa,CAAC;QACtB,CAAC;QAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,GAAG,mBAAmB,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,0BAA0B;YAC1B,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE5D,IAAI,CAAC;YACJ,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACd,kCAAkC,YAAY,uCAAuC,CACrF,CAAC;QACH,CAAC;QAED,OAAO,aAA8B,CAAC;IACvC,CAAC;CAAA;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB;IAClC,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IAEzC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,6BAAuB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB;IACnC,IAAI,UAAU,CAAC;IACf,IAAI,OAAO,CAAC,GAAG,CAAC,+BAAyB,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1D,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,+BAAyB,CAAW,CAAC;IAC/D,CAAC;SAAM,CAAC;QACP,UAAU,GAAG,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,6BAAuB,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,mCAAmC;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,6BAAuB,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,WAAW;IAC1B,IAAI,YAAY,GAAG,MAAM,CAAC;IAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,YAAY,GAAG,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7C,iDAAiD;QACjD,8BAA8B;QAC9B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAW,CAAC;AAC5C,CAAC"}
|
|
@@ -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
|
+
}
|