mppx 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +195 -0
- package/dist/BodyDigest.d.ts +42 -0
- package/dist/BodyDigest.d.ts.map +1 -0
- package/dist/BodyDigest.js +40 -0
- package/dist/BodyDigest.js.map +1 -0
- package/dist/Challenge.d.ts +271 -0
- package/dist/Challenge.d.ts.map +1 -0
- package/dist/Challenge.js +291 -0
- package/dist/Challenge.js.map +1 -0
- package/dist/Credential.d.ts +91 -0
- package/dist/Credential.d.ts.map +1 -0
- package/dist/Credential.js +122 -0
- package/dist/Credential.js.map +1 -0
- package/dist/Errors.d.ts +243 -0
- package/dist/Errors.d.ts.map +1 -0
- package/dist/Errors.js +201 -0
- package/dist/Errors.js.map +1 -0
- package/dist/Expires.d.ts +15 -0
- package/dist/Expires.d.ts.map +1 -0
- package/dist/Expires.js +29 -0
- package/dist/Expires.js.map +1 -0
- package/dist/Intent.d.ts +101 -0
- package/dist/Intent.d.ts.map +1 -0
- package/dist/Intent.js +83 -0
- package/dist/Intent.js.map +1 -0
- package/dist/Mcp.d.ts +74 -0
- package/dist/Mcp.d.ts.map +1 -0
- package/dist/Mcp.js +9 -0
- package/dist/Mcp.js.map +1 -0
- package/dist/MethodIntent.d.ts +225 -0
- package/dist/MethodIntent.d.ts.map +1 -0
- package/dist/MethodIntent.js +156 -0
- package/dist/MethodIntent.js.map +1 -0
- package/dist/PaymentRequest.d.ts +88 -0
- package/dist/PaymentRequest.d.ts.map +1 -0
- package/dist/PaymentRequest.js +81 -0
- package/dist/PaymentRequest.js.map +1 -0
- package/dist/Receipt.d.ts +110 -0
- package/dist/Receipt.d.ts.map +1 -0
- package/dist/Receipt.js +105 -0
- package/dist/Receipt.js.map +1 -0
- package/dist/Store.d.ts +28 -0
- package/dist/Store.d.ts.map +1 -0
- package/dist/Store.js +61 -0
- package/dist/Store.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1219 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/Methods.d.ts +4 -0
- package/dist/client/Methods.d.ts.map +1 -0
- package/dist/client/Methods.js +4 -0
- package/dist/client/Methods.js.map +1 -0
- package/dist/client/Mppx.d.ts +84 -0
- package/dist/client/Mppx.d.ts.map +1 -0
- package/dist/client/Mppx.js +64 -0
- package/dist/client/Mppx.js.map +1 -0
- package/dist/client/Transport.d.ts +56 -0
- package/dist/client/Transport.d.ts.map +1 -0
- package/dist/client/Transport.js +81 -0
- package/dist/client/Transport.js.map +1 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/internal/Fetch.d.ts +85 -0
- package/dist/client/internal/Fetch.d.ts.map +1 -0
- package/dist/client/internal/Fetch.js +95 -0
- package/dist/client/internal/Fetch.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/types.d.ts +302 -0
- package/dist/internal/types.d.ts.map +1 -0
- package/dist/internal/types.js +2 -0
- package/dist/internal/types.js.map +1 -0
- package/dist/mcp-sdk/client/McpClient.d.ts +78 -0
- package/dist/mcp-sdk/client/McpClient.d.ts.map +1 -0
- package/dist/mcp-sdk/client/McpClient.js +98 -0
- package/dist/mcp-sdk/client/McpClient.js.map +1 -0
- package/dist/mcp-sdk/client/index.d.ts +3 -0
- package/dist/mcp-sdk/client/index.d.ts.map +1 -0
- package/dist/mcp-sdk/client/index.js +3 -0
- package/dist/mcp-sdk/client/index.js.map +1 -0
- package/dist/mcp-sdk/server/Transport.d.ts +43 -0
- package/dist/mcp-sdk/server/Transport.d.ts.map +1 -0
- package/dist/mcp-sdk/server/Transport.js +71 -0
- package/dist/mcp-sdk/server/Transport.js.map +1 -0
- package/dist/mcp-sdk/server/index.d.ts +2 -0
- package/dist/mcp-sdk/server/index.d.ts.map +1 -0
- package/dist/mcp-sdk/server/index.js +2 -0
- package/dist/mcp-sdk/server/index.js.map +1 -0
- package/dist/middlewares/elysia.d.ts +51 -0
- package/dist/middlewares/elysia.d.ts.map +1 -0
- package/dist/middlewares/elysia.js +59 -0
- package/dist/middlewares/elysia.js.map +1 -0
- package/dist/middlewares/express.d.ts +46 -0
- package/dist/middlewares/express.d.ts.map +1 -0
- package/dist/middlewares/express.js +69 -0
- package/dist/middlewares/express.js.map +1 -0
- package/dist/middlewares/hono.d.ts +46 -0
- package/dist/middlewares/hono.d.ts.map +1 -0
- package/dist/middlewares/hono.js +57 -0
- package/dist/middlewares/hono.js.map +1 -0
- package/dist/middlewares/internal/mppx.d.ts +16 -0
- package/dist/middlewares/internal/mppx.d.ts.map +1 -0
- package/dist/middlewares/internal/mppx.js +16 -0
- package/dist/middlewares/internal/mppx.js.map +1 -0
- package/dist/middlewares/nextjs.d.ts +45 -0
- package/dist/middlewares/nextjs.d.ts.map +1 -0
- package/dist/middlewares/nextjs.js +57 -0
- package/dist/middlewares/nextjs.js.map +1 -0
- package/dist/proxy/Proxy.d.ts +47 -0
- package/dist/proxy/Proxy.d.ts.map +1 -0
- package/dist/proxy/Proxy.js +126 -0
- package/dist/proxy/Proxy.js.map +1 -0
- package/dist/proxy/Service.d.ts +100 -0
- package/dist/proxy/Service.d.ts.map +1 -0
- package/dist/proxy/Service.js +147 -0
- package/dist/proxy/Service.js.map +1 -0
- package/dist/proxy/index.d.ts +7 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +7 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/internal/Headers.d.ts +3 -0
- package/dist/proxy/internal/Headers.d.ts.map +1 -0
- package/dist/proxy/internal/Headers.js +41 -0
- package/dist/proxy/internal/Headers.js.map +1 -0
- package/dist/proxy/internal/Route.d.ts +14 -0
- package/dist/proxy/internal/Route.d.ts.map +1 -0
- package/dist/proxy/internal/Route.js +47 -0
- package/dist/proxy/internal/Route.js.map +1 -0
- package/dist/proxy/services/anthropic.d.ts +29 -0
- package/dist/proxy/services/anthropic.d.ts.map +1 -0
- package/dist/proxy/services/anthropic.js +30 -0
- package/dist/proxy/services/anthropic.js.map +1 -0
- package/dist/proxy/services/openai.d.ts +29 -0
- package/dist/proxy/services/openai.d.ts.map +1 -0
- package/dist/proxy/services/openai.js +30 -0
- package/dist/proxy/services/openai.js.map +1 -0
- package/dist/proxy/services/stripe.d.ts +29 -0
- package/dist/proxy/services/stripe.d.ts.map +1 -0
- package/dist/proxy/services/stripe.js +30 -0
- package/dist/proxy/services/stripe.js.map +1 -0
- package/dist/server/Methods.d.ts +3 -0
- package/dist/server/Methods.d.ts.map +1 -0
- package/dist/server/Methods.js +3 -0
- package/dist/server/Methods.js.map +1 -0
- package/dist/server/Mppx.d.ts +116 -0
- package/dist/server/Mppx.d.ts.map +1 -0
- package/dist/server/Mppx.js +207 -0
- package/dist/server/Mppx.js.map +1 -0
- package/dist/server/NodeListener.d.ts +3 -0
- package/dist/server/NodeListener.d.ts.map +1 -0
- package/dist/server/NodeListener.js +3 -0
- package/dist/server/NodeListener.js.map +1 -0
- package/dist/server/Request.d.ts +24 -0
- package/dist/server/Request.d.ts.map +1 -0
- package/dist/server/Request.js +26 -0
- package/dist/server/Request.js.map +1 -0
- package/dist/server/Response.d.ts +10 -0
- package/dist/server/Response.d.ts.map +1 -0
- package/dist/server/Response.js +15 -0
- package/dist/server/Response.js.map +1 -0
- package/dist/server/Transport.d.ts +93 -0
- package/dist/server/Transport.d.ts.map +1 -0
- package/dist/server/Transport.js +132 -0
- package/dist/server/Transport.js.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +9 -0
- package/dist/server/index.js.map +1 -0
- package/dist/stripe/Intents.d.ts +54 -0
- package/dist/stripe/Intents.d.ts.map +1 -0
- package/dist/stripe/Intents.js +27 -0
- package/dist/stripe/Intents.js.map +1 -0
- package/dist/stripe/client/Charge.d.ts +114 -0
- package/dist/stripe/client/Charge.d.ts.map +1 -0
- package/dist/stripe/client/Charge.js +77 -0
- package/dist/stripe/client/Charge.js.map +1 -0
- package/dist/stripe/client/MethodIntents.d.ts +80 -0
- package/dist/stripe/client/MethodIntents.d.ts.map +1 -0
- package/dist/stripe/client/MethodIntents.js +34 -0
- package/dist/stripe/client/MethodIntents.js.map +1 -0
- package/dist/stripe/client/index.d.ts +3 -0
- package/dist/stripe/client/index.d.ts.map +1 -0
- package/dist/stripe/client/index.js +3 -0
- package/dist/stripe/client/index.js.map +1 -0
- package/dist/stripe/index.d.ts +2 -0
- package/dist/stripe/index.d.ts.map +1 -0
- package/dist/stripe/index.js +2 -0
- package/dist/stripe/index.js.map +1 -0
- package/dist/stripe/server/Charge.d.ts +74 -0
- package/dist/stripe/server/Charge.d.ts.map +1 -0
- package/dist/stripe/server/Charge.js +79 -0
- package/dist/stripe/server/Charge.js.map +1 -0
- package/dist/stripe/server/MethodIntents.d.ts +65 -0
- package/dist/stripe/server/MethodIntents.d.ts.map +1 -0
- package/dist/stripe/server/MethodIntents.js +21 -0
- package/dist/stripe/server/MethodIntents.js.map +1 -0
- package/dist/stripe/server/index.d.ts +3 -0
- package/dist/stripe/server/index.d.ts.map +1 -0
- package/dist/stripe/server/index.js +3 -0
- package/dist/stripe/server/index.js.map +1 -0
- package/dist/tempo/Attribution.d.ts +101 -0
- package/dist/tempo/Attribution.d.ts.map +1 -0
- package/dist/tempo/Attribution.js +124 -0
- package/dist/tempo/Attribution.js.map +1 -0
- package/dist/tempo/Intents.d.ts +132 -0
- package/dist/tempo/Intents.d.ts.map +1 -0
- package/dist/tempo/Intents.js +81 -0
- package/dist/tempo/Intents.js.map +1 -0
- package/dist/tempo/client/ChannelOps.d.ts +54 -0
- package/dist/tempo/client/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/client/ChannelOps.js +138 -0
- package/dist/tempo/client/ChannelOps.js.map +1 -0
- package/dist/tempo/client/Charge.d.ts +76 -0
- package/dist/tempo/client/Charge.d.ts.map +1 -0
- package/dist/tempo/client/Charge.js +69 -0
- package/dist/tempo/client/Charge.js.map +1 -0
- package/dist/tempo/client/MethodIntents.d.ts +157 -0
- package/dist/tempo/client/MethodIntents.d.ts.map +1 -0
- package/dist/tempo/client/MethodIntents.js +25 -0
- package/dist/tempo/client/MethodIntents.js.map +1 -0
- package/dist/tempo/client/Session.d.ts +159 -0
- package/dist/tempo/client/Session.d.ts.map +1 -0
- package/dist/tempo/client/Session.js +263 -0
- package/dist/tempo/client/Session.js.map +1 -0
- package/dist/tempo/client/SessionManager.d.ts +62 -0
- package/dist/tempo/client/SessionManager.d.ts.map +1 -0
- package/dist/tempo/client/SessionManager.js +196 -0
- package/dist/tempo/client/SessionManager.js.map +1 -0
- package/dist/tempo/client/index.d.ts +6 -0
- package/dist/tempo/client/index.d.ts.map +1 -0
- package/dist/tempo/client/index.js +5 -0
- package/dist/tempo/client/index.js.map +1 -0
- package/dist/tempo/index.d.ts +3 -0
- package/dist/tempo/index.d.ts.map +1 -0
- package/dist/tempo/index.js +3 -0
- package/dist/tempo/index.js.map +1 -0
- package/dist/tempo/internal/account.d.ts +32 -0
- package/dist/tempo/internal/account.d.ts.map +1 -0
- package/dist/tempo/internal/account.js +33 -0
- package/dist/tempo/internal/account.js.map +1 -0
- package/dist/tempo/internal/defaults.d.ts +18 -0
- package/dist/tempo/internal/defaults.d.ts.map +1 -0
- package/dist/tempo/internal/defaults.js +18 -0
- package/dist/tempo/internal/defaults.js.map +1 -0
- package/dist/tempo/internal/types.d.ts +11 -0
- package/dist/tempo/internal/types.d.ts.map +1 -0
- package/dist/tempo/internal/types.js +2 -0
- package/dist/tempo/internal/types.js.map +1 -0
- package/dist/tempo/server/Charge.d.ts +77 -0
- package/dist/tempo/server/Charge.d.ts.map +1 -0
- package/dist/tempo/server/Charge.js +228 -0
- package/dist/tempo/server/Charge.js.map +1 -0
- package/dist/tempo/server/MethodIntents.d.ts +140 -0
- package/dist/tempo/server/MethodIntents.d.ts.map +1 -0
- package/dist/tempo/server/MethodIntents.js +26 -0
- package/dist/tempo/server/MethodIntents.js.map +1 -0
- package/dist/tempo/server/Session.d.ts +148 -0
- package/dist/tempo/server/Session.d.ts.map +1 -0
- package/dist/tempo/server/Session.js +529 -0
- package/dist/tempo/server/Session.js.map +1 -0
- package/dist/tempo/server/internal/transport.d.ts +47 -0
- package/dist/tempo/server/internal/transport.d.ts.map +1 -0
- package/dist/tempo/server/internal/transport.js +118 -0
- package/dist/tempo/server/internal/transport.js.map +1 -0
- package/dist/tempo/stream/Chain.d.ts +52 -0
- package/dist/tempo/stream/Chain.d.ts.map +1 -0
- package/dist/tempo/stream/Chain.js +215 -0
- package/dist/tempo/stream/Chain.js.map +1 -0
- package/dist/tempo/stream/Channel.d.ts +26 -0
- package/dist/tempo/stream/Channel.d.ts.map +1 -0
- package/dist/tempo/stream/Channel.js +27 -0
- package/dist/tempo/stream/Channel.js.map +1 -0
- package/dist/tempo/stream/ChannelStore.d.ts +103 -0
- package/dist/tempo/stream/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/stream/ChannelStore.js +100 -0
- package/dist/tempo/stream/ChannelStore.js.map +1 -0
- package/dist/tempo/stream/Receipt.d.ts +22 -0
- package/dist/tempo/stream/Receipt.d.ts.map +1 -0
- package/dist/tempo/stream/Receipt.js +34 -0
- package/dist/tempo/stream/Receipt.js.map +1 -0
- package/dist/tempo/stream/Sse.d.ts +134 -0
- package/dist/tempo/stream/Sse.d.ts.map +1 -0
- package/dist/tempo/stream/Sse.js +288 -0
- package/dist/tempo/stream/Sse.js.map +1 -0
- package/dist/tempo/stream/Types.d.ts +78 -0
- package/dist/tempo/stream/Types.d.ts.map +1 -0
- package/dist/tempo/stream/Types.js +2 -0
- package/dist/tempo/stream/Types.js.map +1 -0
- package/dist/tempo/stream/Voucher.d.ts +20 -0
- package/dist/tempo/stream/Voucher.d.ts.map +1 -0
- package/dist/tempo/stream/Voucher.js +98 -0
- package/dist/tempo/stream/Voucher.js.map +1 -0
- package/dist/tempo/stream/escrow.abi.d.ts +598 -0
- package/dist/tempo/stream/escrow.abi.d.ts.map +1 -0
- package/dist/tempo/stream/escrow.abi.js +760 -0
- package/dist/tempo/stream/escrow.abi.js.map +1 -0
- package/dist/tempo/stream/index.d.ts +8 -0
- package/dist/tempo/stream/index.d.ts.map +1 -0
- package/dist/tempo/stream/index.js +8 -0
- package/dist/tempo/stream/index.js.map +1 -0
- package/dist/viem/Account.d.ts +12 -0
- package/dist/viem/Account.d.ts.map +1 -0
- package/dist/viem/Account.js +14 -0
- package/dist/viem/Account.js.map +1 -0
- package/dist/viem/Client.d.ts +21 -0
- package/dist/viem/Client.d.ts.map +1 -0
- package/dist/viem/Client.js +19 -0
- package/dist/viem/Client.js.map +1 -0
- package/dist/zod.d.ts +17 -0
- package/dist/zod.d.ts.map +1 -0
- package/dist/zod.js +35 -0
- package/dist/zod.js.map +1 -0
- package/package.json +117 -4
- package/src/BodyDigest.test.ts +43 -0
- package/src/BodyDigest.ts +53 -0
- package/src/Challenge.test-d.ts +81 -0
- package/src/Challenge.test.ts +414 -0
- package/src/Challenge.ts +429 -0
- package/src/Credential.test.ts +227 -0
- package/src/Credential.ts +154 -0
- package/src/Errors.test.ts +402 -0
- package/src/Errors.ts +348 -0
- package/src/Expires.ts +34 -0
- package/src/Intent.test.ts +180 -0
- package/src/Intent.ts +109 -0
- package/src/Mcp.ts +81 -0
- package/src/MethodIntent.test.ts +303 -0
- package/src/MethodIntent.ts +388 -0
- package/src/PaymentRequest.test.ts +152 -0
- package/src/PaymentRequest.ts +107 -0
- package/src/Receipt.test.ts +98 -0
- package/src/Receipt.ts +129 -0
- package/src/Store.ts +84 -0
- package/src/cli.test.ts +542 -0
- package/src/cli.ts +1319 -0
- package/src/client/Methods.ts +3 -0
- package/src/client/Mppx.test-d.ts +90 -0
- package/src/client/Mppx.test.ts +468 -0
- package/src/client/Mppx.ts +149 -0
- package/src/client/Transport.test.ts +283 -0
- package/src/client/Transport.ts +115 -0
- package/src/client/index.ts +4 -0
- package/src/client/internal/Fetch.test-d.ts +57 -0
- package/src/client/internal/Fetch.test.ts +281 -0
- package/src/client/internal/Fetch.ts +157 -0
- package/src/env.d.ts +11 -0
- package/src/index.ts +12 -0
- package/src/internal/types.ts +403 -0
- package/src/mcp-sdk/client/McpClient.test-d.ts +109 -0
- package/src/mcp-sdk/client/McpClient.test.ts +219 -0
- package/src/mcp-sdk/client/McpClient.ts +187 -0
- package/src/mcp-sdk/client/index.ts +2 -0
- package/src/mcp-sdk/server/Transport.ts +94 -0
- package/src/mcp-sdk/server/index.ts +1 -0
- package/src/middlewares/elysia.ts +66 -0
- package/src/middlewares/express.test.ts +155 -0
- package/src/middlewares/express.ts +82 -0
- package/src/middlewares/hono.test.ts +148 -0
- package/src/middlewares/hono.ts +62 -0
- package/src/middlewares/internal/mppx.ts +30 -0
- package/src/middlewares/nextjs.test.ts +164 -0
- package/src/middlewares/nextjs.ts +66 -0
- package/src/proxy/Proxy.test.ts +472 -0
- package/src/proxy/Proxy.ts +175 -0
- package/src/proxy/Service.test.ts +125 -0
- package/src/proxy/Service.ts +227 -0
- package/src/proxy/index.ts +6 -0
- package/src/proxy/internal/Headers.test.ts +100 -0
- package/src/proxy/internal/Headers.ts +40 -0
- package/src/proxy/internal/Route.test.ts +143 -0
- package/src/proxy/internal/Route.ts +54 -0
- package/src/proxy/services/anthropic.ts +45 -0
- package/src/proxy/services/openai.test.ts +97 -0
- package/src/proxy/services/openai.ts +48 -0
- package/src/proxy/services/stripe.ts +49 -0
- package/src/server/Methods.ts +2 -0
- package/src/server/Mppx.test-d.ts +343 -0
- package/src/server/Mppx.test.ts +342 -0
- package/src/server/Mppx.ts +378 -0
- package/src/server/NodeListener.test.ts +188 -0
- package/src/server/NodeListener.ts +3 -0
- package/src/server/Request.test.ts +102 -0
- package/src/server/Request.ts +33 -0
- package/src/server/Response.test.ts +31 -0
- package/src/server/Response.ts +27 -0
- package/src/server/Transport.test.ts +294 -0
- package/src/server/Transport.ts +222 -0
- package/src/server/index.ts +8 -0
- package/src/stripe/Charge.integration.test.ts +326 -0
- package/src/stripe/Intents.test.ts +52 -0
- package/src/stripe/Intents.ts +27 -0
- package/src/stripe/client/Charge.ts +119 -0
- package/src/stripe/client/MethodIntents.ts +37 -0
- package/src/stripe/client/index.ts +2 -0
- package/src/stripe/index.ts +1 -0
- package/src/stripe/server/Charge.ts +121 -0
- package/src/stripe/server/MethodIntents.ts +24 -0
- package/src/stripe/server/index.ts +2 -0
- package/src/tempo/Attribution.test.ts +187 -0
- package/src/tempo/Attribution.ts +156 -0
- package/src/tempo/Intents.test.ts +84 -0
- package/src/tempo/Intents.ts +93 -0
- package/src/tempo/client/ChannelOps.ts +233 -0
- package/src/tempo/client/Charge.ts +84 -0
- package/src/tempo/client/MethodIntents.ts +28 -0
- package/src/tempo/client/Session.ts +369 -0
- package/src/tempo/client/SessionManager.test.ts +223 -0
- package/src/tempo/client/SessionManager.ts +270 -0
- package/src/tempo/client/index.ts +5 -0
- package/src/tempo/index.ts +2 -0
- package/src/tempo/internal/account.ts +47 -0
- package/src/tempo/internal/defaults.ts +20 -0
- package/src/tempo/internal/types.ts +8 -0
- package/src/tempo/server/Charge.test.ts +847 -0
- package/src/tempo/server/Charge.ts +309 -0
- package/src/tempo/server/MethodIntents.ts +29 -0
- package/src/tempo/server/Session.test.ts +1349 -0
- package/src/tempo/server/Session.ts +773 -0
- package/src/tempo/server/Sse.test.ts +289 -0
- package/src/tempo/server/index.ts +5 -0
- package/src/tempo/server/internal/transport.ts +153 -0
- package/src/tempo/stream/Chain.ts +333 -0
- package/src/tempo/stream/Channel.ts +50 -0
- package/src/tempo/stream/ChannelStore.test.ts +473 -0
- package/src/tempo/stream/ChannelStore.ts +202 -0
- package/src/tempo/stream/Receipt.test.ts +84 -0
- package/src/tempo/stream/Receipt.ts +45 -0
- package/src/tempo/stream/Sse.test.ts +401 -0
- package/src/tempo/stream/Sse.ts +375 -0
- package/src/tempo/stream/Types.ts +86 -0
- package/src/tempo/stream/Voucher.test.ts +134 -0
- package/src/tempo/stream/Voucher.ts +123 -0
- package/src/tempo/stream/escrow.abi.ts +759 -0
- package/src/tempo/stream/index.ts +7 -0
- package/src/tsconfig.json +10 -0
- package/src/viem/Account.test.ts +71 -0
- package/src/viem/Account.ts +30 -0
- package/src/viem/Client.test.ts +58 -0
- package/src/viem/Client.ts +33 -0
- package/src/zod.ts +47 -0
package/dist/Errors.d.ts
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all payment-related errors.
|
|
3
|
+
*/
|
|
4
|
+
export declare abstract class PaymentError extends Error {
|
|
5
|
+
/** RFC 9457 Problem Details type URI. */
|
|
6
|
+
abstract readonly type: string;
|
|
7
|
+
/** HTTP status code. */
|
|
8
|
+
readonly status: number;
|
|
9
|
+
/** Converts the error to RFC 9457 Problem Details format. */
|
|
10
|
+
toProblemDetails(challengeId?: string): PaymentError.ProblemDetails;
|
|
11
|
+
}
|
|
12
|
+
export declare namespace PaymentError {
|
|
13
|
+
type ProblemDetails = {
|
|
14
|
+
/** RFC 9457 Problem Details type URI. */
|
|
15
|
+
type: string;
|
|
16
|
+
/** Human-readable summary. */
|
|
17
|
+
title: string;
|
|
18
|
+
/** HTTP status code. */
|
|
19
|
+
status: number;
|
|
20
|
+
/** Human-readable explanation. */
|
|
21
|
+
detail: string;
|
|
22
|
+
/** Associated challenge ID, if applicable. */
|
|
23
|
+
challengeId?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Credential is malformed (invalid base64url, bad JSON structure).
|
|
28
|
+
*/
|
|
29
|
+
export declare class MalformedCredentialError extends PaymentError {
|
|
30
|
+
readonly name = "MalformedCredentialError";
|
|
31
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/malformed-credential";
|
|
32
|
+
constructor(options?: MalformedCredentialError.Options);
|
|
33
|
+
}
|
|
34
|
+
export declare namespace MalformedCredentialError {
|
|
35
|
+
type Options = {
|
|
36
|
+
/** Reason the credential is malformed (e.g., "invalid base64url", "invalid JSON"). */
|
|
37
|
+
reason?: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Challenge ID is unknown, expired, or already used.
|
|
42
|
+
*/
|
|
43
|
+
export declare class InvalidChallengeError extends PaymentError {
|
|
44
|
+
readonly name = "InvalidChallengeError";
|
|
45
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/invalid-challenge";
|
|
46
|
+
constructor(options?: InvalidChallengeError.Options);
|
|
47
|
+
}
|
|
48
|
+
export declare namespace InvalidChallengeError {
|
|
49
|
+
type Options = {
|
|
50
|
+
/** The invalid challenge ID. */
|
|
51
|
+
id?: string;
|
|
52
|
+
/** Reason the challenge is invalid (e.g., "expired", "already used", "unknown"). */
|
|
53
|
+
reason?: string;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Payment proof is invalid or verification failed.
|
|
58
|
+
*/
|
|
59
|
+
export declare class VerificationFailedError extends PaymentError {
|
|
60
|
+
readonly name = "VerificationFailedError";
|
|
61
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/verification-failed";
|
|
62
|
+
constructor(options?: VerificationFailedError.Options);
|
|
63
|
+
}
|
|
64
|
+
export declare namespace VerificationFailedError {
|
|
65
|
+
type Options = {
|
|
66
|
+
/** Reason verification failed (e.g., "invalid signature", "insufficient amount"). */
|
|
67
|
+
reason?: string;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Payment requires additional action (e.g., 3DS authentication).
|
|
72
|
+
*/
|
|
73
|
+
export declare class PaymentActionRequiredError extends PaymentError {
|
|
74
|
+
readonly name = "PaymentActionRequiredError";
|
|
75
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/payment-action-required";
|
|
76
|
+
constructor(options?: PaymentActionRequiredError.Options);
|
|
77
|
+
}
|
|
78
|
+
export declare namespace PaymentActionRequiredError {
|
|
79
|
+
type Options = {
|
|
80
|
+
/** Reason action is required (e.g., "requires_action"). */
|
|
81
|
+
reason?: string;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Payment has expired.
|
|
86
|
+
*/
|
|
87
|
+
export declare class PaymentExpiredError extends PaymentError {
|
|
88
|
+
readonly name = "PaymentExpiredError";
|
|
89
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/payment-expired";
|
|
90
|
+
constructor(options?: PaymentExpiredError.Options);
|
|
91
|
+
}
|
|
92
|
+
export declare namespace PaymentExpiredError {
|
|
93
|
+
type Options = {
|
|
94
|
+
/** ISO 8601 expiration timestamp. */
|
|
95
|
+
expires?: string;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* No credential was provided but payment is required.
|
|
100
|
+
*/
|
|
101
|
+
export declare class PaymentRequiredError extends PaymentError {
|
|
102
|
+
readonly name = "PaymentRequiredError";
|
|
103
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/payment-required";
|
|
104
|
+
constructor(options?: PaymentRequiredError.Options);
|
|
105
|
+
}
|
|
106
|
+
export declare namespace PaymentRequiredError {
|
|
107
|
+
type Options = {
|
|
108
|
+
/** Human-readable description of the payment. */
|
|
109
|
+
description?: string | undefined;
|
|
110
|
+
/** Server realm (e.g., hostname). */
|
|
111
|
+
realm?: string | undefined;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Credential payload does not match the expected schema.
|
|
116
|
+
*/
|
|
117
|
+
export declare class InvalidPayloadError extends PaymentError {
|
|
118
|
+
readonly name = "InvalidPayloadError";
|
|
119
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/invalid-payload";
|
|
120
|
+
constructor(options?: InvalidPayloadError.Options);
|
|
121
|
+
}
|
|
122
|
+
export declare namespace InvalidPayloadError {
|
|
123
|
+
type Options = {
|
|
124
|
+
/** Reason the payload is invalid (e.g., "missing signature field"). */
|
|
125
|
+
reason?: string;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Request is malformed or contains invalid parameters.
|
|
130
|
+
*/
|
|
131
|
+
export declare class BadRequestError extends PaymentError {
|
|
132
|
+
readonly name = "BadRequestError";
|
|
133
|
+
readonly status = 400;
|
|
134
|
+
readonly type = "https://tempoxyz.github.io/payment-auth-spec/problems/bad-request";
|
|
135
|
+
constructor(options?: BadRequestError.Options);
|
|
136
|
+
}
|
|
137
|
+
export declare namespace BadRequestError {
|
|
138
|
+
type Options = {
|
|
139
|
+
/** Reason the request is invalid. */
|
|
140
|
+
reason?: string;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Insufficient balance in the payment channel.
|
|
145
|
+
*/
|
|
146
|
+
export declare class InsufficientBalanceError extends PaymentError {
|
|
147
|
+
readonly name = "InsufficientBalanceError";
|
|
148
|
+
readonly status = 402;
|
|
149
|
+
readonly type = "https://paymentauth.org/problems/stream/insufficient-balance";
|
|
150
|
+
constructor(options?: InsufficientBalanceError.Options);
|
|
151
|
+
}
|
|
152
|
+
export declare namespace InsufficientBalanceError {
|
|
153
|
+
type Options = {
|
|
154
|
+
/** Reason for insufficient balance. */
|
|
155
|
+
reason?: string;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Voucher or close request signature is invalid.
|
|
160
|
+
*/
|
|
161
|
+
export declare class InvalidSignatureError extends PaymentError {
|
|
162
|
+
readonly name = "InvalidSignatureError";
|
|
163
|
+
readonly status = 402;
|
|
164
|
+
readonly type = "https://paymentauth.org/problems/stream/invalid-signature";
|
|
165
|
+
constructor(options?: InvalidSignatureError.Options);
|
|
166
|
+
}
|
|
167
|
+
export declare namespace InvalidSignatureError {
|
|
168
|
+
type Options = {
|
|
169
|
+
reason?: string;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Recovered signer is not authorized for this channel.
|
|
174
|
+
*/
|
|
175
|
+
export declare class SignerMismatchError extends PaymentError {
|
|
176
|
+
readonly name = "SignerMismatchError";
|
|
177
|
+
readonly status = 402;
|
|
178
|
+
readonly type = "https://paymentauth.org/problems/stream/signer-mismatch";
|
|
179
|
+
constructor(options?: SignerMismatchError.Options);
|
|
180
|
+
}
|
|
181
|
+
export declare namespace SignerMismatchError {
|
|
182
|
+
type Options = {
|
|
183
|
+
reason?: string;
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Voucher cumulative amount exceeds the channel deposit.
|
|
188
|
+
*/
|
|
189
|
+
export declare class AmountExceedsDepositError extends PaymentError {
|
|
190
|
+
readonly name = "AmountExceedsDepositError";
|
|
191
|
+
readonly status = 402;
|
|
192
|
+
readonly type = "https://paymentauth.org/problems/stream/amount-exceeds-deposit";
|
|
193
|
+
constructor(options?: AmountExceedsDepositError.Options);
|
|
194
|
+
}
|
|
195
|
+
export declare namespace AmountExceedsDepositError {
|
|
196
|
+
type Options = {
|
|
197
|
+
reason?: string;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Voucher amount increase is below the minimum delta.
|
|
202
|
+
*/
|
|
203
|
+
export declare class DeltaTooSmallError extends PaymentError {
|
|
204
|
+
readonly name = "DeltaTooSmallError";
|
|
205
|
+
readonly status = 402;
|
|
206
|
+
readonly type = "https://paymentauth.org/problems/stream/delta-too-small";
|
|
207
|
+
constructor(options?: DeltaTooSmallError.Options);
|
|
208
|
+
}
|
|
209
|
+
export declare namespace DeltaTooSmallError {
|
|
210
|
+
type Options = {
|
|
211
|
+
reason?: string;
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* No channel with this ID exists.
|
|
216
|
+
*/
|
|
217
|
+
export declare class ChannelNotFoundError extends PaymentError {
|
|
218
|
+
readonly name = "ChannelNotFoundError";
|
|
219
|
+
readonly status = 410;
|
|
220
|
+
readonly type = "https://paymentauth.org/problems/stream/channel-not-found";
|
|
221
|
+
constructor(options?: ChannelNotFoundError.Options);
|
|
222
|
+
}
|
|
223
|
+
export declare namespace ChannelNotFoundError {
|
|
224
|
+
type Options = {
|
|
225
|
+
reason?: string;
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Channel is closed or finalized.
|
|
230
|
+
*/
|
|
231
|
+
export declare class ChannelClosedError extends PaymentError {
|
|
232
|
+
readonly name = "ChannelClosedError";
|
|
233
|
+
readonly status = 410;
|
|
234
|
+
readonly type = "https://paymentauth.org/problems/stream/channel-finalized";
|
|
235
|
+
constructor(options?: ChannelClosedError.Options);
|
|
236
|
+
}
|
|
237
|
+
export declare namespace ChannelClosedError {
|
|
238
|
+
type Options = {
|
|
239
|
+
/** Reason the channel is closed. */
|
|
240
|
+
reason?: string;
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=Errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../src/Errors.ts"],"names":[],"mappings":"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"}
|
package/dist/Errors.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all payment-related errors.
|
|
3
|
+
*/
|
|
4
|
+
export class PaymentError extends Error {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
/** HTTP status code. */
|
|
8
|
+
this.status = 402;
|
|
9
|
+
}
|
|
10
|
+
/** Converts the error to RFC 9457 Problem Details format. */
|
|
11
|
+
toProblemDetails(challengeId) {
|
|
12
|
+
return {
|
|
13
|
+
type: this.type,
|
|
14
|
+
title: this.name,
|
|
15
|
+
status: this.status,
|
|
16
|
+
detail: this.message,
|
|
17
|
+
...(challengeId && { challengeId }),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Credential is malformed (invalid base64url, bad JSON structure).
|
|
23
|
+
*/
|
|
24
|
+
export class MalformedCredentialError extends PaymentError {
|
|
25
|
+
constructor(options = {}) {
|
|
26
|
+
const { reason } = options;
|
|
27
|
+
super(reason ? `Credential is malformed: ${reason}.` : 'Credential is malformed.');
|
|
28
|
+
this.name = 'MalformedCredentialError';
|
|
29
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/malformed-credential';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Challenge ID is unknown, expired, or already used.
|
|
34
|
+
*/
|
|
35
|
+
export class InvalidChallengeError extends PaymentError {
|
|
36
|
+
constructor(options = {}) {
|
|
37
|
+
const { id, reason } = options;
|
|
38
|
+
const idPart = id ? ` "${id}"` : '';
|
|
39
|
+
const reasonPart = reason ? `: ${reason}` : '';
|
|
40
|
+
super(`Challenge${idPart} is invalid${reasonPart}.`);
|
|
41
|
+
this.name = 'InvalidChallengeError';
|
|
42
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/invalid-challenge';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Payment proof is invalid or verification failed.
|
|
47
|
+
*/
|
|
48
|
+
export class VerificationFailedError extends PaymentError {
|
|
49
|
+
constructor(options = {}) {
|
|
50
|
+
const { reason } = options;
|
|
51
|
+
super(reason ? `Payment verification failed: ${reason}.` : 'Payment verification failed.');
|
|
52
|
+
this.name = 'VerificationFailedError';
|
|
53
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/verification-failed';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Payment requires additional action (e.g., 3DS authentication).
|
|
58
|
+
*/
|
|
59
|
+
export class PaymentActionRequiredError extends PaymentError {
|
|
60
|
+
constructor(options = {}) {
|
|
61
|
+
const { reason } = options;
|
|
62
|
+
super(reason ? `Payment requires action: ${reason}.` : 'Payment requires action.');
|
|
63
|
+
this.name = 'PaymentActionRequiredError';
|
|
64
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/payment-action-required';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Payment has expired.
|
|
69
|
+
*/
|
|
70
|
+
export class PaymentExpiredError extends PaymentError {
|
|
71
|
+
constructor(options = {}) {
|
|
72
|
+
const { expires } = options;
|
|
73
|
+
super(expires ? `Payment expired at ${expires}.` : 'Payment has expired.');
|
|
74
|
+
this.name = 'PaymentExpiredError';
|
|
75
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/payment-expired';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* No credential was provided but payment is required.
|
|
80
|
+
*/
|
|
81
|
+
export class PaymentRequiredError extends PaymentError {
|
|
82
|
+
constructor(options = {}) {
|
|
83
|
+
const { description, realm } = options;
|
|
84
|
+
const parts = ['Payment is required'];
|
|
85
|
+
if (realm)
|
|
86
|
+
parts.push(`for "${realm}"`);
|
|
87
|
+
if (description)
|
|
88
|
+
parts.push(`(${description})`);
|
|
89
|
+
super(`${parts.join(' ')}.`);
|
|
90
|
+
this.name = 'PaymentRequiredError';
|
|
91
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/payment-required';
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Credential payload does not match the expected schema.
|
|
96
|
+
*/
|
|
97
|
+
export class InvalidPayloadError extends PaymentError {
|
|
98
|
+
constructor(options = {}) {
|
|
99
|
+
const { reason } = options;
|
|
100
|
+
super(reason ? `Credential payload is invalid: ${reason}.` : 'Credential payload is invalid.');
|
|
101
|
+
this.name = 'InvalidPayloadError';
|
|
102
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/invalid-payload';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Request is malformed or contains invalid parameters.
|
|
107
|
+
*/
|
|
108
|
+
export class BadRequestError extends PaymentError {
|
|
109
|
+
constructor(options = {}) {
|
|
110
|
+
const { reason } = options;
|
|
111
|
+
super(reason ? `Bad request: ${reason}.` : 'Bad request.');
|
|
112
|
+
this.name = 'BadRequestError';
|
|
113
|
+
this.status = 400;
|
|
114
|
+
this.type = 'https://tempoxyz.github.io/payment-auth-spec/problems/bad-request';
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Insufficient balance in the payment channel.
|
|
119
|
+
*/
|
|
120
|
+
export class InsufficientBalanceError extends PaymentError {
|
|
121
|
+
constructor(options = {}) {
|
|
122
|
+
const { reason } = options;
|
|
123
|
+
super(reason ? `Insufficient balance: ${reason}.` : 'Insufficient balance.');
|
|
124
|
+
this.name = 'InsufficientBalanceError';
|
|
125
|
+
this.status = 402;
|
|
126
|
+
this.type = 'https://paymentauth.org/problems/stream/insufficient-balance';
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Voucher or close request signature is invalid.
|
|
131
|
+
*/
|
|
132
|
+
export class InvalidSignatureError extends PaymentError {
|
|
133
|
+
constructor(options = {}) {
|
|
134
|
+
const { reason } = options;
|
|
135
|
+
super(reason ? `Invalid signature: ${reason}.` : 'Invalid signature.');
|
|
136
|
+
this.name = 'InvalidSignatureError';
|
|
137
|
+
this.status = 402;
|
|
138
|
+
this.type = 'https://paymentauth.org/problems/stream/invalid-signature';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Recovered signer is not authorized for this channel.
|
|
143
|
+
*/
|
|
144
|
+
export class SignerMismatchError extends PaymentError {
|
|
145
|
+
constructor(options = {}) {
|
|
146
|
+
const { reason } = options;
|
|
147
|
+
super(reason ? `Signer mismatch: ${reason}.` : 'Signer is not authorized for this channel.');
|
|
148
|
+
this.name = 'SignerMismatchError';
|
|
149
|
+
this.status = 402;
|
|
150
|
+
this.type = 'https://paymentauth.org/problems/stream/signer-mismatch';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Voucher cumulative amount exceeds the channel deposit.
|
|
155
|
+
*/
|
|
156
|
+
export class AmountExceedsDepositError extends PaymentError {
|
|
157
|
+
constructor(options = {}) {
|
|
158
|
+
const { reason } = options;
|
|
159
|
+
super(reason ? `Amount exceeds deposit: ${reason}.` : 'Voucher amount exceeds channel deposit.');
|
|
160
|
+
this.name = 'AmountExceedsDepositError';
|
|
161
|
+
this.status = 402;
|
|
162
|
+
this.type = 'https://paymentauth.org/problems/stream/amount-exceeds-deposit';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Voucher amount increase is below the minimum delta.
|
|
167
|
+
*/
|
|
168
|
+
export class DeltaTooSmallError extends PaymentError {
|
|
169
|
+
constructor(options = {}) {
|
|
170
|
+
const { reason } = options;
|
|
171
|
+
super(reason ? `Delta too small: ${reason}.` : 'Amount increase below minimum voucher delta.');
|
|
172
|
+
this.name = 'DeltaTooSmallError';
|
|
173
|
+
this.status = 402;
|
|
174
|
+
this.type = 'https://paymentauth.org/problems/stream/delta-too-small';
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* No channel with this ID exists.
|
|
179
|
+
*/
|
|
180
|
+
export class ChannelNotFoundError extends PaymentError {
|
|
181
|
+
constructor(options = {}) {
|
|
182
|
+
const { reason } = options;
|
|
183
|
+
super(reason ? `Channel not found: ${reason}.` : 'No channel with this ID exists.');
|
|
184
|
+
this.name = 'ChannelNotFoundError';
|
|
185
|
+
this.status = 410;
|
|
186
|
+
this.type = 'https://paymentauth.org/problems/stream/channel-not-found';
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Channel is closed or finalized.
|
|
191
|
+
*/
|
|
192
|
+
export class ChannelClosedError extends PaymentError {
|
|
193
|
+
constructor(options = {}) {
|
|
194
|
+
const { reason } = options;
|
|
195
|
+
super(reason ? `Channel closed: ${reason}.` : 'Channel is closed.');
|
|
196
|
+
this.name = 'ChannelClosedError';
|
|
197
|
+
this.status = 410;
|
|
198
|
+
this.type = 'https://paymentauth.org/problems/stream/channel-finalized';
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=Errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../src/Errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Returns an ISO 8601 datetime string `n` days from now. */
|
|
2
|
+
export declare function days(n: number): string;
|
|
3
|
+
/** Returns an ISO 8601 datetime string `n` hours from now. */
|
|
4
|
+
export declare function hours(n: number): string;
|
|
5
|
+
/** Returns an ISO 8601 datetime string `n` minutes from now. */
|
|
6
|
+
export declare function minutes(n: number): string;
|
|
7
|
+
/** Returns an ISO 8601 datetime string `n` months (30 days) from now. */
|
|
8
|
+
export declare function months(n: number): string;
|
|
9
|
+
/** Returns an ISO 8601 datetime string `n` seconds from now. */
|
|
10
|
+
export declare function seconds(n: number): string;
|
|
11
|
+
/** Returns an ISO 8601 datetime string `n` weeks from now. */
|
|
12
|
+
export declare function weeks(n: number): string;
|
|
13
|
+
/** Returns an ISO 8601 datetime string `n` years (365 days) from now. */
|
|
14
|
+
export declare function years(n: number): string;
|
|
15
|
+
//# sourceMappingURL=Expires.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Expires.d.ts","sourceRoot":"","sources":["../src/Expires.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,UAE7B;AAED,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAE9B;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAEhC;AAED,yEAAyE;AACzE,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,UAE/B;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAEhC;AAED,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAE9B;AAED,yEAAyE;AACzE,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAE9B"}
|
package/dist/Expires.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Returns an ISO 8601 datetime string `n` days from now. */
|
|
2
|
+
export function days(n) {
|
|
3
|
+
return new Date(Date.now() + n * 24 * 60 * 60 * 1000).toISOString();
|
|
4
|
+
}
|
|
5
|
+
/** Returns an ISO 8601 datetime string `n` hours from now. */
|
|
6
|
+
export function hours(n) {
|
|
7
|
+
return new Date(Date.now() + n * 60 * 60 * 1000).toISOString();
|
|
8
|
+
}
|
|
9
|
+
/** Returns an ISO 8601 datetime string `n` minutes from now. */
|
|
10
|
+
export function minutes(n) {
|
|
11
|
+
return new Date(Date.now() + n * 60 * 1000).toISOString();
|
|
12
|
+
}
|
|
13
|
+
/** Returns an ISO 8601 datetime string `n` months (30 days) from now. */
|
|
14
|
+
export function months(n) {
|
|
15
|
+
return new Date(Date.now() + n * 30 * 24 * 60 * 60 * 1000).toISOString();
|
|
16
|
+
}
|
|
17
|
+
/** Returns an ISO 8601 datetime string `n` seconds from now. */
|
|
18
|
+
export function seconds(n) {
|
|
19
|
+
return new Date(Date.now() + n * 1000).toISOString();
|
|
20
|
+
}
|
|
21
|
+
/** Returns an ISO 8601 datetime string `n` weeks from now. */
|
|
22
|
+
export function weeks(n) {
|
|
23
|
+
return new Date(Date.now() + n * 7 * 24 * 60 * 60 * 1000).toISOString();
|
|
24
|
+
}
|
|
25
|
+
/** Returns an ISO 8601 datetime string `n` years (365 days) from now. */
|
|
26
|
+
export function years(n) {
|
|
27
|
+
return new Date(Date.now() + n * 365 * 24 * 60 * 60 * 1000).toISOString();
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Expires.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Expires.js","sourceRoot":"","sources":["../src/Expires.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AACrE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AAChE,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AAC3D,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,MAAM,CAAC,CAAS;IAC9B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AAC1E,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AACtD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AACzE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AAC3E,CAAC"}
|
package/dist/Intent.d.ts
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as z from './zod.js';
|
|
2
|
+
/**
|
|
3
|
+
* A payment intent.
|
|
4
|
+
*/
|
|
5
|
+
export type Intent = {
|
|
6
|
+
name: string;
|
|
7
|
+
schema: {
|
|
8
|
+
request: z.z.ZodMiniObject | z.z.ZodMiniPipe<z.z.ZodMiniObject>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Creates an intent.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { z } from 'mppx'
|
|
17
|
+
*
|
|
18
|
+
* const charge = Intent.from({
|
|
19
|
+
* name: 'charge',
|
|
20
|
+
* schema: {
|
|
21
|
+
* request: z.object({
|
|
22
|
+
* amount: z.string(),
|
|
23
|
+
* currency: z.string(),
|
|
24
|
+
* recipient: z.optional(z.string()),
|
|
25
|
+
* }),
|
|
26
|
+
* },
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function from<const intent extends Intent>(intent: intent): intent;
|
|
31
|
+
/**
|
|
32
|
+
* Charge intent for one-time immediate payments.
|
|
33
|
+
*
|
|
34
|
+
* @see https://github.com/tempoxyz/payment-auth-spec/blob/main/specs/intents/draft-payment-intent-charge-00.md
|
|
35
|
+
*/
|
|
36
|
+
export declare const charge: {
|
|
37
|
+
readonly name: "charge";
|
|
38
|
+
readonly schema: {
|
|
39
|
+
readonly request: z.ZodMiniPipe<z.ZodMiniObject<{
|
|
40
|
+
amount: z.ZodMiniString<string>;
|
|
41
|
+
currency: z.ZodMiniString<string>;
|
|
42
|
+
decimals: z.ZodMiniNumber<number>;
|
|
43
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
44
|
+
expires: z.ZodMiniDefault<z.ZodMiniString<string>>;
|
|
45
|
+
externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
46
|
+
recipient: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
47
|
+
}, z.core.$strip>, z.ZodMiniTransform<{
|
|
48
|
+
amount: string;
|
|
49
|
+
currency: string;
|
|
50
|
+
expires: string;
|
|
51
|
+
description?: string | undefined;
|
|
52
|
+
externalId?: string | undefined;
|
|
53
|
+
recipient?: string | undefined;
|
|
54
|
+
}, {
|
|
55
|
+
amount: string;
|
|
56
|
+
currency: string;
|
|
57
|
+
decimals: number;
|
|
58
|
+
expires: string;
|
|
59
|
+
description?: string | undefined;
|
|
60
|
+
externalId?: string | undefined;
|
|
61
|
+
recipient?: string | undefined;
|
|
62
|
+
}>>;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Session intent for pay-as-you-go streaming payments.
|
|
67
|
+
*
|
|
68
|
+
* Uses cumulative vouchers over a payment channel for
|
|
69
|
+
* incremental micropayments without per-request transactions.
|
|
70
|
+
*/
|
|
71
|
+
export declare const session: {
|
|
72
|
+
readonly name: "session";
|
|
73
|
+
readonly schema: {
|
|
74
|
+
readonly request: z.ZodMiniPipe<z.ZodMiniObject<{
|
|
75
|
+
amount: z.ZodMiniString<string>;
|
|
76
|
+
unitType: z.ZodMiniString<string>;
|
|
77
|
+
currency: z.ZodMiniString<string>;
|
|
78
|
+
decimals: z.ZodMiniNumber<number>;
|
|
79
|
+
recipient: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
80
|
+
suggestedDeposit: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
81
|
+
}, z.core.$strip>, z.ZodMiniTransform<{
|
|
82
|
+
suggestedDeposit?: string | undefined;
|
|
83
|
+
amount: string;
|
|
84
|
+
unitType: string;
|
|
85
|
+
currency: string;
|
|
86
|
+
recipient?: string | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
amount: string;
|
|
89
|
+
unitType: string;
|
|
90
|
+
currency: string;
|
|
91
|
+
decimals: number;
|
|
92
|
+
recipient?: string | undefined;
|
|
93
|
+
suggestedDeposit?: string | undefined;
|
|
94
|
+
}>>;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
/** @internal Extracts shape from an intent's request schema, supporting both object and pipe. */
|
|
98
|
+
export type ShapeOf<intent extends Intent> = intent['schema']['request'] extends z.z.ZodMiniObject ? intent['schema']['request']['shape'] : intent['schema']['request'] extends z.z.ZodMiniPipe<infer A> ? A extends z.z.ZodMiniObject ? A['shape'] : never : never;
|
|
99
|
+
/** @internal Extracts the inner object from a pipe or returns the schema directly. */
|
|
100
|
+
export declare function shapeOf(intent: Intent): Record<string, z.z.ZodMiniType>;
|
|
101
|
+
//# sourceMappingURL=Intent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Intent.d.ts","sourceRoot":"","sources":["../src/Intent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;KAChE,CAAA;CACF,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBjB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAA;AAEF,iGAAiG;AACjG,MAAM,MAAM,OAAO,CAAC,MAAM,SAAS,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,GAC9F,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAC1D,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,GACzB,CAAC,CAAC,OAAO,CAAC,GACV,KAAK,GACP,KAAK,CAAA;AAEX,sFAAsF;AACtF,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAIvE"}
|