@io-orkes/conductor-javascript 1.2.0 → 1.2.1-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/README.md CHANGED
@@ -45,6 +45,7 @@ import { OrkesApiConfig, orkesConductorClient } from "@io-orkes/conductor-javasc
45
45
  const config: Partial<OrkesApiConfig> = {
46
46
  keyId: "XXX", // optional
47
47
  keySecret: "XXXX", // optional
48
+ refreshTokenInterval: 0 // optional (in milliseconds) defaults to 30 minutes (30 * 60 * 1000). 0 no refresh
48
49
  serverUrl: "https://play.orkes.io/api",
49
50
  };
50
51
 
@@ -1,5 +1,5 @@
1
- import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient } from './types-9addaabb.js';
2
- export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, F as FetchFn, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, c as OpenAPIConfig, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-9addaabb.js';
1
+ import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient } from './types-1a12e2c4.js';
2
+ export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, F as FetchFn, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, c as OpenAPIConfig, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-1a12e2c4.js';
3
3
 
4
4
  /**
5
5
  * Takes a config with keyId and keySecret returns a promise with an instance of ConductorClient
package/dist/browser.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient } from './types-9addaabb.js';
2
- export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, F as FetchFn, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, c as OpenAPIConfig, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-9addaabb.js';
1
+ import { O as OrkesApiConfig, C as ConductorHttpRequest, a as ConductorClient } from './types-1a12e2c4.js';
2
+ export { p as Action, m as ApiError, A as ApiRequestOptions, k as ApiResult, a6 as AssignmentPolicy, a8 as BackToAssigment, B as BaseHttpRequest, o as CancelError, d as CancelablePromise, a9 as ClearAssigment, au as CommonTaskDef, b as ConductorClientAPIConfig, aR as ConductorError, ap as ConductorLogLevel, ao as ConductorLogger, j as ConductorWorker, ar as DefaultLogger, aq as DefaultLoggerConfig, ax as DoWhileTaskDef, aa as Escalate, E as EventHandler, _ as EventResourceService, ay as EventTaskDef, q as ExternalStorageLocation, ab as FFAAssignment, F as FetchFn, a7 as Fixed, aB as ForkJoinDynamicDef, az as ForkJoinTaskDef, G as GenerateTokenRequest, ac as HTScrollableSearchResultHumanTaskEntry, $ as HealthCheckResourceService, aC as HttpInputParameters, aD as HttpTaskDef, aT as HumanExecutor, ad as HumanTaskActionLogEntry, ae as HumanTaskEntry, af as HumanTaskLoad, ag as HumanTaskStateLogEntry, ah as HumanTaskTemplate, ai as HumanTaskTemplateEntry, aF as InlineTaskDef, aE as InlineTaskInputParameters, aA as JoinTaskDef, aG as JsonJQTransformTaskDef, aH as KafkaPublishInputParameters, aI as KafkaPublishTaskDef, aj as LeastBusyGroupMemberAssignment, a0 as MetadataResourceService, ak as Never, l as OnCancel, c as OpenAPIConfig, P as PollData, at as RequestType, r as RerunWorkflowRequest, s as Response, R as RunnerArgs, S as SaveScheduleRequest, a1 as SchedulerResourceService, t as ScrollableSearchResultWorkflowSummary, al as SearchResultHumanTaskEntry, u as SearchResultTask, v as SearchResultTaskSummary, w as SearchResultWorkflow, x as SearchResultWorkflowScheduleExecutionModel, y as SearchResultWorkflowSummary, aJ as SetVariableTaskDef, aK as SimpleTaskDef, z as SkipTaskRequest, D as StartWorkflow, H as StartWorkflowRequest, I as SubWorkflowParams, aL as SubWorkflowTaskDef, aM as SwitchTaskDef, J as Task, K as TaskDef, aw as TaskDefTypes, L as TaskDetails, T as TaskErrorHandler, M as TaskExecLog, i as TaskManager, h as TaskManagerConfig, g as TaskManagerOptions, a2 as TaskResourceService, N as TaskResult, aS as TaskResultStatus, f as TaskRunner, e as TaskRunnerOptions, Q as TaskSummary, av as TaskType, am as Terminate, aN as TerminateTaskDef, an as TimeoutPolicy, a3 as TokenResourceService, aO as WaitTaskDef, W as Workflow, a4 as WorkflowBulkResourceService, aP as WorkflowDef, aQ as WorkflowExecutor, a5 as WorkflowResourceService, U as WorkflowSchedule, V as WorkflowScheduleExecutionModel, X as WorkflowStatus, Y as WorkflowSummary, Z as WorkflowTask, aZ as conductorEventTask, aU as doWhileTask, aW as dynamicForkTask, aX as eventTask, a_ as forkTask, a$ as forkTaskJoin, br as generate, be as generateDoWhileTask, bf as generateEventTask, bg as generateForkJoinTask, bi as generateHTTPTask, bj as generateInlineTask, bk as generateJQTransformTask, bh as generateJoinTask, bl as generateKafkaPublishTask, bn as generateSetVariableTask, bd as generateSimpleTask, bm as generateSubWorkflowTask, bq as generateSwitchTask, bo as generateTerminateTask, bp as generateWaitTask, b0 as httpTask, b1 as inlineTask, b2 as joinTask, b3 as jsonJqTask, b4 as kafkaPublishTask, aV as newLoopTask, n as noopErrorHandler, as as noopLogger, b5 as setVariableTask, b6 as simpleTask, aY as sqsEventTask, b7 as subWorkflowTask, b8 as switchTask, bs as taskGenMapper, b9 as terminateTask, ba as waitTaskDuration, bb as waitTaskUntil, bc as workflow } from './types-1a12e2c4.js';
3
3
 
4
4
  /**
5
5
  * Takes a config with keyId and keySecret returns a promise with an instance of ConductorClient
package/dist/browser.js CHANGED
@@ -2283,11 +2283,11 @@ var BaseHttpRequest = class {
2283
2283
 
2284
2284
  // src/task/Poller.ts
2285
2285
  var Poller = class {
2286
- constructor(pollFunction, pollerOptions, logger) {
2287
- this.concurrentCalls = [];
2288
- this.pollFunction = async () => {
2286
+ constructor(pollFunction, performWorkFunction, pollerOptions, logger) {
2287
+ this.performWorkFunction = async () => {
2289
2288
  };
2290
2289
  this.polling = false;
2290
+ this._tasksInProcess = 0;
2291
2291
  this.options = {
2292
2292
  pollInterval: 1e3,
2293
2293
  concurrency: 1
@@ -2300,78 +2300,48 @@ var Poller = class {
2300
2300
  if (this.polling) {
2301
2301
  throw new Error("Runner is already started");
2302
2302
  }
2303
- return this.poll();
2303
+ this._tasksInProcess = 0;
2304
+ this.polling = true;
2305
+ this.poll();
2304
2306
  };
2305
2307
  /**
2306
2308
  * Stops Polling for work
2307
2309
  */
2308
2310
  this.stopPolling = async () => {
2309
- await Promise.all(this.concurrentCalls.map((call) => call.stop()));
2310
2311
  this.polling = false;
2312
+ clearTimeout(this.timeoutHandler);
2313
+ };
2314
+ this.performWork = async (work) => {
2315
+ await this.performWorkFunction(work);
2316
+ this._tasksInProcess--;
2311
2317
  };
2312
2318
  this.poll = async () => {
2313
- if (!this.polling) {
2314
- this.polling = true;
2315
- for (let i = 0; i < this.options.concurrency; i++) {
2316
- this.concurrentCalls.push(this.singlePoll());
2317
- }
2319
+ while (this.isPolling) {
2320
+ const count = this.options.concurrency > this._tasksInProcess ? this.options.concurrency - this._tasksInProcess : this._tasksInProcess;
2321
+ const taskResult = await this.pollFunction(count);
2322
+ this._tasksInProcess = taskResult.length;
2323
+ taskResult.forEach(this.performWork);
2324
+ await new Promise(
2325
+ (r) => this.isPolling ? this.timeoutHandler = setTimeout(
2326
+ () => r(true),
2327
+ this.options.pollInterval
2328
+ ) : r(true)
2329
+ );
2318
2330
  }
2319
2331
  };
2320
- this.singlePoll = () => {
2321
- let poll = this.polling;
2322
- let timeout;
2323
- const pollingCall = async () => {
2324
- while (poll) {
2325
- await this.pollFunction();
2326
- await new Promise(
2327
- (r) => poll ? timeout = setTimeout(() => r(true), this.options.pollInterval) : r(true)
2328
- );
2329
- }
2330
- };
2331
- return {
2332
- promise: pollingCall(),
2333
- stop: () => new Promise((r) => {
2334
- clearTimeout(timeout);
2335
- poll = false;
2336
- this.logger.debug("stopping single poll call");
2337
- r(true);
2338
- })
2339
- };
2340
- };
2341
2332
  this.pollFunction = pollFunction;
2333
+ this.performWorkFunction = performWorkFunction;
2342
2334
  this.options = { ...this.options, ...pollerOptions };
2343
2335
  this.logger = logger || noopLogger;
2344
2336
  }
2345
2337
  get isPolling() {
2346
2338
  return this.polling;
2347
2339
  }
2348
- /**
2349
- * adds or shuts down concurrent calls based on the concurrency setting
2350
- * @param concurrency
2351
- */
2352
- updateConcurrency(concurrency) {
2353
- if (concurrency > 0 && concurrency !== this.options.concurrency) {
2354
- if (concurrency < this.options.concurrency) {
2355
- const result = this.concurrentCalls.splice(
2356
- 0,
2357
- this.options.concurrency - concurrency
2358
- );
2359
- result.forEach((call) => {
2360
- call.stop();
2361
- this.logger.debug("stopping some spawned calls");
2362
- });
2363
- } else {
2364
- for (let i = 0; i < concurrency - this.options.concurrency; i++) {
2365
- this.concurrentCalls.push(this.singlePoll());
2366
- this.logger.debug("spawning additional poll calls");
2367
- }
2368
- }
2369
- this.options.concurrency = concurrency;
2370
- }
2340
+ get tasksInProcess() {
2341
+ return this._tasksInProcess;
2371
2342
  }
2372
2343
  updateOptions(options) {
2373
2344
  const newOptions = { ...this.options, ...options };
2374
- this.updateConcurrency(newOptions.concurrency);
2375
2345
  this.options = newOptions;
2376
2346
  }
2377
2347
  };
@@ -2401,23 +2371,15 @@ var TaskRunner = class {
2401
2371
  this.stopPolling = async () => {
2402
2372
  await this.poller.stopPolling();
2403
2373
  };
2404
- this.pollAndExecute = async () => {
2405
- try {
2406
- const { workerID } = this.options;
2407
- const task = await this.taskResource.poll(
2408
- this.worker.taskDefName,
2409
- workerID,
2410
- this.worker.domain ?? this.options.domain
2411
- );
2412
- if (task && task.taskId) {
2413
- await this.executeTask(task);
2414
- } else {
2415
- this.logger.debug(`No tasks for ${this.worker.taskDefName}`);
2416
- }
2417
- } catch (unknownError) {
2418
- this.handleUnknownError(unknownError);
2419
- this.errorHandler(unknownError);
2420
- }
2374
+ this.batchPoll = async (count) => {
2375
+ const { workerID } = this.options;
2376
+ const task = await this.taskResource.batchPoll(
2377
+ this.worker.taskDefName,
2378
+ workerID,
2379
+ this.worker.domain ?? this.options.domain,
2380
+ count
2381
+ );
2382
+ return task;
2421
2383
  };
2422
2384
  this.updateTaskWithRetry = async (task, taskResult) => {
2423
2385
  let retryCount = 0;
@@ -2479,7 +2441,8 @@ var TaskRunner = class {
2479
2441
  this.options = options;
2480
2442
  this.errorHandler = errorHandler;
2481
2443
  this.poller = new Poller(
2482
- this.pollAndExecute,
2444
+ this.batchPoll,
2445
+ this.executeTask,
2483
2446
  { concurrency: options.concurrency, pollInterval: options.pollInterval },
2484
2447
  this.logger
2485
2448
  );