mppx 0.8.14 → 0.8.17
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 +57 -0
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +40 -35
- package/dist/Challenge.js.map +1 -1
- package/dist/Constants.d.ts +17 -17
- package/dist/Constants.d.ts.map +1 -1
- package/dist/Credential.d.ts.map +1 -1
- package/dist/Errors.d.ts +3 -3
- package/dist/Errors.d.ts.map +1 -1
- package/dist/Errors.js.map +1 -1
- package/dist/Method.d.ts +35 -5
- package/dist/Method.d.ts.map +1 -1
- package/dist/Method.js +7 -22
- package/dist/Method.js.map +1 -1
- package/dist/Store.d.ts +19 -0
- package/dist/Store.d.ts.map +1 -1
- package/dist/Store.js +43 -0
- package/dist/Store.js.map +1 -1
- package/dist/attestation/Client.d.ts +17 -0
- package/dist/attestation/Client.d.ts.map +1 -0
- package/dist/attestation/Client.js +28 -0
- package/dist/attestation/Client.js.map +1 -0
- package/dist/attestation/Constants.d.ts +15 -0
- package/dist/attestation/Constants.d.ts.map +1 -0
- package/dist/attestation/Constants.js +15 -0
- package/dist/attestation/Constants.js.map +1 -0
- package/dist/attestation/Server.d.ts +4 -0
- package/dist/attestation/Server.d.ts.map +1 -0
- package/dist/attestation/Server.js +8 -0
- package/dist/attestation/Server.js.map +1 -0
- package/dist/attestation/Types.d.ts +76 -0
- package/dist/attestation/Types.d.ts.map +1 -0
- package/dist/attestation/Types.js +2 -0
- package/dist/attestation/Types.js.map +1 -0
- package/dist/attestation/index.d.ts +6 -0
- package/dist/attestation/index.d.ts.map +1 -0
- package/dist/attestation/index.js +6 -0
- package/dist/attestation/index.js.map +1 -0
- package/dist/attestation/internal/HttpMessageSignature.d.ts +73 -0
- package/dist/attestation/internal/HttpMessageSignature.d.ts.map +1 -0
- package/dist/attestation/internal/HttpMessageSignature.js +320 -0
- package/dist/attestation/internal/HttpMessageSignature.js.map +1 -0
- package/dist/attestation/internal/SigningContext.d.ts +4 -0
- package/dist/attestation/internal/SigningContext.d.ts.map +1 -0
- package/dist/attestation/internal/SigningContext.js +11 -0
- package/dist/attestation/internal/SigningContext.js.map +1 -0
- package/dist/cli/account.d.ts +14 -14
- package/dist/cli/account.d.ts.map +1 -1
- package/dist/cli/cli.d.ts +6 -6
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +1 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/plugins/tempo.js.map +1 -1
- package/dist/cli/sessions/commands.d.ts +4 -4
- package/dist/cli/sessions/commands.d.ts.map +1 -1
- package/dist/cli/sessions/commands.js.map +1 -1
- package/dist/cli/sessions/store.d.ts.map +1 -1
- package/dist/cli/sessions/store.js.map +1 -1
- package/dist/cli/utils.d.ts +1 -1
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js.map +1 -1
- package/dist/cli/validate/discovery.js.map +1 -1
- package/dist/cli/validate/index.d.ts +3 -3
- package/dist/cli/validate/index.d.ts.map +1 -1
- package/dist/cli/validate/payment.d.ts.map +1 -1
- package/dist/cli/validate/payment.js +18 -4
- package/dist/cli/validate/payment.js.map +1 -1
- package/dist/client/Mppx.d.ts +3 -0
- package/dist/client/Mppx.d.ts.map +1 -1
- package/dist/client/Mppx.js +13 -5
- package/dist/client/Mppx.js.map +1 -1
- package/dist/client/Transport.d.ts +3 -5
- package/dist/client/Transport.d.ts.map +1 -1
- package/dist/client/Transport.js +1 -17
- package/dist/client/Transport.js.map +1 -1
- package/dist/client/internal/Fetch.d.ts.map +1 -1
- package/dist/client/internal/Fetch.js +92 -13
- package/dist/client/internal/Fetch.js.map +1 -1
- package/dist/client/internal/MethodChallenge.d.ts +2 -0
- package/dist/client/internal/MethodChallenge.d.ts.map +1 -1
- package/dist/client/internal/MethodChallenge.js +4 -0
- package/dist/client/internal/MethodChallenge.js.map +1 -1
- package/dist/client/internal/MethodResponse.d.ts +15 -0
- package/dist/client/internal/MethodResponse.d.ts.map +1 -1
- package/dist/client/internal/MethodResponse.js +10 -0
- package/dist/client/internal/MethodResponse.js.map +1 -1
- package/dist/client/node.js.map +1 -1
- package/dist/discovery/OpenApi.d.ts +3 -5
- package/dist/discovery/OpenApi.d.ts.map +1 -1
- package/dist/discovery/OpenApi.js +13 -34
- package/dist/discovery/OpenApi.js.map +1 -1
- package/dist/discovery/internal/Metadata.d.ts +20 -0
- package/dist/discovery/internal/Metadata.d.ts.map +1 -0
- package/dist/discovery/internal/Metadata.js +36 -0
- package/dist/discovery/internal/Metadata.js.map +1 -0
- package/dist/evm/Methods.d.ts +11 -11
- package/dist/evm/Methods.d.ts.map +1 -1
- package/dist/evm/Types.d.ts +17 -17
- package/dist/evm/Types.d.ts.map +1 -1
- package/dist/evm/client/Charge.d.ts +11 -11
- package/dist/evm/client/Methods.d.ts +11 -11
- package/dist/evm/server/Charge.d.ts +1 -1
- package/dist/evm/server/Charge.d.ts.map +1 -1
- package/dist/evm/server/Charge.js +2 -0
- package/dist/evm/server/Charge.js.map +1 -1
- package/dist/evm/server/Methods.d.ts +11 -11
- package/dist/internal/HeaderCodec.d.ts +2 -2
- package/dist/internal/HeaderCodec.d.ts.map +1 -1
- package/dist/internal/types.d.ts +6 -0
- package/dist/internal/types.d.ts.map +1 -1
- package/dist/middlewares/elysia.js.map +1 -1
- package/dist/middlewares/express.js.map +1 -1
- package/dist/middlewares/hono.js.map +1 -1
- package/dist/middlewares/nextjs.js.map +1 -1
- package/dist/proxy/Proxy.d.ts +2 -0
- package/dist/proxy/Proxy.d.ts.map +1 -1
- package/dist/proxy/Proxy.js +117 -9
- package/dist/proxy/Proxy.js.map +1 -1
- package/dist/proxy/Service.d.ts +36 -1
- package/dist/proxy/Service.d.ts.map +1 -1
- package/dist/proxy/Service.js +9 -8
- package/dist/proxy/Service.js.map +1 -1
- package/dist/proxy/services/anthropic.d.ts.map +1 -1
- package/dist/proxy/services/anthropic.js +1 -0
- package/dist/proxy/services/anthropic.js.map +1 -1
- package/dist/proxy/services/openai.d.ts.map +1 -1
- package/dist/proxy/services/openai.js +1 -0
- package/dist/proxy/services/openai.js.map +1 -1
- package/dist/proxy/services/stripe.d.ts.map +1 -1
- package/dist/proxy/services/stripe.js +1 -0
- package/dist/proxy/services/stripe.js.map +1 -1
- package/dist/server/Mppx.d.ts +75 -13
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +201 -23
- package/dist/server/Mppx.js.map +1 -1
- package/dist/server/internal/html/config.d.ts +9 -9
- package/dist/server/internal/html/config.d.ts.map +1 -1
- package/dist/server/internal/html/constants.d.ts +17 -17
- package/dist/server/internal/html/constants.d.ts.map +1 -1
- package/dist/stripe/Methods.d.ts +10 -10
- package/dist/stripe/Methods.d.ts.map +1 -1
- package/dist/stripe/client/Charge.d.ts +10 -10
- package/dist/stripe/client/Methods.d.ts +10 -10
- package/dist/stripe/internal/constants.d.ts +1 -1
- package/dist/stripe/internal/constants.js +1 -1
- package/dist/stripe/internal/types.d.ts +1 -0
- package/dist/stripe/internal/types.d.ts.map +1 -1
- package/dist/stripe/server/Charge.d.ts +11 -11
- package/dist/stripe/server/Charge.d.ts.map +1 -1
- package/dist/stripe/server/Charge.js +49 -1
- package/dist/stripe/server/Charge.js.map +1 -1
- package/dist/stripe/server/Methods.d.ts +137 -48
- package/dist/stripe/server/Methods.d.ts.map +1 -1
- package/dist/stripe/server/Methods.js +259 -4
- package/dist/stripe/server/Methods.js.map +1 -1
- package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
- package/dist/stripe/server/internal/deposit-address.d.ts.map +1 -0
- package/dist/stripe/server/internal/deposit-address.js +28 -0
- package/dist/stripe/server/internal/deposit-address.js.map +1 -0
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/html.gen.js.map +1 -1
- package/dist/stripe/server/internal/record-payment.d.ts +15 -0
- package/dist/stripe/server/internal/record-payment.d.ts.map +1 -0
- package/dist/stripe/server/internal/record-payment.js +42 -0
- package/dist/stripe/server/internal/record-payment.js.map +1 -0
- package/dist/stripe/server/internal/request.d.ts +25 -0
- package/dist/stripe/server/internal/request.d.ts.map +1 -0
- package/dist/stripe/server/internal/request.js +29 -0
- package/dist/stripe/server/internal/request.js.map +1 -0
- package/dist/tap/Constants.d.ts +28 -0
- package/dist/tap/Constants.d.ts.map +1 -0
- package/dist/tap/Constants.js +32 -0
- package/dist/tap/Constants.js.map +1 -0
- package/dist/tap/Types.d.ts +11 -0
- package/dist/tap/Types.d.ts.map +1 -0
- package/dist/tap/Types.js +2 -0
- package/dist/tap/Types.js.map +1 -0
- package/dist/tap/client/index.d.ts +26 -0
- package/dist/tap/client/index.d.ts.map +1 -0
- package/dist/tap/client/index.js +33 -0
- package/dist/tap/client/index.js.map +1 -0
- package/dist/tap/index.d.ts +5 -0
- package/dist/tap/index.d.ts.map +1 -0
- package/dist/tap/index.js +5 -0
- package/dist/tap/index.js.map +1 -0
- package/dist/tap/server/index.d.ts +20 -0
- package/dist/tap/server/index.d.ts.map +1 -0
- package/dist/tap/server/index.js +36 -0
- package/dist/tap/server/index.js.map +1 -0
- package/dist/tempo/Attribution.d.ts +1 -1
- package/dist/tempo/Methods.d.ts +60 -60
- package/dist/tempo/Methods.d.ts.map +1 -1
- package/dist/tempo/Proof.d.ts +16 -16
- package/dist/tempo/client/Charge.d.ts +19 -19
- package/dist/tempo/client/Charge.d.ts.map +1 -1
- package/dist/tempo/client/Charge.js +1 -7
- package/dist/tempo/client/Charge.js.map +1 -1
- package/dist/tempo/client/Methods.d.ts +38 -38
- package/dist/tempo/client/Methods.js.map +1 -1
- package/dist/tempo/client/Subscription.d.ts +23 -23
- package/dist/tempo/client/Subscription.js.map +1 -1
- package/dist/tempo/internal/address.d.ts +2 -1
- package/dist/tempo/internal/address.d.ts.map +1 -1
- package/dist/tempo/internal/address.js +3 -1
- package/dist/tempo/internal/address.js.map +1 -1
- package/dist/tempo/internal/auto-swap.d.ts.map +1 -1
- package/dist/tempo/internal/auto-swap.js +4 -19
- package/dist/tempo/internal/auto-swap.js.map +1 -1
- package/dist/tempo/internal/defaults.d.ts +6 -6
- package/dist/tempo/internal/defaults.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.d.ts +12 -12
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js.map +1 -1
- package/dist/tempo/internal/proof.d.ts +17 -17
- package/dist/tempo/internal/proof.d.ts.map +1 -1
- package/dist/tempo/legacy/client/Session.d.ts +20 -20
- package/dist/tempo/legacy/client/Session.js.map +1 -1
- package/dist/tempo/legacy/client/SessionManager.js.map +1 -1
- package/dist/tempo/legacy/index.d.ts +1 -3
- package/dist/tempo/legacy/index.d.ts.map +1 -1
- package/dist/tempo/legacy/index.js +1 -3
- package/dist/tempo/legacy/index.js.map +1 -1
- package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
- package/dist/tempo/legacy/session/escrow.abi.d.ts.map +1 -1
- package/dist/tempo/server/Charge.d.ts +34 -12
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +44 -39
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +37 -52
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js +0 -14
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Relay.d.ts +14 -5
- package/dist/tempo/server/Relay.d.ts.map +1 -1
- package/dist/tempo/server/Relay.js +6 -4
- package/dist/tempo/server/Relay.js.map +1 -1
- package/dist/tempo/server/SponsorBudget.d.ts.map +1 -1
- package/dist/tempo/server/SponsorBudget.js +7 -1
- package/dist/tempo/server/SponsorBudget.js.map +1 -1
- package/dist/tempo/server/Subscription.d.ts +25 -25
- package/dist/tempo/server/Subscription.d.ts.map +1 -1
- package/dist/tempo/server/Subscription.js +2 -0
- package/dist/tempo/server/Subscription.js.map +1 -1
- package/dist/tempo/server/index.d.ts +1 -1
- package/dist/tempo/server/index.d.ts.map +1 -1
- package/dist/tempo/server/index.js +1 -1
- package/dist/tempo/server/index.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/server/internal/transport.d.ts +2 -0
- package/dist/tempo/server/internal/transport.d.ts.map +1 -1
- package/dist/tempo/server/internal/transport.js +9 -2
- package/dist/tempo/server/internal/transport.js.map +1 -1
- package/dist/tempo/session/client/ChannelOps.js.map +1 -1
- package/dist/tempo/session/client/CredentialState.d.ts +1 -1
- package/dist/tempo/session/client/CredentialState.js.map +1 -1
- package/dist/tempo/session/client/ReceiptCoordinator.js.map +1 -1
- package/dist/tempo/session/client/Runtime.js.map +1 -1
- package/dist/tempo/session/client/Session.d.ts +19 -19
- package/dist/tempo/session/client/Session.d.ts.map +1 -1
- package/dist/tempo/session/client/Session.js +128 -14
- package/dist/tempo/session/client/Session.js.map +1 -1
- package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
- package/dist/tempo/session/client/SessionManager.js +62 -20
- package/dist/tempo/session/client/SessionManager.js.map +1 -1
- package/dist/tempo/session/client/Transports.d.ts +9 -1
- package/dist/tempo/session/client/Transports.d.ts.map +1 -1
- package/dist/tempo/session/client/Transports.js +36 -13
- package/dist/tempo/session/client/Transports.js.map +1 -1
- package/dist/tempo/session/precompile/Chain.d.ts +27 -0
- package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
- package/dist/tempo/session/precompile/Chain.js +68 -7
- package/dist/tempo/session/precompile/Chain.js.map +1 -1
- package/dist/tempo/session/precompile/Protocol.js.map +1 -1
- package/dist/tempo/session/precompile/Voucher.d.ts +4 -4
- package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -1
- package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
- package/dist/tempo/session/precompile/escrow.abi.d.ts.map +1 -1
- package/dist/tempo/session/server/ChannelStore.d.ts +9 -0
- package/dist/tempo/session/server/ChannelStore.d.ts.map +1 -1
- package/dist/tempo/session/server/ChannelStore.js +16 -8
- package/dist/tempo/session/server/ChannelStore.js.map +1 -1
- package/dist/tempo/session/server/CredentialVerification.d.ts +30 -13
- package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -1
- package/dist/tempo/session/server/CredentialVerification.js +207 -13
- package/dist/tempo/session/server/CredentialVerification.js.map +1 -1
- package/dist/tempo/session/server/MeteredStream.d.ts +3 -0
- package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -1
- package/dist/tempo/session/server/MeteredStream.js +3 -1
- package/dist/tempo/session/server/MeteredStream.js.map +1 -1
- package/dist/tempo/session/server/Session.d.ts +32 -21
- package/dist/tempo/session/server/Session.d.ts.map +1 -1
- package/dist/tempo/session/server/Session.js +116 -53
- package/dist/tempo/session/server/Session.js.map +1 -1
- package/dist/tempo/session/server/Sse.d.ts +3 -1
- package/dist/tempo/session/server/Sse.d.ts.map +1 -1
- package/dist/tempo/session/server/Sse.js +2 -1
- package/dist/tempo/session/server/Sse.js.map +1 -1
- package/dist/tempo/session/server/Transports.d.ts +1 -1
- package/dist/tempo/session/server/Transports.d.ts.map +1 -1
- package/dist/tempo/session/server/Transports.js +1 -0
- package/dist/tempo/session/server/Transports.js.map +1 -1
- package/dist/tempo/session/server/Ws.d.ts +6 -1
- package/dist/tempo/session/server/Ws.d.ts.map +1 -1
- package/dist/tempo/session/server/Ws.js +4 -0
- package/dist/tempo/session/server/Ws.js.map +1 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts +38 -866
- package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/subscription/KeyAuthorization.js +14 -3
- package/dist/tempo/subscription/KeyAuthorization.js.map +1 -1
- package/dist/viem/Account.d.ts.map +1 -1
- package/dist/viem/Account.js.map +1 -1
- package/dist/viem/Client.d.ts.map +1 -1
- package/dist/viem/Client.js +6 -1
- package/dist/viem/Client.js.map +1 -1
- package/dist/web-bot-auth/Constants.d.ts +20 -0
- package/dist/web-bot-auth/Constants.d.ts.map +1 -0
- package/dist/web-bot-auth/Constants.js +24 -0
- package/dist/web-bot-auth/Constants.js.map +1 -0
- package/dist/web-bot-auth/Types.d.ts +10 -0
- package/dist/web-bot-auth/Types.d.ts.map +1 -0
- package/dist/web-bot-auth/Types.js +2 -0
- package/dist/web-bot-auth/Types.js.map +1 -0
- package/dist/web-bot-auth/client/index.d.ts +29 -0
- package/dist/web-bot-auth/client/index.d.ts.map +1 -0
- package/dist/web-bot-auth/client/index.js +64 -0
- package/dist/web-bot-auth/client/index.js.map +1 -0
- package/dist/web-bot-auth/index.d.ts +7 -0
- package/dist/web-bot-auth/index.d.ts.map +1 -0
- package/dist/web-bot-auth/index.js +7 -0
- package/dist/web-bot-auth/index.js.map +1 -0
- package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
- package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +1 -0
- package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
- package/dist/web-bot-auth/internal/JwkThumbprint.js.map +1 -0
- package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
- package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +1 -0
- package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
- package/dist/web-bot-auth/internal/SignatureAgent.js.map +1 -0
- package/dist/web-bot-auth/server/index.d.ts +35 -0
- package/dist/web-bot-auth/server/index.d.ts.map +1 -0
- package/dist/web-bot-auth/server/index.js +88 -0
- package/dist/web-bot-auth/server/index.js.map +1 -0
- package/dist/x402/Assets.d.ts.map +1 -1
- package/dist/x402/Types.d.ts +6 -6
- package/dist/x402/Types.d.ts.map +1 -1
- package/dist/x402/server/EvmCharge.d.ts.map +1 -1
- package/dist/x402/server/EvmCharge.js +32 -20
- package/dist/x402/server/EvmCharge.js.map +1 -1
- package/package.json +20 -4
- package/src/Challenge.fuzz.test.ts +80 -47
- package/src/Challenge.test.ts +65 -0
- package/src/Challenge.ts +39 -35
- package/src/Method.ts +82 -68
- package/src/Store.test-d.ts +16 -0
- package/src/Store.test.ts +50 -0
- package/src/Store.ts +68 -0
- package/src/attestation/Attestation.integration.test.ts +208 -0
- package/src/attestation/Client.test.ts +83 -0
- package/src/attestation/Client.ts +34 -0
- package/src/attestation/Constants.ts +15 -0
- package/src/attestation/Server.test.ts +60 -0
- package/src/attestation/Server.ts +12 -0
- package/src/attestation/Types.test-d.ts +54 -0
- package/src/attestation/Types.ts +77 -0
- package/src/attestation/index.ts +5 -0
- package/src/attestation/internal/HttpMessageSignature.test.ts +101 -0
- package/src/attestation/internal/HttpMessageSignature.ts +429 -0
- package/src/attestation/internal/SigningContext.ts +13 -0
- package/src/bin.js +2 -0
- package/src/cli/cli.ts +1 -0
- package/src/cli/validate/payment.ts +18 -4
- package/src/cli/validate.test.ts +16 -0
- package/src/client/Mppx.test-d.ts +17 -0
- package/src/client/Mppx.test.ts +14 -14
- package/src/client/Mppx.ts +25 -4
- package/src/client/Transport.test.ts +12 -45
- package/src/client/Transport.ts +3 -24
- package/src/client/internal/Fetch.test.ts +77 -0
- package/src/client/internal/Fetch.ts +112 -14
- package/src/client/internal/MethodChallenge.ts +5 -0
- package/src/client/internal/MethodResponse.ts +28 -0
- package/src/discovery/OpenApi.test.ts +170 -0
- package/src/discovery/OpenApi.ts +16 -48
- package/src/discovery/internal/Metadata.ts +51 -0
- package/src/evm/server/Charge.ts +6 -1
- package/src/internal/AcceptPayment.test.ts +12 -8
- package/src/internal/types.ts +9 -0
- package/src/mcp/client/McpClient.integration.test.ts +19 -32
- package/src/middlewares/elysia.test.ts +2 -12
- package/src/middlewares/express.test.ts +2 -12
- package/src/middlewares/hono.test.ts +6 -9
- package/src/middlewares/nextjs.test.ts +2 -12
- package/src/proxy/Proxy.test.ts +26 -19
- package/src/proxy/Proxy.ts +147 -9
- package/src/proxy/Proxy.upstreamError.test.ts +364 -0
- package/src/proxy/Service.test.ts +73 -3
- package/src/proxy/Service.ts +50 -23
- package/src/proxy/services/anthropic.ts +1 -0
- package/src/proxy/services/hooks.test-d.ts +14 -0
- package/src/proxy/services/hooks.test.ts +44 -0
- package/src/proxy/services/openai.ts +1 -0
- package/src/proxy/services/stripe.ts +1 -0
- package/src/server/Methods.test-d.ts +88 -0
- package/src/server/Methods.test.ts +69 -0
- package/src/server/Mppx.test-d.ts +141 -7
- package/src/server/Mppx.test.ts +1017 -119
- package/src/server/Mppx.ts +350 -54
- package/src/stripe/internal/constants.ts +1 -1
- package/src/stripe/internal/types.ts +1 -0
- package/src/stripe/server/Charge.test-d.ts +16 -1
- package/src/stripe/server/Charge.test.ts +79 -0
- package/src/stripe/server/Charge.ts +54 -1
- package/src/stripe/server/Methods.test-d.ts +157 -0
- package/src/stripe/server/Methods.test.ts +403 -0
- package/src/stripe/server/Methods.ts +423 -6
- package/src/stripe/server/internal/deposit-address.ts +57 -0
- package/src/stripe/server/internal/html/node_modules/.bin/mppx +3 -3
- package/src/stripe/server/internal/html/package.json +1 -1
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/stripe/server/internal/record-payment.ts +66 -0
- package/src/stripe/server/internal/request.ts +49 -0
- package/src/tap/Constants.ts +32 -0
- package/src/tap/Tap.test.ts +125 -0
- package/src/tap/Types.ts +11 -0
- package/src/tap/client/index.ts +54 -0
- package/src/tap/index.ts +4 -0
- package/src/tap/server/index.ts +48 -0
- package/src/tempo/PublicExports.test-d.ts +3 -3
- package/src/tempo/client/Charge.ts +1 -19
- package/src/tempo/internal/address.test.ts +42 -0
- package/src/tempo/internal/address.ts +3 -3
- package/src/tempo/internal/auto-swap.test.ts +4 -4
- package/src/tempo/internal/auto-swap.ts +7 -50
- package/src/tempo/legacy/README.md +5 -5
- package/src/tempo/legacy/index.ts +1 -3
- package/src/tempo/server/AtomicStore.test-d.ts +13 -0
- package/src/tempo/server/Charge.test.ts +19 -84
- package/src/tempo/server/Charge.ts +92 -56
- package/src/tempo/server/Methods.ts +0 -20
- package/src/tempo/server/Relay.test.ts +161 -7
- package/src/tempo/server/Relay.ts +15 -6
- package/src/tempo/server/SponsorBudget.test.ts +29 -0
- package/src/tempo/server/SponsorBudget.ts +7 -1
- package/src/tempo/server/Subscription.ts +4 -1
- package/src/tempo/server/index.ts +1 -1
- package/src/tempo/server/internal/html/node_modules/.bin/mppx +3 -3
- package/src/tempo/server/internal/html/package.json +1 -1
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/server/internal/transport.test.ts +22 -3
- package/src/tempo/server/internal/transport.ts +15 -3
- package/src/tempo/session/README.md +119 -0
- package/src/tempo/session/client/Session.test.ts +299 -33
- package/src/tempo/session/client/Session.ts +152 -16
- package/src/tempo/session/client/SessionManager.test.ts +216 -9
- package/src/tempo/session/client/SessionManager.ts +63 -17
- package/src/tempo/session/client/Transports.test.ts +22 -0
- package/src/tempo/session/client/Transports.ts +58 -22
- package/src/tempo/session/precompile/Chain.ts +131 -11
- package/src/tempo/session/server/ChannelStore.ts +33 -12
- package/src/tempo/session/server/CredentialVerification.test.ts +4 -4
- package/src/tempo/session/server/CredentialVerification.ts +340 -28
- package/src/tempo/session/server/MeteredStream.ts +5 -1
- package/src/tempo/session/server/Session.test.ts +483 -36
- package/src/tempo/session/server/Session.ts +159 -60
- package/src/tempo/session/server/Sse.test.ts +77 -0
- package/src/tempo/session/server/Sse.ts +8 -1
- package/src/tempo/session/server/Transports.ts +2 -1
- package/src/tempo/session/server/Ws.test.ts +171 -0
- package/src/tempo/session/server/Ws.ts +10 -1
- package/src/tempo/subscription/KeyAuthorization.test.ts +70 -1
- package/src/tempo/subscription/KeyAuthorization.ts +14 -3
- package/src/viem/Client.test.ts +18 -1
- package/src/viem/Client.ts +7 -1
- package/src/web-bot-auth/Constants.ts +24 -0
- package/src/web-bot-auth/Types.ts +9 -0
- package/src/web-bot-auth/WebBotAuth.test.ts +182 -0
- package/src/web-bot-auth/client/index.ts +84 -0
- package/src/web-bot-auth/index.ts +6 -0
- package/src/web-bot-auth/internal/JwkThumbprint.ts +21 -0
- package/src/web-bot-auth/internal/SignatureAgent.ts +18 -0
- package/src/web-bot-auth/server/index.ts +113 -0
- package/src/x402/Exact.e2e.test.ts +121 -81
- package/src/x402/Exact.localnet.test.ts +1 -1
- package/src/x402/server/EvmCharge.ts +35 -19
- package/dist/tempo/legacy/server/Session.d.ts +0 -208
- package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
- package/dist/tempo/legacy/server/Session.js +0 -698
- package/dist/tempo/legacy/server/Session.js.map +0 -1
- package/dist/tempo/legacy/server/index.d.ts +0 -5
- package/dist/tempo/legacy/server/index.d.ts.map +0 -1
- package/dist/tempo/legacy/server/index.js +0 -5
- package/dist/tempo/legacy/server/index.js.map +0 -1
- package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
- package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/legacy/session/ChannelStore.js +0 -6
- package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
- package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
- package/src/tempo/legacy/server/Session.test.ts +0 -6370
- package/src/tempo/legacy/server/Session.ts +0 -1024
- package/src/tempo/legacy/server/index.ts +0 -4
- package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
- package/src/tempo/legacy/session/ChannelStore.ts +0 -39
package/dist/server/Mppx.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type * as Attestation from '../attestation/Types.js';
|
|
2
3
|
import * as Challenge from '../Challenge.js';
|
|
3
4
|
import * as Credential from '../Credential.js';
|
|
4
5
|
import * as Errors from '../Errors.js';
|
|
5
|
-
import type { MaybePromise } from '../internal/types.js';
|
|
6
|
+
import type { DeepReadonly, MaybePromise } from '../internal/types.js';
|
|
6
7
|
import * as Method from '../Method.js';
|
|
7
8
|
import type * as Receipt from '../Receipt.js';
|
|
8
9
|
import * as z from '../zod.js';
|
|
10
|
+
import * as Html from './internal/html/config.js';
|
|
9
11
|
import * as Transport from './Transport.js';
|
|
10
12
|
export type Methods = readonly (Method.AnyServer | readonly Method.AnyServer[])[];
|
|
11
13
|
export type ServerEventMap<methods extends readonly Method.Method[] = readonly Method.Method[], transport extends Transport.AnyTransport = Transport.AnyTransport> = {
|
|
@@ -36,6 +38,36 @@ export type ServerMethodDescriptor<method extends Pick<Method.Method, 'intent' |
|
|
|
36
38
|
intent: method['intent'];
|
|
37
39
|
name: method['name'];
|
|
38
40
|
}>;
|
|
41
|
+
/** A configured payment offer exposed to the server's `selectOffers` hook. */
|
|
42
|
+
export type ServerOffer<method extends Method.Method = Method.Method> = method extends unknown ? ServerOfferFor<method> : never;
|
|
43
|
+
type ServerOfferFor<method extends Method.Method> = Readonly<{
|
|
44
|
+
/** Canonical wire key for the configured method. */
|
|
45
|
+
key: `${method['name']}/${method['intent']}`;
|
|
46
|
+
/** Immutable method metadata for this offer. */
|
|
47
|
+
method: ServerOfferMethodDescriptor<method>;
|
|
48
|
+
/** Schema-normalized request configured for this offer. */
|
|
49
|
+
request: DeepReadonly<z.output<method['schema']['request']>>;
|
|
50
|
+
}>;
|
|
51
|
+
/** Immutable method metadata exposed to offer-selection hooks. */
|
|
52
|
+
export type ServerOfferMethodDescriptor<method extends Method.Method = Method.Method> = Readonly<{
|
|
53
|
+
/** Optional public alias used to register this server method. */
|
|
54
|
+
alias?: method extends {
|
|
55
|
+
alias?: infer alias;
|
|
56
|
+
} ? alias : string;
|
|
57
|
+
intent: method['intent'];
|
|
58
|
+
name: method['name'];
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Selects a subset of configured offers before payment challenges are issued.
|
|
62
|
+
*
|
|
63
|
+
* The hook must select at least one offer. Returned offers must come from the input,
|
|
64
|
+
* contain no duplicates, and preserve their original order. Offers and their
|
|
65
|
+
* normalized requests are deeply immutable. The incoming request is cloned so
|
|
66
|
+
* the hook may safely inspect its body when it has not already been consumed.
|
|
67
|
+
*/
|
|
68
|
+
export type SelectOffers<methods extends readonly Method.Method[]> = (offers: readonly ServerOffer<methods[number]>[], context: Readonly<{
|
|
69
|
+
request: globalThis.Request;
|
|
70
|
+
}>) => MaybePromise<readonly ServerOffer<methods[number]>[]>;
|
|
39
71
|
/** Context passed to `onChallengeCreated`. */
|
|
40
72
|
export type ChallengeContext<method extends Method.Method = Method.Method, transport extends Transport.AnyTransport = Transport.AnyTransport> = Readonly<{
|
|
41
73
|
capturedRequest?: Method.CapturedRequest | undefined;
|
|
@@ -136,7 +168,7 @@ export type Mppx<methods extends Methods = Methods, transport extends Transport.
|
|
|
136
168
|
* })
|
|
137
169
|
* ```
|
|
138
170
|
*/
|
|
139
|
-
compose(...entries: ComposeEntry<FlattenMethods<methods>>[]):
|
|
171
|
+
compose(...entries: ComposeEntry<FlattenMethods<methods>>[]): ComposedHandler;
|
|
140
172
|
} : {}) & Handlers<FlattenMethods<methods>, transport> & {
|
|
141
173
|
/**
|
|
142
174
|
* Generate Challenge objects for registered methods without going through
|
|
@@ -196,7 +228,7 @@ type TransportOverrideOf<mi> = mi extends {
|
|
|
196
228
|
type EffectiveTransportOf<mi, defaultTransport extends Transport.AnyTransport> = [
|
|
197
229
|
TransportOverrideOf<mi>
|
|
198
230
|
] extends [never] ? defaultTransport : TransportOverrideOf<mi>;
|
|
199
|
-
declare const reservedMppxKeyValues: readonly [
|
|
231
|
+
declare const reservedMppxKeyValues: readonly ['challenge', 'compose', 'methods', 'on', 'onChallengeCreated', 'onPaymentFailed', 'onPaymentSuccess', 'realm', 'broadcastCredential', 'transport', 'validateCredential', 'verifyCredential'];
|
|
200
232
|
/** Public instance keys that payment method names and shorthand intents cannot shadow. */
|
|
201
233
|
export type ReservedKey = (typeof reservedMppxKeyValues)[number];
|
|
202
234
|
/** Public instance keys that payment method names and shorthand intents cannot shadow. */
|
|
@@ -207,18 +239,25 @@ type IsUniqueIntent<methods extends readonly Method.AnyServer[], intent extends
|
|
|
207
239
|
}> extends infer M ? M extends M ? [Exclude<Extract<methods[number], {
|
|
208
240
|
intent: intent;
|
|
209
241
|
}>, M>] extends [never] ? true : false : never : never;
|
|
210
|
-
/**
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
242
|
+
/** Shorthand intent handlers. Single-method intents get direct handlers;
|
|
243
|
+
* multi-method intents get an implicit compose wrapper. */
|
|
244
|
+
type IntentHandlers<methods extends readonly Method.AnyServer[], transport extends Transport.AnyTransport> = {
|
|
245
|
+
[intent in methods[number]['intent'] as intent extends ReservedKey ? never : intent]: IsUniqueIntent<methods, intent> extends true ? MethodFn<Extract<methods[number], {
|
|
246
|
+
intent: intent;
|
|
214
247
|
}>, EffectiveTransportOf<Extract<methods[number], {
|
|
215
|
-
intent:
|
|
248
|
+
intent: intent;
|
|
216
249
|
}>, transport>, NonNullable<Extract<methods[number], {
|
|
217
|
-
intent:
|
|
250
|
+
intent: intent;
|
|
218
251
|
}>['defaults']>> & MethodExtensions<Extract<methods[number], {
|
|
219
|
-
intent:
|
|
220
|
-
}
|
|
252
|
+
intent: intent;
|
|
253
|
+
}>> : MultiMethodFn<Extract<methods[number], {
|
|
254
|
+
intent: intent;
|
|
255
|
+
}>, transport>;
|
|
221
256
|
};
|
|
257
|
+
/** Handler for an intent with multiple methods - takes the intersection of all methods' options. */
|
|
258
|
+
type MultiMethodFn<methods extends Method.AnyServer, transport extends Transport.AnyTransport> = (options: UnionToIntersection<MultiMethodFnDistribute<methods>>) => (input: Transport.InputOf<transport>) => Promise<MethodFn.Response<transport>>;
|
|
259
|
+
type MultiMethodFnDistribute<M> = M extends Method.Server<infer method, infer defaults, any, any, any> ? MethodFn.Options<method, NonNullable<defaults>> : never;
|
|
260
|
+
type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
|
|
222
261
|
/** Nested handlers: `mppx.tempo.charge(...)`, grouped by method name then intent. */
|
|
223
262
|
type PublicAlias<method extends Method.AnyServer> = method extends {
|
|
224
263
|
alias?: infer alias;
|
|
@@ -237,7 +276,7 @@ type NestedHandlers<methods extends readonly Method.AnyServer[], transport exten
|
|
|
237
276
|
};
|
|
238
277
|
type Handlers<methods extends readonly Method.AnyServer[], transport extends Transport.AnyTransport> = {
|
|
239
278
|
[mi in methods[number] as `${mi['name']}/${mi['intent']}`]: MethodFn<mi, EffectiveTransportOf<mi, transport>, NonNullable<mi['defaults']>> & MethodExtensions<mi>;
|
|
240
|
-
} &
|
|
279
|
+
} & IntentHandlers<methods, transport> & NestedHandlers<methods, transport> & {
|
|
241
280
|
[mi in methods[number] as PublicAlias<mi> extends string ? `${mi['name']}/${PublicAlias<mi>}` : never]: MethodFn<mi, EffectiveTransportOf<mi, transport>, NonNullable<mi['defaults']>> & MethodExtensions<mi>;
|
|
242
281
|
};
|
|
243
282
|
type MethodExtensions<method extends Method.AnyServer> = method extends {
|
|
@@ -272,12 +311,16 @@ type ChallengeFn<method extends Method.Method, defaults extends Record<string, u
|
|
|
272
311
|
export declare function create<const methods extends Methods, const transport extends Transport.AnyTransport = Transport.Http>(config: create.Config<methods, transport>): Mppx<methods, transport>;
|
|
273
312
|
export declare namespace create {
|
|
274
313
|
type Config<methods extends Methods = Methods, transport extends Transport.AnyTransport = Transport.Http> = {
|
|
314
|
+
/** Request-attestation verifiers required before handling an HTTP payment request. */
|
|
315
|
+
attestation?: transport extends Transport.Http ? Attestation.VerifierMap | undefined : never;
|
|
275
316
|
/** Array of configured methods. @example [tempo()] */
|
|
276
317
|
methods: methods;
|
|
277
318
|
/** Server realm (e.g., hostname). Resolution order: explicit value > env vars (`MPP_REALM`, `FLY_APP_NAME`, `VERCEL_URL`, etc.) > request URL hostname > `"MPP Payment"`. */
|
|
278
319
|
realm?: string | undefined;
|
|
279
320
|
/** Secret key for HMAC-bound challenge IDs for stateless verification. Must be at least 32 bytes. Auto-detected from `MPP_SECRET_KEY` environment variable. */
|
|
280
321
|
secretKey?: string | undefined;
|
|
322
|
+
/** Selects a subset of composed HTTP offers before challenges are issued. Successfully matched credential dispatch bypasses this hook. */
|
|
323
|
+
selectOffers?: transport extends Transport.Http ? SelectOffers<FlattenMethods<methods>> | undefined : never;
|
|
281
324
|
/** Transport to use. @default Transport.http() */
|
|
282
325
|
transport?: transport | undefined;
|
|
283
326
|
};
|
|
@@ -312,6 +355,25 @@ declare namespace MethodFn {
|
|
|
312
355
|
withReceipt: Transport.WithReceipt<transport>;
|
|
313
356
|
};
|
|
314
357
|
}
|
|
358
|
+
/** A configured handler — the return value of e.g. `mppx.charge({ ... })`. @internal */
|
|
359
|
+
type ConfiguredHandler = ((input: Request) => Promise<MethodFn.Response<Transport.Http>>) & {
|
|
360
|
+
_internal: {
|
|
361
|
+
_method: Method.AnyServer;
|
|
362
|
+
description?: string | undefined;
|
|
363
|
+
name: string;
|
|
364
|
+
intent: string;
|
|
365
|
+
html: Html.Options | undefined;
|
|
366
|
+
meta?: Record<string, string> | undefined;
|
|
367
|
+
scope?: string | undefined;
|
|
368
|
+
_canonicalRequest: Record<string, unknown>;
|
|
369
|
+
_stableBinding?: Method.StableBindingFn<Method.Method> | undefined;
|
|
370
|
+
};
|
|
371
|
+
};
|
|
372
|
+
type ComposedHandler = ((input: Request) => Promise<MethodFn.Response<Transport.Http>>) & {
|
|
373
|
+
_internal?: {
|
|
374
|
+
offers: readonly ConfiguredHandler['_internal'][];
|
|
375
|
+
};
|
|
376
|
+
};
|
|
315
377
|
/** An entry for `compose()`: a method reference, handler function ref, or string key paired with its options. */
|
|
316
378
|
type ComposeEntry<methods extends readonly Method.AnyServer[]> = {
|
|
317
379
|
[i in keyof methods]: readonly [
|
|
@@ -331,7 +393,7 @@ type ComposeEntry<methods extends readonly Method.AnyServer[]> = {
|
|
|
331
393
|
MethodFn.Options<methods[i], NonNullable<methods[i]['defaults']>>
|
|
332
394
|
];
|
|
333
395
|
}[number];
|
|
334
|
-
export declare function compose(...args: readonly unknown[]):
|
|
396
|
+
export declare function compose(...args: readonly unknown[]): ComposedHandler;
|
|
335
397
|
/**
|
|
336
398
|
* Wraps a payment handler to create a Node.js HTTP listener.
|
|
337
399
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mppx.d.ts","sourceRoot":"","sources":["../../src/server/Mppx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Mppx.d.ts","sourceRoot":"","sources":["../../src/server/Mppx.ts"],"names":[],"mappings":"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"}
|
package/dist/server/Mppx.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isDeepStrictEqual } from 'node:util';
|
|
2
|
+
import * as AttestationServer from '../attestation/Server.js';
|
|
2
3
|
import * as Challenge from '../Challenge.js';
|
|
3
4
|
import * as Constants from '../Constants.js';
|
|
4
5
|
import * as Credential from '../Credential.js';
|
|
@@ -6,7 +7,6 @@ import * as Errors from '../Errors.js';
|
|
|
6
7
|
import * as Expires from '../Expires.js';
|
|
7
8
|
import * as AcceptPayment from '../internal/AcceptPayment.js';
|
|
8
9
|
import * as Env from '../internal/env.js';
|
|
9
|
-
import * as Method from '../Method.js';
|
|
10
10
|
import * as PaymentRequest from '../PaymentRequest.js';
|
|
11
11
|
import * as x402_Header from '../x402/Header.js';
|
|
12
12
|
import * as x402_Types from '../x402/Types.js';
|
|
@@ -52,21 +52,36 @@ export const reservedMppxKeys = new Set(reservedMppxKeyValues);
|
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
54
|
export function create(config) {
|
|
55
|
-
const { realm = Env.get('realm'), secretKey = Env.get('secretKey'), transport = Transport.http(), } = config;
|
|
55
|
+
const { attestation, realm = Env.get('realm'), selectOffers, secretKey = Env.get('secretKey'), transport = Transport.http(), } = config;
|
|
56
56
|
if (!secretKey) {
|
|
57
57
|
throw new Error('Missing secret key. Set the MPP_SECRET_KEY environment variable or pass `secretKey` to Mppx.create().');
|
|
58
58
|
}
|
|
59
59
|
assertSecretKey(secretKey);
|
|
60
60
|
const methods = config.methods.flat();
|
|
61
61
|
const serverEvents = createServerEventDispatcher();
|
|
62
|
+
const verifyAttestation = attestation
|
|
63
|
+
? createAttestationGuard(attestation)
|
|
64
|
+
: undefined;
|
|
62
65
|
const handlers = {};
|
|
63
66
|
const intentCount = {};
|
|
64
67
|
for (const mi of methods) {
|
|
65
68
|
intentCount[mi.intent] = (intentCount[mi.intent] ?? 0) + 1;
|
|
69
|
+
if (mi.onPaymentSuccess) {
|
|
70
|
+
serverEvents.on('payment.success', (async (ctx) => {
|
|
71
|
+
if (ctx.method.name === mi.name && ctx.method.intent === mi.intent) {
|
|
72
|
+
await mi.onPaymentSuccess({
|
|
73
|
+
input: ctx.input,
|
|
74
|
+
receipt: ctx.receipt,
|
|
75
|
+
request: ctx.request,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
66
80
|
}
|
|
67
81
|
assertNoReservedMppxKeys(methods);
|
|
68
82
|
for (const mi of methods) {
|
|
69
83
|
const fn = createMethodFn({
|
|
84
|
+
...(verifyAttestation && { attest: verifyAttestation }),
|
|
70
85
|
authorize: mi.authorize,
|
|
71
86
|
defaults: mi.defaults,
|
|
72
87
|
method: mi,
|
|
@@ -91,10 +106,27 @@ export function create(config) {
|
|
|
91
106
|
if (aliasKey)
|
|
92
107
|
handlers[aliasKey] = fn;
|
|
93
108
|
}
|
|
94
|
-
//
|
|
109
|
+
// Set shorthand intent key: single method gets direct handler,
|
|
110
|
+
// multiple methods get an implicit compose wrapper.
|
|
111
|
+
const processedIntents = new Set();
|
|
95
112
|
for (const mi of methods) {
|
|
96
|
-
if (
|
|
113
|
+
if (processedIntents.has(mi.intent))
|
|
114
|
+
continue;
|
|
115
|
+
processedIntents.add(mi.intent);
|
|
116
|
+
if (intentCount[mi.intent] === 1) {
|
|
97
117
|
handlers[mi.intent] = handlers[`${mi.name}/${mi.intent}`];
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const intentMethods = methods.filter((m) => m.intent === mi.intent);
|
|
121
|
+
handlers[mi.intent] = (options) => {
|
|
122
|
+
const configured = intentMethods.map((m) => {
|
|
123
|
+
const key = `${m.name}/${m.intent}`;
|
|
124
|
+
const handlerFn = handlers[key];
|
|
125
|
+
return handlerFn(options);
|
|
126
|
+
});
|
|
127
|
+
return composeHandlers(configured, undefined, selectOffers);
|
|
128
|
+
};
|
|
129
|
+
}
|
|
98
130
|
}
|
|
99
131
|
// Build nested handlers: mppx.tempo.charge(...)
|
|
100
132
|
for (const mi of methods) {
|
|
@@ -123,7 +155,7 @@ export function create(config) {
|
|
|
123
155
|
const emitFailures = parameters.emitFailures === true;
|
|
124
156
|
const { method: credMethod, intent: credIntent } = credential.challenge;
|
|
125
157
|
const methodCandidates = methods.filter((m) => m.name === credMethod && m.intent === credIntent);
|
|
126
|
-
const mi =
|
|
158
|
+
const mi = methodCandidates[0];
|
|
127
159
|
const eventMethod = mi ?? { intent: credIntent, name: credMethod };
|
|
128
160
|
const emitStandalonePaymentFailed = async (failure) => {
|
|
129
161
|
if (!emitFailures)
|
|
@@ -316,7 +348,7 @@ export function create(config) {
|
|
|
316
348
|
throw new Error(`No handler for "${key}". Is this method in your methods array?`);
|
|
317
349
|
return handlerFn(options);
|
|
318
350
|
});
|
|
319
|
-
return
|
|
351
|
+
return composeHandlers(configured, undefined, selectOffers);
|
|
320
352
|
}
|
|
321
353
|
function onChallengeCreated(handler) {
|
|
322
354
|
return serverEvents.on('challenge.created', handler);
|
|
@@ -351,7 +383,7 @@ function assertSecretKey(secretKey) {
|
|
|
351
383
|
}
|
|
352
384
|
// biome-ignore lint/correctness/noUnusedVariables: _
|
|
353
385
|
function createMethodFn(parameters) {
|
|
354
|
-
const { authorize, defaults, events, method, preflight, realm, respond, secretKey, broadcast, stableBinding, transport, validate, verify, } = parameters;
|
|
386
|
+
const { attest, authorize, defaults, events, method, preflight, realm, respond, secretKey, broadcast, stableBinding, transport, validate, verify, } = parameters;
|
|
355
387
|
return (options) => {
|
|
356
388
|
const { description, meta, scope, ...rest } = options;
|
|
357
389
|
const staticMeta = Scope.merge({ meta, scope });
|
|
@@ -366,7 +398,18 @@ function createMethodFn(parameters) {
|
|
|
366
398
|
_canonicalRequest: PaymentRequest.fromMethod(method, { ...defaults, ...rest }),
|
|
367
399
|
_stableBinding: stableBinding,
|
|
368
400
|
};
|
|
401
|
+
Object.defineProperty(internal, '_method', { value: method });
|
|
369
402
|
const handler = async (input) => {
|
|
403
|
+
if (attest && input instanceof globalThis.Request) {
|
|
404
|
+
const response = await attest(input);
|
|
405
|
+
if (response)
|
|
406
|
+
return {
|
|
407
|
+
status: 200,
|
|
408
|
+
withReceipt() {
|
|
409
|
+
return response;
|
|
410
|
+
},
|
|
411
|
+
};
|
|
412
|
+
}
|
|
370
413
|
if (method.html && isServiceWorkerRequest(input))
|
|
371
414
|
return {
|
|
372
415
|
status: 402,
|
|
@@ -827,6 +870,33 @@ function createChallengeFn(parameters) {
|
|
|
827
870
|
}).then((resolved) => resolved.challenge);
|
|
828
871
|
};
|
|
829
872
|
}
|
|
873
|
+
function createAttestationGuard(verifiers) {
|
|
874
|
+
const entries = Object.entries(verifiers);
|
|
875
|
+
if (entries.length === 0)
|
|
876
|
+
throw new TypeError('Mppx server attestation must configure at least one verifier.');
|
|
877
|
+
const cache = new WeakMap();
|
|
878
|
+
return (request) => {
|
|
879
|
+
const cached = cache.get(request);
|
|
880
|
+
if (cached)
|
|
881
|
+
return cached;
|
|
882
|
+
const verification = AttestationServer.verify(request, verifiers).then((outcomes) => {
|
|
883
|
+
for (const [name, outcome] of Object.entries(outcomes))
|
|
884
|
+
if (outcome.status === 'invalid')
|
|
885
|
+
return new globalThis.Response(`Request attestation "${name}" is invalid: ${outcome.reason}`, { status: 401 });
|
|
886
|
+
for (const [name, outcome] of Object.entries(outcomes)) {
|
|
887
|
+
if (outcome.status === 'verified')
|
|
888
|
+
continue;
|
|
889
|
+
const reason = outcome.status === 'unverified'
|
|
890
|
+
? `Request attestation "${name}" could not be verified: ${outcome.reason}`
|
|
891
|
+
: `Request attestation "${name}" is required.`;
|
|
892
|
+
return new globalThis.Response(reason, { status: 403 });
|
|
893
|
+
}
|
|
894
|
+
return undefined;
|
|
895
|
+
});
|
|
896
|
+
cache.set(request, verification);
|
|
897
|
+
return verification;
|
|
898
|
+
};
|
|
899
|
+
}
|
|
830
900
|
function createServerEventDispatcher() {
|
|
831
901
|
const handlers = {
|
|
832
902
|
'*': new Set(),
|
|
@@ -1303,9 +1373,20 @@ export function compose(...args) {
|
|
|
1303
1373
|
})()
|
|
1304
1374
|
: undefined;
|
|
1305
1375
|
const handlers = (composeOptions ? args.slice(0, -1) : args);
|
|
1376
|
+
return composeHandlers(handlers, composeOptions);
|
|
1377
|
+
}
|
|
1378
|
+
function composeHandlers(handlers, composeOptions, selectOffers) {
|
|
1306
1379
|
if (handlers.length === 0)
|
|
1307
1380
|
throw new Error('compose() requires at least one handler');
|
|
1308
|
-
|
|
1381
|
+
const offerSelector = selectOffers;
|
|
1382
|
+
const offerEntries = handlers.map((handler) => {
|
|
1383
|
+
const internal = handler._internal;
|
|
1384
|
+
const offer = internal && !isComposedHandlerMetadata(internal) ? createServerOffer(internal) : undefined;
|
|
1385
|
+
const method = internal && !isComposedHandlerMetadata(internal) ? internal._method : undefined;
|
|
1386
|
+
return { handler, method, offer };
|
|
1387
|
+
});
|
|
1388
|
+
const hasOfferPolicy = offerSelector !== undefined || offerEntries.some(({ method }) => method?.canOffer !== undefined);
|
|
1389
|
+
const composed = async (input) => {
|
|
1309
1390
|
// Serve service worker for html-enabled compose
|
|
1310
1391
|
if (new URL(input.url).searchParams.has(Html.params.serviceWorker)) {
|
|
1311
1392
|
const hasHtml = handlers.some((h) => h._internal?.html);
|
|
@@ -1337,14 +1418,13 @@ export function compose(...args) {
|
|
|
1337
1418
|
const { method: credMethod, intent: credIntent } = credential.challenge;
|
|
1338
1419
|
const credReq = credential.challenge.request;
|
|
1339
1420
|
// Filter by name+intent, then narrow by comparing stable request fields
|
|
1340
|
-
// from the echoed challenge against each handler's
|
|
1421
|
+
// from the echoed challenge against each handler's configured offers.
|
|
1341
1422
|
// Uses the schema-parsed canonical form (not raw options) so that
|
|
1342
1423
|
// transformed fields (e.g. amount with decimals) match correctly.
|
|
1343
1424
|
// Also checks inside methodDetails for fields moved there by transforms.
|
|
1344
|
-
const candidates = handlers.filter((
|
|
1425
|
+
const candidates = handlers.filter((handler) => getConfiguredOffers(handler).some((internal) => {
|
|
1345
1426
|
try {
|
|
1346
|
-
|
|
1347
|
-
if (!internal || internal.name !== credMethod || internal.intent !== credIntent)
|
|
1427
|
+
if (internal.name !== credMethod || internal.intent !== credIntent)
|
|
1348
1428
|
return false;
|
|
1349
1429
|
const mismatch = internal._stableBinding
|
|
1350
1430
|
? getRequestBindingMismatch(getStableBinding(internal._canonicalRequest, internal._stableBinding), getStableBinding(credReq, internal._stableBinding))
|
|
@@ -1354,23 +1434,26 @@ export function compose(...args) {
|
|
|
1354
1434
|
catch {
|
|
1355
1435
|
return false;
|
|
1356
1436
|
}
|
|
1357
|
-
});
|
|
1437
|
+
}));
|
|
1358
1438
|
const match = candidates[0] ??
|
|
1359
|
-
handlers.find((
|
|
1360
|
-
const meta = h._internal;
|
|
1361
|
-
return meta?.name === credMethod && meta?.intent === credIntent;
|
|
1362
|
-
});
|
|
1439
|
+
handlers.find((handler) => getConfiguredOffers(handler).some((internal) => internal.name === credMethod && internal.intent === credIntent));
|
|
1363
1440
|
if (match)
|
|
1364
1441
|
return match(input);
|
|
1365
1442
|
}
|
|
1366
|
-
//
|
|
1367
|
-
//
|
|
1368
|
-
return handlers[0](input);
|
|
1443
|
+
// Unrecognized or malformed credentials still use the currently eligible
|
|
1444
|
+
// offer set before the first handler issues its rejection challenge.
|
|
1369
1445
|
}
|
|
1446
|
+
const selectedHandlers = hasOfferPolicy
|
|
1447
|
+
? await selectOfferHandlers({
|
|
1448
|
+
entries: offerEntries,
|
|
1449
|
+
input,
|
|
1450
|
+
selectOffers: offerSelector,
|
|
1451
|
+
})
|
|
1452
|
+
: handlers;
|
|
1370
1453
|
// No credential — evaluate handlers sequentially so authorize()/renewal hooks
|
|
1371
1454
|
// can safely claim the request without racing each other.
|
|
1372
1455
|
const results = [];
|
|
1373
|
-
for (const handler of
|
|
1456
|
+
for (const handler of selectedHandlers) {
|
|
1374
1457
|
const result = await handler(input);
|
|
1375
1458
|
if (result.status === 200)
|
|
1376
1459
|
return result;
|
|
@@ -1378,7 +1461,7 @@ export function compose(...args) {
|
|
|
1378
1461
|
}
|
|
1379
1462
|
const challengeEntries = (() => {
|
|
1380
1463
|
const entries = [];
|
|
1381
|
-
for (let i = 0; i <
|
|
1464
|
+
for (let i = 0; i < selectedHandlers.length; i++) {
|
|
1382
1465
|
const result = results[i];
|
|
1383
1466
|
if (result?.status !== 402)
|
|
1384
1467
|
continue;
|
|
@@ -1387,7 +1470,7 @@ export function compose(...args) {
|
|
|
1387
1470
|
if (!wwwAuth)
|
|
1388
1471
|
continue;
|
|
1389
1472
|
entries.push({
|
|
1390
|
-
handler:
|
|
1473
|
+
handler: selectedHandlers[i],
|
|
1391
1474
|
challenge: Challenge.deserialize(wwwAuth),
|
|
1392
1475
|
result,
|
|
1393
1476
|
});
|
|
@@ -1488,6 +1571,101 @@ export function compose(...args) {
|
|
|
1488
1571
|
challenge: new Response(body, { status: 402, headers: mergedHeaders }),
|
|
1489
1572
|
};
|
|
1490
1573
|
};
|
|
1574
|
+
const offers = handlers.flatMap(getConfiguredOffers);
|
|
1575
|
+
if (offers.length > 0)
|
|
1576
|
+
composed._internal = { offers };
|
|
1577
|
+
return composed;
|
|
1578
|
+
}
|
|
1579
|
+
/** Returns the flattened configured offers accepted by a handler. */
|
|
1580
|
+
function getConfiguredOffers(handler) {
|
|
1581
|
+
const internal = handler._internal;
|
|
1582
|
+
if (!internal)
|
|
1583
|
+
return [];
|
|
1584
|
+
if (isComposedHandlerMetadata(internal))
|
|
1585
|
+
return internal.offers;
|
|
1586
|
+
return [internal];
|
|
1587
|
+
}
|
|
1588
|
+
function isComposedHandlerMetadata(internal) {
|
|
1589
|
+
return 'offers' in internal && !('_canonicalRequest' in internal);
|
|
1590
|
+
}
|
|
1591
|
+
function createServerOffer(internal) {
|
|
1592
|
+
return Object.freeze({
|
|
1593
|
+
key: `${internal.name}/${internal.intent}`,
|
|
1594
|
+
method: Object.freeze({
|
|
1595
|
+
...(internal._method.alias ? { alias: internal._method.alias } : {}),
|
|
1596
|
+
intent: internal.intent,
|
|
1597
|
+
name: internal.name,
|
|
1598
|
+
}),
|
|
1599
|
+
request: immutableSnapshot(internal._canonicalRequest),
|
|
1600
|
+
});
|
|
1601
|
+
}
|
|
1602
|
+
/** Applies and validates the server-level offer selection policy. */
|
|
1603
|
+
async function selectOfferHandlers(parameters) {
|
|
1604
|
+
const { entries, input, selectOffers } = parameters;
|
|
1605
|
+
const eligibleEntries = [];
|
|
1606
|
+
for (const entry of entries) {
|
|
1607
|
+
const canOffer = entry.method?.canOffer;
|
|
1608
|
+
if (canOffer) {
|
|
1609
|
+
const approved = await canOffer({
|
|
1610
|
+
input: cloneOfferInput(input),
|
|
1611
|
+
request: entry.offer.request,
|
|
1612
|
+
});
|
|
1613
|
+
if (typeof approved !== 'boolean')
|
|
1614
|
+
throw new Error('canOffer() must return a boolean');
|
|
1615
|
+
if (!approved)
|
|
1616
|
+
continue;
|
|
1617
|
+
}
|
|
1618
|
+
eligibleEntries.push(entry);
|
|
1619
|
+
}
|
|
1620
|
+
if (eligibleEntries.length === 0)
|
|
1621
|
+
throw new Error('No payment offers are available for this request');
|
|
1622
|
+
if (!selectOffers)
|
|
1623
|
+
return eligibleEntries.map(({ handler }) => handler);
|
|
1624
|
+
const offers = eligibleEntries.map(({ offer }) => {
|
|
1625
|
+
if (!offer)
|
|
1626
|
+
throw new Error('selectOffers() can only select configured payment offers');
|
|
1627
|
+
return offer;
|
|
1628
|
+
});
|
|
1629
|
+
const selected = await selectOffers(Object.freeze(offers), Object.freeze({ request: cloneOfferInput(input) }));
|
|
1630
|
+
if (!Array.isArray(selected))
|
|
1631
|
+
throw new Error('selectOffers() must return an array of offers');
|
|
1632
|
+
if (selected.length === 0)
|
|
1633
|
+
throw new Error('selectOffers() must select at least one offer');
|
|
1634
|
+
let previousIndex = -1;
|
|
1635
|
+
const selectedHandlers = selected.map((offer) => {
|
|
1636
|
+
const index = offers.indexOf(offer);
|
|
1637
|
+
if (index === -1)
|
|
1638
|
+
throw new Error('selectOffers() must return only offers from its input array');
|
|
1639
|
+
if (index <= previousIndex)
|
|
1640
|
+
throw new Error('selectOffers() must preserve offer order and must not return duplicates');
|
|
1641
|
+
previousIndex = index;
|
|
1642
|
+
return eligibleEntries[index].handler;
|
|
1643
|
+
});
|
|
1644
|
+
return selectedHandlers;
|
|
1645
|
+
}
|
|
1646
|
+
/** Clones a request for offer hooks, falling back to a bodyless metadata copy. */
|
|
1647
|
+
function cloneOfferInput(input) {
|
|
1648
|
+
try {
|
|
1649
|
+
return input.clone();
|
|
1650
|
+
}
|
|
1651
|
+
catch {
|
|
1652
|
+
return new globalThis.Request(input.url, {
|
|
1653
|
+
headers: new Headers(input.headers),
|
|
1654
|
+
method: input.method,
|
|
1655
|
+
signal: input.signal,
|
|
1656
|
+
});
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
/** Clones and recursively freezes protocol data exposed to offer hooks. */
|
|
1660
|
+
function immutableSnapshot(value) {
|
|
1661
|
+
return deepFreeze(structuredClone(value));
|
|
1662
|
+
}
|
|
1663
|
+
function deepFreeze(value) {
|
|
1664
|
+
if (!value || typeof value !== 'object' || Object.isFrozen(value))
|
|
1665
|
+
return value;
|
|
1666
|
+
for (const nested of Object.values(value))
|
|
1667
|
+
deepFreeze(nested);
|
|
1668
|
+
return Object.freeze(value);
|
|
1491
1669
|
}
|
|
1492
1670
|
function mergeX402PaymentRequiredHeaders(values) {
|
|
1493
1671
|
if (values.length === 0)
|