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