@resonatehq/sdk 0.9.6 → 0.10.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 (234) 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} +65 -40
  14. package/dist/context.d.ts.map +1 -0
  15. package/dist/{src/context.js → context.js} +131 -153
  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 +258 -0
  24. package/dist/coroutine.js.map +1 -0
  25. package/dist/{src/decorator.d.ts → decorator.d.ts} +8 -8
  26. package/dist/decorator.d.ts.map +1 -0
  27. package/dist/decorator.js +149 -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 +21 -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 +82 -0
  50. package/dist/network/http.d.ts.map +1 -0
  51. package/dist/network/http.js +339 -0
  52. package/dist/network/http.js.map +1 -0
  53. package/dist/network/local.d.ts +179 -0
  54. package/dist/network/local.d.ts.map +1 -0
  55. package/dist/network/local.js +1232 -0
  56. package/dist/network/local.js.map +1 -0
  57. package/dist/network/network.d.ts +16 -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 +1279 -0
  62. package/dist/network/types.d.ts.map +1 -0
  63. package/dist/network/types.js +919 -0
  64. package/dist/network/types.js.map +1 -0
  65. package/dist/{src/options.d.ts → options.d.ts} +10 -4
  66. package/dist/options.d.ts.map +1 -0
  67. package/dist/options.js +32 -0
  68. package/dist/options.js.map +1 -0
  69. package/dist/promises.d.ts +41 -0
  70. package/dist/promises.d.ts.map +1 -0
  71. package/dist/promises.js +113 -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 +488 -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/{src/util.d.ts → util.d.ts} +10 -6
  97. package/dist/util.d.ts.map +1 -0
  98. package/dist/util.js +156 -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.map +0 -1
  230. package/dist/src/util.js +0 -120
  231. package/dist/src/util.js.map +0 -1
  232. package/dist/tsconfig.build.tsbuildinfo +0 -1
  233. /package/dist/{src/clock.d.ts → clock.d.ts} +0 -0
  234. /package/dist/{src/retries.d.ts → retries.d.ts} +0 -0
@@ -1,341 +0,0 @@
1
- import { type Encryptor } from "./encryptor";
2
- import type { MessageSource, Network } from "./network/network";
3
- import { type Options } from "./options";
4
- import { Promises } from "./promises";
5
- import { Schedules } from "./schedules";
6
- import { type Tracer } from "./tracer";
7
- import type { Func, ParamsWithOptions, Return } from "./types";
8
- export interface ResonateHandle<T> {
9
- id: string;
10
- result(): Promise<T>;
11
- done(): Promise<boolean>;
12
- }
13
- export interface ResonateFunc<F extends Func> {
14
- run: (id: string, ...args: ParamsWithOptions<F>) => Promise<Return<F>>;
15
- rpc: (id: string, ...args: ParamsWithOptions<F>) => Promise<Return<F>>;
16
- beginRun: (id: string, ...args: ParamsWithOptions<F>) => Promise<ResonateHandle<Return<F>>>;
17
- beginRpc: (id: string, ...args: ParamsWithOptions<F>) => Promise<ResonateHandle<Return<F>>>;
18
- options: (opts?: Partial<Options>) => Options;
19
- }
20
- export interface ResonateSchedule {
21
- delete(): Promise<void>;
22
- }
23
- export declare class Resonate {
24
- private clock;
25
- private pid;
26
- private ttl;
27
- private idPrefix;
28
- private unicast;
29
- private anycast;
30
- private match;
31
- private inner;
32
- private network;
33
- private encoder;
34
- private encryptor;
35
- private verbose;
36
- private messageSource;
37
- private tracer;
38
- private handler;
39
- private registry;
40
- private heartbeat;
41
- private dependencies;
42
- private optsBuilder;
43
- private subscriptions;
44
- private subscribeEvery;
45
- private intervalId;
46
- readonly promises: Promises;
47
- readonly schedules: Schedules;
48
- constructor({ url, group, pid, ttl, auth, token, verbose, encryptor, tracer, transport, prefix, }?: {
49
- url?: string;
50
- group?: string;
51
- pid?: string;
52
- ttl?: number;
53
- auth?: {
54
- username: string;
55
- password: string;
56
- };
57
- token?: string;
58
- verbose?: boolean;
59
- encryptor?: Encryptor;
60
- tracer?: Tracer;
61
- transport?: Network | (Network & MessageSource);
62
- prefix?: string;
63
- });
64
- /**
65
- * Initializes a Resonate client instance for local development.
66
- *
67
- * Creates and returns a Resonate client configured for **local-only execution**
68
- * with zero external dependencies. All state is stored in local memory — no
69
- * network or external persistence is required. This mode is ideal for rapid
70
- * testing, debugging, and experimentation before connecting to a Resonate server.
71
- *
72
- * The client runs with a `"default"` worker group, a `"default"` process ID,
73
- * and an effectively infinite TTL (`Number.MAX_SAFE_INTEGER`) for tasks.
74
- *
75
- * @returns A {@link Resonate} client instance configured for local development.
76
- *
77
- * @example
78
- * ```ts
79
- * const resonate = Resonate.local();
80
- * resonate.register(foo);
81
- * const result = await resonate.run("foo.1", foo, { data: "test" });
82
- * console.log(result);
83
- * ```
84
- */
85
- static local({ verbose, encryptor, tracer, }?: {
86
- verbose?: boolean;
87
- encryptor?: Encryptor;
88
- tracer?: Tracer;
89
- }): Resonate;
90
- /**
91
- * Initializes a Resonate client instance with remote configuration.
92
- *
93
- * Creates and returns a Resonate client that connects to a **Resonate Server**
94
- * and optional remote message sources. This configuration enables distributed,
95
- * durable workers to cooperate and execute functions via **durable RPCs**.
96
- *
97
- * By default, the client connects to a Resonate Server running locally
98
- * (`http://localhost:8001`) and joins the `"default"` worker group.
99
- *
100
- * The client is identified by a unique process ID (`pid`) and maintains
101
- * claimed task leases for the duration specified by `ttl`.
102
- *
103
- * @param options - Configuration options for the remote client.
104
- * @param options.url - The base URL of the remote Resonate Server. Defaults to `"http://localhost:8001"`.
105
- * @param options.group - The worker group name. Defaults to `"default"`.
106
- * @param options.pid - Optional process identifier for the client. Defaults to a randomly generated UUID.
107
- * @param options.ttl - Time-to-live (in seconds) for claimed tasks. Defaults to `1 * util.MIN`.
108
- * @param options.auth - Optional authentication credentials for connecting to the remote server.
109
- * @param options.token - Optional bearer token for authentication. Takes priority over basic auth.
110
- *
111
- * @returns A {@link Resonate} client instance configured for remote operation.
112
- *
113
- * @example
114
- * ```ts
115
- * const resonate = Resonate.remote({
116
- * url: "https://resonate.example.com",
117
- * group: "analytics",
118
- * ttl: 30,
119
- * token: "bearer-token-here",
120
- * });
121
- *
122
- * const result = await resonate.run("task-42", "processData", { input: "dataset.csv" });
123
- * console.log(result);
124
- * ```
125
- */
126
- static remote({ url, group, pid, ttl, auth, token, verbose, encryptor, tracer, prefix, }?: {
127
- url?: string;
128
- group?: string;
129
- pid?: string;
130
- ttl?: number;
131
- auth?: {
132
- username: string;
133
- password: string;
134
- };
135
- token?: string;
136
- verbose?: boolean;
137
- encryptor?: Encryptor;
138
- tracer?: Tracer;
139
- prefix?: string;
140
- }): Resonate;
141
- /**
142
- * Registers a function with Resonate for execution and version control.
143
- *
144
- * This method makes a function available for distributed or top-level execution
145
- * under a specific name and version.
146
- *
147
- * Providing explicit `name` or `version` options allows precise control over
148
- * function identification and versioning, enabling repeatable, distributed
149
- * invocation and backward-compatible deployments.
150
- *
151
- * @param nameOrFunc - Either the function name (string) or the function itself.
152
- * When passing a name, provide the function and optional options as additional parameters.
153
- * @param funcOrOptions - The function to register, or an optional configuration object
154
- * with versioning information when the first argument is a name.
155
- * @param maybeOptions - Optional configuration object when both name and function are provided.
156
- * Supports a `version` field to specify the registered function version.
157
- *
158
- * @returns A {@link ResonateFunc} wrapper for the registered function.
159
- * When used as a decorator, returns a decorator that registers the target function
160
- * upon definition.
161
- *
162
- * @example
163
- * ```ts
164
- * function greet(ctx: Context, name: string): string {
165
- * return `Hello, ${name}!`;
166
- * }
167
- *
168
- * resonate.register("greet_user", greet, { version: 2 });
169
- * ```
170
- */
171
- register<F extends Func>(name: string, func: F, options?: {
172
- version?: number;
173
- }): ResonateFunc<F>;
174
- register<F extends Func>(func: F, options?: {
175
- version?: number;
176
- }): ResonateFunc<F>;
177
- /**
178
- * Runs a registered function with Resonate and waits for the result.
179
- *
180
- * This method executes the specified function under a **durable promise**
181
- * identified by the provided `id`. If a promise with the same `id` already exists,
182
- * Resonate subscribes to its result or returns it immediately if it has already completed.
183
- *
184
- * Duplicate executions for the same `id` are automatically prevented, ensuring
185
- * idempotent and consistent behavior across distributed runs.
186
- *
187
- * This is a **blocking operation** — execution will not continue until the
188
- * function result is available.
189
- *
190
- * @param id - The unique identifier of the durable promise. Reusing an ID ensures
191
- * idempotent execution.
192
- * @param funcOrName - Either the registered function reference or its string name
193
- * to execute.
194
- * @param args - Positional arguments passed to the function.
195
- *
196
- * @returns A promise resolving to the final result returned from the function execution.
197
- *
198
- * @example
199
- * ```ts
200
- * const result = await client.run("job-123", "processData", { input: "records.csv" });
201
- * console.log("Result:", result);
202
- * ```
203
- */
204
- run<F extends Func>(id: string, func: F, ...args: ParamsWithOptions<F>): Promise<Return<F>>;
205
- run<T>(id: string, name: string, ...args: any[]): Promise<T>;
206
- run<T>(id: string, funcOrName: Func | string, ...args: any[]): Promise<T>;
207
- /**
208
- * Runs a registered function asynchronously with Resonate.
209
- *
210
- * This method schedules the specified function for execution under a **durable promise**
211
- * identified by the provided `id`. If a promise with the same `id` already exists,
212
- * Resonate subscribes to its result or returns it immediately if it has already completed.
213
- *
214
- * Unlike {@link run}, this method is **non-blocking** and immediately returns a
215
- * {@link ResonateHandle} that can be awaited or queried later to retrieve the final result
216
- * once execution completes.
217
- *
218
- * Duplicate executions for the same `id` are automatically prevented, ensuring idempotent
219
- * and consistent behavior across distributed runs.
220
- *
221
- * @param id - The unique identifier of the durable promise. Reusing an ID ensures
222
- * idempotent execution.
223
- * @param funcOrName - Either the registered function reference or its string name
224
- * to execute.
225
- * @param argsWithOpts - Positional arguments and optional configuration parameters
226
- * passed to the function.
227
- *
228
- * @returns A {@link ResonateHandle} representing the asynchronous execution.
229
- * The handle can be awaited or inspected for status and results.
230
- *
231
- * @example
232
- * ```ts
233
- * const handle = await client.beginRun("run-001", "generateReport", { period: "Q3" });
234
- * const result = await handle.getResult();
235
- * console.log(result);
236
- * ```
237
- */
238
- beginRun<F extends Func>(id: string, func: F, ...args: ParamsWithOptions<F>): Promise<ResonateHandle<Return<F>>>;
239
- beginRun<T>(id: string, func: string, ...args: any[]): Promise<ResonateHandle<T>>;
240
- beginRun(id: string, funcOrName: Func | string, ...args: any[]): Promise<ResonateHandle<any>>;
241
- /**
242
- * Executes a registered function remotely with Resonate and waits for the result.
243
- *
244
- * This method runs the specified function on a remote worker or process under a
245
- * **durable promise** identified by the provided `id`. If a promise with the same
246
- * `id` already exists, Resonate subscribes to its result or returns it immediately
247
- * if it has already completed.
248
- *
249
- * Unlike {@link beginRpc}, this method is **blocking** — it waits for the remote
250
- * function to complete and returns the final result before continuing execution.
251
- *
252
- * Duplicate executions for the same `id` are automatically prevented, ensuring
253
- * idempotent and consistent behavior across distributed runs.
254
- *
255
- * @param id - The unique identifier of the durable promise. Reusing an ID ensures
256
- * idempotent remote execution.
257
- * @param funcOrName - Either the registered function reference or its string name
258
- * to execute remotely.
259
- * @param args - Positional arguments passed to the remote function.
260
- *
261
- * @returns A promise resolving to the final result returned from the remote
262
- * function execution.
263
- *
264
- * @example
265
- * ```ts
266
- * const result = await client.rpc("job-42", "analyzeData", { file: "input.csv" });
267
- * console.log("Remote result:", result);
268
- * ```
269
- */
270
- rpc<F extends Func>(id: string, func: F, ...args: ParamsWithOptions<F>): Promise<Return<F>>;
271
- rpc<T>(id: string, name: string, ...args: any[]): Promise<T>;
272
- rpc<T>(id: string, funcOrName: Func | string, ...args: any[]): Promise<T>;
273
- /**
274
- * Initiates a remote procedure call (RPC) with Resonate and returns a handle to the execution.
275
- *
276
- * This method schedules a registered function for **remote execution** under a durable promise
277
- * identified by the provided `id`. The function runs on a remote worker or process as part of
278
- * Resonate's distributed execution environment.
279
- *
280
- * Unlike {@link rpc}, this method is **non-blocking** and immediately returns a
281
- * {@link ResonateHandle} that can be awaited or queried later to retrieve the final result once
282
- * remote execution completes.
283
- *
284
- * If a durable promise with the same `id` already exists, Resonate subscribes to its result or
285
- * returns it immediately if it has already completed. Duplicate executions for the same `id`
286
- * are automatically prevented, ensuring idempotent and consistent behavior.
287
- *
288
- * @param id - The unique identifier of the durable promise. Reusing an ID ensures
289
- * idempotent remote execution.
290
- * @param funcOrName - Either the registered function reference or its string name to execute remotely.
291
- * @param argsWithOpts - Positional arguments and optional configuration parameters
292
- * passed to the remote function.
293
- *
294
- * @returns A {@link ResonateHandle} representing the asynchronous remote execution.
295
- * The handle can be awaited or inspected for completion and results.
296
- *
297
- * @example
298
- * ```ts
299
- * const handle = await client.beginRpc("task-123", "processData", { input: "hello" });
300
- * const result = await handle.getResult();
301
- * console.log(result);
302
- * ```
303
- */
304
- beginRpc<F extends Func>(id: string, func: F, ...args: ParamsWithOptions<F>): Promise<ResonateHandle<Return<F>>>;
305
- beginRpc<T>(id: string, func: string, ...args: any[]): Promise<ResonateHandle<T>>;
306
- beginRpc(id: string, funcOrName: Func | string, ...args: any[]): Promise<ResonateHandle<any>>;
307
- schedule<F extends Func>(name: string, cron: string, func: F, ...args: ParamsWithOptions<F>): Promise<ResonateSchedule>;
308
- schedule(name: string, cron: string, func: string, ...args: any[]): Promise<ResonateSchedule>;
309
- /**
310
- * Retrieves or subscribes to an existing execution by its unique ID.
311
- *
312
- * This method attaches to an existing **durable promise** identified by `id`.
313
- * If the associated execution is still in progress, it returns a {@link ResonateHandle}
314
- * that can be awaited or observed until completion. If the execution has already
315
- * finished, the handle is immediately resolved with the stored result.
316
- *
317
- * Notes:
318
- * - A durable promise with the given `id` must already exist.
319
- * - This operation is **non-blocking**; awaiting the returned handle will block
320
- * only if the execution is still running.
321
- *
322
- * @param id - Unique identifier of the target execution or durable promise.
323
- *
324
- * @returns A {@link ResonateHandle} representing the existing execution.
325
- * The handle can be awaited or queried to retrieve the final result.
326
- */
327
- get<T = any>(id: string): Promise<ResonateHandle<T>>;
328
- options(opts?: Partial<Pick<Options, "tags" | "target" | "timeout" | "version" | "retryPolicy">>): Options;
329
- private getArgsAndOpts;
330
- setDependency(name: string, obj: any): void;
331
- stop(): void;
332
- private createPromiseAndTask;
333
- private createPromise;
334
- private createSubscription;
335
- private readPromise;
336
- private createHandle;
337
- private onMessage;
338
- private subscribe;
339
- private notify;
340
- }
341
- //# sourceMappingURL=resonate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../../src/resonate.ts"],"names":[],"mappings":"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"}