@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 @@
1
+ {"version":3,"file":"WorkflowExecute.js","sourceRoot":"","sources":["../../../src/lib/WorkflowExecute.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/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function secureRandomNumber(min: number, max: number): number;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.secureRandomNumber = secureRandomNumber;
4
+ const crypto_1 = require("crypto");
5
+ function secureRandomNumber(min, max) {
6
+ return (0, crypto_1.randomInt)(min, max);
7
+ }
8
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,19 @@
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 ADDED
@@ -0,0 +1,10 @@
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/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@fsai-flow/core",
3
+ "version": "0.0.1",
4
+ "license": "PolyForm Noncommercial License 1.0.0",
5
+ "dependencies": {
6
+ "@fsai-flow/workflow": "workspace:^",
7
+ "client-oauth2": "^4.3.3",
8
+ "cron": "~3.3.0",
9
+ "crypto-js": "~4.2.0",
10
+ "file-type": "^16.0.0",
11
+ "form-data": "^4.0.0",
12
+ "https-proxy-agent": "^7.0.6",
13
+ "lodash": "^4.17.21",
14
+ "mime-types": "^2.1.27",
15
+ "oauth-1.0a": "^2.2.6",
16
+ "p-cancelable": "^2.0.0",
17
+ "qs": "^6.10.1",
18
+ "request": "^2.88.2",
19
+ "request-promise-native": "^1.0.9",
20
+ "simple-oauth2": "^5.1.0",
21
+ "tslib": "^2.3.0",
22
+ "uuid": "^11.0.3",
23
+ "fast-glob": "catalog:"
24
+ },
25
+ "devDependencies": {
26
+ "@types/crypto-js": "^4.0.1",
27
+ "@types/express": "^5.0.0",
28
+ "@types/lodash": "^4.17.13",
29
+ "@types/lodash.get": "^4.4.9",
30
+ "@types/mime-types": "^2.1.0",
31
+ "@types/node": "^22.10.2",
32
+ "@types/qs": "^6.9.17",
33
+ "@types/request": "^2.48.12",
34
+ "@types/request-promise-native": "^1.0.15",
35
+ "@types/simple-oauth2": "^5.0.7",
36
+ "@types/uuid": "^10.0.0",
37
+ "axios": "^1.7.9",
38
+ "jsonc-eslint-parser": "^2.4.0",
39
+ "typescript": "~5.7.2"
40
+ },
41
+ "type": "commonjs",
42
+ "main": "dist/src/index",
43
+ "types": "dist/src/index.d.ts"
44
+ }
package/project.json ADDED
@@ -0,0 +1,19 @@
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 ADDED
@@ -0,0 +1,27 @@
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/LoadNodeParameterOptions';
19
+ export * from './lib/NodeExecuteFunctions';
20
+ export * from './lib/WorkflowExecute';
21
+ export * from './lib/ChangeCase';
22
+ export * from './lib/NodesLoader';
23
+ export {
24
+ NodeExecuteFunctions,
25
+ UserSettings,
26
+ getInputConnectionDataLegacy
27
+ };
@@ -0,0 +1,245 @@
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 '../../src';
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
+ }