@restatedev/restate-sdk 1.3.3 → 1.4.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 +4 -4
- package/dist/cjs/src/context.d.ts +35 -2
- package/dist/cjs/src/context.d.ts.map +1 -1
- package/dist/cjs/src/context.js +8 -8
- package/dist/cjs/src/context.js.map +1 -1
- package/dist/cjs/src/context_impl.d.ts +61 -17
- package/dist/cjs/src/context_impl.d.ts.map +1 -1
- package/dist/cjs/src/context_impl.js +529 -316
- package/dist/cjs/src/context_impl.js.map +1 -1
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts +2 -3
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/endpoint_builder.js +4 -9
- package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +1 -2
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -1
- package/dist/cjs/src/endpoint/handlers/generic.d.ts +15 -0
- package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/handlers/generic.js +185 -83
- package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -1
- package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +300 -0
- package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js +1646 -0
- package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +1 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +1 -2
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -1
- package/dist/cjs/src/endpoint/node_endpoint.d.ts +1 -2
- package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -1
- package/dist/cjs/src/endpoint/node_endpoint.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/logger.js +1 -1
- package/dist/cjs/src/logger.js.map +1 -1
- package/dist/cjs/src/types/components.js +2 -2
- package/dist/cjs/src/types/components.js.map +1 -1
- package/dist/cjs/src/types/errors.d.ts +1 -32
- package/dist/cjs/src/types/errors.d.ts.map +1 -1
- package/dist/cjs/src/types/errors.js +9 -76
- package/dist/cjs/src/types/errors.js.map +1 -1
- package/dist/cjs/src/types/rpc.js +9 -9
- 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/completable_promise.d.ts +9 -0
- package/dist/cjs/src/utils/completable_promise.d.ts.map +1 -0
- package/dist/cjs/src/utils/completable_promise.js +34 -0
- package/dist/cjs/src/utils/completable_promise.js.map +1 -0
- package/dist/cjs/src/utils/rand.d.ts +1 -1
- package/dist/cjs/src/utils/rand.d.ts.map +1 -1
- package/dist/cjs/src/utils/rand.js +1 -1
- package/dist/cjs/src/utils/rand.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/context.d.ts +35 -2
- package/dist/esm/src/context.d.ts.map +1 -1
- package/dist/esm/src/context.js +8 -8
- package/dist/esm/src/context.js.map +1 -1
- package/dist/esm/src/context_impl.d.ts +61 -17
- package/dist/esm/src/context_impl.d.ts.map +1 -1
- package/dist/esm/src/context_impl.js +531 -318
- package/dist/esm/src/context_impl.js.map +1 -1
- package/dist/esm/src/endpoint/endpoint_builder.d.ts +2 -3
- package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -1
- package/dist/esm/src/endpoint/endpoint_builder.js +4 -9
- package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -1
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts +1 -2
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -1
- package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -1
- package/dist/esm/src/endpoint/handlers/generic.d.ts +15 -0
- package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -1
- package/dist/esm/src/endpoint/handlers/generic.js +162 -84
- package/dist/esm/src/endpoint/handlers/generic.js.map +1 -1
- package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +300 -0
- package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js +1636 -0
- package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +1 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts +1 -2
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -1
- package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -1
- package/dist/esm/src/endpoint/node_endpoint.d.ts +1 -2
- package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -1
- package/dist/esm/src/endpoint/node_endpoint.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/logger.js +1 -1
- package/dist/esm/src/logger.js.map +1 -1
- package/dist/esm/src/types/components.js +2 -2
- package/dist/esm/src/types/components.js.map +1 -1
- package/dist/esm/src/types/errors.d.ts +1 -32
- package/dist/esm/src/types/errors.d.ts.map +1 -1
- package/dist/esm/src/types/errors.js +8 -70
- package/dist/esm/src/types/errors.js.map +1 -1
- package/dist/esm/src/types/rpc.js +9 -9
- 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/completable_promise.d.ts +9 -0
- package/dist/esm/src/utils/completable_promise.d.ts.map +1 -0
- package/dist/esm/src/utils/completable_promise.js +30 -0
- package/dist/esm/src/utils/completable_promise.js.map +1 -0
- package/dist/esm/src/utils/rand.d.ts +1 -1
- package/dist/esm/src/utils/rand.d.ts.map +1 -1
- package/dist/esm/src/utils/rand.js +1 -1
- package/dist/esm/src/utils/rand.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -6
- package/dist/cjs/src/connection/connection.d.ts +0 -84
- package/dist/cjs/src/connection/connection.d.ts.map +0 -1
- package/dist/cjs/src/connection/connection.js +0 -181
- package/dist/cjs/src/connection/connection.js.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/basex.d.ts +0 -10
- package/dist/cjs/src/endpoint/request_signing/basex.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/basex.js +0 -138
- package/dist/cjs/src/endpoint/request_signing/basex.js.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts +0 -17
- package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.js +0 -80
- package/dist/cjs/src/endpoint/request_signing/ed25519.js.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/v1.d.ts +0 -10
- package/dist/cjs/src/endpoint/request_signing/v1.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/v1.js +0 -151
- package/dist/cjs/src/endpoint/request_signing/v1.js.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/validate.d.ts +0 -19
- package/dist/cjs/src/endpoint/request_signing/validate.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/request_signing/validate.js +0 -45
- package/dist/cjs/src/endpoint/request_signing/validate.js.map +0 -1
- package/dist/cjs/src/generated/proto/discovery_pb.d.ts +0 -18
- package/dist/cjs/src/generated/proto/discovery_pb.d.ts.map +0 -1
- package/dist/cjs/src/generated/proto/discovery_pb.js +0 -40
- package/dist/cjs/src/generated/proto/discovery_pb.js.map +0 -1
- package/dist/cjs/src/generated/proto/javascript_pb.d.ts +0 -26
- package/dist/cjs/src/generated/proto/javascript_pb.d.ts.map +0 -1
- package/dist/cjs/src/generated/proto/javascript_pb.js +0 -52
- package/dist/cjs/src/generated/proto/javascript_pb.js.map +0 -1
- package/dist/cjs/src/generated/proto/protocol_pb.d.ts +0 -1051
- package/dist/cjs/src/generated/proto/protocol_pb.d.ts.map +0 -1
- package/dist/cjs/src/generated/proto/protocol_pb.js +0 -1288
- package/dist/cjs/src/generated/proto/protocol_pb.js.map +0 -1
- package/dist/cjs/src/invocation.d.ts +0 -48
- package/dist/cjs/src/invocation.d.ts.map +0 -1
- package/dist/cjs/src/invocation.js +0 -158
- package/dist/cjs/src/invocation.js.map +0 -1
- package/dist/cjs/src/io/decoder.d.ts +0 -9
- package/dist/cjs/src/io/decoder.d.ts.map +0 -1
- package/dist/cjs/src/io/decoder.js +0 -137
- package/dist/cjs/src/io/decoder.js.map +0 -1
- package/dist/cjs/src/io/encoder.d.ts +0 -4
- package/dist/cjs/src/io/encoder.d.ts.map +0 -1
- package/dist/cjs/src/io/encoder.js +0 -41
- package/dist/cjs/src/io/encoder.js.map +0 -1
- package/dist/cjs/src/journal.d.ts +0 -52
- package/dist/cjs/src/journal.d.ts.map +0 -1
- package/dist/cjs/src/journal.js +0 -438
- package/dist/cjs/src/journal.js.map +0 -1
- package/dist/cjs/src/local_state_store.d.ts +0 -14
- package/dist/cjs/src/local_state_store.d.ts.map +0 -1
- package/dist/cjs/src/local_state_store.js +0 -83
- package/dist/cjs/src/local_state_store.js.map +0 -1
- package/dist/cjs/src/promise_combinator_tracker.d.ts +0 -29
- package/dist/cjs/src/promise_combinator_tracker.d.ts.map +0 -1
- package/dist/cjs/src/promise_combinator_tracker.js +0 -130
- package/dist/cjs/src/promise_combinator_tracker.js.map +0 -1
- package/dist/cjs/src/state_machine.d.ts +0 -85
- package/dist/cjs/src/state_machine.d.ts.map +0 -1
- package/dist/cjs/src/state_machine.js +0 -426
- package/dist/cjs/src/state_machine.js.map +0 -1
- package/dist/cjs/src/types/protocol.d.ts +0 -40
- package/dist/cjs/src/types/protocol.d.ts.map +0 -1
- package/dist/cjs/src/types/protocol.js +0 -237
- package/dist/cjs/src/types/protocol.js.map +0 -1
- package/dist/cjs/src/types/types.d.ts +0 -20
- package/dist/cjs/src/types/types.d.ts.map +0 -1
- package/dist/cjs/src/types/types.js +0 -110
- package/dist/cjs/src/types/types.js.map +0 -1
- package/dist/cjs/src/utils/message_logger.d.ts +0 -7
- package/dist/cjs/src/utils/message_logger.d.ts.map +0 -1
- package/dist/cjs/src/utils/message_logger.js +0 -79
- package/dist/cjs/src/utils/message_logger.js.map +0 -1
- package/dist/cjs/src/utils/promises.d.ts +0 -15
- package/dist/cjs/src/utils/promises.d.ts.map +0 -1
- package/dist/cjs/src/utils/promises.js +0 -68
- package/dist/cjs/src/utils/promises.js.map +0 -1
- package/dist/cjs/src/utils/utils.d.ts +0 -3
- package/dist/cjs/src/utils/utils.d.ts.map +0 -1
- package/dist/cjs/src/utils/utils.js +0 -105
- package/dist/cjs/src/utils/utils.js.map +0 -1
- package/dist/cjs/test/awakeable.test.d.ts +0 -2
- package/dist/cjs/test/awakeable.test.d.ts.map +0 -1
- package/dist/cjs/test/awakeable.test.js +0 -141
- package/dist/cjs/test/awakeable.test.js.map +0 -1
- package/dist/cjs/test/complete_awakeable.test.d.ts +0 -2
- package/dist/cjs/test/complete_awakeable.test.d.ts.map +0 -1
- package/dist/cjs/test/complete_awakeable.test.js +0 -123
- package/dist/cjs/test/complete_awakeable.test.js.map +0 -1
- package/dist/cjs/test/eager_state.test.d.ts +0 -2
- package/dist/cjs/test/eager_state.test.d.ts.map +0 -1
- package/dist/cjs/test/eager_state.test.js +0 -280
- package/dist/cjs/test/eager_state.test.js.map +0 -1
- package/dist/cjs/test/get_and_set_state.test.d.ts +0 -2
- package/dist/cjs/test/get_and_set_state.test.d.ts.map +0 -1
- package/dist/cjs/test/get_and_set_state.test.js +0 -233
- package/dist/cjs/test/get_and_set_state.test.js.map +0 -1
- package/dist/cjs/test/get_state.test.d.ts +0 -2
- package/dist/cjs/test/get_state.test.d.ts.map +0 -1
- package/dist/cjs/test/get_state.test.js +0 -328
- package/dist/cjs/test/get_state.test.js.map +0 -1
- package/dist/cjs/test/lambda.test.d.ts +0 -2
- package/dist/cjs/test/lambda.test.d.ts.map +0 -1
- package/dist/cjs/test/lambda.test.js +0 -258
- package/dist/cjs/test/lambda.test.js.map +0 -1
- package/dist/cjs/test/message_coders.test.d.ts +0 -2
- package/dist/cjs/test/message_coders.test.d.ts.map +0 -1
- package/dist/cjs/test/message_coders.test.js +0 -37
- package/dist/cjs/test/message_coders.test.js.map +0 -1
- package/dist/cjs/test/promise_combinator_tracker.test.d.ts +0 -2
- package/dist/cjs/test/promise_combinator_tracker.test.d.ts.map +0 -1
- package/dist/cjs/test/promise_combinator_tracker.test.js +0 -156
- package/dist/cjs/test/promise_combinator_tracker.test.js.map +0 -1
- package/dist/cjs/test/promise_combinators.test.d.ts +0 -2
- package/dist/cjs/test/promise_combinators.test.d.ts.map +0 -1
- package/dist/cjs/test/promise_combinators.test.js +0 -433
- package/dist/cjs/test/promise_combinators.test.js.map +0 -1
- package/dist/cjs/test/promises.test.d.ts +0 -2
- package/dist/cjs/test/promises.test.d.ts.map +0 -1
- package/dist/cjs/test/promises.test.js +0 -32
- package/dist/cjs/test/promises.test.js.map +0 -1
- package/dist/cjs/test/protocol_stream.test.d.ts +0 -2
- package/dist/cjs/test/protocol_stream.test.d.ts.map +0 -1
- package/dist/cjs/test/protocol_stream.test.js +0 -243
- package/dist/cjs/test/protocol_stream.test.js.map +0 -1
- package/dist/cjs/test/protoutils.d.ts +0 -44
- package/dist/cjs/test/protoutils.d.ts.map +0 -1
- package/dist/cjs/test/protoutils.js +0 -368
- package/dist/cjs/test/protoutils.js.map +0 -1
- package/dist/cjs/test/service_bind.test.d.ts +0 -2
- package/dist/cjs/test/service_bind.test.d.ts.map +0 -1
- package/dist/cjs/test/service_bind.test.js +0 -118
- package/dist/cjs/test/service_bind.test.js.map +0 -1
- package/dist/cjs/test/side_effect.test.d.ts +0 -2
- package/dist/cjs/test/side_effect.test.d.ts.map +0 -1
- package/dist/cjs/test/side_effect.test.js +0 -133
- package/dist/cjs/test/side_effect.test.js.map +0 -1
- package/dist/cjs/test/sleep.test.d.ts +0 -2
- package/dist/cjs/test/sleep.test.d.ts.map +0 -1
- package/dist/cjs/test/sleep.test.js +0 -224
- package/dist/cjs/test/sleep.test.js.map +0 -1
- package/dist/cjs/test/state_keys.test.d.ts +0 -2
- package/dist/cjs/test/state_keys.test.d.ts.map +0 -1
- package/dist/cjs/test/state_keys.test.js +0 -92
- package/dist/cjs/test/state_keys.test.js.map +0 -1
- package/dist/cjs/test/state_machine.test.d.ts +0 -2
- package/dist/cjs/test/state_machine.test.d.ts.map +0 -1
- package/dist/cjs/test/state_machine.test.js +0 -42
- package/dist/cjs/test/state_machine.test.js.map +0 -1
- package/dist/cjs/test/testdriver.d.ts +0 -39
- package/dist/cjs/test/testdriver.d.ts.map +0 -1
- package/dist/cjs/test/testdriver.js +0 -188
- package/dist/cjs/test/testdriver.js.map +0 -1
- package/dist/cjs/test/utils.test.d.ts +0 -2
- package/dist/cjs/test/utils.test.d.ts.map +0 -1
- package/dist/cjs/test/utils.test.js +0 -93
- package/dist/cjs/test/utils.test.js.map +0 -1
- package/dist/esm/src/connection/connection.d.ts +0 -84
- package/dist/esm/src/connection/connection.d.ts.map +0 -1
- package/dist/esm/src/connection/connection.js +0 -177
- package/dist/esm/src/connection/connection.js.map +0 -1
- package/dist/esm/src/endpoint/request_signing/basex.d.ts +0 -10
- package/dist/esm/src/endpoint/request_signing/basex.d.ts.map +0 -1
- package/dist/esm/src/endpoint/request_signing/basex.js +0 -136
- package/dist/esm/src/endpoint/request_signing/basex.js.map +0 -1
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts +0 -17
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
- package/dist/esm/src/endpoint/request_signing/ed25519.js +0 -52
- package/dist/esm/src/endpoint/request_signing/ed25519.js.map +0 -1
- package/dist/esm/src/endpoint/request_signing/v1.d.ts +0 -10
- package/dist/esm/src/endpoint/request_signing/v1.d.ts.map +0 -1
- package/dist/esm/src/endpoint/request_signing/v1.js +0 -143
- package/dist/esm/src/endpoint/request_signing/v1.js.map +0 -1
- package/dist/esm/src/endpoint/request_signing/validate.d.ts +0 -19
- package/dist/esm/src/endpoint/request_signing/validate.d.ts.map +0 -1
- package/dist/esm/src/endpoint/request_signing/validate.js +0 -40
- package/dist/esm/src/endpoint/request_signing/validate.js.map +0 -1
- package/dist/esm/src/generated/proto/discovery_pb.d.ts +0 -18
- package/dist/esm/src/generated/proto/discovery_pb.d.ts.map +0 -1
- package/dist/esm/src/generated/proto/discovery_pb.js +0 -37
- package/dist/esm/src/generated/proto/discovery_pb.js.map +0 -1
- package/dist/esm/src/generated/proto/javascript_pb.d.ts +0 -26
- package/dist/esm/src/generated/proto/javascript_pb.d.ts.map +0 -1
- package/dist/esm/src/generated/proto/javascript_pb.js +0 -48
- package/dist/esm/src/generated/proto/javascript_pb.js.map +0 -1
- package/dist/esm/src/generated/proto/protocol_pb.d.ts +0 -1051
- package/dist/esm/src/generated/proto/protocol_pb.d.ts.map +0 -1
- package/dist/esm/src/generated/proto/protocol_pb.js +0 -1258
- package/dist/esm/src/generated/proto/protocol_pb.js.map +0 -1
- package/dist/esm/src/invocation.d.ts +0 -48
- package/dist/esm/src/invocation.d.ts.map +0 -1
- package/dist/esm/src/invocation.js +0 -153
- package/dist/esm/src/invocation.js.map +0 -1
- package/dist/esm/src/io/decoder.d.ts +0 -9
- package/dist/esm/src/io/decoder.d.ts.map +0 -1
- package/dist/esm/src/io/decoder.js +0 -128
- package/dist/esm/src/io/decoder.js.map +0 -1
- package/dist/esm/src/io/encoder.d.ts +0 -4
- package/dist/esm/src/io/encoder.d.ts.map +0 -1
- package/dist/esm/src/io/encoder.js +0 -36
- package/dist/esm/src/io/encoder.js.map +0 -1
- package/dist/esm/src/journal.d.ts +0 -52
- package/dist/esm/src/journal.d.ts.map +0 -1
- package/dist/esm/src/journal.js +0 -410
- package/dist/esm/src/journal.js.map +0 -1
- package/dist/esm/src/local_state_store.d.ts +0 -14
- package/dist/esm/src/local_state_store.d.ts.map +0 -1
- package/dist/esm/src/local_state_store.js +0 -79
- package/dist/esm/src/local_state_store.js.map +0 -1
- package/dist/esm/src/promise_combinator_tracker.d.ts +0 -29
- package/dist/esm/src/promise_combinator_tracker.d.ts.map +0 -1
- package/dist/esm/src/promise_combinator_tracker.js +0 -125
- package/dist/esm/src/promise_combinator_tracker.js.map +0 -1
- package/dist/esm/src/state_machine.d.ts +0 -85
- package/dist/esm/src/state_machine.d.ts.map +0 -1
- package/dist/esm/src/state_machine.js +0 -399
- package/dist/esm/src/state_machine.js.map +0 -1
- package/dist/esm/src/types/protocol.d.ts +0 -40
- package/dist/esm/src/types/protocol.d.ts.map +0 -1
- package/dist/esm/src/types/protocol.js +0 -206
- package/dist/esm/src/types/protocol.js.map +0 -1
- package/dist/esm/src/types/types.d.ts +0 -20
- package/dist/esm/src/types/types.d.ts.map +0 -1
- package/dist/esm/src/types/types.js +0 -105
- package/dist/esm/src/types/types.js.map +0 -1
- package/dist/esm/src/utils/message_logger.d.ts +0 -7
- package/dist/esm/src/utils/message_logger.d.ts.map +0 -1
- package/dist/esm/src/utils/message_logger.js +0 -75
- package/dist/esm/src/utils/message_logger.js.map +0 -1
- package/dist/esm/src/utils/promises.d.ts +0 -15
- package/dist/esm/src/utils/promises.d.ts.map +0 -1
- package/dist/esm/src/utils/promises.js +0 -63
- package/dist/esm/src/utils/promises.js.map +0 -1
- package/dist/esm/src/utils/utils.d.ts +0 -3
- package/dist/esm/src/utils/utils.d.ts.map +0 -1
- package/dist/esm/src/utils/utils.js +0 -101
- package/dist/esm/src/utils/utils.js.map +0 -1
- package/dist/esm/test/awakeable.test.d.ts +0 -2
- package/dist/esm/test/awakeable.test.d.ts.map +0 -1
- package/dist/esm/test/awakeable.test.js +0 -139
- package/dist/esm/test/awakeable.test.js.map +0 -1
- package/dist/esm/test/complete_awakeable.test.d.ts +0 -2
- package/dist/esm/test/complete_awakeable.test.d.ts.map +0 -1
- package/dist/esm/test/complete_awakeable.test.js +0 -121
- package/dist/esm/test/complete_awakeable.test.js.map +0 -1
- package/dist/esm/test/eager_state.test.d.ts +0 -2
- package/dist/esm/test/eager_state.test.d.ts.map +0 -1
- package/dist/esm/test/eager_state.test.js +0 -278
- package/dist/esm/test/eager_state.test.js.map +0 -1
- package/dist/esm/test/get_and_set_state.test.d.ts +0 -2
- package/dist/esm/test/get_and_set_state.test.d.ts.map +0 -1
- package/dist/esm/test/get_and_set_state.test.js +0 -231
- package/dist/esm/test/get_and_set_state.test.js.map +0 -1
- package/dist/esm/test/get_state.test.d.ts +0 -2
- package/dist/esm/test/get_state.test.d.ts.map +0 -1
- package/dist/esm/test/get_state.test.js +0 -326
- package/dist/esm/test/get_state.test.js.map +0 -1
- package/dist/esm/test/lambda.test.d.ts +0 -2
- package/dist/esm/test/lambda.test.d.ts.map +0 -1
- package/dist/esm/test/lambda.test.js +0 -233
- package/dist/esm/test/lambda.test.js.map +0 -1
- package/dist/esm/test/message_coders.test.d.ts +0 -2
- package/dist/esm/test/message_coders.test.d.ts.map +0 -1
- package/dist/esm/test/message_coders.test.js +0 -35
- package/dist/esm/test/message_coders.test.js.map +0 -1
- package/dist/esm/test/promise_combinator_tracker.test.d.ts +0 -2
- package/dist/esm/test/promise_combinator_tracker.test.d.ts.map +0 -1
- package/dist/esm/test/promise_combinator_tracker.test.js +0 -154
- package/dist/esm/test/promise_combinator_tracker.test.js.map +0 -1
- package/dist/esm/test/promise_combinators.test.d.ts +0 -2
- package/dist/esm/test/promise_combinators.test.d.ts.map +0 -1
- package/dist/esm/test/promise_combinators.test.js +0 -431
- package/dist/esm/test/promise_combinators.test.js.map +0 -1
- package/dist/esm/test/promises.test.d.ts +0 -2
- package/dist/esm/test/promises.test.d.ts.map +0 -1
- package/dist/esm/test/promises.test.js +0 -30
- package/dist/esm/test/promises.test.js.map +0 -1
- package/dist/esm/test/protocol_stream.test.d.ts +0 -2
- package/dist/esm/test/protocol_stream.test.d.ts.map +0 -1
- package/dist/esm/test/protocol_stream.test.js +0 -218
- package/dist/esm/test/protocol_stream.test.js.map +0 -1
- package/dist/esm/test/protoutils.d.ts +0 -44
- package/dist/esm/test/protoutils.d.ts.map +0 -1
- package/dist/esm/test/protoutils.js +0 -335
- package/dist/esm/test/protoutils.js.map +0 -1
- package/dist/esm/test/service_bind.test.d.ts +0 -2
- package/dist/esm/test/service_bind.test.d.ts.map +0 -1
- package/dist/esm/test/service_bind.test.js +0 -93
- package/dist/esm/test/service_bind.test.js.map +0 -1
- package/dist/esm/test/side_effect.test.d.ts +0 -2
- package/dist/esm/test/side_effect.test.d.ts.map +0 -1
- package/dist/esm/test/side_effect.test.js +0 -131
- package/dist/esm/test/side_effect.test.js.map +0 -1
- package/dist/esm/test/sleep.test.d.ts +0 -2
- package/dist/esm/test/sleep.test.d.ts.map +0 -1
- package/dist/esm/test/sleep.test.js +0 -222
- package/dist/esm/test/sleep.test.js.map +0 -1
- package/dist/esm/test/state_keys.test.d.ts +0 -2
- package/dist/esm/test/state_keys.test.d.ts.map +0 -1
- package/dist/esm/test/state_keys.test.js +0 -90
- package/dist/esm/test/state_keys.test.js.map +0 -1
- package/dist/esm/test/state_machine.test.d.ts +0 -2
- package/dist/esm/test/state_machine.test.d.ts.map +0 -1
- package/dist/esm/test/state_machine.test.js +0 -40
- package/dist/esm/test/state_machine.test.js.map +0 -1
- package/dist/esm/test/testdriver.d.ts +0 -39
- package/dist/esm/test/testdriver.d.ts.map +0 -1
- package/dist/esm/test/testdriver.js +0 -182
- package/dist/esm/test/testdriver.js.map +0 -1
- package/dist/esm/test/utils.test.d.ts +0 -2
- package/dist/esm/test/utils.test.d.ts.map +0 -1
- package/dist/esm/test/utils.test.js +0 -91
- package/dist/esm/test/utils.test.js.map +0 -1
|
@@ -1,188 +0,0 @@
|
|
|
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
|
-
type: "invoke",
|
|
127
|
-
componentName: options.service ? options.service : this.defaultService,
|
|
128
|
-
handlerName: options.handler ? options.handler : this.defaultHandler,
|
|
129
|
-
});
|
|
130
|
-
if (!method) {
|
|
131
|
-
throw new Error("Can't find the handler to execute");
|
|
132
|
-
}
|
|
133
|
-
const invocationBuilder = new invocation_js_1.InvocationBuilder(method);
|
|
134
|
-
replayMessages.forEach((el) => invocationBuilder.handleMessage(el));
|
|
135
|
-
const invocation = invocationBuilder.build();
|
|
136
|
-
const testConnection = new TestConnection();
|
|
137
|
-
const stateMachine = new state_machine_js_1.StateMachine(testConnection, invocation, method.kind(),
|
|
138
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
139
|
-
restateServer.builder.logger, invocation.inferLoggerContext(), []);
|
|
140
|
-
const completed = stateMachine.invoke();
|
|
141
|
-
// we send the completions here. Because we don't await the messages that we send the completions for,
|
|
142
|
-
// we enqueue those completions in the event loop, so they get processed when everything else is done.
|
|
143
|
-
// This is highly fragile!!!
|
|
144
|
-
completionMessages.forEach((el) => {
|
|
145
|
-
setTimeout(() => stateMachine.handleMessage(el));
|
|
146
|
-
});
|
|
147
|
-
// Set the input channel to closed a bit after sending the messages
|
|
148
|
-
// to make the service finish up the work it can do and suspend or send back a response.
|
|
149
|
-
setTimeout(() => stateMachine.handleInputClosed());
|
|
150
|
-
await completed;
|
|
151
|
-
return Promise.resolve(testConnection.sentMessages());
|
|
152
|
-
}
|
|
153
|
-
serviceDiscovery() {
|
|
154
|
-
const restateServer = new TestRestateServer();
|
|
155
|
-
restateServer.bind(this.definition);
|
|
156
|
-
const discovery = restateServer
|
|
157
|
-
.componentByName(this.defaultService)
|
|
158
|
-
?.discovery();
|
|
159
|
-
if (discovery) {
|
|
160
|
-
return discovery;
|
|
161
|
-
}
|
|
162
|
-
throw new Error("Discovery should not be null for " + this.defaultService);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
exports.UUT = UUT;
|
|
166
|
-
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
167
|
-
function testService(definition) {
|
|
168
|
-
return new UUT(definition);
|
|
169
|
-
}
|
|
170
|
-
exports.testService = testService;
|
|
171
|
-
class TestConnection {
|
|
172
|
-
result = [];
|
|
173
|
-
headers() {
|
|
174
|
-
return new Map();
|
|
175
|
-
}
|
|
176
|
-
send(msg) {
|
|
177
|
-
this.result.push(msg);
|
|
178
|
-
return Promise.resolve();
|
|
179
|
-
}
|
|
180
|
-
async end() {
|
|
181
|
-
// nothing to do
|
|
182
|
-
return Promise.resolve();
|
|
183
|
-
}
|
|
184
|
-
sentMessages() {
|
|
185
|
-
return this.result;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=testdriver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testdriver.js","sourceRoot":"","sources":["../../../test/testdriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../test/utils.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,93 +0,0 @@
|
|
|
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 printing", () => {
|
|
17
|
-
(0, vitest_1.it)("should be able to handle bigInt", () => {
|
|
18
|
-
const myType = {
|
|
19
|
-
a: "Hello!",
|
|
20
|
-
b: 42n,
|
|
21
|
-
};
|
|
22
|
-
(0, utils_js_1.formatMessageAsJson)(myType);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
(0, vitest_1.describe)("rand", () => {
|
|
26
|
-
(0, vitest_1.it)("correctly hashes invocation ids", () => {
|
|
27
|
-
const rand = new rand_js_1.RandImpl(Buffer.from("f311f1fdcb9863f0018bd3400ecd7d69b547204e776218b2", "hex"));
|
|
28
|
-
const actual = Array.from(Array(10)).map(() => rand.u64());
|
|
29
|
-
// These values were produced with the reference implementation:
|
|
30
|
-
// http://xoshiro.di.unimi.it/xoshiro256plusplus.c
|
|
31
|
-
const expected = [
|
|
32
|
-
6541268553928124324n,
|
|
33
|
-
1632128201851599825n,
|
|
34
|
-
3999496359968271420n,
|
|
35
|
-
9099219592091638755n,
|
|
36
|
-
2609122094717920550n,
|
|
37
|
-
16569362788292807660n,
|
|
38
|
-
14955958648458255954n,
|
|
39
|
-
15581072429430901841n,
|
|
40
|
-
4951852598761288088n,
|
|
41
|
-
2380816196140950843n,
|
|
42
|
-
];
|
|
43
|
-
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
44
|
-
});
|
|
45
|
-
(0, vitest_1.it)("produces expected u64 output", () => {
|
|
46
|
-
const rand = new rand_js_1.RandImpl([1n, 2n, 3n, 4n]);
|
|
47
|
-
const actual = Array.from(Array(10)).map(() => rand.u64());
|
|
48
|
-
// These values were produced with the reference implementation:
|
|
49
|
-
// http://xoshiro.di.unimi.it/xoshiro256plusplus.c
|
|
50
|
-
const expected = [
|
|
51
|
-
41943041n,
|
|
52
|
-
58720359n,
|
|
53
|
-
3588806011781223n,
|
|
54
|
-
3591011842654386n,
|
|
55
|
-
9228616714210784205n,
|
|
56
|
-
9973669472204895162n,
|
|
57
|
-
14011001112246962877n,
|
|
58
|
-
12406186145184390807n,
|
|
59
|
-
15849039046786891736n,
|
|
60
|
-
10450023813501588000n,
|
|
61
|
-
];
|
|
62
|
-
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
63
|
-
});
|
|
64
|
-
(0, vitest_1.it)("produces expected random output", () => {
|
|
65
|
-
const rand = new rand_js_1.RandImpl([1n, 2n, 3n, 4n]);
|
|
66
|
-
const actual = Array.from(Array(10)).map(() => rand.random());
|
|
67
|
-
const expected = [
|
|
68
|
-
4.656612984099695e-9, 6.519269457605503e-9, 0.39843750651926946,
|
|
69
|
-
0.3986824029416509, 0.5822761557370711, 0.2997488042907357,
|
|
70
|
-
0.5336032865255543, 0.36335061693258097, 0.5968067925950846,
|
|
71
|
-
0.18570456306457928,
|
|
72
|
-
];
|
|
73
|
-
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
74
|
-
});
|
|
75
|
-
(0, vitest_1.it)("produces expected uuidv4 output", () => {
|
|
76
|
-
const rand = new rand_js_1.RandImpl([1n, 2n, 3n, 4n]);
|
|
77
|
-
const actual = Array.from(Array(10)).map(() => rand.uuidv4());
|
|
78
|
-
const expected = [
|
|
79
|
-
"01008002-0000-4000-a700-800300000000",
|
|
80
|
-
"67008003-00c0-4c00-b200-449901c20c00",
|
|
81
|
-
"cd33c49a-01a2-4280-ba33-eecd8a97698a",
|
|
82
|
-
"bd4a1533-4713-41c2-979e-167991a02bac",
|
|
83
|
-
"d83f078f-0a19-43db-a092-22b24af10591",
|
|
84
|
-
"677c91f7-146e-4769-a4fd-df3793e717e8",
|
|
85
|
-
"f15179b2-f220-4427-8d90-7b5437d9828d",
|
|
86
|
-
"9e97720f-42b8-4d09-a449-914cf221df26",
|
|
87
|
-
"09d0a109-6f11-4ef9-93fa-f013d0ad3808",
|
|
88
|
-
"41eb0e0c-41c9-4828-85d0-59fb901b4df4",
|
|
89
|
-
];
|
|
90
|
-
(0, vitest_1.expect)(actual).toStrictEqual(expected);
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=utils.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../test/utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import type stream from "node:stream/web";
|
|
4
|
-
import type { Message } from "../types/types.js";
|
|
5
|
-
/**
|
|
6
|
-
* A connection from the service/SDK to Restate.
|
|
7
|
-
* Accepts messages to be sent and committed to the journal.
|
|
8
|
-
*/
|
|
9
|
-
export interface Connection {
|
|
10
|
-
send(msg: Message): Promise<void>;
|
|
11
|
-
end(): Promise<void>;
|
|
12
|
-
headers(): ReadonlyMap<string, string | string[] | undefined>;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* A consumer of a message stream from Restate.
|
|
16
|
-
* Messages include journal replay messages and completion messages.
|
|
17
|
-
*/
|
|
18
|
-
export interface RestateStreamConsumer {
|
|
19
|
-
handleMessage(m: Message): boolean;
|
|
20
|
-
handleStreamError(e: Error): void;
|
|
21
|
-
handleInputClosed(): void;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* A stream with Restate Messages, potentially but not necessarily full duplex.
|
|
25
|
-
*
|
|
26
|
-
* This stream handles the following concerns:
|
|
27
|
-
*
|
|
28
|
-
* (1) encoding and decoding of messages to and from raw bytes
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* (2) Input messages can be pipelined to a sequence of consumers. For example, first to a journal,
|
|
32
|
-
* and afterwards to the state machine.
|
|
33
|
-
*
|
|
34
|
-
* (3) Handling the relevant stream events for errors and consolidating them to one error handler, plus
|
|
35
|
-
* notifications for cleanly closed input (to trigger suspension).
|
|
36
|
-
*/
|
|
37
|
-
export declare class RestateConnection implements Connection {
|
|
38
|
-
private readonly attemptHeaders;
|
|
39
|
-
/**
|
|
40
|
-
* create a RestateBidiConnection stream from a duplex stream
|
|
41
|
-
*/
|
|
42
|
-
static from(rlog: Console, headers: Record<string, string | string[] | undefined>, rawStream: stream.ReadableWritablePair<Uint8Array, Uint8Array>): RestateConnection;
|
|
43
|
-
private readonly sdkInputPipeline;
|
|
44
|
-
private currentConsumer;
|
|
45
|
-
private inputBuffer;
|
|
46
|
-
private consumerError?;
|
|
47
|
-
private consumerInputClosed;
|
|
48
|
-
private readonly sdkOutput;
|
|
49
|
-
constructor(rlog: Console, attemptHeaders: Record<string, string | string[] | undefined>, rawStream: stream.ReadableWritablePair<Uint8Array, Uint8Array>);
|
|
50
|
-
headers(): ReadonlyMap<string, string | string[] | undefined>;
|
|
51
|
-
/**
|
|
52
|
-
* Pipes the messages from this connection to the given consumer. The consumer
|
|
53
|
-
* will also receive error and stream closing notifications.
|
|
54
|
-
*
|
|
55
|
-
* Once the 'handleMessage()' method returns 'true', the consumer is immediately removed.
|
|
56
|
-
* That way, consumers can consume a bounded amount of messages (like just the initial journal).
|
|
57
|
-
*
|
|
58
|
-
* There can only be one consumer at a time.
|
|
59
|
-
*/
|
|
60
|
-
pipeToConsumer(consumer: RestateStreamConsumer): void;
|
|
61
|
-
/**
|
|
62
|
-
* Removes the current consumer, if there is one.
|
|
63
|
-
*/
|
|
64
|
-
removeCurrentConsumer(): void;
|
|
65
|
-
/**
|
|
66
|
-
* Adds a message to the output stream.
|
|
67
|
-
*
|
|
68
|
-
* This always puts the message into the node stream, but will return a promise that is resolved once
|
|
69
|
-
* further messages can be written.
|
|
70
|
-
*
|
|
71
|
-
* The reasoning is that some, but not all Restate operations return promises and are typically
|
|
72
|
-
* awaited. For example, rpc, sleep, side-effect have promises and are awaited, while one-way-sends and
|
|
73
|
-
* state updates don't return promises.
|
|
74
|
-
*
|
|
75
|
-
* As a pragmatic solution, we always accept messages, but return a promise for when the output has
|
|
76
|
-
* capacity again, so that at least the operations that await results will respect backpressure.
|
|
77
|
-
*/
|
|
78
|
-
send(msg: Message): Promise<void>;
|
|
79
|
-
/**
|
|
80
|
-
* Ends the output stream, awaiting pending writes.
|
|
81
|
-
*/
|
|
82
|
-
end(): Promise<void>;
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/connection/connection.ts"],"names":[],"mappings":";;AAWA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIjD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErB,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAEnC,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAElC,iBAAiB,IAAI,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IA0BhD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAzBjC;;OAEG;WACW,IAAI,CAChB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,SAAS,EAAE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,GAC7D,iBAAiB;IAMpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IAGjD,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAQ;IAC9B,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiD;gBAGzE,IAAI,EAAE,OAAO,EACI,cAAc,EAAE,MAAM,CACrC,MAAM,EACN,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAC9B,EACD,SAAS,EAAE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;IAsEhE,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAI7D;;;;;;;;OAQG;IACI,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IA+B5D;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAQpC;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C;;OAEG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
|
|
@@ -1,177 +0,0 @@
|
|
|
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 { streamDecoder } from "../io/decoder.js";
|
|
12
|
-
import { encodeMessage } from "../io/encoder.js";
|
|
13
|
-
import { WritableStream } from "node:stream/web";
|
|
14
|
-
/**
|
|
15
|
-
* A stream with Restate Messages, potentially but not necessarily full duplex.
|
|
16
|
-
*
|
|
17
|
-
* This stream handles the following concerns:
|
|
18
|
-
*
|
|
19
|
-
* (1) encoding and decoding of messages to and from raw bytes
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* (2) Input messages can be pipelined to a sequence of consumers. For example, first to a journal,
|
|
23
|
-
* and afterwards to the state machine.
|
|
24
|
-
*
|
|
25
|
-
* (3) Handling the relevant stream events for errors and consolidating them to one error handler, plus
|
|
26
|
-
* notifications for cleanly closed input (to trigger suspension).
|
|
27
|
-
*/
|
|
28
|
-
export class RestateConnection {
|
|
29
|
-
attemptHeaders;
|
|
30
|
-
/**
|
|
31
|
-
* create a RestateBidiConnection stream from a duplex stream
|
|
32
|
-
*/
|
|
33
|
-
static from(rlog, headers, rawStream) {
|
|
34
|
-
return new RestateConnection(rlog, headers, rawStream);
|
|
35
|
-
}
|
|
36
|
-
// --------------------------------------------------------------------------
|
|
37
|
-
sdkInputPipeline;
|
|
38
|
-
// consumer handling
|
|
39
|
-
currentConsumer = null;
|
|
40
|
-
inputBuffer = [];
|
|
41
|
-
consumerError;
|
|
42
|
-
consumerInputClosed = false;
|
|
43
|
-
sdkOutput;
|
|
44
|
-
constructor(rlog, attemptHeaders, rawStream) {
|
|
45
|
-
// --------------------------------------------------------------------------
|
|
46
|
-
// input stream handling
|
|
47
|
-
// --------------------------------------------------------------------------
|
|
48
|
-
this.attemptHeaders = attemptHeaders;
|
|
49
|
-
const sdkInputSink = new WritableStream({
|
|
50
|
-
write: (m) => {
|
|
51
|
-
// deliver message, if we have a consumer. otherwise buffer the message.
|
|
52
|
-
if (this.currentConsumer) {
|
|
53
|
-
if (this.currentConsumer.handleMessage(m)) {
|
|
54
|
-
this.removeCurrentConsumer();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.inputBuffer.push(m);
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
// this notifies of errors in the decoding pipeline as well as the incoming body stream
|
|
62
|
-
abort: (e) => {
|
|
63
|
-
rlog.error("Error in request stream from Restate: " + (e.stack ?? e.message));
|
|
64
|
-
errorHandler(e);
|
|
65
|
-
},
|
|
66
|
-
close: () => {
|
|
67
|
-
// remember and forward close events
|
|
68
|
-
this.consumerInputClosed = true;
|
|
69
|
-
if (this.currentConsumer) {
|
|
70
|
-
this.currentConsumer.handleInputClosed();
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
});
|
|
74
|
-
this.sdkInputPipeline = rawStream.readable
|
|
75
|
-
.pipeThrough(streamDecoder())
|
|
76
|
-
.pipeTo(sdkInputSink);
|
|
77
|
-
this.sdkOutput = rawStream.writable.getWriter();
|
|
78
|
-
// --------- error handling --------
|
|
79
|
-
// the error handler for all sorts of errors coming from streams
|
|
80
|
-
const errorHandler = (e) => {
|
|
81
|
-
// make sure we don't overwrite the initial error
|
|
82
|
-
if (this.consumerError !== undefined) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
this.consumerError = e;
|
|
86
|
-
if (this.currentConsumer) {
|
|
87
|
-
this.currentConsumer.handleStreamError(e);
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
// this notifies of errors in the outgoing response stream
|
|
91
|
-
this.sdkOutput.closed.catch((e) => {
|
|
92
|
-
rlog.error("Error in response stream to Restate: " + (e.stack ?? e.message));
|
|
93
|
-
errorHandler(e);
|
|
94
|
-
});
|
|
95
|
-
// this notifies of errors in the decoding pipeline as well as the incoming body stream
|
|
96
|
-
this.sdkInputPipeline.catch((e) => {
|
|
97
|
-
rlog.error("Error in request stream from Restate: " + (e.stack ?? e.message));
|
|
98
|
-
errorHandler(e);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
headers() {
|
|
102
|
-
return new Map(Object.entries(this.attemptHeaders));
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Pipes the messages from this connection to the given consumer. The consumer
|
|
106
|
-
* will also receive error and stream closing notifications.
|
|
107
|
-
*
|
|
108
|
-
* Once the 'handleMessage()' method returns 'true', the consumer is immediately removed.
|
|
109
|
-
* That way, consumers can consume a bounded amount of messages (like just the initial journal).
|
|
110
|
-
*
|
|
111
|
-
* There can only be one consumer at a time.
|
|
112
|
-
*/
|
|
113
|
-
pipeToConsumer(consumer) {
|
|
114
|
-
if (this.currentConsumer !== null) {
|
|
115
|
-
throw new Error("Already piping to a consumer");
|
|
116
|
-
}
|
|
117
|
-
this.currentConsumer = consumer;
|
|
118
|
-
// propagate pre-existing information
|
|
119
|
-
if (this.consumerError) {
|
|
120
|
-
consumer.handleStreamError(this.consumerError);
|
|
121
|
-
}
|
|
122
|
-
if (this.consumerInputClosed) {
|
|
123
|
-
consumer.handleInputClosed();
|
|
124
|
-
}
|
|
125
|
-
// pipe the buffered input messages, if we buffered some before the consumer was registered
|
|
126
|
-
const input = this.inputBuffer;
|
|
127
|
-
if (input.length > 0) {
|
|
128
|
-
let i = 0;
|
|
129
|
-
while (i < input.length) {
|
|
130
|
-
const done = consumer.handleMessage(input[i]);
|
|
131
|
-
i++;
|
|
132
|
-
if (done) {
|
|
133
|
-
this.removeCurrentConsumer();
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
this.inputBuffer = i === input.length ? [] : this.inputBuffer.slice(i);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Removes the current consumer, if there is one.
|
|
142
|
-
*/
|
|
143
|
-
removeCurrentConsumer() {
|
|
144
|
-
this.currentConsumer = null;
|
|
145
|
-
}
|
|
146
|
-
// --------------------------------------------------------------------------
|
|
147
|
-
// output stream handling
|
|
148
|
-
// --------------------------------------------------------------------------
|
|
149
|
-
/**
|
|
150
|
-
* Adds a message to the output stream.
|
|
151
|
-
*
|
|
152
|
-
* This always puts the message into the node stream, but will return a promise that is resolved once
|
|
153
|
-
* further messages can be written.
|
|
154
|
-
*
|
|
155
|
-
* The reasoning is that some, but not all Restate operations return promises and are typically
|
|
156
|
-
* awaited. For example, rpc, sleep, side-effect have promises and are awaited, while one-way-sends and
|
|
157
|
-
* state updates don't return promises.
|
|
158
|
-
*
|
|
159
|
-
* As a pragmatic solution, we always accept messages, but return a promise for when the output has
|
|
160
|
-
* capacity again, so that at least the operations that await results will respect backpressure.
|
|
161
|
-
*/
|
|
162
|
-
async send(msg) {
|
|
163
|
-
const bytes = encodeMessage(msg);
|
|
164
|
-
// don't await the write as it will not complete until data is completely flushed
|
|
165
|
-
this.sdkOutput.write(bytes).catch(() => { });
|
|
166
|
-
// however, do await until there is capacity for more, so there's backpressure
|
|
167
|
-
await this.sdkOutput.ready;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Ends the output stream, awaiting pending writes.
|
|
171
|
-
*/
|
|
172
|
-
async end() {
|
|
173
|
-
// we don't care if the stream had any errors at this point
|
|
174
|
-
await this.sdkOutput.close().catch(() => { });
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=connection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../src/connection/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
declare function base(ALPHABET: string): base.BaseConverter;
|
|
2
|
-
export default base;
|
|
3
|
-
declare namespace base {
|
|
4
|
-
interface BaseConverter {
|
|
5
|
-
encode(buffer: Uint8Array | number[]): string;
|
|
6
|
-
decodeUnsafe(string: string): Uint8Array | undefined;
|
|
7
|
-
decode(string: string): Uint8Array;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=basex.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basex.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/request_signing/basex.ts"],"names":[],"mappings":"AAUA,iBAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,CA2JlD;AAED,eAAe,IAAI,CAAC;AAEpB,OAAO,WAAW,IAAI,CAAC;IACrB,UAAU,aAAa;QACrB,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;QAE9C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;QAErD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;KACpC;CACF"}
|