@fsai-flow/core 0.0.4 → 0.1.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/index.d.ts +17 -0
- package/dist/index.js +61 -0
- package/dist/{src/lib → lib}/ActiveWebhooks.d.ts +1 -1
- package/dist/lib/ActiveWebhooks.js +177 -0
- package/dist/{src/lib → lib}/ActiveWorkflows.d.ts +3 -3
- package/dist/lib/ActiveWorkflows.js +465 -0
- package/dist/{src/lib → lib}/BinaryDataManager/FileSystem.d.ts +1 -1
- package/dist/lib/BinaryDataManager/FileSystem.js +180 -0
- package/dist/{src/lib → lib}/BinaryDataManager/index.d.ts +2 -2
- package/dist/lib/BinaryDataManager/index.js +129 -0
- package/dist/{src/lib → lib}/ChangeCase.js +11 -11
- package/dist/lib/Constants.js +18 -0
- package/dist/{src/lib → lib}/Credentials.d.ts +1 -1
- package/dist/{src/lib → lib}/Credentials.js +7 -8
- package/dist/{src/lib → lib}/FileSystem.d.ts +1 -1
- package/dist/lib/FileSystem.js +180 -0
- package/dist/{src/lib → lib}/InputConnectionDataLegacy.d.ts +1 -1
- package/dist/lib/InputConnectionDataLegacy.js +72 -0
- package/dist/{src/lib → lib}/Interfaces.d.ts +47 -48
- package/dist/{src/lib → lib}/Interfaces.js +0 -1
- package/dist/{src/lib → lib}/LoadNodeParameterOptions.d.ts +1 -1
- package/dist/lib/LoadNodeParameterOptions.js +152 -0
- package/dist/{src/lib → lib}/NodeExecuteFunctions.d.ts +9 -10
- package/dist/lib/NodeExecuteFunctions.js +2467 -0
- package/dist/{src/lib → lib}/NodesLoader/constants.d.ts +1 -1
- package/dist/lib/NodesLoader/constants.js +105 -0
- package/dist/{src/lib → lib}/NodesLoader/custom-directory-loader.d.ts +1 -1
- package/dist/lib/NodesLoader/custom-directory-loader.js +35 -0
- package/dist/{src/lib → lib}/NodesLoader/directory-loader.d.ts +1 -1
- package/dist/{src/lib → lib}/NodesLoader/directory-loader.js +80 -38
- package/dist/lib/NodesLoader/index.d.ts +5 -0
- package/dist/{src/lib → lib}/NodesLoader/index.js +5 -6
- package/dist/{src/lib → lib}/NodesLoader/lazy-package-directory-loader.d.ts +1 -1
- package/dist/lib/NodesLoader/lazy-package-directory-loader.js +44 -0
- package/dist/{src/lib → lib}/NodesLoader/load-class-in-isolation.js +6 -11
- package/dist/{src/lib → lib}/NodesLoader/package-directory-loader.d.ts +2 -2
- package/dist/{src/lib → lib}/NodesLoader/package-directory-loader.js +28 -36
- package/dist/{src/lib → lib}/NodesLoader/types.js +0 -1
- package/dist/{src/lib → lib}/RedisLeaderElectionManager.d.ts +1 -1
- package/dist/lib/RedisLeaderElectionManager.js +279 -0
- package/dist/lib/RequestTypes.d.ts +58 -0
- package/dist/lib/RequestTypes.js +8 -0
- package/dist/{src/lib → lib}/UserSettings.d.ts +1 -1
- package/dist/lib/UserSettings.js +269 -0
- package/dist/{src/lib → lib}/WorkflowExecute.d.ts +4 -4
- package/dist/{src/lib → lib}/WorkflowExecute.js +230 -178
- package/dist/{src/lib → lib}/index.d.ts +2 -2
- package/dist/lib/index.js +129 -0
- package/dist/{src/utils → utils}/crypto.js +2 -3
- package/package.json +59 -52
- package/dist/README.md +0 -31
- package/dist/package.json +0 -54
- package/dist/src/index.d.ts +0 -16
- package/dist/src/index.js +0 -30
- package/dist/src/index.js.map +0 -1
- package/dist/src/lib/ActiveWebhooks.js +0 -184
- package/dist/src/lib/ActiveWebhooks.js.map +0 -1
- package/dist/src/lib/ActiveWorkflows.js +0 -456
- package/dist/src/lib/ActiveWorkflows.js.map +0 -1
- package/dist/src/lib/BinaryDataManager/FileSystem.js +0 -179
- package/dist/src/lib/BinaryDataManager/FileSystem.js.map +0 -1
- package/dist/src/lib/BinaryDataManager/index.js +0 -146
- package/dist/src/lib/BinaryDataManager/index.js.map +0 -1
- package/dist/src/lib/ChangeCase.js.map +0 -1
- package/dist/src/lib/Constants.js +0 -19
- package/dist/src/lib/Constants.js.map +0 -1
- package/dist/src/lib/Credentials.js.map +0 -1
- package/dist/src/lib/FileSystem.js +0 -179
- package/dist/src/lib/FileSystem.js.map +0 -1
- package/dist/src/lib/InputConnectionDataLegacy.js +0 -79
- package/dist/src/lib/InputConnectionDataLegacy.js.map +0 -1
- package/dist/src/lib/Interfaces.js.map +0 -1
- package/dist/src/lib/LoadNodeParameterOptions.js +0 -150
- package/dist/src/lib/LoadNodeParameterOptions.js.map +0 -1
- package/dist/src/lib/NodeExecuteFunctions.js +0 -2479
- package/dist/src/lib/NodeExecuteFunctions.js.map +0 -1
- package/dist/src/lib/NodesLoader/constants.js +0 -106
- package/dist/src/lib/NodesLoader/constants.js.map +0 -1
- package/dist/src/lib/NodesLoader/custom-directory-loader.js +0 -36
- package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/index.d.ts +0 -5
- package/dist/src/lib/NodesLoader/index.js.map +0 -1
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +0 -52
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +0 -1
- package/dist/src/lib/NodesLoader/package-directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/types.js.map +0 -1
- package/dist/src/lib/RedisLeaderElectionManager.js +0 -294
- package/dist/src/lib/RedisLeaderElectionManager.js.map +0 -1
- package/dist/src/lib/UserSettings.js +0 -261
- package/dist/src/lib/UserSettings.js.map +0 -1
- package/dist/src/lib/WorkflowExecute.js.map +0 -1
- package/dist/src/lib/index.js +0 -146
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/utils/crypto.js.map +0 -1
- package/eslint.config.js +0 -19
- package/jest.config.ts +0 -10
- package/project.json +0 -19
- package/src/index.ts +0 -28
- package/src/lib/ActiveWebhooks.ts +0 -245
- package/src/lib/ActiveWorkflows.ts +0 -575
- package/src/lib/BinaryDataManager/FileSystem.ts +0 -214
- package/src/lib/BinaryDataManager/index.ts +0 -187
- package/src/lib/ChangeCase.ts +0 -45
- package/src/lib/Constants.ts +0 -16
- package/src/lib/Credentials.ts +0 -108
- package/src/lib/FileSystem.ts +0 -214
- package/src/lib/InputConnectionDataLegacy.ts +0 -123
- package/src/lib/Interfaces.ts +0 -338
- package/src/lib/LoadNodeParameterOptions.ts +0 -235
- package/src/lib/NodeExecuteFunctions.ts +0 -3700
- package/src/lib/NodesLoader/constants.ts +0 -112
- package/src/lib/NodesLoader/custom-directory-loader.ts +0 -31
- package/src/lib/NodesLoader/directory-loader.ts +0 -458
- package/src/lib/NodesLoader/index.ts +0 -5
- package/src/lib/NodesLoader/lazy-package-directory-loader.ts +0 -55
- package/src/lib/NodesLoader/load-class-in-isolation.ts +0 -19
- package/src/lib/NodesLoader/package-directory-loader.ts +0 -107
- package/src/lib/NodesLoader/types.ts +0 -14
- package/src/lib/RedisLeaderElectionManager.ts +0 -334
- package/src/lib/UserSettings.ts +0 -292
- package/src/lib/WorkflowExecute.ts +0 -1128
- package/src/lib/index.ts +0 -187
- package/src/utils/crypto.ts +0 -5
- package/tests/Credentials.test.ts +0 -88
- package/tests/Helpers.ts +0 -808
- package/tests/WorkflowExecute.test.ts +0 -1242
- package/tsconfig.json +0 -41
- package/tsconfig.lib.json +0 -10
- package/tsconfig.spec.json +0 -14
- /package/dist/{src/lib → lib}/ChangeCase.d.ts +0 -0
- /package/dist/{src/lib → lib}/Constants.d.ts +0 -0
- /package/dist/{src/lib → lib}/NodesLoader/load-class-in-isolation.d.ts +0 -0
- /package/dist/{src/lib → lib}/NodesLoader/types.d.ts +0 -0
- /package/dist/{src/utils → utils}/crypto.d.ts +0 -0
package/dist/src/lib/index.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/utils/crypto.ts"],"names":[],"mappings":";;AAEA,gDAEC;AAJD,mCAAmC;AAEnC,SAAgB,kBAAkB,CAAC,GAAW,EAAE,GAAW;IACvD,OAAO,IAAA,kBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC"}
|
package/eslint.config.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const baseConfig = require('../../eslint.config.js');
|
|
2
|
-
|
|
3
|
-
module.exports = [
|
|
4
|
-
...baseConfig,
|
|
5
|
-
{
|
|
6
|
-
files: ['**/*.json'],
|
|
7
|
-
rules: {
|
|
8
|
-
'@nx/dependency-checks': [
|
|
9
|
-
'error',
|
|
10
|
-
{
|
|
11
|
-
ignoredFiles: ['{projectRoot}/eslint.config.{js,cjs,mjs}'],
|
|
12
|
-
},
|
|
13
|
-
],
|
|
14
|
-
},
|
|
15
|
-
languageOptions: {
|
|
16
|
-
parser: require('jsonc-eslint-parser'),
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
];
|
package/jest.config.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
displayName: 'core',
|
|
3
|
-
preset: '../../jest.preset.js',
|
|
4
|
-
testEnvironment: 'node',
|
|
5
|
-
transform: {
|
|
6
|
-
'^.+\\.[tj]s$': ['ts-jest', { tsconfig: '<rootDir>/tsconfig.spec.json' }],
|
|
7
|
-
},
|
|
8
|
-
moduleFileExtensions: ['ts', 'js', 'html'],
|
|
9
|
-
coverageDirectory: '../../coverage/libs/core',
|
|
10
|
-
};
|
package/project.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "core",
|
|
3
|
-
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
-
"sourceRoot": "libs/core/src",
|
|
5
|
-
"projectType": "library",
|
|
6
|
-
"tags": [],
|
|
7
|
-
"targets": {
|
|
8
|
-
"build": {
|
|
9
|
-
"executor": "@nx/js:tsc",
|
|
10
|
-
"outputs": ["{options.outputPath}"],
|
|
11
|
-
"options": {
|
|
12
|
-
"outputPath": "libs/core/dist",
|
|
13
|
-
"main": "libs/core/src/index.ts",
|
|
14
|
-
"tsConfig": "libs/core/tsconfig.lib.json",
|
|
15
|
-
"assets": ["libs/core/*.md"]
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
import * as NodeExecuteFunctions from './lib/NodeExecuteFunctions';
|
|
3
|
-
import * as UserSettings from './lib/UserSettings';
|
|
4
|
-
import * as getInputConnectionDataLegacy from './lib/InputConnectionDataLegacy';
|
|
5
|
-
|
|
6
|
-
try {
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, import/no-extraneous-dependencies, global-require, @typescript-eslint/no-var-requires
|
|
8
|
-
require('source-map-support').install();
|
|
9
|
-
// eslint-disable-next-line no-empty
|
|
10
|
-
} catch (error) {}
|
|
11
|
-
|
|
12
|
-
export * from './lib/ActiveWorkflows';
|
|
13
|
-
export * from './lib/ActiveWebhooks';
|
|
14
|
-
export * from './lib/BinaryDataManager';
|
|
15
|
-
export * from './lib/Constants';
|
|
16
|
-
export * from './lib/Credentials';
|
|
17
|
-
export * from './lib/Interfaces';
|
|
18
|
-
export * from './lib/RedisLeaderElectionManager';
|
|
19
|
-
export * from './lib/LoadNodeParameterOptions';
|
|
20
|
-
export * from './lib/NodeExecuteFunctions';
|
|
21
|
-
export * from './lib/WorkflowExecute';
|
|
22
|
-
export * from './lib/ChangeCase';
|
|
23
|
-
export * from './lib/NodesLoader';
|
|
24
|
-
export {
|
|
25
|
-
NodeExecuteFunctions,
|
|
26
|
-
UserSettings,
|
|
27
|
-
getInputConnectionDataLegacy
|
|
28
|
-
};
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
IWebhookData,
|
|
3
|
-
WebhookHttpMethod,
|
|
4
|
-
Workflow,
|
|
5
|
-
WorkflowActivateMode,
|
|
6
|
-
WorkflowExecuteMode,
|
|
7
|
-
} from '@fsai-flow/workflow';
|
|
8
|
-
|
|
9
|
-
// eslint-disable-next-line import/no-cycle
|
|
10
|
-
import { NodeExecuteFunctions } from '..';
|
|
11
|
-
|
|
12
|
-
export class ActiveWebhooks {
|
|
13
|
-
private workflowWebhooks: {
|
|
14
|
-
[key: string]: IWebhookData[];
|
|
15
|
-
} = {};
|
|
16
|
-
|
|
17
|
-
private webhookUrls: {
|
|
18
|
-
[key: string]: IWebhookData[];
|
|
19
|
-
} = {};
|
|
20
|
-
|
|
21
|
-
testWebhooks = false;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Adds a new webhook
|
|
25
|
-
*
|
|
26
|
-
* @param {IWebhookData} webhookData
|
|
27
|
-
* @param {WorkflowExecuteMode} mode
|
|
28
|
-
* @returns {Promise<void>}
|
|
29
|
-
* @memberof ActiveWebhooks
|
|
30
|
-
*/
|
|
31
|
-
async add(
|
|
32
|
-
workflow: Workflow,
|
|
33
|
-
webhookData: IWebhookData,
|
|
34
|
-
mode: WorkflowExecuteMode,
|
|
35
|
-
activation: WorkflowActivateMode,
|
|
36
|
-
): Promise<void> {
|
|
37
|
-
if (workflow.id === undefined) {
|
|
38
|
-
throw new Error('Webhooks can only be added for saved workflows as an id is needed!');
|
|
39
|
-
}
|
|
40
|
-
if (webhookData.path.endsWith('/')) {
|
|
41
|
-
// eslint-disable-next-line no-param-reassign
|
|
42
|
-
webhookData.path = webhookData.path.slice(0, -1);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const webhookKey = this.getWebhookKey(
|
|
46
|
-
webhookData.httpMethod,
|
|
47
|
-
webhookData.path,
|
|
48
|
-
webhookData.webhookId,
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
// check that there is not a webhook already registed with that path/method
|
|
52
|
-
if (this.webhookUrls[webhookKey] && !webhookData.webhookId) {
|
|
53
|
-
throw new Error(
|
|
54
|
-
`The URL path that the "${webhookData.node}" node uses is already taken. Please change it to something else.`,
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (this.workflowWebhooks[webhookData.workflowId] === undefined) {
|
|
59
|
-
this.workflowWebhooks[webhookData.workflowId] = [];
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// Make the webhook available directly because sometimes to create it successfully
|
|
63
|
-
// it gets called
|
|
64
|
-
if (!this.webhookUrls[webhookKey]) {
|
|
65
|
-
this.webhookUrls[webhookKey] = [];
|
|
66
|
-
}
|
|
67
|
-
this.webhookUrls[webhookKey].push(webhookData);
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
const webhookExists = await workflow.runWebhookMethod(
|
|
71
|
-
'checkExists',
|
|
72
|
-
webhookData,
|
|
73
|
-
NodeExecuteFunctions,
|
|
74
|
-
mode,
|
|
75
|
-
activation,
|
|
76
|
-
this.testWebhooks,
|
|
77
|
-
);
|
|
78
|
-
if (webhookExists !== true) {
|
|
79
|
-
// If webhook does not exist yet create it
|
|
80
|
-
await workflow.runWebhookMethod(
|
|
81
|
-
'create',
|
|
82
|
-
webhookData,
|
|
83
|
-
NodeExecuteFunctions,
|
|
84
|
-
mode,
|
|
85
|
-
activation,
|
|
86
|
-
this.testWebhooks,
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
} catch (error) {
|
|
90
|
-
// If there was a problem unregister the webhook again
|
|
91
|
-
if (this.webhookUrls[webhookKey].length <= 1) {
|
|
92
|
-
delete this.webhookUrls[webhookKey];
|
|
93
|
-
} else {
|
|
94
|
-
this.webhookUrls[webhookKey] = this.webhookUrls[webhookKey].filter(
|
|
95
|
-
(webhook) => webhook.path !== webhookData.path,
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
throw error;
|
|
100
|
-
}
|
|
101
|
-
this.workflowWebhooks[webhookData.workflowId].push(webhookData);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Returns webhookData if a webhook with matches is currently registered
|
|
106
|
-
*
|
|
107
|
-
* @param {WebhookHttpMethod} httpMethod
|
|
108
|
-
* @param {string} path
|
|
109
|
-
* @param {(string | undefined)} webhookId
|
|
110
|
-
* @returns {(IWebhookData | undefined)}
|
|
111
|
-
* @memberof ActiveWebhooks
|
|
112
|
-
*/
|
|
113
|
-
get(httpMethod: WebhookHttpMethod, path: string, webhookId?: string): IWebhookData | undefined {
|
|
114
|
-
const webhookKey = this.getWebhookKey(httpMethod, path, webhookId);
|
|
115
|
-
if (this.webhookUrls[webhookKey] === undefined) {
|
|
116
|
-
return undefined;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
let webhook: IWebhookData | undefined;
|
|
120
|
-
let maxMatches = 0;
|
|
121
|
-
const pathElementsSet = new Set(path.split('/'));
|
|
122
|
-
// check if static elements match in path
|
|
123
|
-
// if more results have been returned choose the one with the most static-route matches
|
|
124
|
-
this.webhookUrls[webhookKey].forEach((dynamicWebhook) => {
|
|
125
|
-
const staticElements = dynamicWebhook.path.split('/').filter((ele) => !ele.startsWith(':'));
|
|
126
|
-
const allStaticExist = staticElements.every((staticEle) => pathElementsSet.has(staticEle));
|
|
127
|
-
|
|
128
|
-
if (allStaticExist && staticElements.length > maxMatches) {
|
|
129
|
-
maxMatches = staticElements.length;
|
|
130
|
-
webhook = dynamicWebhook;
|
|
131
|
-
}
|
|
132
|
-
// handle routes with no static elements
|
|
133
|
-
else if (staticElements.length === 0 && !webhook) {
|
|
134
|
-
webhook = dynamicWebhook;
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
return webhook;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Gets all request methods associated with a single webhook
|
|
143
|
-
* @param path
|
|
144
|
-
*/
|
|
145
|
-
getWebhookMethods(path: string): string[] {
|
|
146
|
-
const methods: string[] = [];
|
|
147
|
-
|
|
148
|
-
Object.keys(this.webhookUrls)
|
|
149
|
-
.filter((key) => key.includes(path))
|
|
150
|
-
// eslint-disable-next-line array-callback-return
|
|
151
|
-
.map((key) => {
|
|
152
|
-
methods.push(key.split('|')[0]);
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
return methods;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Returns the ids of all the workflows which have active webhooks
|
|
160
|
-
*
|
|
161
|
-
* @returns {string[]}
|
|
162
|
-
* @memberof ActiveWebhooks
|
|
163
|
-
*/
|
|
164
|
-
getWorkflowIds(): string[] {
|
|
165
|
-
return Object.keys(this.workflowWebhooks);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Returns key to uniquely identify a webhook
|
|
170
|
-
*
|
|
171
|
-
* @param {WebhookHttpMethod} httpMethod
|
|
172
|
-
* @param {string} path
|
|
173
|
-
* @param {(string | undefined)} webhookId
|
|
174
|
-
* @returns {string}
|
|
175
|
-
* @memberof ActiveWebhooks
|
|
176
|
-
*/
|
|
177
|
-
getWebhookKey(httpMethod: WebhookHttpMethod, path: string, webhookId?: string): string {
|
|
178
|
-
if (webhookId) {
|
|
179
|
-
if (path.startsWith(webhookId)) {
|
|
180
|
-
const cutFromIndex = path.indexOf('/') + 1;
|
|
181
|
-
// eslint-disable-next-line no-param-reassign
|
|
182
|
-
path = path.slice(cutFromIndex);
|
|
183
|
-
}
|
|
184
|
-
return `${httpMethod}|${webhookId}|${path.split('/').length}`;
|
|
185
|
-
}
|
|
186
|
-
return `${httpMethod}|${path}`;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Removes all webhooks of a workflow
|
|
191
|
-
*
|
|
192
|
-
* @param {Workflow} workflow
|
|
193
|
-
* @returns {boolean}
|
|
194
|
-
* @memberof ActiveWebhooks
|
|
195
|
-
*/
|
|
196
|
-
async removeWorkflow(workflow: Workflow): Promise<boolean> {
|
|
197
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
198
|
-
const workflowId = workflow.id!.toString();
|
|
199
|
-
|
|
200
|
-
if (this.workflowWebhooks[workflowId] === undefined) {
|
|
201
|
-
// If it did not exist then there is nothing to remove
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
const webhooks = this.workflowWebhooks[workflowId];
|
|
206
|
-
|
|
207
|
-
const mode = 'internal';
|
|
208
|
-
|
|
209
|
-
// Go through all the registered webhooks of the workflow and remove them
|
|
210
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
211
|
-
for (const webhookData of webhooks) {
|
|
212
|
-
// eslint-disable-next-line no-await-in-loop
|
|
213
|
-
await workflow.runWebhookMethod(
|
|
214
|
-
'delete',
|
|
215
|
-
webhookData,
|
|
216
|
-
NodeExecuteFunctions,
|
|
217
|
-
mode,
|
|
218
|
-
'update',
|
|
219
|
-
this.testWebhooks,
|
|
220
|
-
);
|
|
221
|
-
|
|
222
|
-
delete this.webhookUrls[
|
|
223
|
-
this.getWebhookKey(webhookData.httpMethod, webhookData.path, webhookData.webhookId)
|
|
224
|
-
];
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// Remove also the workflow-webhook entry
|
|
228
|
-
delete this.workflowWebhooks[workflowId];
|
|
229
|
-
|
|
230
|
-
return true;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Removes all the webhooks of the given workflows
|
|
235
|
-
*/
|
|
236
|
-
async removeAll(workflows: Workflow[]): Promise<void> {
|
|
237
|
-
const removePromises = [];
|
|
238
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
239
|
-
for (const workflow of workflows) {
|
|
240
|
-
removePromises.push(this.removeWorkflow(workflow));
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
await Promise.all(removePromises);
|
|
244
|
-
}
|
|
245
|
-
}
|