@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.
Files changed (80) hide show
  1. package/dist/embedded/api.d.ts +19 -10
  2. package/dist/embedded/api.d.ts.map +1 -1
  3. package/dist/embedded/api.js +6 -8
  4. package/dist/embedded/api.js.map +1 -1
  5. package/dist/embedded/http2_remote.d.ts +2 -1
  6. package/dist/embedded/http2_remote.d.ts.map +1 -1
  7. package/dist/embedded/http2_remote.js +14 -8
  8. package/dist/embedded/http2_remote.js.map +1 -1
  9. package/dist/embedded/invocation.d.ts +2 -1
  10. package/dist/embedded/invocation.d.ts.map +1 -1
  11. package/dist/embedded/invocation.js +8 -4
  12. package/dist/embedded/invocation.js.map +1 -1
  13. package/dist/restate_context.d.ts +40 -22
  14. package/dist/restate_context.d.ts.map +1 -1
  15. package/dist/restate_context.js.map +1 -1
  16. package/dist/restate_context_impl.d.ts +3 -1
  17. package/dist/restate_context_impl.d.ts.map +1 -1
  18. package/dist/restate_context_impl.js +6 -0
  19. package/dist/restate_context_impl.js.map +1 -1
  20. package/dist/server/base_restate_server.d.ts +2 -0
  21. package/dist/server/base_restate_server.d.ts.map +1 -1
  22. package/dist/server/base_restate_server.js +3 -2
  23. package/dist/server/base_restate_server.js.map +1 -1
  24. package/dist/state_machine.d.ts +2 -2
  25. package/dist/state_machine.d.ts.map +1 -1
  26. package/dist/state_machine.js +12 -7
  27. package/dist/state_machine.js.map +1 -1
  28. package/package.json +1 -1
  29. package/dist/bidirectional_server.d.ts +0 -33
  30. package/dist/bidirectional_server.d.ts.map +0 -1
  31. package/dist/bidirectional_server.js +0 -95
  32. package/dist/bidirectional_server.js.map +0 -1
  33. package/dist/connection/restate_duplex_stream.d.ts +0 -14
  34. package/dist/connection/restate_duplex_stream.d.ts.map +0 -1
  35. package/dist/connection/restate_duplex_stream.js +0 -50
  36. package/dist/connection/restate_duplex_stream.js.map +0 -1
  37. package/dist/context.d.ts +0 -19
  38. package/dist/context.d.ts.map +0 -1
  39. package/dist/context.js +0 -25
  40. package/dist/context.js.map +0 -1
  41. package/dist/core.d.ts +0 -10
  42. package/dist/core.d.ts.map +0 -1
  43. package/dist/core.js +0 -23
  44. package/dist/core.js.map +0 -1
  45. package/dist/durable_execution.d.ts +0 -61
  46. package/dist/durable_execution.d.ts.map +0 -1
  47. package/dist/durable_execution.js +0 -463
  48. package/dist/durable_execution.js.map +0 -1
  49. package/dist/example.d.ts +0 -6
  50. package/dist/example.d.ts.map +0 -1
  51. package/dist/example.js +0 -60
  52. package/dist/example.js.map +0 -1
  53. package/dist/generated/proto/example.d.ts +0 -105
  54. package/dist/generated/proto/example.d.ts.map +0 -1
  55. package/dist/generated/proto/example.js +0 -244
  56. package/dist/generated/proto/example.js.map +0 -1
  57. package/dist/generated/proto/ext.d.ts +0 -79
  58. package/dist/generated/proto/ext.d.ts.map +0 -1
  59. package/dist/generated/proto/ext.js +0 -177
  60. package/dist/generated/proto/ext.js.map +0 -1
  61. package/dist/protocol_stream.d.ts +0 -39
  62. package/dist/protocol_stream.d.ts.map +0 -1
  63. package/dist/protocol_stream.js +0 -296
  64. package/dist/protocol_stream.js.map +0 -1
  65. package/dist/protoutils.d.ts +0 -15
  66. package/dist/protoutils.d.ts.map +0 -1
  67. package/dist/protoutils.js +0 -71
  68. package/dist/protoutils.js.map +0 -1
  69. package/dist/restate.d.ts +0 -18
  70. package/dist/restate.d.ts.map +0 -1
  71. package/dist/restate.js +0 -93
  72. package/dist/restate.js.map +0 -1
  73. package/dist/testdriver.d.ts +0 -27
  74. package/dist/testdriver.d.ts.map +0 -1
  75. package/dist/testdriver.js +0 -134
  76. package/dist/testdriver.js.map +0 -1
  77. package/dist/types.d.ts +0 -96
  78. package/dist/types.d.ts.map +0 -1
  79. package/dist/types.js +0 -136
  80. package/dist/types.js.map +0 -1
@@ -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
- // Set a new suspension with a new timeout
277
- // The suspension will only be sent if the timeout is not canceled due to a completion.
278
- this.suspensionTimeout = setTimeout(() => {
279
- this.suspend();
280
- }, delay);
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":"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"}
1
+ {"version":3,"file":"state_machine.js","sourceRoot":"","sources":["../src/state_machine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@restatedev/restate-sdk",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Typescript SDK for Restate",
5
5
  "engines": {
6
6
  "node": ">= 10"
@@ -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
@@ -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
@@ -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
@@ -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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"}