@restatedev/restate-sdk-cloudflare-workers 1.10.3 → 1.11.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 (92) hide show
  1. package/dist/_virtual/rolldown_runtime.js +13 -0
  2. package/dist/common_api.cjs +1 -0
  3. package/dist/common_api.d.cts +1 -0
  4. package/dist/common_api.d.cts.map +1 -1
  5. package/dist/common_api.d.ts +1 -0
  6. package/dist/common_api.d.ts.map +1 -1
  7. package/dist/common_api.js +1 -0
  8. package/dist/common_api.js.map +1 -1
  9. package/dist/context_impl.cjs +20 -6
  10. package/dist/context_impl.js +20 -6
  11. package/dist/context_impl.js.map +1 -1
  12. package/dist/endpoint/endpoint.cjs +2 -2
  13. package/dist/endpoint/endpoint.js +2 -2
  14. package/dist/endpoint/fetch_endpoint.cjs +2 -2
  15. package/dist/endpoint/fetch_endpoint.js +2 -2
  16. package/dist/endpoint/fetch_endpoint.js.map +1 -1
  17. package/dist/endpoint/handlers/core_logging.cjs +52 -0
  18. package/dist/endpoint/handlers/core_logging.js +51 -0
  19. package/dist/endpoint/handlers/core_logging.js.map +1 -0
  20. package/dist/endpoint/handlers/discovery.cjs +58 -0
  21. package/dist/endpoint/handlers/discovery.js +59 -0
  22. package/dist/endpoint/handlers/discovery.js.map +1 -0
  23. package/dist/endpoint/handlers/fetch.cjs +23 -11
  24. package/dist/endpoint/handlers/fetch.js +24 -11
  25. package/dist/endpoint/handlers/fetch.js.map +1 -1
  26. package/dist/endpoint/handlers/generic.cjs +167 -248
  27. package/dist/endpoint/handlers/generic.js +166 -244
  28. package/dist/endpoint/handlers/generic.js.map +1 -1
  29. package/dist/endpoint/handlers/lambda.cjs +64 -61
  30. package/dist/endpoint/handlers/lambda.js +64 -60
  31. package/dist/endpoint/handlers/lambda.js.map +1 -1
  32. package/dist/endpoint/handlers/utils.cjs +51 -0
  33. package/dist/endpoint/handlers/utils.js +48 -0
  34. package/dist/endpoint/handlers/utils.js.map +1 -0
  35. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +49 -49
  36. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.js +316 -316
  37. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm +0 -0
  38. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm.d.ts +44 -45
  39. package/dist/endpoint/lambda_endpoint.cjs +2 -2
  40. package/dist/endpoint/lambda_endpoint.js +2 -2
  41. package/dist/endpoint/lambda_endpoint.js.map +1 -1
  42. package/dist/endpoint/node_endpoint.cjs +41 -41
  43. package/dist/endpoint/node_endpoint.js +41 -40
  44. package/dist/endpoint/node_endpoint.js.map +1 -1
  45. package/dist/fetch.cjs +7 -0
  46. package/dist/fetch.d.cts +2 -1
  47. package/dist/fetch.d.cts.map +1 -1
  48. package/dist/fetch.d.ts +2 -1
  49. package/dist/fetch.d.ts.map +1 -1
  50. package/dist/fetch.js.map +1 -1
  51. package/dist/index.cjs +7 -0
  52. package/dist/index.d.cts +2 -1
  53. package/dist/index.d.ts +2 -1
  54. package/dist/index.js +2 -1
  55. package/dist/internal.cjs +11 -0
  56. package/dist/internal.d.cts +27 -0
  57. package/dist/internal.d.cts.map +1 -0
  58. package/dist/internal.d.ts +27 -0
  59. package/dist/internal.d.ts.map +1 -0
  60. package/dist/internal.js +6 -0
  61. package/dist/internal.js.map +1 -0
  62. package/dist/io.cjs +2 -2
  63. package/dist/io.js +2 -2
  64. package/dist/io.js.map +1 -1
  65. package/dist/lambda.cjs +7 -0
  66. package/dist/lambda.d.cts +2 -1
  67. package/dist/lambda.d.cts.map +1 -1
  68. package/dist/lambda.d.ts +2 -1
  69. package/dist/lambda.d.ts.map +1 -1
  70. package/dist/lambda.js +2 -1
  71. package/dist/lambda.js.map +1 -1
  72. package/dist/node.cjs +7 -0
  73. package/dist/node.d.cts +2 -1
  74. package/dist/node.d.cts.map +1 -1
  75. package/dist/node.d.ts +2 -1
  76. package/dist/node.d.ts.map +1 -1
  77. package/dist/node.js +2 -1
  78. package/dist/node.js.map +1 -1
  79. package/dist/package.cjs +1 -1
  80. package/dist/package.js +1 -1
  81. package/dist/package.js.map +1 -1
  82. package/dist/types/errors.cjs +2 -0
  83. package/dist/types/errors.d.cts +8 -0
  84. package/dist/types/errors.d.cts.map +1 -1
  85. package/dist/types/errors.d.ts +8 -0
  86. package/dist/types/errors.d.ts.map +1 -1
  87. package/dist/types/errors.js +2 -0
  88. package/dist/types/errors.js.map +1 -1
  89. package/package.json +3 -3
  90. package/dist/utils/streams.cjs +0 -14
  91. package/dist/utils/streams.js +0 -13
  92. package/dist/utils/streams.js.map +0 -1
@@ -1,69 +1,68 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const start: () => void;
5
- export const set_log_level: (a: number) => void;
6
- export const __wbg_wasmheader_free: (a: number, b: number) => void;
7
4
  export const __wbg_get_wasmheader_key: (a: number) => [number, number];
8
5
  export const __wbg_get_wasmheader_value: (a: number) => [number, number];
9
- export const wasmheader_new: (a: number, b: number, c: number, d: number) => number;
10
- export const __wbg_wasmresponsehead_free: (a: number, b: number) => void;
11
- export const __wbg_get_wasmresponsehead_status_code: (a: number) => number;
12
- export const __wbg_get_wasmresponsehead_headers: (a: number) => [number, number];
13
- export const __wbg_wasminput_free: (a: number, b: number) => void;
14
- export const __wbg_get_wasminput_key: (a: number) => [number, number];
15
6
  export const __wbg_get_wasminput_headers: (a: number) => [number, number];
16
7
  export const __wbg_get_wasminput_input: (a: number) => any;
8
+ export const __wbg_get_wasminput_key: (a: number) => [number, number];
17
9
  export const __wbg_get_wasminput_random_seed: (a: number) => bigint;
10
+ export const __wbg_get_wasmresponsehead_headers: (a: number) => [number, number];
11
+ export const __wbg_get_wasmresponsehead_status_code: (a: number) => number;
12
+ export const __wbg_wasmheader_free: (a: number, b: number) => void;
13
+ export const __wbg_wasmidentityverifier_free: (a: number, b: number) => void;
14
+ export const __wbg_wasminput_free: (a: number, b: number) => void;
15
+ export const __wbg_wasmresponsehead_free: (a: number, b: number) => void;
18
16
  export const __wbg_wasmvm_free: (a: number, b: number) => void;
19
- export const wasmvm_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
17
+ export const cancel_handle: () => number;
18
+ export const set_log_level: (a: number) => void;
19
+ export const start: () => void;
20
+ export const wasmheader_new: (a: number, b: number, c: number, d: number) => number;
21
+ export const wasmidentityverifier_new: (a: number, b: number) => [number, number, number];
22
+ export const wasmidentityverifier_verify_identity: (a: number, b: number, c: number, d: number, e: number) => [number, number];
23
+ export const wasmvm_do_progress: (a: number, b: number, c: number) => [number, number, number];
20
24
  export const wasmvm_get_response_head: (a: number) => number;
21
- export const wasmvm_notify_input: (a: number, b: number, c: number) => void;
22
- export const wasmvm_notify_input_closed: (a: number) => void;
25
+ export const wasmvm_is_completed: (a: number, b: number) => number;
26
+ export const wasmvm_is_processing: (a: number) => number;
27
+ export const wasmvm_is_ready_to_execute: (a: number) => [number, number, number];
28
+ export const wasmvm_last_command_index: (a: number) => number;
29
+ export const wasmvm_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
23
30
  export const wasmvm_notify_error: (a: number, b: number, c: number, d: number, e: number) => void;
24
- export const wasmvm_notify_error_with_delay_override: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint) => void;
25
31
  export const wasmvm_notify_error_for_next_command: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
26
32
  export const wasmvm_notify_error_for_specific_command: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
27
- export const wasmvm_take_output: (a: number) => any;
28
- export const wasmvm_is_ready_to_execute: (a: number) => [number, number, number];
29
- export const wasmvm_is_completed: (a: number, b: number) => number;
30
- export const wasmvm_do_progress: (a: number, b: number, c: number) => [number, number, number];
31
- export const wasmvm_take_notification: (a: number, b: number) => [number, number, number];
32
- export const wasmvm_sys_input: (a: number) => [number, number, number];
33
- export const wasmvm_sys_get_state: (a: number, b: number, c: number) => [number, number, number];
34
- export const wasmvm_sys_get_state_keys: (a: number) => [number, number, number];
35
- export const wasmvm_sys_set_state: (a: number, b: number, c: number, d: number, e: number) => [number, number];
36
- export const wasmvm_sys_clear_state: (a: number, b: number, c: number) => [number, number];
37
- export const wasmvm_sys_clear_all_state: (a: number) => [number, number];
38
- export const wasmvm_sys_sleep: (a: number, b: bigint, c: number, d: number) => [number, number, number];
33
+ export const wasmvm_notify_error_with_delay_override: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint) => void;
34
+ export const wasmvm_notify_input: (a: number, b: number, c: number) => void;
35
+ export const wasmvm_notify_input_closed: (a: number) => void;
36
+ export const wasmvm_propose_run_completion_failure: (a: number, b: number, c: any) => [number, number];
37
+ export const wasmvm_propose_run_completion_failure_transient: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number) => [number, number];
38
+ export const wasmvm_propose_run_completion_failure_transient_with_delay_override: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number, i: bigint, j: number, k: number, l: bigint) => [number, number];
39
+ export const wasmvm_propose_run_completion_success: (a: number, b: number, c: number, d: number) => [number, number];
39
40
  export const wasmvm_sys_attach_invocation: (a: number, b: number, c: number) => [number, number, number];
40
- export const wasmvm_sys_get_invocation_output: (a: number, b: number, c: number) => [number, number, number];
41
- export const wasmvm_sys_call: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number];
42
- export const wasmvm_sys_send: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: bigint, n: number, o: number, p: number, q: number) => [number, number, number];
43
41
  export const wasmvm_sys_awakeable: (a: number) => [number, number, number];
44
- export const wasmvm_sys_complete_awakeable_success: (a: number, b: number, c: number, d: number, e: number) => [number, number];
42
+ export const wasmvm_sys_call: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number];
43
+ export const wasmvm_sys_cancel_invocation: (a: number, b: number, c: number) => [number, number];
44
+ export const wasmvm_sys_clear_all_state: (a: number) => [number, number];
45
+ export const wasmvm_sys_clear_state: (a: number, b: number, c: number) => [number, number];
45
46
  export const wasmvm_sys_complete_awakeable_failure: (a: number, b: number, c: number, d: any) => [number, number];
47
+ export const wasmvm_sys_complete_awakeable_success: (a: number, b: number, c: number, d: number, e: number) => [number, number];
48
+ export const wasmvm_sys_complete_promise_failure: (a: number, b: number, c: number, d: any) => [number, number, number];
49
+ export const wasmvm_sys_complete_promise_success: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
50
+ export const wasmvm_sys_end: (a: number) => [number, number];
51
+ export const wasmvm_sys_get_invocation_output: (a: number, b: number, c: number) => [number, number, number];
46
52
  export const wasmvm_sys_get_promise: (a: number, b: number, c: number) => [number, number, number];
53
+ export const wasmvm_sys_get_state: (a: number, b: number, c: number) => [number, number, number];
54
+ export const wasmvm_sys_get_state_keys: (a: number) => [number, number, number];
55
+ export const wasmvm_sys_input: (a: number) => [number, number, number];
47
56
  export const wasmvm_sys_peek_promise: (a: number, b: number, c: number) => [number, number, number];
48
- export const wasmvm_sys_complete_promise_success: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
49
- export const wasmvm_sys_complete_promise_failure: (a: number, b: number, c: number, d: any) => [number, number, number];
50
57
  export const wasmvm_sys_run: (a: number, b: number, c: number) => [number, number, number];
51
- export const wasmvm_propose_run_completion_success: (a: number, b: number, c: number, d: number) => [number, number];
52
- export const wasmvm_propose_run_completion_failure: (a: number, b: number, c: any) => [number, number];
53
- export const wasmvm_propose_run_completion_failure_transient: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number) => [number, number];
54
- export const wasmvm_propose_run_completion_failure_transient_with_delay_override: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number, i: bigint, j: number, k: number, l: bigint) => [number, number];
55
- export const wasmvm_sys_cancel_invocation: (a: number, b: number, c: number) => [number, number];
56
- export const wasmvm_sys_write_output_success: (a: number, b: number, c: number) => [number, number];
58
+ export const wasmvm_sys_send: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: bigint, n: number, o: number, p: number, q: number) => [number, number, number];
59
+ export const wasmvm_sys_set_state: (a: number, b: number, c: number, d: number, e: number) => [number, number];
60
+ export const wasmvm_sys_sleep: (a: number, b: bigint, c: number, d: number) => [number, number, number];
57
61
  export const wasmvm_sys_write_output_failure: (a: number, b: any) => [number, number];
58
- export const wasmvm_sys_end: (a: number) => [number, number];
59
- export const wasmvm_is_processing: (a: number) => number;
60
- export const wasmvm_last_command_index: (a: number) => number;
61
- export const __wbg_wasmidentityverifier_free: (a: number, b: number) => void;
62
- export const wasmidentityverifier_new: (a: number, b: number) => [number, number, number];
63
- export const wasmidentityverifier_verify_identity: (a: number, b: number, c: number, d: number, e: number) => [number, number];
64
- export const cancel_handle: () => number;
62
+ export const wasmvm_sys_write_output_success: (a: number, b: number, c: number) => [number, number];
63
+ export const wasmvm_take_notification: (a: number, b: number) => [number, number, number];
64
+ export const wasmvm_take_output: (a: number) => any;
65
65
  export const __wbg_get_wasminput_invocation_id: (a: number) => [number, number];
66
- export const ring_core_0_17_11__bn_mul_mont: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
67
66
  export const __wbindgen_malloc: (a: number, b: number) => number;
68
67
  export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
69
68
  export const __wbindgen_exn_store: (a: number) => void;
@@ -1,5 +1,5 @@
1
- const require_generic = require('./handlers/generic.cjs');
2
1
  const require_endpoint = require('./endpoint.cjs');
2
+ const require_generic = require('./handlers/generic.cjs');
3
3
  const require_lambda = require('./handlers/lambda.cjs');
4
4
 
5
5
  //#region src/endpoint/lambda_endpoint.ts
@@ -27,7 +27,7 @@ var LambdaEndpointImpl = class {
27
27
  }
28
28
  handler() {
29
29
  const compressionEnabled = require_lambda.isCompressionSupported();
30
- const lambdaHandler = new require_lambda.LambdaHandler(new require_generic.GenericHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
30
+ const lambdaHandler = new require_lambda.LambdaHandler(require_generic.createRestateHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
31
31
  return lambdaHandler.handleRequest.bind(lambdaHandler);
32
32
  }
33
33
  };
@@ -1,5 +1,5 @@
1
- import { GenericHandler } from "./handlers/generic.js";
2
1
  import { EndpointBuilder } from "./endpoint.js";
2
+ import { createRestateHandler } from "./handlers/generic.js";
3
3
  import { LambdaHandler, isCompressionSupported } from "./handlers/lambda.js";
4
4
 
5
5
  //#region src/endpoint/lambda_endpoint.ts
@@ -27,7 +27,7 @@ var LambdaEndpointImpl = class {
27
27
  }
28
28
  handler() {
29
29
  const compressionEnabled = isCompressionSupported();
30
- const lambdaHandler = new LambdaHandler(new GenericHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
30
+ const lambdaHandler = new LambdaHandler(createRestateHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
31
31
  return lambdaHandler.handleRequest.bind(lambdaHandler);
32
32
  }
33
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lambda_endpoint.js","names":[],"sources":["../../src/endpoint/lambda_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport type {\n DefaultServiceOptions,\n RestateEndpointBase,\n} from \"../endpoint.js\";\nimport { GenericHandler } from \"./handlers/generic.js\";\nimport { isCompressionSupported, LambdaHandler } from \"./handlers/lambda.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\n\n/**\n * LambdaEndpoint encapsulates all the Restate services served by this endpoint.\n *\n *\n * @example\n * A typical endpoint served as Lambda would look like this:\n * ```\n * import * as restate from \"@restatedev/restate-sdk/lambda\";\n *\n * export const handler = restate\n * .endpoint()\n * .bind(myService)\n * .handler();\n */\nexport interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any>;\n}\n\nexport class LambdaEndpointImpl implements LambdaEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): LambdaEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): LambdaEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(options: DefaultServiceOptions): LambdaEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): LambdaEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): LambdaEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any> {\n const compressionEnabled = isCompressionSupported();\n\n const genericHandler = new GenericHandler(\n this.builder.build(),\n \"REQUEST_RESPONSE\",\n compressionEnabled\n ? {\n lambdaCompression: \"zstd\",\n }\n : {}\n );\n const lambdaHandler = new LambdaHandler(genericHandler, compressionEnabled);\n return lambdaHandler.handleRequest.bind(lambdaHandler);\n }\n}\n"],"mappings":";;;;;AA6CA,IAAa,qBAAb,MAA0D;CACxD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIgB;AAChB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAgC;AACvD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBAAsB,SAAgD;AAC3E,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAAyC;AACxD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACgB;AAChB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAIT,UAAkD;EAChD,MAAM,qBAAqB,wBAAwB;EAWnD,MAAM,gBAAgB,IAAI,cATH,IAAI,eACzB,KAAK,QAAQ,OAAO,EACpB,oBACA,qBACI,EACE,mBAAmB,QACpB,GACD,EAAE,CACP,EACuD,mBAAmB;AAC3E,SAAO,cAAc,cAAc,KAAK,cAAc"}
1
+ {"version":3,"file":"lambda_endpoint.js","names":[],"sources":["../../src/endpoint/lambda_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport type {\n DefaultServiceOptions,\n RestateEndpointBase,\n} from \"../endpoint.js\";\nimport { createRestateHandler } from \"./handlers/generic.js\";\nimport { isCompressionSupported, LambdaHandler } from \"./handlers/lambda.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\n\n/**\n * LambdaEndpoint encapsulates all the Restate services served by this endpoint.\n *\n *\n * @example\n * A typical endpoint served as Lambda would look like this:\n * ```\n * import * as restate from \"@restatedev/restate-sdk/lambda\";\n *\n * export const handler = restate\n * .endpoint()\n * .bind(myService)\n * .handler();\n */\nexport interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any>;\n}\n\nexport class LambdaEndpointImpl implements LambdaEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): LambdaEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): LambdaEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(options: DefaultServiceOptions): LambdaEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): LambdaEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): LambdaEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any> {\n const compressionEnabled = isCompressionSupported();\n\n const genericHandler = createRestateHandler(\n this.builder.build(),\n \"REQUEST_RESPONSE\",\n compressionEnabled\n ? {\n lambdaCompression: \"zstd\",\n }\n : {}\n );\n const lambdaHandler = new LambdaHandler(genericHandler, compressionEnabled);\n return lambdaHandler.handleRequest.bind(lambdaHandler);\n }\n}\n"],"mappings":";;;;;AA6CA,IAAa,qBAAb,MAA0D;CACxD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIgB;AAChB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAgC;AACvD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBAAsB,SAAgD;AAC3E,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAAyC;AACxD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACgB;AAChB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAIT,UAAkD;EAChD,MAAM,qBAAqB,wBAAwB;EAWnD,MAAM,gBAAgB,IAAI,cATH,qBACrB,KAAK,QAAQ,OAAO,EACpB,oBACA,qBACI,EACE,mBAAmB,QACpB,GACD,EAAE,CACP,EACuD,mBAAmB;AAC3E,SAAO,cAAc,cAAc,KAAK,cAAc"}
@@ -1,11 +1,10 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
2
  const require_errors = require('../types/errors.cjs');
3
- const require_generic = require('./handlers/generic.cjs');
4
3
  const require_endpoint = require('./endpoint.cjs');
4
+ const require_utils = require('./handlers/utils.cjs');
5
+ const require_generic = require('./handlers/generic.cjs');
5
6
  let http2 = require("http2");
6
7
  http2 = require_rolldown_runtime.__toESM(http2);
7
- let node_stream = require("node:stream");
8
- node_stream = require_rolldown_runtime.__toESM(node_stream);
9
8
 
10
9
  //#region src/endpoint/node_endpoint.ts
11
10
  var NodeEndpoint = class {
@@ -54,46 +53,47 @@ var NodeEndpoint = class {
54
53
  }
55
54
  };
56
55
  function nodeHttp2Handler(endpoint) {
57
- const handler = new require_generic.GenericHandler(endpoint, "BIDI_STREAM", {});
58
- return (request, response) => {
59
- (async () => {
60
- const abortController = new AbortController();
61
- request.once("aborted", () => {
62
- abortController.abort();
63
- });
64
- request.once("close", () => {
65
- abortController.abort();
56
+ const handler = require_generic.createRestateHandler(endpoint, "BIDI_STREAM", {});
57
+ return (httpRequest, httpResponse) => {
58
+ const url = httpRequest.url;
59
+ const abortController = new AbortController();
60
+ httpRequest.on("close", () => {
61
+ abortController.abort();
62
+ });
63
+ const restateResponse = handler.handle({
64
+ url,
65
+ headers: httpRequest.headers,
66
+ extraArgs: []
67
+ });
68
+ httpResponse.writeHead(restateResponse.statusCode, restateResponse.headers);
69
+ restateResponse.process({
70
+ inputReader: inputReaderAdapter(httpRequest),
71
+ outputWriter: outputWriterAdapter(httpResponse),
72
+ abortSignal: abortController.signal
73
+ }).catch((e) => {
74
+ const error = require_errors.ensureError(e);
75
+ (require_utils.tryCreateContextualLogger(endpoint.loggerTransport, url, httpRequest.headers) ?? endpoint.rlog).error("Unexpected error: " + (error.stack ?? error.message));
76
+ });
77
+ };
78
+ }
79
+ function inputReaderAdapter(request) {
80
+ return request[Symbol.asyncIterator]();
81
+ }
82
+ function outputWriterAdapter(response) {
83
+ return {
84
+ write: function(value) {
85
+ return new Promise((resolve, reject) => {
86
+ response.write(value, (err) => {
87
+ if (err) reject(err);
88
+ else resolve();
89
+ });
66
90
  });
67
- request.once("error", () => {
68
- abortController.abort();
91
+ },
92
+ close: function() {
93
+ return new Promise((resolve) => {
94
+ response.end(() => resolve());
69
95
  });
70
- if (request.destroyed || request.aborted) {
71
- endpoint.rlog.error("Client disconnected");
72
- abortController.abort();
73
- }
74
- try {
75
- const url = request.url;
76
- const webRequestBody = node_stream.Readable.toWeb(request);
77
- const resp = await handler.handle({
78
- url,
79
- headers: request.headers,
80
- body: webRequestBody,
81
- extraArgs: [],
82
- abortSignal: abortController.signal
83
- });
84
- if (response.destroyed) return;
85
- response.writeHead(resp.statusCode, resp.headers);
86
- const responseWeb = node_stream.Writable.toWeb(response);
87
- await resp.body.pipeTo(responseWeb);
88
- } catch (e) {
89
- const error = require_errors.ensureError(e);
90
- const logger = require_generic.tryCreateContextualLogger(endpoint.loggerTransport, request.url, request.headers) ?? endpoint.rlog;
91
- if (error.name === "AbortError") logger.error("Got abort error from connection: " + error.message + "\nThis might indicate that:\n* The restate-server aborted the connection after hitting the 'abort-timeout'\n* The connection with the restate-server was lost\n\nPlease check the invocation in the Restate UI for more details.");
92
- else logger.error("Error while handling request: " + (error.stack ?? error.message));
93
- response.destroy(error);
94
- abortController.abort();
95
- }
96
- })().catch(() => {});
96
+ }
97
97
  };
98
98
  }
99
99
 
@@ -1,8 +1,8 @@
1
1
  import { ensureError } from "../types/errors.js";
2
- import { GenericHandler, tryCreateContextualLogger } from "./handlers/generic.js";
3
2
  import { EndpointBuilder } from "./endpoint.js";
3
+ import { tryCreateContextualLogger } from "./handlers/utils.js";
4
+ import { createRestateHandler } from "./handlers/generic.js";
4
5
  import * as http2 from "http2";
5
- import { Readable, Writable } from "node:stream";
6
6
 
7
7
  //#region src/endpoint/node_endpoint.ts
8
8
  var NodeEndpoint = class {
@@ -51,46 +51,47 @@ var NodeEndpoint = class {
51
51
  }
52
52
  };
53
53
  function nodeHttp2Handler(endpoint) {
54
- const handler = new GenericHandler(endpoint, "BIDI_STREAM", {});
55
- return (request, response) => {
56
- (async () => {
57
- const abortController = new AbortController();
58
- request.once("aborted", () => {
59
- abortController.abort();
60
- });
61
- request.once("close", () => {
62
- abortController.abort();
54
+ const handler = createRestateHandler(endpoint, "BIDI_STREAM", {});
55
+ return (httpRequest, httpResponse) => {
56
+ const url = httpRequest.url;
57
+ const abortController = new AbortController();
58
+ httpRequest.on("close", () => {
59
+ abortController.abort();
60
+ });
61
+ const restateResponse = handler.handle({
62
+ url,
63
+ headers: httpRequest.headers,
64
+ extraArgs: []
65
+ });
66
+ httpResponse.writeHead(restateResponse.statusCode, restateResponse.headers);
67
+ restateResponse.process({
68
+ inputReader: inputReaderAdapter(httpRequest),
69
+ outputWriter: outputWriterAdapter(httpResponse),
70
+ abortSignal: abortController.signal
71
+ }).catch((e) => {
72
+ const error = ensureError(e);
73
+ (tryCreateContextualLogger(endpoint.loggerTransport, url, httpRequest.headers) ?? endpoint.rlog).error("Unexpected error: " + (error.stack ?? error.message));
74
+ });
75
+ };
76
+ }
77
+ function inputReaderAdapter(request) {
78
+ return request[Symbol.asyncIterator]();
79
+ }
80
+ function outputWriterAdapter(response) {
81
+ return {
82
+ write: function(value) {
83
+ return new Promise((resolve, reject) => {
84
+ response.write(value, (err) => {
85
+ if (err) reject(err);
86
+ else resolve();
87
+ });
63
88
  });
64
- request.once("error", () => {
65
- abortController.abort();
89
+ },
90
+ close: function() {
91
+ return new Promise((resolve) => {
92
+ response.end(() => resolve());
66
93
  });
67
- if (request.destroyed || request.aborted) {
68
- endpoint.rlog.error("Client disconnected");
69
- abortController.abort();
70
- }
71
- try {
72
- const url = request.url;
73
- const webRequestBody = Readable.toWeb(request);
74
- const resp = await handler.handle({
75
- url,
76
- headers: request.headers,
77
- body: webRequestBody,
78
- extraArgs: [],
79
- abortSignal: abortController.signal
80
- });
81
- if (response.destroyed) return;
82
- response.writeHead(resp.statusCode, resp.headers);
83
- const responseWeb = Writable.toWeb(response);
84
- await resp.body.pipeTo(responseWeb);
85
- } catch (e) {
86
- const error = ensureError(e);
87
- const logger = tryCreateContextualLogger(endpoint.loggerTransport, request.url, request.headers) ?? endpoint.rlog;
88
- if (error.name === "AbortError") logger.error("Got abort error from connection: " + error.message + "\nThis might indicate that:\n* The restate-server aborted the connection after hitting the 'abort-timeout'\n* The connection with the restate-server was lost\n\nPlease check the invocation in the Restate UI for more details.");
89
- else logger.error("Error while handling request: " + (error.stack ?? error.message));
90
- response.destroy(error);
91
- abortController.abort();
92
- }
93
- })().catch(() => {});
94
+ }
94
95
  };
95
96
  }
96
97
 
@@ -1 +1 @@
1
- {"version":3,"file":"node_endpoint.js","names":[],"sources":["../../src/endpoint/node_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type { RestateEndpoint } from \"../index.js\";\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\n\nimport type { Http2ServerRequest, Http2ServerResponse } from \"http2\";\nimport * as http2 from \"http2\";\nimport type { Endpoint } from \"./endpoint.js\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport {\n GenericHandler,\n tryCreateContextualLogger,\n} from \"./handlers/generic.js\";\nimport { Readable, Writable } from \"node:stream\";\nimport type { WritableStream } from \"node:stream/web\";\nimport { ensureError } from \"../types/errors.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\nimport type { DefaultServiceOptions } from \"../endpoint.js\";\n\nexport class NodeEndpoint implements RestateEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): RestateEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): RestateEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(\n options: DefaultServiceOptions\n ): RestateEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): RestateEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): RestateEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n http2Handler(): (\n request: Http2ServerRequest,\n response: Http2ServerResponse\n ) => void {\n return nodeHttp2Handler(this.builder.build());\n }\n\n listen(port?: number): Promise<number> {\n const endpoint = this.builder.build();\n\n const actualPort = port ?? parseInt(process.env.PORT ?? \"9080\");\n endpoint.rlog.info(`Restate SDK started listening on ${actualPort}...`);\n\n const server = http2.createServer(nodeHttp2Handler(endpoint));\n\n return new Promise((resolve, reject) => {\n let failed = false;\n server.once(\"error\", (e: Error) => {\n failed = true;\n reject(e);\n });\n server.listen(actualPort, () => {\n if (failed) {\n return;\n }\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n reject(\n new TypeError(\n \"endpoint.listen() currently supports only binding to a PORT\"\n )\n );\n } else {\n resolve(address.port);\n }\n });\n });\n }\n}\n\nfunction nodeHttp2Handler(\n endpoint: Endpoint\n): (request: Http2ServerRequest, response: Http2ServerResponse) => void {\n const handler = new GenericHandler(endpoint, \"BIDI_STREAM\", {});\n\n return (request, response) => {\n (async () => {\n const abortController = new AbortController();\n\n request.once(\"aborted\", () => {\n abortController.abort();\n });\n request.once(\"close\", () => {\n abortController.abort();\n });\n request.once(\"error\", () => {\n abortController.abort();\n });\n\n if (request.destroyed || request.aborted) {\n endpoint.rlog.error(\"Client disconnected\");\n abortController.abort();\n }\n\n try {\n const url = request.url;\n const webRequestBody = Readable.toWeb(request);\n\n const resp = await handler.handle({\n url,\n headers: request.headers,\n body: webRequestBody,\n extraArgs: [],\n abortSignal: abortController.signal,\n });\n\n if (response.destroyed) {\n return;\n }\n\n response.writeHead(resp.statusCode, resp.headers);\n const responseWeb = Writable.toWeb(\n response\n ) as WritableStream<Uint8Array>;\n await resp.body.pipeTo(responseWeb);\n } catch (e) {\n const error = ensureError(e);\n\n const logger =\n tryCreateContextualLogger(\n endpoint.loggerTransport,\n request.url,\n request.headers\n ) ?? endpoint.rlog;\n if (error.name === \"AbortError\") {\n logger.error(\n \"Got abort error from connection: \" +\n error.message +\n \"\\n\" +\n \"This might indicate that:\\n\" +\n \"* The restate-server aborted the connection after hitting the 'abort-timeout'\\n\" +\n \"* The connection with the restate-server was lost\\n\" +\n \"\\n\" +\n \"Please check the invocation in the Restate UI for more details.\"\n );\n } else {\n logger.error(\n \"Error while handling request: \" + (error.stack ?? error.message)\n );\n }\n\n response.destroy(error);\n abortController.abort();\n }\n })().catch(() => {});\n };\n}\n"],"mappings":";;;;;;;AAiCA,IAAa,eAAb,MAAqD;CACnD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIiB;AACjB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAiC;AACxD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBACL,SACiB;AACjB,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAA0C;AACzD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACiB;AACjB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAGT,eAGU;AACR,SAAO,iBAAiB,KAAK,QAAQ,OAAO,CAAC;;CAG/C,OAAO,MAAgC;EACrC,MAAM,WAAW,KAAK,QAAQ,OAAO;EAErC,MAAM,aAAa,QAAQ,SAAS,QAAQ,IAAI,QAAQ,OAAO;AAC/D,WAAS,KAAK,KAAK,oCAAoC,WAAW,KAAK;EAEvE,MAAM,SAAS,MAAM,aAAa,iBAAiB,SAAS,CAAC;AAE7D,SAAO,IAAI,SAAS,SAAS,WAAW;GACtC,IAAI,SAAS;AACb,UAAO,KAAK,UAAU,MAAa;AACjC,aAAS;AACT,WAAO,EAAE;KACT;AACF,UAAO,OAAO,kBAAkB;AAC9B,QAAI,OACF;IAEF,MAAM,UAAU,OAAO,SAAS;AAChC,QAAI,YAAY,QAAQ,OAAO,YAAY,SACzC,wBACE,IAAI,UACF,8DACD,CACF;QAED,SAAQ,QAAQ,KAAK;KAEvB;IACF;;;AAIN,SAAS,iBACP,UACsE;CACtE,MAAM,UAAU,IAAI,eAAe,UAAU,eAAe,EAAE,CAAC;AAE/D,SAAQ,SAAS,aAAa;AAC5B,GAAC,YAAY;GACX,MAAM,kBAAkB,IAAI,iBAAiB;AAE7C,WAAQ,KAAK,iBAAiB;AAC5B,oBAAgB,OAAO;KACvB;AACF,WAAQ,KAAK,eAAe;AAC1B,oBAAgB,OAAO;KACvB;AACF,WAAQ,KAAK,eAAe;AAC1B,oBAAgB,OAAO;KACvB;AAEF,OAAI,QAAQ,aAAa,QAAQ,SAAS;AACxC,aAAS,KAAK,MAAM,sBAAsB;AAC1C,oBAAgB,OAAO;;AAGzB,OAAI;IACF,MAAM,MAAM,QAAQ;IACpB,MAAM,iBAAiB,SAAS,MAAM,QAAQ;IAE9C,MAAM,OAAO,MAAM,QAAQ,OAAO;KAChC;KACA,SAAS,QAAQ;KACjB,MAAM;KACN,WAAW,EAAE;KACb,aAAa,gBAAgB;KAC9B,CAAC;AAEF,QAAI,SAAS,UACX;AAGF,aAAS,UAAU,KAAK,YAAY,KAAK,QAAQ;IACjD,MAAM,cAAc,SAAS,MAC3B,SACD;AACD,UAAM,KAAK,KAAK,OAAO,YAAY;YAC5B,GAAG;IACV,MAAM,QAAQ,YAAY,EAAE;IAE5B,MAAM,SACJ,0BACE,SAAS,iBACT,QAAQ,KACR,QAAQ,QACT,IAAI,SAAS;AAChB,QAAI,MAAM,SAAS,aACjB,QAAO,MACL,sCACE,MAAM,UACN,mOAMH;QAED,QAAO,MACL,oCAAoC,MAAM,SAAS,MAAM,SAC1D;AAGH,aAAS,QAAQ,MAAM;AACvB,oBAAgB,OAAO;;MAEvB,CAAC,YAAY,GAAG"}
1
+ {"version":3,"file":"node_endpoint.js","names":[],"sources":["../../src/endpoint/node_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type { RestateEndpoint } from \"../index.js\";\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\nimport { Http2ServerRequest, Http2ServerResponse } from \"http2\";\nimport * as http2 from \"http2\";\nimport type { Endpoint } from \"./endpoint.js\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport { createRestateHandler } from \"./handlers/generic.js\";\nimport { ensureError } from \"../types/errors.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\nimport type { DefaultServiceOptions } from \"../endpoint.js\";\nimport { tryCreateContextualLogger } from \"./handlers/utils.js\";\nimport { InputReader, OutputWriter } from \"./handlers/types.js\";\n\nexport class NodeEndpoint implements RestateEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): RestateEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): RestateEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(\n options: DefaultServiceOptions\n ): RestateEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): RestateEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): RestateEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n http2Handler(): (\n request: Http2ServerRequest,\n response: Http2ServerResponse\n ) => void {\n return nodeHttp2Handler(this.builder.build());\n }\n\n listen(port?: number): Promise<number> {\n const endpoint = this.builder.build();\n\n const actualPort = port ?? parseInt(process.env.PORT ?? \"9080\");\n endpoint.rlog.info(`Restate SDK started listening on ${actualPort}...`);\n\n const server = http2.createServer(nodeHttp2Handler(endpoint));\n\n return new Promise((resolve, reject) => {\n let failed = false;\n server.once(\"error\", (e: Error) => {\n failed = true;\n reject(e);\n });\n server.listen(actualPort, () => {\n if (failed) {\n return;\n }\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n reject(\n new TypeError(\n \"endpoint.listen() currently supports only binding to a PORT\"\n )\n );\n } else {\n resolve(address.port);\n }\n });\n });\n }\n}\n\nfunction nodeHttp2Handler(\n endpoint: Endpoint\n): (request: Http2ServerRequest, response: Http2ServerResponse) => void {\n const handler = createRestateHandler(endpoint, \"BIDI_STREAM\", {});\n\n return (httpRequest, httpResponse) => {\n const url = httpRequest.url;\n\n // Abort controller used to cleanup resources at the end of this stream lifecycle\n const abortController = new AbortController();\n httpRequest.on(\"close\", () => {\n // The 'close' event is emitted when the Http2Stream is destroyed.\n abortController.abort();\n });\n\n const restateResponse = handler.handle({\n url,\n headers: httpRequest.headers,\n extraArgs: [],\n });\n\n httpResponse.writeHead(restateResponse.statusCode, restateResponse.headers);\n\n restateResponse\n .process({\n inputReader: inputReaderAdapter(httpRequest),\n outputWriter: outputWriterAdapter(httpResponse),\n abortSignal: abortController.signal,\n })\n .catch((e) => {\n // handle should never throw\n const error = ensureError(e);\n const logger =\n tryCreateContextualLogger(\n endpoint.loggerTransport,\n url,\n httpRequest.headers\n ) ?? endpoint.rlog;\n logger.error(\"Unexpected error: \" + (error.stack ?? error.message));\n });\n };\n}\n\nfunction inputReaderAdapter(request: Http2ServerRequest): InputReader {\n return request[Symbol.asyncIterator]();\n}\n\nfunction outputWriterAdapter(response: Http2ServerResponse): OutputWriter {\n return {\n write: function (value: Uint8Array): Promise<void> {\n return new Promise((resolve, reject) => {\n response.write(value, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n },\n close: function (): Promise<void> {\n return new Promise((resolve) => {\n response.end(() => resolve());\n });\n },\n };\n}\n"],"mappings":";;;;;;;AA6BA,IAAa,eAAb,MAAqD;CACnD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIiB;AACjB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAiC;AACxD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBACL,SACiB;AACjB,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAA0C;AACzD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACiB;AACjB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAGT,eAGU;AACR,SAAO,iBAAiB,KAAK,QAAQ,OAAO,CAAC;;CAG/C,OAAO,MAAgC;EACrC,MAAM,WAAW,KAAK,QAAQ,OAAO;EAErC,MAAM,aAAa,QAAQ,SAAS,QAAQ,IAAI,QAAQ,OAAO;AAC/D,WAAS,KAAK,KAAK,oCAAoC,WAAW,KAAK;EAEvE,MAAM,SAAS,MAAM,aAAa,iBAAiB,SAAS,CAAC;AAE7D,SAAO,IAAI,SAAS,SAAS,WAAW;GACtC,IAAI,SAAS;AACb,UAAO,KAAK,UAAU,MAAa;AACjC,aAAS;AACT,WAAO,EAAE;KACT;AACF,UAAO,OAAO,kBAAkB;AAC9B,QAAI,OACF;IAEF,MAAM,UAAU,OAAO,SAAS;AAChC,QAAI,YAAY,QAAQ,OAAO,YAAY,SACzC,wBACE,IAAI,UACF,8DACD,CACF;QAED,SAAQ,QAAQ,KAAK;KAEvB;IACF;;;AAIN,SAAS,iBACP,UACsE;CACtE,MAAM,UAAU,qBAAqB,UAAU,eAAe,EAAE,CAAC;AAEjE,SAAQ,aAAa,iBAAiB;EACpC,MAAM,MAAM,YAAY;EAGxB,MAAM,kBAAkB,IAAI,iBAAiB;AAC7C,cAAY,GAAG,eAAe;AAE5B,mBAAgB,OAAO;IACvB;EAEF,MAAM,kBAAkB,QAAQ,OAAO;GACrC;GACA,SAAS,YAAY;GACrB,WAAW,EAAE;GACd,CAAC;AAEF,eAAa,UAAU,gBAAgB,YAAY,gBAAgB,QAAQ;AAE3E,kBACG,QAAQ;GACP,aAAa,mBAAmB,YAAY;GAC5C,cAAc,oBAAoB,aAAa;GAC/C,aAAa,gBAAgB;GAC9B,CAAC,CACD,OAAO,MAAM;GAEZ,MAAM,QAAQ,YAAY,EAAE;AAO5B,IALE,0BACE,SAAS,iBACT,KACA,YAAY,QACb,IAAI,SAAS,MACT,MAAM,wBAAwB,MAAM,SAAS,MAAM,SAAS;IACnE;;;AAIR,SAAS,mBAAmB,SAA0C;AACpE,QAAO,QAAQ,OAAO,gBAAgB;;AAGxC,SAAS,oBAAoB,UAA6C;AACxE,QAAO;EACL,OAAO,SAAU,OAAkC;AACjD,UAAO,IAAI,SAAS,SAAS,WAAW;AACtC,aAAS,MAAM,QAAQ,QAAQ;AAC7B,SAAI,IACF,QAAO,IAAI;SAEX,UAAS;MAEX;KACF;;EAEJ,OAAO,WAA2B;AAChC,UAAO,IAAI,SAAS,YAAY;AAC9B,aAAS,UAAU,SAAS,CAAC;KAC7B;;EAEL"}
package/dist/fetch.cjs CHANGED
@@ -2,6 +2,7 @@ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
2
  const require_errors = require('./types/errors.cjs');
3
3
  const require_rpc = require('./types/rpc.cjs');
4
4
  const require_context = require('./context.cjs');
5
+ const require_internal = require('./internal.cjs');
5
6
  const require_common_api = require('./common_api.cjs');
6
7
  const require_fetch_endpoint = require('./endpoint/fetch_endpoint.cjs');
7
8
  const require_withOptions = require('./endpoint/withOptions.cjs');
@@ -66,6 +67,12 @@ Object.defineProperty(exports, 'handlers', {
66
67
  return require_rpc.handlers;
67
68
  }
68
69
  });
70
+ Object.defineProperty(exports, 'internal', {
71
+ enumerable: true,
72
+ get: function () {
73
+ return require_internal.internal_exports;
74
+ }
75
+ });
69
76
  exports.object = require_rpc.object;
70
77
  Object.defineProperty(exports, 'rpc', {
71
78
  enumerable: true,
package/dist/fetch.d.cts CHANGED
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
4
4
  import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.cjs";
5
5
  import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.cjs";
6
6
  import { EndpointOptions } from "./endpoint/types.cjs";
7
+ import { internal_d_exports } from "./internal.cjs";
7
8
  import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.cjs";
8
9
  import { FetchEndpoint } from "./endpoint/fetch_endpoint.cjs";
9
10
 
@@ -48,5 +49,5 @@ interface FetchEndpointOptions extends EndpointOptions {
48
49
  */
49
50
  declare function createEndpointHandler(options: FetchEndpointOptions): (request: Request, ...extraArgs: unknown[]) => Promise<Response>;
50
51
  //#endregion
51
- export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, service, workflow };
52
+ export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, service, workflow };
52
53
  //# sourceMappingURL=fetch.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.cts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;iBAyBgB,QAAA,CAAA,GAAY;UAIX,oBAAA,SAA6B;EAJ9B;AAIhB;AAiCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,qBAAA,UAA+B,iCAAoB,qCAAA,QAAA"}
1
+ {"version":3,"file":"fetch.d.cts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;iBAyBgB,QAAA,CAAA,GAAY;UAIX,oBAAA,SAA6B;;AAJ9C;AAIA;AAiCA;;;;;EAAmE,aAAA,CAAA,EAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;iBAAnD,qBAAA,UAA+B,iCAAoB,qCAAA,QAAA"}
package/dist/fetch.d.ts CHANGED
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
4
4
  import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.js";
5
5
  import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.js";
6
6
  import { EndpointOptions } from "./endpoint/types.js";
7
+ import { internal_d_exports } from "./internal.js";
7
8
  import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.js";
8
9
  import { FetchEndpoint } from "./endpoint/fetch_endpoint.js";
9
10
 
@@ -48,5 +49,5 @@ interface FetchEndpointOptions extends EndpointOptions {
48
49
  */
49
50
  declare function createEndpointHandler(options: FetchEndpointOptions): (request: Request, ...extraArgs: unknown[]) => Promise<Response>;
50
51
  //#endregion
51
- export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, service, workflow };
52
+ export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, service, workflow };
52
53
  //# sourceMappingURL=fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;iBAyBgB,QAAA,CAAA,GAAY;UAIX,oBAAA,SAA6B;EAJ9B;AAIhB;AAiCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,qBAAA,UAA+B,iCAAoB,qCAAA,QAAA"}
1
+ {"version":3,"file":"fetch.d.ts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;iBAyBgB,QAAA,CAAA,GAAY;UAIX,oBAAA,SAA6B;;AAJ9C;AAIA;AAiCA;;;;;EAAmE,aAAA,CAAA,EAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;iBAAnD,qBAAA,UAA+B,iCAAoB,qCAAA,QAAA"}
package/dist/fetch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","names":[],"sources":["../src/fetch.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nexport * from \"./common_api.js\";\n\nimport {\n type FetchEndpoint,\n FetchEndpointImpl,\n} from \"./endpoint/fetch_endpoint.js\";\nimport type { EndpointOptions } from \"./endpoint/types.js\";\nimport { withOptions } from \"./endpoint/withOptions.js\";\n\n/**\n * Create a new {@link RestateEndpoint} in request response protocol mode.\n * Bidirectional mode (must be served over http2) can be enabled with .enableHttp2()\n * @deprecated Please use {@link createEndpointHandler}\n */\nexport function endpoint(): FetchEndpoint {\n return new FetchEndpointImpl(\"REQUEST_RESPONSE\");\n}\n\nexport interface FetchEndpointOptions extends EndpointOptions {\n /**\n * Enables bidirectional communication for the handler.\n *\n * When set to `true`, the handler supports bidirectional streaming (e.g., via HTTP/2 or compatible HTTP/1.1 servers).\n * When `false`, the handler operates in request-response mode only.\n *\n * @default false\n */\n bidirectional?: boolean;\n}\n\n/**\n * Creates a Fetch handler that encapsulates all the Restate services served by this endpoint.\n *\n * @param {FetchEndpointOptions} options - Configuration options for the endpoint handler.\n * @returns A fetch handler function.\n *\n * @example\n * A typical request-response handler would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService] })\n *\n * @example\n * A typical bidirectional handler (works with http2 and some http1.1 servers) would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService], bidirectional: true })\n *\n */\nexport function createEndpointHandler(options: FetchEndpointOptions) {\n return withOptions<FetchEndpoint>(\n new FetchEndpointImpl(\n options.bidirectional ? \"BIDI_STREAM\" : \"REQUEST_RESPONSE\"\n ),\n options\n ).handler().fetch;\n}\nexport { type FetchEndpoint } from \"./endpoint/fetch_endpoint.js\";\n"],"mappings":";;;;;;;;;;;;;AAyBA,SAAgB,WAA0B;AACxC,QAAO,IAAI,kBAAkB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;AAoClD,SAAgB,sBAAsB,SAA+B;AACnE,QAAO,YACL,IAAI,kBACF,QAAQ,gBAAgB,gBAAgB,mBACzC,EACD,QACD,CAAC,SAAS,CAAC"}
1
+ {"version":3,"file":"fetch.js","names":[],"sources":["../src/fetch.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nexport * from \"./common_api.js\";\n\nimport {\n type FetchEndpoint,\n FetchEndpointImpl,\n} from \"./endpoint/fetch_endpoint.js\";\nimport type { EndpointOptions } from \"./endpoint/types.js\";\nimport { withOptions } from \"./endpoint/withOptions.js\";\n\n/**\n * Create a new {@link RestateEndpoint} in request response protocol mode.\n * Bidirectional mode (must be served over http2) can be enabled with .enableHttp2()\n * @deprecated Please use {@link createEndpointHandler}\n */\nexport function endpoint(): FetchEndpoint {\n return new FetchEndpointImpl(\"REQUEST_RESPONSE\");\n}\n\nexport interface FetchEndpointOptions extends EndpointOptions {\n /**\n * Enables bidirectional communication for the handler.\n *\n * When set to `true`, the handler supports bidirectional streaming (e.g., via HTTP/2 or compatible HTTP/1.1 servers).\n * When `false`, the handler operates in request-response mode only.\n *\n * @default false\n */\n bidirectional?: boolean;\n}\n\n/**\n * Creates a Fetch handler that encapsulates all the Restate services served by this endpoint.\n *\n * @param {FetchEndpointOptions} options - Configuration options for the endpoint handler.\n * @returns A fetch handler function.\n *\n * @example\n * A typical request-response handler would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService] })\n *\n * @example\n * A typical bidirectional handler (works with http2 and some http1.1 servers) would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService], bidirectional: true })\n *\n */\nexport function createEndpointHandler(options: FetchEndpointOptions) {\n return withOptions<FetchEndpoint>(\n new FetchEndpointImpl(\n options.bidirectional ? \"BIDI_STREAM\" : \"REQUEST_RESPONSE\"\n ),\n options\n ).handler().fetch;\n}\nexport { type FetchEndpoint } from \"./endpoint/fetch_endpoint.js\";\n"],"mappings":";;;;;;;;;;;;;;AAyBA,SAAgB,WAA0B;AACxC,QAAO,IAAI,kBAAkB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;AAoClD,SAAgB,sBAAsB,SAA+B;AACnE,QAAO,YACL,IAAI,kBACF,QAAQ,gBAAgB,gBAAgB,mBACzC,EACD,QACD,CAAC,SAAS,CAAC"}
package/dist/index.cjs CHANGED
@@ -2,6 +2,7 @@ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
2
  const require_errors = require('./types/errors.cjs');
3
3
  const require_rpc = require('./types/rpc.cjs');
4
4
  const require_context = require('./context.cjs');
5
+ const require_internal = require('./internal.cjs');
5
6
  const require_common_api = require('./common_api.cjs');
6
7
  const require_node = require('./node.cjs');
7
8
  let __restatedev_restate_sdk_core = require("@restatedev/restate-sdk-core");
@@ -30,6 +31,12 @@ Object.defineProperty(exports, 'handlers', {
30
31
  return require_rpc.handlers;
31
32
  }
32
33
  });
34
+ Object.defineProperty(exports, 'internal', {
35
+ enumerable: true,
36
+ get: function () {
37
+ return require_internal.internal_exports;
38
+ }
39
+ });
33
40
  exports.object = require_rpc.object;
34
41
  Object.defineProperty(exports, 'rpc', {
35
42
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
4
4
  import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.cjs";
5
5
  import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.cjs";
6
6
  import { EndpointOptions } from "./endpoint/types.cjs";
7
+ import { internal_d_exports } from "./internal.cjs";
7
8
  import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.cjs";
8
9
  import { ServeOptions, createEndpointHandler, endpoint, serve } from "./node.cjs";
9
- export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, serve, service, workflow };
10
+ export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, serve, service, workflow };
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
4
4
  import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.js";
5
5
  import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.js";
6
6
  import { EndpointOptions } from "./endpoint/types.js";
7
+ import { internal_d_exports } from "./internal.js";
7
8
  import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.js";
8
9
  import { ServeOptions, createEndpointHandler, endpoint, serve } from "./node.js";
9
- export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, serve, service, workflow };
10
+ export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, serve, service, workflow };
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { CancelledError, RestateError, RetryableError, TerminalError, TimeoutError } from "./types/errors.js";
2
2
  import { Opts, SendOpts, handlers, object, rpc, service, workflow } from "./types/rpc.js";
3
3
  import { InvocationIdParser, RestatePromise } from "./context.js";
4
+ import { internal_exports } from "./internal.js";
4
5
  import { CombineablePromise, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.js";
5
6
  import { createEndpointHandler, endpoint, serve } from "./node.js";
6
7
 
7
- export { CancelledError, CombineablePromise, InvocationIdParser, Opts, RestateError, RestatePromise, RetryableError, SendOpts, TerminalError, TimeoutError, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, serve, service, workflow };
8
+ export { CancelledError, CombineablePromise, InvocationIdParser, Opts, RestateError, RestatePromise, RetryableError, SendOpts, TerminalError, TimeoutError, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_exports as internal, object, rpc, serde, serve, service, workflow };
@@ -0,0 +1,11 @@
1
+
2
+ //#region src/internal.ts
3
+ var internal_exports = {};
4
+
5
+ //#endregion
6
+ Object.defineProperty(exports, 'internal_exports', {
7
+ enumerable: true,
8
+ get: function () {
9
+ return internal_exports;
10
+ }
11
+ });