@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
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023 - 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
|
+
const testdriver_js_1 = require("./testdriver.js");
|
|
14
|
+
const protoutils_js_1 = require("./protoutils.js");
|
|
15
|
+
const protocol_pb_js_1 = require("../src/generated/proto/protocol_pb.js");
|
|
16
|
+
const vitest_1 = require("vitest");
|
|
17
|
+
const INPUT_MESSAGE = (0, protoutils_js_1.inputMessage)((0, protoutils_js_1.greetRequest)("bob"));
|
|
18
|
+
function stateKeys(...keys) {
|
|
19
|
+
return new protocol_pb_js_1.GetStateKeysEntryMessage_StateKeys({
|
|
20
|
+
keys: keys.map((b) => Buffer.from(b)),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
class ListKeys {
|
|
24
|
+
async greet(ctx) {
|
|
25
|
+
return {
|
|
26
|
+
greeting: (await ctx.stateKeys()).join(","),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
(0, vitest_1.describe)("ListKeys", () => {
|
|
31
|
+
(0, vitest_1.it)("with partial state suspends", async () => {
|
|
32
|
+
const result = await new testdriver_js_1.TestDriver(new ListKeys(), [
|
|
33
|
+
(0, protoutils_js_1.startMessage)({
|
|
34
|
+
knownEntries: 1,
|
|
35
|
+
partialState: true,
|
|
36
|
+
state: [(0, protoutils_js_1.keyVal)("A", "1")],
|
|
37
|
+
}),
|
|
38
|
+
INPUT_MESSAGE,
|
|
39
|
+
]).run();
|
|
40
|
+
(0, vitest_1.expect)(result).toStrictEqual([
|
|
41
|
+
(0, protoutils_js_1.getStateKeysMessage)(),
|
|
42
|
+
(0, protoutils_js_1.suspensionMessage)([1]),
|
|
43
|
+
]);
|
|
44
|
+
});
|
|
45
|
+
(0, vitest_1.it)("with partial state", async () => {
|
|
46
|
+
const result = await new testdriver_js_1.TestDriver(new ListKeys(), [
|
|
47
|
+
(0, protoutils_js_1.startMessage)({
|
|
48
|
+
knownEntries: 1,
|
|
49
|
+
partialState: true,
|
|
50
|
+
state: [(0, protoutils_js_1.keyVal)("A", "1")],
|
|
51
|
+
}),
|
|
52
|
+
INPUT_MESSAGE,
|
|
53
|
+
(0, protoutils_js_1.completionMessage)(1, new protocol_pb_js_1.GetStateKeysEntryMessage_StateKeys(stateKeys("B", "C")).toBinary()),
|
|
54
|
+
]).run();
|
|
55
|
+
(0, vitest_1.expect)(result).toStrictEqual([
|
|
56
|
+
(0, protoutils_js_1.getStateKeysMessage)(),
|
|
57
|
+
(0, protoutils_js_1.outputMessage)((0, protoutils_js_1.greetResponse)("B,C")),
|
|
58
|
+
protoutils_js_1.END_MESSAGE,
|
|
59
|
+
]);
|
|
60
|
+
});
|
|
61
|
+
(0, vitest_1.it)("with complete state", async () => {
|
|
62
|
+
const result = await new testdriver_js_1.TestDriver(new ListKeys(), [
|
|
63
|
+
(0, protoutils_js_1.startMessage)({
|
|
64
|
+
knownEntries: 1,
|
|
65
|
+
partialState: false,
|
|
66
|
+
state: [(0, protoutils_js_1.keyVal)("A", "1")],
|
|
67
|
+
}),
|
|
68
|
+
INPUT_MESSAGE,
|
|
69
|
+
]).run();
|
|
70
|
+
(0, vitest_1.expect)(result).toStrictEqual([
|
|
71
|
+
(0, protoutils_js_1.getStateKeysMessage)(["A"]),
|
|
72
|
+
(0, protoutils_js_1.outputMessage)((0, protoutils_js_1.greetResponse)("A")),
|
|
73
|
+
protoutils_js_1.END_MESSAGE,
|
|
74
|
+
]);
|
|
75
|
+
});
|
|
76
|
+
(0, vitest_1.it)("replay", async () => {
|
|
77
|
+
const result = await new testdriver_js_1.TestDriver(new ListKeys(), [
|
|
78
|
+
(0, protoutils_js_1.startMessage)({
|
|
79
|
+
knownEntries: 1,
|
|
80
|
+
partialState: true,
|
|
81
|
+
state: [(0, protoutils_js_1.keyVal)("A", "1")],
|
|
82
|
+
}),
|
|
83
|
+
INPUT_MESSAGE,
|
|
84
|
+
(0, protoutils_js_1.getStateKeysMessage)(["A", "B", "C"]),
|
|
85
|
+
]).run();
|
|
86
|
+
(0, vitest_1.expect)(result).toStrictEqual([
|
|
87
|
+
(0, protoutils_js_1.outputMessage)((0, protoutils_js_1.greetResponse)("A,B,C")),
|
|
88
|
+
protoutils_js_1.END_MESSAGE,
|
|
89
|
+
]);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=state_keys.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state_keys.test.js","sourceRoot":"","sources":["../../../test/state_keys.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state_machine.test.d.ts","sourceRoot":"","sources":["../../../test/state_machine.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
const testdriver_js_1 = require("./testdriver.js");
|
|
14
|
+
const protoutils_js_1 = require("./protoutils.js");
|
|
15
|
+
const vitest_1 = require("vitest");
|
|
16
|
+
class Greeter {
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
18
|
+
async greet() {
|
|
19
|
+
return testdriver_js_1.TestResponse.create({ greeting: `Hello` });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
(0, vitest_1.describe)("Greeter", () => {
|
|
23
|
+
(0, vitest_1.it)("sends message to runtime", async () => {
|
|
24
|
+
const result = await new testdriver_js_1.TestDriver(new Greeter(), [
|
|
25
|
+
(0, protoutils_js_1.startMessage)({ knownEntries: 1, key: "Pete" }),
|
|
26
|
+
(0, protoutils_js_1.inputMessage)((0, protoutils_js_1.greetRequest)("Pete")),
|
|
27
|
+
]).run();
|
|
28
|
+
(0, vitest_1.expect)(result).toStrictEqual([
|
|
29
|
+
(0, protoutils_js_1.outputMessage)((0, protoutils_js_1.greetResponse)("Hello")),
|
|
30
|
+
protoutils_js_1.END_MESSAGE,
|
|
31
|
+
]);
|
|
32
|
+
});
|
|
33
|
+
(0, vitest_1.it)("handles replay of output message", async () => {
|
|
34
|
+
const result = await new testdriver_js_1.TestDriver(new Greeter(), [
|
|
35
|
+
(0, protoutils_js_1.startMessage)({ knownEntries: 2, key: "Pete" }),
|
|
36
|
+
(0, protoutils_js_1.inputMessage)((0, protoutils_js_1.greetRequest)("Pete")),
|
|
37
|
+
(0, protoutils_js_1.outputMessage)((0, protoutils_js_1.greetResponse)("Hello")),
|
|
38
|
+
]).run();
|
|
39
|
+
(0, vitest_1.expect)(result).toStrictEqual([protoutils_js_1.END_MESSAGE]);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=state_machine.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state_machine.test.js","sourceRoot":"","sources":["../../../test/state_machine.test.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAGH,mDAA2D;AAC3D,mDAOyB;AACzB,mCAA8C;AAE9C,MAAM,OAAO;IACX,4DAA4D;IAC5D,KAAK,CAAC,KAAK;QACT,OAAO,4BAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;CACF;AAED,IAAA,iBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAA,WAAE,EAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,0BAAU,CAAC,IAAI,OAAO,EAAE,EAAE;YACjD,IAAA,4BAAY,EAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAC9C,IAAA,4BAAY,EAAC,IAAA,4BAAY,EAAC,MAAM,CAAC,CAAC;SACnC,CAAC,CAAC,GAAG,EAAE,CAAC;QAET,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,IAAA,6BAAa,EAAC,IAAA,6BAAa,EAAC,OAAO,CAAC,CAAC;YACrC,2BAAW;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,0BAAU,CAAC,IAAI,OAAO,EAAE,EAAE;YACjD,IAAA,4BAAY,EAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAC9C,IAAA,4BAAY,EAAC,IAAA,4BAAY,EAAC,MAAM,CAAC,CAAC;YAClC,IAAA,6BAAa,EAAC,IAAA,6BAAa,EAAC,OAAO,CAAC,CAAC;SACtC,CAAC,CAAC,GAAG,EAAE,CAAC;QAET,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,2BAAW,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Message } from "../src/types/types.js";
|
|
2
|
+
import type { ObjectContext } from "../src/context.js";
|
|
3
|
+
import type { ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "../src/public_api.js";
|
|
4
|
+
export type TestRequest = {
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
export type TestResponse = {
|
|
8
|
+
greeting: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const TestResponse: {
|
|
11
|
+
create: (test: TestResponse) => TestResponse;
|
|
12
|
+
};
|
|
13
|
+
export declare const GreeterApi: VirtualObjectDefinition<"greeter", TestGreeter>;
|
|
14
|
+
export interface TestGreeter {
|
|
15
|
+
greet(ctx: ObjectContext, message: TestRequest): Promise<TestResponse>;
|
|
16
|
+
}
|
|
17
|
+
export declare class TestDriver {
|
|
18
|
+
private readonly uut;
|
|
19
|
+
private readonly input;
|
|
20
|
+
constructor(instance: TestGreeter, entries: Message[]);
|
|
21
|
+
run(): Promise<Message[]>;
|
|
22
|
+
}
|
|
23
|
+
interface RunOptions {
|
|
24
|
+
service?: string;
|
|
25
|
+
handler?: string;
|
|
26
|
+
input: Message[];
|
|
27
|
+
}
|
|
28
|
+
export declare class UUT<N extends string, T> {
|
|
29
|
+
private readonly definition;
|
|
30
|
+
private readonly defaultService;
|
|
31
|
+
private readonly defaultHandler;
|
|
32
|
+
constructor(definition: ServiceDefinition<N, T> | VirtualObjectDefinition<N, T> | WorkflowDefinition<N, T>);
|
|
33
|
+
run(options: RunOptions): Promise<Message[]>;
|
|
34
|
+
}
|
|
35
|
+
export declare function testService<N extends string, T>(definition: ServiceDefinition<N, T> | VirtualObjectDefinition<N, T> | WorkflowDefinition<N, T>): UUT<N, T>;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=testdriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testdriver.d.ts","sourceRoot":"","sources":["../../../test/testdriver.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY;mBACR,YAAY,KAAG,YAAY;CAC3C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAEtE,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACxE;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAGtB,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;IAc/C,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAKhC;AAUD,UAAU,UAAU;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,qBAAa,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAMhC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAIrB,UAAU,EACvB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IA4BjB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiH1D;AAGD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7C,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAEX"}
|
|
@@ -0,0 +1,176 @@
|
|
|
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.testService = exports.UUT = exports.TestDriver = exports.GreeterApi = exports.TestResponse = void 0;
|
|
14
|
+
const protocol_js_1 = require("../src/types/protocol.js");
|
|
15
|
+
const types_js_1 = require("../src/types/types.js");
|
|
16
|
+
const state_machine_js_1 = require("../src/state_machine.js");
|
|
17
|
+
const invocation_js_1 = require("../src/invocation.js");
|
|
18
|
+
const public_api_js_1 = require("../src/public_api.js");
|
|
19
|
+
const node_endpoint_js_1 = require("../src/endpoint/node_endpoint.js");
|
|
20
|
+
exports.TestResponse = {
|
|
21
|
+
create: (test) => test,
|
|
22
|
+
};
|
|
23
|
+
exports.GreeterApi = {
|
|
24
|
+
name: "greeter",
|
|
25
|
+
};
|
|
26
|
+
class TestDriver {
|
|
27
|
+
uut;
|
|
28
|
+
input;
|
|
29
|
+
// Deprecated, please use testService below
|
|
30
|
+
constructor(instance, entries) {
|
|
31
|
+
this.uut = testService((0, public_api_js_1.object)({
|
|
32
|
+
name: "greeter",
|
|
33
|
+
handlers: {
|
|
34
|
+
greet: async (ctx, arg) => {
|
|
35
|
+
return instance.greet(ctx, arg);
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
}));
|
|
39
|
+
this.input = entries;
|
|
40
|
+
}
|
|
41
|
+
async run() {
|
|
42
|
+
return await this.uut.run({
|
|
43
|
+
input: this.input,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.TestDriver = TestDriver;
|
|
48
|
+
/**
|
|
49
|
+
* This class' only purpose is to make certain methods accessible in tests.
|
|
50
|
+
* Those methods are otherwise protected, to reduce the public interface and
|
|
51
|
+
* make it simpler for users to understand what methods are relevant for them,
|
|
52
|
+
* and which ones are not.
|
|
53
|
+
*/
|
|
54
|
+
class TestRestateServer extends node_endpoint_js_1.NodeEndpoint {
|
|
55
|
+
}
|
|
56
|
+
class UUT {
|
|
57
|
+
definition;
|
|
58
|
+
defaultService;
|
|
59
|
+
defaultHandler;
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
61
|
+
constructor(definition) {
|
|
62
|
+
this.definition = definition;
|
|
63
|
+
// Infer service name and handler
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
65
|
+
this.defaultService = definition.name;
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
67
|
+
const definitionRecord = definition;
|
|
68
|
+
if (definitionRecord && definitionRecord.service != undefined) {
|
|
69
|
+
this.defaultHandler = Object.keys(definitionRecord.service)[0];
|
|
70
|
+
}
|
|
71
|
+
else if (definitionRecord && definitionRecord.object != undefined) {
|
|
72
|
+
this.defaultHandler = Object.keys(definitionRecord.object)[0];
|
|
73
|
+
}
|
|
74
|
+
else if (definitionRecord && definitionRecord.workflow != undefined) {
|
|
75
|
+
this.defaultHandler = Object.keys(definitionRecord.workflow)[0];
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw new TypeError("supports only a service or a virtual object or a workflow definition");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async run(options) {
|
|
82
|
+
const restateServer = new TestRestateServer();
|
|
83
|
+
restateServer.bind(this.definition);
|
|
84
|
+
// Sanity check on input messages
|
|
85
|
+
if (options.input.length < 2) {
|
|
86
|
+
throw new Error("Less than two runtime messages supplied for test. Need to have at least start message and input message.");
|
|
87
|
+
}
|
|
88
|
+
if (options.input[0].messageType !== protocol_js_1.START_MESSAGE_TYPE) {
|
|
89
|
+
throw new Error("First message has to be start message.");
|
|
90
|
+
}
|
|
91
|
+
// Get the index of where the completion messages start in the entries list
|
|
92
|
+
const firstCompletionIndex = options.input.findIndex((value) => value.messageType === protocol_js_1.COMPLETION_MESSAGE_TYPE ||
|
|
93
|
+
value.messageType === protocol_js_1.ENTRY_ACK_MESSAGE_TYPE);
|
|
94
|
+
// The last message of the replay is the one right before the first completion
|
|
95
|
+
const endOfReplay = firstCompletionIndex !== -1 ? firstCompletionIndex : options.input.length;
|
|
96
|
+
// --- Patch StartMessage with the right number of entries
|
|
97
|
+
const startMsg = options.input[0];
|
|
98
|
+
const startEntry = startMsg.message;
|
|
99
|
+
options.input[0] = new types_js_1.Message(startMsg.messageType, new protocol_js_1.StartMessage({
|
|
100
|
+
id: startEntry.id,
|
|
101
|
+
debugId: startEntry.debugId,
|
|
102
|
+
knownEntries: endOfReplay - 1,
|
|
103
|
+
stateMap: startEntry.stateMap,
|
|
104
|
+
partialState: startEntry.partialState,
|
|
105
|
+
key: startEntry.key,
|
|
106
|
+
}), startMsg.completed, startMsg.requiresAck);
|
|
107
|
+
// TODO the production code here is doing some bad assumption,
|
|
108
|
+
// by assuming that during the initial replay phase no CompletionMessages are sent.
|
|
109
|
+
// Although this is currently correct, it is correct only due to how the runtime is implemented,
|
|
110
|
+
// and might not be generally true if we change the runtime.
|
|
111
|
+
// This should probably be fixed in the production code, and subsequently the test should
|
|
112
|
+
// stop splitting the input messages here.
|
|
113
|
+
const replayMessages = options.input.slice(0, endOfReplay);
|
|
114
|
+
const completionMessages = options.input.slice(endOfReplay);
|
|
115
|
+
if (replayMessages.filter((value) => value.messageType === protocol_js_1.COMPLETION_MESSAGE_TYPE ||
|
|
116
|
+
value.messageType === protocol_js_1.ENTRY_ACK_MESSAGE_TYPE).length > 0) {
|
|
117
|
+
throw new Error("You cannot interleave replay messages with completion or ack messages. First define the replay messages, then the completion messages.");
|
|
118
|
+
}
|
|
119
|
+
if (completionMessages.filter((value) => value.messageType !== protocol_js_1.COMPLETION_MESSAGE_TYPE &&
|
|
120
|
+
value.messageType !== protocol_js_1.ENTRY_ACK_MESSAGE_TYPE).length > 0) {
|
|
121
|
+
throw new Error("You cannot interleave replay messages with completion or ack messages. First define the replay messages, then the completion messages.");
|
|
122
|
+
}
|
|
123
|
+
const method = restateServer
|
|
124
|
+
.componentByName(options.service ? options.service : this.defaultService)
|
|
125
|
+
?.handlerMatching({
|
|
126
|
+
componentName: options.service ? options.service : this.defaultService,
|
|
127
|
+
handlerName: options.handler ? options.handler : this.defaultHandler,
|
|
128
|
+
});
|
|
129
|
+
if (!method) {
|
|
130
|
+
throw new Error("Can't find the handler to execute");
|
|
131
|
+
}
|
|
132
|
+
const invocationBuilder = new invocation_js_1.InvocationBuilder(method);
|
|
133
|
+
replayMessages.forEach((el) => invocationBuilder.handleMessage(el));
|
|
134
|
+
const invocation = invocationBuilder.build();
|
|
135
|
+
const testConnection = new TestConnection();
|
|
136
|
+
const stateMachine = new state_machine_js_1.StateMachine(testConnection, invocation, method.kind(),
|
|
137
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
138
|
+
restateServer.builder.logger, invocation.inferLoggerContext());
|
|
139
|
+
const completed = stateMachine.invoke();
|
|
140
|
+
// we send the completions here. Because we don't await the messages that we send the completions for,
|
|
141
|
+
// we enqueue those completions in the event loop, so they get processed when everything else is done.
|
|
142
|
+
// This is highly fragile!!!
|
|
143
|
+
completionMessages.forEach((el) => {
|
|
144
|
+
setTimeout(() => stateMachine.handleMessage(el));
|
|
145
|
+
});
|
|
146
|
+
// Set the input channel to closed a bit after sending the messages
|
|
147
|
+
// to make the service finish up the work it can do and suspend or send back a response.
|
|
148
|
+
setTimeout(() => stateMachine.handleInputClosed());
|
|
149
|
+
await completed;
|
|
150
|
+
return Promise.resolve(testConnection.sentMessages());
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.UUT = UUT;
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
155
|
+
function testService(definition) {
|
|
156
|
+
return new UUT(definition);
|
|
157
|
+
}
|
|
158
|
+
exports.testService = testService;
|
|
159
|
+
class TestConnection {
|
|
160
|
+
result = [];
|
|
161
|
+
headers() {
|
|
162
|
+
return new Map();
|
|
163
|
+
}
|
|
164
|
+
send(msg) {
|
|
165
|
+
this.result.push(msg);
|
|
166
|
+
return Promise.resolve();
|
|
167
|
+
}
|
|
168
|
+
async end() {
|
|
169
|
+
// nothing to do
|
|
170
|
+
return Promise.resolve();
|
|
171
|
+
}
|
|
172
|
+
sentMessages() {
|
|
173
|
+
return this.result;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=testdriver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testdriver.js","sourceRoot":"","sources":["../../../test/testdriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../test/utils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,104 @@
|
|
|
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
|
+
const utils_js_1 = require("../src/utils/utils.js");
|
|
14
|
+
const rand_js_1 = require("../src/utils/rand.js");
|
|
15
|
+
const vitest_1 = require("vitest");
|
|
16
|
+
(0, vitest_1.describe)("JSON de-/serialization", () => {
|
|
17
|
+
(0, vitest_1.it)("should be able to handle bigint", () => {
|
|
18
|
+
const myType = {
|
|
19
|
+
a: "Hello!",
|
|
20
|
+
b: 42n,
|
|
21
|
+
};
|
|
22
|
+
const json = (0, utils_js_1.jsonSerialize)(myType);
|
|
23
|
+
const obj = (0, utils_js_1.jsonDeserialize)(json);
|
|
24
|
+
(0, vitest_1.expect)(obj).toStrictEqual(myType);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.describe)("JSON printing", () => {
|
|
28
|
+
(0, vitest_1.it)("should be able to handle bigInt", () => {
|
|
29
|
+
const myType = {
|
|
30
|
+
a: "Hello!",
|
|
31
|
+
b: 42n,
|
|
32
|
+
};
|
|
33
|
+
(0, utils_js_1.formatMessageAsJson)(myType);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
(0, vitest_1.describe)("rand", () => {
|
|
37
|
+
(0, vitest_1.it)("correctly hashes invocation ids", () => {
|
|
38
|
+
const rand = new rand_js_1.RandImpl(Buffer.from("f311f1fdcb9863f0018bd3400ecd7d69b547204e776218b2", "hex"));
|
|
39
|
+
const actual = Array.from(Array(10)).map(() => rand.u64());
|
|
40
|
+
// These values were produced with the reference implementation:
|
|
41
|
+
// http://xoshiro.di.unimi.it/xoshiro256plusplus.c
|
|
42
|
+
const expected = [
|
|
43
|
+
6541268553928124324n,
|
|
44
|
+
1632128201851599825n,
|
|
45
|
+
3999496359968271420n,
|
|
46
|
+
9099219592091638755n,
|
|
47
|
+
2609122094717920550n,
|
|
48
|
+
16569362788292807660n,
|
|
49
|
+
14955958648458255954n,
|
|
50
|
+
15581072429430901841n,
|
|
51
|
+
4951852598761288088n,
|
|
52
|
+
2380816196140950843n,
|
|
53
|
+
];
|
|
54
|
+
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.it)("produces expected u64 output", () => {
|
|
57
|
+
const rand = new rand_js_1.RandImpl([1n, 2n, 3n, 4n]);
|
|
58
|
+
const actual = Array.from(Array(10)).map(() => rand.u64());
|
|
59
|
+
// These values were produced with the reference implementation:
|
|
60
|
+
// http://xoshiro.di.unimi.it/xoshiro256plusplus.c
|
|
61
|
+
const expected = [
|
|
62
|
+
41943041n,
|
|
63
|
+
58720359n,
|
|
64
|
+
3588806011781223n,
|
|
65
|
+
3591011842654386n,
|
|
66
|
+
9228616714210784205n,
|
|
67
|
+
9973669472204895162n,
|
|
68
|
+
14011001112246962877n,
|
|
69
|
+
12406186145184390807n,
|
|
70
|
+
15849039046786891736n,
|
|
71
|
+
10450023813501588000n,
|
|
72
|
+
];
|
|
73
|
+
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.it)("produces expected random output", () => {
|
|
76
|
+
const rand = new rand_js_1.RandImpl([1n, 2n, 3n, 4n]);
|
|
77
|
+
const actual = Array.from(Array(10)).map(() => rand.random());
|
|
78
|
+
const expected = [
|
|
79
|
+
4.656612984099695e-9, 6.519269457605503e-9, 0.39843750651926946,
|
|
80
|
+
0.3986824029416509, 0.5822761557370711, 0.2997488042907357,
|
|
81
|
+
0.5336032865255543, 0.36335061693258097, 0.5968067925950846,
|
|
82
|
+
0.18570456306457928,
|
|
83
|
+
];
|
|
84
|
+
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
85
|
+
});
|
|
86
|
+
(0, vitest_1.it)("produces expected uuidv4 output", () => {
|
|
87
|
+
const rand = new rand_js_1.RandImpl([1n, 2n, 3n, 4n]);
|
|
88
|
+
const actual = Array.from(Array(10)).map(() => rand.uuidv4());
|
|
89
|
+
const expected = [
|
|
90
|
+
"01008002-0000-4000-a700-800300000000",
|
|
91
|
+
"67008003-00c0-4c00-b200-449901c20c00",
|
|
92
|
+
"cd33c49a-01a2-4280-ba33-eecd8a97698a",
|
|
93
|
+
"bd4a1533-4713-41c2-979e-167991a02bac",
|
|
94
|
+
"d83f078f-0a19-43db-a092-22b24af10591",
|
|
95
|
+
"677c91f7-146e-4769-a4fd-df3793e717e8",
|
|
96
|
+
"f15179b2-f220-4427-8d90-7b5437d9828d",
|
|
97
|
+
"9e97720f-42b8-4d09-a449-914cf221df26",
|
|
98
|
+
"09d0a109-6f11-4ef9-93fa-f013d0ad3808",
|
|
99
|
+
"41eb0e0c-41c9-4828-85d0-59fb901b4df4",
|
|
100
|
+
];
|
|
101
|
+
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../test/utils.test.ts"],"names":[],"mappings":"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"}
|