mppx 0.6.31 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +9 -7
- package/dist/Challenge.js.map +1 -1
- package/dist/Constants.d.ts +46 -0
- package/dist/Constants.d.ts.map +1 -0
- package/dist/Constants.js +46 -0
- package/dist/Constants.js.map +1 -0
- package/dist/Credential.d.ts.map +1 -1
- package/dist/Credential.js +5 -4
- package/dist/Credential.js.map +1 -1
- package/dist/Method.d.ts +32 -4
- package/dist/Method.d.ts.map +1 -1
- package/dist/Method.js +5 -2
- package/dist/Method.js.map +1 -1
- package/dist/Receipt.d.ts.map +1 -1
- package/dist/Receipt.js +3 -2
- package/dist/Receipt.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +19 -11
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/plugins/tempo.d.ts.map +1 -1
- package/dist/cli/plugins/tempo.js +17 -6
- package/dist/cli/plugins/tempo.js.map +1 -1
- package/dist/cli/utils.d.ts +5 -0
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +10 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/client/Methods.d.ts +5 -2
- package/dist/client/Methods.d.ts.map +1 -1
- package/dist/client/Methods.js +5 -2
- package/dist/client/Methods.js.map +1 -1
- package/dist/client/Transport.d.ts.map +1 -1
- package/dist/client/Transport.js +4 -5
- package/dist/client/Transport.js.map +1 -1
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal/Fetch.d.ts.map +1 -1
- package/dist/client/internal/Fetch.js +14 -6
- package/dist/client/internal/Fetch.js.map +1 -1
- package/dist/evm/server/Methods.d.ts +1 -1
- package/dist/evm/server/Methods.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/AcceptPayment.d.ts +3 -0
- package/dist/internal/AcceptPayment.d.ts.map +1 -1
- package/dist/internal/AcceptPayment.js +15 -11
- package/dist/internal/AcceptPayment.js.map +1 -1
- package/dist/mcp-sdk/client/McpClient.d.ts +12 -5
- package/dist/mcp-sdk/client/McpClient.d.ts.map +1 -1
- package/dist/mcp-sdk/client/McpClient.js +55 -42
- package/dist/mcp-sdk/client/McpClient.js.map +1 -1
- package/dist/server/Mppx.d.ts +11 -3
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +76 -27
- package/dist/server/Mppx.js.map +1 -1
- package/dist/server/Response.d.ts.map +1 -1
- package/dist/server/Response.js +2 -1
- package/dist/server/Response.js.map +1 -1
- package/dist/server/Transport.d.ts.map +1 -1
- package/dist/server/Transport.js +4 -3
- package/dist/server/Transport.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/stripe/client/Charge.d.ts +1 -1
- package/dist/stripe/client/Charge.d.ts.map +1 -1
- package/dist/stripe/client/Charge.js +3 -1
- package/dist/stripe/client/Charge.js.map +1 -1
- package/dist/stripe/server/Charge.d.ts +1 -1
- package/dist/stripe/server/Charge.d.ts.map +1 -1
- package/dist/stripe/server/Charge.js +9 -2
- package/dist/stripe/server/Charge.js.map +1 -1
- package/dist/stripe/server/Methods.d.ts +1 -1
- package/dist/stripe/server/Methods.d.ts.map +1 -1
- 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/tempo/Methods.d.ts +18 -0
- package/dist/tempo/Methods.d.ts.map +1 -1
- package/dist/tempo/Methods.js +16 -1
- package/dist/tempo/Methods.js.map +1 -1
- package/dist/tempo/client/Charge.d.ts +6 -0
- package/dist/tempo/client/Charge.d.ts.map +1 -1
- package/dist/tempo/client/Charge.js +9 -2
- package/dist/tempo/client/Charge.js.map +1 -1
- package/dist/tempo/client/Methods.d.ts +36 -7
- package/dist/tempo/client/Methods.d.ts.map +1 -1
- package/dist/tempo/client/Methods.js +12 -5
- package/dist/tempo/client/Methods.js.map +1 -1
- package/dist/tempo/client/index.d.ts +7 -4
- package/dist/tempo/client/index.d.ts.map +1 -1
- package/dist/tempo/client/index.js +5 -3
- package/dist/tempo/client/index.js.map +1 -1
- package/dist/tempo/index.d.ts +1 -0
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +1 -0
- package/dist/tempo/index.js.map +1 -1
- package/dist/tempo/internal/fee-payer.d.ts +21 -1
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js +109 -4
- package/dist/tempo/internal/fee-payer.js.map +1 -1
- package/dist/tempo/{client → legacy/client}/ChannelOps.d.ts +19 -6
- package/dist/tempo/legacy/client/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/{client → legacy/client}/ChannelOps.js +9 -3
- package/dist/tempo/legacy/client/ChannelOps.js.map +1 -0
- package/dist/tempo/{client → legacy/client}/Session.d.ts +23 -4
- package/dist/tempo/legacy/client/Session.d.ts.map +1 -0
- package/dist/tempo/{client → legacy/client}/Session.js +14 -7
- package/dist/tempo/legacy/client/Session.js.map +1 -0
- package/dist/tempo/{client → legacy/client}/SessionManager.d.ts +20 -5
- package/dist/tempo/legacy/client/SessionManager.d.ts.map +1 -0
- package/dist/tempo/{client → legacy/client}/SessionManager.js +20 -16
- package/dist/tempo/legacy/client/SessionManager.js.map +1 -0
- package/dist/tempo/legacy/client/index.d.ts +7 -0
- package/dist/tempo/legacy/client/index.d.ts.map +1 -0
- package/dist/tempo/legacy/client/index.js +5 -0
- package/dist/tempo/legacy/client/index.js.map +1 -0
- package/dist/tempo/legacy/index.d.ts +7 -0
- package/dist/tempo/legacy/index.d.ts.map +1 -0
- package/dist/tempo/legacy/index.js +7 -0
- package/dist/tempo/legacy/index.js.map +1 -0
- package/dist/tempo/{server → legacy/server}/Session.d.ts +28 -11
- package/dist/tempo/legacy/server/Session.d.ts.map +1 -0
- package/dist/tempo/{server → legacy/server}/Session.js +12 -10
- package/dist/tempo/legacy/server/Session.js.map +1 -0
- package/dist/tempo/legacy/server/index.d.ts +5 -0
- package/dist/tempo/legacy/server/index.d.ts.map +1 -0
- package/dist/tempo/legacy/server/index.js +5 -0
- package/dist/tempo/legacy/server/index.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/Chain.d.ts +30 -23
- package/dist/tempo/legacy/session/Chain.d.ts.map +1 -0
- package/dist/tempo/{session → legacy/session}/Chain.js +12 -11
- package/dist/tempo/legacy/session/Chain.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/Channel.d.ts +1 -0
- package/dist/tempo/legacy/session/Channel.d.ts.map +1 -0
- package/dist/tempo/legacy/session/Channel.js.map +1 -0
- package/dist/tempo/legacy/session/ChannelStore.d.ts +22 -0
- package/dist/tempo/legacy/session/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/legacy/session/ChannelStore.js +6 -0
- package/dist/tempo/legacy/session/ChannelStore.js.map +1 -0
- package/dist/tempo/legacy/session/Types.d.ts +73 -0
- package/dist/tempo/legacy/session/Types.d.ts.map +1 -0
- package/dist/tempo/legacy/session/Types.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/Voucher.d.ts +4 -4
- package/dist/tempo/legacy/session/Voucher.d.ts.map +1 -0
- package/dist/tempo/{session → legacy/session}/Voucher.js +1 -1
- package/dist/tempo/legacy/session/Voucher.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts +1 -0
- package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts.map +1 -1
- package/dist/tempo/{session → legacy/session}/escrow.abi.js +1 -0
- package/dist/tempo/legacy/session/escrow.abi.js.map +1 -0
- package/dist/tempo/legacy/session/index.d.ts +9 -0
- package/dist/tempo/legacy/session/index.d.ts.map +1 -0
- package/dist/tempo/legacy/session/index.js +9 -0
- package/dist/tempo/legacy/session/index.js.map +1 -0
- package/dist/tempo/server/Charge.d.ts +1 -1
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +13 -16
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +63 -6
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js +36 -8
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Subscription.d.ts +1 -1
- package/dist/tempo/server/Subscription.d.ts.map +1 -1
- package/dist/tempo/server/index.d.ts +6 -5
- package/dist/tempo/server/index.d.ts.map +1 -1
- package/dist/tempo/server/index.js +5 -5
- 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/request-body.d.ts +7 -2
- package/dist/tempo/server/internal/request-body.d.ts.map +1 -1
- package/dist/tempo/server/internal/request-body.js +20 -3
- package/dist/tempo/server/internal/request-body.js.map +1 -1
- package/dist/tempo/server/internal/transport.d.ts +8 -4
- package/dist/tempo/server/internal/transport.d.ts.map +1 -1
- package/dist/tempo/server/internal/transport.js +8 -7
- package/dist/tempo/server/internal/transport.js.map +1 -1
- package/dist/tempo/session/Snapshot.d.ts +32 -0
- package/dist/tempo/session/Snapshot.d.ts.map +1 -0
- package/dist/tempo/session/Snapshot.js +37 -0
- package/dist/tempo/session/Snapshot.js.map +1 -0
- package/dist/tempo/session/client/ChannelOps.d.ts +82 -0
- package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/session/client/ChannelOps.js +204 -0
- package/dist/tempo/session/client/ChannelOps.js.map +1 -0
- package/dist/tempo/session/client/CredentialState.d.ts +262 -0
- package/dist/tempo/session/client/CredentialState.d.ts.map +1 -0
- package/dist/tempo/session/client/CredentialState.js +417 -0
- package/dist/tempo/session/client/CredentialState.js.map +1 -0
- package/dist/tempo/session/client/ReceiptCoordinator.d.ts +26 -0
- package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +1 -0
- package/dist/tempo/session/client/ReceiptCoordinator.js +61 -0
- package/dist/tempo/session/client/ReceiptCoordinator.js.map +1 -0
- package/dist/tempo/session/client/Runtime.d.ts +464 -0
- package/dist/tempo/session/client/Runtime.d.ts.map +1 -0
- package/dist/tempo/session/client/Runtime.js +499 -0
- package/dist/tempo/session/client/Runtime.js.map +1 -0
- package/dist/tempo/session/client/Session.d.ts +132 -0
- package/dist/tempo/session/client/Session.d.ts.map +1 -0
- package/dist/tempo/session/client/Session.js +55 -0
- package/dist/tempo/session/client/Session.js.map +1 -0
- package/dist/tempo/session/client/SessionManager.d.ts +120 -0
- package/dist/tempo/session/client/SessionManager.d.ts.map +1 -0
- package/dist/tempo/session/client/SessionManager.js +627 -0
- package/dist/tempo/session/client/SessionManager.js.map +1 -0
- package/dist/tempo/session/client/Transports.d.ts +449 -0
- package/dist/tempo/session/client/Transports.d.ts.map +1 -0
- package/dist/tempo/session/client/Transports.js +721 -0
- package/dist/tempo/session/client/Transports.js.map +1 -0
- package/dist/tempo/session/client/index.d.ts +12 -0
- package/dist/tempo/session/client/index.d.ts.map +1 -0
- package/dist/tempo/session/client/index.js +5 -0
- package/dist/tempo/session/client/index.js.map +1 -0
- package/dist/tempo/session/index.d.ts +7 -8
- package/dist/tempo/session/index.d.ts.map +1 -1
- package/dist/tempo/session/index.js +7 -8
- package/dist/tempo/session/index.js.map +1 -1
- package/dist/tempo/session/precompile/Chain.d.ts +319 -0
- package/dist/tempo/session/precompile/Chain.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Chain.js +492 -0
- package/dist/tempo/session/precompile/Chain.js.map +1 -0
- package/dist/tempo/session/precompile/Channel.d.ts +46 -0
- package/dist/tempo/session/precompile/Channel.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Channel.js +56 -0
- package/dist/tempo/session/precompile/Channel.js.map +1 -0
- package/dist/tempo/session/precompile/Protocol.d.ts +308 -0
- package/dist/tempo/session/precompile/Protocol.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Protocol.js +264 -0
- package/dist/tempo/session/precompile/Protocol.js.map +1 -0
- package/dist/tempo/session/precompile/Voucher.d.ts +40 -0
- package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Voucher.js +126 -0
- package/dist/tempo/session/precompile/Voucher.js.map +1 -0
- package/dist/tempo/session/precompile/escrow.abi.d.ts +522 -0
- package/dist/tempo/session/precompile/escrow.abi.d.ts.map +1 -0
- package/dist/tempo/session/precompile/escrow.abi.js +224 -0
- package/dist/tempo/session/precompile/escrow.abi.js.map +1 -0
- package/dist/tempo/session/precompile/index.d.ts +24 -0
- package/dist/tempo/session/precompile/index.d.ts.map +1 -0
- package/dist/tempo/session/precompile/index.js +22 -0
- package/dist/tempo/session/precompile/index.js.map +1 -0
- package/dist/tempo/session/server/ChannelOps.d.ts +56 -0
- package/dist/tempo/session/server/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/session/server/ChannelOps.js +91 -0
- package/dist/tempo/session/server/ChannelOps.js.map +1 -0
- package/dist/tempo/session/server/ChannelStore.d.ts +347 -0
- package/dist/tempo/session/server/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/session/server/ChannelStore.js +404 -0
- package/dist/tempo/session/server/ChannelStore.js.map +1 -0
- package/dist/tempo/session/server/CredentialVerification.d.ts +85 -0
- package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -0
- package/dist/tempo/session/server/CredentialVerification.js +494 -0
- package/dist/tempo/session/server/CredentialVerification.js.map +1 -0
- package/dist/tempo/session/server/MeteredStream.d.ts +40 -0
- package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -0
- package/dist/tempo/session/server/MeteredStream.js +42 -0
- package/dist/tempo/session/server/MeteredStream.js.map +1 -0
- package/dist/tempo/session/server/RequestState.d.ts +208 -0
- package/dist/tempo/session/server/RequestState.d.ts.map +1 -0
- package/dist/tempo/session/server/RequestState.js +252 -0
- package/dist/tempo/session/server/RequestState.js.map +1 -0
- package/dist/tempo/session/server/Session.d.ts +169 -0
- package/dist/tempo/session/server/Session.d.ts.map +1 -0
- package/dist/tempo/session/server/Session.js +351 -0
- package/dist/tempo/session/server/Session.js.map +1 -0
- package/dist/tempo/session/server/Settlement.d.ts +185 -0
- package/dist/tempo/session/server/Settlement.d.ts.map +1 -0
- package/dist/tempo/session/server/Settlement.js +250 -0
- package/dist/tempo/session/server/Settlement.js.map +1 -0
- package/dist/tempo/session/{Sse.d.ts → server/Sse.d.ts} +9 -56
- package/dist/tempo/session/server/Sse.d.ts.map +1 -0
- package/dist/tempo/session/server/Sse.js +184 -0
- package/dist/tempo/session/server/Sse.js.map +1 -0
- package/dist/tempo/session/server/Transports.d.ts +89 -0
- package/dist/tempo/session/server/Transports.d.ts.map +1 -0
- package/dist/tempo/session/server/Transports.js +149 -0
- package/dist/tempo/session/server/Transports.js.map +1 -0
- package/dist/tempo/session/server/Ws.d.ts +48 -0
- package/dist/tempo/session/server/Ws.d.ts.map +1 -0
- package/dist/tempo/session/server/Ws.js +244 -0
- package/dist/tempo/session/server/Ws.js.map +1 -0
- package/dist/tempo/session/server/index.d.ts +4 -0
- package/dist/tempo/session/server/index.d.ts.map +1 -0
- package/dist/tempo/session/server/index.js +2 -0
- package/dist/tempo/session/server/index.js.map +1 -0
- package/package.json +6 -1
- package/src/Challenge.ts +9 -7
- package/src/Constants.ts +58 -0
- package/src/Credential.ts +5 -4
- package/src/Method.ts +46 -5
- package/src/Receipt.ts +3 -2
- package/src/cli/cli.test.ts +23 -28
- package/src/cli/cli.ts +23 -10
- package/src/cli/mcp.test.ts +21 -7
- package/src/cli/plugins/tempo.ts +21 -8
- package/src/cli/utils.test.ts +25 -1
- package/src/cli/utils.ts +10 -0
- package/src/client/Methods.ts +5 -2
- package/src/client/Mppx.test-d.ts +10 -0
- package/src/client/Mppx.test.ts +75 -0
- package/src/client/Transport.ts +4 -5
- package/src/client/index.ts +11 -1
- package/src/client/internal/Fetch.test.ts +29 -4
- package/src/client/internal/Fetch.ts +17 -5
- package/src/env.d.ts +1 -1
- package/src/index.ts +1 -0
- package/src/internal/AcceptPayment.test.ts +61 -0
- package/src/internal/AcceptPayment.ts +21 -14
- package/src/mcp-sdk/client/McpClient.integration.test.ts +8 -7
- package/src/mcp-sdk/client/McpClient.test-d.ts +7 -0
- package/src/mcp-sdk/client/McpClient.ts +99 -67
- package/src/mcp-sdk/client/McpClient.unit.test.ts +131 -0
- package/src/middlewares/elysia.test.ts +8 -4
- package/src/middlewares/express.test.ts +8 -4
- package/src/middlewares/hono.test.ts +4 -4
- package/src/middlewares/nextjs.test.ts +8 -4
- package/src/proxy/Proxy.test.ts +8 -8
- package/src/server/Mppx.test-d.ts +54 -0
- package/src/server/Mppx.test.ts +200 -7
- package/src/server/Mppx.ts +487 -406
- package/src/server/Response.ts +2 -1
- package/src/server/Transport.ts +4 -3
- package/src/server/index.ts +1 -0
- package/src/stripe/client/Charge.test.ts +20 -5
- package/src/stripe/client/Charge.ts +6 -2
- package/src/stripe/server/Charge.test.ts +114 -1
- package/src/stripe/server/Charge.ts +13 -2
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/tempo/AccessKeyAuthorization.test.ts +4 -94
- package/src/tempo/Methods.test.ts +45 -17
- package/src/tempo/Methods.ts +22 -0
- package/src/tempo/PublicExports.test-d.ts +105 -0
- package/src/tempo/client/Charge.test.ts +85 -0
- package/src/tempo/client/Charge.ts +19 -2
- package/src/tempo/client/Methods.ts +18 -6
- package/src/tempo/client/index.ts +15 -4
- package/src/tempo/index.ts +1 -0
- package/src/tempo/internal/fee-payer.test.ts +241 -17
- package/src/tempo/internal/fee-payer.ts +150 -4
- package/src/tempo/internal/fee-token.test.ts +14 -9
- package/src/tempo/legacy/AccessKeyAuthorization.test.ts +162 -0
- package/src/tempo/legacy/README.md +9 -0
- package/src/tempo/{client → legacy/client}/ChannelOps.test.ts +6 -7
- package/src/tempo/{client → legacy/client}/ChannelOps.ts +22 -9
- package/src/tempo/{client → legacy/client}/Session.test.ts +51 -9
- package/src/tempo/{client → legacy/client}/Session.ts +25 -11
- package/src/tempo/{client → legacy/client}/SessionManager.test.ts +81 -9
- package/src/tempo/{client → legacy/client}/SessionManager.ts +41 -20
- package/src/tempo/legacy/client/index.ts +6 -0
- package/src/tempo/legacy/index.ts +6 -0
- package/src/tempo/{server → legacy/server}/Session.test.ts +45 -45
- package/src/tempo/{server → legacy/server}/Session.ts +32 -23
- package/src/tempo/legacy/server/index.ts +4 -0
- package/src/tempo/{session → legacy/session}/Chain.test.ts +3 -4
- package/src/tempo/{session → legacy/session}/Chain.ts +94 -63
- package/src/tempo/{session → legacy/session}/Channel.ts +1 -0
- package/src/tempo/legacy/session/ChannelStore.test.ts +58 -0
- package/src/tempo/legacy/session/ChannelStore.ts +39 -0
- package/src/tempo/legacy/session/Types.ts +91 -0
- package/src/tempo/{session → legacy/session}/Voucher.ts +12 -8
- package/src/tempo/{session → legacy/session}/escrow.abi.ts +1 -0
- package/src/tempo/legacy/session/index.ts +8 -0
- package/src/tempo/server/AtomicStore.test-d.ts +16 -11
- package/src/tempo/server/Charge.test.ts +92 -14
- package/src/tempo/server/Charge.ts +18 -16
- package/src/tempo/server/Methods.ts +54 -8
- package/src/tempo/server/Sse.test.ts +2 -2
- package/src/tempo/server/index.ts +6 -5
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/server/internal/request-body.test.ts +37 -4
- package/src/tempo/server/internal/request-body.ts +25 -6
- package/src/tempo/server/internal/transport.test.ts +4 -4
- package/src/tempo/server/internal/transport.ts +19 -10
- package/src/tempo/session/Snapshot.test.ts +41 -0
- package/src/tempo/session/Snapshot.ts +74 -0
- package/src/tempo/session/client/ChannelOps.test.ts +163 -0
- package/src/tempo/session/client/ChannelOps.ts +344 -0
- package/src/tempo/session/client/CredentialState.test.ts +645 -0
- package/src/tempo/session/client/CredentialState.ts +814 -0
- package/src/tempo/session/client/ReceiptCoordinator.ts +95 -0
- package/src/tempo/session/client/Runtime.test.ts +1092 -0
- package/src/tempo/session/client/Runtime.ts +986 -0
- package/src/tempo/session/client/Session.test.ts +734 -0
- package/src/tempo/session/client/Session.ts +97 -0
- package/src/tempo/session/client/SessionManager.test.ts +1308 -0
- package/src/tempo/session/client/SessionManager.ts +845 -0
- package/src/tempo/session/client/Transports.test.ts +837 -0
- package/src/tempo/session/client/Transports.ts +1292 -0
- package/src/tempo/session/client/index.ts +37 -0
- package/src/tempo/session/index.ts +7 -8
- package/src/tempo/session/precompile/Chain.integration.test.ts +321 -0
- package/src/tempo/session/precompile/Chain.test.ts +1258 -0
- package/src/tempo/session/precompile/Chain.ts +979 -0
- package/src/tempo/session/precompile/Channel.test.ts +138 -0
- package/src/tempo/session/precompile/Channel.ts +103 -0
- package/src/tempo/session/precompile/Protocol.test.ts +358 -0
- package/src/tempo/session/precompile/Protocol.ts +520 -0
- package/src/tempo/session/precompile/Voucher.test.ts +316 -0
- package/src/tempo/session/precompile/Voucher.ts +160 -0
- package/src/tempo/session/precompile/escrow.abi.ts +226 -0
- package/src/tempo/session/precompile/index.ts +33 -0
- package/src/tempo/session/server/ChannelOps.test.ts +129 -0
- package/src/tempo/session/server/ChannelOps.ts +157 -0
- package/src/tempo/session/{ChannelStore.test.ts → server/ChannelStore.test.ts} +536 -29
- package/src/tempo/session/server/ChannelStore.ts +835 -0
- package/src/tempo/session/server/CredentialVerification.test.ts +146 -0
- package/src/tempo/session/server/CredentialVerification.ts +710 -0
- package/src/tempo/session/server/MeteredStream.ts +88 -0
- package/src/tempo/session/server/RequestState.test.ts +531 -0
- package/src/tempo/session/server/RequestState.ts +499 -0
- package/src/tempo/session/server/Session.integration.test.ts +444 -0
- package/src/tempo/session/server/Session.test.ts +3253 -0
- package/src/tempo/session/server/Session.ts +543 -0
- package/src/tempo/session/server/Settlement.test.ts +242 -0
- package/src/tempo/session/server/Settlement.ts +470 -0
- package/src/tempo/session/{Sse.test.ts → server/Sse.test.ts} +37 -3
- package/src/tempo/session/server/Sse.ts +256 -0
- package/src/tempo/session/server/Transports.test.ts +346 -0
- package/src/tempo/session/server/Transports.ts +255 -0
- package/src/tempo/session/{Ws.test.ts → server/Ws.test.ts} +4 -4
- package/src/tempo/session/server/Ws.ts +384 -0
- package/src/tempo/session/server/index.ts +8 -0
- package/dist/tempo/client/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/client/ChannelOps.js.map +0 -1
- package/dist/tempo/client/Session.d.ts.map +0 -1
- package/dist/tempo/client/Session.js.map +0 -1
- package/dist/tempo/client/SessionManager.d.ts.map +0 -1
- package/dist/tempo/client/SessionManager.js.map +0 -1
- package/dist/tempo/server/Session.d.ts.map +0 -1
- package/dist/tempo/server/Session.js.map +0 -1
- package/dist/tempo/session/Chain.d.ts.map +0 -1
- package/dist/tempo/session/Chain.js.map +0 -1
- package/dist/tempo/session/Channel.d.ts.map +0 -1
- package/dist/tempo/session/Channel.js.map +0 -1
- package/dist/tempo/session/ChannelStore.d.ts +0 -117
- package/dist/tempo/session/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/session/ChannelStore.js +0 -172
- package/dist/tempo/session/ChannelStore.js.map +0 -1
- package/dist/tempo/session/Receipt.d.ts +0 -22
- package/dist/tempo/session/Receipt.d.ts.map +0 -1
- package/dist/tempo/session/Receipt.js +0 -34
- package/dist/tempo/session/Receipt.js.map +0 -1
- package/dist/tempo/session/Sse.d.ts.map +0 -1
- package/dist/tempo/session/Sse.js +0 -363
- package/dist/tempo/session/Sse.js.map +0 -1
- package/dist/tempo/session/Types.d.ts +0 -78
- package/dist/tempo/session/Types.d.ts.map +0 -1
- package/dist/tempo/session/Types.js.map +0 -1
- package/dist/tempo/session/Voucher.d.ts.map +0 -1
- package/dist/tempo/session/Voucher.js.map +0 -1
- package/dist/tempo/session/Ws.d.ts +0 -87
- package/dist/tempo/session/Ws.d.ts.map +0 -1
- package/dist/tempo/session/Ws.js +0 -443
- package/dist/tempo/session/Ws.js.map +0 -1
- package/dist/tempo/session/escrow.abi.js.map +0 -1
- package/src/tempo/session/ChannelStore.ts +0 -308
- package/src/tempo/session/Receipt.test.ts +0 -89
- package/src/tempo/session/Receipt.ts +0 -46
- package/src/tempo/session/Sse.ts +0 -462
- package/src/tempo/session/Types.ts +0 -86
- package/src/tempo/session/Ws.ts +0 -576
- /package/dist/tempo/{session → legacy/session}/Channel.js +0 -0
- /package/dist/tempo/{session → legacy/session}/Types.js +0 -0
- /package/src/tempo/{session → legacy/session}/Channel.test.ts +0 -0
- /package/src/tempo/{session → legacy/session}/Voucher.test.ts +0 -0
- /package/src/tempo/session/{Sse.fuzz.test.ts → server/Sse.fuzz.test.ts} +0 -0
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
import * as Credential from '../../Credential.js';
|
|
2
|
-
import { ChannelClosedError } from '../../Errors.js';
|
|
3
|
-
import { createSessionReceipt } from './Receipt.js';
|
|
4
|
-
/**
|
|
5
|
-
* Format a session receipt as a Server-Sent Event.
|
|
6
|
-
*
|
|
7
|
-
* Produces a valid SSE event string with `event: payment-receipt`
|
|
8
|
-
* and the receipt JSON as the `data` field.
|
|
9
|
-
*/
|
|
10
|
-
export function formatReceiptEvent(receipt) {
|
|
11
|
-
return `event: payment-receipt\ndata: ${JSON.stringify(receipt)}\n\n`;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Format a need-voucher event as a Server-Sent Event.
|
|
15
|
-
*
|
|
16
|
-
* Emitted when the channel balance is exhausted mid-stream.
|
|
17
|
-
* The client responds by sending a new voucher credential to
|
|
18
|
-
* any mppx-protected endpoint.
|
|
19
|
-
*/
|
|
20
|
-
export function formatNeedVoucherEvent(params) {
|
|
21
|
-
return `event: payment-need-voucher\ndata: ${JSON.stringify(params)}\n\n`;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Format an application message as SSE, preserving embedded newlines.
|
|
25
|
-
*
|
|
26
|
-
* SSE requires multi-line payloads to be emitted as separate `data:` fields.
|
|
27
|
-
*/
|
|
28
|
-
export function formatMessageEvent(value) {
|
|
29
|
-
const data = String(value)
|
|
30
|
-
.split('\n')
|
|
31
|
-
.map((line) => `data: ${line}`)
|
|
32
|
-
.join('\n');
|
|
33
|
-
return `event: message\n${data}\n\n`;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Parse a raw SSE event string into a typed event.
|
|
37
|
-
*
|
|
38
|
-
* Handles the three event types used by mppx streaming:
|
|
39
|
-
* - `message` (default / no event field) — application data
|
|
40
|
-
* - `payment-need-voucher` — balance exhausted, client should send voucher
|
|
41
|
-
* - `payment-receipt` — final receipt
|
|
42
|
-
*/
|
|
43
|
-
export function parseEvent(raw) {
|
|
44
|
-
let eventType = 'message';
|
|
45
|
-
const dataLines = [];
|
|
46
|
-
for (const line of raw.split('\n')) {
|
|
47
|
-
if (line.startsWith('event: ')) {
|
|
48
|
-
eventType = line.slice(7).trim();
|
|
49
|
-
}
|
|
50
|
-
else if (line.startsWith('data: ')) {
|
|
51
|
-
dataLines.push(line.slice(6));
|
|
52
|
-
}
|
|
53
|
-
else if (line === 'data:') {
|
|
54
|
-
dataLines.push('');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (dataLines.length === 0)
|
|
58
|
-
return null;
|
|
59
|
-
const data = dataLines.join('\n');
|
|
60
|
-
switch (eventType) {
|
|
61
|
-
case 'message':
|
|
62
|
-
return { type: 'message', data };
|
|
63
|
-
case 'payment-need-voucher':
|
|
64
|
-
return { type: 'payment-need-voucher', data: JSON.parse(data) };
|
|
65
|
-
case 'payment-receipt':
|
|
66
|
-
return { type: 'payment-receipt', data: JSON.parse(data) };
|
|
67
|
-
default:
|
|
68
|
-
return { type: 'message', data };
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Wrap an async iterable with payment metering, producing an SSE stream.
|
|
73
|
-
*
|
|
74
|
-
* `generate` may be either:
|
|
75
|
-
* - An `AsyncIterable<string>` — each yielded value is automatically charged
|
|
76
|
-
* (one `tickCost` per value).
|
|
77
|
-
* - A callback `(stream: SessionController) => AsyncIterable<string>` — the
|
|
78
|
-
* generator controls when charges happen by calling `stream.charge()`.
|
|
79
|
-
*
|
|
80
|
-
* For each emitted value the stream:
|
|
81
|
-
* 1. Reserves `tickCost` from the channel's available voucher headroom
|
|
82
|
-
* (auto or manual).
|
|
83
|
-
* 2. If balance is sufficient, emits `event: message` with the value.
|
|
84
|
-
* 3. If balance is exhausted, emits `event: payment-need-voucher`
|
|
85
|
-
* and polls store until the client tops up the channel.
|
|
86
|
-
* 4. Commits the reserved charge immediately before the chunk is emitted.
|
|
87
|
-
* 5. On generator completion, emits a final `event: payment-receipt`.
|
|
88
|
-
*
|
|
89
|
-
* Returns a `ReadableStream<Uint8Array>` suitable for use as an HTTP response body.
|
|
90
|
-
*/
|
|
91
|
-
export function serve(options) {
|
|
92
|
-
const { store, channelId, challengeId, tickCost, generate, pollIntervalMs = 100, signal, } = options;
|
|
93
|
-
const encoder = new TextEncoder();
|
|
94
|
-
return new ReadableStream({
|
|
95
|
-
async start(controller) {
|
|
96
|
-
const aborted = () => signal?.aborted ?? false;
|
|
97
|
-
const emit = (event) => controller.enqueue(encoder.encode(event));
|
|
98
|
-
let prepaidUnits = options.prepaidUnits ?? 0;
|
|
99
|
-
let reservedAmount = 0n;
|
|
100
|
-
let reservedUnits = 0;
|
|
101
|
-
const charge = () => {
|
|
102
|
-
if (prepaidUnits > 0) {
|
|
103
|
-
prepaidUnits -= 1;
|
|
104
|
-
return Promise.resolve();
|
|
105
|
-
}
|
|
106
|
-
return reserveChargeOrWait({
|
|
107
|
-
store,
|
|
108
|
-
channelId,
|
|
109
|
-
amount: tickCost,
|
|
110
|
-
reservedAmount,
|
|
111
|
-
emit,
|
|
112
|
-
pollIntervalMs,
|
|
113
|
-
signal,
|
|
114
|
-
}).then(() => {
|
|
115
|
-
reservedAmount += tickCost;
|
|
116
|
-
reservedUnits += 1;
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
const iterable = typeof generate === 'function' ? generate({ charge }) : generate;
|
|
120
|
-
try {
|
|
121
|
-
for await (const value of iterable) {
|
|
122
|
-
if (aborted())
|
|
123
|
-
break;
|
|
124
|
-
if (typeof generate !== 'function')
|
|
125
|
-
await charge();
|
|
126
|
-
await commitReservedCharges({
|
|
127
|
-
store,
|
|
128
|
-
channelId,
|
|
129
|
-
amount: reservedAmount,
|
|
130
|
-
units: reservedUnits,
|
|
131
|
-
});
|
|
132
|
-
reservedAmount = 0n;
|
|
133
|
-
reservedUnits = 0;
|
|
134
|
-
controller.enqueue(encoder.encode(formatMessageEvent(value)));
|
|
135
|
-
}
|
|
136
|
-
if (!aborted()) {
|
|
137
|
-
const channel = await store.getChannel(channelId);
|
|
138
|
-
if (channel) {
|
|
139
|
-
const receipt = createSessionReceipt({
|
|
140
|
-
challengeId,
|
|
141
|
-
channelId,
|
|
142
|
-
acceptedCumulative: channel.highestVoucherAmount,
|
|
143
|
-
spent: channel.spent,
|
|
144
|
-
units: channel.units,
|
|
145
|
-
});
|
|
146
|
-
controller.enqueue(encoder.encode(formatReceiptEvent(receipt)));
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
catch (e) {
|
|
151
|
-
if (!aborted())
|
|
152
|
-
controller.error(e);
|
|
153
|
-
}
|
|
154
|
-
finally {
|
|
155
|
-
controller.close();
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Wrap a `ReadableStream<Uint8Array>` (from {@link serve}) in an HTTP
|
|
162
|
-
* `Response` with the correct SSE headers.
|
|
163
|
-
*/
|
|
164
|
-
export function toResponse(body) {
|
|
165
|
-
return new Response(body, {
|
|
166
|
-
headers: {
|
|
167
|
-
'Cache-Control': 'no-cache, no-transform',
|
|
168
|
-
Connection: 'keep-alive',
|
|
169
|
-
'Content-Type': 'text/event-stream; charset=utf-8',
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Extract `channelId`, `challengeId`, and `tickCost` from a `Request`'s
|
|
175
|
-
* `Authorization: Payment …` header.
|
|
176
|
-
*
|
|
177
|
-
* This is a convenience for callers that receive a raw `Request` and need
|
|
178
|
-
* the parameters required by {@link serve}.
|
|
179
|
-
*/
|
|
180
|
-
export function fromRequest(request) {
|
|
181
|
-
const header = request.headers.get('Authorization');
|
|
182
|
-
if (!header)
|
|
183
|
-
throw new Error('Missing Authorization header.');
|
|
184
|
-
const payment = Credential.extractPaymentScheme(header);
|
|
185
|
-
if (!payment)
|
|
186
|
-
throw new Error('Missing Payment credential in Authorization header.');
|
|
187
|
-
const credential = Credential.deserialize(payment);
|
|
188
|
-
const payload = credential.payload;
|
|
189
|
-
return {
|
|
190
|
-
challengeId: credential.challenge.id,
|
|
191
|
-
channelId: payload.channelId,
|
|
192
|
-
tickCost: BigInt(credential.challenge.request.amount),
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Reserve `amount` of voucher headroom for a future emission, retrying when
|
|
197
|
-
* balance is insufficient. Uses `store.waitForUpdate()` when available for
|
|
198
|
-
* event-driven wakeups, falling back to polling otherwise. Emits
|
|
199
|
-
* `payment-need-voucher` events via `emit` while waiting.
|
|
200
|
-
*/
|
|
201
|
-
async function reserveChargeOrWait(options) {
|
|
202
|
-
const { store, channelId, amount, emit, pollIntervalMs, reservedAmount, signal } = options;
|
|
203
|
-
let channel = await store.getChannel(channelId);
|
|
204
|
-
if (!channel)
|
|
205
|
-
throw new Error('channel not found');
|
|
206
|
-
throwIfChannelClosed(channel);
|
|
207
|
-
const hasHeadroom = (state) => state.highestVoucherAmount - state.spent - reservedAmount >= amount;
|
|
208
|
-
if (hasHeadroom(channel))
|
|
209
|
-
return;
|
|
210
|
-
// Emit a single need-voucher event, then wait until the accepted voucher
|
|
211
|
-
// headroom covers both already-reserved units and the next requested unit.
|
|
212
|
-
await Promise.resolve(emit(formatNeedVoucherEvent({
|
|
213
|
-
channelId,
|
|
214
|
-
requiredCumulative: (channel.spent + reservedAmount + amount).toString(),
|
|
215
|
-
acceptedCumulative: channel.highestVoucherAmount.toString(),
|
|
216
|
-
deposit: channel.deposit.toString(),
|
|
217
|
-
})));
|
|
218
|
-
while (!hasHeadroom(channel)) {
|
|
219
|
-
await waitForUpdate(store, channelId, pollIntervalMs, signal);
|
|
220
|
-
channel = await store.getChannel(channelId);
|
|
221
|
-
if (!channel)
|
|
222
|
-
throw new Error('channel not found');
|
|
223
|
-
throwIfChannelClosed(channel);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
async function commitReservedCharges(options) {
|
|
227
|
-
const { store, channelId, amount, units } = options;
|
|
228
|
-
if (amount === 0n || units === 0)
|
|
229
|
-
return;
|
|
230
|
-
let committed = false;
|
|
231
|
-
const channel = await store.updateChannel(channelId, (current) => {
|
|
232
|
-
if (!current)
|
|
233
|
-
return null;
|
|
234
|
-
if (current.finalized)
|
|
235
|
-
return current;
|
|
236
|
-
if (current.closeRequestedAt !== 0n)
|
|
237
|
-
return current;
|
|
238
|
-
if (current.highestVoucherAmount - current.spent < amount)
|
|
239
|
-
return current;
|
|
240
|
-
committed = true;
|
|
241
|
-
return {
|
|
242
|
-
...current,
|
|
243
|
-
spent: current.spent + amount,
|
|
244
|
-
units: current.units + units,
|
|
245
|
-
};
|
|
246
|
-
});
|
|
247
|
-
if (!channel)
|
|
248
|
-
throw new Error('channel not found');
|
|
249
|
-
if (channel.finalized)
|
|
250
|
-
throw new ChannelClosedError({ reason: 'channel is finalized' });
|
|
251
|
-
if (channel.closeRequestedAt !== 0n)
|
|
252
|
-
throw new ChannelClosedError({ reason: 'channel has a pending close request' });
|
|
253
|
-
if (!committed)
|
|
254
|
-
throw new Error('reserved voucher coverage is no longer available');
|
|
255
|
-
}
|
|
256
|
-
function throwIfChannelClosed(channel) {
|
|
257
|
-
if (channel.finalized)
|
|
258
|
-
throw new ChannelClosedError({ reason: 'channel is finalized' });
|
|
259
|
-
if (channel.closeRequestedAt !== 0n)
|
|
260
|
-
throw new ChannelClosedError({ reason: 'channel has a pending close request' });
|
|
261
|
-
}
|
|
262
|
-
async function waitForUpdate(store, channelId, pollIntervalMs, signal) {
|
|
263
|
-
if (signal?.aborted)
|
|
264
|
-
throw new Error('Aborted while waiting for voucher');
|
|
265
|
-
if (store.waitForUpdate) {
|
|
266
|
-
await Promise.race([store.waitForUpdate(channelId), ...(signal ? [abortPromise(signal)] : [])]);
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
await sleep(pollIntervalMs);
|
|
270
|
-
}
|
|
271
|
-
if (signal?.aborted)
|
|
272
|
-
throw new Error('Aborted while waiting for voucher');
|
|
273
|
-
}
|
|
274
|
-
function abortPromise(signal) {
|
|
275
|
-
return new Promise((resolve) => {
|
|
276
|
-
if (signal.aborted)
|
|
277
|
-
return resolve();
|
|
278
|
-
signal.addEventListener('abort', () => resolve(), { once: true });
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
function sleep(ms) {
|
|
282
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Check whether a `Response` carries an SSE event stream.
|
|
286
|
-
*
|
|
287
|
-
* Returns `true` when the `Content-Type` header starts with
|
|
288
|
-
* `text/event-stream` (case-insensitive, ignoring charset params).
|
|
289
|
-
*/
|
|
290
|
-
export function isEventStream(response) {
|
|
291
|
-
const ct = response.headers.get('content-type');
|
|
292
|
-
return ct?.toLowerCase().startsWith('text/event-stream') ?? false;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Parse an SSE `Response` body into an async iterable of `data:` payloads.
|
|
296
|
-
*
|
|
297
|
-
* Yields the raw `data:` field content for each SSE event in the stream.
|
|
298
|
-
* Events whose data matches the `skip` predicate are silently dropped
|
|
299
|
-
* (e.g. `[DONE]` sentinels used by OpenAI-compatible APIs).
|
|
300
|
-
*
|
|
301
|
-
* Each yielded value typically becomes one charge tick when fed to
|
|
302
|
-
* {@link serve} via the SSE transport's auto-charge mode.
|
|
303
|
-
*
|
|
304
|
-
* @example
|
|
305
|
-
* ```ts
|
|
306
|
-
* const upstream = await fetch('https://api.example.com/stream')
|
|
307
|
-
* for await (const data of Sse.iterateData(upstream)) {
|
|
308
|
-
* console.log(data)
|
|
309
|
-
* }
|
|
310
|
-
* ```
|
|
311
|
-
*/
|
|
312
|
-
export async function* iterateData(response, options) {
|
|
313
|
-
const skip = options?.skip;
|
|
314
|
-
const body = response.body;
|
|
315
|
-
if (!body)
|
|
316
|
-
return;
|
|
317
|
-
const reader = body.getReader();
|
|
318
|
-
const decoder = new TextDecoder();
|
|
319
|
-
let buffer = '';
|
|
320
|
-
try {
|
|
321
|
-
while (true) {
|
|
322
|
-
const { value, done } = await reader.read();
|
|
323
|
-
if (done)
|
|
324
|
-
break;
|
|
325
|
-
buffer += decoder.decode(value, { stream: true });
|
|
326
|
-
// Split on double-newline SSE event boundaries.
|
|
327
|
-
const events = buffer.split('\n\n');
|
|
328
|
-
// Last element may be incomplete — keep in buffer.
|
|
329
|
-
buffer = events.pop() ?? '';
|
|
330
|
-
for (const event of events) {
|
|
331
|
-
if (!event.trim())
|
|
332
|
-
continue;
|
|
333
|
-
const data = extractData(event);
|
|
334
|
-
if (data === null)
|
|
335
|
-
continue;
|
|
336
|
-
if (skip?.(data))
|
|
337
|
-
continue;
|
|
338
|
-
yield data;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
// Flush remaining buffer.
|
|
342
|
-
if (buffer.trim()) {
|
|
343
|
-
const data = extractData(buffer);
|
|
344
|
-
if (data !== null && !skip?.(data))
|
|
345
|
-
yield data;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
finally {
|
|
349
|
-
reader.releaseLock();
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
/** Extract the `data:` field value from a single SSE event block. */
|
|
353
|
-
function extractData(event) {
|
|
354
|
-
const dataLines = [];
|
|
355
|
-
for (const line of event.split('\n')) {
|
|
356
|
-
if (line.startsWith('data: '))
|
|
357
|
-
dataLines.push(line.slice(6));
|
|
358
|
-
else if (line === 'data:')
|
|
359
|
-
dataLines.push('');
|
|
360
|
-
}
|
|
361
|
-
return dataLines.length > 0 ? dataLines.join('\n') : null;
|
|
362
|
-
}
|
|
363
|
-
//# sourceMappingURL=Sse.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sse.js","sourceRoot":"","sources":["../../../src/tempo/session/Sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import type { Address, Hex } from 'viem';
|
|
2
|
-
/**
|
|
3
|
-
* Voucher for cumulative payment.
|
|
4
|
-
* Cumulative monotonicity prevents replay attacks.
|
|
5
|
-
*/
|
|
6
|
-
export interface Voucher {
|
|
7
|
-
channelId: Hex;
|
|
8
|
-
cumulativeAmount: bigint;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Signed voucher with EIP-712 signature.
|
|
12
|
-
*/
|
|
13
|
-
export interface SignedVoucher extends Voucher {
|
|
14
|
-
signature: Hex;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Session credential payload (discriminated union).
|
|
18
|
-
*/
|
|
19
|
-
export type SessionCredentialPayload = {
|
|
20
|
-
action: 'open';
|
|
21
|
-
type: 'transaction';
|
|
22
|
-
channelId: Hex;
|
|
23
|
-
transaction: Hex;
|
|
24
|
-
signature: Hex;
|
|
25
|
-
authorizedSigner?: Address | undefined;
|
|
26
|
-
cumulativeAmount: string;
|
|
27
|
-
} | {
|
|
28
|
-
action: 'topUp';
|
|
29
|
-
type: 'transaction';
|
|
30
|
-
channelId: Hex;
|
|
31
|
-
transaction: Hex;
|
|
32
|
-
additionalDeposit: string;
|
|
33
|
-
} | {
|
|
34
|
-
action: 'voucher';
|
|
35
|
-
channelId: Hex;
|
|
36
|
-
cumulativeAmount: string;
|
|
37
|
-
signature: Hex;
|
|
38
|
-
} | {
|
|
39
|
-
action: 'close';
|
|
40
|
-
channelId: Hex;
|
|
41
|
-
cumulativeAmount: string;
|
|
42
|
-
signature: Hex;
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* SSE event emitted when session balance is exhausted mid-stream.
|
|
46
|
-
* The client responds by sending a new voucher credential.
|
|
47
|
-
*
|
|
48
|
-
* Per spec §11.6, the event data contains:
|
|
49
|
-
* - `channelId` — channel identifier
|
|
50
|
-
* - `requiredCumulative` — minimum cumulative amount the next voucher must authorize
|
|
51
|
-
* - `acceptedCumulative` — current highest accepted voucher amount
|
|
52
|
-
* - `deposit` — current on-chain deposit ceiling; when `requiredCumulative > deposit`
|
|
53
|
-
* the client must top up the channel before sending a new voucher
|
|
54
|
-
*/
|
|
55
|
-
export interface NeedVoucherEvent {
|
|
56
|
-
channelId: Hex;
|
|
57
|
-
requiredCumulative: string;
|
|
58
|
-
acceptedCumulative: string;
|
|
59
|
-
deposit: string;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Session receipt returned in Payment-Receipt header.
|
|
63
|
-
*/
|
|
64
|
-
export interface SessionReceipt {
|
|
65
|
-
method: 'tempo';
|
|
66
|
-
intent: 'session';
|
|
67
|
-
status: 'success';
|
|
68
|
-
timestamp: string;
|
|
69
|
-
/** Payment reference (channelId). Satisfies Receipt.Receipt contract. */
|
|
70
|
-
reference: string;
|
|
71
|
-
challengeId: string;
|
|
72
|
-
channelId: Hex;
|
|
73
|
-
acceptedCumulative: string;
|
|
74
|
-
spent: string;
|
|
75
|
-
units?: number | undefined;
|
|
76
|
-
txHash?: Hex | undefined;
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=Types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/Types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,GAAG,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,SAAS,EAAE,GAAG,CAAA;CACf;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC;IACE,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,EAAE,GAAG,CAAA;IACd,WAAW,EAAE,GAAG,CAAA;IAChB,SAAS,EAAE,GAAG,CAAA;IACd,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAA;CACzB,GACD;IACE,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,EAAE,GAAG,CAAA;IACd,WAAW,EAAE,GAAG,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,GACD;IACE,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,GAAG,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,GAAG,CAAA;CACf,GACD;IACE,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,GAAG,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,GAAG,CAAA;CACf,CAAA;AAEL;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,GAAG,CAAA;IACd,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,GAAG,CAAA;IACd,kBAAkB,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,MAAM,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CACzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../src/tempo/session/Types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Voucher.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/Voucher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,IAAI,CAAA;AAE5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAKhD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AA+FxD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,OAAO,CAAC,OAAO,EAC/B,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,GAClC,OAAO,CAAC,GAAG,CAAC,CAqBd;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,OAAO,CAAC,OAAO,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,OAAO,CAAC,OAAO,GAC9B,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,GAAG,EACd,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,GAAG,GACb,aAAa,CAMf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Voucher.js","sourceRoot":"","sources":["../../../src/tempo/session/Voucher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import * as ChannelStore from './ChannelStore.js';
|
|
2
|
-
import type { SessionController } from './Sse.js';
|
|
3
|
-
import type { NeedVoucherEvent, SessionReceipt } from './Types.js';
|
|
4
|
-
export type { SessionController } from './Sse.js';
|
|
5
|
-
export type SessionRouteResult = {
|
|
6
|
-
status: 402;
|
|
7
|
-
challenge: Response;
|
|
8
|
-
} | {
|
|
9
|
-
status: 200;
|
|
10
|
-
withReceipt(response?: Response): Response;
|
|
11
|
-
};
|
|
12
|
-
export type SessionRoute = (request: Request) => Promise<SessionRouteResult>;
|
|
13
|
-
export type Socket = {
|
|
14
|
-
close(code?: number, reason?: string): unknown;
|
|
15
|
-
send(data: string): unknown;
|
|
16
|
-
addEventListener?: (type: 'close' | 'error' | 'message', listener: ((event: any) => void) | {
|
|
17
|
-
handleEvent(event: any): void;
|
|
18
|
-
}) => unknown;
|
|
19
|
-
removeEventListener?: (type: 'close' | 'error' | 'message', listener: ((event: any) => void) | {
|
|
20
|
-
handleEvent(event: any): void;
|
|
21
|
-
}) => unknown;
|
|
22
|
-
on?: (type: 'close' | 'error' | 'message', listener: (...args: any[]) => void) => unknown;
|
|
23
|
-
off?: (type: 'close' | 'error' | 'message', listener: (...args: any[]) => void) => unknown;
|
|
24
|
-
};
|
|
25
|
-
export type Message = {
|
|
26
|
-
mpp: 'authorization';
|
|
27
|
-
authorization: string;
|
|
28
|
-
} | {
|
|
29
|
-
mpp: 'message';
|
|
30
|
-
data: string;
|
|
31
|
-
} | {
|
|
32
|
-
mpp: 'payment-close-request';
|
|
33
|
-
} | {
|
|
34
|
-
mpp: 'payment-close-ready';
|
|
35
|
-
data: SessionReceipt;
|
|
36
|
-
} | {
|
|
37
|
-
mpp: 'payment-error';
|
|
38
|
-
status: number;
|
|
39
|
-
message: string;
|
|
40
|
-
} | {
|
|
41
|
-
mpp: 'payment-need-voucher';
|
|
42
|
-
data: NeedVoucherEvent;
|
|
43
|
-
} | {
|
|
44
|
-
mpp: 'payment-receipt';
|
|
45
|
-
data: SessionReceipt;
|
|
46
|
-
};
|
|
47
|
-
export declare function formatAuthorizationMessage(authorization: string): string;
|
|
48
|
-
export declare function formatApplicationMessage(data: string): string;
|
|
49
|
-
export declare function formatCloseRequestMessage(): string;
|
|
50
|
-
export declare function formatCloseReadyMessage(receipt: SessionReceipt): string;
|
|
51
|
-
export declare function formatNeedVoucherMessage(params: NeedVoucherEvent): string;
|
|
52
|
-
export declare function formatReceiptMessage(receipt: SessionReceipt): string;
|
|
53
|
-
export declare function formatErrorMessage(parameters: {
|
|
54
|
-
message: string;
|
|
55
|
-
status: number;
|
|
56
|
-
}): string;
|
|
57
|
-
export declare function parseMessage(raw: string): Message | null;
|
|
58
|
-
/**
|
|
59
|
-
* Bridge a WebSocket connection to a Tempo session payment flow.
|
|
60
|
-
*
|
|
61
|
-
* Credential verification is performed by routing each in-band authorization
|
|
62
|
-
* frame through `route` as a **synthetic `POST` request** that carries only
|
|
63
|
-
* the `Authorization` header. The synthetic request does not include cookies,
|
|
64
|
-
* bodies, query parameters, or other headers from the original WebSocket
|
|
65
|
-
* upgrade request. Do not wrap `route` with middleware that depends on
|
|
66
|
-
* HTTP-specific context beyond the `Authorization` header.
|
|
67
|
-
*/
|
|
68
|
-
export declare function serve(options: serve.Options): Promise<void>;
|
|
69
|
-
export declare namespace serve {
|
|
70
|
-
type Options = {
|
|
71
|
-
/** Expected per-tick amount in raw units. When set, credentials whose
|
|
72
|
-
* challenge `request.amount` does not match are rejected. Use this to
|
|
73
|
-
* pin the price when the route is backed by `Mppx.compose()` with
|
|
74
|
-
* multiple offers — otherwise a client can select the cheapest offer
|
|
75
|
-
* and still receive the same stream. */
|
|
76
|
-
amount?: string | undefined;
|
|
77
|
-
generate: AsyncIterable<string> | ((stream: SessionController) => AsyncIterable<string>);
|
|
78
|
-
pollIntervalMs?: number | undefined;
|
|
79
|
-
/** Payment route handler. Receives synthetic `POST` requests with only
|
|
80
|
-
* the `Authorization` header — no cookies, bodies, or upgrade headers. */
|
|
81
|
-
route: SessionRoute;
|
|
82
|
-
socket: Socket;
|
|
83
|
-
store: ChannelStore.ChannelStore | import('../../Store.js').Store;
|
|
84
|
-
url: string | URL;
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=Ws.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Ws.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/Ws.ts"],"names":[],"mappings":"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"}
|