@io-orkes/conductor-javascript 1.1.0 → 1.2.0-rc.2

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.mjs CHANGED
@@ -1,211 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
-
21
- // src/task/helpers.ts
22
- var noopLogger = {
23
- debug: (...args) => {
24
- },
25
- info: (...args) => {
26
- },
27
- error: (...args) => {
28
- }
29
- };
30
-
31
- // src/task/Poller.ts
32
- var Poller = class {
33
- constructor(pollFunction, pollerOptions, logger) {
34
- this.concurrentCalls = [];
35
- this.pollFunction = async () => {
36
- };
37
- this.isPolling = false;
38
- this.options = {
39
- pollInterval: 1e3,
40
- concurrency: 1
41
- };
42
- this.logger = noopLogger;
43
- this.startPolling = () => {
44
- if (this.isPolling) {
45
- throw new Error("Runner is already started");
46
- }
47
- return this.poll();
48
- };
49
- this.stopPolling = () => {
50
- this.isPolling = false;
51
- this.concurrentCalls.forEach((call) => call.stop());
52
- };
53
- this.poll = async () => {
54
- if (!this.isPolling) {
55
- this.isPolling = true;
56
- for (let i = 0; i < this.options.concurrency; i++) {
57
- this.concurrentCalls.push(this.singlePoll());
58
- }
59
- }
60
- };
61
- this.singlePoll = () => {
62
- let poll = this.isPolling;
63
- let timeout;
64
- const pollingCall = async () => {
65
- while (poll) {
66
- await this.pollFunction();
67
- await new Promise((r) => timeout = setTimeout(() => r(true), this.options.pollInterval));
68
- }
69
- };
70
- return {
71
- promise: pollingCall(),
72
- stop: () => {
73
- clearTimeout(timeout);
74
- poll = false;
75
- this.logger.debug("stopping single poll call");
76
- }
77
- };
78
- };
79
- this.pollFunction = pollFunction;
80
- this.options = __spreadValues(__spreadValues({}, this.options), pollerOptions);
81
- this.logger = logger || noopLogger;
82
- }
83
- updateConcurrency(concurrency) {
84
- if (concurrency > 0 && concurrency !== this.options.concurrency) {
85
- if (concurrency < this.options.concurrency) {
86
- const result = this.concurrentCalls.splice(0, this.options.concurrency - concurrency);
87
- result.forEach((call) => {
88
- call.stop();
89
- this.logger.debug("stopping some spawned calls");
90
- });
91
- } else {
92
- for (let i = 0; i < concurrency - this.options.concurrency; i++) {
93
- this.concurrentCalls.push(this.singlePoll());
94
- this.logger.debug("spawning additional poll calls");
95
- }
96
- }
97
- this.options.concurrency = concurrency;
98
- }
99
- }
100
- updateOptions(options) {
101
- const newOptions = __spreadValues(__spreadValues({}, this.options), options);
102
- this.updateConcurrency(newOptions.concurrency);
103
- this.options = newOptions;
104
- }
105
- };
106
-
107
- // src/task/TaskRunner.ts
108
- var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
109
- var MAX_RETRIES = 3;
110
- var noopErrorHandler = (__error) => {
111
- };
112
- var TaskRunner = class {
113
- constructor({
114
- worker,
115
- taskResource,
116
- options,
117
- logger = noopLogger,
118
- onError: errorHandler = noopErrorHandler
119
- }) {
120
- this.startPolling = () => {
121
- this.poller.startPolling();
122
- };
123
- this.stopPolling = () => {
124
- this.poller.stopPolling();
125
- };
126
- this.pollAndExecute = async () => {
127
- try {
128
- const { workerID } = this.options;
129
- const task = await this.taskResource.poll(this.worker.taskDefName, workerID, this.worker.domain ?? this.options.domain);
130
- if (task && task.taskId) {
131
- await this.executeTask(task);
132
- } else {
133
- this.logger.debug(`No tasks for ${this.worker.taskDefName}`);
134
- }
135
- } catch (unknownError) {
136
- this.handleUnknownError(unknownError);
137
- this.errorHandler(unknownError);
138
- }
139
- };
140
- this.updateTaskWithRetry = async (task, taskResult) => {
141
- let retryCount = 0;
142
- while (retryCount < MAX_RETRIES) {
143
- try {
144
- await this.taskResource.updateTask1(taskResult);
145
- return;
146
- } catch (error) {
147
- this.errorHandler(error, task);
148
- this.logger.error(`Error updating task ${taskResult.taskId} on retry ${retryCount}`, error);
149
- retryCount++;
150
- await new Promise((r) => setTimeout(() => r(true), retryCount * 10));
151
- }
152
- }
153
- this.logger.error(`Unable to update task ${taskResult.taskId} after ${retryCount} retries`);
154
- };
155
- this.executeTask = async (task) => {
156
- try {
157
- const result = await this.worker.execute(task);
158
- await this.updateTaskWithRetry(task, __spreadProps(__spreadValues({}, result), {
159
- workflowInstanceId: task.workflowInstanceId,
160
- taskId: task.taskId
161
- }));
162
- this.logger.debug(`Finished polling for task ${task.taskId}`);
163
- } catch (error) {
164
- await this.updateTaskWithRetry(task, {
165
- workflowInstanceId: task.workflowInstanceId,
166
- taskId: task.taskId,
167
- reasonForIncompletion: error?.message ?? DEFAULT_ERROR_MESSAGE,
168
- status: "FAILED",
169
- outputData: {}
170
- });
171
- this.errorHandler(error, task);
172
- this.logger.error(`Error executing ${task.taskId}`, error);
173
- }
174
- };
175
- this.handleUnknownError = (unknownError) => {
176
- let message = "";
177
- let stack = "";
178
- if (unknownError.stack) {
179
- stack = unknownError.stack;
180
- }
181
- if (unknownError.message) {
182
- message = unknownError.message;
183
- }
184
- this.logger.error(`Error for ${this.worker.taskDefName}: error: ${message}, stack: ${stack}`);
185
- };
186
- this.taskResource = taskResource;
187
- this.logger = logger;
188
- this.worker = worker;
189
- this.options = options;
190
- this.errorHandler = errorHandler;
191
- this.poller = new Poller(this.pollAndExecute, { concurrency: options.concurrency, pollInterval: options.pollInterval }, this.logger);
192
- }
193
- updateOptions(options) {
194
- const newOptions = __spreadValues(__spreadValues({}, this.options), options);
195
- this.poller.updateOptions({
196
- concurrency: newOptions.concurrency,
197
- pollInterval: newOptions.pollInterval
198
- });
199
- this.options = newOptions;
200
- }
201
- get getOptions() {
202
- return this.options;
203
- }
204
- };
205
-
206
- // src/task/TaskManager.ts
207
- import os from "os";
208
-
209
1
  // src/common/ConductorLogger.ts
210
2
  var LOG_LEVELS = {
211
3
  DEBUG: 10,
@@ -245,106 +37,75 @@ var DefaultLogger = class {
245
37
  }
246
38
  }
247
39
  };
40
+ var noopLogger = {
41
+ //eslint-disable-next-line
42
+ debug: (...args) => {
43
+ },
44
+ //eslint-disable-next-line
45
+ info: (...args) => {
46
+ },
47
+ //eslint-disable-next-line
48
+ error: (...args) => {
49
+ }
50
+ };
248
51
 
249
- // src/common/open-api/core/CancelablePromise.ts
250
- var CancelError = class extends Error {
251
- constructor(message) {
252
- super(message);
253
- this.name = "CancelError";
52
+ // src/common/types.ts
53
+ var TaskType = /* @__PURE__ */ ((TaskType2) => {
54
+ TaskType2["START"] = "START";
55
+ TaskType2["SIMPLE"] = "SIMPLE";
56
+ TaskType2["DYNAMIC"] = "DYNAMIC";
57
+ TaskType2["FORK_JOIN"] = "FORK_JOIN";
58
+ TaskType2["FORK_JOIN_DYNAMIC"] = "FORK_JOIN_DYNAMIC";
59
+ TaskType2["DECISION"] = "DECISION";
60
+ TaskType2["SWITCH"] = "SWITCH";
61
+ TaskType2["JOIN"] = "JOIN";
62
+ TaskType2["DO_WHILE"] = "DO_WHILE";
63
+ TaskType2["SUB_WORKFLOW"] = "SUB_WORKFLOW";
64
+ TaskType2["EVENT"] = "EVENT";
65
+ TaskType2["WAIT"] = "WAIT";
66
+ TaskType2["USER_DEFINED"] = "USER_DEFINED";
67
+ TaskType2["HTTP"] = "HTTP";
68
+ TaskType2["LAMBDA"] = "LAMBDA";
69
+ TaskType2["INLINE"] = "INLINE";
70
+ TaskType2["EXCLUSIVE_JOIN"] = "EXCLUSIVE_JOIN";
71
+ TaskType2["TERMINAL"] = "TERMINAL";
72
+ TaskType2["TERMINATE"] = "TERMINATE";
73
+ TaskType2["KAFKA_PUBLISH"] = "KAFKA_PUBLISH";
74
+ TaskType2["JSON_JQ_TRANSFORM"] = "JSON_JQ_TRANSFORM";
75
+ TaskType2["SET_VARIABLE"] = "SET_VARIABLE";
76
+ return TaskType2;
77
+ })(TaskType || {});
78
+
79
+ // src/common/open-api/services/EventResourceService.ts
80
+ var EventResourceService = class {
81
+ constructor(httpRequest) {
82
+ this.httpRequest = httpRequest;
254
83
  }
255
- get isCancelled() {
256
- return true;
257
- }
258
- };
259
- var CancelablePromise = class {
260
- constructor(executor) {
261
- this._isResolved = false;
262
- this._isRejected = false;
263
- this._isCancelled = false;
264
- this._cancelHandlers = [];
265
- this._promise = new Promise((resolve2, reject) => {
266
- this._resolve = resolve2;
267
- this._reject = reject;
268
- const onResolve = (value) => {
269
- if (this._isResolved || this._isRejected || this._isCancelled) {
270
- return;
271
- }
272
- this._isResolved = true;
273
- this._resolve?.(value);
274
- };
275
- const onReject = (reason) => {
276
- if (this._isResolved || this._isRejected || this._isCancelled) {
277
- return;
278
- }
279
- this._isRejected = true;
280
- this._reject?.(reason);
281
- };
282
- const onCancel = (cancelHandler) => {
283
- if (this._isResolved || this._isRejected || this._isCancelled) {
284
- return;
285
- }
286
- this._cancelHandlers.push(cancelHandler);
287
- };
288
- Object.defineProperty(onCancel, "isResolved", {
289
- get: () => this._isResolved
290
- });
291
- Object.defineProperty(onCancel, "isRejected", {
292
- get: () => this._isRejected
293
- });
294
- Object.defineProperty(onCancel, "isCancelled", {
295
- get: () => this._isCancelled
296
- });
297
- return executor(onResolve, onReject, onCancel);
298
- });
299
- }
300
- then(onFulfilled, onRejected) {
301
- return this._promise.then(onFulfilled, onRejected);
302
- }
303
- catch(onRejected) {
304
- return this._promise.catch(onRejected);
305
- }
306
- finally(onFinally) {
307
- return this._promise.finally(onFinally);
308
- }
309
- cancel() {
310
- if (this._isResolved || this._isRejected || this._isCancelled) {
311
- return;
312
- }
313
- this._isCancelled = true;
314
- if (this._cancelHandlers.length) {
315
- try {
316
- for (const cancelHandler of this._cancelHandlers) {
317
- cancelHandler();
318
- }
319
- } catch (error) {
320
- console.warn("Cancellation threw an error", error);
321
- return;
322
- }
323
- }
324
- this._cancelHandlers.length = 0;
325
- this._reject?.(new CancelError("Request aborted"));
326
- }
327
- get isCancelled() {
328
- return this._isCancelled;
329
- }
330
- };
331
- Symbol.toStringTag;
332
-
333
- // src/common/open-api/services/EventResourceService.ts
334
- var EventResourceService = class {
335
- constructor(httpRequest) {
336
- this.httpRequest = httpRequest;
337
- }
338
- getQueueConfig(queueType, queueName) {
339
- return this.httpRequest.request({
340
- method: "GET",
341
- url: "/event/queue/config/{queueType}/{queueName}",
342
- path: {
343
- "queueType": queueType,
344
- "queueName": queueName
345
- }
346
- });
84
+ /**
85
+ * Get queue config by name
86
+ * @param queueType
87
+ * @param queueName
88
+ * @returns any OK
89
+ * @throws ApiError
90
+ */
91
+ getQueueConfig(queueType, queueName) {
92
+ return this.httpRequest.request({
93
+ method: "GET",
94
+ url: "/event/queue/config/{queueType}/{queueName}",
95
+ path: {
96
+ "queueType": queueType,
97
+ "queueName": queueName
98
+ }
99
+ });
347
100
  }
101
+ /**
102
+ * Create or update queue config by name
103
+ * @param queueType
104
+ * @param queueName
105
+ * @param requestBody
106
+ * @returns any OK
107
+ * @throws ApiError
108
+ */
348
109
  putQueueConfig(queueType, queueName, requestBody) {
349
110
  return this.httpRequest.request({
350
111
  method: "PUT",
@@ -357,6 +118,13 @@ var EventResourceService = class {
357
118
  mediaType: "application/json"
358
119
  });
359
120
  }
121
+ /**
122
+ * Delete queue config by name
123
+ * @param queueType
124
+ * @param queueName
125
+ * @returns any OK
126
+ * @throws ApiError
127
+ */
360
128
  deleteQueueConfig(queueType, queueName) {
361
129
  return this.httpRequest.request({
362
130
  method: "DELETE",
@@ -367,12 +135,23 @@ var EventResourceService = class {
367
135
  }
368
136
  });
369
137
  }
138
+ /**
139
+ * Get all the event handlers
140
+ * @returns EventHandler OK
141
+ * @throws ApiError
142
+ */
370
143
  getEventHandlers() {
371
144
  return this.httpRequest.request({
372
145
  method: "GET",
373
146
  url: "/event"
374
147
  });
375
148
  }
149
+ /**
150
+ * Update an existing event handler.
151
+ * @param requestBody
152
+ * @returns any OK
153
+ * @throws ApiError
154
+ */
376
155
  updateEventHandler(requestBody) {
377
156
  return this.httpRequest.request({
378
157
  method: "PUT",
@@ -381,6 +160,12 @@ var EventResourceService = class {
381
160
  mediaType: "application/json"
382
161
  });
383
162
  }
163
+ /**
164
+ * Add a new event handler.
165
+ * @param requestBody
166
+ * @returns any OK
167
+ * @throws ApiError
168
+ */
384
169
  addEventHandler(requestBody) {
385
170
  return this.httpRequest.request({
386
171
  method: "POST",
@@ -389,12 +174,23 @@ var EventResourceService = class {
389
174
  mediaType: "application/json"
390
175
  });
391
176
  }
177
+ /**
178
+ * Get all queue configs
179
+ * @returns any OK
180
+ * @throws ApiError
181
+ */
392
182
  getQueueNames() {
393
183
  return this.httpRequest.request({
394
184
  method: "GET",
395
185
  url: "/event/queue/config"
396
186
  });
397
187
  }
188
+ /**
189
+ * Remove an event handler
190
+ * @param name
191
+ * @returns any OK
192
+ * @throws ApiError
193
+ */
398
194
  removeEventHandlerStatus(name) {
399
195
  return this.httpRequest.request({
400
196
  method: "DELETE",
@@ -404,6 +200,13 @@ var EventResourceService = class {
404
200
  }
405
201
  });
406
202
  }
203
+ /**
204
+ * Get event handlers for a given event
205
+ * @param event
206
+ * @param activeOnly
207
+ * @returns EventHandler OK
208
+ * @throws ApiError
209
+ */
407
210
  getEventHandlersForEvent(event, activeOnly = true) {
408
211
  return this.httpRequest.request({
409
212
  method: "GET",
@@ -423,6 +226,10 @@ var HealthCheckResourceService = class {
423
226
  constructor(httpRequest) {
424
227
  this.httpRequest = httpRequest;
425
228
  }
229
+ /**
230
+ * @returns any OK
231
+ * @throws ApiError
232
+ */
426
233
  doCheck() {
427
234
  return this.httpRequest.request({
428
235
  method: "GET",
@@ -436,6 +243,13 @@ var MetadataResourceService = class {
436
243
  constructor(httpRequest) {
437
244
  this.httpRequest = httpRequest;
438
245
  }
246
+ /**
247
+ * Gets the task definition
248
+ * @param tasktype
249
+ * @param metadata
250
+ * @returns TaskDef OK
251
+ * @throws ApiError
252
+ */
439
253
  getTaskDef(tasktype, metadata = false) {
440
254
  return this.httpRequest.request({
441
255
  method: "GET",
@@ -448,6 +262,12 @@ var MetadataResourceService = class {
448
262
  }
449
263
  });
450
264
  }
265
+ /**
266
+ * Remove a task definition
267
+ * @param tasktype
268
+ * @returns any OK
269
+ * @throws ApiError
270
+ */
451
271
  unregisterTaskDef(tasktype) {
452
272
  return this.httpRequest.request({
453
273
  method: "DELETE",
@@ -457,6 +277,15 @@ var MetadataResourceService = class {
457
277
  }
458
278
  });
459
279
  }
280
+ /**
281
+ * Retrieves all workflow definition along with blueprint
282
+ * @param access
283
+ * @param metadata
284
+ * @param tagKey
285
+ * @param tagValue
286
+ * @returns WorkflowDef OK
287
+ * @throws ApiError
288
+ */
460
289
  getAllWorkflows(access = "READ", metadata = false, tagKey, tagValue) {
461
290
  return this.httpRequest.request({
462
291
  method: "GET",
@@ -469,6 +298,13 @@ var MetadataResourceService = class {
469
298
  }
470
299
  });
471
300
  }
301
+ /**
302
+ * Create or update workflow definition(s)
303
+ * @param requestBody
304
+ * @param overwrite
305
+ * @returns any OK
306
+ * @throws ApiError
307
+ */
472
308
  update(requestBody, overwrite = true) {
473
309
  return this.httpRequest.request({
474
310
  method: "PUT",
@@ -480,6 +316,13 @@ var MetadataResourceService = class {
480
316
  mediaType: "application/json"
481
317
  });
482
318
  }
319
+ /**
320
+ * Create a new workflow definition
321
+ * @param requestBody
322
+ * @param overwrite
323
+ * @returns any OK
324
+ * @throws ApiError
325
+ */
483
326
  create(requestBody, overwrite = false) {
484
327
  return this.httpRequest.request({
485
328
  method: "POST",
@@ -491,6 +334,15 @@ var MetadataResourceService = class {
491
334
  mediaType: "application/json"
492
335
  });
493
336
  }
337
+ /**
338
+ * Gets all task definition
339
+ * @param access
340
+ * @param metadata
341
+ * @param tagKey
342
+ * @param tagValue
343
+ * @returns TaskDef OK
344
+ * @throws ApiError
345
+ */
494
346
  getTaskDefs(access = "READ", metadata = false, tagKey, tagValue) {
495
347
  return this.httpRequest.request({
496
348
  method: "GET",
@@ -503,6 +355,12 @@ var MetadataResourceService = class {
503
355
  }
504
356
  });
505
357
  }
358
+ /**
359
+ * Update an existing task
360
+ * @param requestBody
361
+ * @returns any OK
362
+ * @throws ApiError
363
+ */
506
364
  updateTaskDef(requestBody) {
507
365
  return this.httpRequest.request({
508
366
  method: "PUT",
@@ -511,6 +369,12 @@ var MetadataResourceService = class {
511
369
  mediaType: "application/json"
512
370
  });
513
371
  }
372
+ /**
373
+ * Create or update task definition(s)
374
+ * @param requestBody
375
+ * @returns any OK
376
+ * @throws ApiError
377
+ */
514
378
  registerTaskDef(requestBody) {
515
379
  return this.httpRequest.request({
516
380
  method: "POST",
@@ -519,6 +383,13 @@ var MetadataResourceService = class {
519
383
  mediaType: "application/json"
520
384
  });
521
385
  }
386
+ /**
387
+ * Removes workflow definition. It does not remove workflows associated with the definition.
388
+ * @param name
389
+ * @param version
390
+ * @returns any OK
391
+ * @throws ApiError
392
+ */
522
393
  unregisterWorkflowDef(name, version) {
523
394
  return this.httpRequest.request({
524
395
  method: "DELETE",
@@ -529,6 +400,14 @@ var MetadataResourceService = class {
529
400
  }
530
401
  });
531
402
  }
403
+ /**
404
+ * Retrieves workflow definition along with blueprint
405
+ * @param name
406
+ * @param version
407
+ * @param metadata
408
+ * @returns WorkflowDef OK
409
+ * @throws ApiError
410
+ */
532
411
  get(name, version, metadata = false) {
533
412
  return this.httpRequest.request({
534
413
  method: "GET",
@@ -549,6 +428,12 @@ var SchedulerResourceService = class {
549
428
  constructor(httpRequest) {
550
429
  this.httpRequest = httpRequest;
551
430
  }
431
+ /**
432
+ * Get an existing workflow schedule by name
433
+ * @param name
434
+ * @returns any OK
435
+ * @throws ApiError
436
+ */
552
437
  getSchedule(name) {
553
438
  return this.httpRequest.request({
554
439
  method: "GET",
@@ -558,6 +443,12 @@ var SchedulerResourceService = class {
558
443
  }
559
444
  });
560
445
  }
446
+ /**
447
+ * Deletes an existing workflow schedule by name
448
+ * @param name
449
+ * @returns any OK
450
+ * @throws ApiError
451
+ */
561
452
  deleteSchedule(name) {
562
453
  return this.httpRequest.request({
563
454
  method: "DELETE",
@@ -567,6 +458,15 @@ var SchedulerResourceService = class {
567
458
  }
568
459
  });
569
460
  }
461
+ /**
462
+ * Get list of the next x (default 3, max 5) execution times for a scheduler
463
+ * @param cronExpression
464
+ * @param scheduleStartTime
465
+ * @param scheduleEndTime
466
+ * @param limit
467
+ * @returns number OK
468
+ * @throws ApiError
469
+ */
570
470
  getNextFewSchedules(cronExpression, scheduleStartTime, scheduleEndTime, limit = 3) {
571
471
  return this.httpRequest.request({
572
472
  method: "GET",
@@ -579,6 +479,12 @@ var SchedulerResourceService = class {
579
479
  }
580
480
  });
581
481
  }
482
+ /**
483
+ * Pauses an existing schedule by name
484
+ * @param name
485
+ * @returns any OK
486
+ * @throws ApiError
487
+ */
582
488
  pauseSchedule(name) {
583
489
  return this.httpRequest.request({
584
490
  method: "GET",
@@ -588,12 +494,23 @@ var SchedulerResourceService = class {
588
494
  }
589
495
  });
590
496
  }
497
+ /**
498
+ * Pause all scheduling in a single conductor server instance (for debugging only)
499
+ * @returns any OK
500
+ * @throws ApiError
501
+ */
591
502
  pauseAllSchedules() {
592
503
  return this.httpRequest.request({
593
504
  method: "GET",
594
505
  url: "/scheduler/admin/pause"
595
506
  });
596
507
  }
508
+ /**
509
+ * Resume a paused schedule by name
510
+ * @param name
511
+ * @returns any OK
512
+ * @throws ApiError
513
+ */
597
514
  resumeSchedule(name) {
598
515
  return this.httpRequest.request({
599
516
  method: "GET",
@@ -603,18 +520,34 @@ var SchedulerResourceService = class {
603
520
  }
604
521
  });
605
522
  }
523
+ /**
524
+ * Requeue all execution records
525
+ * @returns any OK
526
+ * @throws ApiError
527
+ */
606
528
  requeueAllExecutionRecords() {
607
529
  return this.httpRequest.request({
608
530
  method: "GET",
609
531
  url: "/scheduler/admin/requeue"
610
532
  });
611
533
  }
534
+ /**
535
+ * Resume all scheduling
536
+ * @returns any OK
537
+ * @throws ApiError
538
+ */
612
539
  resumeAllSchedules() {
613
540
  return this.httpRequest.request({
614
541
  method: "GET",
615
542
  url: "/scheduler/admin/resume"
616
543
  });
617
544
  }
545
+ /**
546
+ * Get all existing workflow schedules and optionally filter by workflow name
547
+ * @param workflowName
548
+ * @returns WorkflowSchedule OK
549
+ * @throws ApiError
550
+ */
618
551
  getAllSchedules(workflowName) {
619
552
  return this.httpRequest.request({
620
553
  method: "GET",
@@ -624,6 +557,12 @@ var SchedulerResourceService = class {
624
557
  }
625
558
  });
626
559
  }
560
+ /**
561
+ * Create or update a schedule for a specified workflow with a corresponding start workflow request
562
+ * @param requestBody
563
+ * @returns any OK
564
+ * @throws ApiError
565
+ */
627
566
  saveSchedule(requestBody) {
628
567
  return this.httpRequest.request({
629
568
  method: "POST",
@@ -632,12 +571,28 @@ var SchedulerResourceService = class {
632
571
  mediaType: "application/json"
633
572
  });
634
573
  }
574
+ /**
575
+ * Test timeout - do not use in production
576
+ * @returns any OK
577
+ * @throws ApiError
578
+ */
635
579
  testTimeout() {
636
580
  return this.httpRequest.request({
637
581
  method: "GET",
638
582
  url: "/scheduler/test/timeout"
639
583
  });
640
584
  }
585
+ /**
586
+ * Search for workflows based on payload and other parameters
587
+ * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
588
+ * @param start
589
+ * @param size
590
+ * @param sort
591
+ * @param freeText
592
+ * @param query
593
+ * @returns SearchResultWorkflowScheduleExecutionModel OK
594
+ * @throws ApiError
595
+ */
641
596
  searchV21(start, size = 100, sort, freeText = "*", query) {
642
597
  return this.httpRequest.request({
643
598
  method: "GET",
@@ -658,6 +613,14 @@ var TaskResourceService = class {
658
613
  constructor(httpRequest) {
659
614
  this.httpRequest = httpRequest;
660
615
  }
616
+ /**
617
+ * Poll for a task of a certain type
618
+ * @param tasktype
619
+ * @param workerid
620
+ * @param domain
621
+ * @returns Task OK
622
+ * @throws ApiError
623
+ */
661
624
  poll(tasktype, workerid, domain) {
662
625
  return this.httpRequest.request({
663
626
  method: "GET",
@@ -671,12 +634,26 @@ var TaskResourceService = class {
671
634
  }
672
635
  });
673
636
  }
637
+ /**
638
+ * Get the details about each queue
639
+ * @returns number OK
640
+ * @throws ApiError
641
+ */
674
642
  allVerbose() {
675
643
  return this.httpRequest.request({
676
644
  method: "GET",
677
645
  url: "/tasks/queue/all/verbose"
678
646
  });
679
647
  }
648
+ /**
649
+ * Update a task By Ref Name
650
+ * @param workflowId
651
+ * @param taskRefName
652
+ * @param status
653
+ * @param requestBody
654
+ * @returns string OK
655
+ * @throws ApiError
656
+ */
680
657
  updateTask(workflowId, taskRefName, status, requestBody) {
681
658
  return this.httpRequest.request({
682
659
  method: "POST",
@@ -690,6 +667,12 @@ var TaskResourceService = class {
690
667
  mediaType: "application/json"
691
668
  });
692
669
  }
670
+ /**
671
+ * Get task by Id
672
+ * @param taskId
673
+ * @returns Task OK
674
+ * @throws ApiError
675
+ */
693
676
  getTask(taskId) {
694
677
  return this.httpRequest.request({
695
678
  method: "GET",
@@ -699,12 +682,23 @@ var TaskResourceService = class {
699
682
  }
700
683
  });
701
684
  }
685
+ /**
686
+ * Get the details about each queue
687
+ * @returns number OK
688
+ * @throws ApiError
689
+ */
702
690
  all() {
703
691
  return this.httpRequest.request({
704
692
  method: "GET",
705
693
  url: "/tasks/queue/all"
706
694
  });
707
695
  }
696
+ /**
697
+ * Requeue pending tasks
698
+ * @param taskType
699
+ * @returns string OK
700
+ * @throws ApiError
701
+ */
708
702
  requeuePendingTask(taskType) {
709
703
  return this.httpRequest.request({
710
704
  method: "POST",
@@ -714,6 +708,17 @@ var TaskResourceService = class {
714
708
  }
715
709
  });
716
710
  }
711
+ /**
712
+ * Search for tasks based in payload and other parameters
713
+ * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
714
+ * @param start
715
+ * @param size
716
+ * @param sort
717
+ * @param freeText
718
+ * @param query
719
+ * @returns SearchResultTaskSummary OK
720
+ * @throws ApiError
721
+ */
717
722
  search(start, size = 100, sort, freeText = "*", query) {
718
723
  return this.httpRequest.request({
719
724
  method: "GET",
@@ -727,6 +732,17 @@ var TaskResourceService = class {
727
732
  }
728
733
  });
729
734
  }
735
+ /**
736
+ * Search for tasks based in payload and other parameters
737
+ * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
738
+ * @param start
739
+ * @param size
740
+ * @param sort
741
+ * @param freeText
742
+ * @param query
743
+ * @returns SearchResultTask OK
744
+ * @throws ApiError
745
+ */
730
746
  searchV22(start, size = 100, sort, freeText = "*", query) {
731
747
  return this.httpRequest.request({
732
748
  method: "GET",
@@ -740,6 +756,12 @@ var TaskResourceService = class {
740
756
  }
741
757
  });
742
758
  }
759
+ /**
760
+ * Get the last poll data for a given task type
761
+ * @param taskType
762
+ * @returns PollData OK
763
+ * @throws ApiError
764
+ */
743
765
  getPollData(taskType) {
744
766
  return this.httpRequest.request({
745
767
  method: "GET",
@@ -749,6 +771,12 @@ var TaskResourceService = class {
749
771
  }
750
772
  });
751
773
  }
774
+ /**
775
+ * Get Task Execution Logs
776
+ * @param taskId
777
+ * @returns TaskExecLog OK
778
+ * @throws ApiError
779
+ */
752
780
  getTaskLogs(taskId) {
753
781
  return this.httpRequest.request({
754
782
  method: "GET",
@@ -758,6 +786,13 @@ var TaskResourceService = class {
758
786
  }
759
787
  });
760
788
  }
789
+ /**
790
+ * Log Task Execution Details
791
+ * @param taskId
792
+ * @param requestBody
793
+ * @returns any OK
794
+ * @throws ApiError
795
+ */
761
796
  log(taskId, requestBody) {
762
797
  return this.httpRequest.request({
763
798
  method: "POST",
@@ -769,12 +804,27 @@ var TaskResourceService = class {
769
804
  mediaType: "application/json"
770
805
  });
771
806
  }
807
+ /**
808
+ * Get the last poll data for all task types
809
+ * @returns PollData OK
810
+ * @throws ApiError
811
+ */
772
812
  getAllPollData() {
773
813
  return this.httpRequest.request({
774
814
  method: "GET",
775
815
  url: "/tasks/queue/polldata/all"
776
816
  });
777
817
  }
818
+ /**
819
+ * Batch poll for a task of a certain type
820
+ * @param tasktype
821
+ * @param workerid
822
+ * @param domain
823
+ * @param count
824
+ * @param timeout
825
+ * @returns Task OK
826
+ * @throws ApiError
827
+ */
778
828
  batchPoll(tasktype, workerid, domain, count = 1, timeout = 100) {
779
829
  return this.httpRequest.request({
780
830
  method: "GET",
@@ -790,6 +840,12 @@ var TaskResourceService = class {
790
840
  }
791
841
  });
792
842
  }
843
+ /**
844
+ * Update a task
845
+ * @param requestBody
846
+ * @returns string OK
847
+ * @throws ApiError
848
+ */
793
849
  updateTask1(requestBody) {
794
850
  return this.httpRequest.request({
795
851
  method: "POST",
@@ -798,6 +854,12 @@ var TaskResourceService = class {
798
854
  mediaType: "application/json"
799
855
  });
800
856
  }
857
+ /**
858
+ * Get Task type queue sizes
859
+ * @param taskType
860
+ * @returns number OK
861
+ * @throws ApiError
862
+ */
801
863
  size1(taskType) {
802
864
  return this.httpRequest.request({
803
865
  method: "GET",
@@ -807,6 +869,14 @@ var TaskResourceService = class {
807
869
  }
808
870
  });
809
871
  }
872
+ /**
873
+ * Get the external uri where the task payload is to be stored
874
+ * @param path
875
+ * @param operation
876
+ * @param payloadType
877
+ * @returns ExternalStorageLocation OK
878
+ * @throws ApiError
879
+ */
810
880
  getExternalStorageLocation1(path, operation, payloadType) {
811
881
  return this.httpRequest.request({
812
882
  method: "GET",
@@ -825,6 +895,12 @@ var TokenResourceService = class {
825
895
  constructor(httpRequest) {
826
896
  this.httpRequest = httpRequest;
827
897
  }
898
+ /**
899
+ * Generate JWT with the given access key
900
+ * @param requestBody
901
+ * @returns Response OK
902
+ * @throws ApiError
903
+ */
828
904
  generateToken(requestBody) {
829
905
  return this.httpRequest.request({
830
906
  method: "POST",
@@ -833,6 +909,11 @@ var TokenResourceService = class {
833
909
  mediaType: "application/json"
834
910
  });
835
911
  }
912
+ /**
913
+ * Get the user info from the token
914
+ * @returns any OK
915
+ * @throws ApiError
916
+ */
836
917
  getUserInfo() {
837
918
  return this.httpRequest.request({
838
919
  method: "GET",
@@ -846,6 +927,12 @@ var WorkflowBulkResourceService = class {
846
927
  constructor(httpRequest) {
847
928
  this.httpRequest = httpRequest;
848
929
  }
930
+ /**
931
+ * Retry the last failed task for each workflow from the list
932
+ * @param requestBody
933
+ * @returns BulkResponse OK
934
+ * @throws ApiError
935
+ */
849
936
  retry(requestBody) {
850
937
  return this.httpRequest.request({
851
938
  method: "POST",
@@ -854,6 +941,13 @@ var WorkflowBulkResourceService = class {
854
941
  mediaType: "application/json"
855
942
  });
856
943
  }
944
+ /**
945
+ * Restart the list of completed workflow
946
+ * @param requestBody
947
+ * @param useLatestDefinitions
948
+ * @returns BulkResponse OK
949
+ * @throws ApiError
950
+ */
857
951
  restart(requestBody, useLatestDefinitions = false) {
858
952
  return this.httpRequest.request({
859
953
  method: "POST",
@@ -865,6 +959,13 @@ var WorkflowBulkResourceService = class {
865
959
  mediaType: "application/json"
866
960
  });
867
961
  }
962
+ /**
963
+ * Terminate workflows execution
964
+ * @param requestBody
965
+ * @param reason
966
+ * @returns BulkResponse OK
967
+ * @throws ApiError
968
+ */
868
969
  terminate(requestBody, reason) {
869
970
  return this.httpRequest.request({
870
971
  method: "POST",
@@ -876,6 +977,12 @@ var WorkflowBulkResourceService = class {
876
977
  mediaType: "application/json"
877
978
  });
878
979
  }
980
+ /**
981
+ * Resume the list of workflows
982
+ * @param requestBody
983
+ * @returns BulkResponse OK
984
+ * @throws ApiError
985
+ */
879
986
  resumeWorkflow(requestBody) {
880
987
  return this.httpRequest.request({
881
988
  method: "PUT",
@@ -884,6 +991,12 @@ var WorkflowBulkResourceService = class {
884
991
  mediaType: "application/json"
885
992
  });
886
993
  }
994
+ /**
995
+ * Pause the list of workflows
996
+ * @param requestBody
997
+ * @returns BulkResponse OK
998
+ * @throws ApiError
999
+ */
887
1000
  pauseWorkflow1(requestBody) {
888
1001
  return this.httpRequest.request({
889
1002
  method: "PUT",
@@ -899,6 +1012,15 @@ var WorkflowResourceService = class {
899
1012
  constructor(httpRequest) {
900
1013
  this.httpRequest = httpRequest;
901
1014
  }
1015
+ /**
1016
+ * Retrieve all the running workflows
1017
+ * @param name
1018
+ * @param version
1019
+ * @param startTime
1020
+ * @param endTime
1021
+ * @returns string OK
1022
+ * @throws ApiError
1023
+ */
902
1024
  getRunningWorkflow(name, version = 1, startTime, endTime) {
903
1025
  return this.httpRequest.request({
904
1026
  method: "GET",
@@ -913,6 +1035,17 @@ var WorkflowResourceService = class {
913
1035
  }
914
1036
  });
915
1037
  }
1038
+ /**
1039
+ * Execute a workflow synchronously
1040
+ * @param body
1041
+ * @param name
1042
+ * @param version
1043
+ * @param requestId
1044
+ * @param waitUntilTaskRef
1045
+ * @param callback
1046
+ * @returns workflowRun
1047
+ * @throws ApiError
1048
+ */
916
1049
  executeWorkflow(body, name, version, requestId, waitUntilTaskRef) {
917
1050
  return this.httpRequest.request({
918
1051
  method: "POST",
@@ -929,6 +1062,12 @@ var WorkflowResourceService = class {
929
1062
  mediaType: "application/json"
930
1063
  });
931
1064
  }
1065
+ /**
1066
+ * Start a new workflow with StartWorkflowRequest, which allows task to be executed in a domain
1067
+ * @param requestBody
1068
+ * @returns string OK
1069
+ * @throws ApiError
1070
+ */
932
1071
  startWorkflow(requestBody) {
933
1072
  return this.httpRequest.request({
934
1073
  method: "POST",
@@ -937,6 +1076,12 @@ var WorkflowResourceService = class {
937
1076
  mediaType: "application/json"
938
1077
  });
939
1078
  }
1079
+ /**
1080
+ * Starts the decision task for a workflow
1081
+ * @param workflowId
1082
+ * @returns any OK
1083
+ * @throws ApiError
1084
+ */
940
1085
  decide(workflowId) {
941
1086
  return this.httpRequest.request({
942
1087
  method: "PUT",
@@ -946,6 +1091,13 @@ var WorkflowResourceService = class {
946
1091
  }
947
1092
  });
948
1093
  }
1094
+ /**
1095
+ * Reruns the workflow from a specific task
1096
+ * @param workflowId
1097
+ * @param requestBody
1098
+ * @returns string OK
1099
+ * @throws ApiError
1100
+ */
949
1101
  rerun(workflowId, requestBody) {
950
1102
  return this.httpRequest.request({
951
1103
  method: "POST",
@@ -957,6 +1109,17 @@ var WorkflowResourceService = class {
957
1109
  mediaType: "application/json"
958
1110
  });
959
1111
  }
1112
+ /**
1113
+ * Search for workflows based on payload and other parameters
1114
+ * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
1115
+ * @param start
1116
+ * @param size
1117
+ * @param sort
1118
+ * @param freeText
1119
+ * @param query
1120
+ * @returns SearchResultWorkflow OK
1121
+ * @throws ApiError
1122
+ */
960
1123
  searchV21(start, size = 100, sort, freeText = "*", query) {
961
1124
  return this.httpRequest.request({
962
1125
  method: "GET",
@@ -970,6 +1133,12 @@ var WorkflowResourceService = class {
970
1133
  }
971
1134
  });
972
1135
  }
1136
+ /**
1137
+ * Pauses the workflow
1138
+ * @param workflowId
1139
+ * @returns any OK
1140
+ * @throws ApiError
1141
+ */
973
1142
  pauseWorkflow(workflowId) {
974
1143
  return this.httpRequest.request({
975
1144
  method: "PUT",
@@ -979,6 +1148,14 @@ var WorkflowResourceService = class {
979
1148
  }
980
1149
  });
981
1150
  }
1151
+ /**
1152
+ * Skips a given task from a current running workflow
1153
+ * @param workflowId
1154
+ * @param taskReferenceName
1155
+ * @param requestBody
1156
+ * @returns any OK
1157
+ * @throws ApiError
1158
+ */
982
1159
  skipTaskFromWorkflow(workflowId, taskReferenceName, requestBody) {
983
1160
  return this.httpRequest.request({
984
1161
  method: "PUT",
@@ -991,6 +1168,15 @@ var WorkflowResourceService = class {
991
1168
  mediaType: "application/json"
992
1169
  });
993
1170
  }
1171
+ /**
1172
+ * Lists workflows for the given correlation id list
1173
+ * @param name
1174
+ * @param requestBody
1175
+ * @param includeClosed
1176
+ * @param includeTasks
1177
+ * @returns Workflow OK
1178
+ * @throws ApiError
1179
+ */
994
1180
  getWorkflows(name, requestBody, includeClosed = false, includeTasks = false) {
995
1181
  return this.httpRequest.request({
996
1182
  method: "POST",
@@ -1006,6 +1192,14 @@ var WorkflowResourceService = class {
1006
1192
  mediaType: "application/json"
1007
1193
  });
1008
1194
  }
1195
+ /**
1196
+ * Gets the workflow by workflow id
1197
+ * @param workflowId
1198
+ * @param includeOutput
1199
+ * @param includeVariables
1200
+ * @returns WorkflowStatus OK
1201
+ * @throws ApiError
1202
+ */
1009
1203
  getWorkflowStatusSummary(workflowId, includeOutput = false, includeVariables = false) {
1010
1204
  return this.httpRequest.request({
1011
1205
  method: "GET",
@@ -1019,6 +1213,15 @@ var WorkflowResourceService = class {
1019
1213
  }
1020
1214
  });
1021
1215
  }
1216
+ /**
1217
+ * Lists workflows for the given correlation id
1218
+ * @param name
1219
+ * @param correlationId
1220
+ * @param includeClosed
1221
+ * @param includeTasks
1222
+ * @returns Workflow OK
1223
+ * @throws ApiError
1224
+ */
1022
1225
  getWorkflows1(name, correlationId, includeClosed = false, includeTasks = false) {
1023
1226
  return this.httpRequest.request({
1024
1227
  method: "GET",
@@ -1033,6 +1236,13 @@ var WorkflowResourceService = class {
1033
1236
  }
1034
1237
  });
1035
1238
  }
1239
+ /**
1240
+ * Retries the last failed task
1241
+ * @param workflowId
1242
+ * @param resumeSubworkflowTasks
1243
+ * @returns void
1244
+ * @throws ApiError
1245
+ */
1036
1246
  retry1(workflowId, resumeSubworkflowTasks = false) {
1037
1247
  return this.httpRequest.request({
1038
1248
  method: "POST",
@@ -1045,6 +1255,13 @@ var WorkflowResourceService = class {
1045
1255
  }
1046
1256
  });
1047
1257
  }
1258
+ /**
1259
+ * Gets the workflow by workflow id
1260
+ * @param workflowId
1261
+ * @param includeTasks
1262
+ * @returns Workflow OK
1263
+ * @throws ApiError
1264
+ */
1048
1265
  getExecutionStatus(workflowId, includeTasks = true) {
1049
1266
  return this.httpRequest.request({
1050
1267
  method: "GET",
@@ -1057,6 +1274,13 @@ var WorkflowResourceService = class {
1057
1274
  }
1058
1275
  });
1059
1276
  }
1277
+ /**
1278
+ * Terminate workflow execution
1279
+ * @param workflowId
1280
+ * @param reason
1281
+ * @returns any OK
1282
+ * @throws ApiError
1283
+ */
1060
1284
  terminate1(workflowId, reason) {
1061
1285
  return this.httpRequest.request({
1062
1286
  method: "DELETE",
@@ -1069,6 +1293,12 @@ var WorkflowResourceService = class {
1069
1293
  }
1070
1294
  });
1071
1295
  }
1296
+ /**
1297
+ * Resumes the workflow
1298
+ * @param workflowId
1299
+ * @returns any OK
1300
+ * @throws ApiError
1301
+ */
1072
1302
  resumeWorkflow(workflowId) {
1073
1303
  return this.httpRequest.request({
1074
1304
  method: "PUT",
@@ -1078,6 +1308,13 @@ var WorkflowResourceService = class {
1078
1308
  }
1079
1309
  });
1080
1310
  }
1311
+ /**
1312
+ * Removes the workflow from the system
1313
+ * @param workflowId
1314
+ * @param archiveWorkflow
1315
+ * @returns any OK
1316
+ * @throws ApiError
1317
+ */
1081
1318
  delete(workflowId, archiveWorkflow = true) {
1082
1319
  return this.httpRequest.request({
1083
1320
  method: "DELETE",
@@ -1090,6 +1327,17 @@ var WorkflowResourceService = class {
1090
1327
  }
1091
1328
  });
1092
1329
  }
1330
+ /**
1331
+ * Search for workflows based on task parameters
1332
+ * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
1333
+ * @param start
1334
+ * @param size
1335
+ * @param sort
1336
+ * @param freeText
1337
+ * @param query
1338
+ * @returns SearchResultWorkflowSummary OK
1339
+ * @throws ApiError
1340
+ */
1093
1341
  searchWorkflowsByTasks(start, size = 100, sort, freeText = "*", query) {
1094
1342
  return this.httpRequest.request({
1095
1343
  method: "GET",
@@ -1103,6 +1351,14 @@ var WorkflowResourceService = class {
1103
1351
  }
1104
1352
  });
1105
1353
  }
1354
+ /**
1355
+ * Get the uri and path of the external storage where the workflow payload is to be stored
1356
+ * @param path
1357
+ * @param operation
1358
+ * @param payloadType
1359
+ * @returns ExternalStorageLocation OK
1360
+ * @throws ApiError
1361
+ */
1106
1362
  getExternalStorageLocation(path, operation, payloadType) {
1107
1363
  return this.httpRequest.request({
1108
1364
  method: "GET",
@@ -1114,6 +1370,16 @@ var WorkflowResourceService = class {
1114
1370
  }
1115
1371
  });
1116
1372
  }
1373
+ /**
1374
+ * Start a new workflow. Returns the ID of the workflow instance that can be later used for tracking
1375
+ * @param name
1376
+ * @param requestBody
1377
+ * @param version
1378
+ * @param correlationId
1379
+ * @param priority
1380
+ * @returns string OK
1381
+ * @throws ApiError
1382
+ */
1117
1383
  startWorkflow1(name, requestBody, version, correlationId, priority) {
1118
1384
  return this.httpRequest.request({
1119
1385
  method: "POST",
@@ -1130,6 +1396,13 @@ var WorkflowResourceService = class {
1130
1396
  mediaType: "application/json"
1131
1397
  });
1132
1398
  }
1399
+ /**
1400
+ * Restarts a completed workflow
1401
+ * @param workflowId
1402
+ * @param useLatestDefinitions
1403
+ * @returns void
1404
+ * @throws ApiError
1405
+ */
1133
1406
  restart1(workflowId, useLatestDefinitions = false) {
1134
1407
  return this.httpRequest.request({
1135
1408
  method: "POST",
@@ -1142,6 +1415,19 @@ var WorkflowResourceService = class {
1142
1415
  }
1143
1416
  });
1144
1417
  }
1418
+ /**
1419
+ * Search for workflows based on payload and other parameters
1420
+ * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
1421
+ * @param queryId
1422
+ * @param start
1423
+ * @param size
1424
+ * @param sort
1425
+ * @param freeText
1426
+ * @param query
1427
+ * @param skipCache
1428
+ * @returns ScrollableSearchResultWorkflowSummary OK
1429
+ * @throws ApiError
1430
+ */
1145
1431
  search1(queryId, start, size = 100, sort, freeText = "*", query, skipCache = false) {
1146
1432
  return this.httpRequest.request({
1147
1433
  method: "GET",
@@ -1157,6 +1443,17 @@ var WorkflowResourceService = class {
1157
1443
  }
1158
1444
  });
1159
1445
  }
1446
+ /**
1447
+ * Search for workflows based on task parameters
1448
+ * use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
1449
+ * @param start
1450
+ * @param size
1451
+ * @param sort
1452
+ * @param freeText
1453
+ * @param query
1454
+ * @returns SearchResultWorkflow OK
1455
+ * @throws ApiError
1456
+ */
1160
1457
  searchWorkflowsByTasksV2(start, size = 100, sort, freeText = "*", query) {
1161
1458
  return this.httpRequest.request({
1162
1459
  method: "GET",
@@ -1170,6 +1467,12 @@ var WorkflowResourceService = class {
1170
1467
  }
1171
1468
  });
1172
1469
  }
1470
+ /**
1471
+ * Resets callback times of all non-terminal SIMPLE tasks to 0
1472
+ * @param workflowId
1473
+ * @returns void
1474
+ * @throws ApiError
1475
+ */
1173
1476
  resetWorkflow(workflowId) {
1174
1477
  return this.httpRequest.request({
1175
1478
  method: "POST",
@@ -1183,14 +1486,100 @@ var WorkflowResourceService = class {
1183
1486
 
1184
1487
  // src/common/open-api/core/ApiError.ts
1185
1488
  var ApiError = class extends Error {
1186
- constructor(request2, response, message) {
1489
+ constructor(request3, response, message) {
1187
1490
  super(message);
1188
1491
  this.name = "ApiError";
1189
1492
  this.url = response.url;
1190
1493
  this.status = response.status;
1191
1494
  this.statusText = response.statusText;
1192
1495
  this.body = response.body;
1193
- this.request = request2;
1496
+ this.request = request3;
1497
+ }
1498
+ };
1499
+
1500
+ // src/common/open-api/core/CancelablePromise.ts
1501
+ var CancelError = class extends Error {
1502
+ constructor(message) {
1503
+ super(message);
1504
+ this.name = "CancelError";
1505
+ }
1506
+ get isCancelled() {
1507
+ return true;
1508
+ }
1509
+ };
1510
+ var CancelablePromise = class {
1511
+ static {
1512
+ Symbol.toStringTag;
1513
+ }
1514
+ constructor(executor) {
1515
+ this._isResolved = false;
1516
+ this._isRejected = false;
1517
+ this._isCancelled = false;
1518
+ this._cancelHandlers = [];
1519
+ this._promise = new Promise((resolve3, reject) => {
1520
+ this._resolve = resolve3;
1521
+ this._reject = reject;
1522
+ const onResolve = (value) => {
1523
+ if (this._isResolved || this._isRejected || this._isCancelled) {
1524
+ return;
1525
+ }
1526
+ this._isResolved = true;
1527
+ this._resolve?.(value);
1528
+ };
1529
+ const onReject = (reason) => {
1530
+ if (this._isResolved || this._isRejected || this._isCancelled) {
1531
+ return;
1532
+ }
1533
+ this._isRejected = true;
1534
+ this._reject?.(reason);
1535
+ };
1536
+ const onCancel = (cancelHandler) => {
1537
+ if (this._isResolved || this._isRejected || this._isCancelled) {
1538
+ return;
1539
+ }
1540
+ this._cancelHandlers.push(cancelHandler);
1541
+ };
1542
+ Object.defineProperty(onCancel, "isResolved", {
1543
+ get: () => this._isResolved
1544
+ });
1545
+ Object.defineProperty(onCancel, "isRejected", {
1546
+ get: () => this._isRejected
1547
+ });
1548
+ Object.defineProperty(onCancel, "isCancelled", {
1549
+ get: () => this._isCancelled
1550
+ });
1551
+ return executor(onResolve, onReject, onCancel);
1552
+ });
1553
+ }
1554
+ then(onFulfilled, onRejected) {
1555
+ return this._promise.then(onFulfilled, onRejected);
1556
+ }
1557
+ catch(onRejected) {
1558
+ return this._promise.catch(onRejected);
1559
+ }
1560
+ finally(onFinally) {
1561
+ return this._promise.finally(onFinally);
1562
+ }
1563
+ cancel() {
1564
+ if (this._isResolved || this._isRejected || this._isCancelled) {
1565
+ return;
1566
+ }
1567
+ this._isCancelled = true;
1568
+ if (this._cancelHandlers.length) {
1569
+ try {
1570
+ for (const cancelHandler of this._cancelHandlers) {
1571
+ cancelHandler();
1572
+ }
1573
+ } catch (error) {
1574
+ console.warn("Cancellation threw an error", error);
1575
+ return;
1576
+ }
1577
+ }
1578
+ this._cancelHandlers.length = 0;
1579
+ this._reject?.(new CancelError("Request aborted"));
1580
+ }
1581
+ get isCancelled() {
1582
+ return this._isCancelled;
1194
1583
  }
1195
1584
  };
1196
1585
 
@@ -1291,11 +1680,17 @@ var getHeaders = async (config, options) => {
1291
1680
  const username = await resolve(options, config.USERNAME);
1292
1681
  const password = await resolve(options, config.PASSWORD);
1293
1682
  const additionalHeaders = await resolve(options, config.HEADERS);
1294
- const headers = Object.entries(__spreadValues(__spreadValues({
1295
- Accept: "application/json"
1296
- }, additionalHeaders), options.headers)).filter(([_, value]) => isDefined(value)).reduce((headers2, [key, value]) => __spreadProps(__spreadValues({}, headers2), {
1297
- [key]: String(value)
1298
- }), {});
1683
+ const headers = Object.entries({
1684
+ Accept: "application/json",
1685
+ ...additionalHeaders,
1686
+ ...options.headers
1687
+ }).filter(([_, value]) => isDefined(value)).reduce(
1688
+ (headers2, [key, value]) => ({
1689
+ ...headers2,
1690
+ [key]: String(value)
1691
+ }),
1692
+ {}
1693
+ );
1299
1694
  if (isStringWithValue(token)) {
1300
1695
  headers["X-AUTHORIZATION"] = token;
1301
1696
  }
@@ -1330,14 +1725,14 @@ var getRequestBody = (options) => {
1330
1725
  };
1331
1726
  var sendRequest = async (options, url, body, formData, headers, onCancel) => {
1332
1727
  const controller = new AbortController();
1333
- const request2 = {
1728
+ const request3 = {
1334
1729
  headers,
1335
1730
  method: options.method,
1336
1731
  body: body ?? formData,
1337
1732
  signal: controller.signal
1338
1733
  };
1339
1734
  onCancel(() => controller.abort());
1340
- return await fetch(url, request2);
1735
+ return await fetch(url, request3);
1341
1736
  };
1342
1737
  var getResponseHeader = (response, responseHeader) => {
1343
1738
  if (responseHeader) {
@@ -1367,15 +1762,16 @@ var getResponseBody = async (response) => {
1367
1762
  return void 0;
1368
1763
  };
1369
1764
  var catchErrorCodes = (options, result) => {
1370
- const errors = __spreadValues({
1765
+ const errors = {
1371
1766
  400: "Bad Request",
1372
1767
  401: "Unauthorized",
1373
1768
  403: "Forbidden",
1374
1769
  404: "Not Found",
1375
1770
  500: "Internal Server Error",
1376
1771
  502: "Bad Gateway",
1377
- 503: "Service Unavailable"
1378
- }, options.errors);
1772
+ 503: "Service Unavailable",
1773
+ ...options.errors
1774
+ };
1379
1775
  const error = errors[result.status];
1380
1776
  if (error) {
1381
1777
  throw new ApiError(options, result, error);
@@ -1385,16 +1781,26 @@ var catchErrorCodes = (options, result) => {
1385
1781
  }
1386
1782
  };
1387
1783
  var request = (config, options) => {
1388
- return new CancelablePromise(async (resolve2, reject, onCancel) => {
1784
+ return new CancelablePromise(async (resolve3, reject, onCancel) => {
1389
1785
  try {
1390
1786
  const url = getUrl(config, options);
1391
1787
  const formData = getFormData(options);
1392
1788
  const body = getRequestBody(options);
1393
1789
  const headers = await getHeaders(config, options);
1394
1790
  if (!onCancel.isCancelled) {
1395
- const response = await sendRequest(options, url, body, formData, headers, onCancel);
1791
+ const response = await sendRequest(
1792
+ options,
1793
+ url,
1794
+ body,
1795
+ formData,
1796
+ headers,
1797
+ onCancel
1798
+ );
1396
1799
  const responseBody = await getResponseBody(response);
1397
- const responseHeader = getResponseHeader(response, options.responseHeader);
1800
+ const responseHeader = getResponseHeader(
1801
+ response,
1802
+ options.responseHeader
1803
+ );
1398
1804
  const result = {
1399
1805
  url,
1400
1806
  ok: response.ok,
@@ -1403,7 +1809,7 @@ var request = (config, options) => {
1403
1809
  body: responseHeader ?? responseBody
1404
1810
  };
1405
1811
  catchErrorCodes(options, result);
1406
- resolve2(result.body);
1812
+ resolve3(result.body);
1407
1813
  }
1408
1814
  } catch (error) {
1409
1815
  reject(error);
@@ -1416,6 +1822,18 @@ var HumanTaskService = class {
1416
1822
  constructor(httpRequest) {
1417
1823
  this.httpRequest = httpRequest;
1418
1824
  }
1825
+ /**
1826
+ * List tasks by filters - task name, state, assignee, assignee type, claimed
1827
+ * @param state
1828
+ * @param assignee
1829
+ * @param assigneeType
1830
+ * @param claimedBy
1831
+ * @param taskName
1832
+ * @param freeText
1833
+ * @param includeInputOutput
1834
+ * @returns SearchResultHumanTaskEntry OK
1835
+ * @throws ApiError
1836
+ */
1419
1837
  getTasksByFilter(state, assignee, assigneeType, claimedBy, taskName, freeText, includeInputOutput = false) {
1420
1838
  return this.httpRequest.request({
1421
1839
  method: "GET",
@@ -1431,12 +1849,29 @@ var HumanTaskService = class {
1431
1849
  }
1432
1850
  });
1433
1851
  }
1852
+ /**
1853
+ * Get task load grouped by workflow name and task ref name per user
1854
+ * @returns HumanTaskLoad OK
1855
+ * @throws ApiError
1856
+ */
1434
1857
  getTaskLoad() {
1435
1858
  return this.httpRequest.request({
1436
1859
  method: "GET",
1437
1860
  url: "/human/tasks/load"
1438
1861
  });
1439
1862
  }
1863
+ /**
1864
+ * Search human tasks
1865
+ * @param queryId
1866
+ * @param start
1867
+ * @param size
1868
+ * @param freeText
1869
+ * @param query
1870
+ * @param jsonQuery
1871
+ * @param includeInputOutput
1872
+ * @returns HTScrollableSearchResultHumanTaskEntry OK
1873
+ * @throws ApiError
1874
+ */
1440
1875
  search1(queryId, start, size = 100, freeText = "*", query, jsonQuery, includeInputOutput = false) {
1441
1876
  return this.httpRequest.request({
1442
1877
  method: "GET",
@@ -1452,6 +1887,12 @@ var HumanTaskService = class {
1452
1887
  }
1453
1888
  });
1454
1889
  }
1890
+ /**
1891
+ * If the workflow is disconnected from tasks, this API can be used to clean up
1892
+ * @param taskId
1893
+ * @returns any OK
1894
+ * @throws ApiError
1895
+ */
1455
1896
  updateTaskOutput1(taskId) {
1456
1897
  return this.httpRequest.request({
1457
1898
  method: "DELETE",
@@ -1461,6 +1902,12 @@ var HumanTaskService = class {
1461
1902
  }
1462
1903
  });
1463
1904
  }
1905
+ /**
1906
+ * Get a task
1907
+ * @param taskId
1908
+ * @returns HumanTaskEntry OK
1909
+ * @throws ApiError
1910
+ */
1464
1911
  getTask1(taskId) {
1465
1912
  return this.httpRequest.request({
1466
1913
  method: "GET",
@@ -1470,6 +1917,12 @@ var HumanTaskService = class {
1470
1917
  }
1471
1918
  });
1472
1919
  }
1920
+ /**
1921
+ * Get human task action log entries by task id
1922
+ * @param taskId
1923
+ * @returns HumanTaskActionLogEntry OK
1924
+ * @throws ApiError
1925
+ */
1473
1926
  getActionLogs(taskId) {
1474
1927
  return this.httpRequest.request({
1475
1928
  method: "GET",
@@ -1479,6 +1932,12 @@ var HumanTaskService = class {
1479
1932
  }
1480
1933
  });
1481
1934
  }
1935
+ /**
1936
+ * Claim a task by authenticated Conductor user
1937
+ * @param taskId
1938
+ * @returns any OK
1939
+ * @throws ApiError
1940
+ */
1482
1941
  claimTask(taskId) {
1483
1942
  return this.httpRequest.request({
1484
1943
  method: "POST",
@@ -1488,6 +1947,13 @@ var HumanTaskService = class {
1488
1947
  }
1489
1948
  });
1490
1949
  }
1950
+ /**
1951
+ * Claim a task to an external user
1952
+ * @param taskId
1953
+ * @param userId
1954
+ * @returns any OK
1955
+ * @throws ApiError
1956
+ */
1491
1957
  assignAndClaim(taskId, userId) {
1492
1958
  return this.httpRequest.request({
1493
1959
  method: "POST",
@@ -1498,6 +1964,13 @@ var HumanTaskService = class {
1498
1964
  }
1499
1965
  });
1500
1966
  }
1967
+ /**
1968
+ * Release a task without completing it
1969
+ * @param taskId
1970
+ * @param requestBody
1971
+ * @returns any OK
1972
+ * @throws ApiError
1973
+ */
1501
1974
  reassignTask(taskId, requestBody) {
1502
1975
  return this.httpRequest.request({
1503
1976
  method: "POST",
@@ -1509,6 +1982,12 @@ var HumanTaskService = class {
1509
1982
  mediaType: "application/json"
1510
1983
  });
1511
1984
  }
1985
+ /**
1986
+ * Release a task without completing it
1987
+ * @param taskId
1988
+ * @returns any OK
1989
+ * @throws ApiError
1990
+ */
1512
1991
  releaseTask(taskId) {
1513
1992
  return this.httpRequest.request({
1514
1993
  method: "POST",
@@ -1518,6 +1997,12 @@ var HumanTaskService = class {
1518
1997
  }
1519
1998
  });
1520
1999
  }
2000
+ /**
2001
+ * Get human task state log entries by task id
2002
+ * @param taskId
2003
+ * @returns HumanTaskStateLogEntry OK
2004
+ * @throws ApiError
2005
+ */
1521
2006
  getStateLogs(taskId) {
1522
2007
  return this.httpRequest.request({
1523
2008
  method: "GET",
@@ -1527,6 +2012,14 @@ var HumanTaskService = class {
1527
2012
  }
1528
2013
  });
1529
2014
  }
2015
+ /**
2016
+ * Update task output, optionally complete
2017
+ * @param taskId
2018
+ * @param requestBody
2019
+ * @param complete
2020
+ * @returns any OK
2021
+ * @throws ApiError
2022
+ */
1530
2023
  updateTaskOutput(taskId, requestBody, complete = false) {
1531
2024
  return this.httpRequest.request({
1532
2025
  method: "POST",
@@ -1541,6 +2034,12 @@ var HumanTaskService = class {
1541
2034
  mediaType: "application/json"
1542
2035
  });
1543
2036
  }
2037
+ /**
2038
+ * Delete human task templates by name
2039
+ * @param name
2040
+ * @returns any OK
2041
+ * @throws ApiError
2042
+ */
1544
2043
  deleteTemplatesByName(name) {
1545
2044
  return this.httpRequest.request({
1546
2045
  method: "DELETE",
@@ -1550,6 +2049,13 @@ var HumanTaskService = class {
1550
2049
  }
1551
2050
  });
1552
2051
  }
2052
+ /**
2053
+ * List all human task templates or get templates by name, or a template by name and version
2054
+ * @param name
2055
+ * @param version
2056
+ * @returns HumanTaskTemplateEntry OK
2057
+ * @throws ApiError
2058
+ */
1553
2059
  getAllTemplates(name, version) {
1554
2060
  return this.httpRequest.request({
1555
2061
  method: "GET",
@@ -1560,6 +2066,13 @@ var HumanTaskService = class {
1560
2066
  }
1561
2067
  });
1562
2068
  }
2069
+ /**
2070
+ * Save human task template
2071
+ * @param requestBody
2072
+ * @param newVersion
2073
+ * @returns string OK
2074
+ * @throws ApiError
2075
+ */
1563
2076
  saveTemplate(requestBody, newVersion = false) {
1564
2077
  return this.httpRequest.request({
1565
2078
  method: "POST",
@@ -1571,6 +2084,12 @@ var HumanTaskService = class {
1571
2084
  mediaType: "application/json"
1572
2085
  });
1573
2086
  }
2087
+ /**
2088
+ * Delete human task template
2089
+ * @param id
2090
+ * @returns any OK
2091
+ * @throws ApiError
2092
+ */
1574
2093
  deleteTemplateById(id) {
1575
2094
  return this.httpRequest.request({
1576
2095
  method: "DELETE",
@@ -1580,6 +2099,12 @@ var HumanTaskService = class {
1580
2099
  }
1581
2100
  });
1582
2101
  }
2102
+ /**
2103
+ * Get human task template by id
2104
+ * @param id
2105
+ * @returns HumanTaskTemplateEntry OK
2106
+ * @throws ApiError
2107
+ */
1583
2108
  getTemplateById(id) {
1584
2109
  return this.httpRequest.request({
1585
2110
  method: "GET",
@@ -1596,6 +2121,12 @@ var HumanTaskResourceService = class {
1596
2121
  constructor(httpRequest) {
1597
2122
  this.httpRequest = httpRequest;
1598
2123
  }
2124
+ /**
2125
+ * Get Conductor task by id (for human tasks only)
2126
+ * @param taskId
2127
+ * @returns Task OK
2128
+ * @throws ApiError
2129
+ */
1599
2130
  getConductorTaskById(taskId) {
1600
2131
  return this.httpRequest.request({
1601
2132
  method: "GET",
@@ -1608,7 +2139,7 @@ var HumanTaskResourceService = class {
1608
2139
  };
1609
2140
 
1610
2141
  // src/common/open-api/ConductorClient.ts
1611
- var defaultRequestHandler = (request2, config, options) => request2(config, options);
2142
+ var defaultRequestHandler = (request3, config, options) => request3(config, options);
1612
2143
  var ConductorClient = class {
1613
2144
  constructor(config, requestHandler = defaultRequestHandler) {
1614
2145
  const resolvedConfig = {
@@ -1625,7 +2156,11 @@ var ConductorClient = class {
1625
2156
  this.request = {
1626
2157
  config: resolvedConfig,
1627
2158
  request: (apiConfig) => {
1628
- return requestHandler(request, resolvedConfig, apiConfig);
2159
+ return requestHandler(
2160
+ request,
2161
+ { ...resolvedConfig, TOKEN: this.token },
2162
+ apiConfig
2163
+ );
1629
2164
  }
1630
2165
  };
1631
2166
  this.token = config?.TOKEN;
@@ -1640,130 +2175,843 @@ var ConductorClient = class {
1640
2175
  this.humanTask = new HumanTaskService(this.request);
1641
2176
  this.humanTaskResource = new HumanTaskResourceService(this.request);
1642
2177
  }
2178
+ stop() {
2179
+ }
1643
2180
  };
1644
2181
 
1645
- // src/common/orkes/OrkesConductorClient.ts
1646
- var defaultRequestHandler2 = (request2, config, options) => request2(config, options);
1647
- var orkesConductorClient = async (config, requestHandler = defaultRequestHandler2) => {
1648
- if (config?.keySecret != null && config?.keyId != null) {
1649
- const { serverUrl, keyId, keySecret } = config;
1650
- const tokenUrl = `${serverUrl}/token`;
1651
- const res = await fetch(tokenUrl, {
1652
- headers: {
1653
- "Content-Type": "application/json",
1654
- Accept: "application/json"
1655
- },
1656
- body: JSON.stringify({ keyId, keySecret }),
1657
- method: "POST"
1658
- });
1659
- const { token } = await res.json();
1660
- return new ConductorClient(__spreadProps(__spreadValues({}, config), { TOKEN: token }), requestHandler);
1661
- } else {
1662
- return Promise.resolve(new ConductorClient(config, requestHandler));
2182
+ // src/common/open-api/core/BaseHttpRequest.ts
2183
+ var BaseHttpRequest = class {
2184
+ constructor(config) {
2185
+ this.config = config;
1663
2186
  }
1664
2187
  };
1665
2188
 
1666
- // src/common/types.ts
1667
- var TaskType = /* @__PURE__ */ ((TaskType2) => {
1668
- TaskType2["START"] = "START";
1669
- TaskType2["SIMPLE"] = "SIMPLE";
1670
- TaskType2["DYNAMIC"] = "DYNAMIC";
1671
- TaskType2["FORK_JOIN"] = "FORK_JOIN";
1672
- TaskType2["FORK_JOIN_DYNAMIC"] = "FORK_JOIN_DYNAMIC";
1673
- TaskType2["DECISION"] = "DECISION";
1674
- TaskType2["SWITCH"] = "SWITCH";
1675
- TaskType2["JOIN"] = "JOIN";
1676
- TaskType2["DO_WHILE"] = "DO_WHILE";
1677
- TaskType2["SUB_WORKFLOW"] = "SUB_WORKFLOW";
1678
- TaskType2["EVENT"] = "EVENT";
1679
- TaskType2["WAIT"] = "WAIT";
1680
- TaskType2["USER_DEFINED"] = "USER_DEFINED";
1681
- TaskType2["HTTP"] = "HTTP";
1682
- TaskType2["LAMBDA"] = "LAMBDA";
1683
- TaskType2["INLINE"] = "INLINE";
1684
- TaskType2["EXCLUSIVE_JOIN"] = "EXCLUSIVE_JOIN";
1685
- TaskType2["TERMINAL"] = "TERMINAL";
1686
- TaskType2["TERMINATE"] = "TERMINATE";
1687
- TaskType2["KAFKA_PUBLISH"] = "KAFKA_PUBLISH";
1688
- TaskType2["JSON_JQ_TRANSFORM"] = "JSON_JQ_TRANSFORM";
1689
- TaskType2["SET_VARIABLE"] = "SET_VARIABLE";
1690
- return TaskType2;
1691
- })(TaskType || {});
1692
-
1693
- // src/common/generators/common.ts
1694
- var randomChars = (n = 7) => (Math.random() + 1).toString(36).substring(n);
1695
- var taskNameGenerator = (taskType) => `${taskType}__task_${randomChars(7)}`;
1696
- var taskReferenceNameGenerator = (taskName) => `${taskName}_ref`;
1697
- var nameTaskNameGenerator = (taskType, maybeOverrides = {}) => {
1698
- const name = maybeOverrides?.name ?? taskNameGenerator(taskType);
1699
- return {
1700
- name,
1701
- taskReferenceName: taskReferenceNameGenerator(name)
1702
- };
2189
+ // src/task/Poller.ts
2190
+ var Poller = class {
2191
+ constructor(pollFunction, pollerOptions, logger) {
2192
+ this.concurrentCalls = [];
2193
+ this.pollFunction = async () => {
2194
+ };
2195
+ this.polling = false;
2196
+ this.options = {
2197
+ pollInterval: 1e3,
2198
+ concurrency: 1
2199
+ };
2200
+ this.logger = noopLogger;
2201
+ /**
2202
+ * Starts polling for work
2203
+ */
2204
+ this.startPolling = () => {
2205
+ if (this.polling) {
2206
+ throw new Error("Runner is already started");
2207
+ }
2208
+ return this.poll();
2209
+ };
2210
+ /**
2211
+ * Stops Polling for work
2212
+ */
2213
+ this.stopPolling = () => {
2214
+ this.polling = false;
2215
+ this.concurrentCalls.forEach((call) => call.stop());
2216
+ };
2217
+ this.poll = async () => {
2218
+ if (!this.polling) {
2219
+ this.polling = true;
2220
+ for (let i = 0; i < this.options.concurrency; i++) {
2221
+ this.concurrentCalls.push(this.singlePoll());
2222
+ }
2223
+ }
2224
+ };
2225
+ this.singlePoll = () => {
2226
+ let poll = this.polling;
2227
+ let timeout;
2228
+ const pollingCall = async () => {
2229
+ while (poll) {
2230
+ await this.pollFunction();
2231
+ await new Promise(
2232
+ (r) => timeout = setTimeout(() => r(true), this.options.pollInterval)
2233
+ );
2234
+ }
2235
+ };
2236
+ return {
2237
+ promise: pollingCall(),
2238
+ stop: () => {
2239
+ clearTimeout(timeout);
2240
+ poll = false;
2241
+ this.logger.debug("stopping single poll call");
2242
+ }
2243
+ };
2244
+ };
2245
+ this.pollFunction = pollFunction;
2246
+ this.options = { ...this.options, ...pollerOptions };
2247
+ this.logger = logger || noopLogger;
2248
+ }
2249
+ get isPolling() {
2250
+ return this.polling;
2251
+ }
2252
+ /**
2253
+ * adds or shuts down concurrent calls based on the concurrency setting
2254
+ * @param concurrency
2255
+ */
2256
+ updateConcurrency(concurrency) {
2257
+ if (concurrency > 0 && concurrency !== this.options.concurrency) {
2258
+ if (concurrency < this.options.concurrency) {
2259
+ const result = this.concurrentCalls.splice(
2260
+ 0,
2261
+ this.options.concurrency - concurrency
2262
+ );
2263
+ result.forEach((call) => {
2264
+ call.stop();
2265
+ this.logger.debug("stopping some spawned calls");
2266
+ });
2267
+ } else {
2268
+ for (let i = 0; i < concurrency - this.options.concurrency; i++) {
2269
+ this.concurrentCalls.push(this.singlePoll());
2270
+ this.logger.debug("spawning additional poll calls");
2271
+ }
2272
+ }
2273
+ this.options.concurrency = concurrency;
2274
+ }
2275
+ }
2276
+ updateOptions(options) {
2277
+ const newOptions = { ...this.options, ...options };
2278
+ this.updateConcurrency(newOptions.concurrency);
2279
+ this.options = newOptions;
2280
+ }
1703
2281
  };
1704
- function mapArrValues(arrayTransformer, mapWithValues) {
1705
- return Object.fromEntries(Object.entries(mapWithValues).map(([key, value]) => [
1706
- key,
1707
- arrayTransformer(value)
1708
- ]));
1709
- }
1710
-
1711
- // src/common/generators/SimpleTask.ts
1712
- var generateSimpleTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("simple", overrides)), {
1713
- inputParameters: {}
1714
- }), overrides), {
1715
- type: "SIMPLE" /* SIMPLE */
1716
- });
1717
2282
 
1718
- // src/common/generators/DoWhileTask.ts
1719
- var generateDoWhileTask = (overrides = {}, nestedTasksMapper) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("doWhile", overrides)), {
2283
+ // src/task/TaskRunner.ts
2284
+ var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
2285
+ var MAX_RETRIES = 3;
2286
+ var noopErrorHandler = (__error) => {
2287
+ };
2288
+ var TaskRunner = class {
2289
+ constructor({
2290
+ worker,
2291
+ taskResource,
2292
+ options,
2293
+ logger = noopLogger,
2294
+ onError: errorHandler = noopErrorHandler
2295
+ }) {
2296
+ /**
2297
+ * Starts polling for work
2298
+ */
2299
+ this.startPolling = () => {
2300
+ this.poller.startPolling();
2301
+ };
2302
+ /**
2303
+ * Stops Polling for work
2304
+ */
2305
+ this.stopPolling = () => {
2306
+ this.poller.stopPolling();
2307
+ };
2308
+ this.pollAndExecute = async () => {
2309
+ try {
2310
+ const { workerID } = this.options;
2311
+ const task = await this.taskResource.poll(
2312
+ this.worker.taskDefName,
2313
+ workerID,
2314
+ this.worker.domain ?? this.options.domain
2315
+ );
2316
+ if (task && task.taskId) {
2317
+ await this.executeTask(task);
2318
+ } else {
2319
+ this.logger.debug(`No tasks for ${this.worker.taskDefName}`);
2320
+ }
2321
+ } catch (unknownError) {
2322
+ this.handleUnknownError(unknownError);
2323
+ this.errorHandler(unknownError);
2324
+ }
2325
+ };
2326
+ this.updateTaskWithRetry = async (task, taskResult) => {
2327
+ let retryCount = 0;
2328
+ while (retryCount < MAX_RETRIES) {
2329
+ try {
2330
+ await this.taskResource.updateTask1(taskResult);
2331
+ return;
2332
+ } catch (error) {
2333
+ this.errorHandler(error, task);
2334
+ this.logger.error(
2335
+ `Error updating task ${taskResult.taskId} on retry ${retryCount}`,
2336
+ error
2337
+ );
2338
+ retryCount++;
2339
+ await new Promise((r) => setTimeout(() => r(true), retryCount * 10));
2340
+ }
2341
+ }
2342
+ this.logger.error(
2343
+ `Unable to update task ${taskResult.taskId} after ${retryCount} retries`
2344
+ );
2345
+ };
2346
+ this.executeTask = async (task) => {
2347
+ try {
2348
+ const result = await this.worker.execute(task);
2349
+ await this.updateTaskWithRetry(task, {
2350
+ ...result,
2351
+ workflowInstanceId: task.workflowInstanceId,
2352
+ taskId: task.taskId
2353
+ });
2354
+ this.logger.debug(`Finished polling for task ${task.taskId}`);
2355
+ } catch (error) {
2356
+ await this.updateTaskWithRetry(task, {
2357
+ workflowInstanceId: task.workflowInstanceId,
2358
+ taskId: task.taskId,
2359
+ reasonForIncompletion: error?.message ?? DEFAULT_ERROR_MESSAGE,
2360
+ status: "FAILED",
2361
+ outputData: {}
2362
+ });
2363
+ this.errorHandler(error, task);
2364
+ this.logger.error(`Error executing ${task.taskId}`, error);
2365
+ }
2366
+ };
2367
+ this.handleUnknownError = (unknownError) => {
2368
+ let message = "";
2369
+ let stack = "";
2370
+ if (unknownError.stack) {
2371
+ stack = unknownError.stack;
2372
+ }
2373
+ if (unknownError.message) {
2374
+ message = unknownError.message;
2375
+ }
2376
+ this.logger.error(
2377
+ `Error for ${this.worker.taskDefName}: error: ${message}, stack: ${stack}`
2378
+ );
2379
+ };
2380
+ this.taskResource = taskResource;
2381
+ this.logger = logger;
2382
+ this.worker = worker;
2383
+ this.options = options;
2384
+ this.errorHandler = errorHandler;
2385
+ this.poller = new Poller(
2386
+ this.pollAndExecute,
2387
+ { concurrency: options.concurrency, pollInterval: options.pollInterval },
2388
+ this.logger
2389
+ );
2390
+ }
2391
+ get isPolling() {
2392
+ return this.poller.isPolling;
2393
+ }
2394
+ updateOptions(options) {
2395
+ const newOptions = { ...this.options, ...options };
2396
+ this.poller.updateOptions({
2397
+ concurrency: newOptions.concurrency,
2398
+ pollInterval: newOptions.pollInterval
2399
+ });
2400
+ this.options = newOptions;
2401
+ }
2402
+ get getOptions() {
2403
+ return this.options;
2404
+ }
2405
+ };
2406
+
2407
+ // src/task/TaskManager.ts
2408
+ import os from "os";
2409
+ var defaultManagerOptions = {
2410
+ workerID: "",
2411
+ pollInterval: 1e3,
2412
+ domain: void 0,
2413
+ concurrency: 1
2414
+ };
2415
+ function workerId(options) {
2416
+ return options.workerID ?? os.hostname();
2417
+ }
2418
+ var TaskManager = class {
2419
+ constructor(client, workers, config = {}) {
2420
+ this.tasks = {};
2421
+ this.polling = false;
2422
+ this.workerManagerWorkerOptions = (worker) => {
2423
+ return {
2424
+ ...this.options,
2425
+ concurrency: worker.concurrency ?? this.options.concurrency,
2426
+ domain: worker.domain ?? this.options.domain
2427
+ };
2428
+ };
2429
+ /**
2430
+ * new options will get merged to existing options
2431
+ * @param options new options to update polling options
2432
+ */
2433
+ this.updatePollingOptions = (options) => {
2434
+ this.workers.forEach((worker) => {
2435
+ const newOptions = {
2436
+ ...this.workerManagerWorkerOptions(worker),
2437
+ ...options
2438
+ };
2439
+ const runners = this.tasks[worker.taskDefName];
2440
+ runners.forEach((runner) => {
2441
+ runner.updateOptions(newOptions);
2442
+ });
2443
+ });
2444
+ this.options.concurrency = options.concurrency ?? this.options.concurrency;
2445
+ this.options.pollInterval = options.pollInterval ?? this.options.pollInterval;
2446
+ };
2447
+ /**
2448
+ * Start polling for tasks
2449
+ */
2450
+ this.startPolling = () => {
2451
+ this.workers.forEach((worker) => {
2452
+ this.tasks[worker.taskDefName] = [];
2453
+ const options = this.workerManagerWorkerOptions(worker);
2454
+ this.logger.debug(
2455
+ `Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`
2456
+ );
2457
+ const runner = new TaskRunner({
2458
+ worker,
2459
+ options,
2460
+ taskResource: this.client.taskResource,
2461
+ logger: this.logger,
2462
+ onError: this.errorHandler
2463
+ });
2464
+ runner.startPolling();
2465
+ this.tasks[worker.taskDefName].push(runner);
2466
+ });
2467
+ this.polling = true;
2468
+ };
2469
+ /**
2470
+ * Stops polling for tasks
2471
+ */
2472
+ this.stopPolling = () => {
2473
+ for (const taskType in this.tasks) {
2474
+ this.tasks[taskType].forEach((runner) => runner.stopPolling());
2475
+ this.tasks[taskType] = [];
2476
+ }
2477
+ this.polling = false;
2478
+ };
2479
+ if (!workers) {
2480
+ throw new Error(
2481
+ "No workers supplied to TaskManager. Please pass an array of workers."
2482
+ );
2483
+ }
2484
+ this.client = client;
2485
+ this.logger = config.logger ?? new DefaultLogger();
2486
+ this.errorHandler = config.onError ?? noopErrorHandler;
2487
+ this.workers = workers;
2488
+ const providedOptions = config.options ?? {};
2489
+ this.options = {
2490
+ ...defaultManagerOptions,
2491
+ ...providedOptions,
2492
+ workerID: workerId(providedOptions)
2493
+ };
2494
+ }
2495
+ get isPolling() {
2496
+ return this.polling;
2497
+ }
2498
+ };
2499
+
2500
+ // src/core/types.ts
2501
+ var ConductorError = class extends Error {
2502
+ constructor(message, innerError) {
2503
+ super(message);
2504
+ this._trace = innerError;
2505
+ const actualProto = new.target.prototype;
2506
+ if (Object.setPrototypeOf) {
2507
+ Object.setPrototypeOf(this, actualProto);
2508
+ } else {
2509
+ this.__proto__ = actualProto;
2510
+ }
2511
+ }
2512
+ };
2513
+
2514
+ // src/core/helpers.ts
2515
+ var errorMapper = (error) => new ConductorError(error?.body?.message, error);
2516
+ var tryCatchReThrow = (fn) => {
2517
+ try {
2518
+ return fn();
2519
+ } catch (error) {
2520
+ throw errorMapper(error);
2521
+ }
2522
+ };
2523
+
2524
+ // src/core/executor.ts
2525
+ var RETRY_TIME_IN_MILLISECONDS = 1e4;
2526
+ var WorkflowExecutor = class {
2527
+ constructor(client) {
2528
+ this._client = client;
2529
+ }
2530
+ /**
2531
+ * Will persist a workflow in conductor
2532
+ * @param override If true will override the existing workflow with the definition
2533
+ * @param workflow Complete workflow definition
2534
+ * @returns null
2535
+ */
2536
+ registerWorkflow(override, workflow2) {
2537
+ return tryCatchReThrow(
2538
+ () => this._client.metadataResource.create(workflow2, override)
2539
+ );
2540
+ }
2541
+ /**
2542
+ * Takes a StartWorkflowRequest. returns a Promise<string> with the workflowInstanceId of the running workflow
2543
+ * @param workflowRequest
2544
+ * @returns
2545
+ */
2546
+ startWorkflow(workflowRequest) {
2547
+ return tryCatchReThrow(
2548
+ () => this._client.workflowResource.startWorkflow(workflowRequest)
2549
+ );
2550
+ }
2551
+ /**
2552
+ * Execute a workflow synchronously. returns a Promise<WorkflowRun> with details of the running workflow
2553
+ * @param workflowRequest
2554
+ * @returns
2555
+ */
2556
+ executeWorkflow(workflowRequest, name, version, requestId, waitUntilTaskRef = "") {
2557
+ return tryCatchReThrow(
2558
+ () => this._client.workflowResource.executeWorkflow(workflowRequest, name, version, requestId, waitUntilTaskRef)
2559
+ );
2560
+ }
2561
+ startWorkflows(workflowsRequest) {
2562
+ return tryCatchReThrow(() => workflowsRequest.map(this.startWorkflow));
2563
+ }
2564
+ /**
2565
+ * Takes an workflowInstanceId and an includeTasks and an optional retry parameter returns the whole execution status.
2566
+ * If includeTasks flag is provided. Details of tasks execution will be returned as well,
2567
+ * retry specifies the amount of retrys before throwing an error.
2568
+ *
2569
+ * @param workflowInstanceId
2570
+ * @param includeTasks
2571
+ * @param retry
2572
+ * @returns
2573
+ */
2574
+ async getWorkflow(workflowInstanceId, includeTasks, retry = 0) {
2575
+ try {
2576
+ const workflowStatus = await this._client.workflowResource.getExecutionStatus(
2577
+ workflowInstanceId,
2578
+ includeTasks
2579
+ );
2580
+ return workflowStatus;
2581
+ } catch (error) {
2582
+ if (![500, 404, 403].includes(error.status) || retry === 0) {
2583
+ throw errorMapper(error);
2584
+ }
2585
+ }
2586
+ await new Promise(
2587
+ (res) => setTimeout(() => res(true), RETRY_TIME_IN_MILLISECONDS)
2588
+ );
2589
+ return this.getWorkflow(workflowInstanceId, includeTasks, retry - 1);
2590
+ }
2591
+ /**
2592
+ * Returns a summary of the current workflow status.
2593
+ *
2594
+ * @param workflowInstanceId current running workflow
2595
+ * @param includeOutput flag to include output
2596
+ * @param includeVariables flag to include variable
2597
+ * @returns Promise<WorkflowStatus>
2598
+ */
2599
+ getWorkflowStatus(workflowInstanceId, includeOutput, includeVariables) {
2600
+ return tryCatchReThrow(
2601
+ () => this._client.workflowResource.getWorkflowStatusSummary(
2602
+ workflowInstanceId,
2603
+ includeOutput,
2604
+ includeVariables
2605
+ )
2606
+ );
2607
+ }
2608
+ /**
2609
+ * Pauses a running workflow
2610
+ * @param workflowInstanceId current workflow execution
2611
+ * @returns
2612
+ */
2613
+ pause(workflowInstanceId) {
2614
+ return tryCatchReThrow(
2615
+ () => this._client.workflowResource.pauseWorkflow(workflowInstanceId)
2616
+ );
2617
+ }
2618
+ /**
2619
+ * Reruns workflowInstanceId workflow. with new parameters
2620
+ *
2621
+ * @param workflowInstanceId current workflow execution
2622
+ * @param rerunWorkflowRequest Rerun Workflow Execution Request
2623
+ * @returns
2624
+ */
2625
+ reRun(workflowInstanceId, rerunWorkflowRequest = {}) {
2626
+ return tryCatchReThrow(
2627
+ () => this._client.workflowResource.rerun(
2628
+ workflowInstanceId,
2629
+ rerunWorkflowRequest
2630
+ )
2631
+ );
2632
+ }
2633
+ /**
2634
+ * Restarts workflow with workflowInstanceId, if useLatestDefinition uses last defintion
2635
+ * @param workflowInstanceId
2636
+ * @param useLatestDefinitions
2637
+ * @returns
2638
+ */
2639
+ restart(workflowInstanceId, useLatestDefinitions) {
2640
+ return tryCatchReThrow(
2641
+ () => this._client.workflowResource.restart1(
2642
+ workflowInstanceId,
2643
+ useLatestDefinitions
2644
+ )
2645
+ );
2646
+ }
2647
+ /**
2648
+ * Resumes a previously paused execution
2649
+ *
2650
+ * @param workflowInstanceId Running workflow workflowInstanceId
2651
+ * @returns
2652
+ */
2653
+ resume(workflowInstanceId) {
2654
+ return tryCatchReThrow(
2655
+ () => this._client.workflowResource.resumeWorkflow(workflowInstanceId)
2656
+ );
2657
+ }
2658
+ /**
2659
+ * Retrys workflow from last failing task
2660
+ * if resumeSubworkflowTasks is true will resume tasks in spawned subworkflows
2661
+ *
2662
+ * @param workflowInstanceId
2663
+ * @param resumeSubworkflowTasks
2664
+ * @returns
2665
+ */
2666
+ retry(workflowInstanceId, resumeSubworkflowTasks) {
2667
+ return tryCatchReThrow(
2668
+ () => this._client.workflowResource.retry1(
2669
+ workflowInstanceId,
2670
+ resumeSubworkflowTasks
2671
+ )
2672
+ );
2673
+ }
2674
+ /**
2675
+ * Searches for existing workflows given the following querys
2676
+ *
2677
+ * @param start
2678
+ * @param size
2679
+ * @param query
2680
+ * @param freeText
2681
+ * @param sort
2682
+ * @param skipCache
2683
+ * @returns
2684
+ */
2685
+ search(start, size, query, freeText, sort = "", skipCache = false) {
2686
+ const queryId = void 0;
2687
+ return tryCatchReThrow(
2688
+ () => this._client.workflowResource.search1(
2689
+ queryId,
2690
+ start,
2691
+ size,
2692
+ sort,
2693
+ freeText,
2694
+ query,
2695
+ skipCache
2696
+ )
2697
+ );
2698
+ }
2699
+ /**
2700
+ * Skips a task of a running workflow.
2701
+ * by providing a skipTaskRequest you can set the input and the output of the skipped tasks
2702
+ * @param workflowInstanceId
2703
+ * @param taskReferenceName
2704
+ * @param skipTaskRequest
2705
+ * @returns
2706
+ */
2707
+ skipTasksFromWorkflow(workflowInstanceId, taskReferenceName, skipTaskRequest) {
2708
+ return tryCatchReThrow(
2709
+ () => this._client.workflowResource.skipTaskFromWorkflow(
2710
+ workflowInstanceId,
2711
+ taskReferenceName,
2712
+ skipTaskRequest
2713
+ )
2714
+ );
2715
+ }
2716
+ /**
2717
+ * Takes an workflowInstanceId, and terminates a running workflow
2718
+ * @param workflowInstanceId
2719
+ * @param reason
2720
+ * @returns
2721
+ */
2722
+ terminate(workflowInstanceId, reason) {
2723
+ return tryCatchReThrow(
2724
+ () => this._client.workflowResource.terminate1(workflowInstanceId, reason)
2725
+ );
2726
+ }
2727
+ /**
2728
+ * Takes a taskId and a workflowInstanceId. Will update the task for the corresponding taskId
2729
+ * @param taskId
2730
+ * @param workflowInstanceId
2731
+ * @param taskStatus
2732
+ * @param taskOutput
2733
+ * @returns
2734
+ */
2735
+ updateTask(taskId, workflowInstanceId, taskStatus, outputData) {
2736
+ const taskUpdates = {
2737
+ status: taskStatus,
2738
+ taskId,
2739
+ workflowInstanceId
2740
+ };
2741
+ return tryCatchReThrow(
2742
+ () => this._client.taskResource.updateTask1({
2743
+ outputData,
2744
+ ...taskUpdates
2745
+ })
2746
+ );
2747
+ }
2748
+ /**
2749
+ * Updates a task by reference Name
2750
+ * @param taskReferenceName
2751
+ * @param workflowInstanceId
2752
+ * @param status
2753
+ * @param taskOutput
2754
+ * @returns
2755
+ */
2756
+ updateTaskByRefName(taskReferenceName, workflowInstanceId, status, taskOutput) {
2757
+ return tryCatchReThrow(
2758
+ () => this._client.taskResource.updateTask(
2759
+ workflowInstanceId,
2760
+ taskReferenceName,
2761
+ status,
2762
+ taskOutput
2763
+ )
2764
+ );
2765
+ }
2766
+ /**
2767
+ *
2768
+ * @param taskId
2769
+ * @returns
2770
+ */
2771
+ getTask(taskId) {
2772
+ return tryCatchReThrow(() => this._client.taskResource.getTask(taskId));
2773
+ }
2774
+ };
2775
+
2776
+ // src/core/human.ts
2777
+ var HumanExecutor = class {
2778
+ constructor(client) {
2779
+ this._client = client;
2780
+ }
2781
+ /**
2782
+ * Takes a set of filter parameters. return matches of human tasks for that set of parameters
2783
+ * @param state
2784
+ * @param assignee
2785
+ * @param assigneeType
2786
+ * @param claimedBy
2787
+ * @param taskName
2788
+ * @param freeText
2789
+ * @param includeInputOutput
2790
+ * @returns
2791
+ */
2792
+ async getTasksByFilter(state, assignee, assigneeType, claimedBy, taskName, freeText, includeInputOutput = false) {
2793
+ const response = await this._client.humanTask.getTasksByFilter(
2794
+ state,
2795
+ assignee,
2796
+ assigneeType,
2797
+ claimedBy,
2798
+ taskName,
2799
+ freeText,
2800
+ includeInputOutput
2801
+ );
2802
+ if (response.results != void 0) {
2803
+ return response.results;
2804
+ }
2805
+ return [];
2806
+ }
2807
+ /**
2808
+ * Returns task for a given task id
2809
+ * @param taskId
2810
+ * @returns
2811
+ */
2812
+ getTaskById(taskId) {
2813
+ return tryCatchReThrow(() => this._client.humanTask.getTask1(taskId));
2814
+ }
2815
+ /**
2816
+ * Assigns taskId to assignee. If the task is already assigned to another user, this will fail.
2817
+ * @param taskId
2818
+ * @param assignee
2819
+ * @returns
2820
+ */
2821
+ async claimTaskAsExternalUser(taskId, assignee) {
2822
+ try {
2823
+ await this._client.humanTask.assignAndClaim(taskId, assignee);
2824
+ } catch (error) {
2825
+ throw errorMapper(error);
2826
+ }
2827
+ }
2828
+ /**
2829
+ * Claim task as conductor user
2830
+ * @param taskId
2831
+ * @returns
2832
+ */
2833
+ async claimTaskAsConductorUser(taskId) {
2834
+ try {
2835
+ await this._client.humanTask.claimTask(taskId);
2836
+ } catch (error) {
2837
+ throw errorMapper(error);
2838
+ }
2839
+ }
2840
+ /**
2841
+ * Claim task as conductor user
2842
+ * @param taskId
2843
+ * @param assignee
2844
+ * @returns
2845
+ */
2846
+ async releaseTask(taskId) {
2847
+ try {
2848
+ await this._client.humanTask.releaseTask(taskId);
2849
+ } catch (error) {
2850
+ throw errorMapper(error);
2851
+ }
2852
+ }
2853
+ /**
2854
+ * Returns a HumanTaskTemplateEntry for a given templateId
2855
+ * @param templateId
2856
+ * @returns
2857
+ */
2858
+ async getTemplateById(templateId) {
2859
+ return tryCatchReThrow(
2860
+ () => this._client.humanTask.getTemplateById(templateId)
2861
+ );
2862
+ }
2863
+ /**
2864
+ * Takes a taskId and a partial body. will update with given body
2865
+ * @param taskId
2866
+ * @param requestBody
2867
+ */
2868
+ async updateTaskOutput(taskId, requestBody) {
2869
+ try {
2870
+ await this._client.humanTask.updateTaskOutput(taskId, requestBody, false);
2871
+ } catch (error) {
2872
+ throw errorMapper(error);
2873
+ }
2874
+ }
2875
+ /**
2876
+ * Takes a taskId and an optional partial body. will complete the task with the given body
2877
+ * @param taskId
2878
+ * @param requestBody
2879
+ */
2880
+ async completeTask(taskId, requestBody = {}) {
2881
+ try {
2882
+ await this._client.humanTask.updateTaskOutput(taskId, requestBody, true);
2883
+ } catch (error) {
2884
+ throw errorMapper(error);
2885
+ }
2886
+ }
2887
+ };
2888
+
2889
+ // src/core/sdk/doWhile.ts
2890
+ var doWhileTask = (taskRefName, terminationCondition, tasks) => ({
2891
+ name: taskRefName,
2892
+ taskReferenceName: taskRefName,
2893
+ loopCondition: terminationCondition,
2894
+ inputParameters: {},
2895
+ type: "DO_WHILE" /* DO_WHILE */,
2896
+ loopOver: tasks
2897
+ });
2898
+ var loopForCondition = (taskRefName, valueKey) => `if ( $.${taskRefName}['iteration'] < $.${valueKey} ) { true; } else { false; }`;
2899
+ var newLoopTask = (taskRefName, iterations, tasks) => ({
2900
+ name: taskRefName,
2901
+ taskReferenceName: taskRefName,
2902
+ loopCondition: loopForCondition(taskRefName, "value"),
2903
+ inputParameters: {
2904
+ value: iterations
2905
+ },
2906
+ type: "DO_WHILE" /* DO_WHILE */,
2907
+ loopOver: tasks
2908
+ });
2909
+
2910
+ // src/core/sdk/dynamicFork.ts
2911
+ var dynamicForkTask = (taskReferenceName, preForkTasks = [], dynamicTasksInput = "") => ({
2912
+ name: taskReferenceName,
2913
+ taskReferenceName,
2914
+ inputParameters: {
2915
+ dynamicTasks: preForkTasks,
2916
+ dynamicTasksInput
2917
+ },
2918
+ type: "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */,
2919
+ dynamicForkTasksParam: "dynamicTasks",
2920
+ dynamicForkTasksInputParamName: "dynamicTasksInput"
2921
+ });
2922
+
2923
+ // src/core/sdk/event.ts
2924
+ var eventTask = (taskReferenceName, eventPrefix, eventSuffix) => ({
2925
+ name: taskReferenceName,
2926
+ taskReferenceName,
2927
+ sink: `${eventPrefix}:${eventSuffix}`,
2928
+ type: "EVENT" /* EVENT */
2929
+ });
2930
+ var sqsEventTask = (taskReferenceName, queueName) => eventTask(taskReferenceName, "sqs", queueName);
2931
+ var conductorEventTask = (taskReferenceName, eventName) => eventTask(taskReferenceName, "conductor", eventName);
2932
+
2933
+ // src/core/generators/common.ts
2934
+ var randomChars = (n = 7) => (Math.random() + 1).toString(36).substring(n);
2935
+ var taskNameGenerator = (taskType) => `${taskType}__task_${randomChars(7)}`;
2936
+ var taskReferenceNameGenerator = (taskName) => `${taskName}_ref`;
2937
+ var nameTaskNameGenerator = (taskType, maybeOverrides = {}) => {
2938
+ const name = maybeOverrides?.name ?? taskNameGenerator(taskType);
2939
+ return {
2940
+ name,
2941
+ taskReferenceName: taskReferenceNameGenerator(name)
2942
+ };
2943
+ };
2944
+ function mapArrValues(arrayTransformer, mapWithValues) {
2945
+ return Object.fromEntries(
2946
+ Object.entries(mapWithValues).map(([key, value]) => [
2947
+ key,
2948
+ arrayTransformer(value)
2949
+ ])
2950
+ );
2951
+ }
2952
+
2953
+ // src/core/generators/SimpleTask.ts
2954
+ var generateSimpleTask = (overrides = {}) => ({
2955
+ ...nameTaskNameGenerator("simple", overrides),
2956
+ inputParameters: {},
2957
+ ...overrides,
2958
+ type: "SIMPLE" /* SIMPLE */
2959
+ });
2960
+
2961
+ // src/core/generators/DoWhileTask.ts
2962
+ var generateDoWhileTask = (overrides = {}, nestedTasksMapper) => ({
2963
+ ...nameTaskNameGenerator("doWhile", overrides),
1720
2964
  inputParameters: {},
1721
2965
  startDelay: 0,
1722
2966
  optional: false,
1723
2967
  asyncComplete: false,
1724
- loopCondition: ""
1725
- }), overrides), {
2968
+ loopCondition: "",
2969
+ ...overrides,
1726
2970
  loopOver: nestedTasksMapper(overrides?.loopOver || []),
1727
2971
  type: "DO_WHILE" /* DO_WHILE */
1728
2972
  });
1729
2973
 
1730
- // src/common/generators/EventTask.ts
1731
- var generateEventTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("event", overrides)), {
2974
+ // src/core/generators/EventTask.ts
2975
+ var generateEventTask = (overrides = {}) => ({
2976
+ ...nameTaskNameGenerator("event", overrides),
1732
2977
  sink: "sqs:sqs_queue_name",
1733
- asyncComplete: false
1734
- }), overrides), {
2978
+ asyncComplete: false,
2979
+ ...overrides,
1735
2980
  type: "EVENT" /* EVENT */
1736
2981
  });
1737
2982
 
1738
- // src/common/generators/ForkJoin.ts
1739
- var generateForkJoinTask = (overrides = {}, nestedMapper) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("forkJoin", overrides)), {
1740
- inputParameters: {}
1741
- }), overrides), {
2983
+ // src/core/generators/ForkJoin.ts
2984
+ var generateForkJoinTask = (overrides = {}, nestedMapper) => ({
2985
+ ...nameTaskNameGenerator("forkJoin", overrides),
2986
+ inputParameters: {},
2987
+ ...overrides,
1742
2988
  type: "FORK_JOIN" /* FORK_JOIN */,
1743
2989
  forkTasks: (overrides?.forkTasks || []).map(nestedMapper)
1744
2990
  });
1745
- var generateJoinTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("join", overrides)), {
2991
+ var generateJoinTask = (overrides = {}) => ({
2992
+ ...nameTaskNameGenerator("join", overrides),
1746
2993
  inputParameters: {},
1747
2994
  joinOn: [],
1748
2995
  optional: false,
1749
- asyncComplete: false
1750
- }), overrides), {
2996
+ asyncComplete: false,
2997
+ ...overrides,
1751
2998
  type: "JOIN" /* JOIN */
1752
2999
  });
1753
3000
 
1754
- // src/common/generators/HttpTask.ts
1755
- var generateHTTPTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("httpTask", overrides)), {
3001
+ // src/core/generators/HttpTask.ts
3002
+ var generateHTTPTask = (overrides = {}) => ({
3003
+ ...nameTaskNameGenerator("httpTask", overrides),
1756
3004
  inputParameters: {
1757
3005
  http_request: {
1758
3006
  uri: "https://jsonplaceholder.typicode.com/posts/${workflow.input.queryid}",
1759
3007
  method: "GET"
1760
3008
  }
1761
- }
1762
- }), overrides), {
3009
+ },
3010
+ ...overrides,
1763
3011
  type: "HTTP" /* HTTP */
1764
3012
  });
1765
3013
 
1766
- // src/common/generators/InlineTask.ts
3014
+ // src/core/generators/InlineTask.ts
1767
3015
  var defaultInputParams = {
1768
3016
  value: "${workflow.input.value}",
1769
3017
  evaluatorType: "graaljs",
@@ -1775,24 +3023,29 @@ var generateEvaluationCode = (inputParametersPartial = {}) => {
1775
3023
  if (inlineExpression !== void 0 && typeof inlineExpression === "function") {
1776
3024
  const resultingFunction = inlineExpression();
1777
3025
  const resultingFunctionAsString = resultingFunction.toString();
1778
- const toReturn = __spreadProps(__spreadValues({
1779
- evaluatorType: "graaljs"
1780
- }, inputParametersPartial || { value: "true" }), {
3026
+ const toReturn = {
3027
+ evaluatorType: "graaljs",
3028
+ ...inputParametersPartial || { value: "true" },
1781
3029
  expression: `(${resultingFunctionAsString})();`
1782
- });
3030
+ };
1783
3031
  return toReturn;
1784
3032
  }
1785
- return __spreadValues(__spreadProps(__spreadValues({}, defaultInputParams), {
1786
- evaluatorType: "graaljs"
1787
- }), inputParametersPartial);
3033
+ return {
3034
+ ...defaultInputParams,
3035
+ evaluatorType: "graaljs",
3036
+ ...inputParametersPartial
3037
+ };
1788
3038
  };
1789
- var generateInlineTask = (override = {}) => __spreadProps(__spreadValues(__spreadValues({}, nameTaskNameGenerator("inline", override)), override), {
3039
+ var generateInlineTask = (override = {}) => ({
3040
+ ...nameTaskNameGenerator("inline", override),
3041
+ ...override,
1790
3042
  inputParameters: generateEvaluationCode(override?.inputParameters || {}),
1791
3043
  type: "INLINE" /* INLINE */
1792
3044
  });
1793
3045
 
1794
- // src/common/generators/JsonJQTransform.ts
1795
- var generateJQTransformTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("jqTransform", overrides)), {
3046
+ // src/core/generators/JsonJQTransform.ts
3047
+ var generateJQTransformTask = (overrides = {}) => ({
3048
+ ...nameTaskNameGenerator("jqTransform", overrides),
1796
3049
  inputParameters: {
1797
3050
  key1: {
1798
3051
  value1: ["a", "b"]
@@ -1801,13 +3054,14 @@ var generateJQTransformTask = (overrides = {}) => __spreadProps(__spreadValues(_
1801
3054
  value2: ["c", "d"]
1802
3055
  },
1803
3056
  queryExpression: "{ key3: (.key1.value1 + .key2.value2) }"
1804
- }
1805
- }), overrides), {
3057
+ },
3058
+ ...overrides,
1806
3059
  type: "JSON_JQ_TRANSFORM" /* JSON_JQ_TRANSFORM */
1807
3060
  });
1808
3061
 
1809
- // src/common/generators/KafkaTask.ts
1810
- var generateKafkaPublishTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("kafka", overrides)), {
3062
+ // src/core/generators/KafkaTask.ts
3063
+ var generateKafkaPublishTask = (overrides = {}) => ({
3064
+ ...nameTaskNameGenerator("kafka", overrides),
1811
3065
  inputParameters: {
1812
3066
  kafka_request: {
1813
3067
  topic: "topic",
@@ -1817,65 +3071,72 @@ var generateKafkaPublishTask = (overrides = {}) => __spreadProps(__spreadValues(
1817
3071
  key: "123",
1818
3072
  keySerializer: "org.apache.kafka.common.serialization.IntegerSerializer"
1819
3073
  }
1820
- }
1821
- }), overrides), {
3074
+ },
3075
+ ...overrides,
1822
3076
  type: "KAFKA_PUBLISH" /* KAFKA_PUBLISH */
1823
3077
  });
1824
3078
 
1825
- // src/common/generators/SubWorkflowTask.ts
1826
- var generateSubWorkflowTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("subWorkflow", overrides)), {
3079
+ // src/core/generators/SubWorkflowTask.ts
3080
+ var generateSubWorkflowTask = (overrides = {}) => ({
3081
+ ...nameTaskNameGenerator("subWorkflow", overrides),
1827
3082
  inputParameters: {},
1828
3083
  subWorkflowParam: {
1829
3084
  name: "name",
1830
3085
  version: 1,
1831
3086
  taskToDomain: {}
1832
- }
1833
- }), overrides), {
3087
+ },
3088
+ ...overrides,
1834
3089
  type: "SUB_WORKFLOW" /* SUB_WORKFLOW */
1835
3090
  });
1836
3091
 
1837
- // src/common/generators/SetVariableTask.ts
1838
- var generateSetVariableTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("setVariable", overrides)), {
1839
- inputParameters: {}
1840
- }), overrides), {
3092
+ // src/core/generators/SetVariableTask.ts
3093
+ var generateSetVariableTask = (overrides = {}) => ({
3094
+ ...nameTaskNameGenerator("setVariable", overrides),
3095
+ inputParameters: {},
3096
+ ...overrides,
1841
3097
  type: "SET_VARIABLE" /* SET_VARIABLE */
1842
3098
  });
1843
3099
 
1844
- // src/common/generators/TerminateTask.ts
1845
- var generateTerminateTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("terminate", overrides)), {
3100
+ // src/core/generators/TerminateTask.ts
3101
+ var generateTerminateTask = (overrides = {}) => ({
3102
+ ...nameTaskNameGenerator("terminate", overrides),
1846
3103
  inputParameters: {
1847
3104
  terminationStatus: "COMPLETED",
1848
3105
  workflowOutput: {}
1849
3106
  },
1850
3107
  startDelay: 0,
1851
- optional: false
1852
- }), overrides), {
3108
+ optional: false,
3109
+ ...overrides,
1853
3110
  type: "TERMINATE" /* TERMINATE */
1854
3111
  });
1855
3112
 
1856
- // src/common/generators/WaitTask.ts
1857
- var generateWaitTask = (overrides = {}) => __spreadProps(__spreadValues(__spreadValues({}, nameTaskNameGenerator("wait", overrides)), overrides), {
3113
+ // src/core/generators/WaitTask.ts
3114
+ var generateWaitTask = (overrides = {}) => ({
3115
+ ...nameTaskNameGenerator("wait", overrides),
3116
+ ...overrides,
1858
3117
  inputParameters: {},
1859
3118
  type: "WAIT" /* WAIT */
1860
3119
  });
1861
3120
 
1862
- // src/common/generators/SwitchTask.ts
3121
+ // src/core/generators/SwitchTask.ts
1863
3122
  var fillSwitchTaskBranches = (task, mapper) => ({
1864
3123
  decisionCases: mapArrValues(mapper, task?.decisionCases || {}),
1865
3124
  defaultCase: mapper(task?.defaultCase || [])
1866
3125
  });
1867
- var generateSwitchTask = (overrides = {}, nestedTasksMapper) => __spreadProps(__spreadValues(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("switch", overrides)), {
3126
+ var generateSwitchTask = (overrides = {}, nestedTasksMapper) => ({
3127
+ ...nameTaskNameGenerator("switch", overrides),
1868
3128
  inputParameters: {
1869
3129
  switchCaseValue: ""
1870
3130
  },
1871
3131
  evaluatorType: "value-param",
1872
- expression: "switchCaseValue"
1873
- }), overrides), fillSwitchTaskBranches(overrides, nestedTasksMapper)), {
3132
+ expression: "switchCaseValue",
3133
+ ...overrides,
3134
+ ...fillSwitchTaskBranches(overrides, nestedTasksMapper),
1874
3135
  type: "SWITCH" /* SWITCH */
1875
3136
  });
1876
3137
 
1877
- // src/common/generators/WorkflowGenerator.ts
1878
- var workflowGenerator = (overrides) => __spreadValues({
3138
+ // src/core/generators/WorkflowGenerator.ts
3139
+ var workflowGenerator = (overrides) => ({
1879
3140
  name: "NewWorkflow_3nxbi",
1880
3141
  description: "Edit or extend this sample workflow. Set the workflow name to get started",
1881
3142
  version: 1,
@@ -1887,11 +3148,13 @@ var workflowGenerator = (overrides) => __spreadValues({
1887
3148
  workflowStatusListenerEnabled: false,
1888
3149
  ownerEmail: "james.stuart@orkes.io",
1889
3150
  timeoutPolicy: "ALERT_ONLY",
1890
- timeoutSeconds: 0
1891
- }, overrides);
3151
+ timeoutSeconds: 0,
3152
+ ...overrides
3153
+ });
1892
3154
 
1893
- // src/common/generators/ForkJoinDynamicTask.ts
1894
- var generateForkJoinDynamic = (overrides = {}) => __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, nameTaskNameGenerator("forkJoinDynamic", overrides)), {
3155
+ // src/core/generators/ForkJoinDynamicTask.ts
3156
+ var generateForkJoinDynamic = (overrides = {}) => ({
3157
+ ...nameTaskNameGenerator("forkJoinDynamic", overrides),
1895
3158
  inputParameters: {
1896
3159
  dynamicTasks: "",
1897
3160
  dynamicTasksInput: ""
@@ -1900,12 +3163,12 @@ var generateForkJoinDynamic = (overrides = {}) => __spreadProps(__spreadValues(_
1900
3163
  dynamicForkTasksInputParamName: "dynamicTasksInput",
1901
3164
  startDelay: 0,
1902
3165
  optional: false,
1903
- asyncComplete: false
1904
- }), overrides), {
3166
+ asyncComplete: false,
3167
+ ...overrides,
1905
3168
  type: "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */
1906
3169
  });
1907
3170
 
1908
- // src/common/generators/generator.ts
3171
+ // src/core/generators/generator.ts
1909
3172
  var filledTaskDef = (task) => {
1910
3173
  const taskType = task.type;
1911
3174
  switch (taskType) {
@@ -1957,59 +3220,15 @@ var maybeAddJoinTask = (currentTask, maybeNextTask) => {
1957
3220
  var generate = (overrides) => {
1958
3221
  const maybeTasks = overrides.tasks || [];
1959
3222
  const generatedTasks = taskGenMapper(maybeTasks);
1960
- return workflowGenerator(__spreadProps(__spreadValues({}, overrides), { tasks: generatedTasks }));
3223
+ return workflowGenerator({ ...overrides, tasks: generatedTasks });
1961
3224
  };
1962
3225
 
1963
- // src/common/generators/index.ts
3226
+ // src/core/generators/index.ts
1964
3227
  var generateSwitchTask2 = (overrides = {}, nestedTasksMapper = taskGenMapper) => generateSwitchTask(overrides, nestedTasksMapper);
1965
3228
  var generateDoWhileTask2 = (overrides = {}, nestedTasksMapper = taskGenMapper) => generateDoWhileTask(overrides, nestedTasksMapper);
1966
3229
  var generateForkJoinTask2 = (overrides = {}, nestedMapper = taskGenMapper) => generateForkJoinTask(overrides, nestedMapper);
1967
3230
 
1968
- // src/common/sdk/doWhile.ts
1969
- var doWhileTask = (taskRefName, terminationCondition, tasks) => ({
1970
- name: taskRefName,
1971
- taskReferenceName: taskRefName,
1972
- loopCondition: terminationCondition,
1973
- inputParameters: {},
1974
- type: "DO_WHILE" /* DO_WHILE */,
1975
- loopOver: tasks
1976
- });
1977
- var loopForCondition = (taskRefName, valueKey) => `if ( $.${taskRefName}['iteration'] < $.${valueKey} ) { true; } else { false; }`;
1978
- var newLoopTask = (taskRefName, iterations, tasks) => ({
1979
- name: taskRefName,
1980
- taskReferenceName: taskRefName,
1981
- loopCondition: loopForCondition(taskRefName, "value"),
1982
- inputParameters: {
1983
- value: iterations
1984
- },
1985
- type: "DO_WHILE" /* DO_WHILE */,
1986
- loopOver: tasks
1987
- });
1988
-
1989
- // src/common/sdk/dynamicFork.ts
1990
- var dynamicForkTask = (taskReferenceName, preForkTasks = [], dynamicTasksInput = "") => ({
1991
- name: taskReferenceName,
1992
- taskReferenceName,
1993
- inputParameters: {
1994
- dynamicTasks: preForkTasks,
1995
- dynamicTasksInput
1996
- },
1997
- type: "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */,
1998
- dynamicForkTasksParam: "dynamicTasks",
1999
- dynamicForkTasksInputParamName: "dynamicTasksInput"
2000
- });
2001
-
2002
- // src/common/sdk/event.ts
2003
- var eventTask = (taskReferenceName, eventPrefix, eventSuffix) => ({
2004
- name: taskReferenceName,
2005
- taskReferenceName,
2006
- sink: `${eventPrefix}:${eventSuffix}`,
2007
- type: "EVENT" /* EVENT */
2008
- });
2009
- var sqsEventTask = (taskReferenceName, queueName) => eventTask(taskReferenceName, "sqs", queueName);
2010
- var conductorEventTask = (taskReferenceName, eventName) => eventTask(taskReferenceName, "conductor", eventName);
2011
-
2012
- // src/common/sdk/forkJoin.ts
3231
+ // src/core/sdk/forkJoin.ts
2013
3232
  var forkTask = (taskReferenceName, forkTasks) => ({
2014
3233
  taskReferenceName,
2015
3234
  name: taskReferenceName,
@@ -2021,7 +3240,7 @@ var forkTaskJoin = (taskReferenceName, forkTasks) => [
2021
3240
  generateJoinTask({ name: `${taskReferenceName}_join` })
2022
3241
  ];
2023
3242
 
2024
- // src/common/sdk/http.ts
3243
+ // src/core/sdk/http.ts
2025
3244
  var httpTask = (taskReferenceName, inputParameters) => ({
2026
3245
  name: taskReferenceName,
2027
3246
  taskReferenceName,
@@ -2031,7 +3250,7 @@ var httpTask = (taskReferenceName, inputParameters) => ({
2031
3250
  type: "HTTP" /* HTTP */
2032
3251
  });
2033
3252
 
2034
- // src/common/sdk/inline.ts
3253
+ // src/core/sdk/inline.ts
2035
3254
  var inlineTask = (taskReferenceName, script, evaluatorType = "javascript") => ({
2036
3255
  name: taskReferenceName,
2037
3256
  taskReferenceName,
@@ -2042,7 +3261,7 @@ var inlineTask = (taskReferenceName, script, evaluatorType = "javascript") => ({
2042
3261
  type: "INLINE" /* INLINE */
2043
3262
  });
2044
3263
 
2045
- // src/common/sdk/join.ts
3264
+ // src/core/sdk/join.ts
2046
3265
  var joinTask = (taskReferenceName, joinOn) => ({
2047
3266
  name: taskReferenceName,
2048
3267
  taskReferenceName,
@@ -2050,7 +3269,7 @@ var joinTask = (taskReferenceName, joinOn) => ({
2050
3269
  type: "JOIN" /* JOIN */
2051
3270
  });
2052
3271
 
2053
- // src/common/sdk/jsonJq.ts
3272
+ // src/core/sdk/jsonJq.ts
2054
3273
  var jsonJqTask = (taskReferenceName, script) => ({
2055
3274
  name: taskReferenceName,
2056
3275
  taskReferenceName,
@@ -2060,7 +3279,7 @@ var jsonJqTask = (taskReferenceName, script) => ({
2060
3279
  }
2061
3280
  });
2062
3281
 
2063
- // src/common/sdk/kafkaPublish.ts
3282
+ // src/core/sdk/kafkaPublish.ts
2064
3283
  var kafkaPublishTask = (taskReferenceName, kafka_request) => ({
2065
3284
  taskReferenceName,
2066
3285
  name: taskReferenceName,
@@ -2070,7 +3289,7 @@ var kafkaPublishTask = (taskReferenceName, kafka_request) => ({
2070
3289
  }
2071
3290
  });
2072
3291
 
2073
- // src/common/sdk/setVariable.ts
3292
+ // src/core/sdk/setVariable.ts
2074
3293
  var setVariableTask = (taskReferenceName, inputParameters) => ({
2075
3294
  name: taskReferenceName,
2076
3295
  taskReferenceName,
@@ -2078,7 +3297,7 @@ var setVariableTask = (taskReferenceName, inputParameters) => ({
2078
3297
  inputParameters
2079
3298
  });
2080
3299
 
2081
- // src/common/sdk/simple.ts
3300
+ // src/core/sdk/simple.ts
2082
3301
  var simpleTask = (taskReferenceName, name, inputParameters) => ({
2083
3302
  name,
2084
3303
  taskReferenceName,
@@ -2086,7 +3305,7 @@ var simpleTask = (taskReferenceName, name, inputParameters) => ({
2086
3305
  type: "SIMPLE" /* SIMPLE */
2087
3306
  });
2088
3307
 
2089
- // src/common/sdk/subWorkflow.ts
3308
+ // src/core/sdk/subWorkflow.ts
2090
3309
  var subWorkflowTask = (taskReferenceName, workflowName, version) => ({
2091
3310
  name: taskReferenceName,
2092
3311
  taskReferenceName,
@@ -2097,7 +3316,7 @@ var subWorkflowTask = (taskReferenceName, workflowName, version) => ({
2097
3316
  type: "SUB_WORKFLOW" /* SUB_WORKFLOW */
2098
3317
  });
2099
3318
 
2100
- // src/common/sdk/switch.ts
3319
+ // src/core/sdk/switch.ts
2101
3320
  var switchTask = (taskReferenceName, expression, decisionCases = {}, defaultCase = []) => ({
2102
3321
  name: taskReferenceName,
2103
3322
  taskReferenceName,
@@ -2111,7 +3330,7 @@ var switchTask = (taskReferenceName, expression, decisionCases = {}, defaultCase
2111
3330
  type: "SWITCH" /* SWITCH */
2112
3331
  });
2113
3332
 
2114
- // src/common/sdk/terminate.ts
3333
+ // src/core/sdk/terminate.ts
2115
3334
  var terminateTask = (taskReferenceName, status, terminationReason) => ({
2116
3335
  name: taskReferenceName,
2117
3336
  taskReferenceName,
@@ -2122,7 +3341,7 @@ var terminateTask = (taskReferenceName, status, terminationReason) => ({
2122
3341
  type: "TERMINATE" /* TERMINATE */
2123
3342
  });
2124
3343
 
2125
- // src/common/sdk/wait.ts
3344
+ // src/core/sdk/wait.ts
2126
3345
  var waitTaskDuration = (taskReferenceName, duration) => ({
2127
3346
  name: taskReferenceName,
2128
3347
  taskReferenceName,
@@ -2140,248 +3359,415 @@ var waitTaskUntil = (taskReferenceName, until) => ({
2140
3359
  type: "WAIT" /* WAIT */
2141
3360
  });
2142
3361
 
2143
- // src/common/sdk/workflow.ts
3362
+ // src/core/sdk/workflow.ts
2144
3363
  var workflow = (name, tasks) => ({
2145
- name,
2146
- version: 1,
2147
- tasks,
2148
- inputParameters: [],
2149
- timeoutSeconds: 0
2150
- });
2151
-
2152
- // src/common/open-api/core/BaseHttpRequest.ts
2153
- var BaseHttpRequest = class {
2154
- constructor(config) {
2155
- this.config = config;
2156
- }
2157
- };
2158
-
2159
- // src/task/TaskManager.ts
2160
- var defaultManagerOptions = {
2161
- workerID: "",
2162
- pollInterval: 1e3,
2163
- domain: void 0,
2164
- concurrency: 1
2165
- };
2166
- function workerId(options) {
2167
- return options.workerID ?? os.hostname();
2168
- }
2169
- var TaskManager = class {
2170
- constructor(client, workers, config = {}) {
2171
- this.tasks = {};
2172
- this.workerManagerWorkerOptions = (worker) => {
2173
- return __spreadProps(__spreadValues({}, this.taskManageOptions), {
2174
- concurrency: worker.concurrency ?? this.taskManageOptions.concurrency,
2175
- domain: worker.domain ?? this.taskManageOptions.domain
2176
- });
2177
- };
2178
- this.updatePollingOptions = (options) => {
2179
- this.workers.forEach((worker) => {
2180
- const newOptions = __spreadValues(__spreadValues({}, this.workerManagerWorkerOptions(worker)), options);
2181
- const runners = this.tasks[worker.taskDefName];
2182
- runners.forEach((runner) => {
2183
- runner.updateOptions(newOptions);
2184
- });
2185
- });
2186
- };
2187
- this.startPolling = () => {
2188
- this.workers.forEach((worker) => {
2189
- this.tasks[worker.taskDefName] = [];
2190
- const options = this.workerManagerWorkerOptions(worker);
2191
- this.logger.debug(`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`);
2192
- const runner = new TaskRunner({
2193
- worker,
2194
- options,
2195
- taskResource: this.client.taskResource,
2196
- logger: this.logger,
2197
- onError: this.errorHandler
2198
- });
2199
- runner.startPolling();
2200
- this.tasks[worker.taskDefName].push(runner);
2201
- });
2202
- };
2203
- this.stopPolling = () => {
2204
- for (const taskType in this.tasks) {
2205
- this.tasks[taskType].forEach((runner) => runner.stopPolling());
2206
- this.tasks[taskType] = [];
2207
- }
2208
- };
2209
- if (!workers) {
2210
- throw new Error("No workers supplied to TaskManager. Please pass an array of workers.");
2211
- }
2212
- this.client = client;
2213
- this.logger = config.logger ?? new DefaultLogger();
2214
- this.errorHandler = config.onError ?? noopErrorHandler;
2215
- this.workers = workers;
2216
- const providedOptions = config.options ?? {};
2217
- this.taskManageOptions = __spreadProps(__spreadValues(__spreadValues({}, defaultManagerOptions), providedOptions), {
2218
- workerID: workerId(providedOptions)
2219
- });
2220
- }
2221
- };
2222
-
2223
- // src/core/types.ts
2224
- var ConductorError = class extends Error {
2225
- constructor(message, innerError) {
2226
- super(message);
2227
- this._trace = innerError;
2228
- const actualProto = new.target.prototype;
2229
- if (Object.setPrototypeOf) {
2230
- Object.setPrototypeOf(this, actualProto);
2231
- } else {
2232
- this.__proto__ = actualProto;
2233
- }
2234
- }
2235
- };
3364
+ name,
3365
+ version: 1,
3366
+ tasks,
3367
+ inputParameters: [],
3368
+ timeoutSeconds: 0
3369
+ });
2236
3370
 
2237
- // src/core/helpers.ts
2238
- var errorMapper = (error) => new ConductorError(error?.body?.message, error);
2239
- var tryCatchReThrow = (fn) => {
3371
+ // src/orkes/request/fetchCatchDns/DnsResolver.ts
3372
+ import { promises } from "dns";
3373
+ var DEFAULT_OPTIONS = {
3374
+ logger: noopLogger,
3375
+ resolver: promises.resolve4
3376
+ };
3377
+ var dnsResolver = async (host, { resolver = promises.resolve4, logger = console } = DEFAULT_OPTIONS) => {
2240
3378
  try {
2241
- return fn();
2242
- } catch (error) {
2243
- throw errorMapper(error);
3379
+ const addresses = await resolver(host);
3380
+ if (addresses.length > 0)
3381
+ return addresses[0];
3382
+ } catch (e) {
3383
+ logger.error("Could not resolve host: " + host + " error: " + e);
2244
3384
  }
3385
+ return void 0;
2245
3386
  };
2246
3387
 
2247
- // src/core/executor.ts
2248
- var RETRY_TIME_IN_MILLISECONDS = 1e4;
2249
- var WorkflowExecutor = class {
2250
- constructor(client) {
2251
- this._client = client;
2252
- }
2253
- registerWorkflow(override, workflow2) {
2254
- return tryCatchReThrow(() => this._client.metadataResource.create(workflow2, override));
3388
+ // src/orkes/request/fetchCatchDns/DnsCache.ts
3389
+ var DnsCacheResolver = class {
3390
+ constructor({ initialCache = /* @__PURE__ */ new Map() } = {}) {
3391
+ this._cache = /* @__PURE__ */ new Map();
3392
+ this._cache = initialCache;
3393
+ }
3394
+ async resolve(host) {
3395
+ const cachedIp = this._cache.get(host);
3396
+ if (cachedIp) {
3397
+ return cachedIp;
3398
+ }
3399
+ const ip = await dnsResolver(host);
3400
+ if (ip != void 0) {
3401
+ this._cache.set(host, ip);
3402
+ }
3403
+ return ip;
2255
3404
  }
2256
- startWorkflow(workflowRequest) {
2257
- return tryCatchReThrow(() => this._client.workflowResource.startWorkflow(workflowRequest));
3405
+ clearCache() {
3406
+ this._cache.clear();
2258
3407
  }
2259
- executeWorkflow(workflowRequest, name, version, requestId, waitUntilTaskRef = "") {
2260
- return tryCatchReThrow(() => this._client.workflowResource.executeWorkflow(workflowRequest, name, version, requestId, waitUntilTaskRef));
3408
+ get cache() {
3409
+ return this._cache;
2261
3410
  }
2262
- startWorkflows(workflowsRequest) {
2263
- return tryCatchReThrow(() => workflowsRequest.map(this.startWorkflow));
3411
+ };
3412
+
3413
+ // src/orkes/request/fetchCatchDns/fetchCatchDns.ts
3414
+ import { isIP } from "net";
3415
+ var isEmpty = (value) => {
3416
+ return value === void 0 || value.trim().length === 0;
3417
+ };
3418
+ var toMaybeUrl = (originalUrl, modifiedParams) => {
3419
+ const urlToHit = new URL(originalUrl.toString());
3420
+ urlToHit.host = isEmpty(modifiedParams.port) ? `${modifiedParams.host}:${modifiedParams.port}` : modifiedParams.host;
3421
+ return urlToHit;
3422
+ };
3423
+ var DEFAULT_OPTIONS2 = {
3424
+ dnsCache: new DnsCacheResolver(),
3425
+ headerFactory: (headers) => new Headers(headers || {})
3426
+ };
3427
+ var fetchCatchDns = (fetch2, {
3428
+ dnsCache = new DnsCacheResolver(),
3429
+ headerFactory = (headers) => new Headers(headers || {})
3430
+ } = DEFAULT_OPTIONS2) => {
3431
+ const fetchWithDns = async (input, options) => {
3432
+ const parsedUrl = new URL(input.toString());
3433
+ const { hostname, host, port } = parsedUrl;
3434
+ if (isIP(hostname)) {
3435
+ return await fetch2(input, options);
3436
+ }
3437
+ const maybeTargetIp = await dnsCache.resolve(hostname);
3438
+ if (isEmpty(maybeTargetIp)) {
3439
+ return await fetch2(input, options);
3440
+ }
3441
+ const target = toMaybeUrl(input, {
3442
+ ...parsedUrl,
3443
+ host: maybeTargetIp,
3444
+ port
3445
+ });
3446
+ const headersOverride = headerFactory(options?.headers ?? {});
3447
+ if (!headersOverride.has("Host")) {
3448
+ headersOverride.set("Host", host);
3449
+ }
3450
+ const optionsOverride = {
3451
+ ...options,
3452
+ headers: headersOverride
3453
+ };
3454
+ const res = await fetch2(target.toString(), optionsOverride);
3455
+ return res;
3456
+ };
3457
+ return fetchWithDns;
3458
+ };
3459
+
3460
+ // src/orkes/request/request.ts
3461
+ var isDefined2 = (value) => {
3462
+ return value !== void 0 && value !== null;
3463
+ };
3464
+ var isString2 = (value) => {
3465
+ return typeof value === "string";
3466
+ };
3467
+ var isStringWithValue2 = (value) => {
3468
+ return isString2(value) && value !== "";
3469
+ };
3470
+ var isBlob2 = (value) => {
3471
+ return typeof value === "object" && typeof value.type === "string" && typeof value.stream === "function" && typeof value.arrayBuffer === "function" && typeof value.constructor === "function" && typeof value.constructor.name === "string" && /^(Blob|File)$/.test(value.constructor.name) && /^(Blob|File)$/.test(value[Symbol.toStringTag]);
3472
+ };
3473
+ var isFormData2 = (value) => {
3474
+ return value instanceof FormData;
3475
+ };
3476
+ var base642 = (str) => {
3477
+ try {
3478
+ return btoa(str);
3479
+ } catch (err) {
3480
+ return Buffer.from(str).toString("base64");
2264
3481
  }
2265
- async getWorkflow(workflowInstanceId, includeTasks, retry = 0) {
2266
- try {
2267
- const workflowStatus = await this._client.workflowResource.getExecutionStatus(workflowInstanceId, includeTasks);
2268
- return workflowStatus;
2269
- } catch (error) {
2270
- if (![500, 404, 403].includes(error.status) || retry === 0) {
2271
- throw errorMapper(error);
3482
+ };
3483
+ var getQueryString2 = (params) => {
3484
+ const qs = [];
3485
+ const append = (key, value) => {
3486
+ qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
3487
+ };
3488
+ const process = (key, value) => {
3489
+ if (isDefined2(value)) {
3490
+ if (Array.isArray(value)) {
3491
+ value.forEach((v) => {
3492
+ process(key, v);
3493
+ });
3494
+ } else if (typeof value === "object") {
3495
+ Object.entries(value).forEach(([k, v]) => {
3496
+ process(`${key}[${k}]`, v);
3497
+ });
3498
+ } else {
3499
+ append(key, value);
2272
3500
  }
2273
3501
  }
2274
- await new Promise((res) => setTimeout(() => res(true), RETRY_TIME_IN_MILLISECONDS));
2275
- return this.getWorkflow(workflowInstanceId, includeTasks, retry - 1);
2276
- }
2277
- getWorkflowStatus(workflowInstanceId, includeOutput, includeVariables) {
2278
- return tryCatchReThrow(() => this._client.workflowResource.getWorkflowStatusSummary(workflowInstanceId, includeOutput, includeVariables));
2279
- }
2280
- pause(workflowInstanceId) {
2281
- return tryCatchReThrow(() => this._client.workflowResource.pauseWorkflow(workflowInstanceId));
2282
- }
2283
- reRun(workflowInstanceId, rerunWorkflowRequest = {}) {
2284
- return tryCatchReThrow(() => this._client.workflowResource.rerun(workflowInstanceId, rerunWorkflowRequest));
2285
- }
2286
- restart(workflowInstanceId, useLatestDefinitions) {
2287
- return tryCatchReThrow(() => this._client.workflowResource.restart1(workflowInstanceId, useLatestDefinitions));
2288
- }
2289
- resume(workflowInstanceId) {
2290
- return tryCatchReThrow(() => this._client.workflowResource.resumeWorkflow(workflowInstanceId));
2291
- }
2292
- retry(workflowInstanceId, resumeSubworkflowTasks) {
2293
- return tryCatchReThrow(() => this._client.workflowResource.retry1(workflowInstanceId, resumeSubworkflowTasks));
2294
- }
2295
- search(start, size, query, freeText, sort = "", skipCache = false) {
2296
- const queryId = void 0;
2297
- return tryCatchReThrow(() => this._client.workflowResource.search1(queryId, start, size, sort, freeText, query, skipCache));
2298
- }
2299
- skipTasksFromWorkflow(workflowInstanceId, taskReferenceName, skipTaskRequest) {
2300
- return tryCatchReThrow(() => this._client.workflowResource.skipTaskFromWorkflow(workflowInstanceId, taskReferenceName, skipTaskRequest));
3502
+ };
3503
+ Object.entries(params).forEach(([key, value]) => {
3504
+ process(key, value);
3505
+ });
3506
+ if (qs.length > 0) {
3507
+ return `?${qs.join("&")}`;
2301
3508
  }
2302
- terminate(workflowInstanceId, reason) {
2303
- return tryCatchReThrow(() => this._client.workflowResource.terminate1(workflowInstanceId, reason));
3509
+ return "";
3510
+ };
3511
+ var getUrl2 = (config, options) => {
3512
+ const encoder = config.ENCODE_PATH || encodeURI;
3513
+ const path = options.url.replace("{api-version}", config.VERSION).replace(/{(.*?)}/g, (substring, group) => {
3514
+ if (options.path?.hasOwnProperty(group)) {
3515
+ return encoder(String(options.path[group]));
3516
+ }
3517
+ return substring;
3518
+ });
3519
+ const url = `${config.BASE}${path}`;
3520
+ if (options.query) {
3521
+ return `${url}${getQueryString2(options.query)}`;
2304
3522
  }
2305
- updateTask(taskId, workflowInstanceId, taskStatus, outputData) {
2306
- const taskUpdates = {
2307
- status: taskStatus,
2308
- taskId,
2309
- workflowInstanceId
3523
+ return url;
3524
+ };
3525
+ var getFormData2 = (options) => {
3526
+ if (options.formData) {
3527
+ const formData = new FormData();
3528
+ const process = (key, value) => {
3529
+ if (isString2(value) || isBlob2(value)) {
3530
+ formData.append(key, value);
3531
+ } else {
3532
+ formData.append(key, JSON.stringify(value));
3533
+ }
2310
3534
  };
2311
- return tryCatchReThrow(() => this._client.taskResource.updateTask1(__spreadValues({
2312
- outputData
2313
- }, taskUpdates)));
2314
- }
2315
- updateTaskByRefName(taskReferenceName, workflowInstanceId, status, taskOutput) {
2316
- return tryCatchReThrow(() => this._client.taskResource.updateTask(workflowInstanceId, taskReferenceName, status, taskOutput));
3535
+ Object.entries(options.formData).filter(([_, value]) => isDefined2(value)).forEach(([key, value]) => {
3536
+ if (Array.isArray(value)) {
3537
+ value.forEach((v) => process(key, v));
3538
+ } else {
3539
+ process(key, value);
3540
+ }
3541
+ });
3542
+ return formData;
2317
3543
  }
2318
- getTask(taskId) {
2319
- return tryCatchReThrow(() => this._client.taskResource.getTask(taskId));
3544
+ return void 0;
3545
+ };
3546
+ var resolve2 = async (options, resolver) => {
3547
+ if (typeof resolver === "function") {
3548
+ return resolver(options);
2320
3549
  }
3550
+ return resolver;
2321
3551
  };
2322
-
2323
- // src/core/human.ts
2324
- var HumanExecutor = class {
2325
- constructor(client) {
2326
- this._client = client;
3552
+ var getHeaders2 = async (config, options) => {
3553
+ const token = await resolve2(options, config.TOKEN);
3554
+ const username = await resolve2(options, config.USERNAME);
3555
+ const password = await resolve2(options, config.PASSWORD);
3556
+ const additionalHeaders = await resolve2(options, config.HEADERS);
3557
+ const headers = Object.entries({
3558
+ Accept: "application/json",
3559
+ ...additionalHeaders,
3560
+ ...options.headers
3561
+ }).filter(([_, value]) => isDefined2(value)).reduce(
3562
+ (headers2, [key, value]) => ({
3563
+ ...headers2,
3564
+ [key]: String(value)
3565
+ }),
3566
+ {}
3567
+ );
3568
+ if (isStringWithValue2(token)) {
3569
+ headers["X-AUTHORIZATION"] = token;
2327
3570
  }
2328
- async getTasksByFilter(state, assignee, assigneeType, claimedBy, taskName, freeText, includeInputOutput = false) {
2329
- const response = await this._client.humanTask.getTasksByFilter(state, assignee, assigneeType, claimedBy, taskName, freeText, includeInputOutput);
2330
- if (response.results != void 0) {
2331
- return response.results;
2332
- }
2333
- return [];
3571
+ if (isStringWithValue2(username) && isStringWithValue2(password)) {
3572
+ const credentials = base642(`${username}:${password}`);
3573
+ headers["Authorization"] = `Basic ${credentials}`;
2334
3574
  }
2335
- getTaskById(taskId) {
2336
- return tryCatchReThrow(() => this._client.humanTask.getTask1(taskId));
3575
+ if (options.body) {
3576
+ if (options.mediaType) {
3577
+ headers["Content-Type"] = options.mediaType;
3578
+ } else if (isBlob2(options.body)) {
3579
+ headers["Content-Type"] = "application/octet-stream";
3580
+ } else if (isString2(options.body)) {
3581
+ headers["Content-Type"] = "text/plain";
3582
+ } else if (!isFormData2(options.body)) {
3583
+ headers["Content-Type"] = "application/json";
3584
+ }
2337
3585
  }
2338
- async claimTaskAsExternalUser(taskId, assignee) {
2339
- try {
2340
- await this._client.humanTask.assignAndClaim(taskId, assignee);
2341
- } catch (error) {
2342
- throw errorMapper(error);
3586
+ return new Headers(headers);
3587
+ };
3588
+ var getRequestBody2 = (options) => {
3589
+ if (options.body) {
3590
+ if (options.mediaType?.includes("/json")) {
3591
+ return JSON.stringify(options.body);
3592
+ } else if (isString2(options.body) || isBlob2(options.body) || isFormData2(options.body)) {
3593
+ return options.body;
3594
+ } else {
3595
+ return JSON.stringify(options.body);
2343
3596
  }
2344
3597
  }
2345
- async claimTaskAsConductorUser(taskId) {
2346
- try {
2347
- await this._client.humanTask.claimTask(taskId);
2348
- } catch (error) {
2349
- throw errorMapper(error);
3598
+ return void 0;
3599
+ };
3600
+ var sendRequest2 = async (options, url, body, formData, headers, onCancel, fetchFn = fetch) => {
3601
+ const controller = new AbortController();
3602
+ const request3 = {
3603
+ headers,
3604
+ method: options.method,
3605
+ body: body ?? formData,
3606
+ signal: controller.signal
3607
+ };
3608
+ onCancel(() => controller.abort());
3609
+ return await fetchFn(url, request3);
3610
+ };
3611
+ var getResponseHeader2 = (response, responseHeader) => {
3612
+ if (responseHeader) {
3613
+ const content = response.headers.get(responseHeader);
3614
+ if (isString2(content)) {
3615
+ return content;
2350
3616
  }
2351
3617
  }
2352
- async releaseTask(taskId) {
3618
+ return void 0;
3619
+ };
3620
+ var getResponseBody2 = async (response) => {
3621
+ if (response.status !== 204) {
2353
3622
  try {
2354
- await this._client.humanTask.releaseTask(taskId);
3623
+ const contentType = response.headers.get("Content-Type");
3624
+ if (contentType) {
3625
+ const isJSON = contentType.toLowerCase().startsWith("application/json");
3626
+ if (isJSON) {
3627
+ return await response.json();
3628
+ } else {
3629
+ return await response.text();
3630
+ }
3631
+ }
2355
3632
  } catch (error) {
2356
- throw errorMapper(error);
3633
+ console.error(error);
2357
3634
  }
2358
3635
  }
2359
- async getTemplateById(templateId) {
2360
- return tryCatchReThrow(() => this._client.humanTask.getTemplateById(templateId));
3636
+ return void 0;
3637
+ };
3638
+ var catchErrorCodes2 = (options, result) => {
3639
+ const errors = {
3640
+ 400: "Bad Request",
3641
+ 401: "Unauthorized",
3642
+ 403: "Forbidden",
3643
+ 404: "Not Found",
3644
+ 500: "Internal Server Error",
3645
+ 502: "Bad Gateway",
3646
+ 503: "Service Unavailable",
3647
+ ...options.errors
3648
+ };
3649
+ const error = errors[result.status];
3650
+ if (error) {
3651
+ throw new ApiError(options, result, error);
2361
3652
  }
2362
- async updateTaskOutput(taskId, requestBody) {
2363
- try {
2364
- await this._client.humanTask.updateTaskOutput(taskId, requestBody, false);
2365
- } catch (error) {
2366
- throw errorMapper(error);
2367
- }
3653
+ if (!result.ok) {
3654
+ throw new ApiError(options, result, "Generic Error");
2368
3655
  }
2369
- async completeTask(taskId, requestBody = {}) {
3656
+ };
3657
+ var request2 = (config, options, fetchFn = fetch) => {
3658
+ return new CancelablePromise(async (resolve3, reject, onCancel) => {
2370
3659
  try {
2371
- await this._client.humanTask.updateTaskOutput(taskId, requestBody, true);
3660
+ const url = getUrl2(config, options);
3661
+ const formData = getFormData2(options);
3662
+ const body = getRequestBody2(options);
3663
+ const headers = await getHeaders2(config, options);
3664
+ if (!onCancel.isCancelled) {
3665
+ const response = await sendRequest2(
3666
+ options,
3667
+ url,
3668
+ body,
3669
+ formData,
3670
+ headers,
3671
+ onCancel,
3672
+ fetchFn
3673
+ );
3674
+ const responseBody = await getResponseBody2(response);
3675
+ const responseHeader = getResponseHeader2(
3676
+ response,
3677
+ options.responseHeader
3678
+ );
3679
+ const result = {
3680
+ url,
3681
+ ok: response.ok,
3682
+ status: response.status,
3683
+ statusText: response.statusText,
3684
+ body: responseHeader ?? responseBody
3685
+ };
3686
+ catchErrorCodes2(options, result);
3687
+ resolve3(result.body);
3688
+ }
2372
3689
  } catch (error) {
2373
- throw errorMapper(error);
3690
+ reject(error);
3691
+ }
3692
+ });
3693
+ };
3694
+
3695
+ // src/orkes/BaseOrkesConductorClient.ts
3696
+ var defaultRequestHandler2 = (request3, config, options) => request3(config, options);
3697
+ var REFRESH_TOKEN_IN_MILLISECONDS = 30 * 60 * 1e3;
3698
+ var AuthConductorClient = class extends ConductorClient {
3699
+ constructor(config, requestHandler = defaultRequestHandler2) {
3700
+ super(config, requestHandler);
3701
+ }
3702
+ /**
3703
+ * Stops the interval that refreshes the token
3704
+ */
3705
+ stop() {
3706
+ if (this.intervalId != null) {
3707
+ clearInterval(this.intervalId);
2374
3708
  }
2375
3709
  }
2376
3710
  };
3711
+ var baseOrkesConductorClient = (fetchFn, baseRequestHandler = defaultRequestHandler2) => {
3712
+ const requestTokenForKeySecret = (keyId, keySecret, tokenUrl) => fetchFn(tokenUrl, {
3713
+ headers: {
3714
+ "Content-Type": "application/json",
3715
+ Accept: "application/json"
3716
+ },
3717
+ body: JSON.stringify({ keyId, keySecret }),
3718
+ method: "POST"
3719
+ });
3720
+ return async (config, requestHandler = baseRequestHandler) => {
3721
+ if (config?.keySecret != null && config?.keyId != null) {
3722
+ const {
3723
+ serverUrl,
3724
+ keyId,
3725
+ keySecret,
3726
+ refreshTokenInterval = REFRESH_TOKEN_IN_MILLISECONDS
3727
+ } = config;
3728
+ const tokenUrl = `${serverUrl}/token`;
3729
+ const res = await requestTokenForKeySecret(keyId, keySecret, tokenUrl);
3730
+ const { token } = await res.json();
3731
+ const conductorClientInstance = new AuthConductorClient(
3732
+ { ...config, TOKEN: token },
3733
+ requestHandler
3734
+ );
3735
+ if (token != null && refreshTokenInterval > 0) {
3736
+ const intervalId = setInterval(async () => {
3737
+ const res2 = await requestTokenForKeySecret(
3738
+ keyId,
3739
+ keySecret,
3740
+ tokenUrl
3741
+ );
3742
+ const { token: token2 } = await res2.json();
3743
+ conductorClientInstance.token = token2;
3744
+ }, refreshTokenInterval);
3745
+ conductorClientInstance.intervalId = intervalId;
3746
+ }
3747
+ return conductorClientInstance;
3748
+ } else {
3749
+ return new ConductorClient(config, requestHandler);
3750
+ }
3751
+ };
3752
+ };
3753
+
3754
+ // src/orkes/OrkesConductorClient.ts
3755
+ var fetchCache = fetchCatchDns(fetch);
3756
+ var defaultRequestHandler3 = (__request, config, options) => request2(config, options, fetchCache);
3757
+ var orkesConductorClient = baseOrkesConductorClient(
3758
+ fetchCache,
3759
+ defaultRequestHandler3
3760
+ );
2377
3761
  export {
2378
3762
  ApiError,
3763
+ AuthConductorClient,
2379
3764
  BaseHttpRequest,
2380
3765
  CancelError,
2381
3766
  CancelablePromise,
2382
3767
  ConductorClient,
2383
3768
  ConductorError,
2384
3769
  DefaultLogger,
3770
+ DnsCacheResolver,
2385
3771
  EventResourceService,
2386
3772
  HealthCheckResourceService,
2387
3773
  HumanExecutor,
@@ -2395,10 +3781,12 @@ export {
2395
3781
  WorkflowBulkResourceService,
2396
3782
  WorkflowExecutor,
2397
3783
  WorkflowResourceService,
3784
+ baseOrkesConductorClient,
2398
3785
  conductorEventTask,
2399
3786
  doWhileTask,
2400
3787
  dynamicForkTask,
2401
3788
  eventTask,
3789
+ fetchCatchDns,
2402
3790
  forkTask,
2403
3791
  forkTaskJoin,
2404
3792
  generate,
@@ -2423,7 +3811,9 @@ export {
2423
3811
  kafkaPublishTask,
2424
3812
  newLoopTask,
2425
3813
  noopErrorHandler,
3814
+ noopLogger,
2426
3815
  orkesConductorClient,
3816
+ request2 as request,
2427
3817
  setVariableTask,
2428
3818
  simpleTask,
2429
3819
  sqsEventTask,
@@ -2431,6 +3821,7 @@ export {
2431
3821
  switchTask,
2432
3822
  taskGenMapper,
2433
3823
  terminateTask,
3824
+ toMaybeUrl,
2434
3825
  waitTaskDuration,
2435
3826
  waitTaskUntil,
2436
3827
  workflow