@hatchet-dev/typescript-sdk 1.15.2 → 1.17.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 (202) hide show
  1. package/README.md +14 -2
  2. package/clients/admin/admin-client.d.ts +2 -2
  3. package/clients/admin/admin-client.js +8 -9
  4. package/clients/dispatcher/action-listener.d.ts +3 -6
  5. package/clients/dispatcher/action-listener.js +54 -23
  6. package/clients/dispatcher/dispatcher-client.js +5 -8
  7. package/clients/dispatcher/heartbeat/heartbeat-worker.js +7 -4
  8. package/clients/event/event-client.d.ts +2 -2
  9. package/clients/event/event-client.js +5 -11
  10. package/clients/hatchet-client/hatchet-logger.js +8 -17
  11. package/clients/listeners/durable-listener/durable-listener-client.d.ts +115 -15
  12. package/clients/listeners/durable-listener/durable-listener-client.js +769 -19
  13. package/clients/listeners/durable-listener/pooled-durable-listener-client.js +11 -22
  14. package/clients/listeners/run-listener/child-listener-client.d.ts +1 -1
  15. package/clients/listeners/run-listener/child-listener-client.js +34 -30
  16. package/clients/listeners/run-listener/pooled-child-listener-client.js +9 -19
  17. package/clients/rest/generated/Api.d.ts +25 -1
  18. package/clients/rest/generated/Api.js +20 -0
  19. package/clients/rest/generated/data-contracts.d.ts +60 -1
  20. package/clients/rest/generated/data-contracts.js +9 -1
  21. package/legacy/examples/affinity-workers.js +2 -3
  22. package/legacy/examples/byo-logger.js +0 -2
  23. package/legacy/examples/concurrency/cancel-in-progress/concurrency-worker.js +4 -2
  24. package/legacy/examples/concurrency/group-round-robin/concurrency-event.js +0 -1
  25. package/legacy/examples/concurrency/group-round-robin/concurrency-worker-expression.js +4 -2
  26. package/legacy/examples/concurrency/group-round-robin/concurrency-worker-key-fn.js +4 -2
  27. package/legacy/examples/example-event.js +0 -3
  28. package/legacy/examples/logger.js +0 -1
  29. package/legacy/examples/sticky-worker-with-check.js +0 -1
  30. package/legacy/examples/sticky-worker.js +0 -1
  31. package/legacy/legacy-client.js +2 -2
  32. package/legacy/legacy-transformer.js +2 -4
  33. package/legacy/step.d.ts +16 -16
  34. package/legacy/step.js +8 -17
  35. package/legacy/workflow.d.ts +81 -81
  36. package/package.json +20 -29
  37. package/protoc/dispatcher/dispatcher.d.ts +20 -0
  38. package/protoc/dispatcher/dispatcher.js +136 -2
  39. package/protoc/v1/dispatcher.d.ts +168 -0
  40. package/protoc/v1/dispatcher.js +1920 -1
  41. package/protoc/v1/shared/trigger.d.ts +89 -0
  42. package/protoc/v1/shared/trigger.js +493 -0
  43. package/protoc/v1/workflows.d.ts +34 -34
  44. package/protoc/v1/workflows.js +252 -200
  45. package/protoc/workflows/workflows.d.ts +2 -75
  46. package/protoc/workflows/workflows.js +16 -491
  47. package/util/abort-error.d.ts +15 -1
  48. package/util/abort-error.js +30 -5
  49. package/util/config-loader/config-loader.js +4 -3
  50. package/util/config-loader/token.js +9 -2
  51. package/util/errors/eviction-not-supported-error.d.ts +5 -0
  52. package/util/errors/eviction-not-supported-error.js +18 -0
  53. package/util/errors/hatchet-error.d.ts +9 -1
  54. package/util/errors/hatchet-error.js +23 -2
  55. package/util/errors/non-determinism-error.d.ts +7 -0
  56. package/util/errors/non-determinism-error.js +21 -0
  57. package/util/errors/task-run-terminated-error.d.ts +6 -0
  58. package/util/errors/task-run-terminated-error.js +15 -0
  59. package/util/grpc-error.d.ts +9 -0
  60. package/util/grpc-error.js +25 -0
  61. package/util/hatchet-promise/hatchet-promise.d.ts +6 -1
  62. package/util/hatchet-promise/hatchet-promise.js +16 -2
  63. package/util/logger/logger.js +0 -1
  64. package/util/parse.d.ts +1 -1
  65. package/util/parse.js +4 -2
  66. package/util/retrier.js +2 -3
  67. package/util/sleep.d.ts +3 -2
  68. package/util/sleep.js +6 -4
  69. package/util/workflow-run-ref.js +5 -3
  70. package/v1/client/admin.d.ts +2 -2
  71. package/v1/client/admin.js +2 -6
  72. package/v1/client/client.d.ts +7 -11
  73. package/v1/client/client.interface.d.ts +5 -8
  74. package/v1/client/client.js +34 -40
  75. package/v1/client/duration.d.ts +11 -1
  76. package/v1/client/duration.js +44 -0
  77. package/v1/client/features/cel.js +1 -1
  78. package/v1/client/features/crons.js +2 -2
  79. package/v1/client/features/index.d.ts +5 -0
  80. package/v1/client/features/index.js +5 -0
  81. package/v1/client/features/logs.d.ts +37 -0
  82. package/v1/client/features/logs.js +46 -0
  83. package/v1/client/features/runs.d.ts +16 -3
  84. package/v1/client/features/runs.js +38 -4
  85. package/v1/client/features/schedules.js +4 -4
  86. package/v1/client/features/webhooks.js +4 -2
  87. package/v1/client/features/workflows.js +1 -1
  88. package/v1/client/worker/context.d.ts +101 -6
  89. package/v1/client/worker/context.js +257 -44
  90. package/v1/client/worker/deprecated/deprecation.js +8 -4
  91. package/v1/client/worker/deprecated/index.d.ts +1 -1
  92. package/v1/client/worker/deprecated/index.js +2 -1
  93. package/v1/client/worker/deprecated/legacy-worker.d.ts +5 -0
  94. package/v1/client/worker/deprecated/legacy-worker.js +33 -24
  95. package/v1/client/worker/deprecated/pre-eviction.d.ts +12 -0
  96. package/v1/client/worker/deprecated/pre-eviction.js +37 -0
  97. package/v1/client/worker/engine-version.d.ts +5 -0
  98. package/v1/client/worker/engine-version.js +14 -0
  99. package/v1/client/worker/eviction/eviction-cache.d.ts +33 -0
  100. package/v1/client/worker/eviction/eviction-cache.js +139 -0
  101. package/v1/client/worker/eviction/eviction-manager.d.ts +42 -0
  102. package/v1/client/worker/eviction/eviction-manager.js +132 -0
  103. package/v1/client/worker/eviction/eviction-policy.d.ts +19 -0
  104. package/v1/client/worker/eviction/eviction-policy.js +8 -0
  105. package/v1/client/worker/eviction/index.d.ts +3 -0
  106. package/v1/client/worker/eviction/index.js +11 -0
  107. package/v1/client/worker/health-server.js +3 -3
  108. package/v1/client/worker/slot-utils.js +0 -3
  109. package/v1/client/worker/worker-internal.d.ts +23 -4
  110. package/v1/client/worker/worker-internal.js +216 -148
  111. package/v1/client/worker/worker.d.ts +1 -0
  112. package/v1/client/worker/worker.js +34 -0
  113. package/v1/conditions/base.js +0 -1
  114. package/v1/conditions/index.js +2 -4
  115. package/v1/conditions/sleep-condition.js +2 -1
  116. package/v1/conditions/transformer.js +2 -1
  117. package/v1/declaration.d.ts +6 -4
  118. package/v1/declaration.js +20 -7
  119. package/v1/examples/__e2e__/harness.d.ts +5 -0
  120. package/v1/examples/__e2e__/harness.js +17 -3
  121. package/v1/examples/affinity/affinity-workers.js +0 -1
  122. package/v1/examples/bulk_operations/workflow.js +0 -1
  123. package/v1/examples/cancellation/run.js +0 -1
  124. package/v1/examples/cancellations/run.js +0 -1
  125. package/v1/examples/child_workflows/run.js +0 -2
  126. package/v1/examples/child_workflows/workflow.js +0 -1
  127. package/v1/examples/concurrency-rr/load.js +0 -1
  128. package/v1/examples/concurrency-rr/run.js +0 -3
  129. package/v1/examples/concurrency_limit_rr/load.js +0 -1
  130. package/v1/examples/concurrency_limit_rr/run.js +0 -3
  131. package/v1/examples/concurrency_workflow_level/workflow.d.ts +1 -1
  132. package/v1/examples/concurrency_workflow_level/workflow.js +1 -1
  133. package/v1/examples/conditions/event.js +0 -1
  134. package/v1/examples/conditions/run.js +0 -1
  135. package/v1/examples/dag/run.js +0 -1
  136. package/v1/examples/dag_match_condition/event.js +0 -1
  137. package/v1/examples/dag_match_condition/run.js +0 -1
  138. package/v1/examples/deep/run.js +0 -2
  139. package/v1/examples/durable/workflow.d.ts +57 -0
  140. package/v1/examples/durable/workflow.js +164 -10
  141. package/v1/examples/durable-event/event.js +0 -1
  142. package/v1/examples/durable-event/run.js +0 -2
  143. package/v1/examples/durable-event/workflow.js +2 -7
  144. package/v1/examples/durable-sleep/event.js +0 -1
  145. package/v1/examples/durable-sleep/run.js +0 -2
  146. package/v1/examples/durable_event/event.js +0 -1
  147. package/v1/examples/durable_event/run.js +0 -2
  148. package/v1/examples/durable_event/workflow.d.ts +1 -0
  149. package/v1/examples/durable_event/workflow.js +4 -9
  150. package/v1/examples/durable_eviction/capacity-worker.d.ts +1 -0
  151. package/v1/examples/durable_eviction/capacity-worker.js +31 -0
  152. package/v1/examples/durable_eviction/worker.d.ts +1 -0
  153. package/v1/examples/durable_eviction/worker.js +34 -0
  154. package/v1/examples/durable_eviction/workflow.d.ts +44 -0
  155. package/v1/examples/durable_eviction/workflow.js +129 -0
  156. package/v1/examples/durable_sleep/event.js +0 -1
  157. package/v1/examples/durable_sleep/run.js +0 -2
  158. package/v1/examples/e2e-worker.js +42 -19
  159. package/v1/examples/events/event.js +0 -1
  160. package/v1/examples/high-memory/run.js +0 -1
  161. package/v1/examples/inferred-typing/run.js +0 -1
  162. package/v1/examples/landing_page/durable-excution.js +0 -1
  163. package/v1/examples/landing_page/queues.js +0 -1
  164. package/v1/examples/legacy/run.js +0 -1
  165. package/v1/examples/logger/byo-logger.js +0 -2
  166. package/v1/examples/logger/logger.js +0 -1
  167. package/v1/examples/logging/byo-logger.js +0 -2
  168. package/v1/examples/logging/logger.js +0 -1
  169. package/v1/examples/middleware/recipes.js +3 -1
  170. package/v1/examples/migration-guides/mergent.js +2 -1
  171. package/v1/examples/multiple_wf_concurrency/run.js +0 -3
  172. package/v1/examples/non_retryable/run.js +0 -1
  173. package/v1/examples/on_event/event.js +0 -1
  174. package/v1/examples/on_failure/run.js +0 -1
  175. package/v1/examples/on_failure/workflow.js +0 -1
  176. package/v1/examples/on_success/run.js +0 -1
  177. package/v1/examples/on_success/workflow.js +0 -1
  178. package/v1/examples/priority/run.js +0 -1
  179. package/v1/examples/priority/workflow.js +0 -1
  180. package/v1/examples/retries/run.js +0 -1
  181. package/v1/examples/retries/workflow.js +0 -1
  182. package/v1/examples/simple/bulk.js +0 -1
  183. package/v1/examples/simple/cron.js +0 -2
  184. package/v1/examples/simple/delay.js +0 -1
  185. package/v1/examples/simple/enqueue.js +0 -2
  186. package/v1/examples/simple/run.js +0 -1
  187. package/v1/examples/simple/schedule.js +0 -1
  188. package/v1/examples/simple/workflow-with-child.js +10 -4
  189. package/v1/examples/sticky/run.js +0 -1
  190. package/v1/examples/sticky/workflow.js +0 -1
  191. package/v1/examples/streaming/nextjs-proxy.js +0 -1
  192. package/v1/examples/streaming/run.js +0 -1
  193. package/v1/examples/timeout/run.js +0 -1
  194. package/v1/examples/timeouts/run.js +0 -1
  195. package/v1/index.d.ts +5 -0
  196. package/v1/index.js +10 -0
  197. package/v1/parent-run-context-vars.d.ts +6 -0
  198. package/v1/slot-types.js +0 -1
  199. package/v1/task.d.ts +10 -2
  200. package/v1/task.js +2 -1
  201. package/version.d.ts +1 -1
  202. package/version.js +1 -1
@@ -1,6 +1,7 @@
1
1
  import { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire';
2
2
  import type { CallContext, CallOptions } from 'nice-grpc-common';
3
3
  import { TaskConditions } from './shared/condition';
4
+ import { DesiredWorkerLabels } from './shared/trigger';
4
5
  export declare const protobufPackage = "v1";
5
6
  export declare enum StickyStrategy {
6
7
  SOFT = 0,
@@ -27,6 +28,7 @@ export declare enum RunStatus {
27
28
  COMPLETED = 2,
28
29
  FAILED = 3,
29
30
  CANCELLED = 4,
31
+ EVICTED = 5,
30
32
  UNRECOGNIZED = -1
31
33
  }
32
34
  export declare function runStatusFromJSON(object: any): RunStatus;
@@ -43,17 +45,6 @@ export declare enum ConcurrencyLimitStrategy {
43
45
  }
44
46
  export declare function concurrencyLimitStrategyFromJSON(object: any): ConcurrencyLimitStrategy;
45
47
  export declare function concurrencyLimitStrategyToJSON(object: ConcurrencyLimitStrategy): string;
46
- export declare enum WorkerLabelComparator {
47
- EQUAL = 0,
48
- NOT_EQUAL = 1,
49
- GREATER_THAN = 2,
50
- GREATER_THAN_OR_EQUAL = 3,
51
- LESS_THAN = 4,
52
- LESS_THAN_OR_EQUAL = 5,
53
- UNRECOGNIZED = -1
54
- }
55
- export declare function workerLabelComparatorFromJSON(object: any): WorkerLabelComparator;
56
- export declare function workerLabelComparatorToJSON(object: WorkerLabelComparator): string;
57
48
  export interface CancelTasksRequest {
58
49
  /** a list of external UUIDs */
59
50
  externalIds: string[];
@@ -93,6 +84,22 @@ export interface TriggerWorkflowRunRequest_DesiredWorkerLabelsEntry {
93
84
  export interface TriggerWorkflowRunResponse {
94
85
  externalId: string;
95
86
  }
87
+ export interface BranchDurableTaskRequest {
88
+ /** (required) the external id (uuid) of the durable task */
89
+ taskExternalId: string;
90
+ /** (required) the node id to branch from */
91
+ nodeId: number;
92
+ /** (required) the branch id to branch from */
93
+ branchId: number;
94
+ }
95
+ export interface BranchDurableTaskResponse {
96
+ /** the external id of the durable task */
97
+ taskExternalId: string;
98
+ /** the node id of the new entry */
99
+ nodeId: number;
100
+ /** the branch id of the new entry */
101
+ branchId: number;
102
+ }
96
103
  /** CreateWorkflowVersionRequest represents options to create a workflow version. */
97
104
  export interface CreateWorkflowVersionRequest {
98
105
  /** (required) the workflow name */
@@ -140,28 +147,6 @@ export interface Concurrency {
140
147
  /** (optional) the strategy to use when the concurrency limit is reached, default CANCEL_IN_PROGRESS */
141
148
  limitStrategy?: ConcurrencyLimitStrategy | undefined;
142
149
  }
143
- export interface DesiredWorkerLabels {
144
- /** value of the affinity */
145
- strValue?: string | undefined;
146
- intValue?: number | undefined;
147
- /**
148
- * (optional) Specifies whether the affinity setting is required.
149
- * If required, the worker will not accept actions that do not have a truthy affinity setting.
150
- *
151
- * Defaults to false.
152
- */
153
- required?: boolean | undefined;
154
- /**
155
- * (optional) Specifies the comparator for the affinity setting.
156
- * If not set, the default is EQUAL.
157
- */
158
- comparator?: WorkerLabelComparator | undefined;
159
- /**
160
- * (optional) Specifies the weight of the affinity setting.
161
- * If not set, the default is 100.
162
- */
163
- weight?: number | undefined;
164
- }
165
150
  /** CreateTaskOpts represents options to create a task. */
166
151
  export interface CreateTaskOpts {
167
152
  /** (required) the task name */
@@ -241,6 +226,8 @@ export interface TaskRunDetail {
241
226
  output?: Uint8Array | undefined;
242
227
  /** the readable id of the task */
243
228
  readableId: string;
229
+ /** whether the task has been evicted from a worker (status will be RUNNING) */
230
+ isEvicted: boolean;
244
231
  }
245
232
  export interface GetRunDetailsResponse {
246
233
  /** the input payload for the workflow run */
@@ -255,6 +242,8 @@ export interface GetRunDetailsResponse {
255
242
  done: boolean;
256
243
  /** (optional) additional metadata for the workflow run */
257
244
  additionalMetadata: Uint8Array;
245
+ /** whether any task in this run has been evicted */
246
+ isEvicted: boolean;
258
247
  }
259
248
  export interface GetRunDetailsResponse_TaskRunsEntry {
260
249
  key: string;
@@ -268,10 +257,11 @@ export declare const ReplayTasksResponse: MessageFns<ReplayTasksResponse>;
268
257
  export declare const TriggerWorkflowRunRequest: MessageFns<TriggerWorkflowRunRequest>;
269
258
  export declare const TriggerWorkflowRunRequest_DesiredWorkerLabelsEntry: MessageFns<TriggerWorkflowRunRequest_DesiredWorkerLabelsEntry>;
270
259
  export declare const TriggerWorkflowRunResponse: MessageFns<TriggerWorkflowRunResponse>;
260
+ export declare const BranchDurableTaskRequest: MessageFns<BranchDurableTaskRequest>;
261
+ export declare const BranchDurableTaskResponse: MessageFns<BranchDurableTaskResponse>;
271
262
  export declare const CreateWorkflowVersionRequest: MessageFns<CreateWorkflowVersionRequest>;
272
263
  export declare const DefaultFilter: MessageFns<DefaultFilter>;
273
264
  export declare const Concurrency: MessageFns<Concurrency>;
274
- export declare const DesiredWorkerLabels: MessageFns<DesiredWorkerLabels>;
275
265
  export declare const CreateTaskOpts: MessageFns<CreateTaskOpts>;
276
266
  export declare const CreateTaskOpts_WorkerLabelsEntry: MessageFns<CreateTaskOpts_WorkerLabelsEntry>;
277
267
  export declare const CreateTaskOpts_SlotRequestsEntry: MessageFns<CreateTaskOpts_SlotRequestsEntry>;
@@ -327,6 +317,14 @@ export declare const AdminServiceDefinition: {
327
317
  readonly responseStream: false;
328
318
  readonly options: {};
329
319
  };
320
+ readonly branchDurableTask: {
321
+ readonly name: "BranchDurableTask";
322
+ readonly requestType: MessageFns<BranchDurableTaskRequest>;
323
+ readonly requestStream: false;
324
+ readonly responseType: MessageFns<BranchDurableTaskResponse>;
325
+ readonly responseStream: false;
326
+ readonly options: {};
327
+ };
330
328
  };
331
329
  };
332
330
  export interface AdminServiceImplementation<CallContextExt = {}> {
@@ -335,6 +333,7 @@ export interface AdminServiceImplementation<CallContextExt = {}> {
335
333
  replayTasks(request: ReplayTasksRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ReplayTasksResponse>>;
336
334
  triggerWorkflowRun(request: TriggerWorkflowRunRequest, context: CallContext & CallContextExt): Promise<DeepPartial<TriggerWorkflowRunResponse>>;
337
335
  getRunDetails(request: GetRunDetailsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetRunDetailsResponse>>;
336
+ branchDurableTask(request: BranchDurableTaskRequest, context: CallContext & CallContextExt): Promise<DeepPartial<BranchDurableTaskResponse>>;
338
337
  }
339
338
  export interface AdminServiceClient<CallOptionsExt = {}> {
340
339
  putWorkflow(request: DeepPartial<CreateWorkflowVersionRequest>, options?: CallOptions & CallOptionsExt): Promise<CreateWorkflowVersionResponse>;
@@ -342,6 +341,7 @@ export interface AdminServiceClient<CallOptionsExt = {}> {
342
341
  replayTasks(request: DeepPartial<ReplayTasksRequest>, options?: CallOptions & CallOptionsExt): Promise<ReplayTasksResponse>;
343
342
  triggerWorkflowRun(request: DeepPartial<TriggerWorkflowRunRequest>, options?: CallOptions & CallOptionsExt): Promise<TriggerWorkflowRunResponse>;
344
343
  getRunDetails(request: DeepPartial<GetRunDetailsRequest>, options?: CallOptions & CallOptionsExt): Promise<GetRunDetailsResponse>;
344
+ branchDurableTask(request: DeepPartial<BranchDurableTaskRequest>, options?: CallOptions & CallOptionsExt): Promise<BranchDurableTaskResponse>;
345
345
  }
346
346
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
347
347
  export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {