@fsai-flow/core 0.0.2 → 0.0.3

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 (86) hide show
  1. package/README.md +22 -2
  2. package/package.json +15 -5
  3. package/src/index.ts +1 -0
  4. package/src/lib/ActiveWorkflows.ts +326 -55
  5. package/src/lib/NodeExecuteFunctions.ts +0 -4
  6. package/src/lib/RedisLeaderElectionManager.ts +252 -0
  7. package/src/lib/WorkflowExecute.ts +26 -2
  8. package/tsconfig.base.json +28 -0
  9. package/tsconfig.json +1 -1
  10. package/dist/README.md +0 -11
  11. package/dist/package.json +0 -44
  12. package/dist/src/index.d.ts +0 -15
  13. package/dist/src/index.js +0 -29
  14. package/dist/src/index.js.map +0 -1
  15. package/dist/src/lib/ActiveWebhooks.d.ts +0 -59
  16. package/dist/src/lib/ActiveWebhooks.js +0 -184
  17. package/dist/src/lib/ActiveWebhooks.js.map +0 -1
  18. package/dist/src/lib/ActiveWorkflows.d.ts +0 -58
  19. package/dist/src/lib/ActiveWorkflows.js +0 -244
  20. package/dist/src/lib/ActiveWorkflows.js.map +0 -1
  21. package/dist/src/lib/BinaryDataManager/FileSystem.d.ts +0 -26
  22. package/dist/src/lib/BinaryDataManager/FileSystem.js +0 -179
  23. package/dist/src/lib/BinaryDataManager/FileSystem.js.map +0 -1
  24. package/dist/src/lib/BinaryDataManager/index.d.ts +0 -21
  25. package/dist/src/lib/BinaryDataManager/index.js +0 -146
  26. package/dist/src/lib/BinaryDataManager/index.js.map +0 -1
  27. package/dist/src/lib/ChangeCase.d.ts +0 -9
  28. package/dist/src/lib/ChangeCase.js +0 -43
  29. package/dist/src/lib/ChangeCase.js.map +0 -1
  30. package/dist/src/lib/Constants.d.ts +0 -14
  31. package/dist/src/lib/Constants.js +0 -19
  32. package/dist/src/lib/Constants.js.map +0 -1
  33. package/dist/src/lib/Credentials.d.ts +0 -27
  34. package/dist/src/lib/Credentials.js +0 -89
  35. package/dist/src/lib/Credentials.js.map +0 -1
  36. package/dist/src/lib/FileSystem.d.ts +0 -26
  37. package/dist/src/lib/FileSystem.js +0 -179
  38. package/dist/src/lib/FileSystem.js.map +0 -1
  39. package/dist/src/lib/InputConnectionDataLegacy.d.ts +0 -2
  40. package/dist/src/lib/InputConnectionDataLegacy.js +0 -79
  41. package/dist/src/lib/InputConnectionDataLegacy.js.map +0 -1
  42. package/dist/src/lib/Interfaces.d.ts +0 -148
  43. package/dist/src/lib/Interfaces.js +0 -3
  44. package/dist/src/lib/Interfaces.js.map +0 -1
  45. package/dist/src/lib/LoadNodeParameterOptions.d.ts +0 -39
  46. package/dist/src/lib/LoadNodeParameterOptions.js +0 -150
  47. package/dist/src/lib/LoadNodeParameterOptions.js.map +0 -1
  48. package/dist/src/lib/NodeExecuteFunctions.d.ts +0 -226
  49. package/dist/src/lib/NodeExecuteFunctions.js +0 -2483
  50. package/dist/src/lib/NodeExecuteFunctions.js.map +0 -1
  51. package/dist/src/lib/NodesLoader/constants.d.ts +0 -5
  52. package/dist/src/lib/NodesLoader/constants.js +0 -106
  53. package/dist/src/lib/NodesLoader/constants.js.map +0 -1
  54. package/dist/src/lib/NodesLoader/custom-directory-loader.d.ts +0 -9
  55. package/dist/src/lib/NodesLoader/custom-directory-loader.js +0 -36
  56. package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +0 -1
  57. package/dist/src/lib/NodesLoader/directory-loader.d.ts +0 -66
  58. package/dist/src/lib/NodesLoader/directory-loader.js +0 -325
  59. package/dist/src/lib/NodesLoader/directory-loader.js.map +0 -1
  60. package/dist/src/lib/NodesLoader/index.d.ts +0 -5
  61. package/dist/src/lib/NodesLoader/index.js +0 -12
  62. package/dist/src/lib/NodesLoader/index.js.map +0 -1
  63. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.d.ts +0 -7
  64. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +0 -52
  65. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +0 -1
  66. package/dist/src/lib/NodesLoader/load-class-in-isolation.d.ts +0 -1
  67. package/dist/src/lib/NodesLoader/load-class-in-isolation.js +0 -22
  68. package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +0 -1
  69. package/dist/src/lib/NodesLoader/package-directory-loader.d.ts +0 -17
  70. package/dist/src/lib/NodesLoader/package-directory-loader.js +0 -100
  71. package/dist/src/lib/NodesLoader/package-directory-loader.js.map +0 -1
  72. package/dist/src/lib/NodesLoader/types.d.ts +0 -14
  73. package/dist/src/lib/NodesLoader/types.js +0 -3
  74. package/dist/src/lib/NodesLoader/types.js.map +0 -1
  75. package/dist/src/lib/UserSettings.d.ts +0 -80
  76. package/dist/src/lib/UserSettings.js +0 -261
  77. package/dist/src/lib/UserSettings.js.map +0 -1
  78. package/dist/src/lib/WorkflowExecute.d.ts +0 -53
  79. package/dist/src/lib/WorkflowExecute.js +0 -835
  80. package/dist/src/lib/WorkflowExecute.js.map +0 -1
  81. package/dist/src/lib/index.d.ts +0 -21
  82. package/dist/src/lib/index.js +0 -146
  83. package/dist/src/lib/index.js.map +0 -1
  84. package/dist/src/utils/crypto.d.ts +0 -1
  85. package/dist/src/utils/crypto.js +0 -8
  86. package/dist/src/utils/crypto.js.map +0 -1
@@ -1,184 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ActiveWebhooks = void 0;
4
- const tslib_1 = require("tslib");
5
- // eslint-disable-next-line import/no-cycle
6
- const src_1 = require("../../src");
7
- class ActiveWebhooks {
8
- constructor() {
9
- this.workflowWebhooks = {};
10
- this.webhookUrls = {};
11
- this.testWebhooks = false;
12
- }
13
- /**
14
- * Adds a new webhook
15
- *
16
- * @param {IWebhookData} webhookData
17
- * @param {WorkflowExecuteMode} mode
18
- * @returns {Promise<void>}
19
- * @memberof ActiveWebhooks
20
- */
21
- add(workflow, webhookData, mode, activation) {
22
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
- if (workflow.id === undefined) {
24
- throw new Error('Webhooks can only be added for saved workflows as an id is needed!');
25
- }
26
- if (webhookData.path.endsWith('/')) {
27
- // eslint-disable-next-line no-param-reassign
28
- webhookData.path = webhookData.path.slice(0, -1);
29
- }
30
- const webhookKey = this.getWebhookKey(webhookData.httpMethod, webhookData.path, webhookData.webhookId);
31
- // check that there is not a webhook already registed with that path/method
32
- if (this.webhookUrls[webhookKey] && !webhookData.webhookId) {
33
- throw new Error(`The URL path that the "${webhookData.node}" node uses is already taken. Please change it to something else.`);
34
- }
35
- if (this.workflowWebhooks[webhookData.workflowId] === undefined) {
36
- this.workflowWebhooks[webhookData.workflowId] = [];
37
- }
38
- // Make the webhook available directly because sometimes to create it successfully
39
- // it gets called
40
- if (!this.webhookUrls[webhookKey]) {
41
- this.webhookUrls[webhookKey] = [];
42
- }
43
- this.webhookUrls[webhookKey].push(webhookData);
44
- try {
45
- const webhookExists = yield workflow.runWebhookMethod('checkExists', webhookData, src_1.NodeExecuteFunctions, mode, activation, this.testWebhooks);
46
- if (webhookExists !== true) {
47
- // If webhook does not exist yet create it
48
- yield workflow.runWebhookMethod('create', webhookData, src_1.NodeExecuteFunctions, mode, activation, this.testWebhooks);
49
- }
50
- }
51
- catch (error) {
52
- // If there was a problem unregister the webhook again
53
- if (this.webhookUrls[webhookKey].length <= 1) {
54
- delete this.webhookUrls[webhookKey];
55
- }
56
- else {
57
- this.webhookUrls[webhookKey] = this.webhookUrls[webhookKey].filter((webhook) => webhook.path !== webhookData.path);
58
- }
59
- throw error;
60
- }
61
- this.workflowWebhooks[webhookData.workflowId].push(webhookData);
62
- });
63
- }
64
- /**
65
- * Returns webhookData if a webhook with matches is currently registered
66
- *
67
- * @param {WebhookHttpMethod} httpMethod
68
- * @param {string} path
69
- * @param {(string | undefined)} webhookId
70
- * @returns {(IWebhookData | undefined)}
71
- * @memberof ActiveWebhooks
72
- */
73
- get(httpMethod, path, webhookId) {
74
- const webhookKey = this.getWebhookKey(httpMethod, path, webhookId);
75
- if (this.webhookUrls[webhookKey] === undefined) {
76
- return undefined;
77
- }
78
- let webhook;
79
- let maxMatches = 0;
80
- const pathElementsSet = new Set(path.split('/'));
81
- // check if static elements match in path
82
- // if more results have been returned choose the one with the most static-route matches
83
- this.webhookUrls[webhookKey].forEach((dynamicWebhook) => {
84
- const staticElements = dynamicWebhook.path.split('/').filter((ele) => !ele.startsWith(':'));
85
- const allStaticExist = staticElements.every((staticEle) => pathElementsSet.has(staticEle));
86
- if (allStaticExist && staticElements.length > maxMatches) {
87
- maxMatches = staticElements.length;
88
- webhook = dynamicWebhook;
89
- }
90
- // handle routes with no static elements
91
- else if (staticElements.length === 0 && !webhook) {
92
- webhook = dynamicWebhook;
93
- }
94
- });
95
- return webhook;
96
- }
97
- /**
98
- * Gets all request methods associated with a single webhook
99
- * @param path
100
- */
101
- getWebhookMethods(path) {
102
- const methods = [];
103
- Object.keys(this.webhookUrls)
104
- .filter((key) => key.includes(path))
105
- // eslint-disable-next-line array-callback-return
106
- .map((key) => {
107
- methods.push(key.split('|')[0]);
108
- });
109
- return methods;
110
- }
111
- /**
112
- * Returns the ids of all the workflows which have active webhooks
113
- *
114
- * @returns {string[]}
115
- * @memberof ActiveWebhooks
116
- */
117
- getWorkflowIds() {
118
- return Object.keys(this.workflowWebhooks);
119
- }
120
- /**
121
- * Returns key to uniquely identify a webhook
122
- *
123
- * @param {WebhookHttpMethod} httpMethod
124
- * @param {string} path
125
- * @param {(string | undefined)} webhookId
126
- * @returns {string}
127
- * @memberof ActiveWebhooks
128
- */
129
- getWebhookKey(httpMethod, path, webhookId) {
130
- if (webhookId) {
131
- if (path.startsWith(webhookId)) {
132
- const cutFromIndex = path.indexOf('/') + 1;
133
- // eslint-disable-next-line no-param-reassign
134
- path = path.slice(cutFromIndex);
135
- }
136
- return `${httpMethod}|${webhookId}|${path.split('/').length}`;
137
- }
138
- return `${httpMethod}|${path}`;
139
- }
140
- /**
141
- * Removes all webhooks of a workflow
142
- *
143
- * @param {Workflow} workflow
144
- * @returns {boolean}
145
- * @memberof ActiveWebhooks
146
- */
147
- removeWorkflow(workflow) {
148
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
149
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
150
- const workflowId = workflow.id.toString();
151
- if (this.workflowWebhooks[workflowId] === undefined) {
152
- // If it did not exist then there is nothing to remove
153
- return false;
154
- }
155
- const webhooks = this.workflowWebhooks[workflowId];
156
- const mode = 'internal';
157
- // Go through all the registered webhooks of the workflow and remove them
158
- // eslint-disable-next-line no-restricted-syntax
159
- for (const webhookData of webhooks) {
160
- // eslint-disable-next-line no-await-in-loop
161
- yield workflow.runWebhookMethod('delete', webhookData, src_1.NodeExecuteFunctions, mode, 'update', this.testWebhooks);
162
- delete this.webhookUrls[this.getWebhookKey(webhookData.httpMethod, webhookData.path, webhookData.webhookId)];
163
- }
164
- // Remove also the workflow-webhook entry
165
- delete this.workflowWebhooks[workflowId];
166
- return true;
167
- });
168
- }
169
- /**
170
- * Removes all the webhooks of the given workflows
171
- */
172
- removeAll(workflows) {
173
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
174
- const removePromises = [];
175
- // eslint-disable-next-line no-restricted-syntax
176
- for (const workflow of workflows) {
177
- removePromises.push(this.removeWorkflow(workflow));
178
- }
179
- yield Promise.all(removePromises);
180
- });
181
- }
182
- }
183
- exports.ActiveWebhooks = ActiveWebhooks;
184
- //# sourceMappingURL=ActiveWebhooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActiveWebhooks.js","sourceRoot":"","sources":["../../../src/lib/ActiveWebhooks.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- import { IGetExecutePollFunctions, IGetExecuteTriggerFunctions, INode, IPollResponse, IWorkflowExecuteAdditionalData, Workflow, WorkflowActivateMode, WorkflowExecuteMode } from '@fsai-flow/workflow';
2
- import { IWorkflowData } from '../../src';
3
- export declare class ActiveWorkflows {
4
- private workflowData;
5
- /**
6
- * Returns if the workflow is active
7
- *
8
- * @param {string} id The id of the workflow to check
9
- * @returns {boolean}
10
- * @memberof ActiveWorkflows
11
- */
12
- isActive(id: string): boolean;
13
- /**
14
- * Returns the ids of the currently active workflows
15
- *
16
- * @returns {string[]}
17
- * @memberof ActiveWorkflows
18
- */
19
- allActiveWorkflows(): string[];
20
- /**
21
- * Returns the Workflow data for the workflow with
22
- * the given id if it is currently active
23
- *
24
- * @param {string} id
25
- * @returns {(WorkflowData | undefined)}
26
- * @memberof ActiveWorkflows
27
- */
28
- get(id: string): IWorkflowData | undefined;
29
- /**
30
- * Makes a workflow active
31
- *
32
- * @param {string} id The id of the workflow to activate
33
- * @param {Workflow} workflow The workflow to activate
34
- * @param {IWorkflowExecuteAdditionalData} additionalData The additional data which is needed to run workflows
35
- * @returns {Promise<void>}
36
- * @memberof ActiveWorkflows
37
- */
38
- add(id: string, workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode, getTriggerFunctions: IGetExecuteTriggerFunctions, getPollFunctions: IGetExecutePollFunctions): Promise<void>;
39
- /**
40
- * Activates polling for the given node
41
- *
42
- * @param {INode} node
43
- * @param {Workflow} workflow
44
- * @param {IWorkflowExecuteAdditionalData} additionalData
45
- * @param {IGetExecutePollFunctions} getPollFunctions
46
- * @returns {Promise<IPollResponse>}
47
- * @memberof ActiveWorkflows
48
- */
49
- activatePolling(node: INode, workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData, getPollFunctions: IGetExecutePollFunctions, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): Promise<IPollResponse>;
50
- /**
51
- * Makes a workflow inactive
52
- *
53
- * @param {string} id The id of the workflow to deactivate
54
- * @returns {Promise<void>}
55
- * @memberof ActiveWorkflows
56
- */
57
- remove(id: string): Promise<void>;
58
- }
@@ -1,244 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ActiveWorkflows = void 0;
4
- const tslib_1 = require("tslib");
5
- /* eslint-disable no-continue */
6
- /* eslint-disable no-await-in-loop */
7
- /* eslint-disable no-restricted-syntax */
8
- const cron_1 = require("cron");
9
- const workflow_1 = require("@fsai-flow/workflow");
10
- const crypto_1 = require("../utils/crypto");
11
- class ActiveWorkflows {
12
- constructor() {
13
- this.workflowData = {};
14
- }
15
- /**
16
- * Returns if the workflow is active
17
- *
18
- * @param {string} id The id of the workflow to check
19
- * @returns {boolean}
20
- * @memberof ActiveWorkflows
21
- */
22
- isActive(id) {
23
- // eslint-disable-next-line no-prototype-builtins
24
- return this.workflowData.hasOwnProperty(id);
25
- }
26
- /**
27
- * Returns the ids of the currently active workflows
28
- *
29
- * @returns {string[]}
30
- * @memberof ActiveWorkflows
31
- */
32
- allActiveWorkflows() {
33
- return Object.keys(this.workflowData);
34
- }
35
- /**
36
- * Returns the Workflow data for the workflow with
37
- * the given id if it is currently active
38
- *
39
- * @param {string} id
40
- * @returns {(WorkflowData | undefined)}
41
- * @memberof ActiveWorkflows
42
- */
43
- get(id) {
44
- return this.workflowData[id];
45
- }
46
- /**
47
- * Makes a workflow active
48
- *
49
- * @param {string} id The id of the workflow to activate
50
- * @param {Workflow} workflow The workflow to activate
51
- * @param {IWorkflowExecuteAdditionalData} additionalData The additional data which is needed to run workflows
52
- * @returns {Promise<void>}
53
- * @memberof ActiveWorkflows
54
- */
55
- add(id, workflow, additionalData, mode, activation, getTriggerFunctions, getPollFunctions) {
56
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
- this.workflowData[id] = {};
58
- const triggerNodes = workflow.getTriggerNodes();
59
- let triggerResponse;
60
- this.workflowData[id].triggerResponses = [];
61
- for (const triggerNode of triggerNodes) {
62
- triggerResponse = yield workflow.runTrigger(triggerNode, getTriggerFunctions, additionalData, mode, activation);
63
- if (triggerResponse !== undefined) {
64
- // If a response was given save it
65
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
66
- this.workflowData[id].triggerResponses.push(triggerResponse);
67
- }
68
- }
69
- const pollNodes = workflow.getPollNodes();
70
- if (pollNodes.length) {
71
- this.workflowData[id].pollResponses = [];
72
- for (const pollNode of pollNodes) {
73
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
74
- this.workflowData[id].pollResponses.push(yield this.activatePolling(pollNode, workflow, additionalData, getPollFunctions, mode, activation));
75
- }
76
- }
77
- });
78
- }
79
- /**
80
- * Activates polling for the given node
81
- *
82
- * @param {INode} node
83
- * @param {Workflow} workflow
84
- * @param {IWorkflowExecuteAdditionalData} additionalData
85
- * @param {IGetExecutePollFunctions} getPollFunctions
86
- * @returns {Promise<IPollResponse>}
87
- * @memberof ActiveWorkflows
88
- */
89
- activatePolling(node, workflow, additionalData, getPollFunctions, mode, activation) {
90
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
91
- const pollFunctions = getPollFunctions(workflow, node, additionalData, mode, activation);
92
- const pollTimes = pollFunctions.getNodeParameter('pollTimes');
93
- // Define the order the cron-time-parameter appear
94
- const parameterOrder = [
95
- 'second', // 0 - 59
96
- 'minute', // 0 - 59
97
- 'hour', // 0 - 23
98
- 'dayOfMonth', // 1 - 31
99
- 'month', // 0 - 11(Jan - Dec)
100
- 'weekday', // 0 - 6(Sun - Sat)
101
- ];
102
- // Get all the trigger times
103
- const cronTimes = [];
104
- let cronTime;
105
- let parameterName;
106
- if (pollTimes.item !== undefined) {
107
- for (const item of pollTimes.item) {
108
- cronTime = [];
109
- if (item.mode === 'custom') {
110
- cronTimes.push(item['cronExpression'].trim());
111
- continue;
112
- }
113
- if (item.mode === 'everyMinute') {
114
- cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} * * * * *`);
115
- continue;
116
- }
117
- if (item.mode === 'everyX') {
118
- if (item['unit'] === 'minutes') {
119
- cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} */${item['value']} * * * *`);
120
- }
121
- else if (item['unit'] === 'hours') {
122
- cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} 0 */${item['value']} * * *`);
123
- }
124
- else if (item['unit'] === 'seconds') {
125
- cronTimes.push(`*/${item['value']} * * * * *`);
126
- }
127
- continue;
128
- }
129
- for (parameterName of parameterOrder) {
130
- if (item[parameterName] !== undefined) {
131
- // Value is set so use it
132
- cronTime.push(item[parameterName]);
133
- }
134
- else if (parameterName === 'second') {
135
- // For seconds we use by default a random one to make sure to
136
- // balance the load a little bit over time
137
- cronTime.push((0, crypto_1.secureRandomNumber)(1, 60).toString());
138
- }
139
- else {
140
- // For all others set "any"
141
- cronTime.push('*');
142
- }
143
- }
144
- cronTimes.push(cronTime.join(' '));
145
- }
146
- }
147
- // The trigger function to execute when the cron-time got reached
148
- const executeTrigger = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
149
- // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
150
- workflow_1.LoggerProxy.debug(`Polling trigger initiated for workflow "${workflow.name}"`, {
151
- workflowName: workflow.name,
152
- workflowId: workflow.id,
153
- });
154
- const pollResponse = yield workflow.runPoll(node, pollFunctions);
155
- if (pollResponse !== null) {
156
- // eslint-disable-next-line no-underscore-dangle
157
- pollFunctions.__emit(pollResponse);
158
- }
159
- });
160
- // Execute the trigger directly to be able to know if it works
161
- yield executeTrigger();
162
- const timezone = pollFunctions.getTimezone();
163
- // Start the cron-jobs
164
- const cronJobs = [];
165
- // eslint-disable-next-line @typescript-eslint/no-shadow
166
- for (const cronTime of cronTimes) {
167
- const cronTimeParts = cronTime.split(' ');
168
- // Verificar se é polling em segundos
169
- if (cronTimeParts.length === 6 && cronTimeParts[0].includes('/')) {
170
- const secondsInterval = parseInt(cronTimeParts[0].replace('*/', ''), 10);
171
- if (secondsInterval < 1) {
172
- throw new Error('The polling interval is too short. It has to be at least 1 second!');
173
- }
174
- }
175
- else if (cronTimeParts.length > 0 && cronTimeParts[0].includes('*') && !cronTimeParts[0].includes('/')) {
176
- throw new Error('The polling interval is too short. It has to be at least a minute!');
177
- }
178
- cronJobs.push(new cron_1.CronJob(cronTime, executeTrigger, undefined, true, timezone));
179
- }
180
- // Stop the cron-jobs
181
- function closeFunction() {
182
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
183
- for (const cronJob of cronJobs) {
184
- cronJob.stop();
185
- }
186
- });
187
- }
188
- return {
189
- closeFunction,
190
- };
191
- });
192
- }
193
- /**
194
- * Makes a workflow inactive
195
- *
196
- * @param {string} id The id of the workflow to deactivate
197
- * @returns {Promise<void>}
198
- * @memberof ActiveWorkflows
199
- */
200
- remove(id) {
201
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
202
- if (!this.isActive(id)) {
203
- // Workflow is currently not registered
204
- throw new Error(`The workflow with the id "${id}" is currently not active and can so not be removed`);
205
- }
206
- const workflowData = this.workflowData[id];
207
- if (workflowData.triggerResponses) {
208
- for (const triggerResponse of workflowData.triggerResponses) {
209
- if (triggerResponse.closeFunction) {
210
- try {
211
- yield triggerResponse.closeFunction();
212
- }
213
- catch (error) {
214
- workflow_1.LoggerProxy.error(
215
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions
216
- `There was a problem deactivating trigger of workflow "${id}": "${error.message}"`, {
217
- workflowId: id,
218
- });
219
- }
220
- }
221
- }
222
- }
223
- if (workflowData.pollResponses) {
224
- for (const pollResponse of workflowData.pollResponses) {
225
- if (pollResponse.closeFunction) {
226
- try {
227
- yield pollResponse.closeFunction();
228
- }
229
- catch (error) {
230
- workflow_1.LoggerProxy.error(
231
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions
232
- `There was a problem deactivating polling trigger of workflow "${id}": "${error.message}"`, {
233
- workflowId: id,
234
- });
235
- }
236
- }
237
- }
238
- }
239
- delete this.workflowData[id];
240
- });
241
- }
242
- }
243
- exports.ActiveWorkflows = ActiveWorkflows;
244
- //# sourceMappingURL=ActiveWorkflows.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActiveWorkflows.js","sourceRoot":"","sources":["../../../src/lib/ActiveWorkflows.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { IBinaryDataConfig, IBinaryDataManager } from '../Interfaces';
2
- export declare class BinaryDataFileSystem implements IBinaryDataManager {
3
- private storagePath;
4
- private binaryDataTTL;
5
- private persistedBinaryDataTTL;
6
- constructor(config: IBinaryDataConfig);
7
- init(startPurger?: boolean): Promise<void>;
8
- storeBinaryData(binaryBuffer: Buffer, executionId: string): Promise<string>;
9
- retrieveBinaryDataByIdentifier(identifier: string): Promise<Buffer>;
10
- markDataForDeletionByExecutionId(executionId: string): Promise<void>;
11
- deleteMarkedFiles(): Promise<void>;
12
- deleteMarkedPersistedFiles(): Promise<void>;
13
- private addBinaryIdToPersistMeta;
14
- private deleteMarkedFilesByMeta;
15
- duplicateBinaryDataByIdentifier(binaryDataId: string, prefix: string): Promise<string>;
16
- deleteBinaryDataByExecutionId(executionId: string): Promise<void>;
17
- deleteBinaryDataByIdentifier(identifier: string): Promise<void>;
18
- persistBinaryDataForExecutionId(executionId: string): Promise<void>;
19
- private generateFileName;
20
- private getBinaryDataMetaPath;
21
- private getBinaryDataPersistMetaPath;
22
- private deleteMetaFileByPath;
23
- private deleteFromLocalStorage;
24
- private saveToLocalStorage;
25
- private retrieveFromLocalStorage;
26
- }