mppx 0.8.17 → 0.8.18
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/CHANGELOG.md +55 -0
- package/README.md +15 -0
- package/dist/Challenge.js +21 -4
- package/dist/bin.js +3 -3
- package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
- package/dist/cli/cli.js +253 -1505
- package/dist/cli/plugins/index.js +19 -5
- package/dist/cli/plugins/tempo.js +7 -3
- package/dist/cli/sessions/Manager.js +7 -4
- package/dist/cli/sessions/request.d.ts +2 -0
- package/dist/cli/sessions/request.js +18 -0
- package/dist/cli/sessions/store.js +28 -14
- package/dist/discovery/Discovery.js +2 -1
- package/dist/evm/client/Charge.js +8 -0
- package/dist/server/core.d.ts +9 -0
- package/dist/server/core.js +9 -0
- package/dist/stripe/server/Charge.js +2 -4
- package/dist/stripe/server/Methods.d.ts +2 -2
- package/dist/stripe/server/Methods.js +17 -11
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/spt.d.ts +8 -0
- package/dist/stripe/server/spt.js +8 -0
- package/dist/tempo/Methods.d.ts +13 -0
- package/dist/tempo/Methods.js +14 -3
- package/dist/tempo/client/Charge.d.ts +3 -0
- package/dist/tempo/client/Charge.js +31 -9
- package/dist/tempo/client/Methods.d.ts +13 -0
- package/dist/tempo/internal/defaults.d.ts +11 -0
- package/dist/tempo/internal/defaults.js +11 -0
- package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
- package/dist/tempo/internal/machine-token-charge.js +113 -0
- package/dist/tempo/internal/machine-token-session.d.ts +88 -0
- package/dist/tempo/internal/machine-token-session.js +173 -0
- package/dist/tempo/internal/signature-envelope.d.ts +14 -0
- package/dist/tempo/internal/signature-envelope.js +28 -0
- package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
- package/dist/tempo/legacy/client/ChannelOps.js +11 -5
- package/dist/tempo/legacy/client/Session.d.ts +13 -1
- package/dist/tempo/legacy/client/Session.js +3 -3
- package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
- package/dist/tempo/legacy/client/SessionManager.js +2 -0
- package/dist/tempo/server/Charge.d.ts +3 -0
- package/dist/tempo/server/Charge.js +58 -17
- package/dist/tempo/server/Methods.d.ts +21 -4
- package/dist/tempo/server/Methods.js +8 -4
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
- package/dist/tempo/session/client/ChannelOps.js +35 -6
- package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
- package/dist/tempo/session/client/ChannelStore.js +2 -2
- package/dist/tempo/session/client/CredentialState.d.ts +17 -2
- package/dist/tempo/session/client/CredentialState.js +77 -76
- package/dist/tempo/session/client/Runtime.d.ts +4 -2
- package/dist/tempo/session/client/Runtime.js +21 -5
- package/dist/tempo/session/client/Session.d.ts +15 -3
- package/dist/tempo/session/client/Session.js +186 -63
- package/dist/tempo/session/client/SessionManager.d.ts +3 -1
- package/dist/tempo/session/client/SessionManager.js +35 -11
- package/dist/tempo/session/client/Transports.d.ts +2 -0
- package/dist/tempo/session/client/Transports.js +12 -2
- package/dist/tempo/session/precompile/Chain.d.ts +10 -2
- package/dist/tempo/session/precompile/Chain.js +50 -10
- package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
- package/dist/tempo/session/precompile/Protocol.js +7 -0
- package/dist/tempo/session/precompile/Voucher.d.ts +3 -1
- package/dist/tempo/session/precompile/Voucher.js +6 -12
- package/dist/tempo/session/server/ChannelStore.d.ts +6 -0
- package/dist/tempo/session/server/ChannelStore.js +11 -4
- package/dist/tempo/session/server/CredentialVerification.d.ts +11 -9
- package/dist/tempo/session/server/CredentialVerification.js +185 -109
- package/dist/tempo/session/server/MeteredStream.d.ts +1 -1
- package/dist/tempo/session/server/MeteredStream.js +5 -4
- package/dist/tempo/session/server/RequestState.d.ts +19 -0
- package/dist/tempo/session/server/RequestState.js +61 -15
- package/dist/tempo/session/server/Session.d.ts +14 -2
- package/dist/tempo/session/server/Session.js +37 -6
- package/dist/tempo/session/server/Settlement.d.ts +11 -4
- package/dist/tempo/session/server/Settlement.js +53 -21
- package/dist/x402/client/Exact.d.ts +8 -0
- package/dist/x402/client/Exact.js +40 -10
- package/dist/x402/server/EvmCharge.d.ts +22 -0
- package/dist/x402/server/EvmCharge.js +23 -1
- package/package.json +15 -37
- package/dist/BodyDigest.d.ts.map +0 -1
- package/dist/BodyDigest.js.map +0 -1
- package/dist/Challenge.d.ts.map +0 -1
- package/dist/Challenge.js.map +0 -1
- package/dist/Constants.d.ts.map +0 -1
- package/dist/Constants.js.map +0 -1
- package/dist/Credential.d.ts.map +0 -1
- package/dist/Credential.js.map +0 -1
- package/dist/Errors.d.ts.map +0 -1
- package/dist/Errors.js.map +0 -1
- package/dist/Expires.d.ts.map +0 -1
- package/dist/Expires.js.map +0 -1
- package/dist/Html.d.ts.map +0 -1
- package/dist/Html.js.map +0 -1
- package/dist/Mcp.d.ts.map +0 -1
- package/dist/Mcp.js.map +0 -1
- package/dist/Method.d.ts.map +0 -1
- package/dist/Method.js.map +0 -1
- package/dist/PaymentRequest.d.ts.map +0 -1
- package/dist/PaymentRequest.js.map +0 -1
- package/dist/Receipt.d.ts.map +0 -1
- package/dist/Receipt.js.map +0 -1
- package/dist/Store.d.ts.map +0 -1
- package/dist/Store.js.map +0 -1
- package/dist/attestation/Client.d.ts.map +0 -1
- package/dist/attestation/Client.js.map +0 -1
- package/dist/attestation/Constants.d.ts.map +0 -1
- package/dist/attestation/Constants.js.map +0 -1
- package/dist/attestation/Server.d.ts.map +0 -1
- package/dist/attestation/Server.js.map +0 -1
- package/dist/attestation/Types.d.ts.map +0 -1
- package/dist/attestation/Types.js.map +0 -1
- package/dist/attestation/index.d.ts.map +0 -1
- package/dist/attestation/index.js.map +0 -1
- package/dist/attestation/internal/HttpMessageSignature.d.ts.map +0 -1
- package/dist/attestation/internal/HttpMessageSignature.js.map +0 -1
- package/dist/attestation/internal/SigningContext.d.ts.map +0 -1
- package/dist/attestation/internal/SigningContext.js.map +0 -1
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js.map +0 -1
- package/dist/cli/account.d.ts.map +0 -1
- package/dist/cli/account.js.map +0 -1
- package/dist/cli/cli.d.ts.map +0 -1
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/internal.d.ts.map +0 -1
- package/dist/cli/internal.js.map +0 -1
- package/dist/cli/plugins/evm.d.ts.map +0 -1
- package/dist/cli/plugins/evm.js.map +0 -1
- package/dist/cli/plugins/index.d.ts.map +0 -1
- package/dist/cli/plugins/index.js.map +0 -1
- package/dist/cli/plugins/plugin.d.ts.map +0 -1
- package/dist/cli/plugins/plugin.js.map +0 -1
- package/dist/cli/plugins/stripe.d.ts.map +0 -1
- package/dist/cli/plugins/stripe.js.map +0 -1
- package/dist/cli/plugins/tempo.d.ts.map +0 -1
- package/dist/cli/plugins/tempo.js.map +0 -1
- package/dist/cli/sessions/Manager.d.ts.map +0 -1
- package/dist/cli/sessions/Manager.js.map +0 -1
- package/dist/cli/sessions/commands.d.ts.map +0 -1
- package/dist/cli/sessions/commands.js.map +0 -1
- package/dist/cli/sessions/request.d.ts.map +0 -1
- package/dist/cli/sessions/request.js.map +0 -1
- package/dist/cli/sessions/store.d.ts.map +0 -1
- package/dist/cli/sessions/store.js.map +0 -1
- package/dist/cli/utils.d.ts.map +0 -1
- package/dist/cli/utils.js.map +0 -1
- package/dist/cli/validate/challenge.d.ts.map +0 -1
- package/dist/cli/validate/challenge.js.map +0 -1
- package/dist/cli/validate/discovery.d.ts.map +0 -1
- package/dist/cli/validate/discovery.js.map +0 -1
- package/dist/cli/validate/helpers.d.ts.map +0 -1
- package/dist/cli/validate/helpers.js.map +0 -1
- package/dist/cli/validate/index.d.ts.map +0 -1
- package/dist/cli/validate/index.js.map +0 -1
- package/dist/cli/validate/messages.d.ts.map +0 -1
- package/dist/cli/validate/messages.js.map +0 -1
- package/dist/cli/validate/payment.d.ts.map +0 -1
- package/dist/cli/validate/payment.js.map +0 -1
- package/dist/client/Methods.d.ts.map +0 -1
- package/dist/client/Methods.js.map +0 -1
- package/dist/client/Mppx.d.ts.map +0 -1
- package/dist/client/Mppx.js.map +0 -1
- package/dist/client/Transport.d.ts.map +0 -1
- package/dist/client/Transport.js.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/internal/Fetch.d.ts.map +0 -1
- package/dist/client/internal/Fetch.js.map +0 -1
- package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
- package/dist/client/internal/MethodChallenge.js.map +0 -1
- package/dist/client/internal/MethodResponse.d.ts.map +0 -1
- package/dist/client/internal/MethodResponse.js.map +0 -1
- package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
- package/dist/client/internal/protocols/Mcp.js.map +0 -1
- package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
- package/dist/client/internal/protocols/Mpp.js.map +0 -1
- package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
- package/dist/client/internal/protocols/Protocol.js.map +0 -1
- package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
- package/dist/client/internal/protocols/Shared.js.map +0 -1
- package/dist/client/internal/protocols/X402.d.ts.map +0 -1
- package/dist/client/internal/protocols/X402.js.map +0 -1
- package/dist/client/node.d.ts.map +0 -1
- package/dist/client/node.js.map +0 -1
- package/dist/discovery/Discovery.d.ts.map +0 -1
- package/dist/discovery/Discovery.js.map +0 -1
- package/dist/discovery/OpenApi.d.ts.map +0 -1
- package/dist/discovery/OpenApi.js.map +0 -1
- package/dist/discovery/Validate.d.ts.map +0 -1
- package/dist/discovery/Validate.js.map +0 -1
- package/dist/discovery/index.d.ts.map +0 -1
- package/dist/discovery/index.js.map +0 -1
- package/dist/discovery/internal/Metadata.d.ts.map +0 -1
- package/dist/discovery/internal/Metadata.js.map +0 -1
- package/dist/evm/Assets.d.ts.map +0 -1
- package/dist/evm/Assets.js.map +0 -1
- package/dist/evm/Chains.d.ts.map +0 -1
- package/dist/evm/Chains.js.map +0 -1
- package/dist/evm/Methods.d.ts.map +0 -1
- package/dist/evm/Methods.js.map +0 -1
- package/dist/evm/Types.d.ts.map +0 -1
- package/dist/evm/Types.js.map +0 -1
- package/dist/evm/client/Charge.d.ts.map +0 -1
- package/dist/evm/client/Charge.js.map +0 -1
- package/dist/evm/client/Methods.d.ts.map +0 -1
- package/dist/evm/client/Methods.js.map +0 -1
- package/dist/evm/client/index.d.ts.map +0 -1
- package/dist/evm/client/index.js.map +0 -1
- package/dist/evm/index.d.ts.map +0 -1
- package/dist/evm/index.js.map +0 -1
- package/dist/evm/server/Charge.d.ts.map +0 -1
- package/dist/evm/server/Charge.js.map +0 -1
- package/dist/evm/server/Methods.d.ts.map +0 -1
- package/dist/evm/server/Methods.js.map +0 -1
- package/dist/evm/server/index.d.ts.map +0 -1
- package/dist/evm/server/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal/AcceptPayment.d.ts.map +0 -1
- package/dist/internal/AcceptPayment.js.map +0 -1
- package/dist/internal/HeaderCodec.d.ts.map +0 -1
- package/dist/internal/HeaderCodec.js.map +0 -1
- package/dist/internal/constantTimeEqual.d.ts.map +0 -1
- package/dist/internal/constantTimeEqual.js.map +0 -1
- package/dist/internal/env.d.ts.map +0 -1
- package/dist/internal/env.js.map +0 -1
- package/dist/internal/types.d.ts.map +0 -1
- package/dist/internal/types.js.map +0 -1
- package/dist/mcp/client/McpClient.d.ts.map +0 -1
- package/dist/mcp/client/McpClient.js.map +0 -1
- package/dist/mcp/client/index.d.ts.map +0 -1
- package/dist/mcp/client/index.js.map +0 -1
- package/dist/mcp/server/Transport.d.ts.map +0 -1
- package/dist/mcp/server/Transport.js.map +0 -1
- package/dist/mcp/server/index.d.ts.map +0 -1
- package/dist/mcp/server/index.js.map +0 -1
- package/dist/middlewares/elysia.d.ts.map +0 -1
- package/dist/middlewares/elysia.js.map +0 -1
- package/dist/middlewares/express.d.ts.map +0 -1
- package/dist/middlewares/express.js.map +0 -1
- package/dist/middlewares/hono.d.ts.map +0 -1
- package/dist/middlewares/hono.js.map +0 -1
- package/dist/middlewares/internal/mppx.d.ts.map +0 -1
- package/dist/middlewares/internal/mppx.js.map +0 -1
- package/dist/middlewares/nextjs.d.ts.map +0 -1
- package/dist/middlewares/nextjs.js.map +0 -1
- package/dist/proxy/Proxy.d.ts.map +0 -1
- package/dist/proxy/Proxy.js.map +0 -1
- package/dist/proxy/Service.d.ts.map +0 -1
- package/dist/proxy/Service.js.map +0 -1
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/internal/Headers.d.ts.map +0 -1
- package/dist/proxy/internal/Headers.js.map +0 -1
- package/dist/proxy/internal/Route.d.ts.map +0 -1
- package/dist/proxy/internal/Route.js.map +0 -1
- package/dist/proxy/services/anthropic.d.ts.map +0 -1
- package/dist/proxy/services/anthropic.js.map +0 -1
- package/dist/proxy/services/openai.d.ts.map +0 -1
- package/dist/proxy/services/openai.js.map +0 -1
- package/dist/proxy/services/stripe.d.ts.map +0 -1
- package/dist/proxy/services/stripe.js.map +0 -1
- package/dist/server/Methods.d.ts.map +0 -1
- package/dist/server/Methods.js.map +0 -1
- package/dist/server/Mppx.d.ts.map +0 -1
- package/dist/server/Mppx.js.map +0 -1
- package/dist/server/NodeListener.d.ts.map +0 -1
- package/dist/server/NodeListener.js.map +0 -1
- package/dist/server/Request.d.ts.map +0 -1
- package/dist/server/Request.js.map +0 -1
- package/dist/server/Response.d.ts.map +0 -1
- package/dist/server/Response.js.map +0 -1
- package/dist/server/Transport.d.ts.map +0 -1
- package/dist/server/Transport.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
- package/dist/server/internal/html/compose.main.gen.js.map +0 -1
- package/dist/server/internal/html/config.d.ts.map +0 -1
- package/dist/server/internal/html/config.js.map +0 -1
- package/dist/server/internal/html/constants.d.ts.map +0 -1
- package/dist/server/internal/html/constants.js.map +0 -1
- package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
- package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
- package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
- package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
- package/dist/server/internal/scope.d.ts.map +0 -1
- package/dist/server/internal/scope.js.map +0 -1
- package/dist/stripe/Methods.d.ts.map +0 -1
- package/dist/stripe/Methods.js.map +0 -1
- package/dist/stripe/client/Charge.d.ts.map +0 -1
- package/dist/stripe/client/Charge.js.map +0 -1
- package/dist/stripe/client/Methods.d.ts.map +0 -1
- package/dist/stripe/client/Methods.js.map +0 -1
- package/dist/stripe/client/index.d.ts.map +0 -1
- package/dist/stripe/client/index.js.map +0 -1
- package/dist/stripe/index.d.ts.map +0 -1
- package/dist/stripe/index.js.map +0 -1
- package/dist/stripe/internal/constants.d.ts.map +0 -1
- package/dist/stripe/internal/constants.js.map +0 -1
- package/dist/stripe/internal/types.d.ts.map +0 -1
- package/dist/stripe/internal/types.js.map +0 -1
- package/dist/stripe/server/Charge.d.ts.map +0 -1
- package/dist/stripe/server/Charge.js.map +0 -1
- package/dist/stripe/server/Methods.d.ts.map +0 -1
- package/dist/stripe/server/Methods.js.map +0 -1
- package/dist/stripe/server/index.d.ts.map +0 -1
- package/dist/stripe/server/index.js.map +0 -1
- package/dist/stripe/server/internal/deposit-address.d.ts.map +0 -1
- package/dist/stripe/server/internal/deposit-address.js.map +0 -1
- package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
- package/dist/stripe/server/internal/html/types.js.map +0 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
- package/dist/stripe/server/internal/html.gen.js.map +0 -1
- package/dist/stripe/server/internal/record-payment.d.ts.map +0 -1
- package/dist/stripe/server/internal/record-payment.js.map +0 -1
- package/dist/stripe/server/internal/request.d.ts.map +0 -1
- package/dist/stripe/server/internal/request.js.map +0 -1
- package/dist/tap/Constants.d.ts.map +0 -1
- package/dist/tap/Constants.js.map +0 -1
- package/dist/tap/Types.d.ts.map +0 -1
- package/dist/tap/Types.js.map +0 -1
- package/dist/tap/client/index.d.ts.map +0 -1
- package/dist/tap/client/index.js.map +0 -1
- package/dist/tap/index.d.ts.map +0 -1
- package/dist/tap/index.js.map +0 -1
- package/dist/tap/server/index.d.ts.map +0 -1
- package/dist/tap/server/index.js.map +0 -1
- package/dist/tempo/Attribution.d.ts.map +0 -1
- package/dist/tempo/Attribution.js.map +0 -1
- package/dist/tempo/Methods.d.ts.map +0 -1
- package/dist/tempo/Methods.js.map +0 -1
- package/dist/tempo/Proof.d.ts.map +0 -1
- package/dist/tempo/Proof.js.map +0 -1
- package/dist/tempo/client/Charge.d.ts.map +0 -1
- package/dist/tempo/client/Charge.js.map +0 -1
- package/dist/tempo/client/Methods.d.ts.map +0 -1
- package/dist/tempo/client/Methods.js.map +0 -1
- package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
- package/dist/tempo/client/ResolveAccount.js.map +0 -1
- package/dist/tempo/client/Subscription.d.ts.map +0 -1
- package/dist/tempo/client/Subscription.js.map +0 -1
- package/dist/tempo/client/index.d.ts.map +0 -1
- package/dist/tempo/client/index.js.map +0 -1
- package/dist/tempo/index.d.ts.map +0 -1
- package/dist/tempo/index.js.map +0 -1
- package/dist/tempo/internal/account.d.ts.map +0 -1
- package/dist/tempo/internal/account.js.map +0 -1
- package/dist/tempo/internal/address.d.ts.map +0 -1
- package/dist/tempo/internal/address.js.map +0 -1
- package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
- package/dist/tempo/internal/auto-swap.js.map +0 -1
- package/dist/tempo/internal/charge.d.ts.map +0 -1
- package/dist/tempo/internal/charge.js.map +0 -1
- package/dist/tempo/internal/defaults.d.ts.map +0 -1
- package/dist/tempo/internal/defaults.js.map +0 -1
- package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
- package/dist/tempo/internal/fee-payer.js.map +0 -1
- package/dist/tempo/internal/fee-token.d.ts.map +0 -1
- package/dist/tempo/internal/fee-token.js.map +0 -1
- package/dist/tempo/internal/proof.d.ts.map +0 -1
- package/dist/tempo/internal/proof.js.map +0 -1
- package/dist/tempo/internal/selectors.d.ts.map +0 -1
- package/dist/tempo/internal/selectors.js.map +0 -1
- package/dist/tempo/internal/types.d.ts.map +0 -1
- package/dist/tempo/internal/types.js.map +0 -1
- package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
- package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
- package/dist/tempo/legacy/client/Session.js.map +0 -1
- package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
- package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
- package/dist/tempo/legacy/client/index.d.ts.map +0 -1
- package/dist/tempo/legacy/client/index.js.map +0 -1
- package/dist/tempo/legacy/index.d.ts.map +0 -1
- package/dist/tempo/legacy/index.js.map +0 -1
- package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Chain.js.map +0 -1
- package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Channel.js.map +0 -1
- package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Types.js.map +0 -1
- package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Voucher.js.map +0 -1
- package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
- package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
- package/dist/tempo/legacy/session/index.d.ts.map +0 -1
- package/dist/tempo/legacy/session/index.js.map +0 -1
- package/dist/tempo/server/Charge.d.ts.map +0 -1
- package/dist/tempo/server/Charge.js.map +0 -1
- package/dist/tempo/server/Methods.d.ts.map +0 -1
- package/dist/tempo/server/Methods.js.map +0 -1
- package/dist/tempo/server/Relay.d.ts.map +0 -1
- package/dist/tempo/server/Relay.js.map +0 -1
- package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
- package/dist/tempo/server/SponsorBudget.js.map +0 -1
- package/dist/tempo/server/Subscription.d.ts.map +0 -1
- package/dist/tempo/server/Subscription.js.map +0 -1
- package/dist/tempo/server/index.d.ts.map +0 -1
- package/dist/tempo/server/index.js.map +0 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
- package/dist/tempo/server/internal/html.gen.js.map +0 -1
- package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
- package/dist/tempo/server/internal/request-body.js.map +0 -1
- package/dist/tempo/server/internal/transport.d.ts.map +0 -1
- package/dist/tempo/server/internal/transport.js.map +0 -1
- package/dist/tempo/session/Snapshot.d.ts.map +0 -1
- package/dist/tempo/session/Snapshot.js.map +0 -1
- package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/session/client/ChannelOps.js.map +0 -1
- package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/session/client/ChannelStore.js.map +0 -1
- package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
- package/dist/tempo/session/client/CredentialState.js.map +0 -1
- package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
- package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
- package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
- package/dist/tempo/session/client/Runtime.js.map +0 -1
- package/dist/tempo/session/client/Session.d.ts.map +0 -1
- package/dist/tempo/session/client/Session.js.map +0 -1
- package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
- package/dist/tempo/session/client/SessionManager.js.map +0 -1
- package/dist/tempo/session/client/Transports.d.ts.map +0 -1
- package/dist/tempo/session/client/Transports.js.map +0 -1
- package/dist/tempo/session/client/index.d.ts.map +0 -1
- package/dist/tempo/session/client/index.js.map +0 -1
- package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
- package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
- package/dist/tempo/session/index.d.ts.map +0 -1
- package/dist/tempo/session/index.js.map +0 -1
- package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Chain.js.map +0 -1
- package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Channel.js.map +0 -1
- package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Protocol.js.map +0 -1
- package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Voucher.js.map +0 -1
- package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
- package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
- package/dist/tempo/session/precompile/index.d.ts.map +0 -1
- package/dist/tempo/session/precompile/index.js.map +0 -1
- package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/session/server/ChannelOps.js.map +0 -1
- package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/session/server/ChannelStore.js.map +0 -1
- package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
- package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
- package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
- package/dist/tempo/session/server/MeteredStream.js.map +0 -1
- package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
- package/dist/tempo/session/server/RequestState.js.map +0 -1
- package/dist/tempo/session/server/Session.d.ts.map +0 -1
- package/dist/tempo/session/server/Session.js.map +0 -1
- package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
- package/dist/tempo/session/server/Settlement.js.map +0 -1
- package/dist/tempo/session/server/Sse.d.ts.map +0 -1
- package/dist/tempo/session/server/Sse.js.map +0 -1
- package/dist/tempo/session/server/Transports.d.ts.map +0 -1
- package/dist/tempo/session/server/Transports.js.map +0 -1
- package/dist/tempo/session/server/Ws.d.ts.map +0 -1
- package/dist/tempo/session/server/Ws.js.map +0 -1
- package/dist/tempo/session/server/index.d.ts.map +0 -1
- package/dist/tempo/session/server/index.js.map +0 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
- package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
- package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
- package/dist/tempo/subscription/Receipt.js.map +0 -1
- package/dist/tempo/subscription/Store.d.ts.map +0 -1
- package/dist/tempo/subscription/Store.js.map +0 -1
- package/dist/tempo/subscription/Types.d.ts.map +0 -1
- package/dist/tempo/subscription/Types.js.map +0 -1
- package/dist/tempo/subscription/index.d.ts.map +0 -1
- package/dist/tempo/subscription/index.js.map +0 -1
- package/dist/validation/core.d.ts.map +0 -1
- package/dist/validation/core.js.map +0 -1
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/index.js.map +0 -1
- package/dist/viem/Account.d.ts.map +0 -1
- package/dist/viem/Account.js.map +0 -1
- package/dist/viem/Client.d.ts.map +0 -1
- package/dist/viem/Client.js.map +0 -1
- package/dist/web-bot-auth/Constants.d.ts.map +0 -1
- package/dist/web-bot-auth/Constants.js.map +0 -1
- package/dist/web-bot-auth/Types.d.ts.map +0 -1
- package/dist/web-bot-auth/Types.js.map +0 -1
- package/dist/web-bot-auth/client/index.d.ts.map +0 -1
- package/dist/web-bot-auth/client/index.js.map +0 -1
- package/dist/web-bot-auth/index.d.ts.map +0 -1
- package/dist/web-bot-auth/index.js.map +0 -1
- package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +0 -1
- package/dist/web-bot-auth/internal/JwkThumbprint.js.map +0 -1
- package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +0 -1
- package/dist/web-bot-auth/internal/SignatureAgent.js.map +0 -1
- package/dist/web-bot-auth/server/index.d.ts.map +0 -1
- package/dist/web-bot-auth/server/index.js.map +0 -1
- package/dist/x402/Assets.d.ts.map +0 -1
- package/dist/x402/Assets.js.map +0 -1
- package/dist/x402/Header.d.ts.map +0 -1
- package/dist/x402/Header.js.map +0 -1
- package/dist/x402/Types.d.ts.map +0 -1
- package/dist/x402/Types.js.map +0 -1
- package/dist/x402/client/Exact.d.ts.map +0 -1
- package/dist/x402/client/Exact.js.map +0 -1
- package/dist/x402/index.d.ts.map +0 -1
- package/dist/x402/index.js.map +0 -1
- package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
- package/dist/x402/internal/ChallengeBrand.js.map +0 -1
- package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
- package/dist/x402/internal/RouteBinding.js.map +0 -1
- package/dist/x402/server/EvmCharge.d.ts.map +0 -1
- package/dist/x402/server/EvmCharge.js.map +0 -1
- package/dist/x402/server/Facilitator.d.ts.map +0 -1
- package/dist/x402/server/Facilitator.js.map +0 -1
- package/dist/zod.d.ts.map +0 -1
- package/dist/zod.js.map +0 -1
- package/src/BodyDigest.test.ts +0 -43
- package/src/BodyDigest.ts +0 -55
- package/src/Challenge.fuzz.test.ts +0 -154
- package/src/Challenge.test-d.ts +0 -82
- package/src/Challenge.test.ts +0 -1060
- package/src/Challenge.ts +0 -687
- package/src/Constants.ts +0 -58
- package/src/Credential.fuzz.test.ts +0 -62
- package/src/Credential.test.ts +0 -378
- package/src/Credential.ts +0 -217
- package/src/Errors.test.ts +0 -520
- package/src/Errors.ts +0 -448
- package/src/Expires.test.ts +0 -112
- package/src/Expires.ts +0 -59
- package/src/Html.ts +0 -67
- package/src/Mcp.ts +0 -85
- package/src/Method.test.ts +0 -177
- package/src/Method.ts +0 -631
- package/src/PaymentRequest.test.ts +0 -147
- package/src/PaymentRequest.ts +0 -108
- package/src/Receipt.test.ts +0 -151
- package/src/Receipt.ts +0 -146
- package/src/Store.test-d.ts +0 -211
- package/src/Store.test.ts +0 -407
- package/src/Store.ts +0 -397
- package/src/attestation/Attestation.integration.test.ts +0 -208
- package/src/attestation/Client.test.ts +0 -83
- package/src/attestation/Client.ts +0 -34
- package/src/attestation/Constants.ts +0 -15
- package/src/attestation/Server.test.ts +0 -60
- package/src/attestation/Server.ts +0 -12
- package/src/attestation/Types.test-d.ts +0 -54
- package/src/attestation/Types.ts +0 -77
- package/src/attestation/index.ts +0 -5
- package/src/attestation/internal/HttpMessageSignature.test.ts +0 -101
- package/src/attestation/internal/HttpMessageSignature.ts +0 -429
- package/src/attestation/internal/SigningContext.ts +0 -13
- package/src/bin.js +0 -2
- package/src/bin.ts +0 -4
- package/src/cli/account.ts +0 -269
- package/src/cli/cli.test.ts +0 -2221
- package/src/cli/cli.ts +0 -1650
- package/src/cli/config.test.ts +0 -89
- package/src/cli/config.ts +0 -50
- package/src/cli/internal.ts +0 -114
- package/src/cli/mcp.test.ts +0 -262
- package/src/cli/plugins/evm.ts +0 -55
- package/src/cli/plugins/index.ts +0 -4
- package/src/cli/plugins/plugin.ts +0 -84
- package/src/cli/plugins/stripe.ts +0 -174
- package/src/cli/plugins/tempo.ts +0 -1102
- package/src/cli/sessions/Manager.test.ts +0 -249
- package/src/cli/sessions/Manager.ts +0 -93
- package/src/cli/sessions/commands.ts +0 -444
- package/src/cli/sessions/request.test.ts +0 -51
- package/src/cli/sessions/request.ts +0 -353
- package/src/cli/sessions/store.test.ts +0 -581
- package/src/cli/sessions/store.ts +0 -940
- package/src/cli/utils.test.ts +0 -156
- package/src/cli/utils.ts +0 -394
- package/src/cli/validate/challenge.ts +0 -565
- package/src/cli/validate/discovery.test.ts +0 -435
- package/src/cli/validate/discovery.ts +0 -221
- package/src/cli/validate/helpers.ts +0 -166
- package/src/cli/validate/index.ts +0 -229
- package/src/cli/validate/messages.ts +0 -7
- package/src/cli/validate/payment.ts +0 -774
- package/src/cli/validate.test.ts +0 -843
- package/src/client/Methods.ts +0 -8
- package/src/client/Mppx.test-d.ts +0 -287
- package/src/client/Mppx.test.ts +0 -1065
- package/src/client/Mppx.ts +0 -487
- package/src/client/Transport.test.ts +0 -586
- package/src/client/Transport.ts +0 -170
- package/src/client/index.ts +0 -29
- package/src/client/internal/Fetch.browser.test.ts +0 -197
- package/src/client/internal/Fetch.test-d.ts +0 -109
- package/src/client/internal/Fetch.test.ts +0 -2336
- package/src/client/internal/Fetch.ts +0 -1075
- package/src/client/internal/MethodChallenge.ts +0 -35
- package/src/client/internal/MethodResponse.ts +0 -67
- package/src/client/internal/protocols/Mcp.test.ts +0 -220
- package/src/client/internal/protocols/Mcp.ts +0 -186
- package/src/client/internal/protocols/Mpp.ts +0 -21
- package/src/client/internal/protocols/Protocol.ts +0 -10
- package/src/client/internal/protocols/Shared.ts +0 -25
- package/src/client/internal/protocols/X402.ts +0 -46
- package/src/client/node.test.ts +0 -115
- package/src/client/node.ts +0 -247
- package/src/discovery/Discovery.test.ts +0 -214
- package/src/discovery/Discovery.ts +0 -105
- package/src/discovery/OpenApi.test.ts +0 -623
- package/src/discovery/OpenApi.ts +0 -192
- package/src/discovery/Validate.test.ts +0 -305
- package/src/discovery/Validate.ts +0 -77
- package/src/discovery/index.ts +0 -3
- package/src/discovery/internal/Metadata.ts +0 -51
- package/src/env.d.ts +0 -12
- package/src/evm/Assets.ts +0 -1
- package/src/evm/Chains.ts +0 -11
- package/src/evm/Methods.ts +0 -44
- package/src/evm/PublicInterface.test-d.ts +0 -134
- package/src/evm/Types.ts +0 -140
- package/src/evm/client/Charge.test.ts +0 -347
- package/src/evm/client/Charge.ts +0 -187
- package/src/evm/client/Methods.ts +0 -19
- package/src/evm/client/index.ts +0 -6
- package/src/evm/index.ts +0 -16
- package/src/evm/server/Charge.test.ts +0 -339
- package/src/evm/server/Charge.ts +0 -295
- package/src/evm/server/Methods.ts +0 -22
- package/src/evm/server/index.ts +0 -6
- package/src/index.ts +0 -14
- package/src/internal/AcceptPayment.test.ts +0 -347
- package/src/internal/AcceptPayment.ts +0 -366
- package/src/internal/HeaderCodec.ts +0 -36
- package/src/internal/changeset.test.ts +0 -106
- package/src/internal/constantTimeEqual.test.ts +0 -47
- package/src/internal/constantTimeEqual.ts +0 -10
- package/src/internal/env.test.ts +0 -42
- package/src/internal/env.ts +0 -49
- package/src/internal/types.test-d.ts +0 -21
- package/src/internal/types.ts +0 -479
- package/src/mcp/client/McpClient.integration.test.ts +0 -639
- package/src/mcp/client/McpClient.test-d.ts +0 -144
- package/src/mcp/client/McpClient.test.ts +0 -463
- package/src/mcp/client/McpClient.ts +0 -307
- package/src/mcp/client/McpClient.unit.test.ts +0 -135
- package/src/mcp/client/index.ts +0 -2
- package/src/mcp/server/Transport.test.ts +0 -191
- package/src/mcp/server/Transport.ts +0 -111
- package/src/mcp/server/index.ts +0 -1
- package/src/middlewares/elysia.test.ts +0 -285
- package/src/middlewares/elysia.ts +0 -116
- package/src/middlewares/express.test.ts +0 -361
- package/src/middlewares/express.ts +0 -140
- package/src/middlewares/hono.test.ts +0 -473
- package/src/middlewares/hono.ts +0 -153
- package/src/middlewares/internal/mppx.test.ts +0 -177
- package/src/middlewares/internal/mppx.ts +0 -67
- package/src/middlewares/nextjs.test.ts +0 -359
- package/src/middlewares/nextjs.ts +0 -107
- package/src/proxy/Proxy.test.ts +0 -1038
- package/src/proxy/Proxy.ts +0 -483
- package/src/proxy/Proxy.upstreamError.test.ts +0 -364
- package/src/proxy/Service.test.ts +0 -252
- package/src/proxy/Service.ts +0 -280
- package/src/proxy/index.ts +0 -6
- package/src/proxy/internal/Headers.test.ts +0 -139
- package/src/proxy/internal/Headers.ts +0 -66
- package/src/proxy/internal/Route.test.ts +0 -217
- package/src/proxy/internal/Route.ts +0 -64
- package/src/proxy/services/anthropic.test.ts +0 -132
- package/src/proxy/services/anthropic.ts +0 -53
- package/src/proxy/services/hooks.test-d.ts +0 -14
- package/src/proxy/services/hooks.test.ts +0 -44
- package/src/proxy/services/openai.test.ts +0 -157
- package/src/proxy/services/openai.ts +0 -60
- package/src/proxy/services/stripe.test.ts +0 -175
- package/src/proxy/services/stripe.ts +0 -59
- package/src/server/Methods.test-d.ts +0 -88
- package/src/server/Methods.test.ts +0 -69
- package/src/server/Methods.ts +0 -3
- package/src/server/Mppx.authorize.test.ts +0 -210
- package/src/server/Mppx.test-d.ts +0 -494
- package/src/server/Mppx.test.ts +0 -6711
- package/src/server/Mppx.ts +0 -2919
- package/src/server/NodeListener.test.ts +0 -293
- package/src/server/NodeListener.ts +0 -45
- package/src/server/Request.test.ts +0 -255
- package/src/server/Request.ts +0 -155
- package/src/server/Response.test.ts +0 -32
- package/src/server/Response.ts +0 -45
- package/src/server/Transport.test.ts +0 -598
- package/src/server/Transport.ts +0 -320
- package/src/server/index.ts +0 -9
- package/src/server/internal/html/compose.main.gen.ts +0 -2
- package/src/server/internal/html/compose.main.ts +0 -88
- package/src/server/internal/html/config.ts +0 -672
- package/src/server/internal/html/constants.ts +0 -28
- package/src/server/internal/html/serviceWorker.client.ts +0 -28
- package/src/server/internal/html/serviceWorker.gen.ts +0 -2
- package/src/server/internal/html/serviceWorker.ts +0 -27
- package/src/server/internal/html/tsconfig.compose.json +0 -8
- package/src/server/internal/html/tsconfig.worker.client.json +0 -8
- package/src/server/internal/html/tsconfig.worker.json +0 -8
- package/src/server/internal/scope.ts +0 -43
- package/src/stripe/Charge.integration.test.ts +0 -329
- package/src/stripe/Methods.test.ts +0 -62
- package/src/stripe/Methods.ts +0 -44
- package/src/stripe/client/Charge.test.ts +0 -205
- package/src/stripe/client/Charge.ts +0 -132
- package/src/stripe/client/Methods.ts +0 -37
- package/src/stripe/client/index.ts +0 -2
- package/src/stripe/index.ts +0 -1
- package/src/stripe/internal/constants.ts +0 -7
- package/src/stripe/internal/types.ts +0 -47
- package/src/stripe/server/Charge.test-d.ts +0 -81
- package/src/stripe/server/Charge.test.ts +0 -700
- package/src/stripe/server/Charge.ts +0 -487
- package/src/stripe/server/Methods.test-d.ts +0 -157
- package/src/stripe/server/Methods.test.ts +0 -403
- package/src/stripe/server/Methods.ts +0 -441
- package/src/stripe/server/index.ts +0 -2
- package/src/stripe/server/internal/deposit-address.ts +0 -57
- package/src/stripe/server/internal/html/main.ts +0 -165
- package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
- package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
- package/src/stripe/server/internal/html/package.json +0 -9
- package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
- package/src/stripe/server/internal/html/tsconfig.json +0 -8
- package/src/stripe/server/internal/html/types.ts +0 -5
- package/src/stripe/server/internal/html.gen.ts +0 -2
- package/src/stripe/server/internal/record-payment.ts +0 -66
- package/src/stripe/server/internal/request.ts +0 -49
- package/src/tap/Constants.ts +0 -32
- package/src/tap/Tap.test.ts +0 -125
- package/src/tap/Types.ts +0 -11
- package/src/tap/client/index.ts +0 -54
- package/src/tap/index.ts +0 -4
- package/src/tap/server/index.ts +0 -48
- package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
- package/src/tempo/Attribution.test.ts +0 -294
- package/src/tempo/Attribution.ts +0 -185
- package/src/tempo/Methods.test.ts +0 -425
- package/src/tempo/Methods.ts +0 -367
- package/src/tempo/Proof.conformance.test.ts +0 -146
- package/src/tempo/Proof.test-d.ts +0 -32
- package/src/tempo/Proof.test.ts +0 -40
- package/src/tempo/Proof.ts +0 -69
- package/src/tempo/PublicExports.test-d.ts +0 -130
- package/src/tempo/Subscription.integration.test.ts +0 -591
- package/src/tempo/client/Charge.test.ts +0 -501
- package/src/tempo/client/Charge.ts +0 -271
- package/src/tempo/client/Methods.ts +0 -45
- package/src/tempo/client/ResolveAccount.ts +0 -46
- package/src/tempo/client/Subscription.test.ts +0 -180
- package/src/tempo/client/Subscription.ts +0 -156
- package/src/tempo/client/index.ts +0 -17
- package/src/tempo/index.ts +0 -5
- package/src/tempo/internal/account.ts +0 -56
- package/src/tempo/internal/address.test.ts +0 -42
- package/src/tempo/internal/address.ts +0 -6
- package/src/tempo/internal/auto-swap.test.ts +0 -198
- package/src/tempo/internal/auto-swap.ts +0 -145
- package/src/tempo/internal/charge.test.ts +0 -66
- package/src/tempo/internal/charge.ts +0 -43
- package/src/tempo/internal/defaults.test.ts +0 -95
- package/src/tempo/internal/defaults.ts +0 -53
- package/src/tempo/internal/fee-payer.test.ts +0 -1177
- package/src/tempo/internal/fee-payer.ts +0 -808
- package/src/tempo/internal/fee-token.test.ts +0 -165
- package/src/tempo/internal/fee-token.ts +0 -72
- package/src/tempo/internal/proof.test.ts +0 -97
- package/src/tempo/internal/proof.ts +0 -87
- package/src/tempo/internal/selectors.ts +0 -10
- package/src/tempo/internal/types.ts +0 -19
- package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
- package/src/tempo/legacy/README.md +0 -9
- package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
- package/src/tempo/legacy/client/ChannelOps.ts +0 -271
- package/src/tempo/legacy/client/Session.test.ts +0 -800
- package/src/tempo/legacy/client/Session.ts +0 -397
- package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
- package/src/tempo/legacy/client/SessionManager.ts +0 -909
- package/src/tempo/legacy/client/index.ts +0 -6
- package/src/tempo/legacy/index.ts +0 -4
- package/src/tempo/legacy/session/Chain.test.ts +0 -1349
- package/src/tempo/legacy/session/Chain.ts +0 -830
- package/src/tempo/legacy/session/Channel.test.ts +0 -109
- package/src/tempo/legacy/session/Channel.ts +0 -51
- package/src/tempo/legacy/session/Types.ts +0 -91
- package/src/tempo/legacy/session/Voucher.test.ts +0 -410
- package/src/tempo/legacy/session/Voucher.ts +0 -183
- package/src/tempo/legacy/session/escrow.abi.ts +0 -760
- package/src/tempo/legacy/session/index.ts +0 -8
- package/src/tempo/server/AtomicStore.test-d.ts +0 -63
- package/src/tempo/server/Charge.test.ts +0 -6056
- package/src/tempo/server/Charge.ts +0 -1379
- package/src/tempo/server/Methods.ts +0 -86
- package/src/tempo/server/Relay.test.ts +0 -677
- package/src/tempo/server/Relay.ts +0 -297
- package/src/tempo/server/SponsorBudget.test.ts +0 -154
- package/src/tempo/server/SponsorBudget.ts +0 -219
- package/src/tempo/server/Sse.test.ts +0 -321
- package/src/tempo/server/Subscription.test.ts +0 -1944
- package/src/tempo/server/Subscription.ts +0 -1336
- package/src/tempo/server/index.ts +0 -12
- package/src/tempo/server/internal/html/main.ts +0 -115
- package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
- package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
- package/src/tempo/server/internal/html/package.json +0 -10
- package/src/tempo/server/internal/html/tsconfig.json +0 -8
- package/src/tempo/server/internal/html.gen.ts +0 -2
- package/src/tempo/server/internal/request-body.test.ts +0 -210
- package/src/tempo/server/internal/request-body.ts +0 -61
- package/src/tempo/server/internal/transport.test.ts +0 -922
- package/src/tempo/server/internal/transport.ts +0 -322
- package/src/tempo/session/README.md +0 -320
- package/src/tempo/session/Snapshot.test.ts +0 -41
- package/src/tempo/session/Snapshot.ts +0 -95
- package/src/tempo/session/client/ChannelOps.test.ts +0 -218
- package/src/tempo/session/client/ChannelOps.ts +0 -348
- package/src/tempo/session/client/ChannelStore.ts +0 -111
- package/src/tempo/session/client/CredentialState.test.ts +0 -789
- package/src/tempo/session/client/CredentialState.ts +0 -942
- package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
- package/src/tempo/session/client/Runtime.test.ts +0 -1104
- package/src/tempo/session/client/Runtime.ts +0 -1008
- package/src/tempo/session/client/Session.test.ts +0 -1355
- package/src/tempo/session/client/Session.ts +0 -420
- package/src/tempo/session/client/SessionManager.test.ts +0 -1899
- package/src/tempo/session/client/SessionManager.ts +0 -996
- package/src/tempo/session/client/Transports.test.ts +0 -1141
- package/src/tempo/session/client/Transports.ts +0 -1534
- package/src/tempo/session/client/index.ts +0 -40
- package/src/tempo/session/client/internal/SessionManager.ts +0 -36
- package/src/tempo/session/index.ts +0 -7
- package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
- package/src/tempo/session/precompile/Chain.test.ts +0 -1641
- package/src/tempo/session/precompile/Chain.ts +0 -1269
- package/src/tempo/session/precompile/Channel.test.ts +0 -147
- package/src/tempo/session/precompile/Channel.ts +0 -108
- package/src/tempo/session/precompile/Protocol.test.ts +0 -358
- package/src/tempo/session/precompile/Protocol.ts +0 -520
- package/src/tempo/session/precompile/Voucher.test.ts +0 -354
- package/src/tempo/session/precompile/Voucher.ts +0 -162
- package/src/tempo/session/precompile/escrow.abi.ts +0 -226
- package/src/tempo/session/precompile/index.ts +0 -33
- package/src/tempo/session/server/ChannelOps.test.ts +0 -129
- package/src/tempo/session/server/ChannelOps.ts +0 -157
- package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
- package/src/tempo/session/server/ChannelStore.ts +0 -856
- package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
- package/src/tempo/session/server/CredentialVerification.ts +0 -1087
- package/src/tempo/session/server/MeteredStream.ts +0 -99
- package/src/tempo/session/server/RequestState.test.ts +0 -574
- package/src/tempo/session/server/RequestState.ts +0 -507
- package/src/tempo/session/server/Session.integration.test.ts +0 -449
- package/src/tempo/session/server/Session.test.ts +0 -4247
- package/src/tempo/session/server/Session.ts +0 -669
- package/src/tempo/session/server/Settlement.test.ts +0 -345
- package/src/tempo/session/server/Settlement.ts +0 -527
- package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
- package/src/tempo/session/server/Sse.test.ts +0 -634
- package/src/tempo/session/server/Sse.ts +0 -261
- package/src/tempo/session/server/Transports.test.ts +0 -346
- package/src/tempo/session/server/Transports.ts +0 -256
- package/src/tempo/session/server/Ws.test.ts +0 -765
- package/src/tempo/session/server/Ws.ts +0 -391
- package/src/tempo/session/server/index.ts +0 -12
- package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
- package/src/tempo/subscription/KeyAuthorization.ts +0 -396
- package/src/tempo/subscription/Receipt.ts +0 -28
- package/src/tempo/subscription/Store.test.ts +0 -609
- package/src/tempo/subscription/Store.ts +0 -449
- package/src/tempo/subscription/Types.ts +0 -68
- package/src/tempo/subscription/index.ts +0 -23
- package/src/tsconfig.json +0 -10
- package/src/validation/core.ts +0 -386
- package/src/validation/index.ts +0 -11
- package/src/viem/Account.test.ts +0 -72
- package/src/viem/Account.ts +0 -30
- package/src/viem/Client.test.ts +0 -366
- package/src/viem/Client.ts +0 -93
- package/src/web-bot-auth/Constants.ts +0 -24
- package/src/web-bot-auth/Types.ts +0 -9
- package/src/web-bot-auth/WebBotAuth.test.ts +0 -182
- package/src/web-bot-auth/client/index.ts +0 -84
- package/src/web-bot-auth/index.ts +0 -6
- package/src/web-bot-auth/internal/JwkThumbprint.ts +0 -21
- package/src/web-bot-auth/internal/SignatureAgent.ts +0 -18
- package/src/web-bot-auth/server/index.ts +0 -113
- package/src/x402/Assets.test.ts +0 -253
- package/src/x402/Assets.ts +0 -221
- package/src/x402/Exact.e2e.test.ts +0 -488
- package/src/x402/Exact.localnet.test.ts +0 -475
- package/src/x402/Header.test.ts +0 -73
- package/src/x402/Header.ts +0 -79
- package/src/x402/PublicInterface.test-d.ts +0 -39
- package/src/x402/Types.ts +0 -248
- package/src/x402/client/Exact.test.ts +0 -309
- package/src/x402/client/Exact.ts +0 -186
- package/src/x402/index.ts +0 -6
- package/src/x402/internal/ChallengeBrand.ts +0 -14
- package/src/x402/internal/RouteBinding.ts +0 -18
- package/src/x402/server/EvmCharge.ts +0 -410
- package/src/x402/server/Facilitator.test.ts +0 -111
- package/src/x402/server/Facilitator.ts +0 -56
- package/src/zod.test.ts +0 -169
- package/src/zod.ts +0 -71
|
@@ -3,9 +3,10 @@ import * as Constants from '../../../Constants.js';
|
|
|
3
3
|
import { VerificationFailedError } from '../../../Errors.js';
|
|
4
4
|
import * as Methods from '../../Methods.js';
|
|
5
5
|
import { captureRequestBodyProbe, isSessionContentRequest, } from '../../server/internal/request-body.js';
|
|
6
|
-
import { tip20ChannelEscrow } from '../precompile/Protocol.js';
|
|
6
|
+
import { tip20ChannelEscrow, uint96, } from '../precompile/Protocol.js';
|
|
7
|
+
import * as Voucher from '../precompile/Voucher.js';
|
|
7
8
|
import * as ChannelStore from './ChannelStore.js';
|
|
8
|
-
import { requireSessionCredentialAction } from './CredentialVerification.js';
|
|
9
|
+
import { requireSessionCredentialAction, requireSessionCredentialPayload, } from './CredentialVerification.js';
|
|
9
10
|
import { resolveCredentialFeePayer, resolveRequestFeePayer, } from './Settlement.js';
|
|
10
11
|
/** Normalizes a session channel ID hint when one is present. */
|
|
11
12
|
export function normalizeSessionChannelId(value) {
|
|
@@ -29,6 +30,27 @@ function normalizeResolvedSessionChannelId(value) {
|
|
|
29
30
|
return undefined;
|
|
30
31
|
return ChannelStore.normalizeChannelId(value);
|
|
31
32
|
}
|
|
33
|
+
/** Returns a close credential's channel once its voucher signature verifies. */
|
|
34
|
+
async function verifiedCloseCredentialChannel(credential, store) {
|
|
35
|
+
try {
|
|
36
|
+
const payload = requireSessionCredentialPayload(credential?.payload);
|
|
37
|
+
if (payload.action !== 'close')
|
|
38
|
+
return undefined;
|
|
39
|
+
const channelId = payload.channelId;
|
|
40
|
+
const channel = await store.getChannel(channelId);
|
|
41
|
+
if (!channel || !ChannelStore.isPrecompileState(channel))
|
|
42
|
+
return undefined;
|
|
43
|
+
const verified = Voucher.verifyVoucher(channel.escrowContract, channel.chainId, {
|
|
44
|
+
channelId,
|
|
45
|
+
cumulativeAmount: uint96(BigInt(payload.cumulativeAmount)),
|
|
46
|
+
signature: payload.signature,
|
|
47
|
+
}, channel.authorizedSigner);
|
|
48
|
+
return verified ? { channelId, channel } : undefined;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
32
54
|
/** Resolves the channel ID used to build server-side session bootstrap hints. */
|
|
33
55
|
export async function resolveSessionChannelId(parameters) {
|
|
34
56
|
const { capturedRequest, credential, request, resolveChannelId, source, store } = parameters;
|
|
@@ -47,10 +69,10 @@ export async function resolveSessionChannelId(parameters) {
|
|
|
47
69
|
}
|
|
48
70
|
/** Builds server bootstrap hints for a reusable precompile session channel. */
|
|
49
71
|
export async function resolveSessionSnapshot(parameters) {
|
|
50
|
-
const { amount, channelId, expected, store } = parameters;
|
|
72
|
+
const { amount, channelId, expected, matchPaymentFields, store } = parameters;
|
|
51
73
|
if (!channelId)
|
|
52
74
|
return undefined;
|
|
53
|
-
const channel = await store.getChannel(ChannelStore.normalizeChannelId(channelId));
|
|
75
|
+
const channel = parameters.channel ?? (await store.getChannel(ChannelStore.normalizeChannelId(channelId)));
|
|
54
76
|
if (!channel || !ChannelStore.isPrecompileState(channel))
|
|
55
77
|
return undefined;
|
|
56
78
|
if (channel.finalized)
|
|
@@ -61,8 +83,18 @@ export async function resolveSessionSnapshot(parameters) {
|
|
|
61
83
|
return undefined;
|
|
62
84
|
if (channel.highestVoucher.cumulativeAmount !== channel.highestVoucherAmount)
|
|
63
85
|
return undefined;
|
|
64
|
-
if (expected && !matchesSnapshotPaymentFields(channel, expected))
|
|
65
|
-
|
|
86
|
+
if (expected && !matchesSnapshotPaymentFields(channel, expected)) {
|
|
87
|
+
// The snapshot is an optional reuse hint: a failing matcher (for example a
|
|
88
|
+
// transient RPC error during the route check) must omit the hint rather
|
|
89
|
+
// than fail challenge issuance or bootstrap preflight.
|
|
90
|
+
let matched = false;
|
|
91
|
+
try {
|
|
92
|
+
matched = (await matchPaymentFields?.(channel, expected)) ?? false;
|
|
93
|
+
}
|
|
94
|
+
catch { }
|
|
95
|
+
if (!matched)
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
66
98
|
const requiredCumulative = channel.spent + amount;
|
|
67
99
|
return {
|
|
68
100
|
acceptedCumulative: channel.highestVoucherAmount.toString(),
|
|
@@ -115,6 +147,9 @@ function isCanonicalSessionMethodDetails(value) {
|
|
|
115
147
|
typeof value.escrowContract === 'string' &&
|
|
116
148
|
isAddress(value.escrowContract, { strict: false }) &&
|
|
117
149
|
(value.feePayer === undefined || typeof value.feePayer === 'boolean') &&
|
|
150
|
+
(value.feeToken === undefined ||
|
|
151
|
+
(typeof value.feeToken === 'string' && isAddress(value.feeToken, { strict: false }))) &&
|
|
152
|
+
(value.machineTokenEnabled === undefined || typeof value.machineTokenEnabled === 'boolean') &&
|
|
118
153
|
(value.minVoucherDelta === undefined || typeof value.minVoucherDelta === 'string') &&
|
|
119
154
|
(value.operator === undefined ||
|
|
120
155
|
(typeof value.operator === 'string' && isAddress(value.operator, { strict: false }))) &&
|
|
@@ -156,7 +191,7 @@ export async function resolveRequestChainId(parameters) {
|
|
|
156
191
|
}
|
|
157
192
|
/** Resolves request-time TIP-1034 details and server bootstrap hints for a challenge. */
|
|
158
193
|
export async function resolveSessionPaymentRequest(parameters) {
|
|
159
|
-
const { capturedRequest, credential, decimals, defaultFeePayer, getClient, parameterChainId, parameterEscrowContract, parameterFeePayer, request, resolveChannelId, source, store, } = parameters;
|
|
194
|
+
const { capturedRequest, credential, decimals, defaultFeePayer, getClient, matchSnapshotPaymentFields, parameterChainId, parameterEscrowContract, parameterFeePayer, request, resolveChannelId, source, store, } = parameters;
|
|
160
195
|
const chainId = await resolveRequestChainId({
|
|
161
196
|
getClient,
|
|
162
197
|
parameterChainId,
|
|
@@ -170,16 +205,24 @@ export async function resolveSessionPaymentRequest(parameters) {
|
|
|
170
205
|
const escrowContract = resolveRequestEscrowContract(request.escrowContract, parameterEscrowContract);
|
|
171
206
|
const operator = resolveRequestOperator(request.operator);
|
|
172
207
|
const requestAmount = parseUnits(request.amount, decimals);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
208
|
+
// A close credential names the channel it settles; advertising that channel's
|
|
209
|
+
// snapshot on the retry challenge lets clients without a configured
|
|
210
|
+
// `resolveChannelId` learn the exact capture amount a machine-token close
|
|
211
|
+
// voucher must match. Only trusted once the voucher signature verifies, and
|
|
212
|
+
// matched with close semantics so retired routes stay closable.
|
|
213
|
+
const verifiedClose = await verifiedCloseCredentialChannel(credential, store);
|
|
214
|
+
const channelId = verifiedClose?.channelId ??
|
|
215
|
+
(await resolveSessionChannelId({
|
|
216
|
+
capturedRequest,
|
|
217
|
+
credential,
|
|
218
|
+
request,
|
|
219
|
+
resolveChannelId,
|
|
220
|
+
source,
|
|
221
|
+
store,
|
|
222
|
+
}));
|
|
181
223
|
const sessionSnapshot = await resolveSessionSnapshot({
|
|
182
224
|
amount: capturedRequest && !isSessionContentRequest(capturedRequest) ? 0n : requestAmount,
|
|
225
|
+
channel: verifiedClose?.channel,
|
|
183
226
|
channelId,
|
|
184
227
|
expected: {
|
|
185
228
|
chainId,
|
|
@@ -187,6 +230,9 @@ export async function resolveSessionPaymentRequest(parameters) {
|
|
|
187
230
|
escrowContract,
|
|
188
231
|
recipient: readChallengeAddress(request.recipient, 'recipient'),
|
|
189
232
|
},
|
|
233
|
+
matchPaymentFields: matchSnapshotPaymentFields && (verifiedClose || request.machineTokenEnabled)
|
|
234
|
+
? (channel, expected) => matchSnapshotPaymentFields(channel, expected, verifiedClose ? { action: 'close' } : undefined)
|
|
235
|
+
: undefined,
|
|
190
236
|
store,
|
|
191
237
|
});
|
|
192
238
|
const { operator: _operator, ...requestWithoutOperator } = request;
|
|
@@ -36,6 +36,7 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
36
36
|
credential: {
|
|
37
37
|
payload: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
|
|
38
38
|
action: import("zod/mini").ZodMiniLiteral<"open">;
|
|
39
|
+
authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
39
40
|
authorizedSigner: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
40
41
|
channelId: import("zod/mini").ZodMiniString<string>;
|
|
41
42
|
cumulativeAmount: import("zod/mini").ZodMiniString<string>;
|
|
@@ -52,15 +53,18 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
52
53
|
type: import("zod/mini").ZodMiniLiteral<"transaction">;
|
|
53
54
|
}, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
|
|
54
55
|
action: import("zod/mini").ZodMiniLiteral<"voucher">;
|
|
56
|
+
authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
55
57
|
channelId: import("zod/mini").ZodMiniString<string>;
|
|
56
58
|
cumulativeAmount: import("zod/mini").ZodMiniString<string>;
|
|
57
59
|
descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
|
|
58
60
|
signature: import("zod/mini").ZodMiniString<string>;
|
|
59
61
|
}, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
|
|
60
62
|
action: import("zod/mini").ZodMiniLiteral<"close">;
|
|
63
|
+
authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
61
64
|
channelId: import("zod/mini").ZodMiniString<string>;
|
|
62
65
|
cumulativeAmount: import("zod/mini").ZodMiniString<string>;
|
|
63
66
|
descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
|
|
67
|
+
refundSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
64
68
|
signature: import("zod/mini").ZodMiniString<string>;
|
|
65
69
|
}, import("zod/v4/core").$strip>], "action">;
|
|
66
70
|
};
|
|
@@ -72,6 +76,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
72
76
|
decimals: import("zod/mini").ZodMiniNumber<number>;
|
|
73
77
|
escrowContract: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
74
78
|
feePayer: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniUnion<readonly [import("zod/mini").ZodMiniBoolean<boolean>, import("zod/mini").ZodMiniCustom<import("viem").Account, import("viem").Account>]>, import("zod/mini").ZodMiniTransform<boolean, boolean | import("viem").Account>>>;
|
|
79
|
+
feeToken: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
80
|
+
machineTokenEnabled: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniBoolean<boolean>>;
|
|
75
81
|
minVoucherDelta: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
76
82
|
operator: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
77
83
|
recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
@@ -94,6 +100,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
94
100
|
minVoucherDelta?: string | undefined;
|
|
95
101
|
chainId?: number | undefined;
|
|
96
102
|
feePayer?: boolean | undefined;
|
|
103
|
+
feeToken?: string | undefined;
|
|
104
|
+
machineTokenEnabled?: boolean | undefined;
|
|
97
105
|
operator?: string | undefined;
|
|
98
106
|
sessionProtocol?: "v1" | "v2" | undefined;
|
|
99
107
|
sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
|
|
@@ -106,6 +114,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
106
114
|
decimals: number;
|
|
107
115
|
escrowContract?: string | undefined;
|
|
108
116
|
feePayer?: boolean | undefined;
|
|
117
|
+
feeToken?: string | undefined;
|
|
118
|
+
machineTokenEnabled?: boolean | undefined;
|
|
109
119
|
minVoucherDelta?: string | undefined;
|
|
110
120
|
operator?: string | undefined;
|
|
111
121
|
recipient?: string | undefined;
|
|
@@ -167,14 +177,16 @@ export declare namespace session {
|
|
|
167
177
|
sse?: boolean | Transport.sse.Options | undefined;
|
|
168
178
|
/** Tempo chain ID used for TIP-1034 channel escrow challenges. Defaults to the resolved client chain ID. */
|
|
169
179
|
chainId?: number | undefined;
|
|
170
|
-
/**
|
|
180
|
+
/** Escrow contract advertised to clients. Defaults to the canonical TIP20EscrowChannel address. */
|
|
171
181
|
escrowContract?: Address | undefined;
|
|
172
182
|
/** Callback invoked after any on-chain settlement or close transaction is confirmed. */
|
|
173
183
|
onSessionSettlement?: OnSessionSettlement | undefined;
|
|
174
184
|
/** Server-owned automatic settlement cadence. Clients do not receive or control this schedule. */
|
|
175
185
|
settlementSchedule?: SettlementSchedule | undefined;
|
|
176
|
-
/** Optional fee token
|
|
186
|
+
/** Optional fee token for management and server-driven settle/close transactions. */
|
|
177
187
|
feeToken?: Address | undefined;
|
|
188
|
+
/** Enables first-party machine-token funding when the configured deployment is available. */
|
|
189
|
+
machineTokenEnabled?: boolean | undefined;
|
|
178
190
|
} & Account.resolve.Parameters & Client.getResolver.Parameters & Defaults & Method.ComposableHooks<typeof Methods.session>;
|
|
179
191
|
/** Defaults derived from `session()` parameters for handler type inference. */
|
|
180
192
|
type DeriveDefaults<parameters extends Parameters> = types.DeriveDefaults<parameters, Defaults, {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and one-shot settlement. Each incoming request carries a session credential
|
|
6
6
|
* with a cumulative voucher that the server validates and records.
|
|
7
7
|
*/
|
|
8
|
-
import { isAddress } from 'viem';
|
|
8
|
+
import { isAddress, isAddressEqual } from 'viem';
|
|
9
9
|
import { tempo as tempo_chain } from 'viem/chains';
|
|
10
10
|
import * as Challenge from '../../../Challenge.js';
|
|
11
11
|
import * as Constants from '../../../Constants.js';
|
|
@@ -16,6 +16,7 @@ import * as Store from '../../../Store.js';
|
|
|
16
16
|
import * as Client from '../../../viem/Client.js';
|
|
17
17
|
import * as Account from '../../internal/account.js';
|
|
18
18
|
import * as defaults from '../../internal/defaults.js';
|
|
19
|
+
import * as MachineTokenSession from '../../internal/machine-token-session.js';
|
|
19
20
|
import * as Methods from '../../Methods.js';
|
|
20
21
|
import * as ChargeServer from '../../server/Charge.js';
|
|
21
22
|
import * as Transport from '../../server/internal/transport.js';
|
|
@@ -178,6 +179,9 @@ async function handleBootstrapPreflight(parameters) {
|
|
|
178
179
|
escrowContract: resolveBootstrapEscrowContract(parameters.paymentRequest, parameters.parameterEscrowContract),
|
|
179
180
|
recipient: readBootstrapAddress(request.recipient, 'recipient'),
|
|
180
181
|
},
|
|
182
|
+
matchPaymentFields: parameters.paymentRequest.machineTokenEnabled
|
|
183
|
+
? parameters.matchSnapshotPaymentFields
|
|
184
|
+
: undefined,
|
|
181
185
|
store: parameters.store,
|
|
182
186
|
});
|
|
183
187
|
const headers = new Headers({ 'Cache-Control': 'no-store' });
|
|
@@ -190,19 +194,33 @@ async function handleBootstrapPreflight(parameters) {
|
|
|
190
194
|
/** Creates a server-side TIP20EscrowChannel precompile session payment method. */
|
|
191
195
|
export function session(p) {
|
|
192
196
|
const parameters = p;
|
|
193
|
-
const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, operator, store: rawStore = Store.memory(), suggestedDeposit, unitType, } = parameters;
|
|
197
|
+
const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, machineTokenEnabled, operator, store: rawStore = Store.memory(), suggestedDeposit, unitType, } = parameters;
|
|
194
198
|
const settlementSchedule = resolveSettlementSchedule(parameters.settlementSchedule, decimals);
|
|
195
199
|
const onSessionSettlement = parameters.onSessionSettlement;
|
|
196
200
|
const store = ChannelStore.fromStore(rawStore);
|
|
197
201
|
const lastOnChainVerified = new Map();
|
|
198
202
|
const { account, feePayer, feePayerUrl, recipient } = Account.resolve(parameters);
|
|
199
203
|
const configuredFeePayer = feePayer ?? feePayerUrl;
|
|
204
|
+
const settlementFeePayer = feePayer ?? (feePayerUrl ? true : undefined);
|
|
200
205
|
const getClient = Client.getResolver({
|
|
201
206
|
chain: tempo_chain,
|
|
202
207
|
feePayerUrl,
|
|
203
208
|
getClient: parameters.getClient,
|
|
204
209
|
rpcUrl: defaults.rpcUrl,
|
|
205
210
|
});
|
|
211
|
+
const matchSnapshotPaymentFields = async (channel, expected, options) => {
|
|
212
|
+
if (channel.chainId !== expected.chainId ||
|
|
213
|
+
!isAddressEqual(channel.escrowContract, expected.escrowContract) ||
|
|
214
|
+
!isAddressEqual(expected.escrowContract, tip20ChannelEscrow))
|
|
215
|
+
return false;
|
|
216
|
+
return !!(await MachineTokenSession.matchRoute(await getClient({ chainId: expected.chainId }), {
|
|
217
|
+
active: options?.action !== 'close',
|
|
218
|
+
chainId: expected.chainId,
|
|
219
|
+
descriptor: channel.descriptor,
|
|
220
|
+
merchant: expected.recipient,
|
|
221
|
+
targetToken: expected.currency,
|
|
222
|
+
}));
|
|
223
|
+
};
|
|
206
224
|
const settleScheduled = async (channel) => {
|
|
207
225
|
if (!isSettlementDue(channel, settlementSchedule))
|
|
208
226
|
return undefined;
|
|
@@ -210,7 +228,7 @@ export function session(p) {
|
|
|
210
228
|
account,
|
|
211
229
|
channel,
|
|
212
230
|
client: await getClient({ chainId: channel.chainId }),
|
|
213
|
-
...(
|
|
231
|
+
...(settlementFeePayer ? { feePayer: settlementFeePayer } : {}),
|
|
214
232
|
feePayerPolicy: parameters.feePayerPolicy,
|
|
215
233
|
feeToken: parameters.feeToken,
|
|
216
234
|
onSessionSettlement,
|
|
@@ -260,6 +278,7 @@ export function session(p) {
|
|
|
260
278
|
expectedOperator: context.methodDetails.operator,
|
|
261
279
|
feePayer: context.feePayer,
|
|
262
280
|
feePayerPolicy: parameters.feePayerPolicy,
|
|
281
|
+
feeToken: context.methodDetails.feeToken,
|
|
263
282
|
lastOnChainVerified,
|
|
264
283
|
minVoucherDelta: context.minVoucherDelta,
|
|
265
284
|
payload,
|
|
@@ -296,7 +315,7 @@ export function session(p) {
|
|
|
296
315
|
expectedOperator: context.methodDetails.operator,
|
|
297
316
|
feePayer: context.feePayer,
|
|
298
317
|
feePayerPolicy: parameters.feePayerPolicy,
|
|
299
|
-
feeToken:
|
|
318
|
+
feeToken: context.methodDetails.feeToken,
|
|
300
319
|
lastOnChainVerified,
|
|
301
320
|
minVoucherDelta: context.minVoucherDelta,
|
|
302
321
|
onSessionSettlement,
|
|
@@ -314,7 +333,7 @@ export function session(p) {
|
|
|
314
333
|
settleCharged: (channel) => maybeSettleScheduled({
|
|
315
334
|
account,
|
|
316
335
|
client: context.client,
|
|
317
|
-
...(
|
|
336
|
+
...(context.feePayer ? { feePayer: context.feePayer } : {}),
|
|
318
337
|
feePayerPolicy: parameters.feePayerPolicy,
|
|
319
338
|
feeToken: parameters.feeToken,
|
|
320
339
|
onSessionSettlement,
|
|
@@ -331,6 +350,7 @@ export function session(p) {
|
|
|
331
350
|
amount,
|
|
332
351
|
currency,
|
|
333
352
|
decimals,
|
|
353
|
+
machineTokenEnabled,
|
|
334
354
|
operator,
|
|
335
355
|
recipient,
|
|
336
356
|
suggestedDeposit,
|
|
@@ -351,6 +371,7 @@ export function session(p) {
|
|
|
351
371
|
defaultRecipient: recipient,
|
|
352
372
|
expires,
|
|
353
373
|
getClient,
|
|
374
|
+
matchSnapshotPaymentFields,
|
|
354
375
|
parameterChainId: parameters.chainId,
|
|
355
376
|
parameterEscrowContract: parameters.escrowContract,
|
|
356
377
|
paymentRequest: options,
|
|
@@ -368,6 +389,7 @@ export function session(p) {
|
|
|
368
389
|
decimals,
|
|
369
390
|
defaultFeePayer: feePayer,
|
|
370
391
|
getClient,
|
|
392
|
+
matchSnapshotPaymentFields,
|
|
371
393
|
parameterChainId: parameters.chainId,
|
|
372
394
|
parameterEscrowContract: parameters.escrowContract,
|
|
373
395
|
parameterFeePayer: parameters.feePayer,
|
|
@@ -375,8 +397,17 @@ export function session(p) {
|
|
|
375
397
|
resolveChannelId: parameters.resolveChannelId,
|
|
376
398
|
store,
|
|
377
399
|
});
|
|
400
|
+
// Only advertise the capability when this logical session can use a
|
|
401
|
+
// configured unified router on the canonical escrow.
|
|
402
|
+
const { machineTokenEnabled: requestedMachineTokenEnabled, ...requestWithoutMachineToken } = resolvedRequest;
|
|
403
|
+
const machineSessionSupported = MachineTokenSession.isSupported(resolvedRequest.chainId) &&
|
|
404
|
+
isAddressEqual(resolvedRequest.escrowContract, tip20ChannelEscrow);
|
|
378
405
|
return {
|
|
379
|
-
...
|
|
406
|
+
...requestWithoutMachineToken,
|
|
407
|
+
feeToken: parameters.feeToken,
|
|
408
|
+
...(requestedMachineTokenEnabled && machineSessionSupported
|
|
409
|
+
? { machineTokenEnabled: true }
|
|
410
|
+
: {}),
|
|
380
411
|
sessionProtocol: Constants.SessionProtocols.v2,
|
|
381
412
|
};
|
|
382
413
|
},
|
|
@@ -160,8 +160,8 @@ export type SettlementTransactionOptions = {
|
|
|
160
160
|
candidateFeeTokens?: readonly Address[] | undefined;
|
|
161
161
|
/** TIP20EscrowChannel precompile address override. */
|
|
162
162
|
escrowContract?: Address | undefined;
|
|
163
|
-
/**
|
|
164
|
-
feePayer?: viem_Account | undefined;
|
|
163
|
+
/** Fee-payer account, or `true` when the client transport uses a configured hosted fee-payer service. */
|
|
164
|
+
feePayer?: viem_Account | true | undefined;
|
|
165
165
|
/** Optional policy for sponsored settlement. */
|
|
166
166
|
feePayerPolicy?: Partial<FeePayer.Policy> | undefined;
|
|
167
167
|
/** Optional fee token override for settlement. */
|
|
@@ -177,8 +177,8 @@ export type MaybeSettleScheduledParameters = {
|
|
|
177
177
|
channel: ChannelStore.State;
|
|
178
178
|
/** viem client used to settle on-chain. */
|
|
179
179
|
client: Chain.TransactionClient;
|
|
180
|
-
/**
|
|
181
|
-
feePayer?: viem_Account | undefined;
|
|
180
|
+
/** Fee-payer account, or `true` when the client transport uses a configured hosted fee-payer service. */
|
|
181
|
+
feePayer?: viem_Account | true | undefined;
|
|
182
182
|
/** Optional policy for sponsored settlement. */
|
|
183
183
|
feePayerPolicy?: Partial<FeePayer.Policy> | undefined;
|
|
184
184
|
/** Optional fee token override for settlement. */
|
|
@@ -198,6 +198,13 @@ export declare function getClientAccount(client: {
|
|
|
198
198
|
}): viem_Account | undefined;
|
|
199
199
|
/** Validates that the transaction sender is the channel payee or nonzero operator. */
|
|
200
200
|
export declare function assertSettlementSender(parameters: SettlementSenderParameters): void;
|
|
201
|
+
/**
|
|
202
|
+
* Assembles transaction options for settle/close transactions. Machine
|
|
203
|
+
* channels pin PathUSD (or an explicit override); direct channels leave the
|
|
204
|
+
* fee token unset so balance-aware selection can pick a funded candidate.
|
|
205
|
+
* The rail comes from the caller so fee pinning always matches dispatch.
|
|
206
|
+
*/
|
|
207
|
+
export declare function resolveChannelTransactionOptions(channel: Pick<ChannelStore.StoredPrecompileChannel, 'chainId' | 'token'>, options: SettlementTransactionOptions | undefined, account: viem_Account | undefined, machineRouter: Address | undefined): Chain.ChannelTransactionOptions | undefined;
|
|
201
208
|
/** Applies automatic settlement when the server-owned schedule is due. */
|
|
202
209
|
export declare function maybeSettleScheduled(parameters: MaybeSettleScheduledParameters): Promise<Hex | undefined>;
|
|
203
210
|
/** Settles the highest accepted voucher for a precompile-backed session channel. */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isAddress, isAddressEqual, parseUnits, zeroAddress, } from 'viem';
|
|
2
2
|
import { BadRequestError, ChannelClosedError, ChannelNotFoundError, InsufficientBalanceError, VerificationFailedError, } from '../../../Errors.js';
|
|
3
|
+
import * as MachineTokenSession from '../../internal/machine-token-session.js';
|
|
3
4
|
import { isSessionContentRequest } from '../../server/internal/request-body.js';
|
|
4
5
|
import * as Chain from '../precompile/Chain.js';
|
|
5
6
|
import { readSettledReceiptFields } from '../precompile/Chain.js';
|
|
@@ -28,12 +29,10 @@ export function resolveRequestFeePayer(parameters) {
|
|
|
28
29
|
if (requestFeePayer === false)
|
|
29
30
|
return credential ? false : undefined;
|
|
30
31
|
const account = typeof requestFeePayer === 'object' ? requestFeePayer : defaultFeePayer;
|
|
32
|
+
const hosted = parameterFeePayer === true || typeof parameterFeePayer === 'string';
|
|
31
33
|
if (credential)
|
|
32
|
-
return account ?? undefined;
|
|
33
|
-
if (account ||
|
|
34
|
-
defaultFeePayer ||
|
|
35
|
-
parameterFeePayer === true ||
|
|
36
|
-
typeof parameterFeePayer === 'string')
|
|
34
|
+
return account ?? (hosted ? true : undefined);
|
|
35
|
+
if (account || hosted)
|
|
37
36
|
return true;
|
|
38
37
|
return undefined;
|
|
39
38
|
}
|
|
@@ -184,6 +183,30 @@ export function assertSettlementSender(parameters) {
|
|
|
184
183
|
' If using an access key, pass a Tempo access-key account whose address is the payee/operator wallet, not the raw delegated key address.',
|
|
185
184
|
});
|
|
186
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Assembles transaction options for settle/close transactions. Machine
|
|
188
|
+
* channels pin PathUSD (or an explicit override); direct channels leave the
|
|
189
|
+
* fee token unset so balance-aware selection can pick a funded candidate.
|
|
190
|
+
* The rail comes from the caller so fee pinning always matches dispatch.
|
|
191
|
+
*/
|
|
192
|
+
export function resolveChannelTransactionOptions(channel, options, account, machineRouter) {
|
|
193
|
+
if (!account)
|
|
194
|
+
return undefined;
|
|
195
|
+
const feeToken = options?.feeToken ??
|
|
196
|
+
(machineRouter
|
|
197
|
+
? MachineTokenSession.resolveFeeToken({
|
|
198
|
+
chainId: channel.chainId,
|
|
199
|
+
paymentToken: channel.token,
|
|
200
|
+
})
|
|
201
|
+
: undefined);
|
|
202
|
+
return {
|
|
203
|
+
account,
|
|
204
|
+
...(options?.feePayer ? { feePayer: options.feePayer } : {}),
|
|
205
|
+
...(options?.feePayerPolicy ? { feePayerPolicy: options.feePayerPolicy } : {}),
|
|
206
|
+
...(feeToken ? { feeToken } : {}),
|
|
207
|
+
candidateFeeTokens: options?.candidateFeeTokens ?? [feeToken ?? channel.token],
|
|
208
|
+
};
|
|
209
|
+
}
|
|
187
210
|
/** Applies automatic settlement when the server-owned schedule is due. */
|
|
188
211
|
export async function maybeSettleScheduled(parameters) {
|
|
189
212
|
const { channel, schedule, store } = parameters;
|
|
@@ -214,23 +237,32 @@ export async function settle(store_, client, channelId_, options) {
|
|
|
214
237
|
throw new VerificationFailedError({ reason: 'no voucher to settle' });
|
|
215
238
|
const escrow = options?.escrowContract ?? channel.escrowContract;
|
|
216
239
|
const account = options?.account ?? getClientAccount(client);
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
240
|
+
const machineRouter = MachineTokenSession.matchDeployment({
|
|
241
|
+
chainId: channel.chainId,
|
|
242
|
+
descriptor: channel.descriptor,
|
|
243
|
+
})?.swap;
|
|
244
|
+
if (!machineRouter || !account)
|
|
245
|
+
assertSettlementSender({
|
|
246
|
+
operation: 'settle',
|
|
247
|
+
channelId,
|
|
248
|
+
operator: channel.operator,
|
|
249
|
+
payee: channel.payee,
|
|
250
|
+
sender: account?.address,
|
|
251
|
+
});
|
|
224
252
|
const amount = uint96(channel.highestVoucher.cumulativeAmount);
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
253
|
+
const transactionOptions = resolveChannelTransactionOptions(channel, options, account, machineRouter);
|
|
254
|
+
let txHash;
|
|
255
|
+
if (machineRouter) {
|
|
256
|
+
const authorizationSignature = channel.highestVoucher.authorizationSignature;
|
|
257
|
+
if (!authorizationSignature)
|
|
258
|
+
throw new VerificationFailedError({
|
|
259
|
+
reason: 'machine-token voucher is missing its router authorization',
|
|
260
|
+
});
|
|
261
|
+
txHash = await Chain.settleMachineSessionOnChain(client, channel.descriptor, amount, channel.highestVoucher.signature, authorizationSignature, machineRouter, transactionOptions);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
txHash = await Chain.settleOnChain(client, channel.descriptor, amount, channel.highestVoucher.signature, escrow, transactionOptions);
|
|
265
|
+
}
|
|
234
266
|
const receipt = await Chain.waitForSuccessfulReceipt(client, txHash);
|
|
235
267
|
const settled = readSettledReceiptFields(Chain.getChannelEvent(receipt, 'Settled', channelId));
|
|
236
268
|
const { newSettled } = settled;
|
|
@@ -6,6 +6,8 @@ import * as Types from '../Types.js';
|
|
|
6
6
|
* Creates an x402 exact `PAYMENT-SIGNATURE` credential.
|
|
7
7
|
*/
|
|
8
8
|
export declare function createCredential(parameters: createCredential.Parameters): Promise<string>;
|
|
9
|
+
/** Returns whether this client can sign the given x402 exact challenge. */
|
|
10
|
+
export declare function canHandleChallenge(parameters: canHandleChallenge.Parameters): boolean;
|
|
9
11
|
export declare namespace createCredential {
|
|
10
12
|
type Parameters = {
|
|
11
13
|
challenge: Challenge.Challenge<Types.ExactRequest>;
|
|
@@ -13,6 +15,12 @@ export declare namespace createCredential {
|
|
|
13
15
|
context?: Context | undefined;
|
|
14
16
|
};
|
|
15
17
|
}
|
|
18
|
+
export declare namespace canHandleChallenge {
|
|
19
|
+
type Parameters = {
|
|
20
|
+
challenge: Challenge.Challenge<Types.ExactRequest>;
|
|
21
|
+
config: Config;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
16
24
|
export type Context = {
|
|
17
25
|
account?: Account | undefined;
|
|
18
26
|
};
|
|
@@ -13,9 +13,11 @@ export async function createCredential(parameters) {
|
|
|
13
13
|
const request = parameters.challenge.request;
|
|
14
14
|
const accepted = Types.toPaymentRequirements(request);
|
|
15
15
|
assertPolicy(parameters.config, accepted);
|
|
16
|
-
if (!request.resource
|
|
17
|
-
throw new Error('x402 exact EIP-3009 requires
|
|
18
|
-
const extensions =
|
|
16
|
+
if (!request.resource)
|
|
17
|
+
throw new Error('x402 exact EIP-3009 requires resource information.');
|
|
18
|
+
const extensions = request.extensions?.mppx
|
|
19
|
+
? withNonceSalt(request.extensions)
|
|
20
|
+
: request.extensions;
|
|
19
21
|
const transferMethod = accepted.extra?.assetTransferMethod ?? 'eip3009';
|
|
20
22
|
if (transferMethod !== 'eip3009')
|
|
21
23
|
throw new Error(`x402 exact ${String(transferMethod)} signing is not implemented yet.`);
|
|
@@ -26,11 +28,13 @@ export async function createCredential(parameters) {
|
|
|
26
28
|
const now = Math.floor(Date.now() / 1000);
|
|
27
29
|
const authorization = {
|
|
28
30
|
from: getAddress(account.address),
|
|
29
|
-
nonce:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
nonce: extensions?.mppx
|
|
32
|
+
? RouteBinding.nonce({
|
|
33
|
+
accepted,
|
|
34
|
+
extensions,
|
|
35
|
+
resource: request.resource,
|
|
36
|
+
})
|
|
37
|
+
: randomAuthorizationNonce(),
|
|
34
38
|
to: getAddress(accepted.payTo),
|
|
35
39
|
validAfter: (now - 600).toString(),
|
|
36
40
|
validBefore: (now + accepted.maxTimeoutSeconds).toString(),
|
|
@@ -54,7 +58,7 @@ export async function createCredential(parameters) {
|
|
|
54
58
|
});
|
|
55
59
|
return Header.encodePaymentSignature({
|
|
56
60
|
accepted,
|
|
57
|
-
extensions,
|
|
61
|
+
...(extensions ? { extensions } : {}),
|
|
58
62
|
payload: {
|
|
59
63
|
authorization,
|
|
60
64
|
signature,
|
|
@@ -63,6 +67,26 @@ export async function createCredential(parameters) {
|
|
|
63
67
|
x402Version: 2,
|
|
64
68
|
});
|
|
65
69
|
}
|
|
70
|
+
/** Returns whether this client can sign the given x402 exact challenge. */
|
|
71
|
+
export function canHandleChallenge(parameters) {
|
|
72
|
+
const request = parameters.challenge.request;
|
|
73
|
+
let accepted;
|
|
74
|
+
try {
|
|
75
|
+
accepted = Types.toPaymentRequirements(request);
|
|
76
|
+
assertPolicy(parameters.config, accepted);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (!request.resource)
|
|
82
|
+
return false;
|
|
83
|
+
const transferMethod = accepted.extra?.assetTransferMethod ?? 'eip3009';
|
|
84
|
+
if (transferMethod !== 'eip3009')
|
|
85
|
+
return false;
|
|
86
|
+
const name = accepted.extra?.name;
|
|
87
|
+
const version = accepted.extra?.version;
|
|
88
|
+
return typeof name === 'string' && typeof version === 'string';
|
|
89
|
+
}
|
|
66
90
|
const authorizationTypes = {
|
|
67
91
|
TransferWithAuthorization: [
|
|
68
92
|
{ name: 'from', type: 'address' },
|
|
@@ -125,10 +149,16 @@ function withNonceSalt(extensions) {
|
|
|
125
149
|
};
|
|
126
150
|
}
|
|
127
151
|
function randomNonceSalt() {
|
|
152
|
+
return randomBytes32().slice(2);
|
|
153
|
+
}
|
|
154
|
+
function randomAuthorizationNonce() {
|
|
155
|
+
return randomBytes32();
|
|
156
|
+
}
|
|
157
|
+
function randomBytes32() {
|
|
128
158
|
const crypto = globalThis.crypto;
|
|
129
159
|
if (!crypto?.getRandomValues)
|
|
130
160
|
throw new Error('x402 exact requires crypto randomness.');
|
|
131
161
|
const bytes = crypto.getRandomValues(new Uint8Array(32));
|
|
132
|
-
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('')
|
|
162
|
+
return `0x${Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('')}`;
|
|
133
163
|
}
|
|
134
164
|
//# sourceMappingURL=Exact.js.map
|
|
@@ -9,11 +9,33 @@ export type Options = {
|
|
|
9
9
|
fetch?: typeof globalThis.fetch | undefined;
|
|
10
10
|
/** Maximum time in seconds allowed for x402-compatible payment completion. @default 300 */
|
|
11
11
|
maxTimeoutSeconds?: number | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* How a route-scoped charge binds an x402 credential to its route.
|
|
14
|
+
*
|
|
15
|
+
* - `'resource'` — accept either binding. A credential carrying
|
|
16
|
+
* `extensions.mppx` is verified in full, including the route-bound nonce; one
|
|
17
|
+
* without it is bound the way x402 itself binds, by comparing the echoed
|
|
18
|
+
* `resource` and `accepted`. Any spec-compliant client can pay a scoped route.
|
|
19
|
+
* - `'required'` — every credential must carry `extensions.mppx` and the
|
|
20
|
+
* route-bound nonce. Only clients that implement mppx's binding can pay.
|
|
21
|
+
*
|
|
22
|
+
* `'resource'` is weaker for clients that don't bind: `resource` sits outside
|
|
23
|
+
* the EIP-3009 signature, so a holder of a valid payload could re-present it at
|
|
24
|
+
* another route with identical `accepted`. It prevents honest cross-route reuse
|
|
25
|
+
* and client bugs, not an active attacker. Body binding is unaffected either
|
|
26
|
+
* way — `challenge.digest` is verified against the actual body.
|
|
27
|
+
*
|
|
28
|
+
* @default 'resource'
|
|
29
|
+
*/
|
|
30
|
+
routeBinding?: RouteBindingMode | undefined;
|
|
12
31
|
};
|
|
32
|
+
/** How a route-scoped charge binds an x402 credential to its route. */
|
|
33
|
+
export type RouteBindingMode = 'required' | 'resource';
|
|
13
34
|
export type ResolvedOptions = {
|
|
14
35
|
authorization: Types.AuthorizationConfig;
|
|
15
36
|
facilitator?: x402_Types.Facilitator | undefined;
|
|
16
37
|
maxTimeoutSeconds: number;
|
|
38
|
+
routeBinding: RouteBindingMode;
|
|
17
39
|
};
|
|
18
40
|
export type Path = {
|
|
19
41
|
bindCredential: NonNullable<ServerTransport.Http['bindCredential']>;
|