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
@@ -1,5 +1,6 @@
1
1
  import { isAddress, isAddressEqual, zeroAddress, } from 'viem';
2
2
  import { AmountExceedsDepositError, ChannelClosedError, ChannelNotFoundError, InsufficientBalanceError, InvalidSignatureError, VerificationFailedError, } from '../../../Errors.js';
3
+ import * as MachineTokenSession from '../../internal/machine-token-session.js';
3
4
  import * as Chain from '../precompile/Chain.js';
4
5
  import { readChannelClosedReceiptFields } from '../precompile/Chain.js';
5
6
  import * as Channel from '../precompile/Channel.js';
@@ -7,20 +8,13 @@ import { createSessionReceipt, uint96, } from '../precompile/Protocol.js';
7
8
  import * as Voucher from '../precompile/Voucher.js';
8
9
  import * as ChannelStore from './ChannelStore.js';
9
10
  import { getChallengePaymentFields } from './RequestState.js';
10
- import { assertSettlementSender, getClientAccount } from './Settlement.js';
11
+ import { assertSettlementSender, getClientAccount, resolveChannelTransactionOptions, } from './Settlement.js';
11
12
  /** Returns the effective voucher signer for a TIP-1034 descriptor. */
12
13
  export function authorizedSigner(descriptor) {
13
14
  return isAddressEqual(descriptor.authorizedSigner, zeroAddress)
14
15
  ? descriptor.payer
15
16
  : descriptor.authorizedSigner;
16
17
  }
17
- /** Asserts that a credential payload includes a TIP-1034 descriptor. */
18
- export function assertDescriptor(payload) {
19
- if (!payload.descriptor)
20
- throw new VerificationFailedError({
21
- reason: 'descriptor required for TIP-1034 session action',
22
- });
23
- }
24
18
  /** Asserts that two TIP-1034 descriptors identify the same channel. */
25
19
  export function assertSameDescriptor(a, b) {
26
20
  if (!isAddressEqual(a.payer, b.payer) ||
@@ -58,6 +52,53 @@ export function validateChannelDescriptor(descriptor, channelId, chainId, escrow
58
52
  });
59
53
  }
60
54
  }
55
+ async function resolveCredentialRoute(parameters) {
56
+ const { challenge, chainId, client, escrow, payload } = parameters;
57
+ const { descriptor } = payload;
58
+ const channelId = ChannelStore.normalizeChannelId(payload.channelId);
59
+ if (Channel.computeId({ ...descriptor, chainId, escrow }).toLowerCase() !== channelId.toLowerCase())
60
+ throw new VerificationFailedError({ reason: 'channel descriptor does not match channelId' });
61
+ const request = getChallengePaymentFields(challenge);
62
+ const expectedOperator = parameters.expectedOperator ?? zeroAddress;
63
+ const direct = isAddressEqual(descriptor.payee, request.recipient) &&
64
+ isAddressEqual(descriptor.token, request.currency) &&
65
+ isAddressEqual(descriptor.operator, expectedOperator);
66
+ if (direct)
67
+ return {
68
+ allowedFeeTokens: MachineTokenSession.allowedSponsoredFeeTokens({
69
+ chainId,
70
+ override: parameters.feeToken,
71
+ paymentToken: request.currency,
72
+ }),
73
+ expectedOperator,
74
+ payment: request,
75
+ };
76
+ if (payload.action !== 'close' && !MachineTokenSession.isEnabledChallenge(challenge))
77
+ throw new VerificationFailedError({ reason: 'credential descriptor does not match challenge' });
78
+ const route = await MachineTokenSession.matchRoute(client, {
79
+ active: payload.action !== 'close',
80
+ chainId,
81
+ descriptor,
82
+ merchant: request.recipient,
83
+ targetToken: request.currency,
84
+ });
85
+ if (!route)
86
+ throw new VerificationFailedError({
87
+ reason: 'machine-token channel is not bound to the challenged merchant and currency',
88
+ });
89
+ return {
90
+ allowedFeeTokens: [
91
+ MachineTokenSession.resolveFeeToken({
92
+ chainId,
93
+ override: parameters.feeToken,
94
+ paymentToken: route.token,
95
+ }),
96
+ ],
97
+ expectedOperator: route.operator,
98
+ machineRouter: route.operator,
99
+ payment: { ...request, currency: route.token, recipient: route.payee },
100
+ };
101
+ }
61
102
  /** Validates on-chain channel state before accepting or charging a credential. */
62
103
  export function validateChannelState(state, amount) {
63
104
  if (state.deposit === 0n) {
@@ -133,6 +174,9 @@ function readHex(value, field) {
133
174
  return value;
134
175
  throw new VerificationFailedError({ reason: `invalid session credential ${field}` });
135
176
  }
177
+ function readOptionalHex(value, field) {
178
+ return value === undefined ? undefined : readHex(value, field);
179
+ }
136
180
  function readRawAmount(value, field) {
137
181
  if (typeof value === 'string' && /^[0-9]+$/.test(value))
138
182
  return value;
@@ -195,6 +239,7 @@ export function requireSessionCredentialPayload(payload) {
195
239
  channelId: header.channelId,
196
240
  transaction: readHex(candidate.transaction, 'transaction'),
197
241
  signature: readHex(candidate.signature, 'signature'),
242
+ authorizationSignature: readOptionalHex(candidate.authorizationSignature, 'authorizationSignature'),
198
243
  descriptor: readDescriptor(candidate.descriptor),
199
244
  cumulativeAmount: readRawAmount(candidate.cumulativeAmount, 'cumulativeAmount'),
200
245
  ...(candidate.authorizedSigner === undefined
@@ -219,6 +264,7 @@ export function requireSessionCredentialPayload(payload) {
219
264
  descriptor: readDescriptor(candidate.descriptor),
220
265
  cumulativeAmount: readRawAmount(candidate.cumulativeAmount, 'cumulativeAmount'),
221
266
  signature: readHex(candidate.signature, 'signature'),
267
+ authorizationSignature: readOptionalHex(candidate.authorizationSignature, 'authorizationSignature'),
222
268
  };
223
269
  case 'close':
224
270
  return {
@@ -227,6 +273,8 @@ export function requireSessionCredentialPayload(payload) {
227
273
  descriptor: readDescriptor(candidate.descriptor),
228
274
  cumulativeAmount: readRawAmount(candidate.cumulativeAmount, 'cumulativeAmount'),
229
275
  signature: readHex(candidate.signature, 'signature'),
276
+ authorizationSignature: readOptionalHex(candidate.authorizationSignature, 'authorizationSignature'),
277
+ refundSignature: readOptionalHex(candidate.refundSignature, 'refundSignature'),
230
278
  };
231
279
  }
232
280
  }
@@ -244,28 +292,26 @@ const refreshOnChainVerificationCache = {
244
292
  /** Validates all action-specific session credential invariants without changing payment state. */
245
293
  export async function validateCredentialPayload(parameters) {
246
294
  const { payload } = parameters;
295
+ const context = await resolveCredentialContext(parameters);
247
296
  switch (payload.action) {
248
297
  case 'open':
249
- await validateOpenCredential(parameters, payload);
298
+ await validateOpenCredential(context, payload);
250
299
  break;
251
300
  case 'topUp':
252
- await validateTopUpCredential(parameters, payload);
301
+ await validateTopUpCredential(context, payload);
253
302
  break;
254
303
  case 'voucher':
255
- await validateVoucherCredential(parameters, payload);
304
+ await validateVoucherCredential(context, payload);
256
305
  break;
257
306
  case 'close':
258
- await validateCloseCredential(parameters, payload);
307
+ await validateCloseCredential(context, payload);
259
308
  break;
260
309
  }
261
310
  return { action: payload.action, channelId: ChannelStore.normalizeChannelId(payload.channelId) };
262
311
  }
263
312
  async function validateOpenCredential(parameters, payload) {
264
- const { challenge, chainId, client, escrow } = parameters;
265
- const request = getChallengePaymentFields(challenge);
266
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
313
+ const { challenge, chainId, client, escrow, expectedOperator, payment: request } = parameters;
267
314
  const cumulativeAmount = uint96(BigInt(payload.cumulativeAmount));
268
- assertDescriptor(payload);
269
315
  if (payload.authorizedSigner !== undefined &&
270
316
  !isAddressEqual(payload.authorizedSigner, payload.descriptor.authorizedSigner))
271
317
  throw new VerificationFailedError({
@@ -274,6 +320,7 @@ async function validateOpenCredential(parameters, payload) {
274
320
  const channelId = ChannelStore.normalizeChannelId(payload.channelId);
275
321
  validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
276
322
  const transaction = Chain.validateOpenCredentialTransaction({
323
+ allowedFeeTokens: parameters.allowedFeeTokens,
277
324
  challengeExpires: challenge.expires,
278
325
  chainId,
279
326
  escrowContract: escrow,
@@ -306,11 +353,8 @@ async function validateOpenCredential(parameters, payload) {
306
353
  });
307
354
  }
308
355
  async function validateTopUpCredential(parameters, payload) {
309
- const { challenge, chainId, client, escrow, store } = parameters;
310
- const request = getChallengePaymentFields(challenge);
311
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
356
+ const { challenge, chainId, client, escrow, expectedOperator, payment: request, store, } = parameters;
312
357
  const additionalDeposit = uint96(BigInt(payload.additionalDeposit));
313
- assertDescriptor(payload);
314
358
  const channelId = ChannelStore.normalizeChannelId(payload.channelId);
315
359
  validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
316
360
  const channel = await ChannelStore.loadPrecompileChannel({
@@ -323,6 +367,7 @@ async function validateTopUpCredential(parameters, payload) {
323
367
  });
324
368
  const transaction = Chain.validateTopUpCredentialTransaction({
325
369
  additionalDeposit,
370
+ allowedFeeTokens: parameters.allowedFeeTokens,
326
371
  challengeExpires: challenge.expires,
327
372
  chainId,
328
373
  descriptor: channel.descriptor,
@@ -341,12 +386,10 @@ async function validateTopUpCredential(parameters, payload) {
341
386
  });
342
387
  }
343
388
  async function validateVoucherCredential(parameters, payload) {
344
- const { challenge, chainId, client, credentialSource, escrow, minVoucherDelta, store, channelStateTtl, lastOnChainVerified, } = parameters;
345
- const request = getChallengePaymentFields(challenge);
346
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
389
+ const { chainId, client, credentialSource, escrow, minVoucherDelta, store, channelStateTtl, lastOnChainVerified, payment: request, } = parameters;
390
+ const { expectedOperator } = parameters;
347
391
  const channelId = ChannelStore.normalizeChannelId(payload.channelId);
348
- const voucher = Voucher.parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
349
- assertDescriptor(payload);
392
+ const voucher = Voucher.parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature, payload.authorizationSignature);
350
393
  validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
351
394
  const channel = await ChannelStore.loadPrecompileChannel({
352
395
  descriptor: payload.descriptor,
@@ -387,14 +430,56 @@ async function resolveVoucherChannelState(parameters) {
387
430
  closeRequestedAt: state?.closeRequestedAt ?? Number(channel.closeRequestedAt),
388
431
  };
389
432
  }
390
- async function validateCloseCredential(parameters, payload) {
391
- const { challenge, chainId, client, escrow, store } = parameters;
392
- const request = getChallengePaymentFields(challenge);
393
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
433
+ function verifyMachineSessionAuthorization(parameters) {
434
+ const { chainId, payload, router } = parameters;
435
+ if (payload.action === 'topUp')
436
+ return undefined;
437
+ if (!router)
438
+ return undefined;
439
+ // The escrow resolves a zero authorizedSigner to the payer, but the router
440
+ // domain is bound to an explicit signer; reject the delegation up front
441
+ // instead of failing signature verification against the zero address.
442
+ if (isAddressEqual(payload.descriptor.authorizedSigner, zeroAddress))
443
+ throw new VerificationFailedError({
444
+ reason: 'machine-token sessions require an explicit authorizedSigner',
445
+ });
446
+ if (!payload.authorizationSignature)
447
+ throw new VerificationFailedError({
448
+ reason: 'machine-token voucher requires a router authorization',
449
+ });
450
+ const valid = MachineTokenSession.verifyAuthorization({
451
+ authorization: {
452
+ channelId: ChannelStore.normalizeChannelId(payload.channelId),
453
+ cumulativeAmount: uint96(BigInt(payload.cumulativeAmount)),
454
+ },
455
+ chainId,
456
+ expectedSigner: payload.descriptor.authorizedSigner,
457
+ router,
458
+ signature: payload.authorizationSignature,
459
+ });
460
+ if (!valid)
461
+ throw new InvalidSignatureError({ reason: 'invalid machine-token router authorization' });
462
+ }
463
+ async function resolveCredentialContext(parameters) {
464
+ const route = await resolveCredentialRoute(parameters);
465
+ verifyMachineSessionAuthorization({
466
+ chainId: parameters.chainId,
467
+ payload: parameters.payload,
468
+ router: route.machineRouter,
469
+ });
470
+ return { ...parameters, ...route };
471
+ }
472
+ function assertMachineCloseAmount(machineRouter, cumulativeAmount, captureAmount) {
473
+ if (machineRouter && cumulativeAmount !== captureAmount)
474
+ throw new VerificationFailedError({
475
+ reason: `machine-token close voucher amount must equal ${captureAmount} (capture amount)`,
476
+ });
477
+ }
478
+ async function inspectCloseCredential(parameters, payload) {
479
+ const { account: accountOverride, chainId, client, escrow, expectedOperator, machineRouter, payment, store, } = parameters;
394
480
  const cumulativeAmount = uint96(BigInt(payload.cumulativeAmount));
395
481
  const channelId = ChannelStore.normalizeChannelId(payload.channelId);
396
- assertDescriptor(payload);
397
- validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
482
+ validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, payment.recipient, payment.currency, expectedOperator);
398
483
  const channel = await ChannelStore.loadPrecompileChannel({
399
484
  descriptor: payload.descriptor,
400
485
  channelId,
@@ -417,24 +502,47 @@ async function validateCloseCredential(parameters, payload) {
417
502
  throw new VerificationFailedError({
418
503
  reason: `close voucher amount must be >= ${state.settled} (on-chain settled)`,
419
504
  });
420
- const valid = await Voucher.verifyVoucher(escrow, chainId, { channelId, cumulativeAmount, signature: payload.signature }, channel.authorizedSigner);
421
- if (!valid)
505
+ if (!(await Voucher.verifyVoucher(escrow, chainId, { channelId, cumulativeAmount, signature: payload.signature }, channel.authorizedSigner)))
422
506
  throw new InvalidSignatureError({ reason: 'invalid voucher signature' });
507
+ const refundSignature = machineRouter ? payload.refundSignature : undefined;
508
+ if (machineRouter) {
509
+ if (!refundSignature)
510
+ throw new VerificationFailedError({
511
+ reason: 'machine-token close requires a refund authorization',
512
+ });
513
+ if (!(await Voucher.verifyVoucher(escrow, chainId, { channelId, cumulativeAmount: uint96(state.deposit), signature: refundSignature }, payload.descriptor.authorizedSigner)))
514
+ throw new InvalidSignatureError({ reason: 'invalid machine-token refund authorization' });
515
+ }
423
516
  const captureAmount = uint96(channel.spent > state.settled ? channel.spent : state.settled);
424
517
  if (captureAmount > state.deposit)
425
518
  throw new AmountExceedsDepositError({ reason: 'close capture amount exceeds on-chain deposit' });
426
- const account = parameters.account ?? getClientAccount(client);
427
- assertSettlementSender({
428
- operation: 'close',
519
+ assertMachineCloseAmount(machineRouter, cumulativeAmount, captureAmount);
520
+ const account = accountOverride ?? getClientAccount(client);
521
+ if (!machineRouter || !account)
522
+ assertSettlementSender({
523
+ operation: 'close',
524
+ channelId,
525
+ operator: channel.operator,
526
+ payee: channel.payee,
527
+ sender: account?.address,
528
+ });
529
+ return {
530
+ account,
531
+ authorizationSignature: machineRouter ? payload.authorizationSignature : undefined,
532
+ captureAmount,
533
+ channel,
429
534
  channelId,
430
- operator: channel.operator,
431
- payee: channel.payee,
432
- sender: account?.address,
433
- });
535
+ cumulativeAmount,
536
+ refundSignature,
537
+ state,
538
+ };
539
+ }
540
+ async function validateCloseCredential(parameters, payload) {
541
+ await inspectCloseCredential(parameters, payload);
434
542
  }
435
543
  /** Broadcasts a validated session credential payload and applies its state transition. */
436
544
  export async function broadcastCredentialPayload(context) {
437
- const receipt = await broadcastCredentialAction(context);
545
+ const receipt = await broadcastCredentialAction(await resolveCredentialContext(context));
438
546
  if (refreshOnChainVerificationCache[context.payload.action])
439
547
  context.lastOnChainVerified.set(receipt.channelId, Date.now());
440
548
  return receipt;
@@ -460,11 +568,8 @@ function actionContext(context, payload) {
460
568
  return { ...context, payload };
461
569
  }
462
570
  async function handleOpenCredential(parameters) {
463
- const { store, client, challenge, payload, chainId, escrow } = parameters;
464
- const request = getChallengePaymentFields(challenge);
465
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
571
+ const { store, client, challenge, payload, chainId, escrow, expectedOperator, payment: request, } = parameters;
466
572
  const cumulativeAmount = uint96(BigInt(payload.cumulativeAmount));
467
- assertDescriptor(payload);
468
573
  if (payload.authorizedSigner !== undefined &&
469
574
  !isAddressEqual(payload.authorizedSigner, payload.descriptor.authorizedSigner))
470
575
  throw new VerificationFailedError({
@@ -473,6 +578,7 @@ async function handleOpenCredential(parameters) {
473
578
  const channelId = ChannelStore.normalizeChannelId(payload.channelId);
474
579
  validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
475
580
  const result = await Chain.broadcastOpenTransaction({
581
+ allowedFeeTokens: parameters.allowedFeeTokens,
476
582
  challengeExpires: challenge.expires,
477
583
  chainId,
478
584
  client,
@@ -514,6 +620,7 @@ async function handleOpenCredential(parameters) {
514
620
  expiringNonceHash: result.expiringNonceHash,
515
621
  cumulativeAmount,
516
622
  signature: payload.signature,
623
+ authorizationSignature: payload.authorizationSignature,
517
624
  state,
518
625
  }));
519
626
  if (!updated)
@@ -528,11 +635,8 @@ async function handleOpenCredential(parameters) {
528
635
  });
529
636
  }
530
637
  async function handleTopUpCredential(parameters) {
531
- const { store, client, challenge, payload, chainId, escrow } = parameters;
532
- const request = getChallengePaymentFields(challenge);
533
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
638
+ const { store, client, challenge, payload, chainId, escrow, expectedOperator, payment: request, } = parameters;
534
639
  const additionalDeposit = uint96(BigInt(payload.additionalDeposit));
535
- assertDescriptor(payload);
536
640
  const channelId = ChannelStore.normalizeChannelId(payload.channelId);
537
641
  validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
538
642
  const channel = await ChannelStore.loadPrecompileChannel({
@@ -545,6 +649,7 @@ async function handleTopUpCredential(parameters) {
545
649
  });
546
650
  const result = await Chain.broadcastTopUpTransaction({
547
651
  additionalDeposit,
652
+ allowedFeeTokens: parameters.allowedFeeTokens,
548
653
  challengeExpires: challenge.expires,
549
654
  chainId,
550
655
  client,
@@ -569,12 +674,10 @@ async function handleTopUpCredential(parameters) {
569
674
  });
570
675
  }
571
676
  async function handleVoucherCredential(parameters) {
572
- const { store, client, challenge, credentialSource, payload, chainId, escrow, minVoucherDelta, channelStateTtl, lastOnChainVerified, } = parameters;
573
- const request = getChallengePaymentFields(challenge);
574
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
677
+ const { store, client, challenge, credentialSource, payload, chainId, escrow, minVoucherDelta, channelStateTtl, lastOnChainVerified, payment: request, } = parameters;
678
+ const { expectedOperator } = parameters;
575
679
  const channelId = ChannelStore.normalizeChannelId(payload.channelId);
576
- const voucher = Voucher.parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
577
- assertDescriptor(payload);
680
+ const voucher = Voucher.parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature, payload.authorizationSignature);
578
681
  validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
579
682
  const channel = await ChannelStore.loadPrecompileChannel({
580
683
  descriptor: payload.descriptor,
@@ -616,41 +719,10 @@ async function handleVoucherCredential(parameters) {
616
719
  });
617
720
  }
618
721
  async function handleCloseCredential(parameters) {
619
- const { store, client, challenge, payload, chainId, escrow } = parameters;
620
- const request = getChallengePaymentFields(challenge);
621
- const expectedOperator = parameters.expectedOperator ?? zeroAddress;
622
- const cumulativeAmount = uint96(BigInt(payload.cumulativeAmount));
623
- const channelId = ChannelStore.normalizeChannelId(payload.channelId);
624
- assertDescriptor(payload);
625
- validateChannelDescriptor(payload.descriptor, channelId, chainId, escrow, request.recipient, request.currency, expectedOperator);
626
- const channel = await ChannelStore.loadPrecompileChannel({
627
- descriptor: payload.descriptor,
628
- channelId,
629
- chainId,
630
- escrow,
631
- store,
632
- });
633
- if (channel.finalized)
634
- throw new ChannelClosedError({ reason: 'channel is already finalized' });
635
- const state = await Chain.getChannelState(client, channelId, escrow);
636
- if (state.closeRequestedAt !== 0)
637
- throw new ChannelClosedError({ reason: 'channel has a pending close request' });
638
- if (state.deposit === 0n && (cumulativeAmount !== 0n || channel.spent !== 0n))
639
- throw new ChannelClosedError({ reason: 'channel deposit is zero (settled)' });
640
- if (cumulativeAmount < channel.spent)
641
- throw new VerificationFailedError({
642
- reason: `close voucher amount must be >= ${channel.spent} (spent)`,
643
- });
644
- if (cumulativeAmount < state.settled)
645
- throw new VerificationFailedError({
646
- reason: `close voucher amount must be >= ${state.settled} (on-chain settled)`,
647
- });
648
- const valid = await Voucher.verifyVoucher(escrow, chainId, { channelId, cumulativeAmount: cumulativeAmount, signature: payload.signature }, channel.authorizedSigner);
649
- if (!valid)
650
- throw new InvalidSignatureError({ reason: 'invalid voucher signature' });
651
- let captureAmount = uint96(channel.spent > state.settled ? channel.spent : state.settled);
652
- if (captureAmount > state.deposit)
653
- throw new AmountExceedsDepositError({ reason: 'close capture amount exceeds on-chain deposit' });
722
+ const { store, client, challenge, payload, escrow, machineRouter } = parameters;
723
+ const inspected = await inspectCloseCredential(parameters, payload);
724
+ const { account, authorizationSignature, channel, channelId, cumulativeAmount, refundSignature, state, } = inspected;
725
+ let { captureAmount } = inspected;
654
726
  const pendingCloseStartedAt = BigInt(Math.floor(Date.now() / 1000) || 1);
655
727
  const previousCloseRequestedAt = channel.closeRequestedAt;
656
728
  let pendingCloseMarked = false;
@@ -663,31 +735,26 @@ async function handleCloseCredential(parameters) {
663
735
  onChainSettled: state.settled,
664
736
  });
665
737
  if (next.state) {
738
+ assertMachineCloseAmount(machineRouter, cumulativeAmount, next.captureAmount);
666
739
  captureAmount = next.captureAmount;
667
740
  pendingCloseMarked = true;
668
741
  }
669
742
  return next.state;
670
743
  });
671
- const account = parameters.account ?? getClientAccount(client);
672
744
  let txHash;
673
745
  let receipt;
674
746
  try {
675
- assertSettlementSender({
676
- operation: 'close',
677
- channelId,
678
- operator: channel.operator,
679
- payee: channel.payee,
680
- sender: account?.address,
681
- });
682
- txHash = await Chain.closeOnChain(client, channel.descriptor, cumulativeAmount, captureAmount, payload.signature, escrow, account
683
- ? {
684
- account,
685
- ...(typeof parameters.feePayer === 'object' ? { feePayer: parameters.feePayer } : {}),
686
- ...(parameters.feePayerPolicy ? { feePayerPolicy: parameters.feePayerPolicy } : {}),
687
- ...(parameters.feeToken ? { feeToken: parameters.feeToken } : {}),
688
- candidateFeeTokens: [channel.token],
689
- }
690
- : undefined);
747
+ const transactionOptions = resolveChannelTransactionOptions(channel, parameters, account, machineRouter);
748
+ if (machineRouter) {
749
+ if (!authorizationSignature || !refundSignature)
750
+ throw new VerificationFailedError({
751
+ reason: 'machine-token close requires router and refund authorizations',
752
+ });
753
+ txHash = await Chain.closeMachineSessionOnChain(client, channel.descriptor, cumulativeAmount, payload.signature, authorizationSignature, refundSignature, machineRouter, transactionOptions);
754
+ }
755
+ else {
756
+ txHash = await Chain.closeOnChain(client, channel.descriptor, cumulativeAmount, captureAmount, payload.signature, escrow, transactionOptions);
757
+ }
691
758
  receipt = await Chain.waitForSuccessfulReceipt(client, txHash);
692
759
  }
693
760
  catch (error) {
@@ -700,9 +767,18 @@ async function handleCloseCredential(parameters) {
700
767
  }
701
768
  const closed = readChannelClosedReceiptFields(Chain.getChannelEvent(receipt, 'ChannelClosed', channelId));
702
769
  const { refundedToPayer, settledToPayee } = closed;
703
- if (settledToPayee > captureAmount || settledToPayee + refundedToPayer > state.deposit)
770
+ if (machineRouter) {
771
+ if (settledToPayee !== state.deposit || refundedToPayer !== 0n)
772
+ throw new VerificationFailedError({
773
+ reason: 'machine-token ChannelClosed amounts are invalid',
774
+ });
775
+ }
776
+ else if (settledToPayee > captureAmount || settledToPayee + refundedToPayer > state.deposit) {
704
777
  throw new VerificationFailedError({ reason: 'ChannelClosed amounts do not match state' });
778
+ }
779
+ const logicalSettled = machineRouter ? captureAmount : settledToPayee;
705
780
  const updated = await store.updateChannel(channelId, (current) => ChannelStore.finalizeClosedChannelState({
781
+ authorizationSignature,
706
782
  captureAmount,
707
783
  channelId,
708
784
  cumulativeAmount,
@@ -715,8 +791,8 @@ async function handleCloseCredential(parameters) {
715
791
  txHash,
716
792
  channelId,
717
793
  trigger: 'close',
718
- amount: settledToPayee,
719
- delta: settledToPayee - state.settled,
794
+ amount: logicalSettled,
795
+ delta: logicalSettled - state.settled,
720
796
  }));
721
797
  }
722
798
  catch {
@@ -35,7 +35,7 @@ export type MeteredStreamOptions = {
35
35
  onChargeCommitted?: ((channel: ChannelStore.State) => MaybePromise<unknown>) | undefined;
36
36
  /** Store polling interval when `waitForUpdate` is unavailable. */
37
37
  pollIntervalMs: number;
38
- /** Pre-authorized units that may be emitted without reserving new voucher headroom. */
38
+ /** Pre-authorized implicit tick-cost units that may be emitted without a new reservation. */
39
39
  prepaidUnits?: number | undefined;
40
40
  /** Optional abort signal for stream cancellation. */
41
41
  signal?: AbortSignal | undefined;
@@ -4,22 +4,23 @@ export async function* meterIterable(options) {
4
4
  let prepaidUnits = options.prepaidUnits ?? 0;
5
5
  let reservedAmount = 0n;
6
6
  let reservedUnits = 0;
7
- const charge = async (amount = options.tickCost) => {
8
- if (prepaidUnits > 0) {
7
+ const charge = async (amount) => {
8
+ if (amount === undefined && prepaidUnits > 0) {
9
9
  prepaidUnits -= 1;
10
10
  return;
11
11
  }
12
+ const resolvedAmount = amount ?? options.tickCost;
12
13
  await reserveChargeOrWait({
13
14
  store: options.store,
14
15
  channelId: options.channelId,
15
- amount,
16
+ amount: resolvedAmount,
16
17
  reservedAmount,
17
18
  emit: options.emitNeedVoucher,
18
19
  formatNeedVoucher: options.formatNeedVoucher,
19
20
  pollIntervalMs: options.pollIntervalMs,
20
21
  signal: options.signal,
21
22
  });
22
- reservedAmount += amount;
23
+ reservedAmount += resolvedAmount;
23
24
  reservedUnits += 1;
24
25
  };
25
26
  const signal = options.signal ?? new AbortController().signal;
@@ -2,6 +2,7 @@ import { type Account as viem_Account, type Address, type Hex } from 'viem';
2
2
  import * as Constants from '../../../Constants.js';
3
3
  import type * as Credential from '../../../Credential.js';
4
4
  import type { Challenge } from '../../../index.js';
5
+ import type { MaybePromise } from '../../../internal/types.js';
5
6
  import type * as z from '../../../zod.js';
6
7
  import * as Methods from '../../Methods.js';
7
8
  import { isSessionContentRequest, type RequestBodyProbe } from '../../server/internal/request-body.js';
@@ -14,10 +15,14 @@ import { type ParameterFeePayer, type ResolvedFeePayer } from './Settlement.js';
14
15
  export type ResolveSessionSnapshotParameters = {
15
16
  /** Raw request amount that must be covered by the next voucher. */
16
17
  amount: bigint;
18
+ /** Already-loaded channel for `channelId`, skipping the store read. */
19
+ channel?: ChannelStore.State | null | undefined;
17
20
  /** Channel ID from credential or challenge request, when available. */
18
21
  channelId: Hex | undefined;
19
22
  /** Payment fields the reusable channel must match before it is advertised. */
20
23
  expected?: SessionSnapshotPaymentFields | undefined;
24
+ /** Optional alternate-rail matcher when the stored descriptor differs from logical payment fields. */
25
+ matchPaymentFields?: MatchSessionSnapshotPaymentFields | undefined;
21
26
  /** Server channel store. */
22
27
  store: ChannelStore.ChannelStore;
23
28
  };
@@ -32,6 +37,15 @@ export type SessionSnapshotPaymentFields = {
32
37
  /** Payee address expected by the challenge. */
33
38
  recipient: Address;
34
39
  };
40
+ /**
41
+ * Validates an alternate channel descriptor against the logical session payment
42
+ * fields. `options.action` names the credential the snapshot serves: close
43
+ * credentials accept retired routes, so their recovery snapshots match
44
+ * inactive routes too.
45
+ */
46
+ export type MatchSessionSnapshotPaymentFields = (channel: ChannelStore.StoredPrecompileChannel, expected: SessionSnapshotPaymentFields, options?: {
47
+ action?: SessionCredentialPayload['action'] | undefined;
48
+ } | undefined) => MaybePromise<boolean>;
35
49
  /** Request metadata available to `resolveChannelId` without exposing a mutable `Request`. */
36
50
  export type SessionChannelIdRequest = {
37
51
  /** Request headers, useful for cookies or auth/session headers. */
@@ -125,6 +139,10 @@ export type SessionMethodDetails = {
125
139
  escrowContract: Address;
126
140
  /** Whether this challenge allows fee-sponsored management transactions. */
127
141
  feePayer?: boolean | undefined;
142
+ /** Fee token clients must use for open/top-up transactions. */
143
+ feeToken?: Address | undefined;
144
+ /** Whether clients may fund this logical session through the first-party machine-token rail. */
145
+ machineTokenEnabled?: boolean | undefined;
128
146
  /** Minimum raw-unit increase required for voucher credentials. */
129
147
  minVoucherDelta?: string | undefined;
130
148
  /** Channel operator address the client should encode in new open transactions. */
@@ -147,6 +165,7 @@ export type ResolveSessionPaymentRequestParameters = {
147
165
  decimals: number;
148
166
  defaultFeePayer?: viem_Account | undefined;
149
167
  getClient: ResolveRequestChainIdParameters['getClient'];
168
+ matchSnapshotPaymentFields?: MatchSessionSnapshotPaymentFields | undefined;
150
169
  parameterChainId?: number | undefined;
151
170
  parameterEscrowContract?: Address | undefined;
152
171
  parameterFeePayer?: ParameterFeePayer;