mppx 0.8.17 → 0.8.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +21 -4
  4. package/dist/bin.js +3 -3
  5. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  6. package/dist/cli/cli.js +253 -1505
  7. package/dist/cli/plugins/index.js +19 -5
  8. package/dist/cli/plugins/tempo.js +7 -3
  9. package/dist/cli/sessions/Manager.js +7 -4
  10. package/dist/cli/sessions/request.d.ts +2 -0
  11. package/dist/cli/sessions/request.js +18 -0
  12. package/dist/cli/sessions/store.js +28 -14
  13. package/dist/discovery/Discovery.js +2 -1
  14. package/dist/evm/client/Charge.js +8 -0
  15. package/dist/server/core.d.ts +9 -0
  16. package/dist/server/core.js +9 -0
  17. package/dist/stripe/server/Charge.js +2 -4
  18. package/dist/stripe/server/Methods.d.ts +2 -2
  19. package/dist/stripe/server/Methods.js +17 -11
  20. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  21. package/dist/stripe/server/internal/html.gen.js +1 -1
  22. package/dist/stripe/server/spt.d.ts +8 -0
  23. package/dist/stripe/server/spt.js +8 -0
  24. package/dist/tempo/Methods.d.ts +13 -0
  25. package/dist/tempo/Methods.js +14 -3
  26. package/dist/tempo/client/Charge.d.ts +3 -0
  27. package/dist/tempo/client/Charge.js +31 -9
  28. package/dist/tempo/client/Methods.d.ts +13 -0
  29. package/dist/tempo/internal/defaults.d.ts +11 -0
  30. package/dist/tempo/internal/defaults.js +11 -0
  31. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  32. package/dist/tempo/internal/machine-token-charge.js +113 -0
  33. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  34. package/dist/tempo/internal/machine-token-session.js +173 -0
  35. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  36. package/dist/tempo/internal/signature-envelope.js +28 -0
  37. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  38. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  39. package/dist/tempo/legacy/client/Session.d.ts +13 -1
  40. package/dist/tempo/legacy/client/Session.js +3 -3
  41. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  42. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  43. package/dist/tempo/server/Charge.d.ts +3 -0
  44. package/dist/tempo/server/Charge.js +58 -17
  45. package/dist/tempo/server/Methods.d.ts +21 -4
  46. package/dist/tempo/server/Methods.js +8 -4
  47. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  48. package/dist/tempo/server/internal/html.gen.js +1 -1
  49. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  50. package/dist/tempo/session/client/ChannelOps.js +35 -6
  51. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  52. package/dist/tempo/session/client/ChannelStore.js +2 -2
  53. package/dist/tempo/session/client/CredentialState.d.ts +17 -2
  54. package/dist/tempo/session/client/CredentialState.js +77 -76
  55. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  56. package/dist/tempo/session/client/Runtime.js +21 -5
  57. package/dist/tempo/session/client/Session.d.ts +15 -3
  58. package/dist/tempo/session/client/Session.js +186 -63
  59. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  60. package/dist/tempo/session/client/SessionManager.js +35 -11
  61. package/dist/tempo/session/client/Transports.d.ts +2 -0
  62. package/dist/tempo/session/client/Transports.js +12 -2
  63. package/dist/tempo/session/precompile/Chain.d.ts +10 -2
  64. package/dist/tempo/session/precompile/Chain.js +51 -10
  65. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  66. package/dist/tempo/session/precompile/Protocol.js +7 -0
  67. package/dist/tempo/session/precompile/Voucher.d.ts +3 -1
  68. package/dist/tempo/session/precompile/Voucher.js +6 -12
  69. package/dist/tempo/session/server/ChannelStore.d.ts +6 -0
  70. package/dist/tempo/session/server/ChannelStore.js +11 -4
  71. package/dist/tempo/session/server/CredentialVerification.d.ts +11 -9
  72. package/dist/tempo/session/server/CredentialVerification.js +185 -109
  73. package/dist/tempo/session/server/MeteredStream.d.ts +1 -1
  74. package/dist/tempo/session/server/MeteredStream.js +5 -4
  75. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  76. package/dist/tempo/session/server/RequestState.js +61 -15
  77. package/dist/tempo/session/server/Session.d.ts +14 -2
  78. package/dist/tempo/session/server/Session.js +37 -6
  79. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  80. package/dist/tempo/session/server/Settlement.js +53 -21
  81. package/dist/x402/client/Exact.d.ts +8 -0
  82. package/dist/x402/client/Exact.js +40 -10
  83. package/dist/x402/server/EvmCharge.d.ts +22 -0
  84. package/dist/x402/server/EvmCharge.js +23 -1
  85. package/package.json +15 -37
  86. package/dist/BodyDigest.d.ts.map +0 -1
  87. package/dist/BodyDigest.js.map +0 -1
  88. package/dist/Challenge.d.ts.map +0 -1
  89. package/dist/Challenge.js.map +0 -1
  90. package/dist/Constants.d.ts.map +0 -1
  91. package/dist/Constants.js.map +0 -1
  92. package/dist/Credential.d.ts.map +0 -1
  93. package/dist/Credential.js.map +0 -1
  94. package/dist/Errors.d.ts.map +0 -1
  95. package/dist/Errors.js.map +0 -1
  96. package/dist/Expires.d.ts.map +0 -1
  97. package/dist/Expires.js.map +0 -1
  98. package/dist/Html.d.ts.map +0 -1
  99. package/dist/Html.js.map +0 -1
  100. package/dist/Mcp.d.ts.map +0 -1
  101. package/dist/Mcp.js.map +0 -1
  102. package/dist/Method.d.ts.map +0 -1
  103. package/dist/Method.js.map +0 -1
  104. package/dist/PaymentRequest.d.ts.map +0 -1
  105. package/dist/PaymentRequest.js.map +0 -1
  106. package/dist/Receipt.d.ts.map +0 -1
  107. package/dist/Receipt.js.map +0 -1
  108. package/dist/Store.d.ts.map +0 -1
  109. package/dist/Store.js.map +0 -1
  110. package/dist/attestation/Client.d.ts.map +0 -1
  111. package/dist/attestation/Client.js.map +0 -1
  112. package/dist/attestation/Constants.d.ts.map +0 -1
  113. package/dist/attestation/Constants.js.map +0 -1
  114. package/dist/attestation/Server.d.ts.map +0 -1
  115. package/dist/attestation/Server.js.map +0 -1
  116. package/dist/attestation/Types.d.ts.map +0 -1
  117. package/dist/attestation/Types.js.map +0 -1
  118. package/dist/attestation/index.d.ts.map +0 -1
  119. package/dist/attestation/index.js.map +0 -1
  120. package/dist/attestation/internal/HttpMessageSignature.d.ts.map +0 -1
  121. package/dist/attestation/internal/HttpMessageSignature.js.map +0 -1
  122. package/dist/attestation/internal/SigningContext.d.ts.map +0 -1
  123. package/dist/attestation/internal/SigningContext.js.map +0 -1
  124. package/dist/bin.d.ts.map +0 -1
  125. package/dist/bin.js.map +0 -1
  126. package/dist/cli/account.d.ts.map +0 -1
  127. package/dist/cli/account.js.map +0 -1
  128. package/dist/cli/cli.d.ts.map +0 -1
  129. package/dist/cli/cli.js.map +0 -1
  130. package/dist/cli/config.d.ts.map +0 -1
  131. package/dist/cli/config.js.map +0 -1
  132. package/dist/cli/internal.d.ts.map +0 -1
  133. package/dist/cli/internal.js.map +0 -1
  134. package/dist/cli/plugins/evm.d.ts.map +0 -1
  135. package/dist/cli/plugins/evm.js.map +0 -1
  136. package/dist/cli/plugins/index.d.ts.map +0 -1
  137. package/dist/cli/plugins/index.js.map +0 -1
  138. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  139. package/dist/cli/plugins/plugin.js.map +0 -1
  140. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  141. package/dist/cli/plugins/stripe.js.map +0 -1
  142. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  143. package/dist/cli/plugins/tempo.js.map +0 -1
  144. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  145. package/dist/cli/sessions/Manager.js.map +0 -1
  146. package/dist/cli/sessions/commands.d.ts.map +0 -1
  147. package/dist/cli/sessions/commands.js.map +0 -1
  148. package/dist/cli/sessions/request.d.ts.map +0 -1
  149. package/dist/cli/sessions/request.js.map +0 -1
  150. package/dist/cli/sessions/store.d.ts.map +0 -1
  151. package/dist/cli/sessions/store.js.map +0 -1
  152. package/dist/cli/utils.d.ts.map +0 -1
  153. package/dist/cli/utils.js.map +0 -1
  154. package/dist/cli/validate/challenge.d.ts.map +0 -1
  155. package/dist/cli/validate/challenge.js.map +0 -1
  156. package/dist/cli/validate/discovery.d.ts.map +0 -1
  157. package/dist/cli/validate/discovery.js.map +0 -1
  158. package/dist/cli/validate/helpers.d.ts.map +0 -1
  159. package/dist/cli/validate/helpers.js.map +0 -1
  160. package/dist/cli/validate/index.d.ts.map +0 -1
  161. package/dist/cli/validate/index.js.map +0 -1
  162. package/dist/cli/validate/messages.d.ts.map +0 -1
  163. package/dist/cli/validate/messages.js.map +0 -1
  164. package/dist/cli/validate/payment.d.ts.map +0 -1
  165. package/dist/cli/validate/payment.js.map +0 -1
  166. package/dist/client/Methods.d.ts.map +0 -1
  167. package/dist/client/Methods.js.map +0 -1
  168. package/dist/client/Mppx.d.ts.map +0 -1
  169. package/dist/client/Mppx.js.map +0 -1
  170. package/dist/client/Transport.d.ts.map +0 -1
  171. package/dist/client/Transport.js.map +0 -1
  172. package/dist/client/index.d.ts.map +0 -1
  173. package/dist/client/index.js.map +0 -1
  174. package/dist/client/internal/Fetch.d.ts.map +0 -1
  175. package/dist/client/internal/Fetch.js.map +0 -1
  176. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  177. package/dist/client/internal/MethodChallenge.js.map +0 -1
  178. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  179. package/dist/client/internal/MethodResponse.js.map +0 -1
  180. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  181. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  182. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  183. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  184. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  185. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  186. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  187. package/dist/client/internal/protocols/Shared.js.map +0 -1
  188. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  189. package/dist/client/internal/protocols/X402.js.map +0 -1
  190. package/dist/client/node.d.ts.map +0 -1
  191. package/dist/client/node.js.map +0 -1
  192. package/dist/discovery/Discovery.d.ts.map +0 -1
  193. package/dist/discovery/Discovery.js.map +0 -1
  194. package/dist/discovery/OpenApi.d.ts.map +0 -1
  195. package/dist/discovery/OpenApi.js.map +0 -1
  196. package/dist/discovery/Validate.d.ts.map +0 -1
  197. package/dist/discovery/Validate.js.map +0 -1
  198. package/dist/discovery/index.d.ts.map +0 -1
  199. package/dist/discovery/index.js.map +0 -1
  200. package/dist/discovery/internal/Metadata.d.ts.map +0 -1
  201. package/dist/discovery/internal/Metadata.js.map +0 -1
  202. package/dist/evm/Assets.d.ts.map +0 -1
  203. package/dist/evm/Assets.js.map +0 -1
  204. package/dist/evm/Chains.d.ts.map +0 -1
  205. package/dist/evm/Chains.js.map +0 -1
  206. package/dist/evm/Methods.d.ts.map +0 -1
  207. package/dist/evm/Methods.js.map +0 -1
  208. package/dist/evm/Types.d.ts.map +0 -1
  209. package/dist/evm/Types.js.map +0 -1
  210. package/dist/evm/client/Charge.d.ts.map +0 -1
  211. package/dist/evm/client/Charge.js.map +0 -1
  212. package/dist/evm/client/Methods.d.ts.map +0 -1
  213. package/dist/evm/client/Methods.js.map +0 -1
  214. package/dist/evm/client/index.d.ts.map +0 -1
  215. package/dist/evm/client/index.js.map +0 -1
  216. package/dist/evm/index.d.ts.map +0 -1
  217. package/dist/evm/index.js.map +0 -1
  218. package/dist/evm/server/Charge.d.ts.map +0 -1
  219. package/dist/evm/server/Charge.js.map +0 -1
  220. package/dist/evm/server/Methods.d.ts.map +0 -1
  221. package/dist/evm/server/Methods.js.map +0 -1
  222. package/dist/evm/server/index.d.ts.map +0 -1
  223. package/dist/evm/server/index.js.map +0 -1
  224. package/dist/index.d.ts.map +0 -1
  225. package/dist/index.js.map +0 -1
  226. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  227. package/dist/internal/AcceptPayment.js.map +0 -1
  228. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  229. package/dist/internal/HeaderCodec.js.map +0 -1
  230. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  231. package/dist/internal/constantTimeEqual.js.map +0 -1
  232. package/dist/internal/env.d.ts.map +0 -1
  233. package/dist/internal/env.js.map +0 -1
  234. package/dist/internal/types.d.ts.map +0 -1
  235. package/dist/internal/types.js.map +0 -1
  236. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  237. package/dist/mcp/client/McpClient.js.map +0 -1
  238. package/dist/mcp/client/index.d.ts.map +0 -1
  239. package/dist/mcp/client/index.js.map +0 -1
  240. package/dist/mcp/server/Transport.d.ts.map +0 -1
  241. package/dist/mcp/server/Transport.js.map +0 -1
  242. package/dist/mcp/server/index.d.ts.map +0 -1
  243. package/dist/mcp/server/index.js.map +0 -1
  244. package/dist/middlewares/elysia.d.ts.map +0 -1
  245. package/dist/middlewares/elysia.js.map +0 -1
  246. package/dist/middlewares/express.d.ts.map +0 -1
  247. package/dist/middlewares/express.js.map +0 -1
  248. package/dist/middlewares/hono.d.ts.map +0 -1
  249. package/dist/middlewares/hono.js.map +0 -1
  250. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  251. package/dist/middlewares/internal/mppx.js.map +0 -1
  252. package/dist/middlewares/nextjs.d.ts.map +0 -1
  253. package/dist/middlewares/nextjs.js.map +0 -1
  254. package/dist/proxy/Proxy.d.ts.map +0 -1
  255. package/dist/proxy/Proxy.js.map +0 -1
  256. package/dist/proxy/Service.d.ts.map +0 -1
  257. package/dist/proxy/Service.js.map +0 -1
  258. package/dist/proxy/index.d.ts.map +0 -1
  259. package/dist/proxy/index.js.map +0 -1
  260. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  261. package/dist/proxy/internal/Headers.js.map +0 -1
  262. package/dist/proxy/internal/Route.d.ts.map +0 -1
  263. package/dist/proxy/internal/Route.js.map +0 -1
  264. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  265. package/dist/proxy/services/anthropic.js.map +0 -1
  266. package/dist/proxy/services/openai.d.ts.map +0 -1
  267. package/dist/proxy/services/openai.js.map +0 -1
  268. package/dist/proxy/services/stripe.d.ts.map +0 -1
  269. package/dist/proxy/services/stripe.js.map +0 -1
  270. package/dist/server/Methods.d.ts.map +0 -1
  271. package/dist/server/Methods.js.map +0 -1
  272. package/dist/server/Mppx.d.ts.map +0 -1
  273. package/dist/server/Mppx.js.map +0 -1
  274. package/dist/server/NodeListener.d.ts.map +0 -1
  275. package/dist/server/NodeListener.js.map +0 -1
  276. package/dist/server/Request.d.ts.map +0 -1
  277. package/dist/server/Request.js.map +0 -1
  278. package/dist/server/Response.d.ts.map +0 -1
  279. package/dist/server/Response.js.map +0 -1
  280. package/dist/server/Transport.d.ts.map +0 -1
  281. package/dist/server/Transport.js.map +0 -1
  282. package/dist/server/index.d.ts.map +0 -1
  283. package/dist/server/index.js.map +0 -1
  284. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  285. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  286. package/dist/server/internal/html/config.d.ts.map +0 -1
  287. package/dist/server/internal/html/config.js.map +0 -1
  288. package/dist/server/internal/html/constants.d.ts.map +0 -1
  289. package/dist/server/internal/html/constants.js.map +0 -1
  290. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  291. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  292. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  293. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  294. package/dist/server/internal/scope.d.ts.map +0 -1
  295. package/dist/server/internal/scope.js.map +0 -1
  296. package/dist/stripe/Methods.d.ts.map +0 -1
  297. package/dist/stripe/Methods.js.map +0 -1
  298. package/dist/stripe/client/Charge.d.ts.map +0 -1
  299. package/dist/stripe/client/Charge.js.map +0 -1
  300. package/dist/stripe/client/Methods.d.ts.map +0 -1
  301. package/dist/stripe/client/Methods.js.map +0 -1
  302. package/dist/stripe/client/index.d.ts.map +0 -1
  303. package/dist/stripe/client/index.js.map +0 -1
  304. package/dist/stripe/index.d.ts.map +0 -1
  305. package/dist/stripe/index.js.map +0 -1
  306. package/dist/stripe/internal/constants.d.ts.map +0 -1
  307. package/dist/stripe/internal/constants.js.map +0 -1
  308. package/dist/stripe/internal/types.d.ts.map +0 -1
  309. package/dist/stripe/internal/types.js.map +0 -1
  310. package/dist/stripe/server/Charge.d.ts.map +0 -1
  311. package/dist/stripe/server/Charge.js.map +0 -1
  312. package/dist/stripe/server/Methods.d.ts.map +0 -1
  313. package/dist/stripe/server/Methods.js.map +0 -1
  314. package/dist/stripe/server/index.d.ts.map +0 -1
  315. package/dist/stripe/server/index.js.map +0 -1
  316. package/dist/stripe/server/internal/deposit-address.d.ts.map +0 -1
  317. package/dist/stripe/server/internal/deposit-address.js.map +0 -1
  318. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  319. package/dist/stripe/server/internal/html/types.js.map +0 -1
  320. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  321. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  322. package/dist/stripe/server/internal/record-payment.d.ts.map +0 -1
  323. package/dist/stripe/server/internal/record-payment.js.map +0 -1
  324. package/dist/stripe/server/internal/request.d.ts.map +0 -1
  325. package/dist/stripe/server/internal/request.js.map +0 -1
  326. package/dist/tap/Constants.d.ts.map +0 -1
  327. package/dist/tap/Constants.js.map +0 -1
  328. package/dist/tap/Types.d.ts.map +0 -1
  329. package/dist/tap/Types.js.map +0 -1
  330. package/dist/tap/client/index.d.ts.map +0 -1
  331. package/dist/tap/client/index.js.map +0 -1
  332. package/dist/tap/index.d.ts.map +0 -1
  333. package/dist/tap/index.js.map +0 -1
  334. package/dist/tap/server/index.d.ts.map +0 -1
  335. package/dist/tap/server/index.js.map +0 -1
  336. package/dist/tempo/Attribution.d.ts.map +0 -1
  337. package/dist/tempo/Attribution.js.map +0 -1
  338. package/dist/tempo/Methods.d.ts.map +0 -1
  339. package/dist/tempo/Methods.js.map +0 -1
  340. package/dist/tempo/Proof.d.ts.map +0 -1
  341. package/dist/tempo/Proof.js.map +0 -1
  342. package/dist/tempo/client/Charge.d.ts.map +0 -1
  343. package/dist/tempo/client/Charge.js.map +0 -1
  344. package/dist/tempo/client/Methods.d.ts.map +0 -1
  345. package/dist/tempo/client/Methods.js.map +0 -1
  346. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  347. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  348. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  349. package/dist/tempo/client/Subscription.js.map +0 -1
  350. package/dist/tempo/client/index.d.ts.map +0 -1
  351. package/dist/tempo/client/index.js.map +0 -1
  352. package/dist/tempo/index.d.ts.map +0 -1
  353. package/dist/tempo/index.js.map +0 -1
  354. package/dist/tempo/internal/account.d.ts.map +0 -1
  355. package/dist/tempo/internal/account.js.map +0 -1
  356. package/dist/tempo/internal/address.d.ts.map +0 -1
  357. package/dist/tempo/internal/address.js.map +0 -1
  358. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  359. package/dist/tempo/internal/auto-swap.js.map +0 -1
  360. package/dist/tempo/internal/charge.d.ts.map +0 -1
  361. package/dist/tempo/internal/charge.js.map +0 -1
  362. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  363. package/dist/tempo/internal/defaults.js.map +0 -1
  364. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  365. package/dist/tempo/internal/fee-payer.js.map +0 -1
  366. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  367. package/dist/tempo/internal/fee-token.js.map +0 -1
  368. package/dist/tempo/internal/proof.d.ts.map +0 -1
  369. package/dist/tempo/internal/proof.js.map +0 -1
  370. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  371. package/dist/tempo/internal/selectors.js.map +0 -1
  372. package/dist/tempo/internal/types.d.ts.map +0 -1
  373. package/dist/tempo/internal/types.js.map +0 -1
  374. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  375. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  376. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  377. package/dist/tempo/legacy/client/Session.js.map +0 -1
  378. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  379. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  380. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  381. package/dist/tempo/legacy/client/index.js.map +0 -1
  382. package/dist/tempo/legacy/index.d.ts.map +0 -1
  383. package/dist/tempo/legacy/index.js.map +0 -1
  384. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  385. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  386. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  387. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  388. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  389. package/dist/tempo/legacy/session/Types.js.map +0 -1
  390. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  391. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  392. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  393. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  394. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  395. package/dist/tempo/legacy/session/index.js.map +0 -1
  396. package/dist/tempo/server/Charge.d.ts.map +0 -1
  397. package/dist/tempo/server/Charge.js.map +0 -1
  398. package/dist/tempo/server/Methods.d.ts.map +0 -1
  399. package/dist/tempo/server/Methods.js.map +0 -1
  400. package/dist/tempo/server/Relay.d.ts.map +0 -1
  401. package/dist/tempo/server/Relay.js.map +0 -1
  402. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  403. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  404. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  405. package/dist/tempo/server/Subscription.js.map +0 -1
  406. package/dist/tempo/server/index.d.ts.map +0 -1
  407. package/dist/tempo/server/index.js.map +0 -1
  408. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  409. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  410. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  411. package/dist/tempo/server/internal/request-body.js.map +0 -1
  412. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  413. package/dist/tempo/server/internal/transport.js.map +0 -1
  414. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  415. package/dist/tempo/session/Snapshot.js.map +0 -1
  416. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  417. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  418. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  419. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  420. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  421. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  422. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  423. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  424. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  425. package/dist/tempo/session/client/Runtime.js.map +0 -1
  426. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  427. package/dist/tempo/session/client/Session.js.map +0 -1
  428. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  429. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  430. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  431. package/dist/tempo/session/client/Transports.js.map +0 -1
  432. package/dist/tempo/session/client/index.d.ts.map +0 -1
  433. package/dist/tempo/session/client/index.js.map +0 -1
  434. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  435. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  436. package/dist/tempo/session/index.d.ts.map +0 -1
  437. package/dist/tempo/session/index.js.map +0 -1
  438. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  439. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  440. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  441. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  442. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  443. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  444. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  445. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  446. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  447. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  448. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  449. package/dist/tempo/session/precompile/index.js.map +0 -1
  450. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  451. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  452. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  453. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  454. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  455. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  456. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  457. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  458. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  459. package/dist/tempo/session/server/RequestState.js.map +0 -1
  460. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  461. package/dist/tempo/session/server/Session.js.map +0 -1
  462. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  463. package/dist/tempo/session/server/Settlement.js.map +0 -1
  464. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  465. package/dist/tempo/session/server/Sse.js.map +0 -1
  466. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  467. package/dist/tempo/session/server/Transports.js.map +0 -1
  468. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  469. package/dist/tempo/session/server/Ws.js.map +0 -1
  470. package/dist/tempo/session/server/index.d.ts.map +0 -1
  471. package/dist/tempo/session/server/index.js.map +0 -1
  472. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  473. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  474. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  475. package/dist/tempo/subscription/Receipt.js.map +0 -1
  476. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  477. package/dist/tempo/subscription/Store.js.map +0 -1
  478. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  479. package/dist/tempo/subscription/Types.js.map +0 -1
  480. package/dist/tempo/subscription/index.d.ts.map +0 -1
  481. package/dist/tempo/subscription/index.js.map +0 -1
  482. package/dist/validation/core.d.ts.map +0 -1
  483. package/dist/validation/core.js.map +0 -1
  484. package/dist/validation/index.d.ts.map +0 -1
  485. package/dist/validation/index.js.map +0 -1
  486. package/dist/viem/Account.d.ts.map +0 -1
  487. package/dist/viem/Account.js.map +0 -1
  488. package/dist/viem/Client.d.ts.map +0 -1
  489. package/dist/viem/Client.js.map +0 -1
  490. package/dist/web-bot-auth/Constants.d.ts.map +0 -1
  491. package/dist/web-bot-auth/Constants.js.map +0 -1
  492. package/dist/web-bot-auth/Types.d.ts.map +0 -1
  493. package/dist/web-bot-auth/Types.js.map +0 -1
  494. package/dist/web-bot-auth/client/index.d.ts.map +0 -1
  495. package/dist/web-bot-auth/client/index.js.map +0 -1
  496. package/dist/web-bot-auth/index.d.ts.map +0 -1
  497. package/dist/web-bot-auth/index.js.map +0 -1
  498. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +0 -1
  499. package/dist/web-bot-auth/internal/JwkThumbprint.js.map +0 -1
  500. package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +0 -1
  501. package/dist/web-bot-auth/internal/SignatureAgent.js.map +0 -1
  502. package/dist/web-bot-auth/server/index.d.ts.map +0 -1
  503. package/dist/web-bot-auth/server/index.js.map +0 -1
  504. package/dist/x402/Assets.d.ts.map +0 -1
  505. package/dist/x402/Assets.js.map +0 -1
  506. package/dist/x402/Header.d.ts.map +0 -1
  507. package/dist/x402/Header.js.map +0 -1
  508. package/dist/x402/Types.d.ts.map +0 -1
  509. package/dist/x402/Types.js.map +0 -1
  510. package/dist/x402/client/Exact.d.ts.map +0 -1
  511. package/dist/x402/client/Exact.js.map +0 -1
  512. package/dist/x402/index.d.ts.map +0 -1
  513. package/dist/x402/index.js.map +0 -1
  514. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  515. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  516. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  517. package/dist/x402/internal/RouteBinding.js.map +0 -1
  518. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  519. package/dist/x402/server/EvmCharge.js.map +0 -1
  520. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  521. package/dist/x402/server/Facilitator.js.map +0 -1
  522. package/dist/zod.d.ts.map +0 -1
  523. package/dist/zod.js.map +0 -1
  524. package/src/BodyDigest.test.ts +0 -43
  525. package/src/BodyDigest.ts +0 -55
  526. package/src/Challenge.fuzz.test.ts +0 -154
  527. package/src/Challenge.test-d.ts +0 -82
  528. package/src/Challenge.test.ts +0 -1060
  529. package/src/Challenge.ts +0 -687
  530. package/src/Constants.ts +0 -58
  531. package/src/Credential.fuzz.test.ts +0 -62
  532. package/src/Credential.test.ts +0 -378
  533. package/src/Credential.ts +0 -217
  534. package/src/Errors.test.ts +0 -520
  535. package/src/Errors.ts +0 -448
  536. package/src/Expires.test.ts +0 -112
  537. package/src/Expires.ts +0 -59
  538. package/src/Html.ts +0 -67
  539. package/src/Mcp.ts +0 -85
  540. package/src/Method.test.ts +0 -177
  541. package/src/Method.ts +0 -631
  542. package/src/PaymentRequest.test.ts +0 -147
  543. package/src/PaymentRequest.ts +0 -108
  544. package/src/Receipt.test.ts +0 -151
  545. package/src/Receipt.ts +0 -146
  546. package/src/Store.test-d.ts +0 -211
  547. package/src/Store.test.ts +0 -407
  548. package/src/Store.ts +0 -397
  549. package/src/attestation/Attestation.integration.test.ts +0 -208
  550. package/src/attestation/Client.test.ts +0 -83
  551. package/src/attestation/Client.ts +0 -34
  552. package/src/attestation/Constants.ts +0 -15
  553. package/src/attestation/Server.test.ts +0 -60
  554. package/src/attestation/Server.ts +0 -12
  555. package/src/attestation/Types.test-d.ts +0 -54
  556. package/src/attestation/Types.ts +0 -77
  557. package/src/attestation/index.ts +0 -5
  558. package/src/attestation/internal/HttpMessageSignature.test.ts +0 -101
  559. package/src/attestation/internal/HttpMessageSignature.ts +0 -429
  560. package/src/attestation/internal/SigningContext.ts +0 -13
  561. package/src/bin.js +0 -2
  562. package/src/bin.ts +0 -4
  563. package/src/cli/account.ts +0 -269
  564. package/src/cli/cli.test.ts +0 -2221
  565. package/src/cli/cli.ts +0 -1650
  566. package/src/cli/config.test.ts +0 -89
  567. package/src/cli/config.ts +0 -50
  568. package/src/cli/internal.ts +0 -114
  569. package/src/cli/mcp.test.ts +0 -262
  570. package/src/cli/plugins/evm.ts +0 -55
  571. package/src/cli/plugins/index.ts +0 -4
  572. package/src/cli/plugins/plugin.ts +0 -84
  573. package/src/cli/plugins/stripe.ts +0 -174
  574. package/src/cli/plugins/tempo.ts +0 -1102
  575. package/src/cli/sessions/Manager.test.ts +0 -249
  576. package/src/cli/sessions/Manager.ts +0 -93
  577. package/src/cli/sessions/commands.ts +0 -444
  578. package/src/cli/sessions/request.test.ts +0 -51
  579. package/src/cli/sessions/request.ts +0 -353
  580. package/src/cli/sessions/store.test.ts +0 -581
  581. package/src/cli/sessions/store.ts +0 -940
  582. package/src/cli/utils.test.ts +0 -156
  583. package/src/cli/utils.ts +0 -394
  584. package/src/cli/validate/challenge.ts +0 -565
  585. package/src/cli/validate/discovery.test.ts +0 -435
  586. package/src/cli/validate/discovery.ts +0 -221
  587. package/src/cli/validate/helpers.ts +0 -166
  588. package/src/cli/validate/index.ts +0 -229
  589. package/src/cli/validate/messages.ts +0 -7
  590. package/src/cli/validate/payment.ts +0 -774
  591. package/src/cli/validate.test.ts +0 -843
  592. package/src/client/Methods.ts +0 -8
  593. package/src/client/Mppx.test-d.ts +0 -287
  594. package/src/client/Mppx.test.ts +0 -1065
  595. package/src/client/Mppx.ts +0 -487
  596. package/src/client/Transport.test.ts +0 -586
  597. package/src/client/Transport.ts +0 -170
  598. package/src/client/index.ts +0 -29
  599. package/src/client/internal/Fetch.browser.test.ts +0 -197
  600. package/src/client/internal/Fetch.test-d.ts +0 -109
  601. package/src/client/internal/Fetch.test.ts +0 -2336
  602. package/src/client/internal/Fetch.ts +0 -1075
  603. package/src/client/internal/MethodChallenge.ts +0 -35
  604. package/src/client/internal/MethodResponse.ts +0 -67
  605. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  606. package/src/client/internal/protocols/Mcp.ts +0 -186
  607. package/src/client/internal/protocols/Mpp.ts +0 -21
  608. package/src/client/internal/protocols/Protocol.ts +0 -10
  609. package/src/client/internal/protocols/Shared.ts +0 -25
  610. package/src/client/internal/protocols/X402.ts +0 -46
  611. package/src/client/node.test.ts +0 -115
  612. package/src/client/node.ts +0 -247
  613. package/src/discovery/Discovery.test.ts +0 -214
  614. package/src/discovery/Discovery.ts +0 -105
  615. package/src/discovery/OpenApi.test.ts +0 -623
  616. package/src/discovery/OpenApi.ts +0 -192
  617. package/src/discovery/Validate.test.ts +0 -305
  618. package/src/discovery/Validate.ts +0 -77
  619. package/src/discovery/index.ts +0 -3
  620. package/src/discovery/internal/Metadata.ts +0 -51
  621. package/src/env.d.ts +0 -12
  622. package/src/evm/Assets.ts +0 -1
  623. package/src/evm/Chains.ts +0 -11
  624. package/src/evm/Methods.ts +0 -44
  625. package/src/evm/PublicInterface.test-d.ts +0 -134
  626. package/src/evm/Types.ts +0 -140
  627. package/src/evm/client/Charge.test.ts +0 -347
  628. package/src/evm/client/Charge.ts +0 -187
  629. package/src/evm/client/Methods.ts +0 -19
  630. package/src/evm/client/index.ts +0 -6
  631. package/src/evm/index.ts +0 -16
  632. package/src/evm/server/Charge.test.ts +0 -339
  633. package/src/evm/server/Charge.ts +0 -295
  634. package/src/evm/server/Methods.ts +0 -22
  635. package/src/evm/server/index.ts +0 -6
  636. package/src/index.ts +0 -14
  637. package/src/internal/AcceptPayment.test.ts +0 -347
  638. package/src/internal/AcceptPayment.ts +0 -366
  639. package/src/internal/HeaderCodec.ts +0 -36
  640. package/src/internal/changeset.test.ts +0 -106
  641. package/src/internal/constantTimeEqual.test.ts +0 -47
  642. package/src/internal/constantTimeEqual.ts +0 -10
  643. package/src/internal/env.test.ts +0 -42
  644. package/src/internal/env.ts +0 -49
  645. package/src/internal/types.test-d.ts +0 -21
  646. package/src/internal/types.ts +0 -479
  647. package/src/mcp/client/McpClient.integration.test.ts +0 -639
  648. package/src/mcp/client/McpClient.test-d.ts +0 -144
  649. package/src/mcp/client/McpClient.test.ts +0 -463
  650. package/src/mcp/client/McpClient.ts +0 -307
  651. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  652. package/src/mcp/client/index.ts +0 -2
  653. package/src/mcp/server/Transport.test.ts +0 -191
  654. package/src/mcp/server/Transport.ts +0 -111
  655. package/src/mcp/server/index.ts +0 -1
  656. package/src/middlewares/elysia.test.ts +0 -285
  657. package/src/middlewares/elysia.ts +0 -116
  658. package/src/middlewares/express.test.ts +0 -361
  659. package/src/middlewares/express.ts +0 -140
  660. package/src/middlewares/hono.test.ts +0 -473
  661. package/src/middlewares/hono.ts +0 -153
  662. package/src/middlewares/internal/mppx.test.ts +0 -177
  663. package/src/middlewares/internal/mppx.ts +0 -67
  664. package/src/middlewares/nextjs.test.ts +0 -359
  665. package/src/middlewares/nextjs.ts +0 -107
  666. package/src/proxy/Proxy.test.ts +0 -1038
  667. package/src/proxy/Proxy.ts +0 -483
  668. package/src/proxy/Proxy.upstreamError.test.ts +0 -364
  669. package/src/proxy/Service.test.ts +0 -252
  670. package/src/proxy/Service.ts +0 -280
  671. package/src/proxy/index.ts +0 -6
  672. package/src/proxy/internal/Headers.test.ts +0 -139
  673. package/src/proxy/internal/Headers.ts +0 -66
  674. package/src/proxy/internal/Route.test.ts +0 -217
  675. package/src/proxy/internal/Route.ts +0 -64
  676. package/src/proxy/services/anthropic.test.ts +0 -132
  677. package/src/proxy/services/anthropic.ts +0 -53
  678. package/src/proxy/services/hooks.test-d.ts +0 -14
  679. package/src/proxy/services/hooks.test.ts +0 -44
  680. package/src/proxy/services/openai.test.ts +0 -157
  681. package/src/proxy/services/openai.ts +0 -60
  682. package/src/proxy/services/stripe.test.ts +0 -175
  683. package/src/proxy/services/stripe.ts +0 -59
  684. package/src/server/Methods.test-d.ts +0 -88
  685. package/src/server/Methods.test.ts +0 -69
  686. package/src/server/Methods.ts +0 -3
  687. package/src/server/Mppx.authorize.test.ts +0 -210
  688. package/src/server/Mppx.test-d.ts +0 -494
  689. package/src/server/Mppx.test.ts +0 -6711
  690. package/src/server/Mppx.ts +0 -2919
  691. package/src/server/NodeListener.test.ts +0 -293
  692. package/src/server/NodeListener.ts +0 -45
  693. package/src/server/Request.test.ts +0 -255
  694. package/src/server/Request.ts +0 -155
  695. package/src/server/Response.test.ts +0 -32
  696. package/src/server/Response.ts +0 -45
  697. package/src/server/Transport.test.ts +0 -598
  698. package/src/server/Transport.ts +0 -320
  699. package/src/server/index.ts +0 -9
  700. package/src/server/internal/html/compose.main.gen.ts +0 -2
  701. package/src/server/internal/html/compose.main.ts +0 -88
  702. package/src/server/internal/html/config.ts +0 -672
  703. package/src/server/internal/html/constants.ts +0 -28
  704. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  705. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  706. package/src/server/internal/html/serviceWorker.ts +0 -27
  707. package/src/server/internal/html/tsconfig.compose.json +0 -8
  708. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  709. package/src/server/internal/html/tsconfig.worker.json +0 -8
  710. package/src/server/internal/scope.ts +0 -43
  711. package/src/stripe/Charge.integration.test.ts +0 -329
  712. package/src/stripe/Methods.test.ts +0 -62
  713. package/src/stripe/Methods.ts +0 -44
  714. package/src/stripe/client/Charge.test.ts +0 -205
  715. package/src/stripe/client/Charge.ts +0 -132
  716. package/src/stripe/client/Methods.ts +0 -37
  717. package/src/stripe/client/index.ts +0 -2
  718. package/src/stripe/index.ts +0 -1
  719. package/src/stripe/internal/constants.ts +0 -7
  720. package/src/stripe/internal/types.ts +0 -47
  721. package/src/stripe/server/Charge.test-d.ts +0 -81
  722. package/src/stripe/server/Charge.test.ts +0 -700
  723. package/src/stripe/server/Charge.ts +0 -487
  724. package/src/stripe/server/Methods.test-d.ts +0 -157
  725. package/src/stripe/server/Methods.test.ts +0 -403
  726. package/src/stripe/server/Methods.ts +0 -441
  727. package/src/stripe/server/index.ts +0 -2
  728. package/src/stripe/server/internal/deposit-address.ts +0 -57
  729. package/src/stripe/server/internal/html/main.ts +0 -165
  730. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  731. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  732. package/src/stripe/server/internal/html/package.json +0 -9
  733. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  734. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  735. package/src/stripe/server/internal/html/types.ts +0 -5
  736. package/src/stripe/server/internal/html.gen.ts +0 -2
  737. package/src/stripe/server/internal/record-payment.ts +0 -66
  738. package/src/stripe/server/internal/request.ts +0 -49
  739. package/src/tap/Constants.ts +0 -32
  740. package/src/tap/Tap.test.ts +0 -125
  741. package/src/tap/Types.ts +0 -11
  742. package/src/tap/client/index.ts +0 -54
  743. package/src/tap/index.ts +0 -4
  744. package/src/tap/server/index.ts +0 -48
  745. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  746. package/src/tempo/Attribution.test.ts +0 -294
  747. package/src/tempo/Attribution.ts +0 -185
  748. package/src/tempo/Methods.test.ts +0 -425
  749. package/src/tempo/Methods.ts +0 -367
  750. package/src/tempo/Proof.conformance.test.ts +0 -146
  751. package/src/tempo/Proof.test-d.ts +0 -32
  752. package/src/tempo/Proof.test.ts +0 -40
  753. package/src/tempo/Proof.ts +0 -69
  754. package/src/tempo/PublicExports.test-d.ts +0 -130
  755. package/src/tempo/Subscription.integration.test.ts +0 -591
  756. package/src/tempo/client/Charge.test.ts +0 -501
  757. package/src/tempo/client/Charge.ts +0 -271
  758. package/src/tempo/client/Methods.ts +0 -45
  759. package/src/tempo/client/ResolveAccount.ts +0 -46
  760. package/src/tempo/client/Subscription.test.ts +0 -180
  761. package/src/tempo/client/Subscription.ts +0 -156
  762. package/src/tempo/client/index.ts +0 -17
  763. package/src/tempo/index.ts +0 -5
  764. package/src/tempo/internal/account.ts +0 -56
  765. package/src/tempo/internal/address.test.ts +0 -42
  766. package/src/tempo/internal/address.ts +0 -6
  767. package/src/tempo/internal/auto-swap.test.ts +0 -198
  768. package/src/tempo/internal/auto-swap.ts +0 -145
  769. package/src/tempo/internal/charge.test.ts +0 -66
  770. package/src/tempo/internal/charge.ts +0 -43
  771. package/src/tempo/internal/defaults.test.ts +0 -95
  772. package/src/tempo/internal/defaults.ts +0 -53
  773. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  774. package/src/tempo/internal/fee-payer.ts +0 -808
  775. package/src/tempo/internal/fee-token.test.ts +0 -165
  776. package/src/tempo/internal/fee-token.ts +0 -72
  777. package/src/tempo/internal/proof.test.ts +0 -97
  778. package/src/tempo/internal/proof.ts +0 -87
  779. package/src/tempo/internal/selectors.ts +0 -10
  780. package/src/tempo/internal/types.ts +0 -19
  781. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  782. package/src/tempo/legacy/README.md +0 -9
  783. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  784. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  785. package/src/tempo/legacy/client/Session.test.ts +0 -800
  786. package/src/tempo/legacy/client/Session.ts +0 -397
  787. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  788. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  789. package/src/tempo/legacy/client/index.ts +0 -6
  790. package/src/tempo/legacy/index.ts +0 -4
  791. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  792. package/src/tempo/legacy/session/Chain.ts +0 -830
  793. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  794. package/src/tempo/legacy/session/Channel.ts +0 -51
  795. package/src/tempo/legacy/session/Types.ts +0 -91
  796. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  797. package/src/tempo/legacy/session/Voucher.ts +0 -183
  798. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  799. package/src/tempo/legacy/session/index.ts +0 -8
  800. package/src/tempo/server/AtomicStore.test-d.ts +0 -63
  801. package/src/tempo/server/Charge.test.ts +0 -6056
  802. package/src/tempo/server/Charge.ts +0 -1379
  803. package/src/tempo/server/Methods.ts +0 -86
  804. package/src/tempo/server/Relay.test.ts +0 -677
  805. package/src/tempo/server/Relay.ts +0 -297
  806. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  807. package/src/tempo/server/SponsorBudget.ts +0 -219
  808. package/src/tempo/server/Sse.test.ts +0 -321
  809. package/src/tempo/server/Subscription.test.ts +0 -1944
  810. package/src/tempo/server/Subscription.ts +0 -1336
  811. package/src/tempo/server/index.ts +0 -12
  812. package/src/tempo/server/internal/html/main.ts +0 -115
  813. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  814. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  815. package/src/tempo/server/internal/html/package.json +0 -10
  816. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  817. package/src/tempo/server/internal/html.gen.ts +0 -2
  818. package/src/tempo/server/internal/request-body.test.ts +0 -210
  819. package/src/tempo/server/internal/request-body.ts +0 -61
  820. package/src/tempo/server/internal/transport.test.ts +0 -922
  821. package/src/tempo/server/internal/transport.ts +0 -322
  822. package/src/tempo/session/README.md +0 -320
  823. package/src/tempo/session/Snapshot.test.ts +0 -41
  824. package/src/tempo/session/Snapshot.ts +0 -95
  825. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  826. package/src/tempo/session/client/ChannelOps.ts +0 -348
  827. package/src/tempo/session/client/ChannelStore.ts +0 -111
  828. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  829. package/src/tempo/session/client/CredentialState.ts +0 -942
  830. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  831. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  832. package/src/tempo/session/client/Runtime.ts +0 -1008
  833. package/src/tempo/session/client/Session.test.ts +0 -1355
  834. package/src/tempo/session/client/Session.ts +0 -420
  835. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  836. package/src/tempo/session/client/SessionManager.ts +0 -996
  837. package/src/tempo/session/client/Transports.test.ts +0 -1141
  838. package/src/tempo/session/client/Transports.ts +0 -1534
  839. package/src/tempo/session/client/index.ts +0 -40
  840. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  841. package/src/tempo/session/index.ts +0 -7
  842. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  843. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  844. package/src/tempo/session/precompile/Chain.ts +0 -1269
  845. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  846. package/src/tempo/session/precompile/Channel.ts +0 -108
  847. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  848. package/src/tempo/session/precompile/Protocol.ts +0 -520
  849. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  850. package/src/tempo/session/precompile/Voucher.ts +0 -162
  851. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  852. package/src/tempo/session/precompile/index.ts +0 -33
  853. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  854. package/src/tempo/session/server/ChannelOps.ts +0 -157
  855. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  856. package/src/tempo/session/server/ChannelStore.ts +0 -856
  857. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  858. package/src/tempo/session/server/CredentialVerification.ts +0 -1087
  859. package/src/tempo/session/server/MeteredStream.ts +0 -99
  860. package/src/tempo/session/server/RequestState.test.ts +0 -574
  861. package/src/tempo/session/server/RequestState.ts +0 -507
  862. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  863. package/src/tempo/session/server/Session.test.ts +0 -4247
  864. package/src/tempo/session/server/Session.ts +0 -669
  865. package/src/tempo/session/server/Settlement.test.ts +0 -345
  866. package/src/tempo/session/server/Settlement.ts +0 -527
  867. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  868. package/src/tempo/session/server/Sse.test.ts +0 -634
  869. package/src/tempo/session/server/Sse.ts +0 -261
  870. package/src/tempo/session/server/Transports.test.ts +0 -346
  871. package/src/tempo/session/server/Transports.ts +0 -256
  872. package/src/tempo/session/server/Ws.test.ts +0 -765
  873. package/src/tempo/session/server/Ws.ts +0 -391
  874. package/src/tempo/session/server/index.ts +0 -12
  875. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  876. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  877. package/src/tempo/subscription/Receipt.ts +0 -28
  878. package/src/tempo/subscription/Store.test.ts +0 -609
  879. package/src/tempo/subscription/Store.ts +0 -449
  880. package/src/tempo/subscription/Types.ts +0 -68
  881. package/src/tempo/subscription/index.ts +0 -23
  882. package/src/tsconfig.json +0 -10
  883. package/src/validation/core.ts +0 -386
  884. package/src/validation/index.ts +0 -11
  885. package/src/viem/Account.test.ts +0 -72
  886. package/src/viem/Account.ts +0 -30
  887. package/src/viem/Client.test.ts +0 -366
  888. package/src/viem/Client.ts +0 -93
  889. package/src/web-bot-auth/Constants.ts +0 -24
  890. package/src/web-bot-auth/Types.ts +0 -9
  891. package/src/web-bot-auth/WebBotAuth.test.ts +0 -182
  892. package/src/web-bot-auth/client/index.ts +0 -84
  893. package/src/web-bot-auth/index.ts +0 -6
  894. package/src/web-bot-auth/internal/JwkThumbprint.ts +0 -21
  895. package/src/web-bot-auth/internal/SignatureAgent.ts +0 -18
  896. package/src/web-bot-auth/server/index.ts +0 -113
  897. package/src/x402/Assets.test.ts +0 -253
  898. package/src/x402/Assets.ts +0 -221
  899. package/src/x402/Exact.e2e.test.ts +0 -488
  900. package/src/x402/Exact.localnet.test.ts +0 -475
  901. package/src/x402/Header.test.ts +0 -73
  902. package/src/x402/Header.ts +0 -79
  903. package/src/x402/PublicInterface.test-d.ts +0 -39
  904. package/src/x402/Types.ts +0 -248
  905. package/src/x402/client/Exact.test.ts +0 -309
  906. package/src/x402/client/Exact.ts +0 -186
  907. package/src/x402/index.ts +0 -6
  908. package/src/x402/internal/ChallengeBrand.ts +0 -14
  909. package/src/x402/internal/RouteBinding.ts +0 -18
  910. package/src/x402/server/EvmCharge.ts +0 -410
  911. package/src/x402/server/Facilitator.test.ts +0 -111
  912. package/src/x402/server/Facilitator.ts +0 -56
  913. package/src/zod.test.ts +0 -169
  914. package/src/zod.ts +0 -71
@@ -33,19 +33,33 @@ export type ChannelEntry = {
33
33
  chainId: number;
34
34
  /** Whether the client considers the channel reusable for new vouchers. */
35
35
  opened: boolean;
36
+ /** Logical merchant payment scope when it differs from the on-chain descriptor. */
37
+ paymentScope?: {
38
+ payee: Address;
39
+ token: Address;
40
+ } | undefined;
36
41
  };
37
42
  /** Resolves the voucher authority address for a client account. */
38
43
  export declare function resolveAuthorizedSigner(account: Account): Address;
39
- /** Resolves the escrow precompile from local override, challenge hints, or canonical default. */
44
+ /** Resolves the server-advertised escrow against the client's trust policy. */
40
45
  export declare function resolveEscrow(challenge: {
41
46
  request: {
42
47
  methodDetails?: unknown;
43
48
  };
44
- }, escrowOverride?: Address | undefined): Address;
49
+ }, escrowOverride?: Address | undefined, allowCustomEscrow?: boolean): Address;
45
50
  /** Serializes a session credential with a DID source bound to the payer account. */
46
51
  export declare function serializeCredential(challenge: Challenge, payload: SessionCredentialPayload, chainId: number, account: Account): string;
47
52
  /** Case-insensitive EVM address equality. */
48
53
  export declare function isSameAddress(a: Address, b: Address): boolean;
54
+ /** Returns whether a stored entry funds a machine-token session channel. */
55
+ export declare function isMachineChannel(entry: Pick<ChannelEntry, 'chainId' | 'descriptor' | 'escrow'>): boolean;
56
+ /**
57
+ * Returns whether a stored entry's logical payment scope differs from its
58
+ * on-chain descriptor. Such entries cannot be re-derived from a challenge, so
59
+ * their descriptor is the only local copy — even when the deployment table no
60
+ * longer recognizes the route (for example after a rotation).
61
+ */
62
+ export declare function hasRewrittenScope(entry: Pick<ChannelEntry, 'descriptor' | 'paymentScope'>): boolean;
49
63
  /**
50
64
  * Signs and creates a TIP-1034 voucher credential payload for an existing channel.
51
65
  *
@@ -71,6 +85,7 @@ export declare function createOpenPayload(client: Client, account: Account, para
71
85
  deposit: bigint;
72
86
  escrow?: Address | undefined;
73
87
  feePayer?: boolean | undefined;
88
+ feeToken?: Address | undefined;
74
89
  initialAmount: bigint;
75
90
  operator?: Address | undefined;
76
91
  payee: Address;
@@ -83,5 +98,5 @@ export declare function createOpenPayload(client: Client, account: Account, para
83
98
  *
84
99
  * @see https://tips.sh/1034-1#execution-semantics
85
100
  */
86
- export declare function createTopUpPayload(client: Client, account: Account, descriptor: Channel.ChannelDescriptor, additionalDeposit: bigint, chainId: number, feePayer?: boolean | undefined, escrow?: Address, prefixCalls?: readonly TempoChannelCall[]): Promise<TopUpCredentialPayload>;
101
+ export declare function createTopUpPayload(client: Client, account: Account, descriptor: Channel.ChannelDescriptor, additionalDeposit: bigint, chainId: number, feePayer?: boolean | undefined, escrow?: Address, prefixCalls?: readonly TempoChannelCall[], feeToken?: Address): Promise<TopUpCredentialPayload>;
87
102
  //# sourceMappingURL=ChannelOps.d.ts.map
@@ -13,6 +13,7 @@ import { encodeFunctionData, isAddress } from 'viem';
13
13
  import { prepareTransactionRequest, signTransaction } from 'viem/actions';
14
14
  import { Transaction } from 'viem/tempo';
15
15
  import * as Credential from '../../../Credential.js';
16
+ import * as MachineTokenSession from '../../internal/machine-token-session.js';
16
17
  import * as Channel from '../precompile/Channel.js';
17
18
  import { escrowAbi } from '../precompile/escrow.abi.js';
18
19
  import { tip20ChannelEscrow } from '../precompile/Protocol.js';
@@ -58,14 +59,21 @@ async function prepareTempoChannelTransaction(client, parameters) {
58
59
  async function signPreparedTempoTransaction(client, prepared) {
59
60
  return (await signTransaction(client, prepared));
60
61
  }
61
- /** Resolves the escrow precompile from local override, challenge hints, or canonical default. */
62
- export function resolveEscrow(challenge, escrowOverride) {
62
+ /** Resolves the server-advertised escrow against the client's trust policy. */
63
+ export function resolveEscrow(challenge, escrowOverride, allowCustomEscrow = false) {
63
64
  const methodDetails = challenge.request.methodDetails;
64
65
  const challengeEscrow = isObject(methodDetails)
65
66
  ? (readOptionalAddress(methodDetails.escrowContract) ??
66
67
  readOptionalAddress(methodDetails.escrow))
67
68
  : undefined;
68
- return escrowOverride ?? challengeEscrow ?? tip20ChannelEscrow;
69
+ const expectedEscrow = escrowOverride ?? tip20ChannelEscrow;
70
+ if (challengeEscrow &&
71
+ !isSameAddress(challengeEscrow, expectedEscrow) &&
72
+ (!allowCustomEscrow || escrowOverride !== undefined))
73
+ throw new Error(`Tempo session escrow ${challengeEscrow} does not match client escrow ${expectedEscrow}.`);
74
+ if (challengeEscrow && !isSameAddress(challengeEscrow, expectedEscrow))
75
+ return challengeEscrow;
76
+ return expectedEscrow;
69
77
  }
70
78
  /** Serializes a session credential with a DID source bound to the payer account. */
71
79
  export function serializeCredential(challenge, payload, chainId, account) {
@@ -79,6 +87,27 @@ export function serializeCredential(challenge, payload, chainId, account) {
79
87
  export function isSameAddress(a, b) {
80
88
  return a.toLowerCase() === b.toLowerCase();
81
89
  }
90
+ /** Returns whether a stored entry funds a machine-token session channel. */
91
+ export function isMachineChannel(entry) {
92
+ return (isSameAddress(entry.escrow, tip20ChannelEscrow) &&
93
+ MachineTokenSession.matchDeployment({
94
+ chainId: entry.chainId,
95
+ descriptor: entry.descriptor,
96
+ }) !== undefined);
97
+ }
98
+ /**
99
+ * Returns whether a stored entry's logical payment scope differs from its
100
+ * on-chain descriptor. Such entries cannot be re-derived from a challenge, so
101
+ * their descriptor is the only local copy — even when the deployment table no
102
+ * longer recognizes the route (for example after a rotation).
103
+ */
104
+ export function hasRewrittenScope(entry) {
105
+ const scope = entry.paymentScope;
106
+ if (!scope)
107
+ return false;
108
+ return (!isSameAddress(scope.payee, entry.descriptor.payee) ||
109
+ !isSameAddress(scope.token, entry.descriptor.token));
110
+ }
82
111
  /**
83
112
  * Signs and creates a TIP-1034 voucher credential payload for an existing channel.
84
113
  *
@@ -139,7 +168,7 @@ export async function createOpenPayload(client, account, parameters) {
139
168
  account,
140
169
  calls: [...(parameters.prefixCalls ?? []), { to: escrow, data: openData }],
141
170
  feePayer: parameters.feePayer,
142
- feeToken: parameters.token,
171
+ feeToken: parameters.feeToken ?? parameters.token,
143
172
  });
144
173
  const transaction = await signPreparedTempoTransaction(client, prepared);
145
174
  const signed = Transaction.deserialize(transaction);
@@ -178,7 +207,7 @@ export async function createOpenPayload(client, account, parameters) {
178
207
  *
179
208
  * @see https://tips.sh/1034-1#execution-semantics
180
209
  */
181
- export async function createTopUpPayload(client, account, descriptor, additionalDeposit, chainId, feePayer, escrow = tip20ChannelEscrow, prefixCalls = []) {
210
+ export async function createTopUpPayload(client, account, descriptor, additionalDeposit, chainId, feePayer, escrow = tip20ChannelEscrow, prefixCalls = [], feeToken = descriptor.token) {
182
211
  const channelId = Channel.computeId({
183
212
  ...descriptor,
184
213
  chainId,
@@ -199,7 +228,7 @@ export async function createTopUpPayload(client, account, descriptor, additional
199
228
  },
200
229
  ],
201
230
  feePayer,
202
- feeToken: descriptor.token,
231
+ feeToken,
203
232
  validAfter: randomValidAfter(),
204
233
  });
205
234
  const transaction = await signPreparedTempoTransaction(client, prepared);
@@ -10,11 +10,6 @@ export type ChannelStore = {
10
10
  /** Removes the channel cached for `key`. */
11
11
  delete(key: string): MaybePromise<void>;
12
12
  };
13
- /** Channel persistence and update notification for credential results. */
14
- export type ChannelSink = {
15
- store: ChannelStore;
16
- notifyUpdate: (entry: ChannelEntry) => void;
17
- };
18
13
  /** Returns the scope key for a reusable payer session channel. */
19
14
  export declare function channelKey(scope: {
20
15
  payee: Address;
@@ -6,8 +6,8 @@ export function channelKey(scope) {
6
6
  /** Returns the scope key for a stored channel entry. */
7
7
  export function entryKey(entry) {
8
8
  return channelKey({
9
- payee: entry.descriptor.payee,
10
- token: entry.descriptor.token,
9
+ payee: entry.paymentScope?.payee ?? entry.descriptor.payee,
10
+ token: entry.paymentScope?.token ?? entry.descriptor.token,
11
11
  escrow: entry.escrow,
12
12
  chainId: entry.chainId,
13
13
  });
@@ -8,7 +8,6 @@ import * as Channel from '../precompile/Channel.js';
8
8
  import type { SessionCredentialPayload } from '../precompile/Protocol.js';
9
9
  import type { SessionSnapshot } from '../Snapshot.js';
10
10
  import { type ChannelEntry } from './ChannelOps.js';
11
- import { type ChannelSink } from './ChannelStore.js';
12
11
  /** Credential payload variants that carry cumulative voucher authorization. */
13
12
  export type CumulativeCredentialPayload = Extract<SessionCredentialPayload, {
14
13
  cumulativeAmount: string;
@@ -98,6 +97,8 @@ export type ClientSessionMethodDetails = {
98
97
  escrow?: Address | undefined;
99
98
  /** Whether the challenge allows fee-sponsored open/top-up transactions. */
100
99
  feePayer?: boolean | undefined;
100
+ /** Fee token selected by the server for open/top-up transactions. */
101
+ feeToken?: Address | undefined;
101
102
  /** Channel operator address advertised by the server. */
102
103
  operator?: Address | undefined;
103
104
  /** Server bootstrap snapshot for a reusable session channel. */
@@ -105,6 +106,8 @@ export type ClientSessionMethodDetails = {
105
106
  };
106
107
  /** Dependencies used to resolve a challenge into typed credential-planning data. */
107
108
  export type ResolveChallengeContextParameters = {
109
+ /** Whether to accept a noncanonical escrow advertised by the server. @default false */
110
+ allowCustomEscrow?: boolean | undefined;
108
111
  /** Challenge received from the 402 response. */
109
112
  challenge: Challenge.Challenge;
110
113
  /** Optional local escrow override. */
@@ -159,9 +162,15 @@ export type ChallengeContext = {
159
162
  client: Client;
160
163
  escrow: Address;
161
164
  feePayer?: boolean | undefined;
165
+ feeToken?: Address | undefined;
162
166
  key: string;
163
167
  operator?: Address | undefined;
164
168
  payee: Address;
169
+ /** Logical merchant scope when the channel uses an indirect payment route. */
170
+ paymentScope?: {
171
+ payee: Address;
172
+ token: Address;
173
+ } | undefined;
165
174
  snapshot?: SessionSnapshot | undefined;
166
175
  /** Server-provided raw deposit hint for opening a channel, before local maxDeposit capping. */
167
176
  suggestedDepositRaw?: string | undefined;
@@ -248,8 +257,14 @@ export type CredentialPlan =
248
257
  account: ViemAccount;
249
258
  context: ManualSessionDescriptorContext;
250
259
  decimals: number;
260
+ entry?: ChannelEntry | undefined;
251
261
  resolved: ChallengeContext;
252
262
  };
263
+ /** Signed credential plus the channel state to commit after all signing succeeds. */
264
+ export type CredentialResult = {
265
+ payload: SessionCredentialPayload;
266
+ entry?: ChannelEntry | undefined;
267
+ };
253
268
  /** Resolves raw challenge fields into the typed data required by client credential planning. */
254
269
  export declare function resolveChallengeContext(parameters: ResolveChallengeContextParameters): Promise<ChallengeContext>;
255
270
  /** Validates descriptor identity and reads open channel state for client-side recovery. */
@@ -265,5 +280,5 @@ export declare function canSignDescriptor(account: ViemAccount, descriptor: Chan
265
280
  /** Chooses the next credential plan from local channel cache and optional caller context. */
266
281
  export declare function planCredential(parameters: PlanCredentialParameters): CredentialPlan;
267
282
  /** Executes a credential plan and returns the concrete session credential payload. */
268
- export declare function executeCredentialPlan(plan: CredentialPlan, sink: ChannelSink, autoSwap?: AutoSwap.resolve.Resolved | false): Promise<SessionCredentialPayload>;
283
+ export declare function executeCredentialPlan(plan: CredentialPlan, autoSwap?: AutoSwap.resolve.Resolved | false, feeToken?: Address | undefined): Promise<CredentialResult>;
269
284
  //# sourceMappingURL=CredentialState.d.ts.map
@@ -6,7 +6,7 @@ import * as Chain from '../precompile/Chain.js';
6
6
  import * as Channel from '../precompile/Channel.js';
7
7
  import * as Voucher from '../precompile/Voucher.js';
8
8
  import { createClosePayload, createOpenPayload, createTopUpPayload, createVoucherPayload, isSameAddress, resolveAuthorizedSigner, resolveEscrow, } from './ChannelOps.js';
9
- import { channelKey, entryKey } from './ChannelStore.js';
9
+ import { channelKey } from './ChannelStore.js';
10
10
  import { assertWithinMaxDeposit, resolveOpeningDeposit } from './Runtime.js';
11
11
  /** Returns whether a credential payload carries cumulative voucher authorization. */
12
12
  export function hasCredentialCumulativeAmount(payload) {
@@ -18,33 +18,18 @@ export function readCredentialCumulativeAmount(payload) {
18
18
  return undefined;
19
19
  return BigInt(payload.cumulativeAmount);
20
20
  }
21
- /**
22
- * Persists a channel entry through the sink and notifies observers. Closed
23
- * channels are removed from the store but still reported to observers so callers
24
- * can react to the close.
25
- */
26
- async function storeChannelEntry(sink, entry) {
27
- if (entry.opened)
28
- await sink.store.set(entry);
29
- else
30
- await sink.store.delete(entryKey(entry));
31
- sink.notifyUpdate(entry);
32
- }
33
- /** Applies a credential payload's cumulative amount to the stored channel at `key`. */
34
- async function applyCumulative(sink, key, payload) {
21
+ /** Applies a credential payload to a matching cached channel without persisting it. */
22
+ function applyCredential(entry, payload) {
35
23
  const cumulativeAmount = readCredentialCumulativeAmount(payload);
36
- if (cumulativeAmount === undefined)
37
- return;
38
- const entry = await sink.store.get(key);
39
- if (!entry)
40
- return;
41
- if (entry.channelId.toLowerCase() !== payload.channelId.toLowerCase())
42
- return;
43
- entry.cumulativeAmount =
44
- entry.cumulativeAmount > cumulativeAmount ? entry.cumulativeAmount : cumulativeAmount;
45
- if (payload.action === 'close')
46
- entry.opened = false;
47
- await storeChannelEntry(sink, entry);
24
+ if (cumulativeAmount === undefined ||
25
+ !entry ||
26
+ entry.channelId.toLowerCase() !== payload.channelId.toLowerCase())
27
+ return undefined;
28
+ return {
29
+ ...entry,
30
+ cumulativeAmount: entry.cumulativeAmount > cumulativeAmount ? entry.cumulativeAmount : cumulativeAmount,
31
+ opened: payload.action === 'close' ? false : entry.opened,
32
+ };
48
33
  }
49
34
  const hexSchema = z.custom((value) => typeof value === 'string' && /^0x[0-9a-fA-F]*$/.test(value));
50
35
  const hashSchema = z.custom((value) => typeof value === 'string' && /^0x[0-9a-fA-F]{64}$/.test(value));
@@ -106,6 +91,7 @@ function readMethodDetails(challenge) {
106
91
  escrowContract: readOptionalAddress(methodDetails.escrowContract),
107
92
  escrow: readOptionalAddress(methodDetails.escrow),
108
93
  feePayer: typeof methodDetails.feePayer === 'boolean' ? methodDetails.feePayer : undefined,
94
+ feeToken: readOptionalAddress(methodDetails.feeToken),
109
95
  operator: readOptionalAddress(methodDetails.operator),
110
96
  sessionSnapshot: Constants.getMethodDetail(methodDetails, Constants.MethodDetailKeys.sessionSnapshot),
111
97
  };
@@ -125,13 +111,13 @@ function readSuggestedDeposit(value) {
125
111
  }
126
112
  /** Resolves raw challenge fields into the typed data required by client credential planning. */
127
113
  export async function resolveChallengeContext(parameters) {
128
- const { challenge, escrowOverride, getClient } = parameters;
114
+ const { allowCustomEscrow, challenge, escrowOverride, getClient } = parameters;
129
115
  const methodDetails = readMethodDetails(challenge);
130
116
  const client = await getClient({ chainId: methodDetails.chainId });
131
117
  const chainId = methodDetails.chainId ?? client.chain?.id;
132
118
  if (!chainId)
133
119
  throw new Error('No chainId configured for TIP-1034 session challenge.');
134
- const escrow = resolveEscrow(challenge, escrowOverride);
120
+ const escrow = resolveEscrow(challenge, escrowOverride, allowCustomEscrow);
135
121
  const payee = readAddress(challenge.request.recipient, 'recipient');
136
122
  const token = readAddress(challenge.request.currency, 'currency');
137
123
  return {
@@ -141,6 +127,7 @@ export async function resolveChallengeContext(parameters) {
141
127
  client,
142
128
  escrow,
143
129
  feePayer: methodDetails.feePayer,
130
+ feeToken: methodDetails.feeToken,
144
131
  key: channelKey({ payee, token, escrow, chainId }),
145
132
  operator: methodDetails.operator,
146
133
  payee,
@@ -288,6 +275,7 @@ export function planCredential(parameters) {
288
275
  account,
289
276
  context,
290
277
  decimals,
278
+ entry,
291
279
  resolved,
292
280
  };
293
281
  }
@@ -295,30 +283,39 @@ export function planCredential(parameters) {
295
283
  throw new Error('descriptor required to reuse TIP-1034 channel');
296
284
  const recoverContext = resolveRecoverContext({ context, snapshot: resolved.snapshot });
297
285
  if (!entry && recoverContext && canSignDescriptor(account, recoverContext.descriptor)) {
298
- return {
299
- type: 'recover',
300
- account,
301
- context: recoverContext,
302
- decimals,
303
- maxDeposit,
304
- resolved,
305
- };
286
+ // A server snapshot may describe another rail's channel (e.g. a
287
+ // machine-token descriptor advertised to a direct-rail client); ignore
288
+ // hints that do not match this challenge instead of failing recovery on
289
+ // every attempt. Explicit caller descriptors keep failing loudly in
290
+ // recovery validation.
291
+ const recoverable = context?.descriptor !== undefined ||
292
+ (isSameAddress(recoverContext.descriptor.payee, resolved.payee) &&
293
+ isSameAddress(recoverContext.descriptor.token, resolved.token));
294
+ if (recoverable)
295
+ return {
296
+ type: 'recover',
297
+ account,
298
+ context: recoverContext,
299
+ decimals,
300
+ maxDeposit,
301
+ resolved,
302
+ };
306
303
  }
307
304
  if (entry?.opened && canSignDescriptor(account, entry.descriptor))
308
305
  return { type: 'voucher', account, entry, maxDeposit, resolved };
309
306
  return { type: 'open', account, context, maxDeposit, resolved };
310
307
  }
311
308
  /** Executes a credential plan and returns the concrete session credential payload. */
312
- export async function executeCredentialPlan(plan, sink, autoSwap = false) {
309
+ export async function executeCredentialPlan(plan, autoSwap = false, feeToken) {
313
310
  switch (plan.type) {
314
311
  case 'open':
315
- return open(plan, sink, autoSwap);
312
+ return open(plan, autoSwap, feeToken);
316
313
  case 'recover':
317
- return recover(plan, sink);
314
+ return recover(plan);
318
315
  case 'voucher':
319
- return voucher(plan, sink);
316
+ return voucher(plan);
320
317
  case 'manual':
321
- return manual(plan, sink, autoSwap);
318
+ return manual(plan, autoSwap, feeToken);
322
319
  }
323
320
  }
324
321
  async function resolveAutoSwapCalls(autoSwap, parameters) {
@@ -332,7 +329,7 @@ async function resolveAutoSwapCalls(autoSwap, parameters) {
332
329
  slippage: autoSwap.slippage,
333
330
  }));
334
331
  }
335
- async function open(plan, sink, autoSwap) {
332
+ async function open(plan, autoSwap, feeToken) {
336
333
  const { account, resolved } = plan;
337
334
  const deposit = resolveOpeningDeposit({
338
335
  contextDepositRaw: plan.context?.depositRaw,
@@ -345,6 +342,7 @@ async function open(plan, sink, autoSwap) {
345
342
  deposit,
346
343
  escrow: resolved.escrow,
347
344
  feePayer: resolved.feePayer,
345
+ feeToken,
348
346
  initialAmount: resolved.amount,
349
347
  operator: resolved.operator,
350
348
  payee: resolved.payee,
@@ -356,18 +354,21 @@ async function open(plan, sink, autoSwap) {
356
354
  }),
357
355
  token: resolved.token,
358
356
  });
359
- await storeChannelEntry(sink, {
360
- channelId: payload.channelId,
361
- cumulativeAmount: resolved.amount,
362
- deposit,
363
- descriptor: payload.descriptor,
364
- escrow: resolved.escrow,
365
- chainId: resolved.chainId,
366
- opened: true,
367
- });
368
- return payload;
357
+ return {
358
+ payload,
359
+ entry: {
360
+ channelId: payload.channelId,
361
+ cumulativeAmount: resolved.amount,
362
+ deposit,
363
+ descriptor: payload.descriptor,
364
+ escrow: resolved.escrow,
365
+ chainId: resolved.chainId,
366
+ opened: true,
367
+ ...(resolved.paymentScope && { paymentScope: resolved.paymentScope }),
368
+ },
369
+ };
369
370
  }
370
- async function recover(plan, sink) {
371
+ async function recover(plan) {
371
372
  const { account, context, decimals, maxDeposit, resolved } = plan;
372
373
  const { descriptor } = context;
373
374
  const reusable = await resolveReusableChannel({
@@ -394,27 +395,28 @@ async function recover(plan, sink) {
394
395
  throw new Error('recovered voucher amount exceeds on-chain channel deposit');
395
396
  assertWithinMaxDeposit(cumulativeAmount, maxDeposit);
396
397
  const payload = await createVoucherPayload(resolved.client, account, descriptor, cumulativeAmount, resolved.chainId, resolved.escrow);
397
- await storeChannelEntry(sink, {
398
- channelId: reusable.channelId,
399
- cumulativeAmount,
400
- deposit: reusable.state.deposit,
401
- descriptor,
402
- escrow: resolved.escrow,
403
- chainId: resolved.chainId,
404
- opened: true,
405
- });
406
- return payload;
398
+ return {
399
+ payload,
400
+ entry: {
401
+ channelId: reusable.channelId,
402
+ cumulativeAmount,
403
+ deposit: reusable.state.deposit,
404
+ descriptor,
405
+ escrow: resolved.escrow,
406
+ chainId: resolved.chainId,
407
+ opened: true,
408
+ ...(resolved.paymentScope && { paymentScope: resolved.paymentScope }),
409
+ },
410
+ };
407
411
  }
408
- async function voucher(plan, sink) {
412
+ async function voucher(plan) {
409
413
  const { account, entry, resolved } = plan;
410
414
  const cumulativeAmount = entry.cumulativeAmount + resolved.amount;
411
415
  assertWithinMaxDeposit(cumulativeAmount, plan.maxDeposit);
412
416
  const payload = await createVoucherPayload(resolved.client, account, entry.descriptor, cumulativeAmount, resolved.chainId, resolved.escrow);
413
- entry.cumulativeAmount = cumulativeAmount;
414
- await storeChannelEntry(sink, entry);
415
- return payload;
417
+ return { payload, entry: { ...entry, cumulativeAmount } };
416
418
  }
417
- async function manual(plan, sink, autoSwap) {
419
+ async function manual(plan, autoSwap, feeToken) {
418
420
  const { account, context, decimals, resolved } = plan;
419
421
  const { descriptor } = context;
420
422
  const channelId = Channel.computeId({
@@ -438,16 +440,15 @@ async function manual(plan, sink, autoSwap) {
438
440
  decimals,
439
441
  descriptor,
440
442
  resolved,
441
- }, autoSwap);
442
- await applyCumulative(sink, resolved.key, payload);
443
- return payload;
443
+ }, autoSwap, feeToken);
444
+ return { payload, entry: applyCredential(plan.entry, payload) };
444
445
  }
445
- async function executeManualCredential(parameters, autoSwap) {
446
+ async function executeManualCredential(parameters, autoSwap, feeToken) {
446
447
  switch (parameters.context.action) {
447
448
  case 'open':
448
449
  return manualOpen(parameters);
449
450
  case 'topUp':
450
- return manualTopUp(parameters, autoSwap);
451
+ return manualTopUp(parameters, autoSwap, feeToken);
451
452
  case 'voucher':
452
453
  return manualVoucher(parameters);
453
454
  case 'close':
@@ -471,7 +472,7 @@ async function manualOpen(parameters) {
471
472
  authorizedSigner: descriptor.authorizedSigner,
472
473
  };
473
474
  }
474
- async function manualTopUp(parameters, autoSwap) {
475
+ async function manualTopUp(parameters, autoSwap, feeToken) {
475
476
  const { account, channelId, context, decimals, descriptor, resolved } = parameters;
476
477
  const additionalDeposit = requireContextAmount(context, decimals, 'additionalDeposit', 'topUp');
477
478
  if (context.transaction) {
@@ -489,7 +490,7 @@ async function manualTopUp(parameters, autoSwap) {
489
490
  amountOut: additionalDeposit,
490
491
  client: resolved.client,
491
492
  tokenOut: resolved.token,
492
- }));
493
+ }), feeToken);
493
494
  }
494
495
  function manualVoucher(parameters) {
495
496
  const { account, context, decimals, descriptor, resolved } = parameters;
@@ -308,8 +308,10 @@ export type ExpectedCloseReceiptParameters = {
308
308
  challengeId: string;
309
309
  /** Channel ID being closed. */
310
310
  channelId: Hex;
311
- /** Expected final cumulative/spent amount. */
311
+ /** Expected final cumulative authorization. */
312
312
  expectedCloseAmount: string;
313
+ /** Lowest cumulative spend already confirmed by the client. */
314
+ minimumSpent?: bigint | undefined;
313
315
  /** Receipt to test. */
314
316
  receipt: SessionReceipt;
315
317
  };
@@ -434,7 +436,7 @@ export declare function closedStateFromReceipt(receipt: SessionReceipt, entry: C
434
436
  * Priority:
435
437
  * 1. Matching close-ready receipt spend.
436
438
  * 2. Matching socket delivery estimate (`deliveredChunks * tickCost`) clamped by cumulative.
437
- * 3. Latest receipt-tracked spend for HTTP/SSE.
439
+ * 3. Local cumulative authorization high-water mark for HTTP/SSE.
438
440
  */
439
441
  export declare function computeFallbackCloseAmount(parameters: FallbackCloseAmountParameters): bigint;
440
442
  /**
@@ -319,18 +319,27 @@ export function localCloseSpendLimit(parameters) {
319
319
  /** Throws when a close-ready receipt asks the client to sign beyond local state. */
320
320
  export function assertCloseReadyWithinLocalState(parameters) {
321
321
  const { cumulativeAmount, readySpent, spent } = parameters;
322
+ if (!Ws.isUint96(readySpent))
323
+ throw new Error('close-ready spent is not a uint96 amount');
324
+ if (readySpent < spent)
325
+ throw new Error('close-ready spent is below locally confirmed spend');
322
326
  if (readySpent > localCloseSpendLimit({ cumulativeAmount, spent })) {
323
327
  throw new Error('close-ready spent exceeds local voucher state');
324
328
  }
325
329
  }
326
330
  /** Returns whether a receipt is the expected final close settlement receipt. */
327
331
  export function isExpectedCloseReceipt(parameters) {
328
- const { challengeId, channelId, expectedCloseAmount, receipt } = parameters;
332
+ const { challengeId, channelId, expectedCloseAmount, minimumSpent = 0n, receipt } = parameters;
333
+ const expected = Ws.parseUint96Amount(expectedCloseAmount);
334
+ const receiptSpent = Ws.parseUint96Amount(receipt.spent);
335
+ if (expected === undefined || receiptSpent === undefined || !Ws.isUint96(minimumSpent))
336
+ return false;
329
337
  return (Boolean(receipt.txHash) &&
330
338
  receipt.challengeId === challengeId &&
331
339
  receipt.channelId === channelId &&
332
340
  receipt.acceptedCumulative === expectedCloseAmount &&
333
- receipt.spent === expectedCloseAmount);
341
+ receiptSpent >= minimumSpent &&
342
+ receiptSpent <= expected);
334
343
  }
335
344
  /** Projects cached channel data into an active state-machine state. */
336
345
  export function activeStateFromChannel(parameters) {
@@ -402,21 +411,27 @@ export function closedStateFromReceipt(receipt, entry) {
402
411
  * Priority:
403
412
  * 1. Matching close-ready receipt spend.
404
413
  * 2. Matching socket delivery estimate (`deliveredChunks * tickCost`) clamped by cumulative.
405
- * 3. Latest receipt-tracked spend for HTTP/SSE.
414
+ * 3. Local cumulative authorization high-water mark for HTTP/SSE.
406
415
  */
407
416
  export function computeFallbackCloseAmount(parameters) {
408
417
  const { challengeId, channelId, closeReadyReceipt, cumulativeAmount, deliveredChunks = 0n, socketChallengeId, socketChannelId, spent, tickCost = 0n, } = parameters;
418
+ if (spent > cumulativeAmount) {
419
+ throw new Error('locally confirmed spend exceeds local voucher state');
420
+ }
409
421
  if (closeReadyReceipt &&
410
422
  closeReadyReceipt.challengeId === challengeId &&
411
423
  closeReadyReceipt.channelId === channelId) {
412
- return BigInt(closeReadyReceipt.spent);
424
+ const closeReadySpent = Ws.parseUint96Amount(closeReadyReceipt.spent);
425
+ if (closeReadySpent === undefined)
426
+ throw new Error('close-ready spent is not a uint96 amount');
427
+ return closeReadySpent > spent ? closeReadySpent : spent;
413
428
  }
414
429
  if (socketChallengeId === challengeId && socketChannelId === channelId && tickCost > 0n) {
415
430
  const deliveryEstimate = deliveredChunks * tickCost;
416
431
  const bestSpent = spent > deliveryEstimate ? spent : deliveryEstimate;
417
432
  return bestSpent > cumulativeAmount ? cumulativeAmount : bestSpent;
418
433
  }
419
- return spent;
434
+ return cumulativeAmount;
420
435
  }
421
436
  /**
422
437
  * Restores a channel's cumulative voucher boundary and returns the refreshed active state.
@@ -501,6 +516,7 @@ export async function closeSocketSession(parameters) {
501
516
  challengeId: target.challenge.id,
502
517
  channelId: target.channelId,
503
518
  expectedCloseAmount,
519
+ minimumSpent: readySpent,
504
520
  receipt,
505
521
  }));
506
522
  activeSocket.send(Ws.formatAuthorizationMessage(credential));