@resonatehq/sdk 0.9.6 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/README.md +84 -12
  2. package/dist/clock.d.ts.map +1 -0
  3. package/dist/clock.js +12 -0
  4. package/dist/clock.js.map +1 -0
  5. package/dist/codec.d.ts +11 -0
  6. package/dist/codec.d.ts.map +1 -0
  7. package/dist/codec.js +115 -0
  8. package/dist/codec.js.map +1 -0
  9. package/dist/computation.d.ts +40 -0
  10. package/dist/computation.d.ts.map +1 -0
  11. package/dist/computation.js +152 -0
  12. package/dist/computation.js.map +1 -0
  13. package/dist/{src/context.d.ts → context.d.ts} +70 -40
  14. package/dist/context.d.ts.map +1 -0
  15. package/dist/{src/context.js → context.js} +140 -155
  16. package/dist/context.js.map +1 -0
  17. package/dist/core.d.ts +45 -0
  18. package/dist/core.d.ts.map +1 -0
  19. package/dist/core.js +140 -0
  20. package/dist/core.js.map +1 -0
  21. package/dist/coroutine.d.ts +37 -0
  22. package/dist/coroutine.d.ts.map +1 -0
  23. package/dist/coroutine.js +259 -0
  24. package/dist/coroutine.js.map +1 -0
  25. package/dist/{src/decorator.d.ts → decorator.d.ts} +9 -8
  26. package/dist/decorator.d.ts.map +1 -0
  27. package/dist/decorator.js +150 -0
  28. package/dist/decorator.js.map +1 -0
  29. package/dist/encryptor.d.ts +10 -0
  30. package/dist/encryptor.d.ts.map +1 -0
  31. package/dist/encryptor.js +9 -0
  32. package/dist/encryptor.js.map +1 -0
  33. package/dist/{src/exceptions.d.ts → exceptions.d.ts} +4 -1
  34. package/dist/exceptions.d.ts.map +1 -0
  35. package/dist/{src/exceptions.js → exceptions.js} +11 -11
  36. package/dist/exceptions.js.map +1 -0
  37. package/dist/{src/heartbeat.d.ts → heartbeat.d.ts} +5 -3
  38. package/dist/heartbeat.d.ts.map +1 -0
  39. package/dist/heartbeat.js +50 -0
  40. package/dist/heartbeat.js.map +1 -0
  41. package/dist/index.d.ts +19 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +15 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/logger.d.ts +33 -0
  46. package/dist/logger.d.ts.map +1 -0
  47. package/dist/logger.js +54 -0
  48. package/dist/logger.js.map +1 -0
  49. package/dist/network/http.d.ts +86 -0
  50. package/dist/network/http.d.ts.map +1 -0
  51. package/dist/network/http.js +350 -0
  52. package/dist/network/http.js.map +1 -0
  53. package/dist/network/local.d.ts +188 -0
  54. package/dist/network/local.d.ts.map +1 -0
  55. package/dist/network/local.js +1349 -0
  56. package/dist/network/local.js.map +1 -0
  57. package/dist/network/network.d.ts +17 -0
  58. package/dist/network/network.d.ts.map +1 -0
  59. package/dist/network/network.js +2 -0
  60. package/dist/network/network.js.map +1 -0
  61. package/dist/network/types.d.ts +1280 -0
  62. package/dist/network/types.d.ts.map +1 -0
  63. package/dist/network/types.js +920 -0
  64. package/dist/network/types.js.map +1 -0
  65. package/dist/{src/options.d.ts → options.d.ts} +15 -6
  66. package/dist/options.d.ts.map +1 -0
  67. package/dist/options.js +34 -0
  68. package/dist/options.js.map +1 -0
  69. package/dist/promises.d.ts +54 -0
  70. package/dist/promises.d.ts.map +1 -0
  71. package/dist/promises.js +122 -0
  72. package/dist/promises.js.map +1 -0
  73. package/dist/{src/registry.d.ts → registry.d.ts} +1 -1
  74. package/dist/registry.d.ts.map +1 -0
  75. package/dist/{src/registry.js → registry.js} +6 -13
  76. package/dist/registry.js.map +1 -0
  77. package/dist/resonate.d.ts +168 -0
  78. package/dist/resonate.d.ts.map +1 -0
  79. package/dist/resonate.js +475 -0
  80. package/dist/resonate.js.map +1 -0
  81. package/dist/retries.d.ts.map +1 -0
  82. package/dist/{src/retries.js → retries.js} +4 -11
  83. package/dist/retries.js.map +1 -0
  84. package/dist/schedules.d.ts +22 -0
  85. package/dist/schedules.d.ts.map +1 -0
  86. package/dist/schedules.js +65 -0
  87. package/dist/schedules.js.map +1 -0
  88. package/dist/trace.d.ts +79 -0
  89. package/dist/trace.d.ts.map +1 -0
  90. package/dist/trace.js +224 -0
  91. package/dist/trace.js.map +1 -0
  92. package/dist/types.d.ts +21 -0
  93. package/dist/types.d.ts.map +1 -0
  94. package/dist/types.js +2 -0
  95. package/dist/types.js.map +1 -0
  96. package/dist/util.d.ts +28 -0
  97. package/dist/util.d.ts.map +1 -0
  98. package/dist/util.js +196 -0
  99. package/dist/util.js.map +1 -0
  100. package/package.json +18 -10
  101. package/dist/dev/network.d.ts +0 -34
  102. package/dist/dev/network.d.ts.map +0 -1
  103. package/dist/dev/network.js +0 -115
  104. package/dist/dev/network.js.map +0 -1
  105. package/dist/dev/server.d.ts +0 -89
  106. package/dist/dev/server.d.ts.map +0 -1
  107. package/dist/dev/server.js +0 -890
  108. package/dist/dev/server.js.map +0 -1
  109. package/dist/sim/example-1.d.ts +0 -2
  110. package/dist/sim/example-1.d.ts.map +0 -1
  111. package/dist/sim/example-1.js +0 -95
  112. package/dist/sim/example-1.js.map +0 -1
  113. package/dist/sim/example-2.d.ts +0 -2
  114. package/dist/sim/example-2.d.ts.map +0 -1
  115. package/dist/sim/example-2.js +0 -97
  116. package/dist/sim/example-2.js.map +0 -1
  117. package/dist/sim/example-3.d.ts +0 -2
  118. package/dist/sim/example-3.d.ts.map +0 -1
  119. package/dist/sim/example-3.js +0 -97
  120. package/dist/sim/example-3.js.map +0 -1
  121. package/dist/sim/main.d.ts +0 -14
  122. package/dist/sim/main.d.ts.map +0 -1
  123. package/dist/sim/main.js +0 -207
  124. package/dist/sim/main.js.map +0 -1
  125. package/dist/sim/src/server.d.ts +0 -15
  126. package/dist/sim/src/server.d.ts.map +0 -1
  127. package/dist/sim/src/server.js +0 -85
  128. package/dist/sim/src/server.js.map +0 -1
  129. package/dist/sim/src/simulator.d.ts +0 -65
  130. package/dist/sim/src/simulator.d.ts.map +0 -1
  131. package/dist/sim/src/simulator.js +0 -236
  132. package/dist/sim/src/simulator.js.map +0 -1
  133. package/dist/sim/src/worker.d.ts +0 -23
  134. package/dist/sim/src/worker.d.ts.map +0 -1
  135. package/dist/sim/src/worker.js +0 -217
  136. package/dist/sim/src/worker.js.map +0 -1
  137. package/dist/src/clock.d.ts.map +0 -1
  138. package/dist/src/clock.js +0 -17
  139. package/dist/src/clock.js.map +0 -1
  140. package/dist/src/computation.d.ts +0 -49
  141. package/dist/src/computation.d.ts.map +0 -1
  142. package/dist/src/computation.js +0 -314
  143. package/dist/src/computation.js.map +0 -1
  144. package/dist/src/context.d.ts.map +0 -1
  145. package/dist/src/context.js.map +0 -1
  146. package/dist/src/core.d.ts +0 -12
  147. package/dist/src/core.d.ts.map +0 -1
  148. package/dist/src/core.js +0 -28
  149. package/dist/src/core.js.map +0 -1
  150. package/dist/src/coroutine.d.ts +0 -42
  151. package/dist/src/coroutine.d.ts.map +0 -1
  152. package/dist/src/coroutine.js +0 -364
  153. package/dist/src/coroutine.js.map +0 -1
  154. package/dist/src/decorator.d.ts.map +0 -1
  155. package/dist/src/decorator.js +0 -220
  156. package/dist/src/decorator.js.map +0 -1
  157. package/dist/src/encoder.d.ts +0 -12
  158. package/dist/src/encoder.d.ts.map +0 -1
  159. package/dist/src/encoder.js +0 -101
  160. package/dist/src/encoder.js.map +0 -1
  161. package/dist/src/encryptor.d.ts +0 -10
  162. package/dist/src/encryptor.d.ts.map +0 -1
  163. package/dist/src/encryptor.js +0 -13
  164. package/dist/src/encryptor.js.map +0 -1
  165. package/dist/src/exceptions.d.ts.map +0 -1
  166. package/dist/src/exceptions.js.map +0 -1
  167. package/dist/src/handler.d.ts +0 -49
  168. package/dist/src/handler.d.ts.map +0 -1
  169. package/dist/src/handler.js +0 -316
  170. package/dist/src/handler.js.map +0 -1
  171. package/dist/src/heartbeat.d.ts.map +0 -1
  172. package/dist/src/heartbeat.js +0 -87
  173. package/dist/src/heartbeat.js.map +0 -1
  174. package/dist/src/index.d.ts +0 -15
  175. package/dist/src/index.d.ts.map +0 -1
  176. package/dist/src/index.js +0 -61
  177. package/dist/src/index.js.map +0 -1
  178. package/dist/src/network/network.d.ts +0 -254
  179. package/dist/src/network/network.d.ts.map +0 -1
  180. package/dist/src/network/network.js +0 -4
  181. package/dist/src/network/network.js.map +0 -1
  182. package/dist/src/network/remote.d.ts +0 -85
  183. package/dist/src/network/remote.d.ts.map +0 -1
  184. package/dist/src/network/remote.js +0 -523
  185. package/dist/src/network/remote.js.map +0 -1
  186. package/dist/src/nursery.d.ts +0 -19
  187. package/dist/src/nursery.d.ts.map +0 -1
  188. package/dist/src/nursery.js +0 -102
  189. package/dist/src/nursery.js.map +0 -1
  190. package/dist/src/options.d.ts.map +0 -1
  191. package/dist/src/options.js +0 -70
  192. package/dist/src/options.js.map +0 -1
  193. package/dist/src/processor/processor.d.ts +0 -12
  194. package/dist/src/processor/processor.d.ts.map +0 -1
  195. package/dist/src/processor/processor.js +0 -43
  196. package/dist/src/processor/processor.js.map +0 -1
  197. package/dist/src/promises.d.ts +0 -54
  198. package/dist/src/promises.d.ts.map +0 -1
  199. package/dist/src/promises.js +0 -169
  200. package/dist/src/promises.js.map +0 -1
  201. package/dist/src/registry.d.ts.map +0 -1
  202. package/dist/src/registry.js.map +0 -1
  203. package/dist/src/resonate-inner.d.ts +0 -60
  204. package/dist/src/resonate-inner.d.ts.map +0 -1
  205. package/dist/src/resonate-inner.js +0 -97
  206. package/dist/src/resonate-inner.js.map +0 -1
  207. package/dist/src/resonate.d.ts +0 -341
  208. package/dist/src/resonate.d.ts.map +0 -1
  209. package/dist/src/resonate.js +0 -591
  210. package/dist/src/resonate.js.map +0 -1
  211. package/dist/src/retries.d.ts.map +0 -1
  212. package/dist/src/retries.js.map +0 -1
  213. package/dist/src/schedules.d.ts +0 -19
  214. package/dist/src/schedules.d.ts.map +0 -1
  215. package/dist/src/schedules.js +0 -85
  216. package/dist/src/schedules.js.map +0 -1
  217. package/dist/src/tasks.d.ts +0 -9
  218. package/dist/src/tasks.d.ts.map +0 -1
  219. package/dist/src/tasks.js +0 -61
  220. package/dist/src/tasks.js.map +0 -1
  221. package/dist/src/tracer.d.ts +0 -23
  222. package/dist/src/tracer.d.ts.map +0 -1
  223. package/dist/src/tracer.js +0 -25
  224. package/dist/src/tracer.js.map +0 -1
  225. package/dist/src/types.d.ts +0 -28
  226. package/dist/src/types.d.ts.map +0 -1
  227. package/dist/src/types.js +0 -11
  228. package/dist/src/types.js.map +0 -1
  229. package/dist/src/util.d.ts +0 -20
  230. package/dist/src/util.d.ts.map +0 -1
  231. package/dist/src/util.js +0 -120
  232. package/dist/src/util.js.map +0 -1
  233. package/dist/tsconfig.build.tsbuildinfo +0 -1
  234. /package/dist/{src/clock.d.ts → clock.d.ts} +0 -0
  235. /package/dist/{src/retries.d.ts → retries.d.ts} +0 -0
@@ -0,0 +1,475 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { setTimeout as delay } from "node:timers/promises";
3
+ import { WallClock } from "./clock.js";
4
+ import { Codec } from "./codec.js";
5
+ import { Core } from "./core.js";
6
+ import { NoopEncryptor } from "./encryptor.js";
7
+ import exceptions, { ResonateTimeoutException } from "./exceptions.js";
8
+ import { AsyncHeartbeat, NoopHeartbeat } from "./heartbeat.js";
9
+ import { ConsoleLogger } from "./logger.js";
10
+ import { HttpNetwork, PollMessageSource } from "./network/http.js";
11
+ import { LocalNetwork } from "./network/local.js";
12
+ import { isConflict, isSuccess, } from "./network/types.js";
13
+ import { OptionsBuilder } from "./options.js";
14
+ import { Promises } from "./promises.js";
15
+ import { Registry } from "./registry.js";
16
+ import { Schedules } from "./schedules.js";
17
+ import * as util from "./util.js";
18
+ export class Resonate {
19
+ clock;
20
+ pid;
21
+ ttl;
22
+ idPrefix;
23
+ core;
24
+ codec;
25
+ network;
26
+ send;
27
+ logger;
28
+ registry;
29
+ heartbeat;
30
+ dependencies;
31
+ optsBuilder;
32
+ subscriptions = new Map();
33
+ subscribeEvery;
34
+ intervalId;
35
+ promises;
36
+ schedules;
37
+ /**
38
+ * Creates a new Resonate client instance.
39
+ *
40
+ * @param options - Configuration options for the client.
41
+ * @param options.url - Resonate server URL. Falls back to `process.env.RESONATE_URL`.
42
+ * If no URL is resolved, a local in-memory network is used.
43
+ * @param options.group - Worker group name. Defaults to `"default"`.
44
+ * @param options.pid - Process identifier for the client. Defaults to a random UUID.
45
+ * @param options.ttl - Time-to-live (in seconds) for claimed tasks. Defaults to `1 * util.MIN`.
46
+ * @param options.token - Bearer token for authentication. Passed through to HttpNetwork
47
+ * which falls back to `RESONATE_TOKEN` env var.
48
+ * @param options.timeout - Network request timeout. Passed through to HttpNetwork
49
+ * which falls back to `RESONATE_TIMEOUT` env var (default: 10s).
50
+ * @param options.verbose - Enables verbose logging (shorthand for `logLevel: "debug"`). Defaults to `false`.
51
+ * @param options.logLevel - Log level for the default ConsoleLogger. Defaults to `"warn"`. Takes precedence over `verbose`.
52
+ * @param options.logger - Custom logger implementation. Defaults to {@link ConsoleLogger}.
53
+ * @param options.encryptor - Payload encryptor. Defaults to {@link NoopEncryptor}.
54
+ * @param options.network - Custom network implementation. Defaults to `undefined`.
55
+ * @param options.prefix - ID prefix applied to generated IDs. Defaults to
56
+ * `process.env.RESONATE_PREFIX` when set.
57
+ */
58
+ constructor({ url = undefined, group = "default", pid = undefined, ttl = 1 * util.MIN, token = undefined, timeout = undefined, verbose = false, logLevel = undefined, logger = undefined, encryptor = undefined, network = undefined, prefix = undefined, } = {}) {
59
+ this.clock = new WallClock();
60
+ this.ttl = ttl;
61
+ this.codec = new Codec(encryptor ?? new NoopEncryptor());
62
+ const resolvedPrefix = prefix ?? process.env.RESONATE_PREFIX;
63
+ this.idPrefix = resolvedPrefix ? `${resolvedPrefix}:` : "";
64
+ // Resolve logger: explicit logger > ConsoleLogger with resolved level
65
+ // logLevel takes precedence over verbose; verbose: true -> "debug"
66
+ const resolvedLogLevel = logLevel ?? (verbose ? "debug" : "warn");
67
+ this.logger = logger ?? new ConsoleLogger(resolvedLogLevel);
68
+ this.subscribeEvery = 60 * 1000; // make this configurable
69
+ // Determine the URL: url arg > RESONATE_URL env var
70
+ // Only used to decide between LocalNetwork and HttpNetwork.
71
+ // Full URL/bun fmt
72
+ // bun check
73
+ // /token/timeout env var resolution is HttpNetwork's responsibility (3.7).
74
+ const resolvedUrl = url ?? (process.env.RESONATE_URL || undefined);
75
+ this.pid = pid ?? crypto.randomUUID().replace(/-/g, "");
76
+ let heartbeat;
77
+ if (network) {
78
+ this.network = network;
79
+ heartbeat = true;
80
+ }
81
+ else if (resolvedUrl) {
82
+ const adapter = new PollMessageSource({
83
+ url: `${resolvedUrl}/poll/${encodeURIComponent(group)}/${encodeURIComponent(this.pid)}`,
84
+ token,
85
+ logger: this.logger,
86
+ });
87
+ this.network = new HttpNetwork({
88
+ url: resolvedUrl,
89
+ token,
90
+ timeout,
91
+ headers: {},
92
+ adapter,
93
+ logger: this.logger,
94
+ });
95
+ heartbeat = true;
96
+ }
97
+ else {
98
+ this.network = new LocalNetwork({ pid: this.pid, group });
99
+ heartbeat = false;
100
+ }
101
+ this.send = this.network.send;
102
+ if (heartbeat) {
103
+ this.heartbeat = new AsyncHeartbeat(this.pid, ttl / 2, this.send, this.logger);
104
+ }
105
+ else {
106
+ this.heartbeat = new NoopHeartbeat();
107
+ }
108
+ this.registry = new Registry();
109
+ this.dependencies = new Map();
110
+ this.optsBuilder = new OptionsBuilder({ match: this.network.match.bind(this.network), idPrefix: this.idPrefix });
111
+ this.core = new Core({
112
+ pid: this.pid,
113
+ ttl: this.ttl,
114
+ clock: this.clock,
115
+ send: this.send,
116
+ codec: this.codec,
117
+ registry: this.registry,
118
+ heartbeat: this.heartbeat,
119
+ dependencies: this.dependencies,
120
+ optsBuilder: this.optsBuilder,
121
+ logger: this.logger,
122
+ });
123
+ this.promises = new Promises(this.send);
124
+ this.schedules = new Schedules(this.send);
125
+ // subscribe to network
126
+ this.network.recv(this.onMessage.bind(this));
127
+ this.network.init().catch((err) => {
128
+ this.logger.error({ component: "resonate", error: err instanceof Error ? err.message : String(err) }, "Failed to start network");
129
+ });
130
+ // periodically refresh subscriptions
131
+ this.intervalId = setInterval(async () => {
132
+ for (const [id, sub] of this.subscriptions.entries()) {
133
+ try {
134
+ const registerListenerReq = {
135
+ kind: "promise.register_listener",
136
+ head: { corrId: randomUUID(), version: util.VERSION },
137
+ data: {
138
+ awaited: id,
139
+ address: this.network.unicast,
140
+ },
141
+ };
142
+ const res = await this.promiseRegisterListener(registerListenerReq);
143
+ if (res.state !== "pending") {
144
+ sub.resolve(res);
145
+ this.subscriptions.delete(id);
146
+ }
147
+ }
148
+ catch {
149
+ // silently skip on error
150
+ }
151
+ }
152
+ }, this.subscribeEvery);
153
+ }
154
+ register(nameOrFunc, funcOrOptions, maybeOptions = {}) {
155
+ const { version = 1 } = (typeof funcOrOptions === "object" ? funcOrOptions : maybeOptions) ?? {};
156
+ const func = typeof nameOrFunc === "function" ? nameOrFunc : funcOrOptions;
157
+ const name = typeof nameOrFunc === "string" ? nameOrFunc : func.name;
158
+ this.registry.add(func, name, version);
159
+ return {
160
+ run: (id, ...args) => this.run(id, func, ...this.getArgsAndOpts(args, version)),
161
+ rpc: (id, ...args) => this.rpc(id, func, ...this.getArgsAndOpts(args, version)),
162
+ beginRun: (id, ...args) => this.beginRun(id, func, ...this.getArgsAndOpts(args, version)),
163
+ beginRpc: (id, ...args) => this.beginRpc(id, func, ...this.getArgsAndOpts(args, version)),
164
+ options: this.options,
165
+ };
166
+ }
167
+ async run(id, funcOrName, ...args) {
168
+ return (await this.beginRun(id, funcOrName, ...args)).result();
169
+ }
170
+ async beginRun(id, funcOrName, ...argsWithOpts) {
171
+ const [args, opts] = this.getArgsAndOpts(argsWithOpts);
172
+ const registered = this.registry.get(funcOrName, opts.version);
173
+ // function must be registered
174
+ if (!registered) {
175
+ throw exceptions.REGISTRY_FUNCTION_NOT_REGISTERED(typeof funcOrName === "string" ? funcOrName : funcOrName.name, opts.version);
176
+ }
177
+ id = `${this.idPrefix}${id}`;
178
+ util.assert(registered.version > 0, "function version must be greater than zero");
179
+ const { promise, task } = await this.taskCreate({
180
+ kind: "task.create",
181
+ head: { corrId: randomUUID(), version: util.VERSION },
182
+ data: {
183
+ pid: this.pid,
184
+ ttl: this.ttl,
185
+ action: {
186
+ kind: "promise.create",
187
+ head: { corrId: randomUUID(), version: util.VERSION },
188
+ data: {
189
+ id: id,
190
+ timeoutAt: Date.now() + opts.timeout,
191
+ param: {
192
+ data: {
193
+ func: registered.name,
194
+ args: args,
195
+ retry: opts.retryPolicy?.encode(),
196
+ version: registered.version,
197
+ },
198
+ headers: {},
199
+ },
200
+ tags: {
201
+ ...opts.tags,
202
+ "resonate:origin": id,
203
+ "resonate:branch": id,
204
+ "resonate:parent": id,
205
+ "resonate:scope": "global",
206
+ "resonate:target": this.network.anycast,
207
+ },
208
+ },
209
+ },
210
+ },
211
+ });
212
+ if (task && task.state === "acquired") {
213
+ this.core
214
+ .executeUntilBlocked(task, promise)
215
+ .catch((err) => this.logger.warn({ component: "resonate", error: err instanceof Error ? err.message : String(err) }, "executeUntilBlocked failed"));
216
+ }
217
+ return this.createHandle(promise);
218
+ }
219
+ async rpc(id, funcOrName, ...args) {
220
+ return (await this.beginRpc(id, funcOrName, ...args)).result();
221
+ }
222
+ async beginRpc(id, funcOrName, ...argsWithOpts) {
223
+ const [args, opts] = this.getArgsAndOpts(argsWithOpts);
224
+ const registered = this.registry.get(funcOrName, opts.version);
225
+ // function must be registered if function pointer is provided
226
+ if (typeof funcOrName === "function" && !registered) {
227
+ throw exceptions.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version);
228
+ }
229
+ id = `${this.idPrefix}${id}`;
230
+ const func = registered ? registered.name : funcOrName;
231
+ const version = registered ? registered.version : opts.version || 1;
232
+ const promise = await this.promiseCreate({
233
+ kind: "promise.create",
234
+ head: { corrId: randomUUID(), version: util.VERSION },
235
+ data: {
236
+ id: id,
237
+ timeoutAt: Date.now() + opts.timeout,
238
+ param: {
239
+ data: {
240
+ func,
241
+ args,
242
+ retry: opts.retryPolicy?.encode(),
243
+ version,
244
+ },
245
+ headers: {},
246
+ },
247
+ tags: {
248
+ ...opts.tags,
249
+ "resonate:origin": id,
250
+ "resonate:branch": id,
251
+ "resonate:parent": id,
252
+ "resonate:scope": "global",
253
+ "resonate:target": opts.target,
254
+ },
255
+ },
256
+ });
257
+ return this.createHandle(promise);
258
+ }
259
+ async schedule(name, cron, funcOrName, ...argsWithOpts) {
260
+ const [args, opts] = this.getArgsAndOpts(argsWithOpts);
261
+ const registered = this.registry.get(funcOrName, opts.version);
262
+ // function must be registered if function pointer is provided
263
+ if (typeof funcOrName === "function" && !registered) {
264
+ throw exceptions.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version);
265
+ }
266
+ // TODO: move this into the handler?
267
+ const { headers, data } = this.codec.encode({
268
+ func: registered ? registered.name : funcOrName,
269
+ args: args,
270
+ version: registered ? registered.version : opts.version || 1,
271
+ });
272
+ await this.schedules.create(name, cron, `${this.idPrefix}{{.id}}.{{.timestamp}}`, opts.timeout, {
273
+ promiseHeaders: headers,
274
+ promiseData: data,
275
+ promiseTags: { ...opts.tags, "resonate:target": opts.target },
276
+ });
277
+ return {
278
+ delete: () => this.schedules.delete(name),
279
+ };
280
+ }
281
+ async get(id) {
282
+ id = `${this.idPrefix}${id}`;
283
+ const promise = await this.promiseGet({
284
+ kind: "promise.get",
285
+ head: { corrId: randomUUID(), version: util.VERSION },
286
+ data: {
287
+ id,
288
+ },
289
+ });
290
+ return this.createHandle(promise);
291
+ }
292
+ /**
293
+ * Builds a resolved {@link Options} object by merging the provided partial options
294
+ * with the client's defaults.
295
+ *
296
+ * This is useful for inspecting the effective configuration that would be applied
297
+ * to a `run`, `rpc`, or `schedule` call, or for passing explicit options to the
298
+ * convenience methods on a {@link ResonateFunc} handle.
299
+ *
300
+ * @param opts - Partial options to merge. Supports `tags`, `target`, `timeout`,
301
+ * `version`, and `retryPolicy`.
302
+ *
303
+ * @returns A fully resolved {@link Options} object.
304
+ */
305
+ options(opts = {}) {
306
+ return this.optsBuilder.build(opts);
307
+ }
308
+ getArgsAndOpts(args, version) {
309
+ return util.splitArgsAndOpts(args, this.options({ version }));
310
+ }
311
+ /**
312
+ * Registers a named dependency that will be available to all Resonate functions
313
+ * via `context.getDependency(name)`.
314
+ *
315
+ * Use this to inject services, clients, or configuration objects into Resonate
316
+ * functions without tight coupling.
317
+ *
318
+ * @param name - A unique key identifying the dependency.
319
+ * @param obj - The dependency value (any object or primitive).
320
+ */
321
+ setDependency(name, obj) {
322
+ this.dependencies.set(name, obj);
323
+ }
324
+ /**
325
+ * Stops the Resonate client, releasing all resources.
326
+ *
327
+ * This shuts down the underlying network transport and message source, stops the
328
+ * heartbeat loop, and clears the subscription refresh interval. After calling
329
+ * `stop()`, the client should not be used for further operations.
330
+ */
331
+ async stop() {
332
+ await this.network.stop();
333
+ this.heartbeat.stop();
334
+ clearInterval(this.intervalId);
335
+ }
336
+ async taskCreate(req) {
337
+ req.data.action.data.param = this.codec.encode(req.data.action.data.param.data);
338
+ const res = await this.send(req);
339
+ if (!isSuccess(res) && !isConflict(res)) {
340
+ throw exceptions.SERVER_ERROR(res.data, true, {
341
+ code: res.head.status,
342
+ message: res.data,
343
+ });
344
+ }
345
+ if (isConflict(res)) {
346
+ const promise = await this.promiseRegisterListener({
347
+ kind: "promise.register_listener",
348
+ head: { corrId: randomUUID(), version: util.VERSION },
349
+ data: {
350
+ awaited: req.data.action.data.id,
351
+ address: this.network.unicast,
352
+ },
353
+ });
354
+ return { promise, task: undefined };
355
+ }
356
+ const promise = this.codec.decodePromise(res.data.promise);
357
+ return { promise, task: res.data.task };
358
+ }
359
+ async promiseCreate(req) {
360
+ req.data.param = this.codec.encode(req.data.param.data);
361
+ const res = await this.send(req);
362
+ if (!isSuccess(res)) {
363
+ throw exceptions.SERVER_ERROR(res.data, true, {
364
+ code: res.head.status,
365
+ message: res.data,
366
+ });
367
+ }
368
+ return this.codec.decodePromise(res.data.promise);
369
+ }
370
+ async promiseRegisterListener(req) {
371
+ const retryDelay = 5000;
372
+ while (true) {
373
+ try {
374
+ const res = await this.send(req);
375
+ if (!isSuccess(res)) {
376
+ await delay(retryDelay);
377
+ continue;
378
+ }
379
+ return this.codec.decodePromise(res.data.promise);
380
+ }
381
+ catch (e) {
382
+ if (e instanceof ResonateTimeoutException) {
383
+ await delay(retryDelay);
384
+ continue;
385
+ }
386
+ throw e;
387
+ }
388
+ }
389
+ }
390
+ async promiseGet(req) {
391
+ const res = await this.send(req);
392
+ if (!isSuccess(res)) {
393
+ throw exceptions.SERVER_ERROR(res.data, true, {
394
+ code: res.head.status,
395
+ message: res.data,
396
+ });
397
+ }
398
+ return this.codec.decodePromise(res.data.promise);
399
+ }
400
+ createHandle(promise) {
401
+ const registerListenerReq = {
402
+ kind: "promise.register_listener",
403
+ head: { corrId: randomUUID(), version: util.VERSION },
404
+ data: {
405
+ awaited: promise.id,
406
+ address: this.network.unicast,
407
+ },
408
+ };
409
+ return {
410
+ id: promise.id,
411
+ done: () => this.promiseRegisterListener(registerListenerReq).then((res) => res.state !== "pending"),
412
+ result: () => this.promiseRegisterListener(registerListenerReq).then((res) => this.subscribe(promise.id, res)),
413
+ };
414
+ }
415
+ onMessage(msg) {
416
+ if (msg.kind === "execute") {
417
+ this.core
418
+ .onMessage(msg)
419
+ .catch((err) => this.logger.warn({ component: "resonate", error: err instanceof Error ? err.message : String(err) }, "onMessage failed"));
420
+ return;
421
+ }
422
+ util.assert(msg.kind === "unblock");
423
+ try {
424
+ const decoded = this.codec.decodePromise(msg.data.promise);
425
+ this.notify(msg.data.promise.id, undefined, decoded);
426
+ }
427
+ catch {
428
+ this.notify(msg.data.promise.id, new Error("Failed to decode promise"));
429
+ }
430
+ }
431
+ async subscribe(id, res) {
432
+ const { promise, resolve, reject } = this.subscriptions.get(id) ?? Promise.withResolvers();
433
+ if (res.state === "pending") {
434
+ this.subscriptions.set(id, { promise, resolve, reject, timeout: res.timeoutAt });
435
+ }
436
+ else {
437
+ resolve(res);
438
+ this.subscriptions.delete(id);
439
+ }
440
+ const p = await promise;
441
+ util.assert(p.state !== "pending", "promise must be completed");
442
+ if (p.state === "resolved") {
443
+ return p.value?.data;
444
+ }
445
+ if (p.state === "rejected") {
446
+ throw p.value?.data;
447
+ }
448
+ if (p.state === "rejected_canceled") {
449
+ throw new Error("Promise canceled");
450
+ }
451
+ if (p.state === "rejected_timedout") {
452
+ throw new Error("Promise timedout");
453
+ }
454
+ }
455
+ notify(id, err, res) {
456
+ let subscription = this.subscriptions.get(id);
457
+ if (!subscription) {
458
+ const { promise, resolve, reject } = Promise.withResolvers();
459
+ // if no res, we cannot extract timeoutAt information. So we fallback to a large number
460
+ subscription = { promise, resolve, reject, timeout: res ? res.timeoutAt : 100000000 };
461
+ this.subscriptions.set(id, subscription);
462
+ }
463
+ else {
464
+ this.subscriptions.delete(id);
465
+ }
466
+ if (res) {
467
+ util.assert(res.state !== "pending", "promise must be completed");
468
+ subscription.resolve(res);
469
+ }
470
+ else {
471
+ subscription.reject(err);
472
+ }
473
+ }
474
+ }
475
+ //# sourceMappingURL=resonate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resonate.js","sourceRoot":"","sources":["../src/resonate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retries.d.ts","sourceRoot":"","sources":["../src/retries.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;CACvC;AAED,qBAAa,QAAS,YAAW,WAAW;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,EAAE,KAAY,EAAE,UAAoC,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAKhH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAgBpC,MAAM;;;;;;;CAMP;AAED,qBAAa,WAAY,YAAW,WAAW;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,iBAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,EACV,KAAY,EACZ,MAAU,EACV,UAAoC,EACpC,QAAgB,GACjB,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;IAOnF,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAgBpC,MAAM;;;;;;;;;CAMP;AAED,qBAAa,MAAO,YAAW,WAAW;IACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,EAAE,KAAY,EAAE,UAAoC,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAKhH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYpC,MAAM;;;;;;;CAMP;AAED,qBAAa,KAAM,YAAW,WAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW;IAE/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQpC,MAAM;;;;CAMP"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Never = exports.Linear = exports.Exponential = exports.Constant = void 0;
4
- class Constant {
1
+ export class Constant {
5
2
  static type = "constant";
6
3
  delay;
7
4
  maxRetries;
@@ -28,8 +25,7 @@ class Constant {
28
25
  };
29
26
  }
30
27
  }
31
- exports.Constant = Constant;
32
- class Exponential {
28
+ export class Exponential {
33
29
  static type = "exponential";
34
30
  delay;
35
31
  maxRetries;
@@ -60,8 +56,7 @@ class Exponential {
60
56
  };
61
57
  }
62
58
  }
63
- exports.Exponential = Exponential;
64
- class Linear {
59
+ export class Linear {
65
60
  static type = "linear";
66
61
  delay;
67
62
  maxRetries;
@@ -85,8 +80,7 @@ class Linear {
85
80
  };
86
81
  }
87
82
  }
88
- exports.Linear = Linear;
89
- class Never {
83
+ export class Never {
90
84
  static type = "never";
91
85
  next(attempt) {
92
86
  if (attempt < 0) {
@@ -101,5 +95,4 @@ class Never {
101
95
  };
102
96
  }
103
97
  }
104
- exports.Never = Never;
105
98
  //# sourceMappingURL=retries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retries.js","sourceRoot":"","sources":["../src/retries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type ScheduleRecord } from "./network/types.js";
2
+ import type { Send } from "./types.js";
3
+ export declare class Schedules {
4
+ private send;
5
+ constructor(send?: Send);
6
+ get(id: string): Promise<ScheduleRecord>;
7
+ create(id: string, cron: string, promiseId: string, promiseTimeout: number, { promiseHeaders, promiseData, promiseTags, }?: {
8
+ description?: string;
9
+ tags?: {
10
+ [key: string]: string;
11
+ };
12
+ promiseHeaders?: {
13
+ [key: string]: string;
14
+ };
15
+ promiseData?: string;
16
+ promiseTags?: {
17
+ [key: string]: string;
18
+ };
19
+ }): Promise<ScheduleRecord>;
20
+ delete(id: string): Promise<undefined>;
21
+ }
22
+ //# sourceMappingURL=schedules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAO;gBAEP,IAAI,GAAE,IAA8B;IAI1C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBxC,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,EACE,cAAmB,EACnB,WAAgB,EAChB,WAAgB,GACjB,GAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACjC,cAAc,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACpC,GACL,OAAO,CAAC,cAAc,CAAC;IAsBpB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAgB7C"}
@@ -0,0 +1,65 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import exceptions from "./exceptions.js";
3
+ import { LocalNetwork } from "./network/local.js";
4
+ import { isSuccess } from "./network/types.js";
5
+ import { VERSION } from "./util.js";
6
+ export class Schedules {
7
+ send;
8
+ constructor(send = new LocalNetwork().send) {
9
+ this.send = send;
10
+ }
11
+ async get(id) {
12
+ const res = await this.send({
13
+ kind: "schedule.get",
14
+ head: { corrId: randomUUID(), version: VERSION },
15
+ data: {
16
+ id,
17
+ },
18
+ });
19
+ if (!isSuccess(res)) {
20
+ throw exceptions.SERVER_ERROR(res.data, true, {
21
+ code: res.head.status,
22
+ message: res.data,
23
+ });
24
+ }
25
+ return res.data.schedule;
26
+ }
27
+ async create(id, cron, promiseId, promiseTimeout, { promiseHeaders = {}, promiseData = "", promiseTags = {}, } = {}) {
28
+ const res = await this.send({
29
+ kind: "schedule.create",
30
+ head: { corrId: randomUUID(), version: VERSION },
31
+ data: {
32
+ id: id,
33
+ cron: cron,
34
+ promiseId: promiseId,
35
+ promiseTimeout: promiseTimeout,
36
+ promiseParam: { headers: promiseHeaders, data: promiseData },
37
+ promiseTags: promiseTags,
38
+ },
39
+ });
40
+ if (!isSuccess(res)) {
41
+ throw exceptions.SERVER_ERROR(res.data, true, {
42
+ code: res.head.status,
43
+ message: res.data,
44
+ });
45
+ }
46
+ return res.data.schedule;
47
+ }
48
+ async delete(id) {
49
+ const res = await this.send({
50
+ kind: "schedule.delete",
51
+ head: { corrId: randomUUID(), version: VERSION },
52
+ data: {
53
+ id,
54
+ },
55
+ });
56
+ if (!isSuccess(res)) {
57
+ throw exceptions.SERVER_ERROR(res.data, true, {
58
+ code: res.head.status,
59
+ message: res.data,
60
+ });
61
+ }
62
+ return undefined;
63
+ }
64
+ }
65
+ //# sourceMappingURL=schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAuB,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,SAAS;IACZ,IAAI,CAAO;IAEnB,YAAY,OAAa,IAAI,YAAY,EAAE,CAAC,IAAI;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YAChD,IAAI,EAAE;gBACJ,EAAE;aACH;SACF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;gBAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,GAAG,CAAC,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,IAAY,EACZ,SAAiB,EACjB,cAAsB,EACtB,EACE,cAAc,GAAG,EAAE,EACnB,WAAW,GAAG,EAAE,EAChB,WAAW,GAAG,EAAE,MAOd,EAAE;QAEN,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YAChD,IAAI,EAAE;gBACJ,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,SAAS;gBACpB,cAAc,EAAE,cAAc;gBAC9B,YAAY,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC5D,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;gBAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,GAAG,CAAC,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YAChD,IAAI,EAAE;gBACJ,EAAE;aACH;SACF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;gBAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,GAAG,CAAC,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}