mppx 0.8.15 → 0.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (966) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +61 -39
  4. package/dist/Constants.d.ts +17 -17
  5. package/dist/Errors.d.ts +3 -3
  6. package/dist/Method.d.ts +35 -5
  7. package/dist/Method.js +7 -22
  8. package/dist/Store.d.ts +19 -0
  9. package/dist/Store.js +43 -0
  10. package/dist/attestation/Client.d.ts +17 -0
  11. package/dist/attestation/Client.js +28 -0
  12. package/dist/attestation/Constants.d.ts +15 -0
  13. package/dist/attestation/Constants.js +15 -0
  14. package/dist/attestation/Server.d.ts +4 -0
  15. package/dist/attestation/Server.js +8 -0
  16. package/dist/attestation/Types.d.ts +76 -0
  17. package/dist/attestation/Types.js +2 -0
  18. package/dist/attestation/index.d.ts +6 -0
  19. package/dist/attestation/index.js +6 -0
  20. package/dist/attestation/internal/HttpMessageSignature.d.ts +73 -0
  21. package/dist/attestation/internal/HttpMessageSignature.js +320 -0
  22. package/dist/attestation/internal/SigningContext.d.ts +4 -0
  23. package/dist/attestation/internal/SigningContext.js +11 -0
  24. package/dist/bin.js +3 -3
  25. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  26. package/dist/cli/account.d.ts +14 -14
  27. package/dist/cli/cli.d.ts +6 -6
  28. package/dist/cli/cli.js +253 -1504
  29. package/dist/cli/plugins/index.js +19 -5
  30. package/dist/cli/plugins/tempo.js +7 -3
  31. package/dist/cli/sessions/Manager.js +7 -4
  32. package/dist/cli/sessions/commands.d.ts +4 -4
  33. package/dist/cli/sessions/request.d.ts +2 -0
  34. package/dist/cli/sessions/request.js +18 -0
  35. package/dist/cli/sessions/store.js +28 -14
  36. package/dist/cli/utils.d.ts +1 -1
  37. package/dist/cli/validate/index.d.ts +3 -3
  38. package/dist/client/Mppx.d.ts +3 -0
  39. package/dist/client/Mppx.js +13 -5
  40. package/dist/client/Transport.d.ts +3 -5
  41. package/dist/client/Transport.js +1 -17
  42. package/dist/client/internal/Fetch.js +2 -6
  43. package/dist/discovery/Discovery.js +2 -1
  44. package/dist/discovery/OpenApi.d.ts +3 -5
  45. package/dist/discovery/OpenApi.js +13 -34
  46. package/dist/discovery/internal/Metadata.d.ts +20 -0
  47. package/dist/discovery/internal/Metadata.js +36 -0
  48. package/dist/evm/Methods.d.ts +11 -11
  49. package/dist/evm/Types.d.ts +17 -17
  50. package/dist/evm/client/Charge.d.ts +11 -11
  51. package/dist/evm/client/Charge.js +8 -0
  52. package/dist/evm/client/Methods.d.ts +11 -11
  53. package/dist/evm/server/Charge.d.ts +1 -1
  54. package/dist/evm/server/Charge.js +2 -0
  55. package/dist/evm/server/Methods.d.ts +11 -11
  56. package/dist/internal/HeaderCodec.d.ts +2 -2
  57. package/dist/internal/types.d.ts +6 -0
  58. package/dist/proxy/Proxy.d.ts +2 -0
  59. package/dist/proxy/Proxy.js +117 -9
  60. package/dist/proxy/Service.d.ts +36 -1
  61. package/dist/proxy/Service.js +9 -8
  62. package/dist/proxy/services/anthropic.js +1 -0
  63. package/dist/proxy/services/openai.js +1 -0
  64. package/dist/proxy/services/stripe.js +1 -0
  65. package/dist/server/Mppx.d.ts +75 -13
  66. package/dist/server/Mppx.js +201 -23
  67. package/dist/server/core.d.ts +9 -0
  68. package/dist/server/core.js +9 -0
  69. package/dist/server/internal/html/config.d.ts +9 -9
  70. package/dist/server/internal/html/constants.d.ts +17 -17
  71. package/dist/stripe/Methods.d.ts +10 -10
  72. package/dist/stripe/client/Charge.d.ts +10 -10
  73. package/dist/stripe/client/Methods.d.ts +10 -10
  74. package/dist/stripe/internal/constants.d.ts +1 -1
  75. package/dist/stripe/internal/constants.js +1 -1
  76. package/dist/stripe/internal/types.d.ts +1 -0
  77. package/dist/stripe/server/Charge.d.ts +11 -11
  78. package/dist/stripe/server/Charge.js +51 -5
  79. package/dist/stripe/server/Methods.d.ts +137 -48
  80. package/dist/stripe/server/Methods.js +265 -4
  81. package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
  82. package/dist/stripe/server/internal/deposit-address.js +28 -0
  83. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  84. package/dist/stripe/server/internal/html.gen.js +1 -1
  85. package/dist/stripe/server/internal/record-payment.d.ts +15 -0
  86. package/dist/stripe/server/internal/record-payment.js +42 -0
  87. package/dist/stripe/server/internal/request.d.ts +25 -0
  88. package/dist/stripe/server/internal/request.js +29 -0
  89. package/dist/stripe/server/spt.d.ts +8 -0
  90. package/dist/stripe/server/spt.js +8 -0
  91. package/dist/tap/Constants.d.ts +28 -0
  92. package/dist/tap/Constants.js +32 -0
  93. package/dist/tap/Types.d.ts +11 -0
  94. package/dist/tap/Types.js +2 -0
  95. package/dist/tap/client/index.d.ts +26 -0
  96. package/dist/tap/client/index.js +33 -0
  97. package/dist/tap/index.d.ts +5 -0
  98. package/dist/tap/index.js +5 -0
  99. package/dist/tap/server/index.d.ts +20 -0
  100. package/dist/tap/server/index.js +36 -0
  101. package/dist/tempo/Attribution.d.ts +1 -1
  102. package/dist/tempo/Methods.d.ts +73 -60
  103. package/dist/tempo/Methods.js +14 -3
  104. package/dist/tempo/Proof.d.ts +16 -16
  105. package/dist/tempo/client/Charge.d.ts +22 -19
  106. package/dist/tempo/client/Charge.js +32 -16
  107. package/dist/tempo/client/Methods.d.ts +51 -38
  108. package/dist/tempo/client/Subscription.d.ts +23 -23
  109. package/dist/tempo/internal/address.d.ts +2 -1
  110. package/dist/tempo/internal/address.js +3 -1
  111. package/dist/tempo/internal/auto-swap.js +4 -19
  112. package/dist/tempo/internal/defaults.d.ts +17 -6
  113. package/dist/tempo/internal/defaults.js +11 -0
  114. package/dist/tempo/internal/fee-payer.d.ts +12 -12
  115. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  116. package/dist/tempo/internal/machine-token-charge.js +113 -0
  117. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  118. package/dist/tempo/internal/machine-token-session.js +173 -0
  119. package/dist/tempo/internal/proof.d.ts +17 -17
  120. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  121. package/dist/tempo/internal/signature-envelope.js +28 -0
  122. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  123. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  124. package/dist/tempo/legacy/client/Session.d.ts +33 -21
  125. package/dist/tempo/legacy/client/Session.js +3 -3
  126. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  127. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  128. package/dist/tempo/legacy/index.d.ts +1 -3
  129. package/dist/tempo/legacy/index.js +1 -3
  130. package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
  131. package/dist/tempo/server/Charge.d.ts +28 -11
  132. package/dist/tempo/server/Charge.js +101 -55
  133. package/dist/tempo/server/Methods.d.ts +58 -56
  134. package/dist/tempo/server/Methods.js +8 -18
  135. package/dist/tempo/server/Relay.d.ts +1 -1
  136. package/dist/tempo/server/Relay.js +2 -2
  137. package/dist/tempo/server/Subscription.d.ts +25 -25
  138. package/dist/tempo/server/Subscription.js +2 -0
  139. package/dist/tempo/server/index.d.ts +1 -1
  140. package/dist/tempo/server/index.js +1 -1
  141. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  142. package/dist/tempo/server/internal/html.gen.js +1 -1
  143. package/dist/tempo/server/internal/transport.d.ts +2 -0
  144. package/dist/tempo/server/internal/transport.js +9 -2
  145. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  146. package/dist/tempo/session/client/ChannelOps.js +35 -6
  147. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  148. package/dist/tempo/session/client/ChannelStore.js +2 -2
  149. package/dist/tempo/session/client/CredentialState.d.ts +18 -3
  150. package/dist/tempo/session/client/CredentialState.js +77 -76
  151. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  152. package/dist/tempo/session/client/Runtime.js +21 -5
  153. package/dist/tempo/session/client/Session.d.ts +34 -22
  154. package/dist/tempo/session/client/Session.js +186 -63
  155. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  156. package/dist/tempo/session/client/SessionManager.js +35 -11
  157. package/dist/tempo/session/client/Transports.d.ts +2 -0
  158. package/dist/tempo/session/client/Transports.js +12 -2
  159. package/dist/tempo/session/precompile/Chain.d.ts +37 -2
  160. package/dist/tempo/session/precompile/Chain.js +116 -15
  161. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  162. package/dist/tempo/session/precompile/Protocol.js +7 -0
  163. package/dist/tempo/session/precompile/Voucher.d.ts +7 -5
  164. package/dist/tempo/session/precompile/Voucher.js +6 -12
  165. package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
  166. package/dist/tempo/session/server/ChannelStore.d.ts +15 -0
  167. package/dist/tempo/session/server/ChannelStore.js +27 -12
  168. package/dist/tempo/session/server/CredentialVerification.d.ts +39 -20
  169. package/dist/tempo/session/server/CredentialVerification.js +359 -89
  170. package/dist/tempo/session/server/MeteredStream.d.ts +4 -1
  171. package/dist/tempo/session/server/MeteredStream.js +8 -5
  172. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  173. package/dist/tempo/session/server/RequestState.js +61 -15
  174. package/dist/tempo/session/server/Session.d.ts +46 -23
  175. package/dist/tempo/session/server/Session.js +150 -56
  176. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  177. package/dist/tempo/session/server/Settlement.js +53 -21
  178. package/dist/tempo/session/server/Sse.d.ts +3 -1
  179. package/dist/tempo/session/server/Sse.js +2 -1
  180. package/dist/tempo/session/server/Transports.d.ts +1 -1
  181. package/dist/tempo/session/server/Transports.js +1 -0
  182. package/dist/tempo/session/server/Ws.d.ts +6 -1
  183. package/dist/tempo/session/server/Ws.js +1 -0
  184. package/dist/tempo/subscription/KeyAuthorization.d.ts +39 -39
  185. package/dist/web-bot-auth/Constants.d.ts +20 -0
  186. package/dist/web-bot-auth/Constants.js +24 -0
  187. package/dist/web-bot-auth/Types.d.ts +10 -0
  188. package/dist/web-bot-auth/Types.js +2 -0
  189. package/dist/web-bot-auth/client/index.d.ts +29 -0
  190. package/dist/web-bot-auth/client/index.js +64 -0
  191. package/dist/web-bot-auth/index.d.ts +7 -0
  192. package/dist/web-bot-auth/index.js +7 -0
  193. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
  194. package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
  195. package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
  196. package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
  197. package/dist/web-bot-auth/server/index.d.ts +35 -0
  198. package/dist/web-bot-auth/server/index.js +88 -0
  199. package/dist/x402/Types.d.ts +6 -6
  200. package/dist/x402/client/Exact.d.ts +8 -0
  201. package/dist/x402/client/Exact.js +40 -10
  202. package/dist/x402/server/EvmCharge.d.ts +22 -0
  203. package/dist/x402/server/EvmCharge.js +54 -20
  204. package/package.json +28 -34
  205. package/dist/BodyDigest.d.ts.map +0 -1
  206. package/dist/BodyDigest.js.map +0 -1
  207. package/dist/Challenge.d.ts.map +0 -1
  208. package/dist/Challenge.js.map +0 -1
  209. package/dist/Constants.d.ts.map +0 -1
  210. package/dist/Constants.js.map +0 -1
  211. package/dist/Credential.d.ts.map +0 -1
  212. package/dist/Credential.js.map +0 -1
  213. package/dist/Errors.d.ts.map +0 -1
  214. package/dist/Errors.js.map +0 -1
  215. package/dist/Expires.d.ts.map +0 -1
  216. package/dist/Expires.js.map +0 -1
  217. package/dist/Html.d.ts.map +0 -1
  218. package/dist/Html.js.map +0 -1
  219. package/dist/Mcp.d.ts.map +0 -1
  220. package/dist/Mcp.js.map +0 -1
  221. package/dist/Method.d.ts.map +0 -1
  222. package/dist/Method.js.map +0 -1
  223. package/dist/PaymentRequest.d.ts.map +0 -1
  224. package/dist/PaymentRequest.js.map +0 -1
  225. package/dist/Receipt.d.ts.map +0 -1
  226. package/dist/Receipt.js.map +0 -1
  227. package/dist/Store.d.ts.map +0 -1
  228. package/dist/Store.js.map +0 -1
  229. package/dist/bin.d.ts.map +0 -1
  230. package/dist/bin.js.map +0 -1
  231. package/dist/cli/account.d.ts.map +0 -1
  232. package/dist/cli/account.js.map +0 -1
  233. package/dist/cli/cli.d.ts.map +0 -1
  234. package/dist/cli/cli.js.map +0 -1
  235. package/dist/cli/config.d.ts.map +0 -1
  236. package/dist/cli/config.js.map +0 -1
  237. package/dist/cli/internal.d.ts.map +0 -1
  238. package/dist/cli/internal.js.map +0 -1
  239. package/dist/cli/plugins/evm.d.ts.map +0 -1
  240. package/dist/cli/plugins/evm.js.map +0 -1
  241. package/dist/cli/plugins/index.d.ts.map +0 -1
  242. package/dist/cli/plugins/index.js.map +0 -1
  243. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  244. package/dist/cli/plugins/plugin.js.map +0 -1
  245. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  246. package/dist/cli/plugins/stripe.js.map +0 -1
  247. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  248. package/dist/cli/plugins/tempo.js.map +0 -1
  249. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  250. package/dist/cli/sessions/Manager.js.map +0 -1
  251. package/dist/cli/sessions/commands.d.ts.map +0 -1
  252. package/dist/cli/sessions/commands.js.map +0 -1
  253. package/dist/cli/sessions/request.d.ts.map +0 -1
  254. package/dist/cli/sessions/request.js.map +0 -1
  255. package/dist/cli/sessions/store.d.ts.map +0 -1
  256. package/dist/cli/sessions/store.js.map +0 -1
  257. package/dist/cli/utils.d.ts.map +0 -1
  258. package/dist/cli/utils.js.map +0 -1
  259. package/dist/cli/validate/challenge.d.ts.map +0 -1
  260. package/dist/cli/validate/challenge.js.map +0 -1
  261. package/dist/cli/validate/discovery.d.ts.map +0 -1
  262. package/dist/cli/validate/discovery.js.map +0 -1
  263. package/dist/cli/validate/helpers.d.ts.map +0 -1
  264. package/dist/cli/validate/helpers.js.map +0 -1
  265. package/dist/cli/validate/index.d.ts.map +0 -1
  266. package/dist/cli/validate/index.js.map +0 -1
  267. package/dist/cli/validate/messages.d.ts.map +0 -1
  268. package/dist/cli/validate/messages.js.map +0 -1
  269. package/dist/cli/validate/payment.d.ts.map +0 -1
  270. package/dist/cli/validate/payment.js.map +0 -1
  271. package/dist/client/Methods.d.ts.map +0 -1
  272. package/dist/client/Methods.js.map +0 -1
  273. package/dist/client/Mppx.d.ts.map +0 -1
  274. package/dist/client/Mppx.js.map +0 -1
  275. package/dist/client/Transport.d.ts.map +0 -1
  276. package/dist/client/Transport.js.map +0 -1
  277. package/dist/client/index.d.ts.map +0 -1
  278. package/dist/client/index.js.map +0 -1
  279. package/dist/client/internal/Fetch.d.ts.map +0 -1
  280. package/dist/client/internal/Fetch.js.map +0 -1
  281. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  282. package/dist/client/internal/MethodChallenge.js.map +0 -1
  283. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  284. package/dist/client/internal/MethodResponse.js.map +0 -1
  285. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  286. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  287. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  288. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  289. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  290. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  291. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  292. package/dist/client/internal/protocols/Shared.js.map +0 -1
  293. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  294. package/dist/client/internal/protocols/X402.js.map +0 -1
  295. package/dist/client/node.d.ts.map +0 -1
  296. package/dist/client/node.js.map +0 -1
  297. package/dist/discovery/Discovery.d.ts.map +0 -1
  298. package/dist/discovery/Discovery.js.map +0 -1
  299. package/dist/discovery/OpenApi.d.ts.map +0 -1
  300. package/dist/discovery/OpenApi.js.map +0 -1
  301. package/dist/discovery/Validate.d.ts.map +0 -1
  302. package/dist/discovery/Validate.js.map +0 -1
  303. package/dist/discovery/index.d.ts.map +0 -1
  304. package/dist/discovery/index.js.map +0 -1
  305. package/dist/evm/Assets.d.ts.map +0 -1
  306. package/dist/evm/Assets.js.map +0 -1
  307. package/dist/evm/Chains.d.ts.map +0 -1
  308. package/dist/evm/Chains.js.map +0 -1
  309. package/dist/evm/Methods.d.ts.map +0 -1
  310. package/dist/evm/Methods.js.map +0 -1
  311. package/dist/evm/Types.d.ts.map +0 -1
  312. package/dist/evm/Types.js.map +0 -1
  313. package/dist/evm/client/Charge.d.ts.map +0 -1
  314. package/dist/evm/client/Charge.js.map +0 -1
  315. package/dist/evm/client/Methods.d.ts.map +0 -1
  316. package/dist/evm/client/Methods.js.map +0 -1
  317. package/dist/evm/client/index.d.ts.map +0 -1
  318. package/dist/evm/client/index.js.map +0 -1
  319. package/dist/evm/index.d.ts.map +0 -1
  320. package/dist/evm/index.js.map +0 -1
  321. package/dist/evm/server/Charge.d.ts.map +0 -1
  322. package/dist/evm/server/Charge.js.map +0 -1
  323. package/dist/evm/server/Methods.d.ts.map +0 -1
  324. package/dist/evm/server/Methods.js.map +0 -1
  325. package/dist/evm/server/index.d.ts.map +0 -1
  326. package/dist/evm/server/index.js.map +0 -1
  327. package/dist/index.d.ts.map +0 -1
  328. package/dist/index.js.map +0 -1
  329. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  330. package/dist/internal/AcceptPayment.js.map +0 -1
  331. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  332. package/dist/internal/HeaderCodec.js.map +0 -1
  333. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  334. package/dist/internal/constantTimeEqual.js.map +0 -1
  335. package/dist/internal/env.d.ts.map +0 -1
  336. package/dist/internal/env.js.map +0 -1
  337. package/dist/internal/types.d.ts.map +0 -1
  338. package/dist/internal/types.js.map +0 -1
  339. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  340. package/dist/mcp/client/McpClient.js.map +0 -1
  341. package/dist/mcp/client/index.d.ts.map +0 -1
  342. package/dist/mcp/client/index.js.map +0 -1
  343. package/dist/mcp/server/Transport.d.ts.map +0 -1
  344. package/dist/mcp/server/Transport.js.map +0 -1
  345. package/dist/mcp/server/index.d.ts.map +0 -1
  346. package/dist/mcp/server/index.js.map +0 -1
  347. package/dist/middlewares/elysia.d.ts.map +0 -1
  348. package/dist/middlewares/elysia.js.map +0 -1
  349. package/dist/middlewares/express.d.ts.map +0 -1
  350. package/dist/middlewares/express.js.map +0 -1
  351. package/dist/middlewares/hono.d.ts.map +0 -1
  352. package/dist/middlewares/hono.js.map +0 -1
  353. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  354. package/dist/middlewares/internal/mppx.js.map +0 -1
  355. package/dist/middlewares/nextjs.d.ts.map +0 -1
  356. package/dist/middlewares/nextjs.js.map +0 -1
  357. package/dist/proxy/Proxy.d.ts.map +0 -1
  358. package/dist/proxy/Proxy.js.map +0 -1
  359. package/dist/proxy/Service.d.ts.map +0 -1
  360. package/dist/proxy/Service.js.map +0 -1
  361. package/dist/proxy/index.d.ts.map +0 -1
  362. package/dist/proxy/index.js.map +0 -1
  363. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  364. package/dist/proxy/internal/Headers.js.map +0 -1
  365. package/dist/proxy/internal/Route.d.ts.map +0 -1
  366. package/dist/proxy/internal/Route.js.map +0 -1
  367. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  368. package/dist/proxy/services/anthropic.js.map +0 -1
  369. package/dist/proxy/services/openai.d.ts.map +0 -1
  370. package/dist/proxy/services/openai.js.map +0 -1
  371. package/dist/proxy/services/stripe.d.ts.map +0 -1
  372. package/dist/proxy/services/stripe.js.map +0 -1
  373. package/dist/server/Methods.d.ts.map +0 -1
  374. package/dist/server/Methods.js.map +0 -1
  375. package/dist/server/Mppx.d.ts.map +0 -1
  376. package/dist/server/Mppx.js.map +0 -1
  377. package/dist/server/NodeListener.d.ts.map +0 -1
  378. package/dist/server/NodeListener.js.map +0 -1
  379. package/dist/server/Request.d.ts.map +0 -1
  380. package/dist/server/Request.js.map +0 -1
  381. package/dist/server/Response.d.ts.map +0 -1
  382. package/dist/server/Response.js.map +0 -1
  383. package/dist/server/Transport.d.ts.map +0 -1
  384. package/dist/server/Transport.js.map +0 -1
  385. package/dist/server/index.d.ts.map +0 -1
  386. package/dist/server/index.js.map +0 -1
  387. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  388. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  389. package/dist/server/internal/html/config.d.ts.map +0 -1
  390. package/dist/server/internal/html/config.js.map +0 -1
  391. package/dist/server/internal/html/constants.d.ts.map +0 -1
  392. package/dist/server/internal/html/constants.js.map +0 -1
  393. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  394. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  395. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  396. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  397. package/dist/server/internal/scope.d.ts.map +0 -1
  398. package/dist/server/internal/scope.js.map +0 -1
  399. package/dist/stripe/Methods.d.ts.map +0 -1
  400. package/dist/stripe/Methods.js.map +0 -1
  401. package/dist/stripe/client/Charge.d.ts.map +0 -1
  402. package/dist/stripe/client/Charge.js.map +0 -1
  403. package/dist/stripe/client/Methods.d.ts.map +0 -1
  404. package/dist/stripe/client/Methods.js.map +0 -1
  405. package/dist/stripe/client/index.d.ts.map +0 -1
  406. package/dist/stripe/client/index.js.map +0 -1
  407. package/dist/stripe/index.d.ts.map +0 -1
  408. package/dist/stripe/index.js.map +0 -1
  409. package/dist/stripe/internal/constants.d.ts.map +0 -1
  410. package/dist/stripe/internal/constants.js.map +0 -1
  411. package/dist/stripe/internal/types.d.ts.map +0 -1
  412. package/dist/stripe/internal/types.js.map +0 -1
  413. package/dist/stripe/server/Charge.d.ts.map +0 -1
  414. package/dist/stripe/server/Charge.js.map +0 -1
  415. package/dist/stripe/server/Methods.d.ts.map +0 -1
  416. package/dist/stripe/server/Methods.js.map +0 -1
  417. package/dist/stripe/server/index.d.ts.map +0 -1
  418. package/dist/stripe/server/index.js.map +0 -1
  419. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  420. package/dist/stripe/server/internal/html/types.js.map +0 -1
  421. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  422. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  423. package/dist/tempo/Attribution.d.ts.map +0 -1
  424. package/dist/tempo/Attribution.js.map +0 -1
  425. package/dist/tempo/Methods.d.ts.map +0 -1
  426. package/dist/tempo/Methods.js.map +0 -1
  427. package/dist/tempo/Proof.d.ts.map +0 -1
  428. package/dist/tempo/Proof.js.map +0 -1
  429. package/dist/tempo/client/Charge.d.ts.map +0 -1
  430. package/dist/tempo/client/Charge.js.map +0 -1
  431. package/dist/tempo/client/Methods.d.ts.map +0 -1
  432. package/dist/tempo/client/Methods.js.map +0 -1
  433. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  434. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  435. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  436. package/dist/tempo/client/Subscription.js.map +0 -1
  437. package/dist/tempo/client/index.d.ts.map +0 -1
  438. package/dist/tempo/client/index.js.map +0 -1
  439. package/dist/tempo/index.d.ts.map +0 -1
  440. package/dist/tempo/index.js.map +0 -1
  441. package/dist/tempo/internal/account.d.ts.map +0 -1
  442. package/dist/tempo/internal/account.js.map +0 -1
  443. package/dist/tempo/internal/address.d.ts.map +0 -1
  444. package/dist/tempo/internal/address.js.map +0 -1
  445. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  446. package/dist/tempo/internal/auto-swap.js.map +0 -1
  447. package/dist/tempo/internal/charge.d.ts.map +0 -1
  448. package/dist/tempo/internal/charge.js.map +0 -1
  449. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  450. package/dist/tempo/internal/defaults.js.map +0 -1
  451. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  452. package/dist/tempo/internal/fee-payer.js.map +0 -1
  453. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  454. package/dist/tempo/internal/fee-token.js.map +0 -1
  455. package/dist/tempo/internal/proof.d.ts.map +0 -1
  456. package/dist/tempo/internal/proof.js.map +0 -1
  457. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  458. package/dist/tempo/internal/selectors.js.map +0 -1
  459. package/dist/tempo/internal/types.d.ts.map +0 -1
  460. package/dist/tempo/internal/types.js.map +0 -1
  461. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  462. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  463. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  464. package/dist/tempo/legacy/client/Session.js.map +0 -1
  465. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  466. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  467. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  468. package/dist/tempo/legacy/client/index.js.map +0 -1
  469. package/dist/tempo/legacy/index.d.ts.map +0 -1
  470. package/dist/tempo/legacy/index.js.map +0 -1
  471. package/dist/tempo/legacy/server/Session.d.ts +0 -208
  472. package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
  473. package/dist/tempo/legacy/server/Session.js +0 -698
  474. package/dist/tempo/legacy/server/Session.js.map +0 -1
  475. package/dist/tempo/legacy/server/index.d.ts +0 -5
  476. package/dist/tempo/legacy/server/index.d.ts.map +0 -1
  477. package/dist/tempo/legacy/server/index.js +0 -5
  478. package/dist/tempo/legacy/server/index.js.map +0 -1
  479. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  480. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  481. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  482. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  483. package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
  484. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
  485. package/dist/tempo/legacy/session/ChannelStore.js +0 -6
  486. package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
  487. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  488. package/dist/tempo/legacy/session/Types.js.map +0 -1
  489. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  490. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  491. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  492. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  493. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  494. package/dist/tempo/legacy/session/index.js.map +0 -1
  495. package/dist/tempo/server/Charge.d.ts.map +0 -1
  496. package/dist/tempo/server/Charge.js.map +0 -1
  497. package/dist/tempo/server/Methods.d.ts.map +0 -1
  498. package/dist/tempo/server/Methods.js.map +0 -1
  499. package/dist/tempo/server/Relay.d.ts.map +0 -1
  500. package/dist/tempo/server/Relay.js.map +0 -1
  501. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  502. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  503. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  504. package/dist/tempo/server/Subscription.js.map +0 -1
  505. package/dist/tempo/server/index.d.ts.map +0 -1
  506. package/dist/tempo/server/index.js.map +0 -1
  507. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  508. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  509. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  510. package/dist/tempo/server/internal/request-body.js.map +0 -1
  511. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  512. package/dist/tempo/server/internal/transport.js.map +0 -1
  513. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  514. package/dist/tempo/session/Snapshot.js.map +0 -1
  515. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  516. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  517. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  518. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  519. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  520. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  521. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  522. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  523. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  524. package/dist/tempo/session/client/Runtime.js.map +0 -1
  525. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  526. package/dist/tempo/session/client/Session.js.map +0 -1
  527. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  528. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  529. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  530. package/dist/tempo/session/client/Transports.js.map +0 -1
  531. package/dist/tempo/session/client/index.d.ts.map +0 -1
  532. package/dist/tempo/session/client/index.js.map +0 -1
  533. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  534. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  535. package/dist/tempo/session/index.d.ts.map +0 -1
  536. package/dist/tempo/session/index.js.map +0 -1
  537. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  538. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  539. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  540. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  541. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  542. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  543. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  544. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  545. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  546. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  547. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  548. package/dist/tempo/session/precompile/index.js.map +0 -1
  549. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  550. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  551. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  552. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  553. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  554. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  555. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  556. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  557. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  558. package/dist/tempo/session/server/RequestState.js.map +0 -1
  559. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  560. package/dist/tempo/session/server/Session.js.map +0 -1
  561. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  562. package/dist/tempo/session/server/Settlement.js.map +0 -1
  563. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  564. package/dist/tempo/session/server/Sse.js.map +0 -1
  565. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  566. package/dist/tempo/session/server/Transports.js.map +0 -1
  567. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  568. package/dist/tempo/session/server/Ws.js.map +0 -1
  569. package/dist/tempo/session/server/index.d.ts.map +0 -1
  570. package/dist/tempo/session/server/index.js.map +0 -1
  571. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  572. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  573. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  574. package/dist/tempo/subscription/Receipt.js.map +0 -1
  575. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  576. package/dist/tempo/subscription/Store.js.map +0 -1
  577. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  578. package/dist/tempo/subscription/Types.js.map +0 -1
  579. package/dist/tempo/subscription/index.d.ts.map +0 -1
  580. package/dist/tempo/subscription/index.js.map +0 -1
  581. package/dist/validation/core.d.ts.map +0 -1
  582. package/dist/validation/core.js.map +0 -1
  583. package/dist/validation/index.d.ts.map +0 -1
  584. package/dist/validation/index.js.map +0 -1
  585. package/dist/viem/Account.d.ts.map +0 -1
  586. package/dist/viem/Account.js.map +0 -1
  587. package/dist/viem/Client.d.ts.map +0 -1
  588. package/dist/viem/Client.js.map +0 -1
  589. package/dist/x402/Assets.d.ts.map +0 -1
  590. package/dist/x402/Assets.js.map +0 -1
  591. package/dist/x402/Header.d.ts.map +0 -1
  592. package/dist/x402/Header.js.map +0 -1
  593. package/dist/x402/Types.d.ts.map +0 -1
  594. package/dist/x402/Types.js.map +0 -1
  595. package/dist/x402/client/Exact.d.ts.map +0 -1
  596. package/dist/x402/client/Exact.js.map +0 -1
  597. package/dist/x402/index.d.ts.map +0 -1
  598. package/dist/x402/index.js.map +0 -1
  599. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  600. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  601. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  602. package/dist/x402/internal/RouteBinding.js.map +0 -1
  603. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  604. package/dist/x402/server/EvmCharge.js.map +0 -1
  605. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  606. package/dist/x402/server/Facilitator.js.map +0 -1
  607. package/dist/zod.d.ts.map +0 -1
  608. package/dist/zod.js.map +0 -1
  609. package/src/BodyDigest.test.ts +0 -43
  610. package/src/BodyDigest.ts +0 -55
  611. package/src/Challenge.fuzz.test.ts +0 -121
  612. package/src/Challenge.test-d.ts +0 -82
  613. package/src/Challenge.test.ts +0 -995
  614. package/src/Challenge.ts +0 -683
  615. package/src/Constants.ts +0 -58
  616. package/src/Credential.fuzz.test.ts +0 -62
  617. package/src/Credential.test.ts +0 -378
  618. package/src/Credential.ts +0 -217
  619. package/src/Errors.test.ts +0 -520
  620. package/src/Errors.ts +0 -448
  621. package/src/Expires.test.ts +0 -112
  622. package/src/Expires.ts +0 -59
  623. package/src/Html.ts +0 -67
  624. package/src/Mcp.ts +0 -85
  625. package/src/Method.test.ts +0 -177
  626. package/src/Method.ts +0 -617
  627. package/src/PaymentRequest.test.ts +0 -147
  628. package/src/PaymentRequest.ts +0 -108
  629. package/src/Receipt.test.ts +0 -151
  630. package/src/Receipt.ts +0 -146
  631. package/src/Store.test-d.ts +0 -195
  632. package/src/Store.test.ts +0 -357
  633. package/src/Store.ts +0 -329
  634. package/src/bin.ts +0 -4
  635. package/src/cli/account.ts +0 -269
  636. package/src/cli/cli.test.ts +0 -2221
  637. package/src/cli/cli.ts +0 -1649
  638. package/src/cli/config.test.ts +0 -89
  639. package/src/cli/config.ts +0 -50
  640. package/src/cli/internal.ts +0 -114
  641. package/src/cli/mcp.test.ts +0 -262
  642. package/src/cli/plugins/evm.ts +0 -55
  643. package/src/cli/plugins/index.ts +0 -4
  644. package/src/cli/plugins/plugin.ts +0 -84
  645. package/src/cli/plugins/stripe.ts +0 -174
  646. package/src/cli/plugins/tempo.ts +0 -1102
  647. package/src/cli/sessions/Manager.test.ts +0 -249
  648. package/src/cli/sessions/Manager.ts +0 -93
  649. package/src/cli/sessions/commands.ts +0 -444
  650. package/src/cli/sessions/request.test.ts +0 -51
  651. package/src/cli/sessions/request.ts +0 -353
  652. package/src/cli/sessions/store.test.ts +0 -581
  653. package/src/cli/sessions/store.ts +0 -940
  654. package/src/cli/utils.test.ts +0 -156
  655. package/src/cli/utils.ts +0 -394
  656. package/src/cli/validate/challenge.ts +0 -565
  657. package/src/cli/validate/discovery.test.ts +0 -435
  658. package/src/cli/validate/discovery.ts +0 -221
  659. package/src/cli/validate/helpers.ts +0 -166
  660. package/src/cli/validate/index.ts +0 -229
  661. package/src/cli/validate/messages.ts +0 -7
  662. package/src/cli/validate/payment.ts +0 -774
  663. package/src/cli/validate.test.ts +0 -843
  664. package/src/client/Methods.ts +0 -8
  665. package/src/client/Mppx.test-d.ts +0 -270
  666. package/src/client/Mppx.test.ts +0 -1065
  667. package/src/client/Mppx.ts +0 -466
  668. package/src/client/Transport.test.ts +0 -619
  669. package/src/client/Transport.ts +0 -191
  670. package/src/client/index.ts +0 -29
  671. package/src/client/internal/Fetch.browser.test.ts +0 -197
  672. package/src/client/internal/Fetch.test-d.ts +0 -109
  673. package/src/client/internal/Fetch.test.ts +0 -2336
  674. package/src/client/internal/Fetch.ts +0 -1079
  675. package/src/client/internal/MethodChallenge.ts +0 -35
  676. package/src/client/internal/MethodResponse.ts +0 -67
  677. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  678. package/src/client/internal/protocols/Mcp.ts +0 -186
  679. package/src/client/internal/protocols/Mpp.ts +0 -21
  680. package/src/client/internal/protocols/Protocol.ts +0 -10
  681. package/src/client/internal/protocols/Shared.ts +0 -25
  682. package/src/client/internal/protocols/X402.ts +0 -46
  683. package/src/client/node.test.ts +0 -115
  684. package/src/client/node.ts +0 -247
  685. package/src/discovery/Discovery.test.ts +0 -214
  686. package/src/discovery/Discovery.ts +0 -105
  687. package/src/discovery/OpenApi.test.ts +0 -453
  688. package/src/discovery/OpenApi.ts +0 -224
  689. package/src/discovery/Validate.test.ts +0 -305
  690. package/src/discovery/Validate.ts +0 -77
  691. package/src/discovery/index.ts +0 -3
  692. package/src/env.d.ts +0 -12
  693. package/src/evm/Assets.ts +0 -1
  694. package/src/evm/Chains.ts +0 -11
  695. package/src/evm/Methods.ts +0 -44
  696. package/src/evm/PublicInterface.test-d.ts +0 -134
  697. package/src/evm/Types.ts +0 -140
  698. package/src/evm/client/Charge.test.ts +0 -347
  699. package/src/evm/client/Charge.ts +0 -187
  700. package/src/evm/client/Methods.ts +0 -19
  701. package/src/evm/client/index.ts +0 -6
  702. package/src/evm/index.ts +0 -16
  703. package/src/evm/server/Charge.test.ts +0 -339
  704. package/src/evm/server/Charge.ts +0 -290
  705. package/src/evm/server/Methods.ts +0 -22
  706. package/src/evm/server/index.ts +0 -6
  707. package/src/index.ts +0 -14
  708. package/src/internal/AcceptPayment.test.ts +0 -343
  709. package/src/internal/AcceptPayment.ts +0 -366
  710. package/src/internal/HeaderCodec.ts +0 -36
  711. package/src/internal/changeset.test.ts +0 -106
  712. package/src/internal/constantTimeEqual.test.ts +0 -47
  713. package/src/internal/constantTimeEqual.ts +0 -10
  714. package/src/internal/env.test.ts +0 -42
  715. package/src/internal/env.ts +0 -49
  716. package/src/internal/types.test-d.ts +0 -21
  717. package/src/internal/types.ts +0 -470
  718. package/src/mcp/client/McpClient.integration.test.ts +0 -652
  719. package/src/mcp/client/McpClient.test-d.ts +0 -144
  720. package/src/mcp/client/McpClient.test.ts +0 -463
  721. package/src/mcp/client/McpClient.ts +0 -307
  722. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  723. package/src/mcp/client/index.ts +0 -2
  724. package/src/mcp/server/Transport.test.ts +0 -191
  725. package/src/mcp/server/Transport.ts +0 -111
  726. package/src/mcp/server/index.ts +0 -1
  727. package/src/middlewares/elysia.test.ts +0 -295
  728. package/src/middlewares/elysia.ts +0 -116
  729. package/src/middlewares/express.test.ts +0 -371
  730. package/src/middlewares/express.ts +0 -140
  731. package/src/middlewares/hono.test.ts +0 -476
  732. package/src/middlewares/hono.ts +0 -153
  733. package/src/middlewares/internal/mppx.test.ts +0 -177
  734. package/src/middlewares/internal/mppx.ts +0 -67
  735. package/src/middlewares/nextjs.test.ts +0 -369
  736. package/src/middlewares/nextjs.ts +0 -107
  737. package/src/proxy/Proxy.test.ts +0 -1031
  738. package/src/proxy/Proxy.ts +0 -345
  739. package/src/proxy/Service.test.ts +0 -182
  740. package/src/proxy/Service.ts +0 -253
  741. package/src/proxy/index.ts +0 -6
  742. package/src/proxy/internal/Headers.test.ts +0 -139
  743. package/src/proxy/internal/Headers.ts +0 -66
  744. package/src/proxy/internal/Route.test.ts +0 -217
  745. package/src/proxy/internal/Route.ts +0 -64
  746. package/src/proxy/services/anthropic.test.ts +0 -132
  747. package/src/proxy/services/anthropic.ts +0 -52
  748. package/src/proxy/services/openai.test.ts +0 -157
  749. package/src/proxy/services/openai.ts +0 -59
  750. package/src/proxy/services/stripe.test.ts +0 -175
  751. package/src/proxy/services/stripe.ts +0 -58
  752. package/src/server/Methods.ts +0 -3
  753. package/src/server/Mppx.authorize.test.ts +0 -210
  754. package/src/server/Mppx.test-d.ts +0 -360
  755. package/src/server/Mppx.test.ts +0 -5813
  756. package/src/server/Mppx.ts +0 -2623
  757. package/src/server/NodeListener.test.ts +0 -293
  758. package/src/server/NodeListener.ts +0 -45
  759. package/src/server/Request.test.ts +0 -255
  760. package/src/server/Request.ts +0 -155
  761. package/src/server/Response.test.ts +0 -32
  762. package/src/server/Response.ts +0 -45
  763. package/src/server/Transport.test.ts +0 -598
  764. package/src/server/Transport.ts +0 -320
  765. package/src/server/index.ts +0 -9
  766. package/src/server/internal/html/compose.main.gen.ts +0 -2
  767. package/src/server/internal/html/compose.main.ts +0 -88
  768. package/src/server/internal/html/config.ts +0 -672
  769. package/src/server/internal/html/constants.ts +0 -28
  770. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  771. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  772. package/src/server/internal/html/serviceWorker.ts +0 -27
  773. package/src/server/internal/html/tsconfig.compose.json +0 -8
  774. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  775. package/src/server/internal/html/tsconfig.worker.json +0 -8
  776. package/src/server/internal/scope.ts +0 -43
  777. package/src/stripe/Charge.integration.test.ts +0 -329
  778. package/src/stripe/Methods.test.ts +0 -62
  779. package/src/stripe/Methods.ts +0 -44
  780. package/src/stripe/client/Charge.test.ts +0 -205
  781. package/src/stripe/client/Charge.ts +0 -132
  782. package/src/stripe/client/Methods.ts +0 -37
  783. package/src/stripe/client/index.ts +0 -2
  784. package/src/stripe/index.ts +0 -1
  785. package/src/stripe/internal/constants.ts +0 -7
  786. package/src/stripe/internal/types.ts +0 -46
  787. package/src/stripe/server/Charge.test-d.ts +0 -66
  788. package/src/stripe/server/Charge.test.ts +0 -621
  789. package/src/stripe/server/Charge.ts +0 -434
  790. package/src/stripe/server/Methods.ts +0 -24
  791. package/src/stripe/server/index.ts +0 -2
  792. package/src/stripe/server/internal/html/main.ts +0 -165
  793. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  794. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  795. package/src/stripe/server/internal/html/package.json +0 -9
  796. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  797. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  798. package/src/stripe/server/internal/html/types.ts +0 -5
  799. package/src/stripe/server/internal/html.gen.ts +0 -2
  800. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  801. package/src/tempo/Attribution.test.ts +0 -294
  802. package/src/tempo/Attribution.ts +0 -185
  803. package/src/tempo/Methods.test.ts +0 -425
  804. package/src/tempo/Methods.ts +0 -367
  805. package/src/tempo/Proof.conformance.test.ts +0 -146
  806. package/src/tempo/Proof.test-d.ts +0 -32
  807. package/src/tempo/Proof.test.ts +0 -40
  808. package/src/tempo/Proof.ts +0 -69
  809. package/src/tempo/PublicExports.test-d.ts +0 -130
  810. package/src/tempo/Subscription.integration.test.ts +0 -591
  811. package/src/tempo/client/Charge.test.ts +0 -501
  812. package/src/tempo/client/Charge.ts +0 -289
  813. package/src/tempo/client/Methods.ts +0 -45
  814. package/src/tempo/client/ResolveAccount.ts +0 -46
  815. package/src/tempo/client/Subscription.test.ts +0 -180
  816. package/src/tempo/client/Subscription.ts +0 -156
  817. package/src/tempo/client/index.ts +0 -17
  818. package/src/tempo/index.ts +0 -5
  819. package/src/tempo/internal/account.ts +0 -56
  820. package/src/tempo/internal/address.ts +0 -6
  821. package/src/tempo/internal/auto-swap.test.ts +0 -198
  822. package/src/tempo/internal/auto-swap.ts +0 -188
  823. package/src/tempo/internal/charge.test.ts +0 -66
  824. package/src/tempo/internal/charge.ts +0 -43
  825. package/src/tempo/internal/defaults.test.ts +0 -95
  826. package/src/tempo/internal/defaults.ts +0 -53
  827. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  828. package/src/tempo/internal/fee-payer.ts +0 -808
  829. package/src/tempo/internal/fee-token.test.ts +0 -165
  830. package/src/tempo/internal/fee-token.ts +0 -72
  831. package/src/tempo/internal/proof.test.ts +0 -97
  832. package/src/tempo/internal/proof.ts +0 -87
  833. package/src/tempo/internal/selectors.ts +0 -10
  834. package/src/tempo/internal/types.ts +0 -19
  835. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  836. package/src/tempo/legacy/README.md +0 -9
  837. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  838. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  839. package/src/tempo/legacy/client/Session.test.ts +0 -800
  840. package/src/tempo/legacy/client/Session.ts +0 -397
  841. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  842. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  843. package/src/tempo/legacy/client/index.ts +0 -6
  844. package/src/tempo/legacy/index.ts +0 -6
  845. package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
  846. package/src/tempo/legacy/server/Session.test.ts +0 -6370
  847. package/src/tempo/legacy/server/Session.ts +0 -1024
  848. package/src/tempo/legacy/server/index.ts +0 -4
  849. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  850. package/src/tempo/legacy/session/Chain.ts +0 -830
  851. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  852. package/src/tempo/legacy/session/Channel.ts +0 -51
  853. package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
  854. package/src/tempo/legacy/session/ChannelStore.ts +0 -39
  855. package/src/tempo/legacy/session/Types.ts +0 -91
  856. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  857. package/src/tempo/legacy/session/Voucher.ts +0 -183
  858. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  859. package/src/tempo/legacy/session/index.ts +0 -8
  860. package/src/tempo/server/AtomicStore.test-d.ts +0 -50
  861. package/src/tempo/server/Charge.test.ts +0 -6121
  862. package/src/tempo/server/Charge.ts +0 -1351
  863. package/src/tempo/server/Methods.ts +0 -106
  864. package/src/tempo/server/Relay.test.ts +0 -677
  865. package/src/tempo/server/Relay.ts +0 -297
  866. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  867. package/src/tempo/server/SponsorBudget.ts +0 -219
  868. package/src/tempo/server/Sse.test.ts +0 -321
  869. package/src/tempo/server/Subscription.test.ts +0 -1944
  870. package/src/tempo/server/Subscription.ts +0 -1333
  871. package/src/tempo/server/index.ts +0 -12
  872. package/src/tempo/server/internal/html/main.ts +0 -115
  873. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  874. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  875. package/src/tempo/server/internal/html/package.json +0 -10
  876. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  877. package/src/tempo/server/internal/html.gen.ts +0 -2
  878. package/src/tempo/server/internal/request-body.test.ts +0 -210
  879. package/src/tempo/server/internal/request-body.ts +0 -61
  880. package/src/tempo/server/internal/transport.test.ts +0 -903
  881. package/src/tempo/server/internal/transport.ts +0 -310
  882. package/src/tempo/session/README.md +0 -208
  883. package/src/tempo/session/Snapshot.test.ts +0 -41
  884. package/src/tempo/session/Snapshot.ts +0 -95
  885. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  886. package/src/tempo/session/client/ChannelOps.ts +0 -348
  887. package/src/tempo/session/client/ChannelStore.ts +0 -111
  888. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  889. package/src/tempo/session/client/CredentialState.ts +0 -942
  890. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  891. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  892. package/src/tempo/session/client/Runtime.ts +0 -1008
  893. package/src/tempo/session/client/Session.test.ts +0 -1355
  894. package/src/tempo/session/client/Session.ts +0 -420
  895. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  896. package/src/tempo/session/client/SessionManager.ts +0 -996
  897. package/src/tempo/session/client/Transports.test.ts +0 -1141
  898. package/src/tempo/session/client/Transports.ts +0 -1534
  899. package/src/tempo/session/client/index.ts +0 -40
  900. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  901. package/src/tempo/session/index.ts +0 -7
  902. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  903. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  904. package/src/tempo/session/precompile/Chain.ts +0 -1149
  905. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  906. package/src/tempo/session/precompile/Channel.ts +0 -108
  907. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  908. package/src/tempo/session/precompile/Protocol.ts +0 -520
  909. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  910. package/src/tempo/session/precompile/Voucher.ts +0 -162
  911. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  912. package/src/tempo/session/precompile/index.ts +0 -33
  913. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  914. package/src/tempo/session/server/ChannelOps.ts +0 -157
  915. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  916. package/src/tempo/session/server/ChannelStore.ts +0 -835
  917. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  918. package/src/tempo/session/server/CredentialVerification.ts +0 -775
  919. package/src/tempo/session/server/MeteredStream.ts +0 -95
  920. package/src/tempo/session/server/RequestState.test.ts +0 -574
  921. package/src/tempo/session/server/RequestState.ts +0 -507
  922. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  923. package/src/tempo/session/server/Session.test.ts +0 -3862
  924. package/src/tempo/session/server/Session.ts +0 -570
  925. package/src/tempo/session/server/Settlement.test.ts +0 -345
  926. package/src/tempo/session/server/Settlement.ts +0 -527
  927. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  928. package/src/tempo/session/server/Sse.test.ts +0 -557
  929. package/src/tempo/session/server/Sse.ts +0 -254
  930. package/src/tempo/session/server/Transports.test.ts +0 -346
  931. package/src/tempo/session/server/Transports.ts +0 -255
  932. package/src/tempo/session/server/Ws.test.ts +0 -594
  933. package/src/tempo/session/server/Ws.ts +0 -385
  934. package/src/tempo/session/server/index.ts +0 -12
  935. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  936. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  937. package/src/tempo/subscription/Receipt.ts +0 -28
  938. package/src/tempo/subscription/Store.test.ts +0 -609
  939. package/src/tempo/subscription/Store.ts +0 -449
  940. package/src/tempo/subscription/Types.ts +0 -68
  941. package/src/tempo/subscription/index.ts +0 -23
  942. package/src/tsconfig.json +0 -10
  943. package/src/validation/core.ts +0 -386
  944. package/src/validation/index.ts +0 -11
  945. package/src/viem/Account.test.ts +0 -72
  946. package/src/viem/Account.ts +0 -30
  947. package/src/viem/Client.test.ts +0 -366
  948. package/src/viem/Client.ts +0 -93
  949. package/src/x402/Assets.test.ts +0 -253
  950. package/src/x402/Assets.ts +0 -221
  951. package/src/x402/Exact.e2e.test.ts +0 -448
  952. package/src/x402/Exact.localnet.test.ts +0 -475
  953. package/src/x402/Header.test.ts +0 -73
  954. package/src/x402/Header.ts +0 -79
  955. package/src/x402/PublicInterface.test-d.ts +0 -39
  956. package/src/x402/Types.ts +0 -248
  957. package/src/x402/client/Exact.test.ts +0 -309
  958. package/src/x402/client/Exact.ts +0 -186
  959. package/src/x402/index.ts +0 -6
  960. package/src/x402/internal/ChallengeBrand.ts +0 -14
  961. package/src/x402/internal/RouteBinding.ts +0 -18
  962. package/src/x402/server/EvmCharge.ts +0 -394
  963. package/src/x402/server/Facilitator.test.ts +0 -111
  964. package/src/x402/server/Facilitator.ts +0 -56
  965. package/src/zod.test.ts +0 -169
  966. package/src/zod.ts +0 -71
@@ -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;
@@ -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;
@@ -18,7 +18,9 @@ import * as Transport from '../../server/internal/transport.js';
18
18
  import { deserializeSnapshot as deserializeSessionSnapshot, serializeSnapshot as serializeSessionSnapshot } from '../Snapshot.js';
19
19
  import * as ChannelStore from './ChannelStore.js';
20
20
  import { type ResolveSessionChannelId } from './RequestState.js';
21
+ import { type SettleChargedSessionChannel } from './Settlement.js';
21
22
  import { type OnSessionSettlement, type SettlementSchedule } from './Settlement.js';
23
+ import * as Ws from './Ws.js';
22
24
  /** Server-side automatic settlement schedule. */
23
25
  export type { SettlementSchedule } from './Settlement.js';
24
26
  /** Server-side settlement event hook types. */
@@ -31,9 +33,10 @@ export declare function session<const parameters extends session.Parameters>(p?:
31
33
  readonly name: "tempo";
32
34
  readonly intent: "session";
33
35
  readonly schema: {
34
- readonly credential: {
35
- readonly payload: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
36
+ credential: {
37
+ payload: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
36
38
  action: import("zod/mini").ZodMiniLiteral<"open">;
39
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
37
40
  authorizedSigner: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
38
41
  channelId: import("zod/mini").ZodMiniString<string>;
39
42
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
@@ -50,19 +53,22 @@ export declare function session<const parameters extends session.Parameters>(p?:
50
53
  type: import("zod/mini").ZodMiniLiteral<"transaction">;
51
54
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
52
55
  action: import("zod/mini").ZodMiniLiteral<"voucher">;
56
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
53
57
  channelId: import("zod/mini").ZodMiniString<string>;
54
58
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
55
59
  descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
56
60
  signature: import("zod/mini").ZodMiniString<string>;
57
61
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
58
62
  action: import("zod/mini").ZodMiniLiteral<"close">;
63
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
59
64
  channelId: import("zod/mini").ZodMiniString<string>;
60
65
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
61
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>>;
62
68
  signature: import("zod/mini").ZodMiniString<string>;
63
69
  }, import("zod/v4/core").$strip>], "action">;
64
70
  };
65
- readonly request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
71
+ request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
66
72
  amount: import("zod/mini").ZodMiniString<string>;
67
73
  chainId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniNumber<number>>;
68
74
  channelId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
@@ -70,6 +76,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
70
76
  decimals: import("zod/mini").ZodMiniNumber<number>;
71
77
  escrowContract: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
72
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>>;
73
81
  minVoucherDelta: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
74
82
  operator: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
75
83
  recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
@@ -81,42 +89,55 @@ export declare function session<const parameters extends session.Parameters>(p?:
81
89
  suggestedDeposit: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
82
90
  unitType: import("zod/mini").ZodMiniString<string>;
83
91
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
92
+ currency: string;
93
+ recipient?: string | undefined;
94
+ unitType: string;
95
+ amount: string;
96
+ suggestedDeposit?: string | undefined;
84
97
  methodDetails: {
85
- sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
86
- sessionProtocol?: "v1" | "v2" | undefined;
87
- operator?: string | undefined;
88
- feePayer?: boolean | undefined;
89
- chainId?: number | undefined;
90
- minVoucherDelta?: string | undefined;
91
- channelId?: string | undefined;
92
98
  escrowContract: string | undefined;
99
+ channelId?: string | undefined;
100
+ minVoucherDelta?: string | undefined;
101
+ chainId?: number | undefined;
102
+ feePayer?: boolean | undefined;
103
+ feeToken?: string | undefined;
104
+ machineTokenEnabled?: boolean | undefined;
105
+ operator?: string | undefined;
106
+ sessionProtocol?: "v1" | "v2" | undefined;
107
+ sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
93
108
  };
94
- suggestedDeposit?: string | undefined;
95
- amount: string;
96
- currency: string;
97
- unitType: string;
98
- recipient?: string | undefined;
99
109
  }, {
100
110
  amount: string;
101
- currency: string;
102
- decimals: number;
103
- unitType: string;
104
111
  chainId?: number | undefined;
105
112
  channelId?: string | undefined;
113
+ currency: string;
114
+ decimals: number;
106
115
  escrowContract?: string | undefined;
107
116
  feePayer?: boolean | undefined;
117
+ feeToken?: string | undefined;
118
+ machineTokenEnabled?: boolean | undefined;
108
119
  minVoucherDelta?: string | undefined;
109
120
  operator?: string | undefined;
110
121
  recipient?: string | undefined;
111
122
  sessionProtocol?: "v1" | "v2" | undefined;
112
123
  sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
113
124
  suggestedDeposit?: string | undefined;
125
+ unitType: string;
114
126
  }>>;
115
127
  };
116
- }, session.DeriveDefaults<parameters>, parameters["sse"] extends false | undefined ? undefined : Transport.Sse, {}, undefined>;
128
+ }, session.DeriveDefaults<parameters>, parameters["sse"] extends false | undefined ? undefined : Transport.Sse, session.Extensions, undefined>;
117
129
  export declare namespace session {
118
130
  const serializeSnapshot: typeof serializeSessionSnapshot;
119
131
  const deserializeSnapshot: typeof deserializeSessionSnapshot;
132
+ /** Extensions attached to the Tempo session method handler. */
133
+ type Extensions = {
134
+ /** Applies the configured automatic settlement policy to a committed channel charge. */
135
+ settleScheduled: SettleChargedSessionChannel;
136
+ /** Serves a WebSocket route from this handler using its configured store and settlement policy. */
137
+ serveWebSocket: (options: ServeWebSocketOptions) => Promise<void>;
138
+ };
139
+ /** WebSocket server options supplied after the session binds shared dependencies. */
140
+ type ServeWebSocketOptions = Omit<Ws.serve.Options, 'onChargeCommitted' | 'settleScheduled' | 'store'>;
120
141
  /** Request defaults inferred from the Tempo session method schema. */
121
142
  type Defaults = LooseOmit<Method.RequestDefaults<typeof Methods.session>, 'escrowContract' | 'feePayer' | 'recipient'>;
122
143
  /** Partial fee-sponsor policy used for server-submitted session transactions. */
@@ -154,17 +175,19 @@ export declare namespace session {
154
175
  store?: Store.AtomicStore | undefined;
155
176
  /** Enable SSE streaming. Pass `true` for defaults or an options object to configure SSE. */
156
177
  sse?: boolean | Transport.sse.Options | undefined;
157
- /** Tempo chain ID used for TIP-1034 channel escrow challenges. Defaults to the resolved client chain ID. Pass the Tempo testnet chain ID here instead of using legacy session's `testnet` boolean. */
178
+ /** Tempo chain ID used for TIP-1034 channel escrow challenges. Defaults to the resolved client chain ID. */
158
179
  chainId?: number | undefined;
159
- /** TIP20EscrowChannel precompile address override. */
180
+ /** Escrow contract advertised to clients. Defaults to the canonical TIP20EscrowChannel address. */
160
181
  escrowContract?: Address | undefined;
161
182
  /** Callback invoked after any on-chain settlement or close transaction is confirmed. */
162
183
  onSessionSettlement?: OnSessionSettlement | undefined;
163
184
  /** Server-owned automatic settlement cadence. Clients do not receive or control this schedule. */
164
185
  settlementSchedule?: SettlementSchedule | undefined;
165
- /** Optional fee token used for server-driven close transactions. */
186
+ /** Optional fee token for management and server-driven settle/close transactions. */
166
187
  feeToken?: Address | undefined;
167
- } & Account.resolve.Parameters & Client.getResolver.Parameters & Defaults;
188
+ /** Enables first-party machine-token funding when the configured deployment is available. */
189
+ machineTokenEnabled?: boolean | undefined;
190
+ } & Account.resolve.Parameters & Client.getResolver.Parameters & Defaults & Method.ComposableHooks<typeof Methods.session>;
168
191
  /** Defaults derived from `session()` parameters for handler type inference. */
169
192
  type DeriveDefaults<parameters extends Parameters> = types.DeriveDefaults<parameters, Defaults, {
170
193
  currency: string;
@@ -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,19 +16,21 @@ 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';
22
23
  import { tip20ChannelEscrow } from '../precompile/Protocol.js';
23
24
  import { deserializeSnapshot as deserializeSessionSnapshot, serializeSnapshot as serializeSessionSnapshot, } from '../Snapshot.js';
24
25
  import * as ChannelStore from './ChannelStore.js';
25
- import { verifyCredentialPayload } from './CredentialVerification.js';
26
+ import { broadcastCredentialPayload, validateCredentialPayload } from './CredentialVerification.js';
26
27
  import { requireSessionCredentialPayload } from './CredentialVerification.js';
27
28
  import { resolveCredentialVerificationContext, resolveSessionChannelId, resolveSessionSnapshot, resolveSessionPaymentRequest, } from './RequestState.js';
28
29
  import { respondToSessionCredential } from './RequestState.js';
29
- import { applyVerifiedHttpAccounting, chargeSessionChannel } from './Settlement.js';
30
- import { maybeSettleScheduled } from './Settlement.js';
30
+ import { applyVerifiedHttpAccounting, chargeSessionChannel, } from './Settlement.js';
31
+ import { isSettlementDue, maybeSettleScheduled } from './Settlement.js';
31
32
  import { resolveSettlementSchedule, } from './Settlement.js';
33
+ import * as Ws from './Ws.js';
32
34
  export { settle, settleBatch } from './Settlement.js';
33
35
  function deriveServerDefaults(values) {
34
36
  // `Method.toServer()` models defaults from request input fields. Tempo session
@@ -177,6 +179,9 @@ async function handleBootstrapPreflight(parameters) {
177
179
  escrowContract: resolveBootstrapEscrowContract(parameters.paymentRequest, parameters.parameterEscrowContract),
178
180
  recipient: readBootstrapAddress(request.recipient, 'recipient'),
179
181
  },
182
+ matchPaymentFields: parameters.paymentRequest.machineTokenEnabled
183
+ ? parameters.matchSnapshotPaymentFields
184
+ : undefined,
180
185
  store: parameters.store,
181
186
  });
182
187
  const headers = new Headers({ 'Cache-Control': 'no-store' });
@@ -189,19 +194,53 @@ async function handleBootstrapPreflight(parameters) {
189
194
  /** Creates a server-side TIP20EscrowChannel precompile session payment method. */
190
195
  export function session(p) {
191
196
  const parameters = p;
192
- 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;
193
198
  const settlementSchedule = resolveSettlementSchedule(parameters.settlementSchedule, decimals);
194
199
  const onSessionSettlement = parameters.onSessionSettlement;
195
200
  const store = ChannelStore.fromStore(rawStore);
196
201
  const lastOnChainVerified = new Map();
197
202
  const { account, feePayer, feePayerUrl, recipient } = Account.resolve(parameters);
198
203
  const configuredFeePayer = feePayer ?? feePayerUrl;
204
+ const settlementFeePayer = feePayer ?? (feePayerUrl ? true : undefined);
199
205
  const getClient = Client.getResolver({
200
206
  chain: tempo_chain,
201
207
  feePayerUrl,
202
208
  getClient: parameters.getClient,
203
209
  rpcUrl: defaults.rpcUrl,
204
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
+ };
224
+ const settleScheduled = async (channel) => {
225
+ if (!isSettlementDue(channel, settlementSchedule))
226
+ return undefined;
227
+ return maybeSettleScheduled({
228
+ account,
229
+ channel,
230
+ client: await getClient({ chainId: channel.chainId }),
231
+ ...(settlementFeePayer ? { feePayer: settlementFeePayer } : {}),
232
+ feePayerPolicy: parameters.feePayerPolicy,
233
+ feeToken: parameters.feeToken,
234
+ onSessionSettlement,
235
+ schedule: settlementSchedule,
236
+ store,
237
+ });
238
+ };
239
+ const serveWebSocket = (options) => Ws.serve({
240
+ ...options,
241
+ onChargeCommitted: settleScheduled,
242
+ store,
243
+ });
205
244
  const bootstrapCharge = ChargeServer.charge({
206
245
  account,
207
246
  chainId: parameters.chainId,
@@ -214,20 +253,110 @@ export function session(p) {
214
253
  });
215
254
  const transport = parameters.sse
216
255
  ? Transport.sse({
256
+ settleCharged: settleScheduled,
217
257
  store,
218
258
  ...(typeof parameters.sse === 'object' ? parameters.sse : undefined),
219
259
  })
220
260
  : undefined;
221
- return Method.toServer(Methods.session, {
261
+ const validateCredential = async ({ credential, request, }) => {
262
+ const payload = requireSessionCredentialPayload(credential.payload);
263
+ const context = await resolveCredentialVerificationContext({
264
+ decimals,
265
+ feePayer: configuredFeePayer,
266
+ getClient,
267
+ minVoucherDelta: parameters.minVoucherDelta,
268
+ request,
269
+ });
270
+ const details = await validateCredentialPayload({
271
+ account,
272
+ challenge: credential.challenge,
273
+ channelStateTtl,
274
+ chainId: context.chainId,
275
+ client: context.client,
276
+ credentialSource: credential.source,
277
+ escrow: context.escrow,
278
+ expectedOperator: context.methodDetails.operator,
279
+ feePayer: context.feePayer,
280
+ feePayerPolicy: parameters.feePayerPolicy,
281
+ feeToken: context.methodDetails.feeToken,
282
+ lastOnChainVerified,
283
+ minVoucherDelta: context.minVoucherDelta,
284
+ payload,
285
+ store,
286
+ });
287
+ return {
288
+ challenge: credential.challenge,
289
+ credential: { ...credential, payload },
290
+ details,
291
+ intent: 'session',
292
+ method: 'tempo',
293
+ request: context.request,
294
+ source: credential.source,
295
+ };
296
+ };
297
+ const broadcastCredential = async ({ credential, envelope, request, }) => {
298
+ const { challenge } = credential;
299
+ const payload = requireSessionCredentialPayload(credential.payload);
300
+ const context = await resolveCredentialVerificationContext({
301
+ decimals,
302
+ feePayer: configuredFeePayer,
303
+ getClient,
304
+ minVoucherDelta: parameters.minVoucherDelta,
305
+ request,
306
+ });
307
+ const sessionReceipt = await broadcastCredentialPayload({
308
+ account,
309
+ challenge,
310
+ channelStateTtl,
311
+ chainId: context.chainId,
312
+ client: context.client,
313
+ credentialSource: credential.source,
314
+ escrow: context.escrow,
315
+ expectedOperator: context.methodDetails.operator,
316
+ feePayer: context.feePayer,
317
+ feePayerPolicy: parameters.feePayerPolicy,
318
+ feeToken: context.methodDetails.feeToken,
319
+ lastOnChainVerified,
320
+ minVoucherDelta: context.minVoucherDelta,
321
+ onSessionSettlement,
322
+ payload,
323
+ store,
324
+ });
325
+ return applyVerifiedHttpAccounting({
326
+ capturedRequest: envelope?.capturedRequest,
327
+ payloadAction: payload.action,
328
+ receipt: sessionReceipt,
329
+ getRequestAmount: () => BigInt(context.request.amount ?? challenge.request.amount),
330
+ sseEnabled: Boolean(parameters.sse),
331
+ markPrepaidReceipt: Transport.markPrepaidSessionTick,
332
+ charge: (channelId, requestAmount) => chargeSessionChannel({ store, channelId, amount: requestAmount }),
333
+ settleCharged: (channel) => maybeSettleScheduled({
334
+ account,
335
+ client: context.client,
336
+ ...(context.feePayer ? { feePayer: context.feePayer } : {}),
337
+ feePayerPolicy: parameters.feePayerPolicy,
338
+ feeToken: parameters.feeToken,
339
+ onSessionSettlement,
340
+ schedule: settlementSchedule,
341
+ store,
342
+ channel,
343
+ }),
344
+ });
345
+ };
346
+ const method = Method.toServer(Methods.session, {
347
+ canOffer: parameters.canOffer,
348
+ onPaymentSuccess: parameters.onPaymentSuccess,
222
349
  defaults: deriveServerDefaults({
223
350
  amount,
224
351
  currency,
225
352
  decimals,
353
+ machineTokenEnabled,
226
354
  operator,
227
355
  recipient,
228
356
  suggestedDeposit,
229
357
  unitType,
230
358
  }),
359
+ extensions: { serveWebSocket, settleScheduled },
231
360
  transport: deriveTransport(transport),
232
361
  preflight: parameters.bootstrap
233
362
  ? async ({ capturedRequest, credential, expires, input, options, realm, secretKey }) => {
@@ -242,6 +371,7 @@ export function session(p) {
242
371
  defaultRecipient: recipient,
243
372
  expires,
244
373
  getClient,
374
+ matchSnapshotPaymentFields,
245
375
  parameterChainId: parameters.chainId,
246
376
  parameterEscrowContract: parameters.escrowContract,
247
377
  paymentRequest: options,
@@ -259,6 +389,7 @@ export function session(p) {
259
389
  decimals,
260
390
  defaultFeePayer: feePayer,
261
391
  getClient,
392
+ matchSnapshotPaymentFields,
262
393
  parameterChainId: parameters.chainId,
263
394
  parameterEscrowContract: parameters.escrowContract,
264
395
  parameterFeePayer: parameters.feePayer,
@@ -266,60 +397,22 @@ export function session(p) {
266
397
  resolveChannelId: parameters.resolveChannelId,
267
398
  store,
268
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);
269
405
  return {
270
- ...resolvedRequest,
406
+ ...requestWithoutMachineToken,
407
+ feeToken: parameters.feeToken,
408
+ ...(requestedMachineTokenEnabled && machineSessionSupported
409
+ ? { machineTokenEnabled: true }
410
+ : {}),
271
411
  sessionProtocol: Constants.SessionProtocols.v2,
272
412
  };
273
413
  },
274
- async verify({ credential, envelope, request }) {
275
- const { challenge } = credential;
276
- const payload = requireSessionCredentialPayload(credential.payload);
277
- const context = await resolveCredentialVerificationContext({
278
- decimals,
279
- feePayer: configuredFeePayer,
280
- getClient,
281
- minVoucherDelta: parameters.minVoucherDelta,
282
- request,
283
- });
284
- const sessionReceipt = await verifyCredentialPayload({
285
- account,
286
- challenge,
287
- channelStateTtl,
288
- chainId: context.chainId,
289
- client: context.client,
290
- credentialSource: credential.source,
291
- escrow: context.escrow,
292
- expectedOperator: context.methodDetails.operator,
293
- feePayer: context.feePayer,
294
- feePayerPolicy: parameters.feePayerPolicy,
295
- feeToken: parameters.feeToken,
296
- lastOnChainVerified,
297
- minVoucherDelta: context.minVoucherDelta,
298
- onSessionSettlement,
299
- payload,
300
- store,
301
- });
302
- return applyVerifiedHttpAccounting({
303
- capturedRequest: envelope?.capturedRequest,
304
- payloadAction: payload.action,
305
- receipt: sessionReceipt,
306
- getRequestAmount: () => BigInt(context.request.amount ?? challenge.request.amount),
307
- sseEnabled: Boolean(parameters.sse),
308
- markPrepaidReceipt: Transport.markPrepaidSessionTick,
309
- charge: (channelId, requestAmount) => chargeSessionChannel({ store, channelId, amount: requestAmount }),
310
- settleCharged: (channel) => maybeSettleScheduled({
311
- account,
312
- client: context.client,
313
- ...(typeof context.feePayer === 'object' ? { feePayer: context.feePayer } : {}),
314
- feePayerPolicy: parameters.feePayerPolicy,
315
- feeToken: parameters.feeToken,
316
- onSessionSettlement,
317
- schedule: settlementSchedule,
318
- store,
319
- channel,
320
- }),
321
- });
322
- },
414
+ validate: validateCredential,
415
+ broadcast: broadcastCredential,
323
416
  // This hook acts as a gate: when it returns a Response, `withReceipt()`
324
417
  // in Mppx.ts short-circuits and returns that response directly without
325
418
  // invoking the user's route handler. When it returns undefined, the
@@ -338,6 +431,7 @@ export function session(p) {
338
431
  });
339
432
  },
340
433
  });
434
+ return method;
341
435
  }
342
436
  (function (session) {
343
437
  session.serializeSnapshot = serializeSessionSnapshot;