@restatedev/restate-sdk 0.4.0 → 0.4.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.
- package/dist/embedded/api.d.ts +19 -10
- package/dist/embedded/api.d.ts.map +1 -1
- package/dist/embedded/api.js +6 -8
- package/dist/embedded/api.js.map +1 -1
- package/dist/embedded/http2_remote.d.ts +2 -1
- package/dist/embedded/http2_remote.d.ts.map +1 -1
- package/dist/embedded/http2_remote.js +14 -8
- package/dist/embedded/http2_remote.js.map +1 -1
- package/dist/embedded/invocation.d.ts +2 -1
- package/dist/embedded/invocation.d.ts.map +1 -1
- package/dist/embedded/invocation.js +8 -4
- package/dist/embedded/invocation.js.map +1 -1
- package/dist/restate_context.d.ts +40 -22
- package/dist/restate_context.d.ts.map +1 -1
- package/dist/restate_context.js.map +1 -1
- package/dist/restate_context_impl.d.ts +3 -1
- package/dist/restate_context_impl.d.ts.map +1 -1
- package/dist/restate_context_impl.js +6 -0
- package/dist/restate_context_impl.js.map +1 -1
- package/dist/server/base_restate_server.d.ts +2 -0
- package/dist/server/base_restate_server.d.ts.map +1 -1
- package/dist/server/base_restate_server.js +3 -2
- package/dist/server/base_restate_server.js.map +1 -1
- package/dist/state_machine.d.ts +2 -2
- package/dist/state_machine.d.ts.map +1 -1
- package/dist/state_machine.js +12 -7
- package/dist/state_machine.js.map +1 -1
- package/package.json +1 -1
- package/dist/bidirectional_server.d.ts +0 -33
- package/dist/bidirectional_server.d.ts.map +0 -1
- package/dist/bidirectional_server.js +0 -95
- package/dist/bidirectional_server.js.map +0 -1
- package/dist/connection/restate_duplex_stream.d.ts +0 -14
- package/dist/connection/restate_duplex_stream.d.ts.map +0 -1
- package/dist/connection/restate_duplex_stream.js +0 -50
- package/dist/connection/restate_duplex_stream.js.map +0 -1
- package/dist/context.d.ts +0 -19
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -25
- package/dist/context.js.map +0 -1
- package/dist/core.d.ts +0 -10
- package/dist/core.d.ts.map +0 -1
- package/dist/core.js +0 -23
- package/dist/core.js.map +0 -1
- package/dist/durable_execution.d.ts +0 -61
- package/dist/durable_execution.d.ts.map +0 -1
- package/dist/durable_execution.js +0 -463
- package/dist/durable_execution.js.map +0 -1
- package/dist/example.d.ts +0 -6
- package/dist/example.d.ts.map +0 -1
- package/dist/example.js +0 -60
- package/dist/example.js.map +0 -1
- package/dist/generated/proto/example.d.ts +0 -105
- package/dist/generated/proto/example.d.ts.map +0 -1
- package/dist/generated/proto/example.js +0 -244
- package/dist/generated/proto/example.js.map +0 -1
- package/dist/generated/proto/ext.d.ts +0 -79
- package/dist/generated/proto/ext.d.ts.map +0 -1
- package/dist/generated/proto/ext.js +0 -177
- package/dist/generated/proto/ext.js.map +0 -1
- package/dist/protocol_stream.d.ts +0 -39
- package/dist/protocol_stream.d.ts.map +0 -1
- package/dist/protocol_stream.js +0 -296
- package/dist/protocol_stream.js.map +0 -1
- package/dist/protoutils.d.ts +0 -15
- package/dist/protoutils.d.ts.map +0 -1
- package/dist/protoutils.js +0 -71
- package/dist/protoutils.js.map +0 -1
- package/dist/restate.d.ts +0 -18
- package/dist/restate.d.ts.map +0 -1
- package/dist/restate.js +0 -93
- package/dist/restate.js.map +0 -1
- package/dist/testdriver.d.ts +0 -27
- package/dist/testdriver.d.ts.map +0 -1
- package/dist/testdriver.js +0 -134
- package/dist/testdriver.js.map +0 -1
- package/dist/types.d.ts +0 -96
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -136
- package/dist/types.js.map +0 -1
package/dist/state_machine.js
CHANGED
|
@@ -48,6 +48,7 @@ class StateMachine {
|
|
|
48
48
|
connection;
|
|
49
49
|
invocation;
|
|
50
50
|
protocolMode;
|
|
51
|
+
suspensionMillis;
|
|
51
52
|
journal;
|
|
52
53
|
restateContext;
|
|
53
54
|
invocationComplete = new utils_1.CompletablePromise();
|
|
@@ -64,11 +65,11 @@ class StateMachine {
|
|
|
64
65
|
inputChannelClosed = false;
|
|
65
66
|
// Suspension timeout that gets set and cleared based on completion messages;
|
|
66
67
|
suspensionTimeout;
|
|
67
|
-
suspensionMillis = 30_000
|
|
68
|
-
constructor(connection, invocation, protocolMode) {
|
|
68
|
+
constructor(connection, invocation, protocolMode, suspensionMillis = 30_000) {
|
|
69
69
|
this.connection = connection;
|
|
70
70
|
this.invocation = invocation;
|
|
71
71
|
this.protocolMode = protocolMode;
|
|
72
|
+
this.suspensionMillis = suspensionMillis;
|
|
72
73
|
this.localStateStore = invocation.localStateStore;
|
|
73
74
|
this.restateContext = new restate_context_impl_1.RestateGrpcContextImpl(this.invocation.id, this.invocation.method.service, this);
|
|
74
75
|
this.journal = new journal_1.Journal(this.invocation);
|
|
@@ -273,11 +274,15 @@ class StateMachine {
|
|
|
273
274
|
}
|
|
274
275
|
const delay = this.getSuspensionMillis();
|
|
275
276
|
logger_1.rlog.debugJournalMessage(this.invocation.logPrefix, "Scheduling suspension in " + delay + " ms");
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
277
|
+
if (delay >= 0) {
|
|
278
|
+
// Set a new suspension with a new timeout
|
|
279
|
+
// The suspension will only be sent if the timeout is not canceled due to a completion.
|
|
280
|
+
// In case the delay is 0 we still schedule a timeout in order to process the suspension on the next process tick,
|
|
281
|
+
// without interrupting the current work.
|
|
282
|
+
this.suspensionTimeout = setTimeout(() => {
|
|
283
|
+
this.suspend();
|
|
284
|
+
}, delay);
|
|
285
|
+
}
|
|
281
286
|
}
|
|
282
287
|
// Suspension timeouts:
|
|
283
288
|
// Lambda case: suspend immediately when control is back in the user code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state_machine.js","sourceRoot":"","sources":["../src/state_machine.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AACtC,iEAAgE;AAEhE,2DAA2D;AAC3D,yCAAwC;AACxC,yCAAsE;AACtE,2CAAsC;AACtC,mCAAsC;AACtC,+CAO0B;AAC1B,uCAAoC;AAEpC,2CAKwB;AAGxB,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"state_machine.js","sourceRoot":"","sources":["../src/state_machine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
import http2 from "http2";
|
|
5
|
-
import { RestateDuplexStream, RestateDuplexStreamEventHandler } from "./protocol_stream";
|
|
6
|
-
import { Url } from "url";
|
|
7
|
-
import { ProtocolMessage } from "./types";
|
|
8
|
-
import { ServiceDiscoveryResponse } from "./generated/proto/discovery";
|
|
9
|
-
export interface Connection {
|
|
10
|
-
send(message_type: bigint, message: ProtocolMessage | Buffer, completed?: boolean | undefined, requires_ack?: boolean | undefined): void;
|
|
11
|
-
onMessage(handler: RestateDuplexStreamEventHandler): void;
|
|
12
|
-
onClose(handler: () => void): void;
|
|
13
|
-
end(): void;
|
|
14
|
-
}
|
|
15
|
-
export declare class HttpConnection implements Connection {
|
|
16
|
-
readonly connectionId: bigint;
|
|
17
|
-
readonly headers: http2.IncomingHttpHeaders;
|
|
18
|
-
readonly url: Url;
|
|
19
|
-
readonly stream: http2.ServerHttp2Stream;
|
|
20
|
-
readonly restate: RestateDuplexStream;
|
|
21
|
-
private result;
|
|
22
|
-
private requiresCompletion;
|
|
23
|
-
constructor(connectionId: bigint, headers: http2.IncomingHttpHeaders, url: Url, stream: http2.ServerHttp2Stream, restate: RestateDuplexStream);
|
|
24
|
-
respond404(): void;
|
|
25
|
-
respondOk(): void;
|
|
26
|
-
send(message_type: bigint, message: ProtocolMessage | Buffer, completed?: boolean, requires_ack?: boolean): void;
|
|
27
|
-
flush(): void;
|
|
28
|
-
onMessage(handler: RestateDuplexStreamEventHandler): void;
|
|
29
|
-
onClose(handler: () => void): void;
|
|
30
|
-
end(): void;
|
|
31
|
-
}
|
|
32
|
-
export declare function incomingConnectionAtPort(port: number, discovery: ServiceDiscoveryResponse): AsyncGenerator<HttpConnection, void, unknown>;
|
|
33
|
-
//# sourceMappingURL=bidirectional_server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bidirectional_server.d.ts","sourceRoot":"","sources":["../src/bidirectional_server.ts"],"names":[],"mappings":";;;AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAKL,mBAAmB,EACnB,+BAA+B,EAEhC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAoB,GAAG,EAAC,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAU,eAAe,EAAiC,MAAM,SAAS,CAAC;AACjF,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,IAAI,CACF,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,GAAG,MAAM,EACjC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,EAC/B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,GACjC,IAAI,CAAC;IAER,SAAS,CAAC,OAAO,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAE1D,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAEnC,GAAG,IAAI,IAAI,CAAC;CACb;AAED,qBAAa,cAAe,YAAW,UAAU;IAa7C,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,mBAAmB;IAC3C,QAAQ,CAAC,GAAG,EAAE,GAAG;IACjB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB;IACxC,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IAhBvC,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,kBAAkB,CAOxB;gBAGS,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,mBAAmB,EAClC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,KAAK,CAAC,iBAAiB,EAC/B,OAAO,EAAE,mBAAmB;IAGvC,UAAU;IAQV,SAAS;IAOT,IAAI,CACF,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,GAAG,MAAM,EACjC,SAAS,CAAC,EAAE,OAAO,EACnB,YAAY,CAAC,EAAE,OAAO;IAUxB,KAAK;IAQL,SAAS,CAAC,OAAO,EAAE,+BAA+B;IAIlD,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI;IAI3B,GAAG;CAGJ;AAED,wBAAuB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,iDAkChG"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.incomingConnectionAtPort = exports.HttpConnection = void 0;
|
|
7
|
-
const http2_1 = __importDefault(require("http2"));
|
|
8
|
-
const protocol_stream_1 = require("./protocol_stream");
|
|
9
|
-
const url_1 = require("url");
|
|
10
|
-
const events_1 = require("events");
|
|
11
|
-
const types_1 = require("./types");
|
|
12
|
-
const discovery_1 = require("./generated/proto/discovery");
|
|
13
|
-
class HttpConnection {
|
|
14
|
-
connectionId;
|
|
15
|
-
headers;
|
|
16
|
-
url;
|
|
17
|
-
stream;
|
|
18
|
-
restate;
|
|
19
|
-
result = [];
|
|
20
|
-
requiresCompletion = [
|
|
21
|
-
protocol_stream_1.OUTPUT_STREAM_ENTRY_MESSAGE_TYPE,
|
|
22
|
-
protocol_stream_1.INVOKE_ENTRY_MESSAGE_TYPE,
|
|
23
|
-
protocol_stream_1.GET_STATE_ENTRY_MESSAGE_TYPE,
|
|
24
|
-
types_1.SIDE_EFFECT_ENTRY_MESSAGE_TYPE,
|
|
25
|
-
protocol_stream_1.AWAKEABLE_ENTRY_MESSAGE_TYPE,
|
|
26
|
-
protocol_stream_1.SLEEP_ENTRY_MESSAGE_TYPE,
|
|
27
|
-
];
|
|
28
|
-
constructor(connectionId, headers, url, stream, restate) {
|
|
29
|
-
this.connectionId = connectionId;
|
|
30
|
-
this.headers = headers;
|
|
31
|
-
this.url = url;
|
|
32
|
-
this.stream = stream;
|
|
33
|
-
this.restate = restate;
|
|
34
|
-
}
|
|
35
|
-
respond404() {
|
|
36
|
-
this.stream.respond({
|
|
37
|
-
"content-type": "application/restate",
|
|
38
|
-
":status": 404,
|
|
39
|
-
});
|
|
40
|
-
this.stream.end();
|
|
41
|
-
}
|
|
42
|
-
respondOk() {
|
|
43
|
-
this.stream.respond({
|
|
44
|
-
"content-type": "application/restate",
|
|
45
|
-
":status": 200,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
send(message_type, message, completed, requires_ack) {
|
|
49
|
-
this.result.push(new types_1.Message(message_type, message));
|
|
50
|
-
// Only flush the messages if they require a completion.
|
|
51
|
-
if (this.requiresCompletion.includes(message_type)) {
|
|
52
|
-
this.flush();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
flush() {
|
|
56
|
-
// TODO
|
|
57
|
-
this.result.forEach((msg) => this.restate.send(msg.messageType, msg.message));
|
|
58
|
-
this.result = [];
|
|
59
|
-
}
|
|
60
|
-
onMessage(handler) {
|
|
61
|
-
this.restate.onMessage(handler);
|
|
62
|
-
}
|
|
63
|
-
onClose(handler) {
|
|
64
|
-
this.stream.on("close", handler);
|
|
65
|
-
}
|
|
66
|
-
end() {
|
|
67
|
-
this.stream.end();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
exports.HttpConnection = HttpConnection;
|
|
71
|
-
async function* incomingConnectionAtPort(port, discovery) {
|
|
72
|
-
const server = http2_1.default.createServer();
|
|
73
|
-
server.on("error", (err) => console.error(err));
|
|
74
|
-
server.listen(port);
|
|
75
|
-
let connectionId = BigInt(1);
|
|
76
|
-
for await (const [stream, headers] of (0, events_1.on)(server, "stream")) {
|
|
77
|
-
const s = stream;
|
|
78
|
-
const h = headers;
|
|
79
|
-
const u = (0, url_1.parse)(h[":path"] ?? "/");
|
|
80
|
-
if (u.path == "/discover") {
|
|
81
|
-
s.respond({
|
|
82
|
-
':status': 200,
|
|
83
|
-
'content-type': 'application/proto',
|
|
84
|
-
});
|
|
85
|
-
s.write(discovery_1.ServiceDiscoveryResponse.encode(discovery).finish());
|
|
86
|
-
s.end();
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
connectionId += 1n;
|
|
90
|
-
const connection = new HttpConnection(connectionId, h, u, s, protocol_stream_1.RestateDuplexStream.from(s));
|
|
91
|
-
yield connection;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
exports.incomingConnectionAtPort = incomingConnectionAtPort;
|
|
95
|
-
//# sourceMappingURL=bidirectional_server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bidirectional_server.js","sourceRoot":"","sources":["../src/bidirectional_server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import stream from "stream";
|
|
3
|
-
import { Message } from "../types/types";
|
|
4
|
-
export declare class RestateDuplexStream {
|
|
5
|
-
private readonly sdkInput;
|
|
6
|
-
private readonly sdkOutput;
|
|
7
|
-
static from(http2stream: stream.Duplex): RestateDuplexStream;
|
|
8
|
-
constructor(sdkInput: stream.Readable, sdkOutput: stream.Writable);
|
|
9
|
-
send(msgs: Message[]): Promise<void>;
|
|
10
|
-
end(): void;
|
|
11
|
-
onMessage(handler: (msg: Message) => void): void;
|
|
12
|
-
onError(handler: (err: Error) => void): void;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=restate_duplex_stream.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"restate_duplex_stream.d.ts","sourceRoot":"","sources":["../../src/connection/restate_duplex_stream.ts"],"names":[],"mappings":";AAEA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAMzC,qBAAa,mBAAmB;IAY5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;WAXd,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,mBAAmB;gBAUhD,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,SAAS,EAAE,MAAM,CAAC,QAAQ;IAGvC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,GAAG;IAIH,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;IAMzC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;CAMtC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RestateDuplexStream = void 0;
|
|
7
|
-
const stream_1 = __importDefault(require("stream"));
|
|
8
|
-
const encoder_1 = require("../io/encoder");
|
|
9
|
-
const decoder_1 = require("../io/decoder");
|
|
10
|
-
const logger_1 = require("../utils/logger");
|
|
11
|
-
const promises_1 = require("stream/promises");
|
|
12
|
-
class RestateDuplexStream {
|
|
13
|
-
sdkInput;
|
|
14
|
-
sdkOutput;
|
|
15
|
-
// create a RestateDuplex stream from an http2 (duplex) stream.
|
|
16
|
-
static from(http2stream) {
|
|
17
|
-
const sdkInput = http2stream.pipe((0, decoder_1.streamDecoder)());
|
|
18
|
-
const sdkOutput = (0, encoder_1.streamEncoder)();
|
|
19
|
-
sdkOutput.pipe(http2stream);
|
|
20
|
-
return new RestateDuplexStream(sdkInput, sdkOutput);
|
|
21
|
-
}
|
|
22
|
-
constructor(sdkInput, sdkOutput) {
|
|
23
|
-
this.sdkInput = sdkInput;
|
|
24
|
-
this.sdkOutput = sdkOutput;
|
|
25
|
-
}
|
|
26
|
-
async send(msgs) {
|
|
27
|
-
const max = this.sdkOutput.getMaxListeners();
|
|
28
|
-
// pipeline creates a huge number of listeners, but it is not a leak; they are cleaned up by the time we complete
|
|
29
|
-
// set to unlimited briefly
|
|
30
|
-
this.sdkOutput.setMaxListeners(0);
|
|
31
|
-
await (0, promises_1.pipeline)(stream_1.default.Readable.from(msgs), this.sdkOutput, { end: false });
|
|
32
|
-
this.sdkOutput.setMaxListeners(max);
|
|
33
|
-
}
|
|
34
|
-
end() {
|
|
35
|
-
this.sdkOutput.end();
|
|
36
|
-
}
|
|
37
|
-
onMessage(handler) {
|
|
38
|
-
this.sdkInput.on("data", (data) => {
|
|
39
|
-
handler(data);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
onError(handler) {
|
|
43
|
-
this.sdkInput.on("error", (err) => {
|
|
44
|
-
logger_1.rlog.warn("Error in input stream: " + err.stack);
|
|
45
|
-
handler(err);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.RestateDuplexStream = RestateDuplexStream;
|
|
50
|
-
//# sourceMappingURL=restate_duplex_stream.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"restate_duplex_stream.js","sourceRoot":"","sources":["../../src/connection/restate_duplex_stream.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb,oDAA4B;AAE5B,2CAA8C;AAC9C,2CAA8C;AAC9C,4CAAuC;AACvC,8CAA2C;AAE3C,MAAa,mBAAmB;IAYX;IACA;IAZnB,+DAA+D;IACxD,MAAM,CAAC,IAAI,CAAC,WAA0B;QAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAA,uBAAa,GAAE,CAAC,CAAC;QAEnD,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5B,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,YACmB,QAAyB,EACzB,SAA0B;QAD1B,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAiB;IAC1C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,IAAe;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC7C,iHAAiH;QACjH,2BAA2B;QAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,IAAA,mBAAQ,EAAC,gBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,GAAG;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,OAA+B;QACvC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAChC,aAAI,CAAC,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzCD,kDAyCC"}
|
package/dist/context.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { AwakeableIdentifier } from "./types";
|
|
3
|
-
export interface RestateContext {
|
|
4
|
-
instanceKey: Buffer;
|
|
5
|
-
serviceName: string;
|
|
6
|
-
invocationId: Buffer;
|
|
7
|
-
request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
|
|
8
|
-
get<T>(name: string): Promise<T | null>;
|
|
9
|
-
set<T>(name: string, value: T): Promise<void>;
|
|
10
|
-
clear(name: string): Promise<void>;
|
|
11
|
-
inBackground<T>(call: () => Promise<T>): Promise<void>;
|
|
12
|
-
sideEffect<T>(fn: () => Promise<T>): Promise<T>;
|
|
13
|
-
awakeable<T>(): Promise<T>;
|
|
14
|
-
completeAwakeable<T>(id: AwakeableIdentifier, payload: T): Promise<void>;
|
|
15
|
-
sleep(millis: number): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
export declare function useContext<T>(instance: T): RestateContext;
|
|
18
|
-
export declare function setContext<T>(instance: T, context: RestateContext): T;
|
|
19
|
-
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,OAAO,CACL,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAExC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhD,SAAS,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3B,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,cAAc,CAOzD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,CAAC,CAUrE"}
|
package/dist/context.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setContext = exports.useContext = void 0;
|
|
4
|
-
function useContext(instance) {
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
-
const wrapper = instance;
|
|
7
|
-
if (wrapper.$$restate === undefined || wrapper.$$restate === null) {
|
|
8
|
-
throw new Error(`not running within a Restate call.`);
|
|
9
|
-
}
|
|
10
|
-
return wrapper.$$restate;
|
|
11
|
-
}
|
|
12
|
-
exports.useContext = useContext;
|
|
13
|
-
function setContext(instance, context) {
|
|
14
|
-
// creates a *new*, per call object that shares all the properties that @instance has
|
|
15
|
-
// except '$$restate' which is a unique, per call pointer to a restate context.
|
|
16
|
-
//
|
|
17
|
-
// The following line create a new object, that its prototype is @instance.
|
|
18
|
-
// and that object has a $$restate property.
|
|
19
|
-
const wrapper = Object.create(instance, {
|
|
20
|
-
$$restate: { value: context },
|
|
21
|
-
});
|
|
22
|
-
return wrapper;
|
|
23
|
-
}
|
|
24
|
-
exports.setContext = setContext;
|
|
25
|
-
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAgCb,SAAgB,UAAU,CAAI,QAAW;IACvC,8DAA8D;IAC9D,MAAM,OAAO,GAAG,QAAe,CAAC;IAChC,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE;QACjE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IACD,OAAO,OAAO,CAAC,SAAS,CAAC;AAC3B,CAAC;AAPD,gCAOC;AAED,SAAgB,UAAU,CAAI,QAAW,EAAE,OAAuB;IAChE,qFAAqF;IACrF,+EAA+E;IAC/E,EAAE;IACF,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAkB,EAAE;QAChD,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;KAC9B,CAAC,CAAC;IACH,OAAO,OAAY,CAAC;AACtB,CAAC;AAVD,gCAUC"}
|
package/dist/core.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { RestateContext } from "./context";
|
|
2
|
-
import { GrpcServiceMethod } from "./types";
|
|
3
|
-
export declare class HostedGrpcServiceMethod<I, O> {
|
|
4
|
-
readonly instance: unknown;
|
|
5
|
-
readonly service: string;
|
|
6
|
-
readonly method: GrpcServiceMethod<I, O>;
|
|
7
|
-
constructor(instance: unknown, service: string, method: GrpcServiceMethod<I, O>);
|
|
8
|
-
invoke(context: RestateContext, inBytes: Uint8Array): Promise<Uint8Array>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=core.d.ts.map
|
package/dist/core.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAc,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,uBAAuB,CAAC,CAAC,EAAE,CAAC;IAErC,QAAQ,CAAC,QAAQ,EAAE,OAAO;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;gBAF/B,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGpC,MAAM,CACV,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,UAAU,CAAC;CAOvB"}
|
package/dist/core.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HostedGrpcServiceMethod = void 0;
|
|
4
|
-
const context_1 = require("./context");
|
|
5
|
-
class HostedGrpcServiceMethod {
|
|
6
|
-
instance;
|
|
7
|
-
service;
|
|
8
|
-
method;
|
|
9
|
-
constructor(instance, service, method) {
|
|
10
|
-
this.instance = instance;
|
|
11
|
-
this.service = service;
|
|
12
|
-
this.method = method;
|
|
13
|
-
}
|
|
14
|
-
async invoke(context, inBytes) {
|
|
15
|
-
const instanceWithContext = (0, context_1.setContext)(this.instance, context);
|
|
16
|
-
const input = this.method.inputDecoder(inBytes);
|
|
17
|
-
const output = await this.method.localFn(instanceWithContext, input);
|
|
18
|
-
const outBytes = this.method.outputEncoder(output);
|
|
19
|
-
return outBytes;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.HostedGrpcServiceMethod = HostedGrpcServiceMethod;
|
|
23
|
-
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,uCAAuD;AAGvD,MAAa,uBAAuB;IAEvB;IACA;IACA;IAHX,YACW,QAAiB,EACjB,OAAe,EACf,MAA+B;QAF/B,aAAQ,GAAR,QAAQ,CAAS;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAyB;IACvC,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,OAAuB,EACvB,OAAmB;QAEnB,MAAM,mBAAmB,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAjBD,0DAiBC"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Connection } from "./bidirectional_server";
|
|
3
|
-
import { HostedGrpcServiceMethod } from "./core";
|
|
4
|
-
import { AwakeableEntryMessage, CompletionMessage, GetStateEntryMessage, InvokeEntryMessage, PollInputStreamEntryMessage, SleepEntryMessage, StartMessage } from "./protocol_stream";
|
|
5
|
-
import { RestateContext } from "./context";
|
|
6
|
-
import { AwakeableIdentifier, ProtocolMessage } from "./types";
|
|
7
|
-
import { Failure } from "./generated/proto/protocol";
|
|
8
|
-
declare enum ExecutionState {
|
|
9
|
-
WAITING_FOR_START = "WAITING_FOR_START",
|
|
10
|
-
REPLAYING = "REPLAYING",
|
|
11
|
-
PROCESSING = "PROCESSING",
|
|
12
|
-
CLOSED = "CLOSED"
|
|
13
|
-
}
|
|
14
|
-
export declare class DurableExecutionStateMachine<I, O> implements RestateContext {
|
|
15
|
-
private readonly connection;
|
|
16
|
-
private readonly method;
|
|
17
|
-
private state;
|
|
18
|
-
instanceKey: Buffer;
|
|
19
|
-
serviceName: string;
|
|
20
|
-
invocationId: Buffer;
|
|
21
|
-
private nbEntriesToReplay;
|
|
22
|
-
private replayIndex;
|
|
23
|
-
private currentJournalIndex;
|
|
24
|
-
private inBackgroundCallFlag;
|
|
25
|
-
private inSideEffectFlag;
|
|
26
|
-
private pendingPromises;
|
|
27
|
-
private outOfOrderReplayMessages;
|
|
28
|
-
constructor(connection: Connection, method: HostedGrpcServiceMethod<I, O>);
|
|
29
|
-
get<T>(name: string): Promise<T | null>;
|
|
30
|
-
set<T>(name: string, value: T): Promise<void>;
|
|
31
|
-
clear(name: string): Promise<void>;
|
|
32
|
-
awakeable<T>(): Promise<T>;
|
|
33
|
-
completeAwakeable<T>(id: AwakeableIdentifier, payload: T): Promise<void>;
|
|
34
|
-
request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
|
|
35
|
-
invokeInBackground(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
|
|
36
|
-
invoke(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
|
|
37
|
-
inBackground<T>(call: () => Promise<T>): Promise<void>;
|
|
38
|
-
sideEffect<T>(fn: () => Promise<T>): Promise<T>;
|
|
39
|
-
sleep(millis: number): Promise<void>;
|
|
40
|
-
onIncomingMessage(message_type: bigint, message: ProtocolMessage | Buffer, // Buffer in case o
|
|
41
|
-
completed_flag?: boolean, protocol_version?: number, requires_ack_flag?: boolean): void;
|
|
42
|
-
handleStartMessage(m: StartMessage): void;
|
|
43
|
-
handleInputMessage(m: PollInputStreamEntryMessage): void;
|
|
44
|
-
handleCompletionMessage(m: CompletionMessage): void;
|
|
45
|
-
handleGetStateMessage(m: GetStateEntryMessage): void;
|
|
46
|
-
handleInvokeEntryMessage(m: InvokeEntryMessage): void;
|
|
47
|
-
handleSideEffectMessage(m: Buffer): void;
|
|
48
|
-
handleAwakeableMessage(m: AwakeableEntryMessage): void;
|
|
49
|
-
handleSleepCompletionMessage(m: SleepEntryMessage): void;
|
|
50
|
-
checkIfInReplay(): void;
|
|
51
|
-
transitionState(newExecState: ExecutionState): void;
|
|
52
|
-
incrementJournalIndex(): void;
|
|
53
|
-
addPromise(journalIndex: number, resolve: (value: any) => void, reject: (value: any) => void): void;
|
|
54
|
-
resolvePromise<T>(journalIndex: number, value?: T | undefined, failure?: Failure | undefined): void;
|
|
55
|
-
validate(callType: string): void;
|
|
56
|
-
onCallSuccess(result: Uint8Array): void;
|
|
57
|
-
onCallFailure(failure: Error): void;
|
|
58
|
-
onClose(): void;
|
|
59
|
-
}
|
|
60
|
-
export {};
|
|
61
|
-
//# sourceMappingURL=durable_execution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"durable_execution.d.ts","sourceRoot":"","sources":["../src/durable_execution.ts"],"names":[],"mappings":"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"}
|