mppx 0.8.15 → 0.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (966) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +61 -39
  4. package/dist/Constants.d.ts +17 -17
  5. package/dist/Errors.d.ts +3 -3
  6. package/dist/Method.d.ts +35 -5
  7. package/dist/Method.js +7 -22
  8. package/dist/Store.d.ts +19 -0
  9. package/dist/Store.js +43 -0
  10. package/dist/attestation/Client.d.ts +17 -0
  11. package/dist/attestation/Client.js +28 -0
  12. package/dist/attestation/Constants.d.ts +15 -0
  13. package/dist/attestation/Constants.js +15 -0
  14. package/dist/attestation/Server.d.ts +4 -0
  15. package/dist/attestation/Server.js +8 -0
  16. package/dist/attestation/Types.d.ts +76 -0
  17. package/dist/attestation/Types.js +2 -0
  18. package/dist/attestation/index.d.ts +6 -0
  19. package/dist/attestation/index.js +6 -0
  20. package/dist/attestation/internal/HttpMessageSignature.d.ts +73 -0
  21. package/dist/attestation/internal/HttpMessageSignature.js +320 -0
  22. package/dist/attestation/internal/SigningContext.d.ts +4 -0
  23. package/dist/attestation/internal/SigningContext.js +11 -0
  24. package/dist/bin.js +3 -3
  25. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  26. package/dist/cli/account.d.ts +14 -14
  27. package/dist/cli/cli.d.ts +6 -6
  28. package/dist/cli/cli.js +253 -1504
  29. package/dist/cli/plugins/index.js +19 -5
  30. package/dist/cli/plugins/tempo.js +7 -3
  31. package/dist/cli/sessions/Manager.js +7 -4
  32. package/dist/cli/sessions/commands.d.ts +4 -4
  33. package/dist/cli/sessions/request.d.ts +2 -0
  34. package/dist/cli/sessions/request.js +18 -0
  35. package/dist/cli/sessions/store.js +28 -14
  36. package/dist/cli/utils.d.ts +1 -1
  37. package/dist/cli/validate/index.d.ts +3 -3
  38. package/dist/client/Mppx.d.ts +3 -0
  39. package/dist/client/Mppx.js +13 -5
  40. package/dist/client/Transport.d.ts +3 -5
  41. package/dist/client/Transport.js +1 -17
  42. package/dist/client/internal/Fetch.js +2 -6
  43. package/dist/discovery/Discovery.js +2 -1
  44. package/dist/discovery/OpenApi.d.ts +3 -5
  45. package/dist/discovery/OpenApi.js +13 -34
  46. package/dist/discovery/internal/Metadata.d.ts +20 -0
  47. package/dist/discovery/internal/Metadata.js +36 -0
  48. package/dist/evm/Methods.d.ts +11 -11
  49. package/dist/evm/Types.d.ts +17 -17
  50. package/dist/evm/client/Charge.d.ts +11 -11
  51. package/dist/evm/client/Charge.js +8 -0
  52. package/dist/evm/client/Methods.d.ts +11 -11
  53. package/dist/evm/server/Charge.d.ts +1 -1
  54. package/dist/evm/server/Charge.js +2 -0
  55. package/dist/evm/server/Methods.d.ts +11 -11
  56. package/dist/internal/HeaderCodec.d.ts +2 -2
  57. package/dist/internal/types.d.ts +6 -0
  58. package/dist/proxy/Proxy.d.ts +2 -0
  59. package/dist/proxy/Proxy.js +117 -9
  60. package/dist/proxy/Service.d.ts +36 -1
  61. package/dist/proxy/Service.js +9 -8
  62. package/dist/proxy/services/anthropic.js +1 -0
  63. package/dist/proxy/services/openai.js +1 -0
  64. package/dist/proxy/services/stripe.js +1 -0
  65. package/dist/server/Mppx.d.ts +75 -13
  66. package/dist/server/Mppx.js +201 -23
  67. package/dist/server/core.d.ts +9 -0
  68. package/dist/server/core.js +9 -0
  69. package/dist/server/internal/html/config.d.ts +9 -9
  70. package/dist/server/internal/html/constants.d.ts +17 -17
  71. package/dist/stripe/Methods.d.ts +10 -10
  72. package/dist/stripe/client/Charge.d.ts +10 -10
  73. package/dist/stripe/client/Methods.d.ts +10 -10
  74. package/dist/stripe/internal/constants.d.ts +1 -1
  75. package/dist/stripe/internal/constants.js +1 -1
  76. package/dist/stripe/internal/types.d.ts +1 -0
  77. package/dist/stripe/server/Charge.d.ts +11 -11
  78. package/dist/stripe/server/Charge.js +51 -5
  79. package/dist/stripe/server/Methods.d.ts +137 -48
  80. package/dist/stripe/server/Methods.js +265 -4
  81. package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
  82. package/dist/stripe/server/internal/deposit-address.js +28 -0
  83. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  84. package/dist/stripe/server/internal/html.gen.js +1 -1
  85. package/dist/stripe/server/internal/record-payment.d.ts +15 -0
  86. package/dist/stripe/server/internal/record-payment.js +42 -0
  87. package/dist/stripe/server/internal/request.d.ts +25 -0
  88. package/dist/stripe/server/internal/request.js +29 -0
  89. package/dist/stripe/server/spt.d.ts +8 -0
  90. package/dist/stripe/server/spt.js +8 -0
  91. package/dist/tap/Constants.d.ts +28 -0
  92. package/dist/tap/Constants.js +32 -0
  93. package/dist/tap/Types.d.ts +11 -0
  94. package/dist/tap/Types.js +2 -0
  95. package/dist/tap/client/index.d.ts +26 -0
  96. package/dist/tap/client/index.js +33 -0
  97. package/dist/tap/index.d.ts +5 -0
  98. package/dist/tap/index.js +5 -0
  99. package/dist/tap/server/index.d.ts +20 -0
  100. package/dist/tap/server/index.js +36 -0
  101. package/dist/tempo/Attribution.d.ts +1 -1
  102. package/dist/tempo/Methods.d.ts +73 -60
  103. package/dist/tempo/Methods.js +14 -3
  104. package/dist/tempo/Proof.d.ts +16 -16
  105. package/dist/tempo/client/Charge.d.ts +22 -19
  106. package/dist/tempo/client/Charge.js +32 -16
  107. package/dist/tempo/client/Methods.d.ts +51 -38
  108. package/dist/tempo/client/Subscription.d.ts +23 -23
  109. package/dist/tempo/internal/address.d.ts +2 -1
  110. package/dist/tempo/internal/address.js +3 -1
  111. package/dist/tempo/internal/auto-swap.js +4 -19
  112. package/dist/tempo/internal/defaults.d.ts +17 -6
  113. package/dist/tempo/internal/defaults.js +11 -0
  114. package/dist/tempo/internal/fee-payer.d.ts +12 -12
  115. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  116. package/dist/tempo/internal/machine-token-charge.js +113 -0
  117. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  118. package/dist/tempo/internal/machine-token-session.js +173 -0
  119. package/dist/tempo/internal/proof.d.ts +17 -17
  120. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  121. package/dist/tempo/internal/signature-envelope.js +28 -0
  122. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  123. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  124. package/dist/tempo/legacy/client/Session.d.ts +33 -21
  125. package/dist/tempo/legacy/client/Session.js +3 -3
  126. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  127. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  128. package/dist/tempo/legacy/index.d.ts +1 -3
  129. package/dist/tempo/legacy/index.js +1 -3
  130. package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
  131. package/dist/tempo/server/Charge.d.ts +28 -11
  132. package/dist/tempo/server/Charge.js +101 -55
  133. package/dist/tempo/server/Methods.d.ts +58 -56
  134. package/dist/tempo/server/Methods.js +8 -18
  135. package/dist/tempo/server/Relay.d.ts +1 -1
  136. package/dist/tempo/server/Relay.js +2 -2
  137. package/dist/tempo/server/Subscription.d.ts +25 -25
  138. package/dist/tempo/server/Subscription.js +2 -0
  139. package/dist/tempo/server/index.d.ts +1 -1
  140. package/dist/tempo/server/index.js +1 -1
  141. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  142. package/dist/tempo/server/internal/html.gen.js +1 -1
  143. package/dist/tempo/server/internal/transport.d.ts +2 -0
  144. package/dist/tempo/server/internal/transport.js +9 -2
  145. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  146. package/dist/tempo/session/client/ChannelOps.js +35 -6
  147. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  148. package/dist/tempo/session/client/ChannelStore.js +2 -2
  149. package/dist/tempo/session/client/CredentialState.d.ts +18 -3
  150. package/dist/tempo/session/client/CredentialState.js +77 -76
  151. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  152. package/dist/tempo/session/client/Runtime.js +21 -5
  153. package/dist/tempo/session/client/Session.d.ts +34 -22
  154. package/dist/tempo/session/client/Session.js +186 -63
  155. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  156. package/dist/tempo/session/client/SessionManager.js +35 -11
  157. package/dist/tempo/session/client/Transports.d.ts +2 -0
  158. package/dist/tempo/session/client/Transports.js +12 -2
  159. package/dist/tempo/session/precompile/Chain.d.ts +37 -2
  160. package/dist/tempo/session/precompile/Chain.js +116 -15
  161. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  162. package/dist/tempo/session/precompile/Protocol.js +7 -0
  163. package/dist/tempo/session/precompile/Voucher.d.ts +7 -5
  164. package/dist/tempo/session/precompile/Voucher.js +6 -12
  165. package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
  166. package/dist/tempo/session/server/ChannelStore.d.ts +15 -0
  167. package/dist/tempo/session/server/ChannelStore.js +27 -12
  168. package/dist/tempo/session/server/CredentialVerification.d.ts +39 -20
  169. package/dist/tempo/session/server/CredentialVerification.js +359 -89
  170. package/dist/tempo/session/server/MeteredStream.d.ts +4 -1
  171. package/dist/tempo/session/server/MeteredStream.js +8 -5
  172. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  173. package/dist/tempo/session/server/RequestState.js +61 -15
  174. package/dist/tempo/session/server/Session.d.ts +46 -23
  175. package/dist/tempo/session/server/Session.js +150 -56
  176. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  177. package/dist/tempo/session/server/Settlement.js +53 -21
  178. package/dist/tempo/session/server/Sse.d.ts +3 -1
  179. package/dist/tempo/session/server/Sse.js +2 -1
  180. package/dist/tempo/session/server/Transports.d.ts +1 -1
  181. package/dist/tempo/session/server/Transports.js +1 -0
  182. package/dist/tempo/session/server/Ws.d.ts +6 -1
  183. package/dist/tempo/session/server/Ws.js +1 -0
  184. package/dist/tempo/subscription/KeyAuthorization.d.ts +39 -39
  185. package/dist/web-bot-auth/Constants.d.ts +20 -0
  186. package/dist/web-bot-auth/Constants.js +24 -0
  187. package/dist/web-bot-auth/Types.d.ts +10 -0
  188. package/dist/web-bot-auth/Types.js +2 -0
  189. package/dist/web-bot-auth/client/index.d.ts +29 -0
  190. package/dist/web-bot-auth/client/index.js +64 -0
  191. package/dist/web-bot-auth/index.d.ts +7 -0
  192. package/dist/web-bot-auth/index.js +7 -0
  193. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
  194. package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
  195. package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
  196. package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
  197. package/dist/web-bot-auth/server/index.d.ts +35 -0
  198. package/dist/web-bot-auth/server/index.js +88 -0
  199. package/dist/x402/Types.d.ts +6 -6
  200. package/dist/x402/client/Exact.d.ts +8 -0
  201. package/dist/x402/client/Exact.js +40 -10
  202. package/dist/x402/server/EvmCharge.d.ts +22 -0
  203. package/dist/x402/server/EvmCharge.js +54 -20
  204. package/package.json +28 -34
  205. package/dist/BodyDigest.d.ts.map +0 -1
  206. package/dist/BodyDigest.js.map +0 -1
  207. package/dist/Challenge.d.ts.map +0 -1
  208. package/dist/Challenge.js.map +0 -1
  209. package/dist/Constants.d.ts.map +0 -1
  210. package/dist/Constants.js.map +0 -1
  211. package/dist/Credential.d.ts.map +0 -1
  212. package/dist/Credential.js.map +0 -1
  213. package/dist/Errors.d.ts.map +0 -1
  214. package/dist/Errors.js.map +0 -1
  215. package/dist/Expires.d.ts.map +0 -1
  216. package/dist/Expires.js.map +0 -1
  217. package/dist/Html.d.ts.map +0 -1
  218. package/dist/Html.js.map +0 -1
  219. package/dist/Mcp.d.ts.map +0 -1
  220. package/dist/Mcp.js.map +0 -1
  221. package/dist/Method.d.ts.map +0 -1
  222. package/dist/Method.js.map +0 -1
  223. package/dist/PaymentRequest.d.ts.map +0 -1
  224. package/dist/PaymentRequest.js.map +0 -1
  225. package/dist/Receipt.d.ts.map +0 -1
  226. package/dist/Receipt.js.map +0 -1
  227. package/dist/Store.d.ts.map +0 -1
  228. package/dist/Store.js.map +0 -1
  229. package/dist/bin.d.ts.map +0 -1
  230. package/dist/bin.js.map +0 -1
  231. package/dist/cli/account.d.ts.map +0 -1
  232. package/dist/cli/account.js.map +0 -1
  233. package/dist/cli/cli.d.ts.map +0 -1
  234. package/dist/cli/cli.js.map +0 -1
  235. package/dist/cli/config.d.ts.map +0 -1
  236. package/dist/cli/config.js.map +0 -1
  237. package/dist/cli/internal.d.ts.map +0 -1
  238. package/dist/cli/internal.js.map +0 -1
  239. package/dist/cli/plugins/evm.d.ts.map +0 -1
  240. package/dist/cli/plugins/evm.js.map +0 -1
  241. package/dist/cli/plugins/index.d.ts.map +0 -1
  242. package/dist/cli/plugins/index.js.map +0 -1
  243. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  244. package/dist/cli/plugins/plugin.js.map +0 -1
  245. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  246. package/dist/cli/plugins/stripe.js.map +0 -1
  247. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  248. package/dist/cli/plugins/tempo.js.map +0 -1
  249. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  250. package/dist/cli/sessions/Manager.js.map +0 -1
  251. package/dist/cli/sessions/commands.d.ts.map +0 -1
  252. package/dist/cli/sessions/commands.js.map +0 -1
  253. package/dist/cli/sessions/request.d.ts.map +0 -1
  254. package/dist/cli/sessions/request.js.map +0 -1
  255. package/dist/cli/sessions/store.d.ts.map +0 -1
  256. package/dist/cli/sessions/store.js.map +0 -1
  257. package/dist/cli/utils.d.ts.map +0 -1
  258. package/dist/cli/utils.js.map +0 -1
  259. package/dist/cli/validate/challenge.d.ts.map +0 -1
  260. package/dist/cli/validate/challenge.js.map +0 -1
  261. package/dist/cli/validate/discovery.d.ts.map +0 -1
  262. package/dist/cli/validate/discovery.js.map +0 -1
  263. package/dist/cli/validate/helpers.d.ts.map +0 -1
  264. package/dist/cli/validate/helpers.js.map +0 -1
  265. package/dist/cli/validate/index.d.ts.map +0 -1
  266. package/dist/cli/validate/index.js.map +0 -1
  267. package/dist/cli/validate/messages.d.ts.map +0 -1
  268. package/dist/cli/validate/messages.js.map +0 -1
  269. package/dist/cli/validate/payment.d.ts.map +0 -1
  270. package/dist/cli/validate/payment.js.map +0 -1
  271. package/dist/client/Methods.d.ts.map +0 -1
  272. package/dist/client/Methods.js.map +0 -1
  273. package/dist/client/Mppx.d.ts.map +0 -1
  274. package/dist/client/Mppx.js.map +0 -1
  275. package/dist/client/Transport.d.ts.map +0 -1
  276. package/dist/client/Transport.js.map +0 -1
  277. package/dist/client/index.d.ts.map +0 -1
  278. package/dist/client/index.js.map +0 -1
  279. package/dist/client/internal/Fetch.d.ts.map +0 -1
  280. package/dist/client/internal/Fetch.js.map +0 -1
  281. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  282. package/dist/client/internal/MethodChallenge.js.map +0 -1
  283. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  284. package/dist/client/internal/MethodResponse.js.map +0 -1
  285. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  286. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  287. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  288. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  289. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  290. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  291. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  292. package/dist/client/internal/protocols/Shared.js.map +0 -1
  293. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  294. package/dist/client/internal/protocols/X402.js.map +0 -1
  295. package/dist/client/node.d.ts.map +0 -1
  296. package/dist/client/node.js.map +0 -1
  297. package/dist/discovery/Discovery.d.ts.map +0 -1
  298. package/dist/discovery/Discovery.js.map +0 -1
  299. package/dist/discovery/OpenApi.d.ts.map +0 -1
  300. package/dist/discovery/OpenApi.js.map +0 -1
  301. package/dist/discovery/Validate.d.ts.map +0 -1
  302. package/dist/discovery/Validate.js.map +0 -1
  303. package/dist/discovery/index.d.ts.map +0 -1
  304. package/dist/discovery/index.js.map +0 -1
  305. package/dist/evm/Assets.d.ts.map +0 -1
  306. package/dist/evm/Assets.js.map +0 -1
  307. package/dist/evm/Chains.d.ts.map +0 -1
  308. package/dist/evm/Chains.js.map +0 -1
  309. package/dist/evm/Methods.d.ts.map +0 -1
  310. package/dist/evm/Methods.js.map +0 -1
  311. package/dist/evm/Types.d.ts.map +0 -1
  312. package/dist/evm/Types.js.map +0 -1
  313. package/dist/evm/client/Charge.d.ts.map +0 -1
  314. package/dist/evm/client/Charge.js.map +0 -1
  315. package/dist/evm/client/Methods.d.ts.map +0 -1
  316. package/dist/evm/client/Methods.js.map +0 -1
  317. package/dist/evm/client/index.d.ts.map +0 -1
  318. package/dist/evm/client/index.js.map +0 -1
  319. package/dist/evm/index.d.ts.map +0 -1
  320. package/dist/evm/index.js.map +0 -1
  321. package/dist/evm/server/Charge.d.ts.map +0 -1
  322. package/dist/evm/server/Charge.js.map +0 -1
  323. package/dist/evm/server/Methods.d.ts.map +0 -1
  324. package/dist/evm/server/Methods.js.map +0 -1
  325. package/dist/evm/server/index.d.ts.map +0 -1
  326. package/dist/evm/server/index.js.map +0 -1
  327. package/dist/index.d.ts.map +0 -1
  328. package/dist/index.js.map +0 -1
  329. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  330. package/dist/internal/AcceptPayment.js.map +0 -1
  331. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  332. package/dist/internal/HeaderCodec.js.map +0 -1
  333. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  334. package/dist/internal/constantTimeEqual.js.map +0 -1
  335. package/dist/internal/env.d.ts.map +0 -1
  336. package/dist/internal/env.js.map +0 -1
  337. package/dist/internal/types.d.ts.map +0 -1
  338. package/dist/internal/types.js.map +0 -1
  339. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  340. package/dist/mcp/client/McpClient.js.map +0 -1
  341. package/dist/mcp/client/index.d.ts.map +0 -1
  342. package/dist/mcp/client/index.js.map +0 -1
  343. package/dist/mcp/server/Transport.d.ts.map +0 -1
  344. package/dist/mcp/server/Transport.js.map +0 -1
  345. package/dist/mcp/server/index.d.ts.map +0 -1
  346. package/dist/mcp/server/index.js.map +0 -1
  347. package/dist/middlewares/elysia.d.ts.map +0 -1
  348. package/dist/middlewares/elysia.js.map +0 -1
  349. package/dist/middlewares/express.d.ts.map +0 -1
  350. package/dist/middlewares/express.js.map +0 -1
  351. package/dist/middlewares/hono.d.ts.map +0 -1
  352. package/dist/middlewares/hono.js.map +0 -1
  353. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  354. package/dist/middlewares/internal/mppx.js.map +0 -1
  355. package/dist/middlewares/nextjs.d.ts.map +0 -1
  356. package/dist/middlewares/nextjs.js.map +0 -1
  357. package/dist/proxy/Proxy.d.ts.map +0 -1
  358. package/dist/proxy/Proxy.js.map +0 -1
  359. package/dist/proxy/Service.d.ts.map +0 -1
  360. package/dist/proxy/Service.js.map +0 -1
  361. package/dist/proxy/index.d.ts.map +0 -1
  362. package/dist/proxy/index.js.map +0 -1
  363. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  364. package/dist/proxy/internal/Headers.js.map +0 -1
  365. package/dist/proxy/internal/Route.d.ts.map +0 -1
  366. package/dist/proxy/internal/Route.js.map +0 -1
  367. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  368. package/dist/proxy/services/anthropic.js.map +0 -1
  369. package/dist/proxy/services/openai.d.ts.map +0 -1
  370. package/dist/proxy/services/openai.js.map +0 -1
  371. package/dist/proxy/services/stripe.d.ts.map +0 -1
  372. package/dist/proxy/services/stripe.js.map +0 -1
  373. package/dist/server/Methods.d.ts.map +0 -1
  374. package/dist/server/Methods.js.map +0 -1
  375. package/dist/server/Mppx.d.ts.map +0 -1
  376. package/dist/server/Mppx.js.map +0 -1
  377. package/dist/server/NodeListener.d.ts.map +0 -1
  378. package/dist/server/NodeListener.js.map +0 -1
  379. package/dist/server/Request.d.ts.map +0 -1
  380. package/dist/server/Request.js.map +0 -1
  381. package/dist/server/Response.d.ts.map +0 -1
  382. package/dist/server/Response.js.map +0 -1
  383. package/dist/server/Transport.d.ts.map +0 -1
  384. package/dist/server/Transport.js.map +0 -1
  385. package/dist/server/index.d.ts.map +0 -1
  386. package/dist/server/index.js.map +0 -1
  387. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  388. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  389. package/dist/server/internal/html/config.d.ts.map +0 -1
  390. package/dist/server/internal/html/config.js.map +0 -1
  391. package/dist/server/internal/html/constants.d.ts.map +0 -1
  392. package/dist/server/internal/html/constants.js.map +0 -1
  393. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  394. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  395. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  396. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  397. package/dist/server/internal/scope.d.ts.map +0 -1
  398. package/dist/server/internal/scope.js.map +0 -1
  399. package/dist/stripe/Methods.d.ts.map +0 -1
  400. package/dist/stripe/Methods.js.map +0 -1
  401. package/dist/stripe/client/Charge.d.ts.map +0 -1
  402. package/dist/stripe/client/Charge.js.map +0 -1
  403. package/dist/stripe/client/Methods.d.ts.map +0 -1
  404. package/dist/stripe/client/Methods.js.map +0 -1
  405. package/dist/stripe/client/index.d.ts.map +0 -1
  406. package/dist/stripe/client/index.js.map +0 -1
  407. package/dist/stripe/index.d.ts.map +0 -1
  408. package/dist/stripe/index.js.map +0 -1
  409. package/dist/stripe/internal/constants.d.ts.map +0 -1
  410. package/dist/stripe/internal/constants.js.map +0 -1
  411. package/dist/stripe/internal/types.d.ts.map +0 -1
  412. package/dist/stripe/internal/types.js.map +0 -1
  413. package/dist/stripe/server/Charge.d.ts.map +0 -1
  414. package/dist/stripe/server/Charge.js.map +0 -1
  415. package/dist/stripe/server/Methods.d.ts.map +0 -1
  416. package/dist/stripe/server/Methods.js.map +0 -1
  417. package/dist/stripe/server/index.d.ts.map +0 -1
  418. package/dist/stripe/server/index.js.map +0 -1
  419. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  420. package/dist/stripe/server/internal/html/types.js.map +0 -1
  421. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  422. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  423. package/dist/tempo/Attribution.d.ts.map +0 -1
  424. package/dist/tempo/Attribution.js.map +0 -1
  425. package/dist/tempo/Methods.d.ts.map +0 -1
  426. package/dist/tempo/Methods.js.map +0 -1
  427. package/dist/tempo/Proof.d.ts.map +0 -1
  428. package/dist/tempo/Proof.js.map +0 -1
  429. package/dist/tempo/client/Charge.d.ts.map +0 -1
  430. package/dist/tempo/client/Charge.js.map +0 -1
  431. package/dist/tempo/client/Methods.d.ts.map +0 -1
  432. package/dist/tempo/client/Methods.js.map +0 -1
  433. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  434. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  435. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  436. package/dist/tempo/client/Subscription.js.map +0 -1
  437. package/dist/tempo/client/index.d.ts.map +0 -1
  438. package/dist/tempo/client/index.js.map +0 -1
  439. package/dist/tempo/index.d.ts.map +0 -1
  440. package/dist/tempo/index.js.map +0 -1
  441. package/dist/tempo/internal/account.d.ts.map +0 -1
  442. package/dist/tempo/internal/account.js.map +0 -1
  443. package/dist/tempo/internal/address.d.ts.map +0 -1
  444. package/dist/tempo/internal/address.js.map +0 -1
  445. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  446. package/dist/tempo/internal/auto-swap.js.map +0 -1
  447. package/dist/tempo/internal/charge.d.ts.map +0 -1
  448. package/dist/tempo/internal/charge.js.map +0 -1
  449. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  450. package/dist/tempo/internal/defaults.js.map +0 -1
  451. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  452. package/dist/tempo/internal/fee-payer.js.map +0 -1
  453. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  454. package/dist/tempo/internal/fee-token.js.map +0 -1
  455. package/dist/tempo/internal/proof.d.ts.map +0 -1
  456. package/dist/tempo/internal/proof.js.map +0 -1
  457. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  458. package/dist/tempo/internal/selectors.js.map +0 -1
  459. package/dist/tempo/internal/types.d.ts.map +0 -1
  460. package/dist/tempo/internal/types.js.map +0 -1
  461. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  462. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  463. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  464. package/dist/tempo/legacy/client/Session.js.map +0 -1
  465. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  466. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  467. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  468. package/dist/tempo/legacy/client/index.js.map +0 -1
  469. package/dist/tempo/legacy/index.d.ts.map +0 -1
  470. package/dist/tempo/legacy/index.js.map +0 -1
  471. package/dist/tempo/legacy/server/Session.d.ts +0 -208
  472. package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
  473. package/dist/tempo/legacy/server/Session.js +0 -698
  474. package/dist/tempo/legacy/server/Session.js.map +0 -1
  475. package/dist/tempo/legacy/server/index.d.ts +0 -5
  476. package/dist/tempo/legacy/server/index.d.ts.map +0 -1
  477. package/dist/tempo/legacy/server/index.js +0 -5
  478. package/dist/tempo/legacy/server/index.js.map +0 -1
  479. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  480. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  481. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  482. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  483. package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
  484. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
  485. package/dist/tempo/legacy/session/ChannelStore.js +0 -6
  486. package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
  487. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  488. package/dist/tempo/legacy/session/Types.js.map +0 -1
  489. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  490. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  491. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  492. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  493. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  494. package/dist/tempo/legacy/session/index.js.map +0 -1
  495. package/dist/tempo/server/Charge.d.ts.map +0 -1
  496. package/dist/tempo/server/Charge.js.map +0 -1
  497. package/dist/tempo/server/Methods.d.ts.map +0 -1
  498. package/dist/tempo/server/Methods.js.map +0 -1
  499. package/dist/tempo/server/Relay.d.ts.map +0 -1
  500. package/dist/tempo/server/Relay.js.map +0 -1
  501. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  502. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  503. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  504. package/dist/tempo/server/Subscription.js.map +0 -1
  505. package/dist/tempo/server/index.d.ts.map +0 -1
  506. package/dist/tempo/server/index.js.map +0 -1
  507. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  508. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  509. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  510. package/dist/tempo/server/internal/request-body.js.map +0 -1
  511. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  512. package/dist/tempo/server/internal/transport.js.map +0 -1
  513. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  514. package/dist/tempo/session/Snapshot.js.map +0 -1
  515. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  516. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  517. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  518. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  519. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  520. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  521. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  522. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  523. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  524. package/dist/tempo/session/client/Runtime.js.map +0 -1
  525. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  526. package/dist/tempo/session/client/Session.js.map +0 -1
  527. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  528. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  529. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  530. package/dist/tempo/session/client/Transports.js.map +0 -1
  531. package/dist/tempo/session/client/index.d.ts.map +0 -1
  532. package/dist/tempo/session/client/index.js.map +0 -1
  533. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  534. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  535. package/dist/tempo/session/index.d.ts.map +0 -1
  536. package/dist/tempo/session/index.js.map +0 -1
  537. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  538. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  539. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  540. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  541. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  542. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  543. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  544. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  545. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  546. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  547. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  548. package/dist/tempo/session/precompile/index.js.map +0 -1
  549. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  550. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  551. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  552. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  553. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  554. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  555. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  556. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  557. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  558. package/dist/tempo/session/server/RequestState.js.map +0 -1
  559. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  560. package/dist/tempo/session/server/Session.js.map +0 -1
  561. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  562. package/dist/tempo/session/server/Settlement.js.map +0 -1
  563. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  564. package/dist/tempo/session/server/Sse.js.map +0 -1
  565. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  566. package/dist/tempo/session/server/Transports.js.map +0 -1
  567. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  568. package/dist/tempo/session/server/Ws.js.map +0 -1
  569. package/dist/tempo/session/server/index.d.ts.map +0 -1
  570. package/dist/tempo/session/server/index.js.map +0 -1
  571. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  572. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  573. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  574. package/dist/tempo/subscription/Receipt.js.map +0 -1
  575. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  576. package/dist/tempo/subscription/Store.js.map +0 -1
  577. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  578. package/dist/tempo/subscription/Types.js.map +0 -1
  579. package/dist/tempo/subscription/index.d.ts.map +0 -1
  580. package/dist/tempo/subscription/index.js.map +0 -1
  581. package/dist/validation/core.d.ts.map +0 -1
  582. package/dist/validation/core.js.map +0 -1
  583. package/dist/validation/index.d.ts.map +0 -1
  584. package/dist/validation/index.js.map +0 -1
  585. package/dist/viem/Account.d.ts.map +0 -1
  586. package/dist/viem/Account.js.map +0 -1
  587. package/dist/viem/Client.d.ts.map +0 -1
  588. package/dist/viem/Client.js.map +0 -1
  589. package/dist/x402/Assets.d.ts.map +0 -1
  590. package/dist/x402/Assets.js.map +0 -1
  591. package/dist/x402/Header.d.ts.map +0 -1
  592. package/dist/x402/Header.js.map +0 -1
  593. package/dist/x402/Types.d.ts.map +0 -1
  594. package/dist/x402/Types.js.map +0 -1
  595. package/dist/x402/client/Exact.d.ts.map +0 -1
  596. package/dist/x402/client/Exact.js.map +0 -1
  597. package/dist/x402/index.d.ts.map +0 -1
  598. package/dist/x402/index.js.map +0 -1
  599. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  600. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  601. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  602. package/dist/x402/internal/RouteBinding.js.map +0 -1
  603. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  604. package/dist/x402/server/EvmCharge.js.map +0 -1
  605. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  606. package/dist/x402/server/Facilitator.js.map +0 -1
  607. package/dist/zod.d.ts.map +0 -1
  608. package/dist/zod.js.map +0 -1
  609. package/src/BodyDigest.test.ts +0 -43
  610. package/src/BodyDigest.ts +0 -55
  611. package/src/Challenge.fuzz.test.ts +0 -121
  612. package/src/Challenge.test-d.ts +0 -82
  613. package/src/Challenge.test.ts +0 -995
  614. package/src/Challenge.ts +0 -683
  615. package/src/Constants.ts +0 -58
  616. package/src/Credential.fuzz.test.ts +0 -62
  617. package/src/Credential.test.ts +0 -378
  618. package/src/Credential.ts +0 -217
  619. package/src/Errors.test.ts +0 -520
  620. package/src/Errors.ts +0 -448
  621. package/src/Expires.test.ts +0 -112
  622. package/src/Expires.ts +0 -59
  623. package/src/Html.ts +0 -67
  624. package/src/Mcp.ts +0 -85
  625. package/src/Method.test.ts +0 -177
  626. package/src/Method.ts +0 -617
  627. package/src/PaymentRequest.test.ts +0 -147
  628. package/src/PaymentRequest.ts +0 -108
  629. package/src/Receipt.test.ts +0 -151
  630. package/src/Receipt.ts +0 -146
  631. package/src/Store.test-d.ts +0 -195
  632. package/src/Store.test.ts +0 -357
  633. package/src/Store.ts +0 -329
  634. package/src/bin.ts +0 -4
  635. package/src/cli/account.ts +0 -269
  636. package/src/cli/cli.test.ts +0 -2221
  637. package/src/cli/cli.ts +0 -1649
  638. package/src/cli/config.test.ts +0 -89
  639. package/src/cli/config.ts +0 -50
  640. package/src/cli/internal.ts +0 -114
  641. package/src/cli/mcp.test.ts +0 -262
  642. package/src/cli/plugins/evm.ts +0 -55
  643. package/src/cli/plugins/index.ts +0 -4
  644. package/src/cli/plugins/plugin.ts +0 -84
  645. package/src/cli/plugins/stripe.ts +0 -174
  646. package/src/cli/plugins/tempo.ts +0 -1102
  647. package/src/cli/sessions/Manager.test.ts +0 -249
  648. package/src/cli/sessions/Manager.ts +0 -93
  649. package/src/cli/sessions/commands.ts +0 -444
  650. package/src/cli/sessions/request.test.ts +0 -51
  651. package/src/cli/sessions/request.ts +0 -353
  652. package/src/cli/sessions/store.test.ts +0 -581
  653. package/src/cli/sessions/store.ts +0 -940
  654. package/src/cli/utils.test.ts +0 -156
  655. package/src/cli/utils.ts +0 -394
  656. package/src/cli/validate/challenge.ts +0 -565
  657. package/src/cli/validate/discovery.test.ts +0 -435
  658. package/src/cli/validate/discovery.ts +0 -221
  659. package/src/cli/validate/helpers.ts +0 -166
  660. package/src/cli/validate/index.ts +0 -229
  661. package/src/cli/validate/messages.ts +0 -7
  662. package/src/cli/validate/payment.ts +0 -774
  663. package/src/cli/validate.test.ts +0 -843
  664. package/src/client/Methods.ts +0 -8
  665. package/src/client/Mppx.test-d.ts +0 -270
  666. package/src/client/Mppx.test.ts +0 -1065
  667. package/src/client/Mppx.ts +0 -466
  668. package/src/client/Transport.test.ts +0 -619
  669. package/src/client/Transport.ts +0 -191
  670. package/src/client/index.ts +0 -29
  671. package/src/client/internal/Fetch.browser.test.ts +0 -197
  672. package/src/client/internal/Fetch.test-d.ts +0 -109
  673. package/src/client/internal/Fetch.test.ts +0 -2336
  674. package/src/client/internal/Fetch.ts +0 -1079
  675. package/src/client/internal/MethodChallenge.ts +0 -35
  676. package/src/client/internal/MethodResponse.ts +0 -67
  677. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  678. package/src/client/internal/protocols/Mcp.ts +0 -186
  679. package/src/client/internal/protocols/Mpp.ts +0 -21
  680. package/src/client/internal/protocols/Protocol.ts +0 -10
  681. package/src/client/internal/protocols/Shared.ts +0 -25
  682. package/src/client/internal/protocols/X402.ts +0 -46
  683. package/src/client/node.test.ts +0 -115
  684. package/src/client/node.ts +0 -247
  685. package/src/discovery/Discovery.test.ts +0 -214
  686. package/src/discovery/Discovery.ts +0 -105
  687. package/src/discovery/OpenApi.test.ts +0 -453
  688. package/src/discovery/OpenApi.ts +0 -224
  689. package/src/discovery/Validate.test.ts +0 -305
  690. package/src/discovery/Validate.ts +0 -77
  691. package/src/discovery/index.ts +0 -3
  692. package/src/env.d.ts +0 -12
  693. package/src/evm/Assets.ts +0 -1
  694. package/src/evm/Chains.ts +0 -11
  695. package/src/evm/Methods.ts +0 -44
  696. package/src/evm/PublicInterface.test-d.ts +0 -134
  697. package/src/evm/Types.ts +0 -140
  698. package/src/evm/client/Charge.test.ts +0 -347
  699. package/src/evm/client/Charge.ts +0 -187
  700. package/src/evm/client/Methods.ts +0 -19
  701. package/src/evm/client/index.ts +0 -6
  702. package/src/evm/index.ts +0 -16
  703. package/src/evm/server/Charge.test.ts +0 -339
  704. package/src/evm/server/Charge.ts +0 -290
  705. package/src/evm/server/Methods.ts +0 -22
  706. package/src/evm/server/index.ts +0 -6
  707. package/src/index.ts +0 -14
  708. package/src/internal/AcceptPayment.test.ts +0 -343
  709. package/src/internal/AcceptPayment.ts +0 -366
  710. package/src/internal/HeaderCodec.ts +0 -36
  711. package/src/internal/changeset.test.ts +0 -106
  712. package/src/internal/constantTimeEqual.test.ts +0 -47
  713. package/src/internal/constantTimeEqual.ts +0 -10
  714. package/src/internal/env.test.ts +0 -42
  715. package/src/internal/env.ts +0 -49
  716. package/src/internal/types.test-d.ts +0 -21
  717. package/src/internal/types.ts +0 -470
  718. package/src/mcp/client/McpClient.integration.test.ts +0 -652
  719. package/src/mcp/client/McpClient.test-d.ts +0 -144
  720. package/src/mcp/client/McpClient.test.ts +0 -463
  721. package/src/mcp/client/McpClient.ts +0 -307
  722. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  723. package/src/mcp/client/index.ts +0 -2
  724. package/src/mcp/server/Transport.test.ts +0 -191
  725. package/src/mcp/server/Transport.ts +0 -111
  726. package/src/mcp/server/index.ts +0 -1
  727. package/src/middlewares/elysia.test.ts +0 -295
  728. package/src/middlewares/elysia.ts +0 -116
  729. package/src/middlewares/express.test.ts +0 -371
  730. package/src/middlewares/express.ts +0 -140
  731. package/src/middlewares/hono.test.ts +0 -476
  732. package/src/middlewares/hono.ts +0 -153
  733. package/src/middlewares/internal/mppx.test.ts +0 -177
  734. package/src/middlewares/internal/mppx.ts +0 -67
  735. package/src/middlewares/nextjs.test.ts +0 -369
  736. package/src/middlewares/nextjs.ts +0 -107
  737. package/src/proxy/Proxy.test.ts +0 -1031
  738. package/src/proxy/Proxy.ts +0 -345
  739. package/src/proxy/Service.test.ts +0 -182
  740. package/src/proxy/Service.ts +0 -253
  741. package/src/proxy/index.ts +0 -6
  742. package/src/proxy/internal/Headers.test.ts +0 -139
  743. package/src/proxy/internal/Headers.ts +0 -66
  744. package/src/proxy/internal/Route.test.ts +0 -217
  745. package/src/proxy/internal/Route.ts +0 -64
  746. package/src/proxy/services/anthropic.test.ts +0 -132
  747. package/src/proxy/services/anthropic.ts +0 -52
  748. package/src/proxy/services/openai.test.ts +0 -157
  749. package/src/proxy/services/openai.ts +0 -59
  750. package/src/proxy/services/stripe.test.ts +0 -175
  751. package/src/proxy/services/stripe.ts +0 -58
  752. package/src/server/Methods.ts +0 -3
  753. package/src/server/Mppx.authorize.test.ts +0 -210
  754. package/src/server/Mppx.test-d.ts +0 -360
  755. package/src/server/Mppx.test.ts +0 -5813
  756. package/src/server/Mppx.ts +0 -2623
  757. package/src/server/NodeListener.test.ts +0 -293
  758. package/src/server/NodeListener.ts +0 -45
  759. package/src/server/Request.test.ts +0 -255
  760. package/src/server/Request.ts +0 -155
  761. package/src/server/Response.test.ts +0 -32
  762. package/src/server/Response.ts +0 -45
  763. package/src/server/Transport.test.ts +0 -598
  764. package/src/server/Transport.ts +0 -320
  765. package/src/server/index.ts +0 -9
  766. package/src/server/internal/html/compose.main.gen.ts +0 -2
  767. package/src/server/internal/html/compose.main.ts +0 -88
  768. package/src/server/internal/html/config.ts +0 -672
  769. package/src/server/internal/html/constants.ts +0 -28
  770. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  771. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  772. package/src/server/internal/html/serviceWorker.ts +0 -27
  773. package/src/server/internal/html/tsconfig.compose.json +0 -8
  774. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  775. package/src/server/internal/html/tsconfig.worker.json +0 -8
  776. package/src/server/internal/scope.ts +0 -43
  777. package/src/stripe/Charge.integration.test.ts +0 -329
  778. package/src/stripe/Methods.test.ts +0 -62
  779. package/src/stripe/Methods.ts +0 -44
  780. package/src/stripe/client/Charge.test.ts +0 -205
  781. package/src/stripe/client/Charge.ts +0 -132
  782. package/src/stripe/client/Methods.ts +0 -37
  783. package/src/stripe/client/index.ts +0 -2
  784. package/src/stripe/index.ts +0 -1
  785. package/src/stripe/internal/constants.ts +0 -7
  786. package/src/stripe/internal/types.ts +0 -46
  787. package/src/stripe/server/Charge.test-d.ts +0 -66
  788. package/src/stripe/server/Charge.test.ts +0 -621
  789. package/src/stripe/server/Charge.ts +0 -434
  790. package/src/stripe/server/Methods.ts +0 -24
  791. package/src/stripe/server/index.ts +0 -2
  792. package/src/stripe/server/internal/html/main.ts +0 -165
  793. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  794. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  795. package/src/stripe/server/internal/html/package.json +0 -9
  796. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  797. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  798. package/src/stripe/server/internal/html/types.ts +0 -5
  799. package/src/stripe/server/internal/html.gen.ts +0 -2
  800. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  801. package/src/tempo/Attribution.test.ts +0 -294
  802. package/src/tempo/Attribution.ts +0 -185
  803. package/src/tempo/Methods.test.ts +0 -425
  804. package/src/tempo/Methods.ts +0 -367
  805. package/src/tempo/Proof.conformance.test.ts +0 -146
  806. package/src/tempo/Proof.test-d.ts +0 -32
  807. package/src/tempo/Proof.test.ts +0 -40
  808. package/src/tempo/Proof.ts +0 -69
  809. package/src/tempo/PublicExports.test-d.ts +0 -130
  810. package/src/tempo/Subscription.integration.test.ts +0 -591
  811. package/src/tempo/client/Charge.test.ts +0 -501
  812. package/src/tempo/client/Charge.ts +0 -289
  813. package/src/tempo/client/Methods.ts +0 -45
  814. package/src/tempo/client/ResolveAccount.ts +0 -46
  815. package/src/tempo/client/Subscription.test.ts +0 -180
  816. package/src/tempo/client/Subscription.ts +0 -156
  817. package/src/tempo/client/index.ts +0 -17
  818. package/src/tempo/index.ts +0 -5
  819. package/src/tempo/internal/account.ts +0 -56
  820. package/src/tempo/internal/address.ts +0 -6
  821. package/src/tempo/internal/auto-swap.test.ts +0 -198
  822. package/src/tempo/internal/auto-swap.ts +0 -188
  823. package/src/tempo/internal/charge.test.ts +0 -66
  824. package/src/tempo/internal/charge.ts +0 -43
  825. package/src/tempo/internal/defaults.test.ts +0 -95
  826. package/src/tempo/internal/defaults.ts +0 -53
  827. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  828. package/src/tempo/internal/fee-payer.ts +0 -808
  829. package/src/tempo/internal/fee-token.test.ts +0 -165
  830. package/src/tempo/internal/fee-token.ts +0 -72
  831. package/src/tempo/internal/proof.test.ts +0 -97
  832. package/src/tempo/internal/proof.ts +0 -87
  833. package/src/tempo/internal/selectors.ts +0 -10
  834. package/src/tempo/internal/types.ts +0 -19
  835. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  836. package/src/tempo/legacy/README.md +0 -9
  837. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  838. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  839. package/src/tempo/legacy/client/Session.test.ts +0 -800
  840. package/src/tempo/legacy/client/Session.ts +0 -397
  841. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  842. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  843. package/src/tempo/legacy/client/index.ts +0 -6
  844. package/src/tempo/legacy/index.ts +0 -6
  845. package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
  846. package/src/tempo/legacy/server/Session.test.ts +0 -6370
  847. package/src/tempo/legacy/server/Session.ts +0 -1024
  848. package/src/tempo/legacy/server/index.ts +0 -4
  849. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  850. package/src/tempo/legacy/session/Chain.ts +0 -830
  851. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  852. package/src/tempo/legacy/session/Channel.ts +0 -51
  853. package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
  854. package/src/tempo/legacy/session/ChannelStore.ts +0 -39
  855. package/src/tempo/legacy/session/Types.ts +0 -91
  856. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  857. package/src/tempo/legacy/session/Voucher.ts +0 -183
  858. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  859. package/src/tempo/legacy/session/index.ts +0 -8
  860. package/src/tempo/server/AtomicStore.test-d.ts +0 -50
  861. package/src/tempo/server/Charge.test.ts +0 -6121
  862. package/src/tempo/server/Charge.ts +0 -1351
  863. package/src/tempo/server/Methods.ts +0 -106
  864. package/src/tempo/server/Relay.test.ts +0 -677
  865. package/src/tempo/server/Relay.ts +0 -297
  866. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  867. package/src/tempo/server/SponsorBudget.ts +0 -219
  868. package/src/tempo/server/Sse.test.ts +0 -321
  869. package/src/tempo/server/Subscription.test.ts +0 -1944
  870. package/src/tempo/server/Subscription.ts +0 -1333
  871. package/src/tempo/server/index.ts +0 -12
  872. package/src/tempo/server/internal/html/main.ts +0 -115
  873. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  874. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  875. package/src/tempo/server/internal/html/package.json +0 -10
  876. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  877. package/src/tempo/server/internal/html.gen.ts +0 -2
  878. package/src/tempo/server/internal/request-body.test.ts +0 -210
  879. package/src/tempo/server/internal/request-body.ts +0 -61
  880. package/src/tempo/server/internal/transport.test.ts +0 -903
  881. package/src/tempo/server/internal/transport.ts +0 -310
  882. package/src/tempo/session/README.md +0 -208
  883. package/src/tempo/session/Snapshot.test.ts +0 -41
  884. package/src/tempo/session/Snapshot.ts +0 -95
  885. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  886. package/src/tempo/session/client/ChannelOps.ts +0 -348
  887. package/src/tempo/session/client/ChannelStore.ts +0 -111
  888. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  889. package/src/tempo/session/client/CredentialState.ts +0 -942
  890. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  891. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  892. package/src/tempo/session/client/Runtime.ts +0 -1008
  893. package/src/tempo/session/client/Session.test.ts +0 -1355
  894. package/src/tempo/session/client/Session.ts +0 -420
  895. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  896. package/src/tempo/session/client/SessionManager.ts +0 -996
  897. package/src/tempo/session/client/Transports.test.ts +0 -1141
  898. package/src/tempo/session/client/Transports.ts +0 -1534
  899. package/src/tempo/session/client/index.ts +0 -40
  900. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  901. package/src/tempo/session/index.ts +0 -7
  902. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  903. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  904. package/src/tempo/session/precompile/Chain.ts +0 -1149
  905. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  906. package/src/tempo/session/precompile/Channel.ts +0 -108
  907. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  908. package/src/tempo/session/precompile/Protocol.ts +0 -520
  909. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  910. package/src/tempo/session/precompile/Voucher.ts +0 -162
  911. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  912. package/src/tempo/session/precompile/index.ts +0 -33
  913. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  914. package/src/tempo/session/server/ChannelOps.ts +0 -157
  915. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  916. package/src/tempo/session/server/ChannelStore.ts +0 -835
  917. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  918. package/src/tempo/session/server/CredentialVerification.ts +0 -775
  919. package/src/tempo/session/server/MeteredStream.ts +0 -95
  920. package/src/tempo/session/server/RequestState.test.ts +0 -574
  921. package/src/tempo/session/server/RequestState.ts +0 -507
  922. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  923. package/src/tempo/session/server/Session.test.ts +0 -3862
  924. package/src/tempo/session/server/Session.ts +0 -570
  925. package/src/tempo/session/server/Settlement.test.ts +0 -345
  926. package/src/tempo/session/server/Settlement.ts +0 -527
  927. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  928. package/src/tempo/session/server/Sse.test.ts +0 -557
  929. package/src/tempo/session/server/Sse.ts +0 -254
  930. package/src/tempo/session/server/Transports.test.ts +0 -346
  931. package/src/tempo/session/server/Transports.ts +0 -255
  932. package/src/tempo/session/server/Ws.test.ts +0 -594
  933. package/src/tempo/session/server/Ws.ts +0 -385
  934. package/src/tempo/session/server/index.ts +0 -12
  935. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  936. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  937. package/src/tempo/subscription/Receipt.ts +0 -28
  938. package/src/tempo/subscription/Store.test.ts +0 -609
  939. package/src/tempo/subscription/Store.ts +0 -449
  940. package/src/tempo/subscription/Types.ts +0 -68
  941. package/src/tempo/subscription/index.ts +0 -23
  942. package/src/tsconfig.json +0 -10
  943. package/src/validation/core.ts +0 -386
  944. package/src/validation/index.ts +0 -11
  945. package/src/viem/Account.test.ts +0 -72
  946. package/src/viem/Account.ts +0 -30
  947. package/src/viem/Client.test.ts +0 -366
  948. package/src/viem/Client.ts +0 -93
  949. package/src/x402/Assets.test.ts +0 -253
  950. package/src/x402/Assets.ts +0 -221
  951. package/src/x402/Exact.e2e.test.ts +0 -448
  952. package/src/x402/Exact.localnet.test.ts +0 -475
  953. package/src/x402/Header.test.ts +0 -73
  954. package/src/x402/Header.ts +0 -79
  955. package/src/x402/PublicInterface.test-d.ts +0 -39
  956. package/src/x402/Types.ts +0 -248
  957. package/src/x402/client/Exact.test.ts +0 -309
  958. package/src/x402/client/Exact.ts +0 -186
  959. package/src/x402/index.ts +0 -6
  960. package/src/x402/internal/ChallengeBrand.ts +0 -14
  961. package/src/x402/internal/RouteBinding.ts +0 -18
  962. package/src/x402/server/EvmCharge.ts +0 -394
  963. package/src/x402/server/Facilitator.test.ts +0 -111
  964. package/src/x402/server/Facilitator.ts +0 -56
  965. package/src/zod.test.ts +0 -169
  966. package/src/zod.ts +0 -71
package/CHANGELOG.md CHANGED
@@ -1,5 +1,96 @@
1
1
  # mppx
2
2
 
3
+ ## 0.8.18
4
+
5
+ ### Patch Changes
6
+
7
+ - 61f847e: Added first-party machine-token payments for Tempo charges across push, pull, relay, and fee-sponsored settlement.
8
+ - 981389d: Changed Stripe PaymentIntent idempotency keys to use the SDK-independent `mpp_` prefix.
9
+ - adcf3b5: Normalized Tempo transactions before broadcast so accepted recovery ID encodings matched the node's canonical transaction hash.
10
+ - e59c031: Added support for composing native claim implementations with Redis and Upstash store adapters.
11
+ - 349543a: Added CI interoperability coverage against the Coinbase x402 resource server and facilitator implementations.
12
+ - 4915654: Bundled the CLI runtime and removed source files, source maps, and source export conditions from the published package.
13
+ - 9774481: Fixed deserialization of challenges with mixed-case auth-param names.
14
+ - e240845: Fixed explicit session stream charges being discarded by prepaid units.
15
+ - bc3c626: `stripe.create()`: `defaultMethods()` now returns sync SPT-only when no `depositAddresses` is provided, and uses `Promise.allSettled` in the function resolver path to gracefully degrade when individual networks fail.
16
+ - c004d2c: Fixed hosted fee-payer sponsorship for server-driven session settlement and close transactions.
17
+ - dc27415: Added lightweight core server and Stripe SPT entrypoints that excluded unrelated payment rails.
18
+ - 3fd4a16: Added implicit machine-token funding to Tempo sessions and moved Tempo charges and sessions to the unified machineUSD deployment. Clients use machineUSD when a verified route and sufficient balance are available and otherwise pay the challenged token. Configured fee-token overrides were bound into session challenges, and concurrent session requests rechecked top-up requirements after serialized opens.
19
+ - a85d55a: Hardened machine-token session flows after #800: kept stored machine channels instead of evicting them on failed retries, advertised close snapshots for signature-verified close credentials, accepted sponsored fees in the payment currency alongside a configured `feeToken`, and restored balance-aware fee-token selection for direct-channel settlement.
20
+ - 106ba18: Fixed challenge parsing for extension parameters named after `Object.prototype` properties.
21
+ - a74b20b: Discovery: unknown fields next to `offers` in `x-payment-info` are ignored instead of failing validation (only the spec-defined flat fields conflict with `offers`).
22
+ - b5f6bce: Removed obsolete MPP version metadata from Stripe charge PaymentIntents.
23
+ - 3de6560: Required server-advertised Tempo session escrows to match the canonical address unless clients enable `allowCustomEscrow`.
24
+ - 4c9ce16: Added client signing support for standard x402 exact EIP-3009 offers without requiring mppx route-binding extensions.
25
+ - c326dc9: Fixed Tempo session fallback closes with stale receipts and rejected invalid close accounting.
26
+ - 81ba763: Escape characters above Latin-1 in challenge auth-params so serialized challenges are always valid HTTP header values. Previously a charge `description` containing an em dash, smart quote, or emoji made `Response` construction throw (`Cannot convert argument to a ByteString`) in fetch-compliant runtimes when the challenge was written to the `WWW-Authenticate` header.
27
+ - ae68a55: Fixed scoped EVM charges rejecting every spec-compliant x402 client, which made
28
+ each route served through `Proxy` unpayable over x402.
29
+
30
+ A route scope lands in `challenge.meta`, and the x402 path treated any route
31
+ metadata as a demand for mppx's own `extensions.mppx` binding plus an EIP-3009
32
+ nonce equal to an unexported `sha256(accepted | resource | extensions)`. That
33
+ derivation is not part of the x402 spec, so a client mppx did not write cannot
34
+ produce it: the charge re-challenged forever with `Credential is malformed.`
35
+ `Proxy` attaches a derived scope to every charge it serves, so this applied to
36
+ everything behind it whether or not an operator set `scope`.
37
+
38
+ Such a credential is now bound the way x402 itself binds — by comparing the
39
+ echoed `resource` and `accepted` — instead of being rejected. A credential that
40
+ does carry `extensions.mppx` is still verified in full, including the
41
+ route-bound nonce, so mppx's own client is unaffected. Body binding is unchanged:
42
+ `challenge.digest` is verified against the request body either way.
43
+
44
+ The trade is that route scope on the x402 rail is advisory for clients that don't
45
+ implement mppx's binding. `resource` and `accepted` sit outside the EIP-3009
46
+ signature, so two charges sharing a URL and a price are no longer distinguishable
47
+ by scope alone. Cross-URL reuse is still refused. Operators who need scope
48
+ enforced can restore the previous behaviour per method:
49
+
50
+ ```ts
51
+ evm({
52
+ currency: evm.assets.base.USDC,
53
+ recipient,
54
+ x402: { facilitator, routeBinding: 'required' },
55
+ })
56
+ ```
57
+
58
+ ## 0.8.17
59
+
60
+ ### Patch Changes
61
+
62
+ - 52d8701: Reject sub-cent amounts via `canOffer` before issuing 402 challenge on stripe-managed crypto rails. Add `metadata` parameter to `stripe.create()` for forwarding key-value pairs to Stripe PaymentIntents.
63
+ - b7ab48e: Changed Tempo relay idempotency keys to use the `mpp_` prefix.
64
+
65
+ ## 0.8.16
66
+
67
+ ### Patch Changes
68
+
69
+ - c58ee80: Added composable TAP and Web Bot Auth HTTPS-directory profile signers and verifiers with Ed25519 and RSA-PSS SHA-512 support, explicit replay storage, typed verification outcomes, and shared per-attempt signing context.
70
+ - 1d7749a: Added first-class client and server request-attestation configuration to `Mppx.create()`.
71
+ - e2b2a8a: Removed the legacy Tempo session server implementation and server compatibility exports while retaining the v1 client for existing sessions. See the [session upgrade guide](https://mpp.dev/blog/sessions-improved) for migration instructions.
72
+ - 4637603: Aligned published and workspace dependency versions with shared pnpm catalog pins.
73
+ - 4834ef1: Added configurable upstream error recovery hooks to proxy services and preserved request bodies across retries.
74
+ - 00b0063: Fix js-yaml audit vulnerability (CVE-2026-59870) by bumping override to 4.3.1.
75
+ - 81a5c6b: Fix `Method.toServer()` to pass through `onPaymentSuccess` from options.
76
+ - f7f8e58: Fixed multi-challenge parsing when quoted parameter values contained the Payment scheme name.
77
+ - 8e370ba: Added structured sponsor budget configuration and support for externally enforced sponsor budgets.
78
+ - 40f430a: Multi-method intent handler: `.charge()` now works when multiple methods share an intent, internally composing all matching methods into one handler that respects `selectOffers`.
79
+ - 1272520: Disabled the `no-underscore-dangle` lint rule.
80
+ - 5ff5cb7: Fixed equality checks between equivalent hex and Tempo-formatted addresses.
81
+ - 71b8884: Add per-method `onPaymentSuccess` hook to `ComposableHooks`. Routed through the server event dispatcher for error isolation.
82
+ - 641aa4d: Kept discovery metadata aligned with runtime challenges by preserving composed offers, dispatching nested compositions, and deriving prices from canonical payment requests.
83
+ - cd71f9e: Made attestation verifiers accept the core `AtomicStore` directly and shared its optimized `Store.tryClaim` replay primitive with Tempo charges.
84
+ - f3a9369: Updated production dependencies.
85
+ - 3d7ed4b: Removed obsolete compatibility shims for legacy viem Tempo call builders.
86
+ - 47d6df7: Added server- and method-level filtering with immutable snapshots for composed HTTP payment offers across every server method constructor, including Stripe currency minimums.
87
+ - 30f8a12: Added a session-bound WebSocket server helper that reused the configured store and settlement policy, and applied that policy to plain HTTP responses from SSE-enabled methods. Fixed automatic settlement schedules after committed Tempo session SSE and WebSocket charges.
88
+ - 9f0afe0: Added a stable CLI launcher for workspace dependency installation.
89
+ - bdaea3a: Standardized client transports on `getChallenges` and removed the singular `getChallenge` hook.
90
+ - 4b3b1c0: Add `stripe.create()` machine payments API with auto deposit address resolution, PI recording, and unified `.charge()` handler.
91
+ - fd38304: Added non-mutating credential validation and broadcast hooks to the Tempo session server method.
92
+ - 8f9f8cb: Fixed body-bearing EVM routes to advertise `PAYMENT-REQUIRED` alongside MPP challenges and accept standard x402 payments when mppx route binding is not required.
93
+
3
94
  ## 0.8.15
4
95
 
5
96
  ### Patch Changes
package/README.md CHANGED
@@ -52,6 +52,7 @@ const mppx = Mppx.create({
52
52
  methods: [
53
53
  tempo({
54
54
  currency: '0x20c0000000000000000000000000000000000000',
55
+ machineTokenEnabled: true,
55
56
  recipient: '0x742d35Cc6634c0532925a3b844bC9e7595F8fE00',
56
57
  }),
57
58
  ],
@@ -83,6 +84,11 @@ Mppx.create({
83
84
  const res = await fetch('https://mpp.dev/api/ping/paid')
84
85
  ```
85
86
 
87
+ The client API is the same for PathUSD, USDC.e, and machineUSD. A server advertises
88
+ `machineTokenEnabled`; the client uses machineUSD when a verified route and sufficient balance
89
+ are available, and otherwise pays the token requested by the challenge. Sessions keep the selected
90
+ rail until the channel closes.
91
+
86
92
  ## Examples
87
93
 
88
94
  | Example | Description |
@@ -117,11 +123,20 @@ mppx sessions list
117
123
  mppx sessions view <channel-id>
118
124
  mppx sessions close <channel-id>
119
125
  mppx sessions close --all --yes
126
+
127
+ # explicitly trust a custom session escrow advertised by the server
128
+ mppx example.com -M allowCustomEscrow=true
120
129
  ```
121
130
 
122
131
  `--session auto` is the default. Pass `new` to open another channel or a channel ID to select one
123
132
  explicitly.
124
133
 
134
+ Tempo session clients accept only the canonical escrow contract by default. A server may advertise
135
+ its configured custom escrow in the payment challenge, but the client rejects it unless
136
+ `-M allowCustomEscrow=true` is supplied. This opt-in trusts the server-selected address; clients
137
+ that do not support custom escrows should leave it unset. See the
138
+ [session escrow trust documentation](./src/tempo/session/README.md#escrow-configuration-and-trust).
139
+
125
140
  You can also install globally to use the `mppx` CLI from anywhere:
126
141
 
127
142
  ```bash
package/dist/Challenge.js CHANGED
@@ -180,7 +180,15 @@ export function serialize(challenge) {
180
180
  function authParam(name, value) {
181
181
  if (/[\r\n]/.test(value))
182
182
  throw new Error('Invalid quoted-string value.');
183
- return `${name}="${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
183
+ const escaped = value
184
+ .replace(/\\/g, '\\\\')
185
+ .replace(/"/g, '\\"')
186
+ // Header values must be ByteStrings (code points ≤ 0xFF): escape anything
187
+ // above Latin-1 (em dashes, smart quotes, emoji in descriptions) so the
188
+ // serialized challenge is always a legal header value instead of crashing
189
+ // Response construction.
190
+ .replace(/[\u0100-\uffff]/g, (char) => `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`);
191
+ return `${name}="${escaped}"`;
184
192
  }
185
193
  /**
186
194
  * Deserializes a WWW-Authenticate header value to a challenge.
@@ -220,38 +228,17 @@ export function deserialize(value, options) {
220
228
  /** @internal Extracts the `Payment` scheme from a WWW-Authenticate value that may contain multiple schemes. */
221
229
  function extractPaymentAuthParams(header) {
222
230
  const token = Constants.Schemes.payment;
223
- let inQuotes = false;
224
- let escaped = false;
225
- for (let i = 0; i < header.length; i++) {
226
- const char = header[i];
227
- if (inQuotes) {
228
- if (escaped)
229
- escaped = false;
230
- else if (char === '\\')
231
- escaped = true;
232
- else if (char === '"')
233
- inQuotes = false;
234
- continue;
235
- }
236
- if (char === '"') {
237
- inQuotes = true;
238
- continue;
239
- }
240
- if (!startsWithSchemeToken(header, i, token))
241
- continue;
242
- const prefix = header.slice(0, i);
243
- if (prefix.trim() && !prefix.trimEnd().endsWith(','))
244
- continue;
245
- let paramsStart = i + token.length;
246
- while (paramsStart < header.length && /\s/.test(header[paramsStart] ?? ''))
247
- paramsStart++;
248
- return header.slice(paramsStart);
249
- }
250
- return null;
231
+ const [start] = findSchemeStarts(header, token);
232
+ if (start === undefined)
233
+ return null;
234
+ let paramsStart = start + token.length;
235
+ while (paramsStart < header.length && /\s/.test(header[paramsStart] ?? ''))
236
+ paramsStart++;
237
+ return header.slice(paramsStart);
251
238
  }
252
239
  /** @internal Parses auth-params with support for escaped quoted-string values. */
253
240
  function parseAuthParams(input) {
254
- const result = {};
241
+ const result = Object.create(null);
255
242
  let i = 0;
256
243
  while (i < input.length) {
257
244
  while (i < input.length && /[\s,]/.test(input[i] ?? ''))
@@ -261,7 +248,7 @@ function parseAuthParams(input) {
261
248
  const keyStart = i;
262
249
  while (i < input.length && /[A-Za-z0-9_-]/.test(input[i] ?? ''))
263
250
  i++;
264
- const key = input.slice(keyStart, i);
251
+ const key = input.slice(keyStart, i).toLowerCase();
265
252
  if (!key)
266
253
  throw new Error('Malformed auth-param.');
267
254
  while (i < input.length && /\s/.test(input[i] ?? ''))
@@ -300,7 +287,16 @@ function readQuotedAuthParamValue(input, start) {
300
287
  i++;
301
288
  if (escaped) {
302
289
  parts ??= [];
303
- parts.push(char);
290
+ // `\\uXXXX` unescapes characters above Latin-1. Unambiguous: serializers
291
+ // always double raw backslashes, so a bare `\\u` only ever comes from
292
+ // the unicode escape in `authParam`.
293
+ const hex = char === 'u' ? input.slice(i, i + 4) : undefined;
294
+ if (hex && /^[0-9A-Fa-f]{4}$/.test(hex)) {
295
+ parts.push(String.fromCharCode(Number.parseInt(hex, 16)));
296
+ i += 4;
297
+ }
298
+ else
299
+ parts.push(char);
304
300
  segmentStart = i;
305
301
  escaped = false;
306
302
  continue;
@@ -323,11 +319,42 @@ function readQuotedAuthParamValue(input, start) {
323
319
  }
324
320
  /** @internal */
325
321
  function startsWithSchemeToken(value, index, token) {
326
- if (!value.slice(index).toLowerCase().startsWith(token.toLowerCase()))
322
+ if (value.slice(index, index + token.length).toLowerCase() !== token.toLowerCase())
327
323
  return false;
328
324
  const next = value[index + token.length];
329
325
  return Boolean(next && /\s/.test(next));
330
326
  }
327
+ /** @internal Finds auth scheme boundaries while ignoring quoted-string contents. */
328
+ function findSchemeStarts(value, token) {
329
+ const starts = [];
330
+ let inQuotes = false;
331
+ let escaped = false;
332
+ for (let i = 0; i < value.length; i++) {
333
+ const char = value[i];
334
+ if (inQuotes) {
335
+ if (escaped)
336
+ escaped = false;
337
+ else if (char === '\\')
338
+ escaped = true;
339
+ else if (char === '"')
340
+ inQuotes = false;
341
+ continue;
342
+ }
343
+ if (char === '"') {
344
+ inQuotes = true;
345
+ continue;
346
+ }
347
+ if (!startsWithSchemeToken(value, i, token))
348
+ continue;
349
+ let boundary = i - 1;
350
+ while (boundary >= 0 && /\s/.test(value[boundary] ?? ''))
351
+ boundary--;
352
+ if (boundary >= 0 && value[boundary] !== ',')
353
+ continue;
354
+ starts.push(i);
355
+ }
356
+ return starts;
357
+ }
331
358
  /**
332
359
  * Extracts the challenge from a Headers object.
333
360
  *
@@ -422,12 +449,7 @@ export function fromHeadersList(headers, options) {
422
449
  * @returns An array of deserialized challenges.
423
450
  */
424
451
  export function deserializeList(value, options) {
425
- // Find the start index of each `Payment ` scheme prefix.
426
- const starts = [];
427
- const schemePattern = new RegExp(`${Constants.Schemes.payment}\\s+`, 'gi');
428
- for (const match of value.matchAll(schemePattern)) {
429
- starts.push(match.index);
430
- }
452
+ const starts = findSchemeStarts(value, Constants.Schemes.payment);
431
453
  if (starts.length === 0)
432
454
  throw new Error('No Payment schemes found.');
433
455
  // Slice each scheme from its `Payment ` prefix up to the next scheme boundary,
@@ -1,39 +1,39 @@
1
1
  /** HTTP header names used by the Payment authentication scheme. */
2
2
  export declare const Headers: {
3
- readonly acceptPayment: "Accept-Payment";
4
- readonly authorization: "Authorization";
5
- readonly paymentReceipt: "Payment-Receipt";
6
- readonly paymentSession: "Payment-Session";
7
- readonly paymentSessionSnapshot: "Payment-Session-Snapshot";
8
- readonly wwwAuthenticate: "WWW-Authenticate";
3
+ readonly acceptPayment: 'Accept-Payment';
4
+ readonly authorization: 'Authorization';
5
+ readonly paymentReceipt: 'Payment-Receipt';
6
+ readonly paymentSession: 'Payment-Session';
7
+ readonly paymentSessionSnapshot: 'Payment-Session-Snapshot';
8
+ readonly wwwAuthenticate: 'WWW-Authenticate';
9
9
  };
10
10
  /** Authentication scheme names used by mppx transports. */
11
11
  export declare const Schemes: {
12
- readonly payment: "Payment";
12
+ readonly payment: 'Payment';
13
13
  };
14
14
  /** Payment method names used by built-in mppx methods. */
15
15
  export declare const Methods: {
16
- readonly evm: "evm";
17
- readonly stripe: "stripe";
18
- readonly tempo: "tempo";
16
+ readonly evm: 'evm';
17
+ readonly stripe: 'stripe';
18
+ readonly tempo: 'tempo';
19
19
  };
20
20
  /** Payment intent names used by built-in mppx methods. */
21
21
  export declare const Intents: {
22
- readonly charge: "charge";
23
- readonly session: "session";
24
- readonly subscription: "subscription";
22
+ readonly charge: 'charge';
23
+ readonly session: 'session';
24
+ readonly subscription: 'subscription';
25
25
  };
26
26
  /** Method detail object keys used by built-in methods. */
27
27
  export declare const MethodDetailKeys: {
28
- readonly sessionProtocol: "sessionProtocol";
29
- readonly sessionSnapshot: "sessionSnapshot";
28
+ readonly sessionProtocol: 'sessionProtocol';
29
+ readonly sessionSnapshot: 'sessionSnapshot';
30
30
  };
31
31
  /** Tempo session protocol versions advertised under `request.methodDetails`. */
32
32
  export declare const SessionProtocols: {
33
33
  /** Legacy contract-backed Tempo session protocol. */
34
- readonly v1: "v1";
34
+ readonly v1: 'v1';
35
35
  /** TIP-1034 precompile-backed Tempo session protocol. */
36
- readonly v2: "v2";
36
+ readonly v2: 'v2';
37
37
  };
38
38
  /** Known Tempo session protocol version markers. */
39
39
  export type SessionProtocol = (typeof SessionProtocols)[keyof typeof SessionProtocols];
package/dist/Errors.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /** Default hint messages for payment errors. */
2
2
  export declare const Hints: {
3
- readonly paymentRequired: "Use a supported wallet to pay for this resource using one of the supported payment methods returned in the WWW-Authenticate header. See https://mpp.dev/tools/wallet.md";
4
- readonly malformedCredential: "Use a supported wallet to construct valid credentials for one of the supported payment methods returned in the WWW-Authenticate header. See https://mpp.dev/tools/wallet.md";
5
- readonly methodUnsupported: "Use a supported wallet to pay for this resource using one of the supported payment methods returned in the WWW-Authenticate header. See https://mpp.dev/tools/wallet.md";
3
+ readonly paymentRequired: 'Use a supported wallet to pay for this resource using one of the supported payment methods returned in the WWW-Authenticate header. See https://mpp.dev/tools/wallet.md';
4
+ readonly malformedCredential: 'Use a supported wallet to construct valid credentials for one of the supported payment methods returned in the WWW-Authenticate header. See https://mpp.dev/tools/wallet.md';
5
+ readonly methodUnsupported: 'Use a supported wallet to pay for this resource using one of the supported payment methods returned in the WWW-Authenticate header. See https://mpp.dev/tools/wallet.md';
6
6
  };
7
7
  /**
8
8
  * Base class for all payment-related errors.
package/dist/Method.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type * as Challenge from './Challenge.js';
2
2
  import * as Credential from './Credential.js';
3
- import type { ExactPartial, LooseOmit, MaybePromise } from './internal/types.js';
3
+ import type { DeepReadonly, ExactPartial, LooseOmit, MaybePromise } from './internal/types.js';
4
4
  import type * as Receipt from './Receipt.js';
5
5
  import type * as Html from './server/internal/html/config.js';
6
6
  import type * as Transport from './server/Transport.js';
@@ -142,7 +142,7 @@ export type Validation<method extends Method = Method, details = unknown> = Read
142
142
  /**
143
143
  * A server-side configured method with verification logic.
144
144
  */
145
- export type Server<method extends Method = Method, defaults extends ExactPartial<z.input<method['schema']['request']>> = {}, transportOverride = undefined, extensions extends object = {}, alias extends string | undefined = string | undefined> = method & {
145
+ export type Server<method extends Method = Method, defaults extends ExactPartial<z.input<method['schema']['request']>> = {}, transportOverride = undefined, extensions extends object = {}, alias extends string | undefined = string | undefined> = method & ComposableHooks<method> & {
146
146
  alias?: alias | undefined;
147
147
  authorize?: AuthorizeFn<method> | undefined;
148
148
  defaults?: defaults | undefined;
@@ -163,6 +163,38 @@ export type Server<method extends Method = Method, defaults extends ExactPartial
163
163
  verify: VerifyFn<method>;
164
164
  };
165
165
  export type AnyServer = Server<any, any, any, any, any>;
166
+ /**
167
+ * Decides whether a configured method offer is available for an HTTP request.
168
+ *
169
+ * Called once per configured offer during composition. The payment request is
170
+ * schema-normalized and deeply immutable. `input` is cloned so its body can be
171
+ * safely inspected unless the upstream body was already consumed or locked, in
172
+ * which case the clone preserves request metadata without a body. Returning
173
+ * `false` removes only this method's offer. Successfully matched credential
174
+ * dispatch does not invoke this hook.
175
+ */
176
+ export type CanOfferFn<method extends Method> = (parameters: {
177
+ input: globalThis.Request;
178
+ request: DeepReadonly<z.output<method['schema']['request']>>;
179
+ }) => MaybePromise<boolean>;
180
+ /** Hooks supported by every composable server method constructor. */
181
+ /**
182
+ * Optional per-method hook invoked after a payment succeeds.
183
+ *
184
+ * Called after verification completes successfully. Use this for side-effects
185
+ * like recording the payment in an external system.
186
+ */
187
+ export type OnPaymentSuccessFn<method extends Method> = (parameters: {
188
+ input?: globalThis.Request;
189
+ receipt: DeepReadonly<Receipt.Receipt>;
190
+ request: DeepReadonly<z.output<method['schema']['request']>>;
191
+ }) => MaybePromise<void>;
192
+ export type ComposableHooks<method extends Method> = {
193
+ /** Decides whether this method's configured offer is available for an HTTP request. */
194
+ canOffer?: CanOfferFn<method> | undefined;
195
+ /** Invoked after a successful payment on this method. */
196
+ onPaymentSuccess?: OnPaymentSuccessFn<method> | undefined;
197
+ };
166
198
  /** Credential creation function for a single method. */
167
199
  export type CreateCredentialFn<method extends Method, context = unknown> = (parameters: {
168
200
  challenge: Challenge.Challenge<z.output<method['schema']['request']>, method['intent'], method['name']>;
@@ -252,8 +284,6 @@ export declare function validateCredential<const methods extends readonly AnySer
252
284
  * hosts that issue challenges must verify that binding separately.
253
285
  */
254
286
  export declare function broadcastCredential<const methods extends readonly AnyServer[]>(methods: methods, input: string | Credential.Credential): Promise<Receipt.Receipt>;
255
- /** @internal */
256
- export declare function selectServerMethod(methods: readonly AnyServer[], challenge: Challenge.Challenge): AnyServer | undefined;
257
287
  /**
258
288
  * Optional respond function for a server-side method.
259
289
  *
@@ -318,7 +348,7 @@ export declare namespace toServer {
318
348
  type Alias<options> = options extends {
319
349
  alias: infer alias extends string;
320
350
  } ? alias : undefined;
321
- type Options<method extends Method, defaults extends RequestDefaults<method> = {}, transportOverride extends Transport.AnyTransport | undefined = undefined, extensions extends object = {}, alias extends string | undefined = undefined> = {
351
+ type Options<method extends Method, defaults extends RequestDefaults<method> = {}, transportOverride extends Transport.AnyTransport | undefined = undefined, extensions extends object = {}, alias extends string | undefined = undefined> = ComposableHooks<method> & {
322
352
  alias?: alias | undefined;
323
353
  authorize?: AuthorizeFn<method> | undefined;
324
354
  defaults?: defaults | undefined;
package/dist/Method.js CHANGED
@@ -1,4 +1,3 @@
1
- import * as Constants from './Constants.js';
2
1
  import * as Credential from './Credential.js';
3
2
  import * as Errors from './Errors.js';
4
3
  import * as Expires from './Expires.js';
@@ -68,11 +67,9 @@ export async function broadcastCredential(methods, input) {
68
67
  /**
69
68
  * Parses a submitted credential into the inputs required for method execution.
70
69
  *
71
- * Dispatch is based on the challenge method and intent. When more than one
72
- * server method handles the same wire identity, session protocol details select
73
- * the appropriate implementation. The helper then asserts challenge expiry and
74
- * parses the method-specific credential payload before returning the selected
75
- * method and the unmodified challenge request.
70
+ * Dispatch is based on the challenge method and intent. The helper then asserts
71
+ * challenge expiry and parses the method-specific credential payload before
72
+ * returning the selected method and the unmodified challenge request.
76
73
  *
77
74
  * This intentionally does not verify that the challenge was issued by a
78
75
  * particular host, authorize the caller or requested resource, validate the
@@ -82,7 +79,7 @@ export async function broadcastCredential(methods, input) {
82
79
  function prepareCredential(methods, input) {
83
80
  const credential = typeof input === 'string' ? Credential.deserialize(input) : input;
84
81
  const candidates = methods.filter((method) => method.name === credential.challenge.method && method.intent === credential.challenge.intent);
85
- const method = selectServerMethod(candidates, credential.challenge);
82
+ const method = candidates[0];
86
83
  if (!method)
87
84
  throw new Errors.InvalidChallengeError({
88
85
  id: credential.challenge.id,
@@ -102,20 +99,6 @@ function prepareCredential(methods, input) {
102
99
  request: credential.challenge.request,
103
100
  };
104
101
  }
105
- /** @internal */
106
- export function selectServerMethod(methods, challenge) {
107
- if (methods.length <= 1)
108
- return methods[0];
109
- if (challenge.method !== Constants.Methods.tempo ||
110
- challenge.intent !== Constants.Intents.session)
111
- return methods[0];
112
- const sessionProtocol = Constants.getMethodDetail(challenge.request.methodDetails, Constants.MethodDetailKeys.sessionProtocol);
113
- if (sessionProtocol === undefined || sessionProtocol === Constants.SessionProtocols.v1)
114
- return methods.find((method) => method.alias === 'sessionLegacy') ?? methods[0];
115
- if (sessionProtocol === Constants.SessionProtocols.v2)
116
- return methods.find((method) => method.alias === undefined) ?? methods[0];
117
- return undefined;
118
- }
119
102
  /**
120
103
  * Extends a method with client-side credential creation logic.
121
104
  *
@@ -157,7 +140,7 @@ export function toClient(method, options) {
157
140
  * ```
158
141
  */
159
142
  export function toServer(method, options) {
160
- const { alias, authorize, defaults, extensions, html, preflight, request, respond, broadcast, stableBinding, transport, validate, verify, } = options;
143
+ const { alias, authorize, canOffer, defaults, extensions, html, onPaymentSuccess, preflight, request, respond, broadcast, stableBinding, transport, validate, verify, } = options;
161
144
  const effectiveVerify = verify ??
162
145
  (async (parameters) => {
163
146
  if (validate)
@@ -172,9 +155,11 @@ export function toServer(method, options) {
172
155
  ...method,
173
156
  alias,
174
157
  authorize,
158
+ canOffer,
175
159
  defaults,
176
160
  extensions,
177
161
  html,
162
+ onPaymentSuccess,
178
163
  preflight,
179
164
  request,
180
165
  respond,
package/dist/Store.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { MaybePromise } from './internal/types.js';
1
2
  export type StoreItemMap = Record<string, unknown>;
2
3
  /**
3
4
  * Describes the outcome of an atomic {@link Update} callback.
@@ -27,6 +28,13 @@ export type Change<value, result> = {
27
28
  * must be synchronous and free of side effects.
28
29
  */
29
30
  export type Update<itemMap extends StoreItemMap = StoreItemMap> = <key extends keyof itemMap & string, result>(key: key, fn: (current: itemMap[key] | null) => Change<itemMap[key], result>) => Promise<result>;
31
+ /** Attempts to atomically record first use of a replay key through its expiry. */
32
+ export type TryClaim<itemMap extends StoreItemMap = StoreItemMap> = <key extends keyof itemMap & string>(key: key, expires: number) => MaybePromise<boolean>;
33
+ /** Persisted marker used by the {@link tryClaim} fallback. */
34
+ export type ReplayMarker = {
35
+ expires: number;
36
+ type: 'mppx:replay';
37
+ };
30
38
  /** Base key-value actions available on every {@link Store}. */
31
39
  export type StoreActions<itemMap extends StoreItemMap = StoreItemMap> = {
32
40
  get: <key extends keyof itemMap & string>(key: key) => Promise<itemMap[key] | null>;
@@ -36,6 +44,8 @@ export type StoreActions<itemMap extends StoreItemMap = StoreItemMap> = {
36
44
  /** Atomic actions that can be provided via the `extended` slot. */
37
45
  export type AtomicActions<itemMap extends StoreItemMap = StoreItemMap> = {
38
46
  update: Update<itemMap>;
47
+ /** Optional single-operation fast path for recording expiring replay keys. */
48
+ tryClaim?: TryClaim<itemMap> | undefined;
39
49
  };
40
50
  /**
41
51
  * Async key-value store.
@@ -54,6 +64,15 @@ export type Store<itemMap extends StoreItemMap = StoreItemMap, extended extends
54
64
  * Equivalent to `Store<itemMap, AtomicActions<itemMap>>`.
55
65
  */
56
66
  export type AtomicStore<itemMap extends StoreItemMap = StoreItemMap> = Store<itemMap, AtomicActions<itemMap>>;
67
+ /**
68
+ * Attempts to atomically record first use of a replay key through its expiry.
69
+ *
70
+ * Returns `true` when this call recorded the key and `false` when it was already
71
+ * recorded and unexpired. `expires` is a Unix timestamp in milliseconds.
72
+ * Uses the adapter's optimized primitive when available and otherwise falls
73
+ * back to {@link AtomicStore.update}.
74
+ */
75
+ export declare function tryClaim<itemMap extends StoreItemMap, key extends keyof itemMap & string>(store: AtomicStore<itemMap>, key: key, expires: number): MaybePromise<boolean>;
57
76
  /** Options shared by store constructors. */
58
77
  export type Options = {
59
78
  /** Prefix prepended to every backing store key. */
package/dist/Store.js CHANGED
@@ -15,6 +15,35 @@
15
15
  * `AtomicActions`, just like Viem's `PublicClient = Client<..., PublicActions>`.
16
16
  */
17
17
  import { Json } from 'ox';
18
+ /**
19
+ * Attempts to atomically record first use of a replay key through its expiry.
20
+ *
21
+ * Returns `true` when this call recorded the key and `false` when it was already
22
+ * recorded and unexpired. `expires` is a Unix timestamp in milliseconds.
23
+ * Uses the adapter's optimized primitive when available and otherwise falls
24
+ * back to {@link AtomicStore.update}.
25
+ */
26
+ export function tryClaim(store, key, expires) {
27
+ if (store.tryClaim)
28
+ return store.tryClaim(key, expires);
29
+ return store.update(key, (current) => {
30
+ if (current !== null && (!isReplayMarker(current) || current.expires > Date.now()))
31
+ return { op: 'noop', result: false };
32
+ return {
33
+ op: 'set',
34
+ value: { expires, type: 'mppx:replay' },
35
+ result: true,
36
+ };
37
+ });
38
+ }
39
+ function isReplayMarker(value) {
40
+ return (typeof value === 'object' &&
41
+ value !== null &&
42
+ 'expires' in value &&
43
+ typeof value.expires === 'number' &&
44
+ 'type' in value &&
45
+ value.type === 'mppx:replay');
46
+ }
18
47
  const keyPrefixCache = new WeakMap();
19
48
  export function from(store, options) {
20
49
  return withKeyPrefix(store, options?.keyPrefix);
@@ -44,6 +73,13 @@ function withKeyPrefix(store, keyPrefix = '') {
44
73
  },
45
74
  }
46
75
  : {}),
76
+ ...('tryClaim' in store && typeof store.tryClaim === 'function'
77
+ ? {
78
+ tryClaim(key, expires) {
79
+ return store.tryClaim(prefixedKey(key), expires);
80
+ },
81
+ }
82
+ : {}),
47
83
  });
48
84
  const cachedByPrefix = keyPrefixCache.get(store) ?? new Map();
49
85
  cachedByPrefix.set(keyPrefix, prefixed);
@@ -107,6 +143,13 @@ export function memory(options) {
107
143
  store.delete(key);
108
144
  return change.result;
109
145
  },
146
+ tryClaim(key, expires) {
147
+ const current = store.has(key) ? Json.parse(store.get(key)) : null;
148
+ if (current !== null && (!isReplayMarker(current) || current.expires > Date.now()))
149
+ return false;
150
+ store.set(key, Json.stringify({ expires, type: 'mppx:replay' }));
151
+ return true;
152
+ },
110
153
  }, options);
111
154
  }
112
155
  export function redis(client, options) {
@@ -0,0 +1,17 @@
1
+ import type * as Types from './Types.js';
2
+ /**
3
+ * Combines request signers using one shared context per call.
4
+ *
5
+ * The returned signer creates a fresh context unless its caller supplies one,
6
+ * allowing every signature on one HTTP attempt to share a nonce and timestamp.
7
+ */
8
+ export declare function composeSigners(...signers: readonly [Types.Signer, ...Types.Signer[]]): Types.Signer<'composed'>;
9
+ /**
10
+ * Wraps a fetch implementation so every outbound request is attested.
11
+ *
12
+ * Configure this wrapper as the underlying `fetch` passed to `mppx/client`
13
+ * `Fetch.from()`. MPPX then uses it for both the initial request and its
14
+ * automatic request containing an `Authorization: Payment` credential.
15
+ */
16
+ export declare function wrapFetch(fetch: typeof globalThis.fetch, signer: Types.Signer): typeof globalThis.fetch;
17
+ //# sourceMappingURL=Client.d.ts.map