mppx 0.6.31 → 0.8.0

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 (616) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +20 -11
  3. package/dist/Challenge.d.ts.map +1 -1
  4. package/dist/Challenge.js +27 -13
  5. package/dist/Challenge.js.map +1 -1
  6. package/dist/Constants.d.ts +46 -0
  7. package/dist/Constants.d.ts.map +1 -0
  8. package/dist/Constants.js +46 -0
  9. package/dist/Constants.js.map +1 -0
  10. package/dist/Credential.d.ts.map +1 -1
  11. package/dist/Credential.js +5 -4
  12. package/dist/Credential.js.map +1 -1
  13. package/dist/Mcp.d.ts +3 -0
  14. package/dist/Mcp.d.ts.map +1 -1
  15. package/dist/Mcp.js +2 -0
  16. package/dist/Mcp.js.map +1 -1
  17. package/dist/Method.d.ts +32 -4
  18. package/dist/Method.d.ts.map +1 -1
  19. package/dist/Method.js +5 -2
  20. package/dist/Method.js.map +1 -1
  21. package/dist/PaymentRequest.d.ts +10 -10
  22. package/dist/PaymentRequest.js +8 -8
  23. package/dist/Receipt.d.ts.map +1 -1
  24. package/dist/Receipt.js +3 -2
  25. package/dist/Receipt.js.map +1 -1
  26. package/dist/cli/cli.d.ts.map +1 -1
  27. package/dist/cli/cli.js +19 -11
  28. package/dist/cli/cli.js.map +1 -1
  29. package/dist/cli/plugins/tempo.d.ts.map +1 -1
  30. package/dist/cli/plugins/tempo.js +17 -6
  31. package/dist/cli/plugins/tempo.js.map +1 -1
  32. package/dist/cli/utils.d.ts +5 -0
  33. package/dist/cli/utils.d.ts.map +1 -1
  34. package/dist/cli/utils.js +10 -0
  35. package/dist/cli/utils.js.map +1 -1
  36. package/dist/client/Methods.d.ts +5 -2
  37. package/dist/client/Methods.d.ts.map +1 -1
  38. package/dist/client/Methods.js +5 -2
  39. package/dist/client/Methods.js.map +1 -1
  40. package/dist/client/Mppx.js +2 -2
  41. package/dist/client/Mppx.js.map +1 -1
  42. package/dist/client/Transport.d.ts +11 -16
  43. package/dist/client/Transport.d.ts.map +1 -1
  44. package/dist/client/Transport.js +55 -76
  45. package/dist/client/Transport.js.map +1 -1
  46. package/dist/client/index.d.ts +5 -1
  47. package/dist/client/index.d.ts.map +1 -1
  48. package/dist/client/index.js +3 -1
  49. package/dist/client/index.js.map +1 -1
  50. package/dist/client/internal/Fetch.d.ts.map +1 -1
  51. package/dist/client/internal/Fetch.js +60 -13
  52. package/dist/client/internal/Fetch.js.map +1 -1
  53. package/dist/client/internal/protocols/Mcp.d.ts +7 -0
  54. package/dist/client/internal/protocols/Mcp.d.ts.map +1 -0
  55. package/dist/client/internal/protocols/Mcp.js +159 -0
  56. package/dist/client/internal/protocols/Mcp.js.map +1 -0
  57. package/dist/client/internal/protocols/Mpp.d.ts +4 -0
  58. package/dist/client/internal/protocols/Mpp.d.ts.map +1 -0
  59. package/dist/client/internal/protocols/Mpp.js +18 -0
  60. package/dist/client/internal/protocols/Mpp.js.map +1 -0
  61. package/dist/client/internal/protocols/Protocol.d.ts +10 -0
  62. package/dist/client/internal/protocols/Protocol.d.ts.map +1 -0
  63. package/dist/client/internal/protocols/Protocol.js +2 -0
  64. package/dist/client/internal/protocols/Protocol.js.map +1 -0
  65. package/dist/client/internal/protocols/Shared.d.ts +5 -0
  66. package/dist/client/internal/protocols/Shared.d.ts.map +1 -0
  67. package/dist/client/internal/protocols/Shared.js +20 -0
  68. package/dist/client/internal/protocols/Shared.js.map +1 -0
  69. package/dist/client/internal/protocols/X402.d.ts +8 -0
  70. package/dist/client/internal/protocols/X402.d.ts.map +1 -0
  71. package/dist/client/internal/protocols/X402.js +39 -0
  72. package/dist/client/internal/protocols/X402.js.map +1 -0
  73. package/dist/evm/client/index.d.ts +1 -0
  74. package/dist/evm/client/index.d.ts.map +1 -1
  75. package/dist/evm/client/index.js +1 -0
  76. package/dist/evm/client/index.js.map +1 -1
  77. package/dist/evm/index.d.ts +2 -0
  78. package/dist/evm/index.d.ts.map +1 -1
  79. package/dist/evm/index.js +2 -0
  80. package/dist/evm/index.js.map +1 -1
  81. package/dist/evm/server/Methods.d.ts +1 -1
  82. package/dist/evm/server/Methods.d.ts.map +1 -1
  83. package/dist/evm/server/index.d.ts +1 -0
  84. package/dist/evm/server/index.d.ts.map +1 -1
  85. package/dist/evm/server/index.js +1 -0
  86. package/dist/evm/server/index.js.map +1 -1
  87. package/dist/index.d.ts +1 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +1 -0
  90. package/dist/index.js.map +1 -1
  91. package/dist/internal/AcceptPayment.d.ts +3 -0
  92. package/dist/internal/AcceptPayment.d.ts.map +1 -1
  93. package/dist/internal/AcceptPayment.js +15 -11
  94. package/dist/internal/AcceptPayment.js.map +1 -1
  95. package/dist/mcp/client/McpClient.d.ts +101 -0
  96. package/dist/mcp/client/McpClient.d.ts.map +1 -0
  97. package/dist/mcp/client/McpClient.js +162 -0
  98. package/dist/mcp/client/McpClient.js.map +1 -0
  99. package/dist/mcp/client/index.d.ts.map +1 -0
  100. package/dist/mcp/client/index.js.map +1 -0
  101. package/dist/mcp/server/Transport.d.ts.map +1 -0
  102. package/dist/mcp/server/Transport.js.map +1 -0
  103. package/dist/mcp/server/index.d.ts.map +1 -0
  104. package/dist/mcp/server/index.js.map +1 -0
  105. package/dist/server/Mppx.d.ts +12 -4
  106. package/dist/server/Mppx.d.ts.map +1 -1
  107. package/dist/server/Mppx.js +85 -27
  108. package/dist/server/Mppx.js.map +1 -1
  109. package/dist/server/Response.d.ts.map +1 -1
  110. package/dist/server/Response.js +2 -1
  111. package/dist/server/Response.js.map +1 -1
  112. package/dist/server/Transport.d.ts +1 -1
  113. package/dist/server/Transport.d.ts.map +1 -1
  114. package/dist/server/Transport.js +5 -4
  115. package/dist/server/Transport.js.map +1 -1
  116. package/dist/server/index.d.ts +1 -0
  117. package/dist/server/index.d.ts.map +1 -1
  118. package/dist/server/index.js +1 -0
  119. package/dist/server/index.js.map +1 -1
  120. package/dist/stripe/client/Charge.d.ts +1 -1
  121. package/dist/stripe/client/Charge.d.ts.map +1 -1
  122. package/dist/stripe/client/Charge.js +3 -1
  123. package/dist/stripe/client/Charge.js.map +1 -1
  124. package/dist/stripe/server/Charge.d.ts +1 -1
  125. package/dist/stripe/server/Charge.d.ts.map +1 -1
  126. package/dist/stripe/server/Charge.js +9 -2
  127. package/dist/stripe/server/Charge.js.map +1 -1
  128. package/dist/stripe/server/Methods.d.ts +1 -1
  129. package/dist/stripe/server/Methods.d.ts.map +1 -1
  130. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  131. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  132. package/dist/stripe/server/internal/html.gen.js +1 -1
  133. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  134. package/dist/tempo/Methods.d.ts +18 -0
  135. package/dist/tempo/Methods.d.ts.map +1 -1
  136. package/dist/tempo/Methods.js +16 -1
  137. package/dist/tempo/Methods.js.map +1 -1
  138. package/dist/tempo/Proof.d.ts +85 -1
  139. package/dist/tempo/Proof.d.ts.map +1 -1
  140. package/dist/tempo/Proof.js +35 -0
  141. package/dist/tempo/Proof.js.map +1 -1
  142. package/dist/tempo/client/Charge.d.ts +19 -1
  143. package/dist/tempo/client/Charge.d.ts.map +1 -1
  144. package/dist/tempo/client/Charge.js +47 -27
  145. package/dist/tempo/client/Charge.js.map +1 -1
  146. package/dist/tempo/client/Methods.d.ts +41 -10
  147. package/dist/tempo/client/Methods.d.ts.map +1 -1
  148. package/dist/tempo/client/Methods.js +16 -7
  149. package/dist/tempo/client/Methods.js.map +1 -1
  150. package/dist/tempo/client/ResolveAccount.d.ts +40 -0
  151. package/dist/tempo/client/ResolveAccount.d.ts.map +1 -0
  152. package/dist/tempo/client/ResolveAccount.js +2 -0
  153. package/dist/tempo/client/ResolveAccount.js.map +1 -0
  154. package/dist/tempo/client/index.d.ts +7 -4
  155. package/dist/tempo/client/index.d.ts.map +1 -1
  156. package/dist/tempo/client/index.js +5 -3
  157. package/dist/tempo/client/index.js.map +1 -1
  158. package/dist/tempo/index.d.ts +1 -0
  159. package/dist/tempo/index.d.ts.map +1 -1
  160. package/dist/tempo/index.js +1 -0
  161. package/dist/tempo/index.js.map +1 -1
  162. package/dist/tempo/internal/fee-payer.d.ts +29 -1
  163. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  164. package/dist/tempo/internal/fee-payer.js +138 -4
  165. package/dist/tempo/internal/fee-payer.js.map +1 -1
  166. package/dist/tempo/internal/proof.d.ts +71 -5
  167. package/dist/tempo/internal/proof.d.ts.map +1 -1
  168. package/dist/tempo/internal/proof.js +42 -6
  169. package/dist/tempo/internal/proof.js.map +1 -1
  170. package/dist/tempo/{client → legacy/client}/ChannelOps.d.ts +19 -6
  171. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +1 -0
  172. package/dist/tempo/{client → legacy/client}/ChannelOps.js +9 -3
  173. package/dist/tempo/legacy/client/ChannelOps.js.map +1 -0
  174. package/dist/tempo/{client → legacy/client}/Session.d.ts +23 -4
  175. package/dist/tempo/legacy/client/Session.d.ts.map +1 -0
  176. package/dist/tempo/{client → legacy/client}/Session.js +14 -7
  177. package/dist/tempo/legacy/client/Session.js.map +1 -0
  178. package/dist/tempo/{client → legacy/client}/SessionManager.d.ts +20 -5
  179. package/dist/tempo/legacy/client/SessionManager.d.ts.map +1 -0
  180. package/dist/tempo/{client → legacy/client}/SessionManager.js +30 -19
  181. package/dist/tempo/legacy/client/SessionManager.js.map +1 -0
  182. package/dist/tempo/legacy/client/index.d.ts +7 -0
  183. package/dist/tempo/legacy/client/index.d.ts.map +1 -0
  184. package/dist/tempo/legacy/client/index.js +5 -0
  185. package/dist/tempo/legacy/client/index.js.map +1 -0
  186. package/dist/tempo/legacy/index.d.ts +7 -0
  187. package/dist/tempo/legacy/index.d.ts.map +1 -0
  188. package/dist/tempo/legacy/index.js +7 -0
  189. package/dist/tempo/legacy/index.js.map +1 -0
  190. package/dist/tempo/{server → legacy/server}/Session.d.ts +28 -11
  191. package/dist/tempo/legacy/server/Session.d.ts.map +1 -0
  192. package/dist/tempo/{server → legacy/server}/Session.js +12 -10
  193. package/dist/tempo/legacy/server/Session.js.map +1 -0
  194. package/dist/tempo/legacy/server/index.d.ts +5 -0
  195. package/dist/tempo/legacy/server/index.d.ts.map +1 -0
  196. package/dist/tempo/legacy/server/index.js +5 -0
  197. package/dist/tempo/legacy/server/index.js.map +1 -0
  198. package/dist/tempo/{session → legacy/session}/Chain.d.ts +30 -23
  199. package/dist/tempo/legacy/session/Chain.d.ts.map +1 -0
  200. package/dist/tempo/{session → legacy/session}/Chain.js +12 -11
  201. package/dist/tempo/legacy/session/Chain.js.map +1 -0
  202. package/dist/tempo/{session → legacy/session}/Channel.d.ts +1 -0
  203. package/dist/tempo/legacy/session/Channel.d.ts.map +1 -0
  204. package/dist/tempo/legacy/session/Channel.js.map +1 -0
  205. package/dist/tempo/legacy/session/ChannelStore.d.ts +22 -0
  206. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +1 -0
  207. package/dist/tempo/legacy/session/ChannelStore.js +6 -0
  208. package/dist/tempo/legacy/session/ChannelStore.js.map +1 -0
  209. package/dist/tempo/legacy/session/Types.d.ts +73 -0
  210. package/dist/tempo/legacy/session/Types.d.ts.map +1 -0
  211. package/dist/tempo/legacy/session/Types.js.map +1 -0
  212. package/dist/tempo/{session → legacy/session}/Voucher.d.ts +4 -4
  213. package/dist/tempo/legacy/session/Voucher.d.ts.map +1 -0
  214. package/dist/tempo/{session → legacy/session}/Voucher.js +1 -1
  215. package/dist/tempo/legacy/session/Voucher.js.map +1 -0
  216. package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts +1 -0
  217. package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts.map +1 -1
  218. package/dist/tempo/{session → legacy/session}/escrow.abi.js +1 -0
  219. package/dist/tempo/legacy/session/escrow.abi.js.map +1 -0
  220. package/dist/tempo/legacy/session/index.d.ts +9 -0
  221. package/dist/tempo/legacy/session/index.d.ts.map +1 -0
  222. package/dist/tempo/legacy/session/index.js +9 -0
  223. package/dist/tempo/legacy/session/index.js.map +1 -0
  224. package/dist/tempo/server/Charge.d.ts +1 -1
  225. package/dist/tempo/server/Charge.d.ts.map +1 -1
  226. package/dist/tempo/server/Charge.js +51 -30
  227. package/dist/tempo/server/Charge.js.map +1 -1
  228. package/dist/tempo/server/Methods.d.ts +67 -8
  229. package/dist/tempo/server/Methods.d.ts.map +1 -1
  230. package/dist/tempo/server/Methods.js +40 -10
  231. package/dist/tempo/server/Methods.js.map +1 -1
  232. package/dist/tempo/server/Subscription.d.ts +11 -1
  233. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  234. package/dist/tempo/server/Subscription.js +135 -23
  235. package/dist/tempo/server/Subscription.js.map +1 -1
  236. package/dist/tempo/server/index.d.ts +6 -5
  237. package/dist/tempo/server/index.d.ts.map +1 -1
  238. package/dist/tempo/server/index.js +5 -5
  239. package/dist/tempo/server/index.js.map +1 -1
  240. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  241. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  242. package/dist/tempo/server/internal/html.gen.js +1 -1
  243. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  244. package/dist/tempo/server/internal/request-body.d.ts +7 -2
  245. package/dist/tempo/server/internal/request-body.d.ts.map +1 -1
  246. package/dist/tempo/server/internal/request-body.js +20 -3
  247. package/dist/tempo/server/internal/request-body.js.map +1 -1
  248. package/dist/tempo/server/internal/transport.d.ts +8 -4
  249. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  250. package/dist/tempo/server/internal/transport.js +8 -7
  251. package/dist/tempo/server/internal/transport.js.map +1 -1
  252. package/dist/tempo/session/Snapshot.d.ts +32 -0
  253. package/dist/tempo/session/Snapshot.d.ts.map +1 -0
  254. package/dist/tempo/session/Snapshot.js +37 -0
  255. package/dist/tempo/session/Snapshot.js.map +1 -0
  256. package/dist/tempo/session/client/ChannelOps.d.ts +81 -0
  257. package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -0
  258. package/dist/tempo/session/client/ChannelOps.js +201 -0
  259. package/dist/tempo/session/client/ChannelOps.js.map +1 -0
  260. package/dist/tempo/session/client/ChannelStore.d.ts +51 -0
  261. package/dist/tempo/session/client/ChannelStore.d.ts.map +1 -0
  262. package/dist/tempo/session/client/ChannelStore.js +63 -0
  263. package/dist/tempo/session/client/ChannelStore.js.map +1 -0
  264. package/dist/tempo/session/client/CredentialState.d.ts +245 -0
  265. package/dist/tempo/session/client/CredentialState.d.ts.map +1 -0
  266. package/dist/tempo/session/client/CredentialState.js +419 -0
  267. package/dist/tempo/session/client/CredentialState.js.map +1 -0
  268. package/dist/tempo/session/client/ReceiptCoordinator.d.ts +26 -0
  269. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +1 -0
  270. package/dist/tempo/session/client/ReceiptCoordinator.js +61 -0
  271. package/dist/tempo/session/client/ReceiptCoordinator.js.map +1 -0
  272. package/dist/tempo/session/client/Runtime.d.ts +464 -0
  273. package/dist/tempo/session/client/Runtime.d.ts.map +1 -0
  274. package/dist/tempo/session/client/Runtime.js +499 -0
  275. package/dist/tempo/session/client/Runtime.js.map +1 -0
  276. package/dist/tempo/session/client/Session.d.ts +138 -0
  277. package/dist/tempo/session/client/Session.d.ts.map +1 -0
  278. package/dist/tempo/session/client/Session.js +69 -0
  279. package/dist/tempo/session/client/Session.js.map +1 -0
  280. package/dist/tempo/session/client/SessionManager.d.ts +84 -0
  281. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -0
  282. package/dist/tempo/session/client/SessionManager.js +577 -0
  283. package/dist/tempo/session/client/SessionManager.js.map +1 -0
  284. package/dist/tempo/session/client/Transports.d.ts +449 -0
  285. package/dist/tempo/session/client/Transports.d.ts.map +1 -0
  286. package/dist/tempo/session/client/Transports.js +721 -0
  287. package/dist/tempo/session/client/Transports.js.map +1 -0
  288. package/dist/tempo/session/client/index.d.ts +11 -0
  289. package/dist/tempo/session/client/index.d.ts.map +1 -0
  290. package/dist/tempo/session/client/index.js +6 -0
  291. package/dist/tempo/session/client/index.js.map +1 -0
  292. package/dist/tempo/session/index.d.ts +7 -8
  293. package/dist/tempo/session/index.d.ts.map +1 -1
  294. package/dist/tempo/session/index.js +7 -8
  295. package/dist/tempo/session/index.js.map +1 -1
  296. package/dist/tempo/session/precompile/Chain.d.ts +319 -0
  297. package/dist/tempo/session/precompile/Chain.d.ts.map +1 -0
  298. package/dist/tempo/session/precompile/Chain.js +492 -0
  299. package/dist/tempo/session/precompile/Chain.js.map +1 -0
  300. package/dist/tempo/session/precompile/Channel.d.ts +46 -0
  301. package/dist/tempo/session/precompile/Channel.d.ts.map +1 -0
  302. package/dist/tempo/session/precompile/Channel.js +56 -0
  303. package/dist/tempo/session/precompile/Channel.js.map +1 -0
  304. package/dist/tempo/session/precompile/Protocol.d.ts +308 -0
  305. package/dist/tempo/session/precompile/Protocol.d.ts.map +1 -0
  306. package/dist/tempo/session/precompile/Protocol.js +264 -0
  307. package/dist/tempo/session/precompile/Protocol.js.map +1 -0
  308. package/dist/tempo/session/precompile/Voucher.d.ts +40 -0
  309. package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -0
  310. package/dist/tempo/session/precompile/Voucher.js +125 -0
  311. package/dist/tempo/session/precompile/Voucher.js.map +1 -0
  312. package/dist/tempo/session/precompile/escrow.abi.d.ts +522 -0
  313. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +1 -0
  314. package/dist/tempo/session/precompile/escrow.abi.js +224 -0
  315. package/dist/tempo/session/precompile/escrow.abi.js.map +1 -0
  316. package/dist/tempo/session/precompile/index.d.ts +24 -0
  317. package/dist/tempo/session/precompile/index.d.ts.map +1 -0
  318. package/dist/tempo/session/precompile/index.js +22 -0
  319. package/dist/tempo/session/precompile/index.js.map +1 -0
  320. package/dist/tempo/session/server/ChannelOps.d.ts +56 -0
  321. package/dist/tempo/session/server/ChannelOps.d.ts.map +1 -0
  322. package/dist/tempo/session/server/ChannelOps.js +91 -0
  323. package/dist/tempo/session/server/ChannelOps.js.map +1 -0
  324. package/dist/tempo/session/server/ChannelStore.d.ts +347 -0
  325. package/dist/tempo/session/server/ChannelStore.d.ts.map +1 -0
  326. package/dist/tempo/session/server/ChannelStore.js +404 -0
  327. package/dist/tempo/session/server/ChannelStore.js.map +1 -0
  328. package/dist/tempo/session/server/CredentialVerification.d.ts +85 -0
  329. package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -0
  330. package/dist/tempo/session/server/CredentialVerification.js +494 -0
  331. package/dist/tempo/session/server/CredentialVerification.js.map +1 -0
  332. package/dist/tempo/session/server/MeteredStream.d.ts +40 -0
  333. package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -0
  334. package/dist/tempo/session/server/MeteredStream.js +42 -0
  335. package/dist/tempo/session/server/MeteredStream.js.map +1 -0
  336. package/dist/tempo/session/server/RequestState.d.ts +208 -0
  337. package/dist/tempo/session/server/RequestState.d.ts.map +1 -0
  338. package/dist/tempo/session/server/RequestState.js +252 -0
  339. package/dist/tempo/session/server/RequestState.js.map +1 -0
  340. package/dist/tempo/session/server/Session.d.ts +169 -0
  341. package/dist/tempo/session/server/Session.d.ts.map +1 -0
  342. package/dist/tempo/session/server/Session.js +351 -0
  343. package/dist/tempo/session/server/Session.js.map +1 -0
  344. package/dist/tempo/session/server/Settlement.d.ts +185 -0
  345. package/dist/tempo/session/server/Settlement.d.ts.map +1 -0
  346. package/dist/tempo/session/server/Settlement.js +252 -0
  347. package/dist/tempo/session/server/Settlement.js.map +1 -0
  348. package/dist/tempo/session/{Sse.d.ts → server/Sse.d.ts} +9 -56
  349. package/dist/tempo/session/server/Sse.d.ts.map +1 -0
  350. package/dist/tempo/session/server/Sse.js +184 -0
  351. package/dist/tempo/session/server/Sse.js.map +1 -0
  352. package/dist/tempo/session/server/Transports.d.ts +89 -0
  353. package/dist/tempo/session/server/Transports.d.ts.map +1 -0
  354. package/dist/tempo/session/server/Transports.js +149 -0
  355. package/dist/tempo/session/server/Transports.js.map +1 -0
  356. package/dist/tempo/session/server/Ws.d.ts +48 -0
  357. package/dist/tempo/session/server/Ws.d.ts.map +1 -0
  358. package/dist/tempo/session/server/Ws.js +244 -0
  359. package/dist/tempo/session/server/Ws.js.map +1 -0
  360. package/dist/tempo/session/server/index.d.ts +4 -0
  361. package/dist/tempo/session/server/index.d.ts.map +1 -0
  362. package/dist/tempo/session/server/index.js +2 -0
  363. package/dist/tempo/session/server/index.js.map +1 -0
  364. package/dist/tempo/subscription/KeyAuthorization.d.ts +712 -1
  365. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  366. package/dist/tempo/subscription/Store.d.ts +2 -0
  367. package/dist/tempo/subscription/Store.d.ts.map +1 -1
  368. package/dist/tempo/subscription/Store.js +16 -1
  369. package/dist/tempo/subscription/Store.js.map +1 -1
  370. package/dist/x402/index.d.ts +1 -0
  371. package/dist/x402/index.d.ts.map +1 -1
  372. package/dist/x402/index.js +1 -0
  373. package/dist/x402/index.js.map +1 -1
  374. package/package.json +25 -9
  375. package/src/Challenge.test.ts +40 -0
  376. package/src/Challenge.ts +28 -13
  377. package/src/Constants.ts +58 -0
  378. package/src/Credential.ts +5 -4
  379. package/src/Mcp.ts +4 -0
  380. package/src/Method.ts +46 -5
  381. package/src/PaymentRequest.ts +10 -10
  382. package/src/Receipt.ts +3 -2
  383. package/src/cli/cli.test.ts +38 -43
  384. package/src/cli/cli.ts +23 -10
  385. package/src/cli/mcp.test.ts +21 -7
  386. package/src/cli/plugins/tempo.ts +21 -8
  387. package/src/cli/utils.test.ts +25 -1
  388. package/src/cli/utils.ts +10 -0
  389. package/src/client/Methods.ts +5 -2
  390. package/src/client/Mppx.test-d.ts +31 -1
  391. package/src/client/Mppx.test.ts +76 -1
  392. package/src/client/Mppx.ts +2 -2
  393. package/src/client/Transport.test.ts +225 -178
  394. package/src/client/Transport.ts +77 -84
  395. package/src/client/index.ts +25 -1
  396. package/src/client/internal/Fetch.test.ts +236 -6
  397. package/src/client/internal/Fetch.ts +69 -11
  398. package/src/client/internal/protocols/Mcp.test.ts +220 -0
  399. package/src/client/internal/protocols/Mcp.ts +162 -0
  400. package/src/client/internal/protocols/Mpp.ts +21 -0
  401. package/src/client/internal/protocols/Protocol.ts +10 -0
  402. package/src/client/internal/protocols/Shared.ts +25 -0
  403. package/src/client/internal/protocols/X402.ts +42 -0
  404. package/src/discovery/OpenApi.test.ts +1 -1
  405. package/src/env.d.ts +1 -1
  406. package/src/evm/PublicInterface.test-d.ts +1 -1
  407. package/src/evm/client/index.ts +1 -0
  408. package/src/evm/index.ts +2 -0
  409. package/src/evm/server/Charge.test.ts +1 -1
  410. package/src/evm/server/index.ts +1 -0
  411. package/src/index.ts +1 -0
  412. package/src/internal/AcceptPayment.test.ts +61 -0
  413. package/src/internal/AcceptPayment.ts +21 -14
  414. package/src/{mcp-sdk → mcp}/client/McpClient.integration.test.ts +18 -11
  415. package/src/{mcp-sdk → mcp}/client/McpClient.test-d.ts +45 -11
  416. package/src/{mcp-sdk → mcp}/client/McpClient.test.ts +211 -5
  417. package/src/mcp/client/McpClient.ts +307 -0
  418. package/src/mcp/client/McpClient.unit.test.ts +135 -0
  419. package/src/middlewares/elysia.test.ts +9 -5
  420. package/src/middlewares/express.test.ts +9 -5
  421. package/src/middlewares/hono.test.ts +5 -5
  422. package/src/middlewares/internal/mppx.test.ts +1 -1
  423. package/src/middlewares/nextjs.test.ts +9 -5
  424. package/src/proxy/Proxy.test.ts +9 -9
  425. package/src/proxy/services/anthropic.test.ts +1 -1
  426. package/src/proxy/services/openai.test.ts +1 -1
  427. package/src/proxy/services/stripe.test.ts +1 -1
  428. package/src/server/Mppx.authorize.test.ts +1 -1
  429. package/src/server/Mppx.test-d.ts +55 -1
  430. package/src/server/Mppx.test.ts +220 -9
  431. package/src/server/Mppx.ts +501 -407
  432. package/src/server/Response.ts +2 -1
  433. package/src/server/Transport.test.ts +6 -6
  434. package/src/server/Transport.ts +5 -4
  435. package/src/server/index.ts +1 -0
  436. package/src/stripe/Charge.integration.test.ts +1 -1
  437. package/src/stripe/client/Charge.test.ts +21 -6
  438. package/src/stripe/client/Charge.ts +6 -2
  439. package/src/stripe/server/Charge.test.ts +115 -2
  440. package/src/stripe/server/Charge.ts +13 -2
  441. package/src/stripe/server/internal/html/package.json +1 -1
  442. package/src/stripe/server/internal/html.gen.ts +1 -1
  443. package/src/tempo/AccessKeyAuthorization.test.ts +4 -94
  444. package/src/tempo/Methods.test.ts +45 -17
  445. package/src/tempo/Methods.ts +22 -0
  446. package/src/tempo/Proof.conformance.test.ts +146 -0
  447. package/src/tempo/Proof.test-d.ts +15 -0
  448. package/src/tempo/Proof.ts +52 -1
  449. package/src/tempo/PublicExports.test-d.ts +105 -0
  450. package/src/tempo/Subscription.integration.test.ts +1 -1
  451. package/src/tempo/client/Charge.test.ts +258 -0
  452. package/src/tempo/client/Charge.ts +84 -38
  453. package/src/tempo/client/Methods.ts +22 -8
  454. package/src/tempo/client/ResolveAccount.ts +46 -0
  455. package/src/tempo/client/index.ts +15 -4
  456. package/src/tempo/index.ts +1 -0
  457. package/src/tempo/internal/fee-payer.test.ts +296 -17
  458. package/src/tempo/internal/fee-payer.ts +186 -4
  459. package/src/tempo/internal/fee-token.test.ts +14 -9
  460. package/src/tempo/internal/proof.test.ts +12 -4
  461. package/src/tempo/internal/proof.ts +55 -6
  462. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +162 -0
  463. package/src/tempo/legacy/README.md +9 -0
  464. package/src/tempo/{client → legacy/client}/ChannelOps.test.ts +6 -7
  465. package/src/tempo/{client → legacy/client}/ChannelOps.ts +22 -9
  466. package/src/tempo/{client → legacy/client}/Session.test.ts +51 -9
  467. package/src/tempo/{client → legacy/client}/Session.ts +25 -11
  468. package/src/tempo/{client → legacy/client}/SessionManager.test.ts +81 -9
  469. package/src/tempo/{client → legacy/client}/SessionManager.ts +52 -23
  470. package/src/tempo/legacy/client/index.ts +6 -0
  471. package/src/tempo/legacy/index.ts +6 -0
  472. package/src/tempo/{server → legacy/server}/Session.test.ts +136 -71
  473. package/src/tempo/{server → legacy/server}/Session.ts +32 -23
  474. package/src/tempo/legacy/server/index.ts +4 -0
  475. package/src/tempo/{session → legacy/session}/Chain.test.ts +3 -4
  476. package/src/tempo/{session → legacy/session}/Chain.ts +94 -63
  477. package/src/tempo/{session → legacy/session}/Channel.ts +1 -0
  478. package/src/tempo/legacy/session/ChannelStore.test.ts +58 -0
  479. package/src/tempo/legacy/session/ChannelStore.ts +39 -0
  480. package/src/tempo/legacy/session/Types.ts +91 -0
  481. package/src/tempo/{session → legacy/session}/Voucher.ts +12 -8
  482. package/src/tempo/{session → legacy/session}/escrow.abi.ts +1 -0
  483. package/src/tempo/legacy/session/index.ts +8 -0
  484. package/src/tempo/server/AtomicStore.test-d.ts +16 -11
  485. package/src/tempo/server/Charge.test.ts +480 -31
  486. package/src/tempo/server/Charge.ts +54 -30
  487. package/src/tempo/server/Methods.ts +58 -10
  488. package/src/tempo/server/Sse.test.ts +2 -2
  489. package/src/tempo/server/Subscription.test.ts +465 -3
  490. package/src/tempo/server/Subscription.ts +174 -19
  491. package/src/tempo/server/index.ts +6 -5
  492. package/src/tempo/server/internal/html/package.json +2 -2
  493. package/src/tempo/server/internal/html.gen.ts +1 -1
  494. package/src/tempo/server/internal/request-body.test.ts +37 -4
  495. package/src/tempo/server/internal/request-body.ts +25 -6
  496. package/src/tempo/server/internal/transport.test.ts +4 -4
  497. package/src/tempo/server/internal/transport.ts +19 -10
  498. package/src/tempo/session/Snapshot.test.ts +41 -0
  499. package/src/tempo/session/Snapshot.ts +74 -0
  500. package/src/tempo/session/client/ChannelOps.test.ts +163 -0
  501. package/src/tempo/session/client/ChannelOps.ts +330 -0
  502. package/src/tempo/session/client/ChannelStore.ts +111 -0
  503. package/src/tempo/session/client/CredentialState.test.ts +789 -0
  504. package/src/tempo/session/client/CredentialState.ts +799 -0
  505. package/src/tempo/session/client/ReceiptCoordinator.ts +95 -0
  506. package/src/tempo/session/client/Runtime.test.ts +1092 -0
  507. package/src/tempo/session/client/Runtime.ts +986 -0
  508. package/src/tempo/session/client/Session.test.ts +774 -0
  509. package/src/tempo/session/client/Session.ts +123 -0
  510. package/src/tempo/session/client/SessionManager.test.ts +1397 -0
  511. package/src/tempo/session/client/SessionManager.ts +751 -0
  512. package/src/tempo/session/client/Transports.test.ts +837 -0
  513. package/src/tempo/session/client/Transports.ts +1292 -0
  514. package/src/tempo/session/client/index.ts +40 -0
  515. package/src/tempo/session/index.ts +7 -8
  516. package/src/tempo/session/precompile/Chain.integration.test.ts +321 -0
  517. package/src/tempo/session/precompile/Chain.test.ts +1258 -0
  518. package/src/tempo/session/precompile/Chain.ts +979 -0
  519. package/src/tempo/session/precompile/Channel.test.ts +138 -0
  520. package/src/tempo/session/precompile/Channel.ts +103 -0
  521. package/src/tempo/session/precompile/Protocol.test.ts +358 -0
  522. package/src/tempo/session/precompile/Protocol.ts +520 -0
  523. package/src/tempo/session/precompile/Voucher.test.ts +354 -0
  524. package/src/tempo/session/precompile/Voucher.ts +162 -0
  525. package/src/tempo/session/precompile/escrow.abi.ts +226 -0
  526. package/src/tempo/session/precompile/index.ts +33 -0
  527. package/src/tempo/session/server/ChannelOps.test.ts +129 -0
  528. package/src/tempo/session/server/ChannelOps.ts +157 -0
  529. package/src/tempo/session/{ChannelStore.test.ts → server/ChannelStore.test.ts} +536 -29
  530. package/src/tempo/session/server/ChannelStore.ts +835 -0
  531. package/src/tempo/session/server/CredentialVerification.test.ts +146 -0
  532. package/src/tempo/session/server/CredentialVerification.ts +710 -0
  533. package/src/tempo/session/server/MeteredStream.ts +88 -0
  534. package/src/tempo/session/server/RequestState.test.ts +531 -0
  535. package/src/tempo/session/server/RequestState.ts +499 -0
  536. package/src/tempo/session/server/Session.integration.test.ts +444 -0
  537. package/src/tempo/session/server/Session.test.ts +3253 -0
  538. package/src/tempo/session/server/Session.ts +543 -0
  539. package/src/tempo/session/server/Settlement.test.ts +329 -0
  540. package/src/tempo/session/server/Settlement.ts +471 -0
  541. package/src/tempo/session/{Sse.test.ts → server/Sse.test.ts} +37 -3
  542. package/src/tempo/session/server/Sse.ts +254 -0
  543. package/src/tempo/session/server/Transports.test.ts +346 -0
  544. package/src/tempo/session/server/Transports.ts +255 -0
  545. package/src/tempo/session/{Ws.test.ts → server/Ws.test.ts} +4 -4
  546. package/src/tempo/session/server/Ws.ts +380 -0
  547. package/src/tempo/session/server/index.ts +8 -0
  548. package/src/tempo/subscription/Store.ts +27 -9
  549. package/src/x402/Exact.e2e.test.ts +1 -1
  550. package/src/x402/PublicInterface.test-d.ts +1 -1
  551. package/src/x402/index.ts +1 -0
  552. package/dist/mcp-sdk/client/McpClient.d.ts +0 -78
  553. package/dist/mcp-sdk/client/McpClient.d.ts.map +0 -1
  554. package/dist/mcp-sdk/client/McpClient.js +0 -105
  555. package/dist/mcp-sdk/client/McpClient.js.map +0 -1
  556. package/dist/mcp-sdk/client/index.d.ts.map +0 -1
  557. package/dist/mcp-sdk/client/index.js.map +0 -1
  558. package/dist/mcp-sdk/server/Transport.d.ts.map +0 -1
  559. package/dist/mcp-sdk/server/Transport.js.map +0 -1
  560. package/dist/mcp-sdk/server/index.d.ts.map +0 -1
  561. package/dist/mcp-sdk/server/index.js.map +0 -1
  562. package/dist/tempo/client/ChannelOps.d.ts.map +0 -1
  563. package/dist/tempo/client/ChannelOps.js.map +0 -1
  564. package/dist/tempo/client/Session.d.ts.map +0 -1
  565. package/dist/tempo/client/Session.js.map +0 -1
  566. package/dist/tempo/client/SessionManager.d.ts.map +0 -1
  567. package/dist/tempo/client/SessionManager.js.map +0 -1
  568. package/dist/tempo/server/Session.d.ts.map +0 -1
  569. package/dist/tempo/server/Session.js.map +0 -1
  570. package/dist/tempo/session/Chain.d.ts.map +0 -1
  571. package/dist/tempo/session/Chain.js.map +0 -1
  572. package/dist/tempo/session/Channel.d.ts.map +0 -1
  573. package/dist/tempo/session/Channel.js.map +0 -1
  574. package/dist/tempo/session/ChannelStore.d.ts +0 -117
  575. package/dist/tempo/session/ChannelStore.d.ts.map +0 -1
  576. package/dist/tempo/session/ChannelStore.js +0 -172
  577. package/dist/tempo/session/ChannelStore.js.map +0 -1
  578. package/dist/tempo/session/Receipt.d.ts +0 -22
  579. package/dist/tempo/session/Receipt.d.ts.map +0 -1
  580. package/dist/tempo/session/Receipt.js +0 -34
  581. package/dist/tempo/session/Receipt.js.map +0 -1
  582. package/dist/tempo/session/Sse.d.ts.map +0 -1
  583. package/dist/tempo/session/Sse.js +0 -363
  584. package/dist/tempo/session/Sse.js.map +0 -1
  585. package/dist/tempo/session/Types.d.ts +0 -78
  586. package/dist/tempo/session/Types.d.ts.map +0 -1
  587. package/dist/tempo/session/Types.js.map +0 -1
  588. package/dist/tempo/session/Voucher.d.ts.map +0 -1
  589. package/dist/tempo/session/Voucher.js.map +0 -1
  590. package/dist/tempo/session/Ws.d.ts +0 -87
  591. package/dist/tempo/session/Ws.d.ts.map +0 -1
  592. package/dist/tempo/session/Ws.js +0 -443
  593. package/dist/tempo/session/Ws.js.map +0 -1
  594. package/dist/tempo/session/escrow.abi.js.map +0 -1
  595. package/src/mcp-sdk/client/McpClient.ts +0 -196
  596. package/src/tempo/session/ChannelStore.ts +0 -308
  597. package/src/tempo/session/Receipt.test.ts +0 -89
  598. package/src/tempo/session/Receipt.ts +0 -46
  599. package/src/tempo/session/Sse.ts +0 -462
  600. package/src/tempo/session/Types.ts +0 -86
  601. package/src/tempo/session/Ws.ts +0 -576
  602. /package/dist/{mcp-sdk → mcp}/client/index.d.ts +0 -0
  603. /package/dist/{mcp-sdk → mcp}/client/index.js +0 -0
  604. /package/dist/{mcp-sdk → mcp}/server/Transport.d.ts +0 -0
  605. /package/dist/{mcp-sdk → mcp}/server/Transport.js +0 -0
  606. /package/dist/{mcp-sdk → mcp}/server/index.d.ts +0 -0
  607. /package/dist/{mcp-sdk → mcp}/server/index.js +0 -0
  608. /package/dist/tempo/{session → legacy/session}/Channel.js +0 -0
  609. /package/dist/tempo/{session → legacy/session}/Types.js +0 -0
  610. /package/src/{mcp-sdk → mcp}/client/index.ts +0 -0
  611. /package/src/{mcp-sdk → mcp}/server/Transport.test.ts +0 -0
  612. /package/src/{mcp-sdk → mcp}/server/Transport.ts +0 -0
  613. /package/src/{mcp-sdk → mcp}/server/index.ts +0 -0
  614. /package/src/tempo/{session → legacy/session}/Channel.test.ts +0 -0
  615. /package/src/tempo/{session → legacy/session}/Voucher.test.ts +0 -0
  616. /package/src/tempo/session/{Sse.fuzz.test.ts → server/Sse.fuzz.test.ts} +0 -0
@@ -21,10 +21,8 @@ import { waitForTransactionReceipt } from 'viem/actions'
21
21
  import { Account as TempoAccount, Actions, Addresses } from 'viem/tempo'
22
22
  import { beforeAll, beforeEach, describe, expect, expectTypeOf, test } from 'vp/test'
23
23
  import { WebSocketServer } from 'ws'
24
- import { nodeEnv } from '~test/config.js'
24
+ import { tempoNetwork } from '~test/config.js'
25
25
  import * as Http from '~test/Http.js'
26
-
27
- const isLocalnet = nodeEnv === 'localnet'
28
26
  import {
29
27
  closeChannelOnChain,
30
28
  deployEscrow,
@@ -32,7 +30,7 @@ import {
32
30
  signOpenChannel,
33
31
  signTopUpChannel,
34
32
  topUpChannel,
35
- } from '~test/tempo/session.js'
33
+ } from '~test/tempo/legacy/session.js'
36
34
  import { accounts, asset, chain, client, fundAccount, http } from '~test/tempo/viem.js'
37
35
 
38
36
  import {
@@ -40,21 +38,22 @@ import {
40
38
  ChannelNotFoundError,
41
39
  InsufficientBalanceError,
42
40
  InvalidSignatureError,
43
- } from '../../Errors.js'
44
- import * as NodeRequest from '../../server/Request.js'
45
- import * as Store from '../../Store.js'
46
- import { sessionManager } from '../client/SessionManager.js'
41
+ } from '../../../Errors.js'
42
+ import * as NodeRequest from '../../../server/Request.js'
43
+ import * as Store from '../../../Store.js'
47
44
  import {
48
45
  chainId as chainIdDefaults,
49
46
  escrowContract as escrowContractDefaults,
50
- } from '../internal/defaults.js'
51
- import type * as Methods from '../Methods.js'
47
+ } from '../../internal/defaults.js'
48
+ import type * as Methods from '../../Methods.js'
49
+ import { deserializeSessionReceipt } from '../../session/precompile/Protocol.js'
50
+ import { serializeSessionReceipt } from '../../session/precompile/Protocol.js'
51
+ import type { SessionReceipt } from '../../session/precompile/Protocol.js'
52
+ import * as TempoWs from '../../session/server/Ws.js'
53
+ import { sessionManager } from '../client/SessionManager.js'
52
54
  import * as ChannelStore from '../session/ChannelStore.js'
53
- import { deserializeSessionReceipt } from '../session/Receipt.js'
54
- import { serializeSessionReceipt } from '../session/Receipt.js'
55
- import type { SessionCredentialPayload, SessionReceipt } from '../session/Types.js'
55
+ import type { LegacySessionCredentialPayload } from '../session/Types.js'
56
56
  import { signVoucher } from '../session/Voucher.js'
57
- import * as TempoWs from '../session/Ws.js'
58
57
  import { charge, session, settle } from './Session.js'
59
58
 
60
59
  const payer = accounts[2]
@@ -62,6 +61,7 @@ const delegatedSigner = accounts[4]
62
61
  const recipientAccount = accounts[0]
63
62
  const recipient = accounts[0].address
64
63
  const currency = asset
64
+ const isLocalnet = tempoNetwork === 'localnet'
65
65
 
66
66
  let escrowContract: Address
67
67
  let saltCounter = 0
@@ -112,7 +112,7 @@ describe.runIf(isLocalnet)('session', () => {
112
112
  function createHandler(overrides: Partial<session.Parameters> = {}) {
113
113
  return Mppx_server.create({
114
114
  methods: [
115
- tempo_server.session({
115
+ tempo_server.sessionLegacy({
116
116
  store: rawStore,
117
117
  getClient: () => client,
118
118
  account: recipientAccount,
@@ -123,7 +123,7 @@ describe.runIf(isLocalnet)('session', () => {
123
123
  } as session.Parameters),
124
124
  ],
125
125
  realm: 'api.example.com',
126
- secretKey: 'secret',
126
+ secretKey: 'test-secret-key-test-secret-key-32',
127
127
  })
128
128
  }
129
129
 
@@ -2285,7 +2285,7 @@ describe.runIf(isLocalnet)('session', () => {
2285
2285
  })
2286
2286
  }
2287
2287
 
2288
- const credential = Credential.deserialize<SessionCredentialPayload>(authorization)
2288
+ const credential = Credential.deserialize<LegacySessionCredentialPayload>(authorization)
2289
2289
  if (credential.payload.action === 'open') {
2290
2290
  return new Response('ok', {
2291
2291
  status: 200,
@@ -3473,6 +3473,71 @@ describe.runIf(isLocalnet)('session', () => {
3473
3473
  expect(persisted?.finalized).toBe(true)
3474
3474
  })
3475
3475
 
3476
+ test('sessionManager closes at accepted cumulative when HTTP receipt spent is per-request delta', async () => {
3477
+ const handler = createHandler()
3478
+ const route = handler.session({
3479
+ amount: '1',
3480
+ decimals: 6,
3481
+ unitType: 'token',
3482
+ })
3483
+
3484
+ let lastAcceptedCumulative = 0n
3485
+ const fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
3486
+ const request = new Request(input, init)
3487
+ const result = await route(request)
3488
+ if (result.status === 402) return result.challenge
3489
+
3490
+ const response = result.withReceipt(new Response('ok'))
3491
+ const receiptHeader = response.headers.get('Payment-Receipt')
3492
+ if (!receiptHeader) return response
3493
+
3494
+ const receipt = deserializeSessionReceipt(receiptHeader)
3495
+ if (
3496
+ Credential.fromRequest<LegacySessionCredentialPayload>(request).payload?.action ===
3497
+ 'close'
3498
+ ) {
3499
+ return response
3500
+ }
3501
+
3502
+ const acceptedCumulative = BigInt(receipt.acceptedCumulative)
3503
+ const delta = acceptedCumulative - lastAcceptedCumulative
3504
+ lastAcceptedCumulative = acceptedCumulative
3505
+ return new Response(response.body, {
3506
+ status: response.status,
3507
+ statusText: response.statusText,
3508
+ headers: {
3509
+ 'Payment-Receipt': serializeSessionReceipt({
3510
+ ...receipt,
3511
+ spent: delta.toString(),
3512
+ }),
3513
+ },
3514
+ })
3515
+ }
3516
+
3517
+ const manager = sessionManager({
3518
+ account: payer,
3519
+ client,
3520
+ escrowContract,
3521
+ fetch,
3522
+ maxDeposit: '3',
3523
+ })
3524
+
3525
+ const first = await manager.fetch('https://api.example.com/resource')
3526
+ expect(first.status).toBe(200)
3527
+ expect(first.receipt?.acceptedCumulative).toBe('1000000')
3528
+ expect(first.receipt?.spent).toBe('1000000')
3529
+
3530
+ const second = await manager.fetch('https://api.example.com/resource')
3531
+ expect(second.status).toBe(200)
3532
+ expect(second.receipt?.acceptedCumulative).toBe('2000000')
3533
+ expect(second.receipt?.spent).toBe('1000000')
3534
+
3535
+ const closeReceipt = await manager.close()
3536
+ expect(closeReceipt?.status).toBe('success')
3537
+ expect(closeReceipt?.acceptedCumulative).toBe('2000000')
3538
+ expect(closeReceipt?.spent).toBe('2000000')
3539
+ })
3540
+
3476
3541
  test('sessionManager rejects receipts that exceed the locally signed voucher', async () => {
3477
3542
  const handler = createHandler()
3478
3543
  const route = handler.session({
@@ -4201,7 +4266,7 @@ describe.runIf(isLocalnet)('session', () => {
4201
4266
  const backingStore = Store.memory()
4202
4267
  const routeHandler = Mppx_server.create({
4203
4268
  methods: [
4204
- tempo_server.session({
4269
+ tempo_server.sessionLegacy({
4205
4270
  store: backingStore,
4206
4271
  getClient: () => client,
4207
4272
  account: recipientAccount,
@@ -4211,7 +4276,7 @@ describe.runIf(isLocalnet)('session', () => {
4211
4276
  }),
4212
4277
  ],
4213
4278
  realm: 'api.example.com',
4214
- secretKey: 'secret',
4279
+ secretKey: 'test-secret-key-test-secret-key-32',
4215
4280
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4216
4281
 
4217
4282
  const fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
@@ -4243,7 +4308,7 @@ describe.runIf(isLocalnet)('session', () => {
4243
4308
  const backingStore = Store.memory()
4244
4309
  const routeHandler = Mppx_server.create({
4245
4310
  methods: [
4246
- tempo_server.session({
4311
+ tempo_server.sessionLegacy({
4247
4312
  store: backingStore,
4248
4313
  getClient: () => client,
4249
4314
  account: recipientAccount,
@@ -4253,7 +4318,7 @@ describe.runIf(isLocalnet)('session', () => {
4253
4318
  }),
4254
4319
  ],
4255
4320
  realm: 'api.example.com',
4256
- secretKey: 'secret',
4321
+ secretKey: 'test-secret-key-test-secret-key-32',
4257
4322
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4258
4323
 
4259
4324
  const fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
@@ -4286,7 +4351,7 @@ describe.runIf(isLocalnet)('session', () => {
4286
4351
  const backingStore = Store.memory()
4287
4352
  const routeHandler = Mppx_server.create({
4288
4353
  methods: [
4289
- tempo_server.session({
4354
+ tempo_server.sessionLegacy({
4290
4355
  store: backingStore,
4291
4356
  getClient: () => client,
4292
4357
  account: recipientAccount,
@@ -4296,7 +4361,7 @@ describe.runIf(isLocalnet)('session', () => {
4296
4361
  }),
4297
4362
  ],
4298
4363
  realm: 'api.example.com',
4299
- secretKey: 'secret',
4364
+ secretKey: 'test-secret-key-test-secret-key-32',
4300
4365
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4301
4366
 
4302
4367
  const fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
@@ -4336,7 +4401,7 @@ describe.runIf(isLocalnet)('session', () => {
4336
4401
  const backingStore = Store.memory()
4337
4402
  const routeHandler = Mppx_server.create({
4338
4403
  methods: [
4339
- tempo_server.session({
4404
+ tempo_server.sessionLegacy({
4340
4405
  store: backingStore,
4341
4406
  getClient: () => client,
4342
4407
  account: recipientAccount,
@@ -4347,7 +4412,7 @@ describe.runIf(isLocalnet)('session', () => {
4347
4412
  }),
4348
4413
  ],
4349
4414
  realm: 'api.example.com',
4350
- secretKey: 'secret',
4415
+ secretKey: 'test-secret-key-test-secret-key-32',
4351
4416
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4352
4417
 
4353
4418
  const fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
@@ -4381,7 +4446,7 @@ describe.runIf(isLocalnet)('session', () => {
4381
4446
  test('behavior: withReceipt accepts async generator and returns Response', async () => {
4382
4447
  const handler = Mppx_server.create({
4383
4448
  methods: [
4384
- tempo_server.session({
4449
+ tempo_server.sessionLegacy({
4385
4450
  account: accounts[0],
4386
4451
  currency: asset,
4387
4452
  escrowContract,
@@ -4390,7 +4455,7 @@ describe.runIf(isLocalnet)('session', () => {
4390
4455
  }),
4391
4456
  ],
4392
4457
  realm: 'api.example.com',
4393
- secretKey: 'secret',
4458
+ secretKey: 'test-secret-key-test-secret-key-32',
4394
4459
  })
4395
4460
 
4396
4461
  const result = await handler.session({
@@ -4401,7 +4466,7 @@ describe.runIf(isLocalnet)('session', () => {
4401
4466
 
4402
4467
  if (result.status === 200) {
4403
4468
  // async generator function should be accepted and return Response
4404
- const response = result.withReceipt(async function* (_stream) {
4469
+ const response = result.withReceipt(async function* (_stream: unknown) {
4405
4470
  yield 'token'
4406
4471
  })
4407
4472
  expectTypeOf(response).toEqualTypeOf<Response>()
@@ -4426,7 +4491,7 @@ describe.runIf(isLocalnet)('session', () => {
4426
4491
  test('behavior: non-SSE session withReceipt only accepts Response', async () => {
4427
4492
  const handler = Mppx_server.create({
4428
4493
  methods: [
4429
- tempo_server.session({
4494
+ tempo_server.sessionLegacy({
4430
4495
  account: accounts[0],
4431
4496
  currency: asset,
4432
4497
  escrowContract,
@@ -4434,7 +4499,7 @@ describe.runIf(isLocalnet)('session', () => {
4434
4499
  }),
4435
4500
  ],
4436
4501
  realm: 'api.example.com',
4437
- secretKey: 'secret',
4502
+ secretKey: 'test-secret-key-test-secret-key-32',
4438
4503
  })
4439
4504
 
4440
4505
  const result = await handler.session({
@@ -4453,7 +4518,7 @@ describe.runIf(isLocalnet)('session', () => {
4453
4518
  const backingStore = Store.memory()
4454
4519
  const routeHandler = Mppx_server.create({
4455
4520
  methods: [
4456
- tempo_server.session({
4521
+ tempo_server.sessionLegacy({
4457
4522
  store: backingStore,
4458
4523
  getClient: () => client,
4459
4524
  account: recipientAccount,
@@ -4464,7 +4529,7 @@ describe.runIf(isLocalnet)('session', () => {
4464
4529
  }),
4465
4530
  ],
4466
4531
  realm: 'api.example.com',
4467
- secretKey: 'secret',
4532
+ secretKey: 'test-secret-key-test-secret-key-32',
4468
4533
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4469
4534
 
4470
4535
  let voucherPosts = 0
@@ -4488,7 +4553,7 @@ describe.runIf(isLocalnet)('session', () => {
4488
4553
  }
4489
4554
 
4490
4555
  if (request.headers.get('Accept')?.includes('text/event-stream')) {
4491
- return result.withReceipt(async function* (stream) {
4556
+ return result.withReceipt(async function* (stream: { charge(): Promise<void> }) {
4492
4557
  await stream.charge()
4493
4558
  yield 'chunk-1'
4494
4559
  await stream.charge()
@@ -4531,7 +4596,7 @@ describe.runIf(isLocalnet)('session', () => {
4531
4596
  const backingStore = Store.memory()
4532
4597
  const routeHandler = Mppx_server.create({
4533
4598
  methods: [
4534
- tempo_server.session({
4599
+ tempo_server.sessionLegacy({
4535
4600
  store: backingStore,
4536
4601
  getClient: () => client,
4537
4602
  account: recipientAccount,
@@ -4542,7 +4607,7 @@ describe.runIf(isLocalnet)('session', () => {
4542
4607
  }),
4543
4608
  ],
4544
4609
  realm: 'api.example.com',
4545
- secretKey: 'secret',
4610
+ secretKey: 'test-secret-key-test-secret-key-32',
4546
4611
  }).session({ amount: '1', decimals: 6, unitType: 'request' })
4547
4612
 
4548
4613
  let voucherPosts = 0
@@ -4616,7 +4681,7 @@ describe.runIf(isLocalnet)('session', () => {
4616
4681
  const backingStore = Store.memory()
4617
4682
  const route = Mppx_server.create({
4618
4683
  methods: [
4619
- tempo_server.session({
4684
+ tempo_server.sessionLegacy({
4620
4685
  store: backingStore,
4621
4686
  getClient: () => client,
4622
4687
  account: recipientAccount,
@@ -4627,7 +4692,7 @@ describe.runIf(isLocalnet)('session', () => {
4627
4692
  }),
4628
4693
  ],
4629
4694
  realm: 'api.example.com',
4630
- secretKey: 'secret',
4695
+ secretKey: 'test-secret-key-test-secret-key-32',
4631
4696
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4632
4697
 
4633
4698
  const { channelId, serializedTransaction } = await createSignedOpenTransaction(10000000n)
@@ -4699,7 +4764,7 @@ describe.runIf(isLocalnet)('session', () => {
4699
4764
  const backingStore = Store.memory()
4700
4765
  const routeHandler = Mppx_server.create({
4701
4766
  methods: [
4702
- tempo_server.session({
4767
+ tempo_server.sessionLegacy({
4703
4768
  store: backingStore,
4704
4769
  getClient: () => client,
4705
4770
  account: recipientAccount,
@@ -4710,7 +4775,7 @@ describe.runIf(isLocalnet)('session', () => {
4710
4775
  }),
4711
4776
  ],
4712
4777
  realm: 'api.example.com',
4713
- secretKey: 'secret',
4778
+ secretKey: 'test-secret-key-test-secret-key-32',
4714
4779
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4715
4780
 
4716
4781
  let voucherPosts = 0
@@ -4734,7 +4799,7 @@ describe.runIf(isLocalnet)('session', () => {
4734
4799
  }
4735
4800
 
4736
4801
  if (request.headers.get('Accept')?.includes('text/event-stream')) {
4737
- return result.withReceipt(async function* (stream) {
4802
+ return result.withReceipt(async function* (stream: { charge(): Promise<void> }) {
4738
4803
  await stream.charge()
4739
4804
  yield 'chunk-1'
4740
4805
  await stream.charge()
@@ -4773,7 +4838,7 @@ describe.runIf(isLocalnet)('session', () => {
4773
4838
  const backingStore = Store.memory()
4774
4839
  const routeHandler = Mppx_server.create({
4775
4840
  methods: [
4776
- tempo_server.session({
4841
+ tempo_server.sessionLegacy({
4777
4842
  store: backingStore,
4778
4843
  getClient: () => client,
4779
4844
  account: recipientAccount,
@@ -4784,7 +4849,7 @@ describe.runIf(isLocalnet)('session', () => {
4784
4849
  }),
4785
4850
  ],
4786
4851
  realm: 'api.example.com',
4787
- secretKey: 'secret',
4852
+ secretKey: 'test-secret-key-test-secret-key-32',
4788
4853
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4789
4854
 
4790
4855
  const fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
@@ -4793,7 +4858,7 @@ describe.runIf(isLocalnet)('session', () => {
4793
4858
  if (result.status === 402) return result.challenge
4794
4859
 
4795
4860
  if (request.headers.get('Accept')?.includes('text/event-stream')) {
4796
- return result.withReceipt(async function* (stream) {
4861
+ return result.withReceipt(async function* (stream: { charge(): Promise<void> }) {
4797
4862
  await stream.charge()
4798
4863
  yield 'chunk-1'
4799
4864
  await stream.charge()
@@ -4825,7 +4890,7 @@ describe.runIf(isLocalnet)('session', () => {
4825
4890
  const handler = Mppx_server.create({
4826
4891
  methods: [tempo_server.charge({ account: accounts[0], currency: asset })],
4827
4892
  realm: 'api.example.com',
4828
- secretKey: 'secret',
4893
+ secretKey: 'test-secret-key-test-secret-key-32',
4829
4894
  })
4830
4895
 
4831
4896
  const result = await handler.charge({
@@ -4845,7 +4910,7 @@ describe.runIf(isLocalnet)('session', () => {
4845
4910
  const backingStore = Store.memory()
4846
4911
  const routeHandler = Mppx_server.create({
4847
4912
  methods: [
4848
- tempo_server.session({
4913
+ tempo_server.sessionLegacy({
4849
4914
  store: backingStore,
4850
4915
  getClient: () => client,
4851
4916
  account: recipientAccount,
@@ -4855,7 +4920,7 @@ describe.runIf(isLocalnet)('session', () => {
4855
4920
  }),
4856
4921
  ],
4857
4922
  realm: 'api.example.com',
4858
- secretKey: 'secret',
4923
+ secretKey: 'test-secret-key-test-secret-key-32',
4859
4924
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4860
4925
 
4861
4926
  let voucherUpdates = 0
@@ -4958,7 +5023,7 @@ describe.runIf(isLocalnet)('session', () => {
4958
5023
  const backingStore = Store.memory()
4959
5024
  const routeHandler = Mppx_server.create({
4960
5025
  methods: [
4961
- tempo_server.session({
5026
+ tempo_server.sessionLegacy({
4962
5027
  store: backingStore,
4963
5028
  getClient: () => client,
4964
5029
  account: recipientAccount,
@@ -4968,7 +5033,7 @@ describe.runIf(isLocalnet)('session', () => {
4968
5033
  }),
4969
5034
  ],
4970
5035
  realm: 'api.example.com',
4971
- secretKey: 'secret',
5036
+ secretKey: 'test-secret-key-test-secret-key-32',
4972
5037
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
4973
5038
 
4974
5039
  let voucherUpdates = 0
@@ -5071,7 +5136,7 @@ describe.runIf(isLocalnet)('session', () => {
5071
5136
  const backingStore = Store.memory()
5072
5137
  const routeHandler = Mppx_server.create({
5073
5138
  methods: [
5074
- tempo_server.session({
5139
+ tempo_server.sessionLegacy({
5075
5140
  store: backingStore,
5076
5141
  getClient: () => client,
5077
5142
  account: recipientAccount,
@@ -5081,7 +5146,7 @@ describe.runIf(isLocalnet)('session', () => {
5081
5146
  }),
5082
5147
  ],
5083
5148
  realm: 'api.example.com',
5084
- secretKey: 'secret',
5149
+ secretKey: 'test-secret-key-test-secret-key-32',
5085
5150
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
5086
5151
 
5087
5152
  const route = (request: Request) => routeHandler(request)
@@ -5181,7 +5246,7 @@ describe.runIf(isLocalnet)('session', () => {
5181
5246
  test('rejects websocket receipts bound to a different channel', async () => {
5182
5247
  const routeHandler = Mppx_server.create({
5183
5248
  methods: [
5184
- tempo_server.session({
5249
+ tempo_server.sessionLegacy({
5185
5250
  store: Store.memory(),
5186
5251
  getClient: () => client,
5187
5252
  account: recipientAccount,
@@ -5191,7 +5256,7 @@ describe.runIf(isLocalnet)('session', () => {
5191
5256
  }),
5192
5257
  ],
5193
5258
  realm: 'api.example.com',
5194
- secretKey: 'secret',
5259
+ secretKey: 'test-secret-key-test-secret-key-32',
5195
5260
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
5196
5261
 
5197
5262
  const httpHandler = NodeRequest.toNodeListener(async (request) => {
@@ -5268,7 +5333,7 @@ describe.runIf(isLocalnet)('session', () => {
5268
5333
  const backingStore = Store.memory()
5269
5334
  const routeHandler = Mppx_server.create({
5270
5335
  methods: [
5271
- tempo_server.session({
5336
+ tempo_server.sessionLegacy({
5272
5337
  store: backingStore,
5273
5338
  getClient: () => client,
5274
5339
  account: recipientAccount,
@@ -5278,7 +5343,7 @@ describe.runIf(isLocalnet)('session', () => {
5278
5343
  }),
5279
5344
  ],
5280
5345
  realm: 'api.example.com',
5281
- secretKey: 'secret',
5346
+ secretKey: 'test-secret-key-test-secret-key-32',
5282
5347
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
5283
5348
 
5284
5349
  const route = (request: Request) => routeHandler(request)
@@ -5361,7 +5426,7 @@ describe.runIf(isLocalnet)('session', () => {
5361
5426
  test('rejects close-ready receipts beyond local voucher state', async () => {
5362
5427
  const routeHandler = Mppx_server.create({
5363
5428
  methods: [
5364
- tempo_server.session({
5429
+ tempo_server.sessionLegacy({
5365
5430
  store: Store.memory(),
5366
5431
  getClient: () => client,
5367
5432
  account: recipientAccount,
@@ -5371,7 +5436,7 @@ describe.runIf(isLocalnet)('session', () => {
5371
5436
  }),
5372
5437
  ],
5373
5438
  realm: 'api.example.com',
5374
- secretKey: 'secret',
5439
+ secretKey: 'test-secret-key-test-secret-key-32',
5375
5440
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
5376
5441
 
5377
5442
  const httpHandler = NodeRequest.toNodeListener(async (request) => {
@@ -5470,7 +5535,7 @@ describe.runIf(isLocalnet)('session', () => {
5470
5535
  const backingStore = Store.memory()
5471
5536
  const routeHandler = Mppx_server.create({
5472
5537
  methods: [
5473
- tempo_server.session({
5538
+ tempo_server.sessionLegacy({
5474
5539
  store: backingStore,
5475
5540
  getClient: () => client,
5476
5541
  account: recipientAccount,
@@ -5480,7 +5545,7 @@ describe.runIf(isLocalnet)('session', () => {
5480
5545
  }),
5481
5546
  ],
5482
5547
  realm: 'api.example.com',
5483
- secretKey: 'secret',
5548
+ secretKey: 'test-secret-key-test-secret-key-32',
5484
5549
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
5485
5550
 
5486
5551
  const route = (request: Request) => routeHandler(request)
@@ -5572,7 +5637,7 @@ describe.runIf(isLocalnet)('session', () => {
5572
5637
  test('rejects tx-bearing open receipts replayed during websocket close', async () => {
5573
5638
  const routeHandler = Mppx_server.create({
5574
5639
  methods: [
5575
- tempo_server.session({
5640
+ tempo_server.sessionLegacy({
5576
5641
  store: Store.memory(),
5577
5642
  getClient: () => client,
5578
5643
  account: recipientAccount,
@@ -5582,7 +5647,7 @@ describe.runIf(isLocalnet)('session', () => {
5582
5647
  }),
5583
5648
  ],
5584
5649
  realm: 'api.example.com',
5585
- secretKey: 'secret',
5650
+ secretKey: 'test-secret-key-test-secret-key-32',
5586
5651
  }).session({ amount: '1', decimals: 6, unitType: 'token' })
5587
5652
 
5588
5653
  const httpHandler = NodeRequest.toNodeListener(async (request) => {
@@ -5691,7 +5756,7 @@ describe('monotonicity and TOCTOU (unit tests)', () => {
5691
5756
 
5692
5757
  function seedChannel(
5693
5758
  store: ChannelStore.ChannelStore,
5694
- overrides: Partial<ChannelStore.State> = {},
5759
+ overrides: Partial<ChannelStore.BaseState & ChannelStore.LegacyContractBackendState> = {},
5695
5760
  ) {
5696
5761
  return store.updateChannel(testChannelId, () => ({
5697
5762
  channelId: testChannelId,
@@ -6031,7 +6096,7 @@ describe('session default currency resolution', () => {
6031
6096
  test('challenge contains USDC currency (mainnet default)', async () => {
6032
6097
  const handler = Mppx_server.create({
6033
6098
  methods: [
6034
- tempo_server.session({
6099
+ tempo_server.sessionLegacy({
6035
6100
  store: Store.memory(),
6036
6101
  getClient: () => mockMainnetClient,
6037
6102
  account: mockAccount,
@@ -6041,7 +6106,7 @@ describe('session default currency resolution', () => {
6041
6106
  }),
6042
6107
  ],
6043
6108
  realm: 'api.example.com',
6044
- secretKey: 'secret',
6109
+ secretKey: 'test-secret-key-test-secret-key-32',
6045
6110
  })
6046
6111
 
6047
6112
  const result = await (handler.session as Function)({
@@ -6058,7 +6123,7 @@ describe('session default currency resolution', () => {
6058
6123
  test('challenge contains pathUSD currency when testnet: true', async () => {
6059
6124
  const handler = Mppx_server.create({
6060
6125
  methods: [
6061
- tempo_server.session({
6126
+ tempo_server.sessionLegacy({
6062
6127
  store: Store.memory(),
6063
6128
  getClient: () => mockTestnetClient,
6064
6129
  account: mockAccount,
@@ -6067,7 +6132,7 @@ describe('session default currency resolution', () => {
6067
6132
  }),
6068
6133
  ],
6069
6134
  realm: 'api.example.com',
6070
- secretKey: 'secret',
6135
+ secretKey: 'test-secret-key-test-secret-key-32',
6071
6136
  })
6072
6137
 
6073
6138
  const result = await (handler.session as Function)({
@@ -6085,7 +6150,7 @@ describe('session default currency resolution', () => {
6085
6150
  test('challenge contains pathUSD currency (unknown chain)', async () => {
6086
6151
  const handler = Mppx_server.create({
6087
6152
  methods: [
6088
- tempo_server.session({
6153
+ tempo_server.sessionLegacy({
6089
6154
  store: Store.memory(),
6090
6155
  getClient: () => mockTestnetClient,
6091
6156
  account: mockAccount,
@@ -6094,7 +6159,7 @@ describe('session default currency resolution', () => {
6094
6159
  }),
6095
6160
  ],
6096
6161
  realm: 'api.example.com',
6097
- secretKey: 'secret',
6162
+ secretKey: 'test-secret-key-test-secret-key-32',
6098
6163
  })
6099
6164
 
6100
6165
  const result = await (handler.session as Function)({
@@ -6111,7 +6176,7 @@ describe('session default currency resolution', () => {
6111
6176
  test('explicit currency in challenge overrides testnet default', async () => {
6112
6177
  const handler = Mppx_server.create({
6113
6178
  methods: [
6114
- tempo_server.session({
6179
+ tempo_server.sessionLegacy({
6115
6180
  store: Store.memory(),
6116
6181
  getClient: () => mockClient,
6117
6182
  account: mockAccount,
@@ -6122,7 +6187,7 @@ describe('session default currency resolution', () => {
6122
6187
  }),
6123
6188
  ],
6124
6189
  realm: 'api.example.com',
6125
- secretKey: 'secret',
6190
+ secretKey: 'test-secret-key-test-secret-key-32',
6126
6191
  })
6127
6192
 
6128
6193
  const result = await handler.session({
@@ -6140,7 +6205,7 @@ describe('session default currency resolution', () => {
6140
6205
  test('handler.session throws for zero-amount routes', () => {
6141
6206
  const handler = Mppx_server.create({
6142
6207
  methods: [
6143
- tempo_server.session({
6208
+ tempo_server.sessionLegacy({
6144
6209
  store: Store.memory(),
6145
6210
  getClient: () => mockClient,
6146
6211
  account: mockAccount,
@@ -6149,7 +6214,7 @@ describe('session default currency resolution', () => {
6149
6214
  }),
6150
6215
  ],
6151
6216
  realm: 'api.example.com',
6152
- secretKey: 'secret',
6217
+ secretKey: 'test-secret-key-test-secret-key-32',
6153
6218
  })
6154
6219
 
6155
6220
  expect(() =>