@resonatehq/sdk 0.5.5 → 0.6.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 (54) hide show
  1. package/dist/core/errors.d.ts +4 -2
  2. package/dist/core/errors.d.ts.map +1 -1
  3. package/dist/core/errors.js +5 -2
  4. package/dist/core/errors.js.map +1 -1
  5. package/dist/core/options.d.ts +12 -5
  6. package/dist/core/options.d.ts.map +1 -1
  7. package/dist/core/options.js +11 -1
  8. package/dist/core/options.js.map +1 -1
  9. package/dist/core/promises/promises.d.ts.map +1 -1
  10. package/dist/core/retry.d.ts +1 -0
  11. package/dist/core/retry.d.ts.map +1 -1
  12. package/dist/core/retry.js +23 -1
  13. package/dist/core/retry.js.map +1 -1
  14. package/dist/core/schedules/schedules.d.ts +1 -1
  15. package/dist/core/schedules/schedules.d.ts.map +1 -1
  16. package/dist/core/schedules/schedules.js.map +1 -1
  17. package/dist/core/stores/local.js +2 -2
  18. package/dist/core/stores/local.js.map +1 -1
  19. package/dist/core/stores/remote.d.ts.map +1 -1
  20. package/dist/core/stores/remote.js +14 -1
  21. package/dist/core/stores/remote.js.map +1 -1
  22. package/dist/core/utils.d.ts +55 -0
  23. package/dist/core/utils.d.ts.map +1 -1
  24. package/dist/core/utils.js +67 -1
  25. package/dist/core/utils.js.map +1 -1
  26. package/dist/index.d.ts +0 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -5
  29. package/dist/index.js.map +1 -1
  30. package/dist/resonate.d.ts +212 -47
  31. package/dist/resonate.d.ts.map +1 -1
  32. package/dist/resonate.js +591 -168
  33. package/dist/resonate.js.map +1 -1
  34. package/package.json +3 -3
  35. package/dist/async.d.ts +0 -219
  36. package/dist/async.d.ts.map +0 -1
  37. package/dist/async.js +0 -403
  38. package/dist/async.js.map +0 -1
  39. package/dist/core/calls.d.ts +0 -23
  40. package/dist/core/calls.d.ts.map +0 -1
  41. package/dist/core/calls.js +0 -13
  42. package/dist/core/calls.js.map +0 -1
  43. package/dist/core/execution.d.ts +0 -37
  44. package/dist/core/execution.d.ts.map +0 -1
  45. package/dist/core/execution.js +0 -215
  46. package/dist/core/execution.js.map +0 -1
  47. package/dist/core/future.d.ts +0 -56
  48. package/dist/core/future.d.ts.map +0 -1
  49. package/dist/core/future.js +0 -107
  50. package/dist/core/future.js.map +0 -1
  51. package/dist/core/invocation.d.ts +0 -41
  52. package/dist/core/invocation.d.ts.map +0 -1
  53. package/dist/core/invocation.js +0 -81
  54. package/dist/core/invocation.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,eAAe,CAAC;AAG9B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AAGxD,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAG7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,cAAc,eAAe,CAAC;AAG9B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AAGxD,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAG7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -27,14 +27,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.utils = exports.schedules = exports.promises = void 0;
30
- // resonate
30
+ // invok
31
31
  __exportStar(require("./resonate"), exports);
32
- // async
33
- __exportStar(require("./async"), exports);
34
32
  // errors
35
33
  __exportStar(require("./core/errors"), exports);
36
- // futures
37
- __exportStar(require("./core/future"), exports);
38
34
  // options
39
35
  __exportStar(require("./core/options"), exports);
40
36
  // promises
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,6CAA2B;AAE3B,QAAQ;AACR,0CAAwB;AAExB,SAAS;AACT,gDAA8B;AAE9B,UAAU;AACV,gDAA8B;AAE9B,UAAU;AACV,iDAA+B;AAE/B,WAAW;AACX,qEAAqD;AAErD,YAAY;AACZ,wEAAwD;AAExD,iBAAiB;AACjB,+CAA6B;AAE7B,aAAa;AACb,iDAA+B;AAC/B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAE7B,kBAAkB;AAClB,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,yDAAuC;AACvC,8DAA4C;AAC5C,sDAAoC;AACpC,uDAAqC;AAErC,QAAQ;AACR,sDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,6CAA2B;AAE3B,SAAS;AACT,gDAA8B;AAE9B,UAAU;AACV,iDAA+B;AAE/B,WAAW;AACX,qEAAqD;AAErD,YAAY;AACZ,wEAAwD;AAExD,iBAAiB;AACjB,+CAA6B;AAE7B,aAAa;AACb,iDAA+B;AAC/B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAE7B,kBAAkB;AAClB,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,yDAAuC;AACvC,8DAA4C;AAC5C,sDAAoC;AACpC,uDAAqC;AAErC,QAAQ;AACR,sDAAsC"}
@@ -1,58 +1,212 @@
1
- import { TFC } from "./core/calls";
2
- import { IEncoder } from "./core/encoder";
3
- import { ResonatePromise } from "./core/future";
4
1
  import { ILogger } from "./core/logger";
5
- import { ResonateOptions, Options, PartialOptions } from "./core/options";
6
- import * as promises from "./core/promises/promises";
7
- import * as retryPolicy from "./core/retry";
2
+ import { PartialOptions, Options, InvocationOverrides, ResonateOptions } from "./core/options";
3
+ import * as durablePromises from "./core/promises/promises";
8
4
  import * as schedules from "./core/schedules/schedules";
9
- import { IStore } from "./core/store";
10
- type Func = (...args: any[]) => any;
11
- export declare abstract class ResonateBase {
12
- private readonly functions;
5
+ import { ILockStore, IPromiseStore, IStore } from "./core/store";
6
+ type InvocationData = {
7
+ id: string;
8
+ eid: string;
9
+ name: string;
10
+ opts: Options;
11
+ };
12
+ export type Func = (ctx: Context, ...args: any[]) => any;
13
+ export type Params<F> = F extends (ctx: any, ...args: infer P) => any ? P : never;
14
+ export type Return<F> = F extends (...args: any[]) => infer T ? Awaited<T> : never;
15
+ export declare class Resonate {
16
+ #private;
17
+ readonly store: IStore;
18
+ readonly logger: ILogger;
19
+ readonly defaultInvocationOptions: Options;
13
20
  readonly promises: ResonatePromises;
14
21
  readonly schedules: ResonateSchedules;
15
- readonly pid: string;
16
- readonly poll: number;
17
- readonly timeout: number;
18
- readonly tags: Record<string, string>;
19
- readonly encoder: IEncoder<unknown, string | undefined>;
20
- readonly logger: ILogger;
21
- readonly retry: retryPolicy.RetryPolicy;
22
- readonly store: IStore;
23
- private interval;
24
22
  constructor({ auth, encoder, heartbeat, // 15s
25
- logger, pid, poll, // 5s
26
- retry, store, tags, timeout, // 10s
23
+ logger, pid, pollFrequency, // 5s
24
+ retryPolicy, store, tags, timeout, // 10s
27
25
  url, }?: Partial<ResonateOptions>);
28
- protected abstract execute(name: string, id: string, func: Func, args: any[], opts: Options, durablePromise?: promises.DurablePromise<any>): ResonatePromise<any>;
29
- register(name: string, func: Func, opts?: Partial<Options>): (id: string, ...args: any) => ResonatePromise<any>;
26
+ get promisesStore(): IPromiseStore;
27
+ get locksStore(): ILockStore;
28
+ options(opts: Partial<Options>): PartialOptions;
29
+ registeredFunction(funcName: string, version: number): {
30
+ func: Func;
31
+ opts: Options;
32
+ };
33
+ register(name: string, func: Func, opts?: Partial<Options>): void;
30
34
  registerModule(module: Record<string, Func>, opts?: Partial<Options>): void;
31
- run<T>(tfc: TFC): ResonatePromise<T>;
32
- run<T>(name: string, id: string, ...argsWithOpts: [...any, PartialOptions?]): ResonatePromise<T>;
33
- private _run;
34
- registeredOptions(name: string, version: number): Options;
35
- schedule(name: string, cron: string, func: Func | string, ...argsWithOpts: [...any, PartialOptions?]): Promise<schedules.Schedule>;
36
- /**
37
- * Construct options.
38
- *
39
- * @param opts A partial {@link Options} object.
40
- * @returns PartialOptions.
41
- */
42
- options(opts?: Partial<Options>): PartialOptions;
43
35
  /**
44
36
  * Start the resonate service which continually checks for pending promises
45
37
  * every `delay` ms.
46
38
  *
47
39
  * @param delay Frequency in ms to check for pending promises.
48
40
  */
49
- start(delay?: number): void;
41
+ start(delay?: number): Promise<void>;
50
42
  /**
51
43
  * Stop the resonate service.
52
44
  */
53
- stop(): void;
54
- defaults({ durable, eidFn, encoder, idempotencyKeyFn, lock, poll, retry, tags, timeout, version, }?: Partial<Options>): Options;
55
- private _start;
45
+ stop(): Promise<void>;
46
+ run<R>(name: string, id: string, ...argsWithOverrides: [...any, InvocationOverrides?]): Promise<R>;
47
+ invokeLocal<R>(name: string, id: string, ...argsWithOverrides: [...any, InvocationOverrides?]): Promise<InvocationHandle<R>>;
48
+ /**
49
+ * Schedule a resonate function.
50
+ *
51
+ * @param name The schedule name.
52
+ * @param cron The schedule cron expression.
53
+ * @param func The function to schedule.
54
+ * @param args The function arguments.
55
+ * @returns The schedule object.
56
+ */
57
+ schedule<F extends Func>(name: string, cron: string, func: F, ...args: [...Params<F>, PartialOptions?]): Promise<schedules.Schedule>;
58
+ /**
59
+ * Schedule a resonate function that is already registered.
60
+ *
61
+ * @param name The schedule name.
62
+ * @param cron The schedule cron expression.
63
+ * @param func The registered function name.
64
+ * @param args The function arguments.
65
+ * @returns The schedule object.
66
+ */
67
+ schedule(name: string, cron: string, func: string, ...args: [...any, PartialOptions?]): Promise<schedules.Schedule>;
68
+ withDefaultOpts(givenOpts?: Partial<Options>): Options;
69
+ }
70
+ export declare class Context {
71
+ #private;
72
+ childrenCount: number;
73
+ readonly invocationData: InvocationData;
74
+ parent: Context | undefined;
75
+ root: Context;
76
+ private constructor();
77
+ static createRootContext(resonate: Resonate, invocationData: InvocationData): Context;
78
+ static createChildrenContext(parentCtx: Context, invocationData: InvocationData): Context;
79
+ onRetry(): Promise<void>;
80
+ finalize(): Promise<void>;
81
+ abort(cause: any): void;
82
+ get aborted(): boolean;
83
+ get abortCause(): any;
84
+ /**
85
+ * Adds a finalizer function to be executed at the end of the current context.
86
+ * Finalizers are run in reverse order of their definition (last-in, first-out).
87
+ *
88
+ * @param fn - An asynchronous function to be executed as a finalizer.
89
+ * It should return a Promise that resolves to void.
90
+ *
91
+ * @remarks
92
+ * Finalizer functions must be non fallible.
93
+ */
94
+ addFinalizer(fn: () => Promise<void>): void;
95
+ /**
96
+ * Sets a named resource for the current context and optionally adds a finalizer.
97
+ *
98
+ * @param name - A unique string identifier for the resource.
99
+ * @param resource - The resource to be stored. Can be of any type.
100
+ * @param finalizer - Optional. An asynchronous function to be executed when the context ends.
101
+ * Finalizers are run in reverse order of their addition to the context and
102
+ * must not fail.
103
+ * @throws {Error} Throws an error if a resource with the same name already exists in the current context.
104
+ *
105
+ * This method associates a resource with a unique name in the current context.
106
+ * If a finalizer is provided, it will be executed when the context ends.
107
+ * Finalizers are useful for cleanup operations, such as closing connections or freeing resources.
108
+ */
109
+ setResource(name: string, resource: any, finalizer?: () => Promise<void>): void;
110
+ /**
111
+ * Retrieves a resource by name from the current context or its parent contexts.
112
+ *
113
+ * @template R - The expected type of the resource.
114
+ * @param name - The unique string identifier of the resource to retrieve.
115
+ * @returns The resource of type R if found, or undefined if not found.
116
+ *
117
+ * This method searches for a resource in the following order:
118
+ * 1. In the current context.
119
+ * 2. If not found, it recursively searches in parent contexts.
120
+ * 3. Returns undefined if the resource is not found in any context.
121
+ *
122
+ * @remarks
123
+ * The method uses type assertion to cast the resource to type R.
124
+ * Ensure that the type parameter R matches the actual type of the stored resource
125
+ * to avoid runtime type errors.
126
+ */
127
+ getResource<R>(name: string): R | undefined;
128
+ options(opts: Partial<Options>): PartialOptions;
129
+ /**
130
+ * Invoke a remote function.
131
+ *
132
+ * @template R The return type of the remote function.
133
+ * @param func The id of the remote function.
134
+ * @param args The arguments to pass to the remote function.
135
+ * @param opts Optional {@link options}.
136
+ * @returns A promise that resolves to the resolved value of the remote function.
137
+ */
138
+ run<R>(funcId: string, args: any, opts?: PartialOptions): Promise<R>;
139
+ /**
140
+ * Invoke a function.
141
+ *
142
+ * @template F The type of the function.
143
+ * @param func The function to invoke.
144
+ * @param args The function arguments, optionally followed by {@link options}.
145
+ * @returns A promise that resolves to the return value of the function.
146
+ */
147
+ run<F extends Func>(func: F, ...argsWithOpts: [...Params<F>, PartialOptions?]): Promise<Return<F>>;
148
+ invokeRemote<R>(funcId: string, ...argsWithOpts: [...any, PartialOptions?]): Promise<InvocationHandle<R>>;
149
+ invokeLocal<F extends Func, R>(func: F, ...argsWithOpts: [...Params<F>, PartialOptions?]): Promise<InvocationHandle<R>>;
150
+ /**
151
+ * Durable version of sleep.
152
+ * Sleep for the specified time (ms).
153
+ *
154
+ * @param ms Amount of time to sleep in milliseconds.
155
+ * @returns A Promise that resolves after the specified time has elapsed.
156
+ */
157
+ sleep(ms: number): Promise<void>;
158
+ /**
159
+ * Creates a Promise that is resolved with an array of results when all of the provided Promises
160
+ * resolve, or rejected when any Promise is rejected.
161
+ *
162
+ * @param values An array of Promises.
163
+ * @param opts Optional {@link options}.
164
+ * @returns A new ResonatePromise.
165
+ */
166
+ all<T extends readonly unknown[] | []>(values: T, opts?: Partial<Options>): Promise<{
167
+ -readonly [P in keyof T]: Awaited<T[P]>;
168
+ }>;
169
+ /**
170
+ * Creates a Promise that is fulfilled by the first given promise to be fulfilled, or rejected
171
+ * with an AggregateError.
172
+ *
173
+ * @param values An array of Promises.
174
+ * @param opts Optional {@link options}.
175
+ * @returns A new ResonatePromise.
176
+ */
177
+ any<T extends readonly unknown[] | []>(values: T, opts?: Partial<Options>): Promise<Awaited<Awaited<T[number]>>>;
178
+ /**
179
+ * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
180
+ * or rejected.
181
+ *
182
+ * @param values An array of Promises.
183
+ * @param opts Optional {@link options}.
184
+ * @returns A new ResonatePromise.
185
+ */
186
+ race<T extends readonly unknown[] | []>(values: T, opts?: Partial<Options>): Promise<Awaited<T[number]>>;
187
+ /**
188
+ * Creates a Promise that is resolved with an array of results when all of the provided Promises
189
+ * resolve or reject.
190
+ *
191
+ * @param values An array of Promises.
192
+ * @param opts Optional {@link options}.
193
+ * @returns A new Promise.
194
+ */
195
+ allSettled<T extends readonly unknown[] | []>(values: T, opts?: Partial<Options>): Promise<{
196
+ -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>;
197
+ }>;
198
+ /**
199
+ * Invoke a Resonate function in detached mode. Functions must first be registered with Resonate.
200
+ * a detached invocation will not be implecitly awaited at the end of the current context, instead
201
+ * it will be "supervised" as a top level invocation.
202
+ *
203
+ * @template R The return type of the function.
204
+ * @param id A unique id for the function invocation.
205
+ * @param name The function name.
206
+ * @param argsWithOverrides The function arguments and options overrides.
207
+ * @returns A Res.
208
+ */
209
+ detached<R>(name: string, id: string, ...argsWithOverrides: [...any, InvocationOverrides?]): Promise<InvocationHandle<R>>;
56
210
  }
57
211
  export interface ResonatePromises {
58
212
  /**
@@ -64,7 +218,7 @@ export interface ResonatePromises {
64
218
  * @param opts Additional options.
65
219
  * @returns A durable promise.
66
220
  */
67
- create<T>(id: string, timeout: number, opts?: Partial<promises.CreateOptions>): Promise<promises.DurablePromise<T>>;
221
+ create<T>(id: string, timeout: number, opts?: Partial<durablePromises.CreateOptions>): Promise<durablePromises.DurablePromise<T>>;
68
222
  /**
69
223
  * Resolve a durable promise.
70
224
  *
@@ -74,7 +228,7 @@ export interface ResonatePromises {
74
228
  * @param opts Additional options.
75
229
  * @returns A durable promise.
76
230
  */
77
- resolve<T>(id: string, value: T, opts?: Partial<promises.CompleteOptions>): Promise<promises.DurablePromise<T>>;
231
+ resolve<T>(id: string, value: T, opts?: Partial<durablePromises.CompleteOptions>): Promise<durablePromises.DurablePromise<T>>;
78
232
  /**
79
233
  * Reject a durable promise.
80
234
  *
@@ -84,7 +238,7 @@ export interface ResonatePromises {
84
238
  * @param opts Additional options.
85
239
  * @returns A durable promise.
86
240
  */
87
- reject<T>(id: string, error: any, opts?: Partial<promises.CompleteOptions>): Promise<promises.DurablePromise<T>>;
241
+ reject<T>(id: string, error: any, opts?: Partial<durablePromises.CompleteOptions>): Promise<durablePromises.DurablePromise<T>>;
88
242
  /**
89
243
  * Cancel a durable promise.
90
244
  *
@@ -94,7 +248,7 @@ export interface ResonatePromises {
94
248
  * @param opts Additional options.
95
249
  * @returns A durable promise.
96
250
  */
97
- cancel<T>(id: string, error: any, opts?: Partial<promises.CompleteOptions>): Promise<promises.DurablePromise<T>>;
251
+ cancel<T>(id: string, error: any, opts?: Partial<durablePromises.CompleteOptions>): Promise<durablePromises.DurablePromise<T>>;
98
252
  /**
99
253
  * Get a durable promise.
100
254
  *
@@ -102,17 +256,17 @@ export interface ResonatePromises {
102
256
  * @param id Id of the promise.
103
257
  * @returns A durable promise.
104
258
  */
105
- get<T>(id: string): Promise<promises.DurablePromise<T>>;
259
+ get<T>(id: string): Promise<durablePromises.DurablePromise<T>>;
106
260
  /**
107
261
  * Search durable promises.
108
262
  *
109
263
  * @param id Ids to match, can include wildcards.
110
264
  * @param state State to match.
111
265
  * @param tags Tags to match.
112
- * @param limit Maximum number of promises to return.
113
- * @returns A generator that yields durable promises.
266
+ * @param limit Maximum number of durablePromises to return.
267
+ * @returns A generator that yields durable durablePromises.
114
268
  */
115
- search(id: string, state?: string, tags?: Record<string, string>, limit?: number): AsyncGenerator<promises.DurablePromise<any>[]>;
269
+ search(id: string, state?: string, tags?: Record<string, string>, limit?: number): AsyncGenerator<durablePromises.DurablePromise<any>[]>;
116
270
  }
117
271
  export interface ResonateSchedules {
118
272
  /**
@@ -143,5 +297,16 @@ export interface ResonateSchedules {
143
297
  */
144
298
  search(id: string, tags: Record<string, string> | undefined, limit?: number): AsyncGenerator<schedules.Schedule[], void>;
145
299
  }
300
+ export declare class InvocationHandle<R> {
301
+ readonly invocationId: string;
302
+ readonly resultPromise: Promise<R>;
303
+ constructor(invocationId: string, resultPromise: Promise<R>);
304
+ /**
305
+ * get the current state of the resultPromise.
306
+ *
307
+ */
308
+ state(): Promise<"pending" | "resolved" | "rejected">;
309
+ result(): Promise<R>;
310
+ }
146
311
  export {};
147
312
  //# sourceMappingURL=resonate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAW,MAAM,gBAAgB,CAAC;AACxG,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAUjE,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAGzD,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AAGlF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAInF,qBAAa,QAAQ;;IAInB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBAE1B,EACV,IAAgB,EAChB,OAA2B,EAC3B,SAAiB,EAAE,MAAM;IACzB,MAAqB,EACrB,GAAsB,EACtB,aAAoB,EAAE,KAAK;IAC3B,WAAyC,EACzC,KAAiB,EACjB,IAAS,EACT,OAAe,EAAE,MAAM;IACvB,GAAe,GAChB,GAAE,OAAO,CAAC,eAAe,CAAM;IAwEhC,IAAI,aAAa,kBAEhB;IAED,IAAI,UAAU,eAEb;IAED,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,cAAc;IAI/C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE;IAQpF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,IAAI;IA+BrE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM;IAMxE;;;;;OAKG;IACG,KAAK,CAAC,KAAK,GAAE,MAAa;IAMhC;;OAEG;IACG,IAAI;IAiDJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC,GAAG,GAAG,EAAE,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlG,WAAW,CAAC,CAAC,EACjB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,GAAG,iBAAiB,EAAE,CAAC,GAAG,GAAG,EAAE,mBAAmB,CAAC,CAAC,GACnD,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAsE/B;;;;;;;;OAQG;IACG,QAAQ,CAAC,CAAC,SAAS,IAAI,EAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GACvC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;IAE9B;;;;;;;;OAQG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC,GACjC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;IAoC9B,eAAe,CAAC,SAAS,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO;CAS3D;AAED,qBAAa,OAAO;;IAQlB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IAEd,OAAO;IAYP,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO;IAIrF,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO;IAInF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,QAAQ;IAed,KAAK,CAAC,KAAK,EAAE,GAAG;IAOhB,IAAI,OAAO,YAEV;IAED,IAAI,UAAU,QAEb;IAED;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAIpC;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAW/E;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAS3C,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,cAAc;IAI/C;;;;;;;;OAQG;IACG,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAE1E;;;;;;;OAOG;IACG,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAelG,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAqEzG,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,EACjC,IAAI,EAAE,CAAC,EACP,GAAG,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAC/C,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAuE/B;;;;;;OAMG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC;;;;;;;OAOG;IACH,GAAG,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EACnC,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,GAC1B,OAAO,CAAC;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAevD;;;;;;;OAOG;IACH,GAAG,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAepH;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAe5G;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAC1C,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,GAC1B,OAAO,CAAC;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAe7E;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,CAAC,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,GAAG,iBAAiB,EAAE,CAAC,GAAG,GAAG,EAAE,mBAAmB,CAAC,CAAC,GACnD,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAGhC;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EACN,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,GAC5C,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,EACP,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,CAAC,EACR,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,GAC9C,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EACN,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,GAAG,EACV,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,GAC9C,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EACN,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,GAAG,EACV,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,GAC9C,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D;;;;;;;;OAQG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAChC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE7C;;;;;;;OAOG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACxC,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;CAC/C;AAED,qBAAa,gBAAgB,CAAC,CAAC;IAE3B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;gBADzB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAGpC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAIrD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;CAG3B"}