mppx 0.8.17 → 0.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +21 -4
  4. package/dist/bin.js +3 -3
  5. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  6. package/dist/cli/cli.js +253 -1505
  7. package/dist/cli/plugins/index.js +19 -5
  8. package/dist/cli/plugins/tempo.js +7 -3
  9. package/dist/cli/sessions/Manager.js +7 -4
  10. package/dist/cli/sessions/request.d.ts +2 -0
  11. package/dist/cli/sessions/request.js +18 -0
  12. package/dist/cli/sessions/store.js +28 -14
  13. package/dist/discovery/Discovery.js +2 -1
  14. package/dist/evm/client/Charge.js +8 -0
  15. package/dist/server/core.d.ts +9 -0
  16. package/dist/server/core.js +9 -0
  17. package/dist/stripe/server/Charge.js +2 -4
  18. package/dist/stripe/server/Methods.d.ts +2 -2
  19. package/dist/stripe/server/Methods.js +17 -11
  20. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  21. package/dist/stripe/server/internal/html.gen.js +1 -1
  22. package/dist/stripe/server/spt.d.ts +8 -0
  23. package/dist/stripe/server/spt.js +8 -0
  24. package/dist/tempo/Methods.d.ts +13 -0
  25. package/dist/tempo/Methods.js +14 -3
  26. package/dist/tempo/client/Charge.d.ts +3 -0
  27. package/dist/tempo/client/Charge.js +31 -9
  28. package/dist/tempo/client/Methods.d.ts +13 -0
  29. package/dist/tempo/internal/defaults.d.ts +11 -0
  30. package/dist/tempo/internal/defaults.js +11 -0
  31. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  32. package/dist/tempo/internal/machine-token-charge.js +113 -0
  33. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  34. package/dist/tempo/internal/machine-token-session.js +173 -0
  35. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  36. package/dist/tempo/internal/signature-envelope.js +28 -0
  37. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  38. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  39. package/dist/tempo/legacy/client/Session.d.ts +13 -1
  40. package/dist/tempo/legacy/client/Session.js +3 -3
  41. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  42. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  43. package/dist/tempo/server/Charge.d.ts +3 -0
  44. package/dist/tempo/server/Charge.js +58 -17
  45. package/dist/tempo/server/Methods.d.ts +21 -4
  46. package/dist/tempo/server/Methods.js +8 -4
  47. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  48. package/dist/tempo/server/internal/html.gen.js +1 -1
  49. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  50. package/dist/tempo/session/client/ChannelOps.js +35 -6
  51. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  52. package/dist/tempo/session/client/ChannelStore.js +2 -2
  53. package/dist/tempo/session/client/CredentialState.d.ts +17 -2
  54. package/dist/tempo/session/client/CredentialState.js +77 -76
  55. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  56. package/dist/tempo/session/client/Runtime.js +21 -5
  57. package/dist/tempo/session/client/Session.d.ts +15 -3
  58. package/dist/tempo/session/client/Session.js +186 -63
  59. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  60. package/dist/tempo/session/client/SessionManager.js +35 -11
  61. package/dist/tempo/session/client/Transports.d.ts +2 -0
  62. package/dist/tempo/session/client/Transports.js +12 -2
  63. package/dist/tempo/session/precompile/Chain.d.ts +10 -2
  64. package/dist/tempo/session/precompile/Chain.js +50 -10
  65. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  66. package/dist/tempo/session/precompile/Protocol.js +7 -0
  67. package/dist/tempo/session/precompile/Voucher.d.ts +3 -1
  68. package/dist/tempo/session/precompile/Voucher.js +6 -12
  69. package/dist/tempo/session/server/ChannelStore.d.ts +6 -0
  70. package/dist/tempo/session/server/ChannelStore.js +11 -4
  71. package/dist/tempo/session/server/CredentialVerification.d.ts +11 -9
  72. package/dist/tempo/session/server/CredentialVerification.js +185 -109
  73. package/dist/tempo/session/server/MeteredStream.d.ts +1 -1
  74. package/dist/tempo/session/server/MeteredStream.js +5 -4
  75. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  76. package/dist/tempo/session/server/RequestState.js +61 -15
  77. package/dist/tempo/session/server/Session.d.ts +14 -2
  78. package/dist/tempo/session/server/Session.js +37 -6
  79. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  80. package/dist/tempo/session/server/Settlement.js +53 -21
  81. package/dist/x402/client/Exact.d.ts +8 -0
  82. package/dist/x402/client/Exact.js +40 -10
  83. package/dist/x402/server/EvmCharge.d.ts +22 -0
  84. package/dist/x402/server/EvmCharge.js +23 -1
  85. package/package.json +15 -37
  86. package/dist/BodyDigest.d.ts.map +0 -1
  87. package/dist/BodyDigest.js.map +0 -1
  88. package/dist/Challenge.d.ts.map +0 -1
  89. package/dist/Challenge.js.map +0 -1
  90. package/dist/Constants.d.ts.map +0 -1
  91. package/dist/Constants.js.map +0 -1
  92. package/dist/Credential.d.ts.map +0 -1
  93. package/dist/Credential.js.map +0 -1
  94. package/dist/Errors.d.ts.map +0 -1
  95. package/dist/Errors.js.map +0 -1
  96. package/dist/Expires.d.ts.map +0 -1
  97. package/dist/Expires.js.map +0 -1
  98. package/dist/Html.d.ts.map +0 -1
  99. package/dist/Html.js.map +0 -1
  100. package/dist/Mcp.d.ts.map +0 -1
  101. package/dist/Mcp.js.map +0 -1
  102. package/dist/Method.d.ts.map +0 -1
  103. package/dist/Method.js.map +0 -1
  104. package/dist/PaymentRequest.d.ts.map +0 -1
  105. package/dist/PaymentRequest.js.map +0 -1
  106. package/dist/Receipt.d.ts.map +0 -1
  107. package/dist/Receipt.js.map +0 -1
  108. package/dist/Store.d.ts.map +0 -1
  109. package/dist/Store.js.map +0 -1
  110. package/dist/attestation/Client.d.ts.map +0 -1
  111. package/dist/attestation/Client.js.map +0 -1
  112. package/dist/attestation/Constants.d.ts.map +0 -1
  113. package/dist/attestation/Constants.js.map +0 -1
  114. package/dist/attestation/Server.d.ts.map +0 -1
  115. package/dist/attestation/Server.js.map +0 -1
  116. package/dist/attestation/Types.d.ts.map +0 -1
  117. package/dist/attestation/Types.js.map +0 -1
  118. package/dist/attestation/index.d.ts.map +0 -1
  119. package/dist/attestation/index.js.map +0 -1
  120. package/dist/attestation/internal/HttpMessageSignature.d.ts.map +0 -1
  121. package/dist/attestation/internal/HttpMessageSignature.js.map +0 -1
  122. package/dist/attestation/internal/SigningContext.d.ts.map +0 -1
  123. package/dist/attestation/internal/SigningContext.js.map +0 -1
  124. package/dist/bin.d.ts.map +0 -1
  125. package/dist/bin.js.map +0 -1
  126. package/dist/cli/account.d.ts.map +0 -1
  127. package/dist/cli/account.js.map +0 -1
  128. package/dist/cli/cli.d.ts.map +0 -1
  129. package/dist/cli/cli.js.map +0 -1
  130. package/dist/cli/config.d.ts.map +0 -1
  131. package/dist/cli/config.js.map +0 -1
  132. package/dist/cli/internal.d.ts.map +0 -1
  133. package/dist/cli/internal.js.map +0 -1
  134. package/dist/cli/plugins/evm.d.ts.map +0 -1
  135. package/dist/cli/plugins/evm.js.map +0 -1
  136. package/dist/cli/plugins/index.d.ts.map +0 -1
  137. package/dist/cli/plugins/index.js.map +0 -1
  138. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  139. package/dist/cli/plugins/plugin.js.map +0 -1
  140. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  141. package/dist/cli/plugins/stripe.js.map +0 -1
  142. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  143. package/dist/cli/plugins/tempo.js.map +0 -1
  144. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  145. package/dist/cli/sessions/Manager.js.map +0 -1
  146. package/dist/cli/sessions/commands.d.ts.map +0 -1
  147. package/dist/cli/sessions/commands.js.map +0 -1
  148. package/dist/cli/sessions/request.d.ts.map +0 -1
  149. package/dist/cli/sessions/request.js.map +0 -1
  150. package/dist/cli/sessions/store.d.ts.map +0 -1
  151. package/dist/cli/sessions/store.js.map +0 -1
  152. package/dist/cli/utils.d.ts.map +0 -1
  153. package/dist/cli/utils.js.map +0 -1
  154. package/dist/cli/validate/challenge.d.ts.map +0 -1
  155. package/dist/cli/validate/challenge.js.map +0 -1
  156. package/dist/cli/validate/discovery.d.ts.map +0 -1
  157. package/dist/cli/validate/discovery.js.map +0 -1
  158. package/dist/cli/validate/helpers.d.ts.map +0 -1
  159. package/dist/cli/validate/helpers.js.map +0 -1
  160. package/dist/cli/validate/index.d.ts.map +0 -1
  161. package/dist/cli/validate/index.js.map +0 -1
  162. package/dist/cli/validate/messages.d.ts.map +0 -1
  163. package/dist/cli/validate/messages.js.map +0 -1
  164. package/dist/cli/validate/payment.d.ts.map +0 -1
  165. package/dist/cli/validate/payment.js.map +0 -1
  166. package/dist/client/Methods.d.ts.map +0 -1
  167. package/dist/client/Methods.js.map +0 -1
  168. package/dist/client/Mppx.d.ts.map +0 -1
  169. package/dist/client/Mppx.js.map +0 -1
  170. package/dist/client/Transport.d.ts.map +0 -1
  171. package/dist/client/Transport.js.map +0 -1
  172. package/dist/client/index.d.ts.map +0 -1
  173. package/dist/client/index.js.map +0 -1
  174. package/dist/client/internal/Fetch.d.ts.map +0 -1
  175. package/dist/client/internal/Fetch.js.map +0 -1
  176. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  177. package/dist/client/internal/MethodChallenge.js.map +0 -1
  178. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  179. package/dist/client/internal/MethodResponse.js.map +0 -1
  180. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  181. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  182. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  183. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  184. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  185. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  186. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  187. package/dist/client/internal/protocols/Shared.js.map +0 -1
  188. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  189. package/dist/client/internal/protocols/X402.js.map +0 -1
  190. package/dist/client/node.d.ts.map +0 -1
  191. package/dist/client/node.js.map +0 -1
  192. package/dist/discovery/Discovery.d.ts.map +0 -1
  193. package/dist/discovery/Discovery.js.map +0 -1
  194. package/dist/discovery/OpenApi.d.ts.map +0 -1
  195. package/dist/discovery/OpenApi.js.map +0 -1
  196. package/dist/discovery/Validate.d.ts.map +0 -1
  197. package/dist/discovery/Validate.js.map +0 -1
  198. package/dist/discovery/index.d.ts.map +0 -1
  199. package/dist/discovery/index.js.map +0 -1
  200. package/dist/discovery/internal/Metadata.d.ts.map +0 -1
  201. package/dist/discovery/internal/Metadata.js.map +0 -1
  202. package/dist/evm/Assets.d.ts.map +0 -1
  203. package/dist/evm/Assets.js.map +0 -1
  204. package/dist/evm/Chains.d.ts.map +0 -1
  205. package/dist/evm/Chains.js.map +0 -1
  206. package/dist/evm/Methods.d.ts.map +0 -1
  207. package/dist/evm/Methods.js.map +0 -1
  208. package/dist/evm/Types.d.ts.map +0 -1
  209. package/dist/evm/Types.js.map +0 -1
  210. package/dist/evm/client/Charge.d.ts.map +0 -1
  211. package/dist/evm/client/Charge.js.map +0 -1
  212. package/dist/evm/client/Methods.d.ts.map +0 -1
  213. package/dist/evm/client/Methods.js.map +0 -1
  214. package/dist/evm/client/index.d.ts.map +0 -1
  215. package/dist/evm/client/index.js.map +0 -1
  216. package/dist/evm/index.d.ts.map +0 -1
  217. package/dist/evm/index.js.map +0 -1
  218. package/dist/evm/server/Charge.d.ts.map +0 -1
  219. package/dist/evm/server/Charge.js.map +0 -1
  220. package/dist/evm/server/Methods.d.ts.map +0 -1
  221. package/dist/evm/server/Methods.js.map +0 -1
  222. package/dist/evm/server/index.d.ts.map +0 -1
  223. package/dist/evm/server/index.js.map +0 -1
  224. package/dist/index.d.ts.map +0 -1
  225. package/dist/index.js.map +0 -1
  226. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  227. package/dist/internal/AcceptPayment.js.map +0 -1
  228. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  229. package/dist/internal/HeaderCodec.js.map +0 -1
  230. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  231. package/dist/internal/constantTimeEqual.js.map +0 -1
  232. package/dist/internal/env.d.ts.map +0 -1
  233. package/dist/internal/env.js.map +0 -1
  234. package/dist/internal/types.d.ts.map +0 -1
  235. package/dist/internal/types.js.map +0 -1
  236. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  237. package/dist/mcp/client/McpClient.js.map +0 -1
  238. package/dist/mcp/client/index.d.ts.map +0 -1
  239. package/dist/mcp/client/index.js.map +0 -1
  240. package/dist/mcp/server/Transport.d.ts.map +0 -1
  241. package/dist/mcp/server/Transport.js.map +0 -1
  242. package/dist/mcp/server/index.d.ts.map +0 -1
  243. package/dist/mcp/server/index.js.map +0 -1
  244. package/dist/middlewares/elysia.d.ts.map +0 -1
  245. package/dist/middlewares/elysia.js.map +0 -1
  246. package/dist/middlewares/express.d.ts.map +0 -1
  247. package/dist/middlewares/express.js.map +0 -1
  248. package/dist/middlewares/hono.d.ts.map +0 -1
  249. package/dist/middlewares/hono.js.map +0 -1
  250. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  251. package/dist/middlewares/internal/mppx.js.map +0 -1
  252. package/dist/middlewares/nextjs.d.ts.map +0 -1
  253. package/dist/middlewares/nextjs.js.map +0 -1
  254. package/dist/proxy/Proxy.d.ts.map +0 -1
  255. package/dist/proxy/Proxy.js.map +0 -1
  256. package/dist/proxy/Service.d.ts.map +0 -1
  257. package/dist/proxy/Service.js.map +0 -1
  258. package/dist/proxy/index.d.ts.map +0 -1
  259. package/dist/proxy/index.js.map +0 -1
  260. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  261. package/dist/proxy/internal/Headers.js.map +0 -1
  262. package/dist/proxy/internal/Route.d.ts.map +0 -1
  263. package/dist/proxy/internal/Route.js.map +0 -1
  264. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  265. package/dist/proxy/services/anthropic.js.map +0 -1
  266. package/dist/proxy/services/openai.d.ts.map +0 -1
  267. package/dist/proxy/services/openai.js.map +0 -1
  268. package/dist/proxy/services/stripe.d.ts.map +0 -1
  269. package/dist/proxy/services/stripe.js.map +0 -1
  270. package/dist/server/Methods.d.ts.map +0 -1
  271. package/dist/server/Methods.js.map +0 -1
  272. package/dist/server/Mppx.d.ts.map +0 -1
  273. package/dist/server/Mppx.js.map +0 -1
  274. package/dist/server/NodeListener.d.ts.map +0 -1
  275. package/dist/server/NodeListener.js.map +0 -1
  276. package/dist/server/Request.d.ts.map +0 -1
  277. package/dist/server/Request.js.map +0 -1
  278. package/dist/server/Response.d.ts.map +0 -1
  279. package/dist/server/Response.js.map +0 -1
  280. package/dist/server/Transport.d.ts.map +0 -1
  281. package/dist/server/Transport.js.map +0 -1
  282. package/dist/server/index.d.ts.map +0 -1
  283. package/dist/server/index.js.map +0 -1
  284. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  285. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  286. package/dist/server/internal/html/config.d.ts.map +0 -1
  287. package/dist/server/internal/html/config.js.map +0 -1
  288. package/dist/server/internal/html/constants.d.ts.map +0 -1
  289. package/dist/server/internal/html/constants.js.map +0 -1
  290. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  291. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  292. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  293. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  294. package/dist/server/internal/scope.d.ts.map +0 -1
  295. package/dist/server/internal/scope.js.map +0 -1
  296. package/dist/stripe/Methods.d.ts.map +0 -1
  297. package/dist/stripe/Methods.js.map +0 -1
  298. package/dist/stripe/client/Charge.d.ts.map +0 -1
  299. package/dist/stripe/client/Charge.js.map +0 -1
  300. package/dist/stripe/client/Methods.d.ts.map +0 -1
  301. package/dist/stripe/client/Methods.js.map +0 -1
  302. package/dist/stripe/client/index.d.ts.map +0 -1
  303. package/dist/stripe/client/index.js.map +0 -1
  304. package/dist/stripe/index.d.ts.map +0 -1
  305. package/dist/stripe/index.js.map +0 -1
  306. package/dist/stripe/internal/constants.d.ts.map +0 -1
  307. package/dist/stripe/internal/constants.js.map +0 -1
  308. package/dist/stripe/internal/types.d.ts.map +0 -1
  309. package/dist/stripe/internal/types.js.map +0 -1
  310. package/dist/stripe/server/Charge.d.ts.map +0 -1
  311. package/dist/stripe/server/Charge.js.map +0 -1
  312. package/dist/stripe/server/Methods.d.ts.map +0 -1
  313. package/dist/stripe/server/Methods.js.map +0 -1
  314. package/dist/stripe/server/index.d.ts.map +0 -1
  315. package/dist/stripe/server/index.js.map +0 -1
  316. package/dist/stripe/server/internal/deposit-address.d.ts.map +0 -1
  317. package/dist/stripe/server/internal/deposit-address.js.map +0 -1
  318. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  319. package/dist/stripe/server/internal/html/types.js.map +0 -1
  320. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  321. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  322. package/dist/stripe/server/internal/record-payment.d.ts.map +0 -1
  323. package/dist/stripe/server/internal/record-payment.js.map +0 -1
  324. package/dist/stripe/server/internal/request.d.ts.map +0 -1
  325. package/dist/stripe/server/internal/request.js.map +0 -1
  326. package/dist/tap/Constants.d.ts.map +0 -1
  327. package/dist/tap/Constants.js.map +0 -1
  328. package/dist/tap/Types.d.ts.map +0 -1
  329. package/dist/tap/Types.js.map +0 -1
  330. package/dist/tap/client/index.d.ts.map +0 -1
  331. package/dist/tap/client/index.js.map +0 -1
  332. package/dist/tap/index.d.ts.map +0 -1
  333. package/dist/tap/index.js.map +0 -1
  334. package/dist/tap/server/index.d.ts.map +0 -1
  335. package/dist/tap/server/index.js.map +0 -1
  336. package/dist/tempo/Attribution.d.ts.map +0 -1
  337. package/dist/tempo/Attribution.js.map +0 -1
  338. package/dist/tempo/Methods.d.ts.map +0 -1
  339. package/dist/tempo/Methods.js.map +0 -1
  340. package/dist/tempo/Proof.d.ts.map +0 -1
  341. package/dist/tempo/Proof.js.map +0 -1
  342. package/dist/tempo/client/Charge.d.ts.map +0 -1
  343. package/dist/tempo/client/Charge.js.map +0 -1
  344. package/dist/tempo/client/Methods.d.ts.map +0 -1
  345. package/dist/tempo/client/Methods.js.map +0 -1
  346. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  347. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  348. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  349. package/dist/tempo/client/Subscription.js.map +0 -1
  350. package/dist/tempo/client/index.d.ts.map +0 -1
  351. package/dist/tempo/client/index.js.map +0 -1
  352. package/dist/tempo/index.d.ts.map +0 -1
  353. package/dist/tempo/index.js.map +0 -1
  354. package/dist/tempo/internal/account.d.ts.map +0 -1
  355. package/dist/tempo/internal/account.js.map +0 -1
  356. package/dist/tempo/internal/address.d.ts.map +0 -1
  357. package/dist/tempo/internal/address.js.map +0 -1
  358. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  359. package/dist/tempo/internal/auto-swap.js.map +0 -1
  360. package/dist/tempo/internal/charge.d.ts.map +0 -1
  361. package/dist/tempo/internal/charge.js.map +0 -1
  362. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  363. package/dist/tempo/internal/defaults.js.map +0 -1
  364. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  365. package/dist/tempo/internal/fee-payer.js.map +0 -1
  366. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  367. package/dist/tempo/internal/fee-token.js.map +0 -1
  368. package/dist/tempo/internal/proof.d.ts.map +0 -1
  369. package/dist/tempo/internal/proof.js.map +0 -1
  370. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  371. package/dist/tempo/internal/selectors.js.map +0 -1
  372. package/dist/tempo/internal/types.d.ts.map +0 -1
  373. package/dist/tempo/internal/types.js.map +0 -1
  374. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  375. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  376. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  377. package/dist/tempo/legacy/client/Session.js.map +0 -1
  378. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  379. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  380. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  381. package/dist/tempo/legacy/client/index.js.map +0 -1
  382. package/dist/tempo/legacy/index.d.ts.map +0 -1
  383. package/dist/tempo/legacy/index.js.map +0 -1
  384. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  385. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  386. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  387. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  388. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  389. package/dist/tempo/legacy/session/Types.js.map +0 -1
  390. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  391. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  392. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  393. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  394. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  395. package/dist/tempo/legacy/session/index.js.map +0 -1
  396. package/dist/tempo/server/Charge.d.ts.map +0 -1
  397. package/dist/tempo/server/Charge.js.map +0 -1
  398. package/dist/tempo/server/Methods.d.ts.map +0 -1
  399. package/dist/tempo/server/Methods.js.map +0 -1
  400. package/dist/tempo/server/Relay.d.ts.map +0 -1
  401. package/dist/tempo/server/Relay.js.map +0 -1
  402. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  403. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  404. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  405. package/dist/tempo/server/Subscription.js.map +0 -1
  406. package/dist/tempo/server/index.d.ts.map +0 -1
  407. package/dist/tempo/server/index.js.map +0 -1
  408. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  409. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  410. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  411. package/dist/tempo/server/internal/request-body.js.map +0 -1
  412. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  413. package/dist/tempo/server/internal/transport.js.map +0 -1
  414. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  415. package/dist/tempo/session/Snapshot.js.map +0 -1
  416. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  417. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  418. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  419. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  420. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  421. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  422. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  423. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  424. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  425. package/dist/tempo/session/client/Runtime.js.map +0 -1
  426. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  427. package/dist/tempo/session/client/Session.js.map +0 -1
  428. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  429. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  430. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  431. package/dist/tempo/session/client/Transports.js.map +0 -1
  432. package/dist/tempo/session/client/index.d.ts.map +0 -1
  433. package/dist/tempo/session/client/index.js.map +0 -1
  434. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  435. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  436. package/dist/tempo/session/index.d.ts.map +0 -1
  437. package/dist/tempo/session/index.js.map +0 -1
  438. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  439. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  440. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  441. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  442. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  443. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  444. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  445. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  446. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  447. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  448. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  449. package/dist/tempo/session/precompile/index.js.map +0 -1
  450. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  451. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  452. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  453. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  454. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  455. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  456. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  457. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  458. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  459. package/dist/tempo/session/server/RequestState.js.map +0 -1
  460. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  461. package/dist/tempo/session/server/Session.js.map +0 -1
  462. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  463. package/dist/tempo/session/server/Settlement.js.map +0 -1
  464. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  465. package/dist/tempo/session/server/Sse.js.map +0 -1
  466. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  467. package/dist/tempo/session/server/Transports.js.map +0 -1
  468. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  469. package/dist/tempo/session/server/Ws.js.map +0 -1
  470. package/dist/tempo/session/server/index.d.ts.map +0 -1
  471. package/dist/tempo/session/server/index.js.map +0 -1
  472. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  473. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  474. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  475. package/dist/tempo/subscription/Receipt.js.map +0 -1
  476. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  477. package/dist/tempo/subscription/Store.js.map +0 -1
  478. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  479. package/dist/tempo/subscription/Types.js.map +0 -1
  480. package/dist/tempo/subscription/index.d.ts.map +0 -1
  481. package/dist/tempo/subscription/index.js.map +0 -1
  482. package/dist/validation/core.d.ts.map +0 -1
  483. package/dist/validation/core.js.map +0 -1
  484. package/dist/validation/index.d.ts.map +0 -1
  485. package/dist/validation/index.js.map +0 -1
  486. package/dist/viem/Account.d.ts.map +0 -1
  487. package/dist/viem/Account.js.map +0 -1
  488. package/dist/viem/Client.d.ts.map +0 -1
  489. package/dist/viem/Client.js.map +0 -1
  490. package/dist/web-bot-auth/Constants.d.ts.map +0 -1
  491. package/dist/web-bot-auth/Constants.js.map +0 -1
  492. package/dist/web-bot-auth/Types.d.ts.map +0 -1
  493. package/dist/web-bot-auth/Types.js.map +0 -1
  494. package/dist/web-bot-auth/client/index.d.ts.map +0 -1
  495. package/dist/web-bot-auth/client/index.js.map +0 -1
  496. package/dist/web-bot-auth/index.d.ts.map +0 -1
  497. package/dist/web-bot-auth/index.js.map +0 -1
  498. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +0 -1
  499. package/dist/web-bot-auth/internal/JwkThumbprint.js.map +0 -1
  500. package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +0 -1
  501. package/dist/web-bot-auth/internal/SignatureAgent.js.map +0 -1
  502. package/dist/web-bot-auth/server/index.d.ts.map +0 -1
  503. package/dist/web-bot-auth/server/index.js.map +0 -1
  504. package/dist/x402/Assets.d.ts.map +0 -1
  505. package/dist/x402/Assets.js.map +0 -1
  506. package/dist/x402/Header.d.ts.map +0 -1
  507. package/dist/x402/Header.js.map +0 -1
  508. package/dist/x402/Types.d.ts.map +0 -1
  509. package/dist/x402/Types.js.map +0 -1
  510. package/dist/x402/client/Exact.d.ts.map +0 -1
  511. package/dist/x402/client/Exact.js.map +0 -1
  512. package/dist/x402/index.d.ts.map +0 -1
  513. package/dist/x402/index.js.map +0 -1
  514. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  515. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  516. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  517. package/dist/x402/internal/RouteBinding.js.map +0 -1
  518. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  519. package/dist/x402/server/EvmCharge.js.map +0 -1
  520. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  521. package/dist/x402/server/Facilitator.js.map +0 -1
  522. package/dist/zod.d.ts.map +0 -1
  523. package/dist/zod.js.map +0 -1
  524. package/src/BodyDigest.test.ts +0 -43
  525. package/src/BodyDigest.ts +0 -55
  526. package/src/Challenge.fuzz.test.ts +0 -154
  527. package/src/Challenge.test-d.ts +0 -82
  528. package/src/Challenge.test.ts +0 -1060
  529. package/src/Challenge.ts +0 -687
  530. package/src/Constants.ts +0 -58
  531. package/src/Credential.fuzz.test.ts +0 -62
  532. package/src/Credential.test.ts +0 -378
  533. package/src/Credential.ts +0 -217
  534. package/src/Errors.test.ts +0 -520
  535. package/src/Errors.ts +0 -448
  536. package/src/Expires.test.ts +0 -112
  537. package/src/Expires.ts +0 -59
  538. package/src/Html.ts +0 -67
  539. package/src/Mcp.ts +0 -85
  540. package/src/Method.test.ts +0 -177
  541. package/src/Method.ts +0 -631
  542. package/src/PaymentRequest.test.ts +0 -147
  543. package/src/PaymentRequest.ts +0 -108
  544. package/src/Receipt.test.ts +0 -151
  545. package/src/Receipt.ts +0 -146
  546. package/src/Store.test-d.ts +0 -211
  547. package/src/Store.test.ts +0 -407
  548. package/src/Store.ts +0 -397
  549. package/src/attestation/Attestation.integration.test.ts +0 -208
  550. package/src/attestation/Client.test.ts +0 -83
  551. package/src/attestation/Client.ts +0 -34
  552. package/src/attestation/Constants.ts +0 -15
  553. package/src/attestation/Server.test.ts +0 -60
  554. package/src/attestation/Server.ts +0 -12
  555. package/src/attestation/Types.test-d.ts +0 -54
  556. package/src/attestation/Types.ts +0 -77
  557. package/src/attestation/index.ts +0 -5
  558. package/src/attestation/internal/HttpMessageSignature.test.ts +0 -101
  559. package/src/attestation/internal/HttpMessageSignature.ts +0 -429
  560. package/src/attestation/internal/SigningContext.ts +0 -13
  561. package/src/bin.js +0 -2
  562. package/src/bin.ts +0 -4
  563. package/src/cli/account.ts +0 -269
  564. package/src/cli/cli.test.ts +0 -2221
  565. package/src/cli/cli.ts +0 -1650
  566. package/src/cli/config.test.ts +0 -89
  567. package/src/cli/config.ts +0 -50
  568. package/src/cli/internal.ts +0 -114
  569. package/src/cli/mcp.test.ts +0 -262
  570. package/src/cli/plugins/evm.ts +0 -55
  571. package/src/cli/plugins/index.ts +0 -4
  572. package/src/cli/plugins/plugin.ts +0 -84
  573. package/src/cli/plugins/stripe.ts +0 -174
  574. package/src/cli/plugins/tempo.ts +0 -1102
  575. package/src/cli/sessions/Manager.test.ts +0 -249
  576. package/src/cli/sessions/Manager.ts +0 -93
  577. package/src/cli/sessions/commands.ts +0 -444
  578. package/src/cli/sessions/request.test.ts +0 -51
  579. package/src/cli/sessions/request.ts +0 -353
  580. package/src/cli/sessions/store.test.ts +0 -581
  581. package/src/cli/sessions/store.ts +0 -940
  582. package/src/cli/utils.test.ts +0 -156
  583. package/src/cli/utils.ts +0 -394
  584. package/src/cli/validate/challenge.ts +0 -565
  585. package/src/cli/validate/discovery.test.ts +0 -435
  586. package/src/cli/validate/discovery.ts +0 -221
  587. package/src/cli/validate/helpers.ts +0 -166
  588. package/src/cli/validate/index.ts +0 -229
  589. package/src/cli/validate/messages.ts +0 -7
  590. package/src/cli/validate/payment.ts +0 -774
  591. package/src/cli/validate.test.ts +0 -843
  592. package/src/client/Methods.ts +0 -8
  593. package/src/client/Mppx.test-d.ts +0 -287
  594. package/src/client/Mppx.test.ts +0 -1065
  595. package/src/client/Mppx.ts +0 -487
  596. package/src/client/Transport.test.ts +0 -586
  597. package/src/client/Transport.ts +0 -170
  598. package/src/client/index.ts +0 -29
  599. package/src/client/internal/Fetch.browser.test.ts +0 -197
  600. package/src/client/internal/Fetch.test-d.ts +0 -109
  601. package/src/client/internal/Fetch.test.ts +0 -2336
  602. package/src/client/internal/Fetch.ts +0 -1075
  603. package/src/client/internal/MethodChallenge.ts +0 -35
  604. package/src/client/internal/MethodResponse.ts +0 -67
  605. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  606. package/src/client/internal/protocols/Mcp.ts +0 -186
  607. package/src/client/internal/protocols/Mpp.ts +0 -21
  608. package/src/client/internal/protocols/Protocol.ts +0 -10
  609. package/src/client/internal/protocols/Shared.ts +0 -25
  610. package/src/client/internal/protocols/X402.ts +0 -46
  611. package/src/client/node.test.ts +0 -115
  612. package/src/client/node.ts +0 -247
  613. package/src/discovery/Discovery.test.ts +0 -214
  614. package/src/discovery/Discovery.ts +0 -105
  615. package/src/discovery/OpenApi.test.ts +0 -623
  616. package/src/discovery/OpenApi.ts +0 -192
  617. package/src/discovery/Validate.test.ts +0 -305
  618. package/src/discovery/Validate.ts +0 -77
  619. package/src/discovery/index.ts +0 -3
  620. package/src/discovery/internal/Metadata.ts +0 -51
  621. package/src/env.d.ts +0 -12
  622. package/src/evm/Assets.ts +0 -1
  623. package/src/evm/Chains.ts +0 -11
  624. package/src/evm/Methods.ts +0 -44
  625. package/src/evm/PublicInterface.test-d.ts +0 -134
  626. package/src/evm/Types.ts +0 -140
  627. package/src/evm/client/Charge.test.ts +0 -347
  628. package/src/evm/client/Charge.ts +0 -187
  629. package/src/evm/client/Methods.ts +0 -19
  630. package/src/evm/client/index.ts +0 -6
  631. package/src/evm/index.ts +0 -16
  632. package/src/evm/server/Charge.test.ts +0 -339
  633. package/src/evm/server/Charge.ts +0 -295
  634. package/src/evm/server/Methods.ts +0 -22
  635. package/src/evm/server/index.ts +0 -6
  636. package/src/index.ts +0 -14
  637. package/src/internal/AcceptPayment.test.ts +0 -347
  638. package/src/internal/AcceptPayment.ts +0 -366
  639. package/src/internal/HeaderCodec.ts +0 -36
  640. package/src/internal/changeset.test.ts +0 -106
  641. package/src/internal/constantTimeEqual.test.ts +0 -47
  642. package/src/internal/constantTimeEqual.ts +0 -10
  643. package/src/internal/env.test.ts +0 -42
  644. package/src/internal/env.ts +0 -49
  645. package/src/internal/types.test-d.ts +0 -21
  646. package/src/internal/types.ts +0 -479
  647. package/src/mcp/client/McpClient.integration.test.ts +0 -639
  648. package/src/mcp/client/McpClient.test-d.ts +0 -144
  649. package/src/mcp/client/McpClient.test.ts +0 -463
  650. package/src/mcp/client/McpClient.ts +0 -307
  651. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  652. package/src/mcp/client/index.ts +0 -2
  653. package/src/mcp/server/Transport.test.ts +0 -191
  654. package/src/mcp/server/Transport.ts +0 -111
  655. package/src/mcp/server/index.ts +0 -1
  656. package/src/middlewares/elysia.test.ts +0 -285
  657. package/src/middlewares/elysia.ts +0 -116
  658. package/src/middlewares/express.test.ts +0 -361
  659. package/src/middlewares/express.ts +0 -140
  660. package/src/middlewares/hono.test.ts +0 -473
  661. package/src/middlewares/hono.ts +0 -153
  662. package/src/middlewares/internal/mppx.test.ts +0 -177
  663. package/src/middlewares/internal/mppx.ts +0 -67
  664. package/src/middlewares/nextjs.test.ts +0 -359
  665. package/src/middlewares/nextjs.ts +0 -107
  666. package/src/proxy/Proxy.test.ts +0 -1038
  667. package/src/proxy/Proxy.ts +0 -483
  668. package/src/proxy/Proxy.upstreamError.test.ts +0 -364
  669. package/src/proxy/Service.test.ts +0 -252
  670. package/src/proxy/Service.ts +0 -280
  671. package/src/proxy/index.ts +0 -6
  672. package/src/proxy/internal/Headers.test.ts +0 -139
  673. package/src/proxy/internal/Headers.ts +0 -66
  674. package/src/proxy/internal/Route.test.ts +0 -217
  675. package/src/proxy/internal/Route.ts +0 -64
  676. package/src/proxy/services/anthropic.test.ts +0 -132
  677. package/src/proxy/services/anthropic.ts +0 -53
  678. package/src/proxy/services/hooks.test-d.ts +0 -14
  679. package/src/proxy/services/hooks.test.ts +0 -44
  680. package/src/proxy/services/openai.test.ts +0 -157
  681. package/src/proxy/services/openai.ts +0 -60
  682. package/src/proxy/services/stripe.test.ts +0 -175
  683. package/src/proxy/services/stripe.ts +0 -59
  684. package/src/server/Methods.test-d.ts +0 -88
  685. package/src/server/Methods.test.ts +0 -69
  686. package/src/server/Methods.ts +0 -3
  687. package/src/server/Mppx.authorize.test.ts +0 -210
  688. package/src/server/Mppx.test-d.ts +0 -494
  689. package/src/server/Mppx.test.ts +0 -6711
  690. package/src/server/Mppx.ts +0 -2919
  691. package/src/server/NodeListener.test.ts +0 -293
  692. package/src/server/NodeListener.ts +0 -45
  693. package/src/server/Request.test.ts +0 -255
  694. package/src/server/Request.ts +0 -155
  695. package/src/server/Response.test.ts +0 -32
  696. package/src/server/Response.ts +0 -45
  697. package/src/server/Transport.test.ts +0 -598
  698. package/src/server/Transport.ts +0 -320
  699. package/src/server/index.ts +0 -9
  700. package/src/server/internal/html/compose.main.gen.ts +0 -2
  701. package/src/server/internal/html/compose.main.ts +0 -88
  702. package/src/server/internal/html/config.ts +0 -672
  703. package/src/server/internal/html/constants.ts +0 -28
  704. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  705. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  706. package/src/server/internal/html/serviceWorker.ts +0 -27
  707. package/src/server/internal/html/tsconfig.compose.json +0 -8
  708. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  709. package/src/server/internal/html/tsconfig.worker.json +0 -8
  710. package/src/server/internal/scope.ts +0 -43
  711. package/src/stripe/Charge.integration.test.ts +0 -329
  712. package/src/stripe/Methods.test.ts +0 -62
  713. package/src/stripe/Methods.ts +0 -44
  714. package/src/stripe/client/Charge.test.ts +0 -205
  715. package/src/stripe/client/Charge.ts +0 -132
  716. package/src/stripe/client/Methods.ts +0 -37
  717. package/src/stripe/client/index.ts +0 -2
  718. package/src/stripe/index.ts +0 -1
  719. package/src/stripe/internal/constants.ts +0 -7
  720. package/src/stripe/internal/types.ts +0 -47
  721. package/src/stripe/server/Charge.test-d.ts +0 -81
  722. package/src/stripe/server/Charge.test.ts +0 -700
  723. package/src/stripe/server/Charge.ts +0 -487
  724. package/src/stripe/server/Methods.test-d.ts +0 -157
  725. package/src/stripe/server/Methods.test.ts +0 -403
  726. package/src/stripe/server/Methods.ts +0 -441
  727. package/src/stripe/server/index.ts +0 -2
  728. package/src/stripe/server/internal/deposit-address.ts +0 -57
  729. package/src/stripe/server/internal/html/main.ts +0 -165
  730. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  731. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  732. package/src/stripe/server/internal/html/package.json +0 -9
  733. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  734. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  735. package/src/stripe/server/internal/html/types.ts +0 -5
  736. package/src/stripe/server/internal/html.gen.ts +0 -2
  737. package/src/stripe/server/internal/record-payment.ts +0 -66
  738. package/src/stripe/server/internal/request.ts +0 -49
  739. package/src/tap/Constants.ts +0 -32
  740. package/src/tap/Tap.test.ts +0 -125
  741. package/src/tap/Types.ts +0 -11
  742. package/src/tap/client/index.ts +0 -54
  743. package/src/tap/index.ts +0 -4
  744. package/src/tap/server/index.ts +0 -48
  745. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  746. package/src/tempo/Attribution.test.ts +0 -294
  747. package/src/tempo/Attribution.ts +0 -185
  748. package/src/tempo/Methods.test.ts +0 -425
  749. package/src/tempo/Methods.ts +0 -367
  750. package/src/tempo/Proof.conformance.test.ts +0 -146
  751. package/src/tempo/Proof.test-d.ts +0 -32
  752. package/src/tempo/Proof.test.ts +0 -40
  753. package/src/tempo/Proof.ts +0 -69
  754. package/src/tempo/PublicExports.test-d.ts +0 -130
  755. package/src/tempo/Subscription.integration.test.ts +0 -591
  756. package/src/tempo/client/Charge.test.ts +0 -501
  757. package/src/tempo/client/Charge.ts +0 -271
  758. package/src/tempo/client/Methods.ts +0 -45
  759. package/src/tempo/client/ResolveAccount.ts +0 -46
  760. package/src/tempo/client/Subscription.test.ts +0 -180
  761. package/src/tempo/client/Subscription.ts +0 -156
  762. package/src/tempo/client/index.ts +0 -17
  763. package/src/tempo/index.ts +0 -5
  764. package/src/tempo/internal/account.ts +0 -56
  765. package/src/tempo/internal/address.test.ts +0 -42
  766. package/src/tempo/internal/address.ts +0 -6
  767. package/src/tempo/internal/auto-swap.test.ts +0 -198
  768. package/src/tempo/internal/auto-swap.ts +0 -145
  769. package/src/tempo/internal/charge.test.ts +0 -66
  770. package/src/tempo/internal/charge.ts +0 -43
  771. package/src/tempo/internal/defaults.test.ts +0 -95
  772. package/src/tempo/internal/defaults.ts +0 -53
  773. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  774. package/src/tempo/internal/fee-payer.ts +0 -808
  775. package/src/tempo/internal/fee-token.test.ts +0 -165
  776. package/src/tempo/internal/fee-token.ts +0 -72
  777. package/src/tempo/internal/proof.test.ts +0 -97
  778. package/src/tempo/internal/proof.ts +0 -87
  779. package/src/tempo/internal/selectors.ts +0 -10
  780. package/src/tempo/internal/types.ts +0 -19
  781. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  782. package/src/tempo/legacy/README.md +0 -9
  783. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  784. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  785. package/src/tempo/legacy/client/Session.test.ts +0 -800
  786. package/src/tempo/legacy/client/Session.ts +0 -397
  787. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  788. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  789. package/src/tempo/legacy/client/index.ts +0 -6
  790. package/src/tempo/legacy/index.ts +0 -4
  791. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  792. package/src/tempo/legacy/session/Chain.ts +0 -830
  793. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  794. package/src/tempo/legacy/session/Channel.ts +0 -51
  795. package/src/tempo/legacy/session/Types.ts +0 -91
  796. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  797. package/src/tempo/legacy/session/Voucher.ts +0 -183
  798. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  799. package/src/tempo/legacy/session/index.ts +0 -8
  800. package/src/tempo/server/AtomicStore.test-d.ts +0 -63
  801. package/src/tempo/server/Charge.test.ts +0 -6056
  802. package/src/tempo/server/Charge.ts +0 -1379
  803. package/src/tempo/server/Methods.ts +0 -86
  804. package/src/tempo/server/Relay.test.ts +0 -677
  805. package/src/tempo/server/Relay.ts +0 -297
  806. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  807. package/src/tempo/server/SponsorBudget.ts +0 -219
  808. package/src/tempo/server/Sse.test.ts +0 -321
  809. package/src/tempo/server/Subscription.test.ts +0 -1944
  810. package/src/tempo/server/Subscription.ts +0 -1336
  811. package/src/tempo/server/index.ts +0 -12
  812. package/src/tempo/server/internal/html/main.ts +0 -115
  813. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  814. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  815. package/src/tempo/server/internal/html/package.json +0 -10
  816. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  817. package/src/tempo/server/internal/html.gen.ts +0 -2
  818. package/src/tempo/server/internal/request-body.test.ts +0 -210
  819. package/src/tempo/server/internal/request-body.ts +0 -61
  820. package/src/tempo/server/internal/transport.test.ts +0 -922
  821. package/src/tempo/server/internal/transport.ts +0 -322
  822. package/src/tempo/session/README.md +0 -320
  823. package/src/tempo/session/Snapshot.test.ts +0 -41
  824. package/src/tempo/session/Snapshot.ts +0 -95
  825. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  826. package/src/tempo/session/client/ChannelOps.ts +0 -348
  827. package/src/tempo/session/client/ChannelStore.ts +0 -111
  828. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  829. package/src/tempo/session/client/CredentialState.ts +0 -942
  830. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  831. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  832. package/src/tempo/session/client/Runtime.ts +0 -1008
  833. package/src/tempo/session/client/Session.test.ts +0 -1355
  834. package/src/tempo/session/client/Session.ts +0 -420
  835. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  836. package/src/tempo/session/client/SessionManager.ts +0 -996
  837. package/src/tempo/session/client/Transports.test.ts +0 -1141
  838. package/src/tempo/session/client/Transports.ts +0 -1534
  839. package/src/tempo/session/client/index.ts +0 -40
  840. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  841. package/src/tempo/session/index.ts +0 -7
  842. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  843. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  844. package/src/tempo/session/precompile/Chain.ts +0 -1269
  845. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  846. package/src/tempo/session/precompile/Channel.ts +0 -108
  847. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  848. package/src/tempo/session/precompile/Protocol.ts +0 -520
  849. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  850. package/src/tempo/session/precompile/Voucher.ts +0 -162
  851. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  852. package/src/tempo/session/precompile/index.ts +0 -33
  853. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  854. package/src/tempo/session/server/ChannelOps.ts +0 -157
  855. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  856. package/src/tempo/session/server/ChannelStore.ts +0 -856
  857. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  858. package/src/tempo/session/server/CredentialVerification.ts +0 -1087
  859. package/src/tempo/session/server/MeteredStream.ts +0 -99
  860. package/src/tempo/session/server/RequestState.test.ts +0 -574
  861. package/src/tempo/session/server/RequestState.ts +0 -507
  862. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  863. package/src/tempo/session/server/Session.test.ts +0 -4247
  864. package/src/tempo/session/server/Session.ts +0 -669
  865. package/src/tempo/session/server/Settlement.test.ts +0 -345
  866. package/src/tempo/session/server/Settlement.ts +0 -527
  867. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  868. package/src/tempo/session/server/Sse.test.ts +0 -634
  869. package/src/tempo/session/server/Sse.ts +0 -261
  870. package/src/tempo/session/server/Transports.test.ts +0 -346
  871. package/src/tempo/session/server/Transports.ts +0 -256
  872. package/src/tempo/session/server/Ws.test.ts +0 -765
  873. package/src/tempo/session/server/Ws.ts +0 -391
  874. package/src/tempo/session/server/index.ts +0 -12
  875. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  876. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  877. package/src/tempo/subscription/Receipt.ts +0 -28
  878. package/src/tempo/subscription/Store.test.ts +0 -609
  879. package/src/tempo/subscription/Store.ts +0 -449
  880. package/src/tempo/subscription/Types.ts +0 -68
  881. package/src/tempo/subscription/index.ts +0 -23
  882. package/src/tsconfig.json +0 -10
  883. package/src/validation/core.ts +0 -386
  884. package/src/validation/index.ts +0 -11
  885. package/src/viem/Account.test.ts +0 -72
  886. package/src/viem/Account.ts +0 -30
  887. package/src/viem/Client.test.ts +0 -366
  888. package/src/viem/Client.ts +0 -93
  889. package/src/web-bot-auth/Constants.ts +0 -24
  890. package/src/web-bot-auth/Types.ts +0 -9
  891. package/src/web-bot-auth/WebBotAuth.test.ts +0 -182
  892. package/src/web-bot-auth/client/index.ts +0 -84
  893. package/src/web-bot-auth/index.ts +0 -6
  894. package/src/web-bot-auth/internal/JwkThumbprint.ts +0 -21
  895. package/src/web-bot-auth/internal/SignatureAgent.ts +0 -18
  896. package/src/web-bot-auth/server/index.ts +0 -113
  897. package/src/x402/Assets.test.ts +0 -253
  898. package/src/x402/Assets.ts +0 -221
  899. package/src/x402/Exact.e2e.test.ts +0 -488
  900. package/src/x402/Exact.localnet.test.ts +0 -475
  901. package/src/x402/Header.test.ts +0 -73
  902. package/src/x402/Header.ts +0 -79
  903. package/src/x402/PublicInterface.test-d.ts +0 -39
  904. package/src/x402/Types.ts +0 -248
  905. package/src/x402/client/Exact.test.ts +0 -309
  906. package/src/x402/client/Exact.ts +0 -186
  907. package/src/x402/index.ts +0 -6
  908. package/src/x402/internal/ChallengeBrand.ts +0 -14
  909. package/src/x402/internal/RouteBinding.ts +0 -18
  910. package/src/x402/server/EvmCharge.ts +0 -410
  911. package/src/x402/server/Facilitator.test.ts +0 -111
  912. package/src/x402/server/Facilitator.ts +0 -56
  913. package/src/zod.test.ts +0 -169
  914. package/src/zod.ts +0 -71
@@ -1,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';
@@ -22,6 +22,7 @@ export declare function session(parameters?: session.Parameters): Method.Client<
22
22
  credential: {
23
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,15 +39,18 @@ 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
  };
@@ -57,7 +61,9 @@ export declare function session(parameters?: session.Parameters): Method.Client<
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>>;
@@ -80,6 +86,8 @@ export declare function session(parameters?: session.Parameters): Method.Client<
80
86
  minVoucherDelta?: string | undefined;
81
87
  chainId?: number | undefined;
82
88
  feePayer?: boolean | undefined;
89
+ feeToken?: string | undefined;
90
+ machineTokenEnabled?: boolean | undefined;
83
91
  operator?: string | undefined;
84
92
  sessionProtocol?: "v1" | "v2" | undefined;
85
93
  sessionSnapshot?: import("./Runtime.js").SessionSnapshot | undefined;
@@ -92,6 +100,8 @@ export declare function session(parameters?: session.Parameters): Method.Client<
92
100
  decimals: number;
93
101
  escrowContract?: string | undefined;
94
102
  feePayer?: boolean | undefined;
103
+ feeToken?: string | undefined;
104
+ machineTokenEnabled?: boolean | undefined;
95
105
  minVoucherDelta?: string | undefined;
96
106
  operator?: string | undefined;
97
107
  recipient?: string | undefined;
@@ -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. */
@@ -440,6 +440,7 @@ export async function closeHttpSession(parameters) {
440
440
  challengeId: closeChallenge.id,
441
441
  channelId: parameters.target.channelId,
442
442
  expectedCloseAmount: signedCloseAmount,
443
+ minimumSpent: parameters.getMinimumSpent?.() ?? 0n,
443
444
  receipt,
444
445
  }))
445
446
  throw new Error('Session close response included a mismatched payment receipt.');
@@ -698,7 +699,10 @@ export function isExpectedSocketReceipt(parameters) {
698
699
  export function validateSocketCloseReadyReceipt(parameters) {
699
700
  if (!isExpectedSocketReceipt(parameters))
700
701
  return 'received mismatched payment-close-ready frame';
701
- if (BigInt(parameters.receipt.spent) > parameters.cumulativeAmount) {
702
+ const spent = Ws.parseUint96Amount(parameters.receipt.spent);
703
+ if (spent === undefined)
704
+ return 'received invalid payment-close-ready spend';
705
+ if (spent > parameters.cumulativeAmount) {
702
706
  return 'received payment-close-ready beyond local voucher state';
703
707
  }
704
708
  return undefined;
@@ -710,7 +714,13 @@ export function validateSocketPaymentReceipt(parameters) {
710
714
  return 'received mismatched payment-receipt frame';
711
715
  if (expectedCloseAmount !== null &&
712
716
  Boolean(receipt.txHash) &&
713
- !isExpectedCloseReceipt({ challengeId, channelId, expectedCloseAmount, receipt })) {
717
+ !isExpectedCloseReceipt({
718
+ challengeId,
719
+ channelId,
720
+ expectedCloseAmount,
721
+ minimumSpent: BigInt(expectedCloseAmount),
722
+ receipt,
723
+ })) {
714
724
  return 'received mismatched payment-close receipt frame';
715
725
  }
716
726
  return undefined;