@restatedev/restate-sdk 0.9.2 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/common_api.d.ts +7 -0
- package/dist/cjs/src/common_api.d.ts.map +1 -0
- package/dist/cjs/src/common_api.js +25 -0
- package/dist/cjs/src/common_api.js.map +1 -0
- package/dist/{src → cjs/src}/connection/buffered_connection.d.ts +3 -4
- package/dist/cjs/src/connection/buffered_connection.d.ts.map +1 -0
- package/dist/{src → cjs/src}/connection/buffered_connection.js +2 -2
- package/dist/cjs/src/connection/buffered_connection.js.map +1 -0
- package/dist/{src → cjs/src}/connection/connection.d.ts +2 -1
- package/dist/cjs/src/connection/connection.d.ts.map +1 -0
- package/dist/cjs/src/connection/connection.js.map +1 -0
- package/dist/{src → cjs/src}/connection/http_connection.d.ts +9 -5
- package/dist/cjs/src/connection/http_connection.d.ts.map +1 -0
- package/dist/{src → cjs/src}/connection/http_connection.js +16 -11
- package/dist/cjs/src/connection/http_connection.js.map +1 -0
- package/dist/{src → cjs/src}/connection/lambda_connection.d.ts +5 -3
- package/dist/cjs/src/connection/lambda_connection.d.ts.map +1 -0
- package/dist/{src → cjs/src}/connection/lambda_connection.js +14 -9
- package/dist/cjs/src/connection/lambda_connection.js.map +1 -0
- package/dist/{src → cjs/src}/context.d.ts +149 -44
- package/dist/cjs/src/context.d.ts.map +1 -0
- package/dist/{src → cjs/src}/context.js +5 -5
- package/dist/cjs/src/context.js.map +1 -0
- package/dist/cjs/src/context_impl.d.ts +54 -0
- package/dist/cjs/src/context_impl.d.ts.map +1 -0
- package/dist/{src → cjs/src}/context_impl.js +168 -106
- package/dist/cjs/src/context_impl.js.map +1 -0
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts +18 -0
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/endpoint_builder.js +130 -0
- package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +37 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.js +46 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts +6 -0
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/fetch.js +34 -0
- package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/generic.d.ts +44 -0
- package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/generic.js +193 -0
- package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts +8 -0
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/lambda.js +66 -0
- package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -0
- package/dist/{src/endpoint/http2_handler.d.ts → cjs/src/endpoint/handlers/node.d.ts} +4 -4
- package/dist/cjs/src/endpoint/handlers/node.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/node.js +188 -0
- package/dist/cjs/src/endpoint/handlers/node.js.map +1 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +32 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.js +55 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/node_endpoint.d.ts +19 -0
- package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/node_endpoint.js +116 -0
- package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/request_signing/basex.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/request_signing/basex.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.d.ts +1 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.js +3 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/v1.d.ts +2 -2
- package/dist/cjs/src/endpoint/request_signing/v1.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/v1.js +9 -16
- package/dist/cjs/src/endpoint/request_signing/v1.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/validate.d.ts +1 -1
- package/dist/cjs/src/endpoint/request_signing/validate.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/validate.js +3 -3
- package/dist/cjs/src/endpoint/request_signing/validate.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint.d.ts +27 -26
- package/dist/cjs/src/endpoint.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint.js +0 -9
- package/dist/cjs/src/endpoint.js.map +1 -0
- package/dist/cjs/src/fetch.d.ts +7 -0
- package/dist/cjs/src/fetch.d.ts.map +1 -0
- package/dist/cjs/src/fetch.js +37 -0
- package/dist/cjs/src/fetch.js.map +1 -0
- package/dist/cjs/src/generated/proto/discovery_pb.d.ts +18 -0
- package/dist/cjs/src/generated/proto/discovery_pb.d.ts.map +1 -0
- package/dist/cjs/src/generated/proto/discovery_pb.js +40 -0
- package/dist/cjs/src/generated/proto/discovery_pb.js.map +1 -0
- package/dist/cjs/src/generated/proto/javascript_pb.d.ts.map +1 -0
- package/dist/cjs/src/generated/proto/javascript_pb.js.map +1 -0
- package/dist/{src → cjs/src}/generated/proto/protocol_pb.d.ts +186 -0
- package/dist/cjs/src/generated/proto/protocol_pb.d.ts.map +1 -0
- package/dist/{src → cjs/src}/generated/proto/protocol_pb.js +177 -1
- package/dist/cjs/src/generated/proto/protocol_pb.js.map +1 -0
- package/dist/cjs/src/generated/version.d.ts +2 -0
- package/dist/cjs/src/generated/version.d.ts.map +1 -0
- package/dist/{src → cjs/src}/generated/version.js +1 -1
- package/dist/cjs/src/generated/version.js.map +1 -0
- package/dist/{src → cjs/src}/invocation.d.ts +5 -5
- package/dist/cjs/src/invocation.d.ts.map +1 -0
- package/dist/{src → cjs/src}/invocation.js +14 -14
- package/dist/cjs/src/invocation.js.map +1 -0
- package/dist/{src → cjs/src}/io/decoder.d.ts +1 -2
- package/dist/cjs/src/io/decoder.d.ts.map +1 -0
- package/dist/{src → cjs/src}/io/decoder.js +20 -24
- package/dist/cjs/src/io/decoder.js.map +1 -0
- package/dist/{src → cjs/src}/io/encoder.d.ts +1 -1
- package/dist/cjs/src/io/encoder.d.ts.map +1 -0
- package/dist/{src → cjs/src}/io/encoder.js +6 -6
- package/dist/cjs/src/io/encoder.js.map +1 -0
- package/dist/{src → cjs/src}/journal.d.ts +7 -7
- package/dist/cjs/src/journal.d.ts.map +1 -0
- package/dist/{src → cjs/src}/journal.js +54 -37
- package/dist/cjs/src/journal.js.map +1 -0
- package/dist/cjs/src/lambda.d.ts +7 -0
- package/dist/cjs/src/lambda.d.ts.map +1 -0
- package/dist/cjs/src/lambda.js +37 -0
- package/dist/cjs/src/lambda.js.map +1 -0
- package/dist/{src → cjs/src}/local_state_store.d.ts +2 -1
- package/dist/cjs/src/local_state_store.d.ts.map +1 -0
- package/dist/{src → cjs/src}/local_state_store.js +10 -10
- package/dist/cjs/src/local_state_store.js.map +1 -0
- package/dist/cjs/src/logger.d.ts.map +1 -0
- package/dist/{src → cjs/src}/logger.js +1 -8
- package/dist/cjs/src/logger.js.map +1 -0
- package/dist/{src → cjs/src}/promise_combinator_tracker.d.ts +1 -1
- package/dist/cjs/src/promise_combinator_tracker.d.ts.map +1 -0
- package/dist/{src → cjs/src}/promise_combinator_tracker.js +7 -5
- package/dist/cjs/src/promise_combinator_tracker.js.map +1 -0
- package/dist/cjs/src/public_api.d.ts +7 -0
- package/dist/cjs/src/public_api.d.ts.map +1 -0
- package/dist/cjs/src/public_api.js +37 -0
- package/dist/cjs/src/public_api.js.map +1 -0
- package/dist/{src → cjs/src}/state_machine.d.ts +14 -13
- package/dist/cjs/src/state_machine.d.ts.map +1 -0
- package/dist/{src → cjs/src}/state_machine.js +59 -59
- package/dist/cjs/src/state_machine.js.map +1 -0
- package/dist/cjs/src/types/components.d.ts +78 -0
- package/dist/cjs/src/types/components.d.ts.map +1 -0
- package/dist/cjs/src/types/components.js +260 -0
- package/dist/cjs/src/types/components.js.map +1 -0
- package/dist/{src → cjs/src}/types/discovery.d.ts +6 -3
- package/dist/cjs/src/types/discovery.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/discovery.js +5 -3
- package/dist/cjs/src/types/discovery.js.map +1 -0
- package/dist/{src → cjs/src}/types/errors.d.ts +2 -2
- package/dist/cjs/src/types/errors.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/errors.js +8 -8
- package/dist/cjs/src/types/errors.js.map +1 -0
- package/dist/{src → cjs/src}/types/protocol.d.ts +16 -9
- package/dist/cjs/src/types/protocol.d.ts.map +1 -0
- package/dist/cjs/src/types/protocol.js +237 -0
- package/dist/cjs/src/types/protocol.js.map +1 -0
- package/dist/cjs/src/types/rpc.d.ts +300 -0
- package/dist/cjs/src/types/rpc.d.ts.map +1 -0
- package/dist/cjs/src/types/rpc.js +419 -0
- package/dist/cjs/src/types/rpc.js.map +1 -0
- package/dist/{src → cjs/src}/types/types.d.ts +3 -5
- package/dist/cjs/src/types/types.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/types.js +17 -28
- package/dist/cjs/src/types/types.js.map +1 -0
- package/dist/cjs/src/user_agent.d.ts +2 -0
- package/dist/cjs/src/user_agent.d.ts.map +1 -0
- package/dist/{src → cjs/src}/user_agent.js +2 -2
- package/dist/cjs/src/user_agent.js.map +1 -0
- package/dist/cjs/src/utils/buffer.d.ts +5 -0
- package/dist/cjs/src/utils/buffer.d.ts.map +1 -0
- package/dist/cjs/src/utils/buffer.js +59 -0
- package/dist/cjs/src/utils/buffer.js.map +1 -0
- package/dist/{src → cjs/src}/utils/message_logger.d.ts +1 -1
- package/dist/cjs/src/utils/message_logger.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/message_logger.js +7 -7
- package/dist/cjs/src/utils/message_logger.js.map +1 -0
- package/dist/cjs/src/utils/promises.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/promises.js +2 -1
- package/dist/cjs/src/utils/promises.js.map +1 -0
- package/dist/{src → cjs/src}/utils/rand.d.ts +3 -3
- package/dist/cjs/src/utils/rand.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/rand.js +10 -15
- package/dist/cjs/src/utils/rand.js.map +1 -0
- package/dist/cjs/src/utils/serde.d.ts +5 -0
- package/dist/cjs/src/utils/serde.d.ts.map +1 -0
- package/dist/cjs/src/utils/serde.js +50 -0
- package/dist/cjs/src/utils/serde.js.map +1 -0
- package/dist/cjs/src/utils/utils.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/utils.js +11 -11
- package/dist/cjs/src/utils/utils.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/src/common_api.d.ts +7 -0
- package/dist/esm/src/common_api.d.ts.map +1 -0
- package/dist/esm/src/common_api.js +14 -0
- package/dist/esm/src/common_api.js.map +1 -0
- package/dist/esm/src/connection/buffered_connection.d.ts +14 -0
- package/dist/esm/src/connection/buffered_connection.d.ts.map +1 -0
- package/dist/esm/src/connection/buffered_connection.js +40 -0
- package/dist/esm/src/connection/buffered_connection.js.map +1 -0
- package/dist/esm/src/connection/connection.d.ts +20 -0
- package/dist/esm/src/connection/connection.d.ts.map +1 -0
- package/dist/esm/src/connection/connection.js +12 -0
- package/dist/esm/src/connection/connection.js.map +1 -0
- package/dist/esm/src/connection/http_connection.d.ts +77 -0
- package/dist/esm/src/connection/http_connection.d.ts.map +1 -0
- package/dist/esm/src/connection/http_connection.js +204 -0
- package/dist/esm/src/connection/http_connection.js.map +1 -0
- package/dist/esm/src/connection/lambda_connection.d.ts +17 -0
- package/dist/esm/src/connection/lambda_connection.d.ts.map +1 -0
- package/dist/esm/src/connection/lambda_connection.js +60 -0
- package/dist/esm/src/connection/lambda_connection.js.map +1 -0
- package/dist/esm/src/context.d.ts +541 -0
- package/dist/esm/src/context.d.ts.map +1 -0
- package/dist/esm/src/context.js +75 -0
- package/dist/esm/src/context.js.map +1 -0
- package/dist/esm/src/context_impl.d.ts +54 -0
- package/dist/esm/src/context_impl.d.ts.map +1 -0
- package/dist/esm/src/context_impl.js +515 -0
- package/dist/esm/src/context_impl.js.map +1 -0
- package/dist/esm/src/endpoint/endpoint_builder.d.ts +18 -0
- package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -0
- package/dist/esm/src/endpoint/endpoint_builder.js +126 -0
- package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -0
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts +37 -0
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/fetch_endpoint.js +42 -0
- package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/fetch.d.ts +6 -0
- package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/fetch.js +30 -0
- package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/generic.d.ts +44 -0
- package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/generic.js +189 -0
- package/dist/esm/src/endpoint/handlers/generic.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/lambda.d.ts +8 -0
- package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/lambda.js +62 -0
- package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/node.d.ts +11 -0
- package/dist/esm/src/endpoint/handlers/node.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/node.js +181 -0
- package/dist/esm/src/endpoint/handlers/node.js.map +1 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts +32 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/lambda_endpoint.js +51 -0
- package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/node_endpoint.d.ts +19 -0
- package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/node_endpoint.js +89 -0
- package/dist/esm/src/endpoint/node_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/basex.d.ts +10 -0
- package/dist/esm/src/endpoint/request_signing/basex.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/basex.js +136 -0
- package/dist/esm/src/endpoint/request_signing/basex.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts +17 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.js +52 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/v1.d.ts +9 -0
- package/dist/esm/src/endpoint/request_signing/v1.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/v1.js +133 -0
- package/dist/esm/src/endpoint/request_signing/v1.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/validate.d.ts +18 -0
- package/dist/esm/src/endpoint/request_signing/validate.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/validate.js +40 -0
- package/dist/esm/src/endpoint/request_signing/validate.js.map +1 -0
- package/dist/esm/src/endpoint.d.ts +103 -0
- package/dist/esm/src/endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint.js +12 -0
- package/dist/esm/src/endpoint.js.map +1 -0
- package/dist/esm/src/fetch.d.ts +7 -0
- package/dist/esm/src/fetch.d.ts.map +1 -0
- package/dist/esm/src/fetch.js +19 -0
- package/dist/esm/src/fetch.js.map +1 -0
- package/dist/esm/src/generated/proto/discovery_pb.d.ts +18 -0
- package/dist/esm/src/generated/proto/discovery_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/discovery_pb.js +37 -0
- package/dist/esm/src/generated/proto/discovery_pb.js.map +1 -0
- package/dist/esm/src/generated/proto/javascript_pb.d.ts +26 -0
- package/dist/esm/src/generated/proto/javascript_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/javascript_pb.js +48 -0
- package/dist/esm/src/generated/proto/javascript_pb.js.map +1 -0
- package/dist/esm/src/generated/proto/protocol_pb.d.ts +1051 -0
- package/dist/esm/src/generated/proto/protocol_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/protocol_pb.js +1258 -0
- package/dist/esm/src/generated/proto/protocol_pb.js.map +1 -0
- package/dist/esm/src/generated/version.d.ts +2 -0
- package/dist/esm/src/generated/version.d.ts.map +1 -0
- package/dist/esm/src/generated/version.js +2 -0
- package/dist/esm/src/generated/version.js.map +1 -0
- package/dist/esm/src/invocation.d.ts +48 -0
- package/dist/esm/src/invocation.d.ts.map +1 -0
- package/dist/esm/src/invocation.js +153 -0
- package/dist/esm/src/invocation.js.map +1 -0
- package/dist/esm/src/io/decoder.d.ts +9 -0
- package/dist/esm/src/io/decoder.d.ts.map +1 -0
- package/dist/esm/src/io/decoder.js +129 -0
- package/dist/esm/src/io/decoder.js.map +1 -0
- package/dist/esm/src/io/encoder.d.ts +7 -0
- package/dist/esm/src/io/encoder.d.ts.map +1 -0
- package/dist/esm/src/io/encoder.js +49 -0
- package/dist/esm/src/io/encoder.js.map +1 -0
- package/dist/esm/src/journal.d.ts +52 -0
- package/dist/esm/src/journal.d.ts.map +1 -0
- package/dist/esm/src/journal.js +412 -0
- package/dist/esm/src/journal.js.map +1 -0
- package/dist/esm/src/lambda.d.ts +7 -0
- package/dist/esm/src/lambda.d.ts.map +1 -0
- package/dist/esm/src/lambda.js +19 -0
- package/dist/esm/src/lambda.js.map +1 -0
- package/dist/esm/src/local_state_store.d.ts +16 -0
- package/dist/esm/src/local_state_store.d.ts.map +1 -0
- package/dist/esm/src/local_state_store.js +80 -0
- package/dist/esm/src/local_state_store.js.map +1 -0
- package/dist/esm/src/logger.d.ts +27 -0
- package/dist/esm/src/logger.d.ts.map +1 -0
- package/dist/esm/src/logger.js +146 -0
- package/dist/esm/src/logger.js.map +1 -0
- package/dist/esm/src/promise_combinator_tracker.d.ts +29 -0
- package/dist/esm/src/promise_combinator_tracker.d.ts.map +1 -0
- package/dist/esm/src/promise_combinator_tracker.js +125 -0
- package/dist/esm/src/promise_combinator_tracker.js.map +1 -0
- package/dist/esm/src/public_api.d.ts +7 -0
- package/dist/esm/src/public_api.d.ts.map +1 -0
- package/dist/esm/src/public_api.js +19 -0
- package/dist/esm/src/public_api.js.map +1 -0
- package/dist/esm/src/state_machine.d.ts +86 -0
- package/dist/esm/src/state_machine.d.ts.map +1 -0
- package/dist/esm/src/state_machine.js +407 -0
- package/dist/esm/src/state_machine.js.map +1 -0
- package/dist/esm/src/types/components.d.ts +78 -0
- package/dist/esm/src/types/components.d.ts.map +1 -0
- package/dist/esm/src/types/components.js +227 -0
- package/dist/esm/src/types/components.js.map +1 -0
- package/dist/esm/src/types/discovery.d.ts +43 -0
- package/dist/esm/src/types/discovery.d.ts.map +1 -0
- package/dist/esm/src/types/discovery.js +28 -0
- package/dist/esm/src/types/discovery.js.map +1 -0
- package/dist/esm/src/types/errors.d.ts +53 -0
- package/dist/esm/src/types/errors.d.ts.map +1 -0
- package/dist/esm/src/types/errors.js +117 -0
- package/dist/esm/src/types/errors.js.map +1 -0
- package/dist/esm/src/types/protocol.d.ts +40 -0
- package/dist/esm/src/types/protocol.d.ts.map +1 -0
- package/dist/esm/src/types/protocol.js +206 -0
- package/dist/esm/src/types/protocol.js.map +1 -0
- package/dist/esm/src/types/rpc.d.ts +300 -0
- package/dist/esm/src/types/rpc.d.ts.map +1 -0
- package/dist/esm/src/types/rpc.js +412 -0
- package/dist/esm/src/types/rpc.js.map +1 -0
- package/dist/esm/src/types/types.d.ts +20 -0
- package/dist/esm/src/types/types.d.ts.map +1 -0
- package/dist/esm/src/types/types.js +105 -0
- package/dist/esm/src/types/types.js.map +1 -0
- package/dist/esm/src/user_agent.d.ts +2 -0
- package/dist/esm/src/user_agent.d.ts.map +1 -0
- package/dist/esm/src/user_agent.js +13 -0
- package/dist/esm/src/user_agent.js.map +1 -0
- package/dist/esm/src/utils/buffer.d.ts +5 -0
- package/dist/esm/src/utils/buffer.d.ts.map +1 -0
- package/dist/esm/src/utils/buffer.js +53 -0
- package/dist/esm/src/utils/buffer.js.map +1 -0
- package/dist/esm/src/utils/message_logger.d.ts +7 -0
- package/dist/esm/src/utils/message_logger.d.ts.map +1 -0
- package/dist/esm/src/utils/message_logger.js +75 -0
- package/dist/esm/src/utils/message_logger.js.map +1 -0
- package/dist/esm/src/utils/promises.d.ts +15 -0
- package/dist/esm/src/utils/promises.d.ts.map +1 -0
- package/dist/esm/src/utils/promises.js +63 -0
- package/dist/esm/src/utils/promises.js.map +1 -0
- package/dist/esm/src/utils/rand.d.ts +15 -0
- package/dist/esm/src/utils/rand.d.ts.map +1 -0
- package/dist/esm/src/utils/rand.js +106 -0
- package/dist/esm/src/utils/rand.js.map +1 -0
- package/dist/esm/src/utils/serde.d.ts +5 -0
- package/dist/esm/src/utils/serde.d.ts.map +1 -0
- package/dist/esm/src/utils/serde.js +43 -0
- package/dist/esm/src/utils/serde.js.map +1 -0
- package/dist/esm/src/utils/utils.d.ts +5 -0
- package/dist/esm/src/utils/utils.d.ts.map +1 -0
- package/dist/esm/src/utils/utils.js +109 -0
- package/dist/esm/src/utils/utils.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +58 -20
- package/dist/src/clients/workflow_client.d.ts +0 -77
- package/dist/src/clients/workflow_client.d.ts.map +0 -1
- package/dist/src/clients/workflow_client.js +0 -172
- package/dist/src/clients/workflow_client.js.map +0 -1
- package/dist/src/connection/buffered_connection.d.ts.map +0 -1
- package/dist/src/connection/buffered_connection.js.map +0 -1
- package/dist/src/connection/connection.d.ts.map +0 -1
- package/dist/src/connection/connection.js.map +0 -1
- package/dist/src/connection/http_connection.d.ts.map +0 -1
- package/dist/src/connection/http_connection.js.map +0 -1
- package/dist/src/connection/lambda_connection.d.ts.map +0 -1
- package/dist/src/connection/lambda_connection.js.map +0 -1
- package/dist/src/context.d.ts.map +0 -1
- package/dist/src/context.js.map +0 -1
- package/dist/src/context_impl.d.ts +0 -62
- package/dist/src/context_impl.d.ts.map +0 -1
- package/dist/src/context_impl.js.map +0 -1
- package/dist/src/endpoint/endpoint_impl.d.ts +0 -28
- package/dist/src/endpoint/endpoint_impl.d.ts.map +0 -1
- package/dist/src/endpoint/endpoint_impl.js +0 -164
- package/dist/src/endpoint/endpoint_impl.js.map +0 -1
- package/dist/src/endpoint/http2_handler.d.ts.map +0 -1
- package/dist/src/endpoint/http2_handler.js +0 -153
- package/dist/src/endpoint/http2_handler.js.map +0 -1
- package/dist/src/endpoint/lambda_handler.d.ts +0 -15
- package/dist/src/endpoint/lambda_handler.d.ts.map +0 -1
- package/dist/src/endpoint/lambda_handler.js +0 -154
- package/dist/src/endpoint/lambda_handler.js.map +0 -1
- package/dist/src/endpoint/request_signing/basex.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/basex.js.map +0 -1
- package/dist/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/ed25519.js.map +0 -1
- package/dist/src/endpoint/request_signing/v1.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/v1.js.map +0 -1
- package/dist/src/endpoint/request_signing/validate.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/validate.js.map +0 -1
- package/dist/src/endpoint.d.ts.map +0 -1
- package/dist/src/endpoint.js.map +0 -1
- package/dist/src/generated/proto/javascript_pb.d.ts.map +0 -1
- package/dist/src/generated/proto/javascript_pb.js.map +0 -1
- package/dist/src/generated/proto/protocol_pb.d.ts.map +0 -1
- package/dist/src/generated/proto/protocol_pb.js.map +0 -1
- package/dist/src/generated/version.d.ts +0 -2
- package/dist/src/generated/version.d.ts.map +0 -1
- package/dist/src/generated/version.js.map +0 -1
- package/dist/src/invocation.d.ts.map +0 -1
- package/dist/src/invocation.js.map +0 -1
- package/dist/src/io/decoder.d.ts.map +0 -1
- package/dist/src/io/decoder.js.map +0 -1
- package/dist/src/io/encoder.d.ts.map +0 -1
- package/dist/src/io/encoder.js.map +0 -1
- package/dist/src/journal.d.ts.map +0 -1
- package/dist/src/journal.js.map +0 -1
- package/dist/src/local_state_store.d.ts.map +0 -1
- package/dist/src/local_state_store.js.map +0 -1
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js.map +0 -1
- package/dist/src/promise_combinator_tracker.d.ts.map +0 -1
- package/dist/src/promise_combinator_tracker.js.map +0 -1
- package/dist/src/public_api.d.ts +0 -7
- package/dist/src/public_api.d.ts.map +0 -1
- package/dist/src/public_api.js +0 -50
- package/dist/src/public_api.js.map +0 -1
- package/dist/src/state_machine.d.ts.map +0 -1
- package/dist/src/state_machine.js.map +0 -1
- package/dist/src/types/components.d.ts +0 -65
- package/dist/src/types/components.d.ts.map +0 -1
- package/dist/src/types/components.js +0 -163
- package/dist/src/types/components.js.map +0 -1
- package/dist/src/types/discovery.d.ts.map +0 -1
- package/dist/src/types/discovery.js.map +0 -1
- package/dist/src/types/errors.d.ts.map +0 -1
- package/dist/src/types/errors.js.map +0 -1
- package/dist/src/types/protocol.d.ts.map +0 -1
- package/dist/src/types/protocol.js +0 -147
- package/dist/src/types/protocol.js.map +0 -1
- package/dist/src/types/rpc.d.ts +0 -50
- package/dist/src/types/rpc.d.ts.map +0 -1
- package/dist/src/types/rpc.js +0 -38
- package/dist/src/types/rpc.js.map +0 -1
- package/dist/src/types/types.d.ts.map +0 -1
- package/dist/src/types/types.js.map +0 -1
- package/dist/src/user_agent.d.ts +0 -2
- package/dist/src/user_agent.d.ts.map +0 -1
- package/dist/src/user_agent.js.map +0 -1
- package/dist/src/utils/message_logger.d.ts.map +0 -1
- package/dist/src/utils/message_logger.js.map +0 -1
- package/dist/src/utils/promises.d.ts.map +0 -1
- package/dist/src/utils/promises.js.map +0 -1
- package/dist/src/utils/rand.d.ts.map +0 -1
- package/dist/src/utils/rand.js.map +0 -1
- package/dist/src/utils/serde.d.ts +0 -3
- package/dist/src/utils/serde.d.ts.map +0 -1
- package/dist/src/utils/serde.js +0 -24
- package/dist/src/utils/serde.js.map +0 -1
- package/dist/src/utils/utils.d.ts.map +0 -1
- package/dist/src/utils/utils.js.map +0 -1
- package/dist/src/workflows/workflow.d.ts +0 -101
- package/dist/src/workflows/workflow.d.ts.map +0 -1
- package/dist/src/workflows/workflow.js +0 -84
- package/dist/src/workflows/workflow.js.map +0 -1
- package/dist/src/workflows/workflow_state_service.d.ts +0 -35
- package/dist/src/workflows/workflow_state_service.d.ts.map +0 -1
- package/dist/src/workflows/workflow_state_service.js +0 -201
- package/dist/src/workflows/workflow_state_service.js.map +0 -1
- package/dist/src/workflows/workflow_wrapper_service.d.ts +0 -10
- package/dist/src/workflows/workflow_wrapper_service.d.ts.map +0 -1
- package/dist/src/workflows/workflow_wrapper_service.js +0 -285
- package/dist/src/workflows/workflow_wrapper_service.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/connection/connection.js +0 -0
- /package/dist/{src → cjs/src}/endpoint/request_signing/basex.d.ts +0 -0
- /package/dist/{src → cjs/src}/endpoint/request_signing/basex.js +0 -0
- /package/dist/{src → cjs/src}/generated/proto/javascript_pb.d.ts +0 -0
- /package/dist/{src → cjs/src}/generated/proto/javascript_pb.js +0 -0
- /package/dist/{src → cjs/src}/logger.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/promises.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/utils.d.ts +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Restate SDK for Node.js/TypeScript,
|
|
6
|
+
* which is released under the MIT license.
|
|
7
|
+
*
|
|
8
|
+
* You can find a copy of the license in file LICENSE in the root
|
|
9
|
+
* directory of this repository or package, or at
|
|
10
|
+
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.EndpointBuilder = void 0;
|
|
14
|
+
const rpc_js_1 = require("../types/rpc.js");
|
|
15
|
+
const components_js_1 = require("../types/components.js");
|
|
16
|
+
const v1_js_1 = require("./request_signing/v1.js");
|
|
17
|
+
function isServiceDefinition(m) {
|
|
18
|
+
return m && m.service !== undefined;
|
|
19
|
+
}
|
|
20
|
+
function isObjectDefinition(m) {
|
|
21
|
+
return m && m.object !== undefined;
|
|
22
|
+
}
|
|
23
|
+
function isWorkflowDefinition(m) {
|
|
24
|
+
return m && m.workflow !== undefined;
|
|
25
|
+
}
|
|
26
|
+
class EndpointBuilder {
|
|
27
|
+
services = new Map();
|
|
28
|
+
_keySet;
|
|
29
|
+
get keySet() {
|
|
30
|
+
return this._keySet;
|
|
31
|
+
}
|
|
32
|
+
componentByName(componentName) {
|
|
33
|
+
return this.services.get(componentName);
|
|
34
|
+
}
|
|
35
|
+
addComponent(component) {
|
|
36
|
+
this.services.set(component.name(), component);
|
|
37
|
+
}
|
|
38
|
+
bind(definition) {
|
|
39
|
+
if (isServiceDefinition(definition)) {
|
|
40
|
+
const { name, service } = definition;
|
|
41
|
+
if (!service) {
|
|
42
|
+
throw new TypeError(`no service implementation found.`);
|
|
43
|
+
}
|
|
44
|
+
this.bindServiceComponent(name, service);
|
|
45
|
+
}
|
|
46
|
+
else if (isObjectDefinition(definition)) {
|
|
47
|
+
const { name, object } = definition;
|
|
48
|
+
if (!object) {
|
|
49
|
+
throw new TypeError(`no object implementation found.`);
|
|
50
|
+
}
|
|
51
|
+
this.bindVirtualObjectComponent(name, object);
|
|
52
|
+
}
|
|
53
|
+
else if (isWorkflowDefinition(definition)) {
|
|
54
|
+
const { name, workflow } = definition;
|
|
55
|
+
if (!workflow) {
|
|
56
|
+
throw new TypeError(`no workflow implementation found.`);
|
|
57
|
+
}
|
|
58
|
+
this.bindWorkflowObjectComponent(name, workflow);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw new TypeError("can only bind a service or a virtual object or a workflow definition");
|
|
62
|
+
}
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
withIdentityV1(...keys) {
|
|
66
|
+
if (!this._keySet) {
|
|
67
|
+
this._keySet = (0, v1_js_1.parseKeySetV1)(keys);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
(0, v1_js_1.parseKeySetV1)(keys).forEach((buffer, key) => this._keySet?.set(key, buffer));
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
computeDiscovery(protocolMode) {
|
|
74
|
+
const services = [...this.services.values()].map((c) => c.discovery());
|
|
75
|
+
const endpoint = {
|
|
76
|
+
protocolMode,
|
|
77
|
+
minProtocolVersion: 1,
|
|
78
|
+
maxProtocolVersion: 2,
|
|
79
|
+
services,
|
|
80
|
+
};
|
|
81
|
+
return endpoint;
|
|
82
|
+
}
|
|
83
|
+
bindServiceComponent(name, router) {
|
|
84
|
+
if (name.indexOf("/") !== -1) {
|
|
85
|
+
throw new Error("service name must not contain any slash '/'");
|
|
86
|
+
}
|
|
87
|
+
const component = new components_js_1.ServiceComponent(name);
|
|
88
|
+
for (const [route, handler] of Object.entries(router)) {
|
|
89
|
+
const wrapper = rpc_js_1.HandlerWrapper.fromHandler(handler);
|
|
90
|
+
if (!wrapper) {
|
|
91
|
+
throw new TypeError(`${route} is not a restate handler.`);
|
|
92
|
+
}
|
|
93
|
+
wrapper.bindInstance(router);
|
|
94
|
+
component.add(route, wrapper);
|
|
95
|
+
}
|
|
96
|
+
this.addComponent(component);
|
|
97
|
+
}
|
|
98
|
+
bindVirtualObjectComponent(name, router) {
|
|
99
|
+
if (name.indexOf("/") !== -1) {
|
|
100
|
+
throw new Error("service name must not contain any slash '/'");
|
|
101
|
+
}
|
|
102
|
+
const component = new components_js_1.VirtualObjectComponent(name);
|
|
103
|
+
for (const [route, handler] of Object.entries(router)) {
|
|
104
|
+
const wrapper = rpc_js_1.HandlerWrapper.fromHandler(handler);
|
|
105
|
+
if (!wrapper) {
|
|
106
|
+
throw new TypeError(`${route} is not a restate handler.`);
|
|
107
|
+
}
|
|
108
|
+
wrapper.bindInstance(router);
|
|
109
|
+
component.add(route, wrapper);
|
|
110
|
+
}
|
|
111
|
+
this.addComponent(component);
|
|
112
|
+
}
|
|
113
|
+
bindWorkflowObjectComponent(name, workflow) {
|
|
114
|
+
if (name.indexOf("/") !== -1) {
|
|
115
|
+
throw new Error("service name must not contain any slash '/'");
|
|
116
|
+
}
|
|
117
|
+
const component = new components_js_1.WorkflowComponent(name);
|
|
118
|
+
for (const [route, handler] of Object.entries(workflow)) {
|
|
119
|
+
const wrapper = rpc_js_1.HandlerWrapper.fromHandler(handler);
|
|
120
|
+
if (!wrapper) {
|
|
121
|
+
throw new TypeError(`${route} is not a restate handler.`);
|
|
122
|
+
}
|
|
123
|
+
wrapper.bindInstance(workflow);
|
|
124
|
+
component.add(route, wrapper);
|
|
125
|
+
}
|
|
126
|
+
this.addComponent(component);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.EndpointBuilder = EndpointBuilder;
|
|
130
|
+
//# sourceMappingURL=endpoint_builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint_builder.js","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
|
|
3
|
+
import type { Component } from "../types/components.js";
|
|
4
|
+
import type { KeySetV1 } from "./request_signing/v1.js";
|
|
5
|
+
import type { RestateEndpointBase, ServiceBundle } from "../endpoint.js";
|
|
6
|
+
/**
|
|
7
|
+
* Generic Fetch encapsulates all the Restate services served by this endpoint.
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* A typical endpoint served would look like this:
|
|
12
|
+
* ```
|
|
13
|
+
* import * as restate from "@restatedev/restate-sdk/fetch";
|
|
14
|
+
*
|
|
15
|
+
* export default restate
|
|
16
|
+
* .endpoint()
|
|
17
|
+
* .bind(myService)
|
|
18
|
+
* .handler();
|
|
19
|
+
*/
|
|
20
|
+
export interface FetchEndpoint extends RestateEndpointBase<FetchEndpoint> {
|
|
21
|
+
handler(): {
|
|
22
|
+
fetch: (request: Request) => Promise<Response>;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export declare class FetchEndpointImpl implements FetchEndpoint {
|
|
26
|
+
private builder;
|
|
27
|
+
get keySet(): KeySetV1 | undefined;
|
|
28
|
+
componentByName(componentName: string): Component | undefined;
|
|
29
|
+
addComponent(component: Component): void;
|
|
30
|
+
bindBundle(services: ServiceBundle): FetchEndpoint;
|
|
31
|
+
bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): FetchEndpoint;
|
|
32
|
+
withIdentityV1(...keys: string[]): FetchEndpoint;
|
|
33
|
+
handler(): {
|
|
34
|
+
fetch: (request: Request) => Promise<Response>;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=fetch_endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAEV,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAIxB;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAc,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IACvE,OAAO,IAAI;QAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC;CAC/D;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,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,aAAa;IAK3C,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,aAAa;IAKT,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa;IAKvD,OAAO,IAAI;QACT,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;KAChD;CAIF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Restate SDK for Node.js/TypeScript,
|
|
6
|
+
* which is released under the MIT license.
|
|
7
|
+
*
|
|
8
|
+
* You can find a copy of the license in file LICENSE in the root
|
|
9
|
+
* directory of this repository or package, or at
|
|
10
|
+
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.FetchEndpointImpl = void 0;
|
|
14
|
+
const endpoint_builder_js_1 = require("./endpoint_builder.js");
|
|
15
|
+
const generic_js_1 = require("./handlers/generic.js");
|
|
16
|
+
const fetch_js_1 = require("./handlers/fetch.js");
|
|
17
|
+
class FetchEndpointImpl {
|
|
18
|
+
builder = new endpoint_builder_js_1.EndpointBuilder();
|
|
19
|
+
get keySet() {
|
|
20
|
+
return this.builder.keySet;
|
|
21
|
+
}
|
|
22
|
+
componentByName(componentName) {
|
|
23
|
+
return this.builder.componentByName(componentName);
|
|
24
|
+
}
|
|
25
|
+
addComponent(component) {
|
|
26
|
+
this.builder.addComponent(component);
|
|
27
|
+
}
|
|
28
|
+
bindBundle(services) {
|
|
29
|
+
services.registerServices(this);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
bind(definition) {
|
|
33
|
+
this.builder.bind(definition);
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
withIdentityV1(...keys) {
|
|
37
|
+
this.builder.withIdentityV1(...keys);
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
handler() {
|
|
41
|
+
const genericHandler = new generic_js_1.GenericHandler(this.builder);
|
|
42
|
+
return (0, fetch_js_1.fetcher)(genericHandler);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.FetchEndpointImpl = FetchEndpointImpl;
|
|
46
|
+
//# sourceMappingURL=fetch_endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAWH,+DAAwD;AAMxD,sDAAuD;AACvD,kDAA8C;AAoB9C,MAAa,iBAAiB;IACpB,OAAO,GAAoB,IAAI,qCAAe,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;IAED,OAAO;QAGL,MAAM,cAAc,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,IAAA,kBAAO,EAAC,cAAc,CAAC,CAAC;IACjC,CAAC;CACF;AAzCD,8CAyCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/fetch.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAEnE,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc;mBAEtB,OAAO,KAAG,QAAQ,QAAQ,CAAC;EAmBnD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Restate SDK for Node.js/TypeScript,
|
|
6
|
+
* which is released under the MIT license.
|
|
7
|
+
*
|
|
8
|
+
* You can find a copy of the license in file LICENSE in the root
|
|
9
|
+
* directory of this repository or package, or at
|
|
10
|
+
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.fetcher = void 0;
|
|
14
|
+
function fetcher(handler) {
|
|
15
|
+
return {
|
|
16
|
+
fetch: async (event) => {
|
|
17
|
+
const url = event.url;
|
|
18
|
+
const body = new Uint8Array(await event.arrayBuffer());
|
|
19
|
+
const headers = Object.fromEntries(event.headers.entries());
|
|
20
|
+
const request = {
|
|
21
|
+
url,
|
|
22
|
+
headers,
|
|
23
|
+
body,
|
|
24
|
+
};
|
|
25
|
+
const resp = await handler.handle(request);
|
|
26
|
+
return new Response(resp.body, {
|
|
27
|
+
status: resp.statusCode,
|
|
28
|
+
headers: resp.headers,
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
exports.fetcher = fetcher;
|
|
34
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/fetch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAIH,SAAgB,OAAO,CAAC,OAAuB;IAC7C,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAc,EAAqB,EAAE;YACjD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACtB,MAAM,IAAI,GAAe,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAmB;gBAC9B,GAAG;gBACH,OAAO;gBACP,IAAI;aACL,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE3C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC7B,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AArBD,0BAqBC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { EndpointBuilder } from "../endpoint_builder.js";
|
|
2
|
+
export interface Headers {
|
|
3
|
+
[name: string]: string | string[] | undefined;
|
|
4
|
+
}
|
|
5
|
+
export interface ResponseHeaders {
|
|
6
|
+
[name: string]: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AdditionalContext {
|
|
9
|
+
[name: string]: string;
|
|
10
|
+
}
|
|
11
|
+
export interface RestateRequest {
|
|
12
|
+
readonly url: string;
|
|
13
|
+
readonly headers: Headers;
|
|
14
|
+
readonly body: Uint8Array;
|
|
15
|
+
}
|
|
16
|
+
export interface RestateResponse {
|
|
17
|
+
readonly headers: ResponseHeaders;
|
|
18
|
+
readonly statusCode: number;
|
|
19
|
+
readonly body: Uint8Array;
|
|
20
|
+
}
|
|
21
|
+
export interface RestateHandler {
|
|
22
|
+
handle(request: RestateRequest, context?: AdditionalContext): Promise<RestateResponse>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* This is an internal API to support 'fetch' like handlers.
|
|
26
|
+
* This is for now supports only request-reply style of invocations
|
|
27
|
+
* which are suitable for platforms like AWS Lambda, Cloudflare works,
|
|
28
|
+
* and runtimes that only support HTTP/1.1 like Bun.
|
|
29
|
+
*
|
|
30
|
+
* An individual handler will have to convert the shape of the incoming request
|
|
31
|
+
* to a RestateRequest, and then pass it to this handler, and eventually convert back
|
|
32
|
+
* the response.
|
|
33
|
+
* Different runtimes have slightly different shapes of the incoming request, and responses.
|
|
34
|
+
*/
|
|
35
|
+
export declare class GenericHandler implements RestateHandler {
|
|
36
|
+
private readonly endpoint;
|
|
37
|
+
constructor(endpoint: EndpointBuilder);
|
|
38
|
+
handle(request: RestateRequest, context?: AdditionalContext): Promise<RestateResponse>;
|
|
39
|
+
private validateConnectionSignature;
|
|
40
|
+
private handleInvoke;
|
|
41
|
+
private handleDiscovery;
|
|
42
|
+
private toErrorResponse;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=generic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CACJ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,YAAW,cAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAczC,MAAM,CACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC;YAyDb,2BAA2B;YAqC3B,YAAY;IAmD1B,OAAO,CAAC,eAAe;IAmDvB,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Restate SDK for Node.js/TypeScript,
|
|
6
|
+
* which is released under the MIT license.
|
|
7
|
+
*
|
|
8
|
+
* You can find a copy of the license in file LICENSE in the root
|
|
9
|
+
* directory of this repository or package, or at
|
|
10
|
+
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.GenericHandler = void 0;
|
|
14
|
+
const logger_js_1 = require("../../logger.js");
|
|
15
|
+
const lambda_connection_js_1 = require("../../connection/lambda_connection.js");
|
|
16
|
+
const invocation_js_1 = require("../../invocation.js");
|
|
17
|
+
const decoder_js_1 = require("../../io/decoder.js");
|
|
18
|
+
const state_machine_js_1 = require("../../state_machine.js");
|
|
19
|
+
const errors_js_1 = require("../../types/errors.js");
|
|
20
|
+
const protocol_js_1 = require("../../types/protocol.js");
|
|
21
|
+
const discovery_js_1 = require("../../types/discovery.js");
|
|
22
|
+
const components_js_1 = require("../../types/components.js");
|
|
23
|
+
const validate_js_1 = require("../request_signing/validate.js");
|
|
24
|
+
const user_agent_js_1 = require("../../user_agent.js");
|
|
25
|
+
const node_buffer_1 = require("node:buffer");
|
|
26
|
+
const discovery_pb_js_1 = require("../../generated/proto/discovery_pb.js");
|
|
27
|
+
/**
|
|
28
|
+
* This is an internal API to support 'fetch' like handlers.
|
|
29
|
+
* This is for now supports only request-reply style of invocations
|
|
30
|
+
* which are suitable for platforms like AWS Lambda, Cloudflare works,
|
|
31
|
+
* and runtimes that only support HTTP/1.1 like Bun.
|
|
32
|
+
*
|
|
33
|
+
* An individual handler will have to convert the shape of the incoming request
|
|
34
|
+
* to a RestateRequest, and then pass it to this handler, and eventually convert back
|
|
35
|
+
* the response.
|
|
36
|
+
* Different runtimes have slightly different shapes of the incoming request, and responses.
|
|
37
|
+
*/
|
|
38
|
+
class GenericHandler {
|
|
39
|
+
endpoint;
|
|
40
|
+
constructor(endpoint) {
|
|
41
|
+
this.endpoint = endpoint;
|
|
42
|
+
if (!this.endpoint.keySet) {
|
|
43
|
+
logger_js_1.rlog.warn(`Accepting requests without validating request signatures; worker access must be restricted`);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
logger_js_1.rlog.info(`Validating requests using signing keys [${Array.from(this.endpoint.keySet.keys())}]`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async handle(request, context) {
|
|
50
|
+
const path = request.url;
|
|
51
|
+
const error = await this.validateConnectionSignature(path, request.headers);
|
|
52
|
+
if (error !== null) {
|
|
53
|
+
return error;
|
|
54
|
+
}
|
|
55
|
+
const parsed = (0, components_js_1.parseUrlComponents)(path);
|
|
56
|
+
if (!parsed) {
|
|
57
|
+
const msg = `Invalid path: path doesn't end in /invoke/SvcName/handlerName and also not in /discover: ${path}`;
|
|
58
|
+
logger_js_1.rlog.trace(msg);
|
|
59
|
+
return this.toErrorResponse(404, msg);
|
|
60
|
+
}
|
|
61
|
+
if (parsed === "discovery") {
|
|
62
|
+
return this.handleDiscovery(request.headers["accept"]);
|
|
63
|
+
}
|
|
64
|
+
const serviceProtocolVersionString = request.headers["content-type"];
|
|
65
|
+
if (typeof serviceProtocolVersionString !== "string") {
|
|
66
|
+
const errorMessage = "Missing content-type header";
|
|
67
|
+
logger_js_1.rlog.warn(errorMessage);
|
|
68
|
+
return this.toErrorResponse(415, errorMessage);
|
|
69
|
+
}
|
|
70
|
+
const serviceProtocolVersion = (0, protocol_js_1.parseServiceProtocolVersion)(serviceProtocolVersionString);
|
|
71
|
+
if (!(0, protocol_js_1.isServiceProtocolVersionSupported)(serviceProtocolVersion)) {
|
|
72
|
+
const errorMessage = `Unsupported service protocol version '${serviceProtocolVersionString}'`;
|
|
73
|
+
logger_js_1.rlog.warn(errorMessage);
|
|
74
|
+
return this.toErrorResponse(415, errorMessage);
|
|
75
|
+
}
|
|
76
|
+
const method = this.endpoint.componentByName(parsed.componentName);
|
|
77
|
+
if (!method) {
|
|
78
|
+
const msg = `No service found for URL: ${JSON.stringify(parsed)}`;
|
|
79
|
+
logger_js_1.rlog.error(msg);
|
|
80
|
+
return this.toErrorResponse(404, msg);
|
|
81
|
+
}
|
|
82
|
+
const handler = method?.handlerMatching(parsed);
|
|
83
|
+
if (!handler) {
|
|
84
|
+
const msg = `No service found for URL: ${JSON.stringify(parsed)}`;
|
|
85
|
+
logger_js_1.rlog.error(msg);
|
|
86
|
+
return this.toErrorResponse(404, msg);
|
|
87
|
+
}
|
|
88
|
+
if (!request.body) {
|
|
89
|
+
const msg = "The incoming message body was null";
|
|
90
|
+
logger_js_1.rlog.error(msg);
|
|
91
|
+
return this.toErrorResponse(400, msg);
|
|
92
|
+
}
|
|
93
|
+
return this.handleInvoke(handler, request.body, request.headers, serviceProtocolVersion, context ?? {});
|
|
94
|
+
}
|
|
95
|
+
async validateConnectionSignature(path, headers) {
|
|
96
|
+
if (!this.endpoint.keySet) {
|
|
97
|
+
// not validating
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const validateResponse = await (0, validate_js_1.validateRequestSignature)(this.endpoint.keySet, path, headers);
|
|
102
|
+
if (!validateResponse.valid) {
|
|
103
|
+
logger_js_1.rlog.error(`Rejecting request as its JWT did not validate: ${
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
105
|
+
validateResponse.error}`);
|
|
106
|
+
return this.toErrorResponse(401, "Unauthorized");
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
const error = (0, errors_js_1.ensureError)(e);
|
|
114
|
+
logger_js_1.rlog.error("Error while attempting to validate request signature: " +
|
|
115
|
+
(error.stack ?? error.message));
|
|
116
|
+
return this.toErrorResponse(401, "Unauthorized");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async handleInvoke(handler, body, headers, serviceProtocolVersion, context) {
|
|
120
|
+
try {
|
|
121
|
+
// build the previous journal from the events
|
|
122
|
+
let decodedEntries = (0, decoder_js_1.decodeMessagesBuffer)(node_buffer_1.Buffer.from(body));
|
|
123
|
+
const journalBuilder = new invocation_js_1.InvocationBuilder(handler);
|
|
124
|
+
decodedEntries.forEach((e) => journalBuilder.handleMessage(e));
|
|
125
|
+
const alreadyCompleted = decodedEntries.find((e) => e.messageType === protocol_js_1.OUTPUT_ENTRY_MESSAGE_TYPE) !== undefined;
|
|
126
|
+
decodedEntries = null;
|
|
127
|
+
// set up and invoke the state machine
|
|
128
|
+
const connection = new lambda_connection_js_1.LambdaConnection(headers, alreadyCompleted);
|
|
129
|
+
const invocation = journalBuilder.build();
|
|
130
|
+
const stateMachine = new state_machine_js_1.StateMachine(connection, invocation, discovery_js_1.ProtocolMode.REQUEST_RESPONSE, handler.kind(), invocation.inferLoggerContext(context));
|
|
131
|
+
await stateMachine.invoke();
|
|
132
|
+
const result = await connection.getResult();
|
|
133
|
+
return {
|
|
134
|
+
headers: {
|
|
135
|
+
"content-type": (0, protocol_js_1.serviceProtocolVersionToHeaderValue)(serviceProtocolVersion),
|
|
136
|
+
"x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
|
|
137
|
+
},
|
|
138
|
+
statusCode: 200,
|
|
139
|
+
body: result,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
catch (e) {
|
|
143
|
+
const error = (0, errors_js_1.ensureError)(e);
|
|
144
|
+
logger_js_1.rlog.error(error.message);
|
|
145
|
+
logger_js_1.rlog.error(error.stack);
|
|
146
|
+
return this.toErrorResponse(500, error.message);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
handleDiscovery(acceptVersionsString) {
|
|
150
|
+
if (typeof acceptVersionsString !== "string") {
|
|
151
|
+
const errorMessage = "Missing accept header";
|
|
152
|
+
logger_js_1.rlog.warn(errorMessage);
|
|
153
|
+
return this.toErrorResponse(415, errorMessage);
|
|
154
|
+
}
|
|
155
|
+
const serviceDiscoveryProtocolVersion = (0, protocol_js_1.selectSupportedServiceDiscoveryProtocolVersion)(acceptVersionsString);
|
|
156
|
+
if (serviceDiscoveryProtocolVersion ===
|
|
157
|
+
discovery_pb_js_1.ServiceDiscoveryProtocolVersion.SERVICE_DISCOVERY_PROTOCOL_VERSION_UNSPECIFIED) {
|
|
158
|
+
const errorMessage = `Unsupported service discovery protocol version '${acceptVersionsString}'`;
|
|
159
|
+
logger_js_1.rlog.warn(errorMessage);
|
|
160
|
+
return this.toErrorResponse(415, errorMessage);
|
|
161
|
+
}
|
|
162
|
+
const discovery = this.endpoint.computeDiscovery(discovery_js_1.ProtocolMode.REQUEST_RESPONSE);
|
|
163
|
+
let body;
|
|
164
|
+
if (serviceDiscoveryProtocolVersion === discovery_pb_js_1.ServiceDiscoveryProtocolVersion.V1) {
|
|
165
|
+
const discoveryJson = JSON.stringify(discovery);
|
|
166
|
+
body = node_buffer_1.Buffer.from(discoveryJson);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
// should not be reached since we check for compatibility before
|
|
170
|
+
throw new Error(`Unsupported service discovery protocol version: ${serviceDiscoveryProtocolVersion}`);
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
headers: {
|
|
174
|
+
"content-type": (0, protocol_js_1.serviceDiscoveryProtocolVersionToHeaderValue)(serviceDiscoveryProtocolVersion),
|
|
175
|
+
"x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
|
|
176
|
+
},
|
|
177
|
+
statusCode: 200,
|
|
178
|
+
body,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
toErrorResponse(code, message) {
|
|
182
|
+
return {
|
|
183
|
+
headers: {
|
|
184
|
+
"content-type": "text/plain",
|
|
185
|
+
"x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
|
|
186
|
+
},
|
|
187
|
+
statusCode: code,
|
|
188
|
+
body: node_buffer_1.Buffer.from(JSON.stringify({ message })),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.GenericHandler = GenericHandler;
|
|
193
|
+
//# sourceMappingURL=generic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2, Context } from "aws-lambda";
|
|
2
|
+
import type { GenericHandler } from "./generic.js";
|
|
3
|
+
export declare class LambdaHandler {
|
|
4
|
+
private readonly handler;
|
|
5
|
+
constructor(handler: GenericHandler);
|
|
6
|
+
handleRequest(event: APIGatewayProxyEvent | APIGatewayProxyEventV2, context: Context): Promise<APIGatewayProxyResult | APIGatewayProxyStructuredResultV2>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=lambda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/lambda.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAEnE,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE9C,aAAa,CACjB,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,EACpD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,GAAG,iCAAiC,CAAC;CA6CtE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Restate SDK for Node.js/TypeScript,
|
|
6
|
+
* which is released under the MIT license.
|
|
7
|
+
*
|
|
8
|
+
* You can find a copy of the license in file LICENSE in the root
|
|
9
|
+
* directory of this repository or package, or at
|
|
10
|
+
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.LambdaHandler = void 0;
|
|
14
|
+
const node_buffer_1 = require("node:buffer");
|
|
15
|
+
class LambdaHandler {
|
|
16
|
+
handler;
|
|
17
|
+
constructor(handler) {
|
|
18
|
+
this.handler = handler;
|
|
19
|
+
}
|
|
20
|
+
async handleRequest(event, context) {
|
|
21
|
+
//
|
|
22
|
+
// Request path
|
|
23
|
+
//
|
|
24
|
+
const path = "path" in event ? event.path : event.rawPath;
|
|
25
|
+
//
|
|
26
|
+
// Convert the request body to a Uint8Array
|
|
27
|
+
// Lambda functions receive the body as base64 encoded string
|
|
28
|
+
//
|
|
29
|
+
let requestBody;
|
|
30
|
+
if (!event.body) {
|
|
31
|
+
requestBody = new Uint8Array(0);
|
|
32
|
+
}
|
|
33
|
+
else if (event.isBase64Encoded) {
|
|
34
|
+
requestBody = node_buffer_1.Buffer.from(event.body, "base64");
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
requestBody = node_buffer_1.Buffer.from(event.body);
|
|
38
|
+
}
|
|
39
|
+
const request = {
|
|
40
|
+
body: requestBody,
|
|
41
|
+
headers: event.headers,
|
|
42
|
+
url: path,
|
|
43
|
+
};
|
|
44
|
+
const resp = await this.handler.handle(request, {
|
|
45
|
+
AWSRequestId: context.awsRequestId,
|
|
46
|
+
});
|
|
47
|
+
let responseBody;
|
|
48
|
+
if (!resp.body) {
|
|
49
|
+
responseBody = "";
|
|
50
|
+
}
|
|
51
|
+
else if (event.isBase64Encoded) {
|
|
52
|
+
responseBody = node_buffer_1.Buffer.from(resp.body).toString("base64");
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
responseBody = node_buffer_1.Buffer.from(resp.body).toString("utf8");
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
headers: resp.headers,
|
|
59
|
+
statusCode: resp.statusCode,
|
|
60
|
+
isBase64Encoded: event.isBase64Encoded,
|
|
61
|
+
body: responseBody,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.LambdaHandler = LambdaHandler;
|
|
66
|
+
//# sourceMappingURL=lambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/lambda.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AASH,6CAAqC;AAGrC,MAAa,aAAa;IACK;IAA7B,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,KAAK,CAAC,aAAa,CACjB,KAAoD,EACpD,OAAgB;QAEhB,EAAE;QACF,eAAe;QACf,EAAE;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAE1D,EAAE;QACF,2CAA2C;QAC3C,6DAA6D;QAC7D,EAAE;QACF,IAAI,WAAuB,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACjC,WAAW,GAAG,oBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,oBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,OAAO,GAAmB;YAC9B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,IAAI;SACV,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;YAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACjC,YAAY,GAAG,oBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,oBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,IAAI,EAAE,YAAY;SACnB,CAAC;IACJ,CAAC;CACF;AAnDD,sCAmDC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Http2ServerRequest, Http2ServerResponse } from "http2";
|
|
3
|
-
import {
|
|
2
|
+
import type { Http2ServerRequest, Http2ServerResponse } from "http2";
|
|
3
|
+
import type { EndpointBuilder } from "../endpoint_builder.js";
|
|
4
4
|
export declare class Http2Handler {
|
|
5
5
|
private readonly endpoint;
|
|
6
|
-
constructor(endpoint:
|
|
6
|
+
constructor(endpoint: EndpointBuilder);
|
|
7
7
|
acceptConnection(request: Http2ServerRequest, _response: Http2ServerResponse): void;
|
|
8
8
|
private validateConnectionSignature;
|
|
9
9
|
private handleConnection;
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/node.ts"],"names":[],"mappings":";AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAsBrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAEtD,gBAAgB,CACd,OAAO,EAAE,kBAAkB,EAE3B,SAAS,EAAE,mBAAmB;YAuBlB,2BAA2B;IAoCzC,OAAO,CAAC,gBAAgB;CAmEzB"}
|