@resonatehq/sdk 0.6.3 → 0.7.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 (202) hide show
  1. package/README.md +24 -45
  2. package/dist/dev/network.d.ts +16 -0
  3. package/dist/dev/network.d.ts.map +1 -0
  4. package/dist/dev/network.js +89 -0
  5. package/dist/dev/network.js.map +1 -0
  6. package/dist/dev/server.d.ts +87 -0
  7. package/dist/dev/server.d.ts.map +1 -0
  8. package/dist/dev/server.js +891 -0
  9. package/dist/dev/server.js.map +1 -0
  10. package/dist/sim/example-1.d.ts +2 -0
  11. package/dist/sim/example-1.d.ts.map +1 -0
  12. package/dist/sim/example-1.js +94 -0
  13. package/dist/sim/example-1.js.map +1 -0
  14. package/dist/sim/example-2.d.ts +2 -0
  15. package/dist/sim/example-2.d.ts.map +1 -0
  16. package/dist/sim/example-2.js +95 -0
  17. package/dist/sim/example-2.js.map +1 -0
  18. package/dist/sim/example-3.d.ts +2 -0
  19. package/dist/sim/example-3.d.ts.map +1 -0
  20. package/dist/sim/example-3.js +95 -0
  21. package/dist/sim/example-3.js.map +1 -0
  22. package/dist/sim/main.d.ts +14 -0
  23. package/dist/sim/main.d.ts.map +1 -0
  24. package/dist/sim/main.js +206 -0
  25. package/dist/sim/main.js.map +1 -0
  26. package/dist/sim/src/server.d.ts +15 -0
  27. package/dist/sim/src/server.d.ts.map +1 -0
  28. package/dist/sim/src/server.js +85 -0
  29. package/dist/sim/src/server.js.map +1 -0
  30. package/dist/sim/src/simulator.d.ts +65 -0
  31. package/dist/sim/src/simulator.d.ts.map +1 -0
  32. package/dist/sim/src/simulator.js +235 -0
  33. package/dist/sim/src/simulator.js.map +1 -0
  34. package/dist/sim/src/worker.d.ts +22 -0
  35. package/dist/sim/src/worker.d.ts.map +1 -0
  36. package/dist/sim/src/worker.js +175 -0
  37. package/dist/sim/src/worker.js.map +1 -0
  38. package/dist/src/clock.d.ts +11 -0
  39. package/dist/src/clock.d.ts.map +1 -0
  40. package/dist/src/clock.js +17 -0
  41. package/dist/src/clock.js.map +1 -0
  42. package/dist/src/computation.d.ts +40 -0
  43. package/dist/src/computation.d.ts.map +1 -0
  44. package/dist/src/computation.js +225 -0
  45. package/dist/src/computation.js.map +1 -0
  46. package/dist/src/context.d.ts +120 -0
  47. package/dist/src/context.d.ts.map +1 -0
  48. package/dist/src/context.js +288 -0
  49. package/dist/src/context.js.map +1 -0
  50. package/dist/src/coroutine.d.ts +35 -0
  51. package/dist/src/coroutine.d.ts.map +1 -0
  52. package/dist/src/coroutine.js +251 -0
  53. package/dist/src/coroutine.js.map +1 -0
  54. package/dist/src/decorator.d.ts +14 -0
  55. package/dist/src/decorator.d.ts.map +1 -0
  56. package/dist/src/decorator.js +208 -0
  57. package/dist/src/decorator.js.map +1 -0
  58. package/dist/src/handler.d.ts +40 -0
  59. package/dist/src/handler.d.ts.map +1 -0
  60. package/dist/src/handler.js +198 -0
  61. package/dist/src/handler.js.map +1 -0
  62. package/dist/src/heartbeat.d.ts +22 -0
  63. package/dist/src/heartbeat.d.ts.map +1 -0
  64. package/dist/src/heartbeat.js +87 -0
  65. package/dist/src/heartbeat.js.map +1 -0
  66. package/dist/src/index.d.ts +8 -0
  67. package/dist/src/index.d.ts.map +1 -0
  68. package/dist/src/index.js +25 -0
  69. package/dist/src/index.js.map +1 -0
  70. package/dist/src/network/network.d.ts +216 -0
  71. package/dist/src/network/network.d.ts.map +1 -0
  72. package/dist/{core/logger.js → src/network/network.js} +2 -1
  73. package/dist/src/network/network.js.map +1 -0
  74. package/dist/src/network/remote.d.ts +67 -0
  75. package/dist/src/network/remote.d.ts.map +1 -0
  76. package/dist/src/network/remote.js +514 -0
  77. package/dist/src/network/remote.js.map +1 -0
  78. package/dist/src/nursery.d.ts +19 -0
  79. package/dist/src/nursery.d.ts.map +1 -0
  80. package/dist/src/nursery.js +102 -0
  81. package/dist/src/nursery.js.map +1 -0
  82. package/dist/src/processor/processor.d.ts +11 -0
  83. package/dist/src/processor/processor.d.ts.map +1 -0
  84. package/dist/src/processor/processor.js +24 -0
  85. package/dist/src/processor/processor.js.map +1 -0
  86. package/dist/src/promises.d.ts +23 -0
  87. package/dist/src/promises.d.ts.map +1 -0
  88. package/dist/src/promises.js +157 -0
  89. package/dist/src/promises.js.map +1 -0
  90. package/dist/src/registry.d.ts +15 -0
  91. package/dist/src/registry.d.ts.map +1 -0
  92. package/dist/src/registry.js +26 -0
  93. package/dist/src/registry.js.map +1 -0
  94. package/dist/src/resonate-inner.d.ts +45 -0
  95. package/dist/src/resonate-inner.d.ts.map +1 -0
  96. package/dist/src/resonate-inner.js +157 -0
  97. package/dist/src/resonate-inner.js.map +1 -0
  98. package/dist/src/resonate.d.ts +92 -0
  99. package/dist/src/resonate.d.ts.map +1 -0
  100. package/dist/src/resonate.js +240 -0
  101. package/dist/src/resonate.js.map +1 -0
  102. package/dist/src/schedules.d.ts +9 -0
  103. package/dist/src/schedules.d.ts.map +1 -0
  104. package/dist/src/schedules.js +65 -0
  105. package/dist/src/schedules.js.map +1 -0
  106. package/dist/src/tasks.d.ts +9 -0
  107. package/dist/src/tasks.d.ts.map +1 -0
  108. package/dist/src/tasks.js +61 -0
  109. package/dist/src/tasks.js.map +1 -0
  110. package/dist/src/types.d.ts +86 -0
  111. package/dist/src/types.d.ts.map +1 -0
  112. package/dist/src/types.js +14 -0
  113. package/dist/src/types.js.map +1 -0
  114. package/dist/src/util.d.ts +14 -0
  115. package/dist/src/util.d.ts.map +1 -0
  116. package/dist/src/util.js +69 -0
  117. package/dist/src/util.js.map +1 -0
  118. package/dist/tsconfig.build.tsbuildinfo +1 -0
  119. package/package.json +51 -52
  120. package/dist/core/encoder.d.ts +0 -5
  121. package/dist/core/encoder.d.ts.map +0 -1
  122. package/dist/core/encoder.js +0 -3
  123. package/dist/core/encoder.js.map +0 -1
  124. package/dist/core/encoders/base64.d.ts +0 -6
  125. package/dist/core/encoders/base64.d.ts.map +0 -1
  126. package/dist/core/encoders/base64.js +0 -13
  127. package/dist/core/encoders/base64.js.map +0 -1
  128. package/dist/core/encoders/json.d.ts +0 -6
  129. package/dist/core/encoders/json.d.ts.map +0 -1
  130. package/dist/core/encoders/json.js +0 -77
  131. package/dist/core/encoders/json.js.map +0 -1
  132. package/dist/core/errors.d.ts +0 -24
  133. package/dist/core/errors.d.ts.map +0 -1
  134. package/dist/core/errors.js +0 -42
  135. package/dist/core/errors.js.map +0 -1
  136. package/dist/core/logger.d.ts +0 -10
  137. package/dist/core/logger.d.ts.map +0 -1
  138. package/dist/core/logger.js.map +0 -1
  139. package/dist/core/loggers/logger.d.ts +0 -13
  140. package/dist/core/loggers/logger.d.ts.map +0 -1
  141. package/dist/core/loggers/logger.js +0 -48
  142. package/dist/core/loggers/logger.js.map +0 -1
  143. package/dist/core/options.d.ts +0 -160
  144. package/dist/core/options.d.ts.map +0 -1
  145. package/dist/core/options.js +0 -18
  146. package/dist/core/options.js.map +0 -1
  147. package/dist/core/promises/promises.d.ts +0 -210
  148. package/dist/core/promises/promises.d.ts.map +0 -1
  149. package/dist/core/promises/promises.js +0 -300
  150. package/dist/core/promises/promises.js.map +0 -1
  151. package/dist/core/promises/types.d.ts +0 -42
  152. package/dist/core/promises/types.d.ts.map +0 -1
  153. package/dist/core/promises/types.js +0 -70
  154. package/dist/core/promises/types.js.map +0 -1
  155. package/dist/core/retry.d.ts +0 -37
  156. package/dist/core/retry.d.ts.map +0 -1
  157. package/dist/core/retry.js +0 -141
  158. package/dist/core/retry.js.map +0 -1
  159. package/dist/core/schedules/schedules.d.ts +0 -22
  160. package/dist/core/schedules/schedules.d.ts.map +0 -1
  161. package/dist/core/schedules/schedules.js +0 -29
  162. package/dist/core/schedules/schedules.js.map +0 -1
  163. package/dist/core/schedules/types.d.ts +0 -19
  164. package/dist/core/schedules/types.d.ts.map +0 -1
  165. package/dist/core/schedules/types.js +0 -8
  166. package/dist/core/schedules/types.js.map +0 -1
  167. package/dist/core/storage.d.ts +0 -6
  168. package/dist/core/storage.d.ts.map +0 -1
  169. package/dist/core/storage.js +0 -3
  170. package/dist/core/storage.js.map +0 -1
  171. package/dist/core/storages/memory.d.ts +0 -8
  172. package/dist/core/storages/memory.d.ts.map +0 -1
  173. package/dist/core/storages/memory.js +0 -29
  174. package/dist/core/storages/memory.js.map +0 -1
  175. package/dist/core/storages/withTimeout.d.ts +0 -10
  176. package/dist/core/storages/withTimeout.d.ts.map +0 -1
  177. package/dist/core/storages/withTimeout.js +0 -44
  178. package/dist/core/storages/withTimeout.js.map +0 -1
  179. package/dist/core/store.d.ts +0 -142
  180. package/dist/core/store.d.ts.map +0 -1
  181. package/dist/core/store.js +0 -3
  182. package/dist/core/store.js.map +0 -1
  183. package/dist/core/stores/local.d.ts +0 -57
  184. package/dist/core/stores/local.d.ts.map +0 -1
  185. package/dist/core/stores/local.js +0 -405
  186. package/dist/core/stores/local.js.map +0 -1
  187. package/dist/core/stores/remote.d.ts +0 -51
  188. package/dist/core/stores/remote.d.ts.map +0 -1
  189. package/dist/core/stores/remote.js +0 -431
  190. package/dist/core/stores/remote.js.map +0 -1
  191. package/dist/core/utils.d.ts +0 -85
  192. package/dist/core/utils.d.ts.map +0 -1
  193. package/dist/core/utils.js +0 -121
  194. package/dist/core/utils.js.map +0 -1
  195. package/dist/index.d.ts +0 -19
  196. package/dist/index.d.ts.map +0 -1
  197. package/dist/index.js +0 -57
  198. package/dist/index.js.map +0 -1
  199. package/dist/resonate.d.ts +0 -337
  200. package/dist/resonate.d.ts.map +0 -1
  201. package/dist/resonate.js +0 -730
  202. package/dist/resonate.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepClock = exports.WallClock = void 0;
4
+ class WallClock {
5
+ now() {
6
+ return Date.now();
7
+ }
8
+ }
9
+ exports.WallClock = WallClock;
10
+ class StepClock {
11
+ time = 0;
12
+ now() {
13
+ return this.time++;
14
+ }
15
+ }
16
+ exports.StepClock = StepClock;
17
+ //# sourceMappingURL=clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/clock.ts"],"names":[],"mappings":";;;AAIA,MAAa,SAAS;IACpB,GAAG;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AAJD,8BAIC;AAED,MAAa,SAAS;IACb,IAAI,GAAG,CAAC,CAAC;IAChB,GAAG;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AALD,8BAKC"}
@@ -0,0 +1,40 @@
1
+ import type { Clock } from "./clock";
2
+ import type { Handler } from "./handler";
3
+ import type { Heartbeat } from "./heartbeat";
4
+ import type { CallbackRecord, DurablePromiseRecord, Network } from "./network/network";
5
+ import { type Processor } from "./processor/processor";
6
+ import type { Registry } from "./registry";
7
+ import type { Callback, Task } from "./types";
8
+ export type Status = Completed | Suspended;
9
+ export type Completed = {
10
+ kind: "completed";
11
+ promise: DurablePromiseRecord;
12
+ };
13
+ export type Suspended = {
14
+ kind: "suspended";
15
+ callbacks: CallbackRecord[];
16
+ };
17
+ export declare class Computation {
18
+ private id;
19
+ private pid;
20
+ private ttl;
21
+ private clock;
22
+ private unicast;
23
+ private anycast;
24
+ private network;
25
+ private handler;
26
+ private registry;
27
+ private dependencies;
28
+ private heartbeat;
29
+ private processor;
30
+ private seen;
31
+ private processing;
32
+ constructor(id: string, unicast: string, anycast: string, pid: string, ttl: number, clock: Clock, network: Network, handler: Handler, registry: Registry, heartbeat: Heartbeat, dependencies: Map<string, any>, processor?: Processor);
33
+ process(task: Task, done: Callback<Status>): void;
34
+ private processClaimed;
35
+ private processGenerator;
36
+ private processFunction;
37
+ private processLocalTodo;
38
+ private processRemoteTodo;
39
+ }
40
+ //# sourceMappingURL=computation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computation.d.ts","sourceRoot":"","sources":["../../src/computation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAqB,IAAI,EAAE,MAAM,SAAS,CAAC;AAGjE,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,UAAU,CAAS;gBAGzB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,SAAS,CAAC,EAAE,SAAS;IAgBhB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;IAoCjD,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iBAAiB;CAyC1B"}
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Computation = void 0;
37
+ const context_1 = require("./context");
38
+ const coroutine_1 = require("./coroutine");
39
+ const nursery_1 = require("./nursery");
40
+ const processor_1 = require("./processor/processor");
41
+ const util = __importStar(require("./util"));
42
+ class Computation {
43
+ id;
44
+ pid;
45
+ ttl;
46
+ clock;
47
+ unicast;
48
+ anycast;
49
+ network;
50
+ handler;
51
+ registry;
52
+ dependencies;
53
+ heartbeat;
54
+ processor;
55
+ seen = new Set();
56
+ processing = false;
57
+ constructor(id, unicast, anycast, pid, ttl, clock, network, handler, registry, heartbeat, dependencies, processor) {
58
+ this.id = id;
59
+ this.unicast = unicast;
60
+ this.anycast = anycast;
61
+ this.pid = pid;
62
+ this.ttl = ttl;
63
+ this.clock = clock;
64
+ this.network = network;
65
+ this.handler = handler;
66
+ this.registry = registry;
67
+ this.heartbeat = heartbeat;
68
+ this.dependencies = dependencies;
69
+ this.processor = processor ?? new processor_1.AsyncProcessor();
70
+ }
71
+ process(task, done) {
72
+ // If we are already processing there is nothing to do, the
73
+ // caller will be notified via the promise handler
74
+ if (this.processing)
75
+ return done(true);
76
+ this.processing = true;
77
+ const doneProcessing = (err, res) => {
78
+ this.processing = false;
79
+ err ? done(err) : done(err, res);
80
+ };
81
+ switch (task.kind) {
82
+ case "claimed":
83
+ this.processClaimed(task, doneProcessing);
84
+ break;
85
+ case "unclaimed":
86
+ this.handler.claimTask({
87
+ kind: "claimTask",
88
+ id: task.task.id,
89
+ counter: task.task.counter,
90
+ processId: this.pid,
91
+ ttl: this.ttl,
92
+ }, (err, promise) => {
93
+ if (err)
94
+ return doneProcessing(true);
95
+ util.assertDefined(promise);
96
+ this.processClaimed({ kind: "claimed", task: task.task, rootPromise: promise }, doneProcessing);
97
+ });
98
+ break;
99
+ }
100
+ }
101
+ processClaimed({ task, rootPromise }, done) {
102
+ util.assert(task.rootPromiseId === this.id, "task root promise id must match computation id");
103
+ const doneAndDropTaskIfErr = (err, res) => {
104
+ if (err) {
105
+ return this.network.send({ kind: "dropTask", id: task.id, counter: task.counter }, () => {
106
+ // ignore the drop task response, if the request failed the
107
+ // task will eventually expire anyways
108
+ done(true);
109
+ });
110
+ }
111
+ done(false, res);
112
+ };
113
+ if (!("func" in rootPromise.param) || !("args" in rootPromise.param)) {
114
+ // TODO: log something useful
115
+ return doneAndDropTaskIfErr(true);
116
+ }
117
+ const registered = this.registry.get(rootPromise.param.func);
118
+ if (!registered) {
119
+ // TODO: log something useful
120
+ return doneAndDropTaskIfErr(true);
121
+ }
122
+ const func = registered.func;
123
+ const args = rootPromise.param.args;
124
+ // start heartbeat
125
+ this.heartbeat.start();
126
+ return new nursery_1.Nursery((nursery) => {
127
+ const done = (err, res) => {
128
+ if (err) {
129
+ return nursery.done(err);
130
+ }
131
+ this.network.send({ kind: "completeTask", id: task.id, counter: task.counter }, (err) => {
132
+ nursery.done(err, res);
133
+ });
134
+ };
135
+ const ctx = context_1.InnerContext.root(this.id, rootPromise.timeout, this.clock, this.dependencies);
136
+ if (util.isGeneratorFunction(func)) {
137
+ this.processGenerator(nursery, ctx, func, args, done);
138
+ }
139
+ else {
140
+ this.processFunction(this.id, ctx, func, args, (err, promise) => {
141
+ if (err)
142
+ return done(true);
143
+ util.assertDefined(promise);
144
+ done(false, { kind: "completed", promise });
145
+ });
146
+ }
147
+ }, doneAndDropTaskIfErr);
148
+ }
149
+ processGenerator(nursery, ctx, func, args, done) {
150
+ coroutine_1.Coroutine.exec(this.id, ctx, func, args, this.handler, (err, status) => {
151
+ if (err)
152
+ return done(err);
153
+ util.assertDefined(status);
154
+ switch (status.type) {
155
+ case "completed":
156
+ done(false, { kind: "completed", promise: status.promise });
157
+ break;
158
+ case "suspended":
159
+ util.assert(status.todo.local.length > 0 || status.todo.remote.length > 0, "must be at least one todo");
160
+ if (status.todo.local.length > 0) {
161
+ this.processLocalTodo(nursery, status.todo.local, done);
162
+ }
163
+ else if (status.todo.remote.length > 0) {
164
+ this.processRemoteTodo(nursery, status.todo.remote, done);
165
+ }
166
+ break;
167
+ }
168
+ });
169
+ }
170
+ processFunction(id, ctx, func, args, done) {
171
+ this.processor.process(id, async () => await func(ctx, ...args), (res) => this.handler.completePromise({
172
+ kind: "completePromise",
173
+ id: id,
174
+ state: res.success ? "resolved" : "rejected",
175
+ value: res.success ? res.value : res.error,
176
+ iKey: id,
177
+ strict: false,
178
+ }, done));
179
+ }
180
+ processLocalTodo(nursery, todo, done) {
181
+ for (const { id, ctx, func, args } of todo) {
182
+ if (this.seen.has(id)) {
183
+ continue;
184
+ }
185
+ this.seen.add(id);
186
+ nursery.hold((next) => {
187
+ this.processFunction(id, ctx, func, args, (err) => {
188
+ if (err)
189
+ return done(err);
190
+ next();
191
+ });
192
+ });
193
+ }
194
+ // once all local todos are submitted we can call continue
195
+ return nursery.cont();
196
+ }
197
+ processRemoteTodo(nursery, todo, done) {
198
+ nursery.all(todo, ({ id, timeout }, done) => this.handler.createCallback({
199
+ kind: "createCallback",
200
+ id: id,
201
+ rootPromiseId: this.id,
202
+ timeout: timeout,
203
+ recv: this.anycast,
204
+ }, done), (err, results) => {
205
+ if (err)
206
+ return done(err);
207
+ util.assertDefined(results);
208
+ const callbacks = [];
209
+ for (const res of results) {
210
+ switch (res.kind) {
211
+ case "promise":
212
+ nursery.hold((next) => next());
213
+ return nursery.cont();
214
+ case "callback":
215
+ callbacks.push(res.callback);
216
+ break;
217
+ }
218
+ }
219
+ // once all callbacks are created we can call done
220
+ return done(false, { kind: "suspended", callbacks });
221
+ });
222
+ }
223
+ }
224
+ exports.Computation = Computation;
225
+ //# sourceMappingURL=computation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computation.js","sourceRoot":"","sources":["../../src/computation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import type { Clock } from "./clock";
2
+ import type { CreatePromiseReq } from "./network/network";
3
+ import { type Func, type Options, type ParamsWithOptions, RESONATE_OPTIONS, type Result, type Return } from "./types";
4
+ export type Yieldable = LFI<any> | LFC<any> | RFI<any> | RFC<any> | Future<any>;
5
+ export declare class LFI<T> implements Iterable<LFI<T>> {
6
+ func: Func;
7
+ args: any[];
8
+ createReq: CreatePromiseReq;
9
+ constructor(func: Func, args: any[], createReq: CreatePromiseReq);
10
+ [Symbol.iterator](): Generator<LFI<T>, Future<T>, any>;
11
+ }
12
+ export declare class LFC<T> implements Iterable<LFC<T>> {
13
+ func: Func;
14
+ args: any[];
15
+ createReq: CreatePromiseReq;
16
+ constructor(func: Func, args: any[], createReq: CreatePromiseReq);
17
+ [Symbol.iterator](): Generator<LFC<T>, T, any>;
18
+ }
19
+ export declare class RFI<T> implements Iterable<RFI<T>> {
20
+ createReq: CreatePromiseReq;
21
+ mode: "attached" | "detached";
22
+ constructor(createReq: CreatePromiseReq, mode?: "attached" | "detached");
23
+ [Symbol.iterator](): Generator<RFI<T>, Future<T>, any>;
24
+ }
25
+ export declare class RFC<T> implements Iterable<RFC<T>> {
26
+ createReq: CreatePromiseReq;
27
+ mode: "attached";
28
+ constructor(createReq: CreatePromiseReq);
29
+ [Symbol.iterator](): Generator<RFC<T>, T, any>;
30
+ }
31
+ export declare class Future<T> implements Iterable<Future<T>> {
32
+ id: string;
33
+ private readonly value?;
34
+ readonly state: "pending" | "completed";
35
+ private mode;
36
+ constructor(id: string, state: "pending" | "completed", value?: Result<T>, mode?: "attached" | "detached");
37
+ getValue(): T;
38
+ [Symbol.iterator](): Generator<Future<T>, T, undefined>;
39
+ }
40
+ export interface Context {
41
+ readonly id: string;
42
+ readonly timeout: number;
43
+ lfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFI<Return<F>>;
44
+ lfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFC<Return<F>>;
45
+ rfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
46
+ rfi<T>(func: string, ...args: any[]): RFI<T>;
47
+ rfi(func: Func | string, ...args: any[]): RFI<any>;
48
+ rfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
49
+ rfc<T>(func: string, ...args: any[]): RFC<T>;
50
+ rfc(func: Func | string, ...args: any[]): RFC<any>;
51
+ beginRun<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFI<Return<F>>;
52
+ run<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFC<Return<F>>;
53
+ beginRpc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
54
+ beginRpc<T>(func: string, ...args: any[]): RFI<T>;
55
+ beginRpc(func: Func | string, ...args: any[]): RFI<any>;
56
+ rpc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
57
+ rpc<T>(func: string, ...args: any[]): RFC<T>;
58
+ rpc(func: Func | string, ...args: any[]): RFC<any>;
59
+ sleep(ms: number): RFC<void>;
60
+ promise<T>({ id, timeout, data, tags, }: {
61
+ id?: string;
62
+ timeout?: number;
63
+ data?: any;
64
+ tags?: Record<string, string>;
65
+ }): RFI<T>;
66
+ detached<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
67
+ detached<T>(func: string, ...args: any[]): RFI<T>;
68
+ detached(func: Func | string, ...args: any[]): RFI<any>;
69
+ getDependency(key: string): any | undefined;
70
+ options(opts: Partial<Options>): Options & {
71
+ [RESONATE_OPTIONS]: true;
72
+ };
73
+ }
74
+ export declare class InnerContext implements Context {
75
+ readonly id: string;
76
+ readonly timeout: number;
77
+ private rId;
78
+ private pId;
79
+ private clock;
80
+ private dependencies;
81
+ private seq;
82
+ run: <F extends Func>(func: F, ...args: ParamsWithOptions<F>) => LFC<Return<F>>;
83
+ rpc: {
84
+ <F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
85
+ <T>(func: string, ...args: any[]): RFC<T>;
86
+ };
87
+ beginRun: <F extends Func>(func: F, ...args: ParamsWithOptions<F>) => LFI<Return<F>>;
88
+ beginRpc: {
89
+ <F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
90
+ <T>(func: string, ...args: any[]): RFI<T>;
91
+ };
92
+ private constructor();
93
+ static root(id: string, timeout: number, clock: Clock, dependencies: Map<string, any>): InnerContext;
94
+ child(id: string, timeout: number): InnerContext;
95
+ lfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFI<Return<F>>;
96
+ lfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFC<Return<F>>;
97
+ rfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
98
+ rfi<T>(func: string, ...args: any[]): RFI<T>;
99
+ rfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
100
+ rfc<T>(func: string, ...args: any[]): RFC<T>;
101
+ promise<T>({ id, timeout, data, tags, }: {
102
+ id?: string;
103
+ timeout?: number;
104
+ data?: any;
105
+ tags?: Record<string, string>;
106
+ }): RFI<T>;
107
+ sleep(ms: number): RFC<void>;
108
+ detached<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
109
+ detached<T>(func: string, ...args: any[]): RFI<T>;
110
+ getDependency(key: string): any | undefined;
111
+ options(opts?: Partial<Options>): Options & {
112
+ [RESONATE_OPTIONS]: true;
113
+ };
114
+ localCreateReq(opts: Options): CreatePromiseReq;
115
+ remoteCreateReq(func: string, args: any[], opts: Options, maxTimeout?: number): CreatePromiseReq;
116
+ latentCreateOpts(id?: string, timeout?: number, data?: any, tags?: Record<string, string>): CreatePromiseReq;
117
+ sleepCreateOpts(opts: Options): CreatePromiseReq;
118
+ seqid(): string;
119
+ }
120
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}