@hatchet-dev/typescript-sdk 1.13.0 → 1.14.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 (245) hide show
  1. package/clients/dispatcher/dispatcher-client.d.ts +1 -1
  2. package/clients/dispatcher/heartbeat/heartbeat-controller.js +13 -1
  3. package/clients/dispatcher/heartbeat/heartbeat-worker.js +4 -3
  4. package/clients/event/event-client.d.ts +1 -2
  5. package/clients/event/event-client.js +2 -2
  6. package/clients/hatchet-client/client-config.d.ts +15 -5
  7. package/clients/hatchet-client/client-config.js +3 -0
  8. package/clients/hatchet-client/hatchet-logger.js +1 -0
  9. package/clients/hatchet-client/index.d.ts +1 -1
  10. package/clients/hatchet-client/index.js +1 -1
  11. package/clients/listeners/durable-listener/durable-listener-client.d.ts +6 -0
  12. package/clients/listeners/durable-listener/durable-listener-client.js +8 -0
  13. package/clients/listeners/durable-listener/pooled-durable-listener-client.d.ts +9 -2
  14. package/clients/listeners/durable-listener/pooled-durable-listener-client.js +67 -15
  15. package/clients/listeners/run-listener/child-listener-client.js +1 -0
  16. package/clients/listeners/run-listener/pooled-child-listener-client.d.ts +10 -2
  17. package/clients/listeners/run-listener/pooled-child-listener-client.js +63 -7
  18. package/clients/rest/api.js +10 -2
  19. package/clients/rest/generated/Api.d.ts +2 -2
  20. package/clients/rest/generated/data-contracts.d.ts +6 -0
  21. package/index.d.ts +2 -3
  22. package/index.js +2 -3
  23. package/{examples → legacy/examples}/affinity-workers.js +2 -2
  24. package/{examples → legacy/examples}/bulk-fanout-trigger.js +1 -1
  25. package/{examples → legacy/examples}/bulk-fanout-worker.js +1 -1
  26. package/{examples → legacy/examples}/bulk-trigger.js +1 -1
  27. package/{examples → legacy/examples}/byo-logger.js +1 -1
  28. package/{examples → legacy/examples}/concurrency/cancel-in-progress/concurrency-event.js +1 -1
  29. package/{examples → legacy/examples}/concurrency/cancel-in-progress/concurrency-worker.js +1 -1
  30. package/{examples → legacy/examples}/concurrency/group-round-robin/concurrency-event.js +1 -1
  31. package/{examples → legacy/examples}/concurrency/group-round-robin/concurrency-worker-expression.js +2 -2
  32. package/{examples → legacy/examples}/concurrency/group-round-robin/concurrency-worker-key-fn.js +2 -2
  33. package/{examples → legacy/examples}/crons/cron-worker.d.ts +1 -1
  34. package/{examples → legacy/examples}/crons/cron-worker.js +1 -1
  35. package/{examples → legacy/examples}/crons/programatic-crons.js +1 -1
  36. package/{examples → legacy/examples}/dag-worker.js +1 -1
  37. package/{examples → legacy/examples}/example-event-with-results.js +2 -2
  38. package/{examples → legacy/examples}/example-event.js +1 -1
  39. package/{examples → legacy/examples}/fanout-worker.js +1 -1
  40. package/{examples → legacy/examples}/logger.js +1 -1
  41. package/{examples → legacy/examples}/manual-trigger.js +1 -1
  42. package/{examples → legacy/examples}/multi-workflow.js +1 -1
  43. package/{examples → legacy/examples}/namespaced-worker.js +1 -1
  44. package/{examples → legacy/examples}/on-failure.js +1 -1
  45. package/{examples → legacy/examples}/rate-limit/events.js +1 -1
  46. package/{examples → legacy/examples}/rate-limit/worker.js +2 -2
  47. package/{examples → legacy/examples}/retries-with-backoff.js +1 -1
  48. package/{examples → legacy/examples}/retries-worker.js +1 -1
  49. package/{examples → legacy/examples}/scheduled-runs/programatic-schedules.js +1 -1
  50. package/{examples → legacy/examples}/simple-worker.d.ts +1 -1
  51. package/{examples → legacy/examples}/simple-worker.js +1 -1
  52. package/{examples → legacy/examples}/sticky-trigger.js +1 -1
  53. package/{examples → legacy/examples}/sticky-worker-with-check.js +2 -2
  54. package/{examples → legacy/examples}/sticky-worker.js +2 -2
  55. package/{examples → legacy/examples}/stream-by-additional-meta.js +2 -2
  56. package/legacy/legacy-client.d.ts +30 -0
  57. package/legacy/legacy-client.js +67 -0
  58. package/legacy/legacy-transformer.d.ts +38 -0
  59. package/legacy/legacy-transformer.js +181 -0
  60. package/legacy/step.d.ts +429 -0
  61. package/legacy/step.js +662 -0
  62. package/legacy/workflow.d.ts +488 -0
  63. package/legacy/workflow.js +72 -0
  64. package/package.json +7 -7
  65. package/step.d.ts +1 -430
  66. package/step.js +6 -647
  67. package/util/abort-error.d.ts +38 -0
  68. package/util/abort-error.js +58 -0
  69. package/util/hatchet-promise/hatchet-promise.d.ts +8 -1
  70. package/util/hatchet-promise/hatchet-promise.js +3 -2
  71. package/util/logger/index.d.ts +1 -0
  72. package/util/logger/index.js +1 -0
  73. package/util/logger/task-run-log.d.ts +3 -0
  74. package/util/logger/task-run-log.js +20 -0
  75. package/util/sleep.d.ts +5 -2
  76. package/util/sleep.js +27 -4
  77. package/util/workflow-run-ref.d.ts +7 -1
  78. package/util/workflow-run-ref.js +5 -3
  79. package/v1/client/admin.d.ts +8 -1
  80. package/v1/client/admin.js +22 -6
  81. package/v1/client/client.d.ts +36 -18
  82. package/v1/client/client.interface.d.ts +9 -2
  83. package/v1/client/client.js +47 -27
  84. package/v1/client/features/crons.d.ts +3 -3
  85. package/v1/client/features/crons.js +2 -2
  86. package/v1/client/features/schedules.js +2 -2
  87. package/v1/client/features/workflows.d.ts +5 -5
  88. package/v1/client/features/workflows.js +7 -8
  89. package/v1/client/worker/context.d.ts +49 -10
  90. package/v1/client/worker/context.js +92 -20
  91. package/v1/client/worker/deprecated/legacy-v1-worker.d.ts +3 -3
  92. package/v1/client/worker/deprecated/legacy-v1-worker.js +2 -2
  93. package/v1/client/worker/deprecated/legacy-worker.js +9 -7
  94. package/v1/client/worker/slot-utils.d.ts +3 -3
  95. package/v1/client/worker/worker-internal.d.ts +7 -16
  96. package/v1/client/worker/worker-internal.js +225 -209
  97. package/v1/client/worker/worker.d.ts +18 -18
  98. package/v1/client/worker/worker.js +45 -30
  99. package/v1/declaration.d.ts +28 -7
  100. package/v1/declaration.js +56 -6
  101. package/v1/examples/__e2e__/harness.d.ts +19 -0
  102. package/v1/examples/__e2e__/harness.js +70 -0
  103. package/v1/examples/affinity/affinity-workers.js +4 -4
  104. package/v1/examples/bulk_fanout/workflow.d.ts +9 -0
  105. package/v1/examples/bulk_fanout/workflow.js +34 -0
  106. package/v1/examples/bulk_operations/workflow.d.ts +3 -0
  107. package/v1/examples/bulk_operations/workflow.js +44 -0
  108. package/v1/examples/cancellation/cancellation-workflow.d.ts +2 -0
  109. package/v1/examples/cancellation/cancellation-workflow.js +69 -0
  110. package/v1/examples/cancellation/run.js +53 -0
  111. package/v1/examples/cancellation/worker.d.ts +1 -0
  112. package/v1/examples/cancellation/worker.js +29 -0
  113. package/v1/examples/concurrency-types.d.ts +5 -0
  114. package/v1/examples/concurrency-types.js +2 -0
  115. package/v1/examples/concurrency_cancel_in_progress/workflow.d.ts +9 -0
  116. package/v1/examples/concurrency_cancel_in_progress/workflow.js +45 -0
  117. package/v1/examples/concurrency_cancel_newest/workflow.d.ts +9 -0
  118. package/v1/examples/concurrency_cancel_newest/workflow.js +45 -0
  119. package/v1/examples/concurrency_limit_rr/load.d.ts +1 -0
  120. package/v1/examples/concurrency_limit_rr/load.js +54 -0
  121. package/v1/examples/concurrency_limit_rr/run.d.ts +1 -0
  122. package/v1/examples/concurrency_limit_rr/run.js +39 -0
  123. package/v1/examples/concurrency_limit_rr/worker.d.ts +1 -0
  124. package/v1/examples/concurrency_limit_rr/worker.js +24 -0
  125. package/v1/examples/concurrency_limit_rr/workflow.d.ts +12 -0
  126. package/v1/examples/concurrency_limit_rr/workflow.js +62 -0
  127. package/v1/examples/concurrency_multiple_keys/workflow.d.ts +12 -0
  128. package/v1/examples/concurrency_multiple_keys/workflow.js +42 -0
  129. package/v1/examples/concurrency_workflow_level/workflow.d.ts +13 -0
  130. package/v1/examples/concurrency_workflow_level/workflow.js +49 -0
  131. package/v1/examples/conditions/complex-workflow.d.ts +1 -0
  132. package/v1/examples/conditions/complex-workflow.js +107 -0
  133. package/v1/examples/conditions/event.d.ts +1 -0
  134. package/v1/examples/conditions/event.js +28 -0
  135. package/v1/examples/conditions/run.d.ts +1 -0
  136. package/v1/examples/conditions/run.js +25 -0
  137. package/v1/examples/conditions/worker.d.ts +1 -0
  138. package/v1/examples/conditions/worker.js +24 -0
  139. package/v1/examples/conditions/workflow.d.ts +11 -0
  140. package/v1/examples/conditions/workflow.js +41 -0
  141. package/v1/examples/durable/workflow.d.ts +7 -0
  142. package/v1/examples/durable/workflow.js +116 -0
  143. package/v1/examples/durable_event/event.d.ts +1 -0
  144. package/v1/examples/durable_event/event.js +28 -0
  145. package/v1/examples/durable_event/run.d.ts +1 -0
  146. package/v1/examples/durable_event/run.js +30 -0
  147. package/v1/examples/durable_event/worker.d.ts +1 -0
  148. package/v1/examples/durable_event/worker.js +24 -0
  149. package/v1/examples/durable_event/workflow.d.ts +6 -0
  150. package/v1/examples/durable_event/workflow.js +46 -0
  151. package/v1/examples/durable_sleep/event.d.ts +1 -0
  152. package/v1/examples/durable_sleep/event.js +28 -0
  153. package/v1/examples/durable_sleep/run.d.ts +1 -0
  154. package/v1/examples/durable_sleep/run.js +30 -0
  155. package/v1/examples/durable_sleep/worker.d.ts +1 -0
  156. package/v1/examples/durable_sleep/worker.js +24 -0
  157. package/v1/examples/durable_sleep/workflow.d.ts +1 -0
  158. package/v1/examples/durable_sleep/workflow.js +31 -0
  159. package/v1/examples/e2e-worker.d.ts +1 -0
  160. package/v1/examples/e2e-worker.js +82 -0
  161. package/v1/examples/events/event.d.ts +1 -0
  162. package/v1/examples/events/event.js +53 -0
  163. package/v1/examples/events/filter.d.ts +1 -0
  164. package/v1/examples/events/filter.js +32 -0
  165. package/v1/examples/events/worker.d.ts +1 -0
  166. package/v1/examples/events/worker.js +24 -0
  167. package/v1/examples/events/workflow.d.ts +19 -0
  168. package/v1/examples/events/workflow.js +60 -0
  169. package/v1/examples/high-memory/workflow-with-child.js +1 -1
  170. package/v1/examples/logger/byo-logger.d.ts +1 -0
  171. package/v1/examples/logger/byo-logger.js +73 -0
  172. package/v1/examples/logger/logger.d.ts +1 -0
  173. package/v1/examples/logger/logger.js +46 -0
  174. package/v1/examples/logger/workflow.d.ts +2 -0
  175. package/v1/examples/logger/workflow.js +38 -0
  176. package/v1/examples/multiple_wf_concurrency/workflow.js +3 -3
  177. package/v1/examples/on_failure/workflow.d.ts +1 -0
  178. package/v1/examples/on_failure/workflow.js +12 -7
  179. package/v1/examples/priority/workflow.js +1 -1
  180. package/v1/examples/retries/workflow.js +2 -2
  181. package/v1/examples/return_exceptions/workflow.d.ts +6 -0
  182. package/v1/examples/return_exceptions/workflow.js +22 -0
  183. package/v1/examples/run_details/workflow.d.ts +4 -0
  184. package/v1/examples/run_details/workflow.js +65 -0
  185. package/v1/examples/simple/e2e-workflows.d.ts +14 -0
  186. package/v1/examples/simple/e2e-workflows.js +27 -0
  187. package/v1/examples/simple/enqueue.js +2 -2
  188. package/v1/examples/sticky/workflow.js +2 -2
  189. package/v1/examples/timeout/run.d.ts +1 -0
  190. package/v1/examples/timeout/run.js +30 -0
  191. package/v1/examples/timeout/worker.d.ts +1 -0
  192. package/v1/examples/timeout/worker.js +25 -0
  193. package/v1/examples/timeout/workflow.d.ts +10 -0
  194. package/v1/examples/timeout/workflow.js +56 -0
  195. package/v1/examples/webhooks/workflow.d.ts +5 -0
  196. package/v1/examples/webhooks/workflow.js +23 -0
  197. package/v1/index.d.ts +1 -0
  198. package/v1/index.js +1 -0
  199. package/v1/parent-run-context-vars.d.ts +6 -0
  200. package/v1/parent-run-context-vars.js +3 -0
  201. package/v1/task.d.ts +22 -7
  202. package/v1/task.js +4 -1
  203. package/version.d.ts +1 -1
  204. package/version.js +1 -1
  205. package/workflow.d.ts +3 -491
  206. package/workflow.js +12 -62
  207. package/clients/hatchet-client/hatchet-client.d.ts +0 -35
  208. package/clients/hatchet-client/hatchet-client.js +0 -108
  209. package/clients/worker/handler.d.ts +0 -50
  210. package/clients/worker/handler.js +0 -214
  211. package/clients/worker/index.d.ts +0 -1
  212. package/clients/worker/index.js +0 -17
  213. package/clients/worker/worker.d.ts +0 -59
  214. package/clients/worker/worker.js +0 -568
  215. package/examples/webhooks.js +0 -45
  216. /package/{examples → legacy/examples}/affinity-workers.d.ts +0 -0
  217. /package/{examples → legacy/examples}/bulk-fanout-trigger.d.ts +0 -0
  218. /package/{examples → legacy/examples}/bulk-fanout-worker.d.ts +0 -0
  219. /package/{examples → legacy/examples}/bulk-trigger.d.ts +0 -0
  220. /package/{examples → legacy/examples}/byo-logger.d.ts +0 -0
  221. /package/{examples → legacy/examples}/concurrency/cancel-in-progress/concurrency-event.d.ts +0 -0
  222. /package/{examples → legacy/examples}/concurrency/cancel-in-progress/concurrency-worker.d.ts +0 -0
  223. /package/{examples → legacy/examples}/concurrency/group-round-robin/concurrency-event.d.ts +0 -0
  224. /package/{examples → legacy/examples}/concurrency/group-round-robin/concurrency-worker-expression.d.ts +0 -0
  225. /package/{examples → legacy/examples}/concurrency/group-round-robin/concurrency-worker-key-fn.d.ts +0 -0
  226. /package/{examples → legacy/examples}/crons/programatic-crons.d.ts +0 -0
  227. /package/{examples → legacy/examples}/dag-worker.d.ts +0 -0
  228. /package/{examples → legacy/examples}/example-event-with-results.d.ts +0 -0
  229. /package/{examples → legacy/examples}/example-event.d.ts +0 -0
  230. /package/{examples → legacy/examples}/fanout-worker.d.ts +0 -0
  231. /package/{examples → legacy/examples}/logger.d.ts +0 -0
  232. /package/{examples → legacy/examples}/manual-trigger.d.ts +0 -0
  233. /package/{examples → legacy/examples}/multi-workflow.d.ts +0 -0
  234. /package/{examples → legacy/examples}/namespaced-worker.d.ts +0 -0
  235. /package/{examples → legacy/examples}/on-failure.d.ts +0 -0
  236. /package/{examples → legacy/examples}/rate-limit/events.d.ts +0 -0
  237. /package/{examples → legacy/examples}/rate-limit/worker.d.ts +0 -0
  238. /package/{examples → legacy/examples}/retries-with-backoff.d.ts +0 -0
  239. /package/{examples → legacy/examples}/retries-worker.d.ts +0 -0
  240. /package/{examples → legacy/examples}/scheduled-runs/programatic-schedules.d.ts +0 -0
  241. /package/{examples → legacy/examples}/sticky-trigger.d.ts +0 -0
  242. /package/{examples → legacy/examples}/sticky-worker-with-check.d.ts +0 -0
  243. /package/{examples → legacy/examples}/sticky-worker.d.ts +0 -0
  244. /package/{examples → legacy/examples}/stream-by-additional-meta.d.ts +0 -0
  245. /package/{examples/webhooks.d.ts → v1/examples/cancellation/run.d.ts} +0 -0
@@ -16,7 +16,7 @@ interface GetActionListenerOptions {
16
16
  durableSlots?: number;
17
17
  /** @deprecated use slots */
18
18
  maxRuns?: number;
19
- labels: Record<string, string | number | undefined>;
19
+ labels: WorkerLabels;
20
20
  }
21
21
  type StepActionEventInput = StepActionEvent & {
22
22
  /** @deprecated use taskId */
@@ -8,6 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
11
22
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
23
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
24
  };
@@ -26,9 +37,10 @@ class Heartbeat {
26
37
  start() {
27
38
  return __awaiter(this, void 0, void 0, function* () {
28
39
  if (!this.heartbeatWorker) {
40
+ const _a = this.config, { middleware: _m, logger: _l } = _a, clonableConfig = __rest(_a, ["middleware", "logger"]);
29
41
  this.heartbeatWorker = (0, thread_helper_1.runThreaded)(path_1.default.join(__dirname, './heartbeat-worker'), {
30
42
  workerData: {
31
- config: Object.assign(Object.assign({}, this.config), { logger: undefined }),
43
+ config: clonableConfig,
32
44
  workerId: this.workerId,
33
45
  },
34
46
  });
@@ -55,7 +55,7 @@ class HeartbeatWorker {
55
55
  const actualInterval = now - this.timeLastHeartbeat;
56
56
  if (actualInterval > HEARTBEAT_INTERVAL * 1.2) {
57
57
  const message = `Heartbeat interval delay (${actualInterval}ms >> ${HEARTBEAT_INTERVAL}ms)`;
58
- this.logger.warn(message);
58
+ this.logger.debug(message);
59
59
  postMessage({
60
60
  type: 'warn',
61
61
  message,
@@ -102,6 +102,7 @@ class HeartbeatWorker {
102
102
  }
103
103
  const heartbeat = new HeartbeatWorker(worker_threads_1.workerData.config, worker_threads_1.workerData.workerId);
104
104
  heartbeat.start();
105
- worker_threads_1.parentPort === null || worker_threads_1.parentPort === void 0 ? void 0 : worker_threads_1.parentPort.on(heartbeat_controller_1.STOP_HEARTBEAT, () => {
106
- heartbeat.stop();
105
+ worker_threads_1.parentPort === null || worker_threads_1.parentPort === void 0 ? void 0 : worker_threads_1.parentPort.on('message', (msg) => {
106
+ if (msg === heartbeat_controller_1.STOP_HEARTBEAT)
107
+ heartbeat.stop();
107
108
  });
@@ -4,7 +4,6 @@ import { ClientConfig } from '../hatchet-client/client-config';
4
4
  import { Logger } from '../../util/logger';
5
5
  import { retrier } from '../../util/retrier';
6
6
  import { HatchetClient } from '../../v1';
7
- import { LegacyHatchetClient } from '../hatchet-client';
8
7
  export declare enum LogLevel {
9
8
  INFO = "INFO",
10
9
  WARN = "WARN",
@@ -29,7 +28,7 @@ export declare class EventClient {
29
28
  api: HatchetClient['api'];
30
29
  tenantId: string;
31
30
  logger: Logger;
32
- constructor(config: ClientConfig, channel: Channel, factory: ClientFactory, hatchetClient: LegacyHatchetClient);
31
+ constructor(config: ClientConfig, channel: Channel, factory: ClientFactory, api: HatchetClient['api']);
33
32
  push<T>(type: string, input: T, options?: PushEventOptions): Promise<import("../../protoc/events/events").Event>;
34
33
  bulkPush<T>(type: string, inputs: EventWithMetadata<T>[], options?: PushEventOptions): Promise<import("../../protoc/events/events").Events>;
35
34
  putLog(taskRunExternalId: string, log: string, level?: LogLevel, taskRetryCount?: number, metadata?: Record<string, any>): Promise<void>;
@@ -26,12 +26,12 @@ var LogLevel;
26
26
  LogLevel["DEBUG"] = "DEBUG";
27
27
  })(LogLevel || (exports.LogLevel = LogLevel = {}));
28
28
  class EventClient {
29
- constructor(config, channel, factory, hatchetClient) {
29
+ constructor(config, channel, factory, api) {
30
30
  this.config = config;
31
31
  this.client = factory.create(events_1.EventsServiceDefinition, channel);
32
32
  this.logger = config.logger(`Dispatcher`, config.log_level);
33
33
  this.retrier = retrier_1.retrier;
34
- this.api = hatchetClient.api;
34
+ this.api = api;
35
35
  this.tenantId = config.tenant_id;
36
36
  }
37
37
  push(type, input, options = {}) {
@@ -46,11 +46,11 @@ export declare const ClientConfigSchema: z.ZodObject<{
46
46
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
47
47
  port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
48
48
  }, "strip", z.ZodTypeAny, {
49
- enabled: boolean;
50
49
  port: number;
50
+ enabled: boolean;
51
51
  }, {
52
- enabled?: boolean | undefined;
53
52
  port?: number | undefined;
53
+ enabled?: boolean | undefined;
54
54
  }>>;
55
55
  host_port: z.ZodString;
56
56
  api_url: z.ZodString;
@@ -67,6 +67,8 @@ export declare const ClientConfigSchema: z.ZodObject<{
67
67
  before?: any;
68
68
  after?: any;
69
69
  }>>;
70
+ cancellation_grace_period: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
71
+ cancellation_warning_threshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
70
72
  }, "strip", z.ZodTypeAny, {
71
73
  token: string;
72
74
  tls_config: {
@@ -79,9 +81,11 @@ export declare const ClientConfigSchema: z.ZodObject<{
79
81
  host_port: string;
80
82
  api_url: string;
81
83
  tenant_id: string;
84
+ cancellation_grace_period: number;
85
+ cancellation_warning_threshold: number;
82
86
  healthcheck?: {
83
- enabled: boolean;
84
87
  port: number;
88
+ enabled: boolean;
85
89
  } | undefined;
86
90
  log_level?: "OFF" | "DEBUG" | "INFO" | "WARN" | "ERROR" | undefined;
87
91
  namespace?: string | undefined;
@@ -102,8 +106,8 @@ export declare const ClientConfigSchema: z.ZodObject<{
102
106
  api_url: string;
103
107
  tenant_id: string;
104
108
  healthcheck?: {
105
- enabled?: boolean | undefined;
106
109
  port?: number | undefined;
110
+ enabled?: boolean | undefined;
107
111
  } | undefined;
108
112
  log_level?: "OFF" | "DEBUG" | "INFO" | "WARN" | "ERROR" | undefined;
109
113
  namespace?: string | undefined;
@@ -111,6 +115,8 @@ export declare const ClientConfigSchema: z.ZodObject<{
111
115
  before?: any;
112
116
  after?: any;
113
117
  } | undefined;
118
+ cancellation_grace_period?: number | undefined;
119
+ cancellation_warning_threshold?: number | undefined;
114
120
  }>;
115
121
  export type LogConstructor = (context: string, logLevel?: LogLevel) => Logger;
116
122
  /**
@@ -152,7 +158,11 @@ export type InferMiddlewareBefore<M> = M extends {
152
158
  export type InferMiddlewareAfter<M> = M extends {
153
159
  after: infer P;
154
160
  } ? P extends (...args: any[]) => any ? NonVoidReturn<P> : P extends readonly any[] ? MergeReturns<P> : {} : {};
155
- export type ClientConfig = z.infer<typeof ClientConfigSchema> & {
161
+ type ClientConfigInferred = z.infer<typeof ClientConfigSchema>;
162
+ export type ClientConfig = Omit<ClientConfigInferred, 'cancellation_grace_period' | 'cancellation_warning_threshold'> & {
163
+ cancellation_grace_period?: number;
164
+ cancellation_warning_threshold?: number;
165
+ } & {
156
166
  credentials?: ChannelCredentials;
157
167
  } & {
158
168
  logger: LogConstructor;
@@ -19,6 +19,7 @@ const TaskMiddlewareSchema = zod_1.z
19
19
  after: zod_1.z.any().optional(),
20
20
  })
21
21
  .optional();
22
+ const DurationMsSchema = zod_1.z.number().int().nonnegative().finite();
22
23
  exports.ClientConfigSchema = zod_1.z.object({
23
24
  token: zod_1.z.string(),
24
25
  tls_config: ClientTLSConfigSchema,
@@ -29,4 +30,6 @@ exports.ClientConfigSchema = zod_1.z.object({
29
30
  tenant_id: zod_1.z.string(),
30
31
  namespace: zod_1.z.string().optional(),
31
32
  middleware: TaskMiddlewareSchema,
33
+ cancellation_grace_period: DurationMsSchema.optional().default(1000),
34
+ cancellation_warning_threshold: DurationMsSchema.optional().default(300),
32
35
  });
@@ -72,6 +72,7 @@ class HatchetLogger {
72
72
  yield this.log('ERROR', error ? `${message} ${error}` : message, '91');
73
73
  });
74
74
  }
75
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
75
76
  util(key, message, extra) {
76
77
  if (key === 'trace') {
77
78
  this.log('INFO', `trace: ${message}`, '35');
@@ -1,3 +1,3 @@
1
- export * from './hatchet-client';
1
+ export * from '../../legacy/legacy-client';
2
2
  export * from './client-config';
3
3
  export { HatchetLogger } from './hatchet-logger';
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.HatchetLogger = void 0;
18
- __exportStar(require("./hatchet-client"), exports);
18
+ __exportStar(require("../../legacy/legacy-client"), exports);
19
19
  __exportStar(require("./client-config"), exports);
20
20
  var hatchet_logger_1 = require("./hatchet-logger");
21
21
  Object.defineProperty(exports, "HatchetLogger", { enumerable: true, get: function () { return hatchet_logger_1.HatchetLogger; } });
@@ -16,6 +16,12 @@ export declare class DurableListenerClient {
16
16
  taskId: string;
17
17
  signalKey: string;
18
18
  }): import("./pooled-durable-listener-client").DurableEventStreamable;
19
+ result(request: {
20
+ taskId: string;
21
+ signalKey: string;
22
+ }, opts?: {
23
+ signal?: AbortSignal;
24
+ }): Promise<import("../../../protoc/v1/dispatcher").DurableEvent>;
19
25
  registerDurableEvent(request: {
20
26
  taskId: string;
21
27
  signalKey: string;
@@ -18,6 +18,14 @@ class DurableListenerClient {
18
18
  }
19
19
  return this.pooledListener.subscribe(request);
20
20
  }
21
+ result(request, opts) {
22
+ if (!this.pooledListener) {
23
+ this.pooledListener = new pooled_durable_listener_client_1.DurableEventGrpcPooledListener(this, () => {
24
+ this.pooledListener = undefined;
25
+ });
26
+ }
27
+ return this.pooledListener.result(request, opts);
28
+ }
21
29
  registerDurableEvent(request) {
22
30
  if (!this.pooledListener) {
23
31
  this.pooledListener = new pooled_durable_listener_client_1.DurableEventGrpcPooledListener(this, () => {
@@ -6,9 +6,13 @@ export declare class DurableEventStreamable {
6
6
  listener: AsyncIterable<DurableEvent>;
7
7
  taskId: string;
8
8
  signalKey: string;
9
+ subscriptionId: string;
10
+ onCleanup: () => void;
9
11
  responseEmitter: EventEmitter<[never]>;
10
- constructor(listener: AsyncIterable<DurableEvent>, taskId: string, signalKey: string);
11
- get(): Promise<DurableEvent>;
12
+ constructor(listener: AsyncIterable<DurableEvent>, taskId: string, signalKey: string, subscriptionId: string, onCleanup: () => void);
13
+ get(opts?: {
14
+ signal?: AbortSignal;
15
+ }): Promise<DurableEvent>;
12
16
  }
13
17
  export declare class DurableEventGrpcPooledListener {
14
18
  listener: AsyncIterable<DurableEvent> | undefined;
@@ -24,6 +28,7 @@ export declare class DurableEventGrpcPooledListener {
24
28
  constructor(client: DurableListenerClient, onFinish: () => void);
25
29
  private scheduleInterrupt;
26
30
  private init;
31
+ private cleanupSubscription;
27
32
  subscribe(request: {
28
33
  taskId: string;
29
34
  signalKey: string;
@@ -31,6 +36,8 @@ export declare class DurableEventGrpcPooledListener {
31
36
  result(request: {
32
37
  taskId: string;
33
38
  signalKey: string;
39
+ }, opts?: {
40
+ signal?: AbortSignal;
34
41
  }): Promise<DurableEvent>;
35
42
  registerDurableEvent(request: {
36
43
  taskId: string;
@@ -37,17 +37,60 @@ exports.DurableEventGrpcPooledListener = exports.DurableEventStreamable = void 0
37
37
  const events_1 = require("events");
38
38
  const abort_controller_x_1 = require("abort-controller-x");
39
39
  const sleep_1 = __importDefault(require("../../../util/sleep"));
40
+ const abort_error_1 = require("../../../util/abort-error");
40
41
  class DurableEventStreamable {
41
- constructor(listener, taskId, signalKey) {
42
+ constructor(listener, taskId, signalKey, subscriptionId, onCleanup) {
42
43
  this.responseEmitter = new events_1.EventEmitter();
43
44
  this.listener = listener;
44
45
  this.taskId = taskId;
45
46
  this.signalKey = signalKey;
47
+ this.subscriptionId = subscriptionId;
48
+ this.onCleanup = onCleanup;
46
49
  }
47
- get() {
50
+ get(opts) {
48
51
  return __awaiter(this, void 0, void 0, function* () {
49
- return new Promise((resolve) => {
50
- this.responseEmitter.once('response', resolve);
52
+ const signal = opts === null || opts === void 0 ? void 0 : opts.signal;
53
+ return new Promise((resolve, reject) => {
54
+ let cleanedUp = false;
55
+ const cleanup = () => {
56
+ if (cleanedUp)
57
+ return;
58
+ cleanedUp = true;
59
+ this.responseEmitter.removeListener('response', onResponse);
60
+ if (signal) {
61
+ signal.removeEventListener('abort', onAbort);
62
+ }
63
+ this.onCleanup();
64
+ };
65
+ const onResponse = (event) => {
66
+ cleanup();
67
+ resolve(event);
68
+ };
69
+ const onAbort = () => {
70
+ cleanup();
71
+ reject((0, abort_error_1.createAbortError)('Operation cancelled by AbortSignal'));
72
+ };
73
+ if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
74
+ onAbort();
75
+ return;
76
+ }
77
+ this.responseEmitter.once('response', onResponse);
78
+ if (signal) {
79
+ /**
80
+ * Node defaults AbortSignal max listeners to 10, which is easy to exceed with
81
+ * legitimate high-concurrency waits (e.g. multiple concurrent `ctx.waitFor(...)`
82
+ * calls in the same task).
83
+ *
84
+ * If the signal is still at the default cap, bump it to a reasonable level
85
+ * to avoid noisy `MaxListenersExceededWarning` while still keeping protection
86
+ * against true leaks in unusual cases.
87
+ */
88
+ const max = (0, events_1.getMaxListeners)(signal);
89
+ if (max !== 0 && max < 50) {
90
+ (0, events_1.setMaxListeners)(50, signal);
91
+ }
92
+ signal.addEventListener('abort', onAbort, { once: true });
93
+ }
51
94
  });
52
95
  });
53
96
  }
@@ -115,13 +158,7 @@ class DurableEventGrpcPooledListener {
115
158
  const emitter = this.subscribers[subId];
116
159
  if (emitter) {
117
160
  emitter.responseEmitter.emit('response', event);
118
- delete this.subscribers[subId];
119
- // Remove this subscription from the mapping
120
- this.taskSignalKeyToSubscriptionIds[subscriptionKey] =
121
- this.taskSignalKeyToSubscriptionIds[subscriptionKey].filter((id) => id !== subId);
122
- if (this.taskSignalKeyToSubscriptionIds[subscriptionKey].length === 0) {
123
- delete this.taskSignalKeyToSubscriptionIds[subscriptionKey];
124
- }
161
+ this.cleanupSubscription(subId);
125
162
  }
126
163
  }
127
164
  }
@@ -152,13 +189,28 @@ class DurableEventGrpcPooledListener {
152
189
  }
153
190
  });
154
191
  }
192
+ cleanupSubscription(subscriptionId) {
193
+ const emitter = this.subscribers[subscriptionId];
194
+ if (!emitter) {
195
+ return;
196
+ }
197
+ const subscriptionKey = keyHelper(emitter.taskId, emitter.signalKey);
198
+ delete this.subscribers[subscriptionId];
199
+ // Remove from the mapping
200
+ if (this.taskSignalKeyToSubscriptionIds[subscriptionKey]) {
201
+ this.taskSignalKeyToSubscriptionIds[subscriptionKey] = this.taskSignalKeyToSubscriptionIds[subscriptionKey].filter((id) => id !== subscriptionId);
202
+ if (this.taskSignalKeyToSubscriptionIds[subscriptionKey].length === 0) {
203
+ delete this.taskSignalKeyToSubscriptionIds[subscriptionKey];
204
+ }
205
+ }
206
+ }
155
207
  subscribe(request) {
156
208
  const { taskId, signalKey } = request;
157
209
  if (!this.listener)
158
210
  throw new Error('listener not initialized');
159
211
  // eslint-disable-next-line no-plusplus
160
212
  const subscriptionId = (this.subscriptionCounter++).toString();
161
- const subscriber = new DurableEventStreamable(this.listener, taskId, signalKey);
213
+ const subscriber = new DurableEventStreamable(this.listener, taskId, signalKey, subscriptionId, () => this.cleanupSubscription(subscriptionId));
162
214
  this.subscribers[subscriptionId] = subscriber;
163
215
  const key = keyHelper(taskId, signalKey);
164
216
  if (!this.taskSignalKeyToSubscriptionIds[key]) {
@@ -168,10 +220,10 @@ class DurableEventGrpcPooledListener {
168
220
  this.requestEmitter.emit('subscribe', { taskId, signalKey });
169
221
  return subscriber;
170
222
  }
171
- result(request) {
223
+ result(request, opts) {
172
224
  return __awaiter(this, void 0, void 0, function* () {
173
225
  const subscriber = this.subscribe(request);
174
- const event = yield subscriber.get();
226
+ const event = yield subscriber.get({ signal: opts === null || opts === void 0 ? void 0 : opts.signal });
175
227
  return event;
176
228
  });
177
229
  }
@@ -192,7 +244,7 @@ class DurableEventGrpcPooledListener {
192
244
  replayRequests() {
193
245
  const subscriptionEntries = Object.entries(this.taskSignalKeyToSubscriptionIds);
194
246
  this.client.logger.debug(`Replaying ${subscriptionEntries.length} requests...`);
195
- for (const [key, _] of subscriptionEntries) {
247
+ for (const [key] of subscriptionEntries) {
196
248
  const [taskId, signalKey] = key.split('|');
197
249
  this.requestEmitter.emit('subscribe', { taskId, signalKey });
198
250
  }
@@ -186,6 +186,7 @@ class RunEventListener {
186
186
  this.eventEmitter.emit('event');
187
187
  });
188
188
  try {
189
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
189
190
  for (var _d = true, _e = __asyncValues((0, events_1.on)(this.eventEmitter, 'event')), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
190
191
  _c = _f.value;
191
192
  _d = false;
@@ -4,9 +4,17 @@ import { RunListenerClient } from './child-listener-client';
4
4
  export declare class Streamable {
5
5
  listener: AsyncIterable<WorkflowRunEvent>;
6
6
  id: string;
7
+ onCleanup: () => void;
8
+ private cleanedUp;
7
9
  responseEmitter: EventEmitter<[never]>;
8
- constructor(listener: AsyncIterable<WorkflowRunEvent>, id: string);
9
- stream(): AsyncGenerator<WorkflowRunEvent, void, unknown>;
10
+ constructor(listener: AsyncIterable<WorkflowRunEvent>, id: string, onCleanup: () => void);
11
+ private cleanupOnce;
12
+ get(opts?: {
13
+ signal?: AbortSignal;
14
+ }): Promise<WorkflowRunEvent>;
15
+ stream(opts?: {
16
+ signal?: AbortSignal;
17
+ }): AsyncGenerator<WorkflowRunEvent, void, unknown>;
10
18
  }
11
19
  export declare class RunGrpcPooledListener {
12
20
  listener: AsyncIterable<WorkflowRunEvent> | undefined;
@@ -38,19 +38,73 @@ const events_1 = require("events");
38
38
  const dispatcher_1 = require("../../../protoc/dispatcher");
39
39
  const abort_controller_x_1 = require("abort-controller-x");
40
40
  const sleep_1 = __importDefault(require("../../../util/sleep"));
41
+ const abort_error_1 = require("../../../util/abort-error");
41
42
  class Streamable {
42
- constructor(listener, id) {
43
+ constructor(listener, id, onCleanup) {
44
+ this.cleanedUp = false;
43
45
  this.responseEmitter = new events_1.EventEmitter();
44
46
  this.listener = listener;
45
47
  this.id = id;
48
+ this.onCleanup = onCleanup;
46
49
  }
47
- stream() {
50
+ cleanupOnce() {
51
+ if (this.cleanedUp)
52
+ return;
53
+ this.cleanedUp = true;
54
+ this.onCleanup();
55
+ }
56
+ get(opts) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const signal = opts === null || opts === void 0 ? void 0 : opts.signal;
59
+ return new Promise((resolve, reject) => {
60
+ const cleanupListeners = () => {
61
+ this.responseEmitter.removeListener('response', onResponse);
62
+ if (signal) {
63
+ signal.removeEventListener('abort', onAbort);
64
+ }
65
+ };
66
+ const onResponse = (event) => {
67
+ cleanupListeners();
68
+ resolve(event);
69
+ };
70
+ const onAbort = () => {
71
+ cleanupListeners();
72
+ this.cleanupOnce();
73
+ reject((0, abort_error_1.createAbortError)('Operation cancelled by AbortSignal'));
74
+ };
75
+ if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
76
+ onAbort();
77
+ return;
78
+ }
79
+ this.responseEmitter.once('response', onResponse);
80
+ if (signal) {
81
+ /**
82
+ * Node defaults AbortSignal max listeners to 10, which is easy to exceed with
83
+ * legitimate high-concurrency waits (e.g. a cancelled parent task fanning out
84
+ * to many child `.result()` waits).
85
+ *
86
+ * If the signal is still at the default cap, bump it to a reasonable level
87
+ * to avoid noisy `MaxListenersExceededWarning` while still keeping protection
88
+ * against true leaks in unusual cases.
89
+ */
90
+ const max = (0, events_1.getMaxListeners)(signal);
91
+ if (max !== 0 && max < 50) {
92
+ (0, events_1.setMaxListeners)(50, signal);
93
+ }
94
+ signal.addEventListener('abort', onAbort, { once: true });
95
+ }
96
+ });
97
+ });
98
+ }
99
+ stream(opts) {
48
100
  return __asyncGenerator(this, arguments, function* stream_1() {
49
101
  while (true) {
50
- const req = yield __await(new Promise((resolve) => {
51
- this.responseEmitter.once('response', resolve);
52
- }));
53
- yield yield __await(req);
102
+ const event = yield __await(this.get(opts));
103
+ yield yield __await(event);
104
+ if (event.eventType === dispatcher_1.WorkflowRunEventType.WORKFLOW_RUN_EVENT_TYPE_FINISHED) {
105
+ this.cleanupOnce();
106
+ break;
107
+ }
54
108
  }
55
109
  });
56
110
  }
@@ -128,7 +182,9 @@ class RunGrpcPooledListener {
128
182
  subscribe(request) {
129
183
  if (!this.listener)
130
184
  throw new Error('listener not initialized');
131
- this.subscribers[request.workflowRunId] = new Streamable(this.listener, request.workflowRunId);
185
+ this.subscribers[request.workflowRunId] = new Streamable(this.listener, request.workflowRunId, () => {
186
+ delete this.subscribers[request.workflowRunId];
187
+ });
132
188
  this.requestEmitter.emit('subscribe', request);
133
189
  return this.subscribers[request.workflowRunId];
134
190
  }
@@ -3,11 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const https_1 = __importDefault(require("https"));
6
7
  const qs_1 = __importDefault(require("qs"));
7
8
  const Api_1 = require("./generated/Api");
9
+ function getDefaultAxiosOpts(serverUrl) {
10
+ const opts = {};
11
+ if (serverUrl.startsWith('https://') && process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0') {
12
+ opts.httpsAgent = new https_1.default.Agent({ rejectUnauthorized: false });
13
+ }
14
+ return opts;
15
+ }
8
16
  const api = (serverUrl, token, axiosOpts) => {
9
- return new Api_1.Api(Object.assign({ baseURL: serverUrl, headers: {
17
+ return new Api_1.Api(Object.assign(Object.assign({ baseURL: serverUrl, headers: {
10
18
  Authorization: `Bearer ${token}`,
11
- }, paramsSerializer: (params) => qs_1.default.stringify(params, { arrayFormat: 'repeat' }) }, axiosOpts));
19
+ }, paramsSerializer: (params) => qs_1.default.stringify(params, { arrayFormat: 'repeat' }) }, getDefaultAxiosOpts(serverUrl)), axiosOpts));
12
20
  };
13
21
  exports.default = api;
@@ -1,4 +1,4 @@
1
- import { APIErrors, APIMeta, AcceptInviteRequest, BulkCreateEventRequest, CancelEventRequest, CreateAPITokenRequest, CreateAPITokenResponse, CreateCronWorkflowTriggerRequest, CreateEventRequest, CreateSNSIntegrationRequest, CreateTenantAlertEmailGroupRequest, CreateTenantInviteRequest, CreateTenantRequest, CronWorkflows, CronWorkflowsList, CronWorkflowsOrderByField, Event, EventData, EventKey, EventKeyList, EventList, EventOrderByDirection, EventOrderByField, EventSearch, Events, ListAPIMetaIntegration, ListAPITokensResponse, ListSNSIntegrations, ListSlackWebhooks, LogLineLevelField, LogLineList, LogLineOrderByDirection, LogLineOrderByField, LogLineSearch, RateLimitList, RateLimitOrderByDirection, RateLimitOrderByField, RejectInviteRequest, ReplayEventRequest, ReplayWorkflowRunsRequest, ReplayWorkflowRunsResponse, RerunStepRunRequest, SNSIntegration, ScheduleWorkflowRunRequest, ScheduledRunStatus, ScheduledWorkflows, ScheduledWorkflowsBulkDeleteRequest, ScheduledWorkflowsBulkDeleteResponse, ScheduledWorkflowsBulkUpdateRequest, ScheduledWorkflowsBulkUpdateResponse, ScheduledWorkflowsList, ScheduledWorkflowsOrderByField, StepRun, StepRunArchiveList, StepRunEventList, TaskStats, Tenant, TenantAlertEmailGroup, TenantAlertEmailGroupList, TenantAlertingSettings, TenantInvite, TenantInviteList, TenantMember, TenantMemberList, TenantQueueMetrics, TenantResourcePolicy, TenantStepRunQueueMetrics, TriggerWorkflowRunRequest, UpdateCronWorkflowTriggerRequest, UpdateScheduledWorkflowRunRequest, UpdateTenantAlertEmailGroupRequest, UpdateTenantInviteRequest, UpdateTenantMemberRequest, UpdateTenantRequest, UpdateWorkerRequest, User, UserChangePasswordRequest, UserLoginRequest, UserRegisterRequest, UserTenantMembershipsList, V1CELDebugRequest, V1CELDebugResponse, V1CancelTaskRequest, V1CancelledTasks, V1CreateFilterRequest, V1CreateWebhookRequest, V1DagChildren, V1Event, V1EventList, V1Filter, V1FilterList, V1LogLineLevel, V1LogLineList, V1LogLineOrderByDirection, V1ReplayTaskRequest, V1ReplayedTasks, V1TaskEventList, V1TaskPointMetrics, V1TaskRunMetrics, V1TaskStatus, V1TaskSummary, V1TaskSummaryList, V1TaskTimingList, V1TriggerWorkflowRunRequest, V1UpdateFilterRequest, V1UpdateWebhookRequest, V1Webhook, V1WebhookList, V1WebhookSourceName, V1WorkflowRunDetails, V1WorkflowRunDisplayNameList, V1WorkflowRunExternalIdList, WebhookWorkerCreateRequest, WebhookWorkerCreated, WebhookWorkerListResponse, WebhookWorkerRequestListResponse, Worker, WorkerList, Workflow, WorkflowID, WorkflowKindList, WorkflowList, WorkflowMetrics, WorkflowRun, WorkflowRunList, WorkflowRunOrderByDirection, WorkflowRunOrderByField, WorkflowRunShape, WorkflowRunStatus, WorkflowRunStatusList, WorkflowRunsCancelRequest, WorkflowRunsMetrics, WorkflowUpdateRequest, WorkflowVersion, WorkflowWorkersCount } from './data-contracts';
1
+ import { APIErrors, APIMeta, AcceptInviteRequest, BulkCreateEventRequest, CancelEventRequest, CreateAPITokenRequest, CreateAPITokenResponse, CreateCronWorkflowTriggerRequest, CreateEventRequest, CreateSNSIntegrationRequest, CreateTenantAlertEmailGroupRequest, CreateTenantInviteRequest, CreateTenantRequest, CronWorkflows, CronWorkflowsList, CronWorkflowsOrderByField, Event, EventData, EventKey, EventKeyList, EventList, EventOrderByDirection, EventOrderByField, EventSearch, Events, ListAPIMetaIntegration, ListAPITokensResponse, ListSNSIntegrations, ListSlackWebhooks, LogLineLevelField, LogLineList, LogLineOrderByDirection, LogLineOrderByField, LogLineSearch, RateLimitList, RateLimitOrderByDirection, RateLimitOrderByField, RejectInviteRequest, ReplayEventRequest, ReplayWorkflowRunsRequest, ReplayWorkflowRunsResponse, RerunStepRunRequest, SNSIntegration, ScheduleWorkflowRunRequest, ScheduledRunStatus, ScheduledWorkflows, ScheduledWorkflowsBulkDeleteRequest, ScheduledWorkflowsBulkDeleteResponse, ScheduledWorkflowsBulkUpdateRequest, ScheduledWorkflowsBulkUpdateResponse, ScheduledWorkflowsList, ScheduledWorkflowsOrderByField, StepRun, StepRunArchiveList, StepRunEventList, TaskStats, Tenant, TenantAlertEmailGroup, TenantAlertEmailGroupList, TenantAlertingSettings, TenantInvite, TenantInviteList, TenantMember, TenantMemberList, TenantQueueMetrics, TenantResourcePolicy, TenantStepRunQueueMetrics, TriggerWorkflowRunRequest, UpdateCronWorkflowTriggerRequest, UpdateScheduledWorkflowRunRequest, UpdateTenantAlertEmailGroupRequest, UpdateTenantInviteRequest, UpdateTenantMemberRequest, UpdateTenantRequest, UpdateWorkerRequest, User, UserChangePasswordRequest, UserLoginRequest, UserRegisterRequest, UserTenantMembershipsList, V1CELDebugRequest, V1CELDebugResponse, V1CancelTaskRequest, V1CancelledTasks, V1CreateFilterRequest, V1CreateWebhookRequest, V1DagChildren, V1Event, V1EventList, V1Filter, V1FilterList, V1LogLineLevel, V1LogLineList, V1LogLineOrderByDirection, V1ReplayTaskRequest, V1ReplayedTasks, V1TaskEventList, V1TaskPointMetrics, V1TaskRunMetrics, V1TaskStatus, V1TaskSummary, V1TaskSummaryList, V1TaskTimingList, V1TriggerWorkflowRunRequest, V1UpdateFilterRequest, V1UpdateWebhookRequest, V1Webhook, V1WebhookList, V1WebhookResponse, V1WebhookSourceName, V1WorkflowRunDetails, V1WorkflowRunDisplayNameList, V1WorkflowRunExternalIdList, WebhookWorkerCreateRequest, WebhookWorkerCreated, WebhookWorkerListResponse, WebhookWorkerRequestListResponse, Worker, WorkerList, Workflow, WorkflowID, WorkflowKindList, WorkflowList, WorkflowMetrics, WorkflowRun, WorkflowRunList, WorkflowRunOrderByDirection, WorkflowRunOrderByField, WorkflowRunShape, WorkflowRunStatus, WorkflowRunStatusList, WorkflowRunsCancelRequest, WorkflowRunsMetrics, WorkflowUpdateRequest, WorkflowVersion, WorkflowWorkersCount } from './data-contracts';
2
2
  import { HttpClient, RequestParams } from './http-client';
3
3
  export declare class Api<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
4
4
  /**
@@ -528,7 +528,7 @@ export declare class Api<SecurityDataType = unknown> extends HttpClient<Security
528
528
  * @summary Post a webhook message
529
529
  * @request POST:/api/v1/stable/tenants/{tenant}/webhooks/{v1-webhook}
530
530
  */
531
- v1WebhookReceive: (tenant: string, v1Webhook: string, data?: any, params?: RequestParams) => Promise<import("axios").AxiosResponse<Record<string, any>, any, {}>>;
531
+ v1WebhookReceive: (tenant: string, v1Webhook: string, data?: any, params?: RequestParams) => Promise<import("axios").AxiosResponse<V1WebhookResponse, any, {}>>;
532
532
  /**
533
533
  * @description Update a webhook
534
534
  *
@@ -877,6 +877,12 @@ export type V1CreateWebhookRequestHMAC = V1CreateWebhookRequestBase & {
877
877
  auth: V1WebhookHMACAuth;
878
878
  };
879
879
  export type V1CreateWebhookRequest = V1CreateWebhookRequestBasicAuth | V1CreateWebhookRequestAPIKey | V1CreateWebhookRequestHMAC;
880
+ export interface V1WebhookResponse {
881
+ /** The message for the webhook response */
882
+ message?: string;
883
+ event?: V1Event;
884
+ challenge?: string;
885
+ }
880
886
  export interface V1UpdateWebhookRequest {
881
887
  /** The CEL expression to use for the event key. This is used to create the event key from the webhook payload. */
882
888
  eventKeyExpression?: string;
package/index.d.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  import { HatchetClient as Hatchet } from './v1/client/client';
2
- export * from './workflow';
3
- export * from './step';
4
- export * from './clients/worker';
5
2
  export * from './clients/rest';
6
3
  export * from './clients/admin';
7
4
  export * from './util/workflow-run-ref';
8
5
  export * from './v1';
6
+ export * from './workflow';
7
+ export * from './step';
9
8
  export default Hatchet;
10
9
  export { Hatchet };
package/index.js CHANGED
@@ -17,11 +17,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.Hatchet = void 0;
18
18
  const client_1 = require("./v1/client/client");
19
19
  Object.defineProperty(exports, "Hatchet", { enumerable: true, get: function () { return client_1.HatchetClient; } });
20
- __exportStar(require("./workflow"), exports);
21
- __exportStar(require("./step"), exports);
22
- __exportStar(require("./clients/worker"), exports);
23
20
  __exportStar(require("./clients/rest"), exports);
24
21
  __exportStar(require("./clients/admin"), exports);
25
22
  __exportStar(require("./util/workflow-run-ref"), exports);
26
23
  __exportStar(require("./v1"), exports);
24
+ __exportStar(require("./workflow"), exports);
25
+ __exportStar(require("./step"), exports);
27
26
  exports.default = client_1.HatchetClient;
@@ -12,8 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const workflows_1 = require("../protoc/workflows");
16
- const sdk_1 = __importDefault(require("../sdk"));
15
+ const workflows_1 = require("../../protoc/workflows");
16
+ const sdk_1 = __importDefault(require("../../sdk"));
17
17
  const hatchet = sdk_1.default.init();
18
18
  // > AffinityWorkflow
19
19
  const workflow = {
@@ -19,7 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const sdk_1 = __importDefault(require("../sdk"));
22
+ const sdk_1 = __importDefault(require("../../sdk"));
23
23
  const hatchet = sdk_1.default.init();
24
24
  function main() {
25
25
  return __awaiter(this, void 0, void 0, function* () {
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const sdk_1 = __importDefault(require("../sdk"));
15
+ const sdk_1 = __importDefault(require("../../sdk"));
16
16
  const hatchet = sdk_1.default.init();
17
17
  const parentWorkflow = {
18
18
  id: 'bulk-parent-workflow',