@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.
- package/README.md +24 -45
- package/dist/dev/network.d.ts +16 -0
- package/dist/dev/network.d.ts.map +1 -0
- package/dist/dev/network.js +89 -0
- package/dist/dev/network.js.map +1 -0
- package/dist/dev/server.d.ts +87 -0
- package/dist/dev/server.d.ts.map +1 -0
- package/dist/dev/server.js +891 -0
- package/dist/dev/server.js.map +1 -0
- package/dist/sim/example-1.d.ts +2 -0
- package/dist/sim/example-1.d.ts.map +1 -0
- package/dist/sim/example-1.js +94 -0
- package/dist/sim/example-1.js.map +1 -0
- package/dist/sim/example-2.d.ts +2 -0
- package/dist/sim/example-2.d.ts.map +1 -0
- package/dist/sim/example-2.js +95 -0
- package/dist/sim/example-2.js.map +1 -0
- package/dist/sim/example-3.d.ts +2 -0
- package/dist/sim/example-3.d.ts.map +1 -0
- package/dist/sim/example-3.js +95 -0
- package/dist/sim/example-3.js.map +1 -0
- package/dist/sim/main.d.ts +14 -0
- package/dist/sim/main.d.ts.map +1 -0
- package/dist/sim/main.js +206 -0
- package/dist/sim/main.js.map +1 -0
- package/dist/sim/src/server.d.ts +15 -0
- package/dist/sim/src/server.d.ts.map +1 -0
- package/dist/sim/src/server.js +85 -0
- package/dist/sim/src/server.js.map +1 -0
- package/dist/sim/src/simulator.d.ts +65 -0
- package/dist/sim/src/simulator.d.ts.map +1 -0
- package/dist/sim/src/simulator.js +235 -0
- package/dist/sim/src/simulator.js.map +1 -0
- package/dist/sim/src/worker.d.ts +22 -0
- package/dist/sim/src/worker.d.ts.map +1 -0
- package/dist/sim/src/worker.js +175 -0
- package/dist/sim/src/worker.js.map +1 -0
- package/dist/src/clock.d.ts +11 -0
- package/dist/src/clock.d.ts.map +1 -0
- package/dist/src/clock.js +17 -0
- package/dist/src/clock.js.map +1 -0
- package/dist/src/computation.d.ts +40 -0
- package/dist/src/computation.d.ts.map +1 -0
- package/dist/src/computation.js +225 -0
- package/dist/src/computation.js.map +1 -0
- package/dist/src/context.d.ts +120 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +288 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/coroutine.d.ts +35 -0
- package/dist/src/coroutine.d.ts.map +1 -0
- package/dist/src/coroutine.js +251 -0
- package/dist/src/coroutine.js.map +1 -0
- package/dist/src/decorator.d.ts +14 -0
- package/dist/src/decorator.d.ts.map +1 -0
- package/dist/src/decorator.js +208 -0
- package/dist/src/decorator.js.map +1 -0
- package/dist/src/handler.d.ts +40 -0
- package/dist/src/handler.d.ts.map +1 -0
- package/dist/src/handler.js +198 -0
- package/dist/src/handler.js.map +1 -0
- package/dist/src/heartbeat.d.ts +22 -0
- package/dist/src/heartbeat.d.ts.map +1 -0
- package/dist/src/heartbeat.js +87 -0
- package/dist/src/heartbeat.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +25 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/network/network.d.ts +216 -0
- package/dist/src/network/network.d.ts.map +1 -0
- package/dist/{core/logger.js → src/network/network.js} +2 -1
- package/dist/src/network/network.js.map +1 -0
- package/dist/src/network/remote.d.ts +67 -0
- package/dist/src/network/remote.d.ts.map +1 -0
- package/dist/src/network/remote.js +514 -0
- package/dist/src/network/remote.js.map +1 -0
- package/dist/src/nursery.d.ts +19 -0
- package/dist/src/nursery.d.ts.map +1 -0
- package/dist/src/nursery.js +102 -0
- package/dist/src/nursery.js.map +1 -0
- package/dist/src/processor/processor.d.ts +11 -0
- package/dist/src/processor/processor.d.ts.map +1 -0
- package/dist/src/processor/processor.js +24 -0
- package/dist/src/processor/processor.js.map +1 -0
- package/dist/src/promises.d.ts +23 -0
- package/dist/src/promises.d.ts.map +1 -0
- package/dist/src/promises.js +157 -0
- package/dist/src/promises.js.map +1 -0
- package/dist/src/registry.d.ts +15 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js +26 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/resonate-inner.d.ts +45 -0
- package/dist/src/resonate-inner.d.ts.map +1 -0
- package/dist/src/resonate-inner.js +157 -0
- package/dist/src/resonate-inner.js.map +1 -0
- package/dist/src/resonate.d.ts +92 -0
- package/dist/src/resonate.d.ts.map +1 -0
- package/dist/src/resonate.js +240 -0
- package/dist/src/resonate.js.map +1 -0
- package/dist/src/schedules.d.ts +9 -0
- package/dist/src/schedules.d.ts.map +1 -0
- package/dist/src/schedules.js +65 -0
- package/dist/src/schedules.js.map +1 -0
- package/dist/src/tasks.d.ts +9 -0
- package/dist/src/tasks.d.ts.map +1 -0
- package/dist/src/tasks.js +61 -0
- package/dist/src/tasks.js.map +1 -0
- package/dist/src/types.d.ts +86 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +14 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/util.d.ts +14 -0
- package/dist/src/util.d.ts.map +1 -0
- package/dist/src/util.js +69 -0
- package/dist/src/util.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +51 -52
- package/dist/core/encoder.d.ts +0 -5
- package/dist/core/encoder.d.ts.map +0 -1
- package/dist/core/encoder.js +0 -3
- package/dist/core/encoder.js.map +0 -1
- package/dist/core/encoders/base64.d.ts +0 -6
- package/dist/core/encoders/base64.d.ts.map +0 -1
- package/dist/core/encoders/base64.js +0 -13
- package/dist/core/encoders/base64.js.map +0 -1
- package/dist/core/encoders/json.d.ts +0 -6
- package/dist/core/encoders/json.d.ts.map +0 -1
- package/dist/core/encoders/json.js +0 -77
- package/dist/core/encoders/json.js.map +0 -1
- package/dist/core/errors.d.ts +0 -24
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/errors.js +0 -42
- package/dist/core/errors.js.map +0 -1
- package/dist/core/logger.d.ts +0 -10
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/logger.js.map +0 -1
- package/dist/core/loggers/logger.d.ts +0 -13
- package/dist/core/loggers/logger.d.ts.map +0 -1
- package/dist/core/loggers/logger.js +0 -48
- package/dist/core/loggers/logger.js.map +0 -1
- package/dist/core/options.d.ts +0 -160
- package/dist/core/options.d.ts.map +0 -1
- package/dist/core/options.js +0 -18
- package/dist/core/options.js.map +0 -1
- package/dist/core/promises/promises.d.ts +0 -210
- package/dist/core/promises/promises.d.ts.map +0 -1
- package/dist/core/promises/promises.js +0 -300
- package/dist/core/promises/promises.js.map +0 -1
- package/dist/core/promises/types.d.ts +0 -42
- package/dist/core/promises/types.d.ts.map +0 -1
- package/dist/core/promises/types.js +0 -70
- package/dist/core/promises/types.js.map +0 -1
- package/dist/core/retry.d.ts +0 -37
- package/dist/core/retry.d.ts.map +0 -1
- package/dist/core/retry.js +0 -141
- package/dist/core/retry.js.map +0 -1
- package/dist/core/schedules/schedules.d.ts +0 -22
- package/dist/core/schedules/schedules.d.ts.map +0 -1
- package/dist/core/schedules/schedules.js +0 -29
- package/dist/core/schedules/schedules.js.map +0 -1
- package/dist/core/schedules/types.d.ts +0 -19
- package/dist/core/schedules/types.d.ts.map +0 -1
- package/dist/core/schedules/types.js +0 -8
- package/dist/core/schedules/types.js.map +0 -1
- package/dist/core/storage.d.ts +0 -6
- package/dist/core/storage.d.ts.map +0 -1
- package/dist/core/storage.js +0 -3
- package/dist/core/storage.js.map +0 -1
- package/dist/core/storages/memory.d.ts +0 -8
- package/dist/core/storages/memory.d.ts.map +0 -1
- package/dist/core/storages/memory.js +0 -29
- package/dist/core/storages/memory.js.map +0 -1
- package/dist/core/storages/withTimeout.d.ts +0 -10
- package/dist/core/storages/withTimeout.d.ts.map +0 -1
- package/dist/core/storages/withTimeout.js +0 -44
- package/dist/core/storages/withTimeout.js.map +0 -1
- package/dist/core/store.d.ts +0 -142
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -3
- package/dist/core/store.js.map +0 -1
- package/dist/core/stores/local.d.ts +0 -57
- package/dist/core/stores/local.d.ts.map +0 -1
- package/dist/core/stores/local.js +0 -405
- package/dist/core/stores/local.js.map +0 -1
- package/dist/core/stores/remote.d.ts +0 -51
- package/dist/core/stores/remote.d.ts.map +0 -1
- package/dist/core/stores/remote.js +0 -431
- package/dist/core/stores/remote.js.map +0 -1
- package/dist/core/utils.d.ts +0 -85
- package/dist/core/utils.d.ts.map +0 -1
- package/dist/core/utils.js +0 -121
- package/dist/core/utils.js.map +0 -1
- package/dist/index.d.ts +0 -19
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -57
- package/dist/index.js.map +0 -1
- package/dist/resonate.d.ts +0 -337
- package/dist/resonate.d.ts.map +0 -1
- package/dist/resonate.js +0 -730
- package/dist/resonate.js.map +0 -1
package/README.md
CHANGED
|
@@ -12,61 +12,40 @@
|
|
|
12
12
|
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
<a href="https://docs.resonatehq.io">Docs</a>
|
|
17
|
-
<span> • </span>
|
|
18
|
-
<a href="https://twitter.com/resonatehqio">Twitter</a>
|
|
19
|
-
<span> • </span>
|
|
20
|
-
<a href="https://resonatehq.io/discord">Discord</a>
|
|
21
|
-
<span> • </span>
|
|
22
|
-
<a href="https://github.com/resonatehq/resonate-sdk-ts/issues">Issues</a>
|
|
23
|
-
<span> • </span>
|
|
24
|
-
<a href="https://github.com/resonatehq/resonate/issues/131">Roadmap</a>
|
|
25
|
-
<br /><br />
|
|
26
|
-
</div>
|
|
27
|
-
|
|
28
|
-
## Distributed Async Await
|
|
29
|
-
|
|
30
|
-
Resonate's Distributed Async Await is a new programming model that simplifies coding for the cloud. It ensures code completion even if hardware or software failures occur during execution. The programming model does this with just functions and promises, making it trivial to build `coordinated` and `reliable` distributed applications.
|
|
31
|
-
|
|
32
|
-
## Why Resonate?
|
|
15
|
+
## About this component
|
|
33
16
|
|
|
34
|
-
|
|
17
|
+
The Resonate TypeScript SDK enables you to build reliable and scalable applications when paired with at least one [Resonate Server](https://github.com/resonatehq/resonate).
|
|
35
18
|
|
|
36
|
-
-
|
|
19
|
+
**IMPORTANT - A new release is currently in development which will support full [Distributed Async Await](https://distributed-async-await.io) and will be tested using Deterministic Simulations. We do not recommend using the current version as the new release will be a breaking change.**
|
|
37
20
|
|
|
38
|
-
-
|
|
21
|
+
- [Contribute to the Resonate Python SDK](./CONTRIBUTING.md)
|
|
22
|
+
- [License](./LICENSE)
|
|
39
23
|
|
|
40
|
-
|
|
24
|
+
## Directory
|
|
41
25
|
|
|
42
|
-
|
|
26
|
+
- [Get started with Resonate](https://docs.resonatehq.io/get-started)
|
|
27
|
+
- [Try an example application](https://github.com/resonatehq-examples)
|
|
28
|
+
- [Join the community](https://resonatehq.io/discord)
|
|
29
|
+
- [Subscribe to Resonate HQ](https://journal.resonatehq.io/subscribe)
|
|
30
|
+
- [Follow on Twitter / X](https://twitter.com/resonatehqio)
|
|
31
|
+
- [Follow on LinkedIn](https://www.linkedin.com/company/resonatehqio)
|
|
32
|
+
- [Subscribe on YouTube](https://www.youtube.com/@resonatehqio)
|
|
43
33
|
|
|
44
|
-
|
|
45
|
-
2. [Explore in-depth code examples](https://github.com/resonatehq/quickstart-ts/tree/main) and get your hands dirty with our comprehensive repository.
|
|
46
|
-
3. [Dive into the TypeScript SDK docs](https://docs.resonatehq.io/sdks/typescript) and learn how to leverage its full potential with our detailed documentation.
|
|
47
|
-
4. [Explore the API reference](https://resonatehq.github.io/resonate-sdk-ts/index.html) of Resonate's TypeScript SDK.
|
|
48
|
-
5. [Grasp the 4 core concepts](https://docs.resonatehq.io/getting-started/concepts) of distributed async/await applications by delving into our concepts page.
|
|
49
|
-
|
|
50
|
-
## Core features
|
|
51
|
-
|
|
52
|
-
The basic features Resonate offers to simplify the reliability and coordination of distributed processes are the following:
|
|
53
|
-
|
|
54
|
-
- **Retries**: If a process fails while executing a durable promise due to a transient issue, such as network connectivity problems, it can be transparently retried, minimizing the impact of temporary failures.
|
|
55
|
-
|
|
56
|
-
- **Recoverability**: If a process crashes while executing a durable promise, it can recover and continue from where it left off, ensuring your application remains resilient.
|
|
57
|
-
|
|
58
|
-
- **Schedules**: Durable promises can be used to schedule statefule reminders using a simple HTTP/gRPC call.
|
|
34
|
+
## Distributed Async Await
|
|
59
35
|
|
|
60
|
-
|
|
36
|
+
Resonate implements the Distributed Async Await specification — [Learn more](https://www.distributed-async-await.io/)
|
|
61
37
|
|
|
62
|
-
|
|
38
|
+
## Why Resonate
|
|
63
39
|
|
|
64
|
-
|
|
40
|
+
**Why Resonate?**
|
|
65
41
|
|
|
66
|
-
|
|
42
|
+
Because developing distributed applications should be a delightful experience — [Learn more](https://docs.resonatehq.io/evaluate/why-resonate)
|
|
67
43
|
|
|
68
|
-
|
|
44
|
+
## Available SDKs
|
|
69
45
|
|
|
70
|
-
|
|
46
|
+
Add reliablity and scalability to the language you love.
|
|
71
47
|
|
|
72
|
-
|
|
48
|
+
| Language | Source Code | Package | Developer docs |
|
|
49
|
+
| :-----------------------------------------------------------------------------------------------------------------: | --------------------------------------------- | ---------------------------------------------------- | ----------------------------------------------------- |
|
|
50
|
+
| <img alt="py sdk" src="https://upload.wikimedia.org/wikipedia/commons/c/c3/Python-logo-notext.svg" width="40px"/> | https://github.com/resonatehq/resonate-sdk-py | [pypi](https://pypi.org/project/resonate-sdk/) | [docs](https://docs.resonatehq.io/develop/python) |
|
|
51
|
+
| <img alt="ts sdk" src="https://upload.wikimedia.org/wikipedia/commons/4/4c/Typescript_logo_2020.svg" width="40px"/> | https://github.com/resonatehq/resonate-sdk-ts | [npm](https://www.npmjs.com/package/@resonatehq/sdk) | [docs](https://docs.resonatehq.io/develop/typescript) |
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Server } from "./server";
|
|
2
|
+
import type { Callback } from "types";
|
|
3
|
+
import type { Message, Network, Request, ResponseFor } from "../src/network/network";
|
|
4
|
+
export declare class LocalNetwork implements Network {
|
|
5
|
+
private server;
|
|
6
|
+
private timeoutId;
|
|
7
|
+
private shouldStop;
|
|
8
|
+
private subscriptions;
|
|
9
|
+
constructor(server?: Server);
|
|
10
|
+
stop(): void;
|
|
11
|
+
send<T extends Request>(req: Request, callback: Callback<ResponseFor<T>>): void;
|
|
12
|
+
recv(msg: Message): void;
|
|
13
|
+
subscribe(callback: (msg: Message) => void): void;
|
|
14
|
+
private enqueueNext;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=network.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../dev/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrF,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA8C;gBAEvD,MAAM,GAAE,MAAqB;IAKzC,IAAI;IAMJ,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAc/E,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAMxB,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIjD,OAAO,CAAC,WAAW;CAepB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
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.LocalNetwork = void 0;
|
|
37
|
+
const server_1 = require("./server");
|
|
38
|
+
const util = __importStar(require("../src/util"));
|
|
39
|
+
class LocalNetwork {
|
|
40
|
+
server;
|
|
41
|
+
timeoutId;
|
|
42
|
+
shouldStop = false;
|
|
43
|
+
subscriptions = new Array();
|
|
44
|
+
constructor(server = new server_1.Server()) {
|
|
45
|
+
this.server = server;
|
|
46
|
+
this.timeoutId = undefined;
|
|
47
|
+
}
|
|
48
|
+
stop() {
|
|
49
|
+
clearTimeout(this.timeoutId);
|
|
50
|
+
this.shouldStop = true;
|
|
51
|
+
this.timeoutId = undefined;
|
|
52
|
+
}
|
|
53
|
+
send(req, callback) {
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
try {
|
|
56
|
+
const res = this.server.process(req, Date.now());
|
|
57
|
+
util.assert(res.kind === req.kind, "res kind must match req kind");
|
|
58
|
+
callback(false, res);
|
|
59
|
+
this.enqueueNext();
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
callback(true);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
recv(msg) {
|
|
67
|
+
for (const callback of this.subscriptions) {
|
|
68
|
+
callback(msg);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
subscribe(callback) {
|
|
72
|
+
this.subscriptions.push(callback);
|
|
73
|
+
}
|
|
74
|
+
enqueueNext() {
|
|
75
|
+
clearTimeout(this.timeoutId);
|
|
76
|
+
const time = Date.now();
|
|
77
|
+
const next = this.server.next(time);
|
|
78
|
+
if (next !== undefined && !this.shouldStop) {
|
|
79
|
+
this.timeoutId = setTimeout(() => {
|
|
80
|
+
for (const { msg } of this.server.step(time)) {
|
|
81
|
+
this.recv(msg);
|
|
82
|
+
}
|
|
83
|
+
this.enqueueNext();
|
|
84
|
+
}, next);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.LocalNetwork = LocalNetwork;
|
|
89
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../dev/network.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAkC;AAIlC,kDAAoC;AAEpC,MAAa,YAAY;IACf,MAAM,CAAS;IACf,SAAS,CAA4C;IACrD,UAAU,GAAG,KAAK,CAAC;IACnB,aAAa,GAAkC,IAAI,KAAK,EAAE,CAAC;IAEnE,YAAY,SAAiB,IAAI,eAAM,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,CAAoB,GAAY,EAAE,QAAkC;QACtE,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;gBAEnE,QAAQ,CAAC,KAAK,EAAE,GAAqB,CAAC,CAAC;gBACvC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAY;QACf,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,QAAgC;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEO,WAAW;QACjB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAS,EAAE;gBACrC,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF;AAxDD,oCAwDC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { Message, Request, Response } from "../src/network/network";
|
|
2
|
+
interface DurablePromise {
|
|
3
|
+
id: string;
|
|
4
|
+
state: "pending" | "resolved" | "rejected" | "rejected_canceled" | "rejected_timedout";
|
|
5
|
+
timeout: number;
|
|
6
|
+
param: any;
|
|
7
|
+
value: any;
|
|
8
|
+
tags: Record<string, string>;
|
|
9
|
+
iKeyForCreate?: string;
|
|
10
|
+
iKeyForComplete?: string;
|
|
11
|
+
createdOn?: number;
|
|
12
|
+
completedOn?: number;
|
|
13
|
+
callbacks?: Map<string, Callback>;
|
|
14
|
+
}
|
|
15
|
+
interface Callback {
|
|
16
|
+
id: string;
|
|
17
|
+
type: "resume" | "notify";
|
|
18
|
+
promiseId: string;
|
|
19
|
+
rootPromiseId: string;
|
|
20
|
+
recv: string;
|
|
21
|
+
timeout: number;
|
|
22
|
+
createdOn: number;
|
|
23
|
+
}
|
|
24
|
+
interface Task {
|
|
25
|
+
id: string;
|
|
26
|
+
counter: number;
|
|
27
|
+
state: "init" | "enqueued" | "claimed" | "completed";
|
|
28
|
+
type: "invoke" | "resume" | "notify";
|
|
29
|
+
recv: string;
|
|
30
|
+
rootPromiseId: string;
|
|
31
|
+
leafPromiseId: string;
|
|
32
|
+
timeout: number;
|
|
33
|
+
processId?: string;
|
|
34
|
+
ttl?: number;
|
|
35
|
+
expiry?: number;
|
|
36
|
+
createdOn: number;
|
|
37
|
+
completedOn?: number;
|
|
38
|
+
}
|
|
39
|
+
interface Schedule {
|
|
40
|
+
id: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
cron: string;
|
|
43
|
+
tags: Record<string, string>;
|
|
44
|
+
promiseId: string;
|
|
45
|
+
promiseTimeout: number;
|
|
46
|
+
promiseParam: any;
|
|
47
|
+
promiseTags: Record<string, string>;
|
|
48
|
+
lastRunTime?: number;
|
|
49
|
+
nextRunTime?: number;
|
|
50
|
+
iKey?: string;
|
|
51
|
+
createdOn?: number;
|
|
52
|
+
}
|
|
53
|
+
export declare class Server {
|
|
54
|
+
readonly promises: Map<string, DurablePromise>;
|
|
55
|
+
readonly tasks: Map<string, Task>;
|
|
56
|
+
readonly schedules: Map<string, Schedule>;
|
|
57
|
+
private routers;
|
|
58
|
+
private targets;
|
|
59
|
+
constructor();
|
|
60
|
+
next(time: number): number | undefined;
|
|
61
|
+
step(time: number): {
|
|
62
|
+
msg: Message;
|
|
63
|
+
recv: string;
|
|
64
|
+
}[];
|
|
65
|
+
process(requ: Request, time: number): Response;
|
|
66
|
+
private createPromise;
|
|
67
|
+
private createPromiseAndTask;
|
|
68
|
+
private _createPromise;
|
|
69
|
+
private readPromise;
|
|
70
|
+
private completePromise;
|
|
71
|
+
private createSubscription;
|
|
72
|
+
private createCallback;
|
|
73
|
+
private claimTask;
|
|
74
|
+
private completeTask;
|
|
75
|
+
private dropTask;
|
|
76
|
+
private heartbeatTasks;
|
|
77
|
+
private createSchedule;
|
|
78
|
+
private readSchedule;
|
|
79
|
+
private deleteSchedule;
|
|
80
|
+
private getPromise;
|
|
81
|
+
private transitionPromise;
|
|
82
|
+
private _transitionPromise;
|
|
83
|
+
private transitionTask;
|
|
84
|
+
private transitionSchedule;
|
|
85
|
+
}
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../dev/server.ts"],"names":[],"mappings":"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"}
|