@hatchet-dev/typescript-sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/.eslintrc.json +36 -0
  2. package/.prettierrc.json +6 -0
  3. package/README.md +4 -0
  4. package/dist/hatchet/clients/admin/admin-client.d.ts +14 -0
  5. package/dist/hatchet/clients/admin/admin-client.js +50 -0
  6. package/dist/hatchet/clients/admin/admin-client.test.d.ts +1 -0
  7. package/dist/hatchet/clients/admin/admin-client.test.js +101 -0
  8. package/dist/hatchet/clients/dispatcher/action-listener.d.ts +24 -0
  9. package/dist/hatchet/clients/dispatcher/action-listener.js +113 -0
  10. package/dist/hatchet/clients/dispatcher/action-listener.test.d.ts +4 -0
  11. package/dist/hatchet/clients/dispatcher/action-listener.test.js +277 -0
  12. package/dist/hatchet/clients/dispatcher/dispatcher-client.d.ts +17 -0
  13. package/dist/hatchet/clients/dispatcher/dispatcher-client.js +46 -0
  14. package/dist/hatchet/clients/dispatcher/dispatcher-client.test.d.ts +1 -0
  15. package/dist/hatchet/clients/dispatcher/dispatcher-client.test.js +99 -0
  16. package/dist/hatchet/clients/event/event-client.d.ts +9 -0
  17. package/dist/hatchet/clients/event/event-client.js +28 -0
  18. package/dist/hatchet/clients/event/event-client.test.d.ts +1 -0
  19. package/dist/hatchet/clients/event/event-client.test.js +60 -0
  20. package/dist/hatchet/clients/hatchet-client/client-config.d.ts +72 -0
  21. package/dist/hatchet/clients/hatchet-client/client-config.js +17 -0
  22. package/dist/hatchet/clients/hatchet-client/hatchet-client.d.ts +26 -0
  23. package/dist/hatchet/clients/hatchet-client/hatchet-client.js +133 -0
  24. package/dist/hatchet/clients/hatchet-client/hatchet-client.test.d.ts +2 -0
  25. package/dist/hatchet/clients/hatchet-client/hatchet-client.test.js +135 -0
  26. package/dist/hatchet/clients/hatchet-client/index.d.ts +2 -0
  27. package/dist/hatchet/clients/hatchet-client/index.js +18 -0
  28. package/dist/hatchet/clients/worker/index.d.ts +1 -0
  29. package/dist/hatchet/clients/worker/index.js +17 -0
  30. package/dist/hatchet/clients/worker/worker.d.ts +31 -0
  31. package/dist/hatchet/clients/worker/worker.js +228 -0
  32. package/dist/hatchet/clients/worker/worker.test.d.ts +1 -0
  33. package/dist/hatchet/clients/worker/worker.test.js +256 -0
  34. package/dist/hatchet/index.d.ts +2 -0
  35. package/dist/hatchet/index.js +4 -0
  36. package/dist/hatchet/sdk.d.ts +2 -0
  37. package/dist/hatchet/sdk.js +4 -0
  38. package/dist/hatchet/step.d.ts +30 -0
  39. package/dist/hatchet/step.js +63 -0
  40. package/dist/hatchet/util/config-loader/config-loader.d.ts +13 -0
  41. package/dist/hatchet/util/config-loader/config-loader.js +85 -0
  42. package/dist/hatchet/util/config-loader/config-loader.test.d.ts +1 -0
  43. package/dist/hatchet/util/config-loader/config-loader.test.js +72 -0
  44. package/dist/hatchet/util/config-loader/index.d.ts +1 -0
  45. package/dist/hatchet/util/config-loader/index.js +17 -0
  46. package/dist/hatchet/util/errors/hatchet-error.d.ts +4 -0
  47. package/dist/hatchet/util/errors/hatchet-error.js +9 -0
  48. package/dist/hatchet/util/hatchet-promise/hatchet-promise.d.ts +6 -0
  49. package/dist/hatchet/util/hatchet-promise/hatchet-promise.js +12 -0
  50. package/dist/hatchet/util/hatchet-promise/hatchet-promise.test.d.ts +1 -0
  51. package/dist/hatchet/util/hatchet-promise/hatchet-promise.test.js +40 -0
  52. package/dist/hatchet/util/logger/index.d.ts +1 -0
  53. package/dist/hatchet/util/logger/index.js +17 -0
  54. package/dist/hatchet/util/logger/logger.d.ts +12 -0
  55. package/dist/hatchet/util/logger/logger.js +37 -0
  56. package/dist/hatchet/util/sleep.d.ts +2 -0
  57. package/dist/hatchet/util/sleep.js +6 -0
  58. package/dist/hatchet/workflow.d.ts +78 -0
  59. package/dist/hatchet/workflow.js +44 -0
  60. package/dist/protoc/dispatcher/dispatcher.d.ts +273 -0
  61. package/dist/protoc/dispatcher/dispatcher.js +918 -0
  62. package/dist/protoc/dispatcher/index.d.ts +1 -0
  63. package/dist/protoc/dispatcher/index.js +17 -0
  64. package/dist/protoc/events/events.d.ts +165 -0
  65. package/dist/protoc/events/events.js +443 -0
  66. package/dist/protoc/google/protobuf/timestamp.d.ts +121 -0
  67. package/dist/protoc/google/protobuf/timestamp.js +110 -0
  68. package/dist/protoc/google/protobuf/wrappers.d.ts +160 -0
  69. package/dist/protoc/google/protobuf/wrappers.js +527 -0
  70. package/dist/protoc/workflows/index.d.ts +1 -0
  71. package/dist/protoc/workflows/index.js +17 -0
  72. package/dist/protoc/workflows/workflows.d.ts +438 -0
  73. package/dist/protoc/workflows/workflows.js +1814 -0
  74. package/examples/dag-worker.ts +55 -0
  75. package/examples/example-event.ts +7 -0
  76. package/examples/simple-worker.ts +39 -0
  77. package/generate-protoc.sh +10 -0
  78. package/hatchet/clients/admin/admin-client.test.ts +116 -0
  79. package/hatchet/clients/admin/admin-client.ts +43 -0
  80. package/hatchet/clients/dispatcher/action-listener.test.ts +270 -0
  81. package/hatchet/clients/dispatcher/action-listener.ts +91 -0
  82. package/hatchet/clients/dispatcher/dispatcher-client.test.ts +111 -0
  83. package/hatchet/clients/dispatcher/dispatcher-client.ts +47 -0
  84. package/hatchet/clients/event/event-client.test.ts +72 -0
  85. package/hatchet/clients/event/event-client.ts +32 -0
  86. package/hatchet/clients/hatchet-client/client-config.ts +22 -0
  87. package/hatchet/clients/hatchet-client/fixtures/.hatchet-invalid.yaml +6 -0
  88. package/hatchet/clients/hatchet-client/fixtures/.hatchet.yaml +8 -0
  89. package/hatchet/clients/hatchet-client/hatchet-client.test.ts +162 -0
  90. package/hatchet/clients/hatchet-client/hatchet-client.ts +136 -0
  91. package/hatchet/clients/hatchet-client/index.ts +2 -0
  92. package/hatchet/clients/worker/index.ts +1 -0
  93. package/hatchet/clients/worker/worker.test.ts +347 -0
  94. package/hatchet/clients/worker/worker.ts +229 -0
  95. package/hatchet/index.ts +3 -0
  96. package/hatchet/sdk.ts +3 -0
  97. package/hatchet/step.ts +48 -0
  98. package/hatchet/util/config-loader/config-loader.test.ts +79 -0
  99. package/hatchet/util/config-loader/config-loader.ts +91 -0
  100. package/hatchet/util/config-loader/fixtures/.hatchet-invalid.yaml +6 -0
  101. package/hatchet/util/config-loader/fixtures/.hatchet.yaml +8 -0
  102. package/hatchet/util/config-loader/index.ts +1 -0
  103. package/hatchet/util/errors/hatchet-error.ts +8 -0
  104. package/hatchet/util/hatchet-promise/hatchet-promise.test.ts +32 -0
  105. package/hatchet/util/hatchet-promise/hatchet-promise.ts +13 -0
  106. package/hatchet/util/logger/index.ts +1 -0
  107. package/hatchet/util/logger/logger.ts +44 -0
  108. package/hatchet/util/sleep.ts +6 -0
  109. package/hatchet/workflow.ts +30 -0
  110. package/jest.config.ts +205 -0
  111. package/package.json +65 -0
  112. package/protoc/dispatcher/dispatcher.ts +1101 -0
  113. package/protoc/dispatcher/index.ts +1 -0
  114. package/protoc/events/events.ts +519 -0
  115. package/protoc/events/index.ts +1 -0
  116. package/protoc/google/protobuf/timestamp.ts +210 -0
  117. package/protoc/google/protobuf/wrappers.ts +657 -0
  118. package/protoc/workflows/index.ts +1 -0
  119. package/protoc/workflows/workflows.ts +2158 -0
  120. package/tsconfig.json +120 -0
@@ -0,0 +1,2158 @@
1
+ /* eslint-disable */
2
+ import type { CallContext, CallOptions } from "nice-grpc-common";
3
+ import * as _m0 from "protobufjs/minimal";
4
+ import { Timestamp } from "../google/protobuf/timestamp";
5
+ import { StringValue } from "../google/protobuf/wrappers";
6
+
7
+ export const protobufPackage = "";
8
+
9
+ export interface PutWorkflowRequest {
10
+ opts: CreateWorkflowVersionOpts | undefined;
11
+ }
12
+
13
+ /** CreateWorkflowVersionOpts represents options to create a workflow version. */
14
+ export interface CreateWorkflowVersionOpts {
15
+ /** (required) the workflow name */
16
+ name: string;
17
+ /** (optional) the workflow description */
18
+ description: string;
19
+ /** (required) the workflow version */
20
+ version: string;
21
+ /** (optional) event triggers for the workflow */
22
+ eventTriggers: string[];
23
+ /** (optional) cron triggers for the workflow */
24
+ cronTriggers: string[];
25
+ /** (optional) scheduled triggers for the workflow */
26
+ scheduledTriggers: Date[];
27
+ /** (required) the workflow jobs */
28
+ jobs: CreateWorkflowJobOpts[];
29
+ }
30
+
31
+ /** CreateWorkflowJobOpts represents options to create a workflow job. */
32
+ export interface CreateWorkflowJobOpts {
33
+ /** (required) the job name */
34
+ name: string;
35
+ /** (optional) the job description */
36
+ description: string;
37
+ /** (optional) the job timeout */
38
+ timeout: string;
39
+ /** (required) the job steps */
40
+ steps: CreateWorkflowStepOpts[];
41
+ }
42
+
43
+ /** CreateWorkflowStepOpts represents options to create a workflow step. */
44
+ export interface CreateWorkflowStepOpts {
45
+ /** (required) the step name */
46
+ readableId: string;
47
+ /** (required) the step action id */
48
+ action: string;
49
+ /** (optional) the step timeout */
50
+ timeout: string;
51
+ /** (optional) the step inputs, assuming string representation of JSON */
52
+ inputs: string;
53
+ /** (optional) the step parents. if none are passed in, this is a root step */
54
+ parents: string[];
55
+ }
56
+
57
+ /** ListWorkflowsRequest is the request for ListWorkflows. */
58
+ export interface ListWorkflowsRequest {
59
+ }
60
+
61
+ export interface ScheduleWorkflowRequest {
62
+ workflowId: string;
63
+ schedules: Date[];
64
+ /** (optional) the input data for the workflow */
65
+ input: string;
66
+ }
67
+
68
+ /** ListWorkflowsResponse is the response for ListWorkflows. */
69
+ export interface ListWorkflowsResponse {
70
+ workflows: Workflow[];
71
+ }
72
+
73
+ /** ListWorkflowsForEventRequest is the request for ListWorkflowsForEvent. */
74
+ export interface ListWorkflowsForEventRequest {
75
+ eventKey: string;
76
+ }
77
+
78
+ /** Workflow represents the Workflow model. */
79
+ export interface Workflow {
80
+ id: string;
81
+ createdAt: Date | undefined;
82
+ updatedAt: Date | undefined;
83
+ tenantId: string;
84
+ name: string;
85
+ /** Optional */
86
+ description: string | undefined;
87
+ versions: WorkflowVersion[];
88
+ }
89
+
90
+ /** WorkflowVersion represents the WorkflowVersion model. */
91
+ export interface WorkflowVersion {
92
+ id: string;
93
+ createdAt: Date | undefined;
94
+ updatedAt: Date | undefined;
95
+ version: string;
96
+ order: number;
97
+ workflowId: string;
98
+ triggers: WorkflowTriggers | undefined;
99
+ jobs: Job[];
100
+ }
101
+
102
+ /** WorkflowTriggers represents the WorkflowTriggers model. */
103
+ export interface WorkflowTriggers {
104
+ id: string;
105
+ createdAt: Date | undefined;
106
+ updatedAt: Date | undefined;
107
+ workflowVersionId: string;
108
+ tenantId: string;
109
+ events: WorkflowTriggerEventRef[];
110
+ crons: WorkflowTriggerCronRef[];
111
+ }
112
+
113
+ /** WorkflowTriggerEventRef represents the WorkflowTriggerEventRef model. */
114
+ export interface WorkflowTriggerEventRef {
115
+ parentId: string;
116
+ eventKey: string;
117
+ }
118
+
119
+ /** WorkflowTriggerCronRef represents the WorkflowTriggerCronRef model. */
120
+ export interface WorkflowTriggerCronRef {
121
+ parentId: string;
122
+ cron: string;
123
+ }
124
+
125
+ /** Job represents the Job model. */
126
+ export interface Job {
127
+ id: string;
128
+ createdAt: Date | undefined;
129
+ updatedAt: Date | undefined;
130
+ tenantId: string;
131
+ workflowVersionId: string;
132
+ name: string;
133
+ /** Optional */
134
+ description: string | undefined;
135
+ steps: Step[];
136
+ /** Optional */
137
+ timeout: string | undefined;
138
+ }
139
+
140
+ /** Step represents the Step model. */
141
+ export interface Step {
142
+ id: string;
143
+ createdAt: Date | undefined;
144
+ updatedAt:
145
+ | Date
146
+ | undefined;
147
+ /** Optional */
148
+ readableId: string | undefined;
149
+ tenantId: string;
150
+ jobId: string;
151
+ action: string;
152
+ /** Optional */
153
+ timeout: string | undefined;
154
+ parents: string[];
155
+ children: string[];
156
+ }
157
+
158
+ export interface DeleteWorkflowRequest {
159
+ workflowId: string;
160
+ }
161
+
162
+ export interface GetWorkflowByNameRequest {
163
+ name: string;
164
+ }
165
+
166
+ function createBasePutWorkflowRequest(): PutWorkflowRequest {
167
+ return { opts: undefined };
168
+ }
169
+
170
+ export const PutWorkflowRequest = {
171
+ encode(message: PutWorkflowRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
172
+ if (message.opts !== undefined) {
173
+ CreateWorkflowVersionOpts.encode(message.opts, writer.uint32(10).fork()).ldelim();
174
+ }
175
+ return writer;
176
+ },
177
+
178
+ decode(input: _m0.Reader | Uint8Array, length?: number): PutWorkflowRequest {
179
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
180
+ let end = length === undefined ? reader.len : reader.pos + length;
181
+ const message = createBasePutWorkflowRequest();
182
+ while (reader.pos < end) {
183
+ const tag = reader.uint32();
184
+ switch (tag >>> 3) {
185
+ case 1:
186
+ if (tag !== 10) {
187
+ break;
188
+ }
189
+
190
+ message.opts = CreateWorkflowVersionOpts.decode(reader, reader.uint32());
191
+ continue;
192
+ }
193
+ if ((tag & 7) === 4 || tag === 0) {
194
+ break;
195
+ }
196
+ reader.skipType(tag & 7);
197
+ }
198
+ return message;
199
+ },
200
+
201
+ fromJSON(object: any): PutWorkflowRequest {
202
+ return { opts: isSet(object.opts) ? CreateWorkflowVersionOpts.fromJSON(object.opts) : undefined };
203
+ },
204
+
205
+ toJSON(message: PutWorkflowRequest): unknown {
206
+ const obj: any = {};
207
+ if (message.opts !== undefined) {
208
+ obj.opts = CreateWorkflowVersionOpts.toJSON(message.opts);
209
+ }
210
+ return obj;
211
+ },
212
+
213
+ create(base?: DeepPartial<PutWorkflowRequest>): PutWorkflowRequest {
214
+ return PutWorkflowRequest.fromPartial(base ?? {});
215
+ },
216
+ fromPartial(object: DeepPartial<PutWorkflowRequest>): PutWorkflowRequest {
217
+ const message = createBasePutWorkflowRequest();
218
+ message.opts = (object.opts !== undefined && object.opts !== null)
219
+ ? CreateWorkflowVersionOpts.fromPartial(object.opts)
220
+ : undefined;
221
+ return message;
222
+ },
223
+ };
224
+
225
+ function createBaseCreateWorkflowVersionOpts(): CreateWorkflowVersionOpts {
226
+ return {
227
+ name: "",
228
+ description: "",
229
+ version: "",
230
+ eventTriggers: [],
231
+ cronTriggers: [],
232
+ scheduledTriggers: [],
233
+ jobs: [],
234
+ };
235
+ }
236
+
237
+ export const CreateWorkflowVersionOpts = {
238
+ encode(message: CreateWorkflowVersionOpts, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
239
+ if (message.name !== "") {
240
+ writer.uint32(10).string(message.name);
241
+ }
242
+ if (message.description !== "") {
243
+ writer.uint32(18).string(message.description);
244
+ }
245
+ if (message.version !== "") {
246
+ writer.uint32(26).string(message.version);
247
+ }
248
+ for (const v of message.eventTriggers) {
249
+ writer.uint32(34).string(v!);
250
+ }
251
+ for (const v of message.cronTriggers) {
252
+ writer.uint32(42).string(v!);
253
+ }
254
+ for (const v of message.scheduledTriggers) {
255
+ Timestamp.encode(toTimestamp(v!), writer.uint32(50).fork()).ldelim();
256
+ }
257
+ for (const v of message.jobs) {
258
+ CreateWorkflowJobOpts.encode(v!, writer.uint32(58).fork()).ldelim();
259
+ }
260
+ return writer;
261
+ },
262
+
263
+ decode(input: _m0.Reader | Uint8Array, length?: number): CreateWorkflowVersionOpts {
264
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
265
+ let end = length === undefined ? reader.len : reader.pos + length;
266
+ const message = createBaseCreateWorkflowVersionOpts();
267
+ while (reader.pos < end) {
268
+ const tag = reader.uint32();
269
+ switch (tag >>> 3) {
270
+ case 1:
271
+ if (tag !== 10) {
272
+ break;
273
+ }
274
+
275
+ message.name = reader.string();
276
+ continue;
277
+ case 2:
278
+ if (tag !== 18) {
279
+ break;
280
+ }
281
+
282
+ message.description = reader.string();
283
+ continue;
284
+ case 3:
285
+ if (tag !== 26) {
286
+ break;
287
+ }
288
+
289
+ message.version = reader.string();
290
+ continue;
291
+ case 4:
292
+ if (tag !== 34) {
293
+ break;
294
+ }
295
+
296
+ message.eventTriggers.push(reader.string());
297
+ continue;
298
+ case 5:
299
+ if (tag !== 42) {
300
+ break;
301
+ }
302
+
303
+ message.cronTriggers.push(reader.string());
304
+ continue;
305
+ case 6:
306
+ if (tag !== 50) {
307
+ break;
308
+ }
309
+
310
+ message.scheduledTriggers.push(fromTimestamp(Timestamp.decode(reader, reader.uint32())));
311
+ continue;
312
+ case 7:
313
+ if (tag !== 58) {
314
+ break;
315
+ }
316
+
317
+ message.jobs.push(CreateWorkflowJobOpts.decode(reader, reader.uint32()));
318
+ continue;
319
+ }
320
+ if ((tag & 7) === 4 || tag === 0) {
321
+ break;
322
+ }
323
+ reader.skipType(tag & 7);
324
+ }
325
+ return message;
326
+ },
327
+
328
+ fromJSON(object: any): CreateWorkflowVersionOpts {
329
+ return {
330
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
331
+ description: isSet(object.description) ? globalThis.String(object.description) : "",
332
+ version: isSet(object.version) ? globalThis.String(object.version) : "",
333
+ eventTriggers: globalThis.Array.isArray(object?.eventTriggers)
334
+ ? object.eventTriggers.map((e: any) => globalThis.String(e))
335
+ : [],
336
+ cronTriggers: globalThis.Array.isArray(object?.cronTriggers)
337
+ ? object.cronTriggers.map((e: any) => globalThis.String(e))
338
+ : [],
339
+ scheduledTriggers: globalThis.Array.isArray(object?.scheduledTriggers)
340
+ ? object.scheduledTriggers.map((e: any) => fromJsonTimestamp(e))
341
+ : [],
342
+ jobs: globalThis.Array.isArray(object?.jobs)
343
+ ? object.jobs.map((e: any) => CreateWorkflowJobOpts.fromJSON(e))
344
+ : [],
345
+ };
346
+ },
347
+
348
+ toJSON(message: CreateWorkflowVersionOpts): unknown {
349
+ const obj: any = {};
350
+ if (message.name !== "") {
351
+ obj.name = message.name;
352
+ }
353
+ if (message.description !== "") {
354
+ obj.description = message.description;
355
+ }
356
+ if (message.version !== "") {
357
+ obj.version = message.version;
358
+ }
359
+ if (message.eventTriggers?.length) {
360
+ obj.eventTriggers = message.eventTriggers;
361
+ }
362
+ if (message.cronTriggers?.length) {
363
+ obj.cronTriggers = message.cronTriggers;
364
+ }
365
+ if (message.scheduledTriggers?.length) {
366
+ obj.scheduledTriggers = message.scheduledTriggers.map((e) => e.toISOString());
367
+ }
368
+ if (message.jobs?.length) {
369
+ obj.jobs = message.jobs.map((e) => CreateWorkflowJobOpts.toJSON(e));
370
+ }
371
+ return obj;
372
+ },
373
+
374
+ create(base?: DeepPartial<CreateWorkflowVersionOpts>): CreateWorkflowVersionOpts {
375
+ return CreateWorkflowVersionOpts.fromPartial(base ?? {});
376
+ },
377
+ fromPartial(object: DeepPartial<CreateWorkflowVersionOpts>): CreateWorkflowVersionOpts {
378
+ const message = createBaseCreateWorkflowVersionOpts();
379
+ message.name = object.name ?? "";
380
+ message.description = object.description ?? "";
381
+ message.version = object.version ?? "";
382
+ message.eventTriggers = object.eventTriggers?.map((e) => e) || [];
383
+ message.cronTriggers = object.cronTriggers?.map((e) => e) || [];
384
+ message.scheduledTriggers = object.scheduledTriggers?.map((e) => e) || [];
385
+ message.jobs = object.jobs?.map((e) => CreateWorkflowJobOpts.fromPartial(e)) || [];
386
+ return message;
387
+ },
388
+ };
389
+
390
+ function createBaseCreateWorkflowJobOpts(): CreateWorkflowJobOpts {
391
+ return { name: "", description: "", timeout: "", steps: [] };
392
+ }
393
+
394
+ export const CreateWorkflowJobOpts = {
395
+ encode(message: CreateWorkflowJobOpts, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
396
+ if (message.name !== "") {
397
+ writer.uint32(10).string(message.name);
398
+ }
399
+ if (message.description !== "") {
400
+ writer.uint32(18).string(message.description);
401
+ }
402
+ if (message.timeout !== "") {
403
+ writer.uint32(26).string(message.timeout);
404
+ }
405
+ for (const v of message.steps) {
406
+ CreateWorkflowStepOpts.encode(v!, writer.uint32(34).fork()).ldelim();
407
+ }
408
+ return writer;
409
+ },
410
+
411
+ decode(input: _m0.Reader | Uint8Array, length?: number): CreateWorkflowJobOpts {
412
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
413
+ let end = length === undefined ? reader.len : reader.pos + length;
414
+ const message = createBaseCreateWorkflowJobOpts();
415
+ while (reader.pos < end) {
416
+ const tag = reader.uint32();
417
+ switch (tag >>> 3) {
418
+ case 1:
419
+ if (tag !== 10) {
420
+ break;
421
+ }
422
+
423
+ message.name = reader.string();
424
+ continue;
425
+ case 2:
426
+ if (tag !== 18) {
427
+ break;
428
+ }
429
+
430
+ message.description = reader.string();
431
+ continue;
432
+ case 3:
433
+ if (tag !== 26) {
434
+ break;
435
+ }
436
+
437
+ message.timeout = reader.string();
438
+ continue;
439
+ case 4:
440
+ if (tag !== 34) {
441
+ break;
442
+ }
443
+
444
+ message.steps.push(CreateWorkflowStepOpts.decode(reader, reader.uint32()));
445
+ continue;
446
+ }
447
+ if ((tag & 7) === 4 || tag === 0) {
448
+ break;
449
+ }
450
+ reader.skipType(tag & 7);
451
+ }
452
+ return message;
453
+ },
454
+
455
+ fromJSON(object: any): CreateWorkflowJobOpts {
456
+ return {
457
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
458
+ description: isSet(object.description) ? globalThis.String(object.description) : "",
459
+ timeout: isSet(object.timeout) ? globalThis.String(object.timeout) : "",
460
+ steps: globalThis.Array.isArray(object?.steps)
461
+ ? object.steps.map((e: any) => CreateWorkflowStepOpts.fromJSON(e))
462
+ : [],
463
+ };
464
+ },
465
+
466
+ toJSON(message: CreateWorkflowJobOpts): unknown {
467
+ const obj: any = {};
468
+ if (message.name !== "") {
469
+ obj.name = message.name;
470
+ }
471
+ if (message.description !== "") {
472
+ obj.description = message.description;
473
+ }
474
+ if (message.timeout !== "") {
475
+ obj.timeout = message.timeout;
476
+ }
477
+ if (message.steps?.length) {
478
+ obj.steps = message.steps.map((e) => CreateWorkflowStepOpts.toJSON(e));
479
+ }
480
+ return obj;
481
+ },
482
+
483
+ create(base?: DeepPartial<CreateWorkflowJobOpts>): CreateWorkflowJobOpts {
484
+ return CreateWorkflowJobOpts.fromPartial(base ?? {});
485
+ },
486
+ fromPartial(object: DeepPartial<CreateWorkflowJobOpts>): CreateWorkflowJobOpts {
487
+ const message = createBaseCreateWorkflowJobOpts();
488
+ message.name = object.name ?? "";
489
+ message.description = object.description ?? "";
490
+ message.timeout = object.timeout ?? "";
491
+ message.steps = object.steps?.map((e) => CreateWorkflowStepOpts.fromPartial(e)) || [];
492
+ return message;
493
+ },
494
+ };
495
+
496
+ function createBaseCreateWorkflowStepOpts(): CreateWorkflowStepOpts {
497
+ return { readableId: "", action: "", timeout: "", inputs: "", parents: [] };
498
+ }
499
+
500
+ export const CreateWorkflowStepOpts = {
501
+ encode(message: CreateWorkflowStepOpts, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
502
+ if (message.readableId !== "") {
503
+ writer.uint32(10).string(message.readableId);
504
+ }
505
+ if (message.action !== "") {
506
+ writer.uint32(18).string(message.action);
507
+ }
508
+ if (message.timeout !== "") {
509
+ writer.uint32(26).string(message.timeout);
510
+ }
511
+ if (message.inputs !== "") {
512
+ writer.uint32(34).string(message.inputs);
513
+ }
514
+ for (const v of message.parents) {
515
+ writer.uint32(42).string(v!);
516
+ }
517
+ return writer;
518
+ },
519
+
520
+ decode(input: _m0.Reader | Uint8Array, length?: number): CreateWorkflowStepOpts {
521
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
522
+ let end = length === undefined ? reader.len : reader.pos + length;
523
+ const message = createBaseCreateWorkflowStepOpts();
524
+ while (reader.pos < end) {
525
+ const tag = reader.uint32();
526
+ switch (tag >>> 3) {
527
+ case 1:
528
+ if (tag !== 10) {
529
+ break;
530
+ }
531
+
532
+ message.readableId = reader.string();
533
+ continue;
534
+ case 2:
535
+ if (tag !== 18) {
536
+ break;
537
+ }
538
+
539
+ message.action = reader.string();
540
+ continue;
541
+ case 3:
542
+ if (tag !== 26) {
543
+ break;
544
+ }
545
+
546
+ message.timeout = reader.string();
547
+ continue;
548
+ case 4:
549
+ if (tag !== 34) {
550
+ break;
551
+ }
552
+
553
+ message.inputs = reader.string();
554
+ continue;
555
+ case 5:
556
+ if (tag !== 42) {
557
+ break;
558
+ }
559
+
560
+ message.parents.push(reader.string());
561
+ continue;
562
+ }
563
+ if ((tag & 7) === 4 || tag === 0) {
564
+ break;
565
+ }
566
+ reader.skipType(tag & 7);
567
+ }
568
+ return message;
569
+ },
570
+
571
+ fromJSON(object: any): CreateWorkflowStepOpts {
572
+ return {
573
+ readableId: isSet(object.readableId) ? globalThis.String(object.readableId) : "",
574
+ action: isSet(object.action) ? globalThis.String(object.action) : "",
575
+ timeout: isSet(object.timeout) ? globalThis.String(object.timeout) : "",
576
+ inputs: isSet(object.inputs) ? globalThis.String(object.inputs) : "",
577
+ parents: globalThis.Array.isArray(object?.parents) ? object.parents.map((e: any) => globalThis.String(e)) : [],
578
+ };
579
+ },
580
+
581
+ toJSON(message: CreateWorkflowStepOpts): unknown {
582
+ const obj: any = {};
583
+ if (message.readableId !== "") {
584
+ obj.readableId = message.readableId;
585
+ }
586
+ if (message.action !== "") {
587
+ obj.action = message.action;
588
+ }
589
+ if (message.timeout !== "") {
590
+ obj.timeout = message.timeout;
591
+ }
592
+ if (message.inputs !== "") {
593
+ obj.inputs = message.inputs;
594
+ }
595
+ if (message.parents?.length) {
596
+ obj.parents = message.parents;
597
+ }
598
+ return obj;
599
+ },
600
+
601
+ create(base?: DeepPartial<CreateWorkflowStepOpts>): CreateWorkflowStepOpts {
602
+ return CreateWorkflowStepOpts.fromPartial(base ?? {});
603
+ },
604
+ fromPartial(object: DeepPartial<CreateWorkflowStepOpts>): CreateWorkflowStepOpts {
605
+ const message = createBaseCreateWorkflowStepOpts();
606
+ message.readableId = object.readableId ?? "";
607
+ message.action = object.action ?? "";
608
+ message.timeout = object.timeout ?? "";
609
+ message.inputs = object.inputs ?? "";
610
+ message.parents = object.parents?.map((e) => e) || [];
611
+ return message;
612
+ },
613
+ };
614
+
615
+ function createBaseListWorkflowsRequest(): ListWorkflowsRequest {
616
+ return {};
617
+ }
618
+
619
+ export const ListWorkflowsRequest = {
620
+ encode(_: ListWorkflowsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
621
+ return writer;
622
+ },
623
+
624
+ decode(input: _m0.Reader | Uint8Array, length?: number): ListWorkflowsRequest {
625
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
626
+ let end = length === undefined ? reader.len : reader.pos + length;
627
+ const message = createBaseListWorkflowsRequest();
628
+ while (reader.pos < end) {
629
+ const tag = reader.uint32();
630
+ switch (tag >>> 3) {
631
+ }
632
+ if ((tag & 7) === 4 || tag === 0) {
633
+ break;
634
+ }
635
+ reader.skipType(tag & 7);
636
+ }
637
+ return message;
638
+ },
639
+
640
+ fromJSON(_: any): ListWorkflowsRequest {
641
+ return {};
642
+ },
643
+
644
+ toJSON(_: ListWorkflowsRequest): unknown {
645
+ const obj: any = {};
646
+ return obj;
647
+ },
648
+
649
+ create(base?: DeepPartial<ListWorkflowsRequest>): ListWorkflowsRequest {
650
+ return ListWorkflowsRequest.fromPartial(base ?? {});
651
+ },
652
+ fromPartial(_: DeepPartial<ListWorkflowsRequest>): ListWorkflowsRequest {
653
+ const message = createBaseListWorkflowsRequest();
654
+ return message;
655
+ },
656
+ };
657
+
658
+ function createBaseScheduleWorkflowRequest(): ScheduleWorkflowRequest {
659
+ return { workflowId: "", schedules: [], input: "" };
660
+ }
661
+
662
+ export const ScheduleWorkflowRequest = {
663
+ encode(message: ScheduleWorkflowRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
664
+ if (message.workflowId !== "") {
665
+ writer.uint32(10).string(message.workflowId);
666
+ }
667
+ for (const v of message.schedules) {
668
+ Timestamp.encode(toTimestamp(v!), writer.uint32(18).fork()).ldelim();
669
+ }
670
+ if (message.input !== "") {
671
+ writer.uint32(26).string(message.input);
672
+ }
673
+ return writer;
674
+ },
675
+
676
+ decode(input: _m0.Reader | Uint8Array, length?: number): ScheduleWorkflowRequest {
677
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
678
+ let end = length === undefined ? reader.len : reader.pos + length;
679
+ const message = createBaseScheduleWorkflowRequest();
680
+ while (reader.pos < end) {
681
+ const tag = reader.uint32();
682
+ switch (tag >>> 3) {
683
+ case 1:
684
+ if (tag !== 10) {
685
+ break;
686
+ }
687
+
688
+ message.workflowId = reader.string();
689
+ continue;
690
+ case 2:
691
+ if (tag !== 18) {
692
+ break;
693
+ }
694
+
695
+ message.schedules.push(fromTimestamp(Timestamp.decode(reader, reader.uint32())));
696
+ continue;
697
+ case 3:
698
+ if (tag !== 26) {
699
+ break;
700
+ }
701
+
702
+ message.input = reader.string();
703
+ continue;
704
+ }
705
+ if ((tag & 7) === 4 || tag === 0) {
706
+ break;
707
+ }
708
+ reader.skipType(tag & 7);
709
+ }
710
+ return message;
711
+ },
712
+
713
+ fromJSON(object: any): ScheduleWorkflowRequest {
714
+ return {
715
+ workflowId: isSet(object.workflowId) ? globalThis.String(object.workflowId) : "",
716
+ schedules: globalThis.Array.isArray(object?.schedules)
717
+ ? object.schedules.map((e: any) => fromJsonTimestamp(e))
718
+ : [],
719
+ input: isSet(object.input) ? globalThis.String(object.input) : "",
720
+ };
721
+ },
722
+
723
+ toJSON(message: ScheduleWorkflowRequest): unknown {
724
+ const obj: any = {};
725
+ if (message.workflowId !== "") {
726
+ obj.workflowId = message.workflowId;
727
+ }
728
+ if (message.schedules?.length) {
729
+ obj.schedules = message.schedules.map((e) => e.toISOString());
730
+ }
731
+ if (message.input !== "") {
732
+ obj.input = message.input;
733
+ }
734
+ return obj;
735
+ },
736
+
737
+ create(base?: DeepPartial<ScheduleWorkflowRequest>): ScheduleWorkflowRequest {
738
+ return ScheduleWorkflowRequest.fromPartial(base ?? {});
739
+ },
740
+ fromPartial(object: DeepPartial<ScheduleWorkflowRequest>): ScheduleWorkflowRequest {
741
+ const message = createBaseScheduleWorkflowRequest();
742
+ message.workflowId = object.workflowId ?? "";
743
+ message.schedules = object.schedules?.map((e) => e) || [];
744
+ message.input = object.input ?? "";
745
+ return message;
746
+ },
747
+ };
748
+
749
+ function createBaseListWorkflowsResponse(): ListWorkflowsResponse {
750
+ return { workflows: [] };
751
+ }
752
+
753
+ export const ListWorkflowsResponse = {
754
+ encode(message: ListWorkflowsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
755
+ for (const v of message.workflows) {
756
+ Workflow.encode(v!, writer.uint32(10).fork()).ldelim();
757
+ }
758
+ return writer;
759
+ },
760
+
761
+ decode(input: _m0.Reader | Uint8Array, length?: number): ListWorkflowsResponse {
762
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
763
+ let end = length === undefined ? reader.len : reader.pos + length;
764
+ const message = createBaseListWorkflowsResponse();
765
+ while (reader.pos < end) {
766
+ const tag = reader.uint32();
767
+ switch (tag >>> 3) {
768
+ case 1:
769
+ if (tag !== 10) {
770
+ break;
771
+ }
772
+
773
+ message.workflows.push(Workflow.decode(reader, reader.uint32()));
774
+ continue;
775
+ }
776
+ if ((tag & 7) === 4 || tag === 0) {
777
+ break;
778
+ }
779
+ reader.skipType(tag & 7);
780
+ }
781
+ return message;
782
+ },
783
+
784
+ fromJSON(object: any): ListWorkflowsResponse {
785
+ return {
786
+ workflows: globalThis.Array.isArray(object?.workflows)
787
+ ? object.workflows.map((e: any) => Workflow.fromJSON(e))
788
+ : [],
789
+ };
790
+ },
791
+
792
+ toJSON(message: ListWorkflowsResponse): unknown {
793
+ const obj: any = {};
794
+ if (message.workflows?.length) {
795
+ obj.workflows = message.workflows.map((e) => Workflow.toJSON(e));
796
+ }
797
+ return obj;
798
+ },
799
+
800
+ create(base?: DeepPartial<ListWorkflowsResponse>): ListWorkflowsResponse {
801
+ return ListWorkflowsResponse.fromPartial(base ?? {});
802
+ },
803
+ fromPartial(object: DeepPartial<ListWorkflowsResponse>): ListWorkflowsResponse {
804
+ const message = createBaseListWorkflowsResponse();
805
+ message.workflows = object.workflows?.map((e) => Workflow.fromPartial(e)) || [];
806
+ return message;
807
+ },
808
+ };
809
+
810
+ function createBaseListWorkflowsForEventRequest(): ListWorkflowsForEventRequest {
811
+ return { eventKey: "" };
812
+ }
813
+
814
+ export const ListWorkflowsForEventRequest = {
815
+ encode(message: ListWorkflowsForEventRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
816
+ if (message.eventKey !== "") {
817
+ writer.uint32(10).string(message.eventKey);
818
+ }
819
+ return writer;
820
+ },
821
+
822
+ decode(input: _m0.Reader | Uint8Array, length?: number): ListWorkflowsForEventRequest {
823
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
824
+ let end = length === undefined ? reader.len : reader.pos + length;
825
+ const message = createBaseListWorkflowsForEventRequest();
826
+ while (reader.pos < end) {
827
+ const tag = reader.uint32();
828
+ switch (tag >>> 3) {
829
+ case 1:
830
+ if (tag !== 10) {
831
+ break;
832
+ }
833
+
834
+ message.eventKey = reader.string();
835
+ continue;
836
+ }
837
+ if ((tag & 7) === 4 || tag === 0) {
838
+ break;
839
+ }
840
+ reader.skipType(tag & 7);
841
+ }
842
+ return message;
843
+ },
844
+
845
+ fromJSON(object: any): ListWorkflowsForEventRequest {
846
+ return { eventKey: isSet(object.eventKey) ? globalThis.String(object.eventKey) : "" };
847
+ },
848
+
849
+ toJSON(message: ListWorkflowsForEventRequest): unknown {
850
+ const obj: any = {};
851
+ if (message.eventKey !== "") {
852
+ obj.eventKey = message.eventKey;
853
+ }
854
+ return obj;
855
+ },
856
+
857
+ create(base?: DeepPartial<ListWorkflowsForEventRequest>): ListWorkflowsForEventRequest {
858
+ return ListWorkflowsForEventRequest.fromPartial(base ?? {});
859
+ },
860
+ fromPartial(object: DeepPartial<ListWorkflowsForEventRequest>): ListWorkflowsForEventRequest {
861
+ const message = createBaseListWorkflowsForEventRequest();
862
+ message.eventKey = object.eventKey ?? "";
863
+ return message;
864
+ },
865
+ };
866
+
867
+ function createBaseWorkflow(): Workflow {
868
+ return {
869
+ id: "",
870
+ createdAt: undefined,
871
+ updatedAt: undefined,
872
+ tenantId: "",
873
+ name: "",
874
+ description: undefined,
875
+ versions: [],
876
+ };
877
+ }
878
+
879
+ export const Workflow = {
880
+ encode(message: Workflow, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
881
+ if (message.id !== "") {
882
+ writer.uint32(10).string(message.id);
883
+ }
884
+ if (message.createdAt !== undefined) {
885
+ Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).ldelim();
886
+ }
887
+ if (message.updatedAt !== undefined) {
888
+ Timestamp.encode(toTimestamp(message.updatedAt), writer.uint32(26).fork()).ldelim();
889
+ }
890
+ if (message.tenantId !== "") {
891
+ writer.uint32(42).string(message.tenantId);
892
+ }
893
+ if (message.name !== "") {
894
+ writer.uint32(50).string(message.name);
895
+ }
896
+ if (message.description !== undefined) {
897
+ StringValue.encode({ value: message.description! }, writer.uint32(58).fork()).ldelim();
898
+ }
899
+ for (const v of message.versions) {
900
+ WorkflowVersion.encode(v!, writer.uint32(66).fork()).ldelim();
901
+ }
902
+ return writer;
903
+ },
904
+
905
+ decode(input: _m0.Reader | Uint8Array, length?: number): Workflow {
906
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
907
+ let end = length === undefined ? reader.len : reader.pos + length;
908
+ const message = createBaseWorkflow();
909
+ while (reader.pos < end) {
910
+ const tag = reader.uint32();
911
+ switch (tag >>> 3) {
912
+ case 1:
913
+ if (tag !== 10) {
914
+ break;
915
+ }
916
+
917
+ message.id = reader.string();
918
+ continue;
919
+ case 2:
920
+ if (tag !== 18) {
921
+ break;
922
+ }
923
+
924
+ message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
925
+ continue;
926
+ case 3:
927
+ if (tag !== 26) {
928
+ break;
929
+ }
930
+
931
+ message.updatedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
932
+ continue;
933
+ case 5:
934
+ if (tag !== 42) {
935
+ break;
936
+ }
937
+
938
+ message.tenantId = reader.string();
939
+ continue;
940
+ case 6:
941
+ if (tag !== 50) {
942
+ break;
943
+ }
944
+
945
+ message.name = reader.string();
946
+ continue;
947
+ case 7:
948
+ if (tag !== 58) {
949
+ break;
950
+ }
951
+
952
+ message.description = StringValue.decode(reader, reader.uint32()).value;
953
+ continue;
954
+ case 8:
955
+ if (tag !== 66) {
956
+ break;
957
+ }
958
+
959
+ message.versions.push(WorkflowVersion.decode(reader, reader.uint32()));
960
+ continue;
961
+ }
962
+ if ((tag & 7) === 4 || tag === 0) {
963
+ break;
964
+ }
965
+ reader.skipType(tag & 7);
966
+ }
967
+ return message;
968
+ },
969
+
970
+ fromJSON(object: any): Workflow {
971
+ return {
972
+ id: isSet(object.id) ? globalThis.String(object.id) : "",
973
+ createdAt: isSet(object.createdAt) ? fromJsonTimestamp(object.createdAt) : undefined,
974
+ updatedAt: isSet(object.updatedAt) ? fromJsonTimestamp(object.updatedAt) : undefined,
975
+ tenantId: isSet(object.tenantId) ? globalThis.String(object.tenantId) : "",
976
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
977
+ description: isSet(object.description) ? String(object.description) : undefined,
978
+ versions: globalThis.Array.isArray(object?.versions)
979
+ ? object.versions.map((e: any) => WorkflowVersion.fromJSON(e))
980
+ : [],
981
+ };
982
+ },
983
+
984
+ toJSON(message: Workflow): unknown {
985
+ const obj: any = {};
986
+ if (message.id !== "") {
987
+ obj.id = message.id;
988
+ }
989
+ if (message.createdAt !== undefined) {
990
+ obj.createdAt = message.createdAt.toISOString();
991
+ }
992
+ if (message.updatedAt !== undefined) {
993
+ obj.updatedAt = message.updatedAt.toISOString();
994
+ }
995
+ if (message.tenantId !== "") {
996
+ obj.tenantId = message.tenantId;
997
+ }
998
+ if (message.name !== "") {
999
+ obj.name = message.name;
1000
+ }
1001
+ if (message.description !== undefined) {
1002
+ obj.description = message.description;
1003
+ }
1004
+ if (message.versions?.length) {
1005
+ obj.versions = message.versions.map((e) => WorkflowVersion.toJSON(e));
1006
+ }
1007
+ return obj;
1008
+ },
1009
+
1010
+ create(base?: DeepPartial<Workflow>): Workflow {
1011
+ return Workflow.fromPartial(base ?? {});
1012
+ },
1013
+ fromPartial(object: DeepPartial<Workflow>): Workflow {
1014
+ const message = createBaseWorkflow();
1015
+ message.id = object.id ?? "";
1016
+ message.createdAt = object.createdAt ?? undefined;
1017
+ message.updatedAt = object.updatedAt ?? undefined;
1018
+ message.tenantId = object.tenantId ?? "";
1019
+ message.name = object.name ?? "";
1020
+ message.description = object.description ?? undefined;
1021
+ message.versions = object.versions?.map((e) => WorkflowVersion.fromPartial(e)) || [];
1022
+ return message;
1023
+ },
1024
+ };
1025
+
1026
+ function createBaseWorkflowVersion(): WorkflowVersion {
1027
+ return {
1028
+ id: "",
1029
+ createdAt: undefined,
1030
+ updatedAt: undefined,
1031
+ version: "",
1032
+ order: 0,
1033
+ workflowId: "",
1034
+ triggers: undefined,
1035
+ jobs: [],
1036
+ };
1037
+ }
1038
+
1039
+ export const WorkflowVersion = {
1040
+ encode(message: WorkflowVersion, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1041
+ if (message.id !== "") {
1042
+ writer.uint32(10).string(message.id);
1043
+ }
1044
+ if (message.createdAt !== undefined) {
1045
+ Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).ldelim();
1046
+ }
1047
+ if (message.updatedAt !== undefined) {
1048
+ Timestamp.encode(toTimestamp(message.updatedAt), writer.uint32(26).fork()).ldelim();
1049
+ }
1050
+ if (message.version !== "") {
1051
+ writer.uint32(42).string(message.version);
1052
+ }
1053
+ if (message.order !== 0) {
1054
+ writer.uint32(48).int32(message.order);
1055
+ }
1056
+ if (message.workflowId !== "") {
1057
+ writer.uint32(58).string(message.workflowId);
1058
+ }
1059
+ if (message.triggers !== undefined) {
1060
+ WorkflowTriggers.encode(message.triggers, writer.uint32(66).fork()).ldelim();
1061
+ }
1062
+ for (const v of message.jobs) {
1063
+ Job.encode(v!, writer.uint32(74).fork()).ldelim();
1064
+ }
1065
+ return writer;
1066
+ },
1067
+
1068
+ decode(input: _m0.Reader | Uint8Array, length?: number): WorkflowVersion {
1069
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1070
+ let end = length === undefined ? reader.len : reader.pos + length;
1071
+ const message = createBaseWorkflowVersion();
1072
+ while (reader.pos < end) {
1073
+ const tag = reader.uint32();
1074
+ switch (tag >>> 3) {
1075
+ case 1:
1076
+ if (tag !== 10) {
1077
+ break;
1078
+ }
1079
+
1080
+ message.id = reader.string();
1081
+ continue;
1082
+ case 2:
1083
+ if (tag !== 18) {
1084
+ break;
1085
+ }
1086
+
1087
+ message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1088
+ continue;
1089
+ case 3:
1090
+ if (tag !== 26) {
1091
+ break;
1092
+ }
1093
+
1094
+ message.updatedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1095
+ continue;
1096
+ case 5:
1097
+ if (tag !== 42) {
1098
+ break;
1099
+ }
1100
+
1101
+ message.version = reader.string();
1102
+ continue;
1103
+ case 6:
1104
+ if (tag !== 48) {
1105
+ break;
1106
+ }
1107
+
1108
+ message.order = reader.int32();
1109
+ continue;
1110
+ case 7:
1111
+ if (tag !== 58) {
1112
+ break;
1113
+ }
1114
+
1115
+ message.workflowId = reader.string();
1116
+ continue;
1117
+ case 8:
1118
+ if (tag !== 66) {
1119
+ break;
1120
+ }
1121
+
1122
+ message.triggers = WorkflowTriggers.decode(reader, reader.uint32());
1123
+ continue;
1124
+ case 9:
1125
+ if (tag !== 74) {
1126
+ break;
1127
+ }
1128
+
1129
+ message.jobs.push(Job.decode(reader, reader.uint32()));
1130
+ continue;
1131
+ }
1132
+ if ((tag & 7) === 4 || tag === 0) {
1133
+ break;
1134
+ }
1135
+ reader.skipType(tag & 7);
1136
+ }
1137
+ return message;
1138
+ },
1139
+
1140
+ fromJSON(object: any): WorkflowVersion {
1141
+ return {
1142
+ id: isSet(object.id) ? globalThis.String(object.id) : "",
1143
+ createdAt: isSet(object.createdAt) ? fromJsonTimestamp(object.createdAt) : undefined,
1144
+ updatedAt: isSet(object.updatedAt) ? fromJsonTimestamp(object.updatedAt) : undefined,
1145
+ version: isSet(object.version) ? globalThis.String(object.version) : "",
1146
+ order: isSet(object.order) ? globalThis.Number(object.order) : 0,
1147
+ workflowId: isSet(object.workflowId) ? globalThis.String(object.workflowId) : "",
1148
+ triggers: isSet(object.triggers) ? WorkflowTriggers.fromJSON(object.triggers) : undefined,
1149
+ jobs: globalThis.Array.isArray(object?.jobs) ? object.jobs.map((e: any) => Job.fromJSON(e)) : [],
1150
+ };
1151
+ },
1152
+
1153
+ toJSON(message: WorkflowVersion): unknown {
1154
+ const obj: any = {};
1155
+ if (message.id !== "") {
1156
+ obj.id = message.id;
1157
+ }
1158
+ if (message.createdAt !== undefined) {
1159
+ obj.createdAt = message.createdAt.toISOString();
1160
+ }
1161
+ if (message.updatedAt !== undefined) {
1162
+ obj.updatedAt = message.updatedAt.toISOString();
1163
+ }
1164
+ if (message.version !== "") {
1165
+ obj.version = message.version;
1166
+ }
1167
+ if (message.order !== 0) {
1168
+ obj.order = Math.round(message.order);
1169
+ }
1170
+ if (message.workflowId !== "") {
1171
+ obj.workflowId = message.workflowId;
1172
+ }
1173
+ if (message.triggers !== undefined) {
1174
+ obj.triggers = WorkflowTriggers.toJSON(message.triggers);
1175
+ }
1176
+ if (message.jobs?.length) {
1177
+ obj.jobs = message.jobs.map((e) => Job.toJSON(e));
1178
+ }
1179
+ return obj;
1180
+ },
1181
+
1182
+ create(base?: DeepPartial<WorkflowVersion>): WorkflowVersion {
1183
+ return WorkflowVersion.fromPartial(base ?? {});
1184
+ },
1185
+ fromPartial(object: DeepPartial<WorkflowVersion>): WorkflowVersion {
1186
+ const message = createBaseWorkflowVersion();
1187
+ message.id = object.id ?? "";
1188
+ message.createdAt = object.createdAt ?? undefined;
1189
+ message.updatedAt = object.updatedAt ?? undefined;
1190
+ message.version = object.version ?? "";
1191
+ message.order = object.order ?? 0;
1192
+ message.workflowId = object.workflowId ?? "";
1193
+ message.triggers = (object.triggers !== undefined && object.triggers !== null)
1194
+ ? WorkflowTriggers.fromPartial(object.triggers)
1195
+ : undefined;
1196
+ message.jobs = object.jobs?.map((e) => Job.fromPartial(e)) || [];
1197
+ return message;
1198
+ },
1199
+ };
1200
+
1201
+ function createBaseWorkflowTriggers(): WorkflowTriggers {
1202
+ return {
1203
+ id: "",
1204
+ createdAt: undefined,
1205
+ updatedAt: undefined,
1206
+ workflowVersionId: "",
1207
+ tenantId: "",
1208
+ events: [],
1209
+ crons: [],
1210
+ };
1211
+ }
1212
+
1213
+ export const WorkflowTriggers = {
1214
+ encode(message: WorkflowTriggers, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1215
+ if (message.id !== "") {
1216
+ writer.uint32(10).string(message.id);
1217
+ }
1218
+ if (message.createdAt !== undefined) {
1219
+ Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).ldelim();
1220
+ }
1221
+ if (message.updatedAt !== undefined) {
1222
+ Timestamp.encode(toTimestamp(message.updatedAt), writer.uint32(26).fork()).ldelim();
1223
+ }
1224
+ if (message.workflowVersionId !== "") {
1225
+ writer.uint32(42).string(message.workflowVersionId);
1226
+ }
1227
+ if (message.tenantId !== "") {
1228
+ writer.uint32(50).string(message.tenantId);
1229
+ }
1230
+ for (const v of message.events) {
1231
+ WorkflowTriggerEventRef.encode(v!, writer.uint32(58).fork()).ldelim();
1232
+ }
1233
+ for (const v of message.crons) {
1234
+ WorkflowTriggerCronRef.encode(v!, writer.uint32(66).fork()).ldelim();
1235
+ }
1236
+ return writer;
1237
+ },
1238
+
1239
+ decode(input: _m0.Reader | Uint8Array, length?: number): WorkflowTriggers {
1240
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1241
+ let end = length === undefined ? reader.len : reader.pos + length;
1242
+ const message = createBaseWorkflowTriggers();
1243
+ while (reader.pos < end) {
1244
+ const tag = reader.uint32();
1245
+ switch (tag >>> 3) {
1246
+ case 1:
1247
+ if (tag !== 10) {
1248
+ break;
1249
+ }
1250
+
1251
+ message.id = reader.string();
1252
+ continue;
1253
+ case 2:
1254
+ if (tag !== 18) {
1255
+ break;
1256
+ }
1257
+
1258
+ message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1259
+ continue;
1260
+ case 3:
1261
+ if (tag !== 26) {
1262
+ break;
1263
+ }
1264
+
1265
+ message.updatedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1266
+ continue;
1267
+ case 5:
1268
+ if (tag !== 42) {
1269
+ break;
1270
+ }
1271
+
1272
+ message.workflowVersionId = reader.string();
1273
+ continue;
1274
+ case 6:
1275
+ if (tag !== 50) {
1276
+ break;
1277
+ }
1278
+
1279
+ message.tenantId = reader.string();
1280
+ continue;
1281
+ case 7:
1282
+ if (tag !== 58) {
1283
+ break;
1284
+ }
1285
+
1286
+ message.events.push(WorkflowTriggerEventRef.decode(reader, reader.uint32()));
1287
+ continue;
1288
+ case 8:
1289
+ if (tag !== 66) {
1290
+ break;
1291
+ }
1292
+
1293
+ message.crons.push(WorkflowTriggerCronRef.decode(reader, reader.uint32()));
1294
+ continue;
1295
+ }
1296
+ if ((tag & 7) === 4 || tag === 0) {
1297
+ break;
1298
+ }
1299
+ reader.skipType(tag & 7);
1300
+ }
1301
+ return message;
1302
+ },
1303
+
1304
+ fromJSON(object: any): WorkflowTriggers {
1305
+ return {
1306
+ id: isSet(object.id) ? globalThis.String(object.id) : "",
1307
+ createdAt: isSet(object.createdAt) ? fromJsonTimestamp(object.createdAt) : undefined,
1308
+ updatedAt: isSet(object.updatedAt) ? fromJsonTimestamp(object.updatedAt) : undefined,
1309
+ workflowVersionId: isSet(object.workflowVersionId) ? globalThis.String(object.workflowVersionId) : "",
1310
+ tenantId: isSet(object.tenantId) ? globalThis.String(object.tenantId) : "",
1311
+ events: globalThis.Array.isArray(object?.events)
1312
+ ? object.events.map((e: any) => WorkflowTriggerEventRef.fromJSON(e))
1313
+ : [],
1314
+ crons: globalThis.Array.isArray(object?.crons)
1315
+ ? object.crons.map((e: any) => WorkflowTriggerCronRef.fromJSON(e))
1316
+ : [],
1317
+ };
1318
+ },
1319
+
1320
+ toJSON(message: WorkflowTriggers): unknown {
1321
+ const obj: any = {};
1322
+ if (message.id !== "") {
1323
+ obj.id = message.id;
1324
+ }
1325
+ if (message.createdAt !== undefined) {
1326
+ obj.createdAt = message.createdAt.toISOString();
1327
+ }
1328
+ if (message.updatedAt !== undefined) {
1329
+ obj.updatedAt = message.updatedAt.toISOString();
1330
+ }
1331
+ if (message.workflowVersionId !== "") {
1332
+ obj.workflowVersionId = message.workflowVersionId;
1333
+ }
1334
+ if (message.tenantId !== "") {
1335
+ obj.tenantId = message.tenantId;
1336
+ }
1337
+ if (message.events?.length) {
1338
+ obj.events = message.events.map((e) => WorkflowTriggerEventRef.toJSON(e));
1339
+ }
1340
+ if (message.crons?.length) {
1341
+ obj.crons = message.crons.map((e) => WorkflowTriggerCronRef.toJSON(e));
1342
+ }
1343
+ return obj;
1344
+ },
1345
+
1346
+ create(base?: DeepPartial<WorkflowTriggers>): WorkflowTriggers {
1347
+ return WorkflowTriggers.fromPartial(base ?? {});
1348
+ },
1349
+ fromPartial(object: DeepPartial<WorkflowTriggers>): WorkflowTriggers {
1350
+ const message = createBaseWorkflowTriggers();
1351
+ message.id = object.id ?? "";
1352
+ message.createdAt = object.createdAt ?? undefined;
1353
+ message.updatedAt = object.updatedAt ?? undefined;
1354
+ message.workflowVersionId = object.workflowVersionId ?? "";
1355
+ message.tenantId = object.tenantId ?? "";
1356
+ message.events = object.events?.map((e) => WorkflowTriggerEventRef.fromPartial(e)) || [];
1357
+ message.crons = object.crons?.map((e) => WorkflowTriggerCronRef.fromPartial(e)) || [];
1358
+ return message;
1359
+ },
1360
+ };
1361
+
1362
+ function createBaseWorkflowTriggerEventRef(): WorkflowTriggerEventRef {
1363
+ return { parentId: "", eventKey: "" };
1364
+ }
1365
+
1366
+ export const WorkflowTriggerEventRef = {
1367
+ encode(message: WorkflowTriggerEventRef, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1368
+ if (message.parentId !== "") {
1369
+ writer.uint32(10).string(message.parentId);
1370
+ }
1371
+ if (message.eventKey !== "") {
1372
+ writer.uint32(18).string(message.eventKey);
1373
+ }
1374
+ return writer;
1375
+ },
1376
+
1377
+ decode(input: _m0.Reader | Uint8Array, length?: number): WorkflowTriggerEventRef {
1378
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1379
+ let end = length === undefined ? reader.len : reader.pos + length;
1380
+ const message = createBaseWorkflowTriggerEventRef();
1381
+ while (reader.pos < end) {
1382
+ const tag = reader.uint32();
1383
+ switch (tag >>> 3) {
1384
+ case 1:
1385
+ if (tag !== 10) {
1386
+ break;
1387
+ }
1388
+
1389
+ message.parentId = reader.string();
1390
+ continue;
1391
+ case 2:
1392
+ if (tag !== 18) {
1393
+ break;
1394
+ }
1395
+
1396
+ message.eventKey = reader.string();
1397
+ continue;
1398
+ }
1399
+ if ((tag & 7) === 4 || tag === 0) {
1400
+ break;
1401
+ }
1402
+ reader.skipType(tag & 7);
1403
+ }
1404
+ return message;
1405
+ },
1406
+
1407
+ fromJSON(object: any): WorkflowTriggerEventRef {
1408
+ return {
1409
+ parentId: isSet(object.parentId) ? globalThis.String(object.parentId) : "",
1410
+ eventKey: isSet(object.eventKey) ? globalThis.String(object.eventKey) : "",
1411
+ };
1412
+ },
1413
+
1414
+ toJSON(message: WorkflowTriggerEventRef): unknown {
1415
+ const obj: any = {};
1416
+ if (message.parentId !== "") {
1417
+ obj.parentId = message.parentId;
1418
+ }
1419
+ if (message.eventKey !== "") {
1420
+ obj.eventKey = message.eventKey;
1421
+ }
1422
+ return obj;
1423
+ },
1424
+
1425
+ create(base?: DeepPartial<WorkflowTriggerEventRef>): WorkflowTriggerEventRef {
1426
+ return WorkflowTriggerEventRef.fromPartial(base ?? {});
1427
+ },
1428
+ fromPartial(object: DeepPartial<WorkflowTriggerEventRef>): WorkflowTriggerEventRef {
1429
+ const message = createBaseWorkflowTriggerEventRef();
1430
+ message.parentId = object.parentId ?? "";
1431
+ message.eventKey = object.eventKey ?? "";
1432
+ return message;
1433
+ },
1434
+ };
1435
+
1436
+ function createBaseWorkflowTriggerCronRef(): WorkflowTriggerCronRef {
1437
+ return { parentId: "", cron: "" };
1438
+ }
1439
+
1440
+ export const WorkflowTriggerCronRef = {
1441
+ encode(message: WorkflowTriggerCronRef, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1442
+ if (message.parentId !== "") {
1443
+ writer.uint32(10).string(message.parentId);
1444
+ }
1445
+ if (message.cron !== "") {
1446
+ writer.uint32(18).string(message.cron);
1447
+ }
1448
+ return writer;
1449
+ },
1450
+
1451
+ decode(input: _m0.Reader | Uint8Array, length?: number): WorkflowTriggerCronRef {
1452
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1453
+ let end = length === undefined ? reader.len : reader.pos + length;
1454
+ const message = createBaseWorkflowTriggerCronRef();
1455
+ while (reader.pos < end) {
1456
+ const tag = reader.uint32();
1457
+ switch (tag >>> 3) {
1458
+ case 1:
1459
+ if (tag !== 10) {
1460
+ break;
1461
+ }
1462
+
1463
+ message.parentId = reader.string();
1464
+ continue;
1465
+ case 2:
1466
+ if (tag !== 18) {
1467
+ break;
1468
+ }
1469
+
1470
+ message.cron = reader.string();
1471
+ continue;
1472
+ }
1473
+ if ((tag & 7) === 4 || tag === 0) {
1474
+ break;
1475
+ }
1476
+ reader.skipType(tag & 7);
1477
+ }
1478
+ return message;
1479
+ },
1480
+
1481
+ fromJSON(object: any): WorkflowTriggerCronRef {
1482
+ return {
1483
+ parentId: isSet(object.parentId) ? globalThis.String(object.parentId) : "",
1484
+ cron: isSet(object.cron) ? globalThis.String(object.cron) : "",
1485
+ };
1486
+ },
1487
+
1488
+ toJSON(message: WorkflowTriggerCronRef): unknown {
1489
+ const obj: any = {};
1490
+ if (message.parentId !== "") {
1491
+ obj.parentId = message.parentId;
1492
+ }
1493
+ if (message.cron !== "") {
1494
+ obj.cron = message.cron;
1495
+ }
1496
+ return obj;
1497
+ },
1498
+
1499
+ create(base?: DeepPartial<WorkflowTriggerCronRef>): WorkflowTriggerCronRef {
1500
+ return WorkflowTriggerCronRef.fromPartial(base ?? {});
1501
+ },
1502
+ fromPartial(object: DeepPartial<WorkflowTriggerCronRef>): WorkflowTriggerCronRef {
1503
+ const message = createBaseWorkflowTriggerCronRef();
1504
+ message.parentId = object.parentId ?? "";
1505
+ message.cron = object.cron ?? "";
1506
+ return message;
1507
+ },
1508
+ };
1509
+
1510
+ function createBaseJob(): Job {
1511
+ return {
1512
+ id: "",
1513
+ createdAt: undefined,
1514
+ updatedAt: undefined,
1515
+ tenantId: "",
1516
+ workflowVersionId: "",
1517
+ name: "",
1518
+ description: undefined,
1519
+ steps: [],
1520
+ timeout: undefined,
1521
+ };
1522
+ }
1523
+
1524
+ export const Job = {
1525
+ encode(message: Job, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1526
+ if (message.id !== "") {
1527
+ writer.uint32(10).string(message.id);
1528
+ }
1529
+ if (message.createdAt !== undefined) {
1530
+ Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).ldelim();
1531
+ }
1532
+ if (message.updatedAt !== undefined) {
1533
+ Timestamp.encode(toTimestamp(message.updatedAt), writer.uint32(26).fork()).ldelim();
1534
+ }
1535
+ if (message.tenantId !== "") {
1536
+ writer.uint32(42).string(message.tenantId);
1537
+ }
1538
+ if (message.workflowVersionId !== "") {
1539
+ writer.uint32(50).string(message.workflowVersionId);
1540
+ }
1541
+ if (message.name !== "") {
1542
+ writer.uint32(58).string(message.name);
1543
+ }
1544
+ if (message.description !== undefined) {
1545
+ StringValue.encode({ value: message.description! }, writer.uint32(66).fork()).ldelim();
1546
+ }
1547
+ for (const v of message.steps) {
1548
+ Step.encode(v!, writer.uint32(74).fork()).ldelim();
1549
+ }
1550
+ if (message.timeout !== undefined) {
1551
+ StringValue.encode({ value: message.timeout! }, writer.uint32(82).fork()).ldelim();
1552
+ }
1553
+ return writer;
1554
+ },
1555
+
1556
+ decode(input: _m0.Reader | Uint8Array, length?: number): Job {
1557
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1558
+ let end = length === undefined ? reader.len : reader.pos + length;
1559
+ const message = createBaseJob();
1560
+ while (reader.pos < end) {
1561
+ const tag = reader.uint32();
1562
+ switch (tag >>> 3) {
1563
+ case 1:
1564
+ if (tag !== 10) {
1565
+ break;
1566
+ }
1567
+
1568
+ message.id = reader.string();
1569
+ continue;
1570
+ case 2:
1571
+ if (tag !== 18) {
1572
+ break;
1573
+ }
1574
+
1575
+ message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1576
+ continue;
1577
+ case 3:
1578
+ if (tag !== 26) {
1579
+ break;
1580
+ }
1581
+
1582
+ message.updatedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1583
+ continue;
1584
+ case 5:
1585
+ if (tag !== 42) {
1586
+ break;
1587
+ }
1588
+
1589
+ message.tenantId = reader.string();
1590
+ continue;
1591
+ case 6:
1592
+ if (tag !== 50) {
1593
+ break;
1594
+ }
1595
+
1596
+ message.workflowVersionId = reader.string();
1597
+ continue;
1598
+ case 7:
1599
+ if (tag !== 58) {
1600
+ break;
1601
+ }
1602
+
1603
+ message.name = reader.string();
1604
+ continue;
1605
+ case 8:
1606
+ if (tag !== 66) {
1607
+ break;
1608
+ }
1609
+
1610
+ message.description = StringValue.decode(reader, reader.uint32()).value;
1611
+ continue;
1612
+ case 9:
1613
+ if (tag !== 74) {
1614
+ break;
1615
+ }
1616
+
1617
+ message.steps.push(Step.decode(reader, reader.uint32()));
1618
+ continue;
1619
+ case 10:
1620
+ if (tag !== 82) {
1621
+ break;
1622
+ }
1623
+
1624
+ message.timeout = StringValue.decode(reader, reader.uint32()).value;
1625
+ continue;
1626
+ }
1627
+ if ((tag & 7) === 4 || tag === 0) {
1628
+ break;
1629
+ }
1630
+ reader.skipType(tag & 7);
1631
+ }
1632
+ return message;
1633
+ },
1634
+
1635
+ fromJSON(object: any): Job {
1636
+ return {
1637
+ id: isSet(object.id) ? globalThis.String(object.id) : "",
1638
+ createdAt: isSet(object.createdAt) ? fromJsonTimestamp(object.createdAt) : undefined,
1639
+ updatedAt: isSet(object.updatedAt) ? fromJsonTimestamp(object.updatedAt) : undefined,
1640
+ tenantId: isSet(object.tenantId) ? globalThis.String(object.tenantId) : "",
1641
+ workflowVersionId: isSet(object.workflowVersionId) ? globalThis.String(object.workflowVersionId) : "",
1642
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
1643
+ description: isSet(object.description) ? String(object.description) : undefined,
1644
+ steps: globalThis.Array.isArray(object?.steps) ? object.steps.map((e: any) => Step.fromJSON(e)) : [],
1645
+ timeout: isSet(object.timeout) ? String(object.timeout) : undefined,
1646
+ };
1647
+ },
1648
+
1649
+ toJSON(message: Job): unknown {
1650
+ const obj: any = {};
1651
+ if (message.id !== "") {
1652
+ obj.id = message.id;
1653
+ }
1654
+ if (message.createdAt !== undefined) {
1655
+ obj.createdAt = message.createdAt.toISOString();
1656
+ }
1657
+ if (message.updatedAt !== undefined) {
1658
+ obj.updatedAt = message.updatedAt.toISOString();
1659
+ }
1660
+ if (message.tenantId !== "") {
1661
+ obj.tenantId = message.tenantId;
1662
+ }
1663
+ if (message.workflowVersionId !== "") {
1664
+ obj.workflowVersionId = message.workflowVersionId;
1665
+ }
1666
+ if (message.name !== "") {
1667
+ obj.name = message.name;
1668
+ }
1669
+ if (message.description !== undefined) {
1670
+ obj.description = message.description;
1671
+ }
1672
+ if (message.steps?.length) {
1673
+ obj.steps = message.steps.map((e) => Step.toJSON(e));
1674
+ }
1675
+ if (message.timeout !== undefined) {
1676
+ obj.timeout = message.timeout;
1677
+ }
1678
+ return obj;
1679
+ },
1680
+
1681
+ create(base?: DeepPartial<Job>): Job {
1682
+ return Job.fromPartial(base ?? {});
1683
+ },
1684
+ fromPartial(object: DeepPartial<Job>): Job {
1685
+ const message = createBaseJob();
1686
+ message.id = object.id ?? "";
1687
+ message.createdAt = object.createdAt ?? undefined;
1688
+ message.updatedAt = object.updatedAt ?? undefined;
1689
+ message.tenantId = object.tenantId ?? "";
1690
+ message.workflowVersionId = object.workflowVersionId ?? "";
1691
+ message.name = object.name ?? "";
1692
+ message.description = object.description ?? undefined;
1693
+ message.steps = object.steps?.map((e) => Step.fromPartial(e)) || [];
1694
+ message.timeout = object.timeout ?? undefined;
1695
+ return message;
1696
+ },
1697
+ };
1698
+
1699
+ function createBaseStep(): Step {
1700
+ return {
1701
+ id: "",
1702
+ createdAt: undefined,
1703
+ updatedAt: undefined,
1704
+ readableId: undefined,
1705
+ tenantId: "",
1706
+ jobId: "",
1707
+ action: "",
1708
+ timeout: undefined,
1709
+ parents: [],
1710
+ children: [],
1711
+ };
1712
+ }
1713
+
1714
+ export const Step = {
1715
+ encode(message: Step, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1716
+ if (message.id !== "") {
1717
+ writer.uint32(10).string(message.id);
1718
+ }
1719
+ if (message.createdAt !== undefined) {
1720
+ Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).ldelim();
1721
+ }
1722
+ if (message.updatedAt !== undefined) {
1723
+ Timestamp.encode(toTimestamp(message.updatedAt), writer.uint32(26).fork()).ldelim();
1724
+ }
1725
+ if (message.readableId !== undefined) {
1726
+ StringValue.encode({ value: message.readableId! }, writer.uint32(42).fork()).ldelim();
1727
+ }
1728
+ if (message.tenantId !== "") {
1729
+ writer.uint32(50).string(message.tenantId);
1730
+ }
1731
+ if (message.jobId !== "") {
1732
+ writer.uint32(58).string(message.jobId);
1733
+ }
1734
+ if (message.action !== "") {
1735
+ writer.uint32(66).string(message.action);
1736
+ }
1737
+ if (message.timeout !== undefined) {
1738
+ StringValue.encode({ value: message.timeout! }, writer.uint32(74).fork()).ldelim();
1739
+ }
1740
+ for (const v of message.parents) {
1741
+ writer.uint32(82).string(v!);
1742
+ }
1743
+ for (const v of message.children) {
1744
+ writer.uint32(90).string(v!);
1745
+ }
1746
+ return writer;
1747
+ },
1748
+
1749
+ decode(input: _m0.Reader | Uint8Array, length?: number): Step {
1750
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1751
+ let end = length === undefined ? reader.len : reader.pos + length;
1752
+ const message = createBaseStep();
1753
+ while (reader.pos < end) {
1754
+ const tag = reader.uint32();
1755
+ switch (tag >>> 3) {
1756
+ case 1:
1757
+ if (tag !== 10) {
1758
+ break;
1759
+ }
1760
+
1761
+ message.id = reader.string();
1762
+ continue;
1763
+ case 2:
1764
+ if (tag !== 18) {
1765
+ break;
1766
+ }
1767
+
1768
+ message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1769
+ continue;
1770
+ case 3:
1771
+ if (tag !== 26) {
1772
+ break;
1773
+ }
1774
+
1775
+ message.updatedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
1776
+ continue;
1777
+ case 5:
1778
+ if (tag !== 42) {
1779
+ break;
1780
+ }
1781
+
1782
+ message.readableId = StringValue.decode(reader, reader.uint32()).value;
1783
+ continue;
1784
+ case 6:
1785
+ if (tag !== 50) {
1786
+ break;
1787
+ }
1788
+
1789
+ message.tenantId = reader.string();
1790
+ continue;
1791
+ case 7:
1792
+ if (tag !== 58) {
1793
+ break;
1794
+ }
1795
+
1796
+ message.jobId = reader.string();
1797
+ continue;
1798
+ case 8:
1799
+ if (tag !== 66) {
1800
+ break;
1801
+ }
1802
+
1803
+ message.action = reader.string();
1804
+ continue;
1805
+ case 9:
1806
+ if (tag !== 74) {
1807
+ break;
1808
+ }
1809
+
1810
+ message.timeout = StringValue.decode(reader, reader.uint32()).value;
1811
+ continue;
1812
+ case 10:
1813
+ if (tag !== 82) {
1814
+ break;
1815
+ }
1816
+
1817
+ message.parents.push(reader.string());
1818
+ continue;
1819
+ case 11:
1820
+ if (tag !== 90) {
1821
+ break;
1822
+ }
1823
+
1824
+ message.children.push(reader.string());
1825
+ continue;
1826
+ }
1827
+ if ((tag & 7) === 4 || tag === 0) {
1828
+ break;
1829
+ }
1830
+ reader.skipType(tag & 7);
1831
+ }
1832
+ return message;
1833
+ },
1834
+
1835
+ fromJSON(object: any): Step {
1836
+ return {
1837
+ id: isSet(object.id) ? globalThis.String(object.id) : "",
1838
+ createdAt: isSet(object.createdAt) ? fromJsonTimestamp(object.createdAt) : undefined,
1839
+ updatedAt: isSet(object.updatedAt) ? fromJsonTimestamp(object.updatedAt) : undefined,
1840
+ readableId: isSet(object.readableId) ? String(object.readableId) : undefined,
1841
+ tenantId: isSet(object.tenantId) ? globalThis.String(object.tenantId) : "",
1842
+ jobId: isSet(object.jobId) ? globalThis.String(object.jobId) : "",
1843
+ action: isSet(object.action) ? globalThis.String(object.action) : "",
1844
+ timeout: isSet(object.timeout) ? String(object.timeout) : undefined,
1845
+ parents: globalThis.Array.isArray(object?.parents) ? object.parents.map((e: any) => globalThis.String(e)) : [],
1846
+ children: globalThis.Array.isArray(object?.children) ? object.children.map((e: any) => globalThis.String(e)) : [],
1847
+ };
1848
+ },
1849
+
1850
+ toJSON(message: Step): unknown {
1851
+ const obj: any = {};
1852
+ if (message.id !== "") {
1853
+ obj.id = message.id;
1854
+ }
1855
+ if (message.createdAt !== undefined) {
1856
+ obj.createdAt = message.createdAt.toISOString();
1857
+ }
1858
+ if (message.updatedAt !== undefined) {
1859
+ obj.updatedAt = message.updatedAt.toISOString();
1860
+ }
1861
+ if (message.readableId !== undefined) {
1862
+ obj.readableId = message.readableId;
1863
+ }
1864
+ if (message.tenantId !== "") {
1865
+ obj.tenantId = message.tenantId;
1866
+ }
1867
+ if (message.jobId !== "") {
1868
+ obj.jobId = message.jobId;
1869
+ }
1870
+ if (message.action !== "") {
1871
+ obj.action = message.action;
1872
+ }
1873
+ if (message.timeout !== undefined) {
1874
+ obj.timeout = message.timeout;
1875
+ }
1876
+ if (message.parents?.length) {
1877
+ obj.parents = message.parents;
1878
+ }
1879
+ if (message.children?.length) {
1880
+ obj.children = message.children;
1881
+ }
1882
+ return obj;
1883
+ },
1884
+
1885
+ create(base?: DeepPartial<Step>): Step {
1886
+ return Step.fromPartial(base ?? {});
1887
+ },
1888
+ fromPartial(object: DeepPartial<Step>): Step {
1889
+ const message = createBaseStep();
1890
+ message.id = object.id ?? "";
1891
+ message.createdAt = object.createdAt ?? undefined;
1892
+ message.updatedAt = object.updatedAt ?? undefined;
1893
+ message.readableId = object.readableId ?? undefined;
1894
+ message.tenantId = object.tenantId ?? "";
1895
+ message.jobId = object.jobId ?? "";
1896
+ message.action = object.action ?? "";
1897
+ message.timeout = object.timeout ?? undefined;
1898
+ message.parents = object.parents?.map((e) => e) || [];
1899
+ message.children = object.children?.map((e) => e) || [];
1900
+ return message;
1901
+ },
1902
+ };
1903
+
1904
+ function createBaseDeleteWorkflowRequest(): DeleteWorkflowRequest {
1905
+ return { workflowId: "" };
1906
+ }
1907
+
1908
+ export const DeleteWorkflowRequest = {
1909
+ encode(message: DeleteWorkflowRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1910
+ if (message.workflowId !== "") {
1911
+ writer.uint32(10).string(message.workflowId);
1912
+ }
1913
+ return writer;
1914
+ },
1915
+
1916
+ decode(input: _m0.Reader | Uint8Array, length?: number): DeleteWorkflowRequest {
1917
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1918
+ let end = length === undefined ? reader.len : reader.pos + length;
1919
+ const message = createBaseDeleteWorkflowRequest();
1920
+ while (reader.pos < end) {
1921
+ const tag = reader.uint32();
1922
+ switch (tag >>> 3) {
1923
+ case 1:
1924
+ if (tag !== 10) {
1925
+ break;
1926
+ }
1927
+
1928
+ message.workflowId = reader.string();
1929
+ continue;
1930
+ }
1931
+ if ((tag & 7) === 4 || tag === 0) {
1932
+ break;
1933
+ }
1934
+ reader.skipType(tag & 7);
1935
+ }
1936
+ return message;
1937
+ },
1938
+
1939
+ fromJSON(object: any): DeleteWorkflowRequest {
1940
+ return { workflowId: isSet(object.workflowId) ? globalThis.String(object.workflowId) : "" };
1941
+ },
1942
+
1943
+ toJSON(message: DeleteWorkflowRequest): unknown {
1944
+ const obj: any = {};
1945
+ if (message.workflowId !== "") {
1946
+ obj.workflowId = message.workflowId;
1947
+ }
1948
+ return obj;
1949
+ },
1950
+
1951
+ create(base?: DeepPartial<DeleteWorkflowRequest>): DeleteWorkflowRequest {
1952
+ return DeleteWorkflowRequest.fromPartial(base ?? {});
1953
+ },
1954
+ fromPartial(object: DeepPartial<DeleteWorkflowRequest>): DeleteWorkflowRequest {
1955
+ const message = createBaseDeleteWorkflowRequest();
1956
+ message.workflowId = object.workflowId ?? "";
1957
+ return message;
1958
+ },
1959
+ };
1960
+
1961
+ function createBaseGetWorkflowByNameRequest(): GetWorkflowByNameRequest {
1962
+ return { name: "" };
1963
+ }
1964
+
1965
+ export const GetWorkflowByNameRequest = {
1966
+ encode(message: GetWorkflowByNameRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1967
+ if (message.name !== "") {
1968
+ writer.uint32(10).string(message.name);
1969
+ }
1970
+ return writer;
1971
+ },
1972
+
1973
+ decode(input: _m0.Reader | Uint8Array, length?: number): GetWorkflowByNameRequest {
1974
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1975
+ let end = length === undefined ? reader.len : reader.pos + length;
1976
+ const message = createBaseGetWorkflowByNameRequest();
1977
+ while (reader.pos < end) {
1978
+ const tag = reader.uint32();
1979
+ switch (tag >>> 3) {
1980
+ case 1:
1981
+ if (tag !== 10) {
1982
+ break;
1983
+ }
1984
+
1985
+ message.name = reader.string();
1986
+ continue;
1987
+ }
1988
+ if ((tag & 7) === 4 || tag === 0) {
1989
+ break;
1990
+ }
1991
+ reader.skipType(tag & 7);
1992
+ }
1993
+ return message;
1994
+ },
1995
+
1996
+ fromJSON(object: any): GetWorkflowByNameRequest {
1997
+ return { name: isSet(object.name) ? globalThis.String(object.name) : "" };
1998
+ },
1999
+
2000
+ toJSON(message: GetWorkflowByNameRequest): unknown {
2001
+ const obj: any = {};
2002
+ if (message.name !== "") {
2003
+ obj.name = message.name;
2004
+ }
2005
+ return obj;
2006
+ },
2007
+
2008
+ create(base?: DeepPartial<GetWorkflowByNameRequest>): GetWorkflowByNameRequest {
2009
+ return GetWorkflowByNameRequest.fromPartial(base ?? {});
2010
+ },
2011
+ fromPartial(object: DeepPartial<GetWorkflowByNameRequest>): GetWorkflowByNameRequest {
2012
+ const message = createBaseGetWorkflowByNameRequest();
2013
+ message.name = object.name ?? "";
2014
+ return message;
2015
+ },
2016
+ };
2017
+
2018
+ /** WorkflowService represents a set of RPCs for managing workflows. */
2019
+ export type WorkflowServiceDefinition = typeof WorkflowServiceDefinition;
2020
+ export const WorkflowServiceDefinition = {
2021
+ name: "WorkflowService",
2022
+ fullName: "WorkflowService",
2023
+ methods: {
2024
+ listWorkflows: {
2025
+ name: "ListWorkflows",
2026
+ requestType: ListWorkflowsRequest,
2027
+ requestStream: false,
2028
+ responseType: ListWorkflowsResponse,
2029
+ responseStream: false,
2030
+ options: {},
2031
+ },
2032
+ putWorkflow: {
2033
+ name: "PutWorkflow",
2034
+ requestType: PutWorkflowRequest,
2035
+ requestStream: false,
2036
+ responseType: WorkflowVersion,
2037
+ responseStream: false,
2038
+ options: {},
2039
+ },
2040
+ scheduleWorkflow: {
2041
+ name: "ScheduleWorkflow",
2042
+ requestType: ScheduleWorkflowRequest,
2043
+ requestStream: false,
2044
+ responseType: WorkflowVersion,
2045
+ responseStream: false,
2046
+ options: {},
2047
+ },
2048
+ getWorkflowByName: {
2049
+ name: "GetWorkflowByName",
2050
+ requestType: GetWorkflowByNameRequest,
2051
+ requestStream: false,
2052
+ responseType: Workflow,
2053
+ responseStream: false,
2054
+ options: {},
2055
+ },
2056
+ listWorkflowsForEvent: {
2057
+ name: "ListWorkflowsForEvent",
2058
+ requestType: ListWorkflowsForEventRequest,
2059
+ requestStream: false,
2060
+ responseType: ListWorkflowsResponse,
2061
+ responseStream: false,
2062
+ options: {},
2063
+ },
2064
+ deleteWorkflow: {
2065
+ name: "DeleteWorkflow",
2066
+ requestType: DeleteWorkflowRequest,
2067
+ requestStream: false,
2068
+ responseType: Workflow,
2069
+ responseStream: false,
2070
+ options: {},
2071
+ },
2072
+ },
2073
+ } as const;
2074
+
2075
+ export interface WorkflowServiceImplementation<CallContextExt = {}> {
2076
+ listWorkflows(
2077
+ request: ListWorkflowsRequest,
2078
+ context: CallContext & CallContextExt,
2079
+ ): Promise<DeepPartial<ListWorkflowsResponse>>;
2080
+ putWorkflow(
2081
+ request: PutWorkflowRequest,
2082
+ context: CallContext & CallContextExt,
2083
+ ): Promise<DeepPartial<WorkflowVersion>>;
2084
+ scheduleWorkflow(
2085
+ request: ScheduleWorkflowRequest,
2086
+ context: CallContext & CallContextExt,
2087
+ ): Promise<DeepPartial<WorkflowVersion>>;
2088
+ getWorkflowByName(
2089
+ request: GetWorkflowByNameRequest,
2090
+ context: CallContext & CallContextExt,
2091
+ ): Promise<DeepPartial<Workflow>>;
2092
+ listWorkflowsForEvent(
2093
+ request: ListWorkflowsForEventRequest,
2094
+ context: CallContext & CallContextExt,
2095
+ ): Promise<DeepPartial<ListWorkflowsResponse>>;
2096
+ deleteWorkflow(request: DeleteWorkflowRequest, context: CallContext & CallContextExt): Promise<DeepPartial<Workflow>>;
2097
+ }
2098
+
2099
+ export interface WorkflowServiceClient<CallOptionsExt = {}> {
2100
+ listWorkflows(
2101
+ request: DeepPartial<ListWorkflowsRequest>,
2102
+ options?: CallOptions & CallOptionsExt,
2103
+ ): Promise<ListWorkflowsResponse>;
2104
+ putWorkflow(
2105
+ request: DeepPartial<PutWorkflowRequest>,
2106
+ options?: CallOptions & CallOptionsExt,
2107
+ ): Promise<WorkflowVersion>;
2108
+ scheduleWorkflow(
2109
+ request: DeepPartial<ScheduleWorkflowRequest>,
2110
+ options?: CallOptions & CallOptionsExt,
2111
+ ): Promise<WorkflowVersion>;
2112
+ getWorkflowByName(
2113
+ request: DeepPartial<GetWorkflowByNameRequest>,
2114
+ options?: CallOptions & CallOptionsExt,
2115
+ ): Promise<Workflow>;
2116
+ listWorkflowsForEvent(
2117
+ request: DeepPartial<ListWorkflowsForEventRequest>,
2118
+ options?: CallOptions & CallOptionsExt,
2119
+ ): Promise<ListWorkflowsResponse>;
2120
+ deleteWorkflow(
2121
+ request: DeepPartial<DeleteWorkflowRequest>,
2122
+ options?: CallOptions & CallOptionsExt,
2123
+ ): Promise<Workflow>;
2124
+ }
2125
+
2126
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
2127
+
2128
+ export type DeepPartial<T> = T extends Builtin ? T
2129
+ : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
2130
+ : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
2131
+ : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
2132
+ : Partial<T>;
2133
+
2134
+ function toTimestamp(date: Date): Timestamp {
2135
+ const seconds = Math.trunc(date.getTime() / 1_000);
2136
+ const nanos = (date.getTime() % 1_000) * 1_000_000;
2137
+ return { seconds, nanos };
2138
+ }
2139
+
2140
+ function fromTimestamp(t: Timestamp): Date {
2141
+ let millis = (t.seconds || 0) * 1_000;
2142
+ millis += (t.nanos || 0) / 1_000_000;
2143
+ return new globalThis.Date(millis);
2144
+ }
2145
+
2146
+ function fromJsonTimestamp(o: any): Date {
2147
+ if (o instanceof globalThis.Date) {
2148
+ return o;
2149
+ } else if (typeof o === "string") {
2150
+ return new globalThis.Date(o);
2151
+ } else {
2152
+ return fromTimestamp(Timestamp.fromJSON(o));
2153
+ }
2154
+ }
2155
+
2156
+ function isSet(value: any): boolean {
2157
+ return value !== null && value !== undefined;
2158
+ }