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,942 +0,0 @@
1
- import {
2
- isAddress,
3
- parseUnits,
4
- type Account as ViemAccount,
5
- type Address,
6
- type Client,
7
- type Hex,
8
- } from 'viem'
9
-
10
- import type * as Challenge from '../../../Challenge.js'
11
- import * as Constants from '../../../Constants.js'
12
- import * as Account from '../../../viem/Account.js'
13
- import * as z from '../../../zod.js'
14
- import * as AutoSwap from '../../internal/auto-swap.js'
15
- import * as Chain from '../precompile/Chain.js'
16
- import * as Channel from '../precompile/Channel.js'
17
- import type { SessionCredentialPayload } from '../precompile/Protocol.js'
18
- import * as Voucher from '../precompile/Voucher.js'
19
- import type { SessionSnapshot } from '../Snapshot.js'
20
- import {
21
- createClosePayload,
22
- createOpenPayload,
23
- createTopUpPayload,
24
- createVoucherPayload,
25
- isSameAddress,
26
- resolveAuthorizedSigner,
27
- resolveEscrow,
28
- type ChannelEntry,
29
- type TempoChannelCall,
30
- } from './ChannelOps.js'
31
- import { channelKey, entryKey, type ChannelSink } from './ChannelStore.js'
32
- import { assertWithinMaxDeposit, resolveOpeningDeposit } from './Runtime.js'
33
-
34
- /** Credential payload variants that carry cumulative voucher authorization. */
35
- export type CumulativeCredentialPayload = Extract<
36
- SessionCredentialPayload,
37
- { cumulativeAmount: string }
38
- >
39
-
40
- /** Returns whether a credential payload carries cumulative voucher authorization. */
41
- export function hasCredentialCumulativeAmount(
42
- payload: SessionCredentialPayload,
43
- ): payload is CumulativeCredentialPayload {
44
- return 'cumulativeAmount' in payload
45
- }
46
-
47
- /** Reads cumulative authorization from a credential payload when the action carries one. */
48
- export function readCredentialCumulativeAmount(
49
- payload: SessionCredentialPayload,
50
- ): bigint | undefined {
51
- if (!hasCredentialCumulativeAmount(payload)) return undefined
52
- return BigInt(payload.cumulativeAmount)
53
- }
54
-
55
- /**
56
- * Persists a channel entry through the sink and notifies observers. Closed
57
- * channels are removed from the store but still reported to observers so callers
58
- * can react to the close.
59
- */
60
- async function storeChannelEntry(sink: ChannelSink, entry: ChannelEntry): Promise<void> {
61
- if (entry.opened) await sink.store.set(entry)
62
- else await sink.store.delete(entryKey(entry))
63
- sink.notifyUpdate(entry)
64
- }
65
-
66
- /** Applies a credential payload's cumulative amount to the stored channel at `key`. */
67
- async function applyCumulative(
68
- sink: ChannelSink,
69
- key: string,
70
- payload: SessionCredentialPayload,
71
- ): Promise<void> {
72
- const cumulativeAmount = readCredentialCumulativeAmount(payload)
73
- if (cumulativeAmount === undefined) return
74
- const entry = await sink.store.get(key)
75
- if (!entry) return
76
- if (entry.channelId.toLowerCase() !== payload.channelId.toLowerCase()) return
77
- entry.cumulativeAmount =
78
- entry.cumulativeAmount > cumulativeAmount ? entry.cumulativeAmount : cumulativeAmount
79
- if (payload.action === 'close') entry.opened = false
80
- await storeChannelEntry(sink, entry)
81
- }
82
-
83
- const hexSchema = z.custom<Hex>(
84
- (value) => typeof value === 'string' && /^0x[0-9a-fA-F]*$/.test(value),
85
- )
86
- const hashSchema = z.custom<Hex>(
87
- (value) => typeof value === 'string' && /^0x[0-9a-fA-F]{64}$/.test(value),
88
- )
89
-
90
- /** Runtime schema for low-level TIP-1034 session credential context. */
91
- export const sessionContextSchema = z.object({
92
- account: z.optional(z.custom<Account.getResolver.Parameters['account']>()),
93
- autoSwap: z.optional(z.custom<AutoSwap.resolve.Value>()),
94
- action: z.optional(z.enum(['open', 'topUp', 'voucher', 'close'])),
95
- channelId: z.optional(hashSchema),
96
- cumulativeAmount: z.optional(z.amount()),
97
- cumulativeAmountRaw: z.optional(z.string()),
98
- transaction: z.optional(hexSchema),
99
- descriptor: z.optional(z.custom<Channel.ChannelDescriptor>()),
100
- additionalDeposit: z.optional(z.amount()),
101
- additionalDepositRaw: z.optional(z.string()),
102
- depositRaw: z.optional(z.string()),
103
- })
104
-
105
- /** Low-level context accepted by `tempo.session()` for manual credentials. */
106
- export type SessionContext = {
107
- /** Optional account override used for this credential only. */
108
- account?: Account.getResolver.Parameters['account'] | undefined
109
- /** Automatically acquire the session currency from fallback stablecoins before open/top-up. */
110
- autoSwap?: AutoSwap.resolve.Value | undefined
111
- /** Manual credential action. Omit for automatic open/recover/voucher management. */
112
- action?: 'open' | 'topUp' | 'voucher' | 'close' | undefined
113
- /** Channel ID being reused or manually operated on. */
114
- channelId?: Hex | undefined
115
- /** Human-readable cumulative voucher authorization, parsed with configured decimals. */
116
- cumulativeAmount?: string | undefined
117
- /** Raw cumulative voucher authorization. Takes precedence over `cumulativeAmount`. */
118
- cumulativeAmountRaw?: string | undefined
119
- /** Signed Tempo transaction for manual open/top-up credentials. */
120
- transaction?: Hex | undefined
121
- /** TIP-1034 descriptor required for recovery and manual credentials. */
122
- descriptor?: Channel.ChannelDescriptor | undefined
123
- /** Human-readable additional top-up deposit, parsed with configured decimals. */
124
- additionalDeposit?: string | undefined
125
- /** Raw additional top-up deposit. Takes precedence over `additionalDeposit`. */
126
- additionalDepositRaw?: string | undefined
127
- /** Raw opening deposit override for automatic open credentials. */
128
- depositRaw?: string | undefined
129
- }
130
-
131
- /** Manual low-level TIP-1034 session action name. */
132
- export type SessionAction = NonNullable<SessionContext['action']>
133
-
134
- /** Context amount fields that may be supplied as human-readable or raw token units. */
135
- export type SessionAmountField = 'additionalDeposit' | 'cumulativeAmount'
136
-
137
- /** Session context narrowed to an explicit manual action. */
138
- export type ManualSessionContext = SessionContext & { action: SessionAction }
139
-
140
- /** Manual session action context after the required channel descriptor is present. */
141
- export type ManualSessionDescriptorContext = ManualSessionContext & {
142
- /** TIP-1034 channel descriptor used by manual open/top-up/voucher/close actions. */
143
- descriptor: Channel.ChannelDescriptor
144
- }
145
-
146
- /** Session context narrowed to a recoverable TIP-1034 channel descriptor. */
147
- export type DescriptorSessionContext = SessionContext & { descriptor: Channel.ChannelDescriptor }
148
-
149
- /** Returns whether a session context contains an explicit manual action. */
150
- export function hasSessionAction(
151
- context: SessionContext | undefined,
152
- ): context is ManualSessionContext {
153
- return context?.action !== undefined
154
- }
155
-
156
- /** Returns whether a context is a manual action with the descriptor required to execute it. */
157
- export function hasManualSessionDescriptor(
158
- context: SessionContext | undefined,
159
- ): context is ManualSessionDescriptorContext {
160
- return hasSessionAction(context) && context.descriptor !== undefined
161
- }
162
-
163
- /** Returns whether a session context contains a recoverable channel descriptor. */
164
- export function hasSessionDescriptor(
165
- context: SessionContext | undefined,
166
- ): context is DescriptorSessionContext {
167
- return context?.descriptor !== undefined
168
- }
169
-
170
- /** Parses an optional session context amount, preferring the raw-unit field when present. */
171
- export function parseOptionalContextAmount(
172
- context: SessionContext,
173
- decimals: number,
174
- field: SessionAmountField,
175
- ): bigint | undefined {
176
- const raw =
177
- field === 'additionalDeposit' ? context.additionalDepositRaw : context.cumulativeAmountRaw
178
- const amount =
179
- field === 'additionalDeposit' ? context.additionalDeposit : context.cumulativeAmount
180
- if (raw) return BigInt(raw)
181
- if (amount) return parseUnits(amount, decimals)
182
- return undefined
183
- }
184
-
185
- /** Parses a required session context amount and throws with action-specific context when absent. */
186
- export function requireContextAmount(
187
- context: SessionContext,
188
- decimals: number,
189
- field: SessionAmountField,
190
- action: string,
191
- ): bigint {
192
- const amount = parseOptionalContextAmount(context, decimals, field)
193
- if (amount === undefined) throw new Error(`${field} required for ${action} action`)
194
- return amount
195
- }
196
-
197
- /** Tempo-specific details embedded in a `tempo/session` challenge request. */
198
- export type ClientSessionMethodDetails = {
199
- /** Chain ID used for voucher domain and channel ID derivation. */
200
- chainId?: number | undefined
201
- /** Escrow contract address advertised by the server. */
202
- escrowContract?: Address | undefined
203
- /** Legacy escrow hint accepted during migration. */
204
- escrow?: Address | undefined
205
- /** Whether the challenge allows fee-sponsored open/top-up transactions. */
206
- feePayer?: boolean | undefined
207
- /** Channel operator address advertised by the server. */
208
- operator?: Address | undefined
209
- /** Server bootstrap snapshot for a reusable session channel. */
210
- sessionSnapshot?: SessionSnapshot | undefined
211
- }
212
-
213
- /** Dependencies used to resolve a challenge into typed credential-planning data. */
214
- export type ResolveChallengeContextParameters = {
215
- /** Challenge received from the 402 response. */
216
- challenge: Challenge.Challenge
217
- /** Optional local escrow override. */
218
- escrowOverride?: Address | undefined
219
- /** Resolves the viem client for the challenge chain. */
220
- getClient(parameters: { chainId?: number | undefined }): Client | Promise<Client>
221
- }
222
-
223
- /** Reads TIP-1034 channel state for a recovery candidate. */
224
- export type ReadReusableChannelState = (
225
- client: Client,
226
- channelId: Hex,
227
- escrow: Address,
228
- ) => Promise<Chain.ChannelState>
229
-
230
- /** Expected request fields used to prove a descriptor belongs to the current challenge. */
231
- export type ReusableChannelExpectation = {
232
- /** Chain ID used in the TIP-1034 channel ID derivation. */
233
- chainId: number
234
- /** Escrow precompile address used in the TIP-1034 channel ID derivation. */
235
- escrow: Address
236
- /** Payee expected by the current challenge. */
237
- payee: Address
238
- /** Payer address controlled by the local account. */
239
- payer: Address
240
- /** Voucher authority resolved from the local account. */
241
- authorizedSigner: Address
242
- /** Token expected by the current challenge. */
243
- token: Address
244
- }
245
-
246
- /** Inputs for validating and loading an existing precompile session channel. */
247
- export type ResolveReusableChannelParameters = {
248
- /** Optional caller/server supplied channel ID. Must match the descriptor-derived ID. */
249
- channelId?: string | undefined
250
- /** Viem client used to read on-chain channel state. */
251
- client: Client
252
- /** Descriptor required by TIP-1034 vouchers and management transactions. */
253
- descriptor: Channel.ChannelDescriptor
254
- /** Expected challenge fields the descriptor must match. */
255
- expected: ReusableChannelExpectation
256
- /** Optional state reader for tests or custom clients. Defaults to `Chain.getChannelState`. */
257
- readChannelState?: ReadReusableChannelState | undefined
258
- }
259
-
260
- /** Validated reusable channel data. */
261
- export type ReusableChannel = {
262
- /** Descriptor-derived TIP-1034 channel ID. */
263
- channelId: Hex
264
- /** On-chain channel state proving the channel is open and reusable. */
265
- state: Chain.ChannelState
266
- }
267
-
268
- /** Resolved payment challenge fields used to plan a client-side session credential. */
269
- export type ChallengeContext = {
270
- amount: bigint
271
- challenge: Challenge.Challenge
272
- chainId: number
273
- client: Client
274
- escrow: Address
275
- feePayer?: boolean | undefined
276
- key: string
277
- operator?: Address | undefined
278
- payee: Address
279
- snapshot?: SessionSnapshot | undefined
280
- /** Server-provided raw deposit hint for opening a channel, before local maxDeposit capping. */
281
- suggestedDepositRaw?: string | undefined
282
- token: Address
283
- }
284
-
285
- /** Inputs used to choose the next client-side session credential operation. */
286
- export type PlanCredentialParameters = {
287
- account: ViemAccount
288
- /** Channel previously stored for this challenge scope, fetched by the caller. */
289
- entry: ChannelEntry | undefined
290
- context?: SessionContext | undefined
291
- decimals: number
292
- maxDeposit?: bigint | undefined
293
- resolved: ChallengeContext
294
- }
295
-
296
- /** Inputs used to derive reusable-channel recovery context from caller context and server hints. */
297
- export type ResolveRecoverContextParameters = {
298
- /** Caller-provided low-level session context, when present. */
299
- context?: SessionContext | undefined
300
- /** Server-provided session snapshot, when present. */
301
- snapshot?: SessionSnapshot | undefined
302
- }
303
-
304
- /** Inputs used to choose the next cumulative authorization for a recovered channel. */
305
- export type ResolveRecoveredCumulativeParameters = {
306
- /** Caller or stored-channel recovery context. */
307
- context: DescriptorSessionContext
308
- /** Token decimals used to parse human-readable context amounts. */
309
- decimals: number
310
- /** Current request amount from the active challenge. */
311
- requestAmount: bigint
312
- /** Server snapshot for the recovered channel, when present. */
313
- snapshot?: SessionSnapshot | undefined
314
- /** On-chain settled amount used when no local/server accounting is available. */
315
- settled: bigint
316
- }
317
-
318
- /** Inputs used to validate and hydrate a server-provided session snapshot. */
319
- export type HydrateSessionSnapshotParameters = {
320
- /** Account expected to own the channel and its voucher authority. */
321
- account: ViemAccount
322
- /** Viem client used to read authoritative TIP-1034 channel state. */
323
- client: Client
324
- /** Snapshot returned by an MPP server bootstrap. */
325
- snapshot: SessionSnapshot
326
- /** Optional state reader for deterministic tests. */
327
- readChannelState?: ReadReusableChannelState | undefined
328
- }
329
-
330
- /** Validated client channel state reconstructed without local persistence. */
331
- export type HydratedSessionSnapshot = {
332
- /** Reusable channel entry safe to cache locally. */
333
- entry: ChannelEntry
334
- /** Server-accounted delivered spend at bootstrap time. */
335
- spent: bigint
336
- }
337
-
338
- /** Data-first description of the next credential operation the client should execute. */
339
- export type CredentialPlan =
340
- /** No reusable channel is available, so create an open transaction and initial voucher. */
341
- | {
342
- type: 'open'
343
- account: ViemAccount
344
- context?: SessionContext | undefined
345
- maxDeposit?: bigint | undefined
346
- resolved: ChallengeContext
347
- }
348
- /** Rehydrate a known channel from server snapshot or caller descriptor before signing. */
349
- | {
350
- type: 'recover'
351
- account: ViemAccount
352
- context: DescriptorSessionContext
353
- decimals: number
354
- maxDeposit?: bigint | undefined
355
- resolved: ChallengeContext
356
- }
357
- /** Reuse an active cached channel by increasing the cumulative voucher amount. */
358
- | {
359
- type: 'voucher'
360
- account: ViemAccount
361
- entry: ChannelEntry
362
- maxDeposit?: bigint | undefined
363
- resolved: ChallengeContext
364
- }
365
- /** Caller supplied an explicit low-level action such as top-up, voucher, or close. */
366
- | {
367
- type: 'manual'
368
- account: ViemAccount
369
- context: ManualSessionDescriptorContext
370
- decimals: number
371
- resolved: ChallengeContext
372
- }
373
-
374
- type ManualCredentialParameters = Pick<
375
- Extract<CredentialPlan, { type: 'manual' }>,
376
- 'account' | 'context' | 'decimals' | 'resolved'
377
- > & {
378
- channelId: Hex
379
- descriptor: Channel.ChannelDescriptor
380
- }
381
-
382
- function isObject(value: unknown): value is Record<string, unknown> {
383
- return typeof value === 'object' && value !== null
384
- }
385
-
386
- function readOptionalAddress(value: unknown): Address | undefined {
387
- return typeof value === 'string' && isAddress(value, { strict: false }) ? value : undefined
388
- }
389
-
390
- function readMethodDetails(challenge: Challenge.Challenge): ClientSessionMethodDetails {
391
- const methodDetails = challenge.request.methodDetails
392
- if (!isObject(methodDetails)) return {}
393
- return {
394
- chainId: typeof methodDetails.chainId === 'number' ? methodDetails.chainId : undefined,
395
- escrowContract: readOptionalAddress(methodDetails.escrowContract),
396
- escrow: readOptionalAddress(methodDetails.escrow),
397
- feePayer: typeof methodDetails.feePayer === 'boolean' ? methodDetails.feePayer : undefined,
398
- operator: readOptionalAddress(methodDetails.operator),
399
- sessionSnapshot: Constants.getMethodDetail<SessionSnapshot>(
400
- methodDetails,
401
- Constants.MethodDetailKeys.sessionSnapshot,
402
- ),
403
- }
404
- }
405
-
406
- function readAddress(value: unknown, label: string): Address {
407
- if (typeof value === 'string' && isAddress(value, { strict: false })) return value
408
- throw new Error(`tempo session challenge missing ${label}`)
409
- }
410
-
411
- function readAmount(value: unknown): bigint {
412
- if (typeof value === 'string') return BigInt(value)
413
- throw new Error('tempo session challenge missing amount')
414
- }
415
-
416
- function readSuggestedDeposit(value: unknown): string | undefined {
417
- return typeof value === 'string' ? value : undefined
418
- }
419
-
420
- /** Resolves raw challenge fields into the typed data required by client credential planning. */
421
- export async function resolveChallengeContext(
422
- parameters: ResolveChallengeContextParameters,
423
- ): Promise<ChallengeContext> {
424
- const { challenge, escrowOverride, getClient } = parameters
425
- const methodDetails = readMethodDetails(challenge)
426
- const client = await getClient({ chainId: methodDetails.chainId })
427
- const chainId = methodDetails.chainId ?? client.chain?.id
428
- if (!chainId) throw new Error('No chainId configured for TIP-1034 session challenge.')
429
-
430
- const escrow = resolveEscrow(challenge, escrowOverride)
431
- const payee = readAddress(challenge.request.recipient, 'recipient')
432
- const token = readAddress(challenge.request.currency, 'currency')
433
-
434
- return {
435
- amount: readAmount(challenge.request.amount),
436
- challenge,
437
- chainId,
438
- client,
439
- escrow,
440
- feePayer: methodDetails.feePayer,
441
- key: channelKey({ payee, token, escrow, chainId }),
442
- operator: methodDetails.operator,
443
- payee,
444
- snapshot: methodDetails.sessionSnapshot,
445
- suggestedDepositRaw: readSuggestedDeposit(challenge.request.suggestedDeposit),
446
- token,
447
- }
448
- }
449
-
450
- /** Validates descriptor identity and reads open channel state for client-side recovery. */
451
- export async function resolveReusableChannel(
452
- parameters: ResolveReusableChannelParameters,
453
- ): Promise<ReusableChannel> {
454
- const {
455
- channelId,
456
- client,
457
- descriptor,
458
- expected,
459
- readChannelState = Chain.getChannelState,
460
- } = parameters
461
- const expectedChannelId = Channel.computeId({
462
- ...descriptor,
463
- chainId: expected.chainId,
464
- escrow: expected.escrow,
465
- })
466
-
467
- assertReusableChannelDescriptor({
468
- channelId,
469
- descriptor,
470
- expectedChannelId,
471
- payee: expected.payee,
472
- payer: expected.payer,
473
- authorizedSigner: expected.authorizedSigner,
474
- token: expected.token,
475
- })
476
-
477
- const state = await readChannelState(client, expectedChannelId, expected.escrow)
478
- if (state.deposit === 0n)
479
- throw new Error(`Channel ${expectedChannelId} cannot be reused (closed or not found on-chain).`)
480
- if (state.closeRequestedAt !== 0)
481
- throw new Error(`Channel ${expectedChannelId} cannot be reused (pending close request).`)
482
-
483
- return { channelId: expectedChannelId, state }
484
- }
485
-
486
- function assertReusableChannelDescriptor(parameters: {
487
- channelId?: string | undefined
488
- descriptor: Channel.ChannelDescriptor
489
- expectedChannelId: string
490
- payee: Address
491
- payer: Address
492
- authorizedSigner: Address
493
- token: Address
494
- }) {
495
- const { authorizedSigner, channelId, descriptor, expectedChannelId, payee, payer, token } =
496
- parameters
497
- if (channelId && channelId.toLowerCase() !== expectedChannelId.toLowerCase())
498
- throw new Error('context channelId does not match descriptor')
499
- if (!isSameAddress(descriptor.payee, payee))
500
- throw new Error('context descriptor payee does not match challenge')
501
- if (!isSameAddress(descriptor.token, token))
502
- throw new Error('context descriptor token does not match challenge')
503
- if (!isSameAddress(descriptor.payer, payer))
504
- throw new Error('context descriptor payer does not match account')
505
- if (!isSameAddress(Channel.resolveAuthorizedSigner(descriptor), authorizedSigner))
506
- throw new Error('context descriptor authorizedSigner does not match account')
507
- }
508
-
509
- /** Resolves descriptor-based recovery data, preferring caller context over server hints. */
510
- export function resolveRecoverContext(
511
- parameters: ResolveRecoverContextParameters,
512
- ): DescriptorSessionContext | undefined {
513
- const { context, snapshot } = parameters
514
- const descriptor = context?.descriptor ?? snapshot?.descriptor
515
- if (!descriptor) return undefined
516
- return {
517
- ...context,
518
- channelId: context?.channelId ?? snapshot?.channelId,
519
- descriptor,
520
- }
521
- }
522
-
523
- /** Resolves a voucher boundary that can satisfy the resumed request. */
524
- export function resolveRecoveredCumulative(
525
- parameters: ResolveRecoveredCumulativeParameters,
526
- ): bigint {
527
- const { context, decimals, requestAmount, snapshot, settled } = parameters
528
-
529
- if (snapshot) {
530
- return [
531
- BigInt(snapshot.acceptedCumulative),
532
- BigInt(snapshot.requiredCumulative),
533
- BigInt(snapshot.spent) + requestAmount,
534
- settled,
535
- ].reduce((highest, value) => (value > highest ? value : highest), 0n)
536
- }
537
-
538
- const contextCumulative = parseOptionalContextAmount(context, decimals, 'cumulativeAmount')
539
- if (contextCumulative !== undefined) return contextCumulative + requestAmount
540
- return settled + requestAmount
541
- }
542
-
543
- /** Checks a server snapshot against its signed voucher and current TIP-1034 state. */
544
- export async function hydrateSessionSnapshot(
545
- parameters: HydrateSessionSnapshotParameters,
546
- ): Promise<HydratedSessionSnapshot> {
547
- const { account, client, readChannelState, snapshot } = parameters
548
- const signed = snapshot.highestVoucher
549
- if (!signed) throw new Error('session snapshot is missing its highest signed voucher')
550
- if (signed.channelId.toLowerCase() !== snapshot.channelId.toLowerCase())
551
- throw new Error('session snapshot voucher channelId does not match snapshot channelId')
552
-
553
- const acceptedCumulative = BigInt(snapshot.acceptedCumulative)
554
- const voucherCumulative = BigInt(signed.cumulativeAmount)
555
- const requiredCumulative = BigInt(snapshot.requiredCumulative)
556
- const snapshotDeposit = BigInt(snapshot.deposit)
557
- const snapshotSettled = BigInt(snapshot.settled)
558
- const spent = BigInt(snapshot.spent)
559
- if (voucherCumulative !== acceptedCumulative)
560
- throw new Error('session snapshot voucher amount does not match acceptedCumulative')
561
- if (spent > acceptedCumulative)
562
- throw new Error('session snapshot spent exceeds acceptedCumulative')
563
- if (snapshotSettled > snapshotDeposit)
564
- throw new Error('session snapshot settled amount exceeds deposit')
565
-
566
- if (
567
- !Voucher.verifyVoucher(
568
- snapshot.escrow,
569
- snapshot.chainId,
570
- {
571
- channelId: signed.channelId,
572
- cumulativeAmount: voucherCumulative,
573
- signature: signed.signature,
574
- },
575
- Channel.resolveAuthorizedSigner(snapshot.descriptor),
576
- )
577
- )
578
- throw new Error('session snapshot highest voucher signature is invalid')
579
-
580
- const reusable = await resolveReusableChannel({
581
- channelId: snapshot.channelId,
582
- client,
583
- descriptor: snapshot.descriptor,
584
- expected: {
585
- chainId: snapshot.chainId,
586
- escrow: snapshot.escrow,
587
- payee: snapshot.descriptor.payee,
588
- payer: account.address,
589
- authorizedSigner: resolveAuthorizedSigner(account),
590
- token: snapshot.descriptor.token,
591
- },
592
- readChannelState,
593
- })
594
- const cumulativeAmount = [acceptedCumulative, requiredCumulative, reusable.state.settled].reduce(
595
- (highest, value) => (value > highest ? value : highest),
596
- 0n,
597
- )
598
- if (cumulativeAmount > reusable.state.deposit)
599
- throw new Error('recovered session cumulative amount exceeds on-chain channel deposit')
600
-
601
- return {
602
- entry: {
603
- channelId: reusable.channelId,
604
- cumulativeAmount,
605
- deposit: reusable.state.deposit,
606
- descriptor: snapshot.descriptor,
607
- escrow: snapshot.escrow,
608
- chainId: snapshot.chainId,
609
- opened: true,
610
- },
611
- spent,
612
- }
613
- }
614
-
615
- /** Returns whether `account` can satisfy the descriptor's voucher authority. */
616
- export function canSignDescriptor(
617
- account: ViemAccount,
618
- descriptor: Channel.ChannelDescriptor,
619
- ): boolean {
620
- // Only the payer can deposit into and voucher against its own channel.
621
- if (!isSameAddress(account.address, descriptor.payer)) return false
622
- return isSameAddress(
623
- resolveAuthorizedSigner(account),
624
- Channel.resolveAuthorizedSigner(descriptor),
625
- )
626
- }
627
-
628
- /** Chooses the next credential plan from local channel cache and optional caller context. */
629
- export function planCredential(parameters: PlanCredentialParameters): CredentialPlan {
630
- const { account, entry, context, decimals, maxDeposit, resolved } = parameters
631
-
632
- if (hasSessionAction(context)) {
633
- if (!hasManualSessionDescriptor(context))
634
- throw new Error('descriptor required for TIP-1034 session action')
635
- return {
636
- type: 'manual',
637
- account,
638
- context,
639
- decimals,
640
- resolved,
641
- }
642
- }
643
-
644
- if (!entry && context?.channelId && !context.descriptor)
645
- throw new Error('descriptor required to reuse TIP-1034 channel')
646
- const recoverContext = resolveRecoverContext({ context, snapshot: resolved.snapshot })
647
- if (!entry && recoverContext && canSignDescriptor(account, recoverContext.descriptor)) {
648
- return {
649
- type: 'recover',
650
- account,
651
- context: recoverContext,
652
- decimals,
653
- maxDeposit,
654
- resolved,
655
- }
656
- }
657
- if (entry?.opened && canSignDescriptor(account, entry.descriptor))
658
- return { type: 'voucher', account, entry, maxDeposit, resolved }
659
- return { type: 'open', account, context, maxDeposit, resolved }
660
- }
661
-
662
- /** Executes a credential plan and returns the concrete session credential payload. */
663
- export async function executeCredentialPlan(
664
- plan: CredentialPlan,
665
- sink: ChannelSink,
666
- autoSwap: AutoSwap.resolve.Resolved | false = false,
667
- ): Promise<SessionCredentialPayload> {
668
- switch (plan.type) {
669
- case 'open':
670
- return open(plan, sink, autoSwap)
671
- case 'recover':
672
- return recover(plan, sink)
673
- case 'voucher':
674
- return voucher(plan, sink)
675
- case 'manual':
676
- return manual(plan, sink, autoSwap)
677
- }
678
- }
679
-
680
- async function resolveAutoSwapCalls(
681
- autoSwap: AutoSwap.resolve.Resolved | false,
682
- parameters: {
683
- account: Address
684
- amountOut: bigint
685
- client: Client
686
- tokenOut: Address
687
- },
688
- ): Promise<readonly TempoChannelCall[] | undefined> {
689
- if (!autoSwap) return undefined
690
- return (await AutoSwap.findCalls(parameters.client, {
691
- account: parameters.account,
692
- amountOut: parameters.amountOut,
693
- tokenOut: parameters.tokenOut,
694
- tokenIn: autoSwap.tokenIn,
695
- slippage: autoSwap.slippage,
696
- })) as readonly TempoChannelCall[] | undefined
697
- }
698
-
699
- async function open(
700
- plan: Extract<CredentialPlan, { type: 'open' }>,
701
- sink: ChannelSink,
702
- autoSwap: AutoSwap.resolve.Resolved | false,
703
- ): Promise<SessionCredentialPayload> {
704
- const { account, resolved } = plan
705
- const deposit = resolveOpeningDeposit({
706
- contextDepositRaw: plan.context?.depositRaw,
707
- maxDeposit: plan.maxDeposit,
708
- requestAmount: resolved.amount,
709
- suggestedDepositRaw: resolved.suggestedDepositRaw,
710
- })
711
- const payload = await createOpenPayload(resolved.client, account, {
712
- chainId: resolved.chainId,
713
- deposit,
714
- escrow: resolved.escrow,
715
- feePayer: resolved.feePayer,
716
- initialAmount: resolved.amount,
717
- operator: resolved.operator,
718
- payee: resolved.payee,
719
- prefixCalls: await resolveAutoSwapCalls(autoSwap, {
720
- account: account.address,
721
- amountOut: deposit,
722
- client: resolved.client,
723
- tokenOut: resolved.token,
724
- }),
725
- token: resolved.token,
726
- })
727
- await storeChannelEntry(sink, {
728
- channelId: payload.channelId,
729
- cumulativeAmount: resolved.amount,
730
- deposit,
731
- descriptor: payload.descriptor,
732
- escrow: resolved.escrow,
733
- chainId: resolved.chainId,
734
- opened: true,
735
- })
736
- return payload
737
- }
738
-
739
- async function recover(
740
- plan: Extract<CredentialPlan, { type: 'recover' }>,
741
- sink: ChannelSink,
742
- ): Promise<SessionCredentialPayload> {
743
- const { account, context, decimals, maxDeposit, resolved } = plan
744
- const { descriptor } = context
745
- const reusable = await resolveReusableChannel({
746
- channelId: context.channelId,
747
- client: resolved.client,
748
- descriptor,
749
- expected: {
750
- chainId: resolved.chainId,
751
- escrow: resolved.escrow,
752
- payee: resolved.payee,
753
- payer: account.address,
754
- authorizedSigner: resolveAuthorizedSigner(account),
755
- token: resolved.token,
756
- },
757
- })
758
- const cumulativeAmount = resolveRecoveredCumulative({
759
- context,
760
- decimals,
761
- requestAmount: resolved.amount,
762
- settled: reusable.state.settled,
763
- snapshot: resolved.snapshot,
764
- })
765
- if (cumulativeAmount > reusable.state.deposit)
766
- throw new Error('recovered voucher amount exceeds on-chain channel deposit')
767
- assertWithinMaxDeposit(cumulativeAmount, maxDeposit)
768
- const payload = await createVoucherPayload(
769
- resolved.client,
770
- account,
771
- descriptor,
772
- cumulativeAmount,
773
- resolved.chainId,
774
- resolved.escrow,
775
- )
776
- await storeChannelEntry(sink, {
777
- channelId: reusable.channelId,
778
- cumulativeAmount,
779
- deposit: reusable.state.deposit,
780
- descriptor,
781
- escrow: resolved.escrow,
782
- chainId: resolved.chainId,
783
- opened: true,
784
- })
785
- return payload
786
- }
787
-
788
- async function voucher(
789
- plan: Extract<CredentialPlan, { type: 'voucher' }>,
790
- sink: ChannelSink,
791
- ): Promise<SessionCredentialPayload> {
792
- const { account, entry, resolved } = plan
793
- const cumulativeAmount = entry.cumulativeAmount + resolved.amount
794
- assertWithinMaxDeposit(cumulativeAmount, plan.maxDeposit)
795
- const payload = await createVoucherPayload(
796
- resolved.client,
797
- account,
798
- entry.descriptor,
799
- cumulativeAmount,
800
- resolved.chainId,
801
- resolved.escrow,
802
- )
803
- entry.cumulativeAmount = cumulativeAmount
804
- await storeChannelEntry(sink, entry)
805
- return payload
806
- }
807
-
808
- async function manual(
809
- plan: Extract<CredentialPlan, { type: 'manual' }>,
810
- sink: ChannelSink,
811
- autoSwap: AutoSwap.resolve.Resolved | false,
812
- ): Promise<SessionCredentialPayload> {
813
- const { account, context, decimals, resolved } = plan
814
- const { descriptor } = context
815
- const channelId = Channel.computeId({
816
- ...descriptor,
817
- chainId: resolved.chainId,
818
- escrow: resolved.escrow,
819
- })
820
- assertReusableChannelDescriptor({
821
- channelId: context.channelId,
822
- descriptor,
823
- expectedChannelId: channelId,
824
- payee: resolved.payee,
825
- payer: account.address,
826
- authorizedSigner: resolveAuthorizedSigner(account),
827
- token: resolved.token,
828
- })
829
-
830
- const payload = await executeManualCredential(
831
- {
832
- account,
833
- channelId,
834
- context,
835
- decimals,
836
- descriptor,
837
- resolved,
838
- },
839
- autoSwap,
840
- )
841
- await applyCumulative(sink, resolved.key, payload)
842
- return payload
843
- }
844
-
845
- async function executeManualCredential(
846
- parameters: ManualCredentialParameters,
847
- autoSwap: AutoSwap.resolve.Resolved | false,
848
- ): Promise<SessionCredentialPayload> {
849
- switch (parameters.context.action) {
850
- case 'open':
851
- return manualOpen(parameters)
852
- case 'topUp':
853
- return manualTopUp(parameters, autoSwap)
854
- case 'voucher':
855
- return manualVoucher(parameters)
856
- case 'close':
857
- return manualClose(parameters)
858
- }
859
- }
860
-
861
- async function manualOpen(
862
- parameters: ManualCredentialParameters,
863
- ): Promise<SessionCredentialPayload> {
864
- const { account, channelId, context, decimals, descriptor, resolved } = parameters
865
- if (!context.transaction) throw new Error('transaction required for open action')
866
- const cumulativeAmount = requireContextAmount(context, decimals, 'cumulativeAmount', 'open')
867
- const voucher = await createVoucherPayload(
868
- resolved.client,
869
- account,
870
- descriptor,
871
- cumulativeAmount,
872
- resolved.chainId,
873
- resolved.escrow,
874
- )
875
- return {
876
- action: 'open',
877
- type: 'transaction',
878
- channelId,
879
- transaction: context.transaction,
880
- signature: voucher.signature,
881
- descriptor,
882
- cumulativeAmount: cumulativeAmount.toString(),
883
- authorizedSigner: descriptor.authorizedSigner,
884
- }
885
- }
886
-
887
- async function manualTopUp(
888
- parameters: ManualCredentialParameters,
889
- autoSwap: AutoSwap.resolve.Resolved | false,
890
- ): Promise<SessionCredentialPayload> {
891
- const { account, channelId, context, decimals, descriptor, resolved } = parameters
892
- const additionalDeposit = requireContextAmount(context, decimals, 'additionalDeposit', 'topUp')
893
- if (context.transaction) {
894
- return {
895
- action: 'topUp',
896
- type: 'transaction',
897
- channelId,
898
- transaction: context.transaction,
899
- descriptor,
900
- additionalDeposit: additionalDeposit.toString(),
901
- }
902
- }
903
- return createTopUpPayload(
904
- resolved.client,
905
- account,
906
- descriptor,
907
- additionalDeposit,
908
- resolved.chainId,
909
- resolved.feePayer,
910
- resolved.escrow,
911
- await resolveAutoSwapCalls(autoSwap, {
912
- account: account.address,
913
- amountOut: additionalDeposit,
914
- client: resolved.client,
915
- tokenOut: resolved.token,
916
- }),
917
- )
918
- }
919
-
920
- function manualVoucher(parameters: ManualCredentialParameters): Promise<SessionCredentialPayload> {
921
- const { account, context, decimals, descriptor, resolved } = parameters
922
- return createVoucherPayload(
923
- resolved.client,
924
- account,
925
- descriptor,
926
- requireContextAmount(context, decimals, 'cumulativeAmount', 'voucher'),
927
- resolved.chainId,
928
- resolved.escrow,
929
- )
930
- }
931
-
932
- function manualClose(parameters: ManualCredentialParameters): Promise<SessionCredentialPayload> {
933
- const { account, context, decimals, descriptor, resolved } = parameters
934
- return createClosePayload(
935
- resolved.client,
936
- account,
937
- descriptor,
938
- requireContextAmount(context, decimals, 'cumulativeAmount', 'close'),
939
- resolved.chainId,
940
- resolved.escrow,
941
- )
942
- }