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,698 +0,0 @@
1
- /**
2
- * Server-side session payment method for request/response flows.
3
- *
4
- * Handles the full channel lifecycle (open, voucher, top-up, close) and
5
- * one-shot settlement. Each incoming request carries a session credential
6
- * with a cumulative voucher that the server validates and records.
7
- *
8
- * Use `session()` for standard HTTP request/response patterns where each
9
- * request is a discrete paid unit (for example, a page scrape or API call).
10
- * For long-lived connections that emit multiple paid events over a single
11
- * request, use {@link ../session/Sse} instead.
12
- */
13
- import { parseUnits, zeroAddress, } from 'viem';
14
- import { tempo as tempo_chain } from 'viem/tempo/chains';
15
- import * as Constants from '../../../Constants.js';
16
- import { AmountExceedsDepositError, BadRequestError, ChannelClosedError, ChannelNotFoundError, DeltaTooSmallError, InsufficientBalanceError, InvalidSignatureError, VerificationFailedError, } from '../../../Errors.js';
17
- import * as Method from '../../../Method.js';
18
- import * as Store from '../../../Store.js';
19
- import * as Client from '../../../viem/Client.js';
20
- import * as Account from '../../internal/account.js';
21
- import * as defaults from '../../internal/defaults.js';
22
- import * as Methods from '../../Methods.js';
23
- import { captureRequestBodyProbe, isSessionContentRequest, } from '../../server/internal/request-body.js';
24
- import * as Transport from '../../server/internal/transport.js';
25
- import { createSessionReceipt } from '../../session/precompile/Protocol.js';
26
- import { broadcastOpenTransaction, broadcastTopUpTransaction, closeOnChain, getOnChainChannel, settleOnChain, } from '../session/Chain.js';
27
- import * as ChannelStore from '../session/ChannelStore.js';
28
- import { parseVoucherFromPayload, verifyVoucher } from '../session/Voucher.js';
29
- /**
30
- * Creates a session payment server using the Method.toServer() pattern.
31
- *
32
- * @example
33
- * ```ts
34
- * import { Mppx, tempo } from 'mppx/server'
35
- *
36
- * const mppx = Mppx.create({
37
- * methods: [
38
- * tempo.session({
39
- * store: myStore,
40
- * recipient: '0x...',
41
- * currency: '0x...',
42
- * escrowContract: '0x...',
43
- * }),
44
- * ],
45
- * realm: 'my-app',
46
- * secretKey: '...',
47
- * })
48
- * ```
49
- */
50
- export function session(p) {
51
- const parameters = p;
52
- const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, feePayerPolicy, store: rawStore = Store.memory(), suggestedDeposit, unitType, waitForConfirmation = true, } = parameters;
53
- const lastOnChainVerified = new Map();
54
- const store = ChannelStore.fromStore(Store.from(rawStore, { keyPrefix: parameters.storeKeyPrefix }));
55
- const { account, recipient, feePayer, feePayerUrl } = Account.resolve(parameters);
56
- if (!account)
57
- throw new Error('tempo.session() requires an `account` (viem Account, e.g. privateKeyToAccount("0x...")). An address string is not sufficient — the server needs a signing account for on-chain channel close and settlement.');
58
- const getClient = Client.getResolver({
59
- chain: tempo_chain,
60
- feePayerUrl,
61
- getClient: parameters.getClient,
62
- rpcUrl: defaults.rpcUrl,
63
- });
64
- const transport = parameters.sse
65
- ? Transport.sse({
66
- store,
67
- ...(typeof parameters.sse === 'object' ? parameters.sse : undefined),
68
- })
69
- : undefined;
70
- return Method.toServer(Methods.session, {
71
- defaults: {
72
- amount,
73
- currency,
74
- decimals,
75
- recipient,
76
- suggestedDeposit,
77
- unitType,
78
- },
79
- transport,
80
- // TODO: dedupe `{charge,session}.request`
81
- async request({ credential, request }) {
82
- // Extract chainId from request or default.
83
- const chainId = await (async () => {
84
- if (request.chainId)
85
- return request.chainId;
86
- if (parameters.testnet)
87
- return defaults.chainId.testnet;
88
- return (await getClient({})).chain?.id;
89
- })();
90
- // Validate chainId.
91
- const client = await (async () => {
92
- try {
93
- return await getClient({ chainId });
94
- }
95
- catch {
96
- throw new Error(`No client configured with chainId ${chainId}.`);
97
- }
98
- })();
99
- if (client.chain?.id !== chainId)
100
- throw new Error(`Client not configured with chainId ${chainId}.`);
101
- const resolvedEscrow = request.escrowContract ??
102
- parameters.escrowContract ??
103
- defaults.escrowContract[chainId];
104
- // Extract feePayer.
105
- const resolvedFeePayer = (() => {
106
- if (request.feePayer === false)
107
- return credential ? false : undefined;
108
- const account = typeof request.feePayer === 'object' ? request.feePayer : feePayer;
109
- const requested = account ?? feePayer ?? feePayerUrl;
110
- if (credential)
111
- return account ?? (feePayerUrl ? true : undefined);
112
- if (requested)
113
- return true;
114
- return undefined;
115
- })();
116
- return {
117
- ...request,
118
- chainId,
119
- escrowContract: resolvedEscrow,
120
- feePayer: resolvedFeePayer,
121
- sessionProtocol: Constants.SessionProtocols.v1,
122
- };
123
- },
124
- async verify({ credential, envelope, request }) {
125
- const { challenge, payload } = credential;
126
- const resolvedRequest = (() => {
127
- const parsed = Methods.session.schema.request.safeParse(request);
128
- if (parsed.success)
129
- return parsed.data;
130
- // verifyCredential() passes the HMAC-bound challenge request, which is
131
- // already in canonical output form and should not be transformed again.
132
- return request;
133
- })();
134
- const methodDetails = resolvedRequest.methodDetails;
135
- const client = await getClient({ chainId: methodDetails.chainId });
136
- const requestAllowsFeePayer = request.feePayer !== false &&
137
- (request.feePayer === undefined ||
138
- request.feePayer === true ||
139
- typeof request.feePayer === 'object');
140
- const resolvedFeePayer = methodDetails.feePayer === true && requestAllowsFeePayer
141
- ? typeof request.feePayer === 'object'
142
- ? request.feePayer
143
- : feePayer
144
- : undefined;
145
- const minVoucherDelta = parseUnits(parameters.minVoucherDelta ?? '0', decimals);
146
- const effectiveMinVoucherDelta = methodDetails.minVoucherDelta
147
- ? BigInt(methodDetails.minVoucherDelta)
148
- : minVoucherDelta;
149
- let sessionReceipt;
150
- switch (payload.action) {
151
- case 'open':
152
- sessionReceipt = await handleOpen(store, client, challenge, payload, methodDetails, resolvedFeePayer, methodDetails.feePayer === true, feePayerPolicy, waitForConfirmation);
153
- lastOnChainVerified.set(sessionReceipt.channelId, Date.now());
154
- break;
155
- case 'topUp':
156
- sessionReceipt = await handleTopUp(store, client, challenge, payload, methodDetails, resolvedFeePayer, methodDetails.feePayer === true, feePayerPolicy);
157
- lastOnChainVerified.set(sessionReceipt.channelId, Date.now());
158
- break;
159
- case 'voucher':
160
- sessionReceipt = await handleVoucher(store, client, effectiveMinVoucherDelta, challenge, payload, methodDetails, channelStateTtl, lastOnChainVerified);
161
- break;
162
- case 'close':
163
- sessionReceipt = await handleClose(store, client, challenge, payload, methodDetails, account, resolvedFeePayer);
164
- break;
165
- default:
166
- throw new BadRequestError({
167
- reason: `unknown action: ${payload.action}`,
168
- });
169
- }
170
- // In the default HTTP request/response mode, each successful content
171
- // request consumes one unit immediately after the credential is accepted.
172
- // This keeps equal-voucher replays bounded by the voucher's remaining
173
- // balance instead of serving repeated responses for free.
174
- if (envelope &&
175
- isSessionContentRequest(envelope.capturedRequest) &&
176
- (payload.action === 'open' ||
177
- (payload.action === 'voucher' && !isSseNegotiationRequest(envelope.capturedRequest)))) {
178
- const charged = await charge(store, sessionReceipt.channelId, BigInt(resolvedRequest.amount));
179
- sessionReceipt = {
180
- ...sessionReceipt,
181
- spent: charged.spent.toString(),
182
- units: charged.units,
183
- };
184
- if (parameters.sse)
185
- sessionReceipt = Transport.markPrepaidSessionTick(sessionReceipt);
186
- }
187
- return sessionReceipt;
188
- },
189
- // This hook acts as a gate: when it returns a Response, `withReceipt()`
190
- // in Mppx.ts short-circuits and returns that response directly without
191
- // invoking the user's route handler. When it returns undefined, the
192
- // user's handler runs normally and serves content.
193
- //
194
- // close and topUp are always gated (204) — they are pure management.
195
- //
196
- // open and voucher share the same captured-request classifier used
197
- // during verification. Non-billable requests are treated as management
198
- // updates; billable requests fall through to the application handler.
199
- respond({ credential, envelope, input }) {
200
- const { payload } = credential;
201
- const request = envelope?.capturedRequest ?? captureRequestBodyProbe(input);
202
- if (payload.action === 'close')
203
- return new Response(null, { status: 204 });
204
- if (payload.action === 'topUp')
205
- return new Response(null, { status: 204 });
206
- if (parameters.sse && payload.action === 'voucher' && isSseNegotiationRequest(request))
207
- return new Response(null, { status: 204 });
208
- if (isSessionContentRequest(request))
209
- return undefined;
210
- return new Response(null, { status: 204 });
211
- },
212
- });
213
- }
214
- function isSseNegotiationRequest(input) {
215
- return input.headers.get('Accept')?.includes('text/event-stream') ?? false;
216
- }
217
- function assertSettlementSender(parameters) {
218
- const { operation, channelId, payee, sender } = parameters;
219
- if (!sender)
220
- return;
221
- if (sender.toLowerCase() === payee.toLowerCase())
222
- return;
223
- throw new BadRequestError({
224
- reason: `Cannot ${operation} channel ${channelId}: tx sender ${sender} is not the channel payee ${payee}. ` +
225
- 'If using an access key, pass a Tempo access-key account whose address is the payee wallet, not the raw delegated key address.',
226
- });
227
- }
228
- /**
229
- * One-shot settle: reads highest voucher from store and submits on-chain.
230
- */
231
- export async function settle(store, client, channelId, options) {
232
- const channel = await store.getChannel(channelId);
233
- if (!channel)
234
- throw new ChannelNotFoundError({ reason: 'channel not found' });
235
- if (!channel.highestVoucher)
236
- throw new VerificationFailedError({ reason: 'no voucher to settle' });
237
- const chainId = client.chain?.id;
238
- const resolvedEscrow = options?.escrowContract ??
239
- defaults.escrowContract[chainId];
240
- if (!resolvedEscrow)
241
- throw new Error(`No escrow contract for chainId ${chainId}.`);
242
- assertSettlementSender({
243
- operation: 'settle',
244
- channelId,
245
- payee: channel.payee,
246
- sender: options?.account?.address ?? client.account?.address,
247
- });
248
- const settledAmount = channel.highestVoucher.cumulativeAmount;
249
- const txHash = await settleOnChain(client, resolvedEscrow, channel.highestVoucher, {
250
- ...(options?.feePayer && options?.account
251
- ? { feePayer: options.feePayer, account: options.account }
252
- : { account: options?.account }),
253
- candidateFeeTokens: [channel.token],
254
- });
255
- await store.updateChannel(channelId, (current) => {
256
- if (!current)
257
- return null;
258
- const nextSettled = settledAmount > current.settledOnChain ? settledAmount : current.settledOnChain;
259
- return { ...current, settledOnChain: nextSettled };
260
- });
261
- return txHash;
262
- }
263
- /**
264
- * Charge against a channel's balance.
265
- *
266
- * Exported so consumers can deduct from a channel outside the `session()`
267
- * handler (e.g., custom middleware, the SSE `serve()` loop, or direct tests).
268
- *
269
- * Delegates to the shared `deductFromChannel` atomic helper and translates
270
- * failure modes into typed errors (`InsufficientBalanceError`, `ChannelClosedError`).
271
- */
272
- export async function charge(store, channelId, amount) {
273
- let result;
274
- try {
275
- result = await ChannelStore.deductFromChannel(store, channelId, amount);
276
- }
277
- catch {
278
- throw new ChannelClosedError({ reason: 'channel not found' });
279
- }
280
- if (!result.ok) {
281
- if (result.channel.finalized)
282
- throw new ChannelClosedError({ reason: 'channel is finalized' });
283
- if (result.channel.closeRequestedAt !== 0n)
284
- throw new ChannelClosedError({ reason: 'channel has a pending close request' });
285
- const available = result.channel.highestVoucherAmount - result.channel.spent;
286
- throw new InsufficientBalanceError({
287
- reason: `requested ${amount}, available ${available}`,
288
- });
289
- }
290
- return result.channel;
291
- }
292
- /**
293
- * Validate on-chain channel state.
294
- */
295
- function validateOnChainChannel(onChain, recipient, currency, amount) {
296
- if (onChain.deposit === 0n) {
297
- throw new ChannelNotFoundError({ reason: 'channel not funded on-chain' });
298
- }
299
- if (onChain.finalized) {
300
- throw new ChannelClosedError({ reason: 'channel is finalized on-chain' });
301
- }
302
- if (onChain.closeRequestedAt !== 0n) {
303
- throw new ChannelClosedError({ reason: 'channel has a pending close request' });
304
- }
305
- if (onChain.payee.toLowerCase() !== recipient.toLowerCase()) {
306
- throw new VerificationFailedError({
307
- reason: 'on-chain payee does not match server destination',
308
- });
309
- }
310
- if (onChain.token.toLowerCase() !== currency.toLowerCase()) {
311
- throw new VerificationFailedError({ reason: 'on-chain token does not match server token' });
312
- }
313
- if (amount !== undefined && onChain.deposit - onChain.settled < amount) {
314
- throw new InsufficientBalanceError({
315
- reason: 'channel available balance insufficient for requested amount',
316
- });
317
- }
318
- }
319
- /**
320
- * Shared logic for verifying an incremental voucher and updating channel state.
321
- * Used by both handleVoucher and (indirectly) handleOpen.
322
- */
323
- async function verifyAndAcceptVoucher(parameters) {
324
- const { store, minVoucherDelta, challenge, channel, channelId, voucher, onChain } = parameters;
325
- if (onChain.finalized) {
326
- throw new ChannelClosedError({ reason: 'channel is finalized on-chain' });
327
- }
328
- if (onChain.closeRequestedAt !== 0n) {
329
- throw new ChannelClosedError({ reason: 'channel has a pending close request' });
330
- }
331
- // Treat a zero deposit on an existing channel as settled/closed.
332
- // During settlement the escrow contract may zero the deposit before
333
- // setting the finalized flag, creating a brief window where
334
- // finalized=false but deposit=0. Without this guard the voucher
335
- // check below would return a 402 (AmountExceedsDepositError) instead
336
- // of the correct 410 (ChannelClosedError).
337
- if (onChain.deposit === 0n && onChain.payer !== zeroAddress) {
338
- throw new ChannelClosedError({ reason: 'channel deposit is zero (settled)' });
339
- }
340
- if (voucher.cumulativeAmount <= onChain.settled) {
341
- throw new VerificationFailedError({
342
- reason: 'voucher cumulativeAmount is at or below on-chain settled amount',
343
- });
344
- }
345
- if (voucher.cumulativeAmount > onChain.deposit) {
346
- throw new AmountExceedsDepositError({ reason: 'voucher amount exceeds on-chain deposit' });
347
- }
348
- const isValid = await verifyVoucher(channel.escrowContract, channel.chainId, voucher, channel.authorizedSigner);
349
- if (!isValid) {
350
- throw new InvalidSignatureError({ reason: 'invalid voucher signature' });
351
- }
352
- // Idempotent replay: a non-advancing voucher (at or below the highest
353
- // accepted amount, but above the on-chain settled amount checked above)
354
- // returns 200 OK with the current highest amount without advancing state,
355
- // per the session spec's idempotency requirement.
356
- if (voucher.cumulativeAmount <= channel.highestVoucherAmount) {
357
- return createSessionReceipt({
358
- challengeId: challenge.id,
359
- channelId,
360
- acceptedCumulative: channel.highestVoucherAmount,
361
- spent: channel.spent,
362
- units: channel.units,
363
- });
364
- }
365
- const delta = voucher.cumulativeAmount - channel.highestVoucherAmount;
366
- if (delta < minVoucherDelta) {
367
- throw new DeltaTooSmallError({
368
- reason: `voucher delta ${delta} below minimum ${minVoucherDelta}`,
369
- });
370
- }
371
- const updated = await store.updateChannel(channelId, (current) => {
372
- if (!current)
373
- throw new ChannelNotFoundError({ reason: 'channel not found' });
374
- if (voucher.cumulativeAmount > current.highestVoucherAmount) {
375
- return {
376
- ...current,
377
- deposit: onChain.deposit,
378
- highestVoucherAmount: voucher.cumulativeAmount,
379
- highestVoucher: voucher,
380
- };
381
- }
382
- return current;
383
- });
384
- if (!updated)
385
- throw new ChannelNotFoundError({ reason: 'channel not found' });
386
- return createSessionReceipt({
387
- challengeId: challenge.id,
388
- channelId,
389
- acceptedCumulative: updated.highestVoucherAmount,
390
- spent: updated.spent,
391
- units: updated.units,
392
- });
393
- }
394
- /**
395
- * Handle 'open' action - verify voucher, create channel, and broadcast.
396
- *
397
- * When `waitForConfirmation` is true (default), the open transaction is
398
- * broadcast and confirmed on-chain before responding. When false, the
399
- * transaction is validated and simulated via `eth_estimateGas`; the receipt
400
- * is returned immediately and the broadcast runs in the background.
401
- */
402
- async function handleOpen(store, client, challenge, payload, methodDetails, feePayer, isSponsored, feePayerPolicy, waitForConfirmation) {
403
- const channelId = ChannelStore.normalizeChannelId(payload.channelId);
404
- const voucher = parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
405
- const recipient = challenge.request.recipient;
406
- const currency = challenge.request.currency;
407
- const amount = challenge.request.amount ? BigInt(challenge.request.amount) : undefined;
408
- const validateOpenVoucher = async (onChain) => {
409
- validateOnChainChannel(onChain, recipient, currency, amount);
410
- const authorizedSigner = onChain.authorizedSigner === '0x0000000000000000000000000000000000000000'
411
- ? onChain.payer
412
- : onChain.authorizedSigner;
413
- if (voucher.cumulativeAmount > onChain.deposit) {
414
- throw new AmountExceedsDepositError({ reason: 'voucher amount exceeds on-chain deposit' });
415
- }
416
- if (voucher.cumulativeAmount <= onChain.settled) {
417
- throw new VerificationFailedError({
418
- reason: 'voucher cumulativeAmount is at or below on-chain settled amount',
419
- });
420
- }
421
- const isValid = await verifyVoucher(methodDetails.escrowContract, methodDetails.chainId, voucher, authorizedSigner);
422
- if (!isValid) {
423
- throw new InvalidSignatureError({ reason: 'invalid voucher signature' });
424
- }
425
- return authorizedSigner;
426
- };
427
- const { onChain, txHash } = await broadcastOpenTransaction({
428
- client,
429
- serializedTransaction: payload.transaction,
430
- escrowContract: methodDetails.escrowContract,
431
- channelId,
432
- recipient,
433
- currency,
434
- challengeExpires: challenge.expires,
435
- feePayerPolicy,
436
- feePayer,
437
- isSponsored,
438
- beforeBroadcast: async (pendingOnChain) => {
439
- await validateOpenVoucher(pendingOnChain);
440
- },
441
- waitForConfirmation,
442
- });
443
- const authorizedSigner = await validateOpenVoucher(onChain);
444
- const updated = await store.updateChannel(channelId, (existing) => {
445
- if (existing) {
446
- if (voucher.cumulativeAmount <= existing.settledOnChain) {
447
- throw new VerificationFailedError({
448
- reason: 'voucher amount is at or below settled on-chain amount',
449
- });
450
- }
451
- const settledOnChain = onChain.settled > existing.settledOnChain ? onChain.settled : existing.settledOnChain;
452
- const spent = settledOnChain > existing.spent ? settledOnChain : existing.spent;
453
- if (voucher.cumulativeAmount > existing.highestVoucherAmount) {
454
- return {
455
- ...existing,
456
- deposit: onChain.deposit,
457
- settledOnChain,
458
- spent,
459
- highestVoucherAmount: voucher.cumulativeAmount,
460
- highestVoucher: voucher,
461
- authorizedSigner,
462
- };
463
- }
464
- return {
465
- ...existing,
466
- deposit: onChain.deposit,
467
- settledOnChain,
468
- spent,
469
- authorizedSigner,
470
- };
471
- }
472
- return {
473
- channelId,
474
- chainId: methodDetails.chainId,
475
- escrowContract: methodDetails.escrowContract,
476
- closeRequestedAt: onChain.closeRequestedAt,
477
- payer: onChain.payer,
478
- payee: onChain.payee,
479
- token: onChain.token,
480
- authorizedSigner,
481
- deposit: onChain.deposit,
482
- settledOnChain: onChain.settled,
483
- highestVoucherAmount: voucher.cumulativeAmount,
484
- highestVoucher: voucher,
485
- spent: onChain.settled,
486
- units: 0,
487
- finalized: false,
488
- createdAt: new Date().toISOString(),
489
- };
490
- });
491
- if (!updated)
492
- throw new VerificationFailedError({ reason: 'failed to create channel' });
493
- return createSessionReceipt({
494
- challengeId: challenge.id,
495
- channelId: updated.channelId,
496
- acceptedCumulative: updated.highestVoucherAmount,
497
- spent: updated.spent,
498
- units: updated.units,
499
- txHash,
500
- });
501
- }
502
- /**
503
- * Handle 'topUp' action - broadcast topUp transaction and update channel deposit.
504
- *
505
- * Per spec Section 8.3.2, topUp payloads contain only the transaction and
506
- * additionalDeposit — no voucher. The client must send a separate 'voucher'
507
- * action to authorize spending the new funds.
508
- */
509
- async function handleTopUp(store, client, challenge, payload, methodDetails, feePayer, isSponsored, feePayerPolicy) {
510
- const channelId = ChannelStore.normalizeChannelId(payload.channelId);
511
- const channel = await store.getChannel(channelId);
512
- if (!channel) {
513
- throw new ChannelNotFoundError({ reason: 'channel not found' });
514
- }
515
- const declaredDeposit = BigInt(payload.additionalDeposit);
516
- const { newDeposit: onChainDeposit } = await broadcastTopUpTransaction({
517
- client,
518
- serializedTransaction: payload.transaction,
519
- escrowContract: methodDetails.escrowContract,
520
- channelId,
521
- currency: challenge.request.currency,
522
- declaredDeposit,
523
- previousDeposit: channel.deposit,
524
- challengeExpires: challenge.expires,
525
- feePayerPolicy,
526
- feePayer,
527
- isSponsored,
528
- });
529
- const updated = await store.updateChannel(channelId, (current) => {
530
- if (!current)
531
- throw new ChannelNotFoundError({ reason: 'channel not found' });
532
- return { ...current, deposit: onChainDeposit };
533
- });
534
- return createSessionReceipt({
535
- challengeId: challenge.id,
536
- channelId: updated?.channelId ?? channel.channelId,
537
- acceptedCumulative: updated?.highestVoucherAmount ?? channel.highestVoucherAmount,
538
- spent: updated?.spent ?? channel.spent,
539
- units: updated?.units ?? channel.units,
540
- });
541
- }
542
- /**
543
- * Handle 'voucher' action - verify and accept a new voucher.
544
- */
545
- async function handleVoucher(store, client, minVoucherDelta, challenge, payload, methodDetails, channelStateTtl, lastOnChainVerified) {
546
- const channelId = ChannelStore.normalizeChannelId(payload.channelId);
547
- const channel = await store.getChannel(channelId);
548
- if (!channel) {
549
- throw new ChannelNotFoundError({ reason: 'channel not found' });
550
- }
551
- if (channel.finalized) {
552
- throw new ChannelClosedError({ reason: 'channel is finalized' });
553
- }
554
- const voucher = parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
555
- // Use locally-stored channel state as a trusted cache instead of
556
- // reading on-chain for every voucher. The on-chain state is verified
557
- // during `open` and `topUp` actions — subsequent vouchers within the
558
- // same session can safely use the cached deposit/signer values.
559
- // This avoids an RPC round-trip per voucher, which is critical for
560
- // high-frequency SSE streaming where vouchers arrive per-token.
561
- //
562
- // To guard against the payer initiating a forced close while vouchers
563
- // are still being accepted, re-query on-chain state when the cache
564
- // exceeds the configured staleness TTL (default: 5s).
565
- const lastVerified = lastOnChainVerified.get(channelId) ?? 0;
566
- const isStale = Date.now() - lastVerified > channelStateTtl;
567
- const onChain = await (async () => {
568
- if (isStale) {
569
- const onChainChannel = await getOnChainChannel(client, channel.escrowContract, channelId);
570
- lastOnChainVerified.set(channelId, Date.now());
571
- // Persist closeRequestedAt so the cached path detects force-close
572
- // between re-queries.
573
- if (onChainChannel.closeRequestedAt !== 0n) {
574
- await store.updateChannel(channelId, (current) => current ? { ...current, closeRequestedAt: onChainChannel.closeRequestedAt } : current);
575
- }
576
- return onChainChannel;
577
- }
578
- return {
579
- finalized: channel.finalized,
580
- closeRequestedAt: channel.closeRequestedAt,
581
- payer: channel.payer,
582
- payee: channel.payee,
583
- token: channel.token,
584
- authorizedSigner: channel.authorizedSigner,
585
- deposit: channel.deposit,
586
- settled: channel.settledOnChain,
587
- };
588
- })();
589
- return verifyAndAcceptVoucher({
590
- store,
591
- minVoucherDelta,
592
- challenge,
593
- channel,
594
- channelId,
595
- voucher,
596
- onChain,
597
- });
598
- }
599
- /**
600
- * Handle 'close' action - verify final voucher and close channel.
601
- */
602
- async function handleClose(store, client, challenge, payload, methodDetails, account, feePayer) {
603
- const channelId = ChannelStore.normalizeChannelId(payload.channelId);
604
- const channel = await store.getChannel(channelId);
605
- if (!channel) {
606
- throw new ChannelNotFoundError({ reason: 'channel not found' });
607
- }
608
- if (channel.finalized) {
609
- throw new ChannelClosedError({ reason: 'channel is already finalized' });
610
- }
611
- const voucher = parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
612
- const onChain = await getOnChainChannel(client, channel.escrowContract, channelId);
613
- if (onChain.finalized) {
614
- throw new ChannelClosedError({ reason: 'channel is finalized on-chain' });
615
- }
616
- if (voucher.cumulativeAmount < channel.spent) {
617
- throw new VerificationFailedError({
618
- reason: `close voucher amount must be >= ${channel.spent} (spent)`,
619
- });
620
- }
621
- const isUntouchedZeroClose = voucher.cumulativeAmount === 0n && channel.spent === 0n && onChain.settled === 0n;
622
- if (!isUntouchedZeroClose && voucher.cumulativeAmount <= onChain.settled) {
623
- throw new VerificationFailedError({
624
- reason: `close voucher amount must be > ${onChain.settled} (on-chain settled)`,
625
- });
626
- }
627
- if (voucher.cumulativeAmount > onChain.deposit) {
628
- throw new AmountExceedsDepositError({
629
- reason: 'close voucher amount exceeds on-chain deposit',
630
- });
631
- }
632
- const isValid = await verifyVoucher(channel.escrowContract, channel.chainId, voucher, channel.authorizedSigner);
633
- if (!isValid) {
634
- throw new InvalidSignatureError({ reason: 'invalid voucher signature' });
635
- }
636
- const pendingCloseStartedAt = BigInt(Math.floor(Date.now() / 1000) || 1);
637
- const previousCloseRequestedAt = channel.closeRequestedAt;
638
- let pendingCloseMarked = false;
639
- await store.updateChannel(channelId, (current) => {
640
- if (!current)
641
- return null;
642
- if (current.finalized)
643
- throw new ChannelClosedError({ reason: 'channel is already finalized' });
644
- if (current.closeRequestedAt !== 0n)
645
- throw new ChannelClosedError({ reason: 'channel has a pending close request' });
646
- if (voucher.cumulativeAmount < current.spent) {
647
- throw new VerificationFailedError({
648
- reason: `close voucher amount must be >= ${current.spent} (spent)`,
649
- });
650
- }
651
- pendingCloseMarked = true;
652
- return { ...current, closeRequestedAt: pendingCloseStartedAt };
653
- });
654
- let txHash;
655
- try {
656
- assertSettlementSender({
657
- operation: 'close',
658
- channelId: payload.channelId,
659
- payee: onChain.payee,
660
- sender: account?.address ?? client.account?.address,
661
- });
662
- txHash = await closeOnChain(client, channel.escrowContract, voucher, {
663
- ...(feePayer && account ? { feePayer, account } : { account }),
664
- candidateFeeTokens: [channel.token],
665
- });
666
- }
667
- catch (error) {
668
- if (pendingCloseMarked) {
669
- await store.updateChannel(channelId, (current) => current && current.closeRequestedAt === pendingCloseStartedAt
670
- ? { ...current, closeRequestedAt: previousCloseRequestedAt }
671
- : current);
672
- }
673
- throw error;
674
- }
675
- const updated = await store.updateChannel(channelId, (current) => {
676
- if (!current)
677
- return null;
678
- const updateVoucher = voucher.cumulativeAmount > current.highestVoucherAmount;
679
- return {
680
- ...current,
681
- deposit: onChain.deposit,
682
- ...(updateVoucher && {
683
- highestVoucherAmount: voucher.cumulativeAmount,
684
- highestVoucher: voucher,
685
- }),
686
- finalized: true,
687
- };
688
- });
689
- return createSessionReceipt({
690
- challengeId: challenge.id,
691
- channelId: updated?.channelId ?? channel.channelId,
692
- acceptedCumulative: voucher.cumulativeAmount,
693
- spent: updated?.spent ?? channel.spent,
694
- units: updated?.units ?? channel.units,
695
- ...(txHash !== undefined && { txHash }),
696
- });
697
- }
698
- //# sourceMappingURL=Session.js.map