@restatedev/restate-sdk-cloudflare-workers 0.0.0-SNAPSHOT-20241001101403

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 (123) hide show
  1. package/dist/esm/src/common_api.d.ts +12 -0
  2. package/dist/esm/src/common_api.d.ts.map +1 -0
  3. package/dist/esm/src/common_api.js +16 -0
  4. package/dist/esm/src/common_api.js.map +1 -0
  5. package/dist/esm/src/context.d.ts +587 -0
  6. package/dist/esm/src/context.d.ts.map +1 -0
  7. package/dist/esm/src/context.js +75 -0
  8. package/dist/esm/src/context.js.map +1 -0
  9. package/dist/esm/src/context_impl.d.ts +96 -0
  10. package/dist/esm/src/context_impl.d.ts.map +1 -0
  11. package/dist/esm/src/context_impl.js +696 -0
  12. package/dist/esm/src/context_impl.js.map +1 -0
  13. package/dist/esm/src/endpoint/endpoint_builder.d.ts +28 -0
  14. package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -0
  15. package/dist/esm/src/endpoint/endpoint_builder.js +139 -0
  16. package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -0
  17. package/dist/esm/src/endpoint/fetch_endpoint.d.ts +54 -0
  18. package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -0
  19. package/dist/esm/src/endpoint/fetch_endpoint.js +57 -0
  20. package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -0
  21. package/dist/esm/src/endpoint/handlers/fetch.d.ts +6 -0
  22. package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -0
  23. package/dist/esm/src/endpoint/handlers/fetch.js +30 -0
  24. package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -0
  25. package/dist/esm/src/endpoint/handlers/generic.d.ts +62 -0
  26. package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -0
  27. package/dist/esm/src/endpoint/handlers/generic.js +289 -0
  28. package/dist/esm/src/endpoint/handlers/generic.js.map +1 -0
  29. package/dist/esm/src/endpoint/handlers/lambda.d.ts +8 -0
  30. package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -0
  31. package/dist/esm/src/endpoint/handlers/lambda.js +80 -0
  32. package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -0
  33. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +270 -0
  34. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js +20 -0
  35. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.js +1392 -0
  36. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm +0 -0
  37. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm.d.ts +61 -0
  38. package/dist/esm/src/endpoint/lambda_endpoint.d.ts +34 -0
  39. package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -0
  40. package/dist/esm/src/endpoint/lambda_endpoint.js +49 -0
  41. package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -0
  42. package/dist/esm/src/endpoint/node_endpoint.d.ts +21 -0
  43. package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -0
  44. package/dist/esm/src/endpoint/node_endpoint.js +101 -0
  45. package/dist/esm/src/endpoint/node_endpoint.js.map +1 -0
  46. package/dist/esm/src/endpoint/request_signing/basex.d.ts +10 -0
  47. package/dist/esm/src/endpoint/request_signing/basex.d.ts.map +1 -0
  48. package/dist/esm/src/endpoint/request_signing/basex.js +136 -0
  49. package/dist/esm/src/endpoint/request_signing/basex.js.map +1 -0
  50. package/dist/esm/src/endpoint/request_signing/ed25519.d.ts +17 -0
  51. package/dist/esm/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
  52. package/dist/esm/src/endpoint/request_signing/ed25519.js +52 -0
  53. package/dist/esm/src/endpoint/request_signing/ed25519.js.map +1 -0
  54. package/dist/esm/src/endpoint/request_signing/v1.d.ts +10 -0
  55. package/dist/esm/src/endpoint/request_signing/v1.d.ts.map +1 -0
  56. package/dist/esm/src/endpoint/request_signing/v1.js +143 -0
  57. package/dist/esm/src/endpoint/request_signing/v1.js.map +1 -0
  58. package/dist/esm/src/endpoint/request_signing/validate.d.ts +19 -0
  59. package/dist/esm/src/endpoint/request_signing/validate.d.ts.map +1 -0
  60. package/dist/esm/src/endpoint/request_signing/validate.js +40 -0
  61. package/dist/esm/src/endpoint/request_signing/validate.js.map +1 -0
  62. package/dist/esm/src/endpoint.d.ts +132 -0
  63. package/dist/esm/src/endpoint.d.ts.map +1 -0
  64. package/dist/esm/src/endpoint.js +12 -0
  65. package/dist/esm/src/endpoint.js.map +1 -0
  66. package/dist/esm/src/fetch.d.ts +8 -0
  67. package/dist/esm/src/fetch.d.ts.map +1 -0
  68. package/dist/esm/src/fetch.js +23 -0
  69. package/dist/esm/src/fetch.js.map +1 -0
  70. package/dist/esm/src/generated/version.d.ts +2 -0
  71. package/dist/esm/src/generated/version.d.ts.map +1 -0
  72. package/dist/esm/src/generated/version.js +2 -0
  73. package/dist/esm/src/generated/version.js.map +1 -0
  74. package/dist/esm/src/lambda.d.ts +7 -0
  75. package/dist/esm/src/lambda.d.ts.map +1 -0
  76. package/dist/esm/src/lambda.js +19 -0
  77. package/dist/esm/src/lambda.js.map +1 -0
  78. package/dist/esm/src/logger.d.ts +35 -0
  79. package/dist/esm/src/logger.d.ts.map +1 -0
  80. package/dist/esm/src/logger.js +144 -0
  81. package/dist/esm/src/logger.js.map +1 -0
  82. package/dist/esm/src/public_api.d.ts +7 -0
  83. package/dist/esm/src/public_api.d.ts.map +1 -0
  84. package/dist/esm/src/public_api.js +19 -0
  85. package/dist/esm/src/public_api.js.map +1 -0
  86. package/dist/esm/src/types/components.d.ts +85 -0
  87. package/dist/esm/src/types/components.d.ts.map +1 -0
  88. package/dist/esm/src/types/components.js +228 -0
  89. package/dist/esm/src/types/components.js.map +1 -0
  90. package/dist/esm/src/types/discovery.d.ts +43 -0
  91. package/dist/esm/src/types/discovery.d.ts.map +1 -0
  92. package/dist/esm/src/types/discovery.js +28 -0
  93. package/dist/esm/src/types/discovery.js.map +1 -0
  94. package/dist/esm/src/types/errors.d.ts +21 -0
  95. package/dist/esm/src/types/errors.d.ts.map +1 -0
  96. package/dist/esm/src/types/errors.js +47 -0
  97. package/dist/esm/src/types/errors.js.map +1 -0
  98. package/dist/esm/src/types/rpc.d.ts +417 -0
  99. package/dist/esm/src/types/rpc.d.ts.map +1 -0
  100. package/dist/esm/src/types/rpc.js +607 -0
  101. package/dist/esm/src/types/rpc.js.map +1 -0
  102. package/dist/esm/src/user_agent.d.ts +2 -0
  103. package/dist/esm/src/user_agent.d.ts.map +1 -0
  104. package/dist/esm/src/user_agent.js +13 -0
  105. package/dist/esm/src/user_agent.js.map +1 -0
  106. package/dist/esm/src/utils/buffer.d.ts +5 -0
  107. package/dist/esm/src/utils/buffer.d.ts.map +1 -0
  108. package/dist/esm/src/utils/buffer.js +53 -0
  109. package/dist/esm/src/utils/buffer.js.map +1 -0
  110. package/dist/esm/src/utils/completable_promise.d.ts +9 -0
  111. package/dist/esm/src/utils/completable_promise.d.ts.map +1 -0
  112. package/dist/esm/src/utils/completable_promise.js +30 -0
  113. package/dist/esm/src/utils/completable_promise.js.map +1 -0
  114. package/dist/esm/src/utils/rand.d.ts +13 -0
  115. package/dist/esm/src/utils/rand.d.ts.map +1 -0
  116. package/dist/esm/src/utils/rand.js +106 -0
  117. package/dist/esm/src/utils/rand.js.map +1 -0
  118. package/dist/esm/src/utils/streams.d.ts +4 -0
  119. package/dist/esm/src/utils/streams.d.ts.map +1 -0
  120. package/dist/esm/src/utils/streams.js +20 -0
  121. package/dist/esm/src/utils/streams.js.map +1 -0
  122. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  123. package/package.json +82 -0
@@ -0,0 +1,61 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export function start(): void;
5
+ export function set_log_level(a: number): void;
6
+ export function __wbg_wasmheader_free(a: number, b: number): void;
7
+ export function __wbg_get_wasmheader_key(a: number, b: number): void;
8
+ export function __wbg_get_wasmheader_value(a: number, b: number): void;
9
+ export function wasmheader_new(a: number, b: number, c: number, d: number): number;
10
+ export function __wbg_wasmresponsehead_free(a: number, b: number): void;
11
+ export function __wbg_get_wasmresponsehead_status_code(a: number): number;
12
+ export function __wbg_get_wasmresponsehead_headers(a: number, b: number): void;
13
+ export function __wbg_wasminput_free(a: number, b: number): void;
14
+ export function __wbg_get_wasminput_headers(a: number, b: number): void;
15
+ export function __wbg_get_wasminput_input(a: number): number;
16
+ export function __wbg_wasmvm_free(a: number, b: number): void;
17
+ export function wasmvm_new(a: number, b: number, c: number): void;
18
+ export function wasmvm_get_response_head(a: number): number;
19
+ export function wasmvm_notify_input(a: number, b: number, c: number): void;
20
+ export function wasmvm_notify_input_closed(a: number): void;
21
+ export function wasmvm_notify_error(a: number, b: number, c: number, d: number, e: number): void;
22
+ export function wasmvm_take_output(a: number): number;
23
+ export function wasmvm_is_ready_to_execute(a: number, b: number): void;
24
+ export function wasmvm_notify_await_point(a: number, b: number): void;
25
+ export function wasmvm_take_async_result(a: number, b: number, c: number): void;
26
+ export function wasmvm_sys_input(a: number, b: number): void;
27
+ export function wasmvm_sys_get_state(a: number, b: number, c: number, d: number): void;
28
+ export function wasmvm_sys_get_state_keys(a: number, b: number): void;
29
+ export function wasmvm_sys_set_state(a: number, b: number, c: number, d: number, e: number): void;
30
+ export function wasmvm_sys_clear_state(a: number, b: number, c: number, d: number): void;
31
+ export function wasmvm_sys_clear_all_state(a: number, b: number): void;
32
+ export function wasmvm_sys_sleep(a: number, b: number, c: number): void;
33
+ export function wasmvm_sys_call(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number): void;
34
+ export function 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): void;
35
+ export function wasmvm_sys_awakeable(a: number, b: number): void;
36
+ export function wasmvm_sys_complete_awakeable_success(a: number, b: number, c: number, d: number, e: number): void;
37
+ export function wasmvm_sys_complete_awakeable_failure(a: number, b: number, c: number, d: number, e: number): void;
38
+ export function wasmvm_sys_get_promise(a: number, b: number, c: number, d: number): void;
39
+ export function wasmvm_sys_peek_promise(a: number, b: number, c: number, d: number): void;
40
+ export function wasmvm_sys_complete_promise_success(a: number, b: number, c: number, d: number, e: number): void;
41
+ export function wasmvm_sys_complete_promise_failure(a: number, b: number, c: number, d: number, e: number): void;
42
+ export function wasmvm_sys_run_enter(a: number, b: number, c: number, d: number): void;
43
+ export function wasmvm_sys_run_exit_success(a: number, b: number, c: number): void;
44
+ export function wasmvm_sys_run_exit_failure(a: number, b: number, c: number): void;
45
+ export function wasmvm_sys_run_exit_failure_transient(a: number, b: number, c: number, d: number, e: number): void;
46
+ export function wasmvm_sys_write_output_success(a: number, b: number, c: number): void;
47
+ export function wasmvm_sys_write_output_failure(a: number, b: number, c: number): void;
48
+ export function wasmvm_sys_end(a: number, b: number): void;
49
+ export function wasmvm_is_processing(a: number): number;
50
+ export function wasmvm_is_inside_run(a: number): number;
51
+ export function wasmvm_sys_try_complete_all_combinator(a: number, b: number, c: number, d: number): void;
52
+ export function wasmvm_sys_try_complete_any_combinator(a: number, b: number, c: number, d: number): void;
53
+ export function wasmvm_sys_try_complete_all_settled_combinator(a: number, b: number, c: number, d: number): void;
54
+ export function wasmvm_sys_try_complete_race_combinator(a: number, b: number, c: number, d: number): void;
55
+ export function __wbg_get_wasminput_invocation_id(a: number, b: number): void;
56
+ export function __wbg_get_wasminput_key(a: number, b: number): void;
57
+ export function __wbindgen_malloc(a: number, b: number): number;
58
+ export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number;
59
+ export function __wbindgen_add_to_stack_pointer(a: number): number;
60
+ export function __wbindgen_free(a: number, b: number, c: number): void;
61
+ export function __wbindgen_start(): void;
@@ -0,0 +1,34 @@
1
+ import type { ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
2
+ import type { Component } from "../types/components.js";
3
+ import type { KeySetV1 } from "./request_signing/v1.js";
4
+ import type { RestateEndpointBase, ServiceBundle } from "../endpoint.js";
5
+ import type { Logger } from "../logger.js";
6
+ /**
7
+ * LambdaEndpoint encapsulates all the Restate services served by this endpoint.
8
+ *
9
+ *
10
+ * @example
11
+ * A typical endpoint served as Lambda would look like this:
12
+ * ```
13
+ * import * as restate from "@restatedev/restate-sdk/lambda";
14
+ *
15
+ * export const handler = restate
16
+ * .endpoint()
17
+ * .bind(myService)
18
+ * .handler();
19
+ */
20
+ export interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {
21
+ handler(): (event: any, ctx: any) => Promise<any>;
22
+ }
23
+ export declare class LambdaEndpointImpl implements LambdaEndpoint {
24
+ private builder;
25
+ get keySet(): KeySetV1 | undefined;
26
+ componentByName(componentName: string): Component | undefined;
27
+ addComponent(component: Component): void;
28
+ bindBundle(services: ServiceBundle): LambdaEndpoint;
29
+ bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): LambdaEndpoint;
30
+ withIdentityV1(...keys: string[]): LambdaEndpoint;
31
+ setLogger(logger: Logger): LambdaEndpoint;
32
+ handler(): (event: any, ctx: any) => Promise<any>;
33
+ }
34
+ //# sourceMappingURL=lambda_endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambda_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/lambda_endpoint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAEV,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;;;;;;;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;IAEzD,IAAW,MAAM,IAAI,QAAQ,GAAG,SAAS,CAExC;IAEM,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D,YAAY,CAAC,SAAS,EAAE,SAAS;IAIxC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,cAAc;IAK5C,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,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAMhD,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;CAQlD"}
@@ -0,0 +1,49 @@
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_builder.js";
12
+ import { GenericHandler } from "./handlers/generic.js";
13
+ import { LambdaHandler } from "./handlers/lambda.js";
14
+ import { ProtocolMode } from "../types/discovery.js";
15
+ export class LambdaEndpointImpl {
16
+ builder = new EndpointBuilder();
17
+ get keySet() {
18
+ return this.builder.keySet;
19
+ }
20
+ componentByName(componentName) {
21
+ return this.builder.componentByName(componentName);
22
+ }
23
+ addComponent(component) {
24
+ this.builder.addComponent(component);
25
+ }
26
+ bindBundle(services) {
27
+ services.registerServices(this);
28
+ return this;
29
+ }
30
+ bind(definition) {
31
+ this.builder.bind(definition);
32
+ return this;
33
+ }
34
+ withIdentityV1(...keys) {
35
+ this.builder.withIdentityV1(...keys);
36
+ return this;
37
+ }
38
+ setLogger(logger) {
39
+ this.builder.setLogger(logger);
40
+ return this;
41
+ }
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ handler() {
44
+ const genericHandler = new GenericHandler(this.builder, ProtocolMode.REQUEST_RESPONSE);
45
+ const lambdaHandler = new LambdaHandler(genericHandler);
46
+ return lambdaHandler.handleRequest.bind(lambdaHandler);
47
+ }
48
+ }
49
+ //# sourceMappingURL=lambda_endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambda_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/lambda_endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAsBrD,MAAM,OAAO,kBAAkB;IACrB,OAAO,GAAoB,IAAI,eAAe,EAAE,CAAC;IAEzD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,aAAqB;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAEM,YAAY,CAAC,SAAoB;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,QAAuB;QAChC,QAAQ,CAAC,gBAAgB,CAAC,IAAkC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,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,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,SAAS,CAAC,MAAc;QAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,OAAO;QACL,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,OAAO,EACZ,YAAY,CAAC,gBAAgB,CAC9B,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;QACxD,OAAO,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import type { RestateEndpoint, ServiceBundle } from "../public_api.js";
3
+ import type { ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
4
+ import type { Http2ServerRequest, Http2ServerResponse } from "http2";
5
+ import type { Component } from "../types/components.js";
6
+ import type { KeySetV1 } from "./request_signing/v1.js";
7
+ import type { Logger } from "../logger.js";
8
+ export declare class NodeEndpoint implements RestateEndpoint {
9
+ private builder;
10
+ get keySet(): KeySetV1 | undefined;
11
+ componentByName(componentName: string): Component | undefined;
12
+ addComponent(component: Component): void;
13
+ bindBundle(services: ServiceBundle): RestateEndpoint;
14
+ bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): RestateEndpoint;
15
+ withIdentityV1(...keys: string[]): RestateEndpoint;
16
+ setLogger(logger: Logger): RestateEndpoint;
17
+ http2Handler(): (request: Http2ServerRequest, response: Http2ServerResponse) => void;
18
+ lambdaHandler(): (event: any, ctx: any) => Promise<any>;
19
+ listen(port?: number): Promise<number>;
20
+ }
21
+ //# sourceMappingURL=node_endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/node_endpoint.ts"],"names":[],"mappings":";AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAGrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAOxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,OAAO,CAA0C;IAEzD,IAAW,MAAM,IAAI,QAAQ,GAAG,SAAS,CAExC;IAEM,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D,YAAY,CAAC,SAAS,EAAE,SAAS;IAIjC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,eAAe;IAKpD,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,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAKjD,YAAY,IAAI,CACd,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,mBAAmB,KAC1B,IAAI;IAgCT,aAAa,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;IASvD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA6BvC"}
@@ -0,0 +1,101 @@
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 { LambdaHandler } from "./handlers/lambda.js";
13
+ import { EndpointBuilder } from "./endpoint_builder.js";
14
+ import { GenericHandler } from "./handlers/generic.js";
15
+ import { Readable, Writable } from "node:stream";
16
+ import { ProtocolMode } from "../types/discovery.js";
17
+ import { ensureError } from "../types/errors.js";
18
+ export class NodeEndpoint {
19
+ builder = new EndpointBuilder();
20
+ get keySet() {
21
+ return this.builder.keySet;
22
+ }
23
+ componentByName(componentName) {
24
+ return this.builder.componentByName(componentName);
25
+ }
26
+ addComponent(component) {
27
+ this.builder.addComponent(component);
28
+ }
29
+ bindBundle(services) {
30
+ services.registerServices(this);
31
+ return this;
32
+ }
33
+ bind(definition) {
34
+ this.builder.bind(definition);
35
+ return this;
36
+ }
37
+ withIdentityV1(...keys) {
38
+ this.builder.withIdentityV1(...keys);
39
+ return this;
40
+ }
41
+ setLogger(logger) {
42
+ this.builder.setLogger(logger);
43
+ return this;
44
+ }
45
+ http2Handler() {
46
+ const handler = new GenericHandler(this.builder, ProtocolMode.BIDI_STREAM);
47
+ return (request, response) => {
48
+ (async () => {
49
+ try {
50
+ const url = request.url;
51
+ const resp = await handler.handle({
52
+ url,
53
+ headers: request.headers,
54
+ body: Readable.toWeb(request),
55
+ extraArgs: [],
56
+ });
57
+ response.writeHead(resp.statusCode, resp.headers);
58
+ const responseWeb = Writable.toWeb(response);
59
+ await resp.body.pipeTo(responseWeb);
60
+ await new Promise((resolve) => response.end(resolve));
61
+ }
62
+ catch (e) {
63
+ const error = ensureError(e);
64
+ this.builder.rlog.error("Error while handling connection: " + (error.stack ?? error.message));
65
+ response.destroy(error);
66
+ }
67
+ })().catch(() => { });
68
+ };
69
+ }
70
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
+ lambdaHandler() {
72
+ const genericHandler = new GenericHandler(this.builder, ProtocolMode.REQUEST_RESPONSE);
73
+ const handler = new LambdaHandler(genericHandler);
74
+ return handler.handleRequest.bind(handler);
75
+ }
76
+ listen(port) {
77
+ const actualPort = port ?? parseInt(process.env.PORT ?? "9080");
78
+ this.builder.rlog.info(`Listening on ${actualPort}...`);
79
+ const server = http2.createServer(this.http2Handler());
80
+ return new Promise((resolve, reject) => {
81
+ let failed = false;
82
+ server.once("error", (e) => {
83
+ failed = true;
84
+ reject(e);
85
+ });
86
+ server.listen(actualPort, () => {
87
+ if (failed) {
88
+ return;
89
+ }
90
+ const address = server.address();
91
+ if (address === null || typeof address === "string") {
92
+ reject(new TypeError("endpoint.listen() currently supports only binding to a PORT"));
93
+ }
94
+ else {
95
+ resolve(address.port);
96
+ }
97
+ });
98
+ });
99
+ }
100
+ }
101
+ //# sourceMappingURL=node_endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/node_endpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ declare function base(ALPHABET: string): base.BaseConverter;
2
+ export default base;
3
+ declare namespace base {
4
+ interface BaseConverter {
5
+ encode(buffer: Uint8Array | number[]): string;
6
+ decodeUnsafe(string: string): Uint8Array | undefined;
7
+ decode(string: string): Uint8Array;
8
+ }
9
+ }
10
+ //# sourceMappingURL=basex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basex.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/request_signing/basex.ts"],"names":[],"mappings":"AAUA,iBAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,CA2JlD;AAED,eAAe,IAAI,CAAC;AAEpB,OAAO,WAAW,IAAI,CAAC;IACrB,UAAU,aAAa;QACrB,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;QAE9C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;QAErD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;KACpC;CACF"}
@@ -0,0 +1,136 @@
1
+ // base-x encoding / decoding
2
+ // Copyright (c) 2018 base-x contributors
3
+ // Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)
4
+ // Distributed under the MIT software license, see the accompanying
5
+ // file LICENSE or http://www.opensource.org/licenses/mit-license.php.
6
+ /* eslint-disable @typescript-eslint/no-namespace */
7
+ /* eslint-disable no-empty */
8
+ function base(ALPHABET) {
9
+ if (ALPHABET.length >= 255)
10
+ throw new TypeError("Alphabet too long");
11
+ const BASE_MAP = new Uint8Array(256);
12
+ for (let j = 0; j < BASE_MAP.length; j++) {
13
+ BASE_MAP[j] = 255;
14
+ }
15
+ for (let i = 0; i < ALPHABET.length; i++) {
16
+ const x = ALPHABET.charAt(i);
17
+ const xc = x.charCodeAt(0);
18
+ if (BASE_MAP[xc] !== 255)
19
+ throw new TypeError(x + " is ambiguous");
20
+ BASE_MAP[xc] = i;
21
+ }
22
+ const BASE = ALPHABET.length;
23
+ const LEADER = ALPHABET.charAt(0);
24
+ const FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up
25
+ const iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up
26
+ function encode(source) {
27
+ if (source instanceof Uint8Array) {
28
+ }
29
+ else if (ArrayBuffer.isView(source)) {
30
+ source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
31
+ }
32
+ else if (Array.isArray(source)) {
33
+ source = Uint8Array.from(source);
34
+ }
35
+ if (!(source instanceof Uint8Array))
36
+ throw new TypeError("Expected Uint8Array");
37
+ if (source.length === 0)
38
+ return "";
39
+ // Skip & count leading zeroes.
40
+ let zeroes = 0;
41
+ let length = 0;
42
+ let pbegin = 0;
43
+ const pend = source.length;
44
+ while (pbegin !== pend && source[pbegin] === 0) {
45
+ pbegin++;
46
+ zeroes++;
47
+ }
48
+ // Allocate enough space in big-endian base58 representation.
49
+ const size = ((pend - pbegin) * iFACTOR + 1) >>> 0;
50
+ const b58 = new Uint8Array(size);
51
+ // Process the bytes.
52
+ while (pbegin !== pend) {
53
+ let carry = source[pbegin];
54
+ // Apply "b58 = b58 * 256 + ch".
55
+ let i = 0;
56
+ for (let it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {
57
+ carry += (256 * b58[it1]) >>> 0;
58
+ b58[it1] = carry % BASE >>> 0;
59
+ carry = (carry / BASE) >>> 0;
60
+ }
61
+ if (carry !== 0)
62
+ throw new Error("Non-zero carry");
63
+ length = i;
64
+ pbegin++;
65
+ }
66
+ // Skip leading zeroes in base58 result.
67
+ let it2 = size - length;
68
+ while (it2 !== size && b58[it2] === 0) {
69
+ it2++;
70
+ }
71
+ // Translate the result into a string.
72
+ let str = LEADER.repeat(zeroes);
73
+ for (; it2 < size; ++it2)
74
+ str += ALPHABET.charAt(b58[it2]);
75
+ return str;
76
+ }
77
+ function decodeUnsafe(source) {
78
+ if (typeof source !== "string")
79
+ throw new TypeError("Expected String");
80
+ if (source.length === 0)
81
+ return new Uint8Array();
82
+ let psz = 0;
83
+ // Skip and count leading '1's.
84
+ let zeroes = 0;
85
+ let length = 0;
86
+ while (source[psz] === LEADER) {
87
+ zeroes++;
88
+ psz++;
89
+ }
90
+ // Allocate enough space in big-endian base256 representation.
91
+ const size = ((source.length - psz) * FACTOR + 1) >>> 0; // log(58) / log(256), rounded up.
92
+ const b256 = new Uint8Array(size);
93
+ // Process the characters.
94
+ while (source[psz]) {
95
+ // Decode character
96
+ let carry = BASE_MAP[source.charCodeAt(psz)];
97
+ // Invalid character
98
+ if (carry === 255)
99
+ return;
100
+ let i = 0;
101
+ for (let it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {
102
+ carry += (BASE * b256[it3]) >>> 0;
103
+ b256[it3] = carry % 256 >>> 0;
104
+ carry = (carry / 256) >>> 0;
105
+ }
106
+ if (carry !== 0)
107
+ throw new Error("Non-zero carry");
108
+ length = i;
109
+ psz++;
110
+ }
111
+ // Skip leading zeroes in b256.
112
+ let it4 = size - length;
113
+ while (it4 !== size && b256[it4] === 0) {
114
+ it4++;
115
+ }
116
+ const vch = new Uint8Array(zeroes + (size - it4));
117
+ let j = zeroes;
118
+ while (it4 !== size) {
119
+ vch[j++] = b256[it4++];
120
+ }
121
+ return vch;
122
+ }
123
+ function decode(string) {
124
+ const buffer = decodeUnsafe(string);
125
+ if (buffer)
126
+ return buffer;
127
+ throw new Error("Non-base" + BASE + " character");
128
+ }
129
+ return {
130
+ encode: encode,
131
+ decodeUnsafe: decodeUnsafe,
132
+ decode: decode,
133
+ };
134
+ }
135
+ export default base;
136
+ //# sourceMappingURL=basex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basex.js","sourceRoot":"","sources":["../../../../../src/endpoint/request_signing/basex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import type { Buffer } from "node:buffer";
4
+ import { webcrypto } from "node:crypto";
5
+ import * as crypto from "node:crypto";
6
+ export type Key = {
7
+ type: "web";
8
+ key: Promise<webcrypto.CryptoKey>;
9
+ kid: string;
10
+ } | {
11
+ type: "node";
12
+ key: crypto.KeyObject;
13
+ kid: string;
14
+ };
15
+ export declare function importKey(kid: string, derBytes: Buffer): Key;
16
+ export declare function verify(key: Key, signatureBuf: Buffer, data: Buffer): Promise<boolean>;
17
+ //# sourceMappingURL=ed25519.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/request_signing/ed25519.ts"],"names":[],"mappings":";;AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAMtC,MAAM,MAAM,GAAG,GACX;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAwB5D;AAED,wBAAsB,MAAM,CAC1B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAqBlB"}
@@ -0,0 +1,52 @@
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 { webcrypto } from "node:crypto";
12
+ import * as crypto from "node:crypto";
13
+ const USE_WEB_CRYPTO = globalThis.process?.env?.USE_WEB_CRYPTO == "true" ||
14
+ globalThis.process?.release?.name !== "node";
15
+ export function importKey(kid, derBytes) {
16
+ if (!USE_WEB_CRYPTO) {
17
+ return {
18
+ type: "node",
19
+ key: crypto.createPublicKey({
20
+ key: derBytes,
21
+ format: "der",
22
+ type: "spki",
23
+ }),
24
+ kid,
25
+ };
26
+ }
27
+ else {
28
+ return {
29
+ type: "web",
30
+ key: webcrypto.subtle.importKey("spki", derBytes, { name: "Ed25519" }, false, ["verify"]),
31
+ kid,
32
+ };
33
+ }
34
+ }
35
+ export async function verify(key, signatureBuf, data) {
36
+ if (key.type == "node") {
37
+ return crypto.verify(null, data, key.key, signatureBuf);
38
+ }
39
+ else {
40
+ let webKey;
41
+ try {
42
+ webKey = await key.key;
43
+ }
44
+ catch (e) {
45
+ throw new Error(
46
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
47
+ `key ${key.kid} failed to parse on startup, this will affect all requests signed with it: ${e}`);
48
+ }
49
+ return await webcrypto.subtle.verify({ name: "Ed25519" }, webKey, signatureBuf, data);
50
+ }
51
+ }
52
+ //# sourceMappingURL=ed25519.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../../../../src/endpoint/request_signing/ed25519.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,cAAc,GAClB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,IAAI,MAAM;IACjD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC;AAM/C,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,QAAgB;IACrD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC;gBAC1B,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,MAAM;aACb,CAAC;YACF,GAAG;SACJ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO;YACL,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAC7B,MAAM,EACN,QAAQ,EACR,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,KAAK,EACL,CAAC,QAAQ,CAAC,CACX;YACD,GAAG;SACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,GAAQ,EACR,YAAoB,EACpB,IAAY;IAEZ,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,IAAI,MAA2B,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK;YACb,4EAA4E;YAC5E,OAAO,GAAG,CAAC,GAAG,8EAA8E,CAAC,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,CAClC,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,MAAM,EACN,YAAY,EACZ,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ValidateResponse } from "./validate.js";
2
+ import type { Key } from "./ed25519.js";
3
+ import type { PathComponents } from "../../types/components.js";
4
+ export declare const SCHEME_V1 = "v1";
5
+ export type KeySetV1 = Map<string, Key>;
6
+ export declare function parseKeySetV1(keys: string[]): KeySetV1;
7
+ export declare function validateV1(keySet: KeySetV1, path: PathComponents, headers: {
8
+ [name: string]: string | string[] | undefined;
9
+ }): Promise<ValidateResponse>;
10
+ //# sourceMappingURL=v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/request_signing/v1.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,eAAO,MAAM,SAAS,OAAO,CAAC;AAE9B,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAYxC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CA2BtD;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;CAAE,GACzD,OAAO,CAAC,gBAAgB,CAAC,CAkB3B"}