mppx 0.8.17 → 0.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +21 -4
  4. package/dist/bin.js +3 -3
  5. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  6. package/dist/cli/cli.js +253 -1505
  7. package/dist/cli/plugins/index.js +19 -5
  8. package/dist/cli/plugins/tempo.js +7 -3
  9. package/dist/cli/sessions/Manager.js +7 -4
  10. package/dist/cli/sessions/request.d.ts +2 -0
  11. package/dist/cli/sessions/request.js +18 -0
  12. package/dist/cli/sessions/store.js +28 -14
  13. package/dist/discovery/Discovery.js +2 -1
  14. package/dist/evm/client/Charge.js +8 -0
  15. package/dist/server/core.d.ts +9 -0
  16. package/dist/server/core.js +9 -0
  17. package/dist/stripe/server/Charge.js +2 -4
  18. package/dist/stripe/server/Methods.d.ts +2 -2
  19. package/dist/stripe/server/Methods.js +17 -11
  20. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  21. package/dist/stripe/server/internal/html.gen.js +1 -1
  22. package/dist/stripe/server/spt.d.ts +8 -0
  23. package/dist/stripe/server/spt.js +8 -0
  24. package/dist/tempo/Methods.d.ts +13 -0
  25. package/dist/tempo/Methods.js +14 -3
  26. package/dist/tempo/client/Charge.d.ts +3 -0
  27. package/dist/tempo/client/Charge.js +31 -9
  28. package/dist/tempo/client/Methods.d.ts +13 -0
  29. package/dist/tempo/internal/defaults.d.ts +11 -0
  30. package/dist/tempo/internal/defaults.js +11 -0
  31. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  32. package/dist/tempo/internal/machine-token-charge.js +113 -0
  33. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  34. package/dist/tempo/internal/machine-token-session.js +173 -0
  35. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  36. package/dist/tempo/internal/signature-envelope.js +28 -0
  37. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  38. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  39. package/dist/tempo/legacy/client/Session.d.ts +13 -1
  40. package/dist/tempo/legacy/client/Session.js +3 -3
  41. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  42. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  43. package/dist/tempo/server/Charge.d.ts +3 -0
  44. package/dist/tempo/server/Charge.js +58 -17
  45. package/dist/tempo/server/Methods.d.ts +21 -4
  46. package/dist/tempo/server/Methods.js +8 -4
  47. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  48. package/dist/tempo/server/internal/html.gen.js +1 -1
  49. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  50. package/dist/tempo/session/client/ChannelOps.js +35 -6
  51. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  52. package/dist/tempo/session/client/ChannelStore.js +2 -2
  53. package/dist/tempo/session/client/CredentialState.d.ts +17 -2
  54. package/dist/tempo/session/client/CredentialState.js +77 -76
  55. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  56. package/dist/tempo/session/client/Runtime.js +21 -5
  57. package/dist/tempo/session/client/Session.d.ts +15 -3
  58. package/dist/tempo/session/client/Session.js +186 -63
  59. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  60. package/dist/tempo/session/client/SessionManager.js +35 -11
  61. package/dist/tempo/session/client/Transports.d.ts +2 -0
  62. package/dist/tempo/session/client/Transports.js +12 -2
  63. package/dist/tempo/session/precompile/Chain.d.ts +10 -2
  64. package/dist/tempo/session/precompile/Chain.js +50 -10
  65. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  66. package/dist/tempo/session/precompile/Protocol.js +7 -0
  67. package/dist/tempo/session/precompile/Voucher.d.ts +3 -1
  68. package/dist/tempo/session/precompile/Voucher.js +6 -12
  69. package/dist/tempo/session/server/ChannelStore.d.ts +6 -0
  70. package/dist/tempo/session/server/ChannelStore.js +11 -4
  71. package/dist/tempo/session/server/CredentialVerification.d.ts +11 -9
  72. package/dist/tempo/session/server/CredentialVerification.js +185 -109
  73. package/dist/tempo/session/server/MeteredStream.d.ts +1 -1
  74. package/dist/tempo/session/server/MeteredStream.js +5 -4
  75. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  76. package/dist/tempo/session/server/RequestState.js +61 -15
  77. package/dist/tempo/session/server/Session.d.ts +14 -2
  78. package/dist/tempo/session/server/Session.js +37 -6
  79. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  80. package/dist/tempo/session/server/Settlement.js +53 -21
  81. package/dist/x402/client/Exact.d.ts +8 -0
  82. package/dist/x402/client/Exact.js +40 -10
  83. package/dist/x402/server/EvmCharge.d.ts +22 -0
  84. package/dist/x402/server/EvmCharge.js +23 -1
  85. package/package.json +15 -37
  86. package/dist/BodyDigest.d.ts.map +0 -1
  87. package/dist/BodyDigest.js.map +0 -1
  88. package/dist/Challenge.d.ts.map +0 -1
  89. package/dist/Challenge.js.map +0 -1
  90. package/dist/Constants.d.ts.map +0 -1
  91. package/dist/Constants.js.map +0 -1
  92. package/dist/Credential.d.ts.map +0 -1
  93. package/dist/Credential.js.map +0 -1
  94. package/dist/Errors.d.ts.map +0 -1
  95. package/dist/Errors.js.map +0 -1
  96. package/dist/Expires.d.ts.map +0 -1
  97. package/dist/Expires.js.map +0 -1
  98. package/dist/Html.d.ts.map +0 -1
  99. package/dist/Html.js.map +0 -1
  100. package/dist/Mcp.d.ts.map +0 -1
  101. package/dist/Mcp.js.map +0 -1
  102. package/dist/Method.d.ts.map +0 -1
  103. package/dist/Method.js.map +0 -1
  104. package/dist/PaymentRequest.d.ts.map +0 -1
  105. package/dist/PaymentRequest.js.map +0 -1
  106. package/dist/Receipt.d.ts.map +0 -1
  107. package/dist/Receipt.js.map +0 -1
  108. package/dist/Store.d.ts.map +0 -1
  109. package/dist/Store.js.map +0 -1
  110. package/dist/attestation/Client.d.ts.map +0 -1
  111. package/dist/attestation/Client.js.map +0 -1
  112. package/dist/attestation/Constants.d.ts.map +0 -1
  113. package/dist/attestation/Constants.js.map +0 -1
  114. package/dist/attestation/Server.d.ts.map +0 -1
  115. package/dist/attestation/Server.js.map +0 -1
  116. package/dist/attestation/Types.d.ts.map +0 -1
  117. package/dist/attestation/Types.js.map +0 -1
  118. package/dist/attestation/index.d.ts.map +0 -1
  119. package/dist/attestation/index.js.map +0 -1
  120. package/dist/attestation/internal/HttpMessageSignature.d.ts.map +0 -1
  121. package/dist/attestation/internal/HttpMessageSignature.js.map +0 -1
  122. package/dist/attestation/internal/SigningContext.d.ts.map +0 -1
  123. package/dist/attestation/internal/SigningContext.js.map +0 -1
  124. package/dist/bin.d.ts.map +0 -1
  125. package/dist/bin.js.map +0 -1
  126. package/dist/cli/account.d.ts.map +0 -1
  127. package/dist/cli/account.js.map +0 -1
  128. package/dist/cli/cli.d.ts.map +0 -1
  129. package/dist/cli/cli.js.map +0 -1
  130. package/dist/cli/config.d.ts.map +0 -1
  131. package/dist/cli/config.js.map +0 -1
  132. package/dist/cli/internal.d.ts.map +0 -1
  133. package/dist/cli/internal.js.map +0 -1
  134. package/dist/cli/plugins/evm.d.ts.map +0 -1
  135. package/dist/cli/plugins/evm.js.map +0 -1
  136. package/dist/cli/plugins/index.d.ts.map +0 -1
  137. package/dist/cli/plugins/index.js.map +0 -1
  138. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  139. package/dist/cli/plugins/plugin.js.map +0 -1
  140. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  141. package/dist/cli/plugins/stripe.js.map +0 -1
  142. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  143. package/dist/cli/plugins/tempo.js.map +0 -1
  144. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  145. package/dist/cli/sessions/Manager.js.map +0 -1
  146. package/dist/cli/sessions/commands.d.ts.map +0 -1
  147. package/dist/cli/sessions/commands.js.map +0 -1
  148. package/dist/cli/sessions/request.d.ts.map +0 -1
  149. package/dist/cli/sessions/request.js.map +0 -1
  150. package/dist/cli/sessions/store.d.ts.map +0 -1
  151. package/dist/cli/sessions/store.js.map +0 -1
  152. package/dist/cli/utils.d.ts.map +0 -1
  153. package/dist/cli/utils.js.map +0 -1
  154. package/dist/cli/validate/challenge.d.ts.map +0 -1
  155. package/dist/cli/validate/challenge.js.map +0 -1
  156. package/dist/cli/validate/discovery.d.ts.map +0 -1
  157. package/dist/cli/validate/discovery.js.map +0 -1
  158. package/dist/cli/validate/helpers.d.ts.map +0 -1
  159. package/dist/cli/validate/helpers.js.map +0 -1
  160. package/dist/cli/validate/index.d.ts.map +0 -1
  161. package/dist/cli/validate/index.js.map +0 -1
  162. package/dist/cli/validate/messages.d.ts.map +0 -1
  163. package/dist/cli/validate/messages.js.map +0 -1
  164. package/dist/cli/validate/payment.d.ts.map +0 -1
  165. package/dist/cli/validate/payment.js.map +0 -1
  166. package/dist/client/Methods.d.ts.map +0 -1
  167. package/dist/client/Methods.js.map +0 -1
  168. package/dist/client/Mppx.d.ts.map +0 -1
  169. package/dist/client/Mppx.js.map +0 -1
  170. package/dist/client/Transport.d.ts.map +0 -1
  171. package/dist/client/Transport.js.map +0 -1
  172. package/dist/client/index.d.ts.map +0 -1
  173. package/dist/client/index.js.map +0 -1
  174. package/dist/client/internal/Fetch.d.ts.map +0 -1
  175. package/dist/client/internal/Fetch.js.map +0 -1
  176. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  177. package/dist/client/internal/MethodChallenge.js.map +0 -1
  178. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  179. package/dist/client/internal/MethodResponse.js.map +0 -1
  180. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  181. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  182. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  183. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  184. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  185. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  186. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  187. package/dist/client/internal/protocols/Shared.js.map +0 -1
  188. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  189. package/dist/client/internal/protocols/X402.js.map +0 -1
  190. package/dist/client/node.d.ts.map +0 -1
  191. package/dist/client/node.js.map +0 -1
  192. package/dist/discovery/Discovery.d.ts.map +0 -1
  193. package/dist/discovery/Discovery.js.map +0 -1
  194. package/dist/discovery/OpenApi.d.ts.map +0 -1
  195. package/dist/discovery/OpenApi.js.map +0 -1
  196. package/dist/discovery/Validate.d.ts.map +0 -1
  197. package/dist/discovery/Validate.js.map +0 -1
  198. package/dist/discovery/index.d.ts.map +0 -1
  199. package/dist/discovery/index.js.map +0 -1
  200. package/dist/discovery/internal/Metadata.d.ts.map +0 -1
  201. package/dist/discovery/internal/Metadata.js.map +0 -1
  202. package/dist/evm/Assets.d.ts.map +0 -1
  203. package/dist/evm/Assets.js.map +0 -1
  204. package/dist/evm/Chains.d.ts.map +0 -1
  205. package/dist/evm/Chains.js.map +0 -1
  206. package/dist/evm/Methods.d.ts.map +0 -1
  207. package/dist/evm/Methods.js.map +0 -1
  208. package/dist/evm/Types.d.ts.map +0 -1
  209. package/dist/evm/Types.js.map +0 -1
  210. package/dist/evm/client/Charge.d.ts.map +0 -1
  211. package/dist/evm/client/Charge.js.map +0 -1
  212. package/dist/evm/client/Methods.d.ts.map +0 -1
  213. package/dist/evm/client/Methods.js.map +0 -1
  214. package/dist/evm/client/index.d.ts.map +0 -1
  215. package/dist/evm/client/index.js.map +0 -1
  216. package/dist/evm/index.d.ts.map +0 -1
  217. package/dist/evm/index.js.map +0 -1
  218. package/dist/evm/server/Charge.d.ts.map +0 -1
  219. package/dist/evm/server/Charge.js.map +0 -1
  220. package/dist/evm/server/Methods.d.ts.map +0 -1
  221. package/dist/evm/server/Methods.js.map +0 -1
  222. package/dist/evm/server/index.d.ts.map +0 -1
  223. package/dist/evm/server/index.js.map +0 -1
  224. package/dist/index.d.ts.map +0 -1
  225. package/dist/index.js.map +0 -1
  226. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  227. package/dist/internal/AcceptPayment.js.map +0 -1
  228. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  229. package/dist/internal/HeaderCodec.js.map +0 -1
  230. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  231. package/dist/internal/constantTimeEqual.js.map +0 -1
  232. package/dist/internal/env.d.ts.map +0 -1
  233. package/dist/internal/env.js.map +0 -1
  234. package/dist/internal/types.d.ts.map +0 -1
  235. package/dist/internal/types.js.map +0 -1
  236. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  237. package/dist/mcp/client/McpClient.js.map +0 -1
  238. package/dist/mcp/client/index.d.ts.map +0 -1
  239. package/dist/mcp/client/index.js.map +0 -1
  240. package/dist/mcp/server/Transport.d.ts.map +0 -1
  241. package/dist/mcp/server/Transport.js.map +0 -1
  242. package/dist/mcp/server/index.d.ts.map +0 -1
  243. package/dist/mcp/server/index.js.map +0 -1
  244. package/dist/middlewares/elysia.d.ts.map +0 -1
  245. package/dist/middlewares/elysia.js.map +0 -1
  246. package/dist/middlewares/express.d.ts.map +0 -1
  247. package/dist/middlewares/express.js.map +0 -1
  248. package/dist/middlewares/hono.d.ts.map +0 -1
  249. package/dist/middlewares/hono.js.map +0 -1
  250. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  251. package/dist/middlewares/internal/mppx.js.map +0 -1
  252. package/dist/middlewares/nextjs.d.ts.map +0 -1
  253. package/dist/middlewares/nextjs.js.map +0 -1
  254. package/dist/proxy/Proxy.d.ts.map +0 -1
  255. package/dist/proxy/Proxy.js.map +0 -1
  256. package/dist/proxy/Service.d.ts.map +0 -1
  257. package/dist/proxy/Service.js.map +0 -1
  258. package/dist/proxy/index.d.ts.map +0 -1
  259. package/dist/proxy/index.js.map +0 -1
  260. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  261. package/dist/proxy/internal/Headers.js.map +0 -1
  262. package/dist/proxy/internal/Route.d.ts.map +0 -1
  263. package/dist/proxy/internal/Route.js.map +0 -1
  264. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  265. package/dist/proxy/services/anthropic.js.map +0 -1
  266. package/dist/proxy/services/openai.d.ts.map +0 -1
  267. package/dist/proxy/services/openai.js.map +0 -1
  268. package/dist/proxy/services/stripe.d.ts.map +0 -1
  269. package/dist/proxy/services/stripe.js.map +0 -1
  270. package/dist/server/Methods.d.ts.map +0 -1
  271. package/dist/server/Methods.js.map +0 -1
  272. package/dist/server/Mppx.d.ts.map +0 -1
  273. package/dist/server/Mppx.js.map +0 -1
  274. package/dist/server/NodeListener.d.ts.map +0 -1
  275. package/dist/server/NodeListener.js.map +0 -1
  276. package/dist/server/Request.d.ts.map +0 -1
  277. package/dist/server/Request.js.map +0 -1
  278. package/dist/server/Response.d.ts.map +0 -1
  279. package/dist/server/Response.js.map +0 -1
  280. package/dist/server/Transport.d.ts.map +0 -1
  281. package/dist/server/Transport.js.map +0 -1
  282. package/dist/server/index.d.ts.map +0 -1
  283. package/dist/server/index.js.map +0 -1
  284. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  285. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  286. package/dist/server/internal/html/config.d.ts.map +0 -1
  287. package/dist/server/internal/html/config.js.map +0 -1
  288. package/dist/server/internal/html/constants.d.ts.map +0 -1
  289. package/dist/server/internal/html/constants.js.map +0 -1
  290. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  291. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  292. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  293. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  294. package/dist/server/internal/scope.d.ts.map +0 -1
  295. package/dist/server/internal/scope.js.map +0 -1
  296. package/dist/stripe/Methods.d.ts.map +0 -1
  297. package/dist/stripe/Methods.js.map +0 -1
  298. package/dist/stripe/client/Charge.d.ts.map +0 -1
  299. package/dist/stripe/client/Charge.js.map +0 -1
  300. package/dist/stripe/client/Methods.d.ts.map +0 -1
  301. package/dist/stripe/client/Methods.js.map +0 -1
  302. package/dist/stripe/client/index.d.ts.map +0 -1
  303. package/dist/stripe/client/index.js.map +0 -1
  304. package/dist/stripe/index.d.ts.map +0 -1
  305. package/dist/stripe/index.js.map +0 -1
  306. package/dist/stripe/internal/constants.d.ts.map +0 -1
  307. package/dist/stripe/internal/constants.js.map +0 -1
  308. package/dist/stripe/internal/types.d.ts.map +0 -1
  309. package/dist/stripe/internal/types.js.map +0 -1
  310. package/dist/stripe/server/Charge.d.ts.map +0 -1
  311. package/dist/stripe/server/Charge.js.map +0 -1
  312. package/dist/stripe/server/Methods.d.ts.map +0 -1
  313. package/dist/stripe/server/Methods.js.map +0 -1
  314. package/dist/stripe/server/index.d.ts.map +0 -1
  315. package/dist/stripe/server/index.js.map +0 -1
  316. package/dist/stripe/server/internal/deposit-address.d.ts.map +0 -1
  317. package/dist/stripe/server/internal/deposit-address.js.map +0 -1
  318. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  319. package/dist/stripe/server/internal/html/types.js.map +0 -1
  320. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  321. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  322. package/dist/stripe/server/internal/record-payment.d.ts.map +0 -1
  323. package/dist/stripe/server/internal/record-payment.js.map +0 -1
  324. package/dist/stripe/server/internal/request.d.ts.map +0 -1
  325. package/dist/stripe/server/internal/request.js.map +0 -1
  326. package/dist/tap/Constants.d.ts.map +0 -1
  327. package/dist/tap/Constants.js.map +0 -1
  328. package/dist/tap/Types.d.ts.map +0 -1
  329. package/dist/tap/Types.js.map +0 -1
  330. package/dist/tap/client/index.d.ts.map +0 -1
  331. package/dist/tap/client/index.js.map +0 -1
  332. package/dist/tap/index.d.ts.map +0 -1
  333. package/dist/tap/index.js.map +0 -1
  334. package/dist/tap/server/index.d.ts.map +0 -1
  335. package/dist/tap/server/index.js.map +0 -1
  336. package/dist/tempo/Attribution.d.ts.map +0 -1
  337. package/dist/tempo/Attribution.js.map +0 -1
  338. package/dist/tempo/Methods.d.ts.map +0 -1
  339. package/dist/tempo/Methods.js.map +0 -1
  340. package/dist/tempo/Proof.d.ts.map +0 -1
  341. package/dist/tempo/Proof.js.map +0 -1
  342. package/dist/tempo/client/Charge.d.ts.map +0 -1
  343. package/dist/tempo/client/Charge.js.map +0 -1
  344. package/dist/tempo/client/Methods.d.ts.map +0 -1
  345. package/dist/tempo/client/Methods.js.map +0 -1
  346. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  347. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  348. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  349. package/dist/tempo/client/Subscription.js.map +0 -1
  350. package/dist/tempo/client/index.d.ts.map +0 -1
  351. package/dist/tempo/client/index.js.map +0 -1
  352. package/dist/tempo/index.d.ts.map +0 -1
  353. package/dist/tempo/index.js.map +0 -1
  354. package/dist/tempo/internal/account.d.ts.map +0 -1
  355. package/dist/tempo/internal/account.js.map +0 -1
  356. package/dist/tempo/internal/address.d.ts.map +0 -1
  357. package/dist/tempo/internal/address.js.map +0 -1
  358. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  359. package/dist/tempo/internal/auto-swap.js.map +0 -1
  360. package/dist/tempo/internal/charge.d.ts.map +0 -1
  361. package/dist/tempo/internal/charge.js.map +0 -1
  362. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  363. package/dist/tempo/internal/defaults.js.map +0 -1
  364. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  365. package/dist/tempo/internal/fee-payer.js.map +0 -1
  366. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  367. package/dist/tempo/internal/fee-token.js.map +0 -1
  368. package/dist/tempo/internal/proof.d.ts.map +0 -1
  369. package/dist/tempo/internal/proof.js.map +0 -1
  370. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  371. package/dist/tempo/internal/selectors.js.map +0 -1
  372. package/dist/tempo/internal/types.d.ts.map +0 -1
  373. package/dist/tempo/internal/types.js.map +0 -1
  374. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  375. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  376. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  377. package/dist/tempo/legacy/client/Session.js.map +0 -1
  378. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  379. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  380. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  381. package/dist/tempo/legacy/client/index.js.map +0 -1
  382. package/dist/tempo/legacy/index.d.ts.map +0 -1
  383. package/dist/tempo/legacy/index.js.map +0 -1
  384. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  385. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  386. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  387. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  388. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  389. package/dist/tempo/legacy/session/Types.js.map +0 -1
  390. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  391. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  392. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  393. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  394. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  395. package/dist/tempo/legacy/session/index.js.map +0 -1
  396. package/dist/tempo/server/Charge.d.ts.map +0 -1
  397. package/dist/tempo/server/Charge.js.map +0 -1
  398. package/dist/tempo/server/Methods.d.ts.map +0 -1
  399. package/dist/tempo/server/Methods.js.map +0 -1
  400. package/dist/tempo/server/Relay.d.ts.map +0 -1
  401. package/dist/tempo/server/Relay.js.map +0 -1
  402. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  403. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  404. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  405. package/dist/tempo/server/Subscription.js.map +0 -1
  406. package/dist/tempo/server/index.d.ts.map +0 -1
  407. package/dist/tempo/server/index.js.map +0 -1
  408. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  409. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  410. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  411. package/dist/tempo/server/internal/request-body.js.map +0 -1
  412. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  413. package/dist/tempo/server/internal/transport.js.map +0 -1
  414. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  415. package/dist/tempo/session/Snapshot.js.map +0 -1
  416. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  417. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  418. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  419. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  420. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  421. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  422. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  423. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  424. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  425. package/dist/tempo/session/client/Runtime.js.map +0 -1
  426. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  427. package/dist/tempo/session/client/Session.js.map +0 -1
  428. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  429. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  430. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  431. package/dist/tempo/session/client/Transports.js.map +0 -1
  432. package/dist/tempo/session/client/index.d.ts.map +0 -1
  433. package/dist/tempo/session/client/index.js.map +0 -1
  434. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  435. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  436. package/dist/tempo/session/index.d.ts.map +0 -1
  437. package/dist/tempo/session/index.js.map +0 -1
  438. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  439. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  440. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  441. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  442. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  443. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  444. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  445. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  446. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  447. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  448. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  449. package/dist/tempo/session/precompile/index.js.map +0 -1
  450. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  451. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  452. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  453. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  454. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  455. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  456. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  457. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  458. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  459. package/dist/tempo/session/server/RequestState.js.map +0 -1
  460. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  461. package/dist/tempo/session/server/Session.js.map +0 -1
  462. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  463. package/dist/tempo/session/server/Settlement.js.map +0 -1
  464. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  465. package/dist/tempo/session/server/Sse.js.map +0 -1
  466. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  467. package/dist/tempo/session/server/Transports.js.map +0 -1
  468. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  469. package/dist/tempo/session/server/Ws.js.map +0 -1
  470. package/dist/tempo/session/server/index.d.ts.map +0 -1
  471. package/dist/tempo/session/server/index.js.map +0 -1
  472. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  473. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  474. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  475. package/dist/tempo/subscription/Receipt.js.map +0 -1
  476. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  477. package/dist/tempo/subscription/Store.js.map +0 -1
  478. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  479. package/dist/tempo/subscription/Types.js.map +0 -1
  480. package/dist/tempo/subscription/index.d.ts.map +0 -1
  481. package/dist/tempo/subscription/index.js.map +0 -1
  482. package/dist/validation/core.d.ts.map +0 -1
  483. package/dist/validation/core.js.map +0 -1
  484. package/dist/validation/index.d.ts.map +0 -1
  485. package/dist/validation/index.js.map +0 -1
  486. package/dist/viem/Account.d.ts.map +0 -1
  487. package/dist/viem/Account.js.map +0 -1
  488. package/dist/viem/Client.d.ts.map +0 -1
  489. package/dist/viem/Client.js.map +0 -1
  490. package/dist/web-bot-auth/Constants.d.ts.map +0 -1
  491. package/dist/web-bot-auth/Constants.js.map +0 -1
  492. package/dist/web-bot-auth/Types.d.ts.map +0 -1
  493. package/dist/web-bot-auth/Types.js.map +0 -1
  494. package/dist/web-bot-auth/client/index.d.ts.map +0 -1
  495. package/dist/web-bot-auth/client/index.js.map +0 -1
  496. package/dist/web-bot-auth/index.d.ts.map +0 -1
  497. package/dist/web-bot-auth/index.js.map +0 -1
  498. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +0 -1
  499. package/dist/web-bot-auth/internal/JwkThumbprint.js.map +0 -1
  500. package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +0 -1
  501. package/dist/web-bot-auth/internal/SignatureAgent.js.map +0 -1
  502. package/dist/web-bot-auth/server/index.d.ts.map +0 -1
  503. package/dist/web-bot-auth/server/index.js.map +0 -1
  504. package/dist/x402/Assets.d.ts.map +0 -1
  505. package/dist/x402/Assets.js.map +0 -1
  506. package/dist/x402/Header.d.ts.map +0 -1
  507. package/dist/x402/Header.js.map +0 -1
  508. package/dist/x402/Types.d.ts.map +0 -1
  509. package/dist/x402/Types.js.map +0 -1
  510. package/dist/x402/client/Exact.d.ts.map +0 -1
  511. package/dist/x402/client/Exact.js.map +0 -1
  512. package/dist/x402/index.d.ts.map +0 -1
  513. package/dist/x402/index.js.map +0 -1
  514. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  515. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  516. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  517. package/dist/x402/internal/RouteBinding.js.map +0 -1
  518. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  519. package/dist/x402/server/EvmCharge.js.map +0 -1
  520. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  521. package/dist/x402/server/Facilitator.js.map +0 -1
  522. package/dist/zod.d.ts.map +0 -1
  523. package/dist/zod.js.map +0 -1
  524. package/src/BodyDigest.test.ts +0 -43
  525. package/src/BodyDigest.ts +0 -55
  526. package/src/Challenge.fuzz.test.ts +0 -154
  527. package/src/Challenge.test-d.ts +0 -82
  528. package/src/Challenge.test.ts +0 -1060
  529. package/src/Challenge.ts +0 -687
  530. package/src/Constants.ts +0 -58
  531. package/src/Credential.fuzz.test.ts +0 -62
  532. package/src/Credential.test.ts +0 -378
  533. package/src/Credential.ts +0 -217
  534. package/src/Errors.test.ts +0 -520
  535. package/src/Errors.ts +0 -448
  536. package/src/Expires.test.ts +0 -112
  537. package/src/Expires.ts +0 -59
  538. package/src/Html.ts +0 -67
  539. package/src/Mcp.ts +0 -85
  540. package/src/Method.test.ts +0 -177
  541. package/src/Method.ts +0 -631
  542. package/src/PaymentRequest.test.ts +0 -147
  543. package/src/PaymentRequest.ts +0 -108
  544. package/src/Receipt.test.ts +0 -151
  545. package/src/Receipt.ts +0 -146
  546. package/src/Store.test-d.ts +0 -211
  547. package/src/Store.test.ts +0 -407
  548. package/src/Store.ts +0 -397
  549. package/src/attestation/Attestation.integration.test.ts +0 -208
  550. package/src/attestation/Client.test.ts +0 -83
  551. package/src/attestation/Client.ts +0 -34
  552. package/src/attestation/Constants.ts +0 -15
  553. package/src/attestation/Server.test.ts +0 -60
  554. package/src/attestation/Server.ts +0 -12
  555. package/src/attestation/Types.test-d.ts +0 -54
  556. package/src/attestation/Types.ts +0 -77
  557. package/src/attestation/index.ts +0 -5
  558. package/src/attestation/internal/HttpMessageSignature.test.ts +0 -101
  559. package/src/attestation/internal/HttpMessageSignature.ts +0 -429
  560. package/src/attestation/internal/SigningContext.ts +0 -13
  561. package/src/bin.js +0 -2
  562. package/src/bin.ts +0 -4
  563. package/src/cli/account.ts +0 -269
  564. package/src/cli/cli.test.ts +0 -2221
  565. package/src/cli/cli.ts +0 -1650
  566. package/src/cli/config.test.ts +0 -89
  567. package/src/cli/config.ts +0 -50
  568. package/src/cli/internal.ts +0 -114
  569. package/src/cli/mcp.test.ts +0 -262
  570. package/src/cli/plugins/evm.ts +0 -55
  571. package/src/cli/plugins/index.ts +0 -4
  572. package/src/cli/plugins/plugin.ts +0 -84
  573. package/src/cli/plugins/stripe.ts +0 -174
  574. package/src/cli/plugins/tempo.ts +0 -1102
  575. package/src/cli/sessions/Manager.test.ts +0 -249
  576. package/src/cli/sessions/Manager.ts +0 -93
  577. package/src/cli/sessions/commands.ts +0 -444
  578. package/src/cli/sessions/request.test.ts +0 -51
  579. package/src/cli/sessions/request.ts +0 -353
  580. package/src/cli/sessions/store.test.ts +0 -581
  581. package/src/cli/sessions/store.ts +0 -940
  582. package/src/cli/utils.test.ts +0 -156
  583. package/src/cli/utils.ts +0 -394
  584. package/src/cli/validate/challenge.ts +0 -565
  585. package/src/cli/validate/discovery.test.ts +0 -435
  586. package/src/cli/validate/discovery.ts +0 -221
  587. package/src/cli/validate/helpers.ts +0 -166
  588. package/src/cli/validate/index.ts +0 -229
  589. package/src/cli/validate/messages.ts +0 -7
  590. package/src/cli/validate/payment.ts +0 -774
  591. package/src/cli/validate.test.ts +0 -843
  592. package/src/client/Methods.ts +0 -8
  593. package/src/client/Mppx.test-d.ts +0 -287
  594. package/src/client/Mppx.test.ts +0 -1065
  595. package/src/client/Mppx.ts +0 -487
  596. package/src/client/Transport.test.ts +0 -586
  597. package/src/client/Transport.ts +0 -170
  598. package/src/client/index.ts +0 -29
  599. package/src/client/internal/Fetch.browser.test.ts +0 -197
  600. package/src/client/internal/Fetch.test-d.ts +0 -109
  601. package/src/client/internal/Fetch.test.ts +0 -2336
  602. package/src/client/internal/Fetch.ts +0 -1075
  603. package/src/client/internal/MethodChallenge.ts +0 -35
  604. package/src/client/internal/MethodResponse.ts +0 -67
  605. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  606. package/src/client/internal/protocols/Mcp.ts +0 -186
  607. package/src/client/internal/protocols/Mpp.ts +0 -21
  608. package/src/client/internal/protocols/Protocol.ts +0 -10
  609. package/src/client/internal/protocols/Shared.ts +0 -25
  610. package/src/client/internal/protocols/X402.ts +0 -46
  611. package/src/client/node.test.ts +0 -115
  612. package/src/client/node.ts +0 -247
  613. package/src/discovery/Discovery.test.ts +0 -214
  614. package/src/discovery/Discovery.ts +0 -105
  615. package/src/discovery/OpenApi.test.ts +0 -623
  616. package/src/discovery/OpenApi.ts +0 -192
  617. package/src/discovery/Validate.test.ts +0 -305
  618. package/src/discovery/Validate.ts +0 -77
  619. package/src/discovery/index.ts +0 -3
  620. package/src/discovery/internal/Metadata.ts +0 -51
  621. package/src/env.d.ts +0 -12
  622. package/src/evm/Assets.ts +0 -1
  623. package/src/evm/Chains.ts +0 -11
  624. package/src/evm/Methods.ts +0 -44
  625. package/src/evm/PublicInterface.test-d.ts +0 -134
  626. package/src/evm/Types.ts +0 -140
  627. package/src/evm/client/Charge.test.ts +0 -347
  628. package/src/evm/client/Charge.ts +0 -187
  629. package/src/evm/client/Methods.ts +0 -19
  630. package/src/evm/client/index.ts +0 -6
  631. package/src/evm/index.ts +0 -16
  632. package/src/evm/server/Charge.test.ts +0 -339
  633. package/src/evm/server/Charge.ts +0 -295
  634. package/src/evm/server/Methods.ts +0 -22
  635. package/src/evm/server/index.ts +0 -6
  636. package/src/index.ts +0 -14
  637. package/src/internal/AcceptPayment.test.ts +0 -347
  638. package/src/internal/AcceptPayment.ts +0 -366
  639. package/src/internal/HeaderCodec.ts +0 -36
  640. package/src/internal/changeset.test.ts +0 -106
  641. package/src/internal/constantTimeEqual.test.ts +0 -47
  642. package/src/internal/constantTimeEqual.ts +0 -10
  643. package/src/internal/env.test.ts +0 -42
  644. package/src/internal/env.ts +0 -49
  645. package/src/internal/types.test-d.ts +0 -21
  646. package/src/internal/types.ts +0 -479
  647. package/src/mcp/client/McpClient.integration.test.ts +0 -639
  648. package/src/mcp/client/McpClient.test-d.ts +0 -144
  649. package/src/mcp/client/McpClient.test.ts +0 -463
  650. package/src/mcp/client/McpClient.ts +0 -307
  651. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  652. package/src/mcp/client/index.ts +0 -2
  653. package/src/mcp/server/Transport.test.ts +0 -191
  654. package/src/mcp/server/Transport.ts +0 -111
  655. package/src/mcp/server/index.ts +0 -1
  656. package/src/middlewares/elysia.test.ts +0 -285
  657. package/src/middlewares/elysia.ts +0 -116
  658. package/src/middlewares/express.test.ts +0 -361
  659. package/src/middlewares/express.ts +0 -140
  660. package/src/middlewares/hono.test.ts +0 -473
  661. package/src/middlewares/hono.ts +0 -153
  662. package/src/middlewares/internal/mppx.test.ts +0 -177
  663. package/src/middlewares/internal/mppx.ts +0 -67
  664. package/src/middlewares/nextjs.test.ts +0 -359
  665. package/src/middlewares/nextjs.ts +0 -107
  666. package/src/proxy/Proxy.test.ts +0 -1038
  667. package/src/proxy/Proxy.ts +0 -483
  668. package/src/proxy/Proxy.upstreamError.test.ts +0 -364
  669. package/src/proxy/Service.test.ts +0 -252
  670. package/src/proxy/Service.ts +0 -280
  671. package/src/proxy/index.ts +0 -6
  672. package/src/proxy/internal/Headers.test.ts +0 -139
  673. package/src/proxy/internal/Headers.ts +0 -66
  674. package/src/proxy/internal/Route.test.ts +0 -217
  675. package/src/proxy/internal/Route.ts +0 -64
  676. package/src/proxy/services/anthropic.test.ts +0 -132
  677. package/src/proxy/services/anthropic.ts +0 -53
  678. package/src/proxy/services/hooks.test-d.ts +0 -14
  679. package/src/proxy/services/hooks.test.ts +0 -44
  680. package/src/proxy/services/openai.test.ts +0 -157
  681. package/src/proxy/services/openai.ts +0 -60
  682. package/src/proxy/services/stripe.test.ts +0 -175
  683. package/src/proxy/services/stripe.ts +0 -59
  684. package/src/server/Methods.test-d.ts +0 -88
  685. package/src/server/Methods.test.ts +0 -69
  686. package/src/server/Methods.ts +0 -3
  687. package/src/server/Mppx.authorize.test.ts +0 -210
  688. package/src/server/Mppx.test-d.ts +0 -494
  689. package/src/server/Mppx.test.ts +0 -6711
  690. package/src/server/Mppx.ts +0 -2919
  691. package/src/server/NodeListener.test.ts +0 -293
  692. package/src/server/NodeListener.ts +0 -45
  693. package/src/server/Request.test.ts +0 -255
  694. package/src/server/Request.ts +0 -155
  695. package/src/server/Response.test.ts +0 -32
  696. package/src/server/Response.ts +0 -45
  697. package/src/server/Transport.test.ts +0 -598
  698. package/src/server/Transport.ts +0 -320
  699. package/src/server/index.ts +0 -9
  700. package/src/server/internal/html/compose.main.gen.ts +0 -2
  701. package/src/server/internal/html/compose.main.ts +0 -88
  702. package/src/server/internal/html/config.ts +0 -672
  703. package/src/server/internal/html/constants.ts +0 -28
  704. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  705. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  706. package/src/server/internal/html/serviceWorker.ts +0 -27
  707. package/src/server/internal/html/tsconfig.compose.json +0 -8
  708. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  709. package/src/server/internal/html/tsconfig.worker.json +0 -8
  710. package/src/server/internal/scope.ts +0 -43
  711. package/src/stripe/Charge.integration.test.ts +0 -329
  712. package/src/stripe/Methods.test.ts +0 -62
  713. package/src/stripe/Methods.ts +0 -44
  714. package/src/stripe/client/Charge.test.ts +0 -205
  715. package/src/stripe/client/Charge.ts +0 -132
  716. package/src/stripe/client/Methods.ts +0 -37
  717. package/src/stripe/client/index.ts +0 -2
  718. package/src/stripe/index.ts +0 -1
  719. package/src/stripe/internal/constants.ts +0 -7
  720. package/src/stripe/internal/types.ts +0 -47
  721. package/src/stripe/server/Charge.test-d.ts +0 -81
  722. package/src/stripe/server/Charge.test.ts +0 -700
  723. package/src/stripe/server/Charge.ts +0 -487
  724. package/src/stripe/server/Methods.test-d.ts +0 -157
  725. package/src/stripe/server/Methods.test.ts +0 -403
  726. package/src/stripe/server/Methods.ts +0 -441
  727. package/src/stripe/server/index.ts +0 -2
  728. package/src/stripe/server/internal/deposit-address.ts +0 -57
  729. package/src/stripe/server/internal/html/main.ts +0 -165
  730. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  731. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  732. package/src/stripe/server/internal/html/package.json +0 -9
  733. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  734. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  735. package/src/stripe/server/internal/html/types.ts +0 -5
  736. package/src/stripe/server/internal/html.gen.ts +0 -2
  737. package/src/stripe/server/internal/record-payment.ts +0 -66
  738. package/src/stripe/server/internal/request.ts +0 -49
  739. package/src/tap/Constants.ts +0 -32
  740. package/src/tap/Tap.test.ts +0 -125
  741. package/src/tap/Types.ts +0 -11
  742. package/src/tap/client/index.ts +0 -54
  743. package/src/tap/index.ts +0 -4
  744. package/src/tap/server/index.ts +0 -48
  745. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  746. package/src/tempo/Attribution.test.ts +0 -294
  747. package/src/tempo/Attribution.ts +0 -185
  748. package/src/tempo/Methods.test.ts +0 -425
  749. package/src/tempo/Methods.ts +0 -367
  750. package/src/tempo/Proof.conformance.test.ts +0 -146
  751. package/src/tempo/Proof.test-d.ts +0 -32
  752. package/src/tempo/Proof.test.ts +0 -40
  753. package/src/tempo/Proof.ts +0 -69
  754. package/src/tempo/PublicExports.test-d.ts +0 -130
  755. package/src/tempo/Subscription.integration.test.ts +0 -591
  756. package/src/tempo/client/Charge.test.ts +0 -501
  757. package/src/tempo/client/Charge.ts +0 -271
  758. package/src/tempo/client/Methods.ts +0 -45
  759. package/src/tempo/client/ResolveAccount.ts +0 -46
  760. package/src/tempo/client/Subscription.test.ts +0 -180
  761. package/src/tempo/client/Subscription.ts +0 -156
  762. package/src/tempo/client/index.ts +0 -17
  763. package/src/tempo/index.ts +0 -5
  764. package/src/tempo/internal/account.ts +0 -56
  765. package/src/tempo/internal/address.test.ts +0 -42
  766. package/src/tempo/internal/address.ts +0 -6
  767. package/src/tempo/internal/auto-swap.test.ts +0 -198
  768. package/src/tempo/internal/auto-swap.ts +0 -145
  769. package/src/tempo/internal/charge.test.ts +0 -66
  770. package/src/tempo/internal/charge.ts +0 -43
  771. package/src/tempo/internal/defaults.test.ts +0 -95
  772. package/src/tempo/internal/defaults.ts +0 -53
  773. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  774. package/src/tempo/internal/fee-payer.ts +0 -808
  775. package/src/tempo/internal/fee-token.test.ts +0 -165
  776. package/src/tempo/internal/fee-token.ts +0 -72
  777. package/src/tempo/internal/proof.test.ts +0 -97
  778. package/src/tempo/internal/proof.ts +0 -87
  779. package/src/tempo/internal/selectors.ts +0 -10
  780. package/src/tempo/internal/types.ts +0 -19
  781. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  782. package/src/tempo/legacy/README.md +0 -9
  783. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  784. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  785. package/src/tempo/legacy/client/Session.test.ts +0 -800
  786. package/src/tempo/legacy/client/Session.ts +0 -397
  787. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  788. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  789. package/src/tempo/legacy/client/index.ts +0 -6
  790. package/src/tempo/legacy/index.ts +0 -4
  791. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  792. package/src/tempo/legacy/session/Chain.ts +0 -830
  793. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  794. package/src/tempo/legacy/session/Channel.ts +0 -51
  795. package/src/tempo/legacy/session/Types.ts +0 -91
  796. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  797. package/src/tempo/legacy/session/Voucher.ts +0 -183
  798. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  799. package/src/tempo/legacy/session/index.ts +0 -8
  800. package/src/tempo/server/AtomicStore.test-d.ts +0 -63
  801. package/src/tempo/server/Charge.test.ts +0 -6056
  802. package/src/tempo/server/Charge.ts +0 -1379
  803. package/src/tempo/server/Methods.ts +0 -86
  804. package/src/tempo/server/Relay.test.ts +0 -677
  805. package/src/tempo/server/Relay.ts +0 -297
  806. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  807. package/src/tempo/server/SponsorBudget.ts +0 -219
  808. package/src/tempo/server/Sse.test.ts +0 -321
  809. package/src/tempo/server/Subscription.test.ts +0 -1944
  810. package/src/tempo/server/Subscription.ts +0 -1336
  811. package/src/tempo/server/index.ts +0 -12
  812. package/src/tempo/server/internal/html/main.ts +0 -115
  813. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  814. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  815. package/src/tempo/server/internal/html/package.json +0 -10
  816. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  817. package/src/tempo/server/internal/html.gen.ts +0 -2
  818. package/src/tempo/server/internal/request-body.test.ts +0 -210
  819. package/src/tempo/server/internal/request-body.ts +0 -61
  820. package/src/tempo/server/internal/transport.test.ts +0 -922
  821. package/src/tempo/server/internal/transport.ts +0 -322
  822. package/src/tempo/session/README.md +0 -320
  823. package/src/tempo/session/Snapshot.test.ts +0 -41
  824. package/src/tempo/session/Snapshot.ts +0 -95
  825. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  826. package/src/tempo/session/client/ChannelOps.ts +0 -348
  827. package/src/tempo/session/client/ChannelStore.ts +0 -111
  828. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  829. package/src/tempo/session/client/CredentialState.ts +0 -942
  830. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  831. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  832. package/src/tempo/session/client/Runtime.ts +0 -1008
  833. package/src/tempo/session/client/Session.test.ts +0 -1355
  834. package/src/tempo/session/client/Session.ts +0 -420
  835. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  836. package/src/tempo/session/client/SessionManager.ts +0 -996
  837. package/src/tempo/session/client/Transports.test.ts +0 -1141
  838. package/src/tempo/session/client/Transports.ts +0 -1534
  839. package/src/tempo/session/client/index.ts +0 -40
  840. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  841. package/src/tempo/session/index.ts +0 -7
  842. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  843. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  844. package/src/tempo/session/precompile/Chain.ts +0 -1269
  845. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  846. package/src/tempo/session/precompile/Channel.ts +0 -108
  847. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  848. package/src/tempo/session/precompile/Protocol.ts +0 -520
  849. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  850. package/src/tempo/session/precompile/Voucher.ts +0 -162
  851. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  852. package/src/tempo/session/precompile/index.ts +0 -33
  853. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  854. package/src/tempo/session/server/ChannelOps.ts +0 -157
  855. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  856. package/src/tempo/session/server/ChannelStore.ts +0 -856
  857. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  858. package/src/tempo/session/server/CredentialVerification.ts +0 -1087
  859. package/src/tempo/session/server/MeteredStream.ts +0 -99
  860. package/src/tempo/session/server/RequestState.test.ts +0 -574
  861. package/src/tempo/session/server/RequestState.ts +0 -507
  862. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  863. package/src/tempo/session/server/Session.test.ts +0 -4247
  864. package/src/tempo/session/server/Session.ts +0 -669
  865. package/src/tempo/session/server/Settlement.test.ts +0 -345
  866. package/src/tempo/session/server/Settlement.ts +0 -527
  867. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  868. package/src/tempo/session/server/Sse.test.ts +0 -634
  869. package/src/tempo/session/server/Sse.ts +0 -261
  870. package/src/tempo/session/server/Transports.test.ts +0 -346
  871. package/src/tempo/session/server/Transports.ts +0 -256
  872. package/src/tempo/session/server/Ws.test.ts +0 -765
  873. package/src/tempo/session/server/Ws.ts +0 -391
  874. package/src/tempo/session/server/index.ts +0 -12
  875. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  876. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  877. package/src/tempo/subscription/Receipt.ts +0 -28
  878. package/src/tempo/subscription/Store.test.ts +0 -609
  879. package/src/tempo/subscription/Store.ts +0 -449
  880. package/src/tempo/subscription/Types.ts +0 -68
  881. package/src/tempo/subscription/index.ts +0 -23
  882. package/src/tsconfig.json +0 -10
  883. package/src/validation/core.ts +0 -386
  884. package/src/validation/index.ts +0 -11
  885. package/src/viem/Account.test.ts +0 -72
  886. package/src/viem/Account.ts +0 -30
  887. package/src/viem/Client.test.ts +0 -366
  888. package/src/viem/Client.ts +0 -93
  889. package/src/web-bot-auth/Constants.ts +0 -24
  890. package/src/web-bot-auth/Types.ts +0 -9
  891. package/src/web-bot-auth/WebBotAuth.test.ts +0 -182
  892. package/src/web-bot-auth/client/index.ts +0 -84
  893. package/src/web-bot-auth/index.ts +0 -6
  894. package/src/web-bot-auth/internal/JwkThumbprint.ts +0 -21
  895. package/src/web-bot-auth/internal/SignatureAgent.ts +0 -18
  896. package/src/web-bot-auth/server/index.ts +0 -113
  897. package/src/x402/Assets.test.ts +0 -253
  898. package/src/x402/Assets.ts +0 -221
  899. package/src/x402/Exact.e2e.test.ts +0 -488
  900. package/src/x402/Exact.localnet.test.ts +0 -475
  901. package/src/x402/Header.test.ts +0 -73
  902. package/src/x402/Header.ts +0 -79
  903. package/src/x402/PublicInterface.test-d.ts +0 -39
  904. package/src/x402/Types.ts +0 -248
  905. package/src/x402/client/Exact.test.ts +0 -309
  906. package/src/x402/client/Exact.ts +0 -186
  907. package/src/x402/index.ts +0 -6
  908. package/src/x402/internal/ChallengeBrand.ts +0 -14
  909. package/src/x402/internal/RouteBinding.ts +0 -18
  910. package/src/x402/server/EvmCharge.ts +0 -410
  911. package/src/x402/server/Facilitator.test.ts +0 -111
  912. package/src/x402/server/Facilitator.ts +0 -56
  913. package/src/zod.test.ts +0 -169
  914. package/src/zod.ts +0 -71
@@ -1,856 +0,0 @@
1
- import type { Address, Hex } from 'viem'
2
-
3
- import type * as Challenge from '../../../Challenge.js'
4
- import {
5
- AmountExceedsDepositError,
6
- ChannelClosedError,
7
- ChannelNotFoundError,
8
- DeltaTooSmallError,
9
- InvalidSignatureError,
10
- VerificationFailedError,
11
- } from '../../../Errors.js'
12
- import type * as Store from '../../../Store.js'
13
- import type * as Chain from '../precompile/Chain.js'
14
- import type * as PrecompileChannel from '../precompile/Channel.js'
15
- import { createSessionReceipt } from '../precompile/Protocol.js'
16
- import type { SessionReceipt, SessionSignedVoucher } from '../precompile/Protocol.js'
17
- import { uint96, type SignedVoucher } from '../precompile/Protocol.js'
18
- import * as Voucher from '../precompile/Voucher.js'
19
- import {
20
- assertSameDescriptor,
21
- validateChannelDescriptor,
22
- validateChannelState,
23
- } from './CredentialVerification.js'
24
- import type { SessionMethodDetails } from './RequestState.js'
25
-
26
- /**
27
- * State for an on-chain payment channel, including per-session accounting.
28
- *
29
- * Tracks the channel's identity, on-chain balance, the highest voucher
30
- * the server has accepted, and the current session's spend counters.
31
- * A channel is created when a payer opens an escrow on-chain and persists
32
- * until the channel is finalized (closed/settled).
33
- *
34
- * One channel = one session. The client owns the key and can't race with
35
- * itself, so concurrent session support is unnecessary.
36
- *
37
- * Monotonicity invariants (enforced by update callbacks):
38
- * - `highestVoucherAmount` only increases
39
- * - `settledOnChain` only increases
40
- * - `deposit` reflects the latest on-chain value
41
- */
42
- export type State = BaseState & BackendState
43
-
44
- /** Result of an atomic channel deduction attempt. */
45
- export type DeductResult = { ok: true; channel: State } | { ok: false; channel: State }
46
-
47
- /** Persisted channel state after narrowing to the TIP-1034 precompile backend. */
48
- export type StoredPrecompileChannel = BaseState & PrecompileBackendState
49
-
50
- /** On-chain state fields read from the TIP-1034 precompile. */
51
- export type OnChainChannelState = {
52
- /** Current on-chain channel deposit. */
53
- deposit: bigint
54
- /** Cumulative amount settled on-chain. */
55
- settled: bigint
56
- /** Close-request timestamp, or zero when open. */
57
- closeRequestedAt: number | bigint
58
- }
59
-
60
- /** Persisted fields that mirror authoritative on-chain channel state. */
61
- export type ActiveOnChainStateFields = Pick<
62
- State,
63
- 'closeRequestedAt' | 'deposit' | 'settledOnChain'
64
- >
65
-
66
- /** Parameters for selecting the persisted highest accepted voucher. */
67
- export type HighestVoucherParameters = {
68
- /** Channel ID used when constructing a new voucher record. */
69
- channelId: Hex
70
- /** Existing persisted voucher amount and signature, when present. */
71
- current?: Pick<State, 'highestVoucher' | 'highestVoucherAmount'> | null | undefined
72
- /** Candidate cumulative voucher amount. */
73
- cumulativeAmount: bigint
74
- /** Candidate voucher signature. */
75
- signature: Hex
76
- }
77
-
78
- /** Highest accepted voucher amount plus signed voucher payload. */
79
- export type HighestVoucher = {
80
- /** Highest cumulative voucher amount to persist. */
81
- highestVoucherAmount: bigint
82
- /** Signed voucher corresponding to `highestVoucherAmount`. */
83
- highestVoucher: SessionSignedVoucher | null
84
- }
85
-
86
- /** Inputs for resolving the amount a close transaction should capture. */
87
- export type ResolveCloseCaptureAmountParameters = {
88
- /** Close voucher cumulative amount. */
89
- cumulativeAmount: bigint
90
- /** Current on-chain deposit. */
91
- onChainDeposit: bigint
92
- /** Current on-chain settled amount. */
93
- onChainSettled: bigint
94
- /** Locally recorded paid spend. */
95
- spent: bigint
96
- }
97
-
98
- /** Inputs used when persisting or reconciling a successful open transaction. */
99
- export type OpenChannelStateParameters = {
100
- /** Address stored as the effective voucher signer for this channel. */
101
- authorizedSigner: Address
102
- /** Chain ID used by the opened channel. */
103
- chainId: number
104
- /** Normalized channel ID. */
105
- channelId: Hex
106
- /** Existing channel state, when one was already persisted. */
107
- current: State | null
108
- /** Descriptor verified from the open transaction. */
109
- descriptor: PrecompileChannel.ChannelDescriptor
110
- /** Escrow precompile address used by the channel. */
111
- escrow: Address
112
- /** Transaction-bound expiring nonce hash from the open call. */
113
- expiringNonceHash: Hex
114
- /** Initial or highest accepted cumulative voucher amount. */
115
- cumulativeAmount: bigint
116
- /** Voucher signature for `cumulativeAmount`. */
117
- signature: Hex
118
- /** Latest on-chain channel state read after open. */
119
- state: Chain.ChannelState
120
- }
121
-
122
- /** Inputs for merging a successful top-up transaction into persisted channel state. */
123
- export type TopUpStateParameters = {
124
- /** Existing channel state, when one is currently persisted. */
125
- current: State | null
126
- /** Latest verified on-chain channel state read after top-up. */
127
- state: Chain.ChannelState
128
- }
129
-
130
- /** Inputs for merging a newly accepted voucher with persisted channel state. */
131
- export type AcceptVoucherStateUpdateParameters = {
132
- /** Latest on-chain channel state used to validate the voucher. */
133
- channelState: Chain.ChannelState
134
- /** Existing channel state being updated. */
135
- current: State | null
136
- /** Verified signed voucher. */
137
- voucher: SessionSignedVoucher
138
- }
139
-
140
- /** Inputs for marking a channel as pending cooperative close. */
141
- export type MarkPendingCloseParameters = {
142
- /** Timestamp used to mark the local pending-close state. */
143
- closeRequestedAt: bigint
144
- /** Close voucher cumulative amount. */
145
- cumulativeAmount: bigint
146
- /** Existing channel state being updated. */
147
- current: State | null
148
- /** Current on-chain deposit. */
149
- onChainDeposit: bigint
150
- /** Current on-chain settled amount. */
151
- onChainSettled: bigint
152
- }
153
-
154
- /** Result of preparing local state for a cooperative close. */
155
- export type PendingCloseUpdate = {
156
- /** Amount that should be captured on-chain at close. */
157
- captureAmount: bigint
158
- /** Next local channel state, or null if no channel exists. */
159
- state: State | null
160
- }
161
-
162
- /** Inputs for finalizing local state after a successful close transaction. */
163
- export type FinalizeClosedChannelParameters = {
164
- /** Amount captured to payee during close. */
165
- captureAmount: bigint
166
- /** Normalized channel ID. */
167
- channelId: Hex
168
- /** Close voucher cumulative amount. */
169
- cumulativeAmount: bigint
170
- /** Existing channel state being updated. */
171
- current: State | null
172
- /** Close voucher signature. */
173
- signature: Hex
174
- }
175
-
176
- /** Immutable channel identity fields derived from a verified TIP-1034 descriptor. */
177
- export type PrecompileChannelIdentity = Pick<
178
- BaseState & PrecompileBackendState,
179
- | 'authorizedSigner'
180
- | 'backend'
181
- | 'chainId'
182
- | 'channelId'
183
- | 'descriptor'
184
- | 'escrowContract'
185
- | 'expiringNonceHash'
186
- | 'operator'
187
- | 'payee'
188
- | 'payer'
189
- | 'salt'
190
- | 'token'
191
- >
192
-
193
- /** Inputs used to derive immutable persisted channel identity fields. */
194
- export type ResolvePrecompileChannelIdentityParameters = {
195
- /** Address stored as the effective voucher signer for this channel. */
196
- authorizedSigner: Address
197
- /** Chain ID used by the opened channel. */
198
- chainId: number
199
- /** Normalized channel ID. */
200
- channelId: Hex
201
- /** Descriptor verified from the open transaction. */
202
- descriptor: PrecompileChannel.ChannelDescriptor
203
- /** Escrow precompile address used by the channel. */
204
- escrow: Address
205
- /** Transaction-bound expiring nonce hash from the open call. */
206
- expiringNonceHash: Hex
207
- }
208
-
209
- /** Inputs for reading a persisted precompile channel and validating its descriptor. */
210
- export type LoadPrecompileChannelParameters = {
211
- /** Channel ID to read from the server store. */
212
- channelId: Hex
213
- /** Chain ID used to rederive the channel descriptor. */
214
- chainId: number
215
- /** Descriptor supplied by the credential payload. */
216
- descriptor: StoredPrecompileChannel['descriptor']
217
- /** Escrow precompile address used to derive the channel ID. */
218
- escrow: Address
219
- /** Server channel store. */
220
- store: ChannelStore
221
- /** Whether to also validate descriptor identity against chain/payee/token fields. */
222
- validateDescriptor?: boolean | undefined
223
- }
224
-
225
- /** Inputs for validating a signed voucher and merging it into channel state. */
226
- export type VerifyAndAcceptVoucherParameters = {
227
- /** Credential challenge used to bind the returned receipt. */
228
- challenge: Challenge.Challenge
229
- /** Persisted channel state before voucher acceptance. */
230
- channel: State
231
- /** Latest on-chain state used as the deposit/settled authority. */
232
- channelState: Chain.ChannelState
233
- /** Session method details used for voucher signature domain separation. */
234
- methodDetails: SessionMethodDetails
235
- /** Minimum allowed voucher delta in raw units. */
236
- minVoucherDelta: bigint
237
- /** Server channel store. */
238
- store: ChannelStore
239
- /** Signed cumulative voucher to verify and accept. */
240
- voucher: SignedVoucher
241
- }
242
-
243
- /** Inputs for validating a cumulative voucher without recording it. */
244
- export type ValidateVoucherParameters = Omit<
245
- VerifyAndAcceptVoucherParameters,
246
- 'challenge' | 'store'
247
- >
248
-
249
- /** Result of validating a cumulative voucher against persisted channel state. */
250
- export type VoucherValidation = {
251
- /** Whether the voucher was already accepted at the same cumulative amount. */
252
- alreadyAccepted: boolean
253
- }
254
-
255
- /** Channel backend-specific fields. */
256
- export type BackendState = CompatibilityBackendState | PrecompileBackendState
257
-
258
- /** State for records owned by a backend outside the TIP-1034 precompile path. */
259
- export interface CompatibilityBackendState {
260
- /** Optional backend marker for older stored records. */
261
- backend?: 'contract' | 'external' | undefined
262
- }
263
-
264
- /** State for a TIP20EscrowChannel precompile-backed payment channel. */
265
- export interface PrecompileBackendState {
266
- /** Channel backend. */
267
- backend: 'precompile'
268
- /** Descriptor used to derive the channel's identity. */
269
- descriptor: PrecompileChannel.ChannelDescriptor
270
- /** Transaction-bound nonce hash used to derive the channel's identity. */
271
- expiringNonceHash: Hex
272
- /** Address authorized to operate the channel. */
273
- operator: Address
274
- /** Salt used to derive the channel's identity. */
275
- salt: Hex
276
- }
277
-
278
- /** Common persisted state for every session channel backend. */
279
- export interface BaseState {
280
- /** Address authorized to sign vouchers on behalf of the payer. */
281
- authorizedSigner: Address
282
- /** Chain ID the channel was opened on. */
283
- chainId: number
284
- /** Escrow contract address the channel was opened on. */
285
- escrowContract: Address
286
- /** Unique identifier for this payment channel. */
287
- channelId: Hex
288
- /** On-chain timestamp when a force-close was requested (0n if not requested). */
289
- closeRequestedAt: bigint
290
- /** ISO 8601 timestamp when the channel was created. */
291
- createdAt: string
292
- /** Current on-chain deposit in the escrow contract. */
293
- deposit: bigint
294
- /** Whether the channel has been finalized (closed) on-chain. */
295
- finalized: boolean
296
- /** The signed voucher corresponding to `highestVoucherAmount`. */
297
- highestVoucher: SessionSignedVoucher | null
298
- /** Highest cumulative voucher amount accepted by the server. */
299
- highestVoucherAmount: bigint
300
- /** Address of the payment recipient. */
301
- payee: Address
302
- /** Address of the payment sender. */
303
- payer: Address
304
- /** Cumulative amount settled on-chain so far. */
305
- settledOnChain: bigint
306
- /** Cumulative amount spent (charged) against this channel's current session. */
307
- spent: bigint
308
- /** Token contract address used for payments. */
309
- token: Address
310
- /** Number of charge operations (API requests) fulfilled in the current session. */
311
- units: number
312
- /** ISO 8601 timestamp of the last server-scheduled settlement. */
313
- lastSettlementAt?: string | undefined
314
- /** Cumulative spent value when the last server-scheduled settlement ran. */
315
- lastSettlementSpent?: bigint | undefined
316
- /** Charge operation count when the last server-scheduled settlement ran. */
317
- lastSettlementUnits?: number | undefined
318
- }
319
-
320
- /** Returns whether a channel is backed by the TIP20EscrowChannel precompile. */
321
- export function isPrecompileState(state: State): state is BaseState & PrecompileBackendState {
322
- return state.backend === 'precompile'
323
- }
324
-
325
- /** Returns the greater bigint value without decreasing persisted monotonic state. */
326
- export function keepGreater(current: bigint, next: bigint): bigint {
327
- return current > next ? current : next
328
- }
329
-
330
- /** Returns the greater close-request timestamp as a bigint. */
331
- export function keepGreaterTimestamp(current: bigint, next: number | bigint): bigint {
332
- return keepGreater(current, BigInt(next))
333
- }
334
-
335
- /** Keeps local active-channel state in sync with authoritative on-chain reads. */
336
- export function mergeActiveOnChainState(
337
- current: Partial<ActiveOnChainStateFields> | null | undefined,
338
- state: OnChainChannelState,
339
- ): ActiveOnChainStateFields {
340
- return {
341
- closeRequestedAt: keepGreaterTimestamp(current?.closeRequestedAt ?? 0n, state.closeRequestedAt),
342
- deposit: keepGreater(current?.deposit ?? 0n, state.deposit),
343
- settledOnChain: keepGreater(current?.settledOnChain ?? 0n, state.settled),
344
- }
345
- }
346
-
347
- /** Keeps the existing higher voucher, otherwise stores the supplied candidate voucher. */
348
- export function resolveHighestVoucher(parameters: HighestVoucherParameters): HighestVoucher {
349
- const { channelId, current, cumulativeAmount, signature } = parameters
350
- if (current?.highestVoucherAmount && current.highestVoucherAmount > cumulativeAmount) {
351
- return {
352
- highestVoucherAmount: current.highestVoucherAmount,
353
- highestVoucher: current.highestVoucher,
354
- }
355
- }
356
-
357
- return {
358
- highestVoucherAmount: cumulativeAmount,
359
- highestVoucher: { channelId, cumulativeAmount, signature },
360
- }
361
- }
362
-
363
- /** Derives persisted identity fields from a verified precompile channel descriptor. */
364
- export function resolvePrecompileChannelIdentity(
365
- parameters: ResolvePrecompileChannelIdentityParameters,
366
- ): PrecompileChannelIdentity {
367
- const { authorizedSigner, chainId, channelId, descriptor, escrow, expiringNonceHash } = parameters
368
- return {
369
- authorizedSigner,
370
- backend: 'precompile',
371
- chainId,
372
- channelId,
373
- descriptor,
374
- escrowContract: escrow,
375
- expiringNonceHash,
376
- operator: descriptor.operator,
377
- payee: descriptor.payee,
378
- payer: descriptor.payer,
379
- salt: descriptor.salt,
380
- token: descriptor.token,
381
- }
382
- }
383
-
384
- /** Builds the persisted state for a verified precompile channel open. */
385
- export function openChannelState(parameters: OpenChannelStateParameters): State {
386
- const { authorizedSigner, chainId, channelId, current, descriptor, escrow, expiringNonceHash } =
387
- parameters
388
- const { state } = parameters
389
- const { cumulativeAmount, signature } = parameters
390
- const highestVoucher = resolveHighestVoucher({
391
- channelId,
392
- current,
393
- cumulativeAmount,
394
- signature,
395
- })
396
- const onChain = mergeActiveOnChainState(current, state)
397
- return {
398
- ...(current ?? {}),
399
- ...resolvePrecompileChannelIdentity({
400
- authorizedSigner,
401
- chainId,
402
- channelId,
403
- descriptor,
404
- escrow,
405
- expiringNonceHash,
406
- }),
407
- closeRequestedAt: onChain.closeRequestedAt,
408
- deposit: onChain.deposit,
409
- settledOnChain: onChain.settledOnChain,
410
- highestVoucherAmount: highestVoucher.highestVoucherAmount,
411
- highestVoucher: highestVoucher.highestVoucher,
412
- spent: keepGreater(current?.spent ?? 0n, state.settled),
413
- units: current?.units ?? 0,
414
- finalized: current?.finalized ?? false,
415
- createdAt: current?.createdAt ?? new Date().toISOString(),
416
- }
417
- }
418
-
419
- /** Merges top-up on-chain state into persisted channel state without decreasing monotonic fields. */
420
- export function topUpChannelState(parameters: TopUpStateParameters): State | null {
421
- const { current, state } = parameters
422
- if (!current) return current
423
- return {
424
- ...current,
425
- ...mergeActiveOnChainState(current, state),
426
- }
427
- }
428
-
429
- /** Merges an accepted voucher into persisted channel state after signature and on-chain checks pass. */
430
- export function acceptVoucherStateUpdate(parameters: AcceptVoucherStateUpdateParameters): State {
431
- const { channelState, current, voucher } = parameters
432
- if (!current) throw new ChannelNotFoundError({ reason: 'channel not found' })
433
- if (current.finalized) throw new ChannelClosedError({ reason: 'channel is finalized' })
434
- if (current.closeRequestedAt !== 0n)
435
- throw new ChannelClosedError({ reason: 'channel has a pending close request' })
436
-
437
- const onChain = mergeActiveOnChainState(current, channelState)
438
-
439
- if (voucher.cumulativeAmount <= current.highestVoucherAmount) {
440
- return { ...current, ...onChain }
441
- }
442
-
443
- return {
444
- ...current,
445
- ...onChain,
446
- highestVoucherAmount: voucher.cumulativeAmount,
447
- highestVoucher: voucher,
448
- }
449
- }
450
-
451
- /**
452
- * Resolves the close capture amount and validates it is covered by both the
453
- * close voucher and current on-chain deposit.
454
- */
455
- export function resolveCloseCaptureAmount(parameters: ResolveCloseCaptureAmountParameters): bigint {
456
- const { cumulativeAmount, onChainDeposit, onChainSettled, spent } = parameters
457
- if (cumulativeAmount < spent) {
458
- throw new VerificationFailedError({
459
- reason: `close voucher amount must be >= ${spent} (spent)`,
460
- })
461
- }
462
-
463
- const captureAmount = uint96(spent > onChainSettled ? spent : onChainSettled)
464
- if (captureAmount > cumulativeAmount) {
465
- throw new VerificationFailedError({
466
- reason: `close voucher amount must be >= ${captureAmount} (capture amount)`,
467
- })
468
- }
469
- if (captureAmount > onChainDeposit) {
470
- throw new AmountExceedsDepositError({
471
- reason: 'close capture amount exceeds on-chain deposit',
472
- })
473
- }
474
- return captureAmount
475
- }
476
-
477
- /** Marks local channel state as pending close and returns the bounded capture amount. */
478
- export function markPendingClose(parameters: MarkPendingCloseParameters): PendingCloseUpdate {
479
- const { closeRequestedAt, cumulativeAmount, current, onChainSettled, onChainDeposit } = parameters
480
- if (!current) return { captureAmount: 0n, state: null }
481
- if (current.finalized) throw new ChannelClosedError({ reason: 'channel is already finalized' })
482
- if (current.closeRequestedAt !== 0n)
483
- throw new ChannelClosedError({ reason: 'channel has a pending close request' })
484
- const captureAmount = resolveCloseCaptureAmount({
485
- cumulativeAmount,
486
- onChainDeposit,
487
- onChainSettled,
488
- spent: current.spent,
489
- })
490
-
491
- return {
492
- captureAmount,
493
- state: { ...current, closeRequestedAt },
494
- }
495
- }
496
-
497
- /** Finalizes local channel state after a successful close transaction. */
498
- export function finalizeClosedChannelState(
499
- parameters: FinalizeClosedChannelParameters,
500
- ): State | null {
501
- const { captureAmount, channelId, cumulativeAmount, current, signature } = parameters
502
- if (!current) return current
503
- const highestVoucher = resolveHighestVoucher({
504
- channelId,
505
- current,
506
- cumulativeAmount,
507
- signature,
508
- })
509
- return {
510
- ...current,
511
- finalized: true,
512
- closeRequestedAt: 0n,
513
- deposit: 0n,
514
- settledOnChain: keepGreater(current.settledOnChain, captureAmount),
515
- highestVoucherAmount: highestVoucher.highestVoucherAmount,
516
- highestVoucher: highestVoucher.highestVoucher,
517
- }
518
- }
519
-
520
- /** Loads a precompile-backed channel or throws a verification error. */
521
- export async function loadPrecompileChannel(
522
- parameters: LoadPrecompileChannelParameters,
523
- ): Promise<StoredPrecompileChannel> {
524
- const { channelId, chainId, descriptor, escrow, store } = parameters
525
- const channel = await store.getChannel(channelId)
526
- if (!channel) throw new ChannelNotFoundError({ reason: 'channel not found' })
527
- if (!isPrecompileState(channel))
528
- throw new VerificationFailedError({ reason: 'channel is not precompile-backed' })
529
- assertSameDescriptor(descriptor, channel.descriptor)
530
- if (parameters.validateDescriptor)
531
- validateChannelDescriptor(descriptor, channelId, chainId, escrow, channel.payee, channel.token)
532
- return channel
533
- }
534
-
535
- /** Verifies a cumulative voucher without changing persisted channel state. */
536
- export async function validateVoucher(
537
- parameters: ValidateVoucherParameters,
538
- ): Promise<VoucherValidation> {
539
- const { minVoucherDelta, channel, voucher, channelState, methodDetails } = parameters
540
-
541
- validateChannelState(channelState)
542
- if (voucher.cumulativeAmount > channelState.deposit)
543
- throw new AmountExceedsDepositError({ reason: 'voucher amount exceeds on-chain deposit' })
544
- if (voucher.cumulativeAmount < channel.highestVoucherAmount)
545
- throw new VerificationFailedError({
546
- reason: 'voucher cumulativeAmount must be strictly greater than highest accepted voucher',
547
- })
548
- const valid = await Voucher.verifyVoucher(
549
- methodDetails.escrowContract,
550
- methodDetails.chainId,
551
- voucher,
552
- channel.authorizedSigner,
553
- )
554
- if (!valid) throw new InvalidSignatureError({ reason: 'invalid voucher signature' })
555
-
556
- if (voucher.cumulativeAmount <= channelState.settled)
557
- throw new VerificationFailedError({
558
- reason: 'voucher cumulativeAmount is below on-chain settled amount',
559
- })
560
- if (voucher.cumulativeAmount === channel.highestVoucherAmount) return { alreadyAccepted: true }
561
- const delta = voucher.cumulativeAmount - channel.highestVoucherAmount
562
- if (delta < minVoucherDelta)
563
- throw new DeltaTooSmallError({
564
- reason: `voucher delta ${delta} below minimum ${minVoucherDelta}`,
565
- })
566
- return { alreadyAccepted: false }
567
- }
568
-
569
- /** Verifies a cumulative voucher and returns a session receipt after store reconciliation. */
570
- export async function verifyAndAcceptVoucher(
571
- parameters: VerifyAndAcceptVoucherParameters,
572
- ): Promise<SessionReceipt> {
573
- const { store, challenge, channel, voucher, channelState } = parameters
574
- const validation = await validateVoucher(parameters)
575
- if (validation.alreadyAccepted)
576
- return createSessionReceipt({
577
- challengeId: challenge.id,
578
- channelId: voucher.channelId,
579
- acceptedCumulative: channel.highestVoucherAmount,
580
- spent: channel.spent,
581
- units: channel.units,
582
- })
583
- const updated = await store.updateChannel(voucher.channelId, (current) =>
584
- acceptVoucherStateUpdate({ channelState, current, voucher }),
585
- )
586
- if (!updated) throw new ChannelNotFoundError({ reason: 'channel not found' })
587
- return createSessionReceipt({
588
- challengeId: challenge.id,
589
- channelId: voucher.channelId,
590
- acceptedCumulative: updated.highestVoucherAmount,
591
- spent: updated.spent,
592
- units: updated.units,
593
- })
594
- }
595
-
596
- /**
597
- * Internal store interface for channel state persistence.
598
- *
599
- * ## Atomicity contract
600
- *
601
- * The `updateChannel` method uses an atomic read-modify-write callback.
602
- * The callback receives the current state (or `null` if none exists), and
603
- * returns the next state (or `null` to delete). Implementations must
604
- * guarantee that no concurrent mutation occurs between reading `current`
605
- * and writing the return value.
606
- *
607
- * Callbacks should be synchronous and deterministic. When a `ChannelStore`
608
- * is backed by `Store.update()`, adapters may retry them internally.
609
- *
610
- * Backends implement this via their native mechanisms:
611
- * - **In-memory / JS single-thread**: Synchronous callback execution
612
- * - **Durable Objects**: Single-threaded execution model
613
- * - **D1 / SQL**: Database transactions
614
- */
615
- export type ChannelStore = {
616
- getChannel(channelId: Hex): Promise<State | null>
617
-
618
- /**
619
- * Atomic read-modify-write for channel state.
620
- * Return `null` from `fn` to delete the channel.
621
- */
622
- updateChannel(channelId: Hex, fn: (current: State | null) => State | null): Promise<State | null>
623
-
624
- /**
625
- * Wait for the next update to a channel.
626
- *
627
- * Returns a `Promise` that resolves once `updateChannel` is called for
628
- * `channelId`. Implementations should resolve immediately if the channel
629
- * was updated between the call to `waitForUpdate` and the `Promise`
630
- * being awaited.
631
- *
632
- * When not implemented, callers fall back to polling.
633
- */
634
- waitForUpdate?(channelId: Hex): Promise<void>
635
-
636
- /**
637
- * Atomic read-modify-write that returns the callback's `result` directly.
638
- *
639
- * Used by {@link deductFromChannel} to atomically compute the deduction
640
- * outcome. When backed by `Store.update()`, this delegates to the store's
641
- * native atomic primitive.
642
- */
643
- updateChannelResult?<result>(
644
- channelId: Hex,
645
- fn: (current: State | null) => Store.Change<State, result>,
646
- ): Promise<result>
647
- }
648
-
649
- /** Normalizes and validates 32-byte channel IDs before store lookup or persistence. */
650
- export function normalizeChannelId(channelId: string): Hex {
651
- if (!/^0x[0-9a-fA-F]{64}$/.test(channelId)) throw new Error('Invalid session channel ID.')
652
- return channelId.toLowerCase() as Hex
653
- }
654
-
655
- type StateStore = Store.Store<Record<string, State>> &
656
- Partial<Store.AtomicActions<Record<string, State>>>
657
-
658
- /** Atomic store change carrying normalized channel state. */
659
- type ChannelStateChange<result> = Store.Change<State, result>
660
-
661
- /** Store change carrying the result of an attempted spend deduction. */
662
- type DeductionChange = Store.Change<State, DeductResult | null>
663
-
664
- /** Mutable runtime state for one generic-store adapter instance. */
665
- type StoreAdapterRuntime = {
666
- /** Per-channel in-process locks used when the backend has no atomic update primitive. */
667
- locks: Map<string, Promise<void>>
668
- /** Waiters notified after the next mutation for a normalized channel ID. */
669
- waiters: Map<string, Set<() => void>>
670
- }
671
-
672
- function normalizeState(channelId: Hex, state: State): State {
673
- return state.channelId === channelId ? state : { ...state, channelId }
674
- }
675
-
676
- function normalizeMaybeState(channelId: Hex, state: State | null): State | null {
677
- return state ? normalizeState(channelId, state) : null
678
- }
679
-
680
- /** Normalizes any stored channel value inside a store change. */
681
- function normalizeChange<result>(
682
- channelId: Hex,
683
- change: ChannelStateChange<result>,
684
- ): ChannelStateChange<result> {
685
- if (change.op !== 'set') return change
686
- return {
687
- ...change,
688
- value: normalizeState(channelId, change.value),
689
- }
690
- }
691
-
692
- /**
693
- * Wraps a generic {@link Store} into the internal {@link Store}
694
- * interface used by server handlers and the SSE metering loop.
695
- *
696
- * Provides `waitForUpdate` notifications so the SSE `chargeOrWait` loop
697
- * can wake up without polling.
698
- *
699
- * ## Atomicity
700
- *
701
- * Mutations use `get` → `fn` → `set` guarded by a per-key in-process
702
- * mutex. This serializes concurrent `updateChannel` calls within a
703
- * single JS runtime but does **not** protect against races across
704
- * multiple processes or instances.
705
- *
706
- * Backends that need true atomicity (e.g., Durable Objects, D1)
707
- * should implement {@link Store} directly.
708
- */
709
- const storeCache = new WeakMap<Store.Store, ChannelStore>()
710
-
711
- /** Wraps a generic mppx store in the shared session channel-store interface. */
712
- export function fromStore(store: Store.Store | Store.AtomicStore): ChannelStore {
713
- const cached = storeCache.get(store)
714
- if (cached) return cached
715
-
716
- const stateStore = store as StateStore
717
- const atomicUpdate = stateStore.update
718
-
719
- const runtime: StoreAdapterRuntime = {
720
- locks: new Map(),
721
- waiters: new Map(),
722
- }
723
-
724
- function notify(channelId: string) {
725
- const set = runtime.waiters.get(channelId)
726
- if (!set) return
727
- for (const resolve of set) resolve()
728
- runtime.waiters.delete(channelId)
729
- }
730
-
731
- async function update(
732
- channelId: Hex,
733
- fn: (current: State | null) => State | null,
734
- ): Promise<State | null> {
735
- return updateResult(channelId, (current) => {
736
- const next = fn(current)
737
- if (next) return { op: 'set', value: next, result: next }
738
- return { op: 'delete', result: null }
739
- })
740
- }
741
-
742
- async function updateResult<result>(
743
- channelId: Hex,
744
- fn: (current: State | null) => Store.Change<State, result>,
745
- ): Promise<result> {
746
- const normalizedChannelId = normalizeChannelId(channelId)
747
- let change: Store.Change<State, result> | undefined
748
-
749
- if (atomicUpdate) {
750
- const result = await atomicUpdate(normalizedChannelId, (current) => {
751
- const normalizedCurrent = normalizeMaybeState(normalizedChannelId, current)
752
- change = normalizeChange(normalizedChannelId, fn(normalizedCurrent))
753
- return change
754
- })
755
- if (change?.op !== 'noop') notify(normalizedChannelId)
756
- return result
757
- }
758
-
759
- while (runtime.locks.has(normalizedChannelId)) await runtime.locks.get(normalizedChannelId)
760
-
761
- let release!: () => void
762
- runtime.locks.set(
763
- normalizedChannelId,
764
- new Promise<void>((r) => {
765
- release = r
766
- }),
767
- )
768
-
769
- try {
770
- const current = normalizeMaybeState(
771
- normalizedChannelId,
772
- await stateStore.get(normalizedChannelId),
773
- )
774
- change = normalizeChange(normalizedChannelId, fn(current))
775
- if (change.op === 'set') {
776
- await stateStore.put(normalizedChannelId, change.value)
777
- }
778
- if (change.op === 'delete') await stateStore.delete(normalizedChannelId)
779
- if (change.op !== 'noop') notify(normalizedChannelId)
780
- return change.result
781
- } finally {
782
- runtime.locks.delete(normalizedChannelId)
783
- release()
784
- }
785
- }
786
-
787
- const cs: ChannelStore = {
788
- async getChannel(channelId) {
789
- const normalizedChannelId = normalizeChannelId(channelId)
790
- return normalizeMaybeState(normalizedChannelId, await stateStore.get(normalizedChannelId))
791
- },
792
- async updateChannel(channelId, fn) {
793
- return update(channelId, fn)
794
- },
795
- waitForUpdate(channelId) {
796
- return new Promise<void>((resolve) => {
797
- const normalizedChannelId = normalizeChannelId(channelId)
798
- let set = runtime.waiters.get(normalizedChannelId)
799
- if (!set) {
800
- set = new Set()
801
- runtime.waiters.set(normalizedChannelId, set)
802
- }
803
- set.add(resolve)
804
- })
805
- },
806
- }
807
-
808
- cs.updateChannelResult = updateResult
809
-
810
- storeCache.set(store, cs)
811
- return cs
812
- }
813
-
814
- /**
815
- * Atomically deducts `amount` from a channel's available voucher balance.
816
- *
817
- * Returns `{ ok: true, channel }` with updated spend/unit counters when the
818
- * deduction succeeds. Returns `{ ok: false, channel }` without mutating state
819
- * when the channel exists but cannot currently be charged.
820
- */
821
- export async function deductFromChannel(
822
- store: ChannelStore,
823
- channelId: State['channelId'],
824
- amount: bigint,
825
- ): Promise<DeductResult> {
826
- if (store.updateChannelResult) {
827
- const result = await store.updateChannelResult<DeductResult | null>(
828
- channelId,
829
- (current): DeductionChange => planDeduction(current, amount),
830
- )
831
- if (!result) throw new Error('channel not found')
832
- return result
833
- }
834
-
835
- let result: DeductResult | null = null
836
- const channel = await store.updateChannel(channelId, (current) => {
837
- const change = planDeduction(current, amount)
838
- result = change.result
839
- if (change.op === 'set') return change.value
840
- return current
841
- })
842
- if (!channel) throw new Error('channel not found')
843
- return result ?? { ok: false, channel }
844
- }
845
-
846
- function planDeduction(current: State | null, amount: bigint): DeductionChange {
847
- if (!current) return { op: 'noop', result: null }
848
- if (current.finalized) return { op: 'noop', result: { ok: false, channel: current } }
849
- if (current.closeRequestedAt !== 0n)
850
- return { op: 'noop', result: { ok: false, channel: current } }
851
- if (current.highestVoucherAmount - current.spent < amount)
852
- return { op: 'noop', result: { ok: false, channel: current } }
853
-
854
- const next = { ...current, spent: current.spent + amount, units: current.units + 1 }
855
- return { op: 'set', value: next, result: { ok: true, channel: next } }
856
- }