@restatedev/restate-sdk 1.0.1 → 1.1.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 +3 -3
- package/dist/cjs/src/common_api.d.ts +4 -2
- package/dist/cjs/src/common_api.d.ts.map +1 -1
- package/dist/cjs/src/common_api.js.map +1 -1
- package/dist/cjs/src/connection/connection.d.ts +64 -0
- package/dist/cjs/src/connection/connection.d.ts.map +1 -1
- package/dist/cjs/src/connection/connection.js +168 -0
- package/dist/cjs/src/connection/connection.js.map +1 -1
- package/dist/cjs/src/context.d.ts +13 -9
- package/dist/cjs/src/context.d.ts.map +1 -1
- package/dist/cjs/src/context.js.map +1 -1
- package/dist/cjs/src/context_impl.d.ts.map +1 -1
- package/dist/cjs/src/context_impl.js +15 -20
- package/dist/cjs/src/context_impl.js.map +1 -1
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts +10 -0
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/endpoint_builder.js +13 -0
- package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +18 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.js +16 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -1
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/handlers/fetch.js +1 -2
- package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -1
- package/dist/cjs/src/endpoint/handlers/generic.d.ts +10 -7
- package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/handlers/generic.js +76 -54
- package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -1
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/handlers/lambda.js +33 -16
- package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -1
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +2 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/lambda_endpoint.js +6 -8
- package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -1
- package/dist/cjs/src/endpoint/node_endpoint.d.ts +2 -0
- package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/node_endpoint.js +31 -20
- package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -1
- package/dist/cjs/src/endpoint.d.ts +25 -2
- package/dist/cjs/src/endpoint.d.ts.map +1 -1
- package/dist/cjs/src/fetch.d.ts +2 -1
- package/dist/cjs/src/fetch.d.ts.map +1 -1
- package/dist/cjs/src/fetch.js +4 -2
- package/dist/cjs/src/fetch.js.map +1 -1
- package/dist/cjs/src/generated/version.d.ts +1 -1
- package/dist/cjs/src/generated/version.js +1 -1
- package/dist/cjs/src/invocation.d.ts +1 -1
- package/dist/cjs/src/invocation.d.ts.map +1 -1
- package/dist/cjs/src/invocation.js.map +1 -1
- package/dist/cjs/src/io/decoder.d.ts +2 -2
- package/dist/cjs/src/io/decoder.d.ts.map +1 -1
- package/dist/cjs/src/io/decoder.js +7 -8
- package/dist/cjs/src/io/decoder.js.map +1 -1
- package/dist/cjs/src/io/encoder.d.ts +0 -3
- package/dist/cjs/src/io/encoder.d.ts.map +1 -1
- package/dist/cjs/src/io/encoder.js +1 -18
- package/dist/cjs/src/io/encoder.js.map +1 -1
- package/dist/cjs/src/logger.d.ts +21 -13
- package/dist/cjs/src/logger.d.ts.map +1 -1
- package/dist/cjs/src/logger.js +56 -56
- package/dist/cjs/src/logger.js.map +1 -1
- package/dist/cjs/src/state_machine.d.ts +3 -5
- package/dist/cjs/src/state_machine.d.ts.map +1 -1
- package/dist/cjs/src/state_machine.js +7 -15
- package/dist/cjs/src/state_machine.js.map +1 -1
- package/dist/cjs/src/types/rpc.d.ts +11 -11
- package/dist/cjs/src/types/rpc.d.ts.map +1 -1
- package/dist/cjs/src/types/rpc.js +3 -3
- package/dist/cjs/src/types/rpc.js.map +1 -1
- package/dist/cjs/src/user_agent.d.ts +1 -1
- package/dist/cjs/src/utils/message_logger.d.ts +2 -2
- package/dist/cjs/src/utils/message_logger.d.ts.map +1 -1
- package/dist/cjs/src/utils/message_logger.js +3 -3
- package/dist/cjs/src/utils/message_logger.js.map +1 -1
- package/dist/cjs/src/utils/streams.d.ts +4 -0
- package/dist/cjs/src/utils/streams.d.ts.map +1 -0
- package/dist/cjs/src/utils/streams.js +24 -0
- package/dist/cjs/src/utils/streams.js.map +1 -0
- package/dist/cjs/test/awakeable.test.d.ts +2 -0
- package/dist/cjs/test/awakeable.test.d.ts.map +1 -0
- package/dist/cjs/test/awakeable.test.js +141 -0
- package/dist/cjs/test/awakeable.test.js.map +1 -0
- package/dist/cjs/test/complete_awakeable.test.d.ts +2 -0
- package/dist/cjs/test/complete_awakeable.test.d.ts.map +1 -0
- package/dist/cjs/test/complete_awakeable.test.js +123 -0
- package/dist/cjs/test/complete_awakeable.test.js.map +1 -0
- package/dist/cjs/test/eager_state.test.d.ts +2 -0
- package/dist/cjs/test/eager_state.test.d.ts.map +1 -0
- package/dist/cjs/test/eager_state.test.js +280 -0
- package/dist/cjs/test/eager_state.test.js.map +1 -0
- package/dist/cjs/test/get_and_set_state.test.d.ts +2 -0
- package/dist/cjs/test/get_and_set_state.test.d.ts.map +1 -0
- package/dist/cjs/test/get_and_set_state.test.js +233 -0
- package/dist/cjs/test/get_and_set_state.test.js.map +1 -0
- package/dist/cjs/test/get_state.test.d.ts +2 -0
- package/dist/cjs/test/get_state.test.d.ts.map +1 -0
- package/dist/cjs/test/get_state.test.js +333 -0
- package/dist/cjs/test/get_state.test.js.map +1 -0
- package/dist/cjs/test/lambda.test.d.ts +2 -0
- package/dist/cjs/test/lambda.test.d.ts.map +1 -0
- package/dist/cjs/test/lambda.test.js +246 -0
- package/dist/cjs/test/lambda.test.js.map +1 -0
- package/dist/cjs/test/message_coders.test.d.ts +2 -0
- package/dist/cjs/test/message_coders.test.d.ts.map +1 -0
- package/dist/cjs/test/message_coders.test.js +37 -0
- package/dist/cjs/test/message_coders.test.js.map +1 -0
- package/dist/cjs/test/promise_combinator_tracker.test.d.ts +2 -0
- package/dist/cjs/test/promise_combinator_tracker.test.d.ts.map +1 -0
- package/dist/cjs/test/promise_combinator_tracker.test.js +156 -0
- package/dist/cjs/test/promise_combinator_tracker.test.js.map +1 -0
- package/dist/cjs/test/promise_combinators.test.d.ts +2 -0
- package/dist/cjs/test/promise_combinators.test.d.ts.map +1 -0
- package/dist/cjs/test/promise_combinators.test.js +433 -0
- package/dist/cjs/test/promise_combinators.test.js.map +1 -0
- package/dist/cjs/test/promises.test.d.ts +2 -0
- package/dist/cjs/test/promises.test.d.ts.map +1 -0
- package/dist/cjs/test/promises.test.js +32 -0
- package/dist/cjs/test/promises.test.js.map +1 -0
- package/dist/cjs/test/protocol_stream.test.d.ts +2 -0
- package/dist/cjs/test/protocol_stream.test.d.ts.map +1 -0
- package/dist/cjs/test/protocol_stream.test.js +243 -0
- package/dist/cjs/test/protocol_stream.test.js.map +1 -0
- package/dist/cjs/test/protoutils.d.ts +44 -0
- package/dist/cjs/test/protoutils.d.ts.map +1 -0
- package/dist/cjs/test/protoutils.js +359 -0
- package/dist/cjs/test/protoutils.js.map +1 -0
- package/dist/cjs/test/service_bind.test.d.ts +2 -0
- package/dist/cjs/test/service_bind.test.d.ts.map +1 -0
- package/dist/cjs/test/service_bind.test.js +98 -0
- package/dist/cjs/test/service_bind.test.js.map +1 -0
- package/dist/cjs/test/side_effect.test.d.ts +2 -0
- package/dist/cjs/test/side_effect.test.d.ts.map +1 -0
- package/dist/cjs/test/side_effect.test.js +133 -0
- package/dist/cjs/test/side_effect.test.js.map +1 -0
- package/dist/cjs/test/sleep.test.d.ts +2 -0
- package/dist/cjs/test/sleep.test.d.ts.map +1 -0
- package/dist/cjs/test/sleep.test.js +224 -0
- package/dist/cjs/test/sleep.test.js.map +1 -0
- package/dist/cjs/test/state_keys.test.d.ts +2 -0
- package/dist/cjs/test/state_keys.test.d.ts.map +1 -0
- package/dist/cjs/test/state_keys.test.js +92 -0
- package/dist/cjs/test/state_keys.test.js.map +1 -0
- package/dist/cjs/test/state_machine.test.d.ts +2 -0
- package/dist/cjs/test/state_machine.test.d.ts.map +1 -0
- package/dist/cjs/test/state_machine.test.js +42 -0
- package/dist/cjs/test/state_machine.test.js.map +1 -0
- package/dist/cjs/test/testdriver.d.ts +37 -0
- package/dist/cjs/test/testdriver.d.ts.map +1 -0
- package/dist/cjs/test/testdriver.js +176 -0
- package/dist/cjs/test/testdriver.js.map +1 -0
- package/dist/cjs/test/utils.test.d.ts +2 -0
- package/dist/cjs/test/utils.test.d.ts.map +1 -0
- package/dist/cjs/test/utils.test.js +104 -0
- package/dist/cjs/test/utils.test.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/common_api.d.ts +4 -2
- package/dist/esm/src/common_api.d.ts.map +1 -1
- package/dist/esm/src/common_api.js +1 -1
- package/dist/esm/src/common_api.js.map +1 -1
- package/dist/esm/src/connection/connection.d.ts +64 -0
- package/dist/esm/src/connection/connection.d.ts.map +1 -1
- package/dist/esm/src/connection/connection.js +166 -1
- package/dist/esm/src/connection/connection.js.map +1 -1
- package/dist/esm/src/context.d.ts +13 -9
- package/dist/esm/src/context.d.ts.map +1 -1
- package/dist/esm/src/context.js.map +1 -1
- package/dist/esm/src/context_impl.d.ts.map +1 -1
- package/dist/esm/src/context_impl.js +15 -20
- package/dist/esm/src/context_impl.js.map +1 -1
- package/dist/esm/src/endpoint/endpoint_builder.d.ts +10 -0
- package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -1
- package/dist/esm/src/endpoint/endpoint_builder.js +13 -0
- package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -1
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts +18 -1
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -1
- package/dist/esm/src/endpoint/fetch_endpoint.js +16 -1
- package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -1
- package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -1
- package/dist/esm/src/endpoint/handlers/fetch.js +1 -2
- package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -1
- package/dist/esm/src/endpoint/handlers/generic.d.ts +10 -7
- package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -1
- package/dist/esm/src/endpoint/handlers/generic.js +77 -55
- package/dist/esm/src/endpoint/handlers/generic.js.map +1 -1
- package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -1
- package/dist/esm/src/endpoint/handlers/lambda.js +33 -16
- package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -1
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts +2 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -1
- package/dist/esm/src/endpoint/lambda_endpoint.js +6 -8
- package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -1
- package/dist/esm/src/endpoint/node_endpoint.d.ts +2 -0
- package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -1
- package/dist/esm/src/endpoint/node_endpoint.js +31 -20
- package/dist/esm/src/endpoint/node_endpoint.js.map +1 -1
- package/dist/esm/src/endpoint.d.ts +25 -2
- package/dist/esm/src/endpoint.d.ts.map +1 -1
- package/dist/esm/src/fetch.d.ts +2 -1
- package/dist/esm/src/fetch.d.ts.map +1 -1
- package/dist/esm/src/fetch.js +4 -2
- package/dist/esm/src/fetch.js.map +1 -1
- package/dist/esm/src/generated/version.d.ts +1 -1
- package/dist/esm/src/generated/version.js +1 -1
- package/dist/esm/src/invocation.d.ts +1 -1
- package/dist/esm/src/invocation.d.ts.map +1 -1
- package/dist/esm/src/invocation.js.map +1 -1
- package/dist/esm/src/io/decoder.d.ts +2 -2
- package/dist/esm/src/io/decoder.d.ts.map +1 -1
- package/dist/esm/src/io/decoder.js +7 -8
- package/dist/esm/src/io/decoder.js.map +1 -1
- package/dist/esm/src/io/encoder.d.ts +0 -3
- package/dist/esm/src/io/encoder.d.ts.map +1 -1
- package/dist/esm/src/io/encoder.js +0 -13
- package/dist/esm/src/io/encoder.js.map +1 -1
- package/dist/esm/src/logger.d.ts +21 -13
- package/dist/esm/src/logger.d.ts.map +1 -1
- package/dist/esm/src/logger.js +53 -55
- package/dist/esm/src/logger.js.map +1 -1
- package/dist/esm/src/state_machine.d.ts +3 -5
- package/dist/esm/src/state_machine.d.ts.map +1 -1
- package/dist/esm/src/state_machine.js +8 -16
- package/dist/esm/src/state_machine.js.map +1 -1
- package/dist/esm/src/types/rpc.d.ts +11 -11
- package/dist/esm/src/types/rpc.d.ts.map +1 -1
- package/dist/esm/src/types/rpc.js +3 -3
- package/dist/esm/src/types/rpc.js.map +1 -1
- package/dist/esm/src/user_agent.d.ts +1 -1
- package/dist/esm/src/utils/message_logger.d.ts +2 -2
- package/dist/esm/src/utils/message_logger.d.ts.map +1 -1
- package/dist/esm/src/utils/message_logger.js +4 -4
- package/dist/esm/src/utils/message_logger.js.map +1 -1
- package/dist/esm/src/utils/streams.d.ts +4 -0
- package/dist/esm/src/utils/streams.d.ts.map +1 -0
- package/dist/esm/src/utils/streams.js +20 -0
- package/dist/esm/src/utils/streams.js.map +1 -0
- package/dist/esm/test/awakeable.test.d.ts +2 -0
- package/dist/esm/test/awakeable.test.d.ts.map +1 -0
- package/dist/esm/test/awakeable.test.js +139 -0
- package/dist/esm/test/awakeable.test.js.map +1 -0
- package/dist/esm/test/complete_awakeable.test.d.ts +2 -0
- package/dist/esm/test/complete_awakeable.test.d.ts.map +1 -0
- package/dist/esm/test/complete_awakeable.test.js +121 -0
- package/dist/esm/test/complete_awakeable.test.js.map +1 -0
- package/dist/esm/test/eager_state.test.d.ts +2 -0
- package/dist/esm/test/eager_state.test.d.ts.map +1 -0
- package/dist/esm/test/eager_state.test.js +278 -0
- package/dist/esm/test/eager_state.test.js.map +1 -0
- package/dist/esm/test/get_and_set_state.test.d.ts +2 -0
- package/dist/esm/test/get_and_set_state.test.d.ts.map +1 -0
- package/dist/esm/test/get_and_set_state.test.js +231 -0
- package/dist/esm/test/get_and_set_state.test.js.map +1 -0
- package/dist/esm/test/get_state.test.d.ts +2 -0
- package/dist/esm/test/get_state.test.d.ts.map +1 -0
- package/dist/esm/test/get_state.test.js +331 -0
- package/dist/esm/test/get_state.test.js.map +1 -0
- package/dist/esm/test/lambda.test.d.ts +2 -0
- package/dist/esm/test/lambda.test.d.ts.map +1 -0
- package/dist/esm/test/lambda.test.js +221 -0
- package/dist/esm/test/lambda.test.js.map +1 -0
- package/dist/esm/test/message_coders.test.d.ts +2 -0
- package/dist/esm/test/message_coders.test.d.ts.map +1 -0
- package/dist/esm/test/message_coders.test.js +35 -0
- package/dist/esm/test/message_coders.test.js.map +1 -0
- package/dist/esm/test/promise_combinator_tracker.test.d.ts +2 -0
- package/dist/esm/test/promise_combinator_tracker.test.d.ts.map +1 -0
- package/dist/esm/test/promise_combinator_tracker.test.js +154 -0
- package/dist/esm/test/promise_combinator_tracker.test.js.map +1 -0
- package/dist/esm/test/promise_combinators.test.d.ts +2 -0
- package/dist/esm/test/promise_combinators.test.d.ts.map +1 -0
- package/dist/esm/test/promise_combinators.test.js +431 -0
- package/dist/esm/test/promise_combinators.test.js.map +1 -0
- package/dist/esm/test/promises.test.d.ts +2 -0
- package/dist/esm/test/promises.test.d.ts.map +1 -0
- package/dist/esm/test/promises.test.js +30 -0
- package/dist/esm/test/promises.test.js.map +1 -0
- package/dist/esm/test/protocol_stream.test.d.ts +2 -0
- package/dist/esm/test/protocol_stream.test.d.ts.map +1 -0
- package/dist/esm/test/protocol_stream.test.js +218 -0
- package/dist/esm/test/protocol_stream.test.js.map +1 -0
- package/dist/esm/test/protoutils.d.ts +44 -0
- package/dist/esm/test/protoutils.d.ts.map +1 -0
- package/dist/esm/test/protoutils.js +326 -0
- package/dist/esm/test/protoutils.js.map +1 -0
- package/dist/esm/test/service_bind.test.d.ts +2 -0
- package/dist/esm/test/service_bind.test.d.ts.map +1 -0
- package/dist/esm/test/service_bind.test.js +73 -0
- package/dist/esm/test/service_bind.test.js.map +1 -0
- package/dist/esm/test/side_effect.test.d.ts +2 -0
- package/dist/esm/test/side_effect.test.d.ts.map +1 -0
- package/dist/esm/test/side_effect.test.js +131 -0
- package/dist/esm/test/side_effect.test.js.map +1 -0
- package/dist/esm/test/sleep.test.d.ts +2 -0
- package/dist/esm/test/sleep.test.d.ts.map +1 -0
- package/dist/esm/test/sleep.test.js +222 -0
- package/dist/esm/test/sleep.test.js.map +1 -0
- package/dist/esm/test/state_keys.test.d.ts +2 -0
- package/dist/esm/test/state_keys.test.d.ts.map +1 -0
- package/dist/esm/test/state_keys.test.js +90 -0
- package/dist/esm/test/state_keys.test.js.map +1 -0
- package/dist/esm/test/state_machine.test.d.ts +2 -0
- package/dist/esm/test/state_machine.test.d.ts.map +1 -0
- package/dist/esm/test/state_machine.test.js +40 -0
- package/dist/esm/test/state_machine.test.js.map +1 -0
- package/dist/esm/test/testdriver.d.ts +37 -0
- package/dist/esm/test/testdriver.d.ts.map +1 -0
- package/dist/esm/test/testdriver.js +170 -0
- package/dist/esm/test/testdriver.js.map +1 -0
- package/dist/esm/test/utils.test.d.ts +2 -0
- package/dist/esm/test/utils.test.d.ts.map +1 -0
- package/dist/esm/test/utils.test.js +102 -0
- package/dist/esm/test/utils.test.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/cjs/src/connection/buffered_connection.d.ts +0 -14
- package/dist/cjs/src/connection/buffered_connection.d.ts.map +0 -1
- package/dist/cjs/src/connection/buffered_connection.js +0 -44
- package/dist/cjs/src/connection/buffered_connection.js.map +0 -1
- package/dist/cjs/src/connection/http_connection.d.ts +0 -77
- package/dist/cjs/src/connection/http_connection.d.ts.map +0 -1
- package/dist/cjs/src/connection/http_connection.js +0 -208
- package/dist/cjs/src/connection/http_connection.js.map +0 -1
- package/dist/cjs/src/connection/lambda_connection.d.ts +0 -17
- package/dist/cjs/src/connection/lambda_connection.d.ts.map +0 -1
- package/dist/cjs/src/connection/lambda_connection.js +0 -64
- package/dist/cjs/src/connection/lambda_connection.js.map +0 -1
- package/dist/cjs/src/endpoint/handlers/node.d.ts +0 -11
- package/dist/cjs/src/endpoint/handlers/node.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/handlers/node.js +0 -188
- package/dist/cjs/src/endpoint/handlers/node.js.map +0 -1
- package/dist/esm/src/connection/buffered_connection.d.ts +0 -14
- package/dist/esm/src/connection/buffered_connection.d.ts.map +0 -1
- package/dist/esm/src/connection/buffered_connection.js +0 -40
- package/dist/esm/src/connection/buffered_connection.js.map +0 -1
- package/dist/esm/src/connection/http_connection.d.ts +0 -77
- package/dist/esm/src/connection/http_connection.d.ts.map +0 -1
- package/dist/esm/src/connection/http_connection.js +0 -204
- package/dist/esm/src/connection/http_connection.js.map +0 -1
- package/dist/esm/src/connection/lambda_connection.d.ts +0 -17
- package/dist/esm/src/connection/lambda_connection.d.ts.map +0 -1
- package/dist/esm/src/connection/lambda_connection.js +0 -60
- package/dist/esm/src/connection/lambda_connection.js.map +0 -1
- package/dist/esm/src/endpoint/handlers/node.d.ts +0 -11
- package/dist/esm/src/endpoint/handlers/node.d.ts.map +0 -1
- package/dist/esm/src/endpoint/handlers/node.js +0 -181
- package/dist/esm/src/endpoint/handlers/node.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint_builder.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOxD,OAAO,KAAK,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint_builder.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":";AAcA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOxD,OAAO,KAAK,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAEL,KAAK,MAAM,EAGZ,MAAM,cAAc,CAAC;AAoBtB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IACvD,MAAM,EAAE,MAAM,CAAiB;IAEtC;;;;OAIG;IACI,IAAI,UAAuD;IAElE,OAAO,CAAC,OAAO,CAAC,CAAW;IAE3B,IAAW,MAAM,IAAI,QAAQ,GAAG,SAAS,CAExC;IAEM,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D,YAAY,CAAC,SAAS,EAAE,SAAS;IAIjC,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;IA4BvB,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAWhC,SAAS,CAAC,SAAS,EAAE,MAAM;IAMlC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ;IAa1E,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,2BAA2B;CAkBpC"}
|
|
@@ -14,6 +14,7 @@ exports.EndpointBuilder = void 0;
|
|
|
14
14
|
const rpc_js_1 = require("../types/rpc.js");
|
|
15
15
|
const components_js_1 = require("../types/components.js");
|
|
16
16
|
const v1_js_1 = require("./request_signing/v1.js");
|
|
17
|
+
const logger_js_1 = require("../logger.js");
|
|
17
18
|
function isServiceDefinition(m) {
|
|
18
19
|
return m && m.service !== undefined;
|
|
19
20
|
}
|
|
@@ -25,6 +26,13 @@ function isWorkflowDefinition(m) {
|
|
|
25
26
|
}
|
|
26
27
|
class EndpointBuilder {
|
|
27
28
|
services = new Map();
|
|
29
|
+
logger = logger_js_1.defaultLogger;
|
|
30
|
+
/**
|
|
31
|
+
* This is a simple console without contextual info.
|
|
32
|
+
*
|
|
33
|
+
* This should be used only in cases where no contextual info is available.
|
|
34
|
+
*/
|
|
35
|
+
rlog = (0, logger_js_1.createRestateConsole)(this.logger, logger_js_1.LogSource.SYSTEM);
|
|
28
36
|
_keySet;
|
|
29
37
|
get keySet() {
|
|
30
38
|
return this._keySet;
|
|
@@ -70,6 +78,11 @@ class EndpointBuilder {
|
|
|
70
78
|
(0, v1_js_1.parseKeySetV1)(keys).forEach((buffer, key) => this._keySet?.set(key, buffer));
|
|
71
79
|
return this;
|
|
72
80
|
}
|
|
81
|
+
setLogger(newLogger) {
|
|
82
|
+
this.logger = newLogger;
|
|
83
|
+
this.rlog = (0, logger_js_1.createRestateConsole)(this.logger, logger_js_1.LogSource.SYSTEM);
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
73
86
|
computeDiscovery(protocolMode) {
|
|
74
87
|
const services = [...this.services.values()].map((c) => c.discovery());
|
|
75
88
|
const endpoint = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint_builder.js","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAWH,4CAAiD;AAEjD,0DAIgC;AAIhC,mDAAwD;
|
|
1
|
+
{"version":3,"file":"endpoint_builder.js","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,14 @@ import type { ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } f
|
|
|
3
3
|
import type { Component } from "../types/components.js";
|
|
4
4
|
import type { KeySetV1 } from "./request_signing/v1.js";
|
|
5
5
|
import type { RestateEndpointBase, ServiceBundle } from "../endpoint.js";
|
|
6
|
+
import { ProtocolMode } from "../types/discovery.js";
|
|
7
|
+
import type { Logger } from "../logger.js";
|
|
6
8
|
/**
|
|
7
9
|
* Generic Fetch encapsulates all the Restate services served by this endpoint.
|
|
8
10
|
*
|
|
9
11
|
*
|
|
10
12
|
* @example
|
|
11
|
-
* A typical
|
|
13
|
+
* A typical request-response handler would look like this:
|
|
12
14
|
* ```
|
|
13
15
|
* import * as restate from "@restatedev/restate-sdk/fetch";
|
|
14
16
|
*
|
|
@@ -16,13 +18,26 @@ import type { RestateEndpointBase, ServiceBundle } from "../endpoint.js";
|
|
|
16
18
|
* .endpoint()
|
|
17
19
|
* .bind(myService)
|
|
18
20
|
* .handler();
|
|
21
|
+
* @example
|
|
22
|
+
* A typical bidirectional handler (works with http2 and some http1.1 servers) would look like this:
|
|
23
|
+
* ```
|
|
24
|
+
* import * as restate from "@restatedev/restate-sdk/fetch";
|
|
25
|
+
*
|
|
26
|
+
* export default restate
|
|
27
|
+
* .endpoint()
|
|
28
|
+
* .bidirectional()
|
|
29
|
+
* .bind(myService)
|
|
30
|
+
* .handler();
|
|
19
31
|
*/
|
|
20
32
|
export interface FetchEndpoint extends RestateEndpointBase<FetchEndpoint> {
|
|
21
33
|
handler(): {
|
|
22
34
|
fetch: (request: Request) => Promise<Response>;
|
|
23
35
|
};
|
|
36
|
+
bidirectional(set?: boolean): FetchEndpoint;
|
|
24
37
|
}
|
|
25
38
|
export declare class FetchEndpointImpl implements FetchEndpoint {
|
|
39
|
+
private protocolMode;
|
|
40
|
+
constructor(protocolMode: ProtocolMode);
|
|
26
41
|
private builder;
|
|
27
42
|
get keySet(): KeySetV1 | undefined;
|
|
28
43
|
componentByName(componentName: string): Component | undefined;
|
|
@@ -30,6 +45,8 @@ export declare class FetchEndpointImpl implements FetchEndpoint {
|
|
|
30
45
|
bindBundle(services: ServiceBundle): FetchEndpoint;
|
|
31
46
|
bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): FetchEndpoint;
|
|
32
47
|
withIdentityV1(...keys: string[]): FetchEndpoint;
|
|
48
|
+
setLogger(newLogger: Logger): FetchEndpoint;
|
|
49
|
+
bidirectional(set?: boolean): FetchEndpoint;
|
|
33
50
|
handler(): {
|
|
34
51
|
fetch: (request: Request) => Promise<Response>;
|
|
35
52
|
};
|
|
@@ -1 +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;
|
|
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;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;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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;IAC9D,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CAC7C;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACzC,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAC9C,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;IAKhD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAK3C,aAAa,CAAC,GAAG,GAAE,OAAc,GAAG,aAAa;IAOxD,OAAO,IAAI;QACT,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;KAChD;CAIF"}
|
|
@@ -14,7 +14,12 @@ exports.FetchEndpointImpl = void 0;
|
|
|
14
14
|
const endpoint_builder_js_1 = require("./endpoint_builder.js");
|
|
15
15
|
const generic_js_1 = require("./handlers/generic.js");
|
|
16
16
|
const fetch_js_1 = require("./handlers/fetch.js");
|
|
17
|
+
const discovery_js_1 = require("../types/discovery.js");
|
|
17
18
|
class FetchEndpointImpl {
|
|
19
|
+
protocolMode;
|
|
20
|
+
constructor(protocolMode) {
|
|
21
|
+
this.protocolMode = protocolMode;
|
|
22
|
+
}
|
|
18
23
|
builder = new endpoint_builder_js_1.EndpointBuilder();
|
|
19
24
|
get keySet() {
|
|
20
25
|
return this.builder.keySet;
|
|
@@ -37,8 +42,18 @@ class FetchEndpointImpl {
|
|
|
37
42
|
this.builder.withIdentityV1(...keys);
|
|
38
43
|
return this;
|
|
39
44
|
}
|
|
45
|
+
setLogger(newLogger) {
|
|
46
|
+
this.builder.setLogger(newLogger);
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
bidirectional(set = true) {
|
|
50
|
+
this.protocolMode = set
|
|
51
|
+
? discovery_js_1.ProtocolMode.BIDI_STREAM
|
|
52
|
+
: discovery_js_1.ProtocolMode.REQUEST_RESPONSE;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
40
55
|
handler() {
|
|
41
|
-
const genericHandler = new generic_js_1.GenericHandler(this.builder);
|
|
56
|
+
const genericHandler = new generic_js_1.GenericHandler(this.builder, this.protocolMode);
|
|
42
57
|
return (0, fetch_js_1.fetcher)(genericHandler);
|
|
43
58
|
}
|
|
44
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;
|
|
1
|
+
{"version":3,"file":"fetch_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AASH,+DAAwD;AAMxD,sDAAuD;AACvD,kDAA8C;AAC9C,wDAAqD;AAgCrD,MAAa,iBAAiB;IACR;IAApB,YAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAC1C,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;IAEM,SAAS,CAAC,SAAiB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,aAAa,CAAC,MAAe,IAAI;QACtC,IAAI,CAAC,YAAY,GAAG,GAAG;YACrB,CAAC,CAAC,2BAAY,CAAC,WAAW;YAC1B,CAAC,CAAC,2BAAY,CAAC,gBAAgB,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QAGL,MAAM,cAAc,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3E,OAAO,IAAA,kBAAO,EAAC,cAAc,CAAC,CAAC;IACjC,CAAC;CACF;AAtDD,8CAsDC"}
|
|
@@ -1 +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;
|
|
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;EAkBnD"}
|
|
@@ -15,12 +15,11 @@ function fetcher(handler) {
|
|
|
15
15
|
return {
|
|
16
16
|
fetch: async (event) => {
|
|
17
17
|
const url = event.url;
|
|
18
|
-
const body = new Uint8Array(await event.arrayBuffer());
|
|
19
18
|
const headers = Object.fromEntries(event.headers.entries());
|
|
20
19
|
const request = {
|
|
21
20
|
url,
|
|
22
21
|
headers,
|
|
23
|
-
body,
|
|
22
|
+
body: event.body,
|
|
24
23
|
};
|
|
25
24
|
const resp = await handler.handle(request);
|
|
26
25
|
return new Response(resp.body, {
|
|
@@ -1 +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,
|
|
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,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAmB;gBAC9B,GAAG;gBACH,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,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;AApBD,0BAoBC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { ProtocolMode } from "../../types/discovery.js";
|
|
1
3
|
import type { EndpointBuilder } from "../endpoint_builder.js";
|
|
4
|
+
import { type ReadableStream } from "node:stream/web";
|
|
2
5
|
export interface Headers {
|
|
3
6
|
[name: string]: string | string[] | undefined;
|
|
4
7
|
}
|
|
@@ -11,21 +14,19 @@ export interface AdditionalContext {
|
|
|
11
14
|
export interface RestateRequest {
|
|
12
15
|
readonly url: string;
|
|
13
16
|
readonly headers: Headers;
|
|
14
|
-
readonly body: Uint8Array;
|
|
17
|
+
readonly body: ReadableStream<Uint8Array> | null;
|
|
15
18
|
}
|
|
16
19
|
export interface RestateResponse {
|
|
17
20
|
readonly headers: ResponseHeaders;
|
|
18
21
|
readonly statusCode: number;
|
|
19
|
-
readonly body: Uint8Array
|
|
22
|
+
readonly body: ReadableStream<Uint8Array>;
|
|
20
23
|
}
|
|
21
24
|
export interface RestateHandler {
|
|
22
25
|
handle(request: RestateRequest, context?: AdditionalContext): Promise<RestateResponse>;
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* This is an internal API to support 'fetch' like handlers.
|
|
26
|
-
*
|
|
27
|
-
* which are suitable for platforms like AWS Lambda, Cloudflare works,
|
|
28
|
-
* and runtimes that only support HTTP/1.1 like Bun.
|
|
29
|
+
* It supports both request-reply mode and bidirectional streaming mode.
|
|
29
30
|
*
|
|
30
31
|
* An individual handler will have to convert the shape of the incoming request
|
|
31
32
|
* to a RestateRequest, and then pass it to this handler, and eventually convert back
|
|
@@ -33,9 +34,11 @@ export interface RestateHandler {
|
|
|
33
34
|
* Different runtimes have slightly different shapes of the incoming request, and responses.
|
|
34
35
|
*/
|
|
35
36
|
export declare class GenericHandler implements RestateHandler {
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
readonly endpoint: EndpointBuilder;
|
|
38
|
+
private readonly protocolMode;
|
|
39
|
+
constructor(endpoint: EndpointBuilder, protocolMode: ProtocolMode);
|
|
38
40
|
handle(request: RestateRequest, context?: AdditionalContext): Promise<RestateResponse>;
|
|
41
|
+
private _handle;
|
|
39
42
|
private validateConnectionSignature;
|
|
40
43
|
private handleInvoke;
|
|
41
44
|
private handleDiscovery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":";AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AAIzB,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,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CACJ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,cAAc;IAEjD,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADpB,QAAQ,EAAE,eAAe,EACjB,YAAY,EAAE,YAAY;IAgBhC,MAAM,CACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC;YAYb,OAAO;YA4DP,2BAA2B;YAqC3B,YAAY;IA+D1B,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -11,24 +11,20 @@
|
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
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
14
|
const invocation_js_1 = require("../../invocation.js");
|
|
17
|
-
const decoder_js_1 = require("../../io/decoder.js");
|
|
18
15
|
const state_machine_js_1 = require("../../state_machine.js");
|
|
19
16
|
const errors_js_1 = require("../../types/errors.js");
|
|
20
17
|
const protocol_js_1 = require("../../types/protocol.js");
|
|
21
|
-
const discovery_js_1 = require("../../types/discovery.js");
|
|
22
18
|
const components_js_1 = require("../../types/components.js");
|
|
23
19
|
const validate_js_1 = require("../request_signing/validate.js");
|
|
24
20
|
const user_agent_js_1 = require("../../user_agent.js");
|
|
25
|
-
const node_buffer_1 = require("node:buffer");
|
|
26
21
|
const discovery_pb_js_1 = require("../../generated/proto/discovery_pb.js");
|
|
22
|
+
const web_1 = require("node:stream/web");
|
|
23
|
+
const connection_js_1 = require("../../connection/connection.js");
|
|
24
|
+
const streams_js_1 = require("../../utils/streams.js");
|
|
27
25
|
/**
|
|
28
26
|
* This is an internal API to support 'fetch' like handlers.
|
|
29
|
-
*
|
|
30
|
-
* which are suitable for platforms like AWS Lambda, Cloudflare works,
|
|
31
|
-
* and runtimes that only support HTTP/1.1 like Bun.
|
|
27
|
+
* It supports both request-reply mode and bidirectional streaming mode.
|
|
32
28
|
*
|
|
33
29
|
* An individual handler will have to convert the shape of the incoming request
|
|
34
30
|
* to a RestateRequest, and then pass it to this handler, and eventually convert back
|
|
@@ -37,16 +33,29 @@ const discovery_pb_js_1 = require("../../generated/proto/discovery_pb.js");
|
|
|
37
33
|
*/
|
|
38
34
|
class GenericHandler {
|
|
39
35
|
endpoint;
|
|
40
|
-
|
|
36
|
+
protocolMode;
|
|
37
|
+
constructor(endpoint, protocolMode) {
|
|
41
38
|
this.endpoint = endpoint;
|
|
39
|
+
this.protocolMode = protocolMode;
|
|
42
40
|
if (!this.endpoint.keySet) {
|
|
43
|
-
|
|
41
|
+
this.endpoint.rlog.warn(`Accepting requests without validating request signatures; handler access must be restricted`);
|
|
44
42
|
}
|
|
45
43
|
else {
|
|
46
|
-
|
|
44
|
+
this.endpoint.rlog.info(`Validating requests using signing keys [${Array.from(this.endpoint.keySet.keys())}]`);
|
|
47
45
|
}
|
|
48
46
|
}
|
|
47
|
+
// handle does not throw.
|
|
49
48
|
async handle(request, context) {
|
|
49
|
+
try {
|
|
50
|
+
return await this._handle(request, context);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
const error = (0, errors_js_1.ensureError)(e);
|
|
54
|
+
this.endpoint.rlog.error("Error while handling invocation: " + (error.stack ?? error.message));
|
|
55
|
+
return this.toErrorResponse(500, error.message);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async _handle(request, context) {
|
|
50
59
|
const path = request.url;
|
|
51
60
|
const error = await this.validateConnectionSignature(path, request.headers);
|
|
52
61
|
if (error !== null) {
|
|
@@ -55,7 +64,7 @@ class GenericHandler {
|
|
|
55
64
|
const parsed = (0, components_js_1.parseUrlComponents)(path);
|
|
56
65
|
if (!parsed) {
|
|
57
66
|
const msg = `Invalid path: path doesn't end in /invoke/SvcName/handlerName and also not in /discover: ${path}`;
|
|
58
|
-
|
|
67
|
+
this.endpoint.rlog.trace(msg);
|
|
59
68
|
return this.toErrorResponse(404, msg);
|
|
60
69
|
}
|
|
61
70
|
if (parsed === "discovery") {
|
|
@@ -64,30 +73,30 @@ class GenericHandler {
|
|
|
64
73
|
const serviceProtocolVersionString = request.headers["content-type"];
|
|
65
74
|
if (typeof serviceProtocolVersionString !== "string") {
|
|
66
75
|
const errorMessage = "Missing content-type header";
|
|
67
|
-
|
|
76
|
+
this.endpoint.rlog.warn(errorMessage);
|
|
68
77
|
return this.toErrorResponse(415, errorMessage);
|
|
69
78
|
}
|
|
70
79
|
const serviceProtocolVersion = (0, protocol_js_1.parseServiceProtocolVersion)(serviceProtocolVersionString);
|
|
71
80
|
if (!(0, protocol_js_1.isServiceProtocolVersionSupported)(serviceProtocolVersion)) {
|
|
72
81
|
const errorMessage = `Unsupported service protocol version '${serviceProtocolVersionString}'`;
|
|
73
|
-
|
|
82
|
+
this.endpoint.rlog.warn(errorMessage);
|
|
74
83
|
return this.toErrorResponse(415, errorMessage);
|
|
75
84
|
}
|
|
76
85
|
const method = this.endpoint.componentByName(parsed.componentName);
|
|
77
86
|
if (!method) {
|
|
78
87
|
const msg = `No service found for URL: ${JSON.stringify(parsed)}`;
|
|
79
|
-
|
|
88
|
+
this.endpoint.rlog.error(msg);
|
|
80
89
|
return this.toErrorResponse(404, msg);
|
|
81
90
|
}
|
|
82
91
|
const handler = method?.handlerMatching(parsed);
|
|
83
92
|
if (!handler) {
|
|
84
93
|
const msg = `No service found for URL: ${JSON.stringify(parsed)}`;
|
|
85
|
-
|
|
94
|
+
this.endpoint.rlog.error(msg);
|
|
86
95
|
return this.toErrorResponse(404, msg);
|
|
87
96
|
}
|
|
88
97
|
if (!request.body) {
|
|
89
98
|
const msg = "The incoming message body was null";
|
|
90
|
-
|
|
99
|
+
this.endpoint.rlog.error(msg);
|
|
91
100
|
return this.toErrorResponse(400, msg);
|
|
92
101
|
}
|
|
93
102
|
return this.handleInvoke(handler, request.body, request.headers, serviceProtocolVersion, context ?? {});
|
|
@@ -100,7 +109,7 @@ class GenericHandler {
|
|
|
100
109
|
try {
|
|
101
110
|
const validateResponse = await (0, validate_js_1.validateRequestSignature)(this.endpoint.keySet, path, headers);
|
|
102
111
|
if (!validateResponse.valid) {
|
|
103
|
-
|
|
112
|
+
this.endpoint.rlog.error(`Rejecting request as its JWT did not validate: ${
|
|
104
113
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
105
114
|
validateResponse.error}`);
|
|
106
115
|
return this.toErrorResponse(401, "Unauthorized");
|
|
@@ -111,59 +120,72 @@ class GenericHandler {
|
|
|
111
120
|
}
|
|
112
121
|
catch (e) {
|
|
113
122
|
const error = (0, errors_js_1.ensureError)(e);
|
|
114
|
-
|
|
123
|
+
this.endpoint.rlog.error("Error while attempting to validate request signature: " +
|
|
115
124
|
(error.stack ?? error.message));
|
|
116
125
|
return this.toErrorResponse(401, "Unauthorized");
|
|
117
126
|
}
|
|
118
127
|
}
|
|
119
128
|
async handleInvoke(handler, body, headers, serviceProtocolVersion, context) {
|
|
129
|
+
let responseController;
|
|
130
|
+
const responseBody = new web_1.TransformStream({
|
|
131
|
+
start: (ctrl) => {
|
|
132
|
+
responseController =
|
|
133
|
+
ctrl;
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
const connection = connection_js_1.RestateConnection.from(this.endpoint.rlog, headers, {
|
|
137
|
+
readable: body,
|
|
138
|
+
writable: responseBody.writable,
|
|
139
|
+
});
|
|
140
|
+
// step 1: collect all journal events
|
|
141
|
+
const journalBuilder = new invocation_js_1.InvocationBuilder(handler);
|
|
142
|
+
connection.pipeToConsumer(journalBuilder);
|
|
120
143
|
try {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
144
|
+
await journalBuilder.completion();
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
// ensure GC friendliness, also in case of errors
|
|
148
|
+
connection.removeCurrentConsumer();
|
|
149
|
+
}
|
|
150
|
+
// step 2: create the state machine
|
|
151
|
+
const invocation = journalBuilder.build();
|
|
152
|
+
const stateMachine = new state_machine_js_1.StateMachine(connection, invocation, handler.kind(), this.endpoint.logger, invocation.inferLoggerContext(context));
|
|
153
|
+
connection.pipeToConsumer(stateMachine);
|
|
154
|
+
// step 3: invoke the function
|
|
155
|
+
// This call would propagate errors in the state machine logic, but not errors
|
|
156
|
+
// in the application function code. Ending a function with an error as well
|
|
157
|
+
// as failign an invocation and being retried are perfectly valid actions from the
|
|
158
|
+
// SDK's perspective.
|
|
159
|
+
stateMachine
|
|
160
|
+
.invoke()
|
|
161
|
+
.catch((e) => responseController.error(e)) // in bidi case the best we can do is abort the connection
|
|
162
|
+
.finally(() => connection.removeCurrentConsumer());
|
|
163
|
+
return {
|
|
164
|
+
headers: {
|
|
165
|
+
"content-type": (0, protocol_js_1.serviceProtocolVersionToHeaderValue)(serviceProtocolVersion),
|
|
166
|
+
"x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
|
|
167
|
+
},
|
|
168
|
+
statusCode: 200,
|
|
169
|
+
body: responseBody.readable,
|
|
170
|
+
};
|
|
148
171
|
}
|
|
149
172
|
handleDiscovery(acceptVersionsString) {
|
|
150
173
|
if (typeof acceptVersionsString !== "string") {
|
|
151
174
|
const errorMessage = "Missing accept header";
|
|
152
|
-
|
|
175
|
+
this.endpoint.rlog.warn(errorMessage);
|
|
153
176
|
return this.toErrorResponse(415, errorMessage);
|
|
154
177
|
}
|
|
155
178
|
const serviceDiscoveryProtocolVersion = (0, protocol_js_1.selectSupportedServiceDiscoveryProtocolVersion)(acceptVersionsString);
|
|
156
179
|
if (serviceDiscoveryProtocolVersion ===
|
|
157
180
|
discovery_pb_js_1.ServiceDiscoveryProtocolVersion.SERVICE_DISCOVERY_PROTOCOL_VERSION_UNSPECIFIED) {
|
|
158
181
|
const errorMessage = `Unsupported service discovery protocol version '${acceptVersionsString}'`;
|
|
159
|
-
|
|
182
|
+
this.endpoint.rlog.warn(errorMessage);
|
|
160
183
|
return this.toErrorResponse(415, errorMessage);
|
|
161
184
|
}
|
|
162
|
-
const discovery = this.endpoint.computeDiscovery(
|
|
185
|
+
const discovery = this.endpoint.computeDiscovery(this.protocolMode);
|
|
163
186
|
let body;
|
|
164
187
|
if (serviceDiscoveryProtocolVersion === discovery_pb_js_1.ServiceDiscoveryProtocolVersion.V1) {
|
|
165
|
-
|
|
166
|
-
body = node_buffer_1.Buffer.from(discoveryJson);
|
|
188
|
+
body = JSON.stringify(discovery);
|
|
167
189
|
}
|
|
168
190
|
else {
|
|
169
191
|
// should not be reached since we check for compatibility before
|
|
@@ -175,17 +197,17 @@ class GenericHandler {
|
|
|
175
197
|
"x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
|
|
176
198
|
},
|
|
177
199
|
statusCode: 200,
|
|
178
|
-
body,
|
|
200
|
+
body: (0, streams_js_1.OnceStream)(new TextEncoder().encode(body)),
|
|
179
201
|
};
|
|
180
202
|
}
|
|
181
203
|
toErrorResponse(code, message) {
|
|
182
204
|
return {
|
|
183
205
|
headers: {
|
|
184
|
-
"content-type": "
|
|
206
|
+
"content-type": "application/json",
|
|
185
207
|
"x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
|
|
186
208
|
},
|
|
187
209
|
statusCode: code,
|
|
188
|
-
body:
|
|
210
|
+
body: (0, streams_js_1.OnceStream)(new TextEncoder().encode(JSON.stringify({ message }))),
|
|
189
211
|
};
|
|
190
212
|
}
|
|
191
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAMnE,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;CAgEtE"}
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.LambdaHandler = void 0;
|
|
14
14
|
const node_buffer_1 = require("node:buffer");
|
|
15
|
+
const web_1 = require("node:stream/web");
|
|
16
|
+
const streams_js_1 = require("../../utils/streams.js");
|
|
17
|
+
const user_agent_js_1 = require("../../user_agent.js");
|
|
18
|
+
const errors_js_1 = require("../../types/errors.js");
|
|
15
19
|
class LambdaHandler {
|
|
16
20
|
handler;
|
|
17
21
|
constructor(handler) {
|
|
@@ -23,42 +27,55 @@ class LambdaHandler {
|
|
|
23
27
|
//
|
|
24
28
|
const path = "path" in event ? event.path : event.rawPath;
|
|
25
29
|
//
|
|
26
|
-
// Convert the request body to a Uint8Array
|
|
30
|
+
// Convert the request body to a Uint8Array stream
|
|
27
31
|
// Lambda functions receive the body as base64 encoded string
|
|
28
32
|
//
|
|
29
|
-
let
|
|
33
|
+
let body;
|
|
30
34
|
if (!event.body) {
|
|
31
|
-
|
|
35
|
+
body = null;
|
|
32
36
|
}
|
|
33
37
|
else if (event.isBase64Encoded) {
|
|
34
|
-
|
|
38
|
+
body = (0, streams_js_1.OnceStream)(node_buffer_1.Buffer.from(event.body, "base64"));
|
|
35
39
|
}
|
|
36
40
|
else {
|
|
37
|
-
|
|
41
|
+
body = (0, streams_js_1.OnceStream)(new TextEncoder().encode(event.body));
|
|
38
42
|
}
|
|
39
43
|
const request = {
|
|
40
|
-
body
|
|
44
|
+
body,
|
|
41
45
|
headers: event.headers,
|
|
42
46
|
url: path,
|
|
43
47
|
};
|
|
44
48
|
const resp = await this.handler.handle(request, {
|
|
45
49
|
AWSRequestId: context.awsRequestId,
|
|
46
50
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
const chunks = [];
|
|
52
|
+
try {
|
|
53
|
+
await resp.body.pipeTo(new web_1.WritableStream({
|
|
54
|
+
write: (chunk) => {
|
|
55
|
+
chunks.push(chunk);
|
|
56
|
+
},
|
|
57
|
+
}));
|
|
50
58
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
59
|
+
catch (e) {
|
|
60
|
+
// unlike in the streaming case, we can actually catch errors in the response body and form a nicer error
|
|
61
|
+
const error = (0, errors_js_1.ensureError)(e);
|
|
62
|
+
this.handler.endpoint.rlog.error("Error while collecting invocation response: " +
|
|
63
|
+
(error.stack ?? error.message));
|
|
64
|
+
return {
|
|
65
|
+
headers: {
|
|
66
|
+
"content-type": "application/json",
|
|
67
|
+
"x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
|
|
68
|
+
},
|
|
69
|
+
statusCode: 500,
|
|
70
|
+
isBase64Encoded: false,
|
|
71
|
+
body: JSON.stringify({ message: error.message }),
|
|
72
|
+
};
|
|
56
73
|
}
|
|
57
74
|
return {
|
|
58
75
|
headers: resp.headers,
|
|
59
76
|
statusCode: resp.statusCode,
|
|
60
|
-
isBase64Encoded:
|
|
61
|
-
body:
|
|
77
|
+
isBase64Encoded: true,
|
|
78
|
+
body: node_buffer_1.Buffer.concat(chunks).toString("base64"),
|
|
62
79
|
};
|
|
63
80
|
}
|
|
64
81
|
}
|