@hatchet-dev/typescript-sdk 0.1.9 → 0.1.11

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.
@@ -6,6 +6,7 @@ export declare class AdminClient {
6
6
  client: WorkflowServiceClient;
7
7
  constructor(config: ClientConfig, channel: Channel, factory: ClientFactory);
8
8
  put_workflow(workflow: CreateWorkflowVersionOpts): Promise<void>;
9
+ run_workflow(workflowName: string, input: object): Promise<string>;
9
10
  schedule_workflow(workflowId: string, options?: {
10
11
  schedules?: Date[];
11
12
  }): void;
@@ -32,6 +32,22 @@ class AdminClient {
32
32
  }
33
33
  });
34
34
  }
35
+ run_workflow(workflowName, input) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ try {
38
+ const inputStr = JSON.stringify(input);
39
+ const resp = yield this.client.triggerWorkflow({
40
+ name: workflowName,
41
+ input: inputStr,
42
+ });
43
+ return resp.workflowRunId;
44
+ }
45
+ catch (e) {
46
+ throw new hatchet_error_1.default(e.message);
47
+ }
48
+ });
49
+ }
50
+ // RunWorkflow(workflowName string, input interface{}) (string, error)
35
51
  schedule_workflow(workflowId, options) {
36
52
  try {
37
53
  this.client.scheduleWorkflow({
@@ -6,6 +6,7 @@ import { Workflow } from '../../workflow';
6
6
  import { Worker } from '../worker';
7
7
  import Logger from '../../util/logger/logger';
8
8
  import { ClientConfig } from './client-config';
9
+ import { ListenerClient } from '../listener/listener-client';
9
10
  export interface HatchetClientOptions {
10
11
  config_path?: string;
11
12
  credentials?: ChannelCredentials;
@@ -17,6 +18,7 @@ export declare class HatchetClient {
17
18
  event: EventClient;
18
19
  dispatcher: DispatcherClient;
19
20
  admin: AdminClient;
21
+ listener: ListenerClient;
20
22
  logger: Logger;
21
23
  constructor(config?: Partial<ClientConfig>, options?: HatchetClientOptions);
22
24
  static with_host_port(host: string, port: number, config?: Partial<ClientConfig>, options?: HatchetClientOptions): HatchetClient;
@@ -47,6 +47,7 @@ const nice_grpc_1 = require("nice-grpc");
47
47
  const worker_1 = require("../worker");
48
48
  const logger_1 = __importDefault(require("../../util/logger/logger"));
49
49
  const client_config_1 = require("./client-config");
50
+ const listener_client_1 = require("../listener/listener-client");
50
51
  const addTokenMiddleware = (token) => function _(call, options) {
51
52
  return __asyncGenerator(this, arguments, function* _1() {
52
53
  var _a, e_1, _b, _c;
@@ -100,6 +101,7 @@ class HatchetClient {
100
101
  this.event = new event_client_1.EventClient(this.config, this.channel, clientFactory);
101
102
  this.dispatcher = new dispatcher_client_1.DispatcherClient(this.config, this.channel, clientFactory);
102
103
  this.admin = new admin_client_1.AdminClient(this.config, this.channel, clientFactory);
104
+ this.listener = new listener_client_1.ListenerClient(this.config, this.channel, clientFactory);
103
105
  this.logger = new logger_1.default('HatchetClient', this.config.log_level);
104
106
  this.logger.info(`Initialized HatchetClient`);
105
107
  }
@@ -0,0 +1,23 @@
1
+ import { Channel, ClientFactory } from 'nice-grpc';
2
+ import { DispatcherClient as PbDispatcherClient } from '../../protoc/dispatcher';
3
+ import { ClientConfig } from '../hatchet-client/client-config';
4
+ import { Logger } from '../../util/logger';
5
+ export declare enum StepRunEventType {
6
+ STEP_RUN_EVENT_TYPE_STARTED = "STEP_RUN_EVENT_TYPE_STARTED",
7
+ STEP_RUN_EVENT_TYPE_COMPLETED = "STEP_RUN_EVENT_TYPE_COMPLETED",
8
+ STEP_RUN_EVENT_TYPE_FAILED = "STEP_RUN_EVENT_TYPE_FAILED",
9
+ STEP_RUN_EVENT_TYPE_CANCELLED = "STEP_RUN_EVENT_TYPE_CANCELLED",
10
+ STEP_RUN_EVENT_TYPE_TIMED_OUT = "STEP_RUN_EVENT_TYPE_TIMED_OUT"
11
+ }
12
+ export interface StepRunEvent {
13
+ type: StepRunEventType;
14
+ payload: string;
15
+ }
16
+ export declare class ListenerClient {
17
+ config: ClientConfig;
18
+ client: PbDispatcherClient;
19
+ logger: Logger;
20
+ constructor(config: ClientConfig, channel: Channel, factory: ClientFactory);
21
+ on(workflowRunId: string, handler: (event: StepRunEvent) => Promise<void>): Promise<void>;
22
+ retrySubscribe(workflowRunId: string): Promise<AsyncIterable<import("../../protoc/dispatcher").WorkflowEvent>>;
23
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ListenerClient = exports.StepRunEventType = void 0;
23
+ const nice_grpc_1 = require("nice-grpc");
24
+ const dispatcher_1 = require("../../protoc/dispatcher");
25
+ const hatchet_error_1 = __importDefault(require("../../util/errors/hatchet-error"));
26
+ const logger_1 = require("../../util/logger");
27
+ const sleep_1 = __importDefault(require("../../util/sleep"));
28
+ const DEFAULT_ACTION_LISTENER_RETRY_INTERVAL = 5; // seconds
29
+ const DEFAULT_ACTION_LISTENER_RETRY_COUNT = 5;
30
+ // eslint-disable-next-line no-shadow
31
+ var StepRunEventType;
32
+ (function (StepRunEventType) {
33
+ StepRunEventType["STEP_RUN_EVENT_TYPE_STARTED"] = "STEP_RUN_EVENT_TYPE_STARTED";
34
+ StepRunEventType["STEP_RUN_EVENT_TYPE_COMPLETED"] = "STEP_RUN_EVENT_TYPE_COMPLETED";
35
+ StepRunEventType["STEP_RUN_EVENT_TYPE_FAILED"] = "STEP_RUN_EVENT_TYPE_FAILED";
36
+ StepRunEventType["STEP_RUN_EVENT_TYPE_CANCELLED"] = "STEP_RUN_EVENT_TYPE_CANCELLED";
37
+ StepRunEventType["STEP_RUN_EVENT_TYPE_TIMED_OUT"] = "STEP_RUN_EVENT_TYPE_TIMED_OUT";
38
+ })(StepRunEventType || (exports.StepRunEventType = StepRunEventType = {}));
39
+ class ListenerClient {
40
+ constructor(config, channel, factory) {
41
+ this.config = config;
42
+ this.client = factory.create(dispatcher_1.DispatcherDefinition, channel);
43
+ this.logger = new logger_1.Logger(`Dispatcher`, config.log_level);
44
+ }
45
+ on(workflowRunId, handler) {
46
+ var _a, e_1, _b, _c;
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ let listener = this.client.subscribeToWorkflowEvents({
49
+ workflowRunId,
50
+ });
51
+ try {
52
+ try {
53
+ for (var _d = true, listener_1 = __asyncValues(listener), listener_1_1; listener_1_1 = yield listener_1.next(), _a = listener_1_1.done, !_a; _d = true) {
54
+ _c = listener_1_1.value;
55
+ _d = false;
56
+ const workflowEvent = _c;
57
+ let eventType;
58
+ switch (workflowEvent.eventType) {
59
+ case dispatcher_1.ResourceEventType.RESOURCE_EVENT_TYPE_STARTED:
60
+ eventType = StepRunEventType.STEP_RUN_EVENT_TYPE_STARTED;
61
+ break;
62
+ case dispatcher_1.ResourceEventType.RESOURCE_EVENT_TYPE_COMPLETED:
63
+ eventType = StepRunEventType.STEP_RUN_EVENT_TYPE_COMPLETED;
64
+ break;
65
+ case dispatcher_1.ResourceEventType.RESOURCE_EVENT_TYPE_FAILED:
66
+ eventType = StepRunEventType.STEP_RUN_EVENT_TYPE_FAILED;
67
+ break;
68
+ case dispatcher_1.ResourceEventType.RESOURCE_EVENT_TYPE_CANCELLED:
69
+ eventType = StepRunEventType.STEP_RUN_EVENT_TYPE_CANCELLED;
70
+ break;
71
+ case dispatcher_1.ResourceEventType.RESOURCE_EVENT_TYPE_TIMED_OUT:
72
+ eventType = StepRunEventType.STEP_RUN_EVENT_TYPE_TIMED_OUT;
73
+ break;
74
+ default:
75
+ throw new hatchet_error_1.default(`Unknown event type: ${workflowEvent.eventType}`);
76
+ }
77
+ yield handler({
78
+ type: eventType,
79
+ payload: workflowEvent.eventPayload,
80
+ });
81
+ }
82
+ }
83
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
84
+ finally {
85
+ try {
86
+ if (!_d && !_a && (_b = listener_1.return)) yield _b.call(listener_1);
87
+ }
88
+ finally { if (e_1) throw e_1.error; }
89
+ }
90
+ }
91
+ catch (e) {
92
+ if (e.code === nice_grpc_1.Status.CANCELLED) {
93
+ return;
94
+ }
95
+ if (e.code === nice_grpc_1.Status.UNAVAILABLE) {
96
+ listener = yield this.retrySubscribe(workflowRunId);
97
+ }
98
+ }
99
+ });
100
+ }
101
+ retrySubscribe(workflowRunId) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ let retries = 0;
104
+ while (retries < DEFAULT_ACTION_LISTENER_RETRY_COUNT) {
105
+ try {
106
+ yield (0, sleep_1.default)(DEFAULT_ACTION_LISTENER_RETRY_INTERVAL);
107
+ const listener = this.client.subscribeToWorkflowEvents({
108
+ workflowRunId,
109
+ });
110
+ return listener;
111
+ }
112
+ catch (e) {
113
+ retries += 1;
114
+ }
115
+ }
116
+ throw new hatchet_error_1.default(`Could not subscribe to the worker after ${DEFAULT_ACTION_LISTENER_RETRY_COUNT} retries`);
117
+ });
118
+ }
119
+ }
120
+ exports.ListenerClient = ListenerClient;
@@ -13,7 +13,6 @@ export declare class Worker {
13
13
  killing: boolean;
14
14
  handle_kill: boolean;
15
15
  action_registry: ActionRegistry;
16
- concurrency_action_registry: ActionRegistry;
17
16
  listener: ActionListener | undefined;
18
17
  futures: Record<Action['stepRunId'], HatchetPromise<any>>;
19
18
  contexts: Record<Action['stepRunId'], Context<any>>;
@@ -35,7 +35,6 @@ class Worker {
35
35
  this.client = client;
36
36
  this.name = options.name;
37
37
  this.action_registry = {};
38
- this.concurrency_action_registry = {};
39
38
  process.on('SIGTERM', () => this.exitGracefully());
40
39
  process.on('SIGINT', () => this.exitGracefully());
41
40
  this.killing = false;
@@ -46,9 +45,9 @@ class Worker {
46
45
  var _a, _b;
47
46
  return __awaiter(this, void 0, void 0, function* () {
48
47
  try {
49
- const concurrency = ((_a = workflow.concurrency) === null || _a === void 0 ? void 0 : _a.action)
48
+ const concurrency = ((_a = workflow.concurrency) === null || _a === void 0 ? void 0 : _a.name)
50
49
  ? {
51
- action: `${this.serviceName}:${workflow.concurrency.action}`,
50
+ action: `${this.serviceName}:${workflow.concurrency.name}`,
52
51
  maxRuns: workflow.concurrency.maxRuns || 1,
53
52
  limitStrategy: workflow.concurrency.limitStrategy || workflows_1.ConcurrencyLimitStrategy.CANCEL_IN_PROGRESS,
54
53
  }
@@ -87,11 +86,8 @@ class Worker {
87
86
  acc[`${this.serviceName}:${step.name}`] = step.run;
88
87
  return acc;
89
88
  }, {});
90
- this.concurrency_action_registry = ((_b = workflow.concurrency) === null || _b === void 0 ? void 0 : _b.action)
91
- ? {
92
- [`${this.serviceName}:${workflow.concurrency.action}`]: workflow.concurrency.key,
93
- }
94
- : {};
89
+ this.action_registry = ((_b = workflow.concurrency) === null || _b === void 0 ? void 0 : _b.name)
90
+ ? Object.assign(Object.assign({}, this.action_registry), { [`${this.serviceName}:${workflow.concurrency.name}`]: workflow.concurrency.key }) : Object.assign({}, this.action_registry);
95
91
  });
96
92
  }
97
93
  handleStartStepRun(action) {
@@ -148,6 +144,7 @@ class Worker {
148
144
  const context = new step_1.Context(action.actionPayload);
149
145
  const key = action.getGroupKeyRunId;
150
146
  this.contexts[key] = context;
147
+ this.logger.debug(`Starting group key run ${key}`);
151
148
  const step = this.action_registry[actionId];
152
149
  if (!step) {
153
150
  this.logger.error(`Could not find step '${actionId}'`);
@@ -218,17 +215,25 @@ class Worker {
218
215
  };
219
216
  }
220
217
  handleCancelStepRun(action) {
221
- const { stepRunId } = action;
222
- const future = this.futures[stepRunId];
223
- const context = this.contexts[stepRunId];
224
- // TODO send cancel signal to context
225
- // if (context && context.cancel) {
226
- // context.cancel();
227
- // delete this.contexts[stepRunId];
228
- // }
229
- if (future) {
230
- future.cancel();
231
- delete this.futures[stepRunId];
218
+ try {
219
+ this.logger.info(`Cancelling step run ${action.stepRunId}`);
220
+ const { stepRunId } = action;
221
+ const future = this.futures[stepRunId];
222
+ const context = this.contexts[stepRunId];
223
+ if (context && context.controller) {
224
+ context.controller.abort('Cancelled by worker');
225
+ delete this.contexts[stepRunId];
226
+ }
227
+ if (future) {
228
+ future.promise.catch(() => {
229
+ this.logger.info(`Cancelled step run ${action.stepRunId}`);
230
+ });
231
+ future.cancel('Cancelled by worker');
232
+ delete this.futures[stepRunId];
233
+ }
234
+ }
235
+ catch (e) {
236
+ this.logger.error(`Could not cancel step run: ${e.message}`);
232
237
  }
233
238
  }
234
239
  stop() {
package/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { HatchetClient as Hatchet } from './clients/hatchet-client';
2
2
  export * from './workflow';
3
3
  export * from './step';
4
+ export * from './clients/worker';
4
5
  export default Hatchet;
package/index.js CHANGED
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  const hatchet_client_1 = require("./clients/hatchet-client");
18
18
  __exportStar(require("./workflow"), exports);
19
19
  __exportStar(require("./step"), exports);
20
+ __exportStar(require("./clients/worker"), exports);
20
21
  exports.default = hatchet_client_1.HatchetClient;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatchet-dev/typescript-sdk",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Background task orchestration & visibility for developers",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,6 +29,7 @@
29
29
  "exec": "npx dotenv -- ts-node -r tsconfig-paths/register --project tsconfig.json",
30
30
  "example:event": "npm run exec -- ./examples/example-event.ts",
31
31
  "worker:simple": "npm run exec -- ./examples/simple-worker.ts",
32
+ "manual:trigger": "npm run exec -- ./examples/manual-trigger.ts",
32
33
  "worker:dag": "npm run exec -- ./examples/dag-worker.ts",
33
34
  "worker:concurrency": "npm run exec -- ./examples/concurrency/concurrency-worker.ts",
34
35
  "event:concurrency": "npm run exec -- ./examples/concurrency/concurrency-event.ts",
@@ -27,6 +27,25 @@ export declare enum StepActionEventType {
27
27
  }
28
28
  export declare function stepActionEventTypeFromJSON(object: any): StepActionEventType;
29
29
  export declare function stepActionEventTypeToJSON(object: StepActionEventType): string;
30
+ export declare enum ResourceType {
31
+ RESOURCE_TYPE_UNKNOWN = 0,
32
+ RESOURCE_TYPE_STEP_RUN = 1,
33
+ RESOURCE_TYPE_WORKFLOW_RUN = 2,
34
+ UNRECOGNIZED = -1
35
+ }
36
+ export declare function resourceTypeFromJSON(object: any): ResourceType;
37
+ export declare function resourceTypeToJSON(object: ResourceType): string;
38
+ export declare enum ResourceEventType {
39
+ RESOURCE_EVENT_TYPE_UNKNOWN = 0,
40
+ RESOURCE_EVENT_TYPE_STARTED = 1,
41
+ RESOURCE_EVENT_TYPE_COMPLETED = 2,
42
+ RESOURCE_EVENT_TYPE_FAILED = 3,
43
+ RESOURCE_EVENT_TYPE_CANCELLED = 4,
44
+ RESOURCE_EVENT_TYPE_TIMED_OUT = 5,
45
+ UNRECOGNIZED = -1
46
+ }
47
+ export declare function resourceEventTypeFromJSON(object: any): ResourceEventType;
48
+ export declare function resourceEventTypeToJSON(object: ResourceEventType): string;
30
49
  export interface WorkerRegisterRequest {
31
50
  /** the name of the worker */
32
51
  workerName: string;
@@ -120,6 +139,20 @@ export interface ActionEventResponse {
120
139
  /** the id of the worker */
121
140
  workerId: string;
122
141
  }
142
+ export interface SubscribeToWorkflowEventsRequest {
143
+ /** the id of the workflow run */
144
+ workflowRunId: string;
145
+ }
146
+ export interface WorkflowEvent {
147
+ /** the id of the workflow run */
148
+ workflowRunId: string;
149
+ resourceType: ResourceType;
150
+ eventType: ResourceEventType;
151
+ resourceId: string;
152
+ eventTimestamp: Date | undefined;
153
+ /** the event payload */
154
+ eventPayload: string;
155
+ }
123
156
  export declare const WorkerRegisterRequest: {
124
157
  encode(message: WorkerRegisterRequest, writer?: _m0.Writer): _m0.Writer;
125
158
  decode(input: _m0.Reader | Uint8Array, length?: number): WorkerRegisterRequest;
@@ -192,6 +225,22 @@ export declare const ActionEventResponse: {
192
225
  create(base?: DeepPartial<ActionEventResponse>): ActionEventResponse;
193
226
  fromPartial(object: DeepPartial<ActionEventResponse>): ActionEventResponse;
194
227
  };
228
+ export declare const SubscribeToWorkflowEventsRequest: {
229
+ encode(message: SubscribeToWorkflowEventsRequest, writer?: _m0.Writer): _m0.Writer;
230
+ decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeToWorkflowEventsRequest;
231
+ fromJSON(object: any): SubscribeToWorkflowEventsRequest;
232
+ toJSON(message: SubscribeToWorkflowEventsRequest): unknown;
233
+ create(base?: DeepPartial<SubscribeToWorkflowEventsRequest>): SubscribeToWorkflowEventsRequest;
234
+ fromPartial(object: DeepPartial<SubscribeToWorkflowEventsRequest>): SubscribeToWorkflowEventsRequest;
235
+ };
236
+ export declare const WorkflowEvent: {
237
+ encode(message: WorkflowEvent, writer?: _m0.Writer): _m0.Writer;
238
+ decode(input: _m0.Reader | Uint8Array, length?: number): WorkflowEvent;
239
+ fromJSON(object: any): WorkflowEvent;
240
+ toJSON(message: WorkflowEvent): unknown;
241
+ create(base?: DeepPartial<WorkflowEvent>): WorkflowEvent;
242
+ fromPartial(object: DeepPartial<WorkflowEvent>): WorkflowEvent;
243
+ };
195
244
  export type DispatcherDefinition = typeof DispatcherDefinition;
196
245
  export declare const DispatcherDefinition: {
197
246
  readonly name: "Dispatcher";
@@ -241,6 +290,28 @@ export declare const DispatcherDefinition: {
241
290
  readonly responseStream: true;
242
291
  readonly options: {};
243
292
  };
293
+ readonly subscribeToWorkflowEvents: {
294
+ readonly name: "SubscribeToWorkflowEvents";
295
+ readonly requestType: {
296
+ encode(message: SubscribeToWorkflowEventsRequest, writer?: _m0.Writer): _m0.Writer;
297
+ decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeToWorkflowEventsRequest;
298
+ fromJSON(object: any): SubscribeToWorkflowEventsRequest;
299
+ toJSON(message: SubscribeToWorkflowEventsRequest): unknown;
300
+ create(base?: DeepPartial<SubscribeToWorkflowEventsRequest>): SubscribeToWorkflowEventsRequest;
301
+ fromPartial(object: DeepPartial<SubscribeToWorkflowEventsRequest>): SubscribeToWorkflowEventsRequest;
302
+ };
303
+ readonly requestStream: false;
304
+ readonly responseType: {
305
+ encode(message: WorkflowEvent, writer?: _m0.Writer): _m0.Writer;
306
+ decode(input: _m0.Reader | Uint8Array, length?: number): WorkflowEvent;
307
+ fromJSON(object: any): WorkflowEvent;
308
+ toJSON(message: WorkflowEvent): unknown;
309
+ create(base?: DeepPartial<WorkflowEvent>): WorkflowEvent;
310
+ fromPartial(object: DeepPartial<WorkflowEvent>): WorkflowEvent;
311
+ };
312
+ readonly responseStream: true;
313
+ readonly options: {};
314
+ };
244
315
  readonly sendStepActionEvent: {
245
316
  readonly name: "SendStepActionEvent";
246
317
  readonly requestType: {
@@ -312,6 +383,7 @@ export declare const DispatcherDefinition: {
312
383
  export interface DispatcherServiceImplementation<CallContextExt = {}> {
313
384
  register(request: WorkerRegisterRequest, context: CallContext & CallContextExt): Promise<DeepPartial<WorkerRegisterResponse>>;
314
385
  listen(request: WorkerListenRequest, context: CallContext & CallContextExt): ServerStreamingMethodResult<DeepPartial<AssignedAction>>;
386
+ subscribeToWorkflowEvents(request: SubscribeToWorkflowEventsRequest, context: CallContext & CallContextExt): ServerStreamingMethodResult<DeepPartial<WorkflowEvent>>;
315
387
  sendStepActionEvent(request: StepActionEvent, context: CallContext & CallContextExt): Promise<DeepPartial<ActionEventResponse>>;
316
388
  sendGroupKeyActionEvent(request: GroupKeyActionEvent, context: CallContext & CallContextExt): Promise<DeepPartial<ActionEventResponse>>;
317
389
  unsubscribe(request: WorkerUnsubscribeRequest, context: CallContext & CallContextExt): Promise<DeepPartial<WorkerUnsubscribeResponse>>;
@@ -319,6 +391,7 @@ export interface DispatcherServiceImplementation<CallContextExt = {}> {
319
391
  export interface DispatcherClient<CallOptionsExt = {}> {
320
392
  register(request: DeepPartial<WorkerRegisterRequest>, options?: CallOptions & CallOptionsExt): Promise<WorkerRegisterResponse>;
321
393
  listen(request: DeepPartial<WorkerListenRequest>, options?: CallOptions & CallOptionsExt): AsyncIterable<AssignedAction>;
394
+ subscribeToWorkflowEvents(request: DeepPartial<SubscribeToWorkflowEventsRequest>, options?: CallOptions & CallOptionsExt): AsyncIterable<WorkflowEvent>;
322
395
  sendStepActionEvent(request: DeepPartial<StepActionEvent>, options?: CallOptions & CallOptionsExt): Promise<ActionEventResponse>;
323
396
  sendGroupKeyActionEvent(request: DeepPartial<GroupKeyActionEvent>, options?: CallOptions & CallOptionsExt): Promise<ActionEventResponse>;
324
397
  unsubscribe(request: DeepPartial<WorkerUnsubscribeRequest>, options?: CallOptions & CallOptionsExt): Promise<WorkerUnsubscribeResponse>;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DispatcherDefinition = exports.ActionEventResponse = exports.StepActionEvent = exports.GroupKeyActionEvent = exports.WorkerUnsubscribeResponse = exports.WorkerUnsubscribeRequest = exports.WorkerListenRequest = exports.AssignedAction = exports.WorkerRegisterResponse = exports.WorkerRegisterRequest = exports.stepActionEventTypeToJSON = exports.stepActionEventTypeFromJSON = exports.StepActionEventType = exports.groupKeyActionEventTypeToJSON = exports.groupKeyActionEventTypeFromJSON = exports.GroupKeyActionEventType = exports.actionTypeToJSON = exports.actionTypeFromJSON = exports.ActionType = exports.protobufPackage = void 0;
26
+ exports.DispatcherDefinition = exports.WorkflowEvent = exports.SubscribeToWorkflowEventsRequest = exports.ActionEventResponse = exports.StepActionEvent = exports.GroupKeyActionEvent = exports.WorkerUnsubscribeResponse = exports.WorkerUnsubscribeRequest = exports.WorkerListenRequest = exports.AssignedAction = exports.WorkerRegisterResponse = exports.WorkerRegisterRequest = exports.resourceEventTypeToJSON = exports.resourceEventTypeFromJSON = exports.ResourceEventType = exports.resourceTypeToJSON = exports.resourceTypeFromJSON = exports.ResourceType = exports.stepActionEventTypeToJSON = exports.stepActionEventTypeFromJSON = exports.StepActionEventType = exports.groupKeyActionEventTypeToJSON = exports.groupKeyActionEventTypeFromJSON = exports.GroupKeyActionEventType = exports.actionTypeToJSON = exports.actionTypeFromJSON = exports.ActionType = exports.protobufPackage = void 0;
27
27
  const _m0 = __importStar(require("protobufjs/minimal"));
28
28
  const timestamp_1 = require("../google/protobuf/timestamp");
29
29
  exports.protobufPackage = "";
@@ -156,6 +156,102 @@ function stepActionEventTypeToJSON(object) {
156
156
  }
157
157
  }
158
158
  exports.stepActionEventTypeToJSON = stepActionEventTypeToJSON;
159
+ var ResourceType;
160
+ (function (ResourceType) {
161
+ ResourceType[ResourceType["RESOURCE_TYPE_UNKNOWN"] = 0] = "RESOURCE_TYPE_UNKNOWN";
162
+ ResourceType[ResourceType["RESOURCE_TYPE_STEP_RUN"] = 1] = "RESOURCE_TYPE_STEP_RUN";
163
+ ResourceType[ResourceType["RESOURCE_TYPE_WORKFLOW_RUN"] = 2] = "RESOURCE_TYPE_WORKFLOW_RUN";
164
+ ResourceType[ResourceType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
165
+ })(ResourceType || (exports.ResourceType = ResourceType = {}));
166
+ function resourceTypeFromJSON(object) {
167
+ switch (object) {
168
+ case 0:
169
+ case "RESOURCE_TYPE_UNKNOWN":
170
+ return ResourceType.RESOURCE_TYPE_UNKNOWN;
171
+ case 1:
172
+ case "RESOURCE_TYPE_STEP_RUN":
173
+ return ResourceType.RESOURCE_TYPE_STEP_RUN;
174
+ case 2:
175
+ case "RESOURCE_TYPE_WORKFLOW_RUN":
176
+ return ResourceType.RESOURCE_TYPE_WORKFLOW_RUN;
177
+ case -1:
178
+ case "UNRECOGNIZED":
179
+ default:
180
+ return ResourceType.UNRECOGNIZED;
181
+ }
182
+ }
183
+ exports.resourceTypeFromJSON = resourceTypeFromJSON;
184
+ function resourceTypeToJSON(object) {
185
+ switch (object) {
186
+ case ResourceType.RESOURCE_TYPE_UNKNOWN:
187
+ return "RESOURCE_TYPE_UNKNOWN";
188
+ case ResourceType.RESOURCE_TYPE_STEP_RUN:
189
+ return "RESOURCE_TYPE_STEP_RUN";
190
+ case ResourceType.RESOURCE_TYPE_WORKFLOW_RUN:
191
+ return "RESOURCE_TYPE_WORKFLOW_RUN";
192
+ case ResourceType.UNRECOGNIZED:
193
+ default:
194
+ return "UNRECOGNIZED";
195
+ }
196
+ }
197
+ exports.resourceTypeToJSON = resourceTypeToJSON;
198
+ var ResourceEventType;
199
+ (function (ResourceEventType) {
200
+ ResourceEventType[ResourceEventType["RESOURCE_EVENT_TYPE_UNKNOWN"] = 0] = "RESOURCE_EVENT_TYPE_UNKNOWN";
201
+ ResourceEventType[ResourceEventType["RESOURCE_EVENT_TYPE_STARTED"] = 1] = "RESOURCE_EVENT_TYPE_STARTED";
202
+ ResourceEventType[ResourceEventType["RESOURCE_EVENT_TYPE_COMPLETED"] = 2] = "RESOURCE_EVENT_TYPE_COMPLETED";
203
+ ResourceEventType[ResourceEventType["RESOURCE_EVENT_TYPE_FAILED"] = 3] = "RESOURCE_EVENT_TYPE_FAILED";
204
+ ResourceEventType[ResourceEventType["RESOURCE_EVENT_TYPE_CANCELLED"] = 4] = "RESOURCE_EVENT_TYPE_CANCELLED";
205
+ ResourceEventType[ResourceEventType["RESOURCE_EVENT_TYPE_TIMED_OUT"] = 5] = "RESOURCE_EVENT_TYPE_TIMED_OUT";
206
+ ResourceEventType[ResourceEventType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
207
+ })(ResourceEventType || (exports.ResourceEventType = ResourceEventType = {}));
208
+ function resourceEventTypeFromJSON(object) {
209
+ switch (object) {
210
+ case 0:
211
+ case "RESOURCE_EVENT_TYPE_UNKNOWN":
212
+ return ResourceEventType.RESOURCE_EVENT_TYPE_UNKNOWN;
213
+ case 1:
214
+ case "RESOURCE_EVENT_TYPE_STARTED":
215
+ return ResourceEventType.RESOURCE_EVENT_TYPE_STARTED;
216
+ case 2:
217
+ case "RESOURCE_EVENT_TYPE_COMPLETED":
218
+ return ResourceEventType.RESOURCE_EVENT_TYPE_COMPLETED;
219
+ case 3:
220
+ case "RESOURCE_EVENT_TYPE_FAILED":
221
+ return ResourceEventType.RESOURCE_EVENT_TYPE_FAILED;
222
+ case 4:
223
+ case "RESOURCE_EVENT_TYPE_CANCELLED":
224
+ return ResourceEventType.RESOURCE_EVENT_TYPE_CANCELLED;
225
+ case 5:
226
+ case "RESOURCE_EVENT_TYPE_TIMED_OUT":
227
+ return ResourceEventType.RESOURCE_EVENT_TYPE_TIMED_OUT;
228
+ case -1:
229
+ case "UNRECOGNIZED":
230
+ default:
231
+ return ResourceEventType.UNRECOGNIZED;
232
+ }
233
+ }
234
+ exports.resourceEventTypeFromJSON = resourceEventTypeFromJSON;
235
+ function resourceEventTypeToJSON(object) {
236
+ switch (object) {
237
+ case ResourceEventType.RESOURCE_EVENT_TYPE_UNKNOWN:
238
+ return "RESOURCE_EVENT_TYPE_UNKNOWN";
239
+ case ResourceEventType.RESOURCE_EVENT_TYPE_STARTED:
240
+ return "RESOURCE_EVENT_TYPE_STARTED";
241
+ case ResourceEventType.RESOURCE_EVENT_TYPE_COMPLETED:
242
+ return "RESOURCE_EVENT_TYPE_COMPLETED";
243
+ case ResourceEventType.RESOURCE_EVENT_TYPE_FAILED:
244
+ return "RESOURCE_EVENT_TYPE_FAILED";
245
+ case ResourceEventType.RESOURCE_EVENT_TYPE_CANCELLED:
246
+ return "RESOURCE_EVENT_TYPE_CANCELLED";
247
+ case ResourceEventType.RESOURCE_EVENT_TYPE_TIMED_OUT:
248
+ return "RESOURCE_EVENT_TYPE_TIMED_OUT";
249
+ case ResourceEventType.UNRECOGNIZED:
250
+ default:
251
+ return "UNRECOGNIZED";
252
+ }
253
+ }
254
+ exports.resourceEventTypeToJSON = resourceEventTypeToJSON;
159
255
  function createBaseWorkerRegisterRequest() {
160
256
  return { workerName: "", actions: [], services: [] };
161
257
  }
@@ -1080,6 +1176,187 @@ exports.ActionEventResponse = {
1080
1176
  return message;
1081
1177
  },
1082
1178
  };
1179
+ function createBaseSubscribeToWorkflowEventsRequest() {
1180
+ return { workflowRunId: "" };
1181
+ }
1182
+ exports.SubscribeToWorkflowEventsRequest = {
1183
+ encode(message, writer = _m0.Writer.create()) {
1184
+ if (message.workflowRunId !== "") {
1185
+ writer.uint32(10).string(message.workflowRunId);
1186
+ }
1187
+ return writer;
1188
+ },
1189
+ decode(input, length) {
1190
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1191
+ let end = length === undefined ? reader.len : reader.pos + length;
1192
+ const message = createBaseSubscribeToWorkflowEventsRequest();
1193
+ while (reader.pos < end) {
1194
+ const tag = reader.uint32();
1195
+ switch (tag >>> 3) {
1196
+ case 1:
1197
+ if (tag !== 10) {
1198
+ break;
1199
+ }
1200
+ message.workflowRunId = reader.string();
1201
+ continue;
1202
+ }
1203
+ if ((tag & 7) === 4 || tag === 0) {
1204
+ break;
1205
+ }
1206
+ reader.skipType(tag & 7);
1207
+ }
1208
+ return message;
1209
+ },
1210
+ fromJSON(object) {
1211
+ return { workflowRunId: isSet(object.workflowRunId) ? globalThis.String(object.workflowRunId) : "" };
1212
+ },
1213
+ toJSON(message) {
1214
+ const obj = {};
1215
+ if (message.workflowRunId !== "") {
1216
+ obj.workflowRunId = message.workflowRunId;
1217
+ }
1218
+ return obj;
1219
+ },
1220
+ create(base) {
1221
+ return exports.SubscribeToWorkflowEventsRequest.fromPartial(base !== null && base !== void 0 ? base : {});
1222
+ },
1223
+ fromPartial(object) {
1224
+ var _a;
1225
+ const message = createBaseSubscribeToWorkflowEventsRequest();
1226
+ message.workflowRunId = (_a = object.workflowRunId) !== null && _a !== void 0 ? _a : "";
1227
+ return message;
1228
+ },
1229
+ };
1230
+ function createBaseWorkflowEvent() {
1231
+ return {
1232
+ workflowRunId: "",
1233
+ resourceType: 0,
1234
+ eventType: 0,
1235
+ resourceId: "",
1236
+ eventTimestamp: undefined,
1237
+ eventPayload: "",
1238
+ };
1239
+ }
1240
+ exports.WorkflowEvent = {
1241
+ encode(message, writer = _m0.Writer.create()) {
1242
+ if (message.workflowRunId !== "") {
1243
+ writer.uint32(10).string(message.workflowRunId);
1244
+ }
1245
+ if (message.resourceType !== 0) {
1246
+ writer.uint32(16).int32(message.resourceType);
1247
+ }
1248
+ if (message.eventType !== 0) {
1249
+ writer.uint32(24).int32(message.eventType);
1250
+ }
1251
+ if (message.resourceId !== "") {
1252
+ writer.uint32(34).string(message.resourceId);
1253
+ }
1254
+ if (message.eventTimestamp !== undefined) {
1255
+ timestamp_1.Timestamp.encode(toTimestamp(message.eventTimestamp), writer.uint32(42).fork()).ldelim();
1256
+ }
1257
+ if (message.eventPayload !== "") {
1258
+ writer.uint32(50).string(message.eventPayload);
1259
+ }
1260
+ return writer;
1261
+ },
1262
+ decode(input, length) {
1263
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1264
+ let end = length === undefined ? reader.len : reader.pos + length;
1265
+ const message = createBaseWorkflowEvent();
1266
+ while (reader.pos < end) {
1267
+ const tag = reader.uint32();
1268
+ switch (tag >>> 3) {
1269
+ case 1:
1270
+ if (tag !== 10) {
1271
+ break;
1272
+ }
1273
+ message.workflowRunId = reader.string();
1274
+ continue;
1275
+ case 2:
1276
+ if (tag !== 16) {
1277
+ break;
1278
+ }
1279
+ message.resourceType = reader.int32();
1280
+ continue;
1281
+ case 3:
1282
+ if (tag !== 24) {
1283
+ break;
1284
+ }
1285
+ message.eventType = reader.int32();
1286
+ continue;
1287
+ case 4:
1288
+ if (tag !== 34) {
1289
+ break;
1290
+ }
1291
+ message.resourceId = reader.string();
1292
+ continue;
1293
+ case 5:
1294
+ if (tag !== 42) {
1295
+ break;
1296
+ }
1297
+ message.eventTimestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
1298
+ continue;
1299
+ case 6:
1300
+ if (tag !== 50) {
1301
+ break;
1302
+ }
1303
+ message.eventPayload = reader.string();
1304
+ continue;
1305
+ }
1306
+ if ((tag & 7) === 4 || tag === 0) {
1307
+ break;
1308
+ }
1309
+ reader.skipType(tag & 7);
1310
+ }
1311
+ return message;
1312
+ },
1313
+ fromJSON(object) {
1314
+ return {
1315
+ workflowRunId: isSet(object.workflowRunId) ? globalThis.String(object.workflowRunId) : "",
1316
+ resourceType: isSet(object.resourceType) ? resourceTypeFromJSON(object.resourceType) : 0,
1317
+ eventType: isSet(object.eventType) ? resourceEventTypeFromJSON(object.eventType) : 0,
1318
+ resourceId: isSet(object.resourceId) ? globalThis.String(object.resourceId) : "",
1319
+ eventTimestamp: isSet(object.eventTimestamp) ? fromJsonTimestamp(object.eventTimestamp) : undefined,
1320
+ eventPayload: isSet(object.eventPayload) ? globalThis.String(object.eventPayload) : "",
1321
+ };
1322
+ },
1323
+ toJSON(message) {
1324
+ const obj = {};
1325
+ if (message.workflowRunId !== "") {
1326
+ obj.workflowRunId = message.workflowRunId;
1327
+ }
1328
+ if (message.resourceType !== 0) {
1329
+ obj.resourceType = resourceTypeToJSON(message.resourceType);
1330
+ }
1331
+ if (message.eventType !== 0) {
1332
+ obj.eventType = resourceEventTypeToJSON(message.eventType);
1333
+ }
1334
+ if (message.resourceId !== "") {
1335
+ obj.resourceId = message.resourceId;
1336
+ }
1337
+ if (message.eventTimestamp !== undefined) {
1338
+ obj.eventTimestamp = message.eventTimestamp.toISOString();
1339
+ }
1340
+ if (message.eventPayload !== "") {
1341
+ obj.eventPayload = message.eventPayload;
1342
+ }
1343
+ return obj;
1344
+ },
1345
+ create(base) {
1346
+ return exports.WorkflowEvent.fromPartial(base !== null && base !== void 0 ? base : {});
1347
+ },
1348
+ fromPartial(object) {
1349
+ var _a, _b, _c, _d, _e, _f;
1350
+ const message = createBaseWorkflowEvent();
1351
+ message.workflowRunId = (_a = object.workflowRunId) !== null && _a !== void 0 ? _a : "";
1352
+ message.resourceType = (_b = object.resourceType) !== null && _b !== void 0 ? _b : 0;
1353
+ message.eventType = (_c = object.eventType) !== null && _c !== void 0 ? _c : 0;
1354
+ message.resourceId = (_d = object.resourceId) !== null && _d !== void 0 ? _d : "";
1355
+ message.eventTimestamp = (_e = object.eventTimestamp) !== null && _e !== void 0 ? _e : undefined;
1356
+ message.eventPayload = (_f = object.eventPayload) !== null && _f !== void 0 ? _f : "";
1357
+ return message;
1358
+ },
1359
+ };
1083
1360
  exports.DispatcherDefinition = {
1084
1361
  name: "Dispatcher",
1085
1362
  fullName: "Dispatcher",
@@ -1100,6 +1377,14 @@ exports.DispatcherDefinition = {
1100
1377
  responseStream: true,
1101
1378
  options: {},
1102
1379
  },
1380
+ subscribeToWorkflowEvents: {
1381
+ name: "SubscribeToWorkflowEvents",
1382
+ requestType: exports.SubscribeToWorkflowEventsRequest,
1383
+ requestStream: false,
1384
+ responseType: exports.WorkflowEvent,
1385
+ responseStream: true,
1386
+ options: {},
1387
+ },
1103
1388
  sendStepActionEvent: {
1104
1389
  name: "SendStepActionEvent",
1105
1390
  requestType: exports.StepActionEvent,
@@ -157,6 +157,14 @@ export interface DeleteWorkflowRequest {
157
157
  export interface GetWorkflowByNameRequest {
158
158
  name: string;
159
159
  }
160
+ export interface TriggerWorkflowRequest {
161
+ name: string;
162
+ /** (optional) the input data for the workflow */
163
+ input: string;
164
+ }
165
+ export interface TriggerWorkflowResponse {
166
+ workflowRunId: string;
167
+ }
160
168
  export declare const PutWorkflowRequest: {
161
169
  encode(message: PutWorkflowRequest, writer?: _m0.Writer): _m0.Writer;
162
170
  decode(input: _m0.Reader | Uint8Array, length?: number): PutWorkflowRequest;
@@ -301,6 +309,22 @@ export declare const GetWorkflowByNameRequest: {
301
309
  create(base?: DeepPartial<GetWorkflowByNameRequest>): GetWorkflowByNameRequest;
302
310
  fromPartial(object: DeepPartial<GetWorkflowByNameRequest>): GetWorkflowByNameRequest;
303
311
  };
312
+ export declare const TriggerWorkflowRequest: {
313
+ encode(message: TriggerWorkflowRequest, writer?: _m0.Writer): _m0.Writer;
314
+ decode(input: _m0.Reader | Uint8Array, length?: number): TriggerWorkflowRequest;
315
+ fromJSON(object: any): TriggerWorkflowRequest;
316
+ toJSON(message: TriggerWorkflowRequest): unknown;
317
+ create(base?: DeepPartial<TriggerWorkflowRequest>): TriggerWorkflowRequest;
318
+ fromPartial(object: DeepPartial<TriggerWorkflowRequest>): TriggerWorkflowRequest;
319
+ };
320
+ export declare const TriggerWorkflowResponse: {
321
+ encode(message: TriggerWorkflowResponse, writer?: _m0.Writer): _m0.Writer;
322
+ decode(input: _m0.Reader | Uint8Array, length?: number): TriggerWorkflowResponse;
323
+ fromJSON(object: any): TriggerWorkflowResponse;
324
+ toJSON(message: TriggerWorkflowResponse): unknown;
325
+ create(base?: DeepPartial<TriggerWorkflowResponse>): TriggerWorkflowResponse;
326
+ fromPartial(object: DeepPartial<TriggerWorkflowResponse>): TriggerWorkflowResponse;
327
+ };
304
328
  /** WorkflowService represents a set of RPCs for managing workflows. */
305
329
  export type WorkflowServiceDefinition = typeof WorkflowServiceDefinition;
306
330
  export declare const WorkflowServiceDefinition: {
@@ -373,6 +397,28 @@ export declare const WorkflowServiceDefinition: {
373
397
  readonly responseStream: false;
374
398
  readonly options: {};
375
399
  };
400
+ readonly triggerWorkflow: {
401
+ readonly name: "TriggerWorkflow";
402
+ readonly requestType: {
403
+ encode(message: TriggerWorkflowRequest, writer?: _m0.Writer): _m0.Writer;
404
+ decode(input: _m0.Reader | Uint8Array, length?: number): TriggerWorkflowRequest;
405
+ fromJSON(object: any): TriggerWorkflowRequest;
406
+ toJSON(message: TriggerWorkflowRequest): unknown;
407
+ create(base?: DeepPartial<TriggerWorkflowRequest>): TriggerWorkflowRequest;
408
+ fromPartial(object: DeepPartial<TriggerWorkflowRequest>): TriggerWorkflowRequest;
409
+ };
410
+ readonly requestStream: false;
411
+ readonly responseType: {
412
+ encode(message: TriggerWorkflowResponse, writer?: _m0.Writer): _m0.Writer;
413
+ decode(input: _m0.Reader | Uint8Array, length?: number): TriggerWorkflowResponse;
414
+ fromJSON(object: any): TriggerWorkflowResponse;
415
+ toJSON(message: TriggerWorkflowResponse): unknown;
416
+ create(base?: DeepPartial<TriggerWorkflowResponse>): TriggerWorkflowResponse;
417
+ fromPartial(object: DeepPartial<TriggerWorkflowResponse>): TriggerWorkflowResponse;
418
+ };
419
+ readonly responseStream: false;
420
+ readonly options: {};
421
+ };
376
422
  readonly getWorkflowByName: {
377
423
  readonly name: "GetWorkflowByName";
378
424
  readonly requestType: {
@@ -445,6 +491,7 @@ export interface WorkflowServiceImplementation<CallContextExt = {}> {
445
491
  listWorkflows(request: ListWorkflowsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ListWorkflowsResponse>>;
446
492
  putWorkflow(request: PutWorkflowRequest, context: CallContext & CallContextExt): Promise<DeepPartial<WorkflowVersion>>;
447
493
  scheduleWorkflow(request: ScheduleWorkflowRequest, context: CallContext & CallContextExt): Promise<DeepPartial<WorkflowVersion>>;
494
+ triggerWorkflow(request: TriggerWorkflowRequest, context: CallContext & CallContextExt): Promise<DeepPartial<TriggerWorkflowResponse>>;
448
495
  getWorkflowByName(request: GetWorkflowByNameRequest, context: CallContext & CallContextExt): Promise<DeepPartial<Workflow>>;
449
496
  listWorkflowsForEvent(request: ListWorkflowsForEventRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ListWorkflowsResponse>>;
450
497
  deleteWorkflow(request: DeleteWorkflowRequest, context: CallContext & CallContextExt): Promise<DeepPartial<Workflow>>;
@@ -453,6 +500,7 @@ export interface WorkflowServiceClient<CallOptionsExt = {}> {
453
500
  listWorkflows(request: DeepPartial<ListWorkflowsRequest>, options?: CallOptions & CallOptionsExt): Promise<ListWorkflowsResponse>;
454
501
  putWorkflow(request: DeepPartial<PutWorkflowRequest>, options?: CallOptions & CallOptionsExt): Promise<WorkflowVersion>;
455
502
  scheduleWorkflow(request: DeepPartial<ScheduleWorkflowRequest>, options?: CallOptions & CallOptionsExt): Promise<WorkflowVersion>;
503
+ triggerWorkflow(request: DeepPartial<TriggerWorkflowRequest>, options?: CallOptions & CallOptionsExt): Promise<TriggerWorkflowResponse>;
456
504
  getWorkflowByName(request: DeepPartial<GetWorkflowByNameRequest>, options?: CallOptions & CallOptionsExt): Promise<Workflow>;
457
505
  listWorkflowsForEvent(request: DeepPartial<ListWorkflowsForEventRequest>, options?: CallOptions & CallOptionsExt): Promise<ListWorkflowsResponse>;
458
506
  deleteWorkflow(request: DeepPartial<DeleteWorkflowRequest>, options?: CallOptions & CallOptionsExt): Promise<Workflow>;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.WorkflowServiceDefinition = exports.GetWorkflowByNameRequest = exports.DeleteWorkflowRequest = exports.Step = exports.Job = exports.WorkflowTriggerCronRef = exports.WorkflowTriggerEventRef = exports.WorkflowTriggers = exports.WorkflowVersion = exports.Workflow = exports.ListWorkflowsForEventRequest = exports.ListWorkflowsResponse = exports.ScheduleWorkflowRequest = exports.ListWorkflowsRequest = exports.CreateWorkflowStepOpts = exports.CreateWorkflowJobOpts = exports.WorkflowConcurrencyOpts = exports.CreateWorkflowVersionOpts = exports.PutWorkflowRequest = exports.concurrencyLimitStrategyToJSON = exports.concurrencyLimitStrategyFromJSON = exports.ConcurrencyLimitStrategy = exports.protobufPackage = void 0;
26
+ exports.WorkflowServiceDefinition = exports.TriggerWorkflowResponse = exports.TriggerWorkflowRequest = exports.GetWorkflowByNameRequest = exports.DeleteWorkflowRequest = exports.Step = exports.Job = exports.WorkflowTriggerCronRef = exports.WorkflowTriggerEventRef = exports.WorkflowTriggers = exports.WorkflowVersion = exports.Workflow = exports.ListWorkflowsForEventRequest = exports.ListWorkflowsResponse = exports.ScheduleWorkflowRequest = exports.ListWorkflowsRequest = exports.CreateWorkflowStepOpts = exports.CreateWorkflowJobOpts = exports.WorkflowConcurrencyOpts = exports.CreateWorkflowVersionOpts = exports.PutWorkflowRequest = exports.concurrencyLimitStrategyToJSON = exports.concurrencyLimitStrategyFromJSON = exports.ConcurrencyLimitStrategy = exports.protobufPackage = void 0;
27
27
  const _m0 = __importStar(require("protobufjs/minimal"));
28
28
  const timestamp_1 = require("../google/protobuf/timestamp");
29
29
  const wrappers_1 = require("../google/protobuf/wrappers");
@@ -1871,6 +1871,124 @@ exports.GetWorkflowByNameRequest = {
1871
1871
  return message;
1872
1872
  },
1873
1873
  };
1874
+ function createBaseTriggerWorkflowRequest() {
1875
+ return { name: "", input: "" };
1876
+ }
1877
+ exports.TriggerWorkflowRequest = {
1878
+ encode(message, writer = _m0.Writer.create()) {
1879
+ if (message.name !== "") {
1880
+ writer.uint32(10).string(message.name);
1881
+ }
1882
+ if (message.input !== "") {
1883
+ writer.uint32(18).string(message.input);
1884
+ }
1885
+ return writer;
1886
+ },
1887
+ decode(input, length) {
1888
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1889
+ let end = length === undefined ? reader.len : reader.pos + length;
1890
+ const message = createBaseTriggerWorkflowRequest();
1891
+ while (reader.pos < end) {
1892
+ const tag = reader.uint32();
1893
+ switch (tag >>> 3) {
1894
+ case 1:
1895
+ if (tag !== 10) {
1896
+ break;
1897
+ }
1898
+ message.name = reader.string();
1899
+ continue;
1900
+ case 2:
1901
+ if (tag !== 18) {
1902
+ break;
1903
+ }
1904
+ message.input = reader.string();
1905
+ continue;
1906
+ }
1907
+ if ((tag & 7) === 4 || tag === 0) {
1908
+ break;
1909
+ }
1910
+ reader.skipType(tag & 7);
1911
+ }
1912
+ return message;
1913
+ },
1914
+ fromJSON(object) {
1915
+ return {
1916
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
1917
+ input: isSet(object.input) ? globalThis.String(object.input) : "",
1918
+ };
1919
+ },
1920
+ toJSON(message) {
1921
+ const obj = {};
1922
+ if (message.name !== "") {
1923
+ obj.name = message.name;
1924
+ }
1925
+ if (message.input !== "") {
1926
+ obj.input = message.input;
1927
+ }
1928
+ return obj;
1929
+ },
1930
+ create(base) {
1931
+ return exports.TriggerWorkflowRequest.fromPartial(base !== null && base !== void 0 ? base : {});
1932
+ },
1933
+ fromPartial(object) {
1934
+ var _a, _b;
1935
+ const message = createBaseTriggerWorkflowRequest();
1936
+ message.name = (_a = object.name) !== null && _a !== void 0 ? _a : "";
1937
+ message.input = (_b = object.input) !== null && _b !== void 0 ? _b : "";
1938
+ return message;
1939
+ },
1940
+ };
1941
+ function createBaseTriggerWorkflowResponse() {
1942
+ return { workflowRunId: "" };
1943
+ }
1944
+ exports.TriggerWorkflowResponse = {
1945
+ encode(message, writer = _m0.Writer.create()) {
1946
+ if (message.workflowRunId !== "") {
1947
+ writer.uint32(10).string(message.workflowRunId);
1948
+ }
1949
+ return writer;
1950
+ },
1951
+ decode(input, length) {
1952
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1953
+ let end = length === undefined ? reader.len : reader.pos + length;
1954
+ const message = createBaseTriggerWorkflowResponse();
1955
+ while (reader.pos < end) {
1956
+ const tag = reader.uint32();
1957
+ switch (tag >>> 3) {
1958
+ case 1:
1959
+ if (tag !== 10) {
1960
+ break;
1961
+ }
1962
+ message.workflowRunId = reader.string();
1963
+ continue;
1964
+ }
1965
+ if ((tag & 7) === 4 || tag === 0) {
1966
+ break;
1967
+ }
1968
+ reader.skipType(tag & 7);
1969
+ }
1970
+ return message;
1971
+ },
1972
+ fromJSON(object) {
1973
+ return { workflowRunId: isSet(object.workflowRunId) ? globalThis.String(object.workflowRunId) : "" };
1974
+ },
1975
+ toJSON(message) {
1976
+ const obj = {};
1977
+ if (message.workflowRunId !== "") {
1978
+ obj.workflowRunId = message.workflowRunId;
1979
+ }
1980
+ return obj;
1981
+ },
1982
+ create(base) {
1983
+ return exports.TriggerWorkflowResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1984
+ },
1985
+ fromPartial(object) {
1986
+ var _a;
1987
+ const message = createBaseTriggerWorkflowResponse();
1988
+ message.workflowRunId = (_a = object.workflowRunId) !== null && _a !== void 0 ? _a : "";
1989
+ return message;
1990
+ },
1991
+ };
1874
1992
  exports.WorkflowServiceDefinition = {
1875
1993
  name: "WorkflowService",
1876
1994
  fullName: "WorkflowService",
@@ -1899,6 +2017,14 @@ exports.WorkflowServiceDefinition = {
1899
2017
  responseStream: false,
1900
2018
  options: {},
1901
2019
  },
2020
+ triggerWorkflow: {
2021
+ name: "TriggerWorkflow",
2022
+ requestType: exports.TriggerWorkflowRequest,
2023
+ requestStream: false,
2024
+ responseType: exports.TriggerWorkflowResponse,
2025
+ responseStream: false,
2026
+ options: {},
2027
+ },
1902
2028
  getWorkflowByName: {
1903
2029
  name: "GetWorkflowByName",
1904
2030
  requestType: exports.GetWorkflowByNameRequest,
package/step.d.ts CHANGED
@@ -22,6 +22,7 @@ interface ContextData<T = unknown> {
22
22
  }
23
23
  export declare class Context<T = unknown> {
24
24
  data: ContextData<T>;
25
+ controller: AbortController;
25
26
  constructor(payload: string);
26
27
  stepOutput(step: string): string;
27
28
  triggeredByEvent(): boolean;
package/step.js CHANGED
@@ -37,6 +37,7 @@ exports.CreateStepSchema = z.object({
37
37
  });
38
38
  class Context {
39
39
  constructor(payload) {
40
+ this.controller = new AbortController();
40
41
  try {
41
42
  this.data = JSON.parse(JSON.parse(payload));
42
43
  }
package/workflow.d.ts CHANGED
@@ -17,15 +17,15 @@ declare const StepsSchema: z.ZodArray<z.ZodObject<{
17
17
  export type Steps = z.infer<typeof StepsSchema>;
18
18
  export declare const ConcurrencyLimitStrategy: typeof PbConcurrencyLimitStrategy;
19
19
  export declare const WorkflowConcurrency: z.ZodObject<{
20
- action: z.ZodOptional<z.ZodString>;
20
+ name: z.ZodString;
21
21
  maxRuns: z.ZodOptional<z.ZodNumber>;
22
22
  limitStrategy: z.ZodOptional<z.ZodNativeEnum<typeof PbConcurrencyLimitStrategy>>;
23
23
  }, "strip", z.ZodTypeAny, {
24
- action?: string | undefined;
24
+ name: string;
25
25
  maxRuns?: number | undefined;
26
26
  limitStrategy?: PbConcurrencyLimitStrategy | undefined;
27
27
  }, {
28
- action?: string | undefined;
28
+ name: string;
29
29
  maxRuns?: number | undefined;
30
30
  limitStrategy?: PbConcurrencyLimitStrategy | undefined;
31
31
  }>;
package/workflow.js CHANGED
@@ -39,7 +39,7 @@ const OnConfigSchema = z.union([CronConfigSchema, EventConfigSchema]);
39
39
  const StepsSchema = z.array(step_1.CreateStepSchema);
40
40
  exports.ConcurrencyLimitStrategy = workflows_1.ConcurrencyLimitStrategy;
41
41
  exports.WorkflowConcurrency = z.object({
42
- action: z.string().optional(),
42
+ name: z.string(),
43
43
  maxRuns: z.number().optional(),
44
44
  limitStrategy: z.nativeEnum(exports.ConcurrencyLimitStrategy).optional(),
45
45
  });