@restatedev/restate-sdk 0.7.3-worker → 0.8.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 (231) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +29 -51
  3. package/dist/clients/workflow_client.d.ts +77 -0
  4. package/dist/clients/workflow_client.d.ts.map +1 -0
  5. package/dist/clients/workflow_client.js +172 -0
  6. package/dist/clients/workflow_client.js.map +1 -0
  7. package/dist/connection/buffered_connection.js +44 -0
  8. package/dist/connection/buffered_connection.js.map +1 -0
  9. package/dist/connection/connection.js +13 -0
  10. package/dist/connection/connection.js.map +1 -0
  11. package/dist/connection/embedded_connection.js +59 -0
  12. package/dist/connection/embedded_connection.js.map +1 -0
  13. package/dist/connection/http_connection.js +203 -0
  14. package/dist/connection/http_connection.js.map +1 -0
  15. package/dist/connection/lambda_connection.js +58 -0
  16. package/dist/connection/lambda_connection.js.map +1 -0
  17. package/dist/{restate_context.d.ts → context.d.ts} +239 -170
  18. package/dist/context.d.ts.map +1 -0
  19. package/dist/context.js +113 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/{restate_context_impl.d.ts → context_impl.d.ts} +26 -30
  22. package/dist/context_impl.d.ts.map +1 -0
  23. package/dist/context_impl.js +439 -0
  24. package/dist/context_impl.js.map +1 -0
  25. package/dist/embedded/api.d.ts +2 -2
  26. package/dist/embedded/api.d.ts.map +1 -1
  27. package/dist/embedded/api.js +35 -0
  28. package/dist/embedded/api.js.map +1 -0
  29. package/dist/embedded/handler.d.ts +2 -2
  30. package/dist/embedded/handler.d.ts.map +1 -1
  31. package/dist/embedded/handler.js +26 -0
  32. package/dist/embedded/handler.js.map +1 -0
  33. package/dist/embedded/http2_remote.js +91 -0
  34. package/dist/embedded/http2_remote.js.map +1 -0
  35. package/dist/embedded/invocation.d.ts.map +1 -1
  36. package/dist/embedded/invocation.js +94 -0
  37. package/dist/embedded/invocation.js.map +1 -0
  38. package/dist/endpoint/endpoint_impl.d.ts +35 -0
  39. package/dist/endpoint/endpoint_impl.d.ts.map +1 -0
  40. package/dist/endpoint/endpoint_impl.js +405 -0
  41. package/dist/endpoint/endpoint_impl.js.map +1 -0
  42. package/dist/endpoint/http2_handler.d.ts +11 -0
  43. package/dist/endpoint/http2_handler.d.ts.map +1 -0
  44. package/dist/endpoint/http2_handler.js +119 -0
  45. package/dist/endpoint/http2_handler.js.map +1 -0
  46. package/dist/endpoint/lambda_handler.d.ts +15 -0
  47. package/dist/endpoint/lambda_handler.d.ts.map +1 -0
  48. package/dist/endpoint/lambda_handler.js +144 -0
  49. package/dist/endpoint/lambda_handler.js.map +1 -0
  50. package/dist/endpoint.d.ts +161 -0
  51. package/dist/endpoint.d.ts.map +1 -0
  52. package/dist/endpoint.js +22 -0
  53. package/dist/endpoint.js.map +1 -0
  54. package/dist/generated/dev/restate/events.js +371 -0
  55. package/dist/generated/dev/restate/events.js.map +1 -0
  56. package/dist/generated/dev/restate/ext.js +215 -0
  57. package/dist/generated/dev/restate/ext.js.map +1 -0
  58. package/dist/generated/google/protobuf/descriptor.js +6676 -0
  59. package/dist/generated/google/protobuf/descriptor.js.map +1 -0
  60. package/dist/generated/google/protobuf/empty.js +107 -0
  61. package/dist/generated/google/protobuf/empty.js.map +1 -0
  62. package/dist/generated/google/protobuf/struct.js +754 -0
  63. package/dist/generated/google/protobuf/struct.js.map +1 -0
  64. package/dist/generated/proto/discovery.js +364 -0
  65. package/dist/generated/proto/discovery.js.map +1 -0
  66. package/dist/generated/proto/dynrpc.js +668 -0
  67. package/dist/generated/proto/dynrpc.js.map +1 -0
  68. package/dist/generated/proto/javascript.d.ts +13 -0
  69. package/dist/generated/proto/javascript.d.ts.map +1 -1
  70. package/dist/generated/proto/javascript.js +416 -0
  71. package/dist/generated/proto/javascript.js.map +1 -0
  72. package/dist/generated/proto/protocol.d.ts +43 -0
  73. package/dist/generated/proto/protocol.d.ts.map +1 -1
  74. package/dist/generated/proto/protocol.js +2641 -0
  75. package/dist/generated/proto/protocol.js.map +1 -0
  76. package/dist/generated/proto/services.js +1535 -0
  77. package/dist/generated/proto/services.js.map +1 -0
  78. package/dist/generated/proto/test.js +321 -0
  79. package/dist/generated/proto/test.js.map +1 -0
  80. package/dist/invocation.d.ts +4 -1
  81. package/dist/invocation.d.ts.map +1 -1
  82. package/dist/invocation.js +157 -0
  83. package/dist/invocation.js.map +1 -0
  84. package/dist/io/decoder.d.ts +1 -0
  85. package/dist/io/decoder.d.ts.map +1 -1
  86. package/dist/io/decoder.js +140 -0
  87. package/dist/io/decoder.js.map +1 -0
  88. package/dist/io/encoder.d.ts +1 -2
  89. package/dist/io/encoder.d.ts.map +1 -1
  90. package/dist/io/encoder.js +68 -0
  91. package/dist/io/encoder.js.map +1 -0
  92. package/dist/journal.d.ts +13 -4
  93. package/dist/journal.d.ts.map +1 -1
  94. package/dist/journal.js +405 -0
  95. package/dist/journal.js.map +1 -0
  96. package/dist/local_state_store.d.ts +5 -3
  97. package/dist/local_state_store.d.ts.map +1 -1
  98. package/dist/local_state_store.js +82 -0
  99. package/dist/local_state_store.js.map +1 -0
  100. package/dist/logger.d.ts +19 -0
  101. package/dist/logger.d.ts.map +1 -0
  102. package/dist/logger.js +90 -0
  103. package/dist/logger.js.map +1 -0
  104. package/dist/promise_combinator_tracker.d.ts +29 -0
  105. package/dist/promise_combinator_tracker.d.ts.map +1 -0
  106. package/dist/promise_combinator_tracker.js +128 -0
  107. package/dist/promise_combinator_tracker.js.map +1 -0
  108. package/dist/public_api.d.ts +5 -5
  109. package/dist/public_api.d.ts.map +1 -1
  110. package/dist/public_api.js +60 -0
  111. package/dist/public_api.js.map +1 -0
  112. package/dist/state_machine.d.ts +19 -12
  113. package/dist/state_machine.d.ts.map +1 -1
  114. package/dist/state_machine.js +437 -0
  115. package/dist/state_machine.js.map +1 -0
  116. package/dist/types/errors.d.ts +12 -3
  117. package/dist/types/errors.d.ts.map +1 -1
  118. package/dist/types/errors.js +273 -0
  119. package/dist/types/errors.js.map +1 -0
  120. package/dist/types/grpc.d.ts +6 -4
  121. package/dist/types/grpc.d.ts.map +1 -1
  122. package/dist/types/grpc.js +81 -0
  123. package/dist/types/grpc.js.map +1 -0
  124. package/dist/types/protocol.d.ts +9 -5
  125. package/dist/types/protocol.d.ts.map +1 -1
  126. package/dist/types/protocol.js +147 -0
  127. package/dist/types/protocol.js.map +1 -0
  128. package/dist/types/router.d.ts +8 -8
  129. package/dist/types/router.d.ts.map +1 -1
  130. package/dist/types/router.js +36 -0
  131. package/dist/types/router.js.map +1 -0
  132. package/dist/types/types.d.ts +1 -0
  133. package/dist/types/types.d.ts.map +1 -1
  134. package/dist/types/types.js +138 -0
  135. package/dist/types/types.js.map +1 -0
  136. package/dist/utils/{assumpsions.d.ts → assumptions.d.ts} +1 -1
  137. package/dist/utils/{assumpsions.d.ts.map → assumptions.d.ts.map} +1 -1
  138. package/dist/utils/assumptions.js +101 -0
  139. package/dist/utils/assumptions.js.map +1 -0
  140. package/dist/utils/message_logger.d.ts +28 -0
  141. package/dist/utils/message_logger.d.ts.map +1 -0
  142. package/dist/utils/message_logger.js +88 -0
  143. package/dist/utils/message_logger.js.map +1 -0
  144. package/dist/utils/promises.d.ts +15 -0
  145. package/dist/utils/promises.d.ts.map +1 -0
  146. package/dist/utils/promises.js +67 -0
  147. package/dist/utils/promises.js.map +1 -0
  148. package/dist/utils/public_utils.js +49 -0
  149. package/dist/utils/public_utils.js.map +1 -0
  150. package/dist/utils/rand.d.ts +1 -1
  151. package/dist/utils/rand.d.ts.map +1 -1
  152. package/dist/utils/rand.js +114 -0
  153. package/dist/utils/rand.js.map +1 -0
  154. package/dist/utils/utils.d.ts +1 -10
  155. package/dist/utils/utils.d.ts.map +1 -1
  156. package/dist/utils/utils.js +122 -0
  157. package/dist/utils/utils.js.map +1 -0
  158. package/dist/workflows/workflow.d.ts +101 -0
  159. package/dist/workflows/workflow.d.ts.map +1 -0
  160. package/dist/workflows/workflow.js +80 -0
  161. package/dist/workflows/workflow.js.map +1 -0
  162. package/dist/workflows/workflow_state_service.d.ts +35 -0
  163. package/dist/workflows/workflow_state_service.d.ts.map +1 -0
  164. package/dist/workflows/workflow_state_service.js +201 -0
  165. package/dist/workflows/workflow_state_service.js.map +1 -0
  166. package/dist/workflows/workflow_wrapper_service.d.ts +10 -0
  167. package/dist/workflows/workflow_wrapper_service.d.ts.map +1 -0
  168. package/dist/workflows/workflow_wrapper_service.js +264 -0
  169. package/dist/workflows/workflow_wrapper_service.js.map +1 -0
  170. package/package.json +38 -39
  171. package/src/clients/workflow_client.ts +290 -0
  172. package/src/connection/buffered_connection.ts +47 -0
  173. package/src/connection/connection.ts +34 -0
  174. package/src/connection/embedded_connection.ts +62 -0
  175. package/src/connection/http_connection.ts +228 -0
  176. package/src/connection/lambda_connection.ts +69 -0
  177. package/src/context.ts +633 -0
  178. package/src/context_impl.ts +721 -0
  179. package/src/embedded/api.ts +57 -0
  180. package/src/embedded/handler.ts +36 -0
  181. package/src/embedded/http2_remote.ts +103 -0
  182. package/src/embedded/invocation.ts +126 -0
  183. package/src/endpoint/endpoint_impl.ts +623 -0
  184. package/src/endpoint/http2_handler.ts +151 -0
  185. package/src/endpoint/lambda_handler.ts +181 -0
  186. package/src/endpoint.ts +187 -0
  187. package/src/generated/dev/restate/events.ts +430 -0
  188. package/src/generated/dev/restate/ext.ts +238 -0
  189. package/src/generated/google/protobuf/descriptor.ts +7889 -0
  190. package/src/generated/google/protobuf/empty.ts +150 -0
  191. package/src/generated/google/protobuf/struct.ts +878 -0
  192. package/src/generated/proto/discovery.ts +423 -0
  193. package/src/generated/proto/dynrpc.ts +768 -0
  194. package/src/generated/proto/javascript.ts +488 -0
  195. package/src/generated/proto/protocol.ts +3091 -0
  196. package/src/generated/proto/services.ts +1834 -0
  197. package/src/generated/proto/test.ts +387 -0
  198. package/src/invocation.ts +212 -0
  199. package/src/io/decoder.ts +171 -0
  200. package/src/io/encoder.ts +72 -0
  201. package/src/journal.ts +537 -0
  202. package/src/local_state_store.ts +94 -0
  203. package/src/logger.ts +121 -0
  204. package/src/promise_combinator_tracker.ts +191 -0
  205. package/src/public_api.ts +53 -0
  206. package/src/state_machine.ts +635 -0
  207. package/src/types/errors.ts +297 -0
  208. package/src/types/grpc.ts +97 -0
  209. package/src/types/protocol.ts +201 -0
  210. package/src/types/router.ts +118 -0
  211. package/src/types/types.ts +160 -0
  212. package/src/utils/assumptions.ts +131 -0
  213. package/src/utils/message_logger.ts +112 -0
  214. package/src/utils/promises.ts +118 -0
  215. package/src/utils/public_utils.ts +91 -0
  216. package/src/utils/rand.ts +142 -0
  217. package/src/utils/utils.ts +178 -0
  218. package/src/workflows/workflow.ts +178 -0
  219. package/src/workflows/workflow_state_service.ts +299 -0
  220. package/src/workflows/workflow_wrapper_service.ts +314 -0
  221. package/dist/cloudflare_bundle.js +0 -27387
  222. package/dist/restate_context.d.ts.map +0 -1
  223. package/dist/restate_context_impl.d.ts.map +0 -1
  224. package/dist/server/base_restate_server.d.ts +0 -32
  225. package/dist/server/base_restate_server.d.ts.map +0 -1
  226. package/dist/server/restate_lambda_handler.d.ts +0 -104
  227. package/dist/server/restate_lambda_handler.d.ts.map +0 -1
  228. package/dist/server/restate_server.d.ts +0 -97
  229. package/dist/server/restate_server.d.ts.map +0 -1
  230. package/dist/utils/logger.d.ts +0 -60
  231. package/dist/utils/logger.d.ts.map +0 -1
@@ -0,0 +1,29 @@
1
+ import { WrappedPromise } from "./utils/promises";
2
+ export declare enum PromiseType {
3
+ JournalEntry = 0
4
+ }
5
+ export interface PromiseId {
6
+ type: PromiseType;
7
+ id: number;
8
+ }
9
+ export declare function newJournalEntryPromiseId(entryIndex: number): PromiseId;
10
+ /**
11
+ * This class takes care of creating and managing deterministic promise combinators.
12
+ *
13
+ * It should be wired up to the journal/state machine methods to read and write entries.
14
+ */
15
+ export declare class PromiseCombinatorTracker {
16
+ private readonly readReplayOrder;
17
+ private readonly onWriteCombinatorOrder;
18
+ private nextCombinatorIndex;
19
+ private pendingCombinators;
20
+ constructor(readReplayOrder: (combinatorIndex: number) => PromiseId[] | undefined, onWriteCombinatorOrder: (combinatorIndex: number, order: PromiseId[]) => Promise<void>);
21
+ createCombinator(combinatorConstructor: (promises: PromiseLike<unknown>[]) => Promise<unknown>, promises: Array<{
22
+ id: PromiseId;
23
+ promise: Promise<unknown>;
24
+ }>): WrappedPromise<unknown>;
25
+ private appendOrder;
26
+ private onCombinatorReplayed;
27
+ private onCombinatorResolved;
28
+ }
29
+ //# sourceMappingURL=promise_combinator_tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise_combinator_tracker.d.ts","sourceRoot":"","sources":["../src/promise_combinator_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,oBAAY,WAAW;IACrB,YAAY,IAAA;CAGb;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAKtE;AAkGD;;;;GAIG;AACH,qBAAa,wBAAwB;IAKjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAGhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAPzC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,kBAAkB,CAAuC;gBAG9C,eAAe,EAAE,CAChC,eAAe,EAAE,MAAM,KACpB,SAAS,EAAE,GAAG,SAAS,EACX,sBAAsB,EAAE,CACvC,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,EAAE,KACf,OAAO,CAAC,IAAI,CAAC;IAGb,gBAAgB,CACrB,qBAAqB,EAAE,CACrB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,KAC7B,OAAO,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,GAC5D,cAAc,CAAC,OAAO,CAAC;IAkB1B,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,oBAAoB;YAKd,oBAAoB;CAanC"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromiseCombinatorTracker = exports.newJournalEntryPromiseId = exports.PromiseType = void 0;
4
+ const promises_1 = require("./utils/promises");
5
+ var PromiseType;
6
+ (function (PromiseType) {
7
+ PromiseType[PromiseType["JournalEntry"] = 0] = "JournalEntry";
8
+ // Combinator?,
9
+ // SideEffect?
10
+ })(PromiseType = exports.PromiseType || (exports.PromiseType = {}));
11
+ function newJournalEntryPromiseId(entryIndex) {
12
+ return {
13
+ type: PromiseType.JournalEntry,
14
+ id: entryIndex,
15
+ };
16
+ }
17
+ exports.newJournalEntryPromiseId = newJournalEntryPromiseId;
18
+ /**
19
+ * Prepare a Promise combinator
20
+ *
21
+ * @param combinatorIndex the index of this combinator
22
+ * @param combinatorConstructor the function that creates the combinator promise, e.g. Promise.all/any/race/allSettled
23
+ * @param promises the promises given by the user, and the respective ids
24
+ * @param readReplayOrder the function to read the replay order
25
+ * @param onNewCompleted callback when a child entry is resolved
26
+ * @param onCombinatorResolved callback when the combinator is resolved
27
+ * @param onCombinatorReplayed callback when the combinator is replayed
28
+ */
29
+ function preparePromiseCombinator(combinatorIndex, combinatorConstructor, promises, readReplayOrder, onNewCompleted, onCombinatorResolved, onCombinatorReplayed) {
30
+ // Create the proxy promises and index them
31
+ const promisesWithProxyPromise = promises.map((v) => ({
32
+ id: v.id,
33
+ originalPromise: v.promise,
34
+ proxyPromise: new promises_1.CompletablePromise(),
35
+ }));
36
+ const promisesMap = new Map(promisesWithProxyPromise.map((v) => [
37
+ // We need to define a key format for this map...
38
+ v.id.type.toString() + "-" + v.id.id.toString(),
39
+ { originalPromise: v.originalPromise, proxyPromise: v.proxyPromise },
40
+ ]));
41
+ // Create the combinator using the proxy promises
42
+ const combinator = combinatorConstructor(promisesWithProxyPromise.map((v) => v.proxyPromise.promise)).finally(async () =>
43
+ // Once the combinator is resolved, notify back.
44
+ await onCombinatorResolved(combinatorIndex));
45
+ return (0, promises_1.wrapDeeply)(combinator, () => {
46
+ const replayOrder = readReplayOrder(combinatorIndex);
47
+ if (replayOrder === undefined) {
48
+ // We're in processing mode! We need to wire up original promises with proxy promises
49
+ for (const { originalPromise, proxyPromise, id, } of promisesWithProxyPromise) {
50
+ originalPromise
51
+ // This code works deterministically because the javascript runtime will enqueue
52
+ // the listeners of the proxy promise (which are mounted in Promise.all/any) in a single FIFO queue,
53
+ // so a subsequent resolve on another proxy promise can't overtake this one.
54
+ //
55
+ // Some resources:
56
+ // * https://stackoverflow.com/questions/38059284/why-does-javascript-promise-then-handler-run-after-other-code
57
+ // * https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues
58
+ // * https://tr.javascript.info/microtask-queue
59
+ .then((v) => {
60
+ onNewCompleted(combinatorIndex, id);
61
+ proxyPromise.resolve(v);
62
+ }, (e) => {
63
+ onNewCompleted(combinatorIndex, id);
64
+ proxyPromise.reject(e);
65
+ });
66
+ }
67
+ return;
68
+ }
69
+ // We're in replay mode, Now follow the replayIndexes order.
70
+ onCombinatorReplayed(combinatorIndex);
71
+ for (const promiseId of replayOrder) {
72
+ // These are already completed, so once we set the then callback they will be immediately resolved.
73
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
74
+ const { originalPromise, proxyPromise } = promisesMap.get(promiseId.type.toString() + "-" + promiseId.id.toString());
75
+ // Because this promise is already completed, promise.then will immediately enqueue in the promise microtask queue
76
+ // the handlers to execute.
77
+ // See the comment below for more details.
78
+ originalPromise.then((v) => proxyPromise.resolve(v), (e) => proxyPromise.reject(e));
79
+ }
80
+ });
81
+ }
82
+ /**
83
+ * This class takes care of creating and managing deterministic promise combinators.
84
+ *
85
+ * It should be wired up to the journal/state machine methods to read and write entries.
86
+ */
87
+ class PromiseCombinatorTracker {
88
+ readReplayOrder;
89
+ onWriteCombinatorOrder;
90
+ nextCombinatorIndex = 0;
91
+ pendingCombinators = new Map();
92
+ constructor(readReplayOrder, onWriteCombinatorOrder) {
93
+ this.readReplayOrder = readReplayOrder;
94
+ this.onWriteCombinatorOrder = onWriteCombinatorOrder;
95
+ }
96
+ createCombinator(combinatorConstructor, promises) {
97
+ const combinatorIndex = this.nextCombinatorIndex;
98
+ this.nextCombinatorIndex++;
99
+ // Prepare combinator order
100
+ this.pendingCombinators.set(combinatorIndex, []);
101
+ return preparePromiseCombinator(combinatorIndex, combinatorConstructor, promises, this.readReplayOrder, this.appendOrder.bind(this), this.onCombinatorResolved.bind(this), this.onCombinatorReplayed.bind(this));
102
+ }
103
+ appendOrder(idx, promiseId) {
104
+ const order = this.pendingCombinators.get(idx);
105
+ if (order === undefined) {
106
+ // The order was already published, nothing to do here.
107
+ return;
108
+ }
109
+ order.push(promiseId);
110
+ }
111
+ onCombinatorReplayed(idx) {
112
+ // This avoids republishing the order
113
+ this.pendingCombinators.delete(idx);
114
+ }
115
+ async onCombinatorResolved(idx) {
116
+ const order = this.pendingCombinators.get(idx);
117
+ if (order === undefined) {
118
+ // It was already published
119
+ return;
120
+ }
121
+ // We don't need this list anymore.
122
+ this.pendingCombinators.delete(idx);
123
+ // Publish the combinator order
124
+ await this.onWriteCombinatorOrder(idx, order);
125
+ }
126
+ }
127
+ exports.PromiseCombinatorTracker = PromiseCombinatorTracker;
128
+ //# sourceMappingURL=promise_combinator_tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise_combinator_tracker.js","sourceRoot":"","sources":["../src/promise_combinator_tracker.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- export { RestateContext, RestateGrpcContext, useContext, ServiceApi, RpcContext, } from "./restate_context";
1
+ export { RestateContext, Context, KeyedContext, useContext, useKeyedContext, ServiceApi, CombineablePromise, Rand, RestateGrpcChannel, } from "./context";
2
2
  export { router, keyedRouter, keyedEventHandler, UnKeyedRouter, KeyedRouter, KeyedEventHandler, Client, SendClient, } from "./types/router";
3
- export { RestateServer, createServer } from "./server/restate_server";
4
- export { ServiceOpts } from "./server/base_restate_server";
5
- export { LambdaRestateServer, createLambdaApiGatewayHandler, } from "./server/restate_lambda_handler";
3
+ export { endpoint, ServiceBundle, ServiceOpts, RestateEndpoint, } from "./endpoint";
6
4
  export * as RestateUtils from "./utils/public_utils";
7
- export { ErrorCodes, RestateError, TerminalError } from "./types/errors";
5
+ export { ErrorCodes, RestateError, TerminalError, TimeoutError, } from "./types/errors";
8
6
  export { Event } from "./types/types";
9
7
  export { RestateConnection, connection, RestateConnectionOptions, } from "./embedded/api";
8
+ export * as workflow from "./workflows/workflow";
9
+ export * as clients from "./clients/workflow_client";
10
10
  //# sourceMappingURL=public_api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../src/public_api.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,YAAY,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,wBAAwB,GACzB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../src/public_api.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,cAAc,EACd,OAAO,EACP,YAAY,EACZ,UAAU,EACV,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,IAAI,EACJ,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,YAAY,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
4
+ *
5
+ * This file is part of the Restate SDK for Node.js/TypeScript,
6
+ * which is released under the MIT license.
7
+ *
8
+ * You can find a copy of the license in file LICENSE in the root
9
+ * directory of this repository or package, or at
10
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.clients = exports.workflow = exports.connection = exports.RestateConnection = exports.Event = exports.TimeoutError = exports.TerminalError = exports.RestateError = exports.ErrorCodes = exports.RestateUtils = exports.endpoint = exports.keyedEventHandler = exports.keyedRouter = exports.router = exports.CombineablePromise = exports.useKeyedContext = exports.useContext = void 0;
37
+ var context_1 = require("./context");
38
+ Object.defineProperty(exports, "useContext", { enumerable: true, get: function () { return context_1.useContext; } });
39
+ Object.defineProperty(exports, "useKeyedContext", { enumerable: true, get: function () { return context_1.useKeyedContext; } });
40
+ Object.defineProperty(exports, "CombineablePromise", { enumerable: true, get: function () { return context_1.CombineablePromise; } });
41
+ var router_1 = require("./types/router");
42
+ Object.defineProperty(exports, "router", { enumerable: true, get: function () { return router_1.router; } });
43
+ Object.defineProperty(exports, "keyedRouter", { enumerable: true, get: function () { return router_1.keyedRouter; } });
44
+ Object.defineProperty(exports, "keyedEventHandler", { enumerable: true, get: function () { return router_1.keyedEventHandler; } });
45
+ var endpoint_1 = require("./endpoint");
46
+ Object.defineProperty(exports, "endpoint", { enumerable: true, get: function () { return endpoint_1.endpoint; } });
47
+ exports.RestateUtils = __importStar(require("./utils/public_utils"));
48
+ var errors_1 = require("./types/errors");
49
+ Object.defineProperty(exports, "ErrorCodes", { enumerable: true, get: function () { return errors_1.ErrorCodes; } });
50
+ Object.defineProperty(exports, "RestateError", { enumerable: true, get: function () { return errors_1.RestateError; } });
51
+ Object.defineProperty(exports, "TerminalError", { enumerable: true, get: function () { return errors_1.TerminalError; } });
52
+ Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return errors_1.TimeoutError; } });
53
+ var types_1 = require("./types/types");
54
+ Object.defineProperty(exports, "Event", { enumerable: true, get: function () { return types_1.Event; } });
55
+ var api_1 = require("./embedded/api");
56
+ Object.defineProperty(exports, "RestateConnection", { enumerable: true, get: function () { return api_1.RestateConnection; } });
57
+ Object.defineProperty(exports, "connection", { enumerable: true, get: function () { return api_1.connection; } });
58
+ exports.workflow = __importStar(require("./workflows/workflow"));
59
+ exports.clients = __importStar(require("./clients/workflow_client"));
60
+ //# sourceMappingURL=public_api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.js","sourceRoot":"","sources":["../src/public_api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAUmB;AANjB,qGAAA,UAAU,OAAA;AACV,0GAAA,eAAe,OAAA;AAEf,6GAAA,kBAAkB,OAAA;AAIpB,yCASwB;AARtB,gGAAA,MAAM,OAAA;AACN,qGAAA,WAAW,OAAA;AACX,2GAAA,iBAAiB,OAAA;AAOnB,uCAKoB;AAJlB,oGAAA,QAAQ,OAAA;AAKV,qEAAqD;AACrD,yCAKwB;AAJtB,oGAAA,UAAU,OAAA;AACV,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AAEd,uCAAsC;AAA7B,8FAAA,KAAK,OAAA;AACd,sCAIwB;AAHtB,wGAAA,iBAAiB,OAAA;AACjB,iGAAA,UAAU,OAAA;AAGZ,iEAAiD;AACjD,qEAAqD"}
@@ -3,9 +3,12 @@ import * as p from "./types/protocol";
3
3
  import { Connection, RestateStreamConsumer } from "./connection/connection";
4
4
  import { ProtocolMode } from "./generated/proto/discovery";
5
5
  import { Message } from "./types/types";
6
+ import { StateMachineConsole } from "./utils/message_logger";
6
7
  import { Invocation } from "./invocation";
7
- import { TerminalError, RetryableError } from "./types/errors";
8
8
  import { LocalStateStore } from "./local_state_store";
9
+ import { LoggerContext } from "./logger";
10
+ import { WrappedPromise } from "./utils/promises";
11
+ import { PromiseId } from "./promise_combinator_tracker";
9
12
  export declare class StateMachine<I, O> implements RestateStreamConsumer {
10
13
  private readonly connection;
11
14
  private readonly invocation;
@@ -18,9 +21,17 @@ export declare class StateMachine<I, O> implements RestateStreamConsumer {
18
21
  readonly localStateStore: LocalStateStore;
19
22
  private inputChannelClosed;
20
23
  private suspensionTimeout?;
21
- constructor(connection: Connection, invocation: Invocation<I, O>, protocolMode: ProtocolMode, suspensionMillis?: number);
24
+ private promiseCombinatorTracker;
25
+ console: StateMachineConsole;
26
+ constructor(connection: Connection, invocation: Invocation<I, O>, protocolMode: ProtocolMode, keyedContext: boolean, loggerContext: LoggerContext, suspensionMillis?: number);
22
27
  handleMessage(m: Message): boolean;
23
28
  handleUserCodeMessage<T>(messageType: bigint, message: p.ProtocolMessage, completedFlag?: boolean, protocolVersion?: number, requiresAckFlag?: boolean): WrappedPromise<T | void>;
29
+ createCombinator(combinatorConstructor: (promises: PromiseLike<unknown>[]) => Promise<unknown>, promises: Array<{
30
+ id: PromiseId;
31
+ promise: Promise<unknown>;
32
+ }>): WrappedPromise<unknown>;
33
+ readCombinatorOrderEntry(combinatorId: number): PromiseId[] | undefined;
34
+ writeCombinatorOrderEntry(combinatorId: number, order: PromiseId[]): Promise<void>;
24
35
  /**
25
36
  * Invokes the RPC function and returns a promise that completes when the state machine
26
37
  * stops processing the invocation, meaning when:
@@ -49,27 +60,23 @@ export declare class StateMachine<I, O> implements RestateStreamConsumer {
49
60
  * on the connection layer.
50
61
  */
51
62
  private unhandledError;
52
- private scheduleSuspension;
63
+ /**
64
+ * This method is invoked when we hit a suspension point. A suspension point is everytime the user "await"s a Promise returned by RestateContext that might be completed at a later point in time by a CompletionMessage/AckMessage.
65
+ *
66
+ * Depending on the state of the read channel, and on the protocol mode, it might either immediately suspend, or schedule a suspension to happen at a later point in time.
67
+ */
68
+ private hitSuspensionPoint;
53
69
  private getSuspensionMillis;
54
70
  private suspend;
55
- notifyHandlerExecutionError(e: RetryableError | TerminalError): Promise<void>;
56
71
  /**
57
72
  * WARNING: make sure you use this at the right point in the code
58
73
  * After the index has been incremented...
59
74
  * This is error-prone... Would be good to have a better solution for this.
60
75
  */
61
76
  getUserCodeJournalIndex(): number;
62
- getFullServiceName(): string;
63
77
  handleInputClosed(): void;
64
78
  handleStreamError(e: Error): void;
65
79
  nextEntryWillBeReplayed(): boolean;
66
80
  private clearSuspensionTimeout;
67
81
  }
68
- /**
69
- * Returns a promise that wraps the original promise and calls cb() at the first time
70
- * this promise or any nested promise that is chained to it is awaited. (then-ed)
71
- */
72
- export type WrappedPromise<T> = Promise<T> & {
73
- transform: <TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
74
- };
75
82
  //# sourceMappingURL=state_machine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state_machine.d.ts","sourceRoot":"","sources":["../src/state_machine.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAgBxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAEL,aAAa,EACb,cAAc,EAGf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,qBAAqB;IAwB5D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IA1BnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAAyB;IAE/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2C;IAO9E,OAAO,CAAC,kBAAkB,CAAS;IAEnC,SAAgB,eAAe,EAAE,eAAe,CAAC;IAKjD,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,iBAAiB,CAAC,CAAiB;gBAGxB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,YAAY,EAAE,YAAY,EAC1B,gBAAgB,GAAE,MAAe;IAY7C,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO;IA0ClC,qBAAqB,CAAC,CAAC,EAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,CAAC,eAAe,EAC1B,aAAa,CAAC,EAAE,OAAO,EACvB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,OAAO,GACxB,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC;IA+C3B;;;;;;;;;;;;;OAaG;IACI,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAqIzB,kBAAkB;IAUhC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,IAAI;IAMZ;;OAEG;YACW,MAAM;IAcpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,mBAAmB;YAOb,OAAO;IAoCR,2BAA2B,CAAC,CAAC,EAAE,cAAc,GAAG,aAAa;IAI1E;;;;OAIG;IACI,uBAAuB,IAAI,MAAM;IAIjC,kBAAkB,IAAI,MAAM;IAO5B,iBAAiB,IAAI,IAAI;IAsBzB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IASjC,uBAAuB;IAI9B,OAAO,CAAC,sBAAsB;CAM/B;AACD;;;GAGG;AAGH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAC3C,SAAS,EAAE,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EACxC,WAAW,CAAC,EACR,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAChD,IAAI,GACJ,SAAS,EACb,UAAU,CAAC,EACP,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACnD,IAAI,GACJ,SAAS,KACV,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;CACnC,CAAC"}
1
+ {"version":3,"file":"state_machine.d.ts","sourceRoot":"","sources":["../src/state_machine.ts"],"names":[],"mappings":"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"}