@resonatehq/sdk 0.10.2 → 0.11.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 (71) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +60 -0
  3. package/dist/async/context.d.ts +270 -0
  4. package/dist/async/context.d.ts.map +1 -0
  5. package/dist/async/context.js +598 -0
  6. package/dist/async/context.js.map +1 -0
  7. package/dist/async/core.d.ts +61 -0
  8. package/dist/async/core.d.ts.map +1 -0
  9. package/dist/async/core.js +239 -0
  10. package/dist/async/core.js.map +1 -0
  11. package/dist/async/index.d.ts +4 -0
  12. package/dist/async/index.d.ts.map +1 -0
  13. package/dist/async/index.js +12 -0
  14. package/dist/async/index.js.map +1 -0
  15. package/dist/async/resonate.d.ts +98 -0
  16. package/dist/async/resonate.d.ts.map +1 -0
  17. package/dist/async/resonate.js +387 -0
  18. package/dist/async/resonate.js.map +1 -0
  19. package/dist/computation.d.ts.map +1 -1
  20. package/dist/computation.js +4 -0
  21. package/dist/computation.js.map +1 -1
  22. package/dist/context.d.ts +43 -1
  23. package/dist/context.d.ts.map +1 -1
  24. package/dist/context.js +34 -4
  25. package/dist/context.js.map +1 -1
  26. package/dist/core.d.ts +1 -1
  27. package/dist/core.d.ts.map +1 -1
  28. package/dist/core.js +8 -2
  29. package/dist/core.js.map +1 -1
  30. package/dist/coroutine.d.ts.map +1 -1
  31. package/dist/coroutine.js +1 -1
  32. package/dist/coroutine.js.map +1 -1
  33. package/dist/heartbeat.d.ts.map +1 -1
  34. package/dist/heartbeat.js +1 -1
  35. package/dist/heartbeat.js.map +1 -1
  36. package/dist/index.d.ts +2 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +2 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/network/http.d.ts +0 -20
  41. package/dist/network/http.d.ts.map +1 -1
  42. package/dist/network/http.js +5 -99
  43. package/dist/network/http.js.map +1 -1
  44. package/dist/network/local.js +1 -1
  45. package/dist/network/local.js.map +1 -1
  46. package/dist/network/nats.d.ts +59 -0
  47. package/dist/network/nats.d.ts.map +1 -0
  48. package/dist/network/nats.js +272 -0
  49. package/dist/network/nats.js.map +1 -0
  50. package/dist/platform.d.ts +4 -0
  51. package/dist/platform.d.ts.map +1 -0
  52. package/dist/platform.js +24 -0
  53. package/dist/platform.js.map +1 -0
  54. package/dist/promises.d.ts.map +1 -1
  55. package/dist/promises.js +1 -1
  56. package/dist/promises.js.map +1 -1
  57. package/dist/resonate.d.ts.map +1 -1
  58. package/dist/resonate.js +20 -9
  59. package/dist/resonate.js.map +1 -1
  60. package/dist/schedules.d.ts.map +1 -1
  61. package/dist/schedules.js +1 -1
  62. package/dist/schedules.js.map +1 -1
  63. package/dist/trace.d.ts +11 -0
  64. package/dist/trace.d.ts.map +1 -1
  65. package/dist/trace.js +22 -0
  66. package/dist/trace.js.map +1 -1
  67. package/dist/util.d.ts +1 -1
  68. package/dist/util.d.ts.map +1 -1
  69. package/dist/util.js +7 -3
  70. package/dist/util.js.map +1 -1
  71. package/package.json +22 -1
@@ -0,0 +1,61 @@
1
+ import type { Clock } from "../clock.js";
2
+ import type { Codec } from "../codec.js";
3
+ import type { Heartbeat } from "../heartbeat.js";
4
+ import type { Logger } from "../logger.js";
5
+ import { type Message, type PromiseRecord, type TaskRecord } from "../network/types.js";
6
+ import type { OptionsBuilder } from "../options.js";
7
+ import type { Registry } from "../registry.js";
8
+ import { type Trace } from "../trace.js";
9
+ import type { Send } from "../types.js";
10
+ export type Done = {
11
+ kind: "done";
12
+ id: string;
13
+ state: "resolved" | "rejected";
14
+ value: any;
15
+ trace: Trace;
16
+ };
17
+ export type Suspended = {
18
+ kind: "suspended";
19
+ awaited: string[];
20
+ trace: Trace;
21
+ };
22
+ export type Status = Done | Suspended;
23
+ /**
24
+ * Task-lifecycle orchestrator for the async/await engine. Mirrors `src/core.ts`
25
+ * (acquire / suspend / fulfill / release + replay-with-preload recursion) but
26
+ * folds the per-task driver in as `executeUntilBlockedInner`, following Rust's
27
+ * `Core::execute_until_blocked_inner` (no separate `Computation` class).
28
+ */
29
+ export declare class AsyncCore {
30
+ private pid;
31
+ private ttl;
32
+ private clock;
33
+ private send;
34
+ private codec;
35
+ private registry;
36
+ private heartbeat;
37
+ private dependencies;
38
+ private optsBuilder;
39
+ private logger;
40
+ private retries;
41
+ constructor({ pid, ttl, clock, send, codec, registry, heartbeat, dependencies, optsBuilder, logger, }: {
42
+ pid: string;
43
+ ttl: number;
44
+ clock: Clock;
45
+ send: Send;
46
+ codec: Codec;
47
+ registry: Registry;
48
+ heartbeat: Heartbeat;
49
+ dependencies: Map<string, any>;
50
+ optsBuilder: OptionsBuilder;
51
+ logger: Logger;
52
+ });
53
+ private resolveRetry;
54
+ executeUntilBlocked(task: TaskRecord, rootPromise: PromiseRecord, preload?: PromiseRecord[]): Promise<Status>;
55
+ private executeUntilBlockedInner;
56
+ private releaseTask;
57
+ private suspendTask;
58
+ private fulfillTask;
59
+ onMessage(msg: Message): Promise<Status | undefined>;
60
+ }
61
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/async/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAyB,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,KAAK,EAAkB,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,aAAa,CAAC;AAOjD,MAAM,MAAM,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAC1G,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtC;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAsC;gBAEzC,EACV,GAAG,EACH,GAAG,EACH,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,MAAM,GACP,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,EAAE,SAAS,CAAC;QACrB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,WAAW,EAAE,cAAc,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;KAChB;IAuBD,OAAO,CAAC,YAAY;IAWP,mBAAmB,CAC9B,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,aAAa,EAC1B,OAAO,CAAC,EAAE,aAAa,EAAE,GACxB,OAAO,CAAC,MAAM,CAAC;YAyCJ,wBAAwB;YA8ExB,WAAW;YAQX,WAAW;YA8BX,WAAW;IAsBZ,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CA6BlE"}
@@ -0,0 +1,239 @@
1
+ import exceptions, { ResonateError } from "../exceptions.js";
2
+ import { isRedirect, isSuccess } from "../network/types.js";
3
+ import { randomUUID } from "../platform.js";
4
+ import { Constant, Exponential, Linear, Never } from "../retries.js";
5
+ import { TraceCollector } from "../trace.js";
6
+ import * as util from "../util.js";
7
+ import { AsyncContext, runWithRetry } from "./context.js";
8
+ /**
9
+ * Task-lifecycle orchestrator for the async/await engine. Mirrors `src/core.ts`
10
+ * (acquire / suspend / fulfill / release + replay-with-preload recursion) but
11
+ * folds the per-task driver in as `executeUntilBlockedInner`, following Rust's
12
+ * `Core::execute_until_blocked_inner` (no separate `Computation` class).
13
+ */
14
+ export class AsyncCore {
15
+ pid;
16
+ ttl;
17
+ clock;
18
+ send;
19
+ codec;
20
+ registry;
21
+ heartbeat;
22
+ dependencies;
23
+ optsBuilder;
24
+ logger;
25
+ retries;
26
+ constructor({ pid, ttl, clock, send, codec, registry, heartbeat, dependencies, optsBuilder, logger, }) {
27
+ this.pid = pid;
28
+ this.ttl = ttl;
29
+ this.clock = clock;
30
+ this.send = send;
31
+ this.codec = codec;
32
+ this.registry = registry;
33
+ this.heartbeat = heartbeat;
34
+ this.dependencies = dependencies;
35
+ this.optsBuilder = optsBuilder;
36
+ this.logger = logger;
37
+ this.retries = new Map([
38
+ [Constant.type, Constant],
39
+ [Exponential.type, Exponential],
40
+ [Linear.type, Linear],
41
+ [Never.type, Never],
42
+ ]);
43
+ }
44
+ // Decode the retry policy embedded in the root promise's param data, mirroring
45
+ // the generator engine's Computation. Retries are opt-in for the async engine,
46
+ // so the default (absent or unknown policy) is Never.
47
+ resolveRetry(retry) {
48
+ const ctor = retry ? this.retries.get(retry.type) : undefined;
49
+ if (retry && !ctor) {
50
+ this.logger.warn({ component: "async-core", retryType: retry.type }, `Retry policy '${retry.type}' not found. Will ignore.`);
51
+ }
52
+ return ctor ? new ctor(retry?.data) : new Never();
53
+ }
54
+ async executeUntilBlocked(task, rootPromise, preload) {
55
+ util.assert(task.state === "acquired", `expected task state to be 'acquired', got '${task.state}'`);
56
+ const effects = util.buildEffects(this.send, this.codec, { id: task.id, version: task.version }, preload);
57
+ try {
58
+ const status = await this.executeUntilBlockedInner(rootPromise, effects);
59
+ if (status.kind === "suspended") {
60
+ const suspendResult = await this.suspendTask(task, rootPromise, status.awaited);
61
+ if (suspendResult.continue) {
62
+ return this.executeUntilBlocked(task, rootPromise, suspendResult.preload);
63
+ }
64
+ }
65
+ if (status.kind === "done") {
66
+ await this.fulfillTask(task, rootPromise, status);
67
+ }
68
+ return status;
69
+ }
70
+ catch (err) {
71
+ if (err instanceof ResonateError) {
72
+ err.log(this.logger);
73
+ }
74
+ else {
75
+ this.logger.warn({ component: "async-core", error: err instanceof Error ? err.message : String(err) }, "executeUntilBlocked failed unexpectedly");
76
+ }
77
+ await this.releaseTask(task, rootPromise).catch((releaseErr) => this.logger.warn({
78
+ component: "async-core",
79
+ error: releaseErr instanceof Error ? releaseErr.message : String(releaseErr),
80
+ }, "failed to release task after execution error"));
81
+ throw err;
82
+ }
83
+ }
84
+ // Per-task pass. Runs the user async fn under a fresh AsyncContext and
85
+ // finalizes via the race + drain in `run`. Owns all per-pass state so the
86
+ // parked frame (on suspend) is GC-collectible once this returns (GC rules).
87
+ async executeUntilBlockedInner(rootPromise, effects) {
88
+ if (!isValidData(rootPromise.param?.data)) {
89
+ throw exceptions.PANIC("async-core", "invalid promise data");
90
+ }
91
+ const { func, args, retry, version = 1 } = rootPromise.param.data;
92
+ const registered = this.registry.get(func, version);
93
+ if (!registered) {
94
+ throw exceptions.REGISTRY_FUNCTION_NOT_REGISTERED(func, version);
95
+ }
96
+ if (version !== 0)
97
+ util.assert(version === registered.version, "versions must match");
98
+ util.assert(func === registered.name, "names must match");
99
+ this.heartbeat.start();
100
+ // One trace per pass (mirrors Computation.processGenerator); threaded into
101
+ // the root context and propagated to every child via AsyncContext.child.
102
+ const trace = new TraceCollector();
103
+ // Root dedup: if the boundary promise is already settled, short-circuit with
104
+ // a single dedup event (no spawn — the root never ran this pass).
105
+ if (rootPromise.state !== "pending") {
106
+ const state = rootPromise.state === "resolved" ? "resolved" : "rejected";
107
+ trace.emit({ kind: "dedup", id: rootPromise.id, state, value: rootPromise.value?.data });
108
+ return { kind: "done", id: rootPromise.id, state, value: rootPromise.value?.data, trace: trace.getTrace() };
109
+ }
110
+ // Root spawn — emitted once before the (possibly retried) run driver, matching
111
+ // the generator coroutine's own spawn at exec start. Retries re-run the body
112
+ // but do not re-emit spawn.
113
+ trace.emit({ kind: "spawn", id: rootPromise.id });
114
+ // Run the root with in-process retries. Each attempt runs under a fresh
115
+ // context so durable children replay identically via dedup. nonRetryable
116
+ // errors are empty at the root (error constructors can't be encoded into a
117
+ // promise) — only the decoded retry policy applies.
118
+ const outcome = await runWithRetry((attempt) => new AsyncContext({
119
+ id: rootPromise.id,
120
+ oId: rootPromise.tags["resonate:origin"] ?? rootPromise.id,
121
+ // The id-generation prefix, propagated unchanged across re-roots (a
122
+ // detached child resets origin to its own id but carries prefix
123
+ // forward), so recursive detached ids stay bounded. Falls back to
124
+ // the id like oId.
125
+ prId: rootPromise.tags["resonate:prefix"] ?? rootPromise.id,
126
+ func: registered.func.name,
127
+ clock: this.clock,
128
+ registry: this.registry,
129
+ dependencies: this.dependencies,
130
+ optsBuilder: this.optsBuilder,
131
+ timeout: rootPromise.timeoutAt,
132
+ version: registered.version,
133
+ attempt,
134
+ }, effects, trace), registered.func, args, this.resolveRetry(retry), [], this.clock, rootPromise.timeoutAt);
135
+ if (outcome.kind === "suspended") {
136
+ trace.emit({ kind: "suspend", id: rootPromise.id });
137
+ return { kind: "suspended", awaited: outcome.remote, trace: trace.getTrace() };
138
+ }
139
+ const state = outcome.kind === "value" ? "resolved" : "rejected";
140
+ const value = outcome.kind === "value" ? outcome.value : outcome.error;
141
+ trace.emit({ kind: "return", id: rootPromise.id, state, value });
142
+ return { kind: "done", id: rootPromise.id, state, value, trace: trace.getTrace() };
143
+ }
144
+ async releaseTask(task, rootPromise) {
145
+ await this.send({
146
+ kind: "task.release",
147
+ head: { corrId: randomUUID(), version: util.VERSION, "resonate:origin": rootPromise.tags["resonate:origin"] },
148
+ data: { id: task.id, version: task.version },
149
+ });
150
+ }
151
+ async suspendTask(task, rootPromise, awaited) {
152
+ const res = await this.send({
153
+ kind: "task.suspend",
154
+ head: { corrId: randomUUID(), version: util.VERSION, "resonate:origin": rootPromise.tags["resonate:origin"] },
155
+ data: {
156
+ id: task.id,
157
+ version: task.version,
158
+ actions: awaited.map((a) => ({
159
+ kind: "promise.register_callback",
160
+ head: { corrId: randomUUID(), version: util.VERSION },
161
+ data: { awaiter: rootPromise.id, awaited: a },
162
+ })),
163
+ },
164
+ });
165
+ if (isSuccess(res)) {
166
+ return { continue: false };
167
+ }
168
+ if (isRedirect(res)) {
169
+ return { continue: true, preload: res.data.preload };
170
+ }
171
+ throw exceptions.SERVER_ERROR(res.data, true, {
172
+ code: res.head.status,
173
+ message: res.data,
174
+ });
175
+ }
176
+ async fulfillTask(task, rootPromise, doneValue) {
177
+ const encoded = this.codec.encode(doneValue.value);
178
+ await this.send({
179
+ kind: "task.fulfill",
180
+ head: { corrId: randomUUID(), version: util.VERSION, "resonate:origin": rootPromise.tags["resonate:origin"] },
181
+ data: {
182
+ id: task.id,
183
+ version: task.version,
184
+ action: {
185
+ kind: "promise.settle",
186
+ head: { corrId: randomUUID(), version: util.VERSION, "resonate:origin": rootPromise.tags["resonate:origin"] },
187
+ data: {
188
+ id: doneValue.id,
189
+ state: doneValue.state,
190
+ value: encoded,
191
+ },
192
+ },
193
+ },
194
+ });
195
+ }
196
+ async onMessage(msg) {
197
+ // `msg` arrives off the network: an unexpected kind is an external
198
+ // condition (unhandled message type, corruption), not an internal
199
+ // invariant — drop it with a warning instead of asserting (which exits).
200
+ if (msg.kind !== "execute") {
201
+ this.logger.warn({ component: "async-core", kind: msg.kind }, "dropping message with unexpected kind");
202
+ return undefined;
203
+ }
204
+ const task = msg.data.task;
205
+ const res = await this.send({
206
+ kind: "task.acquire",
207
+ head: { corrId: randomUUID(), version: util.VERSION, "resonate:origin": task.id },
208
+ data: { id: task.id, version: task.version, pid: this.pid, ttl: this.ttl },
209
+ });
210
+ if (!isSuccess(res)) {
211
+ throw exceptions.SERVER_ERROR(res.data, true, {
212
+ code: res.head.status,
213
+ message: res.data,
214
+ });
215
+ }
216
+ const rootPromise = this.codec.decodePromise(res.data.promise);
217
+ return this.executeUntilBlocked(res.data.task, rootPromise, res.data.preload);
218
+ }
219
+ }
220
+ // Validates the root promise's decoded `param.data` shape (copied from
221
+ // src/computation.ts to keep the generator engine untouched).
222
+ function isValidData(data) {
223
+ if (data === null || typeof data !== "object")
224
+ return false;
225
+ const d = data;
226
+ if (typeof d.func !== "string")
227
+ return false;
228
+ if (!Array.isArray(d.args))
229
+ return false;
230
+ if (d.version !== undefined && typeof d.version !== "number")
231
+ return false;
232
+ if (d.retry !== undefined) {
233
+ if (d.retry === null || typeof d.retry !== "object" || typeof d.retry.type !== "string" || !("data" in d.retry)) {
234
+ return false;
235
+ }
236
+ }
237
+ return true;
238
+ }
239
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/async/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { Constant, Exponential, Linear, Never, type RetryPolicy } from "../retries.js";
2
+ export { type AnyFunc, type Context, type DetachedHandle, DurablePromise, type Info } from "./context.js";
3
+ export { AsyncResonate, type AsyncResonateFunc, type ResonateHandle, type ResonateSchedule, } from "./resonate.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/async/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,EACL,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,12 @@
1
+ // Parallel async/await execution engine for the Resonate SDK.
2
+ //
3
+ // Users write ordinary `async` functions and use `await`. `ctx.run`/`ctx.rpc`/
4
+ // `ctx.sleep` are eager (begin immediately) and return a `DurablePromise<T>` —
5
+ // an awaitable branded handle exposing the durable promise id. There are no
6
+ // `begin*` variants.
7
+ // Retries are opt-in in this engine (default Never) — re-export the policies
8
+ // so migrating users don't have to reach into the generator entry point.
9
+ export { Constant, Exponential, Linear, Never } from "../retries.js";
10
+ export { DurablePromise } from "./context.js";
11
+ export { AsyncResonate, } from "./resonate.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/async/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,qBAAqB;AAErB,6EAA6E;AAC7E,yEAAyE;AACzE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAoB,MAAM,eAAe,CAAC;AACvF,OAAO,EAAmD,cAAc,EAAa,MAAM,cAAc,CAAC;AAC1G,OAAO,EACL,aAAa,GAId,MAAM,eAAe,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { type Encryptor } from "../encryptor.js";
2
+ import { type Logger, type LogLevel } from "../logger.js";
3
+ import type { Network } from "../network/network.js";
4
+ import { type Options } from "../options.js";
5
+ import { Promises } from "../promises.js";
6
+ import { Schedules } from "../schedules.js";
7
+ import type { AnyFunc, ParamsWithOptions, Return } from "./context.js";
8
+ export interface ResonateHandle<T> {
9
+ id: string;
10
+ result(): Promise<T>;
11
+ done(): Promise<boolean>;
12
+ }
13
+ export interface AsyncResonateFunc<F extends AnyFunc> {
14
+ run: (id: string, ...args: ParamsWithOptions<F>) => Promise<ResonateHandle<Return<F>>>;
15
+ rpc: (id: string, ...args: ParamsWithOptions<F>) => Promise<ResonateHandle<Return<F>>>;
16
+ options: (opts?: Partial<Options>) => Options;
17
+ }
18
+ export interface ResonateSchedule {
19
+ delete(): Promise<void>;
20
+ }
21
+ /**
22
+ * Opt-in entry point for the async/await execution engine. Lives alongside the
23
+ * generator-based `Resonate` and reuses the same network/codec/registry/task
24
+ * plumbing, routing execution through {@link AsyncCore}.
25
+ */
26
+ export declare class AsyncResonate {
27
+ private clock;
28
+ private pid;
29
+ private ttl;
30
+ private idPrefix;
31
+ private core;
32
+ private codec;
33
+ private network;
34
+ private send;
35
+ private logger;
36
+ private registry;
37
+ private heartbeat;
38
+ private dependencies;
39
+ private optsBuilder;
40
+ private subscriptions;
41
+ private subscribeEvery;
42
+ private intervalId;
43
+ readonly promises: Promises;
44
+ readonly schedules: Schedules;
45
+ constructor({ url, group, pid, ttl, token, timeout, verbose, logLevel, logger, encryptor, network, prefix, }?: {
46
+ url?: string;
47
+ group?: string;
48
+ pid?: string;
49
+ ttl?: number;
50
+ token?: string;
51
+ timeout?: number;
52
+ verbose?: boolean;
53
+ logLevel?: LogLevel;
54
+ logger?: Logger;
55
+ encryptor?: Encryptor;
56
+ network?: Network;
57
+ prefix?: string;
58
+ });
59
+ /** Registers an async function (leaf or workflow) for execution. */
60
+ register<F extends AnyFunc>(name: string, func: F, options?: {
61
+ version?: number;
62
+ }): AsyncResonateFunc<F>;
63
+ register<F extends AnyFunc>(func: F, options?: {
64
+ version?: number;
65
+ }): AsyncResonateFunc<F>;
66
+ /**
67
+ * Begins a workflow as a locally-executed root task and returns a handle.
68
+ * Await `.result()` for the value (delivered via the durable-promise
69
+ * subscription, never via the in-memory frame — see the GC rules).
70
+ */
71
+ run<F extends AnyFunc>(id: string, func: F, ...args: ParamsWithOptions<F>): Promise<ResonateHandle<Return<F>>>;
72
+ run<T>(id: string, funcOrName: AnyFunc | string, ...args: any[]): Promise<ResonateHandle<T>>;
73
+ /** Begins a workflow as a remote (globally-targeted) promise and returns a handle. */
74
+ rpc<F extends AnyFunc>(id: string, func: F, ...args: ParamsWithOptions<F>): Promise<ResonateHandle<Return<F>>>;
75
+ rpc<T>(id: string, funcOrName: AnyFunc | string, ...args: any[]): Promise<ResonateHandle<T>>;
76
+ /**
77
+ * Creates a recurring schedule that invokes a registered function on a cron
78
+ * interval. Each tick creates a fresh durable promise whose id embeds the
79
+ * schedule name and timestamp. Returns a handle with `delete()`.
80
+ */
81
+ schedule<F extends AnyFunc>(name: string, cron: string, func: F, ...args: ParamsWithOptions<F>): Promise<ResonateSchedule>;
82
+ schedule(name: string, cron: string, func: string, ...args: any[]): Promise<ResonateSchedule>;
83
+ /** Returns a handle to an existing durable promise by id. */
84
+ get<T = any>(id: string): Promise<ResonateHandle<T>>;
85
+ options(opts?: Partial<Pick<Options, "tags" | "target" | "timeout" | "version" | "retryPolicy">>): Options;
86
+ setDependency(name: string, obj: any): void;
87
+ stop(): Promise<void>;
88
+ private getArgsAndOpts;
89
+ private taskCreate;
90
+ private promiseCreate;
91
+ private promiseRegisterListener;
92
+ private promiseGet;
93
+ private createHandle;
94
+ private onMessage;
95
+ private subscribe;
96
+ private notify;
97
+ }
98
+ //# sourceMappingURL=resonate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../../src/async/resonate.ts"],"names":[],"mappings":"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"}