mppx 0.8.15 → 0.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (966) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +61 -39
  4. package/dist/Constants.d.ts +17 -17
  5. package/dist/Errors.d.ts +3 -3
  6. package/dist/Method.d.ts +35 -5
  7. package/dist/Method.js +7 -22
  8. package/dist/Store.d.ts +19 -0
  9. package/dist/Store.js +43 -0
  10. package/dist/attestation/Client.d.ts +17 -0
  11. package/dist/attestation/Client.js +28 -0
  12. package/dist/attestation/Constants.d.ts +15 -0
  13. package/dist/attestation/Constants.js +15 -0
  14. package/dist/attestation/Server.d.ts +4 -0
  15. package/dist/attestation/Server.js +8 -0
  16. package/dist/attestation/Types.d.ts +76 -0
  17. package/dist/attestation/Types.js +2 -0
  18. package/dist/attestation/index.d.ts +6 -0
  19. package/dist/attestation/index.js +6 -0
  20. package/dist/attestation/internal/HttpMessageSignature.d.ts +73 -0
  21. package/dist/attestation/internal/HttpMessageSignature.js +320 -0
  22. package/dist/attestation/internal/SigningContext.d.ts +4 -0
  23. package/dist/attestation/internal/SigningContext.js +11 -0
  24. package/dist/bin.js +3 -3
  25. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  26. package/dist/cli/account.d.ts +14 -14
  27. package/dist/cli/cli.d.ts +6 -6
  28. package/dist/cli/cli.js +253 -1504
  29. package/dist/cli/plugins/index.js +19 -5
  30. package/dist/cli/plugins/tempo.js +7 -3
  31. package/dist/cli/sessions/Manager.js +7 -4
  32. package/dist/cli/sessions/commands.d.ts +4 -4
  33. package/dist/cli/sessions/request.d.ts +2 -0
  34. package/dist/cli/sessions/request.js +18 -0
  35. package/dist/cli/sessions/store.js +28 -14
  36. package/dist/cli/utils.d.ts +1 -1
  37. package/dist/cli/validate/index.d.ts +3 -3
  38. package/dist/client/Mppx.d.ts +3 -0
  39. package/dist/client/Mppx.js +13 -5
  40. package/dist/client/Transport.d.ts +3 -5
  41. package/dist/client/Transport.js +1 -17
  42. package/dist/client/internal/Fetch.js +2 -6
  43. package/dist/discovery/Discovery.js +2 -1
  44. package/dist/discovery/OpenApi.d.ts +3 -5
  45. package/dist/discovery/OpenApi.js +13 -34
  46. package/dist/discovery/internal/Metadata.d.ts +20 -0
  47. package/dist/discovery/internal/Metadata.js +36 -0
  48. package/dist/evm/Methods.d.ts +11 -11
  49. package/dist/evm/Types.d.ts +17 -17
  50. package/dist/evm/client/Charge.d.ts +11 -11
  51. package/dist/evm/client/Charge.js +8 -0
  52. package/dist/evm/client/Methods.d.ts +11 -11
  53. package/dist/evm/server/Charge.d.ts +1 -1
  54. package/dist/evm/server/Charge.js +2 -0
  55. package/dist/evm/server/Methods.d.ts +11 -11
  56. package/dist/internal/HeaderCodec.d.ts +2 -2
  57. package/dist/internal/types.d.ts +6 -0
  58. package/dist/proxy/Proxy.d.ts +2 -0
  59. package/dist/proxy/Proxy.js +117 -9
  60. package/dist/proxy/Service.d.ts +36 -1
  61. package/dist/proxy/Service.js +9 -8
  62. package/dist/proxy/services/anthropic.js +1 -0
  63. package/dist/proxy/services/openai.js +1 -0
  64. package/dist/proxy/services/stripe.js +1 -0
  65. package/dist/server/Mppx.d.ts +75 -13
  66. package/dist/server/Mppx.js +201 -23
  67. package/dist/server/core.d.ts +9 -0
  68. package/dist/server/core.js +9 -0
  69. package/dist/server/internal/html/config.d.ts +9 -9
  70. package/dist/server/internal/html/constants.d.ts +17 -17
  71. package/dist/stripe/Methods.d.ts +10 -10
  72. package/dist/stripe/client/Charge.d.ts +10 -10
  73. package/dist/stripe/client/Methods.d.ts +10 -10
  74. package/dist/stripe/internal/constants.d.ts +1 -1
  75. package/dist/stripe/internal/constants.js +1 -1
  76. package/dist/stripe/internal/types.d.ts +1 -0
  77. package/dist/stripe/server/Charge.d.ts +11 -11
  78. package/dist/stripe/server/Charge.js +51 -5
  79. package/dist/stripe/server/Methods.d.ts +137 -48
  80. package/dist/stripe/server/Methods.js +265 -4
  81. package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
  82. package/dist/stripe/server/internal/deposit-address.js +28 -0
  83. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  84. package/dist/stripe/server/internal/html.gen.js +1 -1
  85. package/dist/stripe/server/internal/record-payment.d.ts +15 -0
  86. package/dist/stripe/server/internal/record-payment.js +42 -0
  87. package/dist/stripe/server/internal/request.d.ts +25 -0
  88. package/dist/stripe/server/internal/request.js +29 -0
  89. package/dist/stripe/server/spt.d.ts +8 -0
  90. package/dist/stripe/server/spt.js +8 -0
  91. package/dist/tap/Constants.d.ts +28 -0
  92. package/dist/tap/Constants.js +32 -0
  93. package/dist/tap/Types.d.ts +11 -0
  94. package/dist/tap/Types.js +2 -0
  95. package/dist/tap/client/index.d.ts +26 -0
  96. package/dist/tap/client/index.js +33 -0
  97. package/dist/tap/index.d.ts +5 -0
  98. package/dist/tap/index.js +5 -0
  99. package/dist/tap/server/index.d.ts +20 -0
  100. package/dist/tap/server/index.js +36 -0
  101. package/dist/tempo/Attribution.d.ts +1 -1
  102. package/dist/tempo/Methods.d.ts +73 -60
  103. package/dist/tempo/Methods.js +14 -3
  104. package/dist/tempo/Proof.d.ts +16 -16
  105. package/dist/tempo/client/Charge.d.ts +22 -19
  106. package/dist/tempo/client/Charge.js +32 -16
  107. package/dist/tempo/client/Methods.d.ts +51 -38
  108. package/dist/tempo/client/Subscription.d.ts +23 -23
  109. package/dist/tempo/internal/address.d.ts +2 -1
  110. package/dist/tempo/internal/address.js +3 -1
  111. package/dist/tempo/internal/auto-swap.js +4 -19
  112. package/dist/tempo/internal/defaults.d.ts +17 -6
  113. package/dist/tempo/internal/defaults.js +11 -0
  114. package/dist/tempo/internal/fee-payer.d.ts +12 -12
  115. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  116. package/dist/tempo/internal/machine-token-charge.js +113 -0
  117. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  118. package/dist/tempo/internal/machine-token-session.js +173 -0
  119. package/dist/tempo/internal/proof.d.ts +17 -17
  120. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  121. package/dist/tempo/internal/signature-envelope.js +28 -0
  122. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  123. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  124. package/dist/tempo/legacy/client/Session.d.ts +33 -21
  125. package/dist/tempo/legacy/client/Session.js +3 -3
  126. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  127. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  128. package/dist/tempo/legacy/index.d.ts +1 -3
  129. package/dist/tempo/legacy/index.js +1 -3
  130. package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
  131. package/dist/tempo/server/Charge.d.ts +28 -11
  132. package/dist/tempo/server/Charge.js +101 -55
  133. package/dist/tempo/server/Methods.d.ts +58 -56
  134. package/dist/tempo/server/Methods.js +8 -18
  135. package/dist/tempo/server/Relay.d.ts +1 -1
  136. package/dist/tempo/server/Relay.js +2 -2
  137. package/dist/tempo/server/Subscription.d.ts +25 -25
  138. package/dist/tempo/server/Subscription.js +2 -0
  139. package/dist/tempo/server/index.d.ts +1 -1
  140. package/dist/tempo/server/index.js +1 -1
  141. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  142. package/dist/tempo/server/internal/html.gen.js +1 -1
  143. package/dist/tempo/server/internal/transport.d.ts +2 -0
  144. package/dist/tempo/server/internal/transport.js +9 -2
  145. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  146. package/dist/tempo/session/client/ChannelOps.js +35 -6
  147. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  148. package/dist/tempo/session/client/ChannelStore.js +2 -2
  149. package/dist/tempo/session/client/CredentialState.d.ts +18 -3
  150. package/dist/tempo/session/client/CredentialState.js +77 -76
  151. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  152. package/dist/tempo/session/client/Runtime.js +21 -5
  153. package/dist/tempo/session/client/Session.d.ts +34 -22
  154. package/dist/tempo/session/client/Session.js +186 -63
  155. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  156. package/dist/tempo/session/client/SessionManager.js +35 -11
  157. package/dist/tempo/session/client/Transports.d.ts +2 -0
  158. package/dist/tempo/session/client/Transports.js +12 -2
  159. package/dist/tempo/session/precompile/Chain.d.ts +37 -2
  160. package/dist/tempo/session/precompile/Chain.js +116 -15
  161. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  162. package/dist/tempo/session/precompile/Protocol.js +7 -0
  163. package/dist/tempo/session/precompile/Voucher.d.ts +7 -5
  164. package/dist/tempo/session/precompile/Voucher.js +6 -12
  165. package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
  166. package/dist/tempo/session/server/ChannelStore.d.ts +15 -0
  167. package/dist/tempo/session/server/ChannelStore.js +27 -12
  168. package/dist/tempo/session/server/CredentialVerification.d.ts +39 -20
  169. package/dist/tempo/session/server/CredentialVerification.js +359 -89
  170. package/dist/tempo/session/server/MeteredStream.d.ts +4 -1
  171. package/dist/tempo/session/server/MeteredStream.js +8 -5
  172. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  173. package/dist/tempo/session/server/RequestState.js +61 -15
  174. package/dist/tempo/session/server/Session.d.ts +46 -23
  175. package/dist/tempo/session/server/Session.js +150 -56
  176. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  177. package/dist/tempo/session/server/Settlement.js +53 -21
  178. package/dist/tempo/session/server/Sse.d.ts +3 -1
  179. package/dist/tempo/session/server/Sse.js +2 -1
  180. package/dist/tempo/session/server/Transports.d.ts +1 -1
  181. package/dist/tempo/session/server/Transports.js +1 -0
  182. package/dist/tempo/session/server/Ws.d.ts +6 -1
  183. package/dist/tempo/session/server/Ws.js +1 -0
  184. package/dist/tempo/subscription/KeyAuthorization.d.ts +39 -39
  185. package/dist/web-bot-auth/Constants.d.ts +20 -0
  186. package/dist/web-bot-auth/Constants.js +24 -0
  187. package/dist/web-bot-auth/Types.d.ts +10 -0
  188. package/dist/web-bot-auth/Types.js +2 -0
  189. package/dist/web-bot-auth/client/index.d.ts +29 -0
  190. package/dist/web-bot-auth/client/index.js +64 -0
  191. package/dist/web-bot-auth/index.d.ts +7 -0
  192. package/dist/web-bot-auth/index.js +7 -0
  193. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
  194. package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
  195. package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
  196. package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
  197. package/dist/web-bot-auth/server/index.d.ts +35 -0
  198. package/dist/web-bot-auth/server/index.js +88 -0
  199. package/dist/x402/Types.d.ts +6 -6
  200. package/dist/x402/client/Exact.d.ts +8 -0
  201. package/dist/x402/client/Exact.js +40 -10
  202. package/dist/x402/server/EvmCharge.d.ts +22 -0
  203. package/dist/x402/server/EvmCharge.js +54 -20
  204. package/package.json +28 -34
  205. package/dist/BodyDigest.d.ts.map +0 -1
  206. package/dist/BodyDigest.js.map +0 -1
  207. package/dist/Challenge.d.ts.map +0 -1
  208. package/dist/Challenge.js.map +0 -1
  209. package/dist/Constants.d.ts.map +0 -1
  210. package/dist/Constants.js.map +0 -1
  211. package/dist/Credential.d.ts.map +0 -1
  212. package/dist/Credential.js.map +0 -1
  213. package/dist/Errors.d.ts.map +0 -1
  214. package/dist/Errors.js.map +0 -1
  215. package/dist/Expires.d.ts.map +0 -1
  216. package/dist/Expires.js.map +0 -1
  217. package/dist/Html.d.ts.map +0 -1
  218. package/dist/Html.js.map +0 -1
  219. package/dist/Mcp.d.ts.map +0 -1
  220. package/dist/Mcp.js.map +0 -1
  221. package/dist/Method.d.ts.map +0 -1
  222. package/dist/Method.js.map +0 -1
  223. package/dist/PaymentRequest.d.ts.map +0 -1
  224. package/dist/PaymentRequest.js.map +0 -1
  225. package/dist/Receipt.d.ts.map +0 -1
  226. package/dist/Receipt.js.map +0 -1
  227. package/dist/Store.d.ts.map +0 -1
  228. package/dist/Store.js.map +0 -1
  229. package/dist/bin.d.ts.map +0 -1
  230. package/dist/bin.js.map +0 -1
  231. package/dist/cli/account.d.ts.map +0 -1
  232. package/dist/cli/account.js.map +0 -1
  233. package/dist/cli/cli.d.ts.map +0 -1
  234. package/dist/cli/cli.js.map +0 -1
  235. package/dist/cli/config.d.ts.map +0 -1
  236. package/dist/cli/config.js.map +0 -1
  237. package/dist/cli/internal.d.ts.map +0 -1
  238. package/dist/cli/internal.js.map +0 -1
  239. package/dist/cli/plugins/evm.d.ts.map +0 -1
  240. package/dist/cli/plugins/evm.js.map +0 -1
  241. package/dist/cli/plugins/index.d.ts.map +0 -1
  242. package/dist/cli/plugins/index.js.map +0 -1
  243. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  244. package/dist/cli/plugins/plugin.js.map +0 -1
  245. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  246. package/dist/cli/plugins/stripe.js.map +0 -1
  247. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  248. package/dist/cli/plugins/tempo.js.map +0 -1
  249. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  250. package/dist/cli/sessions/Manager.js.map +0 -1
  251. package/dist/cli/sessions/commands.d.ts.map +0 -1
  252. package/dist/cli/sessions/commands.js.map +0 -1
  253. package/dist/cli/sessions/request.d.ts.map +0 -1
  254. package/dist/cli/sessions/request.js.map +0 -1
  255. package/dist/cli/sessions/store.d.ts.map +0 -1
  256. package/dist/cli/sessions/store.js.map +0 -1
  257. package/dist/cli/utils.d.ts.map +0 -1
  258. package/dist/cli/utils.js.map +0 -1
  259. package/dist/cli/validate/challenge.d.ts.map +0 -1
  260. package/dist/cli/validate/challenge.js.map +0 -1
  261. package/dist/cli/validate/discovery.d.ts.map +0 -1
  262. package/dist/cli/validate/discovery.js.map +0 -1
  263. package/dist/cli/validate/helpers.d.ts.map +0 -1
  264. package/dist/cli/validate/helpers.js.map +0 -1
  265. package/dist/cli/validate/index.d.ts.map +0 -1
  266. package/dist/cli/validate/index.js.map +0 -1
  267. package/dist/cli/validate/messages.d.ts.map +0 -1
  268. package/dist/cli/validate/messages.js.map +0 -1
  269. package/dist/cli/validate/payment.d.ts.map +0 -1
  270. package/dist/cli/validate/payment.js.map +0 -1
  271. package/dist/client/Methods.d.ts.map +0 -1
  272. package/dist/client/Methods.js.map +0 -1
  273. package/dist/client/Mppx.d.ts.map +0 -1
  274. package/dist/client/Mppx.js.map +0 -1
  275. package/dist/client/Transport.d.ts.map +0 -1
  276. package/dist/client/Transport.js.map +0 -1
  277. package/dist/client/index.d.ts.map +0 -1
  278. package/dist/client/index.js.map +0 -1
  279. package/dist/client/internal/Fetch.d.ts.map +0 -1
  280. package/dist/client/internal/Fetch.js.map +0 -1
  281. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  282. package/dist/client/internal/MethodChallenge.js.map +0 -1
  283. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  284. package/dist/client/internal/MethodResponse.js.map +0 -1
  285. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  286. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  287. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  288. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  289. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  290. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  291. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  292. package/dist/client/internal/protocols/Shared.js.map +0 -1
  293. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  294. package/dist/client/internal/protocols/X402.js.map +0 -1
  295. package/dist/client/node.d.ts.map +0 -1
  296. package/dist/client/node.js.map +0 -1
  297. package/dist/discovery/Discovery.d.ts.map +0 -1
  298. package/dist/discovery/Discovery.js.map +0 -1
  299. package/dist/discovery/OpenApi.d.ts.map +0 -1
  300. package/dist/discovery/OpenApi.js.map +0 -1
  301. package/dist/discovery/Validate.d.ts.map +0 -1
  302. package/dist/discovery/Validate.js.map +0 -1
  303. package/dist/discovery/index.d.ts.map +0 -1
  304. package/dist/discovery/index.js.map +0 -1
  305. package/dist/evm/Assets.d.ts.map +0 -1
  306. package/dist/evm/Assets.js.map +0 -1
  307. package/dist/evm/Chains.d.ts.map +0 -1
  308. package/dist/evm/Chains.js.map +0 -1
  309. package/dist/evm/Methods.d.ts.map +0 -1
  310. package/dist/evm/Methods.js.map +0 -1
  311. package/dist/evm/Types.d.ts.map +0 -1
  312. package/dist/evm/Types.js.map +0 -1
  313. package/dist/evm/client/Charge.d.ts.map +0 -1
  314. package/dist/evm/client/Charge.js.map +0 -1
  315. package/dist/evm/client/Methods.d.ts.map +0 -1
  316. package/dist/evm/client/Methods.js.map +0 -1
  317. package/dist/evm/client/index.d.ts.map +0 -1
  318. package/dist/evm/client/index.js.map +0 -1
  319. package/dist/evm/index.d.ts.map +0 -1
  320. package/dist/evm/index.js.map +0 -1
  321. package/dist/evm/server/Charge.d.ts.map +0 -1
  322. package/dist/evm/server/Charge.js.map +0 -1
  323. package/dist/evm/server/Methods.d.ts.map +0 -1
  324. package/dist/evm/server/Methods.js.map +0 -1
  325. package/dist/evm/server/index.d.ts.map +0 -1
  326. package/dist/evm/server/index.js.map +0 -1
  327. package/dist/index.d.ts.map +0 -1
  328. package/dist/index.js.map +0 -1
  329. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  330. package/dist/internal/AcceptPayment.js.map +0 -1
  331. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  332. package/dist/internal/HeaderCodec.js.map +0 -1
  333. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  334. package/dist/internal/constantTimeEqual.js.map +0 -1
  335. package/dist/internal/env.d.ts.map +0 -1
  336. package/dist/internal/env.js.map +0 -1
  337. package/dist/internal/types.d.ts.map +0 -1
  338. package/dist/internal/types.js.map +0 -1
  339. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  340. package/dist/mcp/client/McpClient.js.map +0 -1
  341. package/dist/mcp/client/index.d.ts.map +0 -1
  342. package/dist/mcp/client/index.js.map +0 -1
  343. package/dist/mcp/server/Transport.d.ts.map +0 -1
  344. package/dist/mcp/server/Transport.js.map +0 -1
  345. package/dist/mcp/server/index.d.ts.map +0 -1
  346. package/dist/mcp/server/index.js.map +0 -1
  347. package/dist/middlewares/elysia.d.ts.map +0 -1
  348. package/dist/middlewares/elysia.js.map +0 -1
  349. package/dist/middlewares/express.d.ts.map +0 -1
  350. package/dist/middlewares/express.js.map +0 -1
  351. package/dist/middlewares/hono.d.ts.map +0 -1
  352. package/dist/middlewares/hono.js.map +0 -1
  353. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  354. package/dist/middlewares/internal/mppx.js.map +0 -1
  355. package/dist/middlewares/nextjs.d.ts.map +0 -1
  356. package/dist/middlewares/nextjs.js.map +0 -1
  357. package/dist/proxy/Proxy.d.ts.map +0 -1
  358. package/dist/proxy/Proxy.js.map +0 -1
  359. package/dist/proxy/Service.d.ts.map +0 -1
  360. package/dist/proxy/Service.js.map +0 -1
  361. package/dist/proxy/index.d.ts.map +0 -1
  362. package/dist/proxy/index.js.map +0 -1
  363. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  364. package/dist/proxy/internal/Headers.js.map +0 -1
  365. package/dist/proxy/internal/Route.d.ts.map +0 -1
  366. package/dist/proxy/internal/Route.js.map +0 -1
  367. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  368. package/dist/proxy/services/anthropic.js.map +0 -1
  369. package/dist/proxy/services/openai.d.ts.map +0 -1
  370. package/dist/proxy/services/openai.js.map +0 -1
  371. package/dist/proxy/services/stripe.d.ts.map +0 -1
  372. package/dist/proxy/services/stripe.js.map +0 -1
  373. package/dist/server/Methods.d.ts.map +0 -1
  374. package/dist/server/Methods.js.map +0 -1
  375. package/dist/server/Mppx.d.ts.map +0 -1
  376. package/dist/server/Mppx.js.map +0 -1
  377. package/dist/server/NodeListener.d.ts.map +0 -1
  378. package/dist/server/NodeListener.js.map +0 -1
  379. package/dist/server/Request.d.ts.map +0 -1
  380. package/dist/server/Request.js.map +0 -1
  381. package/dist/server/Response.d.ts.map +0 -1
  382. package/dist/server/Response.js.map +0 -1
  383. package/dist/server/Transport.d.ts.map +0 -1
  384. package/dist/server/Transport.js.map +0 -1
  385. package/dist/server/index.d.ts.map +0 -1
  386. package/dist/server/index.js.map +0 -1
  387. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  388. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  389. package/dist/server/internal/html/config.d.ts.map +0 -1
  390. package/dist/server/internal/html/config.js.map +0 -1
  391. package/dist/server/internal/html/constants.d.ts.map +0 -1
  392. package/dist/server/internal/html/constants.js.map +0 -1
  393. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  394. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  395. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  396. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  397. package/dist/server/internal/scope.d.ts.map +0 -1
  398. package/dist/server/internal/scope.js.map +0 -1
  399. package/dist/stripe/Methods.d.ts.map +0 -1
  400. package/dist/stripe/Methods.js.map +0 -1
  401. package/dist/stripe/client/Charge.d.ts.map +0 -1
  402. package/dist/stripe/client/Charge.js.map +0 -1
  403. package/dist/stripe/client/Methods.d.ts.map +0 -1
  404. package/dist/stripe/client/Methods.js.map +0 -1
  405. package/dist/stripe/client/index.d.ts.map +0 -1
  406. package/dist/stripe/client/index.js.map +0 -1
  407. package/dist/stripe/index.d.ts.map +0 -1
  408. package/dist/stripe/index.js.map +0 -1
  409. package/dist/stripe/internal/constants.d.ts.map +0 -1
  410. package/dist/stripe/internal/constants.js.map +0 -1
  411. package/dist/stripe/internal/types.d.ts.map +0 -1
  412. package/dist/stripe/internal/types.js.map +0 -1
  413. package/dist/stripe/server/Charge.d.ts.map +0 -1
  414. package/dist/stripe/server/Charge.js.map +0 -1
  415. package/dist/stripe/server/Methods.d.ts.map +0 -1
  416. package/dist/stripe/server/Methods.js.map +0 -1
  417. package/dist/stripe/server/index.d.ts.map +0 -1
  418. package/dist/stripe/server/index.js.map +0 -1
  419. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  420. package/dist/stripe/server/internal/html/types.js.map +0 -1
  421. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  422. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  423. package/dist/tempo/Attribution.d.ts.map +0 -1
  424. package/dist/tempo/Attribution.js.map +0 -1
  425. package/dist/tempo/Methods.d.ts.map +0 -1
  426. package/dist/tempo/Methods.js.map +0 -1
  427. package/dist/tempo/Proof.d.ts.map +0 -1
  428. package/dist/tempo/Proof.js.map +0 -1
  429. package/dist/tempo/client/Charge.d.ts.map +0 -1
  430. package/dist/tempo/client/Charge.js.map +0 -1
  431. package/dist/tempo/client/Methods.d.ts.map +0 -1
  432. package/dist/tempo/client/Methods.js.map +0 -1
  433. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  434. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  435. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  436. package/dist/tempo/client/Subscription.js.map +0 -1
  437. package/dist/tempo/client/index.d.ts.map +0 -1
  438. package/dist/tempo/client/index.js.map +0 -1
  439. package/dist/tempo/index.d.ts.map +0 -1
  440. package/dist/tempo/index.js.map +0 -1
  441. package/dist/tempo/internal/account.d.ts.map +0 -1
  442. package/dist/tempo/internal/account.js.map +0 -1
  443. package/dist/tempo/internal/address.d.ts.map +0 -1
  444. package/dist/tempo/internal/address.js.map +0 -1
  445. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  446. package/dist/tempo/internal/auto-swap.js.map +0 -1
  447. package/dist/tempo/internal/charge.d.ts.map +0 -1
  448. package/dist/tempo/internal/charge.js.map +0 -1
  449. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  450. package/dist/tempo/internal/defaults.js.map +0 -1
  451. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  452. package/dist/tempo/internal/fee-payer.js.map +0 -1
  453. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  454. package/dist/tempo/internal/fee-token.js.map +0 -1
  455. package/dist/tempo/internal/proof.d.ts.map +0 -1
  456. package/dist/tempo/internal/proof.js.map +0 -1
  457. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  458. package/dist/tempo/internal/selectors.js.map +0 -1
  459. package/dist/tempo/internal/types.d.ts.map +0 -1
  460. package/dist/tempo/internal/types.js.map +0 -1
  461. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  462. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  463. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  464. package/dist/tempo/legacy/client/Session.js.map +0 -1
  465. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  466. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  467. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  468. package/dist/tempo/legacy/client/index.js.map +0 -1
  469. package/dist/tempo/legacy/index.d.ts.map +0 -1
  470. package/dist/tempo/legacy/index.js.map +0 -1
  471. package/dist/tempo/legacy/server/Session.d.ts +0 -208
  472. package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
  473. package/dist/tempo/legacy/server/Session.js +0 -698
  474. package/dist/tempo/legacy/server/Session.js.map +0 -1
  475. package/dist/tempo/legacy/server/index.d.ts +0 -5
  476. package/dist/tempo/legacy/server/index.d.ts.map +0 -1
  477. package/dist/tempo/legacy/server/index.js +0 -5
  478. package/dist/tempo/legacy/server/index.js.map +0 -1
  479. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  480. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  481. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  482. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  483. package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
  484. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
  485. package/dist/tempo/legacy/session/ChannelStore.js +0 -6
  486. package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
  487. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  488. package/dist/tempo/legacy/session/Types.js.map +0 -1
  489. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  490. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  491. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  492. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  493. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  494. package/dist/tempo/legacy/session/index.js.map +0 -1
  495. package/dist/tempo/server/Charge.d.ts.map +0 -1
  496. package/dist/tempo/server/Charge.js.map +0 -1
  497. package/dist/tempo/server/Methods.d.ts.map +0 -1
  498. package/dist/tempo/server/Methods.js.map +0 -1
  499. package/dist/tempo/server/Relay.d.ts.map +0 -1
  500. package/dist/tempo/server/Relay.js.map +0 -1
  501. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  502. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  503. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  504. package/dist/tempo/server/Subscription.js.map +0 -1
  505. package/dist/tempo/server/index.d.ts.map +0 -1
  506. package/dist/tempo/server/index.js.map +0 -1
  507. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  508. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  509. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  510. package/dist/tempo/server/internal/request-body.js.map +0 -1
  511. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  512. package/dist/tempo/server/internal/transport.js.map +0 -1
  513. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  514. package/dist/tempo/session/Snapshot.js.map +0 -1
  515. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  516. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  517. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  518. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  519. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  520. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  521. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  522. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  523. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  524. package/dist/tempo/session/client/Runtime.js.map +0 -1
  525. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  526. package/dist/tempo/session/client/Session.js.map +0 -1
  527. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  528. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  529. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  530. package/dist/tempo/session/client/Transports.js.map +0 -1
  531. package/dist/tempo/session/client/index.d.ts.map +0 -1
  532. package/dist/tempo/session/client/index.js.map +0 -1
  533. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  534. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  535. package/dist/tempo/session/index.d.ts.map +0 -1
  536. package/dist/tempo/session/index.js.map +0 -1
  537. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  538. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  539. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  540. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  541. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  542. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  543. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  544. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  545. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  546. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  547. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  548. package/dist/tempo/session/precompile/index.js.map +0 -1
  549. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  550. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  551. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  552. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  553. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  554. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  555. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  556. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  557. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  558. package/dist/tempo/session/server/RequestState.js.map +0 -1
  559. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  560. package/dist/tempo/session/server/Session.js.map +0 -1
  561. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  562. package/dist/tempo/session/server/Settlement.js.map +0 -1
  563. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  564. package/dist/tempo/session/server/Sse.js.map +0 -1
  565. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  566. package/dist/tempo/session/server/Transports.js.map +0 -1
  567. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  568. package/dist/tempo/session/server/Ws.js.map +0 -1
  569. package/dist/tempo/session/server/index.d.ts.map +0 -1
  570. package/dist/tempo/session/server/index.js.map +0 -1
  571. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  572. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  573. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  574. package/dist/tempo/subscription/Receipt.js.map +0 -1
  575. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  576. package/dist/tempo/subscription/Store.js.map +0 -1
  577. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  578. package/dist/tempo/subscription/Types.js.map +0 -1
  579. package/dist/tempo/subscription/index.d.ts.map +0 -1
  580. package/dist/tempo/subscription/index.js.map +0 -1
  581. package/dist/validation/core.d.ts.map +0 -1
  582. package/dist/validation/core.js.map +0 -1
  583. package/dist/validation/index.d.ts.map +0 -1
  584. package/dist/validation/index.js.map +0 -1
  585. package/dist/viem/Account.d.ts.map +0 -1
  586. package/dist/viem/Account.js.map +0 -1
  587. package/dist/viem/Client.d.ts.map +0 -1
  588. package/dist/viem/Client.js.map +0 -1
  589. package/dist/x402/Assets.d.ts.map +0 -1
  590. package/dist/x402/Assets.js.map +0 -1
  591. package/dist/x402/Header.d.ts.map +0 -1
  592. package/dist/x402/Header.js.map +0 -1
  593. package/dist/x402/Types.d.ts.map +0 -1
  594. package/dist/x402/Types.js.map +0 -1
  595. package/dist/x402/client/Exact.d.ts.map +0 -1
  596. package/dist/x402/client/Exact.js.map +0 -1
  597. package/dist/x402/index.d.ts.map +0 -1
  598. package/dist/x402/index.js.map +0 -1
  599. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  600. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  601. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  602. package/dist/x402/internal/RouteBinding.js.map +0 -1
  603. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  604. package/dist/x402/server/EvmCharge.js.map +0 -1
  605. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  606. package/dist/x402/server/Facilitator.js.map +0 -1
  607. package/dist/zod.d.ts.map +0 -1
  608. package/dist/zod.js.map +0 -1
  609. package/src/BodyDigest.test.ts +0 -43
  610. package/src/BodyDigest.ts +0 -55
  611. package/src/Challenge.fuzz.test.ts +0 -121
  612. package/src/Challenge.test-d.ts +0 -82
  613. package/src/Challenge.test.ts +0 -995
  614. package/src/Challenge.ts +0 -683
  615. package/src/Constants.ts +0 -58
  616. package/src/Credential.fuzz.test.ts +0 -62
  617. package/src/Credential.test.ts +0 -378
  618. package/src/Credential.ts +0 -217
  619. package/src/Errors.test.ts +0 -520
  620. package/src/Errors.ts +0 -448
  621. package/src/Expires.test.ts +0 -112
  622. package/src/Expires.ts +0 -59
  623. package/src/Html.ts +0 -67
  624. package/src/Mcp.ts +0 -85
  625. package/src/Method.test.ts +0 -177
  626. package/src/Method.ts +0 -617
  627. package/src/PaymentRequest.test.ts +0 -147
  628. package/src/PaymentRequest.ts +0 -108
  629. package/src/Receipt.test.ts +0 -151
  630. package/src/Receipt.ts +0 -146
  631. package/src/Store.test-d.ts +0 -195
  632. package/src/Store.test.ts +0 -357
  633. package/src/Store.ts +0 -329
  634. package/src/bin.ts +0 -4
  635. package/src/cli/account.ts +0 -269
  636. package/src/cli/cli.test.ts +0 -2221
  637. package/src/cli/cli.ts +0 -1649
  638. package/src/cli/config.test.ts +0 -89
  639. package/src/cli/config.ts +0 -50
  640. package/src/cli/internal.ts +0 -114
  641. package/src/cli/mcp.test.ts +0 -262
  642. package/src/cli/plugins/evm.ts +0 -55
  643. package/src/cli/plugins/index.ts +0 -4
  644. package/src/cli/plugins/plugin.ts +0 -84
  645. package/src/cli/plugins/stripe.ts +0 -174
  646. package/src/cli/plugins/tempo.ts +0 -1102
  647. package/src/cli/sessions/Manager.test.ts +0 -249
  648. package/src/cli/sessions/Manager.ts +0 -93
  649. package/src/cli/sessions/commands.ts +0 -444
  650. package/src/cli/sessions/request.test.ts +0 -51
  651. package/src/cli/sessions/request.ts +0 -353
  652. package/src/cli/sessions/store.test.ts +0 -581
  653. package/src/cli/sessions/store.ts +0 -940
  654. package/src/cli/utils.test.ts +0 -156
  655. package/src/cli/utils.ts +0 -394
  656. package/src/cli/validate/challenge.ts +0 -565
  657. package/src/cli/validate/discovery.test.ts +0 -435
  658. package/src/cli/validate/discovery.ts +0 -221
  659. package/src/cli/validate/helpers.ts +0 -166
  660. package/src/cli/validate/index.ts +0 -229
  661. package/src/cli/validate/messages.ts +0 -7
  662. package/src/cli/validate/payment.ts +0 -774
  663. package/src/cli/validate.test.ts +0 -843
  664. package/src/client/Methods.ts +0 -8
  665. package/src/client/Mppx.test-d.ts +0 -270
  666. package/src/client/Mppx.test.ts +0 -1065
  667. package/src/client/Mppx.ts +0 -466
  668. package/src/client/Transport.test.ts +0 -619
  669. package/src/client/Transport.ts +0 -191
  670. package/src/client/index.ts +0 -29
  671. package/src/client/internal/Fetch.browser.test.ts +0 -197
  672. package/src/client/internal/Fetch.test-d.ts +0 -109
  673. package/src/client/internal/Fetch.test.ts +0 -2336
  674. package/src/client/internal/Fetch.ts +0 -1079
  675. package/src/client/internal/MethodChallenge.ts +0 -35
  676. package/src/client/internal/MethodResponse.ts +0 -67
  677. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  678. package/src/client/internal/protocols/Mcp.ts +0 -186
  679. package/src/client/internal/protocols/Mpp.ts +0 -21
  680. package/src/client/internal/protocols/Protocol.ts +0 -10
  681. package/src/client/internal/protocols/Shared.ts +0 -25
  682. package/src/client/internal/protocols/X402.ts +0 -46
  683. package/src/client/node.test.ts +0 -115
  684. package/src/client/node.ts +0 -247
  685. package/src/discovery/Discovery.test.ts +0 -214
  686. package/src/discovery/Discovery.ts +0 -105
  687. package/src/discovery/OpenApi.test.ts +0 -453
  688. package/src/discovery/OpenApi.ts +0 -224
  689. package/src/discovery/Validate.test.ts +0 -305
  690. package/src/discovery/Validate.ts +0 -77
  691. package/src/discovery/index.ts +0 -3
  692. package/src/env.d.ts +0 -12
  693. package/src/evm/Assets.ts +0 -1
  694. package/src/evm/Chains.ts +0 -11
  695. package/src/evm/Methods.ts +0 -44
  696. package/src/evm/PublicInterface.test-d.ts +0 -134
  697. package/src/evm/Types.ts +0 -140
  698. package/src/evm/client/Charge.test.ts +0 -347
  699. package/src/evm/client/Charge.ts +0 -187
  700. package/src/evm/client/Methods.ts +0 -19
  701. package/src/evm/client/index.ts +0 -6
  702. package/src/evm/index.ts +0 -16
  703. package/src/evm/server/Charge.test.ts +0 -339
  704. package/src/evm/server/Charge.ts +0 -290
  705. package/src/evm/server/Methods.ts +0 -22
  706. package/src/evm/server/index.ts +0 -6
  707. package/src/index.ts +0 -14
  708. package/src/internal/AcceptPayment.test.ts +0 -343
  709. package/src/internal/AcceptPayment.ts +0 -366
  710. package/src/internal/HeaderCodec.ts +0 -36
  711. package/src/internal/changeset.test.ts +0 -106
  712. package/src/internal/constantTimeEqual.test.ts +0 -47
  713. package/src/internal/constantTimeEqual.ts +0 -10
  714. package/src/internal/env.test.ts +0 -42
  715. package/src/internal/env.ts +0 -49
  716. package/src/internal/types.test-d.ts +0 -21
  717. package/src/internal/types.ts +0 -470
  718. package/src/mcp/client/McpClient.integration.test.ts +0 -652
  719. package/src/mcp/client/McpClient.test-d.ts +0 -144
  720. package/src/mcp/client/McpClient.test.ts +0 -463
  721. package/src/mcp/client/McpClient.ts +0 -307
  722. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  723. package/src/mcp/client/index.ts +0 -2
  724. package/src/mcp/server/Transport.test.ts +0 -191
  725. package/src/mcp/server/Transport.ts +0 -111
  726. package/src/mcp/server/index.ts +0 -1
  727. package/src/middlewares/elysia.test.ts +0 -295
  728. package/src/middlewares/elysia.ts +0 -116
  729. package/src/middlewares/express.test.ts +0 -371
  730. package/src/middlewares/express.ts +0 -140
  731. package/src/middlewares/hono.test.ts +0 -476
  732. package/src/middlewares/hono.ts +0 -153
  733. package/src/middlewares/internal/mppx.test.ts +0 -177
  734. package/src/middlewares/internal/mppx.ts +0 -67
  735. package/src/middlewares/nextjs.test.ts +0 -369
  736. package/src/middlewares/nextjs.ts +0 -107
  737. package/src/proxy/Proxy.test.ts +0 -1031
  738. package/src/proxy/Proxy.ts +0 -345
  739. package/src/proxy/Service.test.ts +0 -182
  740. package/src/proxy/Service.ts +0 -253
  741. package/src/proxy/index.ts +0 -6
  742. package/src/proxy/internal/Headers.test.ts +0 -139
  743. package/src/proxy/internal/Headers.ts +0 -66
  744. package/src/proxy/internal/Route.test.ts +0 -217
  745. package/src/proxy/internal/Route.ts +0 -64
  746. package/src/proxy/services/anthropic.test.ts +0 -132
  747. package/src/proxy/services/anthropic.ts +0 -52
  748. package/src/proxy/services/openai.test.ts +0 -157
  749. package/src/proxy/services/openai.ts +0 -59
  750. package/src/proxy/services/stripe.test.ts +0 -175
  751. package/src/proxy/services/stripe.ts +0 -58
  752. package/src/server/Methods.ts +0 -3
  753. package/src/server/Mppx.authorize.test.ts +0 -210
  754. package/src/server/Mppx.test-d.ts +0 -360
  755. package/src/server/Mppx.test.ts +0 -5813
  756. package/src/server/Mppx.ts +0 -2623
  757. package/src/server/NodeListener.test.ts +0 -293
  758. package/src/server/NodeListener.ts +0 -45
  759. package/src/server/Request.test.ts +0 -255
  760. package/src/server/Request.ts +0 -155
  761. package/src/server/Response.test.ts +0 -32
  762. package/src/server/Response.ts +0 -45
  763. package/src/server/Transport.test.ts +0 -598
  764. package/src/server/Transport.ts +0 -320
  765. package/src/server/index.ts +0 -9
  766. package/src/server/internal/html/compose.main.gen.ts +0 -2
  767. package/src/server/internal/html/compose.main.ts +0 -88
  768. package/src/server/internal/html/config.ts +0 -672
  769. package/src/server/internal/html/constants.ts +0 -28
  770. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  771. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  772. package/src/server/internal/html/serviceWorker.ts +0 -27
  773. package/src/server/internal/html/tsconfig.compose.json +0 -8
  774. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  775. package/src/server/internal/html/tsconfig.worker.json +0 -8
  776. package/src/server/internal/scope.ts +0 -43
  777. package/src/stripe/Charge.integration.test.ts +0 -329
  778. package/src/stripe/Methods.test.ts +0 -62
  779. package/src/stripe/Methods.ts +0 -44
  780. package/src/stripe/client/Charge.test.ts +0 -205
  781. package/src/stripe/client/Charge.ts +0 -132
  782. package/src/stripe/client/Methods.ts +0 -37
  783. package/src/stripe/client/index.ts +0 -2
  784. package/src/stripe/index.ts +0 -1
  785. package/src/stripe/internal/constants.ts +0 -7
  786. package/src/stripe/internal/types.ts +0 -46
  787. package/src/stripe/server/Charge.test-d.ts +0 -66
  788. package/src/stripe/server/Charge.test.ts +0 -621
  789. package/src/stripe/server/Charge.ts +0 -434
  790. package/src/stripe/server/Methods.ts +0 -24
  791. package/src/stripe/server/index.ts +0 -2
  792. package/src/stripe/server/internal/html/main.ts +0 -165
  793. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  794. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  795. package/src/stripe/server/internal/html/package.json +0 -9
  796. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  797. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  798. package/src/stripe/server/internal/html/types.ts +0 -5
  799. package/src/stripe/server/internal/html.gen.ts +0 -2
  800. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  801. package/src/tempo/Attribution.test.ts +0 -294
  802. package/src/tempo/Attribution.ts +0 -185
  803. package/src/tempo/Methods.test.ts +0 -425
  804. package/src/tempo/Methods.ts +0 -367
  805. package/src/tempo/Proof.conformance.test.ts +0 -146
  806. package/src/tempo/Proof.test-d.ts +0 -32
  807. package/src/tempo/Proof.test.ts +0 -40
  808. package/src/tempo/Proof.ts +0 -69
  809. package/src/tempo/PublicExports.test-d.ts +0 -130
  810. package/src/tempo/Subscription.integration.test.ts +0 -591
  811. package/src/tempo/client/Charge.test.ts +0 -501
  812. package/src/tempo/client/Charge.ts +0 -289
  813. package/src/tempo/client/Methods.ts +0 -45
  814. package/src/tempo/client/ResolveAccount.ts +0 -46
  815. package/src/tempo/client/Subscription.test.ts +0 -180
  816. package/src/tempo/client/Subscription.ts +0 -156
  817. package/src/tempo/client/index.ts +0 -17
  818. package/src/tempo/index.ts +0 -5
  819. package/src/tempo/internal/account.ts +0 -56
  820. package/src/tempo/internal/address.ts +0 -6
  821. package/src/tempo/internal/auto-swap.test.ts +0 -198
  822. package/src/tempo/internal/auto-swap.ts +0 -188
  823. package/src/tempo/internal/charge.test.ts +0 -66
  824. package/src/tempo/internal/charge.ts +0 -43
  825. package/src/tempo/internal/defaults.test.ts +0 -95
  826. package/src/tempo/internal/defaults.ts +0 -53
  827. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  828. package/src/tempo/internal/fee-payer.ts +0 -808
  829. package/src/tempo/internal/fee-token.test.ts +0 -165
  830. package/src/tempo/internal/fee-token.ts +0 -72
  831. package/src/tempo/internal/proof.test.ts +0 -97
  832. package/src/tempo/internal/proof.ts +0 -87
  833. package/src/tempo/internal/selectors.ts +0 -10
  834. package/src/tempo/internal/types.ts +0 -19
  835. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  836. package/src/tempo/legacy/README.md +0 -9
  837. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  838. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  839. package/src/tempo/legacy/client/Session.test.ts +0 -800
  840. package/src/tempo/legacy/client/Session.ts +0 -397
  841. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  842. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  843. package/src/tempo/legacy/client/index.ts +0 -6
  844. package/src/tempo/legacy/index.ts +0 -6
  845. package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
  846. package/src/tempo/legacy/server/Session.test.ts +0 -6370
  847. package/src/tempo/legacy/server/Session.ts +0 -1024
  848. package/src/tempo/legacy/server/index.ts +0 -4
  849. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  850. package/src/tempo/legacy/session/Chain.ts +0 -830
  851. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  852. package/src/tempo/legacy/session/Channel.ts +0 -51
  853. package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
  854. package/src/tempo/legacy/session/ChannelStore.ts +0 -39
  855. package/src/tempo/legacy/session/Types.ts +0 -91
  856. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  857. package/src/tempo/legacy/session/Voucher.ts +0 -183
  858. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  859. package/src/tempo/legacy/session/index.ts +0 -8
  860. package/src/tempo/server/AtomicStore.test-d.ts +0 -50
  861. package/src/tempo/server/Charge.test.ts +0 -6121
  862. package/src/tempo/server/Charge.ts +0 -1351
  863. package/src/tempo/server/Methods.ts +0 -106
  864. package/src/tempo/server/Relay.test.ts +0 -677
  865. package/src/tempo/server/Relay.ts +0 -297
  866. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  867. package/src/tempo/server/SponsorBudget.ts +0 -219
  868. package/src/tempo/server/Sse.test.ts +0 -321
  869. package/src/tempo/server/Subscription.test.ts +0 -1944
  870. package/src/tempo/server/Subscription.ts +0 -1333
  871. package/src/tempo/server/index.ts +0 -12
  872. package/src/tempo/server/internal/html/main.ts +0 -115
  873. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  874. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  875. package/src/tempo/server/internal/html/package.json +0 -10
  876. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  877. package/src/tempo/server/internal/html.gen.ts +0 -2
  878. package/src/tempo/server/internal/request-body.test.ts +0 -210
  879. package/src/tempo/server/internal/request-body.ts +0 -61
  880. package/src/tempo/server/internal/transport.test.ts +0 -903
  881. package/src/tempo/server/internal/transport.ts +0 -310
  882. package/src/tempo/session/README.md +0 -208
  883. package/src/tempo/session/Snapshot.test.ts +0 -41
  884. package/src/tempo/session/Snapshot.ts +0 -95
  885. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  886. package/src/tempo/session/client/ChannelOps.ts +0 -348
  887. package/src/tempo/session/client/ChannelStore.ts +0 -111
  888. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  889. package/src/tempo/session/client/CredentialState.ts +0 -942
  890. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  891. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  892. package/src/tempo/session/client/Runtime.ts +0 -1008
  893. package/src/tempo/session/client/Session.test.ts +0 -1355
  894. package/src/tempo/session/client/Session.ts +0 -420
  895. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  896. package/src/tempo/session/client/SessionManager.ts +0 -996
  897. package/src/tempo/session/client/Transports.test.ts +0 -1141
  898. package/src/tempo/session/client/Transports.ts +0 -1534
  899. package/src/tempo/session/client/index.ts +0 -40
  900. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  901. package/src/tempo/session/index.ts +0 -7
  902. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  903. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  904. package/src/tempo/session/precompile/Chain.ts +0 -1149
  905. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  906. package/src/tempo/session/precompile/Channel.ts +0 -108
  907. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  908. package/src/tempo/session/precompile/Protocol.ts +0 -520
  909. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  910. package/src/tempo/session/precompile/Voucher.ts +0 -162
  911. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  912. package/src/tempo/session/precompile/index.ts +0 -33
  913. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  914. package/src/tempo/session/server/ChannelOps.ts +0 -157
  915. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  916. package/src/tempo/session/server/ChannelStore.ts +0 -835
  917. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  918. package/src/tempo/session/server/CredentialVerification.ts +0 -775
  919. package/src/tempo/session/server/MeteredStream.ts +0 -95
  920. package/src/tempo/session/server/RequestState.test.ts +0 -574
  921. package/src/tempo/session/server/RequestState.ts +0 -507
  922. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  923. package/src/tempo/session/server/Session.test.ts +0 -3862
  924. package/src/tempo/session/server/Session.ts +0 -570
  925. package/src/tempo/session/server/Settlement.test.ts +0 -345
  926. package/src/tempo/session/server/Settlement.ts +0 -527
  927. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  928. package/src/tempo/session/server/Sse.test.ts +0 -557
  929. package/src/tempo/session/server/Sse.ts +0 -254
  930. package/src/tempo/session/server/Transports.test.ts +0 -346
  931. package/src/tempo/session/server/Transports.ts +0 -255
  932. package/src/tempo/session/server/Ws.test.ts +0 -594
  933. package/src/tempo/session/server/Ws.ts +0 -385
  934. package/src/tempo/session/server/index.ts +0 -12
  935. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  936. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  937. package/src/tempo/subscription/Receipt.ts +0 -28
  938. package/src/tempo/subscription/Store.test.ts +0 -609
  939. package/src/tempo/subscription/Store.ts +0 -449
  940. package/src/tempo/subscription/Types.ts +0 -68
  941. package/src/tempo/subscription/index.ts +0 -23
  942. package/src/tsconfig.json +0 -10
  943. package/src/validation/core.ts +0 -386
  944. package/src/validation/index.ts +0 -11
  945. package/src/viem/Account.test.ts +0 -72
  946. package/src/viem/Account.ts +0 -30
  947. package/src/viem/Client.test.ts +0 -366
  948. package/src/viem/Client.ts +0 -93
  949. package/src/x402/Assets.test.ts +0 -253
  950. package/src/x402/Assets.ts +0 -221
  951. package/src/x402/Exact.e2e.test.ts +0 -448
  952. package/src/x402/Exact.localnet.test.ts +0 -475
  953. package/src/x402/Header.test.ts +0 -73
  954. package/src/x402/Header.ts +0 -79
  955. package/src/x402/PublicInterface.test-d.ts +0 -39
  956. package/src/x402/Types.ts +0 -248
  957. package/src/x402/client/Exact.test.ts +0 -309
  958. package/src/x402/client/Exact.ts +0 -186
  959. package/src/x402/index.ts +0 -6
  960. package/src/x402/internal/ChallengeBrand.ts +0 -14
  961. package/src/x402/internal/RouteBinding.ts +0 -18
  962. package/src/x402/server/EvmCharge.ts +0 -394
  963. package/src/x402/server/Facilitator.test.ts +0 -111
  964. package/src/x402/server/Facilitator.ts +0 -56
  965. package/src/zod.test.ts +0 -169
  966. package/src/zod.ts +0 -71
@@ -1,775 +0,0 @@
1
- import {
2
- isAddress,
3
- isAddressEqual,
4
- zeroAddress,
5
- type Account as viem_Account,
6
- type Address,
7
- type Hex,
8
- } from 'viem'
9
-
10
- import type * as Challenge from '../../../Challenge.js'
11
- import {
12
- AmountExceedsDepositError,
13
- ChannelClosedError,
14
- ChannelNotFoundError,
15
- InsufficientBalanceError,
16
- InvalidSignatureError,
17
- VerificationFailedError,
18
- } from '../../../Errors.js'
19
- import type * as FeePayer from '../../internal/fee-payer.js'
20
- import * as Chain from '../precompile/Chain.js'
21
- import { readChannelClosedReceiptFields } from '../precompile/Chain.js'
22
- import * as Channel from '../precompile/Channel.js'
23
- import {
24
- createSessionReceipt,
25
- uint96,
26
- type ChannelDescriptor,
27
- type SessionCredentialPayload,
28
- type SessionReceipt,
29
- } from '../precompile/Protocol.js'
30
- import * as Voucher from '../precompile/Voucher.js'
31
- import * as ChannelStore from './ChannelStore.js'
32
- import { getChallengePaymentFields } from './RequestState.js'
33
- import { assertSettlementSender, getClientAccount, type OnSessionSettlement } from './Settlement.js'
34
-
35
- /** Returns the effective voucher signer for a TIP-1034 descriptor. */
36
- export function authorizedSigner(descriptor: Channel.ChannelDescriptor): Address {
37
- return isAddressEqual(descriptor.authorizedSigner, zeroAddress)
38
- ? descriptor.payer
39
- : descriptor.authorizedSigner
40
- }
41
-
42
- /** Asserts that a credential payload includes a TIP-1034 descriptor. */
43
- export function assertDescriptor(payload: {
44
- descriptor?: Channel.ChannelDescriptor | undefined
45
- }): asserts payload is { descriptor: Channel.ChannelDescriptor } {
46
- if (!payload.descriptor)
47
- throw new VerificationFailedError({
48
- reason: 'descriptor required for TIP-1034 session action',
49
- })
50
- }
51
-
52
- /** Asserts that two TIP-1034 descriptors identify the same channel. */
53
- export function assertSameDescriptor(a: Channel.ChannelDescriptor, b: Channel.ChannelDescriptor) {
54
- if (
55
- !isAddressEqual(a.payer, b.payer) ||
56
- !isAddressEqual(a.payee, b.payee) ||
57
- !isAddressEqual(a.operator, b.operator) ||
58
- !isAddressEqual(a.token, b.token) ||
59
- !isAddressEqual(a.authorizedSigner, b.authorizedSigner) ||
60
- a.salt.toLowerCase() !== b.salt.toLowerCase() ||
61
- a.expiringNonceHash.toLowerCase() !== b.expiringNonceHash.toLowerCase()
62
- )
63
- throw new VerificationFailedError({
64
- reason: 'credential descriptor does not match stored channel',
65
- })
66
- }
67
-
68
- /**
69
- * Validates a TIP-1034 descriptor against channel ID, server destination, and token.
70
- */
71
- export function validateChannelDescriptor(
72
- descriptor: Channel.ChannelDescriptor,
73
- channelId: Address | `0x${string}`,
74
- chainId: number,
75
- escrow: Address,
76
- recipient: Address,
77
- currency: Address,
78
- expectedOperator?: Address | undefined,
79
- ): void {
80
- const computed = Channel.computeId({ ...descriptor, chainId, escrow })
81
- if (computed.toLowerCase() !== channelId.toLowerCase()) {
82
- throw new VerificationFailedError({ reason: 'channel descriptor does not match channelId' })
83
- }
84
- if (!isAddressEqual(descriptor.payee, recipient)) {
85
- throw new VerificationFailedError({
86
- reason: 'channel descriptor payee does not match server destination',
87
- })
88
- }
89
- if (!isAddressEqual(descriptor.token, currency)) {
90
- throw new VerificationFailedError({
91
- reason: 'channel descriptor token does not match server token',
92
- })
93
- }
94
- if (expectedOperator !== undefined && !isAddressEqual(descriptor.operator, expectedOperator)) {
95
- throw new VerificationFailedError({
96
- reason: 'channel descriptor operator does not match server operator',
97
- })
98
- }
99
- }
100
-
101
- /** Validates on-chain channel state before accepting or charging a credential. */
102
- export function validateChannelState(state: Chain.ChannelState, amount?: bigint): void {
103
- if (state.deposit === 0n) {
104
- throw new ChannelNotFoundError({ reason: 'channel not funded on-chain' })
105
- }
106
- if (state.closeRequestedAt !== 0) {
107
- throw new ChannelClosedError({ reason: 'channel has a pending close request' })
108
- }
109
- if (amount !== undefined && state.deposit - state.settled < amount) {
110
- throw new InsufficientBalanceError({
111
- reason: 'channel available balance insufficient for requested amount',
112
- })
113
- }
114
- }
115
-
116
- /** Asserts that an opening channel covers the route's requested payment. */
117
- export function assertOpenCredentialCoversRequest(parameters: {
118
- cumulativeAmount: bigint
119
- openDeposit: bigint
120
- requestAmount: bigint
121
- }): void {
122
- const { cumulativeAmount, openDeposit, requestAmount } = parameters
123
- if (openDeposit < requestAmount)
124
- throw new VerificationFailedError({ reason: 'open deposit is less than request amount' })
125
- if (cumulativeAmount < requestAmount)
126
- throw new VerificationFailedError({ reason: 'voucher amount is less than request amount' })
127
- }
128
-
129
- /** Verifies that the credential source is authorized to spend from the channel. */
130
- export function assertCredentialSourceCanSpend(parameters: {
131
- chainId: number
132
- channel: Pick<ChannelStore.State, 'authorizedSigner' | 'payer'>
133
- source?: string | undefined
134
- }): void {
135
- const sourceAddress = readCredentialSourceAddress(parameters.source, parameters.chainId)
136
- if (
137
- isAddressEqual(sourceAddress, parameters.channel.payer) ||
138
- isAddressEqual(sourceAddress, parameters.channel.authorizedSigner)
139
- )
140
- return
141
- throw new VerificationFailedError({
142
- reason: 'credential source does not match channel payer or authorized signer',
143
- })
144
- }
145
-
146
- function readCredentialSourceAddress(source: string | undefined, chainId: number): Address {
147
- const prefix = `did:pkh:eip155:${chainId}:`
148
- if (!source?.startsWith(prefix))
149
- throw new VerificationFailedError({ reason: 'credential source does not match channel' })
150
- const address = source.slice(prefix.length)
151
- if (isAddress(address, { strict: false })) return address
152
- throw new VerificationFailedError({ reason: 'invalid credential source' })
153
- }
154
-
155
- const sessionCredentialActions = [
156
- 'open',
157
- 'topUp',
158
- 'voucher',
159
- 'close',
160
- ] as const satisfies readonly SessionCredentialPayload['action'][]
161
- const sessionCredentialActionSet = new Set<string>(sessionCredentialActions)
162
-
163
- /** Shared action and channel fields required on every session credential payload. */
164
- export type SessionCredentialPayloadHeader = {
165
- /** Credential action discriminator. */
166
- action: SessionCredentialPayload['action']
167
- /** Channel ID the credential acts on. */
168
- channelId: Hex
169
- }
170
-
171
- type SessionCredentialPayloadData = {
172
- candidate: Record<string, unknown>
173
- header: SessionCredentialPayloadHeader
174
- }
175
-
176
- function isObject(value: unknown): value is Record<string, unknown> {
177
- return value !== null && typeof value === 'object'
178
- }
179
-
180
- function isSessionCredentialAction(value: unknown): value is SessionCredentialPayload['action'] {
181
- return typeof value === 'string' && sessionCredentialActionSet.has(value)
182
- }
183
-
184
- function isHex(value: unknown): value is Hex {
185
- return typeof value === 'string' && /^0x[0-9a-fA-F]*$/.test(value)
186
- }
187
-
188
- function isHash(value: unknown): value is Hex {
189
- return typeof value === 'string' && /^0x[0-9a-fA-F]{64}$/.test(value)
190
- }
191
-
192
- function readAddress(value: unknown, field: string): Address {
193
- if (typeof value === 'string' && isAddress(value, { strict: false })) return value
194
- throw new VerificationFailedError({ reason: `invalid session credential ${field}` })
195
- }
196
-
197
- function readHash(value: unknown, field: string): Hex {
198
- if (isHash(value)) return value
199
- throw new VerificationFailedError({ reason: `invalid session credential ${field}` })
200
- }
201
-
202
- function readHex(value: unknown, field: string): Hex {
203
- if (isHex(value)) return value
204
- throw new VerificationFailedError({ reason: `invalid session credential ${field}` })
205
- }
206
-
207
- function readRawAmount(value: unknown, field: string): string {
208
- if (typeof value === 'string' && /^[0-9]+$/.test(value)) return value
209
- throw new VerificationFailedError({ reason: `invalid session credential ${field}` })
210
- }
211
-
212
- function readPayloadObject(payload: unknown): Record<string, unknown> {
213
- if (!isObject(payload))
214
- throw new VerificationFailedError({ reason: 'invalid session credential payload' })
215
- return payload
216
- }
217
-
218
- function readDescriptor(value: unknown): ChannelDescriptor {
219
- if (value === undefined)
220
- throw new VerificationFailedError({
221
- reason: 'descriptor required for TIP-1034 session action',
222
- })
223
- const candidate = readPayloadObject(value)
224
- return {
225
- payer: readAddress(candidate.payer, 'descriptor.payer'),
226
- payee: readAddress(candidate.payee, 'descriptor.payee'),
227
- operator: readAddress(candidate.operator, 'descriptor.operator'),
228
- token: readAddress(candidate.token, 'descriptor.token'),
229
- salt: readHash(candidate.salt, 'descriptor.salt'),
230
- authorizedSigner: readAddress(candidate.authorizedSigner, 'descriptor.authorizedSigner'),
231
- expiringNonceHash: readHash(candidate.expiringNonceHash, 'descriptor.expiringNonceHash'),
232
- }
233
- }
234
-
235
- function readPayloadHeader(payload: unknown): SessionCredentialPayloadData {
236
- const candidate = readPayloadObject(payload)
237
- if (!isSessionCredentialAction(candidate.action)) {
238
- throw new VerificationFailedError({ reason: 'invalid session credential action' })
239
- }
240
- return {
241
- candidate,
242
- header: {
243
- action: candidate.action,
244
- channelId: ChannelStore.normalizeChannelId(readHash(candidate.channelId, 'channelId')),
245
- },
246
- }
247
- }
248
-
249
- /** Validates the action discriminator for a TIP-1034 session credential payload. */
250
- export function requireSessionCredentialAction(
251
- payload: unknown,
252
- ): SessionCredentialPayload['action'] {
253
- const candidate = readPayloadObject(payload)
254
- if (!isSessionCredentialAction(candidate.action)) {
255
- throw new VerificationFailedError({ reason: 'invalid session credential action' })
256
- }
257
- return candidate.action
258
- }
259
-
260
- /** Validates the shared action and channel fields for a TIP-1034 session credential payload. */
261
- export function requireSessionCredentialPayloadHeader(
262
- payload: unknown,
263
- ): SessionCredentialPayloadHeader {
264
- return readPayloadHeader(payload).header
265
- }
266
-
267
- /** Validates action-specific fields for a TIP-1034 session credential payload. */
268
- export function requireSessionCredentialPayload(payload: unknown): SessionCredentialPayload {
269
- const { candidate, header } = readPayloadHeader(payload)
270
- switch (header.action) {
271
- case 'open':
272
- return {
273
- action: 'open',
274
- type: readTransactionType(candidate.type),
275
- channelId: header.channelId,
276
- transaction: readHex(candidate.transaction, 'transaction'),
277
- signature: readHex(candidate.signature, 'signature'),
278
- descriptor: readDescriptor(candidate.descriptor),
279
- cumulativeAmount: readRawAmount(candidate.cumulativeAmount, 'cumulativeAmount'),
280
- ...(candidate.authorizedSigner === undefined
281
- ? {}
282
- : {
283
- authorizedSigner: readAddress(candidate.authorizedSigner, 'authorizedSigner'),
284
- }),
285
- }
286
- case 'topUp':
287
- return {
288
- action: 'topUp',
289
- type: readTransactionType(candidate.type),
290
- channelId: header.channelId,
291
- transaction: readHex(candidate.transaction, 'transaction'),
292
- descriptor: readDescriptor(candidate.descriptor),
293
- additionalDeposit: readRawAmount(candidate.additionalDeposit, 'additionalDeposit'),
294
- }
295
- case 'voucher':
296
- return {
297
- action: 'voucher',
298
- channelId: header.channelId,
299
- descriptor: readDescriptor(candidate.descriptor),
300
- cumulativeAmount: readRawAmount(candidate.cumulativeAmount, 'cumulativeAmount'),
301
- signature: readHex(candidate.signature, 'signature'),
302
- }
303
- case 'close':
304
- return {
305
- action: 'close',
306
- channelId: header.channelId,
307
- descriptor: readDescriptor(candidate.descriptor),
308
- cumulativeAmount: readRawAmount(candidate.cumulativeAmount, 'cumulativeAmount'),
309
- signature: readHex(candidate.signature, 'signature'),
310
- }
311
- }
312
- }
313
-
314
- function readTransactionType(value: unknown): 'transaction' {
315
- if (value === 'transaction') return value
316
- throw new VerificationFailedError({ reason: 'invalid session credential transaction type' })
317
- }
318
-
319
- /** Shared inputs required to verify a single precompile session credential payload. */
320
- export type VerifyCredentialPayloadParameters = {
321
- /** Optional account override used for payee-side close settlement. */
322
- account?: viem_Account | undefined
323
- /** Challenge echoed by the credential. */
324
- challenge: Challenge.Challenge
325
- /** Milliseconds before voucher verification refreshes on-chain channel state. */
326
- channelStateTtl: number
327
- /** Chain ID used for channel ID derivation and voucher domain separation. */
328
- chainId: number
329
- /** viem client used for precompile reads and transaction broadcasts. */
330
- client: Chain.TransactionClient
331
- /** Optional payer identifier from the HTTP credential source field. */
332
- credentialSource?: string | undefined
333
- /** TIP20EscrowChannel precompile address for this session method. */
334
- escrow: Address
335
- /** Operator address advertised in the HMAC-bound challenge details. */
336
- expectedOperator?: Address | undefined
337
- /** Fee-payer account, or `true` when the client transport delegates co-signing to a hosted relay. */
338
- feePayer?: viem_Account | true | undefined
339
- /** Optional policy for fee-sponsored close/open/top-up transactions. */
340
- feePayerPolicy?: Partial<FeePayer.Policy> | undefined
341
- /** Optional fee token override for close transactions. */
342
- feeToken?: Address | undefined
343
- /** Last successful on-chain refresh timestamp per channel ID. */
344
- lastOnChainVerified: Map<Hex, number>
345
- /** Minimum allowed voucher delta in raw units. */
346
- minVoucherDelta: bigint
347
- /** Callback invoked after an on-chain settlement or close transaction is confirmed. */
348
- onSessionSettlement?: OnSessionSettlement | undefined
349
- /** Discriminated session credential payload to verify. */
350
- payload: SessionCredentialPayload
351
- /** Server-side channel store. */
352
- store: ChannelStore.ChannelStore
353
- }
354
-
355
- /** Narrows shared credential verification inputs to one payload action. */
356
- export type VerifyCredentialActionParameters<action extends SessionCredentialPayload['action']> =
357
- Omit<VerifyCredentialPayloadParameters, 'payload'> & {
358
- /** Credential payload for the selected action. */
359
- payload: Extract<SessionCredentialPayload, { action: action }>
360
- }
361
-
362
- /** Inputs for verifying an open transaction credential and initial voucher. */
363
- export type OpenCredentialActionParameters = VerifyCredentialActionParameters<'open'>
364
-
365
- /** Inputs for verifying a top-up transaction credential. */
366
- export type TopUpCredentialActionParameters = VerifyCredentialActionParameters<'topUp'>
367
-
368
- /** Inputs for verifying and accepting an incremental voucher credential. */
369
- export type VoucherCredentialActionParameters = VerifyCredentialActionParameters<'voucher'>
370
-
371
- /** Inputs for verifying and settling a cooperative close credential. */
372
- export type CloseCredentialActionParameters = VerifyCredentialActionParameters<'close'>
373
-
374
- const refreshOnChainVerificationCache = {
375
- close: false,
376
- open: true,
377
- topUp: true,
378
- voucher: false,
379
- } satisfies Record<SessionCredentialPayload['action'], boolean>
380
-
381
- /** Verifies a session credential payload and applies the action-specific state transition. */
382
- export async function verifyCredentialPayload(
383
- context: VerifyCredentialPayloadParameters,
384
- ): Promise<SessionReceipt> {
385
- const receipt = await verifyCredentialAction(context)
386
- if (refreshOnChainVerificationCache[context.payload.action])
387
- context.lastOnChainVerified.set(receipt.channelId, Date.now())
388
- return receipt
389
- }
390
-
391
- function verifyCredentialAction(
392
- context: VerifyCredentialPayloadParameters,
393
- ): Promise<SessionReceipt> {
394
- const { payload } = context
395
- switch (payload.action) {
396
- case 'open':
397
- return handleOpenCredential(actionContext(context, payload))
398
- case 'topUp':
399
- return handleTopUpCredential(actionContext(context, payload))
400
- case 'voucher':
401
- return handleVoucherCredential(actionContext(context, payload))
402
- case 'close':
403
- return handleCloseCredential(actionContext(context, payload))
404
- }
405
- }
406
-
407
- function actionContext<action extends SessionCredentialPayload['action']>(
408
- context: VerifyCredentialPayloadParameters,
409
- payload: Extract<SessionCredentialPayload, { action: action }>,
410
- ): VerifyCredentialActionParameters<action> {
411
- return { ...context, payload }
412
- }
413
-
414
- async function handleOpenCredential(
415
- parameters: OpenCredentialActionParameters,
416
- ): Promise<SessionReceipt> {
417
- const { store, client, challenge, payload, chainId, escrow } = parameters
418
- const request = getChallengePaymentFields(challenge)
419
- const expectedOperator = parameters.expectedOperator ?? zeroAddress
420
- const cumulativeAmount = uint96(BigInt(payload.cumulativeAmount))
421
- assertDescriptor(payload)
422
- if (
423
- payload.authorizedSigner !== undefined &&
424
- !isAddressEqual(payload.authorizedSigner, payload.descriptor.authorizedSigner)
425
- )
426
- throw new VerificationFailedError({
427
- reason: 'credential authorizedSigner does not match descriptor',
428
- })
429
- const channelId = ChannelStore.normalizeChannelId(payload.channelId)
430
- validateChannelDescriptor(
431
- payload.descriptor,
432
- channelId,
433
- chainId,
434
- escrow,
435
- request.recipient,
436
- request.currency,
437
- expectedOperator,
438
- )
439
-
440
- const result = await Chain.broadcastOpenTransaction({
441
- challengeExpires: challenge.expires,
442
- chainId,
443
- client,
444
- escrowContract: escrow,
445
- expectedAuthorizedSigner: payload.descriptor.authorizedSigner,
446
- expectedChannelId: channelId,
447
- expectedCurrency: request.currency,
448
- expectedOperator,
449
- expectedPayee: request.recipient,
450
- expectedExpiringNonceHash: payload.descriptor.expiringNonceHash,
451
- expectedPayer: payload.descriptor.payer,
452
- feePayer: parameters.feePayer,
453
- feePayerPolicy: parameters.feePayerPolicy,
454
- serializedTransaction: payload.transaction,
455
- async beforeBroadcast(prepared) {
456
- assertOpenCredentialCoversRequest({
457
- cumulativeAmount,
458
- openDeposit: prepared.openDeposit,
459
- requestAmount: request.amount,
460
- })
461
- assertSameDescriptor(prepared.descriptor, payload.descriptor)
462
- if (cumulativeAmount > prepared.openDeposit)
463
- throw new AmountExceedsDepositError({ reason: 'voucher amount exceeds open deposit' })
464
- const valid = await Voucher.verifyVoucher(
465
- escrow,
466
- chainId,
467
- { channelId, cumulativeAmount: cumulativeAmount, signature: payload.signature },
468
- authorizedSigner(prepared.descriptor),
469
- )
470
- if (!valid) throw new InvalidSignatureError({ reason: 'invalid voucher signature' })
471
- },
472
- })
473
- const { descriptor, state } = result
474
- assertSameDescriptor(descriptor, payload.descriptor)
475
- validateChannelState(state, request.amount)
476
-
477
- const updated = await store.updateChannel(channelId, (current) =>
478
- ChannelStore.openChannelState({
479
- authorizedSigner: authorizedSigner(descriptor),
480
- chainId,
481
- channelId,
482
- current,
483
- descriptor,
484
- escrow,
485
- expiringNonceHash: result.expiringNonceHash,
486
- cumulativeAmount,
487
- signature: payload.signature,
488
- state,
489
- }),
490
- )
491
- if (!updated) throw new VerificationFailedError({ reason: 'failed to create channel' })
492
- return createSessionReceipt({
493
- challengeId: challenge.id,
494
- channelId,
495
- acceptedCumulative: updated.highestVoucherAmount,
496
- spent: updated.spent,
497
- units: updated.units,
498
- txHash: result.txHash,
499
- })
500
- }
501
-
502
- async function handleTopUpCredential(
503
- parameters: TopUpCredentialActionParameters,
504
- ): Promise<SessionReceipt> {
505
- const { store, client, challenge, payload, chainId, escrow } = parameters
506
- const request = getChallengePaymentFields(challenge)
507
- const expectedOperator = parameters.expectedOperator ?? zeroAddress
508
- const additionalDeposit = uint96(BigInt(payload.additionalDeposit))
509
- assertDescriptor(payload)
510
- const channelId = ChannelStore.normalizeChannelId(payload.channelId)
511
- validateChannelDescriptor(
512
- payload.descriptor,
513
- channelId,
514
- chainId,
515
- escrow,
516
- request.recipient,
517
- request.currency,
518
- expectedOperator,
519
- )
520
- const channel = await ChannelStore.loadPrecompileChannel({
521
- descriptor: payload.descriptor,
522
- channelId,
523
- chainId,
524
- escrow,
525
- store,
526
- validateDescriptor: true,
527
- })
528
- const result = await Chain.broadcastTopUpTransaction({
529
- additionalDeposit,
530
- challengeExpires: challenge.expires,
531
- chainId,
532
- client,
533
- descriptor: channel.descriptor,
534
- escrowContract: escrow,
535
- expectedChannelId: channelId,
536
- expectedCurrency: request.currency,
537
- feePayer: parameters.feePayer,
538
- feePayerPolicy: parameters.feePayerPolicy,
539
- serializedTransaction: payload.transaction,
540
- })
541
- const { state } = result
542
- validateChannelState(state)
543
-
544
- const updated = await store.updateChannel(channelId, (current) =>
545
- ChannelStore.topUpChannelState({ current, state }),
546
- )
547
- return createSessionReceipt({
548
- challengeId: challenge.id,
549
- channelId,
550
- acceptedCumulative: updated?.highestVoucherAmount ?? channel.highestVoucherAmount,
551
- spent: updated?.spent ?? channel.spent,
552
- units: updated?.units ?? channel.units,
553
- txHash: result.txHash,
554
- })
555
- }
556
-
557
- async function handleVoucherCredential(
558
- parameters: VoucherCredentialActionParameters,
559
- ): Promise<SessionReceipt> {
560
- const {
561
- store,
562
- client,
563
- challenge,
564
- credentialSource,
565
- payload,
566
- chainId,
567
- escrow,
568
- minVoucherDelta,
569
- channelStateTtl,
570
- lastOnChainVerified,
571
- } = parameters
572
- const request = getChallengePaymentFields(challenge)
573
- const expectedOperator = parameters.expectedOperator ?? zeroAddress
574
- const channelId = ChannelStore.normalizeChannelId(payload.channelId)
575
- const voucher = Voucher.parseVoucherFromPayload(
576
- channelId,
577
- payload.cumulativeAmount,
578
- payload.signature,
579
- )
580
- assertDescriptor(payload)
581
- validateChannelDescriptor(
582
- payload.descriptor,
583
- channelId,
584
- chainId,
585
- escrow,
586
- request.recipient,
587
- request.currency,
588
- expectedOperator,
589
- )
590
- const channel = await ChannelStore.loadPrecompileChannel({
591
- descriptor: payload.descriptor,
592
- channelId,
593
- chainId,
594
- escrow,
595
- store,
596
- validateDescriptor: true,
597
- })
598
- assertCredentialSourceCanSpend({ chainId, channel, source: credentialSource })
599
- if (channel.finalized) throw new ChannelClosedError({ reason: 'channel is finalized' })
600
- const isStale = Date.now() - (lastOnChainVerified.get(channelId) ?? 0) > channelStateTtl
601
- const state = isStale ? await Chain.getChannelState(client, channelId, escrow) : undefined
602
- if (state) lastOnChainVerified.set(channelId, Date.now())
603
- const channelState = {
604
- deposit: state?.deposit ?? uint96(channel.deposit),
605
- settled: state?.settled ?? uint96(channel.settledOnChain),
606
- closeRequestedAt: state?.closeRequestedAt ?? Number(channel.closeRequestedAt),
607
- }
608
- if (channelState.closeRequestedAt !== 0) {
609
- await store.updateChannel(channelId, (current) =>
610
- current
611
- ? {
612
- ...current,
613
- closeRequestedAt:
614
- BigInt(channelState.closeRequestedAt) > current.closeRequestedAt
615
- ? BigInt(channelState.closeRequestedAt)
616
- : current.closeRequestedAt,
617
- }
618
- : current,
619
- )
620
- }
621
- return ChannelStore.verifyAndAcceptVoucher({
622
- store,
623
- minVoucherDelta,
624
- challenge,
625
- channel,
626
- voucher,
627
- channelState,
628
- methodDetails: { chainId, escrowContract: escrow },
629
- })
630
- }
631
-
632
- async function handleCloseCredential(
633
- parameters: CloseCredentialActionParameters,
634
- ): Promise<SessionReceipt> {
635
- const { store, client, challenge, payload, chainId, escrow } = parameters
636
- const request = getChallengePaymentFields(challenge)
637
- const expectedOperator = parameters.expectedOperator ?? zeroAddress
638
- const cumulativeAmount = uint96(BigInt(payload.cumulativeAmount))
639
- const channelId = ChannelStore.normalizeChannelId(payload.channelId)
640
- assertDescriptor(payload)
641
- validateChannelDescriptor(
642
- payload.descriptor,
643
- channelId,
644
- chainId,
645
- escrow,
646
- request.recipient,
647
- request.currency,
648
- expectedOperator,
649
- )
650
- const channel = await ChannelStore.loadPrecompileChannel({
651
- descriptor: payload.descriptor,
652
- channelId,
653
- chainId,
654
- escrow,
655
- store,
656
- })
657
- if (channel.finalized) throw new ChannelClosedError({ reason: 'channel is already finalized' })
658
- const state = await Chain.getChannelState(client, channelId, escrow)
659
- if (state.closeRequestedAt !== 0)
660
- throw new ChannelClosedError({ reason: 'channel has a pending close request' })
661
- if (state.deposit === 0n && (cumulativeAmount !== 0n || channel.spent !== 0n))
662
- throw new ChannelClosedError({ reason: 'channel deposit is zero (settled)' })
663
- if (cumulativeAmount < channel.spent)
664
- throw new VerificationFailedError({
665
- reason: `close voucher amount must be >= ${channel.spent} (spent)`,
666
- })
667
- if (cumulativeAmount < state.settled)
668
- throw new VerificationFailedError({
669
- reason: `close voucher amount must be >= ${state.settled} (on-chain settled)`,
670
- })
671
- const valid = await Voucher.verifyVoucher(
672
- escrow,
673
- chainId,
674
- { channelId, cumulativeAmount: cumulativeAmount, signature: payload.signature },
675
- channel.authorizedSigner,
676
- )
677
- if (!valid) throw new InvalidSignatureError({ reason: 'invalid voucher signature' })
678
- let captureAmount = uint96(channel.spent > state.settled ? channel.spent : state.settled)
679
- if (captureAmount > state.deposit)
680
- throw new AmountExceedsDepositError({ reason: 'close capture amount exceeds on-chain deposit' })
681
- const pendingCloseStartedAt = BigInt(Math.floor(Date.now() / 1000) || 1)
682
- const previousCloseRequestedAt = channel.closeRequestedAt
683
- let pendingCloseMarked = false
684
- await store.updateChannel(channelId, (current) => {
685
- const next = ChannelStore.markPendingClose({
686
- closeRequestedAt: pendingCloseStartedAt,
687
- cumulativeAmount,
688
- current,
689
- onChainDeposit: state.deposit,
690
- onChainSettled: state.settled,
691
- })
692
- if (next.state) {
693
- captureAmount = next.captureAmount
694
- pendingCloseMarked = true
695
- }
696
- return next.state
697
- })
698
- const account = parameters.account ?? getClientAccount(client)
699
- let txHash: Hex | undefined
700
- let receipt: Awaited<ReturnType<typeof Chain.waitForSuccessfulReceipt>>
701
- try {
702
- assertSettlementSender({
703
- operation: 'close',
704
- channelId,
705
- operator: channel.operator,
706
- payee: channel.payee,
707
- sender: account?.address,
708
- })
709
- txHash = await Chain.closeOnChain(
710
- client,
711
- channel.descriptor,
712
- cumulativeAmount,
713
- captureAmount,
714
- payload.signature,
715
- escrow,
716
- account
717
- ? {
718
- account,
719
- ...(typeof parameters.feePayer === 'object' ? { feePayer: parameters.feePayer } : {}),
720
- ...(parameters.feePayerPolicy ? { feePayerPolicy: parameters.feePayerPolicy } : {}),
721
- ...(parameters.feeToken ? { feeToken: parameters.feeToken } : {}),
722
- candidateFeeTokens: [channel.token],
723
- }
724
- : undefined,
725
- )
726
- receipt = await Chain.waitForSuccessfulReceipt(client, txHash)
727
- } catch (error) {
728
- if (pendingCloseMarked) {
729
- await store.updateChannel(channelId, (current) =>
730
- current && current.closeRequestedAt === pendingCloseStartedAt
731
- ? { ...current, closeRequestedAt: previousCloseRequestedAt }
732
- : current,
733
- )
734
- }
735
- throw error
736
- }
737
- const closed = readChannelClosedReceiptFields(
738
- Chain.getChannelEvent(receipt, 'ChannelClosed', channelId),
739
- )
740
- const { refundedToPayer, settledToPayee } = closed
741
- if (settledToPayee > captureAmount || settledToPayee + refundedToPayer > state.deposit)
742
- throw new VerificationFailedError({ reason: 'ChannelClosed amounts do not match state' })
743
- const updated = await store.updateChannel(channelId, (current) =>
744
- ChannelStore.finalizeClosedChannelState({
745
- captureAmount,
746
- channelId,
747
- cumulativeAmount,
748
- current,
749
- signature: payload.signature,
750
- }),
751
- )
752
- if (parameters.onSessionSettlement && txHash) {
753
- try {
754
- await parameters.onSessionSettlement(
755
- Object.freeze({
756
- txHash,
757
- channelId,
758
- trigger: 'close' as const,
759
- amount: settledToPayee,
760
- delta: settledToPayee - state.settled,
761
- }),
762
- )
763
- } catch {
764
- // Errors are isolated — observers cannot break the settlement flow.
765
- }
766
- }
767
- return createSessionReceipt({
768
- challengeId: challenge.id,
769
- channelId,
770
- acceptedCumulative: cumulativeAmount,
771
- spent: updated?.spent ?? channel.spent,
772
- units: updated?.units ?? channel.units,
773
- txHash,
774
- })
775
- }