@hatchet-dev/typescript-sdk 0.1.10 → 0.1.12

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;
@@ -78,7 +79,7 @@ class HatchetClient {
78
79
  // Initializes a new Client instance.
79
80
  // Loads config in the following order: config param > yaml file > env vars
80
81
  var _a;
81
- const loaded = config_loader_1.ConfigLoader.load_client_config({
82
+ const loaded = config_loader_1.ConfigLoader.loadClientConfig({
82
83
  path: options === null || options === void 0 ? void 0 : options.config_path,
83
84
  });
84
85
  try {
@@ -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;
@@ -220,7 +220,6 @@ class Worker {
220
220
  const { stepRunId } = action;
221
221
  const future = this.futures[stepRunId];
222
222
  const context = this.contexts[stepRunId];
223
- // TODO send cancel signal to context
224
223
  if (context && context.controller) {
225
224
  context.controller.abort('Cancelled by worker');
226
225
  delete this.contexts[stepRunId];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatchet-dev/typescript-sdk",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
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",
@@ -71,4 +72,4 @@
71
72
  "yaml": "^2.3.4",
72
73
  "zod": "^3.22.4"
73
74
  }
74
- }
75
+ }
@@ -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,
@@ -4,10 +4,10 @@ interface LoadClientConfigOptions {
4
4
  path?: string;
5
5
  }
6
6
  export declare class ConfigLoader {
7
- static load_client_config(config?: LoadClientConfigOptions): Partial<ClientConfig>;
7
+ static loadClientConfig(config?: LoadClientConfigOptions): Partial<ClientConfig>;
8
8
  static get default_yaml_config_path(): string;
9
9
  static createCredentials(config: ClientConfig['tls_config']): ChannelCredentials;
10
- static load_yaml_config(path?: string): ClientConfig | undefined;
10
+ static loadYamlConfig(path?: string): ClientConfig | undefined;
11
11
  private static env;
12
12
  }
13
13
  export {};
@@ -30,11 +30,12 @@ const p = __importStar(require("path"));
30
30
  const zod_1 = require("zod");
31
31
  const hatchet_client_1 = require("../../clients/hatchet-client");
32
32
  const nice_grpc_1 = require("nice-grpc");
33
+ const token_1 = require("./token");
33
34
  const DEFAULT_CONFIG_FILE = '.hatchet.yaml';
34
35
  class ConfigLoader {
35
- static load_client_config(config) {
36
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
37
- const yaml = this.load_yaml_config(config === null || config === void 0 ? void 0 : config.path);
36
+ static loadClientConfig(config) {
37
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
38
+ const yaml = this.loadYamlConfig(config === null || config === void 0 ? void 0 : config.path);
38
39
  const tlsConfig = {
39
40
  tls_strategy: (_c = (_b = (_a = yaml === null || yaml === void 0 ? void 0 : yaml.tls_config) === null || _a === void 0 ? void 0 : _a.tls_strategy) !== null && _b !== void 0 ? _b : this.env('HATCHET_CLIENT_TLS_STRATEGY')) !== null && _c !== void 0 ? _c : 'tls',
40
41
  cert_file: (_e = (_d = yaml === null || yaml === void 0 ? void 0 : yaml.tls_config) === null || _d === void 0 ? void 0 : _d.cert_file) !== null && _e !== void 0 ? _e : this.env('HATCHET_CLIENT_TLS_CERT_FILE'),
@@ -42,11 +43,21 @@ class ConfigLoader {
42
43
  ca_file: (_j = (_h = yaml === null || yaml === void 0 ? void 0 : yaml.tls_config) === null || _h === void 0 ? void 0 : _h.ca_file) !== null && _j !== void 0 ? _j : this.env('HATCHET_CLIENT_TLS_ROOT_CA_FILE'),
43
44
  server_name: (_l = (_k = yaml === null || yaml === void 0 ? void 0 : yaml.tls_config) === null || _k === void 0 ? void 0 : _k.server_name) !== null && _l !== void 0 ? _l : this.env('HATCHET_CLIENT_TLS_SERVER_NAME'),
44
45
  };
46
+ const token = (_m = yaml === null || yaml === void 0 ? void 0 : yaml.token) !== null && _m !== void 0 ? _m : this.env('HATCHET_CLIENT_TOKEN');
47
+ let grpcBroadcastAddress;
48
+ try {
49
+ const addresses = (0, token_1.getAddressesFromJWT)(token);
50
+ grpcBroadcastAddress =
51
+ (_p = (_o = yaml === null || yaml === void 0 ? void 0 : yaml.host_port) !== null && _o !== void 0 ? _o : this.env('HATCHET_CLIENT_HOST_PORT')) !== null && _p !== void 0 ? _p : addresses.grpcBroadcastAddress;
52
+ }
53
+ catch (e) {
54
+ grpcBroadcastAddress = (_q = yaml === null || yaml === void 0 ? void 0 : yaml.host_port) !== null && _q !== void 0 ? _q : this.env('HATCHET_CLIENT_HOST_PORT');
55
+ }
45
56
  return {
46
- token: (_m = yaml === null || yaml === void 0 ? void 0 : yaml.token) !== null && _m !== void 0 ? _m : this.env('HATCHET_CLIENT_TOKEN'),
47
- host_port: (_o = yaml === null || yaml === void 0 ? void 0 : yaml.host_port) !== null && _o !== void 0 ? _o : this.env('HATCHET_CLIENT_HOST_PORT'),
57
+ token: (_r = yaml === null || yaml === void 0 ? void 0 : yaml.token) !== null && _r !== void 0 ? _r : this.env('HATCHET_CLIENT_TOKEN'),
58
+ host_port: grpcBroadcastAddress,
48
59
  tls_config: tlsConfig,
49
- log_level: (_q = (_p = yaml === null || yaml === void 0 ? void 0 : yaml.log_level) !== null && _p !== void 0 ? _p : this.env('HATCHET_CLIENT_LOG_LEVEL')) !== null && _q !== void 0 ? _q : 'INFO',
60
+ log_level: (_t = (_s = yaml === null || yaml === void 0 ? void 0 : yaml.log_level) !== null && _s !== void 0 ? _s : this.env('HATCHET_CLIENT_LOG_LEVEL')) !== null && _t !== void 0 ? _t : 'INFO',
50
61
  };
51
62
  }
52
63
  static get default_yaml_config_path() {
@@ -62,7 +73,7 @@ class ConfigLoader {
62
73
  const certChain = config.cert_file ? (0, fs_1.readFileSync)(config.cert_file) : null;
63
74
  return nice_grpc_1.ChannelCredentials.createSsl(rootCerts, privateKey, certChain);
64
75
  }
65
- static load_yaml_config(path) {
76
+ static loadYamlConfig(path) {
66
77
  try {
67
78
  const configFile = (0, fs_1.readFileSync)(p.join(__dirname, path !== null && path !== void 0 ? path : this.default_yaml_config_path), 'utf8');
68
79
  const config = (0, yaml_1.parse)(configFile);
@@ -0,0 +1,4 @@
1
+ export declare function getAddressesFromJWT(token: string): {
2
+ serverUrl: string;
3
+ grpcBroadcastAddress: string;
4
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAddressesFromJWT = void 0;
4
+ function getAddressesFromJWT(token) {
5
+ const claims = extractClaimsFromJWT(token);
6
+ return {
7
+ serverUrl: claims.server_url,
8
+ grpcBroadcastAddress: claims.grpc_broadcast_address,
9
+ };
10
+ }
11
+ exports.getAddressesFromJWT = getAddressesFromJWT;
12
+ function extractClaimsFromJWT(token) {
13
+ const parts = token.split('.');
14
+ if (parts.length !== 3) {
15
+ throw new Error('Invalid token format');
16
+ }
17
+ const claimsPart = parts[1];
18
+ const claimsData = atob(claimsPart.replace(/-/g, '+').replace(/_/g, '/'));
19
+ const claims = JSON.parse(claimsData);
20
+ return claims;
21
+ }