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