mppx 0.8.17 → 0.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +21 -4
  4. package/dist/bin.js +3 -3
  5. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  6. package/dist/cli/cli.js +253 -1505
  7. package/dist/cli/plugins/index.js +19 -5
  8. package/dist/cli/plugins/tempo.js +7 -3
  9. package/dist/cli/sessions/Manager.js +7 -4
  10. package/dist/cli/sessions/request.d.ts +2 -0
  11. package/dist/cli/sessions/request.js +18 -0
  12. package/dist/cli/sessions/store.js +28 -14
  13. package/dist/discovery/Discovery.js +2 -1
  14. package/dist/evm/client/Charge.js +8 -0
  15. package/dist/server/core.d.ts +9 -0
  16. package/dist/server/core.js +9 -0
  17. package/dist/stripe/server/Charge.js +2 -4
  18. package/dist/stripe/server/Methods.d.ts +2 -2
  19. package/dist/stripe/server/Methods.js +17 -11
  20. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  21. package/dist/stripe/server/internal/html.gen.js +1 -1
  22. package/dist/stripe/server/spt.d.ts +8 -0
  23. package/dist/stripe/server/spt.js +8 -0
  24. package/dist/tempo/Methods.d.ts +13 -0
  25. package/dist/tempo/Methods.js +14 -3
  26. package/dist/tempo/client/Charge.d.ts +3 -0
  27. package/dist/tempo/client/Charge.js +31 -9
  28. package/dist/tempo/client/Methods.d.ts +13 -0
  29. package/dist/tempo/internal/defaults.d.ts +11 -0
  30. package/dist/tempo/internal/defaults.js +11 -0
  31. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  32. package/dist/tempo/internal/machine-token-charge.js +113 -0
  33. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  34. package/dist/tempo/internal/machine-token-session.js +173 -0
  35. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  36. package/dist/tempo/internal/signature-envelope.js +28 -0
  37. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  38. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  39. package/dist/tempo/legacy/client/Session.d.ts +13 -1
  40. package/dist/tempo/legacy/client/Session.js +3 -3
  41. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  42. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  43. package/dist/tempo/server/Charge.d.ts +3 -0
  44. package/dist/tempo/server/Charge.js +58 -17
  45. package/dist/tempo/server/Methods.d.ts +21 -4
  46. package/dist/tempo/server/Methods.js +8 -4
  47. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  48. package/dist/tempo/server/internal/html.gen.js +1 -1
  49. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  50. package/dist/tempo/session/client/ChannelOps.js +35 -6
  51. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  52. package/dist/tempo/session/client/ChannelStore.js +2 -2
  53. package/dist/tempo/session/client/CredentialState.d.ts +17 -2
  54. package/dist/tempo/session/client/CredentialState.js +77 -76
  55. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  56. package/dist/tempo/session/client/Runtime.js +21 -5
  57. package/dist/tempo/session/client/Session.d.ts +15 -3
  58. package/dist/tempo/session/client/Session.js +186 -63
  59. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  60. package/dist/tempo/session/client/SessionManager.js +35 -11
  61. package/dist/tempo/session/client/Transports.d.ts +2 -0
  62. package/dist/tempo/session/client/Transports.js +12 -2
  63. package/dist/tempo/session/precompile/Chain.d.ts +10 -2
  64. package/dist/tempo/session/precompile/Chain.js +50 -10
  65. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  66. package/dist/tempo/session/precompile/Protocol.js +7 -0
  67. package/dist/tempo/session/precompile/Voucher.d.ts +3 -1
  68. package/dist/tempo/session/precompile/Voucher.js +6 -12
  69. package/dist/tempo/session/server/ChannelStore.d.ts +6 -0
  70. package/dist/tempo/session/server/ChannelStore.js +11 -4
  71. package/dist/tempo/session/server/CredentialVerification.d.ts +11 -9
  72. package/dist/tempo/session/server/CredentialVerification.js +185 -109
  73. package/dist/tempo/session/server/MeteredStream.d.ts +1 -1
  74. package/dist/tempo/session/server/MeteredStream.js +5 -4
  75. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  76. package/dist/tempo/session/server/RequestState.js +61 -15
  77. package/dist/tempo/session/server/Session.d.ts +14 -2
  78. package/dist/tempo/session/server/Session.js +37 -6
  79. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  80. package/dist/tempo/session/server/Settlement.js +53 -21
  81. package/dist/x402/client/Exact.d.ts +8 -0
  82. package/dist/x402/client/Exact.js +40 -10
  83. package/dist/x402/server/EvmCharge.d.ts +22 -0
  84. package/dist/x402/server/EvmCharge.js +23 -1
  85. package/package.json +15 -37
  86. package/dist/BodyDigest.d.ts.map +0 -1
  87. package/dist/BodyDigest.js.map +0 -1
  88. package/dist/Challenge.d.ts.map +0 -1
  89. package/dist/Challenge.js.map +0 -1
  90. package/dist/Constants.d.ts.map +0 -1
  91. package/dist/Constants.js.map +0 -1
  92. package/dist/Credential.d.ts.map +0 -1
  93. package/dist/Credential.js.map +0 -1
  94. package/dist/Errors.d.ts.map +0 -1
  95. package/dist/Errors.js.map +0 -1
  96. package/dist/Expires.d.ts.map +0 -1
  97. package/dist/Expires.js.map +0 -1
  98. package/dist/Html.d.ts.map +0 -1
  99. package/dist/Html.js.map +0 -1
  100. package/dist/Mcp.d.ts.map +0 -1
  101. package/dist/Mcp.js.map +0 -1
  102. package/dist/Method.d.ts.map +0 -1
  103. package/dist/Method.js.map +0 -1
  104. package/dist/PaymentRequest.d.ts.map +0 -1
  105. package/dist/PaymentRequest.js.map +0 -1
  106. package/dist/Receipt.d.ts.map +0 -1
  107. package/dist/Receipt.js.map +0 -1
  108. package/dist/Store.d.ts.map +0 -1
  109. package/dist/Store.js.map +0 -1
  110. package/dist/attestation/Client.d.ts.map +0 -1
  111. package/dist/attestation/Client.js.map +0 -1
  112. package/dist/attestation/Constants.d.ts.map +0 -1
  113. package/dist/attestation/Constants.js.map +0 -1
  114. package/dist/attestation/Server.d.ts.map +0 -1
  115. package/dist/attestation/Server.js.map +0 -1
  116. package/dist/attestation/Types.d.ts.map +0 -1
  117. package/dist/attestation/Types.js.map +0 -1
  118. package/dist/attestation/index.d.ts.map +0 -1
  119. package/dist/attestation/index.js.map +0 -1
  120. package/dist/attestation/internal/HttpMessageSignature.d.ts.map +0 -1
  121. package/dist/attestation/internal/HttpMessageSignature.js.map +0 -1
  122. package/dist/attestation/internal/SigningContext.d.ts.map +0 -1
  123. package/dist/attestation/internal/SigningContext.js.map +0 -1
  124. package/dist/bin.d.ts.map +0 -1
  125. package/dist/bin.js.map +0 -1
  126. package/dist/cli/account.d.ts.map +0 -1
  127. package/dist/cli/account.js.map +0 -1
  128. package/dist/cli/cli.d.ts.map +0 -1
  129. package/dist/cli/cli.js.map +0 -1
  130. package/dist/cli/config.d.ts.map +0 -1
  131. package/dist/cli/config.js.map +0 -1
  132. package/dist/cli/internal.d.ts.map +0 -1
  133. package/dist/cli/internal.js.map +0 -1
  134. package/dist/cli/plugins/evm.d.ts.map +0 -1
  135. package/dist/cli/plugins/evm.js.map +0 -1
  136. package/dist/cli/plugins/index.d.ts.map +0 -1
  137. package/dist/cli/plugins/index.js.map +0 -1
  138. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  139. package/dist/cli/plugins/plugin.js.map +0 -1
  140. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  141. package/dist/cli/plugins/stripe.js.map +0 -1
  142. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  143. package/dist/cli/plugins/tempo.js.map +0 -1
  144. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  145. package/dist/cli/sessions/Manager.js.map +0 -1
  146. package/dist/cli/sessions/commands.d.ts.map +0 -1
  147. package/dist/cli/sessions/commands.js.map +0 -1
  148. package/dist/cli/sessions/request.d.ts.map +0 -1
  149. package/dist/cli/sessions/request.js.map +0 -1
  150. package/dist/cli/sessions/store.d.ts.map +0 -1
  151. package/dist/cli/sessions/store.js.map +0 -1
  152. package/dist/cli/utils.d.ts.map +0 -1
  153. package/dist/cli/utils.js.map +0 -1
  154. package/dist/cli/validate/challenge.d.ts.map +0 -1
  155. package/dist/cli/validate/challenge.js.map +0 -1
  156. package/dist/cli/validate/discovery.d.ts.map +0 -1
  157. package/dist/cli/validate/discovery.js.map +0 -1
  158. package/dist/cli/validate/helpers.d.ts.map +0 -1
  159. package/dist/cli/validate/helpers.js.map +0 -1
  160. package/dist/cli/validate/index.d.ts.map +0 -1
  161. package/dist/cli/validate/index.js.map +0 -1
  162. package/dist/cli/validate/messages.d.ts.map +0 -1
  163. package/dist/cli/validate/messages.js.map +0 -1
  164. package/dist/cli/validate/payment.d.ts.map +0 -1
  165. package/dist/cli/validate/payment.js.map +0 -1
  166. package/dist/client/Methods.d.ts.map +0 -1
  167. package/dist/client/Methods.js.map +0 -1
  168. package/dist/client/Mppx.d.ts.map +0 -1
  169. package/dist/client/Mppx.js.map +0 -1
  170. package/dist/client/Transport.d.ts.map +0 -1
  171. package/dist/client/Transport.js.map +0 -1
  172. package/dist/client/index.d.ts.map +0 -1
  173. package/dist/client/index.js.map +0 -1
  174. package/dist/client/internal/Fetch.d.ts.map +0 -1
  175. package/dist/client/internal/Fetch.js.map +0 -1
  176. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  177. package/dist/client/internal/MethodChallenge.js.map +0 -1
  178. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  179. package/dist/client/internal/MethodResponse.js.map +0 -1
  180. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  181. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  182. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  183. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  184. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  185. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  186. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  187. package/dist/client/internal/protocols/Shared.js.map +0 -1
  188. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  189. package/dist/client/internal/protocols/X402.js.map +0 -1
  190. package/dist/client/node.d.ts.map +0 -1
  191. package/dist/client/node.js.map +0 -1
  192. package/dist/discovery/Discovery.d.ts.map +0 -1
  193. package/dist/discovery/Discovery.js.map +0 -1
  194. package/dist/discovery/OpenApi.d.ts.map +0 -1
  195. package/dist/discovery/OpenApi.js.map +0 -1
  196. package/dist/discovery/Validate.d.ts.map +0 -1
  197. package/dist/discovery/Validate.js.map +0 -1
  198. package/dist/discovery/index.d.ts.map +0 -1
  199. package/dist/discovery/index.js.map +0 -1
  200. package/dist/discovery/internal/Metadata.d.ts.map +0 -1
  201. package/dist/discovery/internal/Metadata.js.map +0 -1
  202. package/dist/evm/Assets.d.ts.map +0 -1
  203. package/dist/evm/Assets.js.map +0 -1
  204. package/dist/evm/Chains.d.ts.map +0 -1
  205. package/dist/evm/Chains.js.map +0 -1
  206. package/dist/evm/Methods.d.ts.map +0 -1
  207. package/dist/evm/Methods.js.map +0 -1
  208. package/dist/evm/Types.d.ts.map +0 -1
  209. package/dist/evm/Types.js.map +0 -1
  210. package/dist/evm/client/Charge.d.ts.map +0 -1
  211. package/dist/evm/client/Charge.js.map +0 -1
  212. package/dist/evm/client/Methods.d.ts.map +0 -1
  213. package/dist/evm/client/Methods.js.map +0 -1
  214. package/dist/evm/client/index.d.ts.map +0 -1
  215. package/dist/evm/client/index.js.map +0 -1
  216. package/dist/evm/index.d.ts.map +0 -1
  217. package/dist/evm/index.js.map +0 -1
  218. package/dist/evm/server/Charge.d.ts.map +0 -1
  219. package/dist/evm/server/Charge.js.map +0 -1
  220. package/dist/evm/server/Methods.d.ts.map +0 -1
  221. package/dist/evm/server/Methods.js.map +0 -1
  222. package/dist/evm/server/index.d.ts.map +0 -1
  223. package/dist/evm/server/index.js.map +0 -1
  224. package/dist/index.d.ts.map +0 -1
  225. package/dist/index.js.map +0 -1
  226. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  227. package/dist/internal/AcceptPayment.js.map +0 -1
  228. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  229. package/dist/internal/HeaderCodec.js.map +0 -1
  230. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  231. package/dist/internal/constantTimeEqual.js.map +0 -1
  232. package/dist/internal/env.d.ts.map +0 -1
  233. package/dist/internal/env.js.map +0 -1
  234. package/dist/internal/types.d.ts.map +0 -1
  235. package/dist/internal/types.js.map +0 -1
  236. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  237. package/dist/mcp/client/McpClient.js.map +0 -1
  238. package/dist/mcp/client/index.d.ts.map +0 -1
  239. package/dist/mcp/client/index.js.map +0 -1
  240. package/dist/mcp/server/Transport.d.ts.map +0 -1
  241. package/dist/mcp/server/Transport.js.map +0 -1
  242. package/dist/mcp/server/index.d.ts.map +0 -1
  243. package/dist/mcp/server/index.js.map +0 -1
  244. package/dist/middlewares/elysia.d.ts.map +0 -1
  245. package/dist/middlewares/elysia.js.map +0 -1
  246. package/dist/middlewares/express.d.ts.map +0 -1
  247. package/dist/middlewares/express.js.map +0 -1
  248. package/dist/middlewares/hono.d.ts.map +0 -1
  249. package/dist/middlewares/hono.js.map +0 -1
  250. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  251. package/dist/middlewares/internal/mppx.js.map +0 -1
  252. package/dist/middlewares/nextjs.d.ts.map +0 -1
  253. package/dist/middlewares/nextjs.js.map +0 -1
  254. package/dist/proxy/Proxy.d.ts.map +0 -1
  255. package/dist/proxy/Proxy.js.map +0 -1
  256. package/dist/proxy/Service.d.ts.map +0 -1
  257. package/dist/proxy/Service.js.map +0 -1
  258. package/dist/proxy/index.d.ts.map +0 -1
  259. package/dist/proxy/index.js.map +0 -1
  260. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  261. package/dist/proxy/internal/Headers.js.map +0 -1
  262. package/dist/proxy/internal/Route.d.ts.map +0 -1
  263. package/dist/proxy/internal/Route.js.map +0 -1
  264. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  265. package/dist/proxy/services/anthropic.js.map +0 -1
  266. package/dist/proxy/services/openai.d.ts.map +0 -1
  267. package/dist/proxy/services/openai.js.map +0 -1
  268. package/dist/proxy/services/stripe.d.ts.map +0 -1
  269. package/dist/proxy/services/stripe.js.map +0 -1
  270. package/dist/server/Methods.d.ts.map +0 -1
  271. package/dist/server/Methods.js.map +0 -1
  272. package/dist/server/Mppx.d.ts.map +0 -1
  273. package/dist/server/Mppx.js.map +0 -1
  274. package/dist/server/NodeListener.d.ts.map +0 -1
  275. package/dist/server/NodeListener.js.map +0 -1
  276. package/dist/server/Request.d.ts.map +0 -1
  277. package/dist/server/Request.js.map +0 -1
  278. package/dist/server/Response.d.ts.map +0 -1
  279. package/dist/server/Response.js.map +0 -1
  280. package/dist/server/Transport.d.ts.map +0 -1
  281. package/dist/server/Transport.js.map +0 -1
  282. package/dist/server/index.d.ts.map +0 -1
  283. package/dist/server/index.js.map +0 -1
  284. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  285. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  286. package/dist/server/internal/html/config.d.ts.map +0 -1
  287. package/dist/server/internal/html/config.js.map +0 -1
  288. package/dist/server/internal/html/constants.d.ts.map +0 -1
  289. package/dist/server/internal/html/constants.js.map +0 -1
  290. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  291. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  292. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  293. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  294. package/dist/server/internal/scope.d.ts.map +0 -1
  295. package/dist/server/internal/scope.js.map +0 -1
  296. package/dist/stripe/Methods.d.ts.map +0 -1
  297. package/dist/stripe/Methods.js.map +0 -1
  298. package/dist/stripe/client/Charge.d.ts.map +0 -1
  299. package/dist/stripe/client/Charge.js.map +0 -1
  300. package/dist/stripe/client/Methods.d.ts.map +0 -1
  301. package/dist/stripe/client/Methods.js.map +0 -1
  302. package/dist/stripe/client/index.d.ts.map +0 -1
  303. package/dist/stripe/client/index.js.map +0 -1
  304. package/dist/stripe/index.d.ts.map +0 -1
  305. package/dist/stripe/index.js.map +0 -1
  306. package/dist/stripe/internal/constants.d.ts.map +0 -1
  307. package/dist/stripe/internal/constants.js.map +0 -1
  308. package/dist/stripe/internal/types.d.ts.map +0 -1
  309. package/dist/stripe/internal/types.js.map +0 -1
  310. package/dist/stripe/server/Charge.d.ts.map +0 -1
  311. package/dist/stripe/server/Charge.js.map +0 -1
  312. package/dist/stripe/server/Methods.d.ts.map +0 -1
  313. package/dist/stripe/server/Methods.js.map +0 -1
  314. package/dist/stripe/server/index.d.ts.map +0 -1
  315. package/dist/stripe/server/index.js.map +0 -1
  316. package/dist/stripe/server/internal/deposit-address.d.ts.map +0 -1
  317. package/dist/stripe/server/internal/deposit-address.js.map +0 -1
  318. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  319. package/dist/stripe/server/internal/html/types.js.map +0 -1
  320. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  321. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  322. package/dist/stripe/server/internal/record-payment.d.ts.map +0 -1
  323. package/dist/stripe/server/internal/record-payment.js.map +0 -1
  324. package/dist/stripe/server/internal/request.d.ts.map +0 -1
  325. package/dist/stripe/server/internal/request.js.map +0 -1
  326. package/dist/tap/Constants.d.ts.map +0 -1
  327. package/dist/tap/Constants.js.map +0 -1
  328. package/dist/tap/Types.d.ts.map +0 -1
  329. package/dist/tap/Types.js.map +0 -1
  330. package/dist/tap/client/index.d.ts.map +0 -1
  331. package/dist/tap/client/index.js.map +0 -1
  332. package/dist/tap/index.d.ts.map +0 -1
  333. package/dist/tap/index.js.map +0 -1
  334. package/dist/tap/server/index.d.ts.map +0 -1
  335. package/dist/tap/server/index.js.map +0 -1
  336. package/dist/tempo/Attribution.d.ts.map +0 -1
  337. package/dist/tempo/Attribution.js.map +0 -1
  338. package/dist/tempo/Methods.d.ts.map +0 -1
  339. package/dist/tempo/Methods.js.map +0 -1
  340. package/dist/tempo/Proof.d.ts.map +0 -1
  341. package/dist/tempo/Proof.js.map +0 -1
  342. package/dist/tempo/client/Charge.d.ts.map +0 -1
  343. package/dist/tempo/client/Charge.js.map +0 -1
  344. package/dist/tempo/client/Methods.d.ts.map +0 -1
  345. package/dist/tempo/client/Methods.js.map +0 -1
  346. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  347. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  348. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  349. package/dist/tempo/client/Subscription.js.map +0 -1
  350. package/dist/tempo/client/index.d.ts.map +0 -1
  351. package/dist/tempo/client/index.js.map +0 -1
  352. package/dist/tempo/index.d.ts.map +0 -1
  353. package/dist/tempo/index.js.map +0 -1
  354. package/dist/tempo/internal/account.d.ts.map +0 -1
  355. package/dist/tempo/internal/account.js.map +0 -1
  356. package/dist/tempo/internal/address.d.ts.map +0 -1
  357. package/dist/tempo/internal/address.js.map +0 -1
  358. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  359. package/dist/tempo/internal/auto-swap.js.map +0 -1
  360. package/dist/tempo/internal/charge.d.ts.map +0 -1
  361. package/dist/tempo/internal/charge.js.map +0 -1
  362. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  363. package/dist/tempo/internal/defaults.js.map +0 -1
  364. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  365. package/dist/tempo/internal/fee-payer.js.map +0 -1
  366. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  367. package/dist/tempo/internal/fee-token.js.map +0 -1
  368. package/dist/tempo/internal/proof.d.ts.map +0 -1
  369. package/dist/tempo/internal/proof.js.map +0 -1
  370. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  371. package/dist/tempo/internal/selectors.js.map +0 -1
  372. package/dist/tempo/internal/types.d.ts.map +0 -1
  373. package/dist/tempo/internal/types.js.map +0 -1
  374. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  375. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  376. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  377. package/dist/tempo/legacy/client/Session.js.map +0 -1
  378. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  379. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  380. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  381. package/dist/tempo/legacy/client/index.js.map +0 -1
  382. package/dist/tempo/legacy/index.d.ts.map +0 -1
  383. package/dist/tempo/legacy/index.js.map +0 -1
  384. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  385. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  386. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  387. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  388. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  389. package/dist/tempo/legacy/session/Types.js.map +0 -1
  390. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  391. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  392. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  393. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  394. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  395. package/dist/tempo/legacy/session/index.js.map +0 -1
  396. package/dist/tempo/server/Charge.d.ts.map +0 -1
  397. package/dist/tempo/server/Charge.js.map +0 -1
  398. package/dist/tempo/server/Methods.d.ts.map +0 -1
  399. package/dist/tempo/server/Methods.js.map +0 -1
  400. package/dist/tempo/server/Relay.d.ts.map +0 -1
  401. package/dist/tempo/server/Relay.js.map +0 -1
  402. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  403. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  404. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  405. package/dist/tempo/server/Subscription.js.map +0 -1
  406. package/dist/tempo/server/index.d.ts.map +0 -1
  407. package/dist/tempo/server/index.js.map +0 -1
  408. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  409. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  410. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  411. package/dist/tempo/server/internal/request-body.js.map +0 -1
  412. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  413. package/dist/tempo/server/internal/transport.js.map +0 -1
  414. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  415. package/dist/tempo/session/Snapshot.js.map +0 -1
  416. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  417. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  418. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  419. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  420. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  421. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  422. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  423. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  424. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  425. package/dist/tempo/session/client/Runtime.js.map +0 -1
  426. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  427. package/dist/tempo/session/client/Session.js.map +0 -1
  428. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  429. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  430. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  431. package/dist/tempo/session/client/Transports.js.map +0 -1
  432. package/dist/tempo/session/client/index.d.ts.map +0 -1
  433. package/dist/tempo/session/client/index.js.map +0 -1
  434. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  435. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  436. package/dist/tempo/session/index.d.ts.map +0 -1
  437. package/dist/tempo/session/index.js.map +0 -1
  438. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  439. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  440. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  441. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  442. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  443. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  444. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  445. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  446. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  447. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  448. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  449. package/dist/tempo/session/precompile/index.js.map +0 -1
  450. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  451. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  452. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  453. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  454. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  455. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  456. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  457. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  458. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  459. package/dist/tempo/session/server/RequestState.js.map +0 -1
  460. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  461. package/dist/tempo/session/server/Session.js.map +0 -1
  462. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  463. package/dist/tempo/session/server/Settlement.js.map +0 -1
  464. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  465. package/dist/tempo/session/server/Sse.js.map +0 -1
  466. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  467. package/dist/tempo/session/server/Transports.js.map +0 -1
  468. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  469. package/dist/tempo/session/server/Ws.js.map +0 -1
  470. package/dist/tempo/session/server/index.d.ts.map +0 -1
  471. package/dist/tempo/session/server/index.js.map +0 -1
  472. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  473. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  474. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  475. package/dist/tempo/subscription/Receipt.js.map +0 -1
  476. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  477. package/dist/tempo/subscription/Store.js.map +0 -1
  478. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  479. package/dist/tempo/subscription/Types.js.map +0 -1
  480. package/dist/tempo/subscription/index.d.ts.map +0 -1
  481. package/dist/tempo/subscription/index.js.map +0 -1
  482. package/dist/validation/core.d.ts.map +0 -1
  483. package/dist/validation/core.js.map +0 -1
  484. package/dist/validation/index.d.ts.map +0 -1
  485. package/dist/validation/index.js.map +0 -1
  486. package/dist/viem/Account.d.ts.map +0 -1
  487. package/dist/viem/Account.js.map +0 -1
  488. package/dist/viem/Client.d.ts.map +0 -1
  489. package/dist/viem/Client.js.map +0 -1
  490. package/dist/web-bot-auth/Constants.d.ts.map +0 -1
  491. package/dist/web-bot-auth/Constants.js.map +0 -1
  492. package/dist/web-bot-auth/Types.d.ts.map +0 -1
  493. package/dist/web-bot-auth/Types.js.map +0 -1
  494. package/dist/web-bot-auth/client/index.d.ts.map +0 -1
  495. package/dist/web-bot-auth/client/index.js.map +0 -1
  496. package/dist/web-bot-auth/index.d.ts.map +0 -1
  497. package/dist/web-bot-auth/index.js.map +0 -1
  498. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +0 -1
  499. package/dist/web-bot-auth/internal/JwkThumbprint.js.map +0 -1
  500. package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +0 -1
  501. package/dist/web-bot-auth/internal/SignatureAgent.js.map +0 -1
  502. package/dist/web-bot-auth/server/index.d.ts.map +0 -1
  503. package/dist/web-bot-auth/server/index.js.map +0 -1
  504. package/dist/x402/Assets.d.ts.map +0 -1
  505. package/dist/x402/Assets.js.map +0 -1
  506. package/dist/x402/Header.d.ts.map +0 -1
  507. package/dist/x402/Header.js.map +0 -1
  508. package/dist/x402/Types.d.ts.map +0 -1
  509. package/dist/x402/Types.js.map +0 -1
  510. package/dist/x402/client/Exact.d.ts.map +0 -1
  511. package/dist/x402/client/Exact.js.map +0 -1
  512. package/dist/x402/index.d.ts.map +0 -1
  513. package/dist/x402/index.js.map +0 -1
  514. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  515. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  516. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  517. package/dist/x402/internal/RouteBinding.js.map +0 -1
  518. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  519. package/dist/x402/server/EvmCharge.js.map +0 -1
  520. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  521. package/dist/x402/server/Facilitator.js.map +0 -1
  522. package/dist/zod.d.ts.map +0 -1
  523. package/dist/zod.js.map +0 -1
  524. package/src/BodyDigest.test.ts +0 -43
  525. package/src/BodyDigest.ts +0 -55
  526. package/src/Challenge.fuzz.test.ts +0 -154
  527. package/src/Challenge.test-d.ts +0 -82
  528. package/src/Challenge.test.ts +0 -1060
  529. package/src/Challenge.ts +0 -687
  530. package/src/Constants.ts +0 -58
  531. package/src/Credential.fuzz.test.ts +0 -62
  532. package/src/Credential.test.ts +0 -378
  533. package/src/Credential.ts +0 -217
  534. package/src/Errors.test.ts +0 -520
  535. package/src/Errors.ts +0 -448
  536. package/src/Expires.test.ts +0 -112
  537. package/src/Expires.ts +0 -59
  538. package/src/Html.ts +0 -67
  539. package/src/Mcp.ts +0 -85
  540. package/src/Method.test.ts +0 -177
  541. package/src/Method.ts +0 -631
  542. package/src/PaymentRequest.test.ts +0 -147
  543. package/src/PaymentRequest.ts +0 -108
  544. package/src/Receipt.test.ts +0 -151
  545. package/src/Receipt.ts +0 -146
  546. package/src/Store.test-d.ts +0 -211
  547. package/src/Store.test.ts +0 -407
  548. package/src/Store.ts +0 -397
  549. package/src/attestation/Attestation.integration.test.ts +0 -208
  550. package/src/attestation/Client.test.ts +0 -83
  551. package/src/attestation/Client.ts +0 -34
  552. package/src/attestation/Constants.ts +0 -15
  553. package/src/attestation/Server.test.ts +0 -60
  554. package/src/attestation/Server.ts +0 -12
  555. package/src/attestation/Types.test-d.ts +0 -54
  556. package/src/attestation/Types.ts +0 -77
  557. package/src/attestation/index.ts +0 -5
  558. package/src/attestation/internal/HttpMessageSignature.test.ts +0 -101
  559. package/src/attestation/internal/HttpMessageSignature.ts +0 -429
  560. package/src/attestation/internal/SigningContext.ts +0 -13
  561. package/src/bin.js +0 -2
  562. package/src/bin.ts +0 -4
  563. package/src/cli/account.ts +0 -269
  564. package/src/cli/cli.test.ts +0 -2221
  565. package/src/cli/cli.ts +0 -1650
  566. package/src/cli/config.test.ts +0 -89
  567. package/src/cli/config.ts +0 -50
  568. package/src/cli/internal.ts +0 -114
  569. package/src/cli/mcp.test.ts +0 -262
  570. package/src/cli/plugins/evm.ts +0 -55
  571. package/src/cli/plugins/index.ts +0 -4
  572. package/src/cli/plugins/plugin.ts +0 -84
  573. package/src/cli/plugins/stripe.ts +0 -174
  574. package/src/cli/plugins/tempo.ts +0 -1102
  575. package/src/cli/sessions/Manager.test.ts +0 -249
  576. package/src/cli/sessions/Manager.ts +0 -93
  577. package/src/cli/sessions/commands.ts +0 -444
  578. package/src/cli/sessions/request.test.ts +0 -51
  579. package/src/cli/sessions/request.ts +0 -353
  580. package/src/cli/sessions/store.test.ts +0 -581
  581. package/src/cli/sessions/store.ts +0 -940
  582. package/src/cli/utils.test.ts +0 -156
  583. package/src/cli/utils.ts +0 -394
  584. package/src/cli/validate/challenge.ts +0 -565
  585. package/src/cli/validate/discovery.test.ts +0 -435
  586. package/src/cli/validate/discovery.ts +0 -221
  587. package/src/cli/validate/helpers.ts +0 -166
  588. package/src/cli/validate/index.ts +0 -229
  589. package/src/cli/validate/messages.ts +0 -7
  590. package/src/cli/validate/payment.ts +0 -774
  591. package/src/cli/validate.test.ts +0 -843
  592. package/src/client/Methods.ts +0 -8
  593. package/src/client/Mppx.test-d.ts +0 -287
  594. package/src/client/Mppx.test.ts +0 -1065
  595. package/src/client/Mppx.ts +0 -487
  596. package/src/client/Transport.test.ts +0 -586
  597. package/src/client/Transport.ts +0 -170
  598. package/src/client/index.ts +0 -29
  599. package/src/client/internal/Fetch.browser.test.ts +0 -197
  600. package/src/client/internal/Fetch.test-d.ts +0 -109
  601. package/src/client/internal/Fetch.test.ts +0 -2336
  602. package/src/client/internal/Fetch.ts +0 -1075
  603. package/src/client/internal/MethodChallenge.ts +0 -35
  604. package/src/client/internal/MethodResponse.ts +0 -67
  605. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  606. package/src/client/internal/protocols/Mcp.ts +0 -186
  607. package/src/client/internal/protocols/Mpp.ts +0 -21
  608. package/src/client/internal/protocols/Protocol.ts +0 -10
  609. package/src/client/internal/protocols/Shared.ts +0 -25
  610. package/src/client/internal/protocols/X402.ts +0 -46
  611. package/src/client/node.test.ts +0 -115
  612. package/src/client/node.ts +0 -247
  613. package/src/discovery/Discovery.test.ts +0 -214
  614. package/src/discovery/Discovery.ts +0 -105
  615. package/src/discovery/OpenApi.test.ts +0 -623
  616. package/src/discovery/OpenApi.ts +0 -192
  617. package/src/discovery/Validate.test.ts +0 -305
  618. package/src/discovery/Validate.ts +0 -77
  619. package/src/discovery/index.ts +0 -3
  620. package/src/discovery/internal/Metadata.ts +0 -51
  621. package/src/env.d.ts +0 -12
  622. package/src/evm/Assets.ts +0 -1
  623. package/src/evm/Chains.ts +0 -11
  624. package/src/evm/Methods.ts +0 -44
  625. package/src/evm/PublicInterface.test-d.ts +0 -134
  626. package/src/evm/Types.ts +0 -140
  627. package/src/evm/client/Charge.test.ts +0 -347
  628. package/src/evm/client/Charge.ts +0 -187
  629. package/src/evm/client/Methods.ts +0 -19
  630. package/src/evm/client/index.ts +0 -6
  631. package/src/evm/index.ts +0 -16
  632. package/src/evm/server/Charge.test.ts +0 -339
  633. package/src/evm/server/Charge.ts +0 -295
  634. package/src/evm/server/Methods.ts +0 -22
  635. package/src/evm/server/index.ts +0 -6
  636. package/src/index.ts +0 -14
  637. package/src/internal/AcceptPayment.test.ts +0 -347
  638. package/src/internal/AcceptPayment.ts +0 -366
  639. package/src/internal/HeaderCodec.ts +0 -36
  640. package/src/internal/changeset.test.ts +0 -106
  641. package/src/internal/constantTimeEqual.test.ts +0 -47
  642. package/src/internal/constantTimeEqual.ts +0 -10
  643. package/src/internal/env.test.ts +0 -42
  644. package/src/internal/env.ts +0 -49
  645. package/src/internal/types.test-d.ts +0 -21
  646. package/src/internal/types.ts +0 -479
  647. package/src/mcp/client/McpClient.integration.test.ts +0 -639
  648. package/src/mcp/client/McpClient.test-d.ts +0 -144
  649. package/src/mcp/client/McpClient.test.ts +0 -463
  650. package/src/mcp/client/McpClient.ts +0 -307
  651. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  652. package/src/mcp/client/index.ts +0 -2
  653. package/src/mcp/server/Transport.test.ts +0 -191
  654. package/src/mcp/server/Transport.ts +0 -111
  655. package/src/mcp/server/index.ts +0 -1
  656. package/src/middlewares/elysia.test.ts +0 -285
  657. package/src/middlewares/elysia.ts +0 -116
  658. package/src/middlewares/express.test.ts +0 -361
  659. package/src/middlewares/express.ts +0 -140
  660. package/src/middlewares/hono.test.ts +0 -473
  661. package/src/middlewares/hono.ts +0 -153
  662. package/src/middlewares/internal/mppx.test.ts +0 -177
  663. package/src/middlewares/internal/mppx.ts +0 -67
  664. package/src/middlewares/nextjs.test.ts +0 -359
  665. package/src/middlewares/nextjs.ts +0 -107
  666. package/src/proxy/Proxy.test.ts +0 -1038
  667. package/src/proxy/Proxy.ts +0 -483
  668. package/src/proxy/Proxy.upstreamError.test.ts +0 -364
  669. package/src/proxy/Service.test.ts +0 -252
  670. package/src/proxy/Service.ts +0 -280
  671. package/src/proxy/index.ts +0 -6
  672. package/src/proxy/internal/Headers.test.ts +0 -139
  673. package/src/proxy/internal/Headers.ts +0 -66
  674. package/src/proxy/internal/Route.test.ts +0 -217
  675. package/src/proxy/internal/Route.ts +0 -64
  676. package/src/proxy/services/anthropic.test.ts +0 -132
  677. package/src/proxy/services/anthropic.ts +0 -53
  678. package/src/proxy/services/hooks.test-d.ts +0 -14
  679. package/src/proxy/services/hooks.test.ts +0 -44
  680. package/src/proxy/services/openai.test.ts +0 -157
  681. package/src/proxy/services/openai.ts +0 -60
  682. package/src/proxy/services/stripe.test.ts +0 -175
  683. package/src/proxy/services/stripe.ts +0 -59
  684. package/src/server/Methods.test-d.ts +0 -88
  685. package/src/server/Methods.test.ts +0 -69
  686. package/src/server/Methods.ts +0 -3
  687. package/src/server/Mppx.authorize.test.ts +0 -210
  688. package/src/server/Mppx.test-d.ts +0 -494
  689. package/src/server/Mppx.test.ts +0 -6711
  690. package/src/server/Mppx.ts +0 -2919
  691. package/src/server/NodeListener.test.ts +0 -293
  692. package/src/server/NodeListener.ts +0 -45
  693. package/src/server/Request.test.ts +0 -255
  694. package/src/server/Request.ts +0 -155
  695. package/src/server/Response.test.ts +0 -32
  696. package/src/server/Response.ts +0 -45
  697. package/src/server/Transport.test.ts +0 -598
  698. package/src/server/Transport.ts +0 -320
  699. package/src/server/index.ts +0 -9
  700. package/src/server/internal/html/compose.main.gen.ts +0 -2
  701. package/src/server/internal/html/compose.main.ts +0 -88
  702. package/src/server/internal/html/config.ts +0 -672
  703. package/src/server/internal/html/constants.ts +0 -28
  704. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  705. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  706. package/src/server/internal/html/serviceWorker.ts +0 -27
  707. package/src/server/internal/html/tsconfig.compose.json +0 -8
  708. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  709. package/src/server/internal/html/tsconfig.worker.json +0 -8
  710. package/src/server/internal/scope.ts +0 -43
  711. package/src/stripe/Charge.integration.test.ts +0 -329
  712. package/src/stripe/Methods.test.ts +0 -62
  713. package/src/stripe/Methods.ts +0 -44
  714. package/src/stripe/client/Charge.test.ts +0 -205
  715. package/src/stripe/client/Charge.ts +0 -132
  716. package/src/stripe/client/Methods.ts +0 -37
  717. package/src/stripe/client/index.ts +0 -2
  718. package/src/stripe/index.ts +0 -1
  719. package/src/stripe/internal/constants.ts +0 -7
  720. package/src/stripe/internal/types.ts +0 -47
  721. package/src/stripe/server/Charge.test-d.ts +0 -81
  722. package/src/stripe/server/Charge.test.ts +0 -700
  723. package/src/stripe/server/Charge.ts +0 -487
  724. package/src/stripe/server/Methods.test-d.ts +0 -157
  725. package/src/stripe/server/Methods.test.ts +0 -403
  726. package/src/stripe/server/Methods.ts +0 -441
  727. package/src/stripe/server/index.ts +0 -2
  728. package/src/stripe/server/internal/deposit-address.ts +0 -57
  729. package/src/stripe/server/internal/html/main.ts +0 -165
  730. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  731. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  732. package/src/stripe/server/internal/html/package.json +0 -9
  733. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  734. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  735. package/src/stripe/server/internal/html/types.ts +0 -5
  736. package/src/stripe/server/internal/html.gen.ts +0 -2
  737. package/src/stripe/server/internal/record-payment.ts +0 -66
  738. package/src/stripe/server/internal/request.ts +0 -49
  739. package/src/tap/Constants.ts +0 -32
  740. package/src/tap/Tap.test.ts +0 -125
  741. package/src/tap/Types.ts +0 -11
  742. package/src/tap/client/index.ts +0 -54
  743. package/src/tap/index.ts +0 -4
  744. package/src/tap/server/index.ts +0 -48
  745. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  746. package/src/tempo/Attribution.test.ts +0 -294
  747. package/src/tempo/Attribution.ts +0 -185
  748. package/src/tempo/Methods.test.ts +0 -425
  749. package/src/tempo/Methods.ts +0 -367
  750. package/src/tempo/Proof.conformance.test.ts +0 -146
  751. package/src/tempo/Proof.test-d.ts +0 -32
  752. package/src/tempo/Proof.test.ts +0 -40
  753. package/src/tempo/Proof.ts +0 -69
  754. package/src/tempo/PublicExports.test-d.ts +0 -130
  755. package/src/tempo/Subscription.integration.test.ts +0 -591
  756. package/src/tempo/client/Charge.test.ts +0 -501
  757. package/src/tempo/client/Charge.ts +0 -271
  758. package/src/tempo/client/Methods.ts +0 -45
  759. package/src/tempo/client/ResolveAccount.ts +0 -46
  760. package/src/tempo/client/Subscription.test.ts +0 -180
  761. package/src/tempo/client/Subscription.ts +0 -156
  762. package/src/tempo/client/index.ts +0 -17
  763. package/src/tempo/index.ts +0 -5
  764. package/src/tempo/internal/account.ts +0 -56
  765. package/src/tempo/internal/address.test.ts +0 -42
  766. package/src/tempo/internal/address.ts +0 -6
  767. package/src/tempo/internal/auto-swap.test.ts +0 -198
  768. package/src/tempo/internal/auto-swap.ts +0 -145
  769. package/src/tempo/internal/charge.test.ts +0 -66
  770. package/src/tempo/internal/charge.ts +0 -43
  771. package/src/tempo/internal/defaults.test.ts +0 -95
  772. package/src/tempo/internal/defaults.ts +0 -53
  773. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  774. package/src/tempo/internal/fee-payer.ts +0 -808
  775. package/src/tempo/internal/fee-token.test.ts +0 -165
  776. package/src/tempo/internal/fee-token.ts +0 -72
  777. package/src/tempo/internal/proof.test.ts +0 -97
  778. package/src/tempo/internal/proof.ts +0 -87
  779. package/src/tempo/internal/selectors.ts +0 -10
  780. package/src/tempo/internal/types.ts +0 -19
  781. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  782. package/src/tempo/legacy/README.md +0 -9
  783. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  784. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  785. package/src/tempo/legacy/client/Session.test.ts +0 -800
  786. package/src/tempo/legacy/client/Session.ts +0 -397
  787. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  788. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  789. package/src/tempo/legacy/client/index.ts +0 -6
  790. package/src/tempo/legacy/index.ts +0 -4
  791. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  792. package/src/tempo/legacy/session/Chain.ts +0 -830
  793. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  794. package/src/tempo/legacy/session/Channel.ts +0 -51
  795. package/src/tempo/legacy/session/Types.ts +0 -91
  796. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  797. package/src/tempo/legacy/session/Voucher.ts +0 -183
  798. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  799. package/src/tempo/legacy/session/index.ts +0 -8
  800. package/src/tempo/server/AtomicStore.test-d.ts +0 -63
  801. package/src/tempo/server/Charge.test.ts +0 -6056
  802. package/src/tempo/server/Charge.ts +0 -1379
  803. package/src/tempo/server/Methods.ts +0 -86
  804. package/src/tempo/server/Relay.test.ts +0 -677
  805. package/src/tempo/server/Relay.ts +0 -297
  806. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  807. package/src/tempo/server/SponsorBudget.ts +0 -219
  808. package/src/tempo/server/Sse.test.ts +0 -321
  809. package/src/tempo/server/Subscription.test.ts +0 -1944
  810. package/src/tempo/server/Subscription.ts +0 -1336
  811. package/src/tempo/server/index.ts +0 -12
  812. package/src/tempo/server/internal/html/main.ts +0 -115
  813. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  814. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  815. package/src/tempo/server/internal/html/package.json +0 -10
  816. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  817. package/src/tempo/server/internal/html.gen.ts +0 -2
  818. package/src/tempo/server/internal/request-body.test.ts +0 -210
  819. package/src/tempo/server/internal/request-body.ts +0 -61
  820. package/src/tempo/server/internal/transport.test.ts +0 -922
  821. package/src/tempo/server/internal/transport.ts +0 -322
  822. package/src/tempo/session/README.md +0 -320
  823. package/src/tempo/session/Snapshot.test.ts +0 -41
  824. package/src/tempo/session/Snapshot.ts +0 -95
  825. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  826. package/src/tempo/session/client/ChannelOps.ts +0 -348
  827. package/src/tempo/session/client/ChannelStore.ts +0 -111
  828. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  829. package/src/tempo/session/client/CredentialState.ts +0 -942
  830. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  831. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  832. package/src/tempo/session/client/Runtime.ts +0 -1008
  833. package/src/tempo/session/client/Session.test.ts +0 -1355
  834. package/src/tempo/session/client/Session.ts +0 -420
  835. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  836. package/src/tempo/session/client/SessionManager.ts +0 -996
  837. package/src/tempo/session/client/Transports.test.ts +0 -1141
  838. package/src/tempo/session/client/Transports.ts +0 -1534
  839. package/src/tempo/session/client/index.ts +0 -40
  840. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  841. package/src/tempo/session/index.ts +0 -7
  842. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  843. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  844. package/src/tempo/session/precompile/Chain.ts +0 -1269
  845. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  846. package/src/tempo/session/precompile/Channel.ts +0 -108
  847. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  848. package/src/tempo/session/precompile/Protocol.ts +0 -520
  849. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  850. package/src/tempo/session/precompile/Voucher.ts +0 -162
  851. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  852. package/src/tempo/session/precompile/index.ts +0 -33
  853. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  854. package/src/tempo/session/server/ChannelOps.ts +0 -157
  855. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  856. package/src/tempo/session/server/ChannelStore.ts +0 -856
  857. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  858. package/src/tempo/session/server/CredentialVerification.ts +0 -1087
  859. package/src/tempo/session/server/MeteredStream.ts +0 -99
  860. package/src/tempo/session/server/RequestState.test.ts +0 -574
  861. package/src/tempo/session/server/RequestState.ts +0 -507
  862. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  863. package/src/tempo/session/server/Session.test.ts +0 -4247
  864. package/src/tempo/session/server/Session.ts +0 -669
  865. package/src/tempo/session/server/Settlement.test.ts +0 -345
  866. package/src/tempo/session/server/Settlement.ts +0 -527
  867. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  868. package/src/tempo/session/server/Sse.test.ts +0 -634
  869. package/src/tempo/session/server/Sse.ts +0 -261
  870. package/src/tempo/session/server/Transports.test.ts +0 -346
  871. package/src/tempo/session/server/Transports.ts +0 -256
  872. package/src/tempo/session/server/Ws.test.ts +0 -765
  873. package/src/tempo/session/server/Ws.ts +0 -391
  874. package/src/tempo/session/server/index.ts +0 -12
  875. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  876. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  877. package/src/tempo/subscription/Receipt.ts +0 -28
  878. package/src/tempo/subscription/Store.test.ts +0 -609
  879. package/src/tempo/subscription/Store.ts +0 -449
  880. package/src/tempo/subscription/Types.ts +0 -68
  881. package/src/tempo/subscription/index.ts +0 -23
  882. package/src/tsconfig.json +0 -10
  883. package/src/validation/core.ts +0 -386
  884. package/src/validation/index.ts +0 -11
  885. package/src/viem/Account.test.ts +0 -72
  886. package/src/viem/Account.ts +0 -30
  887. package/src/viem/Client.test.ts +0 -366
  888. package/src/viem/Client.ts +0 -93
  889. package/src/web-bot-auth/Constants.ts +0 -24
  890. package/src/web-bot-auth/Types.ts +0 -9
  891. package/src/web-bot-auth/WebBotAuth.test.ts +0 -182
  892. package/src/web-bot-auth/client/index.ts +0 -84
  893. package/src/web-bot-auth/index.ts +0 -6
  894. package/src/web-bot-auth/internal/JwkThumbprint.ts +0 -21
  895. package/src/web-bot-auth/internal/SignatureAgent.ts +0 -18
  896. package/src/web-bot-auth/server/index.ts +0 -113
  897. package/src/x402/Assets.test.ts +0 -253
  898. package/src/x402/Assets.ts +0 -221
  899. package/src/x402/Exact.e2e.test.ts +0 -488
  900. package/src/x402/Exact.localnet.test.ts +0 -475
  901. package/src/x402/Header.test.ts +0 -73
  902. package/src/x402/Header.ts +0 -79
  903. package/src/x402/PublicInterface.test-d.ts +0 -39
  904. package/src/x402/Types.ts +0 -248
  905. package/src/x402/client/Exact.test.ts +0 -309
  906. package/src/x402/client/Exact.ts +0 -186
  907. package/src/x402/index.ts +0 -6
  908. package/src/x402/internal/ChallengeBrand.ts +0 -14
  909. package/src/x402/internal/RouteBinding.ts +0 -18
  910. package/src/x402/server/EvmCharge.ts +0 -410
  911. package/src/x402/server/Facilitator.test.ts +0 -111
  912. package/src/x402/server/Facilitator.ts +0 -56
  913. package/src/zod.test.ts +0 -169
  914. package/src/zod.ts +0 -71
@@ -3,9 +3,10 @@ import * as Constants from '../../../Constants.js';
3
3
  import { VerificationFailedError } from '../../../Errors.js';
4
4
  import * as Methods from '../../Methods.js';
5
5
  import { captureRequestBodyProbe, isSessionContentRequest, } from '../../server/internal/request-body.js';
6
- import { tip20ChannelEscrow } from '../precompile/Protocol.js';
6
+ import { tip20ChannelEscrow, uint96, } from '../precompile/Protocol.js';
7
+ import * as Voucher from '../precompile/Voucher.js';
7
8
  import * as ChannelStore from './ChannelStore.js';
8
- import { requireSessionCredentialAction } from './CredentialVerification.js';
9
+ import { requireSessionCredentialAction, requireSessionCredentialPayload, } from './CredentialVerification.js';
9
10
  import { resolveCredentialFeePayer, resolveRequestFeePayer, } from './Settlement.js';
10
11
  /** Normalizes a session channel ID hint when one is present. */
11
12
  export function normalizeSessionChannelId(value) {
@@ -29,6 +30,27 @@ function normalizeResolvedSessionChannelId(value) {
29
30
  return undefined;
30
31
  return ChannelStore.normalizeChannelId(value);
31
32
  }
33
+ /** Returns a close credential's channel once its voucher signature verifies. */
34
+ async function verifiedCloseCredentialChannel(credential, store) {
35
+ try {
36
+ const payload = requireSessionCredentialPayload(credential?.payload);
37
+ if (payload.action !== 'close')
38
+ return undefined;
39
+ const channelId = payload.channelId;
40
+ const channel = await store.getChannel(channelId);
41
+ if (!channel || !ChannelStore.isPrecompileState(channel))
42
+ return undefined;
43
+ const verified = Voucher.verifyVoucher(channel.escrowContract, channel.chainId, {
44
+ channelId,
45
+ cumulativeAmount: uint96(BigInt(payload.cumulativeAmount)),
46
+ signature: payload.signature,
47
+ }, channel.authorizedSigner);
48
+ return verified ? { channelId, channel } : undefined;
49
+ }
50
+ catch {
51
+ return undefined;
52
+ }
53
+ }
32
54
  /** Resolves the channel ID used to build server-side session bootstrap hints. */
33
55
  export async function resolveSessionChannelId(parameters) {
34
56
  const { capturedRequest, credential, request, resolveChannelId, source, store } = parameters;
@@ -47,10 +69,10 @@ export async function resolveSessionChannelId(parameters) {
47
69
  }
48
70
  /** Builds server bootstrap hints for a reusable precompile session channel. */
49
71
  export async function resolveSessionSnapshot(parameters) {
50
- const { amount, channelId, expected, store } = parameters;
72
+ const { amount, channelId, expected, matchPaymentFields, store } = parameters;
51
73
  if (!channelId)
52
74
  return undefined;
53
- const channel = await store.getChannel(ChannelStore.normalizeChannelId(channelId));
75
+ const channel = parameters.channel ?? (await store.getChannel(ChannelStore.normalizeChannelId(channelId)));
54
76
  if (!channel || !ChannelStore.isPrecompileState(channel))
55
77
  return undefined;
56
78
  if (channel.finalized)
@@ -61,8 +83,18 @@ export async function resolveSessionSnapshot(parameters) {
61
83
  return undefined;
62
84
  if (channel.highestVoucher.cumulativeAmount !== channel.highestVoucherAmount)
63
85
  return undefined;
64
- if (expected && !matchesSnapshotPaymentFields(channel, expected))
65
- return undefined;
86
+ if (expected && !matchesSnapshotPaymentFields(channel, expected)) {
87
+ // The snapshot is an optional reuse hint: a failing matcher (for example a
88
+ // transient RPC error during the route check) must omit the hint rather
89
+ // than fail challenge issuance or bootstrap preflight.
90
+ let matched = false;
91
+ try {
92
+ matched = (await matchPaymentFields?.(channel, expected)) ?? false;
93
+ }
94
+ catch { }
95
+ if (!matched)
96
+ return undefined;
97
+ }
66
98
  const requiredCumulative = channel.spent + amount;
67
99
  return {
68
100
  acceptedCumulative: channel.highestVoucherAmount.toString(),
@@ -115,6 +147,9 @@ function isCanonicalSessionMethodDetails(value) {
115
147
  typeof value.escrowContract === 'string' &&
116
148
  isAddress(value.escrowContract, { strict: false }) &&
117
149
  (value.feePayer === undefined || typeof value.feePayer === 'boolean') &&
150
+ (value.feeToken === undefined ||
151
+ (typeof value.feeToken === 'string' && isAddress(value.feeToken, { strict: false }))) &&
152
+ (value.machineTokenEnabled === undefined || typeof value.machineTokenEnabled === 'boolean') &&
118
153
  (value.minVoucherDelta === undefined || typeof value.minVoucherDelta === 'string') &&
119
154
  (value.operator === undefined ||
120
155
  (typeof value.operator === 'string' && isAddress(value.operator, { strict: false }))) &&
@@ -156,7 +191,7 @@ export async function resolveRequestChainId(parameters) {
156
191
  }
157
192
  /** Resolves request-time TIP-1034 details and server bootstrap hints for a challenge. */
158
193
  export async function resolveSessionPaymentRequest(parameters) {
159
- const { capturedRequest, credential, decimals, defaultFeePayer, getClient, parameterChainId, parameterEscrowContract, parameterFeePayer, request, resolveChannelId, source, store, } = parameters;
194
+ const { capturedRequest, credential, decimals, defaultFeePayer, getClient, matchSnapshotPaymentFields, parameterChainId, parameterEscrowContract, parameterFeePayer, request, resolveChannelId, source, store, } = parameters;
160
195
  const chainId = await resolveRequestChainId({
161
196
  getClient,
162
197
  parameterChainId,
@@ -170,16 +205,24 @@ export async function resolveSessionPaymentRequest(parameters) {
170
205
  const escrowContract = resolveRequestEscrowContract(request.escrowContract, parameterEscrowContract);
171
206
  const operator = resolveRequestOperator(request.operator);
172
207
  const requestAmount = parseUnits(request.amount, decimals);
173
- const channelId = await resolveSessionChannelId({
174
- capturedRequest,
175
- credential,
176
- request,
177
- resolveChannelId,
178
- source,
179
- store,
180
- });
208
+ // A close credential names the channel it settles; advertising that channel's
209
+ // snapshot on the retry challenge lets clients without a configured
210
+ // `resolveChannelId` learn the exact capture amount a machine-token close
211
+ // voucher must match. Only trusted once the voucher signature verifies, and
212
+ // matched with close semantics so retired routes stay closable.
213
+ const verifiedClose = await verifiedCloseCredentialChannel(credential, store);
214
+ const channelId = verifiedClose?.channelId ??
215
+ (await resolveSessionChannelId({
216
+ capturedRequest,
217
+ credential,
218
+ request,
219
+ resolveChannelId,
220
+ source,
221
+ store,
222
+ }));
181
223
  const sessionSnapshot = await resolveSessionSnapshot({
182
224
  amount: capturedRequest && !isSessionContentRequest(capturedRequest) ? 0n : requestAmount,
225
+ channel: verifiedClose?.channel,
183
226
  channelId,
184
227
  expected: {
185
228
  chainId,
@@ -187,6 +230,9 @@ export async function resolveSessionPaymentRequest(parameters) {
187
230
  escrowContract,
188
231
  recipient: readChallengeAddress(request.recipient, 'recipient'),
189
232
  },
233
+ matchPaymentFields: matchSnapshotPaymentFields && (verifiedClose || request.machineTokenEnabled)
234
+ ? (channel, expected) => matchSnapshotPaymentFields(channel, expected, verifiedClose ? { action: 'close' } : undefined)
235
+ : undefined,
190
236
  store,
191
237
  });
192
238
  const { operator: _operator, ...requestWithoutOperator } = request;
@@ -36,6 +36,7 @@ export declare function session<const parameters extends session.Parameters>(p?:
36
36
  credential: {
37
37
  payload: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
38
38
  action: import("zod/mini").ZodMiniLiteral<"open">;
39
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
39
40
  authorizedSigner: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
40
41
  channelId: import("zod/mini").ZodMiniString<string>;
41
42
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
@@ -52,15 +53,18 @@ export declare function session<const parameters extends session.Parameters>(p?:
52
53
  type: import("zod/mini").ZodMiniLiteral<"transaction">;
53
54
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
54
55
  action: import("zod/mini").ZodMiniLiteral<"voucher">;
56
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
55
57
  channelId: import("zod/mini").ZodMiniString<string>;
56
58
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
57
59
  descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
58
60
  signature: import("zod/mini").ZodMiniString<string>;
59
61
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
60
62
  action: import("zod/mini").ZodMiniLiteral<"close">;
63
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
61
64
  channelId: import("zod/mini").ZodMiniString<string>;
62
65
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
63
66
  descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
67
+ refundSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
64
68
  signature: import("zod/mini").ZodMiniString<string>;
65
69
  }, import("zod/v4/core").$strip>], "action">;
66
70
  };
@@ -72,6 +76,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
72
76
  decimals: import("zod/mini").ZodMiniNumber<number>;
73
77
  escrowContract: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
74
78
  feePayer: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniUnion<readonly [import("zod/mini").ZodMiniBoolean<boolean>, import("zod/mini").ZodMiniCustom<import("viem").Account, import("viem").Account>]>, import("zod/mini").ZodMiniTransform<boolean, boolean | import("viem").Account>>>;
79
+ feeToken: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
80
+ machineTokenEnabled: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniBoolean<boolean>>;
75
81
  minVoucherDelta: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
76
82
  operator: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
77
83
  recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
@@ -94,6 +100,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
94
100
  minVoucherDelta?: string | undefined;
95
101
  chainId?: number | undefined;
96
102
  feePayer?: boolean | undefined;
103
+ feeToken?: string | undefined;
104
+ machineTokenEnabled?: boolean | undefined;
97
105
  operator?: string | undefined;
98
106
  sessionProtocol?: "v1" | "v2" | undefined;
99
107
  sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
@@ -106,6 +114,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
106
114
  decimals: number;
107
115
  escrowContract?: string | undefined;
108
116
  feePayer?: boolean | undefined;
117
+ feeToken?: string | undefined;
118
+ machineTokenEnabled?: boolean | undefined;
109
119
  minVoucherDelta?: string | undefined;
110
120
  operator?: string | undefined;
111
121
  recipient?: string | undefined;
@@ -167,14 +177,16 @@ export declare namespace session {
167
177
  sse?: boolean | Transport.sse.Options | undefined;
168
178
  /** Tempo chain ID used for TIP-1034 channel escrow challenges. Defaults to the resolved client chain ID. */
169
179
  chainId?: number | undefined;
170
- /** TIP20EscrowChannel precompile address override. */
180
+ /** Escrow contract advertised to clients. Defaults to the canonical TIP20EscrowChannel address. */
171
181
  escrowContract?: Address | undefined;
172
182
  /** Callback invoked after any on-chain settlement or close transaction is confirmed. */
173
183
  onSessionSettlement?: OnSessionSettlement | undefined;
174
184
  /** Server-owned automatic settlement cadence. Clients do not receive or control this schedule. */
175
185
  settlementSchedule?: SettlementSchedule | undefined;
176
- /** Optional fee token used for server-driven close transactions. */
186
+ /** Optional fee token for management and server-driven settle/close transactions. */
177
187
  feeToken?: Address | undefined;
188
+ /** Enables first-party machine-token funding when the configured deployment is available. */
189
+ machineTokenEnabled?: boolean | undefined;
178
190
  } & Account.resolve.Parameters & Client.getResolver.Parameters & Defaults & Method.ComposableHooks<typeof Methods.session>;
179
191
  /** Defaults derived from `session()` parameters for handler type inference. */
180
192
  type DeriveDefaults<parameters extends Parameters> = types.DeriveDefaults<parameters, Defaults, {
@@ -5,7 +5,7 @@
5
5
  * and one-shot settlement. Each incoming request carries a session credential
6
6
  * with a cumulative voucher that the server validates and records.
7
7
  */
8
- import { isAddress } from 'viem';
8
+ import { isAddress, isAddressEqual } from 'viem';
9
9
  import { tempo as tempo_chain } from 'viem/chains';
10
10
  import * as Challenge from '../../../Challenge.js';
11
11
  import * as Constants from '../../../Constants.js';
@@ -16,6 +16,7 @@ import * as Store from '../../../Store.js';
16
16
  import * as Client from '../../../viem/Client.js';
17
17
  import * as Account from '../../internal/account.js';
18
18
  import * as defaults from '../../internal/defaults.js';
19
+ import * as MachineTokenSession from '../../internal/machine-token-session.js';
19
20
  import * as Methods from '../../Methods.js';
20
21
  import * as ChargeServer from '../../server/Charge.js';
21
22
  import * as Transport from '../../server/internal/transport.js';
@@ -178,6 +179,9 @@ async function handleBootstrapPreflight(parameters) {
178
179
  escrowContract: resolveBootstrapEscrowContract(parameters.paymentRequest, parameters.parameterEscrowContract),
179
180
  recipient: readBootstrapAddress(request.recipient, 'recipient'),
180
181
  },
182
+ matchPaymentFields: parameters.paymentRequest.machineTokenEnabled
183
+ ? parameters.matchSnapshotPaymentFields
184
+ : undefined,
181
185
  store: parameters.store,
182
186
  });
183
187
  const headers = new Headers({ 'Cache-Control': 'no-store' });
@@ -190,19 +194,33 @@ async function handleBootstrapPreflight(parameters) {
190
194
  /** Creates a server-side TIP20EscrowChannel precompile session payment method. */
191
195
  export function session(p) {
192
196
  const parameters = p;
193
- const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, operator, store: rawStore = Store.memory(), suggestedDeposit, unitType, } = parameters;
197
+ const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, machineTokenEnabled, operator, store: rawStore = Store.memory(), suggestedDeposit, unitType, } = parameters;
194
198
  const settlementSchedule = resolveSettlementSchedule(parameters.settlementSchedule, decimals);
195
199
  const onSessionSettlement = parameters.onSessionSettlement;
196
200
  const store = ChannelStore.fromStore(rawStore);
197
201
  const lastOnChainVerified = new Map();
198
202
  const { account, feePayer, feePayerUrl, recipient } = Account.resolve(parameters);
199
203
  const configuredFeePayer = feePayer ?? feePayerUrl;
204
+ const settlementFeePayer = feePayer ?? (feePayerUrl ? true : undefined);
200
205
  const getClient = Client.getResolver({
201
206
  chain: tempo_chain,
202
207
  feePayerUrl,
203
208
  getClient: parameters.getClient,
204
209
  rpcUrl: defaults.rpcUrl,
205
210
  });
211
+ const matchSnapshotPaymentFields = async (channel, expected, options) => {
212
+ if (channel.chainId !== expected.chainId ||
213
+ !isAddressEqual(channel.escrowContract, expected.escrowContract) ||
214
+ !isAddressEqual(expected.escrowContract, tip20ChannelEscrow))
215
+ return false;
216
+ return !!(await MachineTokenSession.matchRoute(await getClient({ chainId: expected.chainId }), {
217
+ active: options?.action !== 'close',
218
+ chainId: expected.chainId,
219
+ descriptor: channel.descriptor,
220
+ merchant: expected.recipient,
221
+ targetToken: expected.currency,
222
+ }));
223
+ };
206
224
  const settleScheduled = async (channel) => {
207
225
  if (!isSettlementDue(channel, settlementSchedule))
208
226
  return undefined;
@@ -210,7 +228,7 @@ export function session(p) {
210
228
  account,
211
229
  channel,
212
230
  client: await getClient({ chainId: channel.chainId }),
213
- ...(feePayer ? { feePayer } : {}),
231
+ ...(settlementFeePayer ? { feePayer: settlementFeePayer } : {}),
214
232
  feePayerPolicy: parameters.feePayerPolicy,
215
233
  feeToken: parameters.feeToken,
216
234
  onSessionSettlement,
@@ -260,6 +278,7 @@ export function session(p) {
260
278
  expectedOperator: context.methodDetails.operator,
261
279
  feePayer: context.feePayer,
262
280
  feePayerPolicy: parameters.feePayerPolicy,
281
+ feeToken: context.methodDetails.feeToken,
263
282
  lastOnChainVerified,
264
283
  minVoucherDelta: context.minVoucherDelta,
265
284
  payload,
@@ -296,7 +315,7 @@ export function session(p) {
296
315
  expectedOperator: context.methodDetails.operator,
297
316
  feePayer: context.feePayer,
298
317
  feePayerPolicy: parameters.feePayerPolicy,
299
- feeToken: parameters.feeToken,
318
+ feeToken: context.methodDetails.feeToken,
300
319
  lastOnChainVerified,
301
320
  minVoucherDelta: context.minVoucherDelta,
302
321
  onSessionSettlement,
@@ -314,7 +333,7 @@ export function session(p) {
314
333
  settleCharged: (channel) => maybeSettleScheduled({
315
334
  account,
316
335
  client: context.client,
317
- ...(typeof context.feePayer === 'object' ? { feePayer: context.feePayer } : {}),
336
+ ...(context.feePayer ? { feePayer: context.feePayer } : {}),
318
337
  feePayerPolicy: parameters.feePayerPolicy,
319
338
  feeToken: parameters.feeToken,
320
339
  onSessionSettlement,
@@ -331,6 +350,7 @@ export function session(p) {
331
350
  amount,
332
351
  currency,
333
352
  decimals,
353
+ machineTokenEnabled,
334
354
  operator,
335
355
  recipient,
336
356
  suggestedDeposit,
@@ -351,6 +371,7 @@ export function session(p) {
351
371
  defaultRecipient: recipient,
352
372
  expires,
353
373
  getClient,
374
+ matchSnapshotPaymentFields,
354
375
  parameterChainId: parameters.chainId,
355
376
  parameterEscrowContract: parameters.escrowContract,
356
377
  paymentRequest: options,
@@ -368,6 +389,7 @@ export function session(p) {
368
389
  decimals,
369
390
  defaultFeePayer: feePayer,
370
391
  getClient,
392
+ matchSnapshotPaymentFields,
371
393
  parameterChainId: parameters.chainId,
372
394
  parameterEscrowContract: parameters.escrowContract,
373
395
  parameterFeePayer: parameters.feePayer,
@@ -375,8 +397,17 @@ export function session(p) {
375
397
  resolveChannelId: parameters.resolveChannelId,
376
398
  store,
377
399
  });
400
+ // Only advertise the capability when this logical session can use a
401
+ // configured unified router on the canonical escrow.
402
+ const { machineTokenEnabled: requestedMachineTokenEnabled, ...requestWithoutMachineToken } = resolvedRequest;
403
+ const machineSessionSupported = MachineTokenSession.isSupported(resolvedRequest.chainId) &&
404
+ isAddressEqual(resolvedRequest.escrowContract, tip20ChannelEscrow);
378
405
  return {
379
- ...resolvedRequest,
406
+ ...requestWithoutMachineToken,
407
+ feeToken: parameters.feeToken,
408
+ ...(requestedMachineTokenEnabled && machineSessionSupported
409
+ ? { machineTokenEnabled: true }
410
+ : {}),
380
411
  sessionProtocol: Constants.SessionProtocols.v2,
381
412
  };
382
413
  },
@@ -160,8 +160,8 @@ export type SettlementTransactionOptions = {
160
160
  candidateFeeTokens?: readonly Address[] | undefined;
161
161
  /** TIP20EscrowChannel precompile address override. */
162
162
  escrowContract?: Address | undefined;
163
- /** Optional fee-payer account for sponsored settlement. */
164
- feePayer?: viem_Account | undefined;
163
+ /** Fee-payer account, or `true` when the client transport uses a configured hosted fee-payer service. */
164
+ feePayer?: viem_Account | true | undefined;
165
165
  /** Optional policy for sponsored settlement. */
166
166
  feePayerPolicy?: Partial<FeePayer.Policy> | undefined;
167
167
  /** Optional fee token override for settlement. */
@@ -177,8 +177,8 @@ export type MaybeSettleScheduledParameters = {
177
177
  channel: ChannelStore.State;
178
178
  /** viem client used to settle on-chain. */
179
179
  client: Chain.TransactionClient;
180
- /** Optional fee-payer account for sponsored settlement. */
181
- feePayer?: viem_Account | undefined;
180
+ /** Fee-payer account, or `true` when the client transport uses a configured hosted fee-payer service. */
181
+ feePayer?: viem_Account | true | undefined;
182
182
  /** Optional policy for sponsored settlement. */
183
183
  feePayerPolicy?: Partial<FeePayer.Policy> | undefined;
184
184
  /** Optional fee token override for settlement. */
@@ -198,6 +198,13 @@ export declare function getClientAccount(client: {
198
198
  }): viem_Account | undefined;
199
199
  /** Validates that the transaction sender is the channel payee or nonzero operator. */
200
200
  export declare function assertSettlementSender(parameters: SettlementSenderParameters): void;
201
+ /**
202
+ * Assembles transaction options for settle/close transactions. Machine
203
+ * channels pin PathUSD (or an explicit override); direct channels leave the
204
+ * fee token unset so balance-aware selection can pick a funded candidate.
205
+ * The rail comes from the caller so fee pinning always matches dispatch.
206
+ */
207
+ export declare function resolveChannelTransactionOptions(channel: Pick<ChannelStore.StoredPrecompileChannel, 'chainId' | 'token'>, options: SettlementTransactionOptions | undefined, account: viem_Account | undefined, machineRouter: Address | undefined): Chain.ChannelTransactionOptions | undefined;
201
208
  /** Applies automatic settlement when the server-owned schedule is due. */
202
209
  export declare function maybeSettleScheduled(parameters: MaybeSettleScheduledParameters): Promise<Hex | undefined>;
203
210
  /** Settles the highest accepted voucher for a precompile-backed session channel. */
@@ -1,5 +1,6 @@
1
1
  import { isAddress, isAddressEqual, parseUnits, zeroAddress, } from 'viem';
2
2
  import { BadRequestError, ChannelClosedError, ChannelNotFoundError, InsufficientBalanceError, VerificationFailedError, } from '../../../Errors.js';
3
+ import * as MachineTokenSession from '../../internal/machine-token-session.js';
3
4
  import { isSessionContentRequest } from '../../server/internal/request-body.js';
4
5
  import * as Chain from '../precompile/Chain.js';
5
6
  import { readSettledReceiptFields } from '../precompile/Chain.js';
@@ -28,12 +29,10 @@ export function resolveRequestFeePayer(parameters) {
28
29
  if (requestFeePayer === false)
29
30
  return credential ? false : undefined;
30
31
  const account = typeof requestFeePayer === 'object' ? requestFeePayer : defaultFeePayer;
32
+ const hosted = parameterFeePayer === true || typeof parameterFeePayer === 'string';
31
33
  if (credential)
32
- return account ?? undefined;
33
- if (account ||
34
- defaultFeePayer ||
35
- parameterFeePayer === true ||
36
- typeof parameterFeePayer === 'string')
34
+ return account ?? (hosted ? true : undefined);
35
+ if (account || hosted)
37
36
  return true;
38
37
  return undefined;
39
38
  }
@@ -184,6 +183,30 @@ export function assertSettlementSender(parameters) {
184
183
  ' If using an access key, pass a Tempo access-key account whose address is the payee/operator wallet, not the raw delegated key address.',
185
184
  });
186
185
  }
186
+ /**
187
+ * Assembles transaction options for settle/close transactions. Machine
188
+ * channels pin PathUSD (or an explicit override); direct channels leave the
189
+ * fee token unset so balance-aware selection can pick a funded candidate.
190
+ * The rail comes from the caller so fee pinning always matches dispatch.
191
+ */
192
+ export function resolveChannelTransactionOptions(channel, options, account, machineRouter) {
193
+ if (!account)
194
+ return undefined;
195
+ const feeToken = options?.feeToken ??
196
+ (machineRouter
197
+ ? MachineTokenSession.resolveFeeToken({
198
+ chainId: channel.chainId,
199
+ paymentToken: channel.token,
200
+ })
201
+ : undefined);
202
+ return {
203
+ account,
204
+ ...(options?.feePayer ? { feePayer: options.feePayer } : {}),
205
+ ...(options?.feePayerPolicy ? { feePayerPolicy: options.feePayerPolicy } : {}),
206
+ ...(feeToken ? { feeToken } : {}),
207
+ candidateFeeTokens: options?.candidateFeeTokens ?? [feeToken ?? channel.token],
208
+ };
209
+ }
187
210
  /** Applies automatic settlement when the server-owned schedule is due. */
188
211
  export async function maybeSettleScheduled(parameters) {
189
212
  const { channel, schedule, store } = parameters;
@@ -214,23 +237,32 @@ export async function settle(store_, client, channelId_, options) {
214
237
  throw new VerificationFailedError({ reason: 'no voucher to settle' });
215
238
  const escrow = options?.escrowContract ?? channel.escrowContract;
216
239
  const account = options?.account ?? getClientAccount(client);
217
- assertSettlementSender({
218
- operation: 'settle',
219
- channelId,
220
- operator: channel.operator,
221
- payee: channel.payee,
222
- sender: account?.address,
223
- });
240
+ const machineRouter = MachineTokenSession.matchDeployment({
241
+ chainId: channel.chainId,
242
+ descriptor: channel.descriptor,
243
+ })?.swap;
244
+ if (!machineRouter || !account)
245
+ assertSettlementSender({
246
+ operation: 'settle',
247
+ channelId,
248
+ operator: channel.operator,
249
+ payee: channel.payee,
250
+ sender: account?.address,
251
+ });
224
252
  const amount = uint96(channel.highestVoucher.cumulativeAmount);
225
- const txHash = await Chain.settleOnChain(client, channel.descriptor, amount, channel.highestVoucher.signature, escrow, account
226
- ? {
227
- account,
228
- ...(options?.feePayer ? { feePayer: options.feePayer } : {}),
229
- ...(options?.feePayerPolicy ? { feePayerPolicy: options.feePayerPolicy } : {}),
230
- ...(options?.feeToken ? { feeToken: options.feeToken } : {}),
231
- candidateFeeTokens: options?.candidateFeeTokens ?? [channel.token],
232
- }
233
- : undefined);
253
+ const transactionOptions = resolveChannelTransactionOptions(channel, options, account, machineRouter);
254
+ let txHash;
255
+ if (machineRouter) {
256
+ const authorizationSignature = channel.highestVoucher.authorizationSignature;
257
+ if (!authorizationSignature)
258
+ throw new VerificationFailedError({
259
+ reason: 'machine-token voucher is missing its router authorization',
260
+ });
261
+ txHash = await Chain.settleMachineSessionOnChain(client, channel.descriptor, amount, channel.highestVoucher.signature, authorizationSignature, machineRouter, transactionOptions);
262
+ }
263
+ else {
264
+ txHash = await Chain.settleOnChain(client, channel.descriptor, amount, channel.highestVoucher.signature, escrow, transactionOptions);
265
+ }
234
266
  const receipt = await Chain.waitForSuccessfulReceipt(client, txHash);
235
267
  const settled = readSettledReceiptFields(Chain.getChannelEvent(receipt, 'Settled', channelId));
236
268
  const { newSettled } = settled;
@@ -6,6 +6,8 @@ import * as Types from '../Types.js';
6
6
  * Creates an x402 exact `PAYMENT-SIGNATURE` credential.
7
7
  */
8
8
  export declare function createCredential(parameters: createCredential.Parameters): Promise<string>;
9
+ /** Returns whether this client can sign the given x402 exact challenge. */
10
+ export declare function canHandleChallenge(parameters: canHandleChallenge.Parameters): boolean;
9
11
  export declare namespace createCredential {
10
12
  type Parameters = {
11
13
  challenge: Challenge.Challenge<Types.ExactRequest>;
@@ -13,6 +15,12 @@ export declare namespace createCredential {
13
15
  context?: Context | undefined;
14
16
  };
15
17
  }
18
+ export declare namespace canHandleChallenge {
19
+ type Parameters = {
20
+ challenge: Challenge.Challenge<Types.ExactRequest>;
21
+ config: Config;
22
+ };
23
+ }
16
24
  export type Context = {
17
25
  account?: Account | undefined;
18
26
  };
@@ -13,9 +13,11 @@ export async function createCredential(parameters) {
13
13
  const request = parameters.challenge.request;
14
14
  const accepted = Types.toPaymentRequirements(request);
15
15
  assertPolicy(parameters.config, accepted);
16
- if (!request.resource || !request.extensions?.mppx)
17
- throw new Error('x402 exact EIP-3009 requires route binding.');
18
- const extensions = withNonceSalt(request.extensions);
16
+ if (!request.resource)
17
+ throw new Error('x402 exact EIP-3009 requires resource information.');
18
+ const extensions = request.extensions?.mppx
19
+ ? withNonceSalt(request.extensions)
20
+ : request.extensions;
19
21
  const transferMethod = accepted.extra?.assetTransferMethod ?? 'eip3009';
20
22
  if (transferMethod !== 'eip3009')
21
23
  throw new Error(`x402 exact ${String(transferMethod)} signing is not implemented yet.`);
@@ -26,11 +28,13 @@ export async function createCredential(parameters) {
26
28
  const now = Math.floor(Date.now() / 1000);
27
29
  const authorization = {
28
30
  from: getAddress(account.address),
29
- nonce: RouteBinding.nonce({
30
- accepted,
31
- extensions,
32
- resource: request.resource,
33
- }),
31
+ nonce: extensions?.mppx
32
+ ? RouteBinding.nonce({
33
+ accepted,
34
+ extensions,
35
+ resource: request.resource,
36
+ })
37
+ : randomAuthorizationNonce(),
34
38
  to: getAddress(accepted.payTo),
35
39
  validAfter: (now - 600).toString(),
36
40
  validBefore: (now + accepted.maxTimeoutSeconds).toString(),
@@ -54,7 +58,7 @@ export async function createCredential(parameters) {
54
58
  });
55
59
  return Header.encodePaymentSignature({
56
60
  accepted,
57
- extensions,
61
+ ...(extensions ? { extensions } : {}),
58
62
  payload: {
59
63
  authorization,
60
64
  signature,
@@ -63,6 +67,26 @@ export async function createCredential(parameters) {
63
67
  x402Version: 2,
64
68
  });
65
69
  }
70
+ /** Returns whether this client can sign the given x402 exact challenge. */
71
+ export function canHandleChallenge(parameters) {
72
+ const request = parameters.challenge.request;
73
+ let accepted;
74
+ try {
75
+ accepted = Types.toPaymentRequirements(request);
76
+ assertPolicy(parameters.config, accepted);
77
+ }
78
+ catch {
79
+ return false;
80
+ }
81
+ if (!request.resource)
82
+ return false;
83
+ const transferMethod = accepted.extra?.assetTransferMethod ?? 'eip3009';
84
+ if (transferMethod !== 'eip3009')
85
+ return false;
86
+ const name = accepted.extra?.name;
87
+ const version = accepted.extra?.version;
88
+ return typeof name === 'string' && typeof version === 'string';
89
+ }
66
90
  const authorizationTypes = {
67
91
  TransferWithAuthorization: [
68
92
  { name: 'from', type: 'address' },
@@ -125,10 +149,16 @@ function withNonceSalt(extensions) {
125
149
  };
126
150
  }
127
151
  function randomNonceSalt() {
152
+ return randomBytes32().slice(2);
153
+ }
154
+ function randomAuthorizationNonce() {
155
+ return randomBytes32();
156
+ }
157
+ function randomBytes32() {
128
158
  const crypto = globalThis.crypto;
129
159
  if (!crypto?.getRandomValues)
130
160
  throw new Error('x402 exact requires crypto randomness.');
131
161
  const bytes = crypto.getRandomValues(new Uint8Array(32));
132
- return Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('');
162
+ return `0x${Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('')}`;
133
163
  }
134
164
  //# sourceMappingURL=Exact.js.map
@@ -9,11 +9,33 @@ export type Options = {
9
9
  fetch?: typeof globalThis.fetch | undefined;
10
10
  /** Maximum time in seconds allowed for x402-compatible payment completion. @default 300 */
11
11
  maxTimeoutSeconds?: number | undefined;
12
+ /**
13
+ * How a route-scoped charge binds an x402 credential to its route.
14
+ *
15
+ * - `'resource'` — accept either binding. A credential carrying
16
+ * `extensions.mppx` is verified in full, including the route-bound nonce; one
17
+ * without it is bound the way x402 itself binds, by comparing the echoed
18
+ * `resource` and `accepted`. Any spec-compliant client can pay a scoped route.
19
+ * - `'required'` — every credential must carry `extensions.mppx` and the
20
+ * route-bound nonce. Only clients that implement mppx's binding can pay.
21
+ *
22
+ * `'resource'` is weaker for clients that don't bind: `resource` sits outside
23
+ * the EIP-3009 signature, so a holder of a valid payload could re-present it at
24
+ * another route with identical `accepted`. It prevents honest cross-route reuse
25
+ * and client bugs, not an active attacker. Body binding is unaffected either
26
+ * way — `challenge.digest` is verified against the actual body.
27
+ *
28
+ * @default 'resource'
29
+ */
30
+ routeBinding?: RouteBindingMode | undefined;
12
31
  };
32
+ /** How a route-scoped charge binds an x402 credential to its route. */
33
+ export type RouteBindingMode = 'required' | 'resource';
13
34
  export type ResolvedOptions = {
14
35
  authorization: Types.AuthorizationConfig;
15
36
  facilitator?: x402_Types.Facilitator | undefined;
16
37
  maxTimeoutSeconds: number;
38
+ routeBinding: RouteBindingMode;
17
39
  };
18
40
  export type Path = {
19
41
  bindCredential: NonNullable<ServerTransport.Http['bindCredential']>;