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
@@ -1,4 +1,4 @@
1
- import { type Address } from 'viem';
1
+ import { type Account as ViemAccount, type Address } from 'viem';
2
2
  import * as Method from '../../../Method.js';
3
3
  import * as Account from '../../../viem/Account.js';
4
4
  import * as Client from '../../../viem/Client.js';
@@ -19,9 +19,10 @@ export declare function session(parameters?: session.Parameters): Method.Client<
19
19
  readonly name: "tempo";
20
20
  readonly intent: "session";
21
21
  readonly schema: {
22
- readonly credential: {
23
- readonly payload: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
22
+ credential: {
23
+ payload: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
24
24
  action: import("zod/mini").ZodMiniLiteral<"open">;
25
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
25
26
  authorizedSigner: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
26
27
  channelId: import("zod/mini").ZodMiniString<string>;
27
28
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
@@ -38,26 +39,31 @@ export declare function session(parameters?: session.Parameters): Method.Client<
38
39
  type: import("zod/mini").ZodMiniLiteral<"transaction">;
39
40
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
40
41
  action: import("zod/mini").ZodMiniLiteral<"voucher">;
42
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
41
43
  channelId: import("zod/mini").ZodMiniString<string>;
42
44
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
43
45
  descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<Channel.ChannelDescriptor, Channel.ChannelDescriptor>>;
44
46
  signature: import("zod/mini").ZodMiniString<string>;
45
47
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
46
48
  action: import("zod/mini").ZodMiniLiteral<"close">;
49
+ authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
47
50
  channelId: import("zod/mini").ZodMiniString<string>;
48
51
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
49
52
  descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<Channel.ChannelDescriptor, Channel.ChannelDescriptor>>;
53
+ refundSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
50
54
  signature: import("zod/mini").ZodMiniString<string>;
51
55
  }, import("zod/v4/core").$strip>], "action">;
52
56
  };
53
- readonly request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
57
+ request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
54
58
  amount: import("zod/mini").ZodMiniString<string>;
55
59
  chainId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniNumber<number>>;
56
60
  channelId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
57
61
  currency: import("zod/mini").ZodMiniString<string>;
58
62
  decimals: import("zod/mini").ZodMiniNumber<number>;
59
63
  escrowContract: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
60
- 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>>>;
64
+ feePayer: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniUnion<readonly [import("zod/mini").ZodMiniBoolean<boolean>, import("zod/mini").ZodMiniCustom<ViemAccount, ViemAccount>]>, import("zod/mini").ZodMiniTransform<boolean, boolean | ViemAccount>>>;
65
+ feeToken: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
66
+ machineTokenEnabled: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniBoolean<boolean>>;
61
67
  minVoucherDelta: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
62
68
  operator: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
63
69
  recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
@@ -69,46 +75,50 @@ export declare function session(parameters?: session.Parameters): Method.Client<
69
75
  suggestedDeposit: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
70
76
  unitType: import("zod/mini").ZodMiniString<string>;
71
77
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
78
+ currency: string;
79
+ recipient?: string | undefined;
80
+ unitType: string;
81
+ amount: string;
82
+ suggestedDeposit?: string | undefined;
72
83
  methodDetails: {
73
- sessionSnapshot?: import("./Runtime.js").SessionSnapshot | undefined;
74
- sessionProtocol?: "v1" | "v2" | undefined;
75
- operator?: string | undefined;
76
- feePayer?: boolean | undefined;
77
- chainId?: number | undefined;
78
- minVoucherDelta?: string | undefined;
79
- channelId?: string | undefined;
80
84
  escrowContract: string | undefined;
85
+ channelId?: string | undefined;
86
+ minVoucherDelta?: string | undefined;
87
+ chainId?: number | undefined;
88
+ feePayer?: boolean | undefined;
89
+ feeToken?: string | undefined;
90
+ machineTokenEnabled?: boolean | undefined;
91
+ operator?: string | undefined;
92
+ sessionProtocol?: "v1" | "v2" | undefined;
93
+ sessionSnapshot?: import("./Runtime.js").SessionSnapshot | undefined;
81
94
  };
82
- suggestedDeposit?: string | undefined;
83
- amount: string;
84
- currency: string;
85
- unitType: string;
86
- recipient?: string | undefined;
87
95
  }, {
88
96
  amount: string;
89
- currency: string;
90
- decimals: number;
91
- unitType: string;
92
97
  chainId?: number | undefined;
93
98
  channelId?: string | undefined;
99
+ currency: string;
100
+ decimals: number;
94
101
  escrowContract?: string | undefined;
95
102
  feePayer?: boolean | undefined;
103
+ feeToken?: string | undefined;
104
+ machineTokenEnabled?: boolean | undefined;
96
105
  minVoucherDelta?: string | undefined;
97
106
  operator?: string | undefined;
98
107
  recipient?: string | undefined;
99
108
  sessionProtocol?: "v1" | "v2" | undefined;
100
109
  sessionSnapshot?: import("./Runtime.js").SessionSnapshot | undefined;
101
110
  suggestedDeposit?: string | undefined;
111
+ unitType: string;
102
112
  }>>;
103
113
  };
104
114
  }, import("zod/mini").ZodMiniObject<{
105
115
  account: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<`0x${string}` | Account.Account | undefined, `0x${string}` | Account.Account | undefined>>;
106
116
  autoSwap: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<AutoSwap.resolve.Value, AutoSwap.resolve.Value>>;
107
117
  action: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniEnum<{
118
+ close: "close";
108
119
  open: "open";
109
120
  topUp: "topUp";
110
121
  voucher: "voucher";
111
- close: "close";
112
122
  }>>;
113
123
  channelId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<`0x${string}`, `0x${string}`>>;
114
124
  cumulativeAmount: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
@@ -124,13 +134,15 @@ export declare namespace session {
124
134
  type ResolveAccount = ResolveAccount_;
125
135
  type ResolveAccountInfo = ResolveAccountInfo_;
126
136
  type Parameters = Account.getResolver.Parameters & Client.getResolver.Parameters & {
137
+ /** Accept a noncanonical escrow contract advertised by the server. @default false */
138
+ allowCustomEscrow?: boolean | undefined;
127
139
  /** Automatically acquire the session currency from fallback stablecoins before open/top-up. */
128
140
  autoSwap?: AutoSwap.resolve.Value | undefined;
129
141
  /** Pluggable persistence for reusable channels. Defaults to an in-memory store. */
130
142
  channelStore?: ChannelStore | undefined;
131
143
  /** Token decimals for parsing human-readable amounts (default: 6). */
132
144
  decimals?: number | undefined;
133
- /** TIP20EscrowChannel address override. */
145
+ /** Exact TIP20EscrowChannel address pin. Takes precedence over `allowCustomEscrow`. */
134
146
  escrow?: Address | undefined;
135
147
  /** Maximum channel deposit in human-readable units. Caps server-suggested opens and automatic top-ups. */
136
148
  maxDeposit?: string | undefined;
@@ -1,4 +1,4 @@
1
- import { parseUnits } from 'viem';
1
+ import { isAddressEqual, parseUnits } from 'viem';
2
2
  import { tempo as tempo_chain } from 'viem/chains';
3
3
  import * as MethodChallenge from '../../../client/internal/MethodChallenge.js';
4
4
  import * as MethodResponse from '../../../client/internal/MethodResponse.js';
@@ -9,13 +9,15 @@ import * as Account from '../../../viem/Account.js';
9
9
  import * as Client from '../../../viem/Client.js';
10
10
  import * as AutoSwap from '../../internal/auto-swap.js';
11
11
  import * as defaults from '../../internal/defaults.js';
12
+ import * as MachineTokenSession from '../../internal/machine-token-session.js';
12
13
  import * as Methods from '../../Methods.js';
14
+ import * as Chain from '../precompile/Chain.js';
13
15
  import * as Channel from '../precompile/Channel.js';
14
- import { deserializeSessionReceipt, isEventStream, readSessionChallengeAmount, requireSessionCredentialContext, } from '../precompile/Protocol.js';
15
- import { serializeCredential } from './ChannelOps.js';
16
- import { createChannelStore } from './ChannelStore.js';
17
- import { canSignDescriptor, executeCredentialPlan, hasSessionAction, planCredential, resolveChallengeContext, resolveRecoverContext, sessionContextSchema, } from './CredentialState.js';
18
- import { assertWithinMaxDeposit, resolveAutomaticTopUp } from './Runtime.js';
16
+ import { deserializeSessionReceipt, isEventStream, readSessionChallengeAmount, requireSessionCredentialContext, tip20ChannelEscrow, } from '../precompile/Protocol.js';
17
+ import { createVoucherPayload, serializeCredential } from './ChannelOps.js';
18
+ import { createChannelStore, entryKey } from './ChannelStore.js';
19
+ import { canSignDescriptor, executeCredentialPlan, hasSessionAction, planCredential, requireContextAmount, resolveChallengeContext, resolveRecoverContext, sessionContextSchema, } from './CredentialState.js';
20
+ import { assertWithinMaxDeposit, resolveAutomaticTopUp, resolveOpeningDeposit } from './Runtime.js';
19
21
  import { getSessionSnapshot, handleSseNeedVoucher, isTip1034SessionChallenge, postTopUp, wrapSseResponse, } from './Transports.js';
20
22
  export { sessionContextSchema } from './CredentialState.js';
21
23
  /** Tail promise for each payment scope, used to serialize automatic opens per store. */
@@ -69,6 +71,42 @@ function acknowledgesOpen(outcome, challenge, opened) {
69
71
  return matchesOpen(opened, getSessionSnapshot(candidate));
70
72
  }) ?? false);
71
73
  }
74
+ function applyMachineTokenRoute(resolved, route) {
75
+ const snapshotDescriptor = resolved.snapshot?.descriptor;
76
+ const snapshotMatches = snapshotDescriptor &&
77
+ isAddressEqual(snapshotDescriptor.payee, route.payee) &&
78
+ isAddressEqual(snapshotDescriptor.operator, route.operator) &&
79
+ isAddressEqual(snapshotDescriptor.token, route.token);
80
+ return {
81
+ ...resolved,
82
+ operator: route.operator,
83
+ payee: route.payee,
84
+ paymentScope: { payee: resolved.payee, token: resolved.token },
85
+ snapshot: snapshotMatches ? resolved.snapshot : undefined,
86
+ token: route.token,
87
+ };
88
+ }
89
+ async function resolveMachineContext(resolved, context) {
90
+ const descriptor = context?.descriptor ?? resolved.snapshot?.descriptor;
91
+ if (!descriptor)
92
+ return undefined;
93
+ if (!MachineTokenSession.matchDeployment({ chainId: resolved.chainId, descriptor }))
94
+ return undefined;
95
+ const closing = context?.action === 'close';
96
+ if ((!closing && !MachineTokenSession.isEnabledChallenge(resolved.challenge)) ||
97
+ !isAddressEqual(resolved.escrow, tip20ChannelEscrow))
98
+ return undefined;
99
+ const route = await MachineTokenSession.matchRoute(resolved.client, {
100
+ active: !closing,
101
+ chainId: resolved.chainId,
102
+ descriptor,
103
+ merchant: resolved.payee,
104
+ targetToken: resolved.token,
105
+ });
106
+ if (!route)
107
+ throw new Error('Machine-token channel is not bound to this merchant session challenge.');
108
+ return applyMachineTokenRoute(resolved, route);
109
+ }
72
110
  /**
73
111
  * Creates the low-level TIP-1034 session payment method for use with `Mppx.create()`.
74
112
  *
@@ -77,7 +115,7 @@ function acknowledgesOpen(outcome, challenge, opened) {
77
115
  * channel descriptor).
78
116
  */
79
117
  export function session(parameters = {}) {
80
- const { account, autoSwap: autoSwapParameter, channelStore, decimals = defaults.decimals, escrow: escrowOverride, getClient: getClientParameter, maxDeposit: maxDepositParameter, topUpAmount: topUpAmountParameter, onChannelUpdate, resolveAccount, } = parameters;
118
+ const { account, allowCustomEscrow = false, autoSwap: autoSwapParameter, channelStore, decimals = defaults.decimals, escrow: escrowOverride, getClient: getClientParameter, maxDeposit: maxDepositParameter, topUpAmount: topUpAmountParameter, onChannelUpdate, resolveAccount, } = parameters;
81
119
  const getClient = Client.getResolver({
82
120
  chain: tempo_chain,
83
121
  getClient: getClientParameter,
@@ -87,7 +125,15 @@ export function session(parameters = {}) {
87
125
  const maxDeposit = maxDepositParameter !== undefined ? parseUnits(maxDepositParameter, decimals) : undefined;
88
126
  const topUpAmount = topUpAmountParameter !== undefined ? parseUnits(topUpAmountParameter, decimals) : undefined;
89
127
  const store = channelStore ?? createChannelStore();
90
- const sink = { store, notifyUpdate: (entry) => onChannelUpdate?.(entry) };
128
+ const commitEntry = async (entry) => {
129
+ if (!entry)
130
+ return;
131
+ if (entry.opened)
132
+ await store.set(entry);
133
+ else
134
+ await store.delete(entryKey(entry));
135
+ onChannelUpdate?.(entry);
136
+ };
91
137
  const resolveCredentialAccount = async (resolved, context, entry) => {
92
138
  const defaultAccount = getAccount(resolved.client, context);
93
139
  const descriptor = context?.action
@@ -103,60 +149,132 @@ export function session(parameters = {}) {
103
149
  },
104
150
  })) ?? defaultAccount);
105
151
  };
106
- const resolveCredentialPlan = async (resolved, context, entry) => planCredential({
107
- account: await resolveCredentialAccount(resolved, context, entry),
108
- entry,
109
- context,
110
- decimals,
111
- maxDeposit,
112
- resolved,
152
+ const resolveContext = (challenge) => resolveChallengeContext({
153
+ allowCustomEscrow,
154
+ challenge,
155
+ escrowOverride,
156
+ getClient,
113
157
  });
158
+ /** Selects one rail for this channel lifecycle before any credential is signed. */
159
+ const resolveRail = async (direct, context) => {
160
+ let account;
161
+ const descriptor = context?.descriptor ?? direct.snapshot?.descriptor;
162
+ if (descriptor || hasSessionAction(context)) {
163
+ const machine = descriptor ? await resolveMachineContext(direct, context) : undefined;
164
+ const resolved = machine ?? direct;
165
+ return {
166
+ account,
167
+ entry: await store.get(resolved.key),
168
+ machine: machine !== undefined,
169
+ resolved,
170
+ };
171
+ }
172
+ const directEntry = await store.get(direct.key);
173
+ if (directEntry?.opened) {
174
+ if (!MachineTokenSession.matchDeployment({
175
+ chainId: direct.chainId,
176
+ descriptor: directEntry.descriptor,
177
+ }))
178
+ return { account, entry: directEntry, machine: false, resolved: direct };
179
+ const machine = await resolveMachineContext(direct, { descriptor: directEntry.descriptor });
180
+ if (!machine)
181
+ throw new Error('Machine-token channel is not bound to this merchant session challenge.');
182
+ return { account, entry: directEntry, machine: true, resolved: machine };
183
+ }
184
+ if (!MachineTokenSession.isEnabledChallenge(direct.challenge) ||
185
+ !isAddressEqual(direct.escrow, tip20ChannelEscrow))
186
+ return { account, entry: undefined, machine: false, resolved: direct };
187
+ const route = await MachineTokenSession.resolveRoute(direct.client, {
188
+ chainId: direct.chainId,
189
+ merchant: direct.payee,
190
+ targetToken: direct.token,
191
+ }).catch(() => undefined);
192
+ if (!route)
193
+ return { account, entry: undefined, machine: false, resolved: direct };
194
+ const machine = applyMachineTokenRoute(direct, route);
195
+ account = await resolveCredentialAccount(machine, context, undefined);
196
+ const openingDeposit = resolveOpeningDeposit({
197
+ contextDepositRaw: context?.depositRaw,
198
+ maxDeposit,
199
+ requestAmount: direct.amount,
200
+ suggestedDepositRaw: direct.suggestedDepositRaw,
201
+ });
202
+ const funded = await MachineTokenSession.hasSufficientBalance(machine.client, {
203
+ account: account.address,
204
+ amount: openingDeposit,
205
+ token: machine.token,
206
+ });
207
+ return funded
208
+ ? { account, entry: undefined, machine: true, resolved: machine }
209
+ : { account, entry: undefined, machine: false, resolved: direct };
210
+ };
114
211
  const method = Method.toClient(Methods.session, {
115
212
  canHandleChallenge: ({ challenge }) => isTip1034SessionChallenge(challenge),
116
213
  context: sessionContextSchema,
117
214
  async createCredential(parameters) {
118
215
  const { challenge, context } = parameters;
119
- const resolved = await resolveChallengeContext({
120
- challenge,
121
- escrowOverride,
122
- getClient,
123
- });
124
216
  const attempt = MethodResponse.getAttempt(parameters);
125
217
  let release = () => { };
126
218
  try {
127
- let entry = await store.get(resolved.key);
128
- let plan = await resolveCredentialPlan(resolved, context, entry);
129
- if (attempt && plan.type === 'open') {
130
- release = await lockChannel(store, resolved.key);
131
- const nextEntry = await store.get(resolved.key);
132
- if (nextEntry?.channelId !== entry?.channelId) {
133
- entry = nextEntry;
134
- if (entry?.opened) {
135
- await attempt.prepare();
136
- entry = await store.get(resolved.key);
137
- }
138
- plan = await resolveCredentialPlan(resolved, context, entry);
139
- }
219
+ const direct = await resolveContext(challenge);
220
+ if (!hasSessionAction(context) && context?.descriptor === undefined) {
221
+ release = await lockChannel(store, direct.key);
222
+ if (attempt && (await store.get(direct.key))?.opened)
223
+ await attempt.prepare();
140
224
  }
141
- let pendingOpen;
142
- // Defer opens only when low-level Fetch owns the response lifecycle.
143
- // SessionManager unregisters this hook and keeps its existing transaction boundary.
144
- const credentialSink = attempt && plan.type === 'open'
145
- ? {
146
- store: {
147
- get: (key) => store.get(key),
148
- async set(next) {
149
- pendingOpen = next;
150
- },
151
- delete: (key) => store.delete(key),
152
- },
153
- notifyUpdate() { },
225
+ const { account, entry, machine, resolved } = await resolveRail(direct, context);
226
+ const credentialAccount = account ?? (await resolveCredentialAccount(resolved, context, entry));
227
+ const plan = planCredential({
228
+ account: credentialAccount,
229
+ entry,
230
+ context,
231
+ decimals,
232
+ maxDeposit,
233
+ resolved,
234
+ });
235
+ if (machine && plan.type === 'manual' && plan.context.action === 'topUp') {
236
+ const additionalDeposit = requireContextAmount(plan.context, plan.decimals, 'additionalDeposit', 'topUp');
237
+ if (!(await MachineTokenSession.hasSufficientBalance(plan.resolved.client, {
238
+ account: plan.account.address,
239
+ amount: additionalDeposit,
240
+ token: plan.resolved.token,
241
+ })))
242
+ throw new Error('Insufficient machine-token balance for session top-up.');
243
+ }
244
+ const feeToken = MachineTokenSession.resolveFeeToken({
245
+ chainId: resolved.chainId,
246
+ override: resolved.feeToken,
247
+ paymentToken: resolved.token,
248
+ });
249
+ const result = await executeCredentialPlan(plan, AutoSwap.resolve(context?.autoSwap ?? autoSwapParameter, AutoSwap.defaultCurrencies), feeToken);
250
+ let { payload } = result;
251
+ if (machine && payload.action !== 'topUp') {
252
+ if (payload.action === 'close') {
253
+ const state = await Chain.getChannelState(plan.resolved.client, payload.channelId, plan.resolved.escrow);
254
+ if (state.deposit === 0n)
255
+ throw new Error('Cannot authorize a machine-token refund for an empty channel.');
256
+ // The refund authorization covers the full on-chain deposit, while
257
+ // the close voucher remains the exact amount the merchant captures.
258
+ const depositSignature = BigInt(payload.cumulativeAmount) === state.deposit
259
+ ? payload.signature
260
+ : (await createVoucherPayload(plan.resolved.client, plan.account, payload.descriptor, state.deposit, plan.resolved.chainId, plan.resolved.escrow)).signature;
261
+ payload = { ...payload, refundSignature: depositSignature };
154
262
  }
155
- : sink;
156
- const payload = await executeCredentialPlan(plan, credentialSink, AutoSwap.resolve(context?.autoSwap ?? autoSwapParameter, AutoSwap.defaultCurrencies));
263
+ const authorizationSignature = await MachineTokenSession.signAuthorization(plan.resolved.client, plan.account, {
264
+ authorization: {
265
+ channelId: payload.channelId,
266
+ cumulativeAmount: BigInt(payload.cumulativeAmount),
267
+ },
268
+ chainId: plan.resolved.chainId,
269
+ router: plan.resolved.operator,
270
+ });
271
+ payload = { ...payload, authorizationSignature };
272
+ }
273
+ if (!(attempt && plan.type === 'open'))
274
+ await commitEntry(result.entry);
157
275
  const credential = await serializeCredential(challenge, payload, resolved.chainId, plan.account);
158
- if (attempt && pendingOpen) {
159
- const opened = pendingOpen;
276
+ if (attempt && plan.type === 'open' && result.entry) {
277
+ const opened = result.entry;
160
278
  attempt.settle = async (outcome) => {
161
279
  const accepted = outcome.status === 'accepted' || acknowledgesOpen(outcome, challenge, opened);
162
280
  if (!accepted && outcome.status === 'pending')
@@ -166,8 +284,7 @@ export function session(parameters = {}) {
166
284
  const current = await store.get(resolved.key);
167
285
  if (!current?.opened ||
168
286
  current.channelId.toLowerCase() !== opened.channelId.toLowerCase()) {
169
- await store.set(opened);
170
- sink.notifyUpdate(opened);
287
+ await commitEntry(opened);
171
288
  }
172
289
  }
173
290
  return true;
@@ -211,9 +328,14 @@ export function session(parameters = {}) {
211
328
  const nextDeposit = knownDeposit + additionalDeposit;
212
329
  if (nextDeposit === channel.deposit)
213
330
  return;
214
- const updated = { ...channel, deposit: nextDeposit };
331
+ const current = await store.get(entryKey(channel));
332
+ const latest = current?.channelId.toLowerCase() === channel.channelId.toLowerCase() ? current : channel;
333
+ const updated = {
334
+ ...latest,
335
+ deposit: latest.deposit > nextDeposit ? latest.deposit : nextDeposit,
336
+ };
215
337
  await store.set(updated);
216
- sink.notifyUpdate(updated);
338
+ onChannelUpdate?.(updated);
217
339
  };
218
340
  MethodChallenge.register(method, async ({ challenge, context, fetch, input }) => {
219
341
  if (!isTip1034SessionChallenge(challenge))
@@ -221,8 +343,11 @@ export function session(parameters = {}) {
221
343
  const sessionContext = context === undefined ? undefined : sessionContextSchema.parse(context);
222
344
  if (hasSessionAction(sessionContext))
223
345
  return;
224
- const resolved = await resolveChallengeContext({ challenge, escrowOverride, getClient });
225
- const channel = await store.get(resolved.key);
346
+ const direct = await resolveContext(challenge);
347
+ const { entry: channel, resolved } = await resolveRail(direct, sessionContext).catch(() => ({
348
+ entry: undefined,
349
+ resolved: direct,
350
+ }));
226
351
  if (!channel?.opened)
227
352
  return;
228
353
  const snapshot = resolved.snapshot?.channelId.toLowerCase() === channel.channelId.toLowerCase()
@@ -250,19 +375,17 @@ export function session(parameters = {}) {
250
375
  return MethodResponse.register(method, async ({ challenge, credential, fetch, headers, input, refetch, response, signal }) => {
251
376
  if (!isTip1034SessionChallenge(challenge))
252
377
  return response;
378
+ const credentialContext = requireSessionCredentialContext(Credential.deserialize(credential).payload);
253
379
  if (!isEventStream(response)) {
254
- const credentialContext = requireSessionCredentialContext(Credential.deserialize(credential).payload);
255
380
  if (credentialContext.action === 'open' &&
256
381
  headers.get('accept')?.toLowerCase().includes('text/event-stream'))
257
382
  return (await refetch?.()) ?? response;
258
383
  return response;
259
384
  }
260
- const channelKey = (await resolveChallengeContext({
261
- challenge,
262
- escrowOverride,
263
- getClient,
264
- })).key;
265
- let channel = await store.get(channelKey);
385
+ const resolvedContext = await resolveContext(challenge)
386
+ .then(async (direct) => (await resolveMachineContext(direct, credentialContext)) ?? direct)
387
+ .catch(() => undefined);
388
+ const channel = resolvedContext ? await store.get(resolvedContext.key) : undefined;
266
389
  const driver = {
267
390
  assertVoucherWithinLocalLimit: (cumulativeAmount) => assertWithinMaxDeposit(cumulativeAmount, maxDeposit),
268
391
  createSessionCredential: (challenge, context) => method.createCredential({ challenge, context }),
@@ -64,6 +64,8 @@ export declare namespace sessionManager {
64
64
  const serializeSnapshot: typeof serializeSessionSnapshot;
65
65
  const deserializeSnapshot: typeof deserializeSessionSnapshot;
66
66
  type Parameters = Account.getResolver.Parameters & Client.getResolver.Parameters & {
67
+ /** Accept a noncanonical escrow contract advertised by the server. @default false */
68
+ allowCustomEscrow?: boolean | undefined;
67
69
  /** Automatically acquire the session currency from fallback stablecoins before open/top-up. */
68
70
  autoSwap?: sessionPlugin.Parameters['autoSwap'];
69
71
  /** Enables same-route HEAD bootstrap from a server session snapshot before opening a new channel. */
@@ -72,7 +74,7 @@ export declare namespace sessionManager {
72
74
  client?: import('viem').Client | undefined;
73
75
  /** Token decimals used to convert `maxDeposit` to raw units. Defaults to `6`. */
74
76
  decimals?: number | undefined;
75
- /** TIP20EscrowChannel precompile address override. */
77
+ /** Exact TIP20EscrowChannel address pin. Takes precedence over `allowCustomEscrow`. */
76
78
  escrow?: Address | undefined;
77
79
  /** Fetch implementation used for HTTP probes, management posts, and paid retries. */
78
80
  fetch?: typeof globalThis.fetch | undefined;
@@ -9,6 +9,7 @@ import * as Account from '../../../viem/Account.js';
9
9
  import * as Client from '../../../viem/Client.js';
10
10
  import { charge as chargePlugin } from '../../client/Charge.js';
11
11
  import * as defaults from '../../internal/defaults.js';
12
+ import { hasRewrittenScope, isMachineChannel } from '../client/ChannelOps.js';
12
13
  import { createChannelStore, entryKey } from '../client/ChannelStore.js';
13
14
  import { hydrateSessionSnapshot } from '../client/CredentialState.js';
14
15
  import { session as sessionPlugin } from '../client/Session.js';
@@ -83,6 +84,7 @@ function resolveSessionManagerConfig(parameters) {
83
84
  * `channelStore` can persist reusable channels between manager instances.
84
85
  */
85
86
  export function sessionManager(parameters) {
87
+ const allowCustomEscrow = parameters.allowCustomEscrow ?? false;
86
88
  const config = resolveSessionManagerConfig(parameters);
87
89
  const getClient = Client.getResolver({
88
90
  chain: tempo_chain,
@@ -191,6 +193,7 @@ export function sessionManager(parameters) {
191
193
  }
192
194
  const method = sessionPlugin({
193
195
  account: parameters.account,
196
+ allowCustomEscrow,
194
197
  autoSwap: parameters.autoSwap,
195
198
  getClient: parameters.client ? () => parameters.client : parameters.getClient,
196
199
  resolveAccount: parameters.resolveAccount,
@@ -271,7 +274,7 @@ export function sessionManager(parameters) {
271
274
  });
272
275
  }
273
276
  /** Persists a server snapshot into the channel store and returns the entry. */
274
- async function storeSnapshotHeader(response) {
277
+ async function storeSnapshotHeader(response, paymentScope) {
275
278
  const header = response.headers.get(Constants.Headers.paymentSessionSnapshot);
276
279
  if (!header)
277
280
  return undefined;
@@ -286,11 +289,14 @@ export function sessionManager(parameters) {
286
289
  kind: 'authorizePaymentChannel',
287
290
  },
288
291
  })) ?? defaultAccount;
289
- const { entry, spent } = await hydrateSessionSnapshot({ account, client, snapshot });
292
+ const hydrated = await hydrateSessionSnapshot({ account, client, snapshot });
293
+ const entry = paymentScope && hasRewrittenScope({ descriptor: hydrated.entry.descriptor, paymentScope })
294
+ ? { ...hydrated.entry, paymentScope }
295
+ : hydrated.entry;
290
296
  assertVoucherWithinLocalLimit(entry.cumulativeAmount);
291
297
  await Promise.resolve(store.set(entry)).catch(() => undefined);
292
298
  runtime.channel = entry;
293
- runtime.spent = spent;
299
+ runtime.spent = hydrated.spent;
294
300
  return entry;
295
301
  }
296
302
  async function bootstrapSession(input, init) {
@@ -331,7 +337,10 @@ export function sessionManager(parameters) {
331
337
  },
332
338
  });
333
339
  if (response.ok)
334
- return await storeSnapshotHeader(response);
340
+ return await storeSnapshotHeader(response, {
341
+ payee: challenge.request.recipient,
342
+ token: challenge.request.currency,
343
+ });
335
344
  return undefined;
336
345
  }
337
346
  catch {
@@ -372,8 +381,9 @@ export function sessionManager(parameters) {
372
381
  throw new Error('close snapshot payment scope does not match local session');
373
382
  }
374
383
  const acceptedCumulative = BigInt(snapshot.acceptedCumulative);
384
+ const settled = BigInt(snapshot.settled);
375
385
  const snapshotSpent = BigInt(snapshot.spent);
376
- if (acceptedCumulative < 0n || snapshotSpent < 0n) {
386
+ if (acceptedCumulative < 0n || settled < 0n || snapshotSpent < 0n) {
377
387
  throw new Error('close snapshot amounts must not be negative');
378
388
  }
379
389
  if (snapshotSpent > acceptedCumulative) {
@@ -382,7 +392,7 @@ export function sessionManager(parameters) {
382
392
  if (acceptedCumulative > channel.cumulativeAmount) {
383
393
  throw new Error('close snapshot accepted cumulative exceeds local voucher state');
384
394
  }
385
- return { acceptedCumulative, spent: snapshotSpent };
395
+ return { acceptedCumulative, settled, spent: snapshotSpent };
386
396
  }
387
397
  function applyCloseSnapshot(target, challenge) {
388
398
  const snapshot = validateCloseSnapshot(target.channel, challenge);
@@ -394,11 +404,20 @@ export function sessionManager(parameters) {
394
404
  }
395
405
  if (spent > runtime.spent)
396
406
  runtime.spent = spent;
407
+ return snapshot;
397
408
  }
398
409
  function getValidatedFallbackCloseAmount(target, challenge = target.challenge, applySnapshot = false) {
399
- if (applySnapshot)
400
- applyCloseSnapshot(target, challenge);
401
- const closeAmount = getFallbackCloseAmount(challenge, target.channelId);
410
+ const snapshot = applySnapshot
411
+ ? applyCloseSnapshot(target, challenge)
412
+ : validateCloseSnapshot(target.channel, challenge);
413
+ const machineSession = isMachineChannel(target.channel);
414
+ const closeAmount = snapshot
415
+ ? machineSession
416
+ ? snapshot.spent > snapshot.settled
417
+ ? snapshot.spent
418
+ : snapshot.settled
419
+ : snapshot.acceptedCumulative
420
+ : getFallbackCloseAmount(challenge, target.channelId);
402
421
  if (closeAmount > target.channel.cumulativeAmount) {
403
422
  throw new Error('fallback close amount exceeds local voucher state');
404
423
  }
@@ -526,11 +545,10 @@ export function sessionManager(parameters) {
526
545
  trackCreates: false,
527
546
  };
528
547
  channelUse = use;
529
- // Cold starts resume from `channelStore` after the 402 reveals the scope.
530
- const liveHint = runtime.channel?.opened ? runtime.channel.channelId : undefined;
531
548
  try {
532
549
  await bootstrapSession(input, init);
533
550
  use.trackCreates = true;
551
+ const liveHint = runtime.channel?.opened ? runtime.channel.channelId : undefined;
534
552
  let effectiveInit = requestInitWithSessionHint(input, init, liveHint);
535
553
  // Stored channels may be stale, so retry once after evicting the resumed entry.
536
554
  let canRetryResumed = !previous.channel?.opened;
@@ -538,6 +556,11 @@ export function sessionManager(parameters) {
538
556
  const resumed = use.resumed;
539
557
  if (!canRetryResumed || !resumed)
540
558
  return false;
559
+ // A machine-token entry holds the only local copy of its channel
560
+ // descriptor; evicting it would strand the deposit, so fail loudly
561
+ // instead of retrying without it.
562
+ if (resumed.opened && (isMachineChannel(resumed) || hasRewrittenScope(resumed)))
563
+ return false;
541
564
  canRetryResumed = false;
542
565
  await ignoreChannel(resumed);
543
566
  effectiveInit = requestInitWithSessionHint(input, init, undefined);
@@ -598,6 +621,7 @@ export function sessionManager(parameters) {
598
621
  const receipt = await closeHttpSession({
599
622
  createSessionCredential,
600
623
  fetch: config.fetch,
624
+ getMinimumSpent: () => runtime.spent,
601
625
  lastUrl: runtime.lastUrl,
602
626
  resolveSignedCloseAmount: (challenge) => getValidatedFallbackCloseAmount(target, challenge, true),
603
627
  signedCloseAmount: getValidatedFallbackCloseAmount(target),
@@ -246,6 +246,8 @@ export type CloseHttpSessionParameters = {
246
246
  fetch: typeof globalThis.fetch;
247
247
  /** Last paid resource URL; used as the management endpoint base. */
248
248
  lastUrl: RequestInfo | URL | null;
249
+ /** Returns the latest cumulative spend already confirmed by the client. */
250
+ getMinimumSpent?: (() => bigint) | undefined;
249
251
  /** Resolves the close amount again when the server refreshes the challenge. */
250
252
  resolveSignedCloseAmount?: ((challenge: TempoSessionChallenge) => string) | undefined;
251
253
  /** Final cumulative amount the client is willing to sign. */