@resonatehq/sdk 0.5.3 → 0.6.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 (80) hide show
  1. package/dist/core/encoders/json.d.ts.map +1 -1
  2. package/dist/core/encoders/json.js +12 -0
  3. package/dist/core/encoders/json.js.map +1 -1
  4. package/dist/core/errors.d.ts +4 -2
  5. package/dist/core/errors.d.ts.map +1 -1
  6. package/dist/core/errors.js +5 -2
  7. package/dist/core/errors.js.map +1 -1
  8. package/dist/core/options.d.ts +20 -11
  9. package/dist/core/options.d.ts.map +1 -1
  10. package/dist/core/options.js +11 -1
  11. package/dist/core/options.js.map +1 -1
  12. package/dist/core/promises/promises.d.ts +2 -2
  13. package/dist/core/promises/promises.d.ts.map +1 -1
  14. package/dist/core/promises/promises.js +2 -1
  15. package/dist/core/promises/promises.js.map +1 -1
  16. package/dist/core/promises/types.d.ts +10 -83
  17. package/dist/core/promises/types.d.ts.map +1 -1
  18. package/dist/core/promises/types.js +10 -10
  19. package/dist/core/promises/types.js.map +1 -1
  20. package/dist/core/retry.d.ts +36 -26
  21. package/dist/core/retry.d.ts.map +1 -1
  22. package/dist/core/retry.js +130 -14
  23. package/dist/core/retry.js.map +1 -1
  24. package/dist/core/schedules/schedules.d.ts +1 -1
  25. package/dist/core/schedules/schedules.d.ts.map +1 -1
  26. package/dist/core/schedules/schedules.js.map +1 -1
  27. package/dist/core/storages/memory.d.ts.map +1 -1
  28. package/dist/core/storages/memory.js +2 -0
  29. package/dist/core/storages/memory.js.map +1 -1
  30. package/dist/core/storages/withTimeout.d.ts +6 -6
  31. package/dist/core/storages/withTimeout.d.ts.map +1 -1
  32. package/dist/core/storages/withTimeout.js +2 -13
  33. package/dist/core/storages/withTimeout.js.map +1 -1
  34. package/dist/core/store.d.ts +7 -7
  35. package/dist/core/store.d.ts.map +1 -1
  36. package/dist/core/stores/local.d.ts +9 -9
  37. package/dist/core/stores/local.d.ts.map +1 -1
  38. package/dist/core/stores/local.js +2 -2
  39. package/dist/core/stores/local.js.map +1 -1
  40. package/dist/core/stores/remote.d.ts +7 -7
  41. package/dist/core/stores/remote.d.ts.map +1 -1
  42. package/dist/core/stores/remote.js +29 -7
  43. package/dist/core/stores/remote.js.map +1 -1
  44. package/dist/core/utils.d.ts +82 -0
  45. package/dist/core/utils.d.ts.map +1 -1
  46. package/dist/core/utils.js +103 -1
  47. package/dist/core/utils.js.map +1 -1
  48. package/dist/index.d.ts +1 -6
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4 -11
  51. package/dist/index.js.map +1 -1
  52. package/dist/resonate.d.ts +163 -49
  53. package/dist/resonate.d.ts.map +1 -1
  54. package/dist/resonate.js +626 -146
  55. package/dist/resonate.js.map +1 -1
  56. package/package.json +1 -1
  57. package/dist/async.d.ts +0 -201
  58. package/dist/async.d.ts.map +0 -1
  59. package/dist/async.js +0 -331
  60. package/dist/async.js.map +0 -1
  61. package/dist/core/execution.d.ts +0 -47
  62. package/dist/core/execution.d.ts.map +0 -1
  63. package/dist/core/execution.js +0 -310
  64. package/dist/core/execution.js.map +0 -1
  65. package/dist/core/future.d.ts +0 -56
  66. package/dist/core/future.d.ts.map +0 -1
  67. package/dist/core/future.js +0 -107
  68. package/dist/core/future.js.map +0 -1
  69. package/dist/core/invocation.d.ts +0 -44
  70. package/dist/core/invocation.d.ts.map +0 -1
  71. package/dist/core/invocation.js +0 -103
  72. package/dist/core/invocation.js.map +0 -1
  73. package/dist/core/retries/retry.d.ts +0 -20
  74. package/dist/core/retries/retry.d.ts.map +0 -1
  75. package/dist/core/retries/retry.js +0 -41
  76. package/dist/core/retries/retry.js.map +0 -1
  77. package/dist/generator.d.ts +0 -208
  78. package/dist/generator.d.ts.map +0 -1
  79. package/dist/generator.js +0 -427
  80. package/dist/generator.js.map +0 -1
@@ -1,47 +0,0 @@
1
- import { ResonateBase } from "../resonate";
2
- import { Future, ResonatePromise } from "./future";
3
- import { Invocation } from "./invocation";
4
- import { DurablePromise } from "./promises/promises";
5
- export declare abstract class Execution<T> {
6
- resonate: ResonateBase;
7
- invocation: Invocation<T>;
8
- private promise;
9
- /**
10
- * Represents an execution of a Resonate function invocation.
11
- *
12
- * @constructor
13
- * @param invocation - An invocation correpsonding to the Resonate function.
14
- */
15
- constructor(resonate: ResonateBase, invocation: Invocation<T>);
16
- execute(): ResonatePromise<T>;
17
- protected abstract fork(): Promise<Future<T>>;
18
- protected abstract join(future: Future<T>): Promise<T>;
19
- get killed(): boolean;
20
- kill(error: unknown): void;
21
- protected acquireLock(): Promise<boolean>;
22
- protected releaseLock(): Promise<void>;
23
- }
24
- export declare class OrdinaryExecution<T> extends Execution<T> {
25
- private func;
26
- private durablePromise?;
27
- constructor(resonate: ResonateBase, invocation: Invocation<T>, func: () => T, durablePromise?: DurablePromise<T> | undefined);
28
- protected fork(): Promise<Future<T>>;
29
- protected join(future: Future<T>): Promise<T>;
30
- private run;
31
- }
32
- export declare class DeferredExecution<T> extends Execution<T> {
33
- private durablePromise;
34
- protected fork(): Promise<Future<T>>;
35
- protected join(future: Future<T>): Promise<T>;
36
- }
37
- export declare class GeneratorExecution<T> extends Execution<T> {
38
- generator: Generator<any, T>;
39
- private durablePromise?;
40
- constructor(resonate: ResonateBase, invocation: Invocation<T>, generator: Generator<any, T>, durablePromise?: DurablePromise<T> | undefined);
41
- create(): Promise<void>;
42
- resolve(value: T): Promise<void>;
43
- reject(error: any): Promise<void>;
44
- protected fork(): Promise<Future<T>>;
45
- protected join(future: Future<T>): Promise<T>;
46
- }
47
- //# sourceMappingURL=execution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../lib/core/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD,8BAAsB,SAAS,CAAC,CAAC;IAUtB,QAAQ,EAAE,YAAY;IACtB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAVlC,OAAO,CAAC,OAAO,CAAmC;IAElD;;;;;OAKG;gBAEM,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAGlC,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC;IAoB7B,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAEtD,IAAI,MAAM,YAET;IAED,IAAI,CAAC,KAAK,EAAE,OAAO;cAQH,WAAW;cAaX,WAAW;CAO5B;AAED,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAIlD,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,cAAc,CAAC;gBAHvB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACjB,IAAI,EAAE,MAAM,CAAC,EACb,cAAc,CAAC,+BAAmB;cAK5B,IAAI;cAmCJ,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YA0DxB,GAAG;CAoBlB;AAED,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,cAAc,CAAkC;cAExC,IAAI;cA6BJ,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAcvC;AAED,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAI5C,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,cAAc,CAAC;gBAHvB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAC3B,cAAc,CAAC,+BAA+B;IAKlD,MAAM;IAwCN,OAAO,CAAC,KAAK,EAAE,CAAC;IAsBhB,MAAM,CAAC,KAAK,EAAE,GAAG;cAsBP,IAAI;cAIJ,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAGvC"}
@@ -1,310 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GeneratorExecution = exports.DeferredExecution = exports.OrdinaryExecution = exports.Execution = void 0;
4
- const errors_1 = require("./errors");
5
- const future_1 = require("./future");
6
- const promises_1 = require("./promises/promises");
7
- /////////////////////////////////////////////////////////////////////
8
- // Execution
9
- /////////////////////////////////////////////////////////////////////
10
- class Execution {
11
- resonate;
12
- invocation;
13
- promise = null;
14
- /**
15
- * Represents an execution of a Resonate function invocation.
16
- *
17
- * @constructor
18
- * @param invocation - An invocation correpsonding to the Resonate function.
19
- */
20
- constructor(resonate, invocation) {
21
- this.resonate = resonate;
22
- this.invocation = invocation;
23
- }
24
- execute() {
25
- if (this.promise) {
26
- return this.promise;
27
- }
28
- // each execution has a fork phase and a join phase
29
- // fork phase is responsible for spawning the invocation,
30
- // which in general means creating a durable promise (if necessary)
31
- const forkPromise = this.fork();
32
- // join phase is responsible for awaiting the invocation,
33
- // if the invocation is backed by a durable promise the durable
34
- // promise is completed before the invocation is completed
35
- const joinPromise = forkPromise.then((f) => this.join(f));
36
- this.promise = new future_1.ResonatePromise(this.invocation.id, forkPromise, joinPromise);
37
- return this.promise;
38
- }
39
- get killed() {
40
- return this.invocation.root.killed;
41
- }
42
- kill(error) {
43
- // this will mark the entire invocation tree as killed
44
- this.invocation.root.killed = true;
45
- // reject only the root invocation
46
- this.invocation.root.reject(new errors_1.ResonateError("Resonate function killed", errors_1.ErrorCodes.KILLED, error, true));
47
- }
48
- async acquireLock() {
49
- try {
50
- return await this.resonate.store.locks.tryAcquire(this.invocation.id, this.invocation.eid);
51
- }
52
- catch (e) {
53
- // if lock is already acquired, return false so we can poll
54
- if (e instanceof errors_1.ResonateError && e.code === errors_1.ErrorCodes.STORE_FORBIDDEN) {
55
- return false;
56
- }
57
- throw e;
58
- }
59
- }
60
- async releaseLock() {
61
- try {
62
- await this.resonate.store.locks.release(this.invocation.id, this.invocation.eid);
63
- }
64
- catch (e) {
65
- this.resonate.logger.warn("Failed to release lock", e);
66
- }
67
- }
68
- }
69
- exports.Execution = Execution;
70
- class OrdinaryExecution extends Execution {
71
- func;
72
- durablePromise;
73
- constructor(resonate, invocation, func, durablePromise) {
74
- super(resonate, invocation);
75
- this.func = func;
76
- this.durablePromise = durablePromise;
77
- }
78
- async fork() {
79
- if (this.invocation.opts.durable) {
80
- // if durable, create a durable promise
81
- try {
82
- this.durablePromise =
83
- this.durablePromise ??
84
- (await promises_1.DurablePromise.create(this.resonate.store.promises, this.invocation.opts.encoder, this.invocation.id, this.invocation.timeout, {
85
- idempotencyKey: this.invocation.idempotencyKey,
86
- headers: this.invocation.headers,
87
- param: this.invocation.param,
88
- tags: this.invocation.opts.tags,
89
- }));
90
- }
91
- catch (e) {
92
- // if an error occurs, kill the execution
93
- this.kill(e);
94
- }
95
- }
96
- if (this.durablePromise) {
97
- // override the invocation creation time
98
- this.invocation.createdOn = this.durablePromise.createdOn;
99
- // override the invocation timeout
100
- this.invocation.timeout = this.durablePromise.timeout;
101
- }
102
- return this.invocation.future;
103
- }
104
- async join(future) {
105
- try {
106
- // acquire lock if necessary
107
- while (this.invocation.opts.lock && !(await this.acquireLock())) {
108
- await new Promise((resolve) => setTimeout(resolve, this.invocation.opts.poll));
109
- }
110
- if (this.durablePromise) {
111
- if (this.durablePromise.pending) {
112
- // if durable and pending, invoke the function and resolve/reject the durable promise
113
- let value;
114
- let error;
115
- // we need to hold on to a boolean to determine if the function was successful,
116
- // we cannot rely on the value or error as these values could be undefined
117
- let success = true;
118
- try {
119
- value = await this.run();
120
- }
121
- catch (e) {
122
- error = e;
123
- success = false;
124
- }
125
- if (success) {
126
- await this.durablePromise.resolve(value, { idempotencyKey: this.invocation.idempotencyKey });
127
- }
128
- else {
129
- await this.durablePromise.reject(error, { idempotencyKey: this.invocation.idempotencyKey });
130
- }
131
- }
132
- // if durable resolve/reject the invocation
133
- if (this.durablePromise.resolved) {
134
- this.invocation.resolve(this.durablePromise.value());
135
- }
136
- else if (this.durablePromise.rejected || this.durablePromise.canceled || this.durablePromise.timedout) {
137
- this.invocation.reject(this.durablePromise.error());
138
- }
139
- }
140
- else {
141
- // if not durable, invoke the function and resolve/reject the invocation
142
- try {
143
- this.invocation.resolve(await this.run());
144
- }
145
- catch (e) {
146
- this.invocation.reject(e);
147
- }
148
- }
149
- // release lock if necessary
150
- if (this.invocation.opts.lock) {
151
- await this.releaseLock();
152
- }
153
- }
154
- catch (e) {
155
- // if an error occurs, kill the execution
156
- this.kill(e);
157
- }
158
- return await future.promise;
159
- }
160
- async run() {
161
- let error;
162
- // invoke the function according to the retry policy
163
- for (const delay of this.invocation.opts.retry.iterator(this.invocation)) {
164
- await new Promise((resolve) => setTimeout(resolve, delay));
165
- try {
166
- return await this.func();
167
- }
168
- catch (e) {
169
- error = e;
170
- // bump the attempt count
171
- this.invocation.attempt++;
172
- }
173
- }
174
- // if all attempts fail throw the last error
175
- throw error;
176
- }
177
- }
178
- exports.OrdinaryExecution = OrdinaryExecution;
179
- class DeferredExecution extends Execution {
180
- durablePromise = null;
181
- async fork() {
182
- try {
183
- // create a durable promise
184
- this.durablePromise = await promises_1.DurablePromise.create(this.resonate.store.promises, this.invocation.opts.encoder, this.invocation.id, this.invocation.timeout, {
185
- idempotencyKey: this.invocation.idempotencyKey,
186
- headers: this.invocation.headers,
187
- param: this.invocation.param,
188
- tags: this.invocation.opts.tags,
189
- });
190
- // override the invocation creation time
191
- this.invocation.createdOn = this.durablePromise.createdOn;
192
- // override the invocation timeout
193
- this.invocation.timeout = this.durablePromise.timeout;
194
- }
195
- catch (e) {
196
- // if an error occurs, kill the execution
197
- this.kill(e);
198
- }
199
- return this.invocation.future;
200
- }
201
- async join(future) {
202
- if (this.durablePromise) {
203
- // poll the completion of the durable promise
204
- await this.durablePromise.sync(Infinity, this.invocation.opts.poll);
205
- if (this.durablePromise.resolved) {
206
- this.invocation.resolve(this.durablePromise.value());
207
- }
208
- else {
209
- this.invocation.reject(this.durablePromise.error());
210
- }
211
- }
212
- return await future.promise;
213
- }
214
- }
215
- exports.DeferredExecution = DeferredExecution;
216
- class GeneratorExecution extends Execution {
217
- generator;
218
- durablePromise;
219
- constructor(resonate, invocation, generator, durablePromise) {
220
- super(resonate, invocation);
221
- this.generator = generator;
222
- this.durablePromise = durablePromise;
223
- }
224
- async create() {
225
- try {
226
- if (this.invocation.opts.durable) {
227
- // create a durable promise
228
- this.durablePromise =
229
- this.durablePromise ??
230
- (await promises_1.DurablePromise.create(this.resonate.store.promises, this.invocation.opts.encoder, this.invocation.id, this.invocation.timeout, {
231
- idempotencyKey: this.invocation.idempotencyKey,
232
- headers: this.invocation.headers,
233
- param: this.invocation.param,
234
- tags: this.invocation.opts.tags,
235
- }));
236
- // resolve/reject the invocation if already completed
237
- if (this.durablePromise.resolved) {
238
- this.invocation.resolve(this.durablePromise.value());
239
- }
240
- else if (this.durablePromise.rejected || this.durablePromise.canceled || this.durablePromise.timedout) {
241
- this.invocation.reject(this.durablePromise.error());
242
- }
243
- }
244
- if (this.durablePromise) {
245
- // override the invocation creation time
246
- this.invocation.createdOn = this.durablePromise.createdOn;
247
- // override the invocation timeout
248
- this.invocation.timeout = this.durablePromise.timeout;
249
- }
250
- }
251
- catch (e) {
252
- // if an error occurs, kill the execution
253
- this.kill(e);
254
- }
255
- }
256
- async resolve(value) {
257
- try {
258
- if (this.durablePromise) {
259
- // resolve the durable promise if the invocation is durable
260
- await this.durablePromise.resolve(value, { idempotencyKey: this.invocation.idempotencyKey });
261
- // resolve/reject the invocation
262
- if (this.durablePromise.resolved) {
263
- this.invocation.resolve(this.durablePromise.value());
264
- }
265
- else if (this.durablePromise.rejected || this.durablePromise.canceled || this.durablePromise.timedout) {
266
- this.invocation.reject(this.durablePromise.error());
267
- }
268
- }
269
- else {
270
- // if not durable, just resolve the invocation
271
- this.invocation.resolve(value);
272
- }
273
- }
274
- catch (e) {
275
- // if an error occurs, kill the execution
276
- this.kill(e);
277
- }
278
- }
279
- async reject(error) {
280
- try {
281
- if (this.durablePromise) {
282
- // reject the durable promise if the invocation is durable
283
- await this.durablePromise.reject(error, { idempotencyKey: this.invocation.idempotencyKey });
284
- // resolve/reject the invocation
285
- if (this.durablePromise.resolved) {
286
- this.invocation.resolve(this.durablePromise.value());
287
- }
288
- else if (this.durablePromise.rejected || this.durablePromise.canceled || this.durablePromise.timedout) {
289
- this.invocation.reject(this.durablePromise.error());
290
- }
291
- }
292
- else {
293
- // if not durable, just reject the invocation
294
- this.invocation.reject(error);
295
- }
296
- }
297
- catch (e) {
298
- // if an error occurs, kill the execution
299
- this.kill(e);
300
- }
301
- }
302
- async fork() {
303
- return this.invocation.future;
304
- }
305
- async join(future) {
306
- return await future.promise;
307
- }
308
- }
309
- exports.GeneratorExecution = GeneratorExecution;
310
- //# sourceMappingURL=execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../lib/core/execution.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { Invocation } from "./invocation";
2
- export declare class ResonatePromise<T> extends Promise<T> {
3
- id: string;
4
- created: Promise<string>;
5
- static [Symbol.species]: PromiseConstructor;
6
- /**
7
- * Represents the eventual return value of a Resonate function. This is achieved by wrapping a Javscript promise.
8
- *
9
- * @constructor
10
- * @param id - A unique identifier for this promise.
11
- * @param created - A promise that resolves when the durable promise has been created.
12
- * @param completed - A promise that resolves when the durable promise has been fulfilled.
13
- */
14
- constructor(id: string, created: Promise<Future<T>>, completed: Promise<T>);
15
- }
16
- export type FutureValue<T> = {
17
- kind: "pending";
18
- } | {
19
- kind: "resolved";
20
- value: T;
21
- } | {
22
- kind: "rejected";
23
- error: unknown;
24
- };
25
- export declare class Future<T> {
26
- private invocation;
27
- promise: Promise<T>;
28
- private _resolve;
29
- private _reject;
30
- readonly kind = "future";
31
- private _value;
32
- /**
33
- * Represents the eventual return value of a Resonate function.
34
- *
35
- * @constructor
36
- * @param invocation - An invocation correpsonding to the Resonate function.
37
- * @param promise - A promise that resolves to the return value of the Resonate function.
38
- */
39
- constructor(invocation: Invocation<T>, promise: Promise<T>, _resolve: (v: T) => void, _reject: (v?: unknown) => void);
40
- static deferred<T>(invocation: Invocation<T>): {
41
- future: Future<T>;
42
- resolve: (value: T) => void;
43
- reject: (error: unknown) => void;
44
- };
45
- get id(): string;
46
- get idempotencyKey(): string;
47
- get root(): Future<any>;
48
- get parent(): Future<any> | null;
49
- get children(): Future<any>[];
50
- get value(): FutureValue<T>;
51
- get pending(): boolean;
52
- get completed(): boolean;
53
- private resolve;
54
- private reject;
55
- }
56
- //# sourceMappingURL=future.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"future.d.ts","sourceRoot":"","sources":["../../lib/core/future.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,qBAAa,eAAe,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAkBvC,EAAE,EAAE,MAAM;IAfnB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAIzB,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAW;IAElC;;;;;;;OAOG;gBAEM,EAAE,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;CAUxB;AAMD,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzC,qBAAa,MAAM,CAAC,CAAC;IAejB,OAAO,CAAC,UAAU;IACX,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IAhBjB,QAAQ,CAAC,IAAI,YAAY;IAGzB,OAAO,CAAC,MAAM,CAAuC;IAErD;;;;;;OAMG;gBAEO,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EACxB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;IAGxC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;;;;;IAqB5C,IAAI,EAAE,WAEL;IAED,IAAI,cAAc,WAEjB;IAED,IAAI,IAAI,gBAEP;IAED,IAAI,MAAM,uBAET;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,KAAK,mBAER;IAED,IAAI,OAAO,YAEV;IAED,IAAI,SAAS,YAEZ;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,MAAM;CAIf"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Future = exports.ResonatePromise = void 0;
4
- /////////////////////////////////////////////////////////////////////
5
- // Promise
6
- /////////////////////////////////////////////////////////////////////
7
- class ResonatePromise extends Promise {
8
- id;
9
- // resolves to the id of the durable promise
10
- // can be used to await durable promise creation
11
- created;
12
- // You are not expected to understand this (we don't either)
13
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/@@species
14
- static [Symbol.species] = Promise;
15
- /**
16
- * Represents the eventual return value of a Resonate function. This is achieved by wrapping a Javscript promise.
17
- *
18
- * @constructor
19
- * @param id - A unique identifier for this promise.
20
- * @param created - A promise that resolves when the durable promise has been created.
21
- * @param completed - A promise that resolves when the durable promise has been fulfilled.
22
- */
23
- constructor(id, created, completed) {
24
- // bind the promise to the completed promise
25
- super((resolve, reject) => {
26
- completed.then(resolve, reject);
27
- });
28
- this.id = id;
29
- // expose the id when the durable promise has been created
30
- this.created = created.then((future) => future.id);
31
- }
32
- }
33
- exports.ResonatePromise = ResonatePromise;
34
- class Future {
35
- invocation;
36
- promise;
37
- _resolve;
38
- _reject;
39
- // a discriminate property
40
- kind = "future";
41
- // initial value
42
- _value = { kind: "pending" };
43
- /**
44
- * Represents the eventual return value of a Resonate function.
45
- *
46
- * @constructor
47
- * @param invocation - An invocation correpsonding to the Resonate function.
48
- * @param promise - A promise that resolves to the return value of the Resonate function.
49
- */
50
- constructor(invocation, promise, _resolve, _reject) {
51
- this.invocation = invocation;
52
- this.promise = promise;
53
- this._resolve = _resolve;
54
- this._reject = _reject;
55
- }
56
- static deferred(invocation) {
57
- let resolve;
58
- let reject;
59
- // construct a javascript promise
60
- const promise = new Promise((_resolve, _reject) => {
61
- resolve = _resolve;
62
- reject = _reject;
63
- });
64
- // construct a new future
65
- const future = new Future(invocation, promise, resolve, reject);
66
- // return future and resolvers
67
- return {
68
- future: future,
69
- resolve: future.resolve.bind(future),
70
- reject: future.reject.bind(future),
71
- };
72
- }
73
- get id() {
74
- return this.invocation.id;
75
- }
76
- get idempotencyKey() {
77
- return this.invocation.idempotencyKey;
78
- }
79
- get root() {
80
- return this.invocation.root.future;
81
- }
82
- get parent() {
83
- return this.invocation.parent?.future ?? null;
84
- }
85
- get children() {
86
- return this.invocation.children.map((i) => i.future);
87
- }
88
- get value() {
89
- return this._value;
90
- }
91
- get pending() {
92
- return this._value.kind === "pending";
93
- }
94
- get completed() {
95
- return !this.pending;
96
- }
97
- resolve(value) {
98
- this._resolve(value);
99
- this._value = { kind: "resolved", value };
100
- }
101
- reject(error) {
102
- this._reject(error);
103
- this._value = { kind: "rejected", error };
104
- }
105
- }
106
- exports.Future = Future;
107
- //# sourceMappingURL=future.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"future.js","sourceRoot":"","sources":["../../lib/core/future.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { Future } from "./future";
2
- import { Options, PartialOptions } from "./options";
3
- export declare class Invocation<T> {
4
- readonly name: string;
5
- readonly id: string;
6
- readonly headers: Record<string, string> | undefined;
7
- readonly param: unknown;
8
- readonly opts: Options;
9
- readonly defaults: Options;
10
- future: Future<T>;
11
- resolve: (v: T) => void;
12
- reject: (e: unknown) => void;
13
- eid: string;
14
- idempotencyKey: string;
15
- timeout: number;
16
- killed: boolean;
17
- createdOn: number;
18
- counter: number;
19
- attempt: number;
20
- awaited: Future<any>[];
21
- blocked: Future<any> | null;
22
- readonly root: Invocation<any>;
23
- readonly parent: Invocation<any> | null;
24
- readonly children: Invocation<any>[];
25
- /**
26
- * Represents a Resonate function invocation.
27
- *
28
- * @constructor
29
- * @param id - A unique id for this invocation.
30
- * @param idempotencyKey - An idempotency key used to deduplicate invocations.
31
- * @param opts - The invocation options.
32
- * @param parent - The parent invocation.
33
- */
34
- constructor(name: string, id: string, headers: Record<string, string> | undefined, param: unknown, opts: Options, defaults: Options, parent?: Invocation<any>);
35
- addChild(child: Invocation<any>): void;
36
- await(future: Future<any>): void;
37
- block(future: Future<any>): void;
38
- unblock(): void;
39
- split(args: [...any, PartialOptions?]): {
40
- args: any[];
41
- opts: Options;
42
- };
43
- }
44
- //# sourceMappingURL=invocation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invocation.d.ts","sourceRoot":"","sources":["../../lib/core/invocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAa,MAAM,WAAW,CAAC;AAM/D,qBAAa,UAAU,CAAC,CAAC;aAgCL,IAAI,EAAE,MAAM;aACZ,EAAE,EAAE,MAAM;aACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;aAC3C,KAAK,EAAE,OAAO;aACd,IAAI,EAAE,OAAO;aACb,QAAQ,EAAE,OAAO;IApCnC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,OAAO,CAAS;IAExB,SAAS,EAAE,MAAM,CAAc;IAC/B,OAAO,EAAE,MAAM,CAAK;IACpB,OAAO,EAAE,MAAM,CAAK;IAEpB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAM;IAC5B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAEnC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAM;IAE1C;;;;;;;;OAQG;gBAEe,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,EACjC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC;IA4B1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;IAI/B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;IAIzB,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;IAIzB,OAAO;IAIP,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE;CAwBvE"}