@restatedev/restate-sdk 1.9.0 → 1.10.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/LICENSE +21 -0
- package/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/common_api.cjs +25 -0
- package/dist/common_api.d.cts +30 -0
- package/dist/common_api.d.cts.map +1 -0
- package/dist/common_api.d.ts +30 -0
- package/dist/common_api.d.ts.map +1 -0
- package/dist/common_api.js +19 -0
- package/dist/common_api.js.map +1 -0
- package/dist/context.cjs +29 -0
- package/dist/context.d.cts +699 -0
- package/dist/context.d.cts.map +1 -0
- package/dist/context.d.ts +699 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +29 -0
- package/dist/context.js.map +1 -0
- package/dist/context_impl.cjs +441 -0
- package/dist/{cjs/src/context_impl.d.ts → context_impl.d.ts} +2 -1
- package/dist/context_impl.d.ts.map +1 -0
- package/dist/context_impl.js +440 -0
- package/dist/context_impl.js.map +1 -0
- package/dist/endpoint/components.cjs +257 -0
- package/dist/endpoint/components.d.ts.map +1 -0
- package/dist/endpoint/components.js +253 -0
- package/dist/endpoint/components.js.map +1 -0
- package/dist/endpoint/discovery.d.ts.map +1 -0
- package/dist/{esm/src/endpoint → endpoint}/discovery.js +0 -1
- package/dist/endpoint/discovery.js.map +1 -0
- package/dist/endpoint/endpoint.cjs +117 -0
- package/dist/endpoint/endpoint.d.ts.map +1 -0
- package/dist/endpoint/endpoint.js +118 -0
- package/dist/endpoint/endpoint.js.map +1 -0
- package/dist/endpoint/fetch_endpoint.cjs +41 -0
- package/dist/endpoint/fetch_endpoint.d.cts +39 -0
- package/dist/endpoint/fetch_endpoint.d.cts.map +1 -0
- package/dist/endpoint/fetch_endpoint.d.ts +39 -0
- package/dist/endpoint/fetch_endpoint.d.ts.map +1 -0
- package/dist/endpoint/fetch_endpoint.js +42 -0
- package/dist/endpoint/fetch_endpoint.js.map +1 -0
- package/dist/endpoint/handlers/fetch.cjs +21 -0
- package/dist/endpoint/handlers/fetch.d.ts.map +1 -0
- package/dist/endpoint/handlers/fetch.js +21 -0
- package/dist/endpoint/handlers/fetch.js.map +1 -0
- package/dist/endpoint/handlers/generic.cjs +328 -0
- package/dist/{esm/src/endpoint → endpoint}/handlers/generic.d.ts +6 -1
- package/dist/endpoint/handlers/generic.d.ts.map +1 -0
- package/dist/endpoint/handlers/generic.js +324 -0
- package/dist/endpoint/handlers/generic.js.map +1 -0
- package/dist/endpoint/handlers/lambda.cjs +93 -0
- package/dist/endpoint/handlers/lambda.d.ts.map +1 -0
- package/dist/endpoint/handlers/lambda.js +89 -0
- package/dist/endpoint/handlers/lambda.js.map +1 -0
- package/dist/{cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js → endpoint/handlers/vm/sdk_shared_core_wasm_bindings.cjs} +1431 -1416
- package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +1 -0
- package/dist/{esm/src/endpoint → endpoint}/handlers/vm/sdk_shared_core_wasm_bindings.js +1427 -1405
- package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +1 -0
- package/dist/endpoint/lambda_endpoint.cjs +36 -0
- package/dist/endpoint/lambda_endpoint.d.cts +26 -0
- package/dist/endpoint/lambda_endpoint.d.cts.map +1 -0
- package/dist/endpoint/lambda_endpoint.d.ts +26 -0
- package/dist/endpoint/lambda_endpoint.d.ts.map +1 -0
- package/dist/endpoint/lambda_endpoint.js +37 -0
- package/dist/endpoint/lambda_endpoint.js.map +1 -0
- package/dist/endpoint/node_endpoint.cjs +101 -0
- package/dist/{esm/src/endpoint → endpoint}/node_endpoint.d.ts +1 -1
- package/dist/endpoint/node_endpoint.d.ts.map +1 -0
- package/dist/endpoint/node_endpoint.js +99 -0
- package/dist/endpoint/node_endpoint.js.map +1 -0
- package/dist/endpoint/types.d.cts +61 -0
- package/dist/endpoint/types.d.cts.map +1 -0
- package/dist/endpoint/types.d.ts +61 -0
- package/dist/endpoint/types.d.ts.map +1 -0
- package/dist/{cjs/src/endpoint → endpoint}/types.js.map +1 -1
- package/dist/endpoint/withOptions.cjs +15 -0
- package/dist/endpoint/withOptions.d.ts.map +1 -0
- package/dist/endpoint/withOptions.js +15 -0
- package/dist/endpoint/withOptions.js.map +1 -0
- package/dist/endpoint.d.cts +112 -0
- package/dist/endpoint.d.cts.map +1 -0
- package/dist/endpoint.d.ts +112 -0
- package/dist/endpoint.d.ts.map +1 -0
- package/dist/endpoint.js.map +1 -0
- package/dist/fetch.cjs +83 -0
- package/dist/fetch.d.cts +52 -0
- package/dist/fetch.d.cts.map +1 -0
- package/dist/fetch.d.ts +52 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +44 -0
- package/dist/fetch.js.map +1 -0
- package/dist/index.cjs +48 -0
- package/dist/index.d.cts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/io.cjs +48 -0
- package/dist/io.d.ts.map +1 -0
- package/dist/io.js +48 -0
- package/dist/io.js.map +1 -0
- package/dist/lambda.cjs +74 -0
- package/dist/lambda.d.cts +32 -0
- package/dist/lambda.d.cts.map +1 -0
- package/dist/lambda.d.ts +32 -0
- package/dist/lambda.d.ts.map +1 -0
- package/dist/lambda.js +35 -0
- package/dist/lambda.js.map +1 -0
- package/dist/logging/console_logger_transport.cjs +54 -0
- package/dist/logging/console_logger_transport.d.ts.map +1 -0
- package/dist/logging/console_logger_transport.js +54 -0
- package/dist/logging/console_logger_transport.js.map +1 -0
- package/dist/logging/logger.cjs +43 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +44 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/logging/logger_transport.cjs +42 -0
- package/dist/logging/logger_transport.d.cts +57 -0
- package/dist/logging/logger_transport.d.cts.map +1 -0
- package/dist/logging/logger_transport.d.ts +57 -0
- package/dist/logging/logger_transport.d.ts.map +1 -0
- package/dist/logging/logger_transport.js +40 -0
- package/dist/logging/logger_transport.js.map +1 -0
- package/dist/node.cjs +90 -0
- package/dist/node.d.cts +51 -0
- package/dist/node.d.cts.map +1 -0
- package/dist/node.d.ts +51 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +50 -0
- package/dist/node.js.map +1 -0
- package/dist/package.cjs +11 -0
- package/dist/package.js +6 -0
- package/dist/package.js.map +1 -0
- package/dist/promises.cjs +234 -0
- package/dist/{esm/src/promises.d.ts → promises.d.ts} +6 -6
- package/dist/promises.d.ts.map +1 -0
- package/dist/promises.js +226 -0
- package/dist/promises.js.map +1 -0
- package/dist/types/errors.cjs +110 -0
- package/dist/types/errors.d.cts +71 -0
- package/dist/types/errors.d.cts.map +1 -0
- package/dist/types/errors.d.ts +71 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +102 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/rpc.cjs +425 -0
- package/dist/types/rpc.d.cts +580 -0
- package/dist/types/rpc.d.cts.map +1 -0
- package/dist/types/rpc.d.ts +580 -0
- package/dist/types/rpc.d.ts.map +1 -0
- package/dist/types/rpc.js +406 -0
- package/dist/types/rpc.js.map +1 -0
- package/dist/user_agent.cjs +7 -0
- package/dist/user_agent.d.ts +2 -0
- package/dist/user_agent.d.ts.map +1 -0
- package/dist/user_agent.js +8 -0
- package/dist/user_agent.js.map +1 -0
- package/dist/utils/completable_promise.cjs +22 -0
- package/dist/utils/completable_promise.d.ts.map +1 -0
- package/dist/utils/completable_promise.js +22 -0
- package/dist/utils/completable_promise.js.map +1 -0
- package/dist/utils/rand.cjs +72 -0
- package/dist/utils/rand.d.ts.map +1 -0
- package/dist/utils/rand.js +71 -0
- package/dist/utils/rand.js.map +1 -0
- package/dist/utils/streams.cjs +14 -0
- package/dist/utils/streams.d.ts.map +1 -0
- package/dist/utils/streams.js +13 -0
- package/dist/utils/streams.js.map +1 -0
- package/package.json +49 -80
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/src/common_api.d.ts +0 -37
- package/dist/cjs/src/common_api.d.ts.map +0 -1
- package/dist/cjs/src/common_api.js +0 -49
- package/dist/cjs/src/common_api.js.map +0 -1
- package/dist/cjs/src/context.d.ts +0 -695
- package/dist/cjs/src/context.d.ts.map +0 -1
- package/dist/cjs/src/context.js +0 -90
- package/dist/cjs/src/context.js.map +0 -1
- package/dist/cjs/src/context_impl.d.ts.map +0 -1
- package/dist/cjs/src/context_impl.js +0 -597
- package/dist/cjs/src/context_impl.js.map +0 -1
- package/dist/cjs/src/endpoint/components.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/components.js +0 -353
- package/dist/cjs/src/endpoint/components.js.map +0 -1
- package/dist/cjs/src/endpoint/discovery.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/discovery.js +0 -9
- package/dist/cjs/src/endpoint/discovery.js.map +0 -1
- package/dist/cjs/src/endpoint/endpoint.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/endpoint.js +0 -159
- package/dist/cjs/src/endpoint/endpoint.js.map +0 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +0 -49
- package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/fetch_endpoint.js +0 -53
- package/dist/cjs/src/endpoint/fetch_endpoint.js.map +0 -1
- package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/handlers/fetch.js +0 -34
- package/dist/cjs/src/endpoint/handlers/fetch.js.map +0 -1
- package/dist/cjs/src/endpoint/handlers/generic.d.ts +0 -56
- package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/handlers/generic.js +0 -485
- package/dist/cjs/src/endpoint/handlers/generic.js.map +0 -1
- package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/handlers/lambda.js +0 -180
- package/dist/cjs/src/endpoint/handlers/lambda.js.map +0 -1
- package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +0 -1
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +0 -30
- package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/lambda_endpoint.js +0 -52
- package/dist/cjs/src/endpoint/lambda_endpoint.js.map +0 -1
- package/dist/cjs/src/endpoint/node_endpoint.d.ts +0 -16
- package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/node_endpoint.js +0 -148
- package/dist/cjs/src/endpoint/node_endpoint.js.map +0 -1
- package/dist/cjs/src/endpoint/types.d.ts +0 -55
- package/dist/cjs/src/endpoint/types.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/types.js +0 -3
- package/dist/cjs/src/endpoint/withOptions.d.ts.map +0 -1
- package/dist/cjs/src/endpoint/withOptions.js +0 -22
- package/dist/cjs/src/endpoint/withOptions.js.map +0 -1
- package/dist/cjs/src/endpoint.d.ts +0 -108
- package/dist/cjs/src/endpoint.d.ts.map +0 -1
- package/dist/cjs/src/endpoint.js +0 -13
- package/dist/cjs/src/endpoint.js.map +0 -1
- package/dist/cjs/src/fetch.d.ts +0 -43
- package/dist/cjs/src/fetch.d.ts.map +0 -1
- package/dist/cjs/src/fetch.js +0 -64
- package/dist/cjs/src/fetch.js.map +0 -1
- package/dist/cjs/src/generated/version.d.ts +0 -2
- package/dist/cjs/src/generated/version.d.ts.map +0 -1
- package/dist/cjs/src/generated/version.js +0 -5
- package/dist/cjs/src/generated/version.js.map +0 -1
- package/dist/cjs/src/io.d.ts.map +0 -1
- package/dist/cjs/src/io.js +0 -78
- package/dist/cjs/src/io.js.map +0 -1
- package/dist/cjs/src/lambda.d.ts +0 -23
- package/dist/cjs/src/lambda.d.ts.map +0 -1
- package/dist/cjs/src/lambda.js +0 -55
- package/dist/cjs/src/lambda.js.map +0 -1
- package/dist/cjs/src/logging/console_logger_transport.d.ts.map +0 -1
- package/dist/cjs/src/logging/console_logger_transport.js +0 -98
- package/dist/cjs/src/logging/console_logger_transport.js.map +0 -1
- package/dist/cjs/src/logging/logger.d.ts.map +0 -1
- package/dist/cjs/src/logging/logger.js +0 -60
- package/dist/cjs/src/logging/logger.js.map +0 -1
- package/dist/cjs/src/logging/logger_transport.d.ts +0 -52
- package/dist/cjs/src/logging/logger_transport.d.ts.map +0 -1
- package/dist/cjs/src/logging/logger_transport.js +0 -59
- package/dist/cjs/src/logging/logger_transport.js.map +0 -1
- package/dist/cjs/src/node.d.ts +0 -39
- package/dist/cjs/src/node.d.ts.map +0 -1
- package/dist/cjs/src/node.js +0 -71
- package/dist/cjs/src/node.js.map +0 -1
- package/dist/cjs/src/promises.d.ts +0 -111
- package/dist/cjs/src/promises.d.ts.map +0 -1
- package/dist/cjs/src/promises.js +0 -326
- package/dist/cjs/src/promises.js.map +0 -1
- package/dist/cjs/src/public_api.d.ts +0 -2
- package/dist/cjs/src/public_api.d.ts.map +0 -1
- package/dist/cjs/src/public_api.js +0 -28
- package/dist/cjs/src/public_api.js.map +0 -1
- package/dist/cjs/src/types/errors.d.ts +0 -74
- package/dist/cjs/src/types/errors.d.ts.map +0 -1
- package/dist/cjs/src/types/errors.js +0 -138
- package/dist/cjs/src/types/errors.js.map +0 -1
- package/dist/cjs/src/types/rpc.d.ts +0 -620
- package/dist/cjs/src/types/rpc.d.ts.map +0 -1
- package/dist/cjs/src/types/rpc.js +0 -589
- package/dist/cjs/src/types/rpc.js.map +0 -1
- package/dist/cjs/src/user_agent.d.ts +0 -2
- package/dist/cjs/src/user_agent.d.ts.map +0 -1
- package/dist/cjs/src/user_agent.js +0 -16
- package/dist/cjs/src/user_agent.js.map +0 -1
- package/dist/cjs/src/utils/completable_promise.d.ts.map +0 -1
- package/dist/cjs/src/utils/completable_promise.js +0 -34
- package/dist/cjs/src/utils/completable_promise.js.map +0 -1
- package/dist/cjs/src/utils/rand.d.ts.map +0 -1
- package/dist/cjs/src/utils/rand.js +0 -113
- package/dist/cjs/src/utils/rand.js.map +0 -1
- package/dist/cjs/src/utils/streams.d.ts.map +0 -1
- package/dist/cjs/src/utils/streams.js +0 -23
- package/dist/cjs/src/utils/streams.js.map +0 -1
- package/dist/cjs/tsconfig.tsbuildinfo +0 -1
- package/dist/esm/src/common_api.d.ts +0 -37
- package/dist/esm/src/common_api.d.ts.map +0 -1
- package/dist/esm/src/common_api.js +0 -32
- package/dist/esm/src/common_api.js.map +0 -1
- package/dist/esm/src/context.d.ts +0 -695
- package/dist/esm/src/context.d.ts.map +0 -1
- package/dist/esm/src/context.js +0 -87
- package/dist/esm/src/context.js.map +0 -1
- package/dist/esm/src/context_impl.d.ts +0 -69
- package/dist/esm/src/context_impl.d.ts.map +0 -1
- package/dist/esm/src/context_impl.js +0 -592
- package/dist/esm/src/context_impl.js.map +0 -1
- package/dist/esm/src/endpoint/components.d.ts +0 -97
- package/dist/esm/src/endpoint/components.d.ts.map +0 -1
- package/dist/esm/src/endpoint/components.js +0 -343
- package/dist/esm/src/endpoint/components.js.map +0 -1
- package/dist/esm/src/endpoint/discovery.d.ts +0 -184
- package/dist/esm/src/endpoint/discovery.d.ts.map +0 -1
- package/dist/esm/src/endpoint/discovery.js.map +0 -1
- package/dist/esm/src/endpoint/endpoint.d.ts +0 -39
- package/dist/esm/src/endpoint/endpoint.d.ts.map +0 -1
- package/dist/esm/src/endpoint/endpoint.js +0 -155
- package/dist/esm/src/endpoint/endpoint.js.map +0 -1
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts +0 -49
- package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +0 -1
- package/dist/esm/src/endpoint/fetch_endpoint.js +0 -49
- package/dist/esm/src/endpoint/fetch_endpoint.js.map +0 -1
- package/dist/esm/src/endpoint/handlers/fetch.d.ts +0 -5
- package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +0 -1
- package/dist/esm/src/endpoint/handlers/fetch.js +0 -31
- package/dist/esm/src/endpoint/handlers/fetch.js.map +0 -1
- package/dist/esm/src/endpoint/handlers/generic.d.ts.map +0 -1
- package/dist/esm/src/endpoint/handlers/generic.js +0 -447
- package/dist/esm/src/endpoint/handlers/generic.js.map +0 -1
- package/dist/esm/src/endpoint/handlers/lambda.d.ts +0 -10
- package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +0 -1
- package/dist/esm/src/endpoint/handlers/lambda.js +0 -142
- package/dist/esm/src/endpoint/handlers/lambda.js.map +0 -1
- package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +0 -367
- package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +0 -1
- package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +0 -1
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts +0 -30
- package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +0 -1
- package/dist/esm/src/endpoint/lambda_endpoint.js +0 -48
- package/dist/esm/src/endpoint/lambda_endpoint.js.map +0 -1
- package/dist/esm/src/endpoint/node_endpoint.d.ts.map +0 -1
- package/dist/esm/src/endpoint/node_endpoint.js +0 -111
- package/dist/esm/src/endpoint/node_endpoint.js.map +0 -1
- package/dist/esm/src/endpoint/types.d.ts +0 -55
- package/dist/esm/src/endpoint/types.d.ts.map +0 -1
- package/dist/esm/src/endpoint/types.js.map +0 -1
- package/dist/esm/src/endpoint/withOptions.d.ts +0 -4
- package/dist/esm/src/endpoint/withOptions.d.ts.map +0 -1
- package/dist/esm/src/endpoint/withOptions.js +0 -19
- package/dist/esm/src/endpoint/withOptions.js.map +0 -1
- package/dist/esm/src/endpoint.d.ts +0 -108
- package/dist/esm/src/endpoint.d.ts.map +0 -1
- package/dist/esm/src/endpoint.js.map +0 -1
- package/dist/esm/src/fetch.d.ts +0 -43
- package/dist/esm/src/fetch.d.ts.map +0 -1
- package/dist/esm/src/fetch.js +0 -46
- package/dist/esm/src/fetch.js.map +0 -1
- package/dist/esm/src/generated/version.d.ts +0 -2
- package/dist/esm/src/generated/version.d.ts.map +0 -1
- package/dist/esm/src/generated/version.js +0 -2
- package/dist/esm/src/generated/version.js.map +0 -1
- package/dist/esm/src/io.d.ts +0 -24
- package/dist/esm/src/io.d.ts.map +0 -1
- package/dist/esm/src/io.js +0 -73
- package/dist/esm/src/io.js.map +0 -1
- package/dist/esm/src/lambda.d.ts +0 -23
- package/dist/esm/src/lambda.d.ts.map +0 -1
- package/dist/esm/src/lambda.js +0 -37
- package/dist/esm/src/lambda.js.map +0 -1
- package/dist/esm/src/logging/console_logger_transport.d.ts +0 -5
- package/dist/esm/src/logging/console_logger_transport.d.ts.map +0 -1
- package/dist/esm/src/logging/console_logger_transport.js +0 -94
- package/dist/esm/src/logging/console_logger_transport.js.map +0 -1
- package/dist/esm/src/logging/logger.d.ts +0 -10
- package/dist/esm/src/logging/logger.d.ts.map +0 -1
- package/dist/esm/src/logging/logger.js +0 -57
- package/dist/esm/src/logging/logger.js.map +0 -1
- package/dist/esm/src/logging/logger_transport.d.ts +0 -52
- package/dist/esm/src/logging/logger_transport.d.ts.map +0 -1
- package/dist/esm/src/logging/logger_transport.js +0 -55
- package/dist/esm/src/logging/logger_transport.js.map +0 -1
- package/dist/esm/src/node.d.ts +0 -39
- package/dist/esm/src/node.d.ts.map +0 -1
- package/dist/esm/src/node.js +0 -52
- package/dist/esm/src/node.js.map +0 -1
- package/dist/esm/src/promises.d.ts.map +0 -1
- package/dist/esm/src/promises.js +0 -314
- package/dist/esm/src/promises.js.map +0 -1
- package/dist/esm/src/public_api.d.ts +0 -2
- package/dist/esm/src/public_api.d.ts.map +0 -1
- package/dist/esm/src/public_api.js +0 -12
- package/dist/esm/src/public_api.js.map +0 -1
- package/dist/esm/src/types/errors.d.ts +0 -74
- package/dist/esm/src/types/errors.d.ts.map +0 -1
- package/dist/esm/src/types/errors.js +0 -128
- package/dist/esm/src/types/errors.js.map +0 -1
- package/dist/esm/src/types/rpc.d.ts +0 -620
- package/dist/esm/src/types/rpc.d.ts.map +0 -1
- package/dist/esm/src/types/rpc.js +0 -577
- package/dist/esm/src/types/rpc.js.map +0 -1
- package/dist/esm/src/user_agent.d.ts +0 -2
- package/dist/esm/src/user_agent.d.ts.map +0 -1
- package/dist/esm/src/user_agent.js +0 -13
- package/dist/esm/src/user_agent.js.map +0 -1
- package/dist/esm/src/utils/completable_promise.d.ts +0 -9
- package/dist/esm/src/utils/completable_promise.d.ts.map +0 -1
- package/dist/esm/src/utils/completable_promise.js +0 -30
- package/dist/esm/src/utils/completable_promise.js.map +0 -1
- package/dist/esm/src/utils/rand.d.ts +0 -13
- package/dist/esm/src/utils/rand.d.ts.map +0 -1
- package/dist/esm/src/utils/rand.js +0 -109
- package/dist/esm/src/utils/rand.js.map +0 -1
- package/dist/esm/src/utils/streams.d.ts +0 -3
- package/dist/esm/src/utils/streams.d.ts.map +0 -1
- package/dist/esm/src/utils/streams.js +0 -20
- package/dist/esm/src/utils/streams.js.map +0 -1
- package/dist/esm/tsconfig.tsbuildinfo +0 -1
- /package/dist/{cjs/src/endpoint → endpoint}/components.d.ts +0 -0
- /package/dist/{cjs/src/endpoint → endpoint}/discovery.d.ts +0 -0
- /package/dist/{cjs/src/endpoint → endpoint}/endpoint.d.ts +0 -0
- /package/dist/{cjs/src/endpoint → endpoint}/handlers/fetch.d.ts +0 -0
- /package/dist/{cjs/src/endpoint → endpoint}/handlers/lambda.d.ts +0 -0
- /package/dist/{cjs/src/endpoint → endpoint}/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +0 -0
- /package/dist/{esm/src/endpoint → endpoint}/types.js +0 -0
- /package/dist/{cjs/src/endpoint → endpoint}/withOptions.d.ts +0 -0
- /package/dist/{esm/src/endpoint.js → endpoint.js} +0 -0
- /package/dist/{cjs/src/io.d.ts → io.d.ts} +0 -0
- /package/dist/{cjs/src/logging → logging}/console_logger_transport.d.ts +0 -0
- /package/dist/{cjs/src/logging → logging}/logger.d.ts +0 -0
- /package/dist/{cjs/src/utils → utils}/completable_promise.d.ts +0 -0
- /package/dist/{cjs/src/utils → utils}/rand.d.ts +0 -0
- /package/dist/{cjs/src/utils → utils}/streams.d.ts +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const require_generic = require('./handlers/generic.cjs');
|
|
2
|
+
const require_endpoint = require('./endpoint.cjs');
|
|
3
|
+
const require_lambda = require('./handlers/lambda.cjs');
|
|
4
|
+
|
|
5
|
+
//#region src/endpoint/lambda_endpoint.ts
|
|
6
|
+
var LambdaEndpointImpl = class {
|
|
7
|
+
builder = new require_endpoint.EndpointBuilder();
|
|
8
|
+
bind(definition) {
|
|
9
|
+
this.builder.bind(definition);
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
withIdentityV1(...keys) {
|
|
13
|
+
this.builder.addIdentityKeys(...keys);
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
defaultServiceOptions(options) {
|
|
17
|
+
this.builder.setDefaultServiceOptions(options);
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
setLogger(logger) {
|
|
21
|
+
this.builder.setLogger(logger);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
journalValueCodecProvider(codecProvider) {
|
|
25
|
+
this.builder.setJournalValueCodecProvider(codecProvider);
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
handler() {
|
|
29
|
+
const compressionEnabled = require_lambda.isCompressionSupported();
|
|
30
|
+
const lambdaHandler = new require_lambda.LambdaHandler(new require_generic.GenericHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
|
|
31
|
+
return lambdaHandler.handleRequest.bind(lambdaHandler);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
exports.LambdaEndpointImpl = LambdaEndpointImpl;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import "../logging/logger_transport.cjs";
|
|
2
|
+
import { RestateEndpointBase } from "../endpoint.cjs";
|
|
3
|
+
import { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
|
|
4
|
+
|
|
5
|
+
//#region src/endpoint/lambda_endpoint.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* LambdaEndpoint encapsulates all the Restate services served by this endpoint.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* A typical endpoint served as Lambda would look like this:
|
|
13
|
+
* ```
|
|
14
|
+
* import * as restate from "@restatedev/restate-sdk/lambda";
|
|
15
|
+
*
|
|
16
|
+
* export const handler = restate
|
|
17
|
+
* .endpoint()
|
|
18
|
+
* .bind(myService)
|
|
19
|
+
* .handler();
|
|
20
|
+
*/
|
|
21
|
+
interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {
|
|
22
|
+
handler(): (event: any, ctx: any) => Promise<any>;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { LambdaEndpoint };
|
|
26
|
+
//# sourceMappingURL=lambda_endpoint.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda_endpoint.d.cts","names":[],"sources":["../../src/endpoint/lambda_endpoint.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAwCA;;;;;;;;;;;;UAAiB,cAAA,SAAuB,oBAAoB;uCAErB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import "../logging/logger_transport.js";
|
|
2
|
+
import { RestateEndpointBase } from "../endpoint.js";
|
|
3
|
+
import { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
|
|
4
|
+
|
|
5
|
+
//#region src/endpoint/lambda_endpoint.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* LambdaEndpoint encapsulates all the Restate services served by this endpoint.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* A typical endpoint served as Lambda would look like this:
|
|
13
|
+
* ```
|
|
14
|
+
* import * as restate from "@restatedev/restate-sdk/lambda";
|
|
15
|
+
*
|
|
16
|
+
* export const handler = restate
|
|
17
|
+
* .endpoint()
|
|
18
|
+
* .bind(myService)
|
|
19
|
+
* .handler();
|
|
20
|
+
*/
|
|
21
|
+
interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {
|
|
22
|
+
handler(): (event: any, ctx: any) => Promise<any>;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { LambdaEndpoint };
|
|
26
|
+
//# sourceMappingURL=lambda_endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda_endpoint.d.ts","names":[],"sources":["../../src/endpoint/lambda_endpoint.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAwCA;;;;;;;;;;;;UAAiB,cAAA,SAAuB,oBAAoB;uCAErB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { GenericHandler } from "./handlers/generic.js";
|
|
2
|
+
import { EndpointBuilder } from "./endpoint.js";
|
|
3
|
+
import { LambdaHandler, isCompressionSupported } from "./handlers/lambda.js";
|
|
4
|
+
|
|
5
|
+
//#region src/endpoint/lambda_endpoint.ts
|
|
6
|
+
var LambdaEndpointImpl = class {
|
|
7
|
+
builder = new EndpointBuilder();
|
|
8
|
+
bind(definition) {
|
|
9
|
+
this.builder.bind(definition);
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
withIdentityV1(...keys) {
|
|
13
|
+
this.builder.addIdentityKeys(...keys);
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
defaultServiceOptions(options) {
|
|
17
|
+
this.builder.setDefaultServiceOptions(options);
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
setLogger(logger) {
|
|
21
|
+
this.builder.setLogger(logger);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
journalValueCodecProvider(codecProvider) {
|
|
25
|
+
this.builder.setJournalValueCodecProvider(codecProvider);
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
handler() {
|
|
29
|
+
const compressionEnabled = isCompressionSupported();
|
|
30
|
+
const lambdaHandler = new LambdaHandler(new GenericHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
|
|
31
|
+
return lambdaHandler.handleRequest.bind(lambdaHandler);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { LambdaEndpointImpl };
|
|
37
|
+
//# sourceMappingURL=lambda_endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda_endpoint.js","names":[],"sources":["../../src/endpoint/lambda_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport type {\n DefaultServiceOptions,\n RestateEndpointBase,\n} from \"../endpoint.js\";\nimport { GenericHandler } from \"./handlers/generic.js\";\nimport { isCompressionSupported, LambdaHandler } from \"./handlers/lambda.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\n\n/**\n * LambdaEndpoint encapsulates all the Restate services served by this endpoint.\n *\n *\n * @example\n * A typical endpoint served as Lambda would look like this:\n * ```\n * import * as restate from \"@restatedev/restate-sdk/lambda\";\n *\n * export const handler = restate\n * .endpoint()\n * .bind(myService)\n * .handler();\n */\nexport interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any>;\n}\n\nexport class LambdaEndpointImpl implements LambdaEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): LambdaEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): LambdaEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(options: DefaultServiceOptions): LambdaEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): LambdaEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): LambdaEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any> {\n const compressionEnabled = isCompressionSupported();\n\n const genericHandler = new GenericHandler(\n this.builder.build(),\n \"REQUEST_RESPONSE\",\n compressionEnabled\n ? {\n lambdaCompression: \"zstd\",\n }\n : {}\n );\n const lambdaHandler = new LambdaHandler(genericHandler, compressionEnabled);\n return lambdaHandler.handleRequest.bind(lambdaHandler);\n }\n}\n"],"mappings":";;;;;AA6CA,IAAa,qBAAb,MAA0D;CACxD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIgB;AAChB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAgC;AACvD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBAAsB,SAAgD;AAC3E,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAAyC;AACxD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACgB;AAChB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAIT,UAAkD;EAChD,MAAM,qBAAqB,wBAAwB;EAWnD,MAAM,gBAAgB,IAAI,cATH,IAAI,eACzB,KAAK,QAAQ,OAAO,EACpB,oBACA,qBACI,EACE,mBAAmB,QACpB,GACD,EAAE,CACP,EACuD,mBAAmB;AAC3E,SAAO,cAAc,cAAc,KAAK,cAAc"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_errors = require('../types/errors.cjs');
|
|
3
|
+
const require_generic = require('./handlers/generic.cjs');
|
|
4
|
+
const require_endpoint = require('./endpoint.cjs');
|
|
5
|
+
let http2 = require("http2");
|
|
6
|
+
http2 = require_rolldown_runtime.__toESM(http2);
|
|
7
|
+
let node_stream = require("node:stream");
|
|
8
|
+
node_stream = require_rolldown_runtime.__toESM(node_stream);
|
|
9
|
+
|
|
10
|
+
//#region src/endpoint/node_endpoint.ts
|
|
11
|
+
var NodeEndpoint = class {
|
|
12
|
+
builder = new require_endpoint.EndpointBuilder();
|
|
13
|
+
bind(definition) {
|
|
14
|
+
this.builder.bind(definition);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
withIdentityV1(...keys) {
|
|
18
|
+
this.builder.addIdentityKeys(...keys);
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
defaultServiceOptions(options) {
|
|
22
|
+
this.builder.setDefaultServiceOptions(options);
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
setLogger(logger) {
|
|
26
|
+
this.builder.setLogger(logger);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
journalValueCodecProvider(codecProvider) {
|
|
30
|
+
this.builder.setJournalValueCodecProvider(codecProvider);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
http2Handler() {
|
|
34
|
+
return nodeHttp2Handler(this.builder.build());
|
|
35
|
+
}
|
|
36
|
+
listen(port) {
|
|
37
|
+
const endpoint = this.builder.build();
|
|
38
|
+
const actualPort = port ?? parseInt(process.env.PORT ?? "9080");
|
|
39
|
+
endpoint.rlog.info(`Restate SDK started listening on ${actualPort}...`);
|
|
40
|
+
const server = http2.createServer(nodeHttp2Handler(endpoint));
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
let failed = false;
|
|
43
|
+
server.once("error", (e) => {
|
|
44
|
+
failed = true;
|
|
45
|
+
reject(e);
|
|
46
|
+
});
|
|
47
|
+
server.listen(actualPort, () => {
|
|
48
|
+
if (failed) return;
|
|
49
|
+
const address = server.address();
|
|
50
|
+
if (address === null || typeof address === "string") reject(/* @__PURE__ */ new TypeError("endpoint.listen() currently supports only binding to a PORT"));
|
|
51
|
+
else resolve(address.port);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
function nodeHttp2Handler(endpoint) {
|
|
57
|
+
const handler = new require_generic.GenericHandler(endpoint, "BIDI_STREAM", {});
|
|
58
|
+
return (request, response) => {
|
|
59
|
+
(async () => {
|
|
60
|
+
const abortController = new AbortController();
|
|
61
|
+
request.once("aborted", () => {
|
|
62
|
+
abortController.abort();
|
|
63
|
+
});
|
|
64
|
+
request.once("close", () => {
|
|
65
|
+
abortController.abort();
|
|
66
|
+
});
|
|
67
|
+
request.once("error", () => {
|
|
68
|
+
abortController.abort();
|
|
69
|
+
});
|
|
70
|
+
if (request.destroyed || request.aborted) {
|
|
71
|
+
endpoint.rlog.error("Client disconnected");
|
|
72
|
+
abortController.abort();
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const url = request.url;
|
|
76
|
+
const webRequestBody = node_stream.Readable.toWeb(request);
|
|
77
|
+
const resp = await handler.handle({
|
|
78
|
+
url,
|
|
79
|
+
headers: request.headers,
|
|
80
|
+
body: webRequestBody,
|
|
81
|
+
extraArgs: [],
|
|
82
|
+
abortSignal: abortController.signal
|
|
83
|
+
});
|
|
84
|
+
if (response.destroyed) return;
|
|
85
|
+
response.writeHead(resp.statusCode, resp.headers);
|
|
86
|
+
const responseWeb = node_stream.Writable.toWeb(response);
|
|
87
|
+
await resp.body.pipeTo(responseWeb);
|
|
88
|
+
} catch (e) {
|
|
89
|
+
const error = require_errors.ensureError(e);
|
|
90
|
+
const logger = require_generic.tryCreateContextualLogger(endpoint.loggerTransport, request.url, request.headers) ?? endpoint.rlog;
|
|
91
|
+
if (error.name === "AbortError") logger.error("Got abort error from connection: " + error.message + "\nThis might indicate that:\n* The restate-server aborted the connection after hitting the 'abort-timeout'\n* The connection with the restate-server was lost\n\nPlease check the invocation in the Restate UI for more details.");
|
|
92
|
+
else logger.error("Error while handling request: " + (error.stack ?? error.message));
|
|
93
|
+
response.destroy(error);
|
|
94
|
+
abortController.abort();
|
|
95
|
+
}
|
|
96
|
+
})().catch(() => {});
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
exports.NodeEndpoint = NodeEndpoint;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RestateEndpoint } from "../
|
|
1
|
+
import type { RestateEndpoint } from "../index.js";
|
|
2
2
|
import type { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
|
|
3
3
|
import type { Http2ServerRequest, Http2ServerResponse } from "http2";
|
|
4
4
|
import type { LoggerTransport } from "../logging/logger_transport.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../src/endpoint/node_endpoint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAWrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,OAAO,CAA0C;IAElD,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,eAAe;IAKX,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe;IAKlD,qBAAqB,CAC1B,OAAO,EAAE,qBAAqB,GAC7B,eAAe;IAKX,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAKnD,yBAAyB,CAC9B,aAAa,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAC9C,eAAe;IAKlB,YAAY,IAAI,CACd,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,mBAAmB,KAC1B,IAAI;IAIT,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BvC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ensureError } from "../types/errors.js";
|
|
2
|
+
import { GenericHandler, tryCreateContextualLogger } from "./handlers/generic.js";
|
|
3
|
+
import { EndpointBuilder } from "./endpoint.js";
|
|
4
|
+
import * as http2 from "http2";
|
|
5
|
+
import { Readable, Writable } from "node:stream";
|
|
6
|
+
|
|
7
|
+
//#region src/endpoint/node_endpoint.ts
|
|
8
|
+
var NodeEndpoint = class {
|
|
9
|
+
builder = new EndpointBuilder();
|
|
10
|
+
bind(definition) {
|
|
11
|
+
this.builder.bind(definition);
|
|
12
|
+
return this;
|
|
13
|
+
}
|
|
14
|
+
withIdentityV1(...keys) {
|
|
15
|
+
this.builder.addIdentityKeys(...keys);
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
defaultServiceOptions(options) {
|
|
19
|
+
this.builder.setDefaultServiceOptions(options);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
setLogger(logger) {
|
|
23
|
+
this.builder.setLogger(logger);
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
journalValueCodecProvider(codecProvider) {
|
|
27
|
+
this.builder.setJournalValueCodecProvider(codecProvider);
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
http2Handler() {
|
|
31
|
+
return nodeHttp2Handler(this.builder.build());
|
|
32
|
+
}
|
|
33
|
+
listen(port) {
|
|
34
|
+
const endpoint = this.builder.build();
|
|
35
|
+
const actualPort = port ?? parseInt(process.env.PORT ?? "9080");
|
|
36
|
+
endpoint.rlog.info(`Restate SDK started listening on ${actualPort}...`);
|
|
37
|
+
const server = http2.createServer(nodeHttp2Handler(endpoint));
|
|
38
|
+
return new Promise((resolve, reject) => {
|
|
39
|
+
let failed = false;
|
|
40
|
+
server.once("error", (e) => {
|
|
41
|
+
failed = true;
|
|
42
|
+
reject(e);
|
|
43
|
+
});
|
|
44
|
+
server.listen(actualPort, () => {
|
|
45
|
+
if (failed) return;
|
|
46
|
+
const address = server.address();
|
|
47
|
+
if (address === null || typeof address === "string") reject(/* @__PURE__ */ new TypeError("endpoint.listen() currently supports only binding to a PORT"));
|
|
48
|
+
else resolve(address.port);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
function nodeHttp2Handler(endpoint) {
|
|
54
|
+
const handler = new GenericHandler(endpoint, "BIDI_STREAM", {});
|
|
55
|
+
return (request, response) => {
|
|
56
|
+
(async () => {
|
|
57
|
+
const abortController = new AbortController();
|
|
58
|
+
request.once("aborted", () => {
|
|
59
|
+
abortController.abort();
|
|
60
|
+
});
|
|
61
|
+
request.once("close", () => {
|
|
62
|
+
abortController.abort();
|
|
63
|
+
});
|
|
64
|
+
request.once("error", () => {
|
|
65
|
+
abortController.abort();
|
|
66
|
+
});
|
|
67
|
+
if (request.destroyed || request.aborted) {
|
|
68
|
+
endpoint.rlog.error("Client disconnected");
|
|
69
|
+
abortController.abort();
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const url = request.url;
|
|
73
|
+
const webRequestBody = Readable.toWeb(request);
|
|
74
|
+
const resp = await handler.handle({
|
|
75
|
+
url,
|
|
76
|
+
headers: request.headers,
|
|
77
|
+
body: webRequestBody,
|
|
78
|
+
extraArgs: [],
|
|
79
|
+
abortSignal: abortController.signal
|
|
80
|
+
});
|
|
81
|
+
if (response.destroyed) return;
|
|
82
|
+
response.writeHead(resp.statusCode, resp.headers);
|
|
83
|
+
const responseWeb = Writable.toWeb(response);
|
|
84
|
+
await resp.body.pipeTo(responseWeb);
|
|
85
|
+
} catch (e) {
|
|
86
|
+
const error = ensureError(e);
|
|
87
|
+
const logger = tryCreateContextualLogger(endpoint.loggerTransport, request.url, request.headers) ?? endpoint.rlog;
|
|
88
|
+
if (error.name === "AbortError") logger.error("Got abort error from connection: " + error.message + "\nThis might indicate that:\n* The restate-server aborted the connection after hitting the 'abort-timeout'\n* The connection with the restate-server was lost\n\nPlease check the invocation in the Restate UI for more details.");
|
|
89
|
+
else logger.error("Error while handling request: " + (error.stack ?? error.message));
|
|
90
|
+
response.destroy(error);
|
|
91
|
+
abortController.abort();
|
|
92
|
+
}
|
|
93
|
+
})().catch(() => {});
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
//#endregion
|
|
98
|
+
export { NodeEndpoint };
|
|
99
|
+
//# sourceMappingURL=node_endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_endpoint.js","names":[],"sources":["../../src/endpoint/node_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type { RestateEndpoint } from \"../index.js\";\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\n\nimport type { Http2ServerRequest, Http2ServerResponse } from \"http2\";\nimport * as http2 from \"http2\";\nimport type { Endpoint } from \"./endpoint.js\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport {\n GenericHandler,\n tryCreateContextualLogger,\n} from \"./handlers/generic.js\";\nimport { Readable, Writable } from \"node:stream\";\nimport type { WritableStream } from \"node:stream/web\";\nimport { ensureError } from \"../types/errors.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\nimport type { DefaultServiceOptions } from \"../endpoint.js\";\n\nexport class NodeEndpoint implements RestateEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): RestateEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): RestateEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(\n options: DefaultServiceOptions\n ): RestateEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): RestateEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): RestateEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n http2Handler(): (\n request: Http2ServerRequest,\n response: Http2ServerResponse\n ) => void {\n return nodeHttp2Handler(this.builder.build());\n }\n\n listen(port?: number): Promise<number> {\n const endpoint = this.builder.build();\n\n const actualPort = port ?? parseInt(process.env.PORT ?? \"9080\");\n endpoint.rlog.info(`Restate SDK started listening on ${actualPort}...`);\n\n const server = http2.createServer(nodeHttp2Handler(endpoint));\n\n return new Promise((resolve, reject) => {\n let failed = false;\n server.once(\"error\", (e: Error) => {\n failed = true;\n reject(e);\n });\n server.listen(actualPort, () => {\n if (failed) {\n return;\n }\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n reject(\n new TypeError(\n \"endpoint.listen() currently supports only binding to a PORT\"\n )\n );\n } else {\n resolve(address.port);\n }\n });\n });\n }\n}\n\nfunction nodeHttp2Handler(\n endpoint: Endpoint\n): (request: Http2ServerRequest, response: Http2ServerResponse) => void {\n const handler = new GenericHandler(endpoint, \"BIDI_STREAM\", {});\n\n return (request, response) => {\n (async () => {\n const abortController = new AbortController();\n\n request.once(\"aborted\", () => {\n abortController.abort();\n });\n request.once(\"close\", () => {\n abortController.abort();\n });\n request.once(\"error\", () => {\n abortController.abort();\n });\n\n if (request.destroyed || request.aborted) {\n endpoint.rlog.error(\"Client disconnected\");\n abortController.abort();\n }\n\n try {\n const url = request.url;\n const webRequestBody = Readable.toWeb(request);\n\n const resp = await handler.handle({\n url,\n headers: request.headers,\n body: webRequestBody,\n extraArgs: [],\n abortSignal: abortController.signal,\n });\n\n if (response.destroyed) {\n return;\n }\n\n response.writeHead(resp.statusCode, resp.headers);\n const responseWeb = Writable.toWeb(\n response\n ) as WritableStream<Uint8Array>;\n await resp.body.pipeTo(responseWeb);\n } catch (e) {\n const error = ensureError(e);\n\n const logger =\n tryCreateContextualLogger(\n endpoint.loggerTransport,\n request.url,\n request.headers\n ) ?? endpoint.rlog;\n if (error.name === \"AbortError\") {\n logger.error(\n \"Got abort error from connection: \" +\n error.message +\n \"\\n\" +\n \"This might indicate that:\\n\" +\n \"* The restate-server aborted the connection after hitting the 'abort-timeout'\\n\" +\n \"* The connection with the restate-server was lost\\n\" +\n \"\\n\" +\n \"Please check the invocation in the Restate UI for more details.\"\n );\n } else {\n logger.error(\n \"Error while handling request: \" + (error.stack ?? error.message)\n );\n }\n\n response.destroy(error);\n abortController.abort();\n }\n })().catch(() => {});\n };\n}\n"],"mappings":";;;;;;;AAiCA,IAAa,eAAb,MAAqD;CACnD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIiB;AACjB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAiC;AACxD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBACL,SACiB;AACjB,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAA0C;AACzD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACiB;AACjB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAGT,eAGU;AACR,SAAO,iBAAiB,KAAK,QAAQ,OAAO,CAAC;;CAG/C,OAAO,MAAgC;EACrC,MAAM,WAAW,KAAK,QAAQ,OAAO;EAErC,MAAM,aAAa,QAAQ,SAAS,QAAQ,IAAI,QAAQ,OAAO;AAC/D,WAAS,KAAK,KAAK,oCAAoC,WAAW,KAAK;EAEvE,MAAM,SAAS,MAAM,aAAa,iBAAiB,SAAS,CAAC;AAE7D,SAAO,IAAI,SAAS,SAAS,WAAW;GACtC,IAAI,SAAS;AACb,UAAO,KAAK,UAAU,MAAa;AACjC,aAAS;AACT,WAAO,EAAE;KACT;AACF,UAAO,OAAO,kBAAkB;AAC9B,QAAI,OACF;IAEF,MAAM,UAAU,OAAO,SAAS;AAChC,QAAI,YAAY,QAAQ,OAAO,YAAY,SACzC,wBACE,IAAI,UACF,8DACD,CACF;QAED,SAAQ,QAAQ,KAAK;KAEvB;IACF;;;AAIN,SAAS,iBACP,UACsE;CACtE,MAAM,UAAU,IAAI,eAAe,UAAU,eAAe,EAAE,CAAC;AAE/D,SAAQ,SAAS,aAAa;AAC5B,GAAC,YAAY;GACX,MAAM,kBAAkB,IAAI,iBAAiB;AAE7C,WAAQ,KAAK,iBAAiB;AAC5B,oBAAgB,OAAO;KACvB;AACF,WAAQ,KAAK,eAAe;AAC1B,oBAAgB,OAAO;KACvB;AACF,WAAQ,KAAK,eAAe;AAC1B,oBAAgB,OAAO;KACvB;AAEF,OAAI,QAAQ,aAAa,QAAQ,SAAS;AACxC,aAAS,KAAK,MAAM,sBAAsB;AAC1C,oBAAgB,OAAO;;AAGzB,OAAI;IACF,MAAM,MAAM,QAAQ;IACpB,MAAM,iBAAiB,SAAS,MAAM,QAAQ;IAE9C,MAAM,OAAO,MAAM,QAAQ,OAAO;KAChC;KACA,SAAS,QAAQ;KACjB,MAAM;KACN,WAAW,EAAE;KACb,aAAa,gBAAgB;KAC9B,CAAC;AAEF,QAAI,SAAS,UACX;AAGF,aAAS,UAAU,KAAK,YAAY,KAAK,QAAQ;IACjD,MAAM,cAAc,SAAS,MAC3B,SACD;AACD,UAAM,KAAK,KAAK,OAAO,YAAY;YAC5B,GAAG;IACV,MAAM,QAAQ,YAAY,EAAE;IAE5B,MAAM,SACJ,0BACE,SAAS,iBACT,QAAQ,KACR,QAAQ,QACT,IAAI,SAAS;AAChB,QAAI,MAAM,SAAS,aACjB,QAAO,MACL,sCACE,MAAM,UACN,mOAMH;QAED,QAAO,MACL,oCAAoC,MAAM,SAAS,MAAM,SAC1D;AAGH,aAAS,QAAQ,MAAM;AACvB,oBAAgB,OAAO;;MAEvB,CAAC,YAAY,GAAG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { LoggerTransport } from "../logging/logger_transport.cjs";
|
|
2
|
+
import { DefaultServiceOptions } from "../endpoint.cjs";
|
|
3
|
+
import { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "../common_api.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/endpoint/types.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Options for creating an endpoint handler for Node.js HTTP/2 servers.
|
|
8
|
+
*/
|
|
9
|
+
interface EndpointOptions {
|
|
10
|
+
/**
|
|
11
|
+
* A list of Restate services, virtual objects, or workflows that will be exposed via the endpoint.
|
|
12
|
+
*/
|
|
13
|
+
services: Array<ServiceDefinition<string, unknown> | VirtualObjectDefinition<string, unknown> | WorkflowDefinition<string, unknown>>;
|
|
14
|
+
/**
|
|
15
|
+
* Provide a list of v1 request identity public keys eg `publickeyv1_2G8dCQhArfvGpzPw5Vx2ALciR4xCLHfS5YaT93XjNxX9` to validate
|
|
16
|
+
* incoming requests against, limiting requests to Restate clusters with the corresponding private keys. This public key format is
|
|
17
|
+
* logged by the Restate process at startup if a request identity private key is provided.
|
|
18
|
+
*
|
|
19
|
+
* If this function is called, all incoming requests irrelevant of endpoint type will be expected to have
|
|
20
|
+
* `x-restate-signature-scheme: v1` and `x-restate-jwt-v1: <valid jwt signed with one of these keys>`. If not called,
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
identityKeys?: string[];
|
|
24
|
+
/**
|
|
25
|
+
* Default service options that will be used by all services bind to this endpoint.
|
|
26
|
+
*
|
|
27
|
+
* Options can be overridden on each service/handler.
|
|
28
|
+
*/
|
|
29
|
+
defaultServiceOptions?: DefaultServiceOptions;
|
|
30
|
+
/**
|
|
31
|
+
* Replace the default console-based {@link LoggerTransport}
|
|
32
|
+
* @example
|
|
33
|
+
* Using console:
|
|
34
|
+
* ```ts
|
|
35
|
+
* createEndpointHandler({ logger: (meta, message, ...o) => {console.log(`${meta.level}: `, message, ...o)}})
|
|
36
|
+
* ```
|
|
37
|
+
* @example
|
|
38
|
+
* Using winston:
|
|
39
|
+
* ```ts
|
|
40
|
+
* const logger = createLogger({ ... })
|
|
41
|
+
* createEndpointHandler({ logger: (meta, message, ...o) => {logger.log(meta.level, {invocationId: meta.context?.invocationId}, [message, ...o].join(' '))} })
|
|
42
|
+
* ```
|
|
43
|
+
* @example
|
|
44
|
+
* Using pino:
|
|
45
|
+
* ```ts
|
|
46
|
+
* const logger = pino()
|
|
47
|
+
* createEndpointHandler({ logger: (meta, message, ...o) => {logger[meta.level]({invocationId: meta.context?.invocationId}, [message, ...o].join(' '))}} )
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
logger?: LoggerTransport;
|
|
51
|
+
/**
|
|
52
|
+
* Provider for the codec to use for journal values. One codec will be instantiated globally for this endpoint.
|
|
53
|
+
* Check {@link JournalValueCodec} for more details
|
|
54
|
+
*
|
|
55
|
+
* @experimental
|
|
56
|
+
*/
|
|
57
|
+
journalValueCodecProvider?: () => Promise<JournalValueCodec>;
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { EndpointOptions };
|
|
61
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../src/endpoint/types.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAYiB,eAAA;EAAA;;;EAOX,QAAA,EAHM,KAGN,CAFA,iBAEA,CAAA,MAAA,EAAA,OAAA,CAAA,GADA,uBACA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,kBAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;EAHM;;;;;;;;;;;;;;;0BAoBc;;;;;;;;;;;;;;;;;;;;;WAqBf;;;;;;;oCAQyB,QAAQ"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { LoggerTransport } from "../logging/logger_transport.js";
|
|
2
|
+
import { DefaultServiceOptions } from "../endpoint.js";
|
|
3
|
+
import { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "../common_api.js";
|
|
4
|
+
|
|
5
|
+
//#region src/endpoint/types.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Options for creating an endpoint handler for Node.js HTTP/2 servers.
|
|
8
|
+
*/
|
|
9
|
+
interface EndpointOptions {
|
|
10
|
+
/**
|
|
11
|
+
* A list of Restate services, virtual objects, or workflows that will be exposed via the endpoint.
|
|
12
|
+
*/
|
|
13
|
+
services: Array<ServiceDefinition<string, unknown> | VirtualObjectDefinition<string, unknown> | WorkflowDefinition<string, unknown>>;
|
|
14
|
+
/**
|
|
15
|
+
* Provide a list of v1 request identity public keys eg `publickeyv1_2G8dCQhArfvGpzPw5Vx2ALciR4xCLHfS5YaT93XjNxX9` to validate
|
|
16
|
+
* incoming requests against, limiting requests to Restate clusters with the corresponding private keys. This public key format is
|
|
17
|
+
* logged by the Restate process at startup if a request identity private key is provided.
|
|
18
|
+
*
|
|
19
|
+
* If this function is called, all incoming requests irrelevant of endpoint type will be expected to have
|
|
20
|
+
* `x-restate-signature-scheme: v1` and `x-restate-jwt-v1: <valid jwt signed with one of these keys>`. If not called,
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
identityKeys?: string[];
|
|
24
|
+
/**
|
|
25
|
+
* Default service options that will be used by all services bind to this endpoint.
|
|
26
|
+
*
|
|
27
|
+
* Options can be overridden on each service/handler.
|
|
28
|
+
*/
|
|
29
|
+
defaultServiceOptions?: DefaultServiceOptions;
|
|
30
|
+
/**
|
|
31
|
+
* Replace the default console-based {@link LoggerTransport}
|
|
32
|
+
* @example
|
|
33
|
+
* Using console:
|
|
34
|
+
* ```ts
|
|
35
|
+
* createEndpointHandler({ logger: (meta, message, ...o) => {console.log(`${meta.level}: `, message, ...o)}})
|
|
36
|
+
* ```
|
|
37
|
+
* @example
|
|
38
|
+
* Using winston:
|
|
39
|
+
* ```ts
|
|
40
|
+
* const logger = createLogger({ ... })
|
|
41
|
+
* createEndpointHandler({ logger: (meta, message, ...o) => {logger.log(meta.level, {invocationId: meta.context?.invocationId}, [message, ...o].join(' '))} })
|
|
42
|
+
* ```
|
|
43
|
+
* @example
|
|
44
|
+
* Using pino:
|
|
45
|
+
* ```ts
|
|
46
|
+
* const logger = pino()
|
|
47
|
+
* createEndpointHandler({ logger: (meta, message, ...o) => {logger[meta.level]({invocationId: meta.context?.invocationId}, [message, ...o].join(' '))}} )
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
logger?: LoggerTransport;
|
|
51
|
+
/**
|
|
52
|
+
* Provider for the codec to use for journal values. One codec will be instantiated globally for this endpoint.
|
|
53
|
+
* Check {@link JournalValueCodec} for more details
|
|
54
|
+
*
|
|
55
|
+
* @experimental
|
|
56
|
+
*/
|
|
57
|
+
journalValueCodecProvider?: () => Promise<JournalValueCodec>;
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { EndpointOptions };
|
|
61
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/endpoint/types.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAYiB,eAAA;EAAA;;;EAOX,QAAA,EAHM,KAGN,CAFA,iBAEA,CAAA,MAAA,EAAA,OAAA,CAAA,GADA,uBACA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,kBAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;EAHM;;;;;;;;;;;;;;;0BAoBc;;;;;;;;;;;;;;;;;;;;;WAqBf;;;;;;;oCAQyB,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/endpoint/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/endpoint/withOptions.ts
|
|
3
|
+
function withOptions(endpoint, { identityKeys, defaultServiceOptions, logger, services, journalValueCodecProvider }) {
|
|
4
|
+
let endpointWithOptions = endpoint;
|
|
5
|
+
if (identityKeys && identityKeys.length > 0) endpointWithOptions = endpointWithOptions.withIdentityV1(...identityKeys);
|
|
6
|
+
if (defaultServiceOptions) endpointWithOptions = endpointWithOptions.defaultServiceOptions(defaultServiceOptions);
|
|
7
|
+
if (journalValueCodecProvider) endpointWithOptions = endpointWithOptions.journalValueCodecProvider(journalValueCodecProvider);
|
|
8
|
+
if (logger) endpointWithOptions = endpointWithOptions.setLogger(logger);
|
|
9
|
+
return services.reduce((results, service) => {
|
|
10
|
+
return results.bind(service);
|
|
11
|
+
}, endpointWithOptions);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
exports.withOptions = withOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withOptions.d.ts","sourceRoot":"","sources":["../../src/endpoint/withOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,WAAW,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,EAC1D,QAAQ,EAAE,CAAC,EACX,EACE,YAAY,EACZ,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,yBAAyB,GAC1B,EAAE,eAAe,GACjB,CAAC,CAsBH"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/endpoint/withOptions.ts
|
|
2
|
+
function withOptions(endpoint, { identityKeys, defaultServiceOptions, logger, services, journalValueCodecProvider }) {
|
|
3
|
+
let endpointWithOptions = endpoint;
|
|
4
|
+
if (identityKeys && identityKeys.length > 0) endpointWithOptions = endpointWithOptions.withIdentityV1(...identityKeys);
|
|
5
|
+
if (defaultServiceOptions) endpointWithOptions = endpointWithOptions.defaultServiceOptions(defaultServiceOptions);
|
|
6
|
+
if (journalValueCodecProvider) endpointWithOptions = endpointWithOptions.journalValueCodecProvider(journalValueCodecProvider);
|
|
7
|
+
if (logger) endpointWithOptions = endpointWithOptions.setLogger(logger);
|
|
8
|
+
return services.reduce((results, service) => {
|
|
9
|
+
return results.bind(service);
|
|
10
|
+
}, endpointWithOptions);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { withOptions };
|
|
15
|
+
//# sourceMappingURL=withOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withOptions.js","names":[],"sources":["../../src/endpoint/withOptions.ts"],"sourcesContent":["import type { RestateEndpointBase } from \"../endpoint.js\";\nimport type { EndpointOptions } from \"./types.js\";\n\nexport function withOptions<E extends RestateEndpointBase<E>>(\n endpoint: E,\n {\n identityKeys,\n defaultServiceOptions,\n logger,\n services,\n journalValueCodecProvider,\n }: EndpointOptions\n): E {\n let endpointWithOptions = endpoint;\n if (identityKeys && identityKeys.length > 0) {\n endpointWithOptions = endpointWithOptions.withIdentityV1(...identityKeys);\n }\n if (defaultServiceOptions) {\n endpointWithOptions = endpointWithOptions.defaultServiceOptions(\n defaultServiceOptions\n );\n }\n if (journalValueCodecProvider) {\n endpointWithOptions = endpointWithOptions.journalValueCodecProvider(\n journalValueCodecProvider\n );\n }\n if (logger) {\n endpointWithOptions = endpointWithOptions.setLogger(logger);\n }\n\n return services.reduce((results, service) => {\n return results.bind(service);\n }, endpointWithOptions);\n}\n"],"mappings":";AAGA,SAAgB,YACd,UACA,EACE,cACA,uBACA,QACA,UACA,6BAEC;CACH,IAAI,sBAAsB;AAC1B,KAAI,gBAAgB,aAAa,SAAS,EACxC,uBAAsB,oBAAoB,eAAe,GAAG,aAAa;AAE3E,KAAI,sBACF,uBAAsB,oBAAoB,sBACxC,sBACD;AAEH,KAAI,0BACF,uBAAsB,oBAAoB,0BACxC,0BACD;AAEH,KAAI,OACF,uBAAsB,oBAAoB,UAAU,OAAO;AAG7D,QAAO,SAAS,QAAQ,SAAS,YAAY;AAC3C,SAAO,QAAQ,KAAK,QAAQ;IAC3B,oBAAoB"}
|