@restatedev/restate-sdk 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/common_api.d.ts +9 -0
- package/dist/cjs/src/common_api.d.ts.map +1 -0
- package/dist/{src/public_api.js → cjs/src/common_api.js} +13 -15
- package/dist/cjs/src/common_api.js.map +1 -0
- package/dist/{src/connection/http_connection.d.ts → cjs/src/connection/connection.d.ts} +32 -25
- package/dist/cjs/src/connection/connection.d.ts.map +1 -0
- package/dist/cjs/src/connection/connection.js +181 -0
- package/dist/cjs/src/connection/connection.js.map +1 -0
- package/dist/{src → cjs/src}/context.d.ts +14 -10
- package/dist/cjs/src/context.d.ts.map +1 -0
- package/dist/{src → cjs/src}/context.js +5 -5
- package/dist/cjs/src/context.js.map +1 -0
- package/dist/{src → cjs/src}/context_impl.d.ts +7 -18
- package/dist/cjs/src/context_impl.d.ts.map +1 -0
- package/dist/{src → cjs/src}/context_impl.js +90 -123
- package/dist/cjs/src/context_impl.js.map +1 -0
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts +28 -0
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -0
- package/dist/{src/endpoint/endpoint_impl.js → cjs/src/endpoint/endpoint_builder.js} +30 -77
- package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +54 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.js +61 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts +6 -0
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/fetch.js +33 -0
- package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/generic.d.ts +47 -0
- package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/generic.js +215 -0
- package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts +8 -0
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/lambda.js +83 -0
- package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +34 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.js +53 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/node_endpoint.d.ts +21 -0
- package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/node_endpoint.js +127 -0
- package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/request_signing/basex.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/request_signing/basex.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.d.ts +1 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.js +3 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/v1.d.ts +2 -2
- package/dist/cjs/src/endpoint/request_signing/v1.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/v1.js +9 -16
- package/dist/cjs/src/endpoint/request_signing/v1.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/validate.d.ts +1 -1
- package/dist/cjs/src/endpoint/request_signing/validate.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/validate.js +3 -3
- package/dist/cjs/src/endpoint/request_signing/validate.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint.d.ts +51 -29
- package/dist/cjs/src/endpoint.d.ts.map +1 -0
- package/dist/{src/connection/connection.js → cjs/src/endpoint.js} +1 -1
- package/dist/cjs/src/endpoint.js.map +1 -0
- package/dist/cjs/src/fetch.d.ts +8 -0
- package/dist/cjs/src/fetch.d.ts.map +1 -0
- package/dist/cjs/src/fetch.js +39 -0
- package/dist/cjs/src/fetch.js.map +1 -0
- package/dist/cjs/src/generated/proto/discovery_pb.d.ts.map +1 -0
- package/dist/{src → cjs/src}/generated/proto/discovery_pb.js +1 -1
- package/dist/cjs/src/generated/proto/discovery_pb.js.map +1 -0
- package/dist/cjs/src/generated/proto/javascript_pb.d.ts.map +1 -0
- package/dist/cjs/src/generated/proto/javascript_pb.js.map +1 -0
- package/dist/cjs/src/generated/proto/protocol_pb.d.ts.map +1 -0
- package/dist/{src → cjs/src}/generated/proto/protocol_pb.js +1 -1
- package/dist/cjs/src/generated/proto/protocol_pb.js.map +1 -0
- package/dist/cjs/src/generated/version.d.ts +2 -0
- package/dist/cjs/src/generated/version.d.ts.map +1 -0
- package/dist/{src → cjs/src}/generated/version.js +1 -1
- package/dist/cjs/src/generated/version.js.map +1 -0
- package/dist/{src → cjs/src}/invocation.d.ts +5 -5
- package/dist/cjs/src/invocation.d.ts.map +1 -0
- package/dist/{src → cjs/src}/invocation.js +14 -14
- package/dist/cjs/src/invocation.js.map +1 -0
- package/dist/{src → cjs/src}/io/decoder.d.ts +3 -3
- package/dist/cjs/src/io/decoder.d.ts.map +1 -0
- package/dist/{src → cjs/src}/io/decoder.js +25 -24
- package/dist/cjs/src/io/decoder.js.map +1 -0
- package/dist/cjs/src/io/encoder.d.ts +4 -0
- package/dist/cjs/src/io/encoder.d.ts.map +1 -0
- package/dist/{src → cjs/src}/io/encoder.js +7 -23
- package/dist/cjs/src/io/encoder.js.map +1 -0
- package/dist/{src → cjs/src}/journal.d.ts +7 -7
- package/dist/cjs/src/journal.d.ts.map +1 -0
- package/dist/{src → cjs/src}/journal.js +38 -38
- package/dist/cjs/src/journal.js.map +1 -0
- package/dist/cjs/src/lambda.d.ts +7 -0
- package/dist/cjs/src/lambda.d.ts.map +1 -0
- package/dist/cjs/src/lambda.js +37 -0
- package/dist/cjs/src/lambda.js.map +1 -0
- package/dist/{src → cjs/src}/local_state_store.d.ts +2 -1
- package/dist/cjs/src/local_state_store.d.ts.map +1 -0
- package/dist/{src → cjs/src}/local_state_store.js +10 -10
- package/dist/cjs/src/local_state_store.js.map +1 -0
- package/dist/cjs/src/logger.d.ts +35 -0
- package/dist/cjs/src/logger.d.ts.map +1 -0
- package/dist/cjs/src/logger.js +151 -0
- package/dist/cjs/src/logger.js.map +1 -0
- package/dist/{src → cjs/src}/promise_combinator_tracker.d.ts +1 -1
- package/dist/cjs/src/promise_combinator_tracker.d.ts.map +1 -0
- package/dist/{src → cjs/src}/promise_combinator_tracker.js +7 -5
- package/dist/cjs/src/promise_combinator_tracker.js.map +1 -0
- package/dist/cjs/src/public_api.d.ts +7 -0
- package/dist/cjs/src/public_api.d.ts.map +1 -0
- package/dist/cjs/src/public_api.js +37 -0
- package/dist/cjs/src/public_api.js.map +1 -0
- package/dist/{src → cjs/src}/state_machine.d.ts +13 -15
- package/dist/cjs/src/state_machine.d.ts.map +1 -0
- package/dist/{src → cjs/src}/state_machine.js +55 -63
- package/dist/cjs/src/state_machine.js.map +1 -0
- package/dist/{src → cjs/src}/types/components.d.ts +4 -3
- package/dist/cjs/src/types/components.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/components.js +4 -4
- package/dist/cjs/src/types/components.js.map +1 -0
- package/dist/cjs/src/types/discovery.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/discovery.js +3 -3
- package/dist/cjs/src/types/discovery.js.map +1 -0
- package/dist/{src → cjs/src}/types/errors.d.ts +2 -2
- package/dist/cjs/src/types/errors.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/errors.js +8 -8
- package/dist/cjs/src/types/errors.js.map +1 -0
- package/dist/{src → cjs/src}/types/protocol.d.ts +6 -8
- package/dist/cjs/src/types/protocol.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/protocol.js +61 -61
- package/dist/cjs/src/types/protocol.js.map +1 -0
- package/dist/{src → cjs/src}/types/rpc.d.ts +13 -13
- package/dist/cjs/src/types/rpc.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/rpc.js +8 -7
- package/dist/cjs/src/types/rpc.js.map +1 -0
- package/dist/{src → cjs/src}/types/types.d.ts +1 -1
- package/dist/cjs/src/types/types.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/types.js +14 -14
- package/dist/cjs/src/types/types.js.map +1 -0
- package/dist/cjs/src/user_agent.d.ts +2 -0
- package/dist/cjs/src/user_agent.d.ts.map +1 -0
- package/dist/{src → cjs/src}/user_agent.js +2 -2
- package/dist/cjs/src/user_agent.js.map +1 -0
- package/dist/cjs/src/utils/buffer.d.ts +5 -0
- package/dist/cjs/src/utils/buffer.d.ts.map +1 -0
- package/dist/cjs/src/utils/buffer.js +59 -0
- package/dist/cjs/src/utils/buffer.js.map +1 -0
- package/dist/cjs/src/utils/message_logger.d.ts +7 -0
- package/dist/cjs/src/utils/message_logger.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/message_logger.js +8 -8
- package/dist/cjs/src/utils/message_logger.js.map +1 -0
- package/dist/cjs/src/utils/promises.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/promises.js +2 -1
- package/dist/cjs/src/utils/promises.js.map +1 -0
- package/dist/{src → cjs/src}/utils/rand.d.ts +3 -3
- package/dist/cjs/src/utils/rand.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/rand.js +10 -15
- package/dist/cjs/src/utils/rand.js.map +1 -0
- package/dist/cjs/src/utils/serde.d.ts +5 -0
- package/dist/cjs/src/utils/serde.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/serde.js +6 -4
- package/dist/cjs/src/utils/serde.js.map +1 -0
- 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/src/utils/utils.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/utils.js +11 -11
- package/dist/cjs/src/utils/utils.js.map +1 -0
- package/dist/cjs/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 +50 -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 +31 -0
- package/dist/cjs/test/testdriver.d.ts.map +1 -0
- package/dist/cjs/test/testdriver.js +137 -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 -0
- package/dist/esm/src/common_api.d.ts +9 -0
- package/dist/esm/src/common_api.d.ts.map +1 -0
- package/dist/esm/src/common_api.js +14 -0
- package/dist/esm/src/common_api.js.map +1 -0
- package/dist/esm/src/connection/connection.d.ts +84 -0
- package/dist/esm/src/connection/connection.d.ts.map +1 -0
- package/dist/esm/src/connection/connection.js +177 -0
- package/dist/esm/src/connection/connection.js.map +1 -0
- package/dist/esm/src/context.d.ts +545 -0
- package/dist/esm/src/context.d.ts.map +1 -0
- package/dist/esm/src/context.js +75 -0
- package/dist/esm/src/context.js.map +1 -0
- package/dist/esm/src/context_impl.d.ts +54 -0
- package/dist/esm/src/context_impl.d.ts.map +1 -0
- package/dist/esm/src/context_impl.js +510 -0
- package/dist/esm/src/context_impl.js.map +1 -0
- package/dist/esm/src/endpoint/endpoint_builder.d.ts +28 -0
- package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -0
- package/dist/esm/src/endpoint/endpoint_builder.js +139 -0
- package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -0
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts +54 -0
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/fetch_endpoint.js +57 -0
- package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/fetch.d.ts +6 -0
- package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/fetch.js +29 -0
- package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/generic.d.ts +47 -0
- package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/generic.js +211 -0
- package/dist/esm/src/endpoint/handlers/generic.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/lambda.d.ts +8 -0
- package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/lambda.js +79 -0
- package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts +34 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/lambda_endpoint.js +49 -0
- package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/node_endpoint.d.ts +21 -0
- package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/node_endpoint.js +100 -0
- package/dist/esm/src/endpoint/node_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/basex.d.ts +10 -0
- package/dist/esm/src/endpoint/request_signing/basex.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/basex.js +136 -0
- package/dist/esm/src/endpoint/request_signing/basex.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts +17 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.js +52 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/v1.d.ts +9 -0
- package/dist/esm/src/endpoint/request_signing/v1.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/v1.js +133 -0
- package/dist/esm/src/endpoint/request_signing/v1.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/validate.d.ts +18 -0
- package/dist/esm/src/endpoint/request_signing/validate.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/validate.js +40 -0
- package/dist/esm/src/endpoint/request_signing/validate.js.map +1 -0
- package/dist/esm/src/endpoint.d.ts +126 -0
- package/dist/esm/src/endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint.js +12 -0
- package/dist/esm/src/endpoint.js.map +1 -0
- package/dist/esm/src/fetch.d.ts +8 -0
- package/dist/esm/src/fetch.d.ts.map +1 -0
- package/dist/esm/src/fetch.js +21 -0
- package/dist/esm/src/fetch.js.map +1 -0
- package/dist/esm/src/generated/proto/discovery_pb.d.ts +18 -0
- package/dist/esm/src/generated/proto/discovery_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/discovery_pb.js +37 -0
- package/dist/esm/src/generated/proto/discovery_pb.js.map +1 -0
- package/dist/esm/src/generated/proto/javascript_pb.d.ts +26 -0
- package/dist/esm/src/generated/proto/javascript_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/javascript_pb.js +48 -0
- package/dist/esm/src/generated/proto/javascript_pb.js.map +1 -0
- package/dist/esm/src/generated/proto/protocol_pb.d.ts +1051 -0
- package/dist/esm/src/generated/proto/protocol_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/protocol_pb.js +1258 -0
- package/dist/esm/src/generated/proto/protocol_pb.js.map +1 -0
- package/dist/esm/src/generated/version.d.ts +2 -0
- package/dist/esm/src/generated/version.d.ts.map +1 -0
- package/dist/esm/src/generated/version.js +2 -0
- package/dist/esm/src/generated/version.js.map +1 -0
- package/dist/esm/src/invocation.d.ts +48 -0
- package/dist/esm/src/invocation.d.ts.map +1 -0
- package/dist/esm/src/invocation.js +153 -0
- package/dist/esm/src/invocation.js.map +1 -0
- package/dist/esm/src/io/decoder.d.ts +9 -0
- package/dist/esm/src/io/decoder.d.ts.map +1 -0
- package/dist/esm/src/io/decoder.js +128 -0
- package/dist/esm/src/io/decoder.js.map +1 -0
- package/dist/esm/src/io/encoder.d.ts +4 -0
- package/dist/esm/src/io/encoder.d.ts.map +1 -0
- package/dist/esm/src/io/encoder.js +36 -0
- package/dist/esm/src/io/encoder.js.map +1 -0
- package/dist/esm/src/journal.d.ts +52 -0
- package/dist/esm/src/journal.d.ts.map +1 -0
- package/dist/esm/src/journal.js +412 -0
- package/dist/esm/src/journal.js.map +1 -0
- package/dist/esm/src/lambda.d.ts +7 -0
- package/dist/esm/src/lambda.d.ts.map +1 -0
- package/dist/{src/endpoint.js → esm/src/lambda.js} +5 -8
- package/dist/esm/src/lambda.js.map +1 -0
- package/dist/esm/src/local_state_store.d.ts +16 -0
- package/dist/esm/src/local_state_store.d.ts.map +1 -0
- package/dist/esm/src/local_state_store.js +80 -0
- package/dist/esm/src/local_state_store.js.map +1 -0
- package/dist/esm/src/logger.d.ts +35 -0
- package/dist/esm/src/logger.d.ts.map +1 -0
- package/dist/esm/src/logger.js +144 -0
- package/dist/esm/src/logger.js.map +1 -0
- package/dist/esm/src/promise_combinator_tracker.d.ts +29 -0
- package/dist/esm/src/promise_combinator_tracker.d.ts.map +1 -0
- package/dist/esm/src/promise_combinator_tracker.js +125 -0
- package/dist/esm/src/promise_combinator_tracker.js.map +1 -0
- package/dist/esm/src/public_api.d.ts +7 -0
- package/dist/esm/src/public_api.d.ts.map +1 -0
- package/dist/esm/src/public_api.js +19 -0
- package/dist/esm/src/public_api.js.map +1 -0
- package/dist/esm/src/state_machine.d.ts +84 -0
- package/dist/esm/src/state_machine.d.ts.map +1 -0
- package/dist/esm/src/state_machine.js +399 -0
- package/dist/esm/src/state_machine.js.map +1 -0
- package/dist/esm/src/types/components.d.ts +78 -0
- package/dist/esm/src/types/components.d.ts.map +1 -0
- package/dist/esm/src/types/components.js +227 -0
- package/dist/esm/src/types/components.js.map +1 -0
- package/dist/esm/src/types/discovery.d.ts +43 -0
- package/dist/esm/src/types/discovery.d.ts.map +1 -0
- package/dist/esm/src/types/discovery.js +28 -0
- package/dist/esm/src/types/discovery.js.map +1 -0
- package/dist/esm/src/types/errors.d.ts +53 -0
- package/dist/esm/src/types/errors.d.ts.map +1 -0
- package/dist/esm/src/types/errors.js +117 -0
- package/dist/esm/src/types/errors.js.map +1 -0
- package/dist/esm/src/types/protocol.d.ts +40 -0
- package/dist/esm/src/types/protocol.d.ts.map +1 -0
- package/dist/esm/src/types/protocol.js +206 -0
- package/dist/esm/src/types/protocol.js.map +1 -0
- package/dist/esm/src/types/rpc.d.ts +300 -0
- package/dist/esm/src/types/rpc.d.ts.map +1 -0
- package/dist/esm/src/types/rpc.js +412 -0
- package/dist/esm/src/types/rpc.js.map +1 -0
- package/dist/esm/src/types/types.d.ts +20 -0
- package/dist/esm/src/types/types.d.ts.map +1 -0
- package/dist/esm/src/types/types.js +105 -0
- package/dist/esm/src/types/types.js.map +1 -0
- package/dist/esm/src/user_agent.d.ts +2 -0
- package/dist/esm/src/user_agent.d.ts.map +1 -0
- package/dist/esm/src/user_agent.js +13 -0
- package/dist/esm/src/user_agent.js.map +1 -0
- package/dist/esm/src/utils/buffer.d.ts +5 -0
- package/dist/esm/src/utils/buffer.d.ts.map +1 -0
- package/dist/esm/src/utils/buffer.js +53 -0
- package/dist/esm/src/utils/buffer.js.map +1 -0
- package/dist/esm/src/utils/message_logger.d.ts +7 -0
- package/dist/esm/src/utils/message_logger.d.ts.map +1 -0
- package/dist/esm/src/utils/message_logger.js +75 -0
- package/dist/esm/src/utils/message_logger.js.map +1 -0
- package/dist/esm/src/utils/promises.d.ts +15 -0
- package/dist/esm/src/utils/promises.d.ts.map +1 -0
- package/dist/esm/src/utils/promises.js +63 -0
- package/dist/esm/src/utils/promises.js.map +1 -0
- package/dist/esm/src/utils/rand.d.ts +15 -0
- package/dist/esm/src/utils/rand.d.ts.map +1 -0
- package/dist/esm/src/utils/rand.js +106 -0
- package/dist/esm/src/utils/rand.js.map +1 -0
- package/dist/esm/src/utils/serde.d.ts +5 -0
- package/dist/esm/src/utils/serde.d.ts.map +1 -0
- package/dist/esm/src/utils/serde.js +43 -0
- package/dist/esm/src/utils/serde.js.map +1 -0
- package/dist/esm/src/utils/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/src/utils/utils.d.ts +5 -0
- package/dist/esm/src/utils/utils.d.ts.map +1 -0
- package/dist/esm/src/utils/utils.js +109 -0
- package/dist/esm/src/utils/utils.js.map +1 -0
- package/dist/esm/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 +48 -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 +31 -0
- package/dist/esm/test/testdriver.d.ts.map +1 -0
- package/dist/esm/test/testdriver.js +133 -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 -0
- package/package.json +57 -19
- package/dist/src/connection/buffered_connection.d.ts +0 -14
- package/dist/src/connection/buffered_connection.d.ts.map +0 -1
- package/dist/src/connection/buffered_connection.js +0 -44
- package/dist/src/connection/buffered_connection.js.map +0 -1
- package/dist/src/connection/connection.d.ts +0 -20
- package/dist/src/connection/connection.d.ts.map +0 -1
- package/dist/src/connection/connection.js.map +0 -1
- package/dist/src/connection/http_connection.d.ts.map +0 -1
- package/dist/src/connection/http_connection.js +0 -208
- package/dist/src/connection/http_connection.js.map +0 -1
- package/dist/src/connection/lambda_connection.d.ts +0 -17
- package/dist/src/connection/lambda_connection.d.ts.map +0 -1
- package/dist/src/connection/lambda_connection.js +0 -64
- package/dist/src/connection/lambda_connection.js.map +0 -1
- package/dist/src/context.d.ts.map +0 -1
- package/dist/src/context.js.map +0 -1
- package/dist/src/context_impl.d.ts.map +0 -1
- package/dist/src/context_impl.js.map +0 -1
- package/dist/src/endpoint/endpoint_impl.d.ts +0 -27
- package/dist/src/endpoint/endpoint_impl.d.ts.map +0 -1
- package/dist/src/endpoint/endpoint_impl.js.map +0 -1
- package/dist/src/endpoint/http2_handler.d.ts +0 -11
- package/dist/src/endpoint/http2_handler.d.ts.map +0 -1
- package/dist/src/endpoint/http2_handler.js +0 -186
- package/dist/src/endpoint/http2_handler.js.map +0 -1
- package/dist/src/endpoint/lambda_handler.d.ts +0 -15
- package/dist/src/endpoint/lambda_handler.d.ts.map +0 -1
- package/dist/src/endpoint/lambda_handler.js +0 -176
- package/dist/src/endpoint/lambda_handler.js.map +0 -1
- package/dist/src/endpoint/request_signing/basex.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/basex.js.map +0 -1
- package/dist/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/ed25519.js.map +0 -1
- package/dist/src/endpoint/request_signing/v1.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/v1.js.map +0 -1
- package/dist/src/endpoint/request_signing/validate.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/validate.js.map +0 -1
- package/dist/src/endpoint.d.ts.map +0 -1
- package/dist/src/endpoint.js.map +0 -1
- package/dist/src/generated/proto/discovery_pb.d.ts.map +0 -1
- package/dist/src/generated/proto/discovery_pb.js.map +0 -1
- package/dist/src/generated/proto/javascript_pb.d.ts.map +0 -1
- package/dist/src/generated/proto/javascript_pb.js.map +0 -1
- package/dist/src/generated/proto/protocol_pb.d.ts.map +0 -1
- package/dist/src/generated/proto/protocol_pb.js.map +0 -1
- package/dist/src/generated/version.d.ts +0 -2
- package/dist/src/generated/version.d.ts.map +0 -1
- package/dist/src/generated/version.js.map +0 -1
- package/dist/src/invocation.d.ts.map +0 -1
- package/dist/src/invocation.js.map +0 -1
- package/dist/src/io/decoder.d.ts.map +0 -1
- package/dist/src/io/decoder.js.map +0 -1
- package/dist/src/io/encoder.d.ts +0 -7
- package/dist/src/io/encoder.d.ts.map +0 -1
- package/dist/src/io/encoder.js.map +0 -1
- package/dist/src/journal.d.ts.map +0 -1
- package/dist/src/journal.js.map +0 -1
- package/dist/src/local_state_store.d.ts.map +0 -1
- package/dist/src/local_state_store.js.map +0 -1
- package/dist/src/logger.d.ts +0 -27
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -151
- package/dist/src/logger.js.map +0 -1
- package/dist/src/promise_combinator_tracker.d.ts.map +0 -1
- package/dist/src/promise_combinator_tracker.js.map +0 -1
- package/dist/src/public_api.d.ts +0 -7
- package/dist/src/public_api.d.ts.map +0 -1
- package/dist/src/public_api.js.map +0 -1
- package/dist/src/state_machine.d.ts.map +0 -1
- package/dist/src/state_machine.js.map +0 -1
- package/dist/src/types/components.d.ts.map +0 -1
- package/dist/src/types/components.js.map +0 -1
- package/dist/src/types/discovery.d.ts.map +0 -1
- package/dist/src/types/discovery.js.map +0 -1
- package/dist/src/types/errors.d.ts.map +0 -1
- package/dist/src/types/errors.js.map +0 -1
- package/dist/src/types/protocol.d.ts.map +0 -1
- package/dist/src/types/protocol.js.map +0 -1
- package/dist/src/types/rpc.d.ts.map +0 -1
- package/dist/src/types/rpc.js.map +0 -1
- package/dist/src/types/types.d.ts.map +0 -1
- package/dist/src/types/types.js.map +0 -1
- package/dist/src/user_agent.d.ts +0 -2
- package/dist/src/user_agent.d.ts.map +0 -1
- package/dist/src/user_agent.js.map +0 -1
- package/dist/src/utils/message_logger.d.ts +0 -7
- package/dist/src/utils/message_logger.d.ts.map +0 -1
- package/dist/src/utils/message_logger.js.map +0 -1
- package/dist/src/utils/promises.d.ts.map +0 -1
- package/dist/src/utils/promises.js.map +0 -1
- package/dist/src/utils/rand.d.ts.map +0 -1
- package/dist/src/utils/rand.js.map +0 -1
- package/dist/src/utils/serde.d.ts +0 -5
- package/dist/src/utils/serde.d.ts.map +0 -1
- package/dist/src/utils/serde.js.map +0 -1
- package/dist/src/utils/utils.d.ts.map +0 -1
- package/dist/src/utils/utils.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/endpoint/request_signing/basex.d.ts +0 -0
- /package/dist/{src → cjs/src}/endpoint/request_signing/basex.js +0 -0
- /package/dist/{src → cjs/src}/generated/proto/discovery_pb.d.ts +0 -0
- /package/dist/{src → cjs/src}/generated/proto/javascript_pb.d.ts +0 -0
- /package/dist/{src → cjs/src}/generated/proto/javascript_pb.js +0 -0
- /package/dist/{src → cjs/src}/generated/proto/protocol_pb.d.ts +0 -0
- /package/dist/{src → cjs/src}/types/discovery.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/promises.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/utils.d.ts +0 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the Restate SDK for Node.js/TypeScript,
|
|
5
|
+
* which is released under the MIT license.
|
|
6
|
+
*
|
|
7
|
+
* You can find a copy of the license in file LICENSE in the root
|
|
8
|
+
* directory of this repository or package, or at
|
|
9
|
+
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
10
|
+
*/
|
|
11
|
+
import { START_MESSAGE_TYPE, StartMessage, COMPLETION_MESSAGE_TYPE, GET_STATE_ENTRY_MESSAGE_TYPE, SetStateEntryMessage, SET_STATE_ENTRY_MESSAGE_TYPE, } from "../src/types/protocol.js";
|
|
12
|
+
import { RestateConnection } from "../src/connection/connection.js";
|
|
13
|
+
import { Header, Message } from "../src/types/types.js";
|
|
14
|
+
import * as stream from "node:stream/web";
|
|
15
|
+
import { setTimeout } from "timers/promises";
|
|
16
|
+
import { CompletablePromise } from "../src/utils/promises.js";
|
|
17
|
+
import { describe, expect, it } from "vitest";
|
|
18
|
+
import { LogSource, createRestateConsole, defaultLogger, } from "../src/logger.js";
|
|
19
|
+
// The following test suite is taken from headers.rs
|
|
20
|
+
describe("Header", () => {
|
|
21
|
+
it("Should round trip a custom message", () => {
|
|
22
|
+
const a = new Header(0xfc00n, 10);
|
|
23
|
+
const b = Header.fromU64be(a.toU64be());
|
|
24
|
+
expect(b).toStrictEqual(a);
|
|
25
|
+
});
|
|
26
|
+
it("invoke_test", () => roundtripTest(newStart(25)));
|
|
27
|
+
it("completion_test", () => roundtripTest(newHeader(COMPLETION_MESSAGE_TYPE, 22)));
|
|
28
|
+
it("completed_get_state", () => roundtripTest(newCompletableEntry(GET_STATE_ENTRY_MESSAGE_TYPE, true, 0)));
|
|
29
|
+
it("not_completed_get_state", () => roundtripTest(newCompletableEntry(GET_STATE_ENTRY_MESSAGE_TYPE, false, 0)));
|
|
30
|
+
it("completed_get_state_with_len", () => roundtripTest(newCompletableEntry(GET_STATE_ENTRY_MESSAGE_TYPE, true, 10341)));
|
|
31
|
+
it("custom_entry", () => roundtripTest(newHeader(0xfc00n, 10341)));
|
|
32
|
+
it("custom_entry_with_requires_ack", () => roundtripTest(new Header(0xfc00n, 10341, undefined, true)));
|
|
33
|
+
});
|
|
34
|
+
const rlog = createRestateConsole(defaultLogger, LogSource.SYSTEM);
|
|
35
|
+
describe("Restate Streaming Connection", () => {
|
|
36
|
+
it("should demonstrate how to write messages and read messages.", async () => {
|
|
37
|
+
// imagine that the HTTP2 request handler hands to you a bidirectional (duplex in node's lingo)
|
|
38
|
+
// binary stream, that you can read from and write to.
|
|
39
|
+
const http2stream = mockHttp2DuplexStream();
|
|
40
|
+
// the following demonstrates how to use a stream_encoder/decoder to convert
|
|
41
|
+
// a raw duplex stream to a high-level stream of Restate's protocol messages and headers.
|
|
42
|
+
const restateStream = new RestateConnection(rlog, {}, http2stream);
|
|
43
|
+
// here we need to create a promise for the sake of this test.
|
|
44
|
+
// this future will be resolved once something is emitted on the stream.
|
|
45
|
+
const result = new CompletablePromise();
|
|
46
|
+
restateStream.pipeToConsumer({
|
|
47
|
+
handleMessage: (m) => {
|
|
48
|
+
result.resolve(m);
|
|
49
|
+
return false;
|
|
50
|
+
},
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
52
|
+
handleInputClosed: () => { },
|
|
53
|
+
handleStreamError: (error) => result.reject(error),
|
|
54
|
+
});
|
|
55
|
+
// now, let's simulate sending a message
|
|
56
|
+
void restateStream.send(new Message(START_MESSAGE_TYPE, new StartMessage({
|
|
57
|
+
id: Buffer.from("abcd"),
|
|
58
|
+
debugId: "abcd",
|
|
59
|
+
knownEntries: 1337,
|
|
60
|
+
}), undefined));
|
|
61
|
+
// and collect what was written
|
|
62
|
+
await restateStream.end();
|
|
63
|
+
const msg = await result.promise;
|
|
64
|
+
expect(msg.messageType).toStrictEqual(START_MESSAGE_TYPE);
|
|
65
|
+
expect(msg.message.knownEntries).toStrictEqual(1337);
|
|
66
|
+
});
|
|
67
|
+
it("should await sending of small data when closing", async () => {
|
|
68
|
+
const { duplex, processBytes } = mockBackpressuredDuplex(128);
|
|
69
|
+
const connection = new RestateConnection(rlog, {}, duplex);
|
|
70
|
+
// enqueue small data, below watermark, so that 'end' can immediately be written
|
|
71
|
+
void connection.send(newMessage(10));
|
|
72
|
+
const done = connection.end();
|
|
73
|
+
await verifyPromisePending(done);
|
|
74
|
+
// now let the stream flow
|
|
75
|
+
processBytes(10 * 1024);
|
|
76
|
+
// we should be able to finish cleanly
|
|
77
|
+
await done;
|
|
78
|
+
});
|
|
79
|
+
it("should await sending of larger data when closing", async () => {
|
|
80
|
+
const { duplex, processBytes } = mockBackpressuredDuplex(128);
|
|
81
|
+
const connection = new RestateConnection(rlog, {}, duplex);
|
|
82
|
+
// enqueue quite some data, before allowing any bytes to flow any
|
|
83
|
+
void connection.send(newMessage(1024));
|
|
84
|
+
void connection.send(newMessage(1024));
|
|
85
|
+
void connection.send(newMessage(1024));
|
|
86
|
+
const done = connection.end();
|
|
87
|
+
await verifyPromisePending(done);
|
|
88
|
+
// now let the stream flow
|
|
89
|
+
processBytes(10 * 1024);
|
|
90
|
+
// we should be able to finish cleanly
|
|
91
|
+
await done;
|
|
92
|
+
});
|
|
93
|
+
it("should not trigger backpressure for small messages", async () => {
|
|
94
|
+
const { duplex } = mockBackpressuredDuplex(1024);
|
|
95
|
+
const connection = new RestateConnection(rlog, {}, duplex);
|
|
96
|
+
// enqueue a message that is not too large
|
|
97
|
+
const promise1 = connection.send(newMessage(80));
|
|
98
|
+
const promise2 = connection.send(newMessage(80));
|
|
99
|
+
await verifyPromiseResolved(promise1);
|
|
100
|
+
await verifyPromiseResolved(promise2);
|
|
101
|
+
});
|
|
102
|
+
it("should trigger backpressure for large messages", async () => {
|
|
103
|
+
const { duplex } = mockBackpressuredDuplex(1024);
|
|
104
|
+
const connection = new RestateConnection(rlog, {}, duplex);
|
|
105
|
+
// this message should get sent immediately because its smaller than 1024
|
|
106
|
+
const promise1 = connection.send(newMessage(800));
|
|
107
|
+
await verifyPromiseResolved(promise1);
|
|
108
|
+
// this one should hang because it takes us over 1024
|
|
109
|
+
const promise2 = connection.send(newMessage(800));
|
|
110
|
+
await verifyPromisePending(promise2);
|
|
111
|
+
});
|
|
112
|
+
it("should resolve backpressure promises when the stream flows", async () => {
|
|
113
|
+
const { duplex, processBytes } = mockBackpressuredDuplex(1024);
|
|
114
|
+
const connection = new RestateConnection(rlog, {}, duplex);
|
|
115
|
+
// this message should get sent immediately because its smaller than 1024
|
|
116
|
+
const promise1 = connection.send(newMessage(800));
|
|
117
|
+
await verifyPromiseResolved(promise1);
|
|
118
|
+
// this one should hang until we let it flow because it takes us over 1024
|
|
119
|
+
const promise2 = connection.send(newMessage(800));
|
|
120
|
+
await verifyPromisePending(promise2);
|
|
121
|
+
// now let the stream flow
|
|
122
|
+
processBytes(10 * 1024);
|
|
123
|
+
// this should now complete
|
|
124
|
+
await promise2;
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
// The following is taken from headers.rs tests
|
|
128
|
+
function newHeader(messageTypeId, length) {
|
|
129
|
+
return new Header(messageTypeId, length);
|
|
130
|
+
}
|
|
131
|
+
function newStart(length) {
|
|
132
|
+
return new Header(START_MESSAGE_TYPE, length, undefined, undefined);
|
|
133
|
+
}
|
|
134
|
+
function newCompletableEntry(ty, completed, length) {
|
|
135
|
+
return new Header(ty, length, completed);
|
|
136
|
+
}
|
|
137
|
+
function newMessage(size) {
|
|
138
|
+
return new Message(SET_STATE_ENTRY_MESSAGE_TYPE, new SetStateEntryMessage({
|
|
139
|
+
key: Buffer.from("abcd"),
|
|
140
|
+
value: Buffer.alloc(size),
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
function sameTruthness(a, b) {
|
|
144
|
+
if (a) {
|
|
145
|
+
expect(b).toBeTruthy();
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
expect(b).toBeFalsy();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async function verifyPromisePending(promise) {
|
|
152
|
+
let complete = false;
|
|
153
|
+
void promise.then(() => {
|
|
154
|
+
complete = true;
|
|
155
|
+
});
|
|
156
|
+
await setTimeout(0); // let the callbacks and tasks proceed first
|
|
157
|
+
expect(complete).toBeFalsy();
|
|
158
|
+
}
|
|
159
|
+
async function verifyPromiseResolved(promise) {
|
|
160
|
+
let complete = false;
|
|
161
|
+
void promise.then(() => {
|
|
162
|
+
complete = true;
|
|
163
|
+
});
|
|
164
|
+
await setTimeout(0); // let the callbacks and tasks proceed first
|
|
165
|
+
expect(complete).toBeTruthy();
|
|
166
|
+
}
|
|
167
|
+
function roundtripTest(a) {
|
|
168
|
+
const b = Header.fromU64be(a.toU64be());
|
|
169
|
+
expect(b.messageType).toStrictEqual(a.messageType);
|
|
170
|
+
expect(b.frameLength).toStrictEqual(a.frameLength);
|
|
171
|
+
sameTruthness(a.completedFlag, b.completedFlag);
|
|
172
|
+
sameTruthness(a.requiresAckFlag, b.requiresAckFlag);
|
|
173
|
+
sameTruthness(a.partialStateFlag, b.partialStateFlag);
|
|
174
|
+
}
|
|
175
|
+
function mockHttp2DuplexStream() {
|
|
176
|
+
// pipe output into input
|
|
177
|
+
return new stream.TransformStream();
|
|
178
|
+
}
|
|
179
|
+
function mockBackpressuredDuplex(highWaterMark) {
|
|
180
|
+
let permittedBytes = 0;
|
|
181
|
+
const queue = [];
|
|
182
|
+
const writable = new stream.WritableStream({
|
|
183
|
+
write: async (chunk) => {
|
|
184
|
+
if (permittedBytes >= chunk.length) {
|
|
185
|
+
permittedBytes -= chunk.length;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
permittedBytes = 0;
|
|
189
|
+
await new Promise((resolve) => {
|
|
190
|
+
queue.push({ bytes: chunk.length - permittedBytes, cb: resolve });
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
}, new stream.ByteLengthQueuingStrategy({ highWaterMark }));
|
|
195
|
+
function processBytes(numBytes) {
|
|
196
|
+
while (queue.length > 0 && numBytes > 0) {
|
|
197
|
+
const next = queue[0];
|
|
198
|
+
if (next.bytes > numBytes) {
|
|
199
|
+
next.bytes -= numBytes;
|
|
200
|
+
numBytes = 0;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
numBytes -= next.bytes;
|
|
204
|
+
queue.pop();
|
|
205
|
+
process.nextTick(next.cb);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
permittedBytes += numBytes;
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
duplex: {
|
|
212
|
+
readable: new stream.ReadableStream(),
|
|
213
|
+
writable,
|
|
214
|
+
},
|
|
215
|
+
processBytes,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=protocol_stream.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol_stream.test.js","sourceRoot":"","sources":["../../../test/protocol_stream.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { Empty } from "@bufbuild/protobuf";
|
|
3
|
+
import { Message } from "../src/types/types.js";
|
|
4
|
+
import { Failure, StartMessage_StateEntry } from "../src/generated/proto/protocol_pb.js";
|
|
5
|
+
import type { JournalErrorContext } from "../src/types/errors.js";
|
|
6
|
+
export type StartMessageOpts = {
|
|
7
|
+
knownEntries?: number;
|
|
8
|
+
partialState?: boolean;
|
|
9
|
+
state?: Buffer[][];
|
|
10
|
+
key?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function startMessage({ knownEntries, partialState, state, key, }?: StartMessageOpts): Message;
|
|
13
|
+
export declare function toStateEntries(entries: Buffer[][]): StartMessage_StateEntry[];
|
|
14
|
+
export declare function inputMessage(value: Uint8Array): Message;
|
|
15
|
+
export declare function outputMessage(value?: Uint8Array, failure?: Failure): Message;
|
|
16
|
+
export declare function getStateMessage<T>(key: string, value?: T, empty?: boolean, failure?: Failure): Message;
|
|
17
|
+
export declare function getStateMessageWithEmptyResult(key: string): Message;
|
|
18
|
+
export declare function getStateKeysMessage(value?: Array<string>): Message;
|
|
19
|
+
export declare function setStateMessage<T>(key: string, value: T): Message;
|
|
20
|
+
export declare function clearStateMessage(key: string): Message;
|
|
21
|
+
export declare function sleepMessage(wakeupTime: number, empty?: Empty, failure?: Failure): Message;
|
|
22
|
+
export declare function completionMessage(index: number, value?: any, empty?: boolean, failure?: Failure): Message;
|
|
23
|
+
export declare function completionMessageWithEmpty(index: number): Message;
|
|
24
|
+
export declare function ackMessage(index: number): Message;
|
|
25
|
+
export declare function invokeMessage(serviceName: string, handlerName: string, parameter: Uint8Array, value?: Uint8Array, failure?: Failure, key?: string): Message;
|
|
26
|
+
export declare function backgroundInvokeMessage(serviceName: string, handlerName: string, parameter: Uint8Array, invokeTime?: number, key?: string): Message;
|
|
27
|
+
export declare function sideEffectMessage<T>(value?: T, failure?: Failure, name?: string): Message;
|
|
28
|
+
export declare function awakeableMessage<T>(payload?: T, failure?: Failure): Message;
|
|
29
|
+
export declare function resolveAwakeableMessage<T>(id: string, payload: T): Message;
|
|
30
|
+
export declare function rejectAwakeableMessage(id: string, reason: string): Message;
|
|
31
|
+
export declare function suspensionMessage(entryIndices: number[]): Message;
|
|
32
|
+
export declare function combinatorEntryMessage(combinatorId: number, journalEntriesOrder: number[]): Message;
|
|
33
|
+
export declare function failure(msg: string, code?: number): Failure;
|
|
34
|
+
export declare function greetRequest(myName: string): Uint8Array;
|
|
35
|
+
export declare function greetResponse(myGreeting: string): Uint8Array;
|
|
36
|
+
export declare function errorMessage(failure: Failure, ctx?: JournalErrorContext): Message;
|
|
37
|
+
export declare function checkError(outputMsg: Message, errorMessage: string, code?: number): void;
|
|
38
|
+
export declare function checkJournalMismatchError(outputMsg: Message): void;
|
|
39
|
+
export declare function checkTerminalError(outputMsg: Message, errorMessage: string): void;
|
|
40
|
+
export declare function getAwakeableId(entryIndex: number): string;
|
|
41
|
+
export declare function keyVal(key: string, value: any): Buffer[];
|
|
42
|
+
export declare const END_MESSAGE: Message;
|
|
43
|
+
export declare const CLEAR_ALL_STATE_ENTRY_MESSAGE: Message;
|
|
44
|
+
//# sourceMappingURL=protoutils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protoutils.d.ts","sourceRoot":"","sources":["../../../test/protoutils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the Restate SDK for Node.js/TypeScript,
|
|
5
|
+
* which is released under the MIT license.
|
|
6
|
+
*
|
|
7
|
+
* You can find a copy of the license in file LICENSE in the root
|
|
8
|
+
* directory of this repository or package, or at
|
|
9
|
+
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
10
|
+
*/
|
|
11
|
+
/* istanbul ignore file */
|
|
12
|
+
import { Empty, protoInt64 } from "@bufbuild/protobuf";
|
|
13
|
+
import { StartMessage, START_MESSAGE_TYPE, InputEntryMessage, INPUT_ENTRY_MESSAGE_TYPE, GetStateEntryMessage, GET_STATE_ENTRY_MESSAGE_TYPE, SetStateEntryMessage, SET_STATE_ENTRY_MESSAGE_TYPE, CompletionMessage, COMPLETION_MESSAGE_TYPE, INVOKE_ENTRY_MESSAGE_TYPE, CallEntryMessage, OUTPUT_ENTRY_MESSAGE_TYPE, OutputEntryMessage, BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, OneWayCallEntryMessage, AWAKEABLE_ENTRY_MESSAGE_TYPE, AwakeableEntryMessage, COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, CompleteAwakeableEntryMessage, CLEAR_STATE_ENTRY_MESSAGE_TYPE, ClearStateEntryMessage, SLEEP_ENTRY_MESSAGE_TYPE, SleepEntryMessage, SIDE_EFFECT_ENTRY_MESSAGE_TYPE, SUSPENSION_MESSAGE_TYPE, SuspensionMessage, ERROR_MESSAGE_TYPE, ErrorMessage, ENTRY_ACK_MESSAGE_TYPE, EntryAckMessage, END_MESSAGE_TYPE, EndMessage, AWAKEABLE_IDENTIFIER_PREFIX, COMBINATOR_ENTRY_MESSAGE, CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE, ClearAllStateEntryMessage, GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, GetStateKeysEntryMessage, } from "../src/types/protocol.js";
|
|
14
|
+
import { Message } from "../src/types/types.js";
|
|
15
|
+
import { CombinatorEntryMessage } from "../src/generated/proto/javascript_pb.js";
|
|
16
|
+
import { Failure, RunEntryMessage, StartMessage_StateEntry, } from "../src/generated/proto/protocol_pb.js";
|
|
17
|
+
import { jsonSerialize } from "../src/utils/utils.js";
|
|
18
|
+
import { INTERNAL_ERROR_CODE, RestateErrorCodes, UNKNOWN_ERROR_CODE, } from "../src/types/errors.js";
|
|
19
|
+
import { expect } from "vitest";
|
|
20
|
+
export function startMessage({ knownEntries, partialState, state, key, } = {}) {
|
|
21
|
+
return new Message(START_MESSAGE_TYPE, new StartMessage({
|
|
22
|
+
id: Buffer.from("f311f1fdcb9863f0018bd3400ecd7d69b547204e776218b2", "hex"),
|
|
23
|
+
debugId: "8xHx_cuYY_AAYvTQA7NfWm1RyBOd2IYsg",
|
|
24
|
+
knownEntries: knownEntries, // only used for the Lambda case. For bidi streaming, this will be imputed by the testdriver
|
|
25
|
+
stateMap: toStateEntries(state || []),
|
|
26
|
+
partialState: partialState !== false,
|
|
27
|
+
key: key ?? "Till",
|
|
28
|
+
}), undefined, undefined);
|
|
29
|
+
}
|
|
30
|
+
export function toStateEntries(entries) {
|
|
31
|
+
return (entries.map((el) => new StartMessage_StateEntry({ key: el[0], value: el[1] })) || []);
|
|
32
|
+
}
|
|
33
|
+
export function inputMessage(value) {
|
|
34
|
+
if (value !== undefined) {
|
|
35
|
+
return new Message(INPUT_ENTRY_MESSAGE_TYPE, new InputEntryMessage({
|
|
36
|
+
value,
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw new Error("Input message needs either a value or a failure set.");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function outputMessage(value, failure) {
|
|
44
|
+
if (value !== undefined) {
|
|
45
|
+
return new Message(OUTPUT_ENTRY_MESSAGE_TYPE, new OutputEntryMessage({
|
|
46
|
+
result: { case: "value", value: Buffer.from(value) },
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
else if (failure !== undefined) {
|
|
50
|
+
return new Message(OUTPUT_ENTRY_MESSAGE_TYPE, new OutputEntryMessage({
|
|
51
|
+
result: { case: "failure", value: failure },
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return new Message(OUTPUT_ENTRY_MESSAGE_TYPE, new OutputEntryMessage({
|
|
56
|
+
result: {
|
|
57
|
+
case: "failure",
|
|
58
|
+
value: new Failure({
|
|
59
|
+
code: 13,
|
|
60
|
+
message: `Uncaught exception for invocation id abcd`,
|
|
61
|
+
}),
|
|
62
|
+
},
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function getStateMessage(key, value, empty, failure) {
|
|
67
|
+
if (empty === true) {
|
|
68
|
+
return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
|
|
69
|
+
key: Buffer.from(key),
|
|
70
|
+
result: { case: "empty", value: new Empty() },
|
|
71
|
+
}), true);
|
|
72
|
+
}
|
|
73
|
+
else if (value !== undefined) {
|
|
74
|
+
return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
|
|
75
|
+
key: Buffer.from(key),
|
|
76
|
+
result: { case: "value", value: Buffer.from(jsonSerialize(value)) },
|
|
77
|
+
}), true);
|
|
78
|
+
}
|
|
79
|
+
else if (failure !== undefined) {
|
|
80
|
+
return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
|
|
81
|
+
key: Buffer.from(key),
|
|
82
|
+
result: { case: "failure", value: failure },
|
|
83
|
+
}), true);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
|
|
87
|
+
key: Buffer.from(key),
|
|
88
|
+
}), false);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function getStateMessageWithEmptyResult(key) {
|
|
92
|
+
return getStateMessage(key, undefined, true);
|
|
93
|
+
}
|
|
94
|
+
export function getStateKeysMessage(value) {
|
|
95
|
+
if (value === undefined) {
|
|
96
|
+
return new Message(GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, new GetStateKeysEntryMessage({}), false);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
return new Message(GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, new GetStateKeysEntryMessage({
|
|
100
|
+
result: {
|
|
101
|
+
case: "value",
|
|
102
|
+
value: { keys: value.map((b) => Buffer.from(b)) },
|
|
103
|
+
},
|
|
104
|
+
}), true);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export function setStateMessage(key, value) {
|
|
108
|
+
return new Message(SET_STATE_ENTRY_MESSAGE_TYPE, new SetStateEntryMessage({
|
|
109
|
+
key: Buffer.from(key),
|
|
110
|
+
value: Buffer.from(jsonSerialize(value)),
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
export function clearStateMessage(key) {
|
|
114
|
+
return new Message(CLEAR_STATE_ENTRY_MESSAGE_TYPE, new ClearStateEntryMessage({
|
|
115
|
+
key: Buffer.from(key),
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
export function sleepMessage(wakeupTime, empty, failure) {
|
|
119
|
+
if (empty !== undefined) {
|
|
120
|
+
return new Message(SLEEP_ENTRY_MESSAGE_TYPE, new SleepEntryMessage({
|
|
121
|
+
wakeUpTime: protoInt64.parse(wakeupTime),
|
|
122
|
+
result: { case: "empty", value: empty },
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
else if (failure !== undefined) {
|
|
126
|
+
return new Message(SLEEP_ENTRY_MESSAGE_TYPE, new SleepEntryMessage({
|
|
127
|
+
wakeUpTime: protoInt64.parse(wakeupTime),
|
|
128
|
+
result: { case: "failure", value: failure },
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
return new Message(SLEEP_ENTRY_MESSAGE_TYPE, new SleepEntryMessage({
|
|
133
|
+
wakeUpTime: protoInt64.parse(wakeupTime),
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export function completionMessage(index,
|
|
138
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
139
|
+
value, empty, failure) {
|
|
140
|
+
if (value !== undefined) {
|
|
141
|
+
return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
|
|
142
|
+
entryIndex: index,
|
|
143
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
144
|
+
result: { case: "value", value: Buffer.from(value) },
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
else if (empty) {
|
|
148
|
+
return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
|
|
149
|
+
entryIndex: index,
|
|
150
|
+
result: { case: "empty", value: new Empty() },
|
|
151
|
+
}));
|
|
152
|
+
}
|
|
153
|
+
else if (failure != undefined) {
|
|
154
|
+
return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
|
|
155
|
+
entryIndex: index,
|
|
156
|
+
result: { case: "failure", value: failure },
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
|
|
161
|
+
entryIndex: index,
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export function completionMessageWithEmpty(index) {
|
|
166
|
+
return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
|
|
167
|
+
entryIndex: index,
|
|
168
|
+
result: { case: "empty", value: new Empty() },
|
|
169
|
+
}));
|
|
170
|
+
}
|
|
171
|
+
export function ackMessage(index) {
|
|
172
|
+
return new Message(ENTRY_ACK_MESSAGE_TYPE, new EntryAckMessage({
|
|
173
|
+
entryIndex: index,
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
export function invokeMessage(serviceName, handlerName, parameter, value, failure, key) {
|
|
177
|
+
if (value != undefined) {
|
|
178
|
+
return new Message(INVOKE_ENTRY_MESSAGE_TYPE, new CallEntryMessage({
|
|
179
|
+
serviceName: serviceName,
|
|
180
|
+
handlerName: handlerName,
|
|
181
|
+
parameter: Buffer.from(parameter),
|
|
182
|
+
result: { case: "value", value: value },
|
|
183
|
+
key,
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
else if (failure != undefined) {
|
|
187
|
+
return new Message(INVOKE_ENTRY_MESSAGE_TYPE, new CallEntryMessage({
|
|
188
|
+
serviceName: serviceName,
|
|
189
|
+
handlerName: handlerName,
|
|
190
|
+
parameter: Buffer.from(parameter),
|
|
191
|
+
result: { case: "failure", value: failure },
|
|
192
|
+
key,
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
return new Message(INVOKE_ENTRY_MESSAGE_TYPE, new CallEntryMessage({
|
|
197
|
+
serviceName: serviceName,
|
|
198
|
+
handlerName: handlerName,
|
|
199
|
+
parameter: Buffer.from(parameter),
|
|
200
|
+
key,
|
|
201
|
+
}));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
export function backgroundInvokeMessage(serviceName, handlerName, parameter, invokeTime, key) {
|
|
205
|
+
return invokeTime
|
|
206
|
+
? new Message(BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, new OneWayCallEntryMessage({
|
|
207
|
+
serviceName: serviceName,
|
|
208
|
+
handlerName: handlerName,
|
|
209
|
+
parameter: Buffer.from(parameter),
|
|
210
|
+
invokeTime: protoInt64.parse(invokeTime),
|
|
211
|
+
key,
|
|
212
|
+
}))
|
|
213
|
+
: new Message(BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, new OneWayCallEntryMessage({
|
|
214
|
+
serviceName: serviceName,
|
|
215
|
+
handlerName: handlerName,
|
|
216
|
+
parameter: Buffer.from(parameter),
|
|
217
|
+
}));
|
|
218
|
+
}
|
|
219
|
+
export function sideEffectMessage(value, failure, name) {
|
|
220
|
+
if (value !== undefined) {
|
|
221
|
+
return new Message(SIDE_EFFECT_ENTRY_MESSAGE_TYPE, new RunEntryMessage({
|
|
222
|
+
name,
|
|
223
|
+
result: { case: "value", value: Buffer.from(JSON.stringify(value)) },
|
|
224
|
+
}), false, true);
|
|
225
|
+
}
|
|
226
|
+
else if (failure !== undefined) {
|
|
227
|
+
return new Message(SIDE_EFFECT_ENTRY_MESSAGE_TYPE, new RunEntryMessage({
|
|
228
|
+
name,
|
|
229
|
+
result: { case: "failure", value: failure },
|
|
230
|
+
}), false, true);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
return new Message(SIDE_EFFECT_ENTRY_MESSAGE_TYPE, new RunEntryMessage({ name }), false, true);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
export function awakeableMessage(payload, failure) {
|
|
237
|
+
if (payload) {
|
|
238
|
+
return new Message(AWAKEABLE_ENTRY_MESSAGE_TYPE, new AwakeableEntryMessage({
|
|
239
|
+
result: { case: "value", value: Buffer.from(JSON.stringify(payload)) },
|
|
240
|
+
}));
|
|
241
|
+
}
|
|
242
|
+
else if (failure) {
|
|
243
|
+
return new Message(AWAKEABLE_ENTRY_MESSAGE_TYPE, new AwakeableEntryMessage({
|
|
244
|
+
result: { case: "failure", value: failure },
|
|
245
|
+
}));
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
return new Message(AWAKEABLE_ENTRY_MESSAGE_TYPE, new AwakeableEntryMessage());
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
export function resolveAwakeableMessage(id, payload) {
|
|
252
|
+
return new Message(COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, new CompleteAwakeableEntryMessage({
|
|
253
|
+
id: id,
|
|
254
|
+
result: { case: "value", value: Buffer.from(JSON.stringify(payload)) },
|
|
255
|
+
}));
|
|
256
|
+
}
|
|
257
|
+
export function rejectAwakeableMessage(id, reason) {
|
|
258
|
+
return new Message(COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, new CompleteAwakeableEntryMessage({
|
|
259
|
+
id: id,
|
|
260
|
+
result: {
|
|
261
|
+
case: "failure",
|
|
262
|
+
value: { code: UNKNOWN_ERROR_CODE, message: reason },
|
|
263
|
+
},
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
266
|
+
export function suspensionMessage(entryIndices) {
|
|
267
|
+
return new Message(SUSPENSION_MESSAGE_TYPE, new SuspensionMessage({
|
|
268
|
+
entryIndexes: entryIndices,
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
271
|
+
export function combinatorEntryMessage(combinatorId, journalEntriesOrder) {
|
|
272
|
+
return new Message(COMBINATOR_ENTRY_MESSAGE, new CombinatorEntryMessage({
|
|
273
|
+
combinatorId,
|
|
274
|
+
journalEntriesOrder,
|
|
275
|
+
}), undefined, true);
|
|
276
|
+
}
|
|
277
|
+
export function failure(msg, code = INTERNAL_ERROR_CODE) {
|
|
278
|
+
return new Failure({ code: code, message: msg });
|
|
279
|
+
}
|
|
280
|
+
export function greetRequest(myName) {
|
|
281
|
+
const str = JSON.stringify({ name: myName });
|
|
282
|
+
return Buffer.from(str);
|
|
283
|
+
}
|
|
284
|
+
export function greetResponse(myGreeting) {
|
|
285
|
+
const str = JSON.stringify({ greeting: myGreeting });
|
|
286
|
+
return Buffer.from(str);
|
|
287
|
+
}
|
|
288
|
+
export function errorMessage(failure, ctx) {
|
|
289
|
+
return new Message(ERROR_MESSAGE_TYPE, new ErrorMessage({
|
|
290
|
+
message: failure.message,
|
|
291
|
+
code: failure.code,
|
|
292
|
+
relatedEntryIndex: ctx?.relatedEntryIndex,
|
|
293
|
+
relatedEntryType: ctx?.relatedEntryType
|
|
294
|
+
? Number(ctx.relatedEntryType)
|
|
295
|
+
: undefined,
|
|
296
|
+
relatedEntryName: ctx?.relatedEntryName,
|
|
297
|
+
}));
|
|
298
|
+
}
|
|
299
|
+
export function checkError(outputMsg, errorMessage, code = INTERNAL_ERROR_CODE) {
|
|
300
|
+
expect(outputMsg.messageType).toEqual(ERROR_MESSAGE_TYPE);
|
|
301
|
+
expect(outputMsg.message.code).toStrictEqual(code);
|
|
302
|
+
expect(outputMsg.message.message).toContain(errorMessage);
|
|
303
|
+
}
|
|
304
|
+
export function checkJournalMismatchError(outputMsg) {
|
|
305
|
+
checkError(outputMsg, "Journal mismatch: Replayed journal entries did not correspond to the user code. The user code has to be deterministic!", RestateErrorCodes.JOURNAL_MISMATCH);
|
|
306
|
+
}
|
|
307
|
+
export function checkTerminalError(outputMsg, errorMessage) {
|
|
308
|
+
expect(outputMsg.messageType).toEqual(OUTPUT_ENTRY_MESSAGE_TYPE);
|
|
309
|
+
const res = outputMsg.message.result;
|
|
310
|
+
expect(res.case === "failure" && res.value.message).toContain(errorMessage);
|
|
311
|
+
}
|
|
312
|
+
export function getAwakeableId(entryIndex) {
|
|
313
|
+
const encodedEntryIndex = Buffer.alloc(4 /* Size of u32 */);
|
|
314
|
+
encodedEntryIndex.writeUInt32BE(entryIndex);
|
|
315
|
+
return (AWAKEABLE_IDENTIFIER_PREFIX +
|
|
316
|
+
Buffer.concat([
|
|
317
|
+
Buffer.from("f311f1fdcb9863f0018bd3400ecd7d69b547204e776218b2", "hex"),
|
|
318
|
+
encodedEntryIndex,
|
|
319
|
+
]).toString("base64url"));
|
|
320
|
+
}
|
|
321
|
+
export function keyVal(key, value) {
|
|
322
|
+
return [Buffer.from(key), Buffer.from(JSON.stringify(value))];
|
|
323
|
+
}
|
|
324
|
+
export const END_MESSAGE = new Message(END_MESSAGE_TYPE, new EndMessage());
|
|
325
|
+
export const CLEAR_ALL_STATE_ENTRY_MESSAGE = new Message(CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE, new ClearAllStateEntryMessage());
|
|
326
|
+
//# sourceMappingURL=protoutils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protoutils.js","sourceRoot":"","sources":["../../../test/protoutils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service_bind.test.d.ts","sourceRoot":"","sources":["../../../test/service_bind.test.ts"],"names":[],"mappings":""}
|