@fsai-flow/core 0.0.4 → 0.0.5

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 (80) hide show
  1. package/dist/package.json +1 -1
  2. package/package.json +2 -2
  3. package/dist/src/index.d.ts +0 -16
  4. package/dist/src/index.js +0 -30
  5. package/dist/src/index.js.map +0 -1
  6. package/dist/src/lib/ActiveWebhooks.d.ts +0 -59
  7. package/dist/src/lib/ActiveWebhooks.js +0 -184
  8. package/dist/src/lib/ActiveWebhooks.js.map +0 -1
  9. package/dist/src/lib/ActiveWorkflows.d.ts +0 -87
  10. package/dist/src/lib/ActiveWorkflows.js +0 -456
  11. package/dist/src/lib/ActiveWorkflows.js.map +0 -1
  12. package/dist/src/lib/BinaryDataManager/FileSystem.d.ts +0 -26
  13. package/dist/src/lib/BinaryDataManager/FileSystem.js +0 -179
  14. package/dist/src/lib/BinaryDataManager/FileSystem.js.map +0 -1
  15. package/dist/src/lib/BinaryDataManager/index.d.ts +0 -21
  16. package/dist/src/lib/BinaryDataManager/index.js +0 -146
  17. package/dist/src/lib/BinaryDataManager/index.js.map +0 -1
  18. package/dist/src/lib/ChangeCase.d.ts +0 -9
  19. package/dist/src/lib/ChangeCase.js +0 -43
  20. package/dist/src/lib/ChangeCase.js.map +0 -1
  21. package/dist/src/lib/Constants.d.ts +0 -14
  22. package/dist/src/lib/Constants.js +0 -19
  23. package/dist/src/lib/Constants.js.map +0 -1
  24. package/dist/src/lib/Credentials.d.ts +0 -27
  25. package/dist/src/lib/Credentials.js +0 -89
  26. package/dist/src/lib/Credentials.js.map +0 -1
  27. package/dist/src/lib/FileSystem.d.ts +0 -26
  28. package/dist/src/lib/FileSystem.js +0 -179
  29. package/dist/src/lib/FileSystem.js.map +0 -1
  30. package/dist/src/lib/InputConnectionDataLegacy.d.ts +0 -2
  31. package/dist/src/lib/InputConnectionDataLegacy.js +0 -79
  32. package/dist/src/lib/InputConnectionDataLegacy.js.map +0 -1
  33. package/dist/src/lib/Interfaces.d.ts +0 -148
  34. package/dist/src/lib/Interfaces.js +0 -3
  35. package/dist/src/lib/Interfaces.js.map +0 -1
  36. package/dist/src/lib/LoadNodeParameterOptions.d.ts +0 -39
  37. package/dist/src/lib/LoadNodeParameterOptions.js +0 -150
  38. package/dist/src/lib/LoadNodeParameterOptions.js.map +0 -1
  39. package/dist/src/lib/NodeExecuteFunctions.d.ts +0 -226
  40. package/dist/src/lib/NodeExecuteFunctions.js +0 -2479
  41. package/dist/src/lib/NodeExecuteFunctions.js.map +0 -1
  42. package/dist/src/lib/NodesLoader/constants.d.ts +0 -5
  43. package/dist/src/lib/NodesLoader/constants.js +0 -106
  44. package/dist/src/lib/NodesLoader/constants.js.map +0 -1
  45. package/dist/src/lib/NodesLoader/custom-directory-loader.d.ts +0 -9
  46. package/dist/src/lib/NodesLoader/custom-directory-loader.js +0 -36
  47. package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +0 -1
  48. package/dist/src/lib/NodesLoader/directory-loader.d.ts +0 -66
  49. package/dist/src/lib/NodesLoader/directory-loader.js +0 -325
  50. package/dist/src/lib/NodesLoader/directory-loader.js.map +0 -1
  51. package/dist/src/lib/NodesLoader/index.d.ts +0 -5
  52. package/dist/src/lib/NodesLoader/index.js +0 -12
  53. package/dist/src/lib/NodesLoader/index.js.map +0 -1
  54. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.d.ts +0 -7
  55. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +0 -52
  56. package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +0 -1
  57. package/dist/src/lib/NodesLoader/load-class-in-isolation.d.ts +0 -1
  58. package/dist/src/lib/NodesLoader/load-class-in-isolation.js +0 -22
  59. package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +0 -1
  60. package/dist/src/lib/NodesLoader/package-directory-loader.d.ts +0 -17
  61. package/dist/src/lib/NodesLoader/package-directory-loader.js +0 -100
  62. package/dist/src/lib/NodesLoader/package-directory-loader.js.map +0 -1
  63. package/dist/src/lib/NodesLoader/types.d.ts +0 -14
  64. package/dist/src/lib/NodesLoader/types.js +0 -3
  65. package/dist/src/lib/NodesLoader/types.js.map +0 -1
  66. package/dist/src/lib/RedisLeaderElectionManager.d.ts +0 -53
  67. package/dist/src/lib/RedisLeaderElectionManager.js +0 -294
  68. package/dist/src/lib/RedisLeaderElectionManager.js.map +0 -1
  69. package/dist/src/lib/UserSettings.d.ts +0 -80
  70. package/dist/src/lib/UserSettings.js +0 -261
  71. package/dist/src/lib/UserSettings.js.map +0 -1
  72. package/dist/src/lib/WorkflowExecute.d.ts +0 -53
  73. package/dist/src/lib/WorkflowExecute.js +0 -854
  74. package/dist/src/lib/WorkflowExecute.js.map +0 -1
  75. package/dist/src/lib/index.d.ts +0 -21
  76. package/dist/src/lib/index.js +0 -146
  77. package/dist/src/lib/index.js.map +0 -1
  78. package/dist/src/utils/crypto.d.ts +0 -1
  79. package/dist/src/utils/crypto.js +0 -8
  80. package/dist/src/utils/crypto.js.map +0 -1
@@ -1,456 +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
- const RedisLeaderElectionManager_1 = require("./RedisLeaderElectionManager");
12
- class ActiveWorkflows {
13
- constructor(redisConfig) {
14
- this.workflowData = {};
15
- this.instanceLeaderElection = null;
16
- this.pollingWorkflows = new Map();
17
- this.isLeader = false;
18
- this.isInitializingLeaderElection = false;
19
- this.leaderElectionInitialized = false;
20
- this.leaderElectionEnabled = false;
21
- this.redisConfig = redisConfig;
22
- this.leaderElectionEnabled = redisConfig !== undefined;
23
- if (!this.leaderElectionEnabled) {
24
- workflow_1.LoggerProxy.info('📴 Redis leader election disabled - workflows will run on all instances');
25
- this.isLeader = true; // In non-queue mode, every instance is a "leader"
26
- this.leaderElectionInitialized = true;
27
- }
28
- }
29
- /**
30
- * Returns if the workflow is active
31
- *
32
- * @param {string} id The id of the workflow to check
33
- * @returns {boolean}
34
- * @memberof ActiveWorkflows
35
- */
36
- isActive(id) {
37
- // eslint-disable-next-line no-prototype-builtins
38
- return this.workflowData.hasOwnProperty(id);
39
- }
40
- /**
41
- * Returns the ids of the currently active workflows
42
- *
43
- * @returns {string[]}
44
- * @memberof ActiveWorkflows
45
- */
46
- allActiveWorkflows() {
47
- return Object.keys(this.workflowData);
48
- }
49
- /**
50
- * Returns the Workflow data for the workflow with
51
- * the given id if it is currently active
52
- *
53
- * @param {string} id
54
- * @returns {(WorkflowData | undefined)}
55
- * @memberof ActiveWorkflows
56
- */
57
- get(id) {
58
- return this.workflowData[id];
59
- }
60
- /**
61
- * Makes a workflow active
62
- *
63
- * @param {string} id The id of the workflow to activate
64
- * @param {Workflow} workflow The workflow to activate
65
- * @param {IWorkflowExecuteAdditionalData} additionalData The additional data which is needed to run workflows
66
- * @returns {Promise<void>}
67
- * @memberof ActiveWorkflows
68
- */
69
- add(id, workflow, additionalData, mode, activation, getTriggerFunctions, getPollFunctions) {
70
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
- this.workflowData[id] = {};
72
- const triggerNodes = workflow.getTriggerNodes();
73
- let triggerResponse;
74
- this.workflowData[id].triggerResponses = [];
75
- for (const triggerNode of triggerNodes) {
76
- triggerResponse = yield workflow.runTrigger(triggerNode, getTriggerFunctions, additionalData, mode, activation);
77
- if (triggerResponse !== undefined) {
78
- // If a response was given save it
79
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
80
- this.workflowData[id].triggerResponses.push(triggerResponse);
81
- }
82
- }
83
- const pollNodes = workflow.getPollNodes();
84
- if (pollNodes.length) {
85
- this.workflowData[id].pollResponses = [];
86
- for (const pollNode of pollNodes) {
87
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
88
- this.workflowData[id].pollResponses.push(yield this.activatePolling(pollNode, workflow, additionalData, getPollFunctions, mode, activation));
89
- }
90
- }
91
- });
92
- }
93
- /**
94
- * Initialize global leader election (called once per instance)
95
- */
96
- initializeLeaderElection() {
97
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
- // Skip leader election if disabled
99
- if (!this.leaderElectionEnabled) {
100
- workflow_1.LoggerProxy.debug('📴 Leader election disabled - skipping initialization');
101
- return;
102
- }
103
- // Prevent race condition - only one initialization at a time
104
- if (this.leaderElectionInitialized || this.isInitializingLeaderElection) {
105
- workflow_1.LoggerProxy.debug('⏳ Leader election already initialized or in progress, waiting...');
106
- // Wait for initialization to complete
107
- while (this.isInitializingLeaderElection) {
108
- yield new Promise(resolve => setTimeout(resolve, 100));
109
- }
110
- return;
111
- }
112
- this.isInitializingLeaderElection = true;
113
- try {
114
- const nodeId = process.env['POD_NAME'] || process.env['HOSTNAME'] || `flowx-instance-${Math.random().toString(36).substr(2, 9)}`;
115
- const lockName = 'global-polling-leadership';
116
- workflow_1.LoggerProxy.info(`🌟 Initializing global polling leadership for instance ${nodeId}`);
117
- this.instanceLeaderElection = new RedisLeaderElectionManager_1.RedisLeaderElectionManager(lockName, this.redisConfig, // We know it's not null because leaderElectionEnabled is true
118
- {
119
- onStartedLeading: () => {
120
- workflow_1.LoggerProxy.info(`🏆 Instance ${nodeId} became GLOBAL POLLING LEADER - starting all registered workflows (current count: ${this.pollingWorkflows.size})`);
121
- this.isLeader = true;
122
- // Set initialized flag before starting workflows to prevent timing issue
123
- this.leaderElectionInitialized = true;
124
- this.startAllPollingWorkflows();
125
- },
126
- onStoppedLeading: () => {
127
- workflow_1.LoggerProxy.info(`📉 Instance ${nodeId} lost GLOBAL POLLING LEADERSHIP - stopping all workflows`);
128
- this.isLeader = false;
129
- this.stopAllPollingWorkflows();
130
- },
131
- onNewLeader: (identity) => {
132
- //Logger.info(`👑 New global polling leader: ${identity}`);
133
- }
134
- });
135
- yield this.instanceLeaderElection.start();
136
- // Only set this if we didn't become leader during start() - prevent double-setting
137
- if (!this.leaderElectionInitialized) {
138
- this.leaderElectionInitialized = true;
139
- }
140
- workflow_1.LoggerProxy.info(`✅ Global leader election initialized for ${nodeId}`);
141
- }
142
- finally {
143
- this.isInitializingLeaderElection = false;
144
- }
145
- });
146
- }
147
- /**
148
- * Start all registered polling workflows (called when becoming leader)
149
- */
150
- startAllPollingWorkflows() {
151
- workflow_1.LoggerProxy.debug(`🔍 startAllPollingWorkflows called - isLeader: ${this.isLeader}, initialized: ${this.leaderElectionInitialized}, workflows: ${this.pollingWorkflows.size}`);
152
- // Safety check: Only start if we're truly the leader and initialization is complete
153
- if (!this.isLeader || !this.leaderElectionInitialized) {
154
- workflow_1.LoggerProxy.warn(`⚠️ Cannot start workflows - not leader (isLeader: ${this.isLeader}, initialized: ${this.leaderElectionInitialized})`);
155
- return;
156
- }
157
- workflow_1.LoggerProxy.info(`🚀 Starting all ${this.pollingWorkflows.size} registered polling workflows`);
158
- workflow_1.LoggerProxy.debug(`📋 Registered workflow keys: ${Array.from(this.pollingWorkflows.keys()).join(', ')}`);
159
- let startedCount = 0;
160
- for (const [workflowKey, pollingWorkflow] of this.pollingWorkflows) {
161
- try {
162
- // Skip if already running (double-check safety)
163
- if (pollingWorkflow.activeCronJobs.length > 0) {
164
- workflow_1.LoggerProxy.warn(`⚠️ Workflow ${workflowKey} already has active cron jobs - skipping`);
165
- continue;
166
- }
167
- workflow_1.LoggerProxy.info(`⏰ Starting cron jobs for workflow "${pollingWorkflow.workflow.name}", node "${pollingWorkflow.node.name}" (${pollingWorkflow.cronTimes.length} schedules)`);
168
- // Create and start cron jobs for this workflow
169
- pollingWorkflow.activeCronJobs = pollingWorkflow.cronTimes.map(cronTime => new cron_1.CronJob(cronTime, pollingWorkflow.executeTrigger, undefined, true, pollingWorkflow.timezone));
170
- startedCount++;
171
- workflow_1.LoggerProxy.info(`✅ Started ${pollingWorkflow.activeCronJobs.length} cron jobs for workflow "${pollingWorkflow.workflow.name}"`);
172
- }
173
- catch (error) {
174
- workflow_1.LoggerProxy.error(`❌ Failed to start polling for ${workflowKey}: ${error.message}`);
175
- }
176
- }
177
- workflow_1.LoggerProxy.info(`🎯 Successfully started ${startedCount} of ${this.pollingWorkflows.size} polling workflows`);
178
- }
179
- /**
180
- * Stop all polling workflows (called when losing leadership)
181
- */
182
- stopAllPollingWorkflows() {
183
- workflow_1.LoggerProxy.info(`🛑 Stopping all ${this.pollingWorkflows.size} polling workflows`);
184
- for (const [workflowKey, pollingWorkflow] of this.pollingWorkflows) {
185
- try {
186
- // Skip if already stopped (safety check)
187
- if (pollingWorkflow.activeCronJobs.length === 0) {
188
- workflow_1.LoggerProxy.debug(`⏭️ Workflow ${workflowKey} already stopped - skipping`);
189
- continue;
190
- }
191
- workflow_1.LoggerProxy.info(`⏹️ Stopping cron jobs for workflow "${pollingWorkflow.workflow.name}", node "${pollingWorkflow.node.name}"`);
192
- // Stop all cron jobs for this workflow
193
- pollingWorkflow.activeCronJobs.forEach(job => job.stop());
194
- pollingWorkflow.activeCronJobs = [];
195
- workflow_1.LoggerProxy.debug(`✅ Stopped polling for ${workflowKey}`);
196
- }
197
- catch (error) {
198
- workflow_1.LoggerProxy.error(`❌ Failed to stop polling for ${workflowKey}: ${error.message}`);
199
- }
200
- }
201
- }
202
- /**
203
- * Activates polling for the given node with global Redis leader election
204
- *
205
- * @param {INode} node
206
- * @param {Workflow} workflow
207
- * @param {IWorkflowExecuteAdditionalData} additionalData
208
- * @param {IGetExecutePollFunctions} getPollFunctions
209
- * @returns {Promise<IPollResponse>}
210
- * @memberof ActiveWorkflows
211
- */
212
- activatePolling(node, workflow, additionalData, getPollFunctions, mode, activation) {
213
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
214
- const pollFunctions = getPollFunctions(workflow, node, additionalData, mode, activation);
215
- // Get polling configuration
216
- const pollTimes = pollFunctions.getNodeParameter('pollTimes');
217
- // Build cron times
218
- const cronTimes = this.buildCronTimes(pollTimes);
219
- const timezone = pollFunctions.getTimezone();
220
- // Validate cron times
221
- this.validateCronTimes(cronTimes);
222
- // Create unique workflow key
223
- const workflowKey = `${workflow.id}-${node.name}`;
224
- // Check if this workflow is already registered (prevents duplicate registrations)
225
- if (this.pollingWorkflows.has(workflowKey)) {
226
- workflow_1.LoggerProxy.warn(`⚠️ Workflow ${workflowKey} is already registered - returning existing closeFunction`);
227
- const existingWorkflow = this.pollingWorkflows.get(workflowKey);
228
- return {
229
- closeFunction: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
230
- workflow_1.LoggerProxy.info(`🗑️ Removing duplicate registration for: "${workflow.name}" (node: ${node.name})`);
231
- // Just log - don't actually remove since this is a duplicate
232
- })
233
- };
234
- }
235
- // Create the polling execution function
236
- const executeTrigger = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
237
- var _a;
238
- try {
239
- workflow_1.LoggerProxy.info(`Polling trigger initiated for workflow "${workflow.name}"`, {
240
- workflowName: workflow.name,
241
- workflowId: workflow.id,
242
- });
243
- const pollResponse = yield workflow.runPoll(node, pollFunctions);
244
- if (pollResponse !== null) {
245
- // eslint-disable-next-line no-underscore-dangle
246
- pollFunctions.__emit(pollResponse);
247
- }
248
- }
249
- catch (error) {
250
- workflow_1.LoggerProxy.error(`Polling trigger failed for workflow "${workflow.name}"`, {
251
- workflowName: workflow.name,
252
- workflowId: workflow.id,
253
- nodeName: node.name,
254
- error: error.message,
255
- statusCode: error.statusCode,
256
- httpCode: error.httpCode,
257
- description: error.description,
258
- cause: (_a = error.cause) === null || _a === void 0 ? void 0 : _a.message,
259
- });
260
- }
261
- });
262
- // Register this polling workflow
263
- const pollingWorkflow = {
264
- workflow,
265
- node,
266
- cronTimes,
267
- timezone,
268
- executeTrigger,
269
- activeCronJobs: []
270
- };
271
- this.pollingWorkflows.set(workflowKey, pollingWorkflow);
272
- workflow_1.LoggerProxy.info(`📋 Registered polling workflow: "${workflow.name}" (node: ${node.name}) [Key: ${workflowKey}] - Total workflows: ${this.pollingWorkflows.size}`);
273
- // Initialize global leader election if enabled
274
- yield this.initializeLeaderElection();
275
- // Start workflow if we're the leader (or if leader election is disabled)
276
- if (this.isLeader && this.leaderElectionInitialized && pollingWorkflow.activeCronJobs.length === 0) {
277
- const reason = this.leaderElectionEnabled ? 'Leader established' : 'Leader election disabled';
278
- workflow_1.LoggerProxy.info(`🔥 Post-registration start: "${workflow.name}" [Key: ${workflowKey}] - ${reason}, starting immediately`);
279
- try {
280
- pollingWorkflow.activeCronJobs = pollingWorkflow.cronTimes.map(cronTime => new cron_1.CronJob(cronTime, pollingWorkflow.executeTrigger, undefined, true, pollingWorkflow.timezone));
281
- workflow_1.LoggerProxy.info(`✅ Post-registration: Started ${pollingWorkflow.activeCronJobs.length} cron jobs for "${workflow.name}"`);
282
- }
283
- catch (error) {
284
- workflow_1.LoggerProxy.error(`❌ Failed to start newly registered workflow ${workflowKey}: ${error.message}`);
285
- }
286
- }
287
- else {
288
- const leaderElectionStatus = this.leaderElectionEnabled ? 'enabled' : 'disabled';
289
- workflow_1.LoggerProxy.debug(`⏳ Post-registration wait: "${workflow.name}" [Key: ${workflowKey}] (isLeader: ${this.isLeader}, initialized: ${this.leaderElectionInitialized}, activeCronJobs: ${pollingWorkflow.activeCronJobs.length}, leaderElection: ${leaderElectionStatus})`);
290
- }
291
- // Return cleanup function
292
- return {
293
- closeFunction: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
294
- workflow_1.LoggerProxy.info(`🗑️ Removing polling workflow: "${workflow.name}" (node: ${node.name})`);
295
- // Stop cron jobs for this workflow
296
- const workflow_to_remove = this.pollingWorkflows.get(workflowKey);
297
- if (workflow_to_remove) {
298
- workflow_to_remove.activeCronJobs.forEach(job => job.stop());
299
- }
300
- // Remove from registered workflows
301
- this.pollingWorkflows.delete(workflowKey);
302
- workflow_1.LoggerProxy.debug(`✅ Removed polling workflow ${workflowKey}`);
303
- })
304
- };
305
- });
306
- }
307
- /**
308
- * Extract cron time building logic (same as original)
309
- */
310
- buildCronTimes(pollTimes) {
311
- const parameterOrder = [
312
- 'second', 'minute', 'hour', 'dayOfMonth', 'month', 'weekday'
313
- ];
314
- const cronTimes = [];
315
- if (pollTimes.item !== undefined) {
316
- for (const item of pollTimes.item) {
317
- let cronTime;
318
- if (item.mode === 'custom') {
319
- cronTimes.push(item['cronExpression'].trim());
320
- continue;
321
- }
322
- if (item.mode === 'everyMinute') {
323
- cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} * * * * *`);
324
- continue;
325
- }
326
- if (item.mode === 'everyX') {
327
- if (item['unit'] === 'minutes') {
328
- cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} */${item['value']} * * * *`);
329
- }
330
- else if (item['unit'] === 'hours') {
331
- cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} 0 */${item['value']} * * *`);
332
- }
333
- else if (item['unit'] === 'seconds') {
334
- cronTimes.push(`*/${item['value']} * * * * *`);
335
- }
336
- continue;
337
- }
338
- cronTime = [];
339
- for (const parameterName of parameterOrder) {
340
- if (item[parameterName] !== undefined) {
341
- cronTime.push(item[parameterName]);
342
- }
343
- else if (parameterName === 'second') {
344
- cronTime.push((0, crypto_1.secureRandomNumber)(1, 60).toString());
345
- }
346
- else {
347
- cronTime.push('*');
348
- }
349
- }
350
- cronTimes.push(cronTime.join(' '));
351
- }
352
- }
353
- return cronTimes;
354
- }
355
- /**
356
- * Validate cron times (same as original)
357
- */
358
- validateCronTimes(cronTimes) {
359
- for (const cronTime of cronTimes) {
360
- const cronTimeParts = cronTime.split(' ');
361
- if (cronTimeParts.length === 6 && cronTimeParts[0].includes('/')) {
362
- const secondsInterval = parseInt(cronTimeParts[0].replace('*/', ''), 10);
363
- if (secondsInterval < 1) {
364
- throw new Error('The polling interval is too short. It has to be at least 1 second!');
365
- }
366
- }
367
- else if (cronTimeParts.length > 0 && cronTimeParts[0].includes('*') && !cronTimeParts[0].includes('/')) {
368
- throw new Error('The polling interval is too short. It has to be at least a minute!');
369
- }
370
- }
371
- }
372
- /**
373
- * Makes a workflow inactive
374
- *
375
- * @param {string} id The id of the workflow to deactivate
376
- * @returns {Promise<void>}
377
- * @memberof ActiveWorkflows
378
- */
379
- remove(id) {
380
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
381
- if (!this.isActive(id)) {
382
- // Workflow is currently not registered
383
- throw new Error(`The workflow with the id "${id}" is currently not active and can so not be removed`);
384
- }
385
- const workflowData = this.workflowData[id];
386
- if (workflowData.triggerResponses) {
387
- for (const triggerResponse of workflowData.triggerResponses) {
388
- if (triggerResponse.closeFunction) {
389
- try {
390
- yield triggerResponse.closeFunction();
391
- }
392
- catch (error) {
393
- workflow_1.LoggerProxy.error(
394
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions
395
- `There was a problem deactivating trigger of workflow "${id}": "${error.message}"`, {
396
- workflowId: id,
397
- });
398
- }
399
- }
400
- }
401
- }
402
- if (workflowData.pollResponses) {
403
- for (const pollResponse of workflowData.pollResponses) {
404
- if (pollResponse.closeFunction) {
405
- try {
406
- yield pollResponse.closeFunction();
407
- }
408
- catch (error) {
409
- workflow_1.LoggerProxy.error(
410
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions
411
- `There was a problem deactivating polling trigger of workflow "${id}": "${error.message}"`, {
412
- workflowId: id,
413
- });
414
- }
415
- }
416
- }
417
- }
418
- // Remove polling workflows from the global map (closeFunction will handle stopping cron jobs)
419
- const pollingWorkflowsToRemove = [];
420
- for (const [workflowKey, pollingWorkflow] of this.pollingWorkflows) {
421
- if (pollingWorkflow.workflow.id === id) {
422
- pollingWorkflowsToRemove.push(workflowKey);
423
- }
424
- }
425
- for (const workflowKey of pollingWorkflowsToRemove) {
426
- const pollingWorkflow = this.pollingWorkflows.get(workflowKey);
427
- if (pollingWorkflow) {
428
- workflow_1.LoggerProxy.info(`🗑️ Removing polling workflow: "${pollingWorkflow.workflow.name}" (node: ${pollingWorkflow.node.name})`);
429
- // Stop cron jobs for this workflow
430
- pollingWorkflow.activeCronJobs.forEach(job => job.stop());
431
- // Remove from registered workflows
432
- this.pollingWorkflows.delete(workflowKey);
433
- workflow_1.LoggerProxy.debug(`✅ Removed polling workflow ${workflowKey}`);
434
- }
435
- }
436
- // If no more polling workflows are registered and leader election is enabled, stop it
437
- if (this.pollingWorkflows.size === 0 && this.instanceLeaderElection && this.leaderElectionEnabled) {
438
- workflow_1.LoggerProxy.info(`📴 No more polling workflows - stopping global leader election`);
439
- try {
440
- yield this.instanceLeaderElection.stop();
441
- this.instanceLeaderElection = null;
442
- this.isLeader = false;
443
- this.leaderElectionInitialized = false;
444
- }
445
- catch (error) {
446
- workflow_1.LoggerProxy.error(
447
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions
448
- `There was a problem stopping global leader election: "${error.message}"`);
449
- }
450
- }
451
- delete this.workflowData[id];
452
- });
453
- }
454
- }
455
- exports.ActiveWorkflows = ActiveWorkflows;
456
- //# 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
- }