@restatedev/restate-sdk 0.9.2 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/common_api.d.ts +7 -0
- package/dist/cjs/src/common_api.d.ts.map +1 -0
- package/dist/cjs/src/common_api.js +25 -0
- package/dist/cjs/src/common_api.js.map +1 -0
- package/dist/{src → cjs/src}/connection/buffered_connection.d.ts +3 -4
- package/dist/cjs/src/connection/buffered_connection.d.ts.map +1 -0
- package/dist/{src → cjs/src}/connection/buffered_connection.js +2 -2
- package/dist/cjs/src/connection/buffered_connection.js.map +1 -0
- package/dist/{src → cjs/src}/connection/connection.d.ts +2 -1
- package/dist/cjs/src/connection/connection.d.ts.map +1 -0
- package/dist/cjs/src/connection/connection.js.map +1 -0
- package/dist/{src → cjs/src}/connection/http_connection.d.ts +9 -5
- package/dist/cjs/src/connection/http_connection.d.ts.map +1 -0
- package/dist/{src → cjs/src}/connection/http_connection.js +16 -11
- package/dist/cjs/src/connection/http_connection.js.map +1 -0
- package/dist/{src → cjs/src}/connection/lambda_connection.d.ts +5 -3
- package/dist/cjs/src/connection/lambda_connection.d.ts.map +1 -0
- package/dist/{src → cjs/src}/connection/lambda_connection.js +14 -9
- package/dist/cjs/src/connection/lambda_connection.js.map +1 -0
- package/dist/{src → cjs/src}/context.d.ts +149 -44
- package/dist/cjs/src/context.d.ts.map +1 -0
- package/dist/{src → cjs/src}/context.js +5 -5
- package/dist/cjs/src/context.js.map +1 -0
- package/dist/cjs/src/context_impl.d.ts +54 -0
- package/dist/cjs/src/context_impl.d.ts.map +1 -0
- package/dist/{src → cjs/src}/context_impl.js +168 -106
- package/dist/cjs/src/context_impl.js.map +1 -0
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts +18 -0
- package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/endpoint_builder.js +130 -0
- package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +37 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.js +46 -0
- package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts +6 -0
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/fetch.js +34 -0
- package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/generic.d.ts +44 -0
- package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/generic.js +193 -0
- package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -0
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts +8 -0
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/lambda.js +66 -0
- package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -0
- package/dist/{src/endpoint/http2_handler.d.ts → cjs/src/endpoint/handlers/node.d.ts} +4 -4
- package/dist/cjs/src/endpoint/handlers/node.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/handlers/node.js +188 -0
- package/dist/cjs/src/endpoint/handlers/node.js.map +1 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +32 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.js +55 -0
- package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/node_endpoint.d.ts +19 -0
- package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/node_endpoint.js +116 -0
- package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -0
- package/dist/cjs/src/endpoint/request_signing/basex.d.ts.map +1 -0
- package/dist/cjs/src/endpoint/request_signing/basex.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.d.ts +1 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.js +3 -1
- package/dist/cjs/src/endpoint/request_signing/ed25519.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/v1.d.ts +2 -2
- package/dist/cjs/src/endpoint/request_signing/v1.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/v1.js +9 -16
- package/dist/cjs/src/endpoint/request_signing/v1.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/validate.d.ts +1 -1
- package/dist/cjs/src/endpoint/request_signing/validate.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint/request_signing/validate.js +3 -3
- package/dist/cjs/src/endpoint/request_signing/validate.js.map +1 -0
- package/dist/{src → cjs/src}/endpoint.d.ts +27 -26
- package/dist/cjs/src/endpoint.d.ts.map +1 -0
- package/dist/{src → cjs/src}/endpoint.js +0 -9
- package/dist/cjs/src/endpoint.js.map +1 -0
- package/dist/cjs/src/fetch.d.ts +7 -0
- package/dist/cjs/src/fetch.d.ts.map +1 -0
- package/dist/cjs/src/fetch.js +37 -0
- package/dist/cjs/src/fetch.js.map +1 -0
- package/dist/cjs/src/generated/proto/discovery_pb.d.ts +18 -0
- package/dist/cjs/src/generated/proto/discovery_pb.d.ts.map +1 -0
- package/dist/cjs/src/generated/proto/discovery_pb.js +40 -0
- package/dist/cjs/src/generated/proto/discovery_pb.js.map +1 -0
- package/dist/cjs/src/generated/proto/javascript_pb.d.ts.map +1 -0
- package/dist/cjs/src/generated/proto/javascript_pb.js.map +1 -0
- package/dist/{src → cjs/src}/generated/proto/protocol_pb.d.ts +186 -0
- package/dist/cjs/src/generated/proto/protocol_pb.d.ts.map +1 -0
- package/dist/{src → cjs/src}/generated/proto/protocol_pb.js +177 -1
- package/dist/cjs/src/generated/proto/protocol_pb.js.map +1 -0
- package/dist/cjs/src/generated/version.d.ts +2 -0
- package/dist/cjs/src/generated/version.d.ts.map +1 -0
- package/dist/{src → cjs/src}/generated/version.js +1 -1
- package/dist/cjs/src/generated/version.js.map +1 -0
- package/dist/{src → cjs/src}/invocation.d.ts +5 -5
- package/dist/cjs/src/invocation.d.ts.map +1 -0
- package/dist/{src → cjs/src}/invocation.js +14 -14
- package/dist/cjs/src/invocation.js.map +1 -0
- package/dist/{src → cjs/src}/io/decoder.d.ts +1 -2
- package/dist/cjs/src/io/decoder.d.ts.map +1 -0
- package/dist/{src → cjs/src}/io/decoder.js +20 -24
- package/dist/cjs/src/io/decoder.js.map +1 -0
- package/dist/{src → cjs/src}/io/encoder.d.ts +1 -1
- package/dist/cjs/src/io/encoder.d.ts.map +1 -0
- package/dist/{src → cjs/src}/io/encoder.js +6 -6
- package/dist/cjs/src/io/encoder.js.map +1 -0
- package/dist/{src → cjs/src}/journal.d.ts +7 -7
- package/dist/cjs/src/journal.d.ts.map +1 -0
- package/dist/{src → cjs/src}/journal.js +54 -37
- package/dist/cjs/src/journal.js.map +1 -0
- package/dist/cjs/src/lambda.d.ts +7 -0
- package/dist/cjs/src/lambda.d.ts.map +1 -0
- package/dist/cjs/src/lambda.js +37 -0
- package/dist/cjs/src/lambda.js.map +1 -0
- package/dist/{src → cjs/src}/local_state_store.d.ts +2 -1
- package/dist/cjs/src/local_state_store.d.ts.map +1 -0
- package/dist/{src → cjs/src}/local_state_store.js +10 -10
- package/dist/cjs/src/local_state_store.js.map +1 -0
- package/dist/cjs/src/logger.d.ts.map +1 -0
- package/dist/{src → cjs/src}/logger.js +1 -8
- package/dist/cjs/src/logger.js.map +1 -0
- package/dist/{src → cjs/src}/promise_combinator_tracker.d.ts +1 -1
- package/dist/cjs/src/promise_combinator_tracker.d.ts.map +1 -0
- package/dist/{src → cjs/src}/promise_combinator_tracker.js +7 -5
- package/dist/cjs/src/promise_combinator_tracker.js.map +1 -0
- package/dist/cjs/src/public_api.d.ts +7 -0
- package/dist/cjs/src/public_api.d.ts.map +1 -0
- package/dist/cjs/src/public_api.js +37 -0
- package/dist/cjs/src/public_api.js.map +1 -0
- package/dist/{src → cjs/src}/state_machine.d.ts +14 -13
- package/dist/cjs/src/state_machine.d.ts.map +1 -0
- package/dist/{src → cjs/src}/state_machine.js +59 -59
- package/dist/cjs/src/state_machine.js.map +1 -0
- package/dist/cjs/src/types/components.d.ts +78 -0
- package/dist/cjs/src/types/components.d.ts.map +1 -0
- package/dist/cjs/src/types/components.js +260 -0
- package/dist/cjs/src/types/components.js.map +1 -0
- package/dist/{src → cjs/src}/types/discovery.d.ts +6 -3
- package/dist/cjs/src/types/discovery.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/discovery.js +5 -3
- package/dist/cjs/src/types/discovery.js.map +1 -0
- package/dist/{src → cjs/src}/types/errors.d.ts +2 -2
- package/dist/cjs/src/types/errors.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/errors.js +8 -8
- package/dist/cjs/src/types/errors.js.map +1 -0
- package/dist/{src → cjs/src}/types/protocol.d.ts +16 -9
- package/dist/cjs/src/types/protocol.d.ts.map +1 -0
- package/dist/cjs/src/types/protocol.js +237 -0
- package/dist/cjs/src/types/protocol.js.map +1 -0
- package/dist/cjs/src/types/rpc.d.ts +300 -0
- package/dist/cjs/src/types/rpc.d.ts.map +1 -0
- package/dist/cjs/src/types/rpc.js +419 -0
- package/dist/cjs/src/types/rpc.js.map +1 -0
- package/dist/{src → cjs/src}/types/types.d.ts +3 -5
- package/dist/cjs/src/types/types.d.ts.map +1 -0
- package/dist/{src → cjs/src}/types/types.js +17 -28
- package/dist/cjs/src/types/types.js.map +1 -0
- package/dist/cjs/src/user_agent.d.ts +2 -0
- package/dist/cjs/src/user_agent.d.ts.map +1 -0
- package/dist/{src → cjs/src}/user_agent.js +2 -2
- package/dist/cjs/src/user_agent.js.map +1 -0
- package/dist/cjs/src/utils/buffer.d.ts +5 -0
- package/dist/cjs/src/utils/buffer.d.ts.map +1 -0
- package/dist/cjs/src/utils/buffer.js +59 -0
- package/dist/cjs/src/utils/buffer.js.map +1 -0
- package/dist/{src → cjs/src}/utils/message_logger.d.ts +1 -1
- package/dist/cjs/src/utils/message_logger.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/message_logger.js +7 -7
- package/dist/cjs/src/utils/message_logger.js.map +1 -0
- package/dist/cjs/src/utils/promises.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/promises.js +2 -1
- package/dist/cjs/src/utils/promises.js.map +1 -0
- package/dist/{src → cjs/src}/utils/rand.d.ts +3 -3
- package/dist/cjs/src/utils/rand.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/rand.js +10 -15
- package/dist/cjs/src/utils/rand.js.map +1 -0
- package/dist/cjs/src/utils/serde.d.ts +5 -0
- package/dist/cjs/src/utils/serde.d.ts.map +1 -0
- package/dist/cjs/src/utils/serde.js +50 -0
- package/dist/cjs/src/utils/serde.js.map +1 -0
- package/dist/cjs/src/utils/utils.d.ts.map +1 -0
- package/dist/{src → cjs/src}/utils/utils.js +11 -11
- package/dist/cjs/src/utils/utils.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/src/common_api.d.ts +7 -0
- package/dist/esm/src/common_api.d.ts.map +1 -0
- package/dist/esm/src/common_api.js +14 -0
- package/dist/esm/src/common_api.js.map +1 -0
- package/dist/esm/src/connection/buffered_connection.d.ts +14 -0
- package/dist/esm/src/connection/buffered_connection.d.ts.map +1 -0
- package/dist/esm/src/connection/buffered_connection.js +40 -0
- package/dist/esm/src/connection/buffered_connection.js.map +1 -0
- package/dist/esm/src/connection/connection.d.ts +20 -0
- package/dist/esm/src/connection/connection.d.ts.map +1 -0
- package/dist/esm/src/connection/connection.js +12 -0
- package/dist/esm/src/connection/connection.js.map +1 -0
- package/dist/esm/src/connection/http_connection.d.ts +77 -0
- package/dist/esm/src/connection/http_connection.d.ts.map +1 -0
- package/dist/esm/src/connection/http_connection.js +204 -0
- package/dist/esm/src/connection/http_connection.js.map +1 -0
- package/dist/esm/src/connection/lambda_connection.d.ts +17 -0
- package/dist/esm/src/connection/lambda_connection.d.ts.map +1 -0
- package/dist/esm/src/connection/lambda_connection.js +60 -0
- package/dist/esm/src/connection/lambda_connection.js.map +1 -0
- package/dist/esm/src/context.d.ts +541 -0
- package/dist/esm/src/context.d.ts.map +1 -0
- package/dist/esm/src/context.js +75 -0
- package/dist/esm/src/context.js.map +1 -0
- package/dist/esm/src/context_impl.d.ts +54 -0
- package/dist/esm/src/context_impl.d.ts.map +1 -0
- package/dist/esm/src/context_impl.js +515 -0
- package/dist/esm/src/context_impl.js.map +1 -0
- package/dist/esm/src/endpoint/endpoint_builder.d.ts +18 -0
- package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -0
- package/dist/esm/src/endpoint/endpoint_builder.js +126 -0
- package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -0
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts +37 -0
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/fetch_endpoint.js +42 -0
- package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/fetch.d.ts +6 -0
- package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/fetch.js +30 -0
- package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/generic.d.ts +44 -0
- package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/generic.js +189 -0
- package/dist/esm/src/endpoint/handlers/generic.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/lambda.d.ts +8 -0
- package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/lambda.js +62 -0
- package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -0
- package/dist/esm/src/endpoint/handlers/node.d.ts +11 -0
- package/dist/esm/src/endpoint/handlers/node.d.ts.map +1 -0
- package/dist/esm/src/endpoint/handlers/node.js +181 -0
- package/dist/esm/src/endpoint/handlers/node.js.map +1 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts +32 -0
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/lambda_endpoint.js +51 -0
- package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/node_endpoint.d.ts +19 -0
- package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint/node_endpoint.js +89 -0
- package/dist/esm/src/endpoint/node_endpoint.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/basex.d.ts +10 -0
- package/dist/esm/src/endpoint/request_signing/basex.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/basex.js +136 -0
- package/dist/esm/src/endpoint/request_signing/basex.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts +17 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.js +52 -0
- package/dist/esm/src/endpoint/request_signing/ed25519.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/v1.d.ts +9 -0
- package/dist/esm/src/endpoint/request_signing/v1.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/v1.js +133 -0
- package/dist/esm/src/endpoint/request_signing/v1.js.map +1 -0
- package/dist/esm/src/endpoint/request_signing/validate.d.ts +18 -0
- package/dist/esm/src/endpoint/request_signing/validate.d.ts.map +1 -0
- package/dist/esm/src/endpoint/request_signing/validate.js +40 -0
- package/dist/esm/src/endpoint/request_signing/validate.js.map +1 -0
- package/dist/esm/src/endpoint.d.ts +103 -0
- package/dist/esm/src/endpoint.d.ts.map +1 -0
- package/dist/esm/src/endpoint.js +12 -0
- package/dist/esm/src/endpoint.js.map +1 -0
- package/dist/esm/src/fetch.d.ts +7 -0
- package/dist/esm/src/fetch.d.ts.map +1 -0
- package/dist/esm/src/fetch.js +19 -0
- package/dist/esm/src/fetch.js.map +1 -0
- package/dist/esm/src/generated/proto/discovery_pb.d.ts +18 -0
- package/dist/esm/src/generated/proto/discovery_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/discovery_pb.js +37 -0
- package/dist/esm/src/generated/proto/discovery_pb.js.map +1 -0
- package/dist/esm/src/generated/proto/javascript_pb.d.ts +26 -0
- package/dist/esm/src/generated/proto/javascript_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/javascript_pb.js +48 -0
- package/dist/esm/src/generated/proto/javascript_pb.js.map +1 -0
- package/dist/esm/src/generated/proto/protocol_pb.d.ts +1051 -0
- package/dist/esm/src/generated/proto/protocol_pb.d.ts.map +1 -0
- package/dist/esm/src/generated/proto/protocol_pb.js +1258 -0
- package/dist/esm/src/generated/proto/protocol_pb.js.map +1 -0
- package/dist/esm/src/generated/version.d.ts +2 -0
- package/dist/esm/src/generated/version.d.ts.map +1 -0
- package/dist/esm/src/generated/version.js +2 -0
- package/dist/esm/src/generated/version.js.map +1 -0
- package/dist/esm/src/invocation.d.ts +48 -0
- package/dist/esm/src/invocation.d.ts.map +1 -0
- package/dist/esm/src/invocation.js +153 -0
- package/dist/esm/src/invocation.js.map +1 -0
- package/dist/esm/src/io/decoder.d.ts +9 -0
- package/dist/esm/src/io/decoder.d.ts.map +1 -0
- package/dist/esm/src/io/decoder.js +129 -0
- package/dist/esm/src/io/decoder.js.map +1 -0
- package/dist/esm/src/io/encoder.d.ts +7 -0
- package/dist/esm/src/io/encoder.d.ts.map +1 -0
- package/dist/esm/src/io/encoder.js +49 -0
- package/dist/esm/src/io/encoder.js.map +1 -0
- package/dist/esm/src/journal.d.ts +52 -0
- package/dist/esm/src/journal.d.ts.map +1 -0
- package/dist/esm/src/journal.js +412 -0
- package/dist/esm/src/journal.js.map +1 -0
- package/dist/esm/src/lambda.d.ts +7 -0
- package/dist/esm/src/lambda.d.ts.map +1 -0
- package/dist/esm/src/lambda.js +19 -0
- package/dist/esm/src/lambda.js.map +1 -0
- package/dist/esm/src/local_state_store.d.ts +16 -0
- package/dist/esm/src/local_state_store.d.ts.map +1 -0
- package/dist/esm/src/local_state_store.js +80 -0
- package/dist/esm/src/local_state_store.js.map +1 -0
- package/dist/esm/src/logger.d.ts +27 -0
- package/dist/esm/src/logger.d.ts.map +1 -0
- package/dist/esm/src/logger.js +146 -0
- package/dist/esm/src/logger.js.map +1 -0
- package/dist/esm/src/promise_combinator_tracker.d.ts +29 -0
- package/dist/esm/src/promise_combinator_tracker.d.ts.map +1 -0
- package/dist/esm/src/promise_combinator_tracker.js +125 -0
- package/dist/esm/src/promise_combinator_tracker.js.map +1 -0
- package/dist/esm/src/public_api.d.ts +7 -0
- package/dist/esm/src/public_api.d.ts.map +1 -0
- package/dist/esm/src/public_api.js +19 -0
- package/dist/esm/src/public_api.js.map +1 -0
- package/dist/esm/src/state_machine.d.ts +86 -0
- package/dist/esm/src/state_machine.d.ts.map +1 -0
- package/dist/esm/src/state_machine.js +407 -0
- package/dist/esm/src/state_machine.js.map +1 -0
- package/dist/esm/src/types/components.d.ts +78 -0
- package/dist/esm/src/types/components.d.ts.map +1 -0
- package/dist/esm/src/types/components.js +227 -0
- package/dist/esm/src/types/components.js.map +1 -0
- package/dist/esm/src/types/discovery.d.ts +43 -0
- package/dist/esm/src/types/discovery.d.ts.map +1 -0
- package/dist/esm/src/types/discovery.js +28 -0
- package/dist/esm/src/types/discovery.js.map +1 -0
- package/dist/esm/src/types/errors.d.ts +53 -0
- package/dist/esm/src/types/errors.d.ts.map +1 -0
- package/dist/esm/src/types/errors.js +117 -0
- package/dist/esm/src/types/errors.js.map +1 -0
- package/dist/esm/src/types/protocol.d.ts +40 -0
- package/dist/esm/src/types/protocol.d.ts.map +1 -0
- package/dist/esm/src/types/protocol.js +206 -0
- package/dist/esm/src/types/protocol.js.map +1 -0
- package/dist/esm/src/types/rpc.d.ts +300 -0
- package/dist/esm/src/types/rpc.d.ts.map +1 -0
- package/dist/esm/src/types/rpc.js +412 -0
- package/dist/esm/src/types/rpc.js.map +1 -0
- package/dist/esm/src/types/types.d.ts +20 -0
- package/dist/esm/src/types/types.d.ts.map +1 -0
- package/dist/esm/src/types/types.js +105 -0
- package/dist/esm/src/types/types.js.map +1 -0
- package/dist/esm/src/user_agent.d.ts +2 -0
- package/dist/esm/src/user_agent.d.ts.map +1 -0
- package/dist/esm/src/user_agent.js +13 -0
- package/dist/esm/src/user_agent.js.map +1 -0
- package/dist/esm/src/utils/buffer.d.ts +5 -0
- package/dist/esm/src/utils/buffer.d.ts.map +1 -0
- package/dist/esm/src/utils/buffer.js +53 -0
- package/dist/esm/src/utils/buffer.js.map +1 -0
- package/dist/esm/src/utils/message_logger.d.ts +7 -0
- package/dist/esm/src/utils/message_logger.d.ts.map +1 -0
- package/dist/esm/src/utils/message_logger.js +75 -0
- package/dist/esm/src/utils/message_logger.js.map +1 -0
- package/dist/esm/src/utils/promises.d.ts +15 -0
- package/dist/esm/src/utils/promises.d.ts.map +1 -0
- package/dist/esm/src/utils/promises.js +63 -0
- package/dist/esm/src/utils/promises.js.map +1 -0
- package/dist/esm/src/utils/rand.d.ts +15 -0
- package/dist/esm/src/utils/rand.d.ts.map +1 -0
- package/dist/esm/src/utils/rand.js +106 -0
- package/dist/esm/src/utils/rand.js.map +1 -0
- package/dist/esm/src/utils/serde.d.ts +5 -0
- package/dist/esm/src/utils/serde.d.ts.map +1 -0
- package/dist/esm/src/utils/serde.js +43 -0
- package/dist/esm/src/utils/serde.js.map +1 -0
- package/dist/esm/src/utils/utils.d.ts +5 -0
- package/dist/esm/src/utils/utils.d.ts.map +1 -0
- package/dist/esm/src/utils/utils.js +109 -0
- package/dist/esm/src/utils/utils.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +58 -20
- package/dist/src/clients/workflow_client.d.ts +0 -77
- package/dist/src/clients/workflow_client.d.ts.map +0 -1
- package/dist/src/clients/workflow_client.js +0 -172
- package/dist/src/clients/workflow_client.js.map +0 -1
- package/dist/src/connection/buffered_connection.d.ts.map +0 -1
- package/dist/src/connection/buffered_connection.js.map +0 -1
- package/dist/src/connection/connection.d.ts.map +0 -1
- package/dist/src/connection/connection.js.map +0 -1
- package/dist/src/connection/http_connection.d.ts.map +0 -1
- package/dist/src/connection/http_connection.js.map +0 -1
- package/dist/src/connection/lambda_connection.d.ts.map +0 -1
- package/dist/src/connection/lambda_connection.js.map +0 -1
- package/dist/src/context.d.ts.map +0 -1
- package/dist/src/context.js.map +0 -1
- package/dist/src/context_impl.d.ts +0 -62
- package/dist/src/context_impl.d.ts.map +0 -1
- package/dist/src/context_impl.js.map +0 -1
- package/dist/src/endpoint/endpoint_impl.d.ts +0 -28
- package/dist/src/endpoint/endpoint_impl.d.ts.map +0 -1
- package/dist/src/endpoint/endpoint_impl.js +0 -164
- package/dist/src/endpoint/endpoint_impl.js.map +0 -1
- package/dist/src/endpoint/http2_handler.d.ts.map +0 -1
- package/dist/src/endpoint/http2_handler.js +0 -153
- package/dist/src/endpoint/http2_handler.js.map +0 -1
- package/dist/src/endpoint/lambda_handler.d.ts +0 -15
- package/dist/src/endpoint/lambda_handler.d.ts.map +0 -1
- package/dist/src/endpoint/lambda_handler.js +0 -154
- package/dist/src/endpoint/lambda_handler.js.map +0 -1
- package/dist/src/endpoint/request_signing/basex.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/basex.js.map +0 -1
- package/dist/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/ed25519.js.map +0 -1
- package/dist/src/endpoint/request_signing/v1.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/v1.js.map +0 -1
- package/dist/src/endpoint/request_signing/validate.d.ts.map +0 -1
- package/dist/src/endpoint/request_signing/validate.js.map +0 -1
- package/dist/src/endpoint.d.ts.map +0 -1
- package/dist/src/endpoint.js.map +0 -1
- package/dist/src/generated/proto/javascript_pb.d.ts.map +0 -1
- package/dist/src/generated/proto/javascript_pb.js.map +0 -1
- package/dist/src/generated/proto/protocol_pb.d.ts.map +0 -1
- package/dist/src/generated/proto/protocol_pb.js.map +0 -1
- package/dist/src/generated/version.d.ts +0 -2
- package/dist/src/generated/version.d.ts.map +0 -1
- package/dist/src/generated/version.js.map +0 -1
- package/dist/src/invocation.d.ts.map +0 -1
- package/dist/src/invocation.js.map +0 -1
- package/dist/src/io/decoder.d.ts.map +0 -1
- package/dist/src/io/decoder.js.map +0 -1
- package/dist/src/io/encoder.d.ts.map +0 -1
- package/dist/src/io/encoder.js.map +0 -1
- package/dist/src/journal.d.ts.map +0 -1
- package/dist/src/journal.js.map +0 -1
- package/dist/src/local_state_store.d.ts.map +0 -1
- package/dist/src/local_state_store.js.map +0 -1
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js.map +0 -1
- package/dist/src/promise_combinator_tracker.d.ts.map +0 -1
- package/dist/src/promise_combinator_tracker.js.map +0 -1
- package/dist/src/public_api.d.ts +0 -7
- package/dist/src/public_api.d.ts.map +0 -1
- package/dist/src/public_api.js +0 -50
- package/dist/src/public_api.js.map +0 -1
- package/dist/src/state_machine.d.ts.map +0 -1
- package/dist/src/state_machine.js.map +0 -1
- package/dist/src/types/components.d.ts +0 -65
- package/dist/src/types/components.d.ts.map +0 -1
- package/dist/src/types/components.js +0 -163
- package/dist/src/types/components.js.map +0 -1
- package/dist/src/types/discovery.d.ts.map +0 -1
- package/dist/src/types/discovery.js.map +0 -1
- package/dist/src/types/errors.d.ts.map +0 -1
- package/dist/src/types/errors.js.map +0 -1
- package/dist/src/types/protocol.d.ts.map +0 -1
- package/dist/src/types/protocol.js +0 -147
- package/dist/src/types/protocol.js.map +0 -1
- package/dist/src/types/rpc.d.ts +0 -50
- package/dist/src/types/rpc.d.ts.map +0 -1
- package/dist/src/types/rpc.js +0 -38
- package/dist/src/types/rpc.js.map +0 -1
- package/dist/src/types/types.d.ts.map +0 -1
- package/dist/src/types/types.js.map +0 -1
- package/dist/src/user_agent.d.ts +0 -2
- package/dist/src/user_agent.d.ts.map +0 -1
- package/dist/src/user_agent.js.map +0 -1
- package/dist/src/utils/message_logger.d.ts.map +0 -1
- package/dist/src/utils/message_logger.js.map +0 -1
- package/dist/src/utils/promises.d.ts.map +0 -1
- package/dist/src/utils/promises.js.map +0 -1
- package/dist/src/utils/rand.d.ts.map +0 -1
- package/dist/src/utils/rand.js.map +0 -1
- package/dist/src/utils/serde.d.ts +0 -3
- package/dist/src/utils/serde.d.ts.map +0 -1
- package/dist/src/utils/serde.js +0 -24
- package/dist/src/utils/serde.js.map +0 -1
- package/dist/src/utils/utils.d.ts.map +0 -1
- package/dist/src/utils/utils.js.map +0 -1
- package/dist/src/workflows/workflow.d.ts +0 -101
- package/dist/src/workflows/workflow.d.ts.map +0 -1
- package/dist/src/workflows/workflow.js +0 -84
- package/dist/src/workflows/workflow.js.map +0 -1
- package/dist/src/workflows/workflow_state_service.d.ts +0 -35
- package/dist/src/workflows/workflow_state_service.d.ts.map +0 -1
- package/dist/src/workflows/workflow_state_service.js +0 -201
- package/dist/src/workflows/workflow_state_service.js.map +0 -1
- package/dist/src/workflows/workflow_wrapper_service.d.ts +0 -10
- package/dist/src/workflows/workflow_wrapper_service.d.ts.map +0 -1
- package/dist/src/workflows/workflow_wrapper_service.js +0 -285
- package/dist/src/workflows/workflow_wrapper_service.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/connection/connection.js +0 -0
- /package/dist/{src → cjs/src}/endpoint/request_signing/basex.d.ts +0 -0
- /package/dist/{src → cjs/src}/endpoint/request_signing/basex.js +0 -0
- /package/dist/{src → cjs/src}/generated/proto/javascript_pb.d.ts +0 -0
- /package/dist/{src → cjs/src}/generated/proto/javascript_pb.js +0 -0
- /package/dist/{src → cjs/src}/logger.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/promises.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/utils.d.ts +0 -0
|
@@ -0,0 +1,206 @@
|
|
|
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 { CombinatorEntryMessage } from "../generated/proto/javascript_pb.js";
|
|
12
|
+
import { AwakeableEntryMessage, OneWayCallEntryMessage, ClearStateEntryMessage, ClearAllStateEntryMessage, CompleteAwakeableEntryMessage, CompletionMessage, EntryAckMessage, ErrorMessage, EndMessage, GetStateEntryMessage, GetStateKeysEntryMessage, CallEntryMessage, OutputEntryMessage, InputEntryMessage, SetStateEntryMessage, SleepEntryMessage, StartMessage, SuspensionMessage, RunEntryMessage, GetPromiseEntryMessage, PeekPromiseEntryMessage, CompletePromiseEntryMessage, ServiceProtocolVersion, } from "../generated/proto/protocol_pb.js";
|
|
13
|
+
import { ServiceDiscoveryProtocolVersion } from "../generated/proto/discovery_pb.js";
|
|
14
|
+
// Re-export the protobuf messages.
|
|
15
|
+
export { AwakeableEntryMessage, OneWayCallEntryMessage, ClearStateEntryMessage, ClearAllStateEntryMessage, CompleteAwakeableEntryMessage, CompletionMessage, ErrorMessage, EndMessage, GetStateEntryMessage, GetStateKeysEntryMessage, CallEntryMessage, OutputEntryMessage, InputEntryMessage, SetStateEntryMessage, SleepEntryMessage, StartMessage, SuspensionMessage, EntryAckMessage, GetPromiseEntryMessage, PeekPromiseEntryMessage, CompletePromiseEntryMessage, } from "../generated/proto/protocol_pb.js";
|
|
16
|
+
// Export the protocol message types as defined by the restate protocol.
|
|
17
|
+
export const START_MESSAGE_TYPE = 0x0000n;
|
|
18
|
+
export const COMPLETION_MESSAGE_TYPE = 0x0001n;
|
|
19
|
+
export const SUSPENSION_MESSAGE_TYPE = 0x0002n;
|
|
20
|
+
export const ERROR_MESSAGE_TYPE = 0x0003n;
|
|
21
|
+
export const ENTRY_ACK_MESSAGE_TYPE = 0x0004n;
|
|
22
|
+
export const END_MESSAGE_TYPE = 0x0005n;
|
|
23
|
+
export const INPUT_ENTRY_MESSAGE_TYPE = 0x0400n;
|
|
24
|
+
export const OUTPUT_ENTRY_MESSAGE_TYPE = 0x0401n;
|
|
25
|
+
export const GET_STATE_ENTRY_MESSAGE_TYPE = 0x0800n;
|
|
26
|
+
export const SET_STATE_ENTRY_MESSAGE_TYPE = 0x0801n;
|
|
27
|
+
export const CLEAR_STATE_ENTRY_MESSAGE_TYPE = 0x0802n;
|
|
28
|
+
export const CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE = 0x0803n;
|
|
29
|
+
export const GET_STATE_KEYS_ENTRY_MESSAGE_TYPE = 0x0804n;
|
|
30
|
+
export const SLEEP_ENTRY_MESSAGE_TYPE = 0x0c00n;
|
|
31
|
+
export const INVOKE_ENTRY_MESSAGE_TYPE = 0x0c01n;
|
|
32
|
+
export const BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE = 0x0c02n;
|
|
33
|
+
export const AWAKEABLE_ENTRY_MESSAGE_TYPE = 0x0c03n;
|
|
34
|
+
export const COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE = 0x0c04n;
|
|
35
|
+
export const AWAKEABLE_IDENTIFIER_PREFIX = "prom_1";
|
|
36
|
+
export const SIDE_EFFECT_ENTRY_MESSAGE_TYPE = 0x0c00n + 5n;
|
|
37
|
+
// Export the custom message types
|
|
38
|
+
// Side effects are custom messages because the runtime does not need to inspect them
|
|
39
|
+
export const COMBINATOR_ENTRY_MESSAGE = 0xfc02n;
|
|
40
|
+
// Durable promise
|
|
41
|
+
export const GET_PROMISE_MESSAGE_TYPE = 0x808n;
|
|
42
|
+
export const PEEK_PROMISE_MESSAGE_TYPE = 0x809n;
|
|
43
|
+
export const COMPLETE_PROMISE_MESSAGE_TYPE = 0x80an;
|
|
44
|
+
// Message types in the protocol.
|
|
45
|
+
// Custom message types (per SDK) such as side effect entry message should not be included here.
|
|
46
|
+
export const KNOWN_MESSAGE_TYPES = new Set([
|
|
47
|
+
START_MESSAGE_TYPE,
|
|
48
|
+
COMPLETION_MESSAGE_TYPE,
|
|
49
|
+
SUSPENSION_MESSAGE_TYPE,
|
|
50
|
+
ERROR_MESSAGE_TYPE,
|
|
51
|
+
ENTRY_ACK_MESSAGE_TYPE,
|
|
52
|
+
END_MESSAGE_TYPE,
|
|
53
|
+
INPUT_ENTRY_MESSAGE_TYPE,
|
|
54
|
+
OUTPUT_ENTRY_MESSAGE_TYPE,
|
|
55
|
+
GET_STATE_ENTRY_MESSAGE_TYPE,
|
|
56
|
+
GET_STATE_KEYS_ENTRY_MESSAGE_TYPE,
|
|
57
|
+
SET_STATE_ENTRY_MESSAGE_TYPE,
|
|
58
|
+
CLEAR_STATE_ENTRY_MESSAGE_TYPE,
|
|
59
|
+
CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE,
|
|
60
|
+
SLEEP_ENTRY_MESSAGE_TYPE,
|
|
61
|
+
INVOKE_ENTRY_MESSAGE_TYPE,
|
|
62
|
+
BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE,
|
|
63
|
+
AWAKEABLE_ENTRY_MESSAGE_TYPE,
|
|
64
|
+
COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE,
|
|
65
|
+
SIDE_EFFECT_ENTRY_MESSAGE_TYPE,
|
|
66
|
+
COMBINATOR_ENTRY_MESSAGE,
|
|
67
|
+
GET_PROMISE_MESSAGE_TYPE,
|
|
68
|
+
PEEK_PROMISE_MESSAGE_TYPE,
|
|
69
|
+
COMPLETE_PROMISE_MESSAGE_TYPE,
|
|
70
|
+
]);
|
|
71
|
+
const PROTOBUF_MESSAGE_NAME_BY_TYPE = new Map([
|
|
72
|
+
[START_MESSAGE_TYPE, "StartMessage"],
|
|
73
|
+
[COMPLETION_MESSAGE_TYPE, "CompletionMessage"],
|
|
74
|
+
[SUSPENSION_MESSAGE_TYPE, "SuspensionMessage"],
|
|
75
|
+
[ERROR_MESSAGE_TYPE, "ErrorMessage"],
|
|
76
|
+
[ENTRY_ACK_MESSAGE_TYPE, "EntryAckMessage"],
|
|
77
|
+
[END_MESSAGE_TYPE, "EndMessage"],
|
|
78
|
+
[INPUT_ENTRY_MESSAGE_TYPE, "InputEntryMessage"],
|
|
79
|
+
[OUTPUT_ENTRY_MESSAGE_TYPE, "OutputEntryMessage"],
|
|
80
|
+
[GET_STATE_ENTRY_MESSAGE_TYPE, "GetStateEntryMessage"],
|
|
81
|
+
[GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, "GetStateKeysEntryMessage"],
|
|
82
|
+
[SET_STATE_ENTRY_MESSAGE_TYPE, "SetStateEntryMessage"],
|
|
83
|
+
[CLEAR_STATE_ENTRY_MESSAGE_TYPE, "ClearStateEntryMessage"],
|
|
84
|
+
[CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE, "ClearAllStateEntryMessage"],
|
|
85
|
+
[SLEEP_ENTRY_MESSAGE_TYPE, "SleepEntryMessage"],
|
|
86
|
+
[INVOKE_ENTRY_MESSAGE_TYPE, "CallEntryMessage"],
|
|
87
|
+
[BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, "OneWayCallEntryMessage"],
|
|
88
|
+
[AWAKEABLE_ENTRY_MESSAGE_TYPE, "AwakeableEntryMessage"],
|
|
89
|
+
[COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, "CompleteAwakeableEntryMessage"],
|
|
90
|
+
[SIDE_EFFECT_ENTRY_MESSAGE_TYPE, "RunEntryMessage"],
|
|
91
|
+
[COMBINATOR_ENTRY_MESSAGE, "CombinatorEntryMessage"],
|
|
92
|
+
[GET_PROMISE_MESSAGE_TYPE, "GetPromiseEntryMessage"],
|
|
93
|
+
[PEEK_PROMISE_MESSAGE_TYPE, "PeekPromiseEntryMessage"],
|
|
94
|
+
[COMPLETE_PROMISE_MESSAGE_TYPE, "CompletePromiseEntryMessage"],
|
|
95
|
+
]);
|
|
96
|
+
export const formatMessageType = (messageType) => {
|
|
97
|
+
return (PROTOBUF_MESSAGE_NAME_BY_TYPE.get(messageType) ?? messageType.toString());
|
|
98
|
+
};
|
|
99
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
100
|
+
const PROTOBUF_MESSAGES = [
|
|
101
|
+
[START_MESSAGE_TYPE, StartMessage],
|
|
102
|
+
[COMPLETION_MESSAGE_TYPE, CompletionMessage],
|
|
103
|
+
[SUSPENSION_MESSAGE_TYPE, SuspensionMessage],
|
|
104
|
+
[ERROR_MESSAGE_TYPE, ErrorMessage],
|
|
105
|
+
[ENTRY_ACK_MESSAGE_TYPE, EntryAckMessage],
|
|
106
|
+
[END_MESSAGE_TYPE, EndMessage],
|
|
107
|
+
[INPUT_ENTRY_MESSAGE_TYPE, InputEntryMessage],
|
|
108
|
+
[OUTPUT_ENTRY_MESSAGE_TYPE, OutputEntryMessage],
|
|
109
|
+
[GET_STATE_ENTRY_MESSAGE_TYPE, GetStateEntryMessage],
|
|
110
|
+
[GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, GetStateKeysEntryMessage],
|
|
111
|
+
[SET_STATE_ENTRY_MESSAGE_TYPE, SetStateEntryMessage],
|
|
112
|
+
[CLEAR_STATE_ENTRY_MESSAGE_TYPE, ClearStateEntryMessage],
|
|
113
|
+
[CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE, ClearAllStateEntryMessage],
|
|
114
|
+
[SLEEP_ENTRY_MESSAGE_TYPE, SleepEntryMessage],
|
|
115
|
+
[INVOKE_ENTRY_MESSAGE_TYPE, CallEntryMessage],
|
|
116
|
+
[BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, OneWayCallEntryMessage],
|
|
117
|
+
[AWAKEABLE_ENTRY_MESSAGE_TYPE, AwakeableEntryMessage],
|
|
118
|
+
[COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, CompleteAwakeableEntryMessage],
|
|
119
|
+
[SIDE_EFFECT_ENTRY_MESSAGE_TYPE, RunEntryMessage],
|
|
120
|
+
[COMBINATOR_ENTRY_MESSAGE, CombinatorEntryMessage],
|
|
121
|
+
[GET_PROMISE_MESSAGE_TYPE, GetPromiseEntryMessage],
|
|
122
|
+
[PEEK_PROMISE_MESSAGE_TYPE, PeekPromiseEntryMessage],
|
|
123
|
+
[COMPLETE_PROMISE_MESSAGE_TYPE, CompletePromiseEntryMessage],
|
|
124
|
+
];
|
|
125
|
+
export const PROTOBUF_MESSAGE_BY_TYPE = new Map(PROTOBUF_MESSAGES);
|
|
126
|
+
// These message types will trigger sending a suspension message from the runtime
|
|
127
|
+
// for each of the protocol modes
|
|
128
|
+
export const SUSPENSION_TRIGGERS = [
|
|
129
|
+
INVOKE_ENTRY_MESSAGE_TYPE,
|
|
130
|
+
GET_STATE_ENTRY_MESSAGE_TYPE,
|
|
131
|
+
GET_STATE_KEYS_ENTRY_MESSAGE_TYPE,
|
|
132
|
+
AWAKEABLE_ENTRY_MESSAGE_TYPE,
|
|
133
|
+
SLEEP_ENTRY_MESSAGE_TYPE,
|
|
134
|
+
COMBINATOR_ENTRY_MESSAGE,
|
|
135
|
+
// We need it because of the ack
|
|
136
|
+
SIDE_EFFECT_ENTRY_MESSAGE_TYPE,
|
|
137
|
+
// promises need completion
|
|
138
|
+
GET_PROMISE_MESSAGE_TYPE,
|
|
139
|
+
PEEK_PROMISE_MESSAGE_TYPE,
|
|
140
|
+
COMPLETE_PROMISE_MESSAGE_TYPE,
|
|
141
|
+
];
|
|
142
|
+
const MIN_SERVICE_PROTOCOL_VERSION = ServiceProtocolVersion.V1;
|
|
143
|
+
const MAX_SERVICE_PROTOCOL_VERSION = ServiceProtocolVersion.V1;
|
|
144
|
+
const MIN_SERVICE_DISCOVERY_PROTOCOL_VERSION = ServiceDiscoveryProtocolVersion.V1;
|
|
145
|
+
const MAX_SERVICE_DISCOVERY_PROTOCOL_VERSION = ServiceDiscoveryProtocolVersion.V1;
|
|
146
|
+
export function isServiceProtocolVersionSupported(version) {
|
|
147
|
+
return (version >= MIN_SERVICE_PROTOCOL_VERSION &&
|
|
148
|
+
version <= MAX_SERVICE_PROTOCOL_VERSION);
|
|
149
|
+
}
|
|
150
|
+
function isServiceDiscoveryProtocolVersionSupported(version) {
|
|
151
|
+
return (version >= MIN_SERVICE_DISCOVERY_PROTOCOL_VERSION &&
|
|
152
|
+
version <= MAX_SERVICE_DISCOVERY_PROTOCOL_VERSION);
|
|
153
|
+
}
|
|
154
|
+
export function parseServiceProtocolVersion(versionString) {
|
|
155
|
+
// if nothing is set, assume we are using V1
|
|
156
|
+
if (versionString === undefined ||
|
|
157
|
+
versionString === null ||
|
|
158
|
+
versionString === "") {
|
|
159
|
+
return ServiceProtocolVersion.V1;
|
|
160
|
+
}
|
|
161
|
+
versionString = versionString.trim();
|
|
162
|
+
if (versionString === "application/vnd.restate.invocation.v1") {
|
|
163
|
+
return ServiceProtocolVersion.V1;
|
|
164
|
+
}
|
|
165
|
+
return ServiceProtocolVersion.SERVICE_PROTOCOL_VERSION_UNSPECIFIED;
|
|
166
|
+
}
|
|
167
|
+
export function serviceProtocolVersionToHeaderValue(serviceProtocolVersion) {
|
|
168
|
+
switch (serviceProtocolVersion) {
|
|
169
|
+
case ServiceProtocolVersion.V1:
|
|
170
|
+
return "application/vnd.restate.invocation.v1";
|
|
171
|
+
default:
|
|
172
|
+
throw new Error(`Unsupported service discovery protocol version: ${serviceProtocolVersion}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function parseServiceDiscoveryProtocolVersion(versionString) {
|
|
176
|
+
versionString = versionString.trim();
|
|
177
|
+
if (versionString === "application/vnd.restate.endpointmanifest.v1+json") {
|
|
178
|
+
return ServiceDiscoveryProtocolVersion.V1;
|
|
179
|
+
}
|
|
180
|
+
return ServiceDiscoveryProtocolVersion.SERVICE_DISCOVERY_PROTOCOL_VERSION_UNSPECIFIED;
|
|
181
|
+
}
|
|
182
|
+
export function serviceDiscoveryProtocolVersionToHeaderValue(serviceDiscoveryProtocolVersion) {
|
|
183
|
+
switch (serviceDiscoveryProtocolVersion) {
|
|
184
|
+
case ServiceDiscoveryProtocolVersion.V1:
|
|
185
|
+
return "application/vnd.restate.endpointmanifest.v1+json";
|
|
186
|
+
default:
|
|
187
|
+
throw new Error(`Unsupported service discovery protocol version: ${serviceDiscoveryProtocolVersion}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
export function selectSupportedServiceDiscoveryProtocolVersion(acceptVersionsString) {
|
|
191
|
+
if (acceptVersionsString === undefined ||
|
|
192
|
+
acceptVersionsString === null ||
|
|
193
|
+
acceptVersionsString === "") {
|
|
194
|
+
return ServiceDiscoveryProtocolVersion.V1;
|
|
195
|
+
}
|
|
196
|
+
let maxVersion = ServiceDiscoveryProtocolVersion.SERVICE_DISCOVERY_PROTOCOL_VERSION_UNSPECIFIED;
|
|
197
|
+
acceptVersionsString.split(",").forEach((versionString) => {
|
|
198
|
+
const version = parseServiceDiscoveryProtocolVersion(versionString);
|
|
199
|
+
if (isServiceDiscoveryProtocolVersionSupported(version) &&
|
|
200
|
+
version > maxVersion) {
|
|
201
|
+
maxVersion = version;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
return maxVersion;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../src/types/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AAErF,mCAAmC;AACnC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAE3C,wEAAwE;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AACjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AACpD,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AACpD,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC;AACtD,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CAAC;AAC1D,MAAM,CAAC,MAAM,iCAAiC,GAAG,OAAO,CAAC;AACzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AACjD,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAC;AAC5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AACpD,MAAM,CAAC,MAAM,qCAAqC,GAAG,OAAO,CAAC;AAE7D,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAAC;AAEpD,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,GAAG,EAAE,CAAC;AAE3D,kCAAkC;AAClC,qFAAqF;AACrF,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAEhD,kBAAkB;AAClB,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAC/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAEpD,iCAAiC;AACjC,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACzC,kBAAkB;IAClB,uBAAuB;IACvB,uBAAuB;IACvB,kBAAkB;IAClB,sBAAsB;IACtB,gBAAgB;IAChB,wBAAwB;IACxB,yBAAyB;IACzB,4BAA4B;IAC5B,iCAAiC;IACjC,4BAA4B;IAC5B,8BAA8B;IAC9B,kCAAkC;IAClC,wBAAwB;IACxB,yBAAyB;IACzB,oCAAoC;IACpC,4BAA4B;IAC5B,qCAAqC;IACrC,8BAA8B;IAC9B,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;IACzB,6BAA6B;CAC9B,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAiB;IAC5D,CAAC,kBAAkB,EAAE,cAAc,CAAC;IACpC,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC9C,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC9C,CAAC,kBAAkB,EAAE,cAAc,CAAC;IACpC,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;IAC3C,CAAC,gBAAgB,EAAE,YAAY,CAAC;IAChC,CAAC,wBAAwB,EAAE,mBAAmB,CAAC;IAC/C,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;IACjD,CAAC,4BAA4B,EAAE,sBAAsB,CAAC;IACtD,CAAC,iCAAiC,EAAE,0BAA0B,CAAC;IAC/D,CAAC,4BAA4B,EAAE,sBAAsB,CAAC;IACtD,CAAC,8BAA8B,EAAE,wBAAwB,CAAC;IAC1D,CAAC,kCAAkC,EAAE,2BAA2B,CAAC;IACjE,CAAC,wBAAwB,EAAE,mBAAmB,CAAC;IAC/C,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;IAC/C,CAAC,oCAAoC,EAAE,wBAAwB,CAAC;IAChE,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;IACvD,CAAC,qCAAqC,EAAE,+BAA+B,CAAC;IACxE,CAAC,8BAA8B,EAAE,iBAAiB,CAAC;IACnD,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACpD,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACpD,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IACtD,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,EAAE;IACvD,OAAO,CACL,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,CACzE,CAAC;AACJ,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,iBAAiB,GAAyC;IAC9D,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAClC,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;IAC5C,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;IAC5C,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAClC,CAAC,sBAAsB,EAAE,eAAe,CAAC;IACzC,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAC9B,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;IAC7C,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;IAC/C,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;IACpD,CAAC,iCAAiC,EAAE,wBAAwB,CAAC;IAC7D,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;IACpD,CAAC,8BAA8B,EAAE,sBAAsB,CAAC;IACxD,CAAC,kCAAkC,EAAE,yBAAyB,CAAC;IAC/D,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;IAC7C,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;IAC7C,CAAC,oCAAoC,EAAE,sBAAsB,CAAC;IAC9D,CAAC,4BAA4B,EAAE,qBAAqB,CAAC;IACrD,CAAC,qCAAqC,EAAE,6BAA6B,CAAC;IACtE,CAAC,8BAA8B,EAAE,eAAe,CAAC;IACjD,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;IAClD,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;IAClD,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;IACpD,CAAC,6BAA6B,EAAE,2BAA2B,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;AA2BnE,iFAAiF;AACjF,iCAAiC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAa;IAC3C,yBAAyB;IACzB,4BAA4B;IAC5B,iCAAiC;IACjC,4BAA4B;IAC5B,wBAAwB;IACxB,wBAAwB;IACxB,gCAAgC;IAChC,8BAA8B;IAC9B,2BAA2B;IAC3B,wBAAwB;IACxB,yBAAyB;IACzB,6BAA6B;CAC9B,CAAC;AAEF,MAAM,4BAA4B,GAChC,sBAAsB,CAAC,EAAE,CAAC;AAC5B,MAAM,4BAA4B,GAChC,sBAAsB,CAAC,EAAE,CAAC;AAE5B,MAAM,sCAAsC,GAC1C,+BAA+B,CAAC,EAAE,CAAC;AACrC,MAAM,sCAAsC,GAC1C,+BAA+B,CAAC,EAAE,CAAC;AAErC,MAAM,UAAU,iCAAiC,CAC/C,OAA+B;IAE/B,OAAO,CACL,OAAO,IAAI,4BAA4B;QACvC,OAAO,IAAI,4BAA4B,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,0CAA0C,CACjD,OAAwC;IAExC,OAAO,CACL,OAAO,IAAI,sCAAsC;QACjD,OAAO,IAAI,sCAAsC,CAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,aAAiC;IAEjC,4CAA4C;IAC5C,IACE,aAAa,KAAK,SAAS;QAC3B,aAAa,KAAK,IAAI;QACtB,aAAa,KAAK,EAAE,EACpB,CAAC;QACD,OAAO,sBAAsB,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,aAAa,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAErC,IAAI,aAAa,KAAK,uCAAuC,EAAE,CAAC;QAC9D,OAAO,sBAAsB,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,sBAAsB,CAAC,oCAAoC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,sBAA8C;IAE9C,QAAQ,sBAAsB,EAAE,CAAC;QAC/B,KAAK,sBAAsB,CAAC,EAAE;YAC5B,OAAO,uCAAuC,CAAC;QACjD;YACE,MAAM,IAAI,KAAK,CACb,mDAAmD,sBAAsB,EAAE,CAC5E,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,oCAAoC,CAC3C,aAAqB;IAErB,aAAa,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,aAAa,KAAK,kDAAkD,EAAE,CAAC;QACzE,OAAO,+BAA+B,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO,+BAA+B,CAAC,8CAA8C,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,4CAA4C,CAC1D,+BAAgE;IAEhE,QAAQ,+BAA+B,EAAE,CAAC;QACxC,KAAK,+BAA+B,CAAC,EAAE;YACrC,OAAO,kDAAkD,CAAC;QAC5D;YACE,MAAM,IAAI,KAAK,CACb,mDAAmD,+BAA+B,EAAE,CACrF,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8CAA8C,CAC5D,oBAAwC;IAExC,IACE,oBAAoB,KAAK,SAAS;QAClC,oBAAoB,KAAK,IAAI;QAC7B,oBAAoB,KAAK,EAAE,EAC3B,CAAC;QACD,OAAO,+BAA+B,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,UAAU,GACZ,+BAA+B,CAAC,8CAA8C,CAAC;IAEjF,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACxD,MAAM,OAAO,GAAG,oCAAoC,CAAC,aAAa,CAAC,CAAC;QACpE,IACE,0CAA0C,CAAC,OAAO,CAAC;YACnD,OAAO,GAAG,UAAU,EACpB,CAAC;YACD,UAAU,GAAG,OAAO,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import type { CombineablePromise, Context, ObjectContext, ObjectSharedContext, WorkflowContext, WorkflowSharedContext } from "../context.js";
|
|
2
|
+
import type { ServiceHandler, ServiceDefinition, ObjectHandler, ObjectSharedHandler, VirtualObjectDefinition, WorkflowHandler, WorkflowDefinition, WorkflowSharedHandler } from "@restatedev/restate-sdk-core";
|
|
3
|
+
export type Client<M> = {
|
|
4
|
+
[K in keyof M as M[K] extends never ? never : K]: M[K] extends (arg: any, ...args: infer P) => PromiseLike<infer O> ? (...args: P) => CombineablePromise<O> : never;
|
|
5
|
+
};
|
|
6
|
+
export type SendClient<M> = {
|
|
7
|
+
[K in keyof M as M[K] extends never ? never : K]: M[K] extends (arg: any, ...args: infer P) => any ? (...args: P) => void : never;
|
|
8
|
+
};
|
|
9
|
+
export declare enum HandlerKind {
|
|
10
|
+
SERVICE = 0,
|
|
11
|
+
EXCLUSIVE = 1,
|
|
12
|
+
SHARED = 2,
|
|
13
|
+
WORKFLOW = 3
|
|
14
|
+
}
|
|
15
|
+
export type ServiceHandlerOpts = {
|
|
16
|
+
accept?: string;
|
|
17
|
+
contentType?: string;
|
|
18
|
+
inputDeserializer?: <T>(input: Uint8Array) => T | undefined;
|
|
19
|
+
outputSerializer?: <T>(output: T | undefined) => Uint8Array;
|
|
20
|
+
};
|
|
21
|
+
export type ObjectHandlerOpts = {
|
|
22
|
+
accept?: string;
|
|
23
|
+
contentType?: string;
|
|
24
|
+
inputDeserializer?: <T>(input: Uint8Array) => T | undefined;
|
|
25
|
+
outputSerializer?: <T>(output: T | undefined) => Uint8Array;
|
|
26
|
+
};
|
|
27
|
+
export type WorkflowHandlerOpts = {
|
|
28
|
+
accept?: string;
|
|
29
|
+
contentType?: string;
|
|
30
|
+
inputDeserializer?: <T>(input: Uint8Array) => T | undefined;
|
|
31
|
+
outputSerializer?: <T>(output: T | undefined) => Uint8Array;
|
|
32
|
+
};
|
|
33
|
+
export declare class HandlerWrapper {
|
|
34
|
+
readonly kind: HandlerKind;
|
|
35
|
+
private handler;
|
|
36
|
+
readonly accept: string;
|
|
37
|
+
readonly contentType: string;
|
|
38
|
+
readonly deserializer: (input: Uint8Array) => unknown;
|
|
39
|
+
readonly serializer: (input: unknown) => Uint8Array;
|
|
40
|
+
static from(kind: HandlerKind, handler: Function, opts?: ServiceHandlerOpts | ObjectHandlerOpts): HandlerWrapper;
|
|
41
|
+
static fromHandler(handler: any): HandlerWrapper | undefined;
|
|
42
|
+
private constructor();
|
|
43
|
+
bindInstance(t: unknown): void;
|
|
44
|
+
invoke(context: unknown, input: Uint8Array): Promise<Uint8Array>;
|
|
45
|
+
/**
|
|
46
|
+
* Instead of a HandlerWrapper with a handler property,
|
|
47
|
+
* return the original handler with a HandlerWrapper property.
|
|
48
|
+
* This is needed to keep the appearance of regular functions
|
|
49
|
+
* bound to an object, so that for example, `this.foo(ctx, arg)` would
|
|
50
|
+
* work.
|
|
51
|
+
*/
|
|
52
|
+
transpose<F>(): F;
|
|
53
|
+
}
|
|
54
|
+
export declare namespace handlers {
|
|
55
|
+
/**
|
|
56
|
+
* Create a service handler.
|
|
57
|
+
*
|
|
58
|
+
* @param opts additional configuration
|
|
59
|
+
* @param fn the actual handler code to execute
|
|
60
|
+
*/
|
|
61
|
+
function handler<F>(opts: ServiceHandlerOpts, fn: ServiceHandler<F, Context>): F;
|
|
62
|
+
namespace workflow {
|
|
63
|
+
function workflow<F>(opts: WorkflowHandlerOpts, fn: WorkflowHandler<F, WorkflowContext>): F;
|
|
64
|
+
function workflow<F>(fn: WorkflowHandler<F, WorkflowContext>): F;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a shared handler for a workflow.
|
|
67
|
+
*
|
|
68
|
+
* A shared handler allows a read-only concurrent execution
|
|
69
|
+
* for a given key.
|
|
70
|
+
*
|
|
71
|
+
* @param opts additional configurations
|
|
72
|
+
* @param fn the handler to execute
|
|
73
|
+
*/
|
|
74
|
+
function shared<F>(opts: WorkflowHandlerOpts, fn: WorkflowSharedHandler<F, WorkflowSharedContext>): F;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a shared handler for a workflow.
|
|
77
|
+
*
|
|
78
|
+
* A shared handler allows a read-only concurrent execution
|
|
79
|
+
* for a given key.
|
|
80
|
+
*
|
|
81
|
+
* @param opts additional configurations
|
|
82
|
+
* @param fn the handler to execute
|
|
83
|
+
*/
|
|
84
|
+
function shared<F>(fn: WorkflowSharedHandler<F, WorkflowSharedContext>): F;
|
|
85
|
+
}
|
|
86
|
+
namespace object {
|
|
87
|
+
/**
|
|
88
|
+
* Creates an exclusive handler for a virtual Object.
|
|
89
|
+
*
|
|
90
|
+
* note : This applies only to a virtual object.
|
|
91
|
+
*
|
|
92
|
+
* @param opts additional configurations
|
|
93
|
+
* @param fn the handler to execute
|
|
94
|
+
*/
|
|
95
|
+
function exclusive<F>(opts: ObjectHandlerOpts, fn: ObjectHandler<F, ObjectContext>): F;
|
|
96
|
+
/**
|
|
97
|
+
* Creates an exclusive handler for a virtual Object.
|
|
98
|
+
*
|
|
99
|
+
*
|
|
100
|
+
* note 1: This applies only to a virtual object.
|
|
101
|
+
* note 2: This is the default for virtual objects, so if no
|
|
102
|
+
* additional reconfiguration is needed, you can simply
|
|
103
|
+
* use the handler directly (no need to use exclusive).
|
|
104
|
+
* This variant here is only for symmetry/convenance.
|
|
105
|
+
*
|
|
106
|
+
* @param fn the handler to execute
|
|
107
|
+
*/
|
|
108
|
+
function exclusive<F>(fn: ObjectHandler<F, ObjectContext>): F;
|
|
109
|
+
/**
|
|
110
|
+
* Creates a shared handler for a virtual Object.
|
|
111
|
+
*
|
|
112
|
+
* A shared handler allows a read-only concurrent execution
|
|
113
|
+
* for a given key.
|
|
114
|
+
*
|
|
115
|
+
* note: This applies only to a virtual object.
|
|
116
|
+
*
|
|
117
|
+
* @param opts additional configurations
|
|
118
|
+
* @param fn the handler to execute
|
|
119
|
+
*/
|
|
120
|
+
function shared<F>(opts: ObjectHandlerOpts, fn: ObjectSharedHandler<F, ObjectSharedContext>): F;
|
|
121
|
+
/**
|
|
122
|
+
* Creates a shared handler for a virtual Object.
|
|
123
|
+
*
|
|
124
|
+
* A shared handler allows a read-only concurrent execution
|
|
125
|
+
* for a given key.
|
|
126
|
+
*
|
|
127
|
+
* note: This applies only to a virtual object.
|
|
128
|
+
*
|
|
129
|
+
* @param opts additional configurations
|
|
130
|
+
* @param fn the handler to execute
|
|
131
|
+
*/
|
|
132
|
+
function shared<F>(fn: ObjectSharedHandler<F, ObjectSharedContext>): F;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
export type ServiceOpts<U> = {
|
|
136
|
+
[K in keyof U]: U[K] extends ServiceHandler<any, Context> ? U[K] : never;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Define a Restate service.
|
|
140
|
+
*
|
|
141
|
+
* @example Here is an example of how to define a service:
|
|
142
|
+
*
|
|
143
|
+
* ```ts
|
|
144
|
+
* const greeter = service({
|
|
145
|
+
* name: "greeter",
|
|
146
|
+
* handlers: {
|
|
147
|
+
* greet: async (ctx: Context, name: string) => {
|
|
148
|
+
* return `Hello ${name}`;
|
|
149
|
+
* }
|
|
150
|
+
* }
|
|
151
|
+
* });
|
|
152
|
+
* ```
|
|
153
|
+
*
|
|
154
|
+
* To use the service, you can bind it to an endpoint:
|
|
155
|
+
* ```
|
|
156
|
+
* ...
|
|
157
|
+
* endpoint.bind(greeter)
|
|
158
|
+
* ```
|
|
159
|
+
* @example To use a service, you can export its type to be used in a client:
|
|
160
|
+
* ```
|
|
161
|
+
* export type Greeter = typeof greeter;
|
|
162
|
+
* ...
|
|
163
|
+
* ...
|
|
164
|
+
* import type { Greeter } from "./greeter";
|
|
165
|
+
* const client = ctx.serviceClient<Greeter>({ name : "greeter"});
|
|
166
|
+
* client.greet("World").then(console.log);
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @example Alternatively to avoid repeating the service name, you can:
|
|
170
|
+
* ```
|
|
171
|
+
* import type {Greeter} from "./greeter";
|
|
172
|
+
* const Greeter: Greeter = { name : "greeter"};
|
|
173
|
+
*
|
|
174
|
+
* // now you can reference the service like this:
|
|
175
|
+
* const client = ctx.serviceClient(Greeter);
|
|
176
|
+
* ```
|
|
177
|
+
*
|
|
178
|
+
* @param name the service name
|
|
179
|
+
* @param handlers the handlers for the service
|
|
180
|
+
* @type P the name of the service
|
|
181
|
+
* @type M the handlers for the service
|
|
182
|
+
*/
|
|
183
|
+
export declare const service: <P extends string, M>(service: {
|
|
184
|
+
name: P;
|
|
185
|
+
handlers: ServiceOpts<M>;
|
|
186
|
+
}) => ServiceDefinition<P, M>;
|
|
187
|
+
export type ObjectOpts<U> = {
|
|
188
|
+
[K in keyof U]: U[K] extends ObjectHandler<U[K], ObjectContext> ? U[K] : U[K] extends ObjectHandler<U[K], ObjectSharedContext> ? U[K] : never;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Define a Restate virtual object.
|
|
192
|
+
*
|
|
193
|
+
* @example Here is an example of how to define a virtual object:
|
|
194
|
+
* ```ts
|
|
195
|
+
* const counter = object({
|
|
196
|
+
* name: "counter",
|
|
197
|
+
* handlers: {
|
|
198
|
+
* add: async (ctx: ObjectContext, amount: number) => {},
|
|
199
|
+
* get: async (ctx: ObjectContext) => {}
|
|
200
|
+
* }
|
|
201
|
+
* })
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* @example To use the object, you can bind it to an endpoint:
|
|
205
|
+
* ```ts
|
|
206
|
+
* ...
|
|
207
|
+
* endpoint.bind(counter)
|
|
208
|
+
* ```
|
|
209
|
+
*
|
|
210
|
+
* @see to interact with the object, you can use the object client:
|
|
211
|
+
* ```ts
|
|
212
|
+
* ...
|
|
213
|
+
* const client = ctx.objectClient<typeof counter>({ name: "counter"});
|
|
214
|
+
* const res = await client.add(1)
|
|
215
|
+
* ```
|
|
216
|
+
*
|
|
217
|
+
* ### Shared handlers
|
|
218
|
+
*
|
|
219
|
+
* Shared handlers are used to allow concurrent read-only access to the object.
|
|
220
|
+
* This is useful when you want to allow multiple clients to read the object's state at the same time.
|
|
221
|
+
* To define a shared handler, you can use the `shared` decorator as shown below:
|
|
222
|
+
*
|
|
223
|
+
* ```ts
|
|
224
|
+
* const counter = object({
|
|
225
|
+
* name: "counter",
|
|
226
|
+
* handlers: {
|
|
227
|
+
*
|
|
228
|
+
* add: async (ctx: ObjectContext, amount: number) => { .. },
|
|
229
|
+
*
|
|
230
|
+
* get: handlers.object.shared(async (ctx: ObjectSharedContext) => {
|
|
231
|
+
* return ctx.get<number>("count");
|
|
232
|
+
* })
|
|
233
|
+
* }
|
|
234
|
+
* });
|
|
235
|
+
* ```
|
|
236
|
+
*
|
|
237
|
+
* @param name the name of the object
|
|
238
|
+
* @param handlers the handlers for the object
|
|
239
|
+
*/
|
|
240
|
+
export declare const object: <P extends string, M>(object: {
|
|
241
|
+
name: P;
|
|
242
|
+
handlers: ObjectOpts<M>;
|
|
243
|
+
}) => VirtualObjectDefinition<P, M>;
|
|
244
|
+
/**
|
|
245
|
+
* A workflow handlers is a type that describes the handlers for a workflow.
|
|
246
|
+
* The handlers must contain exactly one handler named 'run', and this handler must accept as a first argument a WorkflowContext.
|
|
247
|
+
* It can contain any number of additional handlers, which must accept as a first argument a WorkflowSharedContext.
|
|
248
|
+
* The handlers can not be named 'workflowSubmit', 'workflowAttach', 'workflowOutput' - as these are reserved.
|
|
249
|
+
* @see {@link workflow} for an example.
|
|
250
|
+
*/
|
|
251
|
+
export type WorkflowOpts<U> = {
|
|
252
|
+
run: (ctx: WorkflowContext, argument: any) => Promise<any>;
|
|
253
|
+
} & {
|
|
254
|
+
[K in keyof U]: K extends "workflowSubmit" | "workflowAttach" | "workflowOutput" ? `${K} is a reserved keyword` : K extends "run" ? U[K] extends WorkflowHandler<U[K], WorkflowContext> ? U[K] : "An handler named 'run' must take as a first argument a WorkflowContext, and must return a Promise" : U[K] extends WorkflowSharedHandler<U[K], WorkflowSharedContext> ? U[K] : "An handler other then 'run' must accept as a first argument a WorkflowSharedContext";
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* Define a Restate workflow.
|
|
258
|
+
*
|
|
259
|
+
*
|
|
260
|
+
* @example Here is an example of how to define a workflow:
|
|
261
|
+
* ```ts
|
|
262
|
+
* const mywf = workflow({
|
|
263
|
+
* name: "mywf",
|
|
264
|
+
* handlers: {
|
|
265
|
+
* run: async (ctx: WorkflowContext, argument: any) => {
|
|
266
|
+
* return "Hello World";
|
|
267
|
+
* }
|
|
268
|
+
* }
|
|
269
|
+
* });
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* ### Note:
|
|
273
|
+
* * That a workflow must contain exactly one handler named 'run', and this handler must accept as a first argument a WorkflowContext.
|
|
274
|
+
* * The workflow handlers other than 'run' must accept as a first argument a WorkflowSharedContext.
|
|
275
|
+
* * The workflow handlers can not be named 'workflowSubmit', 'workflowAttach', 'workflowOutput' - as these are reserved keywords.
|
|
276
|
+
*
|
|
277
|
+
* @example To use the workflow, you can bind it to an endpoint:
|
|
278
|
+
* ```ts
|
|
279
|
+
* endpoint.bind(mywf)
|
|
280
|
+
* ```
|
|
281
|
+
*
|
|
282
|
+
* @example To interact with the workflow, you can use the workflow client:
|
|
283
|
+
* ```ts
|
|
284
|
+
* const client = ctx.workflowClient<typeof mywf>({ name: "mywf"});
|
|
285
|
+
* const res = await client.run("Hello");
|
|
286
|
+
* ```
|
|
287
|
+
*
|
|
288
|
+
* To use the workflow client from any other environment (like a browser), please refer to the documentation.
|
|
289
|
+
* https://docs.restate.dev
|
|
290
|
+
*
|
|
291
|
+
*
|
|
292
|
+
*
|
|
293
|
+
* @param name the workflow name
|
|
294
|
+
* @param handlers the handlers for the workflow.
|
|
295
|
+
*/
|
|
296
|
+
export declare const workflow: <P extends string, M>(workflow: {
|
|
297
|
+
name: P;
|
|
298
|
+
handlers: WorkflowOpts<M>;
|
|
299
|
+
}) => WorkflowDefinition<P, M>;
|
|
300
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../../src/types/rpc.ts"],"names":[],"mappings":"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"}
|