@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,49 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.NO_RETRIES = exports.DEFAULT_INFINITE_EXPONENTIAL_BACKOFF = exports.DEFAULT_INITIAL_DELAY_MS = exports.EXPONENTIAL_BACKOFF = exports.FIXED_DELAY = void 0;
14
+ /**
15
+ * A {@link RetryPolicy} that keeps a fixed delay between retries.
16
+ */
17
+ exports.FIXED_DELAY = {
18
+ computeNextDelay(previousDelayMs) {
19
+ return previousDelayMs;
20
+ },
21
+ };
22
+ /**
23
+ * A {@link RetryPolicy} that does an exponential backoff delay between retries.
24
+ * Each delay is twice as long as the previous delay.
25
+ */
26
+ exports.EXPONENTIAL_BACKOFF = {
27
+ computeNextDelay(previousDelayMs) {
28
+ return 2 * previousDelayMs;
29
+ },
30
+ };
31
+ /**
32
+ * The default initial delay between retries: 10 milliseconds.
33
+ */
34
+ exports.DEFAULT_INITIAL_DELAY_MS = 10;
35
+ /**
36
+ * Default retry policy that retries an infinite number of times, with exponential backoff
37
+ * and a starting delay of 10 milliseconds.
38
+ */
39
+ exports.DEFAULT_INFINITE_EXPONENTIAL_BACKOFF = {
40
+ initialDelayMs: exports.DEFAULT_INITIAL_DELAY_MS,
41
+ maxDelayMs: Number.MAX_SAFE_INTEGER,
42
+ maxRetries: Number.MAX_SAFE_INTEGER,
43
+ policy: exports.EXPONENTIAL_BACKOFF,
44
+ };
45
+ /**
46
+ * Retry policy that does no retries.
47
+ */
48
+ exports.NO_RETRIES = { maxRetries: 0 };
49
+ //# sourceMappingURL=public_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_utils.js","sourceRoot":"","sources":["../../src/utils/public_utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AASH;;GAEG;AACU,QAAA,WAAW,GAAgB;IACtC,gBAAgB,CAAC,eAAuB;QACtC,OAAO,eAAe,CAAC;IACzB,CAAC;CACF,CAAC;AAEF;;;GAGG;AACU,QAAA,mBAAmB,GAAgB;IAC9C,gBAAgB,CAAC,eAAuB;QACtC,OAAO,CAAC,GAAG,eAAe,CAAC;IAC7B,CAAC;CACF,CAAC;AAoCF;;GAEG;AACU,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C;;;GAGG;AACU,QAAA,oCAAoC,GAAkB;IACjE,cAAc,EAAE,gCAAwB;IACxC,UAAU,EAAE,MAAM,CAAC,gBAAgB;IACnC,UAAU,EAAE,MAAM,CAAC,gBAAgB;IACnC,MAAM,EAAE,2BAAmB;CAC5B,CAAC;AAEF;;GAEG;AACU,QAAA,UAAU,GAAkB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { Rand } from "../restate_context";
2
+ import { Rand } from "../context";
3
3
  export declare class RandImpl implements Rand {
4
4
  private randstate256;
5
5
  constructor(id: Buffer | [bigint, bigint, bigint, bigint]);
@@ -1 +1 @@
1
- {"version":3,"file":"rand.d.ts","sourceRoot":"","sources":["../../src/utils/rand.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAQ1C,qBAAa,QAAS,YAAW,IAAI;IACnC,OAAO,CAAC,YAAY,CAAmC;gBAE3C,EAAE,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAgBzD,MAAM,CAAC,QAAQ,SAAoB;IAInC,GAAG,IAAI,MAAM;IAuBb,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIzC,YAAY;IAUZ,MAAM,CAAC,QAAQ,SAAoB;IAE5B,MAAM,IAAI,MAAM;IAShB,MAAM,IAAI,MAAM;CAWxB"}
1
+ {"version":3,"file":"rand.d.ts","sourceRoot":"","sources":["../../src/utils/rand.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKlC,qBAAa,QAAS,YAAW,IAAI;IACnC,OAAO,CAAC,YAAY,CAAmC;gBAE3C,EAAE,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAgBzD,MAAM,CAAC,QAAQ,SAAoB;IAInC,GAAG,IAAI,MAAM;IAuBb,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIzC,YAAY;IAUZ,MAAM,CAAC,QAAQ,SAAoB;IAE5B,MAAM,IAAI,MAAM;IAShB,MAAM,IAAI,MAAM;CAWxB"}
@@ -0,0 +1,114 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RandImpl = void 0;
14
+ const errors_1 = require("../types/errors");
15
+ const context_impl_1 = require("../context_impl");
16
+ const crypto_1 = require("crypto");
17
+ class RandImpl {
18
+ randstate256;
19
+ constructor(id) {
20
+ if (id instanceof Buffer) {
21
+ // hash the invocation ID, which is known to contain 74 bits of entropy
22
+ const hash = (0, crypto_1.createHash)("sha256").update(id).digest();
23
+ this.randstate256 = [
24
+ hash.readBigUInt64LE(0),
25
+ hash.readBigUInt64LE(8),
26
+ hash.readBigUInt64LE(16),
27
+ hash.readBigUInt64LE(24),
28
+ ];
29
+ }
30
+ else {
31
+ this.randstate256 = id;
32
+ }
33
+ }
34
+ static U64_MASK = (1n << 64n) - 1n;
35
+ // xoshiro256++
36
+ // https://prng.di.unimi.it/xoshiro256plusplus.c - public domain
37
+ u64() {
38
+ const result = (RandImpl.rotl((this.randstate256[0] + this.randstate256[3]) & RandImpl.U64_MASK, 23n) +
39
+ this.randstate256[0]) &
40
+ RandImpl.U64_MASK;
41
+ const t = (this.randstate256[1] << 17n) & RandImpl.U64_MASK;
42
+ this.randstate256[2] ^= this.randstate256[0];
43
+ this.randstate256[3] ^= this.randstate256[1];
44
+ this.randstate256[1] ^= this.randstate256[2];
45
+ this.randstate256[0] ^= this.randstate256[3];
46
+ this.randstate256[2] ^= t;
47
+ this.randstate256[3] = RandImpl.rotl(this.randstate256[3], 45n);
48
+ return result;
49
+ }
50
+ static rotl(x, k) {
51
+ return ((x << k) & RandImpl.U64_MASK) | (x >> (64n - k));
52
+ }
53
+ checkContext() {
54
+ const context = context_impl_1.ContextImpl.callContext.getStore();
55
+ if (context && context.type === context_impl_1.CallContexType.SideEffect) {
56
+ throw new errors_1.TerminalError(`You may not call methods on Rand from within a side effect.`, { errorCode: errors_1.ErrorCodes.INTERNAL });
57
+ }
58
+ }
59
+ static U53_MASK = (1n << 53n) - 1n;
60
+ random() {
61
+ this.checkContext();
62
+ // first generate a uint in range [0,2^53), which can be mapped 1:1 to a float64 in [0,1)
63
+ const u53 = this.u64() & RandImpl.U53_MASK;
64
+ // then divide by 2^53, which will simply update the exponent
65
+ return Number(u53) / 2 ** 53;
66
+ }
67
+ uuidv4() {
68
+ this.checkContext();
69
+ const buf = Buffer.alloc(16);
70
+ buf.writeBigUInt64LE(this.u64(), 0);
71
+ buf.writeBigUInt64LE(this.u64(), 8);
72
+ // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
73
+ buf[6] = (buf[6] & 0x0f) | 0x40;
74
+ buf[8] = (buf[8] & 0x3f) | 0x80;
75
+ return uuidStringify(buf);
76
+ }
77
+ }
78
+ exports.RandImpl = RandImpl;
79
+ const byteToHex = [];
80
+ for (let i = 0; i < 256; ++i) {
81
+ byteToHex.push((i + 0x100).toString(16).slice(1));
82
+ }
83
+ /**
84
+ * Convert array of 16 byte values to UUID string format of the form:
85
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
86
+ */
87
+ function uuidStringify(arr, offset = 0) {
88
+ // Note: Be careful editing this code! It's been tuned for performance
89
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
90
+ //
91
+ // Note to future-self: No, you can't remove the `toLowerCase()` call.
92
+ // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351
93
+ return (byteToHex[arr[offset + 0]] +
94
+ byteToHex[arr[offset + 1]] +
95
+ byteToHex[arr[offset + 2]] +
96
+ byteToHex[arr[offset + 3]] +
97
+ "-" +
98
+ byteToHex[arr[offset + 4]] +
99
+ byteToHex[arr[offset + 5]] +
100
+ "-" +
101
+ byteToHex[arr[offset + 6]] +
102
+ byteToHex[arr[offset + 7]] +
103
+ "-" +
104
+ byteToHex[arr[offset + 8]] +
105
+ byteToHex[arr[offset + 9]] +
106
+ "-" +
107
+ byteToHex[arr[offset + 10]] +
108
+ byteToHex[arr[offset + 11]] +
109
+ byteToHex[arr[offset + 12]] +
110
+ byteToHex[arr[offset + 13]] +
111
+ byteToHex[arr[offset + 14]] +
112
+ byteToHex[arr[offset + 15]]).toLowerCase();
113
+ }
114
+ //# sourceMappingURL=rand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rand.js","sourceRoot":"","sources":["../../src/utils/rand.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAMH,4CAA4D;AAC5D,kDAA8D;AAC9D,mCAAoC;AAEpC,MAAa,QAAQ;IACX,YAAY,CAAmC;IAEvD,YAAY,EAA6C;QACvD,IAAI,EAAE,YAAY,MAAM,EAAE;YACxB,uEAAuE;YACvE,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YAEtD,IAAI,CAAC,YAAY,GAAG;gBAClB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;aACzB,CAAC;SACH;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACxB;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IAEnC,eAAe;IACf,gEAAgE;IAChE,GAAG;QACD,MAAM,MAAM,GACV,CAAC,QAAQ,CAAC,IAAI,CACZ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,EACjE,GAAG,CACJ;YACC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACvB,QAAQ,CAAC,QAAQ,CAAC;QAEpB,MAAM,CAAC,GAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEpE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAS,EAAE,CAAS;QAC9B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAAG,0BAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,6BAAc,CAAC,UAAU,EAAE;YACzD,MAAM,IAAI,sBAAa,CACrB,6DAA6D,EAC7D,EAAE,SAAS,EAAE,mBAAU,CAAC,QAAQ,EAAE,CACnC,CAAC;SACH;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IAE5B,MAAM;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,yFAAyF;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3C,6DAA6D;QAC7D,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,gEAAgE;QAChE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAChC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;;AAjFH,4BAkFC;AAED,MAAM,SAAS,GAAa,EAAE,CAAC;AAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC5B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,MAAM,GAAG,CAAC;IAC5C,uEAAuE;IACvE,oFAAoF;IACpF,EAAE;IACF,sEAAsE;IACtE,uEAAuE;IACvE,OAAO,CACL,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,GAAG;QACH,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,GAAG;QACH,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,GAAG;QACH,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1B,GAAG;QACH,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3B,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAC5B,CAAC,WAAW,EAAE,CAAC;AAClB,CAAC"}
@@ -1,15 +1,6 @@
1
- export declare class CompletablePromise<T> {
2
- private success;
3
- private failure;
4
- readonly promise: Promise<T>;
5
- constructor();
6
- resolve(value: T): void;
7
- reject(reason?: any): void;
8
- }
9
1
  export declare function jsonSerialize(obj: any): string;
10
2
  export declare function jsonDeserialize<T>(json: string): T;
11
3
  export declare function jsonSafeAny(key: string, value: any): any;
12
- export declare function printMessageAsJson(obj: any): string;
13
- export declare function makeFqServiceName(pckg: string, name: string): string;
4
+ export declare function formatMessageAsJson(obj: any): string;
14
5
  export declare const equalityCheckers: Map<bigint, (msg1: any, msg2: any) => boolean>;
15
6
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAmCA,qBAAa,kBAAkB,CAAC,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,OAAO,CAA0B;IAEzC,SAAgB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;;IAS7B,OAAO,CAAC,KAAK,EAAE,CAAC;IAIhB,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG;CAG3B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAI9C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAMlD;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAoBxD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAWnD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpE;AA+ED,eAAO,MAAM,gBAAgB,qBAEpB,GAAG,QAAQ,GAAG,KAAK,OAAO,CAYjC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAmCA,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAI9C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAMlD;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAoBxD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAWpD;AA+ED,eAAO,MAAM,gBAAgB,qBAEpB,GAAG,QAAQ,GAAG,KAAK,OAAO,CAYjC,CAAC"}
@@ -0,0 +1,122 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.equalityCheckers = exports.formatMessageAsJson = exports.jsonSafeAny = exports.jsonDeserialize = exports.jsonSerialize = void 0;
14
+ const protocol_1 = require("../types/protocol");
15
+ function jsonSerialize(obj) {
16
+ return JSON.stringify(obj, (_, v) => typeof v === "bigint" ? "BIGINT::" + v.toString() : v);
17
+ }
18
+ exports.jsonSerialize = jsonSerialize;
19
+ function jsonDeserialize(json) {
20
+ return JSON.parse(json, (_, v) => typeof v === "string" && v.startsWith("BIGINT::")
21
+ ? BigInt(v.substring(8))
22
+ : v);
23
+ }
24
+ exports.jsonDeserialize = jsonDeserialize;
25
+ // When using google.protobuf.Value in RPC handler responses, we want to roughly match the behaviour of JSON.stringify
26
+ // for example in converting Date objects to a UTC string
27
+ function jsonSafeAny(key, value) {
28
+ if (value !== undefined &&
29
+ value !== null &&
30
+ typeof value.toJSON == "function") {
31
+ return value.toJSON(key);
32
+ }
33
+ else if (globalThis.Array.isArray(value)) {
34
+ // in place replace
35
+ value.forEach((_, i) => (value[i] = jsonSafeAny(i.toString(), value[i])));
36
+ return value;
37
+ }
38
+ else if (typeof value === "object") {
39
+ Object.keys(value).forEach((key) => {
40
+ value[key] = jsonSafeAny(key, value[key]);
41
+ });
42
+ return value;
43
+ }
44
+ else {
45
+ // primitive that doesn't have a toJSON method, with no children
46
+ return value;
47
+ }
48
+ }
49
+ exports.jsonSafeAny = jsonSafeAny;
50
+ function formatMessageAsJson(obj) {
51
+ const newObj = { ...obj };
52
+ for (const [key, value] of Object.entries(newObj)) {
53
+ if (Buffer.isBuffer(value)) {
54
+ newObj[key] = value.toString().trim();
55
+ }
56
+ }
57
+ // Stringify object. Replace bigintToString serializer to prevent "BigInt not serializable" errors
58
+ return JSON.stringify(obj, (_, v) => typeof v === "bigint" ? v.toString() + "n" : v);
59
+ }
60
+ exports.formatMessageAsJson = formatMessageAsJson;
61
+ /**
62
+ * Equality functions
63
+ * @param msg1 the current message from user code
64
+ * @param msg2 the replayed message
65
+ */
66
+ // These functions are used to check whether a replayed message matches the current user code.
67
+ // We check the fields which we can check
68
+ // (the fields which do not contain results, because these might be filled in the result)
69
+ const getStateMsgEquality = (msg1, msg2) => {
70
+ return msg1.key.equals(msg2.key);
71
+ };
72
+ const invokeMsgEquality = (msg1, msg2) => {
73
+ return (msg1.serviceName === msg2.serviceName &&
74
+ msg1.methodName === msg2.methodName &&
75
+ msg1.parameter.equals(msg2.parameter));
76
+ };
77
+ const setStateMsgEquality = (msg1, msg2) => {
78
+ return msg1.key.equals(msg2.key) && msg1.value.equals(msg2.value);
79
+ };
80
+ const clearStateMsgEquality = (msg1, msg2) => {
81
+ return msg1.key.equals(msg2.key);
82
+ };
83
+ const completeAwakeableMsgEquality = (msg1, msg2) => {
84
+ if (!(msg1.id === msg2.id)) {
85
+ return false;
86
+ }
87
+ if (msg1.value && msg2.value) {
88
+ return msg1.value.equals(msg2.value);
89
+ }
90
+ else if (msg1.failure && msg2.failure) {
91
+ return (msg1.failure?.code === msg2.failure?.code &&
92
+ msg1.failure?.message === msg2.failure?.message);
93
+ }
94
+ else {
95
+ return false;
96
+ }
97
+ };
98
+ const outputMsgEquality = (msg1, msg2) => {
99
+ if (msg1.value && msg2.value) {
100
+ return msg1.value.equals(msg2.value);
101
+ }
102
+ else if (msg1.failure && msg2.failure) {
103
+ return (msg1.failure?.code === msg2.failure?.code &&
104
+ msg1.failure?.message === msg2.failure?.message);
105
+ }
106
+ else {
107
+ return false;
108
+ }
109
+ };
110
+ exports.equalityCheckers = new Map([
111
+ [protocol_1.GET_STATE_ENTRY_MESSAGE_TYPE, getStateMsgEquality],
112
+ [protocol_1.SET_STATE_ENTRY_MESSAGE_TYPE, setStateMsgEquality],
113
+ [protocol_1.CLEAR_STATE_ENTRY_MESSAGE_TYPE, clearStateMsgEquality],
114
+ [protocol_1.INVOKE_ENTRY_MESSAGE_TYPE, invokeMsgEquality],
115
+ [protocol_1.BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, invokeMsgEquality],
116
+ [protocol_1.COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, completeAwakeableMsgEquality],
117
+ [protocol_1.OUTPUT_STREAM_ENTRY_MESSAGE_TYPE, outputMsgEquality],
118
+ [protocol_1.AWAKEABLE_ENTRY_MESSAGE_TYPE, () => true],
119
+ [protocol_1.SIDE_EFFECT_ENTRY_MESSAGE_TYPE, () => true],
120
+ [protocol_1.SLEEP_ENTRY_MESSAGE_TYPE, () => true],
121
+ ]);
122
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import * as restate from "../public_api";
2
+ /**
3
+ * Creates a new workflow service that will be served under the given path.
4
+ *
5
+ * A workflow must consist of
6
+ * - one run method: `run(ctx: WfContext, params: T) => Promise<R>`
7
+ * - an arbitrary number of interaction methods: `foo(ctx: SharedWfContext, params: X) => Promise<Y>`
8
+ */
9
+ export declare function workflow<R, T, U>(path: string, workflow: Workflow<R, T, U>): WorkflowServices<R, T, U>;
10
+ /**
11
+ * The type signature of a workflow.
12
+ * A workflow must consist of
13
+ * - one run method: `run(ctx: WfContext, params: T) => Promise<R>`
14
+ * - an arbitrary number of interaction methods: `foo(ctx: SharedWfContext, params: T) => Promise<R>`
15
+ */
16
+ export type Workflow<R, T, U> = {
17
+ run: RunMethod<R, T>;
18
+ } & WorkflowMethods<R, T, U>;
19
+ type RunMethod<R, T> = (ctx: WfContext, params: T) => Promise<R>;
20
+ type InteractionMethod<R, T> = (ctx: SharedWfContext, params: T) => Promise<R>;
21
+ type WorkflowMethods<R, T, U> = {
22
+ [K in keyof U]: K extends "run" ? U[K] extends RunMethod<R, T> ? U[K] : "The 'run' methods needs to follow the signature: (ctx: WfContext, params: any) => Promise<any> " : U[K] extends InteractionMethod<any, any> ? U[K] : "Methods other than 'run' are interaction methods and need to follow the signature: (ctx: SharedWfContext, params: any) => Promise<any>";
23
+ };
24
+ /**
25
+ * The workflow service(s) and API.
26
+ *
27
+ * Register at a Restate endpoint (HTTP/2, Lambda, etc.) as follows:
28
+ * ```
29
+ * const myWorkflow = restate.workflows.workflow("org.acme.myworkflow", {
30
+ * // workflow implementation
31
+ * })
32
+ * restate.createServer().bind(myWorkflow)
33
+ * ```
34
+ *
35
+ * The {@link WorkflowServices.api} can be used to create typed clients, both
36
+ * from other Restate-backed serviced (e.g., `ctx.rpc(api).triggerMySignal()`)
37
+ * or from external clients (`clients.connectWorkflows(restateUri).connectToWorkflow(api, id);`).
38
+ */
39
+ export interface WorkflowServices<R, T, U> extends restate.ServiceBundle {
40
+ readonly api: restate.ServiceApi<WorkflowRestateRpcApi<R, T, U>>;
41
+ }
42
+ export type DurablePromise<T> = restate.CombineablePromise<T> & {
43
+ peek(): Promise<T | null>;
44
+ resolve(value?: T): void;
45
+ reject(errorMsg: string): void;
46
+ };
47
+ /**
48
+ * The context for the workflow's interaction methods, which are all methods
49
+ * other than the 'run()' method.
50
+ *
51
+ * This gives primarily access to state reads and promises.
52
+ */
53
+ export interface SharedWfContext {
54
+ workflowId(): string;
55
+ get<T>(stateName: string): Promise<T | null>;
56
+ promise<T = void>(name: string): DurablePromise<T>;
57
+ }
58
+ /**
59
+ * The context for the workflow's 'run()' function.
60
+ *
61
+ * This is a full context as for stateful durable keyed services, plus the
62
+ * workflow-specific bits, like workflowID and durable promises.
63
+ */
64
+ export interface WfContext extends SharedWfContext, restate.KeyedContext {
65
+ }
66
+ export declare enum LifecycleStatus {
67
+ NOT_STARTED = "NOT_STARTED",
68
+ RUNNING = "RUNNING",
69
+ FINISHED = "FINISHED",
70
+ FAILED = "FAILED"
71
+ }
72
+ export declare enum WorkflowStartResult {
73
+ STARTED = "STARTED",
74
+ ALREADY_STARTED = "ALREADY_STARTED",
75
+ ALREADY_FINISHED = "ALREADY_FINISHED"
76
+ }
77
+ /**
78
+ * The type of requests accepted by the workflow service.
79
+ * Must contain the 'workflowId' property.
80
+ */
81
+ export type WorkflowRequest<T> = T & {
82
+ workflowId: string;
83
+ };
84
+ /**
85
+ * The API signature of the workflow for use with RPC operations from Restate services.
86
+ */
87
+ export type WorkflowRestateRpcApi<R, T, U> = {
88
+ start: (param: WorkflowRequest<T>) => Promise<WorkflowStartResult>;
89
+ waitForResult: (request: WorkflowRequest<unknown>) => Promise<R>;
90
+ status: (request: WorkflowRequest<unknown>) => Promise<LifecycleStatus>;
91
+ } & {
92
+ [K in keyof Omit<U, "run">]: U[K] extends InteractionMethod<infer R, infer T> ? (request: WorkflowRequest<T>) => Promise<R> : never;
93
+ };
94
+ /**
95
+ * The API signature of the workflow for external clients.
96
+ */
97
+ export type WorkflowClientApi<U> = {
98
+ [K in keyof Omit<U, "run">]: U[K] extends (ctx: SharedWfContext) => Promise<infer R> ? () => Promise<R> : U[K] extends (ctx: SharedWfContext, params: infer T) => Promise<infer R> ? (request: T) => Promise<R> : never;
99
+ };
100
+ export {};
101
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/workflows/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
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.WorkflowStartResult = exports.LifecycleStatus = exports.workflow = void 0;
37
+ const wws = __importStar(require("./workflow_wrapper_service"));
38
+ const wss = __importStar(require("./workflow_state_service"));
39
+ const STATE_SERVICE_PATH_SUFFIX = "_state";
40
+ // ----------------------------------------------------------------------------
41
+ // workflow definition / registration
42
+ // ----------------------------------------------------------------------------
43
+ /**
44
+ * Creates a new workflow service that will be served under the given path.
45
+ *
46
+ * A workflow must consist of
47
+ * - one run method: `run(ctx: WfContext, params: T) => Promise<R>`
48
+ * - an arbitrary number of interaction methods: `foo(ctx: SharedWfContext, params: X) => Promise<Y>`
49
+ */
50
+ function workflow(path, workflow) {
51
+ // the state service manages all state and promises for us
52
+ const stateServiceRouter = wss.workflowStateService;
53
+ const stateServiceApi = {
54
+ path: path + STATE_SERVICE_PATH_SUFFIX,
55
+ };
56
+ // the wrapper service manages life cycle, contexts, delegation to the state service
57
+ const wrapperServiceRouter = wws.createWrapperService(workflow, path, stateServiceApi);
58
+ return {
59
+ api: { path },
60
+ registerServices: (endpoint) => {
61
+ endpoint.bindKeyedRouter(stateServiceApi.path, stateServiceRouter);
62
+ endpoint.bindRouter(path, wrapperServiceRouter);
63
+ },
64
+ };
65
+ }
66
+ exports.workflow = workflow;
67
+ var LifecycleStatus;
68
+ (function (LifecycleStatus) {
69
+ LifecycleStatus["NOT_STARTED"] = "NOT_STARTED";
70
+ LifecycleStatus["RUNNING"] = "RUNNING";
71
+ LifecycleStatus["FINISHED"] = "FINISHED";
72
+ LifecycleStatus["FAILED"] = "FAILED";
73
+ })(LifecycleStatus = exports.LifecycleStatus || (exports.LifecycleStatus = {}));
74
+ var WorkflowStartResult;
75
+ (function (WorkflowStartResult) {
76
+ WorkflowStartResult["STARTED"] = "STARTED";
77
+ WorkflowStartResult["ALREADY_STARTED"] = "ALREADY_STARTED";
78
+ WorkflowStartResult["ALREADY_FINISHED"] = "ALREADY_FINISHED";
79
+ })(WorkflowStartResult = exports.WorkflowStartResult || (exports.WorkflowStartResult = {}));
80
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflows/workflow.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,gEAAkD;AAClD,8DAAgD;AAEhD,MAAM,yBAAyB,GAAG,QAAQ,CAAC;AAE3C,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E;;;;;;GAMG;AACH,SAAgB,QAAQ,CACtB,IAAY,EACZ,QAA2B;IAE3B,0DAA0D;IAC1D,MAAM,kBAAkB,GAAG,GAAG,CAAC,oBAAoB,CAAC;IACpD,MAAM,eAAe,GAAgC;QACnD,IAAI,EAAE,IAAI,GAAG,yBAAyB;KACvC,CAAC;IAEF,oFAAoF;IACpF,MAAM,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CACnD,QAAQ,EACR,IAAI,EACJ,eAAe,CAChB,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,EAAE,IAAI,EAAwD;QACnE,gBAAgB,EAAE,CAAC,QAAiC,EAAE,EAAE;YACtD,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YACnE,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAClD,CAAC;KACkC,CAAC;AACxC,CAAC;AAxBD,4BAwBC;AA8ED,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,sCAAmB,CAAA;IACnB,wCAAqB,CAAA;IACrB,oCAAiB,CAAA;AACnB,CAAC,EALW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK1B;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,0DAAmC,CAAA;IACnC,4DAAqC,CAAA;AACvC,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B"}
@@ -0,0 +1,35 @@
1
+ import * as restate from "../public_api";
2
+ import { LifecycleStatus, WorkflowStartResult } from "./workflow";
3
+ export type ValueOrError<T> = {
4
+ value?: T;
5
+ error?: string;
6
+ };
7
+ export declare const workflowStateService: restate.KeyedRouter<{
8
+ startWorkflow: (ctx: restate.KeyedContext) => Promise<WorkflowStartResult>;
9
+ finishOrFailWorkflow: <R>(ctx: restate.KeyedContext, _workflowId: string, result: ValueOrError<R>) => Promise<void>;
10
+ getStatus: (ctx: restate.KeyedContext) => Promise<LifecycleStatus>;
11
+ completePromise: <T>(ctx: restate.KeyedContext, _workflowId: string, req: {
12
+ promiseName: string;
13
+ completion: ValueOrError<T>;
14
+ }) => Promise<void>;
15
+ peekPromise: <T_1>(ctx: restate.KeyedContext, _workflowId: string, req: {
16
+ promiseName: string;
17
+ }) => Promise<ValueOrError<T_1> | null>;
18
+ subscribePromise: <T_2>(ctx: restate.KeyedContext, _workflowId: string, req: {
19
+ promiseName: string;
20
+ awkId: string;
21
+ }) => Promise<ValueOrError<T_2> | null>;
22
+ getResult: <R_1>(ctx: restate.KeyedContext) => Promise<ValueOrError<R_1> | null>;
23
+ subscribeResult: <T_3>(ctx: restate.KeyedContext, workflowId: string, awkId: string) => Promise<ValueOrError<T_3> | null>;
24
+ getState: <T_4>(ctx: restate.KeyedContext, _workflowId: string, stateName: string) => Promise<T_4 | null>;
25
+ setState: <T_5>(ctx: restate.KeyedContext, _workflowId: string, request: {
26
+ stateName: string;
27
+ value: T_5;
28
+ }) => Promise<void>;
29
+ clearState: (ctx: restate.KeyedContext, _workflowId: string, stateName: string) => Promise<void>;
30
+ stateKeys: (ctx: restate.KeyedContext) => Promise<Array<string>>;
31
+ clearAllState: (ctx: restate.KeyedContext) => Promise<void>;
32
+ dispose: (ctx: restate.KeyedContext) => Promise<void>;
33
+ }>;
34
+ export type api = typeof workflowStateService;
35
+ //# sourceMappingURL=workflow_state_service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_state_service.d.ts","sourceRoot":"","sources":["../../src/workflows/workflow_state_service.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AASlE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,oBAAoB;yBAExB,QAAQ,YAAY,KACxB,QAAQ,mBAAmB,CAAC;mCAgBxB,QAAQ,YAAY,eACZ,MAAM,8BAElB,QAAQ,IAAI,CAAC;qBA2BO,QAAQ,YAAY,KAAG,QAAQ,eAAe,CAAC;8BAQ/D,QAAQ,YAAY,eACZ,MAAM;qBACC,MAAM;;UACzB,QAAQ,IAAI,CAAC;4BAeT,QAAQ,YAAY,eACZ,MAAM,OACd;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;iCAMvB,QAAQ,YAAY,eACZ,MAAM,OACd;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;0BAWtC,QAAQ,YAAY;gCAMpB,QAAQ,YAAY,cACb,MAAM,SACX,MAAM;yBAmBR,QAAQ,YAAY,eACZ,MAAM,aACR,MAAM;yBAMZ,QAAQ,YAAY,eACZ,MAAM;mBACG,MAAM;;UAC3B,QAAQ,IAAI,CAAC;sBAqBT,QAAQ,YAAY,eACZ,MAAM,aACR,MAAM,KAChB,QAAQ,IAAI,CAAC;qBAIO,QAAQ,YAAY,KAAG,QAAQ,MAAM,MAAM,CAAC,CAAC;yBAMzC,QAAQ,YAAY,KAAG,QAAQ,IAAI,CAAC;mBAS1C,QAAQ,YAAY,KAAG,QAAQ,IAAI,CAAC;EAGzD,CAAC;AAEH,MAAM,MAAM,GAAG,GAAG,OAAO,oBAAoB,CAAC"}