@io-orkes/conductor-javascript 1.1.0 → 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 -2162
- package/dist/index.js +2093 -728
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2061 -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,211 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
|
|
21
|
-
// src/task/helpers.ts
|
|
22
|
-
var noopLogger = {
|
|
23
|
-
debug: (...args) => {
|
|
24
|
-
},
|
|
25
|
-
info: (...args) => {
|
|
26
|
-
},
|
|
27
|
-
error: (...args) => {
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
// src/task/Poller.ts
|
|
32
|
-
var Poller = class {
|
|
33
|
-
constructor(pollFunction, pollerOptions, logger) {
|
|
34
|
-
this.concurrentCalls = [];
|
|
35
|
-
this.pollFunction = async () => {
|
|
36
|
-
};
|
|
37
|
-
this.isPolling = false;
|
|
38
|
-
this.options = {
|
|
39
|
-
pollInterval: 1e3,
|
|
40
|
-
concurrency: 1
|
|
41
|
-
};
|
|
42
|
-
this.logger = noopLogger;
|
|
43
|
-
this.startPolling = () => {
|
|
44
|
-
if (this.isPolling) {
|
|
45
|
-
throw new Error("Runner is already started");
|
|
46
|
-
}
|
|
47
|
-
return this.poll();
|
|
48
|
-
};
|
|
49
|
-
this.stopPolling = () => {
|
|
50
|
-
this.isPolling = false;
|
|
51
|
-
this.concurrentCalls.forEach((call) => call.stop());
|
|
52
|
-
};
|
|
53
|
-
this.poll = async () => {
|
|
54
|
-
if (!this.isPolling) {
|
|
55
|
-
this.isPolling = true;
|
|
56
|
-
for (let i = 0; i < this.options.concurrency; i++) {
|
|
57
|
-
this.concurrentCalls.push(this.singlePoll());
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
this.singlePoll = () => {
|
|
62
|
-
let poll = this.isPolling;
|
|
63
|
-
let timeout;
|
|
64
|
-
const pollingCall = async () => {
|
|
65
|
-
while (poll) {
|
|
66
|
-
await this.pollFunction();
|
|
67
|
-
await new Promise((r) => timeout = setTimeout(() => r(true), this.options.pollInterval));
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
return {
|
|
71
|
-
promise: pollingCall(),
|
|
72
|
-
stop: () => {
|
|
73
|
-
clearTimeout(timeout);
|
|
74
|
-
poll = false;
|
|
75
|
-
this.logger.debug("stopping single poll call");
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
this.pollFunction = pollFunction;
|
|
80
|
-
this.options = __spreadValues(__spreadValues({}, this.options), pollerOptions);
|
|
81
|
-
this.logger = logger || noopLogger;
|
|
82
|
-
}
|
|
83
|
-
updateConcurrency(concurrency) {
|
|
84
|
-
if (concurrency > 0 && concurrency !== this.options.concurrency) {
|
|
85
|
-
if (concurrency < this.options.concurrency) {
|
|
86
|
-
const result = this.concurrentCalls.splice(0, this.options.concurrency - concurrency);
|
|
87
|
-
result.forEach((call) => {
|
|
88
|
-
call.stop();
|
|
89
|
-
this.logger.debug("stopping some spawned calls");
|
|
90
|
-
});
|
|
91
|
-
} else {
|
|
92
|
-
for (let i = 0; i < concurrency - this.options.concurrency; i++) {
|
|
93
|
-
this.concurrentCalls.push(this.singlePoll());
|
|
94
|
-
this.logger.debug("spawning additional poll calls");
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
this.options.concurrency = concurrency;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
updateOptions(options) {
|
|
101
|
-
const newOptions = __spreadValues(__spreadValues({}, this.options), options);
|
|
102
|
-
this.updateConcurrency(newOptions.concurrency);
|
|
103
|
-
this.options = newOptions;
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
// src/task/TaskRunner.ts
|
|
108
|
-
var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
|
|
109
|
-
var MAX_RETRIES = 3;
|
|
110
|
-
var noopErrorHandler = (__error) => {
|
|
111
|
-
};
|
|
112
|
-
var TaskRunner = class {
|
|
113
|
-
constructor({
|
|
114
|
-
worker,
|
|
115
|
-
taskResource,
|
|
116
|
-
options,
|
|
117
|
-
logger = noopLogger,
|
|
118
|
-
onError: errorHandler = noopErrorHandler
|
|
119
|
-
}) {
|
|
120
|
-
this.startPolling = () => {
|
|
121
|
-
this.poller.startPolling();
|
|
122
|
-
};
|
|
123
|
-
this.stopPolling = () => {
|
|
124
|
-
this.poller.stopPolling();
|
|
125
|
-
};
|
|
126
|
-
this.pollAndExecute = async () => {
|
|
127
|
-
try {
|
|
128
|
-
const { workerID } = this.options;
|
|
129
|
-
const task = await this.taskResource.poll(this.worker.taskDefName, workerID, this.worker.domain ?? this.options.domain);
|
|
130
|
-
if (task && task.taskId) {
|
|
131
|
-
await this.executeTask(task);
|
|
132
|
-
} else {
|
|
133
|
-
this.logger.debug(`No tasks for ${this.worker.taskDefName}`);
|
|
134
|
-
}
|
|
135
|
-
} catch (unknownError) {
|
|
136
|
-
this.handleUnknownError(unknownError);
|
|
137
|
-
this.errorHandler(unknownError);
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
this.updateTaskWithRetry = async (task, taskResult) => {
|
|
141
|
-
let retryCount = 0;
|
|
142
|
-
while (retryCount < MAX_RETRIES) {
|
|
143
|
-
try {
|
|
144
|
-
await this.taskResource.updateTask1(taskResult);
|
|
145
|
-
return;
|
|
146
|
-
} catch (error) {
|
|
147
|
-
this.errorHandler(error, task);
|
|
148
|
-
this.logger.error(`Error updating task ${taskResult.taskId} on retry ${retryCount}`, error);
|
|
149
|
-
retryCount++;
|
|
150
|
-
await new Promise((r) => setTimeout(() => r(true), retryCount * 10));
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
this.logger.error(`Unable to update task ${taskResult.taskId} after ${retryCount} retries`);
|
|
154
|
-
};
|
|
155
|
-
this.executeTask = async (task) => {
|
|
156
|
-
try {
|
|
157
|
-
const result = await this.worker.execute(task);
|
|
158
|
-
await this.updateTaskWithRetry(task, __spreadProps(__spreadValues({}, result), {
|
|
159
|
-
workflowInstanceId: task.workflowInstanceId,
|
|
160
|
-
taskId: task.taskId
|
|
161
|
-
}));
|
|
162
|
-
this.logger.debug(`Finished polling for task ${task.taskId}`);
|
|
163
|
-
} catch (error) {
|
|
164
|
-
await this.updateTaskWithRetry(task, {
|
|
165
|
-
workflowInstanceId: task.workflowInstanceId,
|
|
166
|
-
taskId: task.taskId,
|
|
167
|
-
reasonForIncompletion: error?.message ?? DEFAULT_ERROR_MESSAGE,
|
|
168
|
-
status: "FAILED",
|
|
169
|
-
outputData: {}
|
|
170
|
-
});
|
|
171
|
-
this.errorHandler(error, task);
|
|
172
|
-
this.logger.error(`Error executing ${task.taskId}`, error);
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
this.handleUnknownError = (unknownError) => {
|
|
176
|
-
let message = "";
|
|
177
|
-
let stack = "";
|
|
178
|
-
if (unknownError.stack) {
|
|
179
|
-
stack = unknownError.stack;
|
|
180
|
-
}
|
|
181
|
-
if (unknownError.message) {
|
|
182
|
-
message = unknownError.message;
|
|
183
|
-
}
|
|
184
|
-
this.logger.error(`Error for ${this.worker.taskDefName}: error: ${message}, stack: ${stack}`);
|
|
185
|
-
};
|
|
186
|
-
this.taskResource = taskResource;
|
|
187
|
-
this.logger = logger;
|
|
188
|
-
this.worker = worker;
|
|
189
|
-
this.options = options;
|
|
190
|
-
this.errorHandler = errorHandler;
|
|
191
|
-
this.poller = new Poller(this.pollAndExecute, { concurrency: options.concurrency, pollInterval: options.pollInterval }, this.logger);
|
|
192
|
-
}
|
|
193
|
-
updateOptions(options) {
|
|
194
|
-
const newOptions = __spreadValues(__spreadValues({}, this.options), options);
|
|
195
|
-
this.poller.updateOptions({
|
|
196
|
-
concurrency: newOptions.concurrency,
|
|
197
|
-
pollInterval: newOptions.pollInterval
|
|
198
|
-
});
|
|
199
|
-
this.options = newOptions;
|
|
200
|
-
}
|
|
201
|
-
get getOptions() {
|
|
202
|
-
return this.options;
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
// src/task/TaskManager.ts
|
|
207
|
-
import os from "os";
|
|
208
|
-
|
|
209
1
|
// src/common/ConductorLogger.ts
|
|
210
2
|
var LOG_LEVELS = {
|
|
211
3
|
DEBUG: 10,
|
|
@@ -245,106 +37,75 @@ var DefaultLogger = class {
|
|
|
245
37
|
}
|
|
246
38
|
}
|
|
247
39
|
};
|
|
40
|
+
var noopLogger = {
|
|
41
|
+
//eslint-disable-next-line
|
|
42
|
+
debug: (...args) => {
|
|
43
|
+
},
|
|
44
|
+
//eslint-disable-next-line
|
|
45
|
+
info: (...args) => {
|
|
46
|
+
},
|
|
47
|
+
//eslint-disable-next-line
|
|
48
|
+
error: (...args) => {
|
|
49
|
+
}
|
|
50
|
+
};
|
|
248
51
|
|
|
249
|
-
// src/common/
|
|
250
|
-
var
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
52
|
+
// src/common/types.ts
|
|
53
|
+
var TaskType = /* @__PURE__ */ ((TaskType2) => {
|
|
54
|
+
TaskType2["START"] = "START";
|
|
55
|
+
TaskType2["SIMPLE"] = "SIMPLE";
|
|
56
|
+
TaskType2["DYNAMIC"] = "DYNAMIC";
|
|
57
|
+
TaskType2["FORK_JOIN"] = "FORK_JOIN";
|
|
58
|
+
TaskType2["FORK_JOIN_DYNAMIC"] = "FORK_JOIN_DYNAMIC";
|
|
59
|
+
TaskType2["DECISION"] = "DECISION";
|
|
60
|
+
TaskType2["SWITCH"] = "SWITCH";
|
|
61
|
+
TaskType2["JOIN"] = "JOIN";
|
|
62
|
+
TaskType2["DO_WHILE"] = "DO_WHILE";
|
|
63
|
+
TaskType2["SUB_WORKFLOW"] = "SUB_WORKFLOW";
|
|
64
|
+
TaskType2["EVENT"] = "EVENT";
|
|
65
|
+
TaskType2["WAIT"] = "WAIT";
|
|
66
|
+
TaskType2["USER_DEFINED"] = "USER_DEFINED";
|
|
67
|
+
TaskType2["HTTP"] = "HTTP";
|
|
68
|
+
TaskType2["LAMBDA"] = "LAMBDA";
|
|
69
|
+
TaskType2["INLINE"] = "INLINE";
|
|
70
|
+
TaskType2["EXCLUSIVE_JOIN"] = "EXCLUSIVE_JOIN";
|
|
71
|
+
TaskType2["TERMINAL"] = "TERMINAL";
|
|
72
|
+
TaskType2["TERMINATE"] = "TERMINATE";
|
|
73
|
+
TaskType2["KAFKA_PUBLISH"] = "KAFKA_PUBLISH";
|
|
74
|
+
TaskType2["JSON_JQ_TRANSFORM"] = "JSON_JQ_TRANSFORM";
|
|
75
|
+
TaskType2["SET_VARIABLE"] = "SET_VARIABLE";
|
|
76
|
+
return TaskType2;
|
|
77
|
+
})(TaskType || {});
|
|
78
|
+
|
|
79
|
+
// src/common/open-api/services/EventResourceService.ts
|
|
80
|
+
var EventResourceService = class {
|
|
81
|
+
constructor(httpRequest) {
|
|
82
|
+
this.httpRequest = httpRequest;
|
|
254
83
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
this.
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
}
|
|
272
|
-
this._isResolved = true;
|
|
273
|
-
this._resolve?.(value);
|
|
274
|
-
};
|
|
275
|
-
const onReject = (reason) => {
|
|
276
|
-
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
277
|
-
return;
|
|
278
|
-
}
|
|
279
|
-
this._isRejected = true;
|
|
280
|
-
this._reject?.(reason);
|
|
281
|
-
};
|
|
282
|
-
const onCancel = (cancelHandler) => {
|
|
283
|
-
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
this._cancelHandlers.push(cancelHandler);
|
|
287
|
-
};
|
|
288
|
-
Object.defineProperty(onCancel, "isResolved", {
|
|
289
|
-
get: () => this._isResolved
|
|
290
|
-
});
|
|
291
|
-
Object.defineProperty(onCancel, "isRejected", {
|
|
292
|
-
get: () => this._isRejected
|
|
293
|
-
});
|
|
294
|
-
Object.defineProperty(onCancel, "isCancelled", {
|
|
295
|
-
get: () => this._isCancelled
|
|
296
|
-
});
|
|
297
|
-
return executor(onResolve, onReject, onCancel);
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
then(onFulfilled, onRejected) {
|
|
301
|
-
return this._promise.then(onFulfilled, onRejected);
|
|
302
|
-
}
|
|
303
|
-
catch(onRejected) {
|
|
304
|
-
return this._promise.catch(onRejected);
|
|
305
|
-
}
|
|
306
|
-
finally(onFinally) {
|
|
307
|
-
return this._promise.finally(onFinally);
|
|
308
|
-
}
|
|
309
|
-
cancel() {
|
|
310
|
-
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
this._isCancelled = true;
|
|
314
|
-
if (this._cancelHandlers.length) {
|
|
315
|
-
try {
|
|
316
|
-
for (const cancelHandler of this._cancelHandlers) {
|
|
317
|
-
cancelHandler();
|
|
318
|
-
}
|
|
319
|
-
} catch (error) {
|
|
320
|
-
console.warn("Cancellation threw an error", error);
|
|
321
|
-
return;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
this._cancelHandlers.length = 0;
|
|
325
|
-
this._reject?.(new CancelError("Request aborted"));
|
|
326
|
-
}
|
|
327
|
-
get isCancelled() {
|
|
328
|
-
return this._isCancelled;
|
|
329
|
-
}
|
|
330
|
-
};
|
|
331
|
-
Symbol.toStringTag;
|
|
332
|
-
|
|
333
|
-
// src/common/open-api/services/EventResourceService.ts
|
|
334
|
-
var EventResourceService = class {
|
|
335
|
-
constructor(httpRequest) {
|
|
336
|
-
this.httpRequest = httpRequest;
|
|
337
|
-
}
|
|
338
|
-
getQueueConfig(queueType, queueName) {
|
|
339
|
-
return this.httpRequest.request({
|
|
340
|
-
method: "GET",
|
|
341
|
-
url: "/event/queue/config/{queueType}/{queueName}",
|
|
342
|
-
path: {
|
|
343
|
-
"queueType": queueType,
|
|
344
|
-
"queueName": queueName
|
|
345
|
-
}
|
|
346
|
-
});
|
|
84
|
+
/**
|
|
85
|
+
* Get queue config by name
|
|
86
|
+
* @param queueType
|
|
87
|
+
* @param queueName
|
|
88
|
+
* @returns any OK
|
|
89
|
+
* @throws ApiError
|
|
90
|
+
*/
|
|
91
|
+
getQueueConfig(queueType, queueName) {
|
|
92
|
+
return this.httpRequest.request({
|
|
93
|
+
method: "GET",
|
|
94
|
+
url: "/event/queue/config/{queueType}/{queueName}",
|
|
95
|
+
path: {
|
|
96
|
+
"queueType": queueType,
|
|
97
|
+
"queueName": queueName
|
|
98
|
+
}
|
|
99
|
+
});
|
|
347
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Create or update queue config by name
|
|
103
|
+
* @param queueType
|
|
104
|
+
* @param queueName
|
|
105
|
+
* @param requestBody
|
|
106
|
+
* @returns any OK
|
|
107
|
+
* @throws ApiError
|
|
108
|
+
*/
|
|
348
109
|
putQueueConfig(queueType, queueName, requestBody) {
|
|
349
110
|
return this.httpRequest.request({
|
|
350
111
|
method: "PUT",
|
|
@@ -357,6 +118,13 @@ var EventResourceService = class {
|
|
|
357
118
|
mediaType: "application/json"
|
|
358
119
|
});
|
|
359
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Delete queue config by name
|
|
123
|
+
* @param queueType
|
|
124
|
+
* @param queueName
|
|
125
|
+
* @returns any OK
|
|
126
|
+
* @throws ApiError
|
|
127
|
+
*/
|
|
360
128
|
deleteQueueConfig(queueType, queueName) {
|
|
361
129
|
return this.httpRequest.request({
|
|
362
130
|
method: "DELETE",
|
|
@@ -367,12 +135,23 @@ var EventResourceService = class {
|
|
|
367
135
|
}
|
|
368
136
|
});
|
|
369
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Get all the event handlers
|
|
140
|
+
* @returns EventHandler OK
|
|
141
|
+
* @throws ApiError
|
|
142
|
+
*/
|
|
370
143
|
getEventHandlers() {
|
|
371
144
|
return this.httpRequest.request({
|
|
372
145
|
method: "GET",
|
|
373
146
|
url: "/event"
|
|
374
147
|
});
|
|
375
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Update an existing event handler.
|
|
151
|
+
* @param requestBody
|
|
152
|
+
* @returns any OK
|
|
153
|
+
* @throws ApiError
|
|
154
|
+
*/
|
|
376
155
|
updateEventHandler(requestBody) {
|
|
377
156
|
return this.httpRequest.request({
|
|
378
157
|
method: "PUT",
|
|
@@ -381,6 +160,12 @@ var EventResourceService = class {
|
|
|
381
160
|
mediaType: "application/json"
|
|
382
161
|
});
|
|
383
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Add a new event handler.
|
|
165
|
+
* @param requestBody
|
|
166
|
+
* @returns any OK
|
|
167
|
+
* @throws ApiError
|
|
168
|
+
*/
|
|
384
169
|
addEventHandler(requestBody) {
|
|
385
170
|
return this.httpRequest.request({
|
|
386
171
|
method: "POST",
|
|
@@ -389,12 +174,23 @@ var EventResourceService = class {
|
|
|
389
174
|
mediaType: "application/json"
|
|
390
175
|
});
|
|
391
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Get all queue configs
|
|
179
|
+
* @returns any OK
|
|
180
|
+
* @throws ApiError
|
|
181
|
+
*/
|
|
392
182
|
getQueueNames() {
|
|
393
183
|
return this.httpRequest.request({
|
|
394
184
|
method: "GET",
|
|
395
185
|
url: "/event/queue/config"
|
|
396
186
|
});
|
|
397
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Remove an event handler
|
|
190
|
+
* @param name
|
|
191
|
+
* @returns any OK
|
|
192
|
+
* @throws ApiError
|
|
193
|
+
*/
|
|
398
194
|
removeEventHandlerStatus(name) {
|
|
399
195
|
return this.httpRequest.request({
|
|
400
196
|
method: "DELETE",
|
|
@@ -404,6 +200,13 @@ var EventResourceService = class {
|
|
|
404
200
|
}
|
|
405
201
|
});
|
|
406
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Get event handlers for a given event
|
|
205
|
+
* @param event
|
|
206
|
+
* @param activeOnly
|
|
207
|
+
* @returns EventHandler OK
|
|
208
|
+
* @throws ApiError
|
|
209
|
+
*/
|
|
407
210
|
getEventHandlersForEvent(event, activeOnly = true) {
|
|
408
211
|
return this.httpRequest.request({
|
|
409
212
|
method: "GET",
|
|
@@ -423,6 +226,10 @@ var HealthCheckResourceService = class {
|
|
|
423
226
|
constructor(httpRequest) {
|
|
424
227
|
this.httpRequest = httpRequest;
|
|
425
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* @returns any OK
|
|
231
|
+
* @throws ApiError
|
|
232
|
+
*/
|
|
426
233
|
doCheck() {
|
|
427
234
|
return this.httpRequest.request({
|
|
428
235
|
method: "GET",
|
|
@@ -436,6 +243,13 @@ var MetadataResourceService = class {
|
|
|
436
243
|
constructor(httpRequest) {
|
|
437
244
|
this.httpRequest = httpRequest;
|
|
438
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Gets the task definition
|
|
248
|
+
* @param tasktype
|
|
249
|
+
* @param metadata
|
|
250
|
+
* @returns TaskDef OK
|
|
251
|
+
* @throws ApiError
|
|
252
|
+
*/
|
|
439
253
|
getTaskDef(tasktype, metadata = false) {
|
|
440
254
|
return this.httpRequest.request({
|
|
441
255
|
method: "GET",
|
|
@@ -448,6 +262,12 @@ var MetadataResourceService = class {
|
|
|
448
262
|
}
|
|
449
263
|
});
|
|
450
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Remove a task definition
|
|
267
|
+
* @param tasktype
|
|
268
|
+
* @returns any OK
|
|
269
|
+
* @throws ApiError
|
|
270
|
+
*/
|
|
451
271
|
unregisterTaskDef(tasktype) {
|
|
452
272
|
return this.httpRequest.request({
|
|
453
273
|
method: "DELETE",
|
|
@@ -457,6 +277,15 @@ var MetadataResourceService = class {
|
|
|
457
277
|
}
|
|
458
278
|
});
|
|
459
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Retrieves all workflow definition along with blueprint
|
|
282
|
+
* @param access
|
|
283
|
+
* @param metadata
|
|
284
|
+
* @param tagKey
|
|
285
|
+
* @param tagValue
|
|
286
|
+
* @returns WorkflowDef OK
|
|
287
|
+
* @throws ApiError
|
|
288
|
+
*/
|
|
460
289
|
getAllWorkflows(access = "READ", metadata = false, tagKey, tagValue) {
|
|
461
290
|
return this.httpRequest.request({
|
|
462
291
|
method: "GET",
|
|
@@ -469,6 +298,13 @@ var MetadataResourceService = class {
|
|
|
469
298
|
}
|
|
470
299
|
});
|
|
471
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Create or update workflow definition(s)
|
|
303
|
+
* @param requestBody
|
|
304
|
+
* @param overwrite
|
|
305
|
+
* @returns any OK
|
|
306
|
+
* @throws ApiError
|
|
307
|
+
*/
|
|
472
308
|
update(requestBody, overwrite = true) {
|
|
473
309
|
return this.httpRequest.request({
|
|
474
310
|
method: "PUT",
|
|
@@ -480,6 +316,13 @@ var MetadataResourceService = class {
|
|
|
480
316
|
mediaType: "application/json"
|
|
481
317
|
});
|
|
482
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* Create a new workflow definition
|
|
321
|
+
* @param requestBody
|
|
322
|
+
* @param overwrite
|
|
323
|
+
* @returns any OK
|
|
324
|
+
* @throws ApiError
|
|
325
|
+
*/
|
|
483
326
|
create(requestBody, overwrite = false) {
|
|
484
327
|
return this.httpRequest.request({
|
|
485
328
|
method: "POST",
|
|
@@ -491,6 +334,15 @@ var MetadataResourceService = class {
|
|
|
491
334
|
mediaType: "application/json"
|
|
492
335
|
});
|
|
493
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
* Gets all task definition
|
|
339
|
+
* @param access
|
|
340
|
+
* @param metadata
|
|
341
|
+
* @param tagKey
|
|
342
|
+
* @param tagValue
|
|
343
|
+
* @returns TaskDef OK
|
|
344
|
+
* @throws ApiError
|
|
345
|
+
*/
|
|
494
346
|
getTaskDefs(access = "READ", metadata = false, tagKey, tagValue) {
|
|
495
347
|
return this.httpRequest.request({
|
|
496
348
|
method: "GET",
|
|
@@ -503,6 +355,12 @@ var MetadataResourceService = class {
|
|
|
503
355
|
}
|
|
504
356
|
});
|
|
505
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Update an existing task
|
|
360
|
+
* @param requestBody
|
|
361
|
+
* @returns any OK
|
|
362
|
+
* @throws ApiError
|
|
363
|
+
*/
|
|
506
364
|
updateTaskDef(requestBody) {
|
|
507
365
|
return this.httpRequest.request({
|
|
508
366
|
method: "PUT",
|
|
@@ -511,6 +369,12 @@ var MetadataResourceService = class {
|
|
|
511
369
|
mediaType: "application/json"
|
|
512
370
|
});
|
|
513
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Create or update task definition(s)
|
|
374
|
+
* @param requestBody
|
|
375
|
+
* @returns any OK
|
|
376
|
+
* @throws ApiError
|
|
377
|
+
*/
|
|
514
378
|
registerTaskDef(requestBody) {
|
|
515
379
|
return this.httpRequest.request({
|
|
516
380
|
method: "POST",
|
|
@@ -519,6 +383,13 @@ var MetadataResourceService = class {
|
|
|
519
383
|
mediaType: "application/json"
|
|
520
384
|
});
|
|
521
385
|
}
|
|
386
|
+
/**
|
|
387
|
+
* Removes workflow definition. It does not remove workflows associated with the definition.
|
|
388
|
+
* @param name
|
|
389
|
+
* @param version
|
|
390
|
+
* @returns any OK
|
|
391
|
+
* @throws ApiError
|
|
392
|
+
*/
|
|
522
393
|
unregisterWorkflowDef(name, version) {
|
|
523
394
|
return this.httpRequest.request({
|
|
524
395
|
method: "DELETE",
|
|
@@ -529,6 +400,14 @@ var MetadataResourceService = class {
|
|
|
529
400
|
}
|
|
530
401
|
});
|
|
531
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* Retrieves workflow definition along with blueprint
|
|
405
|
+
* @param name
|
|
406
|
+
* @param version
|
|
407
|
+
* @param metadata
|
|
408
|
+
* @returns WorkflowDef OK
|
|
409
|
+
* @throws ApiError
|
|
410
|
+
*/
|
|
532
411
|
get(name, version, metadata = false) {
|
|
533
412
|
return this.httpRequest.request({
|
|
534
413
|
method: "GET",
|
|
@@ -549,6 +428,12 @@ var SchedulerResourceService = class {
|
|
|
549
428
|
constructor(httpRequest) {
|
|
550
429
|
this.httpRequest = httpRequest;
|
|
551
430
|
}
|
|
431
|
+
/**
|
|
432
|
+
* Get an existing workflow schedule by name
|
|
433
|
+
* @param name
|
|
434
|
+
* @returns any OK
|
|
435
|
+
* @throws ApiError
|
|
436
|
+
*/
|
|
552
437
|
getSchedule(name) {
|
|
553
438
|
return this.httpRequest.request({
|
|
554
439
|
method: "GET",
|
|
@@ -558,6 +443,12 @@ var SchedulerResourceService = class {
|
|
|
558
443
|
}
|
|
559
444
|
});
|
|
560
445
|
}
|
|
446
|
+
/**
|
|
447
|
+
* Deletes an existing workflow schedule by name
|
|
448
|
+
* @param name
|
|
449
|
+
* @returns any OK
|
|
450
|
+
* @throws ApiError
|
|
451
|
+
*/
|
|
561
452
|
deleteSchedule(name) {
|
|
562
453
|
return this.httpRequest.request({
|
|
563
454
|
method: "DELETE",
|
|
@@ -567,6 +458,15 @@ var SchedulerResourceService = class {
|
|
|
567
458
|
}
|
|
568
459
|
});
|
|
569
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Get list of the next x (default 3, max 5) execution times for a scheduler
|
|
463
|
+
* @param cronExpression
|
|
464
|
+
* @param scheduleStartTime
|
|
465
|
+
* @param scheduleEndTime
|
|
466
|
+
* @param limit
|
|
467
|
+
* @returns number OK
|
|
468
|
+
* @throws ApiError
|
|
469
|
+
*/
|
|
570
470
|
getNextFewSchedules(cronExpression, scheduleStartTime, scheduleEndTime, limit = 3) {
|
|
571
471
|
return this.httpRequest.request({
|
|
572
472
|
method: "GET",
|
|
@@ -579,6 +479,12 @@ var SchedulerResourceService = class {
|
|
|
579
479
|
}
|
|
580
480
|
});
|
|
581
481
|
}
|
|
482
|
+
/**
|
|
483
|
+
* Pauses an existing schedule by name
|
|
484
|
+
* @param name
|
|
485
|
+
* @returns any OK
|
|
486
|
+
* @throws ApiError
|
|
487
|
+
*/
|
|
582
488
|
pauseSchedule(name) {
|
|
583
489
|
return this.httpRequest.request({
|
|
584
490
|
method: "GET",
|
|
@@ -588,12 +494,23 @@ var SchedulerResourceService = class {
|
|
|
588
494
|
}
|
|
589
495
|
});
|
|
590
496
|
}
|
|
497
|
+
/**
|
|
498
|
+
* Pause all scheduling in a single conductor server instance (for debugging only)
|
|
499
|
+
* @returns any OK
|
|
500
|
+
* @throws ApiError
|
|
501
|
+
*/
|
|
591
502
|
pauseAllSchedules() {
|
|
592
503
|
return this.httpRequest.request({
|
|
593
504
|
method: "GET",
|
|
594
505
|
url: "/scheduler/admin/pause"
|
|
595
506
|
});
|
|
596
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
* Resume a paused schedule by name
|
|
510
|
+
* @param name
|
|
511
|
+
* @returns any OK
|
|
512
|
+
* @throws ApiError
|
|
513
|
+
*/
|
|
597
514
|
resumeSchedule(name) {
|
|
598
515
|
return this.httpRequest.request({
|
|
599
516
|
method: "GET",
|
|
@@ -603,18 +520,34 @@ var SchedulerResourceService = class {
|
|
|
603
520
|
}
|
|
604
521
|
});
|
|
605
522
|
}
|
|
523
|
+
/**
|
|
524
|
+
* Requeue all execution records
|
|
525
|
+
* @returns any OK
|
|
526
|
+
* @throws ApiError
|
|
527
|
+
*/
|
|
606
528
|
requeueAllExecutionRecords() {
|
|
607
529
|
return this.httpRequest.request({
|
|
608
530
|
method: "GET",
|
|
609
531
|
url: "/scheduler/admin/requeue"
|
|
610
532
|
});
|
|
611
533
|
}
|
|
534
|
+
/**
|
|
535
|
+
* Resume all scheduling
|
|
536
|
+
* @returns any OK
|
|
537
|
+
* @throws ApiError
|
|
538
|
+
*/
|
|
612
539
|
resumeAllSchedules() {
|
|
613
540
|
return this.httpRequest.request({
|
|
614
541
|
method: "GET",
|
|
615
542
|
url: "/scheduler/admin/resume"
|
|
616
543
|
});
|
|
617
544
|
}
|
|
545
|
+
/**
|
|
546
|
+
* Get all existing workflow schedules and optionally filter by workflow name
|
|
547
|
+
* @param workflowName
|
|
548
|
+
* @returns WorkflowSchedule OK
|
|
549
|
+
* @throws ApiError
|
|
550
|
+
*/
|
|
618
551
|
getAllSchedules(workflowName) {
|
|
619
552
|
return this.httpRequest.request({
|
|
620
553
|
method: "GET",
|
|
@@ -624,6 +557,12 @@ var SchedulerResourceService = class {
|
|
|
624
557
|
}
|
|
625
558
|
});
|
|
626
559
|
}
|
|
560
|
+
/**
|
|
561
|
+
* Create or update a schedule for a specified workflow with a corresponding start workflow request
|
|
562
|
+
* @param requestBody
|
|
563
|
+
* @returns any OK
|
|
564
|
+
* @throws ApiError
|
|
565
|
+
*/
|
|
627
566
|
saveSchedule(requestBody) {
|
|
628
567
|
return this.httpRequest.request({
|
|
629
568
|
method: "POST",
|
|
@@ -632,12 +571,28 @@ var SchedulerResourceService = class {
|
|
|
632
571
|
mediaType: "application/json"
|
|
633
572
|
});
|
|
634
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* Test timeout - do not use in production
|
|
576
|
+
* @returns any OK
|
|
577
|
+
* @throws ApiError
|
|
578
|
+
*/
|
|
635
579
|
testTimeout() {
|
|
636
580
|
return this.httpRequest.request({
|
|
637
581
|
method: "GET",
|
|
638
582
|
url: "/scheduler/test/timeout"
|
|
639
583
|
});
|
|
640
584
|
}
|
|
585
|
+
/**
|
|
586
|
+
* Search for workflows based on payload and other parameters
|
|
587
|
+
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
|
|
588
|
+
* @param start
|
|
589
|
+
* @param size
|
|
590
|
+
* @param sort
|
|
591
|
+
* @param freeText
|
|
592
|
+
* @param query
|
|
593
|
+
* @returns SearchResultWorkflowScheduleExecutionModel OK
|
|
594
|
+
* @throws ApiError
|
|
595
|
+
*/
|
|
641
596
|
searchV21(start, size = 100, sort, freeText = "*", query) {
|
|
642
597
|
return this.httpRequest.request({
|
|
643
598
|
method: "GET",
|
|
@@ -658,6 +613,14 @@ var TaskResourceService = class {
|
|
|
658
613
|
constructor(httpRequest) {
|
|
659
614
|
this.httpRequest = httpRequest;
|
|
660
615
|
}
|
|
616
|
+
/**
|
|
617
|
+
* Poll for a task of a certain type
|
|
618
|
+
* @param tasktype
|
|
619
|
+
* @param workerid
|
|
620
|
+
* @param domain
|
|
621
|
+
* @returns Task OK
|
|
622
|
+
* @throws ApiError
|
|
623
|
+
*/
|
|
661
624
|
poll(tasktype, workerid, domain) {
|
|
662
625
|
return this.httpRequest.request({
|
|
663
626
|
method: "GET",
|
|
@@ -671,12 +634,26 @@ var TaskResourceService = class {
|
|
|
671
634
|
}
|
|
672
635
|
});
|
|
673
636
|
}
|
|
637
|
+
/**
|
|
638
|
+
* Get the details about each queue
|
|
639
|
+
* @returns number OK
|
|
640
|
+
* @throws ApiError
|
|
641
|
+
*/
|
|
674
642
|
allVerbose() {
|
|
675
643
|
return this.httpRequest.request({
|
|
676
644
|
method: "GET",
|
|
677
645
|
url: "/tasks/queue/all/verbose"
|
|
678
646
|
});
|
|
679
647
|
}
|
|
648
|
+
/**
|
|
649
|
+
* Update a task By Ref Name
|
|
650
|
+
* @param workflowId
|
|
651
|
+
* @param taskRefName
|
|
652
|
+
* @param status
|
|
653
|
+
* @param requestBody
|
|
654
|
+
* @returns string OK
|
|
655
|
+
* @throws ApiError
|
|
656
|
+
*/
|
|
680
657
|
updateTask(workflowId, taskRefName, status, requestBody) {
|
|
681
658
|
return this.httpRequest.request({
|
|
682
659
|
method: "POST",
|
|
@@ -690,6 +667,12 @@ var TaskResourceService = class {
|
|
|
690
667
|
mediaType: "application/json"
|
|
691
668
|
});
|
|
692
669
|
}
|
|
670
|
+
/**
|
|
671
|
+
* Get task by Id
|
|
672
|
+
* @param taskId
|
|
673
|
+
* @returns Task OK
|
|
674
|
+
* @throws ApiError
|
|
675
|
+
*/
|
|
693
676
|
getTask(taskId) {
|
|
694
677
|
return this.httpRequest.request({
|
|
695
678
|
method: "GET",
|
|
@@ -699,12 +682,23 @@ var TaskResourceService = class {
|
|
|
699
682
|
}
|
|
700
683
|
});
|
|
701
684
|
}
|
|
685
|
+
/**
|
|
686
|
+
* Get the details about each queue
|
|
687
|
+
* @returns number OK
|
|
688
|
+
* @throws ApiError
|
|
689
|
+
*/
|
|
702
690
|
all() {
|
|
703
691
|
return this.httpRequest.request({
|
|
704
692
|
method: "GET",
|
|
705
693
|
url: "/tasks/queue/all"
|
|
706
694
|
});
|
|
707
695
|
}
|
|
696
|
+
/**
|
|
697
|
+
* Requeue pending tasks
|
|
698
|
+
* @param taskType
|
|
699
|
+
* @returns string OK
|
|
700
|
+
* @throws ApiError
|
|
701
|
+
*/
|
|
708
702
|
requeuePendingTask(taskType) {
|
|
709
703
|
return this.httpRequest.request({
|
|
710
704
|
method: "POST",
|
|
@@ -714,6 +708,17 @@ var TaskResourceService = class {
|
|
|
714
708
|
}
|
|
715
709
|
});
|
|
716
710
|
}
|
|
711
|
+
/**
|
|
712
|
+
* Search for tasks based in payload and other parameters
|
|
713
|
+
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
714
|
+
* @param start
|
|
715
|
+
* @param size
|
|
716
|
+
* @param sort
|
|
717
|
+
* @param freeText
|
|
718
|
+
* @param query
|
|
719
|
+
* @returns SearchResultTaskSummary OK
|
|
720
|
+
* @throws ApiError
|
|
721
|
+
*/
|
|
717
722
|
search(start, size = 100, sort, freeText = "*", query) {
|
|
718
723
|
return this.httpRequest.request({
|
|
719
724
|
method: "GET",
|
|
@@ -727,6 +732,17 @@ var TaskResourceService = class {
|
|
|
727
732
|
}
|
|
728
733
|
});
|
|
729
734
|
}
|
|
735
|
+
/**
|
|
736
|
+
* Search for tasks based in payload and other parameters
|
|
737
|
+
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
738
|
+
* @param start
|
|
739
|
+
* @param size
|
|
740
|
+
* @param sort
|
|
741
|
+
* @param freeText
|
|
742
|
+
* @param query
|
|
743
|
+
* @returns SearchResultTask OK
|
|
744
|
+
* @throws ApiError
|
|
745
|
+
*/
|
|
730
746
|
searchV22(start, size = 100, sort, freeText = "*", query) {
|
|
731
747
|
return this.httpRequest.request({
|
|
732
748
|
method: "GET",
|
|
@@ -740,6 +756,12 @@ var TaskResourceService = class {
|
|
|
740
756
|
}
|
|
741
757
|
});
|
|
742
758
|
}
|
|
759
|
+
/**
|
|
760
|
+
* Get the last poll data for a given task type
|
|
761
|
+
* @param taskType
|
|
762
|
+
* @returns PollData OK
|
|
763
|
+
* @throws ApiError
|
|
764
|
+
*/
|
|
743
765
|
getPollData(taskType) {
|
|
744
766
|
return this.httpRequest.request({
|
|
745
767
|
method: "GET",
|
|
@@ -749,6 +771,12 @@ var TaskResourceService = class {
|
|
|
749
771
|
}
|
|
750
772
|
});
|
|
751
773
|
}
|
|
774
|
+
/**
|
|
775
|
+
* Get Task Execution Logs
|
|
776
|
+
* @param taskId
|
|
777
|
+
* @returns TaskExecLog OK
|
|
778
|
+
* @throws ApiError
|
|
779
|
+
*/
|
|
752
780
|
getTaskLogs(taskId) {
|
|
753
781
|
return this.httpRequest.request({
|
|
754
782
|
method: "GET",
|
|
@@ -758,6 +786,13 @@ var TaskResourceService = class {
|
|
|
758
786
|
}
|
|
759
787
|
});
|
|
760
788
|
}
|
|
789
|
+
/**
|
|
790
|
+
* Log Task Execution Details
|
|
791
|
+
* @param taskId
|
|
792
|
+
* @param requestBody
|
|
793
|
+
* @returns any OK
|
|
794
|
+
* @throws ApiError
|
|
795
|
+
*/
|
|
761
796
|
log(taskId, requestBody) {
|
|
762
797
|
return this.httpRequest.request({
|
|
763
798
|
method: "POST",
|
|
@@ -769,12 +804,27 @@ var TaskResourceService = class {
|
|
|
769
804
|
mediaType: "application/json"
|
|
770
805
|
});
|
|
771
806
|
}
|
|
807
|
+
/**
|
|
808
|
+
* Get the last poll data for all task types
|
|
809
|
+
* @returns PollData OK
|
|
810
|
+
* @throws ApiError
|
|
811
|
+
*/
|
|
772
812
|
getAllPollData() {
|
|
773
813
|
return this.httpRequest.request({
|
|
774
814
|
method: "GET",
|
|
775
815
|
url: "/tasks/queue/polldata/all"
|
|
776
816
|
});
|
|
777
817
|
}
|
|
818
|
+
/**
|
|
819
|
+
* Batch poll for a task of a certain type
|
|
820
|
+
* @param tasktype
|
|
821
|
+
* @param workerid
|
|
822
|
+
* @param domain
|
|
823
|
+
* @param count
|
|
824
|
+
* @param timeout
|
|
825
|
+
* @returns Task OK
|
|
826
|
+
* @throws ApiError
|
|
827
|
+
*/
|
|
778
828
|
batchPoll(tasktype, workerid, domain, count = 1, timeout = 100) {
|
|
779
829
|
return this.httpRequest.request({
|
|
780
830
|
method: "GET",
|
|
@@ -790,6 +840,12 @@ var TaskResourceService = class {
|
|
|
790
840
|
}
|
|
791
841
|
});
|
|
792
842
|
}
|
|
843
|
+
/**
|
|
844
|
+
* Update a task
|
|
845
|
+
* @param requestBody
|
|
846
|
+
* @returns string OK
|
|
847
|
+
* @throws ApiError
|
|
848
|
+
*/
|
|
793
849
|
updateTask1(requestBody) {
|
|
794
850
|
return this.httpRequest.request({
|
|
795
851
|
method: "POST",
|
|
@@ -798,6 +854,12 @@ var TaskResourceService = class {
|
|
|
798
854
|
mediaType: "application/json"
|
|
799
855
|
});
|
|
800
856
|
}
|
|
857
|
+
/**
|
|
858
|
+
* Get Task type queue sizes
|
|
859
|
+
* @param taskType
|
|
860
|
+
* @returns number OK
|
|
861
|
+
* @throws ApiError
|
|
862
|
+
*/
|
|
801
863
|
size1(taskType) {
|
|
802
864
|
return this.httpRequest.request({
|
|
803
865
|
method: "GET",
|
|
@@ -807,6 +869,14 @@ var TaskResourceService = class {
|
|
|
807
869
|
}
|
|
808
870
|
});
|
|
809
871
|
}
|
|
872
|
+
/**
|
|
873
|
+
* Get the external uri where the task payload is to be stored
|
|
874
|
+
* @param path
|
|
875
|
+
* @param operation
|
|
876
|
+
* @param payloadType
|
|
877
|
+
* @returns ExternalStorageLocation OK
|
|
878
|
+
* @throws ApiError
|
|
879
|
+
*/
|
|
810
880
|
getExternalStorageLocation1(path, operation, payloadType) {
|
|
811
881
|
return this.httpRequest.request({
|
|
812
882
|
method: "GET",
|
|
@@ -825,6 +895,12 @@ var TokenResourceService = class {
|
|
|
825
895
|
constructor(httpRequest) {
|
|
826
896
|
this.httpRequest = httpRequest;
|
|
827
897
|
}
|
|
898
|
+
/**
|
|
899
|
+
* Generate JWT with the given access key
|
|
900
|
+
* @param requestBody
|
|
901
|
+
* @returns Response OK
|
|
902
|
+
* @throws ApiError
|
|
903
|
+
*/
|
|
828
904
|
generateToken(requestBody) {
|
|
829
905
|
return this.httpRequest.request({
|
|
830
906
|
method: "POST",
|
|
@@ -833,6 +909,11 @@ var TokenResourceService = class {
|
|
|
833
909
|
mediaType: "application/json"
|
|
834
910
|
});
|
|
835
911
|
}
|
|
912
|
+
/**
|
|
913
|
+
* Get the user info from the token
|
|
914
|
+
* @returns any OK
|
|
915
|
+
* @throws ApiError
|
|
916
|
+
*/
|
|
836
917
|
getUserInfo() {
|
|
837
918
|
return this.httpRequest.request({
|
|
838
919
|
method: "GET",
|
|
@@ -846,6 +927,12 @@ var WorkflowBulkResourceService = class {
|
|
|
846
927
|
constructor(httpRequest) {
|
|
847
928
|
this.httpRequest = httpRequest;
|
|
848
929
|
}
|
|
930
|
+
/**
|
|
931
|
+
* Retry the last failed task for each workflow from the list
|
|
932
|
+
* @param requestBody
|
|
933
|
+
* @returns BulkResponse OK
|
|
934
|
+
* @throws ApiError
|
|
935
|
+
*/
|
|
849
936
|
retry(requestBody) {
|
|
850
937
|
return this.httpRequest.request({
|
|
851
938
|
method: "POST",
|
|
@@ -854,6 +941,13 @@ var WorkflowBulkResourceService = class {
|
|
|
854
941
|
mediaType: "application/json"
|
|
855
942
|
});
|
|
856
943
|
}
|
|
944
|
+
/**
|
|
945
|
+
* Restart the list of completed workflow
|
|
946
|
+
* @param requestBody
|
|
947
|
+
* @param useLatestDefinitions
|
|
948
|
+
* @returns BulkResponse OK
|
|
949
|
+
* @throws ApiError
|
|
950
|
+
*/
|
|
857
951
|
restart(requestBody, useLatestDefinitions = false) {
|
|
858
952
|
return this.httpRequest.request({
|
|
859
953
|
method: "POST",
|
|
@@ -865,6 +959,13 @@ var WorkflowBulkResourceService = class {
|
|
|
865
959
|
mediaType: "application/json"
|
|
866
960
|
});
|
|
867
961
|
}
|
|
962
|
+
/**
|
|
963
|
+
* Terminate workflows execution
|
|
964
|
+
* @param requestBody
|
|
965
|
+
* @param reason
|
|
966
|
+
* @returns BulkResponse OK
|
|
967
|
+
* @throws ApiError
|
|
968
|
+
*/
|
|
868
969
|
terminate(requestBody, reason) {
|
|
869
970
|
return this.httpRequest.request({
|
|
870
971
|
method: "POST",
|
|
@@ -876,6 +977,12 @@ var WorkflowBulkResourceService = class {
|
|
|
876
977
|
mediaType: "application/json"
|
|
877
978
|
});
|
|
878
979
|
}
|
|
980
|
+
/**
|
|
981
|
+
* Resume the list of workflows
|
|
982
|
+
* @param requestBody
|
|
983
|
+
* @returns BulkResponse OK
|
|
984
|
+
* @throws ApiError
|
|
985
|
+
*/
|
|
879
986
|
resumeWorkflow(requestBody) {
|
|
880
987
|
return this.httpRequest.request({
|
|
881
988
|
method: "PUT",
|
|
@@ -884,6 +991,12 @@ var WorkflowBulkResourceService = class {
|
|
|
884
991
|
mediaType: "application/json"
|
|
885
992
|
});
|
|
886
993
|
}
|
|
994
|
+
/**
|
|
995
|
+
* Pause the list of workflows
|
|
996
|
+
* @param requestBody
|
|
997
|
+
* @returns BulkResponse OK
|
|
998
|
+
* @throws ApiError
|
|
999
|
+
*/
|
|
887
1000
|
pauseWorkflow1(requestBody) {
|
|
888
1001
|
return this.httpRequest.request({
|
|
889
1002
|
method: "PUT",
|
|
@@ -899,6 +1012,15 @@ var WorkflowResourceService = class {
|
|
|
899
1012
|
constructor(httpRequest) {
|
|
900
1013
|
this.httpRequest = httpRequest;
|
|
901
1014
|
}
|
|
1015
|
+
/**
|
|
1016
|
+
* Retrieve all the running workflows
|
|
1017
|
+
* @param name
|
|
1018
|
+
* @param version
|
|
1019
|
+
* @param startTime
|
|
1020
|
+
* @param endTime
|
|
1021
|
+
* @returns string OK
|
|
1022
|
+
* @throws ApiError
|
|
1023
|
+
*/
|
|
902
1024
|
getRunningWorkflow(name, version = 1, startTime, endTime) {
|
|
903
1025
|
return this.httpRequest.request({
|
|
904
1026
|
method: "GET",
|
|
@@ -913,6 +1035,17 @@ var WorkflowResourceService = class {
|
|
|
913
1035
|
}
|
|
914
1036
|
});
|
|
915
1037
|
}
|
|
1038
|
+
/**
|
|
1039
|
+
* Execute a workflow synchronously
|
|
1040
|
+
* @param body
|
|
1041
|
+
* @param name
|
|
1042
|
+
* @param version
|
|
1043
|
+
* @param requestId
|
|
1044
|
+
* @param waitUntilTaskRef
|
|
1045
|
+
* @param callback
|
|
1046
|
+
* @returns workflowRun
|
|
1047
|
+
* @throws ApiError
|
|
1048
|
+
*/
|
|
916
1049
|
executeWorkflow(body, name, version, requestId, waitUntilTaskRef) {
|
|
917
1050
|
return this.httpRequest.request({
|
|
918
1051
|
method: "POST",
|
|
@@ -929,6 +1062,12 @@ var WorkflowResourceService = class {
|
|
|
929
1062
|
mediaType: "application/json"
|
|
930
1063
|
});
|
|
931
1064
|
}
|
|
1065
|
+
/**
|
|
1066
|
+
* Start a new workflow with StartWorkflowRequest, which allows task to be executed in a domain
|
|
1067
|
+
* @param requestBody
|
|
1068
|
+
* @returns string OK
|
|
1069
|
+
* @throws ApiError
|
|
1070
|
+
*/
|
|
932
1071
|
startWorkflow(requestBody) {
|
|
933
1072
|
return this.httpRequest.request({
|
|
934
1073
|
method: "POST",
|
|
@@ -937,6 +1076,12 @@ var WorkflowResourceService = class {
|
|
|
937
1076
|
mediaType: "application/json"
|
|
938
1077
|
});
|
|
939
1078
|
}
|
|
1079
|
+
/**
|
|
1080
|
+
* Starts the decision task for a workflow
|
|
1081
|
+
* @param workflowId
|
|
1082
|
+
* @returns any OK
|
|
1083
|
+
* @throws ApiError
|
|
1084
|
+
*/
|
|
940
1085
|
decide(workflowId) {
|
|
941
1086
|
return this.httpRequest.request({
|
|
942
1087
|
method: "PUT",
|
|
@@ -946,6 +1091,13 @@ var WorkflowResourceService = class {
|
|
|
946
1091
|
}
|
|
947
1092
|
});
|
|
948
1093
|
}
|
|
1094
|
+
/**
|
|
1095
|
+
* Reruns the workflow from a specific task
|
|
1096
|
+
* @param workflowId
|
|
1097
|
+
* @param requestBody
|
|
1098
|
+
* @returns string OK
|
|
1099
|
+
* @throws ApiError
|
|
1100
|
+
*/
|
|
949
1101
|
rerun(workflowId, requestBody) {
|
|
950
1102
|
return this.httpRequest.request({
|
|
951
1103
|
method: "POST",
|
|
@@ -957,6 +1109,17 @@ var WorkflowResourceService = class {
|
|
|
957
1109
|
mediaType: "application/json"
|
|
958
1110
|
});
|
|
959
1111
|
}
|
|
1112
|
+
/**
|
|
1113
|
+
* Search for workflows based on payload and other parameters
|
|
1114
|
+
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
|
|
1115
|
+
* @param start
|
|
1116
|
+
* @param size
|
|
1117
|
+
* @param sort
|
|
1118
|
+
* @param freeText
|
|
1119
|
+
* @param query
|
|
1120
|
+
* @returns SearchResultWorkflow OK
|
|
1121
|
+
* @throws ApiError
|
|
1122
|
+
*/
|
|
960
1123
|
searchV21(start, size = 100, sort, freeText = "*", query) {
|
|
961
1124
|
return this.httpRequest.request({
|
|
962
1125
|
method: "GET",
|
|
@@ -970,6 +1133,12 @@ var WorkflowResourceService = class {
|
|
|
970
1133
|
}
|
|
971
1134
|
});
|
|
972
1135
|
}
|
|
1136
|
+
/**
|
|
1137
|
+
* Pauses the workflow
|
|
1138
|
+
* @param workflowId
|
|
1139
|
+
* @returns any OK
|
|
1140
|
+
* @throws ApiError
|
|
1141
|
+
*/
|
|
973
1142
|
pauseWorkflow(workflowId) {
|
|
974
1143
|
return this.httpRequest.request({
|
|
975
1144
|
method: "PUT",
|
|
@@ -979,6 +1148,14 @@ var WorkflowResourceService = class {
|
|
|
979
1148
|
}
|
|
980
1149
|
});
|
|
981
1150
|
}
|
|
1151
|
+
/**
|
|
1152
|
+
* Skips a given task from a current running workflow
|
|
1153
|
+
* @param workflowId
|
|
1154
|
+
* @param taskReferenceName
|
|
1155
|
+
* @param requestBody
|
|
1156
|
+
* @returns any OK
|
|
1157
|
+
* @throws ApiError
|
|
1158
|
+
*/
|
|
982
1159
|
skipTaskFromWorkflow(workflowId, taskReferenceName, requestBody) {
|
|
983
1160
|
return this.httpRequest.request({
|
|
984
1161
|
method: "PUT",
|
|
@@ -991,6 +1168,15 @@ var WorkflowResourceService = class {
|
|
|
991
1168
|
mediaType: "application/json"
|
|
992
1169
|
});
|
|
993
1170
|
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Lists workflows for the given correlation id list
|
|
1173
|
+
* @param name
|
|
1174
|
+
* @param requestBody
|
|
1175
|
+
* @param includeClosed
|
|
1176
|
+
* @param includeTasks
|
|
1177
|
+
* @returns Workflow OK
|
|
1178
|
+
* @throws ApiError
|
|
1179
|
+
*/
|
|
994
1180
|
getWorkflows(name, requestBody, includeClosed = false, includeTasks = false) {
|
|
995
1181
|
return this.httpRequest.request({
|
|
996
1182
|
method: "POST",
|
|
@@ -1006,6 +1192,14 @@ var WorkflowResourceService = class {
|
|
|
1006
1192
|
mediaType: "application/json"
|
|
1007
1193
|
});
|
|
1008
1194
|
}
|
|
1195
|
+
/**
|
|
1196
|
+
* Gets the workflow by workflow id
|
|
1197
|
+
* @param workflowId
|
|
1198
|
+
* @param includeOutput
|
|
1199
|
+
* @param includeVariables
|
|
1200
|
+
* @returns WorkflowStatus OK
|
|
1201
|
+
* @throws ApiError
|
|
1202
|
+
*/
|
|
1009
1203
|
getWorkflowStatusSummary(workflowId, includeOutput = false, includeVariables = false) {
|
|
1010
1204
|
return this.httpRequest.request({
|
|
1011
1205
|
method: "GET",
|
|
@@ -1019,6 +1213,15 @@ var WorkflowResourceService = class {
|
|
|
1019
1213
|
}
|
|
1020
1214
|
});
|
|
1021
1215
|
}
|
|
1216
|
+
/**
|
|
1217
|
+
* Lists workflows for the given correlation id
|
|
1218
|
+
* @param name
|
|
1219
|
+
* @param correlationId
|
|
1220
|
+
* @param includeClosed
|
|
1221
|
+
* @param includeTasks
|
|
1222
|
+
* @returns Workflow OK
|
|
1223
|
+
* @throws ApiError
|
|
1224
|
+
*/
|
|
1022
1225
|
getWorkflows1(name, correlationId, includeClosed = false, includeTasks = false) {
|
|
1023
1226
|
return this.httpRequest.request({
|
|
1024
1227
|
method: "GET",
|
|
@@ -1033,6 +1236,13 @@ var WorkflowResourceService = class {
|
|
|
1033
1236
|
}
|
|
1034
1237
|
});
|
|
1035
1238
|
}
|
|
1239
|
+
/**
|
|
1240
|
+
* Retries the last failed task
|
|
1241
|
+
* @param workflowId
|
|
1242
|
+
* @param resumeSubworkflowTasks
|
|
1243
|
+
* @returns void
|
|
1244
|
+
* @throws ApiError
|
|
1245
|
+
*/
|
|
1036
1246
|
retry1(workflowId, resumeSubworkflowTasks = false) {
|
|
1037
1247
|
return this.httpRequest.request({
|
|
1038
1248
|
method: "POST",
|
|
@@ -1045,6 +1255,13 @@ var WorkflowResourceService = class {
|
|
|
1045
1255
|
}
|
|
1046
1256
|
});
|
|
1047
1257
|
}
|
|
1258
|
+
/**
|
|
1259
|
+
* Gets the workflow by workflow id
|
|
1260
|
+
* @param workflowId
|
|
1261
|
+
* @param includeTasks
|
|
1262
|
+
* @returns Workflow OK
|
|
1263
|
+
* @throws ApiError
|
|
1264
|
+
*/
|
|
1048
1265
|
getExecutionStatus(workflowId, includeTasks = true) {
|
|
1049
1266
|
return this.httpRequest.request({
|
|
1050
1267
|
method: "GET",
|
|
@@ -1057,6 +1274,13 @@ var WorkflowResourceService = class {
|
|
|
1057
1274
|
}
|
|
1058
1275
|
});
|
|
1059
1276
|
}
|
|
1277
|
+
/**
|
|
1278
|
+
* Terminate workflow execution
|
|
1279
|
+
* @param workflowId
|
|
1280
|
+
* @param reason
|
|
1281
|
+
* @returns any OK
|
|
1282
|
+
* @throws ApiError
|
|
1283
|
+
*/
|
|
1060
1284
|
terminate1(workflowId, reason) {
|
|
1061
1285
|
return this.httpRequest.request({
|
|
1062
1286
|
method: "DELETE",
|
|
@@ -1069,6 +1293,12 @@ var WorkflowResourceService = class {
|
|
|
1069
1293
|
}
|
|
1070
1294
|
});
|
|
1071
1295
|
}
|
|
1296
|
+
/**
|
|
1297
|
+
* Resumes the workflow
|
|
1298
|
+
* @param workflowId
|
|
1299
|
+
* @returns any OK
|
|
1300
|
+
* @throws ApiError
|
|
1301
|
+
*/
|
|
1072
1302
|
resumeWorkflow(workflowId) {
|
|
1073
1303
|
return this.httpRequest.request({
|
|
1074
1304
|
method: "PUT",
|
|
@@ -1078,6 +1308,13 @@ var WorkflowResourceService = class {
|
|
|
1078
1308
|
}
|
|
1079
1309
|
});
|
|
1080
1310
|
}
|
|
1311
|
+
/**
|
|
1312
|
+
* Removes the workflow from the system
|
|
1313
|
+
* @param workflowId
|
|
1314
|
+
* @param archiveWorkflow
|
|
1315
|
+
* @returns any OK
|
|
1316
|
+
* @throws ApiError
|
|
1317
|
+
*/
|
|
1081
1318
|
delete(workflowId, archiveWorkflow = true) {
|
|
1082
1319
|
return this.httpRequest.request({
|
|
1083
1320
|
method: "DELETE",
|
|
@@ -1090,6 +1327,17 @@ var WorkflowResourceService = class {
|
|
|
1090
1327
|
}
|
|
1091
1328
|
});
|
|
1092
1329
|
}
|
|
1330
|
+
/**
|
|
1331
|
+
* Search for workflows based on task parameters
|
|
1332
|
+
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
1333
|
+
* @param start
|
|
1334
|
+
* @param size
|
|
1335
|
+
* @param sort
|
|
1336
|
+
* @param freeText
|
|
1337
|
+
* @param query
|
|
1338
|
+
* @returns SearchResultWorkflowSummary OK
|
|
1339
|
+
* @throws ApiError
|
|
1340
|
+
*/
|
|
1093
1341
|
searchWorkflowsByTasks(start, size = 100, sort, freeText = "*", query) {
|
|
1094
1342
|
return this.httpRequest.request({
|
|
1095
1343
|
method: "GET",
|
|
@@ -1103,6 +1351,14 @@ var WorkflowResourceService = class {
|
|
|
1103
1351
|
}
|
|
1104
1352
|
});
|
|
1105
1353
|
}
|
|
1354
|
+
/**
|
|
1355
|
+
* Get the uri and path of the external storage where the workflow payload is to be stored
|
|
1356
|
+
* @param path
|
|
1357
|
+
* @param operation
|
|
1358
|
+
* @param payloadType
|
|
1359
|
+
* @returns ExternalStorageLocation OK
|
|
1360
|
+
* @throws ApiError
|
|
1361
|
+
*/
|
|
1106
1362
|
getExternalStorageLocation(path, operation, payloadType) {
|
|
1107
1363
|
return this.httpRequest.request({
|
|
1108
1364
|
method: "GET",
|
|
@@ -1114,6 +1370,16 @@ var WorkflowResourceService = class {
|
|
|
1114
1370
|
}
|
|
1115
1371
|
});
|
|
1116
1372
|
}
|
|
1373
|
+
/**
|
|
1374
|
+
* Start a new workflow. Returns the ID of the workflow instance that can be later used for tracking
|
|
1375
|
+
* @param name
|
|
1376
|
+
* @param requestBody
|
|
1377
|
+
* @param version
|
|
1378
|
+
* @param correlationId
|
|
1379
|
+
* @param priority
|
|
1380
|
+
* @returns string OK
|
|
1381
|
+
* @throws ApiError
|
|
1382
|
+
*/
|
|
1117
1383
|
startWorkflow1(name, requestBody, version, correlationId, priority) {
|
|
1118
1384
|
return this.httpRequest.request({
|
|
1119
1385
|
method: "POST",
|
|
@@ -1130,6 +1396,13 @@ var WorkflowResourceService = class {
|
|
|
1130
1396
|
mediaType: "application/json"
|
|
1131
1397
|
});
|
|
1132
1398
|
}
|
|
1399
|
+
/**
|
|
1400
|
+
* Restarts a completed workflow
|
|
1401
|
+
* @param workflowId
|
|
1402
|
+
* @param useLatestDefinitions
|
|
1403
|
+
* @returns void
|
|
1404
|
+
* @throws ApiError
|
|
1405
|
+
*/
|
|
1133
1406
|
restart1(workflowId, useLatestDefinitions = false) {
|
|
1134
1407
|
return this.httpRequest.request({
|
|
1135
1408
|
method: "POST",
|
|
@@ -1142,6 +1415,19 @@ var WorkflowResourceService = class {
|
|
|
1142
1415
|
}
|
|
1143
1416
|
});
|
|
1144
1417
|
}
|
|
1418
|
+
/**
|
|
1419
|
+
* Search for workflows based on payload and other parameters
|
|
1420
|
+
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
|
|
1421
|
+
* @param queryId
|
|
1422
|
+
* @param start
|
|
1423
|
+
* @param size
|
|
1424
|
+
* @param sort
|
|
1425
|
+
* @param freeText
|
|
1426
|
+
* @param query
|
|
1427
|
+
* @param skipCache
|
|
1428
|
+
* @returns ScrollableSearchResultWorkflowSummary OK
|
|
1429
|
+
* @throws ApiError
|
|
1430
|
+
*/
|
|
1145
1431
|
search1(queryId, start, size = 100, sort, freeText = "*", query, skipCache = false) {
|
|
1146
1432
|
return this.httpRequest.request({
|
|
1147
1433
|
method: "GET",
|
|
@@ -1157,6 +1443,17 @@ var WorkflowResourceService = class {
|
|
|
1157
1443
|
}
|
|
1158
1444
|
});
|
|
1159
1445
|
}
|
|
1446
|
+
/**
|
|
1447
|
+
* Search for workflows based on task parameters
|
|
1448
|
+
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
1449
|
+
* @param start
|
|
1450
|
+
* @param size
|
|
1451
|
+
* @param sort
|
|
1452
|
+
* @param freeText
|
|
1453
|
+
* @param query
|
|
1454
|
+
* @returns SearchResultWorkflow OK
|
|
1455
|
+
* @throws ApiError
|
|
1456
|
+
*/
|
|
1160
1457
|
searchWorkflowsByTasksV2(start, size = 100, sort, freeText = "*", query) {
|
|
1161
1458
|
return this.httpRequest.request({
|
|
1162
1459
|
method: "GET",
|
|
@@ -1170,6 +1467,12 @@ var WorkflowResourceService = class {
|
|
|
1170
1467
|
}
|
|
1171
1468
|
});
|
|
1172
1469
|
}
|
|
1470
|
+
/**
|
|
1471
|
+
* Resets callback times of all non-terminal SIMPLE tasks to 0
|
|
1472
|
+
* @param workflowId
|
|
1473
|
+
* @returns void
|
|
1474
|
+
* @throws ApiError
|
|
1475
|
+
*/
|
|
1173
1476
|
resetWorkflow(workflowId) {
|
|
1174
1477
|
return this.httpRequest.request({
|
|
1175
1478
|
method: "POST",
|
|
@@ -1183,14 +1486,100 @@ var WorkflowResourceService = class {
|
|
|
1183
1486
|
|
|
1184
1487
|
// src/common/open-api/core/ApiError.ts
|
|
1185
1488
|
var ApiError = class extends Error {
|
|
1186
|
-
constructor(
|
|
1489
|
+
constructor(request3, response, message) {
|
|
1187
1490
|
super(message);
|
|
1188
1491
|
this.name = "ApiError";
|
|
1189
1492
|
this.url = response.url;
|
|
1190
1493
|
this.status = response.status;
|
|
1191
1494
|
this.statusText = response.statusText;
|
|
1192
1495
|
this.body = response.body;
|
|
1193
|
-
this.request =
|
|
1496
|
+
this.request = request3;
|
|
1497
|
+
}
|
|
1498
|
+
};
|
|
1499
|
+
|
|
1500
|
+
// src/common/open-api/core/CancelablePromise.ts
|
|
1501
|
+
var CancelError = class extends Error {
|
|
1502
|
+
constructor(message) {
|
|
1503
|
+
super(message);
|
|
1504
|
+
this.name = "CancelError";
|
|
1505
|
+
}
|
|
1506
|
+
get isCancelled() {
|
|
1507
|
+
return true;
|
|
1508
|
+
}
|
|
1509
|
+
};
|
|
1510
|
+
var CancelablePromise = class {
|
|
1511
|
+
static {
|
|
1512
|
+
Symbol.toStringTag;
|
|
1513
|
+
}
|
|
1514
|
+
constructor(executor) {
|
|
1515
|
+
this._isResolved = false;
|
|
1516
|
+
this._isRejected = false;
|
|
1517
|
+
this._isCancelled = false;
|
|
1518
|
+
this._cancelHandlers = [];
|
|
1519
|
+
this._promise = new Promise((resolve3, reject) => {
|
|
1520
|
+
this._resolve = resolve3;
|
|
1521
|
+
this._reject = reject;
|
|
1522
|
+
const onResolve = (value) => {
|
|
1523
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1524
|
+
return;
|
|
1525
|
+
}
|
|
1526
|
+
this._isResolved = true;
|
|
1527
|
+
this._resolve?.(value);
|
|
1528
|
+
};
|
|
1529
|
+
const onReject = (reason) => {
|
|
1530
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1531
|
+
return;
|
|
1532
|
+
}
|
|
1533
|
+
this._isRejected = true;
|
|
1534
|
+
this._reject?.(reason);
|
|
1535
|
+
};
|
|
1536
|
+
const onCancel = (cancelHandler) => {
|
|
1537
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1538
|
+
return;
|
|
1539
|
+
}
|
|
1540
|
+
this._cancelHandlers.push(cancelHandler);
|
|
1541
|
+
};
|
|
1542
|
+
Object.defineProperty(onCancel, "isResolved", {
|
|
1543
|
+
get: () => this._isResolved
|
|
1544
|
+
});
|
|
1545
|
+
Object.defineProperty(onCancel, "isRejected", {
|
|
1546
|
+
get: () => this._isRejected
|
|
1547
|
+
});
|
|
1548
|
+
Object.defineProperty(onCancel, "isCancelled", {
|
|
1549
|
+
get: () => this._isCancelled
|
|
1550
|
+
});
|
|
1551
|
+
return executor(onResolve, onReject, onCancel);
|
|
1552
|
+
});
|
|
1553
|
+
}
|
|
1554
|
+
then(onFulfilled, onRejected) {
|
|
1555
|
+
return this._promise.then(onFulfilled, onRejected);
|
|
1556
|
+
}
|
|
1557
|
+
catch(onRejected) {
|
|
1558
|
+
return this._promise.catch(onRejected);
|
|
1559
|
+
}
|
|
1560
|
+
finally(onFinally) {
|
|
1561
|
+
return this._promise.finally(onFinally);
|
|
1562
|
+
}
|
|
1563
|
+
cancel() {
|
|
1564
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1565
|
+
return;
|
|
1566
|
+
}
|
|
1567
|
+
this._isCancelled = true;
|
|
1568
|
+
if (this._cancelHandlers.length) {
|
|
1569
|
+
try {
|
|
1570
|
+
for (const cancelHandler of this._cancelHandlers) {
|
|
1571
|
+
cancelHandler();
|
|
1572
|
+
}
|
|
1573
|
+
} catch (error) {
|
|
1574
|
+
console.warn("Cancellation threw an error", error);
|
|
1575
|
+
return;
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
this._cancelHandlers.length = 0;
|
|
1579
|
+
this._reject?.(new CancelError("Request aborted"));
|
|
1580
|
+
}
|
|
1581
|
+
get isCancelled() {
|
|
1582
|
+
return this._isCancelled;
|
|
1194
1583
|
}
|
|
1195
1584
|
};
|
|
1196
1585
|
|
|
@@ -1291,11 +1680,17 @@ var getHeaders = async (config, options) => {
|
|
|
1291
1680
|
const username = await resolve(options, config.USERNAME);
|
|
1292
1681
|
const password = await resolve(options, config.PASSWORD);
|
|
1293
1682
|
const additionalHeaders = await resolve(options, config.HEADERS);
|
|
1294
|
-
const headers = Object.entries(
|
|
1295
|
-
Accept: "application/json"
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
}),
|
|
1683
|
+
const headers = Object.entries({
|
|
1684
|
+
Accept: "application/json",
|
|
1685
|
+
...additionalHeaders,
|
|
1686
|
+
...options.headers
|
|
1687
|
+
}).filter(([_, value]) => isDefined(value)).reduce(
|
|
1688
|
+
(headers2, [key, value]) => ({
|
|
1689
|
+
...headers2,
|
|
1690
|
+
[key]: String(value)
|
|
1691
|
+
}),
|
|
1692
|
+
{}
|
|
1693
|
+
);
|
|
1299
1694
|
if (isStringWithValue(token)) {
|
|
1300
1695
|
headers["X-AUTHORIZATION"] = token;
|
|
1301
1696
|
}
|
|
@@ -1330,14 +1725,14 @@ var getRequestBody = (options) => {
|
|
|
1330
1725
|
};
|
|
1331
1726
|
var sendRequest = async (options, url, body, formData, headers, onCancel) => {
|
|
1332
1727
|
const controller = new AbortController();
|
|
1333
|
-
const
|
|
1728
|
+
const request3 = {
|
|
1334
1729
|
headers,
|
|
1335
1730
|
method: options.method,
|
|
1336
1731
|
body: body ?? formData,
|
|
1337
1732
|
signal: controller.signal
|
|
1338
1733
|
};
|
|
1339
1734
|
onCancel(() => controller.abort());
|
|
1340
|
-
return await fetch(url,
|
|
1735
|
+
return await fetch(url, request3);
|
|
1341
1736
|
};
|
|
1342
1737
|
var getResponseHeader = (response, responseHeader) => {
|
|
1343
1738
|
if (responseHeader) {
|
|
@@ -1367,15 +1762,16 @@ var getResponseBody = async (response) => {
|
|
|
1367
1762
|
return void 0;
|
|
1368
1763
|
};
|
|
1369
1764
|
var catchErrorCodes = (options, result) => {
|
|
1370
|
-
const errors =
|
|
1765
|
+
const errors = {
|
|
1371
1766
|
400: "Bad Request",
|
|
1372
1767
|
401: "Unauthorized",
|
|
1373
1768
|
403: "Forbidden",
|
|
1374
1769
|
404: "Not Found",
|
|
1375
1770
|
500: "Internal Server Error",
|
|
1376
1771
|
502: "Bad Gateway",
|
|
1377
|
-
503: "Service Unavailable"
|
|
1378
|
-
|
|
1772
|
+
503: "Service Unavailable",
|
|
1773
|
+
...options.errors
|
|
1774
|
+
};
|
|
1379
1775
|
const error = errors[result.status];
|
|
1380
1776
|
if (error) {
|
|
1381
1777
|
throw new ApiError(options, result, error);
|
|
@@ -1385,16 +1781,26 @@ var catchErrorCodes = (options, result) => {
|
|
|
1385
1781
|
}
|
|
1386
1782
|
};
|
|
1387
1783
|
var request = (config, options) => {
|
|
1388
|
-
return new CancelablePromise(async (
|
|
1784
|
+
return new CancelablePromise(async (resolve3, reject, onCancel) => {
|
|
1389
1785
|
try {
|
|
1390
1786
|
const url = getUrl(config, options);
|
|
1391
1787
|
const formData = getFormData(options);
|
|
1392
1788
|
const body = getRequestBody(options);
|
|
1393
1789
|
const headers = await getHeaders(config, options);
|
|
1394
1790
|
if (!onCancel.isCancelled) {
|
|
1395
|
-
const response = await sendRequest(
|
|
1791
|
+
const response = await sendRequest(
|
|
1792
|
+
options,
|
|
1793
|
+
url,
|
|
1794
|
+
body,
|
|
1795
|
+
formData,
|
|
1796
|
+
headers,
|
|
1797
|
+
onCancel
|
|
1798
|
+
);
|
|
1396
1799
|
const responseBody = await getResponseBody(response);
|
|
1397
|
-
const responseHeader = getResponseHeader(
|
|
1800
|
+
const responseHeader = getResponseHeader(
|
|
1801
|
+
response,
|
|
1802
|
+
options.responseHeader
|
|
1803
|
+
);
|
|
1398
1804
|
const result = {
|
|
1399
1805
|
url,
|
|
1400
1806
|
ok: response.ok,
|
|
@@ -1403,7 +1809,7 @@ var request = (config, options) => {
|
|
|
1403
1809
|
body: responseHeader ?? responseBody
|
|
1404
1810
|
};
|
|
1405
1811
|
catchErrorCodes(options, result);
|
|
1406
|
-
|
|
1812
|
+
resolve3(result.body);
|
|
1407
1813
|
}
|
|
1408
1814
|
} catch (error) {
|
|
1409
1815
|
reject(error);
|
|
@@ -1416,6 +1822,18 @@ var HumanTaskService = class {
|
|
|
1416
1822
|
constructor(httpRequest) {
|
|
1417
1823
|
this.httpRequest = httpRequest;
|
|
1418
1824
|
}
|
|
1825
|
+
/**
|
|
1826
|
+
* List tasks by filters - task name, state, assignee, assignee type, claimed
|
|
1827
|
+
* @param state
|
|
1828
|
+
* @param assignee
|
|
1829
|
+
* @param assigneeType
|
|
1830
|
+
* @param claimedBy
|
|
1831
|
+
* @param taskName
|
|
1832
|
+
* @param freeText
|
|
1833
|
+
* @param includeInputOutput
|
|
1834
|
+
* @returns SearchResultHumanTaskEntry OK
|
|
1835
|
+
* @throws ApiError
|
|
1836
|
+
*/
|
|
1419
1837
|
getTasksByFilter(state, assignee, assigneeType, claimedBy, taskName, freeText, includeInputOutput = false) {
|
|
1420
1838
|
return this.httpRequest.request({
|
|
1421
1839
|
method: "GET",
|
|
@@ -1431,12 +1849,29 @@ var HumanTaskService = class {
|
|
|
1431
1849
|
}
|
|
1432
1850
|
});
|
|
1433
1851
|
}
|
|
1852
|
+
/**
|
|
1853
|
+
* Get task load grouped by workflow name and task ref name per user
|
|
1854
|
+
* @returns HumanTaskLoad OK
|
|
1855
|
+
* @throws ApiError
|
|
1856
|
+
*/
|
|
1434
1857
|
getTaskLoad() {
|
|
1435
1858
|
return this.httpRequest.request({
|
|
1436
1859
|
method: "GET",
|
|
1437
1860
|
url: "/human/tasks/load"
|
|
1438
1861
|
});
|
|
1439
1862
|
}
|
|
1863
|
+
/**
|
|
1864
|
+
* Search human tasks
|
|
1865
|
+
* @param queryId
|
|
1866
|
+
* @param start
|
|
1867
|
+
* @param size
|
|
1868
|
+
* @param freeText
|
|
1869
|
+
* @param query
|
|
1870
|
+
* @param jsonQuery
|
|
1871
|
+
* @param includeInputOutput
|
|
1872
|
+
* @returns HTScrollableSearchResultHumanTaskEntry OK
|
|
1873
|
+
* @throws ApiError
|
|
1874
|
+
*/
|
|
1440
1875
|
search1(queryId, start, size = 100, freeText = "*", query, jsonQuery, includeInputOutput = false) {
|
|
1441
1876
|
return this.httpRequest.request({
|
|
1442
1877
|
method: "GET",
|
|
@@ -1452,6 +1887,12 @@ var HumanTaskService = class {
|
|
|
1452
1887
|
}
|
|
1453
1888
|
});
|
|
1454
1889
|
}
|
|
1890
|
+
/**
|
|
1891
|
+
* If the workflow is disconnected from tasks, this API can be used to clean up
|
|
1892
|
+
* @param taskId
|
|
1893
|
+
* @returns any OK
|
|
1894
|
+
* @throws ApiError
|
|
1895
|
+
*/
|
|
1455
1896
|
updateTaskOutput1(taskId) {
|
|
1456
1897
|
return this.httpRequest.request({
|
|
1457
1898
|
method: "DELETE",
|
|
@@ -1461,6 +1902,12 @@ var HumanTaskService = class {
|
|
|
1461
1902
|
}
|
|
1462
1903
|
});
|
|
1463
1904
|
}
|
|
1905
|
+
/**
|
|
1906
|
+
* Get a task
|
|
1907
|
+
* @param taskId
|
|
1908
|
+
* @returns HumanTaskEntry OK
|
|
1909
|
+
* @throws ApiError
|
|
1910
|
+
*/
|
|
1464
1911
|
getTask1(taskId) {
|
|
1465
1912
|
return this.httpRequest.request({
|
|
1466
1913
|
method: "GET",
|
|
@@ -1470,6 +1917,12 @@ var HumanTaskService = class {
|
|
|
1470
1917
|
}
|
|
1471
1918
|
});
|
|
1472
1919
|
}
|
|
1920
|
+
/**
|
|
1921
|
+
* Get human task action log entries by task id
|
|
1922
|
+
* @param taskId
|
|
1923
|
+
* @returns HumanTaskActionLogEntry OK
|
|
1924
|
+
* @throws ApiError
|
|
1925
|
+
*/
|
|
1473
1926
|
getActionLogs(taskId) {
|
|
1474
1927
|
return this.httpRequest.request({
|
|
1475
1928
|
method: "GET",
|
|
@@ -1479,6 +1932,12 @@ var HumanTaskService = class {
|
|
|
1479
1932
|
}
|
|
1480
1933
|
});
|
|
1481
1934
|
}
|
|
1935
|
+
/**
|
|
1936
|
+
* Claim a task by authenticated Conductor user
|
|
1937
|
+
* @param taskId
|
|
1938
|
+
* @returns any OK
|
|
1939
|
+
* @throws ApiError
|
|
1940
|
+
*/
|
|
1482
1941
|
claimTask(taskId) {
|
|
1483
1942
|
return this.httpRequest.request({
|
|
1484
1943
|
method: "POST",
|
|
@@ -1488,6 +1947,13 @@ var HumanTaskService = class {
|
|
|
1488
1947
|
}
|
|
1489
1948
|
});
|
|
1490
1949
|
}
|
|
1950
|
+
/**
|
|
1951
|
+
* Claim a task to an external user
|
|
1952
|
+
* @param taskId
|
|
1953
|
+
* @param userId
|
|
1954
|
+
* @returns any OK
|
|
1955
|
+
* @throws ApiError
|
|
1956
|
+
*/
|
|
1491
1957
|
assignAndClaim(taskId, userId) {
|
|
1492
1958
|
return this.httpRequest.request({
|
|
1493
1959
|
method: "POST",
|
|
@@ -1498,6 +1964,13 @@ var HumanTaskService = class {
|
|
|
1498
1964
|
}
|
|
1499
1965
|
});
|
|
1500
1966
|
}
|
|
1967
|
+
/**
|
|
1968
|
+
* Release a task without completing it
|
|
1969
|
+
* @param taskId
|
|
1970
|
+
* @param requestBody
|
|
1971
|
+
* @returns any OK
|
|
1972
|
+
* @throws ApiError
|
|
1973
|
+
*/
|
|
1501
1974
|
reassignTask(taskId, requestBody) {
|
|
1502
1975
|
return this.httpRequest.request({
|
|
1503
1976
|
method: "POST",
|
|
@@ -1509,6 +1982,12 @@ var HumanTaskService = class {
|
|
|
1509
1982
|
mediaType: "application/json"
|
|
1510
1983
|
});
|
|
1511
1984
|
}
|
|
1985
|
+
/**
|
|
1986
|
+
* Release a task without completing it
|
|
1987
|
+
* @param taskId
|
|
1988
|
+
* @returns any OK
|
|
1989
|
+
* @throws ApiError
|
|
1990
|
+
*/
|
|
1512
1991
|
releaseTask(taskId) {
|
|
1513
1992
|
return this.httpRequest.request({
|
|
1514
1993
|
method: "POST",
|
|
@@ -1518,6 +1997,12 @@ var HumanTaskService = class {
|
|
|
1518
1997
|
}
|
|
1519
1998
|
});
|
|
1520
1999
|
}
|
|
2000
|
+
/**
|
|
2001
|
+
* Get human task state log entries by task id
|
|
2002
|
+
* @param taskId
|
|
2003
|
+
* @returns HumanTaskStateLogEntry OK
|
|
2004
|
+
* @throws ApiError
|
|
2005
|
+
*/
|
|
1521
2006
|
getStateLogs(taskId) {
|
|
1522
2007
|
return this.httpRequest.request({
|
|
1523
2008
|
method: "GET",
|
|
@@ -1527,6 +2012,14 @@ var HumanTaskService = class {
|
|
|
1527
2012
|
}
|
|
1528
2013
|
});
|
|
1529
2014
|
}
|
|
2015
|
+
/**
|
|
2016
|
+
* Update task output, optionally complete
|
|
2017
|
+
* @param taskId
|
|
2018
|
+
* @param requestBody
|
|
2019
|
+
* @param complete
|
|
2020
|
+
* @returns any OK
|
|
2021
|
+
* @throws ApiError
|
|
2022
|
+
*/
|
|
1530
2023
|
updateTaskOutput(taskId, requestBody, complete = false) {
|
|
1531
2024
|
return this.httpRequest.request({
|
|
1532
2025
|
method: "POST",
|
|
@@ -1541,6 +2034,12 @@ var HumanTaskService = class {
|
|
|
1541
2034
|
mediaType: "application/json"
|
|
1542
2035
|
});
|
|
1543
2036
|
}
|
|
2037
|
+
/**
|
|
2038
|
+
* Delete human task templates by name
|
|
2039
|
+
* @param name
|
|
2040
|
+
* @returns any OK
|
|
2041
|
+
* @throws ApiError
|
|
2042
|
+
*/
|
|
1544
2043
|
deleteTemplatesByName(name) {
|
|
1545
2044
|
return this.httpRequest.request({
|
|
1546
2045
|
method: "DELETE",
|
|
@@ -1550,6 +2049,13 @@ var HumanTaskService = class {
|
|
|
1550
2049
|
}
|
|
1551
2050
|
});
|
|
1552
2051
|
}
|
|
2052
|
+
/**
|
|
2053
|
+
* List all human task templates or get templates by name, or a template by name and version
|
|
2054
|
+
* @param name
|
|
2055
|
+
* @param version
|
|
2056
|
+
* @returns HumanTaskTemplateEntry OK
|
|
2057
|
+
* @throws ApiError
|
|
2058
|
+
*/
|
|
1553
2059
|
getAllTemplates(name, version) {
|
|
1554
2060
|
return this.httpRequest.request({
|
|
1555
2061
|
method: "GET",
|
|
@@ -1560,6 +2066,13 @@ var HumanTaskService = class {
|
|
|
1560
2066
|
}
|
|
1561
2067
|
});
|
|
1562
2068
|
}
|
|
2069
|
+
/**
|
|
2070
|
+
* Save human task template
|
|
2071
|
+
* @param requestBody
|
|
2072
|
+
* @param newVersion
|
|
2073
|
+
* @returns string OK
|
|
2074
|
+
* @throws ApiError
|
|
2075
|
+
*/
|
|
1563
2076
|
saveTemplate(requestBody, newVersion = false) {
|
|
1564
2077
|
return this.httpRequest.request({
|
|
1565
2078
|
method: "POST",
|
|
@@ -1571,6 +2084,12 @@ var HumanTaskService = class {
|
|
|
1571
2084
|
mediaType: "application/json"
|
|
1572
2085
|
});
|
|
1573
2086
|
}
|
|
2087
|
+
/**
|
|
2088
|
+
* Delete human task template
|
|
2089
|
+
* @param id
|
|
2090
|
+
* @returns any OK
|
|
2091
|
+
* @throws ApiError
|
|
2092
|
+
*/
|
|
1574
2093
|
deleteTemplateById(id) {
|
|
1575
2094
|
return this.httpRequest.request({
|
|
1576
2095
|
method: "DELETE",
|
|
@@ -1580,6 +2099,12 @@ var HumanTaskService = class {
|
|
|
1580
2099
|
}
|
|
1581
2100
|
});
|
|
1582
2101
|
}
|
|
2102
|
+
/**
|
|
2103
|
+
* Get human task template by id
|
|
2104
|
+
* @param id
|
|
2105
|
+
* @returns HumanTaskTemplateEntry OK
|
|
2106
|
+
* @throws ApiError
|
|
2107
|
+
*/
|
|
1583
2108
|
getTemplateById(id) {
|
|
1584
2109
|
return this.httpRequest.request({
|
|
1585
2110
|
method: "GET",
|
|
@@ -1596,6 +2121,12 @@ var HumanTaskResourceService = class {
|
|
|
1596
2121
|
constructor(httpRequest) {
|
|
1597
2122
|
this.httpRequest = httpRequest;
|
|
1598
2123
|
}
|
|
2124
|
+
/**
|
|
2125
|
+
* Get Conductor task by id (for human tasks only)
|
|
2126
|
+
* @param taskId
|
|
2127
|
+
* @returns Task OK
|
|
2128
|
+
* @throws ApiError
|
|
2129
|
+
*/
|
|
1599
2130
|
getConductorTaskById(taskId) {
|
|
1600
2131
|
return this.httpRequest.request({
|
|
1601
2132
|
method: "GET",
|
|
@@ -1608,7 +2139,7 @@ var HumanTaskResourceService = class {
|
|
|
1608
2139
|
};
|
|
1609
2140
|
|
|
1610
2141
|
// src/common/open-api/ConductorClient.ts
|
|
1611
|
-
var defaultRequestHandler = (
|
|
2142
|
+
var defaultRequestHandler = (request3, config, options) => request3(config, options);
|
|
1612
2143
|
var ConductorClient = class {
|
|
1613
2144
|
constructor(config, requestHandler = defaultRequestHandler) {
|
|
1614
2145
|
const resolvedConfig = {
|
|
@@ -1642,128 +2173,839 @@ var ConductorClient = class {
|
|
|
1642
2173
|
}
|
|
1643
2174
|
};
|
|
1644
2175
|
|
|
1645
|
-
// src/common/
|
|
1646
|
-
var
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
const { serverUrl, keyId, keySecret } = config;
|
|
1650
|
-
const tokenUrl = `${serverUrl}/token`;
|
|
1651
|
-
const res = await fetch(tokenUrl, {
|
|
1652
|
-
headers: {
|
|
1653
|
-
"Content-Type": "application/json",
|
|
1654
|
-
Accept: "application/json"
|
|
1655
|
-
},
|
|
1656
|
-
body: JSON.stringify({ keyId, keySecret }),
|
|
1657
|
-
method: "POST"
|
|
1658
|
-
});
|
|
1659
|
-
const { token } = await res.json();
|
|
1660
|
-
return new ConductorClient(__spreadProps(__spreadValues({}, config), { TOKEN: token }), requestHandler);
|
|
1661
|
-
} else {
|
|
1662
|
-
return Promise.resolve(new ConductorClient(config, requestHandler));
|
|
2176
|
+
// src/common/open-api/core/BaseHttpRequest.ts
|
|
2177
|
+
var BaseHttpRequest = class {
|
|
2178
|
+
constructor(config) {
|
|
2179
|
+
this.config = config;
|
|
1663
2180
|
}
|
|
1664
2181
|
};
|
|
1665
2182
|
|
|
1666
|
-
// src/
|
|
1667
|
-
var
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
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;
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
updateOptions(options) {
|
|
2271
|
+
const newOptions = { ...this.options, ...options };
|
|
2272
|
+
this.updateConcurrency(newOptions.concurrency);
|
|
2273
|
+
this.options = newOptions;
|
|
2274
|
+
}
|
|
1703
2275
|
};
|
|
1704
|
-
function mapArrValues(arrayTransformer, mapWithValues) {
|
|
1705
|
-
return Object.fromEntries(Object.entries(mapWithValues).map(([key, value]) => [
|
|
1706
|
-
key,
|
|
1707
|
-
arrayTransformer(value)
|
|
1708
|
-
]));
|
|
1709
|
-
}
|
|
1710
2276
|
|
|
1711
|
-
// src/
|
|
1712
|
-
var
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
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: {},
|
|
1721
2959
|
startDelay: 0,
|
|
1722
2960
|
optional: false,
|
|
1723
2961
|
asyncComplete: false,
|
|
1724
|
-
loopCondition: ""
|
|
1725
|
-
|
|
2962
|
+
loopCondition: "",
|
|
2963
|
+
...overrides,
|
|
1726
2964
|
loopOver: nestedTasksMapper(overrides?.loopOver || []),
|
|
1727
2965
|
type: "DO_WHILE" /* DO_WHILE */
|
|
1728
2966
|
});
|
|
1729
2967
|
|
|
1730
|
-
// src/
|
|
1731
|
-
var generateEventTask = (overrides = {}) =>
|
|
2968
|
+
// src/core/generators/EventTask.ts
|
|
2969
|
+
var generateEventTask = (overrides = {}) => ({
|
|
2970
|
+
...nameTaskNameGenerator("event", overrides),
|
|
1732
2971
|
sink: "sqs:sqs_queue_name",
|
|
1733
|
-
asyncComplete: false
|
|
1734
|
-
|
|
2972
|
+
asyncComplete: false,
|
|
2973
|
+
...overrides,
|
|
1735
2974
|
type: "EVENT" /* EVENT */
|
|
1736
2975
|
});
|
|
1737
2976
|
|
|
1738
|
-
// src/
|
|
1739
|
-
var generateForkJoinTask = (overrides = {}, nestedMapper) =>
|
|
1740
|
-
|
|
1741
|
-
}
|
|
2977
|
+
// src/core/generators/ForkJoin.ts
|
|
2978
|
+
var generateForkJoinTask = (overrides = {}, nestedMapper) => ({
|
|
2979
|
+
...nameTaskNameGenerator("forkJoin", overrides),
|
|
2980
|
+
inputParameters: {},
|
|
2981
|
+
...overrides,
|
|
1742
2982
|
type: "FORK_JOIN" /* FORK_JOIN */,
|
|
1743
2983
|
forkTasks: (overrides?.forkTasks || []).map(nestedMapper)
|
|
1744
2984
|
});
|
|
1745
|
-
var generateJoinTask = (overrides = {}) =>
|
|
2985
|
+
var generateJoinTask = (overrides = {}) => ({
|
|
2986
|
+
...nameTaskNameGenerator("join", overrides),
|
|
1746
2987
|
inputParameters: {},
|
|
1747
2988
|
joinOn: [],
|
|
1748
2989
|
optional: false,
|
|
1749
|
-
asyncComplete: false
|
|
1750
|
-
|
|
2990
|
+
asyncComplete: false,
|
|
2991
|
+
...overrides,
|
|
1751
2992
|
type: "JOIN" /* JOIN */
|
|
1752
2993
|
});
|
|
1753
2994
|
|
|
1754
|
-
// src/
|
|
1755
|
-
var generateHTTPTask = (overrides = {}) =>
|
|
2995
|
+
// src/core/generators/HttpTask.ts
|
|
2996
|
+
var generateHTTPTask = (overrides = {}) => ({
|
|
2997
|
+
...nameTaskNameGenerator("httpTask", overrides),
|
|
1756
2998
|
inputParameters: {
|
|
1757
2999
|
http_request: {
|
|
1758
3000
|
uri: "https://jsonplaceholder.typicode.com/posts/${workflow.input.queryid}",
|
|
1759
3001
|
method: "GET"
|
|
1760
3002
|
}
|
|
1761
|
-
}
|
|
1762
|
-
|
|
3003
|
+
},
|
|
3004
|
+
...overrides,
|
|
1763
3005
|
type: "HTTP" /* HTTP */
|
|
1764
3006
|
});
|
|
1765
3007
|
|
|
1766
|
-
// src/
|
|
3008
|
+
// src/core/generators/InlineTask.ts
|
|
1767
3009
|
var defaultInputParams = {
|
|
1768
3010
|
value: "${workflow.input.value}",
|
|
1769
3011
|
evaluatorType: "graaljs",
|
|
@@ -1775,24 +3017,29 @@ var generateEvaluationCode = (inputParametersPartial = {}) => {
|
|
|
1775
3017
|
if (inlineExpression !== void 0 && typeof inlineExpression === "function") {
|
|
1776
3018
|
const resultingFunction = inlineExpression();
|
|
1777
3019
|
const resultingFunctionAsString = resultingFunction.toString();
|
|
1778
|
-
const toReturn =
|
|
1779
|
-
evaluatorType: "graaljs"
|
|
1780
|
-
|
|
3020
|
+
const toReturn = {
|
|
3021
|
+
evaluatorType: "graaljs",
|
|
3022
|
+
...inputParametersPartial || { value: "true" },
|
|
1781
3023
|
expression: `(${resultingFunctionAsString})();`
|
|
1782
|
-
}
|
|
3024
|
+
};
|
|
1783
3025
|
return toReturn;
|
|
1784
3026
|
}
|
|
1785
|
-
return
|
|
1786
|
-
|
|
1787
|
-
|
|
3027
|
+
return {
|
|
3028
|
+
...defaultInputParams,
|
|
3029
|
+
evaluatorType: "graaljs",
|
|
3030
|
+
...inputParametersPartial
|
|
3031
|
+
};
|
|
1788
3032
|
};
|
|
1789
|
-
var generateInlineTask = (override = {}) =>
|
|
3033
|
+
var generateInlineTask = (override = {}) => ({
|
|
3034
|
+
...nameTaskNameGenerator("inline", override),
|
|
3035
|
+
...override,
|
|
1790
3036
|
inputParameters: generateEvaluationCode(override?.inputParameters || {}),
|
|
1791
3037
|
type: "INLINE" /* INLINE */
|
|
1792
3038
|
});
|
|
1793
3039
|
|
|
1794
|
-
// src/
|
|
1795
|
-
var generateJQTransformTask = (overrides = {}) =>
|
|
3040
|
+
// src/core/generators/JsonJQTransform.ts
|
|
3041
|
+
var generateJQTransformTask = (overrides = {}) => ({
|
|
3042
|
+
...nameTaskNameGenerator("jqTransform", overrides),
|
|
1796
3043
|
inputParameters: {
|
|
1797
3044
|
key1: {
|
|
1798
3045
|
value1: ["a", "b"]
|
|
@@ -1801,13 +3048,14 @@ var generateJQTransformTask = (overrides = {}) => __spreadProps(__spreadValues(_
|
|
|
1801
3048
|
value2: ["c", "d"]
|
|
1802
3049
|
},
|
|
1803
3050
|
queryExpression: "{ key3: (.key1.value1 + .key2.value2) }"
|
|
1804
|
-
}
|
|
1805
|
-
|
|
3051
|
+
},
|
|
3052
|
+
...overrides,
|
|
1806
3053
|
type: "JSON_JQ_TRANSFORM" /* JSON_JQ_TRANSFORM */
|
|
1807
3054
|
});
|
|
1808
3055
|
|
|
1809
|
-
// src/
|
|
1810
|
-
var generateKafkaPublishTask = (overrides = {}) =>
|
|
3056
|
+
// src/core/generators/KafkaTask.ts
|
|
3057
|
+
var generateKafkaPublishTask = (overrides = {}) => ({
|
|
3058
|
+
...nameTaskNameGenerator("kafka", overrides),
|
|
1811
3059
|
inputParameters: {
|
|
1812
3060
|
kafka_request: {
|
|
1813
3061
|
topic: "topic",
|
|
@@ -1817,65 +3065,72 @@ var generateKafkaPublishTask = (overrides = {}) => __spreadProps(__spreadValues(
|
|
|
1817
3065
|
key: "123",
|
|
1818
3066
|
keySerializer: "org.apache.kafka.common.serialization.IntegerSerializer"
|
|
1819
3067
|
}
|
|
1820
|
-
}
|
|
1821
|
-
|
|
3068
|
+
},
|
|
3069
|
+
...overrides,
|
|
1822
3070
|
type: "KAFKA_PUBLISH" /* KAFKA_PUBLISH */
|
|
1823
3071
|
});
|
|
1824
3072
|
|
|
1825
|
-
// src/
|
|
1826
|
-
var generateSubWorkflowTask = (overrides = {}) =>
|
|
3073
|
+
// src/core/generators/SubWorkflowTask.ts
|
|
3074
|
+
var generateSubWorkflowTask = (overrides = {}) => ({
|
|
3075
|
+
...nameTaskNameGenerator("subWorkflow", overrides),
|
|
1827
3076
|
inputParameters: {},
|
|
1828
3077
|
subWorkflowParam: {
|
|
1829
3078
|
name: "name",
|
|
1830
3079
|
version: 1,
|
|
1831
3080
|
taskToDomain: {}
|
|
1832
|
-
}
|
|
1833
|
-
|
|
3081
|
+
},
|
|
3082
|
+
...overrides,
|
|
1834
3083
|
type: "SUB_WORKFLOW" /* SUB_WORKFLOW */
|
|
1835
3084
|
});
|
|
1836
3085
|
|
|
1837
|
-
// src/
|
|
1838
|
-
var generateSetVariableTask = (overrides = {}) =>
|
|
1839
|
-
|
|
1840
|
-
}
|
|
3086
|
+
// src/core/generators/SetVariableTask.ts
|
|
3087
|
+
var generateSetVariableTask = (overrides = {}) => ({
|
|
3088
|
+
...nameTaskNameGenerator("setVariable", overrides),
|
|
3089
|
+
inputParameters: {},
|
|
3090
|
+
...overrides,
|
|
1841
3091
|
type: "SET_VARIABLE" /* SET_VARIABLE */
|
|
1842
3092
|
});
|
|
1843
3093
|
|
|
1844
|
-
// src/
|
|
1845
|
-
var generateTerminateTask = (overrides = {}) =>
|
|
3094
|
+
// src/core/generators/TerminateTask.ts
|
|
3095
|
+
var generateTerminateTask = (overrides = {}) => ({
|
|
3096
|
+
...nameTaskNameGenerator("terminate", overrides),
|
|
1846
3097
|
inputParameters: {
|
|
1847
3098
|
terminationStatus: "COMPLETED",
|
|
1848
3099
|
workflowOutput: {}
|
|
1849
3100
|
},
|
|
1850
3101
|
startDelay: 0,
|
|
1851
|
-
optional: false
|
|
1852
|
-
|
|
3102
|
+
optional: false,
|
|
3103
|
+
...overrides,
|
|
1853
3104
|
type: "TERMINATE" /* TERMINATE */
|
|
1854
3105
|
});
|
|
1855
3106
|
|
|
1856
|
-
// src/
|
|
1857
|
-
var generateWaitTask = (overrides = {}) =>
|
|
3107
|
+
// src/core/generators/WaitTask.ts
|
|
3108
|
+
var generateWaitTask = (overrides = {}) => ({
|
|
3109
|
+
...nameTaskNameGenerator("wait", overrides),
|
|
3110
|
+
...overrides,
|
|
1858
3111
|
inputParameters: {},
|
|
1859
3112
|
type: "WAIT" /* WAIT */
|
|
1860
3113
|
});
|
|
1861
3114
|
|
|
1862
|
-
// src/
|
|
3115
|
+
// src/core/generators/SwitchTask.ts
|
|
1863
3116
|
var fillSwitchTaskBranches = (task, mapper) => ({
|
|
1864
3117
|
decisionCases: mapArrValues(mapper, task?.decisionCases || {}),
|
|
1865
3118
|
defaultCase: mapper(task?.defaultCase || [])
|
|
1866
3119
|
});
|
|
1867
|
-
var generateSwitchTask = (overrides = {}, nestedTasksMapper) =>
|
|
3120
|
+
var generateSwitchTask = (overrides = {}, nestedTasksMapper) => ({
|
|
3121
|
+
...nameTaskNameGenerator("switch", overrides),
|
|
1868
3122
|
inputParameters: {
|
|
1869
3123
|
switchCaseValue: ""
|
|
1870
3124
|
},
|
|
1871
3125
|
evaluatorType: "value-param",
|
|
1872
|
-
expression: "switchCaseValue"
|
|
1873
|
-
|
|
3126
|
+
expression: "switchCaseValue",
|
|
3127
|
+
...overrides,
|
|
3128
|
+
...fillSwitchTaskBranches(overrides, nestedTasksMapper),
|
|
1874
3129
|
type: "SWITCH" /* SWITCH */
|
|
1875
3130
|
});
|
|
1876
3131
|
|
|
1877
|
-
// src/
|
|
1878
|
-
var workflowGenerator = (overrides) =>
|
|
3132
|
+
// src/core/generators/WorkflowGenerator.ts
|
|
3133
|
+
var workflowGenerator = (overrides) => ({
|
|
1879
3134
|
name: "NewWorkflow_3nxbi",
|
|
1880
3135
|
description: "Edit or extend this sample workflow. Set the workflow name to get started",
|
|
1881
3136
|
version: 1,
|
|
@@ -1887,11 +3142,13 @@ var workflowGenerator = (overrides) => __spreadValues({
|
|
|
1887
3142
|
workflowStatusListenerEnabled: false,
|
|
1888
3143
|
ownerEmail: "james.stuart@orkes.io",
|
|
1889
3144
|
timeoutPolicy: "ALERT_ONLY",
|
|
1890
|
-
timeoutSeconds: 0
|
|
1891
|
-
|
|
3145
|
+
timeoutSeconds: 0,
|
|
3146
|
+
...overrides
|
|
3147
|
+
});
|
|
1892
3148
|
|
|
1893
|
-
// src/
|
|
1894
|
-
var generateForkJoinDynamic = (overrides = {}) =>
|
|
3149
|
+
// src/core/generators/ForkJoinDynamicTask.ts
|
|
3150
|
+
var generateForkJoinDynamic = (overrides = {}) => ({
|
|
3151
|
+
...nameTaskNameGenerator("forkJoinDynamic", overrides),
|
|
1895
3152
|
inputParameters: {
|
|
1896
3153
|
dynamicTasks: "",
|
|
1897
3154
|
dynamicTasksInput: ""
|
|
@@ -1900,12 +3157,12 @@ var generateForkJoinDynamic = (overrides = {}) => __spreadProps(__spreadValues(_
|
|
|
1900
3157
|
dynamicForkTasksInputParamName: "dynamicTasksInput",
|
|
1901
3158
|
startDelay: 0,
|
|
1902
3159
|
optional: false,
|
|
1903
|
-
asyncComplete: false
|
|
1904
|
-
|
|
3160
|
+
asyncComplete: false,
|
|
3161
|
+
...overrides,
|
|
1905
3162
|
type: "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */
|
|
1906
3163
|
});
|
|
1907
3164
|
|
|
1908
|
-
// src/
|
|
3165
|
+
// src/core/generators/generator.ts
|
|
1909
3166
|
var filledTaskDef = (task) => {
|
|
1910
3167
|
const taskType = task.type;
|
|
1911
3168
|
switch (taskType) {
|
|
@@ -1957,59 +3214,15 @@ var maybeAddJoinTask = (currentTask, maybeNextTask) => {
|
|
|
1957
3214
|
var generate = (overrides) => {
|
|
1958
3215
|
const maybeTasks = overrides.tasks || [];
|
|
1959
3216
|
const generatedTasks = taskGenMapper(maybeTasks);
|
|
1960
|
-
return workflowGenerator(
|
|
3217
|
+
return workflowGenerator({ ...overrides, tasks: generatedTasks });
|
|
1961
3218
|
};
|
|
1962
3219
|
|
|
1963
|
-
// src/
|
|
3220
|
+
// src/core/generators/index.ts
|
|
1964
3221
|
var generateSwitchTask2 = (overrides = {}, nestedTasksMapper = taskGenMapper) => generateSwitchTask(overrides, nestedTasksMapper);
|
|
1965
3222
|
var generateDoWhileTask2 = (overrides = {}, nestedTasksMapper = taskGenMapper) => generateDoWhileTask(overrides, nestedTasksMapper);
|
|
1966
3223
|
var generateForkJoinTask2 = (overrides = {}, nestedMapper = taskGenMapper) => generateForkJoinTask(overrides, nestedMapper);
|
|
1967
3224
|
|
|
1968
|
-
// src/
|
|
1969
|
-
var doWhileTask = (taskRefName, terminationCondition, tasks) => ({
|
|
1970
|
-
name: taskRefName,
|
|
1971
|
-
taskReferenceName: taskRefName,
|
|
1972
|
-
loopCondition: terminationCondition,
|
|
1973
|
-
inputParameters: {},
|
|
1974
|
-
type: "DO_WHILE" /* DO_WHILE */,
|
|
1975
|
-
loopOver: tasks
|
|
1976
|
-
});
|
|
1977
|
-
var loopForCondition = (taskRefName, valueKey) => `if ( $.${taskRefName}['iteration'] < $.${valueKey} ) { true; } else { false; }`;
|
|
1978
|
-
var newLoopTask = (taskRefName, iterations, tasks) => ({
|
|
1979
|
-
name: taskRefName,
|
|
1980
|
-
taskReferenceName: taskRefName,
|
|
1981
|
-
loopCondition: loopForCondition(taskRefName, "value"),
|
|
1982
|
-
inputParameters: {
|
|
1983
|
-
value: iterations
|
|
1984
|
-
},
|
|
1985
|
-
type: "DO_WHILE" /* DO_WHILE */,
|
|
1986
|
-
loopOver: tasks
|
|
1987
|
-
});
|
|
1988
|
-
|
|
1989
|
-
// src/common/sdk/dynamicFork.ts
|
|
1990
|
-
var dynamicForkTask = (taskReferenceName, preForkTasks = [], dynamicTasksInput = "") => ({
|
|
1991
|
-
name: taskReferenceName,
|
|
1992
|
-
taskReferenceName,
|
|
1993
|
-
inputParameters: {
|
|
1994
|
-
dynamicTasks: preForkTasks,
|
|
1995
|
-
dynamicTasksInput
|
|
1996
|
-
},
|
|
1997
|
-
type: "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */,
|
|
1998
|
-
dynamicForkTasksParam: "dynamicTasks",
|
|
1999
|
-
dynamicForkTasksInputParamName: "dynamicTasksInput"
|
|
2000
|
-
});
|
|
2001
|
-
|
|
2002
|
-
// src/common/sdk/event.ts
|
|
2003
|
-
var eventTask = (taskReferenceName, eventPrefix, eventSuffix) => ({
|
|
2004
|
-
name: taskReferenceName,
|
|
2005
|
-
taskReferenceName,
|
|
2006
|
-
sink: `${eventPrefix}:${eventSuffix}`,
|
|
2007
|
-
type: "EVENT" /* EVENT */
|
|
2008
|
-
});
|
|
2009
|
-
var sqsEventTask = (taskReferenceName, queueName) => eventTask(taskReferenceName, "sqs", queueName);
|
|
2010
|
-
var conductorEventTask = (taskReferenceName, eventName) => eventTask(taskReferenceName, "conductor", eventName);
|
|
2011
|
-
|
|
2012
|
-
// src/common/sdk/forkJoin.ts
|
|
3225
|
+
// src/core/sdk/forkJoin.ts
|
|
2013
3226
|
var forkTask = (taskReferenceName, forkTasks) => ({
|
|
2014
3227
|
taskReferenceName,
|
|
2015
3228
|
name: taskReferenceName,
|
|
@@ -2021,7 +3234,7 @@ var forkTaskJoin = (taskReferenceName, forkTasks) => [
|
|
|
2021
3234
|
generateJoinTask({ name: `${taskReferenceName}_join` })
|
|
2022
3235
|
];
|
|
2023
3236
|
|
|
2024
|
-
// src/
|
|
3237
|
+
// src/core/sdk/http.ts
|
|
2025
3238
|
var httpTask = (taskReferenceName, inputParameters) => ({
|
|
2026
3239
|
name: taskReferenceName,
|
|
2027
3240
|
taskReferenceName,
|
|
@@ -2031,7 +3244,7 @@ var httpTask = (taskReferenceName, inputParameters) => ({
|
|
|
2031
3244
|
type: "HTTP" /* HTTP */
|
|
2032
3245
|
});
|
|
2033
3246
|
|
|
2034
|
-
// src/
|
|
3247
|
+
// src/core/sdk/inline.ts
|
|
2035
3248
|
var inlineTask = (taskReferenceName, script, evaluatorType = "javascript") => ({
|
|
2036
3249
|
name: taskReferenceName,
|
|
2037
3250
|
taskReferenceName,
|
|
@@ -2042,7 +3255,7 @@ var inlineTask = (taskReferenceName, script, evaluatorType = "javascript") => ({
|
|
|
2042
3255
|
type: "INLINE" /* INLINE */
|
|
2043
3256
|
});
|
|
2044
3257
|
|
|
2045
|
-
// src/
|
|
3258
|
+
// src/core/sdk/join.ts
|
|
2046
3259
|
var joinTask = (taskReferenceName, joinOn) => ({
|
|
2047
3260
|
name: taskReferenceName,
|
|
2048
3261
|
taskReferenceName,
|
|
@@ -2050,7 +3263,7 @@ var joinTask = (taskReferenceName, joinOn) => ({
|
|
|
2050
3263
|
type: "JOIN" /* JOIN */
|
|
2051
3264
|
});
|
|
2052
3265
|
|
|
2053
|
-
// src/
|
|
3266
|
+
// src/core/sdk/jsonJq.ts
|
|
2054
3267
|
var jsonJqTask = (taskReferenceName, script) => ({
|
|
2055
3268
|
name: taskReferenceName,
|
|
2056
3269
|
taskReferenceName,
|
|
@@ -2060,7 +3273,7 @@ var jsonJqTask = (taskReferenceName, script) => ({
|
|
|
2060
3273
|
}
|
|
2061
3274
|
});
|
|
2062
3275
|
|
|
2063
|
-
// src/
|
|
3276
|
+
// src/core/sdk/kafkaPublish.ts
|
|
2064
3277
|
var kafkaPublishTask = (taskReferenceName, kafka_request) => ({
|
|
2065
3278
|
taskReferenceName,
|
|
2066
3279
|
name: taskReferenceName,
|
|
@@ -2070,7 +3283,7 @@ var kafkaPublishTask = (taskReferenceName, kafka_request) => ({
|
|
|
2070
3283
|
}
|
|
2071
3284
|
});
|
|
2072
3285
|
|
|
2073
|
-
// src/
|
|
3286
|
+
// src/core/sdk/setVariable.ts
|
|
2074
3287
|
var setVariableTask = (taskReferenceName, inputParameters) => ({
|
|
2075
3288
|
name: taskReferenceName,
|
|
2076
3289
|
taskReferenceName,
|
|
@@ -2078,7 +3291,7 @@ var setVariableTask = (taskReferenceName, inputParameters) => ({
|
|
|
2078
3291
|
inputParameters
|
|
2079
3292
|
});
|
|
2080
3293
|
|
|
2081
|
-
// src/
|
|
3294
|
+
// src/core/sdk/simple.ts
|
|
2082
3295
|
var simpleTask = (taskReferenceName, name, inputParameters) => ({
|
|
2083
3296
|
name,
|
|
2084
3297
|
taskReferenceName,
|
|
@@ -2086,7 +3299,7 @@ var simpleTask = (taskReferenceName, name, inputParameters) => ({
|
|
|
2086
3299
|
type: "SIMPLE" /* SIMPLE */
|
|
2087
3300
|
});
|
|
2088
3301
|
|
|
2089
|
-
// src/
|
|
3302
|
+
// src/core/sdk/subWorkflow.ts
|
|
2090
3303
|
var subWorkflowTask = (taskReferenceName, workflowName, version) => ({
|
|
2091
3304
|
name: taskReferenceName,
|
|
2092
3305
|
taskReferenceName,
|
|
@@ -2097,7 +3310,7 @@ var subWorkflowTask = (taskReferenceName, workflowName, version) => ({
|
|
|
2097
3310
|
type: "SUB_WORKFLOW" /* SUB_WORKFLOW */
|
|
2098
3311
|
});
|
|
2099
3312
|
|
|
2100
|
-
// src/
|
|
3313
|
+
// src/core/sdk/switch.ts
|
|
2101
3314
|
var switchTask = (taskReferenceName, expression, decisionCases = {}, defaultCase = []) => ({
|
|
2102
3315
|
name: taskReferenceName,
|
|
2103
3316
|
taskReferenceName,
|
|
@@ -2111,7 +3324,7 @@ var switchTask = (taskReferenceName, expression, decisionCases = {}, defaultCase
|
|
|
2111
3324
|
type: "SWITCH" /* SWITCH */
|
|
2112
3325
|
});
|
|
2113
3326
|
|
|
2114
|
-
// src/
|
|
3327
|
+
// src/core/sdk/terminate.ts
|
|
2115
3328
|
var terminateTask = (taskReferenceName, status, terminationReason) => ({
|
|
2116
3329
|
name: taskReferenceName,
|
|
2117
3330
|
taskReferenceName,
|
|
@@ -2122,7 +3335,7 @@ var terminateTask = (taskReferenceName, status, terminationReason) => ({
|
|
|
2122
3335
|
type: "TERMINATE" /* TERMINATE */
|
|
2123
3336
|
});
|
|
2124
3337
|
|
|
2125
|
-
// src/
|
|
3338
|
+
// src/core/sdk/wait.ts
|
|
2126
3339
|
var waitTaskDuration = (taskReferenceName, duration) => ({
|
|
2127
3340
|
name: taskReferenceName,
|
|
2128
3341
|
taskReferenceName,
|
|
@@ -2140,240 +3353,369 @@ var waitTaskUntil = (taskReferenceName, until) => ({
|
|
|
2140
3353
|
type: "WAIT" /* WAIT */
|
|
2141
3354
|
});
|
|
2142
3355
|
|
|
2143
|
-
// src/
|
|
2144
|
-
var workflow = (name, tasks) => ({
|
|
2145
|
-
name,
|
|
2146
|
-
version: 1,
|
|
2147
|
-
tasks,
|
|
2148
|
-
inputParameters: [],
|
|
2149
|
-
timeoutSeconds: 0
|
|
2150
|
-
});
|
|
2151
|
-
|
|
2152
|
-
// src/
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
};
|
|
2158
|
-
|
|
2159
|
-
// src/task/TaskManager.ts
|
|
2160
|
-
var defaultManagerOptions = {
|
|
2161
|
-
workerID: "",
|
|
2162
|
-
pollInterval: 1e3,
|
|
2163
|
-
domain: void 0,
|
|
2164
|
-
concurrency: 1
|
|
2165
|
-
};
|
|
2166
|
-
function workerId(options) {
|
|
2167
|
-
return options.workerID ?? os.hostname();
|
|
2168
|
-
}
|
|
2169
|
-
var TaskManager = class {
|
|
2170
|
-
constructor(client, workers, config = {}) {
|
|
2171
|
-
this.tasks = {};
|
|
2172
|
-
this.workerManagerWorkerOptions = (worker) => {
|
|
2173
|
-
return __spreadProps(__spreadValues({}, this.taskManageOptions), {
|
|
2174
|
-
concurrency: worker.concurrency ?? this.taskManageOptions.concurrency,
|
|
2175
|
-
domain: worker.domain ?? this.taskManageOptions.domain
|
|
2176
|
-
});
|
|
2177
|
-
};
|
|
2178
|
-
this.updatePollingOptions = (options) => {
|
|
2179
|
-
this.workers.forEach((worker) => {
|
|
2180
|
-
const newOptions = __spreadValues(__spreadValues({}, this.workerManagerWorkerOptions(worker)), options);
|
|
2181
|
-
const runners = this.tasks[worker.taskDefName];
|
|
2182
|
-
runners.forEach((runner) => {
|
|
2183
|
-
runner.updateOptions(newOptions);
|
|
2184
|
-
});
|
|
2185
|
-
});
|
|
2186
|
-
};
|
|
2187
|
-
this.startPolling = () => {
|
|
2188
|
-
this.workers.forEach((worker) => {
|
|
2189
|
-
this.tasks[worker.taskDefName] = [];
|
|
2190
|
-
const options = this.workerManagerWorkerOptions(worker);
|
|
2191
|
-
this.logger.debug(`Starting taskDefName=${worker.taskDefName} concurrency=${options.concurrency} domain=${options.domain}`);
|
|
2192
|
-
const runner = new TaskRunner({
|
|
2193
|
-
worker,
|
|
2194
|
-
options,
|
|
2195
|
-
taskResource: this.client.taskResource,
|
|
2196
|
-
logger: this.logger,
|
|
2197
|
-
onError: this.errorHandler
|
|
2198
|
-
});
|
|
2199
|
-
runner.startPolling();
|
|
2200
|
-
this.tasks[worker.taskDefName].push(runner);
|
|
2201
|
-
});
|
|
2202
|
-
};
|
|
2203
|
-
this.stopPolling = () => {
|
|
2204
|
-
for (const taskType in this.tasks) {
|
|
2205
|
-
this.tasks[taskType].forEach((runner) => runner.stopPolling());
|
|
2206
|
-
this.tasks[taskType] = [];
|
|
2207
|
-
}
|
|
2208
|
-
};
|
|
2209
|
-
if (!workers) {
|
|
2210
|
-
throw new Error("No workers supplied to TaskManager. Please pass an array of workers.");
|
|
2211
|
-
}
|
|
2212
|
-
this.client = client;
|
|
2213
|
-
this.logger = config.logger ?? new DefaultLogger();
|
|
2214
|
-
this.errorHandler = config.onError ?? noopErrorHandler;
|
|
2215
|
-
this.workers = workers;
|
|
2216
|
-
const providedOptions = config.options ?? {};
|
|
2217
|
-
this.taskManageOptions = __spreadProps(__spreadValues(__spreadValues({}, defaultManagerOptions), providedOptions), {
|
|
2218
|
-
workerID: workerId(providedOptions)
|
|
2219
|
-
});
|
|
2220
|
-
}
|
|
2221
|
-
};
|
|
2222
|
-
|
|
2223
|
-
// src/core/types.ts
|
|
2224
|
-
var ConductorError = class extends Error {
|
|
2225
|
-
constructor(message, innerError) {
|
|
2226
|
-
super(message);
|
|
2227
|
-
this._trace = innerError;
|
|
2228
|
-
const actualProto = new.target.prototype;
|
|
2229
|
-
if (Object.setPrototypeOf) {
|
|
2230
|
-
Object.setPrototypeOf(this, actualProto);
|
|
2231
|
-
} else {
|
|
2232
|
-
this.__proto__ = actualProto;
|
|
2233
|
-
}
|
|
2234
|
-
}
|
|
2235
|
-
};
|
|
2236
|
-
|
|
2237
|
-
// src/core/helpers.ts
|
|
2238
|
-
var errorMapper = (error) => new ConductorError(error?.body?.message, error);
|
|
2239
|
-
var tryCatchReThrow = (fn) => {
|
|
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) => {
|
|
2240
3372
|
try {
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
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);
|
|
2244
3378
|
}
|
|
3379
|
+
return void 0;
|
|
2245
3380
|
};
|
|
2246
3381
|
|
|
2247
|
-
// src/
|
|
2248
|
-
var
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
this.
|
|
2252
|
-
}
|
|
2253
|
-
|
|
2254
|
-
|
|
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;
|
|
2255
3398
|
}
|
|
2256
|
-
|
|
2257
|
-
|
|
3399
|
+
clearCache() {
|
|
3400
|
+
this._cache.clear();
|
|
2258
3401
|
}
|
|
2259
|
-
|
|
2260
|
-
return
|
|
3402
|
+
get cache() {
|
|
3403
|
+
return this._cache;
|
|
2261
3404
|
}
|
|
2262
|
-
|
|
2263
|
-
|
|
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");
|
|
2264
3475
|
}
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
}
|
|
2270
|
-
|
|
2271
|
-
|
|
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);
|
|
2272
3494
|
}
|
|
2273
3495
|
}
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
pause(workflowInstanceId) {
|
|
2281
|
-
return tryCatchReThrow(() => this._client.workflowResource.pauseWorkflow(workflowInstanceId));
|
|
2282
|
-
}
|
|
2283
|
-
reRun(workflowInstanceId, rerunWorkflowRequest = {}) {
|
|
2284
|
-
return tryCatchReThrow(() => this._client.workflowResource.rerun(workflowInstanceId, rerunWorkflowRequest));
|
|
2285
|
-
}
|
|
2286
|
-
restart(workflowInstanceId, useLatestDefinitions) {
|
|
2287
|
-
return tryCatchReThrow(() => this._client.workflowResource.restart1(workflowInstanceId, useLatestDefinitions));
|
|
2288
|
-
}
|
|
2289
|
-
resume(workflowInstanceId) {
|
|
2290
|
-
return tryCatchReThrow(() => this._client.workflowResource.resumeWorkflow(workflowInstanceId));
|
|
2291
|
-
}
|
|
2292
|
-
retry(workflowInstanceId, resumeSubworkflowTasks) {
|
|
2293
|
-
return tryCatchReThrow(() => this._client.workflowResource.retry1(workflowInstanceId, resumeSubworkflowTasks));
|
|
2294
|
-
}
|
|
2295
|
-
search(start, size, query, freeText, sort = "", skipCache = false) {
|
|
2296
|
-
const queryId = void 0;
|
|
2297
|
-
return tryCatchReThrow(() => this._client.workflowResource.search1(queryId, start, size, sort, freeText, query, skipCache));
|
|
2298
|
-
}
|
|
2299
|
-
skipTasksFromWorkflow(workflowInstanceId, taskReferenceName, skipTaskRequest) {
|
|
2300
|
-
return tryCatchReThrow(() => this._client.workflowResource.skipTaskFromWorkflow(workflowInstanceId, taskReferenceName, skipTaskRequest));
|
|
3496
|
+
};
|
|
3497
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
3498
|
+
process(key, value);
|
|
3499
|
+
});
|
|
3500
|
+
if (qs.length > 0) {
|
|
3501
|
+
return `?${qs.join("&")}`;
|
|
2301
3502
|
}
|
|
2302
|
-
|
|
2303
|
-
|
|
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)}`;
|
|
2304
3516
|
}
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
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
|
+
}
|
|
2310
3528
|
};
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
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;
|
|
2317
3537
|
}
|
|
2318
|
-
|
|
2319
|
-
|
|
3538
|
+
return void 0;
|
|
3539
|
+
};
|
|
3540
|
+
var resolve2 = async (options, resolver) => {
|
|
3541
|
+
if (typeof resolver === "function") {
|
|
3542
|
+
return resolver(options);
|
|
2320
3543
|
}
|
|
3544
|
+
return resolver;
|
|
2321
3545
|
};
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
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;
|
|
2327
3564
|
}
|
|
2328
|
-
|
|
2329
|
-
const
|
|
2330
|
-
|
|
2331
|
-
return response.results;
|
|
2332
|
-
}
|
|
2333
|
-
return [];
|
|
3565
|
+
if (isStringWithValue2(username) && isStringWithValue2(password)) {
|
|
3566
|
+
const credentials = base642(`${username}:${password}`);
|
|
3567
|
+
headers["Authorization"] = `Basic ${credentials}`;
|
|
2334
3568
|
}
|
|
2335
|
-
|
|
2336
|
-
|
|
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
|
+
}
|
|
2337
3579
|
}
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
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);
|
|
2343
3590
|
}
|
|
2344
3591
|
}
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
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;
|
|
2350
3610
|
}
|
|
2351
3611
|
}
|
|
2352
|
-
|
|
3612
|
+
return void 0;
|
|
3613
|
+
};
|
|
3614
|
+
var getResponseBody2 = async (response) => {
|
|
3615
|
+
if (response.status !== 204) {
|
|
2353
3616
|
try {
|
|
2354
|
-
|
|
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
|
+
}
|
|
2355
3626
|
} catch (error) {
|
|
2356
|
-
|
|
3627
|
+
console.error(error);
|
|
2357
3628
|
}
|
|
2358
3629
|
}
|
|
2359
|
-
|
|
2360
|
-
|
|
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);
|
|
2361
3646
|
}
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
await this._client.humanTask.updateTaskOutput(taskId, requestBody, false);
|
|
2365
|
-
} catch (error) {
|
|
2366
|
-
throw errorMapper(error);
|
|
2367
|
-
}
|
|
3647
|
+
if (!result.ok) {
|
|
3648
|
+
throw new ApiError(options, result, "Generic Error");
|
|
2368
3649
|
}
|
|
2369
|
-
|
|
3650
|
+
};
|
|
3651
|
+
var request2 = (config, options, fetchFn = fetch) => {
|
|
3652
|
+
return new CancelablePromise(async (resolve3, reject, onCancel) => {
|
|
2370
3653
|
try {
|
|
2371
|
-
|
|
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
|
+
}
|
|
2372
3683
|
} catch (error) {
|
|
2373
|
-
|
|
3684
|
+
reject(error);
|
|
2374
3685
|
}
|
|
2375
|
-
}
|
|
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
|
+
};
|
|
2376
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
|
+
);
|
|
2377
3719
|
export {
|
|
2378
3720
|
ApiError,
|
|
2379
3721
|
BaseHttpRequest,
|
|
@@ -2382,6 +3724,7 @@ export {
|
|
|
2382
3724
|
ConductorClient,
|
|
2383
3725
|
ConductorError,
|
|
2384
3726
|
DefaultLogger,
|
|
3727
|
+
DnsCacheResolver,
|
|
2385
3728
|
EventResourceService,
|
|
2386
3729
|
HealthCheckResourceService,
|
|
2387
3730
|
HumanExecutor,
|
|
@@ -2395,10 +3738,12 @@ export {
|
|
|
2395
3738
|
WorkflowBulkResourceService,
|
|
2396
3739
|
WorkflowExecutor,
|
|
2397
3740
|
WorkflowResourceService,
|
|
3741
|
+
baseOrkesConductorClient,
|
|
2398
3742
|
conductorEventTask,
|
|
2399
3743
|
doWhileTask,
|
|
2400
3744
|
dynamicForkTask,
|
|
2401
3745
|
eventTask,
|
|
3746
|
+
fetchCatchDns,
|
|
2402
3747
|
forkTask,
|
|
2403
3748
|
forkTaskJoin,
|
|
2404
3749
|
generate,
|
|
@@ -2423,7 +3768,9 @@ export {
|
|
|
2423
3768
|
kafkaPublishTask,
|
|
2424
3769
|
newLoopTask,
|
|
2425
3770
|
noopErrorHandler,
|
|
3771
|
+
noopLogger,
|
|
2426
3772
|
orkesConductorClient,
|
|
3773
|
+
request2 as request,
|
|
2427
3774
|
setVariableTask,
|
|
2428
3775
|
simpleTask,
|
|
2429
3776
|
sqsEventTask,
|
|
@@ -2431,6 +3778,7 @@ export {
|
|
|
2431
3778
|
switchTask,
|
|
2432
3779
|
taskGenMapper,
|
|
2433
3780
|
terminateTask,
|
|
3781
|
+
toMaybeUrl,
|
|
2434
3782
|
waitTaskDuration,
|
|
2435
3783
|
waitTaskUntil,
|
|
2436
3784
|
workflow
|