@restatedev/restate-sdk-cloudflare-workers 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/LICENSE +21 -0
  2. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  3. package/dist/common_api.cjs +25 -0
  4. package/dist/common_api.d.cts +30 -0
  5. package/dist/common_api.d.cts.map +1 -0
  6. package/dist/common_api.d.ts +30 -0
  7. package/dist/common_api.d.ts.map +1 -0
  8. package/dist/common_api.js +19 -0
  9. package/dist/common_api.js.map +1 -0
  10. package/dist/context.cjs +29 -0
  11. package/dist/context.d.cts +699 -0
  12. package/dist/context.d.cts.map +1 -0
  13. package/dist/context.d.ts +699 -0
  14. package/dist/context.d.ts.map +1 -0
  15. package/dist/context.js +29 -0
  16. package/dist/context.js.map +1 -0
  17. package/dist/context_impl.cjs +441 -0
  18. package/dist/context_impl.js +440 -0
  19. package/dist/context_impl.js.map +1 -0
  20. package/dist/endpoint/components.cjs +257 -0
  21. package/dist/endpoint/components.js +253 -0
  22. package/dist/endpoint/components.js.map +1 -0
  23. package/dist/endpoint/endpoint.cjs +117 -0
  24. package/dist/endpoint/endpoint.js +118 -0
  25. package/dist/endpoint/endpoint.js.map +1 -0
  26. package/dist/endpoint/fetch_endpoint.cjs +41 -0
  27. package/dist/endpoint/fetch_endpoint.d.cts +39 -0
  28. package/dist/endpoint/fetch_endpoint.d.cts.map +1 -0
  29. package/dist/endpoint/fetch_endpoint.d.ts +39 -0
  30. package/dist/endpoint/fetch_endpoint.d.ts.map +1 -0
  31. package/dist/endpoint/fetch_endpoint.js +42 -0
  32. package/dist/endpoint/fetch_endpoint.js.map +1 -0
  33. package/dist/endpoint/handlers/fetch.cjs +21 -0
  34. package/dist/endpoint/handlers/fetch.js +21 -0
  35. package/dist/endpoint/handlers/fetch.js.map +1 -0
  36. package/dist/endpoint/handlers/generic.cjs +328 -0
  37. package/dist/endpoint/handlers/generic.js +324 -0
  38. package/dist/endpoint/handlers/generic.js.map +1 -0
  39. package/dist/endpoint/handlers/lambda.cjs +93 -0
  40. package/dist/endpoint/handlers/lambda.js +89 -0
  41. package/dist/endpoint/handlers/lambda.js.map +1 -0
  42. package/dist/endpoint/lambda_endpoint.cjs +36 -0
  43. package/dist/endpoint/lambda_endpoint.d.cts +26 -0
  44. package/dist/endpoint/lambda_endpoint.d.cts.map +1 -0
  45. package/dist/endpoint/lambda_endpoint.d.ts +26 -0
  46. package/dist/endpoint/lambda_endpoint.d.ts.map +1 -0
  47. package/dist/endpoint/lambda_endpoint.js +37 -0
  48. package/dist/endpoint/lambda_endpoint.js.map +1 -0
  49. package/dist/endpoint/node_endpoint.cjs +101 -0
  50. package/dist/endpoint/node_endpoint.js +99 -0
  51. package/dist/endpoint/node_endpoint.js.map +1 -0
  52. package/dist/endpoint/types.d.cts +61 -0
  53. package/dist/endpoint/types.d.cts.map +1 -0
  54. package/dist/endpoint/types.d.ts +61 -0
  55. package/dist/endpoint/types.d.ts.map +1 -0
  56. package/dist/endpoint/withOptions.cjs +15 -0
  57. package/dist/endpoint/withOptions.js +15 -0
  58. package/dist/endpoint/withOptions.js.map +1 -0
  59. package/dist/endpoint.d.cts +112 -0
  60. package/dist/endpoint.d.cts.map +1 -0
  61. package/dist/endpoint.d.ts +112 -0
  62. package/dist/endpoint.d.ts.map +1 -0
  63. package/dist/fetch.cjs +83 -0
  64. package/dist/fetch.d.cts +52 -0
  65. package/dist/fetch.d.cts.map +1 -0
  66. package/dist/fetch.d.ts +52 -0
  67. package/dist/fetch.d.ts.map +1 -0
  68. package/dist/{esm/src/fetch.js → fetch.js} +15 -18
  69. package/dist/fetch.js.map +1 -0
  70. package/dist/index.cjs +48 -0
  71. package/dist/index.d.cts +9 -0
  72. package/dist/index.d.ts +9 -0
  73. package/dist/index.js +7 -0
  74. package/dist/io.cjs +48 -0
  75. package/dist/io.js +48 -0
  76. package/dist/io.js.map +1 -0
  77. package/dist/lambda.cjs +74 -0
  78. package/dist/lambda.d.cts +32 -0
  79. package/dist/lambda.d.cts.map +1 -0
  80. package/dist/lambda.d.ts +32 -0
  81. package/dist/lambda.d.ts.map +1 -0
  82. package/dist/lambda.js +35 -0
  83. package/dist/lambda.js.map +1 -0
  84. package/dist/logging/console_logger_transport.cjs +54 -0
  85. package/dist/logging/console_logger_transport.js +54 -0
  86. package/dist/logging/console_logger_transport.js.map +1 -0
  87. package/dist/logging/logger.cjs +43 -0
  88. package/dist/logging/logger.js +44 -0
  89. package/dist/logging/logger.js.map +1 -0
  90. package/dist/logging/logger_transport.cjs +42 -0
  91. package/dist/logging/logger_transport.d.cts +57 -0
  92. package/dist/logging/logger_transport.d.cts.map +1 -0
  93. package/dist/logging/logger_transport.d.ts +57 -0
  94. package/dist/logging/logger_transport.d.ts.map +1 -0
  95. package/dist/logging/logger_transport.js +40 -0
  96. package/dist/logging/logger_transport.js.map +1 -0
  97. package/dist/node.cjs +90 -0
  98. package/dist/node.d.cts +51 -0
  99. package/dist/node.d.cts.map +1 -0
  100. package/dist/node.d.ts +51 -0
  101. package/dist/node.d.ts.map +1 -0
  102. package/dist/node.js +50 -0
  103. package/dist/node.js.map +1 -0
  104. package/dist/package.cjs +11 -0
  105. package/dist/package.js +6 -0
  106. package/dist/package.js.map +1 -0
  107. package/dist/promises.cjs +234 -0
  108. package/dist/promises.js +226 -0
  109. package/dist/promises.js.map +1 -0
  110. package/dist/types/errors.cjs +110 -0
  111. package/dist/types/errors.d.cts +71 -0
  112. package/dist/types/errors.d.cts.map +1 -0
  113. package/dist/types/errors.d.ts +71 -0
  114. package/dist/types/errors.d.ts.map +1 -0
  115. package/dist/types/errors.js +102 -0
  116. package/dist/types/errors.js.map +1 -0
  117. package/dist/types/rpc.cjs +425 -0
  118. package/dist/types/rpc.d.cts +580 -0
  119. package/dist/types/rpc.d.cts.map +1 -0
  120. package/dist/types/rpc.d.ts +580 -0
  121. package/dist/types/rpc.d.ts.map +1 -0
  122. package/dist/types/rpc.js +406 -0
  123. package/dist/types/rpc.js.map +1 -0
  124. package/dist/user_agent.cjs +7 -0
  125. package/dist/user_agent.js +8 -0
  126. package/dist/user_agent.js.map +1 -0
  127. package/dist/utils/completable_promise.cjs +22 -0
  128. package/dist/utils/completable_promise.js +22 -0
  129. package/dist/utils/completable_promise.js.map +1 -0
  130. package/dist/utils/rand.cjs +72 -0
  131. package/dist/utils/rand.js +71 -0
  132. package/dist/utils/rand.js.map +1 -0
  133. package/dist/utils/streams.cjs +14 -0
  134. package/dist/utils/streams.js +13 -0
  135. package/dist/utils/streams.js.map +1 -0
  136. package/package.json +30 -52
  137. package/dist/esm/src/common_api.d.ts +0 -37
  138. package/dist/esm/src/common_api.d.ts.map +0 -1
  139. package/dist/esm/src/common_api.js +0 -32
  140. package/dist/esm/src/common_api.js.map +0 -1
  141. package/dist/esm/src/context.d.ts +0 -695
  142. package/dist/esm/src/context.d.ts.map +0 -1
  143. package/dist/esm/src/context.js +0 -87
  144. package/dist/esm/src/context.js.map +0 -1
  145. package/dist/esm/src/context_impl.d.ts +0 -69
  146. package/dist/esm/src/context_impl.d.ts.map +0 -1
  147. package/dist/esm/src/context_impl.js +0 -592
  148. package/dist/esm/src/context_impl.js.map +0 -1
  149. package/dist/esm/src/endpoint/components.d.ts +0 -97
  150. package/dist/esm/src/endpoint/components.d.ts.map +0 -1
  151. package/dist/esm/src/endpoint/components.js +0 -343
  152. package/dist/esm/src/endpoint/components.js.map +0 -1
  153. package/dist/esm/src/endpoint/discovery.d.ts +0 -184
  154. package/dist/esm/src/endpoint/discovery.d.ts.map +0 -1
  155. package/dist/esm/src/endpoint/discovery.js +0 -8
  156. package/dist/esm/src/endpoint/discovery.js.map +0 -1
  157. package/dist/esm/src/endpoint/endpoint.d.ts +0 -39
  158. package/dist/esm/src/endpoint/endpoint.d.ts.map +0 -1
  159. package/dist/esm/src/endpoint/endpoint.js +0 -155
  160. package/dist/esm/src/endpoint/endpoint.js.map +0 -1
  161. package/dist/esm/src/endpoint/fetch_endpoint.d.ts +0 -49
  162. package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +0 -1
  163. package/dist/esm/src/endpoint/fetch_endpoint.js +0 -49
  164. package/dist/esm/src/endpoint/fetch_endpoint.js.map +0 -1
  165. package/dist/esm/src/endpoint/handlers/fetch.d.ts +0 -5
  166. package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +0 -1
  167. package/dist/esm/src/endpoint/handlers/fetch.js +0 -31
  168. package/dist/esm/src/endpoint/handlers/fetch.js.map +0 -1
  169. package/dist/esm/src/endpoint/handlers/generic.d.ts +0 -56
  170. package/dist/esm/src/endpoint/handlers/generic.d.ts.map +0 -1
  171. package/dist/esm/src/endpoint/handlers/generic.js +0 -447
  172. package/dist/esm/src/endpoint/handlers/generic.js.map +0 -1
  173. package/dist/esm/src/endpoint/handlers/lambda.d.ts +0 -10
  174. package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +0 -1
  175. package/dist/esm/src/endpoint/handlers/lambda.js +0 -142
  176. package/dist/esm/src/endpoint/handlers/lambda.js.map +0 -1
  177. package/dist/esm/src/endpoint/lambda_endpoint.d.ts +0 -30
  178. package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +0 -1
  179. package/dist/esm/src/endpoint/lambda_endpoint.js +0 -48
  180. package/dist/esm/src/endpoint/lambda_endpoint.js.map +0 -1
  181. package/dist/esm/src/endpoint/node_endpoint.d.ts +0 -16
  182. package/dist/esm/src/endpoint/node_endpoint.d.ts.map +0 -1
  183. package/dist/esm/src/endpoint/node_endpoint.js +0 -111
  184. package/dist/esm/src/endpoint/node_endpoint.js.map +0 -1
  185. package/dist/esm/src/endpoint/types.d.ts +0 -55
  186. package/dist/esm/src/endpoint/types.d.ts.map +0 -1
  187. package/dist/esm/src/endpoint/types.js +0 -2
  188. package/dist/esm/src/endpoint/types.js.map +0 -1
  189. package/dist/esm/src/endpoint/withOptions.d.ts +0 -4
  190. package/dist/esm/src/endpoint/withOptions.d.ts.map +0 -1
  191. package/dist/esm/src/endpoint/withOptions.js +0 -19
  192. package/dist/esm/src/endpoint/withOptions.js.map +0 -1
  193. package/dist/esm/src/endpoint.d.ts +0 -108
  194. package/dist/esm/src/endpoint.d.ts.map +0 -1
  195. package/dist/esm/src/endpoint.js +0 -12
  196. package/dist/esm/src/endpoint.js.map +0 -1
  197. package/dist/esm/src/fetch.d.ts +0 -43
  198. package/dist/esm/src/fetch.d.ts.map +0 -1
  199. package/dist/esm/src/fetch.js.map +0 -1
  200. package/dist/esm/src/generated/version.d.ts +0 -2
  201. package/dist/esm/src/generated/version.d.ts.map +0 -1
  202. package/dist/esm/src/generated/version.js +0 -2
  203. package/dist/esm/src/generated/version.js.map +0 -1
  204. package/dist/esm/src/io.d.ts +0 -24
  205. package/dist/esm/src/io.d.ts.map +0 -1
  206. package/dist/esm/src/io.js +0 -73
  207. package/dist/esm/src/io.js.map +0 -1
  208. package/dist/esm/src/lambda.d.ts +0 -23
  209. package/dist/esm/src/lambda.d.ts.map +0 -1
  210. package/dist/esm/src/lambda.js +0 -37
  211. package/dist/esm/src/lambda.js.map +0 -1
  212. package/dist/esm/src/logging/console_logger_transport.d.ts +0 -5
  213. package/dist/esm/src/logging/console_logger_transport.d.ts.map +0 -1
  214. package/dist/esm/src/logging/console_logger_transport.js +0 -94
  215. package/dist/esm/src/logging/console_logger_transport.js.map +0 -1
  216. package/dist/esm/src/logging/logger.d.ts +0 -10
  217. package/dist/esm/src/logging/logger.d.ts.map +0 -1
  218. package/dist/esm/src/logging/logger.js +0 -57
  219. package/dist/esm/src/logging/logger.js.map +0 -1
  220. package/dist/esm/src/logging/logger_transport.d.ts +0 -52
  221. package/dist/esm/src/logging/logger_transport.d.ts.map +0 -1
  222. package/dist/esm/src/logging/logger_transport.js +0 -55
  223. package/dist/esm/src/logging/logger_transport.js.map +0 -1
  224. package/dist/esm/src/node.d.ts +0 -39
  225. package/dist/esm/src/node.d.ts.map +0 -1
  226. package/dist/esm/src/node.js +0 -52
  227. package/dist/esm/src/node.js.map +0 -1
  228. package/dist/esm/src/promises.d.ts +0 -111
  229. package/dist/esm/src/promises.d.ts.map +0 -1
  230. package/dist/esm/src/promises.js +0 -314
  231. package/dist/esm/src/promises.js.map +0 -1
  232. package/dist/esm/src/public_api.d.ts +0 -2
  233. package/dist/esm/src/public_api.d.ts.map +0 -1
  234. package/dist/esm/src/public_api.js +0 -12
  235. package/dist/esm/src/public_api.js.map +0 -1
  236. package/dist/esm/src/types/errors.d.ts +0 -74
  237. package/dist/esm/src/types/errors.d.ts.map +0 -1
  238. package/dist/esm/src/types/errors.js +0 -128
  239. package/dist/esm/src/types/errors.js.map +0 -1
  240. package/dist/esm/src/types/rpc.d.ts +0 -620
  241. package/dist/esm/src/types/rpc.d.ts.map +0 -1
  242. package/dist/esm/src/types/rpc.js +0 -577
  243. package/dist/esm/src/types/rpc.js.map +0 -1
  244. package/dist/esm/src/user_agent.d.ts +0 -2
  245. package/dist/esm/src/user_agent.d.ts.map +0 -1
  246. package/dist/esm/src/user_agent.js +0 -13
  247. package/dist/esm/src/user_agent.js.map +0 -1
  248. package/dist/esm/src/utils/completable_promise.d.ts +0 -9
  249. package/dist/esm/src/utils/completable_promise.d.ts.map +0 -1
  250. package/dist/esm/src/utils/completable_promise.js +0 -30
  251. package/dist/esm/src/utils/completable_promise.js.map +0 -1
  252. package/dist/esm/src/utils/rand.d.ts +0 -13
  253. package/dist/esm/src/utils/rand.d.ts.map +0 -1
  254. package/dist/esm/src/utils/rand.js +0 -109
  255. package/dist/esm/src/utils/rand.js.map +0 -1
  256. package/dist/esm/src/utils/streams.d.ts +0 -3
  257. package/dist/esm/src/utils/streams.d.ts.map +0 -1
  258. package/dist/esm/src/utils/streams.js +0 -20
  259. package/dist/esm/src/utils/streams.js.map +0 -1
  260. package/dist/esm/tsconfig.tsbuildinfo +0 -1
  261. /package/dist/{esm/src/endpoint → endpoint}/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +0 -0
  262. /package/dist/{esm/src/endpoint → endpoint}/handlers/vm/sdk_shared_core_wasm_bindings.js +0 -0
  263. /package/dist/{esm/src/endpoint → endpoint}/handlers/vm/sdk_shared_core_wasm_bindings_bg.js +0 -0
  264. /package/dist/{esm/src/endpoint → endpoint}/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm +0 -0
  265. /package/dist/{esm/src/endpoint → endpoint}/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm.d.ts +0 -0
@@ -1,30 +0,0 @@
1
- import type { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
2
- import type { DefaultServiceOptions, RestateEndpointBase } from "../endpoint.js";
3
- import type { LoggerTransport } from "../logging/logger_transport.js";
4
- /**
5
- * LambdaEndpoint encapsulates all the Restate services served by this endpoint.
6
- *
7
- *
8
- * @example
9
- * A typical endpoint served as Lambda would look like this:
10
- * ```
11
- * import * as restate from "@restatedev/restate-sdk/lambda";
12
- *
13
- * export const handler = restate
14
- * .endpoint()
15
- * .bind(myService)
16
- * .handler();
17
- */
18
- export interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {
19
- handler(): (event: any, ctx: any) => Promise<any>;
20
- }
21
- export declare class LambdaEndpointImpl implements LambdaEndpoint {
22
- private builder;
23
- bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): LambdaEndpoint;
24
- withIdentityV1(...keys: string[]): LambdaEndpoint;
25
- defaultServiceOptions(options: DefaultServiceOptions): LambdaEndpoint;
26
- setLogger(logger: LoggerTransport): LambdaEndpoint;
27
- journalValueCodecProvider(codecProvider: () => Promise<JournalValueCodec>): LambdaEndpoint;
28
- handler(): (event: any, ctx: any) => Promise<any>;
29
- }
30
- //# sourceMappingURL=lambda_endpoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lambda_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/lambda_endpoint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAe,SAAQ,mBAAmB,CAAC,cAAc,CAAC;IAEzE,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACnD;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,OAAO,CAA0C;IAElD,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,cAAc;IAKV,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc;IAKjD,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc;IAKrE,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc;IAKlD,yBAAyB,CAC9B,aAAa,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAC9C,cAAc;IAMjB,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;CAelD"}
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
- *
4
- * This file is part of the Restate SDK for Node.js/TypeScript,
5
- * which is released under the MIT license.
6
- *
7
- * You can find a copy of the license in file LICENSE in the root
8
- * directory of this repository or package, or at
9
- * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
- */
11
- import { EndpointBuilder } from "./endpoint.js";
12
- import { GenericHandler } from "./handlers/generic.js";
13
- import { isCompressionSupported, LambdaHandler } from "./handlers/lambda.js";
14
- export class LambdaEndpointImpl {
15
- builder = new EndpointBuilder();
16
- bind(definition) {
17
- this.builder.bind(definition);
18
- return this;
19
- }
20
- withIdentityV1(...keys) {
21
- this.builder.addIdentityKeys(...keys);
22
- return this;
23
- }
24
- defaultServiceOptions(options) {
25
- this.builder.setDefaultServiceOptions(options);
26
- return this;
27
- }
28
- setLogger(logger) {
29
- this.builder.setLogger(logger);
30
- return this;
31
- }
32
- journalValueCodecProvider(codecProvider) {
33
- this.builder.setJournalValueCodecProvider(codecProvider);
34
- return this;
35
- }
36
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
- handler() {
38
- const compressionEnabled = isCompressionSupported();
39
- const genericHandler = new GenericHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled
40
- ? {
41
- lambdaCompression: "zstd",
42
- }
43
- : {});
44
- const lambdaHandler = new LambdaHandler(genericHandler, compressionEnabled);
45
- return lambdaHandler.handleRequest.bind(lambdaHandler);
46
- }
47
- }
48
- //# sourceMappingURL=lambda_endpoint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lambda_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/lambda_endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAsB7E,MAAM,OAAO,kBAAkB;IACrB,OAAO,GAAoB,IAAI,eAAe,EAAE,CAAC;IAElD,IAAI,CACT,UAG4B;QAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,GAAG,IAAc;QACrC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,qBAAqB,CAAC,OAA8B;QACzD,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,SAAS,CAAC,MAAuB;QACtC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,yBAAyB,CAC9B,aAA+C;QAE/C,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,OAAO;QACL,MAAM,kBAAkB,GAAG,sBAAsB,EAAE,CAAC;QAEpD,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EACpB,kBAAkB,EAClB,kBAAkB;YAChB,CAAC,CAAC;gBACE,iBAAiB,EAAE,MAAM;aAC1B;YACH,CAAC,CAAC,EAAE,CACP,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC5E,OAAO,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -1,16 +0,0 @@
1
- import type { RestateEndpoint } from "../public_api.js";
2
- import type { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
3
- import type { Http2ServerRequest, Http2ServerResponse } from "http2";
4
- import type { LoggerTransport } from "../logging/logger_transport.js";
5
- import type { DefaultServiceOptions } from "../endpoint.js";
6
- export declare class NodeEndpoint implements RestateEndpoint {
7
- private builder;
8
- bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): RestateEndpoint;
9
- withIdentityV1(...keys: string[]): RestateEndpoint;
10
- defaultServiceOptions(options: DefaultServiceOptions): RestateEndpoint;
11
- setLogger(logger: LoggerTransport): RestateEndpoint;
12
- journalValueCodecProvider(codecProvider: () => Promise<JournalValueCodec>): RestateEndpoint;
13
- http2Handler(): (request: Http2ServerRequest, response: Http2ServerResponse) => void;
14
- listen(port?: number): Promise<number>;
15
- }
16
- //# sourceMappingURL=node_endpoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/node_endpoint.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAQrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,OAAO,CAA0C;IAElD,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,eAAe;IAKX,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe;IAKlD,qBAAqB,CAC1B,OAAO,EAAE,qBAAqB,GAC7B,eAAe;IAKX,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAKnD,yBAAyB,CAC9B,aAAa,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAC9C,eAAe;IAKlB,YAAY,IAAI,CACd,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,mBAAmB,KAC1B,IAAI;IAIT,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BvC"}
@@ -1,111 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
- *
4
- * This file is part of the Restate SDK for Node.js/TypeScript,
5
- * which is released under the MIT license.
6
- *
7
- * You can find a copy of the license in file LICENSE in the root
8
- * directory of this repository or package, or at
9
- * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
- */
11
- import * as http2 from "http2";
12
- import { EndpointBuilder } from "./endpoint.js";
13
- import { GenericHandler } from "./handlers/generic.js";
14
- import { Readable, Writable } from "node:stream";
15
- import { ensureError } from "../types/errors.js";
16
- export class NodeEndpoint {
17
- builder = new EndpointBuilder();
18
- bind(definition) {
19
- this.builder.bind(definition);
20
- return this;
21
- }
22
- withIdentityV1(...keys) {
23
- this.builder.addIdentityKeys(...keys);
24
- return this;
25
- }
26
- defaultServiceOptions(options) {
27
- this.builder.setDefaultServiceOptions(options);
28
- return this;
29
- }
30
- setLogger(logger) {
31
- this.builder.setLogger(logger);
32
- return this;
33
- }
34
- journalValueCodecProvider(codecProvider) {
35
- this.builder.setJournalValueCodecProvider(codecProvider);
36
- return this;
37
- }
38
- http2Handler() {
39
- return nodeHttp2Handler(this.builder.build());
40
- }
41
- listen(port) {
42
- const endpoint = this.builder.build();
43
- const actualPort = port ?? parseInt(process.env.PORT ?? "9080");
44
- endpoint.rlog.info(`Restate SDK started listening on ${actualPort}...`);
45
- const server = http2.createServer(nodeHttp2Handler(endpoint));
46
- return new Promise((resolve, reject) => {
47
- let failed = false;
48
- server.once("error", (e) => {
49
- failed = true;
50
- reject(e);
51
- });
52
- server.listen(actualPort, () => {
53
- if (failed) {
54
- return;
55
- }
56
- const address = server.address();
57
- if (address === null || typeof address === "string") {
58
- reject(new TypeError("endpoint.listen() currently supports only binding to a PORT"));
59
- }
60
- else {
61
- resolve(address.port);
62
- }
63
- });
64
- });
65
- }
66
- }
67
- function nodeHttp2Handler(endpoint) {
68
- const handler = new GenericHandler(endpoint, "BIDI_STREAM", {});
69
- return (request, response) => {
70
- (async () => {
71
- const abortController = new AbortController();
72
- request.once("aborted", () => {
73
- abortController.abort();
74
- });
75
- request.once("close", () => {
76
- abortController.abort();
77
- });
78
- request.once("error", () => {
79
- abortController.abort();
80
- });
81
- if (request.destroyed || request.aborted) {
82
- endpoint.rlog.error("Client disconnected");
83
- abortController.abort();
84
- }
85
- try {
86
- const url = request.url;
87
- const webRequestBody = Readable.toWeb(request);
88
- const resp = await handler.handle({
89
- url,
90
- headers: request.headers,
91
- body: webRequestBody,
92
- extraArgs: [],
93
- abortSignal: abortController.signal,
94
- });
95
- if (response.destroyed) {
96
- return;
97
- }
98
- response.writeHead(resp.statusCode, resp.headers);
99
- const responseWeb = Writable.toWeb(response);
100
- await resp.body.pipeTo(responseWeb);
101
- }
102
- catch (e) {
103
- const error = ensureError(e);
104
- endpoint.rlog.error("Error while handling connection: " + (error.stack ?? error.message));
105
- response.destroy(error);
106
- abortController.abort();
107
- }
108
- })().catch(() => { });
109
- };
110
- }
111
- //# sourceMappingURL=node_endpoint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/node_endpoint.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- import type { DefaultServiceOptions, LoggerTransport, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition, JournalValueCodec } from "../common_api.js";
2
- /**
3
- * Options for creating an endpoint handler for Node.js HTTP/2 servers.
4
- */
5
- export interface EndpointOptions {
6
- /**
7
- * A list of Restate services, virtual objects, or workflows that will be exposed via the endpoint.
8
- */
9
- services: Array<ServiceDefinition<string, unknown> | VirtualObjectDefinition<string, unknown> | WorkflowDefinition<string, unknown>>;
10
- /**
11
- * Provide a list of v1 request identity public keys eg `publickeyv1_2G8dCQhArfvGpzPw5Vx2ALciR4xCLHfS5YaT93XjNxX9` to validate
12
- * incoming requests against, limiting requests to Restate clusters with the corresponding private keys. This public key format is
13
- * logged by the Restate process at startup if a request identity private key is provided.
14
- *
15
- * If this function is called, all incoming requests irrelevant of endpoint type will be expected to have
16
- * `x-restate-signature-scheme: v1` and `x-restate-jwt-v1: <valid jwt signed with one of these keys>`. If not called,
17
- *
18
- */
19
- identityKeys?: string[];
20
- /**
21
- * Default service options that will be used by all services bind to this endpoint.
22
- *
23
- * Options can be overridden on each service/handler.
24
- */
25
- defaultServiceOptions?: DefaultServiceOptions;
26
- /**
27
- * Replace the default console-based {@link LoggerTransport}
28
- * @example
29
- * Using console:
30
- * ```ts
31
- * createEndpointHandler({ logger: (meta, message, ...o) => {console.log(`${meta.level}: `, message, ...o)}})
32
- * ```
33
- * @example
34
- * Using winston:
35
- * ```ts
36
- * const logger = createLogger({ ... })
37
- * createEndpointHandler({ logger: (meta, message, ...o) => {logger.log(meta.level, {invocationId: meta.context?.invocationId}, [message, ...o].join(' '))} })
38
- * ```
39
- * @example
40
- * Using pino:
41
- * ```ts
42
- * const logger = pino()
43
- * createEndpointHandler({ logger: (meta, message, ...o) => {logger[meta.level]({invocationId: meta.context?.invocationId}, [message, ...o].join(' '))}} )
44
- * ```
45
- */
46
- logger?: LoggerTransport;
47
- /**
48
- * Provider for the codec to use for journal values. One codec will be instantiated globally for this endpoint.
49
- * Check {@link JournalValueCodec} for more details
50
- *
51
- * @experimental
52
- */
53
- journalValueCodecProvider?: () => Promise<JournalValueCodec>;
54
- }
55
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,EAAE,KAAK,CACX,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CACtC,CAAC;IACF;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/endpoint/types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import type { RestateEndpointBase } from "../endpoint.js";
2
- import type { EndpointOptions } from "./types.js";
3
- export declare function withOptions<E extends RestateEndpointBase<E>>(endpoint: E, { identityKeys, defaultServiceOptions, logger, services, journalValueCodecProvider, }: EndpointOptions): E;
4
- //# sourceMappingURL=withOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withOptions.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/withOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,WAAW,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,EAC1D,QAAQ,EAAE,CAAC,EACX,EACE,YAAY,EACZ,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,yBAAyB,GAC1B,EAAE,eAAe,GACjB,CAAC,CAsBH"}
@@ -1,19 +0,0 @@
1
- export function withOptions(endpoint, { identityKeys, defaultServiceOptions, logger, services, journalValueCodecProvider, }) {
2
- let endpointWithOptions = endpoint;
3
- if (identityKeys && identityKeys.length > 0) {
4
- endpointWithOptions = endpointWithOptions.withIdentityV1(...identityKeys);
5
- }
6
- if (defaultServiceOptions) {
7
- endpointWithOptions = endpointWithOptions.defaultServiceOptions(defaultServiceOptions);
8
- }
9
- if (journalValueCodecProvider) {
10
- endpointWithOptions = endpointWithOptions.journalValueCodecProvider(journalValueCodecProvider);
11
- }
12
- if (logger) {
13
- endpointWithOptions = endpointWithOptions.setLogger(logger);
14
- }
15
- return services.reduce((results, service) => {
16
- return results.bind(service);
17
- }, endpointWithOptions);
18
- }
19
- //# sourceMappingURL=withOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withOptions.js","sourceRoot":"","sources":["../../../../src/endpoint/withOptions.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CACzB,QAAW,EACX,EACE,YAAY,EACZ,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,yBAAyB,GACT;IAElB,IAAI,mBAAmB,GAAG,QAAQ,CAAC;IACnC,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,mBAAmB,GAAG,mBAAmB,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,mBAAmB,GAAG,mBAAmB,CAAC,qBAAqB,CAC7D,qBAAqB,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,yBAAyB,EAAE,CAAC;QAC9B,mBAAmB,GAAG,mBAAmB,CAAC,yBAAyB,CACjE,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,mBAAmB,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC1C,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,108 +0,0 @@
1
- import type { Http2ServerRequest, Http2ServerResponse } from "http2";
2
- import type { VirtualObjectDefinition, ServiceDefinition, WorkflowDefinition, JournalValueCodec } from "@restatedev/restate-sdk-core";
3
- import type { LoggerTransport } from "./logging/logger_transport.js";
4
- import type { ObjectOptions, ServiceOptions, WorkflowOptions } from "./types/rpc.js";
5
- export type DefaultServiceOptions = ServiceOptions & ObjectOptions & WorkflowOptions;
6
- export interface RestateEndpointBase<E> {
7
- /**
8
- * Binds a new durable service / virtual object / workflow.
9
- *
10
- * see restate.service, restate.object, and restate.workflow for more details.
11
- **/
12
- bind<P extends string, M>(service: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): E;
13
- /**
14
- * Provide a list of v1 request identity public keys eg `publickeyv1_2G8dCQhArfvGpzPw5Vx2ALciR4xCLHfS5YaT93XjNxX9` to validate
15
- * incoming requests against, limiting requests to Restate clusters with the corresponding private keys. This public key format is
16
- * logged by the Restate process at startup if a request identity private key is provided.
17
- *
18
- * If this function is called, all incoming requests irrelevant of endpoint type will be expected to have
19
- * `x-restate-signature-scheme: v1` and `x-restate-jwt-v1: <valid jwt signed with one of these keys>`. If not called,
20
- *
21
- */
22
- withIdentityV1(...keys: string[]): E;
23
- /**
24
- * Set default service options that will be used by all services bind to this endpoint.
25
- *
26
- * Options can be overridden on each service/handler.
27
- *
28
- * @param options
29
- */
30
- defaultServiceOptions(options: DefaultServiceOptions): E;
31
- /**
32
- * Replace the default console-based {@link LoggerTransport}
33
- * @param logger
34
- * @example
35
- * Using console:
36
- * ```ts
37
- * restate.setLogger((meta, message, ...o) => {console.log(`${meta.level}: `, message, ...o)})
38
- * ```
39
- * @example
40
- * Using winston:
41
- * ```ts
42
- * const logger = createLogger({ ... })
43
- * restate.setLogger((meta, message, ...o) => {logger.log(meta.level, {invocationId: meta.context?.invocationId}, [message, ...o].join(' '))})
44
- * ```
45
- * @example
46
- * Using pino:
47
- * ```ts
48
- * const logger = pino()
49
- * restate.setLogger((meta, message, ...o) => {logger[meta.level]({invocationId: meta.context?.invocationId}, [message, ...o].join(' '))})
50
- * ```
51
- */
52
- setLogger(logger: LoggerTransport): E;
53
- /**
54
- * Provider for the codec to use for journal values. One codec will be instantiated globally for this endpoint.
55
- * Check {@link JournalValueCodec} for more details
56
- *
57
- * @experimental
58
- */
59
- journalValueCodecProvider(codecProvider: () => Promise<JournalValueCodec>): E;
60
- }
61
- /**
62
- * RestateEndpoint encapsulates all the Restate services served by this endpoint.
63
- *
64
- * A RestateEndpoint can either be served as HTTP2 server, using the methods {@link RestateEndpoint.listen} or {@link RestateEndpoint.http2Handler}.
65
- *
66
- * For Lambda, check {@link LambdaEndpoint}
67
- *
68
- * @example
69
- * A typical endpoint served as HTTP server would look like this:
70
- * ```
71
- * import * as restate from "@restatedev/restate-sdk";
72
- *
73
- * restate
74
- * .endpoint()
75
- * .bind(myService)
76
- * .listen(8000);
77
- * ```
78
- */
79
- export interface RestateEndpoint extends RestateEndpointBase<RestateEndpoint> {
80
- /**
81
- * Serve this Restate Endpoint as HTTP2 server, listening to the given port.
82
- *
83
- * If the port is undefined, this method will use the port set in the `PORT`
84
- * environment variable. If that variable is undefined as well, the method will
85
- * default to port 9080.
86
- *
87
- * The returned promise resolves with the bound port when the server starts listening, or rejects with a failure otherwise.
88
- *
89
- * This method is a shorthand for:
90
- *
91
- * @example
92
- * ```
93
- * const httpServer = http2.createServer(endpoint.http2Handler());
94
- * httpServer.listen(port);
95
- * ```
96
- *
97
- * If you need to manually control the server lifecycle, we suggest to manually instantiate the http2 server and use {@link RestateEndpoint.http2Handler}.
98
- *
99
- * @param port The port to listen at. May be undefined (see above).
100
- * @returns a Promise that resolves with the bound port, or rejects with a failure otherwise.
101
- */
102
- listen(port?: number): Promise<number>;
103
- /**
104
- * Returns an http2 server handler. See {@link RestateEndpoint.listen} for more details.
105
- */
106
- http2Handler(): (request: Http2ServerRequest, response: Http2ServerResponse) => void;
107
- }
108
- //# sourceMappingURL=endpoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/endpoint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAChD,aAAa,GACb,eAAe,CAAC;AAElB,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC;;;;QAII;IACJ,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EACtB,OAAO,EACH,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,CAAC,CAAC;IAEL;;;;;;;;OAQG;IACH,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;CAC/E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,eAAgB,SAAQ,mBAAmB,CAAC,eAAe,CAAC;IAC3E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,YAAY,IAAI,CACd,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,mBAAmB,KAC1B,IAAI,CAAC;CACX"}
@@ -1,12 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
- *
4
- * This file is part of the Restate SDK for Node.js/TypeScript,
5
- * which is released under the MIT license.
6
- *
7
- * You can find a copy of the license in file LICENSE in the root
8
- * directory of this repository or package, or at
9
- * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
- */
11
- export {};
12
- //# sourceMappingURL=endpoint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -1,43 +0,0 @@
1
- export * from "./common_api.js";
2
- import { type FetchEndpoint } from "./endpoint/fetch_endpoint.js";
3
- import type { EndpointOptions } from "./endpoint/types.js";
4
- /**
5
- * Create a new {@link RestateEndpoint} in request response protocol mode.
6
- * Bidirectional mode (must be served over http2) can be enabled with .enableHttp2()
7
- * @deprecated Please use {@link createEndpointHandler}
8
- */
9
- export declare function endpoint(): FetchEndpoint;
10
- interface FetchEndpointOptions extends EndpointOptions {
11
- /**
12
- * Enables bidirectional communication for the handler.
13
- *
14
- * When set to `true`, the handler supports bidirectional streaming (e.g., via HTTP/2 or compatible HTTP/1.1 servers).
15
- * When `false`, the handler operates in request-response mode only.
16
- *
17
- * @default false
18
- */
19
- bidirectional?: boolean;
20
- }
21
- /**
22
- * Creates a Fetch handler that encapsulates all the Restate services served by this endpoint.
23
- *
24
- * @param {FetchEndpointOptions} options - Configuration options for the endpoint handler.
25
- * @returns A fetch handler function.
26
- *
27
- * @example
28
- * A typical request-response handler would look like this:
29
- * ```
30
- * import { createEndpointHandler } from "@restatedev/restate-sdk/fetch";
31
- *
32
- * export const handler = createEndpointHandler({ services: [myService] })
33
- *
34
- * @example
35
- * A typical bidirectional handler (works with http2 and some http1.1 servers) would look like this:
36
- * ```
37
- * import { createEndpointHandler } from "@restatedev/restate-sdk/fetch";
38
- *
39
- * export const handler = createEndpointHandler({ services: [myService], bidirectional: true })
40
- *
41
- */
42
- export declare function createEndpointHandler(options: FetchEndpointOptions): (request: Request, ...extraArgs: unknown[]) => Promise<Response>;
43
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/fetch.ts"],"names":[],"mappings":"AAWA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D;;;;GAIG;AACH,wBAAgB,QAAQ,IAAI,aAAa,CAExC;AAED,UAAU,oBAAqB,SAAQ,eAAe;IACpD;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,oEAOlE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAEL,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAcD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA6B;IACjE,OAAO,WAAW,CAChB,IAAI,iBAAiB,CACnB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAC3D,EACD,OAAO,CACR,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;AACpB,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const SDK_VERSION = "1.9.0";
2
- //# sourceMappingURL=version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/generated/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,UAAU,CAAC"}
@@ -1,2 +0,0 @@
1
- export const SDK_VERSION = '1.9.0';
2
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/generated/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
@@ -1,24 +0,0 @@
1
- import type * as vm from "./endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js";
2
- import type { ReadableStreamDefaultReader, WritableStreamDefaultWriter } from "node:stream/web";
3
- /**
4
- * Adapter between input stream and vm. It moves forward when [awaitNextProgress] is invoked.
5
- */
6
- export declare class InputPump {
7
- private readonly coreVm;
8
- private readonly inputReader;
9
- private readonly errorCallback;
10
- private currentRead?;
11
- constructor(coreVm: vm.WasmVM, inputReader: ReadableStreamDefaultReader<Uint8Array>, errorCallback: (e: any) => void);
12
- awaitNextProgress(): Promise<void>;
13
- private readNext;
14
- }
15
- /**
16
- * Adapter between output stream and vm. It moves forward when [awaitNextProgress] is invoked.
17
- */
18
- export declare class OutputPump {
19
- private readonly coreVm;
20
- private readonly outputWriter;
21
- constructor(coreVm: vm.WasmVM, outputWriter: WritableStreamDefaultWriter<Uint8Array>);
22
- awaitNextProgress(): Promise<void>;
23
- }
24
- //# sourceMappingURL=io.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/io.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,KAAK,EAAE,MAAM,yDAAyD,CAAC;AACnF,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;AAIzB;;GAEG;AACH,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IALhC,OAAO,CAAC,WAAW,CAAC,CAAgB;gBAGjB,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,WAAW,EAAE,2BAA2B,CAAC,UAAU,CAAC,EACpD,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI;IAMlD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;YAYpB,QAAQ;CAgBvB;AAED;;GAEG;AACH,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,YAAY,EAAE,2BAA2B,CAAC,UAAU,CAAC;IAGlE,iBAAiB;CASxB"}
@@ -1,73 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 - Restate Software, Inc., Restate GmbH
3
- *
4
- * This file is part of the Restate SDK for Node.js/TypeScript,
5
- * which is released under the MIT license.
6
- *
7
- * You can find a copy of the license in file LICENSE in the root
8
- * directory of this repository or package, or at
9
- * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
- */
11
- import { pendingPromise } from "./promises.js";
12
- /**
13
- * Adapter between input stream and vm. It moves forward when [awaitNextProgress] is invoked.
14
- */
15
- export class InputPump {
16
- coreVm;
17
- inputReader;
18
- errorCallback;
19
- currentRead;
20
- constructor(coreVm, inputReader, errorCallback) {
21
- this.coreVm = coreVm;
22
- this.inputReader = inputReader;
23
- this.errorCallback = errorCallback;
24
- }
25
- // This function triggers a read on the input reader,
26
- // and will notify the caller that a read was executed
27
- // and the result was piped in the state machine.
28
- awaitNextProgress() {
29
- if (this.currentRead === undefined) {
30
- // Register a new read
31
- this.currentRead = this.readNext().finally(() => {
32
- this.currentRead = undefined;
33
- });
34
- }
35
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
36
- return new Promise((resolve) => this.currentRead?.finally(resolve));
37
- }
38
- async readNext() {
39
- // Take input, and notify it to the vm
40
- let nextValue;
41
- try {
42
- nextValue = await this.inputReader.read();
43
- }
44
- catch (e) {
45
- this.errorCallback(e);
46
- return pendingPromise();
47
- }
48
- if (nextValue.value !== undefined) {
49
- this.coreVm.notify_input(nextValue.value);
50
- }
51
- if (nextValue.done) {
52
- this.coreVm.notify_input_closed();
53
- }
54
- }
55
- }
56
- /**
57
- * Adapter between output stream and vm. It moves forward when [awaitNextProgress] is invoked.
58
- */
59
- export class OutputPump {
60
- coreVm;
61
- outputWriter;
62
- constructor(coreVm, outputWriter) {
63
- this.coreVm = coreVm;
64
- this.outputWriter = outputWriter;
65
- }
66
- async awaitNextProgress() {
67
- const nextOutput = this.coreVm.take_output();
68
- if (nextOutput instanceof Uint8Array) {
69
- await this.outputWriter.write(nextOutput);
70
- }
71
- }
72
- }
73
- //# sourceMappingURL=io.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../src/io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,MAAM,OAAO,SAAS;IAID;IACA;IACA;IALX,WAAW,CAAiB;IAEpC,YACmB,MAAiB,EACjB,WAAoD,EACpD,aAA+B;QAF/B,WAAM,GAAN,MAAM,CAAW;QACjB,gBAAW,GAAX,WAAW,CAAyC;QACpD,kBAAa,GAAb,aAAa,CAAkB;IAC/C,CAAC;IAEJ,qDAAqD;IACrD,sDAAsD;IACtD,iDAAiD;IACjD,iBAAiB;QACf,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,sBAAsB;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC9C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,sCAAsC;QACtC,IAAI,SAA+C,CAAC;QACpD,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,cAAc,EAAQ,CAAC;QAChC,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IAEF;IACA;IAFnB,YACmB,MAAiB,EACjB,YAAqD;QADrD,WAAM,GAAN,MAAM,CAAW;QACjB,iBAAY,GAAZ,YAAY,CAAyC;IACrE,CAAC;IAEJ,KAAK,CAAC,iBAAiB;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAG7B,CAAC;QACd,IAAI,UAAU,YAAY,UAAU,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF"}