@temporalio/client 1.14.2-canary-release-testing.0 → 1.16.0

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 (41) hide show
  1. package/lib/build-id-types.d.ts +8 -8
  2. package/lib/helpers.js +2 -1
  3. package/lib/helpers.js.map +1 -1
  4. package/lib/index.d.ts +27 -2
  5. package/lib/index.js +27 -2
  6. package/lib/index.js.map +1 -1
  7. package/lib/interceptor-adapters.js +2 -2
  8. package/lib/interceptor-adapters.js.map +1 -1
  9. package/lib/schedule-client.js +4 -4
  10. package/lib/schedule-client.js.map +1 -1
  11. package/lib/schedule-helpers.js +3 -10
  12. package/lib/schedule-helpers.js.map +1 -1
  13. package/lib/schedule-types.d.ts +1 -1
  14. package/lib/schedule-types.js +1 -1
  15. package/lib/schedule-types.js.map +1 -1
  16. package/lib/task-queue-client.d.ts +34 -12
  17. package/lib/task-queue-client.js +19 -3
  18. package/lib/task-queue-client.js.map +1 -1
  19. package/lib/types.d.ts +2 -1
  20. package/lib/types.js +4 -4
  21. package/lib/types.js.map +1 -1
  22. package/lib/workflow-client.js +9 -6
  23. package/lib/workflow-client.js.map +1 -1
  24. package/lib/workflow-options.d.ts +0 -2
  25. package/lib/workflow-options.js.map +1 -1
  26. package/lib/workflow-update-stage.js +1 -1
  27. package/lib/workflow-update-stage.js.map +1 -1
  28. package/package.json +4 -4
  29. package/src/build-id-types.ts +8 -8
  30. package/src/helpers.ts +2 -1
  31. package/src/index.ts +27 -2
  32. package/src/interceptor-adapters.ts +2 -2
  33. package/src/interceptors.ts +3 -3
  34. package/src/schedule-client.ts +4 -4
  35. package/src/schedule-helpers.ts +8 -10
  36. package/src/schedule-types.ts +5 -5
  37. package/src/task-queue-client.ts +34 -13
  38. package/src/types.ts +8 -6
  39. package/src/workflow-client.ts +11 -7
  40. package/src/workflow-options.ts +0 -2
  41. package/src/workflow-update-stage.ts +1 -1
@@ -1,4 +1,4 @@
1
- import Long from 'long'; // eslint-disable-line import/no-named-as-default
1
+ import Long from 'long';
2
2
  import {
3
3
  compilePriority,
4
4
  compileRetryPolicy,
@@ -267,9 +267,9 @@ export async function encodeScheduleAction(
267
267
  retryPolicy: action.retry ? compileRetryPolicy(action.retry) : undefined,
268
268
  memo: action.memo ? { fields: await encodeMapToPayloads(dataConverter, action.memo) } : undefined,
269
269
  searchAttributes:
270
- action.searchAttributes || action.typedSearchAttributes // eslint-disable-line deprecation/deprecation
270
+ action.searchAttributes || action.typedSearchAttributes // eslint-disable-line @typescript-eslint/no-deprecated
271
271
  ? {
272
- indexedFields: encodeUnifiedSearchAttributes(action.searchAttributes, action.typedSearchAttributes), // eslint-disable-line deprecation/deprecation
272
+ indexedFields: encodeUnifiedSearchAttributes(action.searchAttributes, action.typedSearchAttributes), // eslint-disable-line @typescript-eslint/no-deprecated
273
273
  }
274
274
  : undefined,
275
275
  header: { fields: headers },
@@ -327,11 +327,11 @@ export async function decodeScheduleAction(
327
327
  const { staticSummary, staticDetails } = await decodeUserMetadata(dataConverter, pb.startWorkflow?.userMetadata);
328
328
  return {
329
329
  type: 'startWorkflow',
330
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
330
+
331
331
  workflowId: pb.startWorkflow.workflowId!,
332
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
332
+
333
333
  workflowType: pb.startWorkflow.workflowType!.name!,
334
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
334
+
335
335
  taskQueue: pb.startWorkflow.taskQueue!.name!,
336
336
  args: await decodeArrayFromPayloads(dataConverter, pb.startWorkflow.input?.payloads),
337
337
  memo: await decodeMapFromPayloads(dataConverter, pb.startWorkflow.memo?.fields),
@@ -357,9 +357,8 @@ export function decodeScheduleRunningActions(
357
357
  (x): ScheduleExecutionStartWorkflowActionResult => ({
358
358
  type: 'startWorkflow',
359
359
  workflow: {
360
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
361
360
  workflowId: x.workflowId!,
362
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
361
+
363
362
  firstExecutionRunId: x.runId!,
364
363
  },
365
364
  })
@@ -377,9 +376,8 @@ export function decodeScheduleRecentActions(
377
376
  action = {
378
377
  type: 'startWorkflow',
379
378
  workflow: {
380
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
381
379
  workflowId: executionResult.startWorkflowResult!.workflowId!,
382
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
380
+
383
381
  firstExecutionRunId: executionResult.startWorkflowResult!.runId!,
384
382
  },
385
383
  };
@@ -31,7 +31,7 @@ export interface ScheduleOptions<A extends ScheduleOptionsAction = ScheduleOptio
31
31
  * running. This can be changed after a Schedule has taken some Actions, and some changes might produce
32
32
  * unintuitive results. In general, the later policy overrides the earlier policy.
33
33
  *
34
- * @default {@link ScheduleOverlapPolicy.SKIP}
34
+ * @default ScheduleOverlapPolicy.SKIP
35
35
  */
36
36
  overlap?: ScheduleOverlapPolicy;
37
37
 
@@ -73,7 +73,7 @@ export interface ScheduleOptions<A extends ScheduleOptionsAction = ScheduleOptio
73
73
  *
74
74
  * @deprecated Use {@link typedSearchAttributes} instead.
75
75
  */
76
- searchAttributes?: SearchAttributes; // eslint-disable-line deprecation/deprecation
76
+ searchAttributes?: SearchAttributes; // eslint-disable-line @typescript-eslint/no-deprecated
77
77
 
78
78
  /**
79
79
  * Additional indexed information attached to the Schedule. More info:
@@ -192,7 +192,7 @@ export interface ScheduleSummary {
192
192
  *
193
193
  * @deprecated Use {@link typedSearchAttributes} instead.
194
194
  */
195
- searchAttributes?: SearchAttributes; // eslint-disable-line deprecation/deprecation
195
+ searchAttributes?: SearchAttributes; // eslint-disable-line @typescript-eslint/no-deprecated
196
196
 
197
197
  /**
198
198
  * Additional indexed information attached to the Schedule. More info:
@@ -314,7 +314,7 @@ export type ScheduleDescription = {
314
314
  *
315
315
  * @deprecated Use {@link typedSearchAttributes} instead.
316
316
  */
317
- searchAttributes: SearchAttributes; // eslint-disable-line deprecation/deprecation
317
+ searchAttributes: SearchAttributes; // eslint-disable-line @typescript-eslint/no-deprecated
318
318
 
319
319
  /**
320
320
  * Additional indexed information attached to the Schedule. More info:
@@ -877,7 +877,7 @@ export const ScheduleOverlapPolicy = {
877
877
  *
878
878
  * @deprecated Either leave property `undefined`, or use {@link SKIP} instead.
879
879
  */
880
- UNSPECIFIED: undefined, // eslint-disable-line deprecation/deprecation
880
+ UNSPECIFIED: undefined,
881
881
  } as const;
882
882
  export type ScheduleOverlapPolicy = (typeof ScheduleOverlapPolicy)[keyof typeof ScheduleOverlapPolicy];
883
883
 
@@ -13,18 +13,19 @@ type IUpdateWorkerBuildIdCompatibilityRequest =
13
13
  type GetWorkerTaskReachabilityResponse = temporal.api.workflowservice.v1.GetWorkerTaskReachabilityResponse;
14
14
 
15
15
  /**
16
- * @experimental The Worker Versioning API is still being designed. Major changes are expected.
16
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
17
17
  */
18
18
  export type TaskQueueClientOptions = BaseClientOptions;
19
19
 
20
20
  /**
21
- * @experimental The Worker Versioning API is still being designed. Major changes are expected.
21
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
22
22
  */
23
23
  export type LoadedTaskQueueClientOptions = LoadedWithDefaults<TaskQueueClientOptions>;
24
24
 
25
25
  /**
26
26
  * A stand-in for a Build Id for unversioned Workers
27
- * @experimental The Worker Versioning API is still being designed. Major changes are expected.
27
+ *
28
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
28
29
  */
29
30
  export const UnversionedBuildId = Symbol.for('__temporal_unversionedBuildId');
30
31
  export type UnversionedBuildIdType = typeof UnversionedBuildId;
@@ -32,7 +33,7 @@ export type UnversionedBuildIdType = typeof UnversionedBuildId;
32
33
  /**
33
34
  * Client for starting Workflow executions and creating Workflow handles
34
35
  *
35
- * @experimental The Worker Versioning API is still being designed. Major changes are expected.
36
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
36
37
  */
37
38
  export class TaskQueueClient extends BaseClient {
38
39
  public readonly options: LoadedTaskQueueClientOptions;
@@ -63,6 +64,8 @@ export class TaskQueueClient extends BaseClient {
63
64
  *
64
65
  * @param taskQueue The task queue to make changes to.
65
66
  * @param operation The operation to be performed.
67
+ *
68
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
66
69
  */
67
70
  public async updateBuildIdCompatibility(taskQueue: string, operation: BuildIdOperation): Promise<void> {
68
71
  const request: IUpdateWorkerBuildIdCompatibilityRequest = {
@@ -107,6 +110,8 @@ export class TaskQueueClient extends BaseClient {
107
110
  * @param taskQueue The task queue to fetch the compatibility information for.
108
111
  * @returns The sets of compatible Build Ids for the given task queue, or undefined if the queue
109
112
  * has no Build Ids defined on it.
113
+ *
114
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
110
115
  */
111
116
  public async getBuildIdCompatability(taskQueue: string): Promise<WorkerBuildIdVersionSets | undefined> {
112
117
  let resp;
@@ -134,6 +139,8 @@ export class TaskQueueClient extends BaseClient {
134
139
  * task queues that reachability information could not be retrieved for will be marked with a
135
140
  * `NotFetched` entry in {@link BuildIdReachability.taskQueueReachability}. The caller may issue
136
141
  * another call to get the reachability for those task queues.
142
+ *
143
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
137
144
  */
138
145
  public async getReachability(options: ReachabilityOptions): Promise<ReachabilityResponse> {
139
146
  let resp;
@@ -170,9 +177,20 @@ export class TaskQueueClient extends BaseClient {
170
177
 
171
178
  /**
172
179
  * Options for {@link TaskQueueClient.getReachability}
180
+ *
181
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
173
182
  */
174
183
  export type ReachabilityOptions = RequireAtLeastOne<BaseReachabilityOptions, 'buildIds' | 'taskQueues'>;
175
184
 
185
+ /**
186
+ * There are different types of reachability:
187
+ * - `NEW_WORKFLOWS`: The Build Id might be used by new workflows
188
+ * - `EXISTING_WORKFLOWS` The Build Id might be used by open workflows and/or closed workflows.
189
+ * - `OPEN_WORKFLOWS` The Build Id might be used by open workflows
190
+ * - `CLOSED_WORKFLOWS` The Build Id might be used by closed workflows
191
+ *
192
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
193
+ */
176
194
  export const ReachabilityType = {
177
195
  /** The Build Id might be used by new workflows. */
178
196
  NEW_WORKFLOWS: 'NEW_WORKFLOWS',
@@ -186,14 +204,6 @@ export const ReachabilityType = {
186
204
  /** The Build Id might be used by closed workflows. */
187
205
  CLOSED_WORKFLOWS: 'CLOSED_WORKFLOWS',
188
206
  } as const;
189
-
190
- /**
191
- * There are different types of reachability:
192
- * - `NEW_WORKFLOWS`: The Build Id might be used by new workflows
193
- * - `EXISTING_WORKFLOWS` The Build Id might be used by open workflows and/or closed workflows.
194
- * - `OPEN_WORKFLOWS` The Build Id might be used by open workflows
195
- * - `CLOSED_WORKFLOWS` The Build Id might be used by closed workflows
196
- */
197
207
  export type ReachabilityType = (typeof ReachabilityType)[keyof typeof ReachabilityType];
198
208
 
199
209
  export const [encodeTaskReachability, decodeTaskReachability] = makeProtoEnumConverters<
@@ -215,6 +225,8 @@ export const [encodeTaskReachability, decodeTaskReachability] = makeProtoEnumCon
215
225
 
216
226
  /**
217
227
  * See {@link ReachabilityOptions}
228
+ *
229
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
218
230
  */
219
231
  export interface BaseReachabilityOptions {
220
232
  /**
@@ -231,13 +243,22 @@ export interface BaseReachabilityOptions {
231
243
  reachability?: ReachabilityType;
232
244
  }
233
245
 
246
+ /**
247
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
248
+ */
234
249
  export interface ReachabilityResponse {
235
250
  /** Maps Build Ids to their reachability information. */
236
251
  buildIdReachability: Record<string | UnversionedBuildIdType, BuildIdReachability>;
237
252
  }
238
253
 
254
+ /**
255
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
256
+ */
239
257
  export type ReachabilityTypeResponse = ReachabilityType | 'NOT_FETCHED';
240
258
 
259
+ /**
260
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
261
+ */
241
262
  export interface BuildIdReachability {
242
263
  /**
243
264
  * Maps Task Queue names to how the Build Id may be reachable from them. If they are not
@@ -284,7 +305,7 @@ export function reachabilityResponseFromProto(resp: GetWorkerTaskReachabilityRes
284
305
  * - Id passed is incorrect
285
306
  * - Build Id has been scavenged by the server.
286
307
  *
287
- * @experimental The Worker Versioning API is still being designed. Major changes are expected.
308
+ * @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
288
309
  */
289
310
  @SymbolBasedInstanceOfError('BuildIdNotFoundError')
290
311
  export class BuildIdNotFoundError extends Error {}
package/src/types.ts CHANGED
@@ -29,6 +29,7 @@ export type WorkflowExecutionStatusName =
29
29
  | 'TERMINATED'
30
30
  | 'CONTINUED_AS_NEW'
31
31
  | 'TIMED_OUT'
32
+ | 'PAUSED'
32
33
  | 'UNKNOWN'; // UNKNOWN is reserved for future enum values
33
34
 
34
35
  export interface WorkflowExecutionInfo {
@@ -49,7 +50,7 @@ export interface WorkflowExecutionInfo {
49
50
  closeTime?: Date;
50
51
  memo?: Record<string, unknown>;
51
52
  /** @deprecated Use {@link typedSearchAttributes} instead. */
52
- searchAttributes: SearchAttributes; // eslint-disable-line deprecation/deprecation
53
+ searchAttributes: SearchAttributes; // eslint-disable-line @typescript-eslint/no-deprecated
53
54
  typedSearchAttributes: TypedSearchAttributes;
54
55
  parentExecution?: Required<proto.temporal.api.common.v1.IWorkflowExecution>;
55
56
  rootExecution?: Required<proto.temporal.api.common.v1.IWorkflowExecution>;
@@ -61,7 +62,7 @@ export interface CountWorkflowExecution {
61
62
  count: number;
62
63
  groups: {
63
64
  count: number;
64
- groupValues: SearchAttributeValue[]; // eslint-disable-line deprecation/deprecation
65
+ groupValues: SearchAttributeValue[]; // eslint-disable-line @typescript-eslint/no-deprecated
65
66
  }[];
66
67
  }
67
68
 
@@ -123,6 +124,7 @@ export interface CallContext {
123
124
  */
124
125
  export interface ConnectionLike {
125
126
  workflowService: WorkflowService;
127
+ operatorService: OperatorService;
126
128
  plugins: ConnectionPlugin[];
127
129
  close(): Promise<void>;
128
130
  ensureConnected(): Promise<void>;
@@ -183,16 +185,16 @@ export const QueryRejectCondition = {
183
185
  NOT_COMPLETED_CLEANLY: 'NOT_COMPLETED_CLEANLY',
184
186
 
185
187
  /** @deprecated Use {@link NONE} instead. */
186
- QUERY_REJECT_CONDITION_NONE: 'NONE', // eslint-disable-line deprecation/deprecation
188
+ QUERY_REJECT_CONDITION_NONE: 'NONE',
187
189
 
188
190
  /** @deprecated Use {@link NOT_OPEN} instead. */
189
- QUERY_REJECT_CONDITION_NOT_OPEN: 'NOT_OPEN', // eslint-disable-line deprecation/deprecation
191
+ QUERY_REJECT_CONDITION_NOT_OPEN: 'NOT_OPEN',
190
192
 
191
193
  /** @deprecated Use {@link NOT_COMPLETED_CLEANLY} instead. */
192
- QUERY_REJECT_CONDITION_NOT_COMPLETED_CLEANLY: 'NOT_COMPLETED_CLEANLY', // eslint-disable-line deprecation/deprecation
194
+ QUERY_REJECT_CONDITION_NOT_COMPLETED_CLEANLY: 'NOT_COMPLETED_CLEANLY',
193
195
 
194
196
  /** @deprecated Use `undefined` instead. */
195
- QUERY_REJECT_CONDITION_UNSPECIFIED: undefined, // eslint-disable-line deprecation/deprecation
197
+ QUERY_REJECT_CONDITION_UNSPECIFIED: undefined,
196
198
  } as const;
197
199
  export type QueryRejectCondition = (typeof QueryRejectCondition)[keyof typeof QueryRejectCondition];
198
200
 
@@ -296,7 +296,7 @@ export interface WorkflowClientOptions extends BaseClientOptions {
296
296
  *
297
297
  * Useful for injecting auth headers and tracing Workflow executions
298
298
  */
299
- // eslint-disable-next-line deprecation/deprecation
299
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
300
300
  interceptors?: WorkflowClientInterceptors | WorkflowClientInterceptor[];
301
301
 
302
302
  /**
@@ -488,6 +488,10 @@ export class WithStartWorkflowOperation<T extends Workflow> {
488
488
  this[withStartWorkflowOperationResolve] = resolve;
489
489
  this[withStartWorkflowOperationReject] = reject;
490
490
  });
491
+ // Suppress unhandled rejection: if executeUpdateWithStart fails before any
492
+ // response, we reject this promise AND re-throw to the caller. Without this
493
+ // no-op catch the rejected promise has no handler and Node 15+ terminates.
494
+ this.workflowHandlePromise.catch(() => undefined);
491
495
  }
492
496
 
493
497
  public async workflowHandle(): Promise<WorkflowHandle<T>> {
@@ -1033,7 +1037,7 @@ export class WorkflowClient extends BaseClient {
1033
1037
  }
1034
1038
  return {
1035
1039
  updateId: request.request!.meta!.updateId!,
1036
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1040
+
1037
1041
  workflowRunId: response.updateRef!.workflowExecution!.runId!,
1038
1042
  outcome: response.outcome ?? undefined,
1039
1043
  };
@@ -1237,9 +1241,9 @@ export class WorkflowClient extends BaseClient {
1237
1241
  retryPolicy: options.retry ? compileRetryPolicy(options.retry) : undefined,
1238
1242
  memo: options.memo ? { fields: await encodeMapToPayloads(this.dataConverter, options.memo) } : undefined,
1239
1243
  searchAttributes:
1240
- options.searchAttributes || options.typedSearchAttributes // eslint-disable-line deprecation/deprecation
1244
+ options.searchAttributes || options.typedSearchAttributes // eslint-disable-line @typescript-eslint/no-deprecated
1241
1245
  ? {
1242
- indexedFields: encodeUnifiedSearchAttributes(options.searchAttributes, options.typedSearchAttributes), // eslint-disable-line deprecation/deprecation
1246
+ indexedFields: encodeUnifiedSearchAttributes(options.searchAttributes, options.typedSearchAttributes), // eslint-disable-line @typescript-eslint/no-deprecated
1243
1247
  }
1244
1248
  : undefined,
1245
1249
  cronSchedule: options.cronSchedule,
@@ -1326,9 +1330,9 @@ export class WorkflowClient extends BaseClient {
1326
1330
  retryPolicy: opts.retry ? compileRetryPolicy(opts.retry) : undefined,
1327
1331
  memo: opts.memo ? { fields: await encodeMapToPayloads(this.dataConverter, opts.memo) } : undefined,
1328
1332
  searchAttributes:
1329
- opts.searchAttributes || opts.typedSearchAttributes // eslint-disable-line deprecation/deprecation
1333
+ opts.searchAttributes || opts.typedSearchAttributes // eslint-disable-line @typescript-eslint/no-deprecated
1330
1334
  ? {
1331
- indexedFields: encodeUnifiedSearchAttributes(opts.searchAttributes, opts.typedSearchAttributes), // eslint-disable-line deprecation/deprecation
1335
+ indexedFields: encodeUnifiedSearchAttributes(opts.searchAttributes, opts.typedSearchAttributes), // eslint-disable-line @typescript-eslint/no-deprecated
1332
1336
  }
1333
1337
  : undefined,
1334
1338
  cronSchedule: opts.cronSchedule,
@@ -1649,7 +1653,7 @@ export class WorkflowClient extends BaseClient {
1649
1653
 
1650
1654
  protected getOrMakeInterceptors(workflowId: string, runId?: string): WorkflowClientInterceptor[] {
1651
1655
  if (typeof this.options.interceptors === 'object' && 'calls' in this.options.interceptors) {
1652
- // eslint-disable-next-line deprecation/deprecation
1656
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1653
1657
  const factories = (this.options.interceptors as WorkflowClientInterceptors).calls ?? [];
1654
1658
  return factories.map((ctor) => ctor({ workflowId, runId }));
1655
1659
  }
@@ -50,8 +50,6 @@ export interface WorkflowOptions extends CommonWorkflowOptions {
50
50
 
51
51
  /**
52
52
  * Override the versioning behavior of the Workflow that is about to be started.
53
- *
54
- * @experimental Deployment based versioning is experimental and may change in the future.
55
53
  */
56
54
  versioningOverride?: VersioningOverride;
57
55
 
@@ -20,7 +20,7 @@ export const WorkflowUpdateStage = {
20
20
  * This is not an allowed value.
21
21
  * @deprecated
22
22
  */
23
- UNSPECIFIED: undefined, // eslint-disable-line deprecation/deprecation
23
+ UNSPECIFIED: undefined,
24
24
  } as const;
25
25
  export type WorkflowUpdateStage = (typeof WorkflowUpdateStage)[keyof typeof WorkflowUpdateStage];
26
26