mppx 0.8.14 → 0.8.17

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 (507) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/Challenge.d.ts.map +1 -1
  3. package/dist/Challenge.js +40 -35
  4. package/dist/Challenge.js.map +1 -1
  5. package/dist/Constants.d.ts +17 -17
  6. package/dist/Constants.d.ts.map +1 -1
  7. package/dist/Credential.d.ts.map +1 -1
  8. package/dist/Errors.d.ts +3 -3
  9. package/dist/Errors.d.ts.map +1 -1
  10. package/dist/Errors.js.map +1 -1
  11. package/dist/Method.d.ts +35 -5
  12. package/dist/Method.d.ts.map +1 -1
  13. package/dist/Method.js +7 -22
  14. package/dist/Method.js.map +1 -1
  15. package/dist/Store.d.ts +19 -0
  16. package/dist/Store.d.ts.map +1 -1
  17. package/dist/Store.js +43 -0
  18. package/dist/Store.js.map +1 -1
  19. package/dist/attestation/Client.d.ts +17 -0
  20. package/dist/attestation/Client.d.ts.map +1 -0
  21. package/dist/attestation/Client.js +28 -0
  22. package/dist/attestation/Client.js.map +1 -0
  23. package/dist/attestation/Constants.d.ts +15 -0
  24. package/dist/attestation/Constants.d.ts.map +1 -0
  25. package/dist/attestation/Constants.js +15 -0
  26. package/dist/attestation/Constants.js.map +1 -0
  27. package/dist/attestation/Server.d.ts +4 -0
  28. package/dist/attestation/Server.d.ts.map +1 -0
  29. package/dist/attestation/Server.js +8 -0
  30. package/dist/attestation/Server.js.map +1 -0
  31. package/dist/attestation/Types.d.ts +76 -0
  32. package/dist/attestation/Types.d.ts.map +1 -0
  33. package/dist/attestation/Types.js +2 -0
  34. package/dist/attestation/Types.js.map +1 -0
  35. package/dist/attestation/index.d.ts +6 -0
  36. package/dist/attestation/index.d.ts.map +1 -0
  37. package/dist/attestation/index.js +6 -0
  38. package/dist/attestation/index.js.map +1 -0
  39. package/dist/attestation/internal/HttpMessageSignature.d.ts +73 -0
  40. package/dist/attestation/internal/HttpMessageSignature.d.ts.map +1 -0
  41. package/dist/attestation/internal/HttpMessageSignature.js +320 -0
  42. package/dist/attestation/internal/HttpMessageSignature.js.map +1 -0
  43. package/dist/attestation/internal/SigningContext.d.ts +4 -0
  44. package/dist/attestation/internal/SigningContext.d.ts.map +1 -0
  45. package/dist/attestation/internal/SigningContext.js +11 -0
  46. package/dist/attestation/internal/SigningContext.js.map +1 -0
  47. package/dist/cli/account.d.ts +14 -14
  48. package/dist/cli/account.d.ts.map +1 -1
  49. package/dist/cli/cli.d.ts +6 -6
  50. package/dist/cli/cli.d.ts.map +1 -1
  51. package/dist/cli/cli.js +1 -0
  52. package/dist/cli/cli.js.map +1 -1
  53. package/dist/cli/plugins/tempo.js.map +1 -1
  54. package/dist/cli/sessions/commands.d.ts +4 -4
  55. package/dist/cli/sessions/commands.d.ts.map +1 -1
  56. package/dist/cli/sessions/commands.js.map +1 -1
  57. package/dist/cli/sessions/store.d.ts.map +1 -1
  58. package/dist/cli/sessions/store.js.map +1 -1
  59. package/dist/cli/utils.d.ts +1 -1
  60. package/dist/cli/utils.d.ts.map +1 -1
  61. package/dist/cli/utils.js.map +1 -1
  62. package/dist/cli/validate/discovery.js.map +1 -1
  63. package/dist/cli/validate/index.d.ts +3 -3
  64. package/dist/cli/validate/index.d.ts.map +1 -1
  65. package/dist/cli/validate/payment.d.ts.map +1 -1
  66. package/dist/cli/validate/payment.js +18 -4
  67. package/dist/cli/validate/payment.js.map +1 -1
  68. package/dist/client/Mppx.d.ts +3 -0
  69. package/dist/client/Mppx.d.ts.map +1 -1
  70. package/dist/client/Mppx.js +13 -5
  71. package/dist/client/Mppx.js.map +1 -1
  72. package/dist/client/Transport.d.ts +3 -5
  73. package/dist/client/Transport.d.ts.map +1 -1
  74. package/dist/client/Transport.js +1 -17
  75. package/dist/client/Transport.js.map +1 -1
  76. package/dist/client/internal/Fetch.d.ts.map +1 -1
  77. package/dist/client/internal/Fetch.js +92 -13
  78. package/dist/client/internal/Fetch.js.map +1 -1
  79. package/dist/client/internal/MethodChallenge.d.ts +2 -0
  80. package/dist/client/internal/MethodChallenge.d.ts.map +1 -1
  81. package/dist/client/internal/MethodChallenge.js +4 -0
  82. package/dist/client/internal/MethodChallenge.js.map +1 -1
  83. package/dist/client/internal/MethodResponse.d.ts +15 -0
  84. package/dist/client/internal/MethodResponse.d.ts.map +1 -1
  85. package/dist/client/internal/MethodResponse.js +10 -0
  86. package/dist/client/internal/MethodResponse.js.map +1 -1
  87. package/dist/client/node.js.map +1 -1
  88. package/dist/discovery/OpenApi.d.ts +3 -5
  89. package/dist/discovery/OpenApi.d.ts.map +1 -1
  90. package/dist/discovery/OpenApi.js +13 -34
  91. package/dist/discovery/OpenApi.js.map +1 -1
  92. package/dist/discovery/internal/Metadata.d.ts +20 -0
  93. package/dist/discovery/internal/Metadata.d.ts.map +1 -0
  94. package/dist/discovery/internal/Metadata.js +36 -0
  95. package/dist/discovery/internal/Metadata.js.map +1 -0
  96. package/dist/evm/Methods.d.ts +11 -11
  97. package/dist/evm/Methods.d.ts.map +1 -1
  98. package/dist/evm/Types.d.ts +17 -17
  99. package/dist/evm/Types.d.ts.map +1 -1
  100. package/dist/evm/client/Charge.d.ts +11 -11
  101. package/dist/evm/client/Methods.d.ts +11 -11
  102. package/dist/evm/server/Charge.d.ts +1 -1
  103. package/dist/evm/server/Charge.d.ts.map +1 -1
  104. package/dist/evm/server/Charge.js +2 -0
  105. package/dist/evm/server/Charge.js.map +1 -1
  106. package/dist/evm/server/Methods.d.ts +11 -11
  107. package/dist/internal/HeaderCodec.d.ts +2 -2
  108. package/dist/internal/HeaderCodec.d.ts.map +1 -1
  109. package/dist/internal/types.d.ts +6 -0
  110. package/dist/internal/types.d.ts.map +1 -1
  111. package/dist/middlewares/elysia.js.map +1 -1
  112. package/dist/middlewares/express.js.map +1 -1
  113. package/dist/middlewares/hono.js.map +1 -1
  114. package/dist/middlewares/nextjs.js.map +1 -1
  115. package/dist/proxy/Proxy.d.ts +2 -0
  116. package/dist/proxy/Proxy.d.ts.map +1 -1
  117. package/dist/proxy/Proxy.js +117 -9
  118. package/dist/proxy/Proxy.js.map +1 -1
  119. package/dist/proxy/Service.d.ts +36 -1
  120. package/dist/proxy/Service.d.ts.map +1 -1
  121. package/dist/proxy/Service.js +9 -8
  122. package/dist/proxy/Service.js.map +1 -1
  123. package/dist/proxy/services/anthropic.d.ts.map +1 -1
  124. package/dist/proxy/services/anthropic.js +1 -0
  125. package/dist/proxy/services/anthropic.js.map +1 -1
  126. package/dist/proxy/services/openai.d.ts.map +1 -1
  127. package/dist/proxy/services/openai.js +1 -0
  128. package/dist/proxy/services/openai.js.map +1 -1
  129. package/dist/proxy/services/stripe.d.ts.map +1 -1
  130. package/dist/proxy/services/stripe.js +1 -0
  131. package/dist/proxy/services/stripe.js.map +1 -1
  132. package/dist/server/Mppx.d.ts +75 -13
  133. package/dist/server/Mppx.d.ts.map +1 -1
  134. package/dist/server/Mppx.js +201 -23
  135. package/dist/server/Mppx.js.map +1 -1
  136. package/dist/server/internal/html/config.d.ts +9 -9
  137. package/dist/server/internal/html/config.d.ts.map +1 -1
  138. package/dist/server/internal/html/constants.d.ts +17 -17
  139. package/dist/server/internal/html/constants.d.ts.map +1 -1
  140. package/dist/stripe/Methods.d.ts +10 -10
  141. package/dist/stripe/Methods.d.ts.map +1 -1
  142. package/dist/stripe/client/Charge.d.ts +10 -10
  143. package/dist/stripe/client/Methods.d.ts +10 -10
  144. package/dist/stripe/internal/constants.d.ts +1 -1
  145. package/dist/stripe/internal/constants.js +1 -1
  146. package/dist/stripe/internal/types.d.ts +1 -0
  147. package/dist/stripe/internal/types.d.ts.map +1 -1
  148. package/dist/stripe/server/Charge.d.ts +11 -11
  149. package/dist/stripe/server/Charge.d.ts.map +1 -1
  150. package/dist/stripe/server/Charge.js +49 -1
  151. package/dist/stripe/server/Charge.js.map +1 -1
  152. package/dist/stripe/server/Methods.d.ts +137 -48
  153. package/dist/stripe/server/Methods.d.ts.map +1 -1
  154. package/dist/stripe/server/Methods.js +259 -4
  155. package/dist/stripe/server/Methods.js.map +1 -1
  156. package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
  157. package/dist/stripe/server/internal/deposit-address.d.ts.map +1 -0
  158. package/dist/stripe/server/internal/deposit-address.js +28 -0
  159. package/dist/stripe/server/internal/deposit-address.js.map +1 -0
  160. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  161. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  162. package/dist/stripe/server/internal/html.gen.js +1 -1
  163. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  164. package/dist/stripe/server/internal/record-payment.d.ts +15 -0
  165. package/dist/stripe/server/internal/record-payment.d.ts.map +1 -0
  166. package/dist/stripe/server/internal/record-payment.js +42 -0
  167. package/dist/stripe/server/internal/record-payment.js.map +1 -0
  168. package/dist/stripe/server/internal/request.d.ts +25 -0
  169. package/dist/stripe/server/internal/request.d.ts.map +1 -0
  170. package/dist/stripe/server/internal/request.js +29 -0
  171. package/dist/stripe/server/internal/request.js.map +1 -0
  172. package/dist/tap/Constants.d.ts +28 -0
  173. package/dist/tap/Constants.d.ts.map +1 -0
  174. package/dist/tap/Constants.js +32 -0
  175. package/dist/tap/Constants.js.map +1 -0
  176. package/dist/tap/Types.d.ts +11 -0
  177. package/dist/tap/Types.d.ts.map +1 -0
  178. package/dist/tap/Types.js +2 -0
  179. package/dist/tap/Types.js.map +1 -0
  180. package/dist/tap/client/index.d.ts +26 -0
  181. package/dist/tap/client/index.d.ts.map +1 -0
  182. package/dist/tap/client/index.js +33 -0
  183. package/dist/tap/client/index.js.map +1 -0
  184. package/dist/tap/index.d.ts +5 -0
  185. package/dist/tap/index.d.ts.map +1 -0
  186. package/dist/tap/index.js +5 -0
  187. package/dist/tap/index.js.map +1 -0
  188. package/dist/tap/server/index.d.ts +20 -0
  189. package/dist/tap/server/index.d.ts.map +1 -0
  190. package/dist/tap/server/index.js +36 -0
  191. package/dist/tap/server/index.js.map +1 -0
  192. package/dist/tempo/Attribution.d.ts +1 -1
  193. package/dist/tempo/Methods.d.ts +60 -60
  194. package/dist/tempo/Methods.d.ts.map +1 -1
  195. package/dist/tempo/Proof.d.ts +16 -16
  196. package/dist/tempo/client/Charge.d.ts +19 -19
  197. package/dist/tempo/client/Charge.d.ts.map +1 -1
  198. package/dist/tempo/client/Charge.js +1 -7
  199. package/dist/tempo/client/Charge.js.map +1 -1
  200. package/dist/tempo/client/Methods.d.ts +38 -38
  201. package/dist/tempo/client/Methods.js.map +1 -1
  202. package/dist/tempo/client/Subscription.d.ts +23 -23
  203. package/dist/tempo/client/Subscription.js.map +1 -1
  204. package/dist/tempo/internal/address.d.ts +2 -1
  205. package/dist/tempo/internal/address.d.ts.map +1 -1
  206. package/dist/tempo/internal/address.js +3 -1
  207. package/dist/tempo/internal/address.js.map +1 -1
  208. package/dist/tempo/internal/auto-swap.d.ts.map +1 -1
  209. package/dist/tempo/internal/auto-swap.js +4 -19
  210. package/dist/tempo/internal/auto-swap.js.map +1 -1
  211. package/dist/tempo/internal/defaults.d.ts +6 -6
  212. package/dist/tempo/internal/defaults.d.ts.map +1 -1
  213. package/dist/tempo/internal/fee-payer.d.ts +12 -12
  214. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  215. package/dist/tempo/internal/fee-payer.js.map +1 -1
  216. package/dist/tempo/internal/proof.d.ts +17 -17
  217. package/dist/tempo/internal/proof.d.ts.map +1 -1
  218. package/dist/tempo/legacy/client/Session.d.ts +20 -20
  219. package/dist/tempo/legacy/client/Session.js.map +1 -1
  220. package/dist/tempo/legacy/client/SessionManager.js.map +1 -1
  221. package/dist/tempo/legacy/index.d.ts +1 -3
  222. package/dist/tempo/legacy/index.d.ts.map +1 -1
  223. package/dist/tempo/legacy/index.js +1 -3
  224. package/dist/tempo/legacy/index.js.map +1 -1
  225. package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
  226. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +1 -1
  227. package/dist/tempo/server/Charge.d.ts +34 -12
  228. package/dist/tempo/server/Charge.d.ts.map +1 -1
  229. package/dist/tempo/server/Charge.js +44 -39
  230. package/dist/tempo/server/Charge.js.map +1 -1
  231. package/dist/tempo/server/Methods.d.ts +37 -52
  232. package/dist/tempo/server/Methods.d.ts.map +1 -1
  233. package/dist/tempo/server/Methods.js +0 -14
  234. package/dist/tempo/server/Methods.js.map +1 -1
  235. package/dist/tempo/server/Relay.d.ts +14 -5
  236. package/dist/tempo/server/Relay.d.ts.map +1 -1
  237. package/dist/tempo/server/Relay.js +6 -4
  238. package/dist/tempo/server/Relay.js.map +1 -1
  239. package/dist/tempo/server/SponsorBudget.d.ts.map +1 -1
  240. package/dist/tempo/server/SponsorBudget.js +7 -1
  241. package/dist/tempo/server/SponsorBudget.js.map +1 -1
  242. package/dist/tempo/server/Subscription.d.ts +25 -25
  243. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  244. package/dist/tempo/server/Subscription.js +2 -0
  245. package/dist/tempo/server/Subscription.js.map +1 -1
  246. package/dist/tempo/server/index.d.ts +1 -1
  247. package/dist/tempo/server/index.d.ts.map +1 -1
  248. package/dist/tempo/server/index.js +1 -1
  249. package/dist/tempo/server/index.js.map +1 -1
  250. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  251. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  252. package/dist/tempo/server/internal/html.gen.js +1 -1
  253. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  254. package/dist/tempo/server/internal/transport.d.ts +2 -0
  255. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  256. package/dist/tempo/server/internal/transport.js +9 -2
  257. package/dist/tempo/server/internal/transport.js.map +1 -1
  258. package/dist/tempo/session/client/ChannelOps.js.map +1 -1
  259. package/dist/tempo/session/client/CredentialState.d.ts +1 -1
  260. package/dist/tempo/session/client/CredentialState.js.map +1 -1
  261. package/dist/tempo/session/client/ReceiptCoordinator.js.map +1 -1
  262. package/dist/tempo/session/client/Runtime.js.map +1 -1
  263. package/dist/tempo/session/client/Session.d.ts +19 -19
  264. package/dist/tempo/session/client/Session.d.ts.map +1 -1
  265. package/dist/tempo/session/client/Session.js +128 -14
  266. package/dist/tempo/session/client/Session.js.map +1 -1
  267. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
  268. package/dist/tempo/session/client/SessionManager.js +62 -20
  269. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  270. package/dist/tempo/session/client/Transports.d.ts +9 -1
  271. package/dist/tempo/session/client/Transports.d.ts.map +1 -1
  272. package/dist/tempo/session/client/Transports.js +36 -13
  273. package/dist/tempo/session/client/Transports.js.map +1 -1
  274. package/dist/tempo/session/precompile/Chain.d.ts +27 -0
  275. package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
  276. package/dist/tempo/session/precompile/Chain.js +68 -7
  277. package/dist/tempo/session/precompile/Chain.js.map +1 -1
  278. package/dist/tempo/session/precompile/Protocol.js.map +1 -1
  279. package/dist/tempo/session/precompile/Voucher.d.ts +4 -4
  280. package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -1
  281. package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
  282. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +1 -1
  283. package/dist/tempo/session/server/ChannelStore.d.ts +9 -0
  284. package/dist/tempo/session/server/ChannelStore.d.ts.map +1 -1
  285. package/dist/tempo/session/server/ChannelStore.js +16 -8
  286. package/dist/tempo/session/server/ChannelStore.js.map +1 -1
  287. package/dist/tempo/session/server/CredentialVerification.d.ts +30 -13
  288. package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -1
  289. package/dist/tempo/session/server/CredentialVerification.js +207 -13
  290. package/dist/tempo/session/server/CredentialVerification.js.map +1 -1
  291. package/dist/tempo/session/server/MeteredStream.d.ts +3 -0
  292. package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -1
  293. package/dist/tempo/session/server/MeteredStream.js +3 -1
  294. package/dist/tempo/session/server/MeteredStream.js.map +1 -1
  295. package/dist/tempo/session/server/Session.d.ts +32 -21
  296. package/dist/tempo/session/server/Session.d.ts.map +1 -1
  297. package/dist/tempo/session/server/Session.js +116 -53
  298. package/dist/tempo/session/server/Session.js.map +1 -1
  299. package/dist/tempo/session/server/Sse.d.ts +3 -1
  300. package/dist/tempo/session/server/Sse.d.ts.map +1 -1
  301. package/dist/tempo/session/server/Sse.js +2 -1
  302. package/dist/tempo/session/server/Sse.js.map +1 -1
  303. package/dist/tempo/session/server/Transports.d.ts +1 -1
  304. package/dist/tempo/session/server/Transports.d.ts.map +1 -1
  305. package/dist/tempo/session/server/Transports.js +1 -0
  306. package/dist/tempo/session/server/Transports.js.map +1 -1
  307. package/dist/tempo/session/server/Ws.d.ts +6 -1
  308. package/dist/tempo/session/server/Ws.d.ts.map +1 -1
  309. package/dist/tempo/session/server/Ws.js +4 -0
  310. package/dist/tempo/session/server/Ws.js.map +1 -1
  311. package/dist/tempo/subscription/KeyAuthorization.d.ts +38 -866
  312. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  313. package/dist/tempo/subscription/KeyAuthorization.js +14 -3
  314. package/dist/tempo/subscription/KeyAuthorization.js.map +1 -1
  315. package/dist/viem/Account.d.ts.map +1 -1
  316. package/dist/viem/Account.js.map +1 -1
  317. package/dist/viem/Client.d.ts.map +1 -1
  318. package/dist/viem/Client.js +6 -1
  319. package/dist/viem/Client.js.map +1 -1
  320. package/dist/web-bot-auth/Constants.d.ts +20 -0
  321. package/dist/web-bot-auth/Constants.d.ts.map +1 -0
  322. package/dist/web-bot-auth/Constants.js +24 -0
  323. package/dist/web-bot-auth/Constants.js.map +1 -0
  324. package/dist/web-bot-auth/Types.d.ts +10 -0
  325. package/dist/web-bot-auth/Types.d.ts.map +1 -0
  326. package/dist/web-bot-auth/Types.js +2 -0
  327. package/dist/web-bot-auth/Types.js.map +1 -0
  328. package/dist/web-bot-auth/client/index.d.ts +29 -0
  329. package/dist/web-bot-auth/client/index.d.ts.map +1 -0
  330. package/dist/web-bot-auth/client/index.js +64 -0
  331. package/dist/web-bot-auth/client/index.js.map +1 -0
  332. package/dist/web-bot-auth/index.d.ts +7 -0
  333. package/dist/web-bot-auth/index.d.ts.map +1 -0
  334. package/dist/web-bot-auth/index.js +7 -0
  335. package/dist/web-bot-auth/index.js.map +1 -0
  336. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
  337. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +1 -0
  338. package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
  339. package/dist/web-bot-auth/internal/JwkThumbprint.js.map +1 -0
  340. package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
  341. package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +1 -0
  342. package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
  343. package/dist/web-bot-auth/internal/SignatureAgent.js.map +1 -0
  344. package/dist/web-bot-auth/server/index.d.ts +35 -0
  345. package/dist/web-bot-auth/server/index.d.ts.map +1 -0
  346. package/dist/web-bot-auth/server/index.js +88 -0
  347. package/dist/web-bot-auth/server/index.js.map +1 -0
  348. package/dist/x402/Assets.d.ts.map +1 -1
  349. package/dist/x402/Types.d.ts +6 -6
  350. package/dist/x402/Types.d.ts.map +1 -1
  351. package/dist/x402/server/EvmCharge.d.ts.map +1 -1
  352. package/dist/x402/server/EvmCharge.js +32 -20
  353. package/dist/x402/server/EvmCharge.js.map +1 -1
  354. package/package.json +20 -4
  355. package/src/Challenge.fuzz.test.ts +80 -47
  356. package/src/Challenge.test.ts +65 -0
  357. package/src/Challenge.ts +39 -35
  358. package/src/Method.ts +82 -68
  359. package/src/Store.test-d.ts +16 -0
  360. package/src/Store.test.ts +50 -0
  361. package/src/Store.ts +68 -0
  362. package/src/attestation/Attestation.integration.test.ts +208 -0
  363. package/src/attestation/Client.test.ts +83 -0
  364. package/src/attestation/Client.ts +34 -0
  365. package/src/attestation/Constants.ts +15 -0
  366. package/src/attestation/Server.test.ts +60 -0
  367. package/src/attestation/Server.ts +12 -0
  368. package/src/attestation/Types.test-d.ts +54 -0
  369. package/src/attestation/Types.ts +77 -0
  370. package/src/attestation/index.ts +5 -0
  371. package/src/attestation/internal/HttpMessageSignature.test.ts +101 -0
  372. package/src/attestation/internal/HttpMessageSignature.ts +429 -0
  373. package/src/attestation/internal/SigningContext.ts +13 -0
  374. package/src/bin.js +2 -0
  375. package/src/cli/cli.ts +1 -0
  376. package/src/cli/validate/payment.ts +18 -4
  377. package/src/cli/validate.test.ts +16 -0
  378. package/src/client/Mppx.test-d.ts +17 -0
  379. package/src/client/Mppx.test.ts +14 -14
  380. package/src/client/Mppx.ts +25 -4
  381. package/src/client/Transport.test.ts +12 -45
  382. package/src/client/Transport.ts +3 -24
  383. package/src/client/internal/Fetch.test.ts +77 -0
  384. package/src/client/internal/Fetch.ts +112 -14
  385. package/src/client/internal/MethodChallenge.ts +5 -0
  386. package/src/client/internal/MethodResponse.ts +28 -0
  387. package/src/discovery/OpenApi.test.ts +170 -0
  388. package/src/discovery/OpenApi.ts +16 -48
  389. package/src/discovery/internal/Metadata.ts +51 -0
  390. package/src/evm/server/Charge.ts +6 -1
  391. package/src/internal/AcceptPayment.test.ts +12 -8
  392. package/src/internal/types.ts +9 -0
  393. package/src/mcp/client/McpClient.integration.test.ts +19 -32
  394. package/src/middlewares/elysia.test.ts +2 -12
  395. package/src/middlewares/express.test.ts +2 -12
  396. package/src/middlewares/hono.test.ts +6 -9
  397. package/src/middlewares/nextjs.test.ts +2 -12
  398. package/src/proxy/Proxy.test.ts +26 -19
  399. package/src/proxy/Proxy.ts +147 -9
  400. package/src/proxy/Proxy.upstreamError.test.ts +364 -0
  401. package/src/proxy/Service.test.ts +73 -3
  402. package/src/proxy/Service.ts +50 -23
  403. package/src/proxy/services/anthropic.ts +1 -0
  404. package/src/proxy/services/hooks.test-d.ts +14 -0
  405. package/src/proxy/services/hooks.test.ts +44 -0
  406. package/src/proxy/services/openai.ts +1 -0
  407. package/src/proxy/services/stripe.ts +1 -0
  408. package/src/server/Methods.test-d.ts +88 -0
  409. package/src/server/Methods.test.ts +69 -0
  410. package/src/server/Mppx.test-d.ts +141 -7
  411. package/src/server/Mppx.test.ts +1017 -119
  412. package/src/server/Mppx.ts +350 -54
  413. package/src/stripe/internal/constants.ts +1 -1
  414. package/src/stripe/internal/types.ts +1 -0
  415. package/src/stripe/server/Charge.test-d.ts +16 -1
  416. package/src/stripe/server/Charge.test.ts +79 -0
  417. package/src/stripe/server/Charge.ts +54 -1
  418. package/src/stripe/server/Methods.test-d.ts +157 -0
  419. package/src/stripe/server/Methods.test.ts +403 -0
  420. package/src/stripe/server/Methods.ts +423 -6
  421. package/src/stripe/server/internal/deposit-address.ts +57 -0
  422. package/src/stripe/server/internal/html/node_modules/.bin/mppx +3 -3
  423. package/src/stripe/server/internal/html/package.json +1 -1
  424. package/src/stripe/server/internal/html.gen.ts +1 -1
  425. package/src/stripe/server/internal/record-payment.ts +66 -0
  426. package/src/stripe/server/internal/request.ts +49 -0
  427. package/src/tap/Constants.ts +32 -0
  428. package/src/tap/Tap.test.ts +125 -0
  429. package/src/tap/Types.ts +11 -0
  430. package/src/tap/client/index.ts +54 -0
  431. package/src/tap/index.ts +4 -0
  432. package/src/tap/server/index.ts +48 -0
  433. package/src/tempo/PublicExports.test-d.ts +3 -3
  434. package/src/tempo/client/Charge.ts +1 -19
  435. package/src/tempo/internal/address.test.ts +42 -0
  436. package/src/tempo/internal/address.ts +3 -3
  437. package/src/tempo/internal/auto-swap.test.ts +4 -4
  438. package/src/tempo/internal/auto-swap.ts +7 -50
  439. package/src/tempo/legacy/README.md +5 -5
  440. package/src/tempo/legacy/index.ts +1 -3
  441. package/src/tempo/server/AtomicStore.test-d.ts +13 -0
  442. package/src/tempo/server/Charge.test.ts +19 -84
  443. package/src/tempo/server/Charge.ts +92 -56
  444. package/src/tempo/server/Methods.ts +0 -20
  445. package/src/tempo/server/Relay.test.ts +161 -7
  446. package/src/tempo/server/Relay.ts +15 -6
  447. package/src/tempo/server/SponsorBudget.test.ts +29 -0
  448. package/src/tempo/server/SponsorBudget.ts +7 -1
  449. package/src/tempo/server/Subscription.ts +4 -1
  450. package/src/tempo/server/index.ts +1 -1
  451. package/src/tempo/server/internal/html/node_modules/.bin/mppx +3 -3
  452. package/src/tempo/server/internal/html/package.json +1 -1
  453. package/src/tempo/server/internal/html.gen.ts +1 -1
  454. package/src/tempo/server/internal/transport.test.ts +22 -3
  455. package/src/tempo/server/internal/transport.ts +15 -3
  456. package/src/tempo/session/README.md +119 -0
  457. package/src/tempo/session/client/Session.test.ts +299 -33
  458. package/src/tempo/session/client/Session.ts +152 -16
  459. package/src/tempo/session/client/SessionManager.test.ts +216 -9
  460. package/src/tempo/session/client/SessionManager.ts +63 -17
  461. package/src/tempo/session/client/Transports.test.ts +22 -0
  462. package/src/tempo/session/client/Transports.ts +58 -22
  463. package/src/tempo/session/precompile/Chain.ts +131 -11
  464. package/src/tempo/session/server/ChannelStore.ts +33 -12
  465. package/src/tempo/session/server/CredentialVerification.test.ts +4 -4
  466. package/src/tempo/session/server/CredentialVerification.ts +340 -28
  467. package/src/tempo/session/server/MeteredStream.ts +5 -1
  468. package/src/tempo/session/server/Session.test.ts +483 -36
  469. package/src/tempo/session/server/Session.ts +159 -60
  470. package/src/tempo/session/server/Sse.test.ts +77 -0
  471. package/src/tempo/session/server/Sse.ts +8 -1
  472. package/src/tempo/session/server/Transports.ts +2 -1
  473. package/src/tempo/session/server/Ws.test.ts +171 -0
  474. package/src/tempo/session/server/Ws.ts +10 -1
  475. package/src/tempo/subscription/KeyAuthorization.test.ts +70 -1
  476. package/src/tempo/subscription/KeyAuthorization.ts +14 -3
  477. package/src/viem/Client.test.ts +18 -1
  478. package/src/viem/Client.ts +7 -1
  479. package/src/web-bot-auth/Constants.ts +24 -0
  480. package/src/web-bot-auth/Types.ts +9 -0
  481. package/src/web-bot-auth/WebBotAuth.test.ts +182 -0
  482. package/src/web-bot-auth/client/index.ts +84 -0
  483. package/src/web-bot-auth/index.ts +6 -0
  484. package/src/web-bot-auth/internal/JwkThumbprint.ts +21 -0
  485. package/src/web-bot-auth/internal/SignatureAgent.ts +18 -0
  486. package/src/web-bot-auth/server/index.ts +113 -0
  487. package/src/x402/Exact.e2e.test.ts +121 -81
  488. package/src/x402/Exact.localnet.test.ts +1 -1
  489. package/src/x402/server/EvmCharge.ts +35 -19
  490. package/dist/tempo/legacy/server/Session.d.ts +0 -208
  491. package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
  492. package/dist/tempo/legacy/server/Session.js +0 -698
  493. package/dist/tempo/legacy/server/Session.js.map +0 -1
  494. package/dist/tempo/legacy/server/index.d.ts +0 -5
  495. package/dist/tempo/legacy/server/index.d.ts.map +0 -1
  496. package/dist/tempo/legacy/server/index.js +0 -5
  497. package/dist/tempo/legacy/server/index.js.map +0 -1
  498. package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
  499. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
  500. package/dist/tempo/legacy/session/ChannelStore.js +0 -6
  501. package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
  502. package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
  503. package/src/tempo/legacy/server/Session.test.ts +0 -6370
  504. package/src/tempo/legacy/server/Session.ts +0 -1024
  505. package/src/tempo/legacy/server/index.ts +0 -4
  506. package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
  507. package/src/tempo/legacy/session/ChannelStore.ts +0 -39
@@ -0,0 +1,320 @@
1
+ import { isInnerList, parseDictionary, serializeItem, serializeDictionary, serializeInnerList, serializeParameters, } from 'structured-headers';
2
+ import * as Store from '../../Store.js';
3
+ import { Algorithms, Headers as AttestationHeaders } from '../Constants.js';
4
+ import * as SigningContextInternal from './SigningContext.js';
5
+ /** RFC 9421 constants used by request-attestation signature profiles. */
6
+ export const Constants = {
7
+ /** Derived request components supported by this narrow request profile. */
8
+ components: {
9
+ /** The target host and non-default port. */
10
+ authority: '@authority',
11
+ /** The request URL path without its query string. */
12
+ path: '@path',
13
+ /** The lowercased `Signature-Agent` request header. */
14
+ signatureAgent: 'signature-agent',
15
+ /** The signature's canonicalized covered-components and parameters. */
16
+ signatureParams: '@signature-params',
17
+ },
18
+ };
19
+ const algorithmDescriptors = {
20
+ [Algorithms.ed25519]: {
21
+ hash: undefined,
22
+ keyAlgorithm: 'Ed25519',
23
+ webCryptoAlgorithm: 'Ed25519',
24
+ },
25
+ [Algorithms.rsaPssSha512]: {
26
+ hash: 'SHA-512',
27
+ keyAlgorithm: 'RSA-PSS',
28
+ webCryptoAlgorithm: { name: 'RSA-PSS', saltLength: 64 },
29
+ },
30
+ };
31
+ /** Signs a request using the configured RFC 9421-derived component list. */
32
+ export async function sign(request, options) {
33
+ const context = options.context ?? SigningContextInternal.create();
34
+ const created = context.created;
35
+ const expires = created + (options.expiresIn ?? 60);
36
+ const algorithm = algorithmFromKey(options.key);
37
+ const parameters = new Map([
38
+ ['created', created],
39
+ ['expires', expires],
40
+ ['keyid', options.keyId],
41
+ ['alg', algorithm],
42
+ ['nonce', context.nonce],
43
+ ['tag', options.tag],
44
+ ]);
45
+ const input = {
46
+ algorithm,
47
+ components: options.components.map(toComponent),
48
+ created,
49
+ expires,
50
+ keyId: options.keyId,
51
+ label: options.label,
52
+ nonce: context.nonce,
53
+ parameters,
54
+ tag: options.tag,
55
+ };
56
+ const signature = await crypto.subtle.sign(webCryptoAlgorithm(algorithm), options.key, toArrayBuffer(encode(signatureBase(request, input))));
57
+ const headers = new Headers(request.headers);
58
+ const inputs = parseHeaderDictionary(headers, AttestationHeaders.signatureInput);
59
+ const signatures = parseHeaderDictionary(headers, AttestationHeaders.signature);
60
+ if (!haveSameKeys(inputs, signatures))
61
+ throw new Error('Signature-Input and Signature must contain the same labels.');
62
+ if (inputs.has(input.label) || signatures.has(input.label))
63
+ throw new Error(`HTTP message signature label "${input.label}" already exists.`);
64
+ inputs.set(input.label, toInnerList(input));
65
+ signatures.set(input.label, [signature, new Map()]);
66
+ headers.set(AttestationHeaders.signatureInput, serializeDictionary(inputs));
67
+ headers.set(AttestationHeaders.signature, serializeDictionary(signatures));
68
+ return new Request(request, { headers });
69
+ }
70
+ /** Verifies a request signature, its lifetime, and optionally its nonce. */
71
+ export async function verify(request, options) {
72
+ const parsed = parse(request, options.tag);
73
+ if (!parsed)
74
+ return { status: 'absent' };
75
+ if (parsed.reason)
76
+ return { status: 'invalid', reason: parsed.reason };
77
+ if (!parsed.input || !parsed.signature)
78
+ return { status: 'invalid', reason: 'The HTTP message signature is malformed.' };
79
+ const { input, signature } = parsed;
80
+ if (!options.requiredComponents.every((component) => hasComponent(input.components, component)))
81
+ return {
82
+ status: 'invalid',
83
+ reason: 'The signature does not cover the required request components.',
84
+ };
85
+ const now = Math.floor(Date.now() / 1000);
86
+ if (input.created > now || input.expires <= now || input.expires - input.created > options.maxAge)
87
+ return { status: 'invalid', reason: 'The signature is expired or has an invalid lifetime.' };
88
+ if (options.validate) {
89
+ const reason = options.validate(input, request);
90
+ if (reason)
91
+ return { status: 'invalid', reason };
92
+ }
93
+ let key;
94
+ try {
95
+ key = await options.keyResolver({
96
+ algorithm: input.algorithm,
97
+ keyId: input.keyId,
98
+ request,
99
+ });
100
+ }
101
+ catch {
102
+ return { status: 'unverified', reason: 'The public key could not be resolved.' };
103
+ }
104
+ if (!key)
105
+ return {
106
+ status: 'unverified',
107
+ reason: 'No public key is available for the signature key ID.',
108
+ };
109
+ if (!keySupportsAlgorithm(key, input.algorithm))
110
+ return {
111
+ status: 'invalid',
112
+ reason: 'The public key does not support the signature algorithm.',
113
+ };
114
+ if (options.validateKey) {
115
+ const reason = await options.validateKey(key, input, request);
116
+ if (reason)
117
+ return { status: 'invalid', reason };
118
+ }
119
+ let valid;
120
+ try {
121
+ valid = await crypto.subtle.verify(webCryptoAlgorithm(input.algorithm), key, toArrayBuffer(signature), toArrayBuffer(encode(signatureBase(request, input))));
122
+ }
123
+ catch {
124
+ valid = false;
125
+ }
126
+ if (!valid)
127
+ return { status: 'invalid', reason: 'The HTTP message signature is invalid.' };
128
+ try {
129
+ if (!(await Store.tryClaim(options.nonceStore, `${options.nonceNamespace}:${input.keyId}:${input.nonce}`, input.expires * 1000)))
130
+ return { status: 'invalid', reason: 'The signature nonce has already been used.' };
131
+ }
132
+ catch {
133
+ return { status: 'unverified', reason: 'Replay protection is unavailable.' };
134
+ }
135
+ return { status: 'verified', input };
136
+ }
137
+ function parse(request, expectedTag) {
138
+ const inputHeader = request.headers.get(AttestationHeaders.signatureInput);
139
+ const signatureHeader = request.headers.get(AttestationHeaders.signature);
140
+ if (!inputHeader && !signatureHeader)
141
+ return undefined;
142
+ if (!inputHeader || !signatureHeader)
143
+ return { reason: 'Signature-Input and Signature must both be provided.' };
144
+ let inputs;
145
+ let signatures;
146
+ try {
147
+ inputs = parseDictionary(inputHeader);
148
+ signatures = parseDictionary(signatureHeader);
149
+ }
150
+ catch {
151
+ return { reason: 'The HTTP message signature is malformed.' };
152
+ }
153
+ if (!haveSameKeys(inputs, signatures))
154
+ return { reason: 'Signature-Input and Signature do not contain the same labels.' };
155
+ const tags = new Set(typeof expectedTag === 'string' ? [expectedTag] : expectedTag);
156
+ for (const [label, entry] of inputs) {
157
+ if (!hasExpectedTag(entry, tags))
158
+ continue;
159
+ const input = toSignatureInput(label, entry);
160
+ if (!input)
161
+ return { reason: 'The HTTP message signature is malformed.' };
162
+ const signature = signatures.get(label);
163
+ if (!signature || isInnerList(signature) || !(signature[0] instanceof ArrayBuffer))
164
+ return { reason: 'No matching HTTP message signature was provided.' };
165
+ return { input, signature: new Uint8Array(signature[0]) };
166
+ }
167
+ return undefined;
168
+ }
169
+ function serializeInput(input) {
170
+ return serializeInnerList(toInnerList(input));
171
+ }
172
+ function toInnerList(input) {
173
+ const components = input.components.map((component) => [
174
+ component.id,
175
+ new Map(component.parameters),
176
+ ]);
177
+ return [components, new Map(input.parameters)];
178
+ }
179
+ function toSignatureInput(label, entry) {
180
+ const innerList = entry;
181
+ if (!isInnerList(innerList))
182
+ return undefined;
183
+ const [componentEntries, parameters] = innerList;
184
+ if (!componentEntries.length ||
185
+ !componentEntries.every(([component]) => typeof component === 'string'))
186
+ return undefined;
187
+ const components = componentEntries.map(([id, parameters]) => ({
188
+ id: id,
189
+ parameters,
190
+ }));
191
+ const created = parameters.get('created');
192
+ const expires = parameters.get('expires');
193
+ const algorithm = parameters.get('alg');
194
+ const keyId = parameters.get('keyid');
195
+ const nonce = parameters.get('nonce');
196
+ const tag = parameters.get('tag');
197
+ if (!isInteger(created) ||
198
+ !isInteger(expires) ||
199
+ !isSignatureAlgorithm(algorithm) ||
200
+ typeof keyId !== 'string' ||
201
+ typeof nonce !== 'string' ||
202
+ typeof tag !== 'string')
203
+ return undefined;
204
+ return {
205
+ algorithm,
206
+ components,
207
+ created,
208
+ expires,
209
+ keyId,
210
+ label,
211
+ nonce,
212
+ parameters,
213
+ tag,
214
+ };
215
+ }
216
+ function algorithmFromKey(key) {
217
+ for (const algorithm of Object.values(Algorithms))
218
+ if (keySupportsAlgorithm(key, algorithm))
219
+ return algorithm;
220
+ throw new TypeError('Request attestation requires an Ed25519 or RSA-PSS SHA-512 signing key.');
221
+ }
222
+ function isInteger(value) {
223
+ return typeof value === 'number' && Number.isInteger(value);
224
+ }
225
+ function isSignatureAlgorithm(value) {
226
+ return typeof value === 'string' && Object.hasOwn(algorithmDescriptors, value);
227
+ }
228
+ function keySupportsAlgorithm(key, algorithm) {
229
+ const { hash, keyAlgorithm } = algorithmDescriptors[algorithm];
230
+ return (key.algorithm.name === keyAlgorithm &&
231
+ (!hash || key.algorithm.hash.name === hash));
232
+ }
233
+ function webCryptoAlgorithm(algorithm) {
234
+ return algorithmDescriptors[algorithm].webCryptoAlgorithm;
235
+ }
236
+ function signatureBase(request, input) {
237
+ const lines = input.components.map((component) => `${serializeComponent(component)}: ${componentValue(request, component)}`);
238
+ lines.push(`"${Constants.components.signatureParams}": ${serializeInput(input)}`);
239
+ return lines.join('\n');
240
+ }
241
+ function componentValue(request, component) {
242
+ const url = new URL(request.url);
243
+ if (component.id === Constants.components.authority) {
244
+ if (component.parameters?.size)
245
+ throw new Error('Unsupported parameters for "@authority".');
246
+ return url.host;
247
+ }
248
+ if (component.id === Constants.components.path) {
249
+ if (component.parameters?.size)
250
+ throw new Error('Unsupported parameters for "@path".');
251
+ return url.pathname;
252
+ }
253
+ if (component.parameters?.size)
254
+ return componentDictionaryValue(request, component.id, component.parameters);
255
+ const value = request.headers.get(component.id);
256
+ if (value === null)
257
+ throw new Error(`Missing signed HTTP header "${component.id}".`);
258
+ // RFC 9421 signs the serialized field value, not a Unicode-normalized string.
259
+ if (!/^[\x20-\x7e]*$/.test(value))
260
+ throw new Error(`Signed HTTP header "${component.id}" is not ASCII.`);
261
+ return value;
262
+ }
263
+ function componentDictionaryValue(request, component, parameters) {
264
+ const key = parameters.get('key');
265
+ if (typeof key !== 'string' || parameters.size !== 1)
266
+ throw new Error(`Unsupported parameters for signed HTTP header "${component}".`);
267
+ const value = request.headers.get(component);
268
+ if (value === null)
269
+ throw new Error(`Missing signed HTTP header "${component}".`);
270
+ let dictionary;
271
+ try {
272
+ dictionary = parseDictionary(value);
273
+ }
274
+ catch {
275
+ throw new Error(`Signed HTTP header "${component}" is not a structured dictionary.`);
276
+ }
277
+ const member = dictionary.get(key);
278
+ if (!member || isInnerList(member))
279
+ throw new Error(`Signed HTTP header "${component}" has no member "${key}".`);
280
+ return serializeItem(member);
281
+ }
282
+ function hasComponent(components, expected) {
283
+ return components.some((component) => component.id === expected);
284
+ }
285
+ function haveSameKeys(left, right) {
286
+ return left.size === right.size && [...left.keys()].every((key) => right.has(key));
287
+ }
288
+ function hasExpectedTag(entry, tags) {
289
+ const value = entry;
290
+ if (!isInnerList(value))
291
+ return false;
292
+ const tag = value[1].get('tag');
293
+ return typeof tag === 'string' && tags.has(tag);
294
+ }
295
+ function serializeComponent(component) {
296
+ return `"${component.id}"${component.parameters?.size ? serializeParameters(new Map(component.parameters)) : ''}`;
297
+ }
298
+ function toComponent(component) {
299
+ return typeof component === 'string'
300
+ ? { id: component }
301
+ : { id: component.id, parameters: component.parameters && new Map(component.parameters) };
302
+ }
303
+ function parseHeaderDictionary(headers, name) {
304
+ const value = headers.get(name);
305
+ if (!value)
306
+ return new Map();
307
+ try {
308
+ return parseDictionary(value);
309
+ }
310
+ catch {
311
+ throw new Error(`HTTP header "${name}" is not a structured dictionary.`);
312
+ }
313
+ }
314
+ function encode(value) {
315
+ return new TextEncoder().encode(value);
316
+ }
317
+ function toArrayBuffer(value) {
318
+ return value.buffer.slice(value.byteOffset, value.byteOffset + value.byteLength);
319
+ }
320
+ //# sourceMappingURL=HttpMessageSignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpMessageSignature.js","sourceRoot":"","sources":["../../../src/attestation/internal/HttpMessageSignature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type * as Types from '../Types.js';
2
+ /** Creates the signing context for one outbound HTTP request attempt. */
3
+ export declare function create(): Types.SigningContext;
4
+ //# sourceMappingURL=SigningContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SigningContext.d.ts","sourceRoot":"","sources":["../../../src/attestation/internal/SigningContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAEzC,yEAAyE;AACzE,wBAAgB,MAAM,IAAI,KAAK,CAAC,cAAc,CAO7C"}
@@ -0,0 +1,11 @@
1
+ import { Base64 } from 'ox';
2
+ /** Creates the signing context for one outbound HTTP request attempt. */
3
+ export function create() {
4
+ const bytes = new Uint8Array(64);
5
+ crypto.getRandomValues(bytes);
6
+ return Object.freeze({
7
+ created: Math.floor(Date.now() / 1_000),
8
+ nonce: Base64.fromBytes(bytes, { pad: false, url: true }),
9
+ });
10
+ }
11
+ //# sourceMappingURL=SigningContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SigningContext.js","sourceRoot":"","sources":["../../../src/attestation/internal/SigningContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAI3B,yEAAyE;AACzE,MAAM,UAAU,MAAM;IACpB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KAC1D,CAAC,CAAA;AACJ,CAAC"}
@@ -30,12 +30,12 @@ export declare function resolveLocalAccount(name?: string): Promise<{
30
30
  signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
31
31
  serializer?: serializer | undefined;
32
32
  } | undefined) => Promise<import("viem").Hex>;
33
- signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
33
+ signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
34
34
  publicKey: import("viem").Hex;
35
35
  source: "privateKey";
36
- type: "local";
36
+ type: 'local';
37
37
  };
38
- source: "environment";
38
+ source: 'environment';
39
39
  accountName?: undefined;
40
40
  } | {
41
41
  account: {
@@ -51,13 +51,13 @@ export declare function resolveLocalAccount(name?: string): Promise<{
51
51
  signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
52
52
  serializer?: serializer | undefined;
53
53
  } | undefined) => Promise<import("viem").Hex>;
54
- signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
54
+ signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
55
55
  publicKey: import("viem").Hex;
56
56
  source: "privateKey";
57
- type: "local";
57
+ type: 'local';
58
58
  };
59
59
  accountName: string;
60
- source: "keychain";
60
+ source: 'keychain';
61
61
  }>;
62
62
  /** Resolves an account supported by persistent CLI sessions. */
63
63
  export declare function resolvePersistentAccount(name?: string): Promise<{
@@ -74,12 +74,12 @@ export declare function resolvePersistentAccount(name?: string): Promise<{
74
74
  signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
75
75
  serializer?: serializer | undefined;
76
76
  } | undefined) => Promise<import("viem").Hex>;
77
- signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
77
+ signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
78
78
  publicKey: import("viem").Hex;
79
79
  source: "privateKey";
80
- type: "local";
80
+ type: 'local';
81
81
  };
82
- source: "environment";
82
+ source: 'environment';
83
83
  accountName?: undefined;
84
84
  } | {
85
85
  account: {
@@ -95,13 +95,13 @@ export declare function resolvePersistentAccount(name?: string): Promise<{
95
95
  signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
96
96
  serializer?: serializer | undefined;
97
97
  } | undefined) => Promise<import("viem").Hex>;
98
- signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
98
+ signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
99
99
  publicKey: import("viem").Hex;
100
100
  source: "privateKey";
101
- type: "local";
101
+ type: 'local';
102
102
  };
103
103
  accountName: string;
104
- source: "keychain";
104
+ source: 'keychain';
105
105
  }>;
106
106
  /**
107
107
  * Resolve a CLI account to a viem `LocalAccount`.
@@ -133,9 +133,9 @@ export declare function resolveAccount(name?: string): Promise<{
133
133
  signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
134
134
  serializer?: serializer | undefined;
135
135
  } | undefined) => Promise<import("viem").Hex>;
136
- signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
136
+ signTypedData: <const typedData extends import("viem").TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<import("viem").Hex>;
137
137
  publicKey: import("viem").Hex;
138
138
  source: "privateKey";
139
- type: "local";
139
+ type: 'local';
140
140
  }>;
141
141
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/cli/account.ts"],"names":[],"mappings":"AAqCA,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC,CAMlE;AAED,wBAAgB,kBAAkB;WAOvB,MAAM;eAOF,MAAM,GAAG,IAAI;aAIf,IAAI;EAMhB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5D;AAGD,wBAAgB,cAAc,CAAC,OAAO,SAAS;YAG7B,OAAO,CAAC,MAAM,EAAE,CAAC;WAgClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;eA0BvB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cA2CvB,OAAO,CAAC,IAAI,CAAC;EAoBhC;AAED,+EAA+E;AAC/E,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;;wTA/JtC,CAAC;sBACV,CAAC;;;;;;;;;;;;;;;;;;;;wTADQ,CAAC;sBACV,CAAC;;;;;;;;;GAkLR;AAED,gEAAgE;AAChE,wBAAsB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;;wTAtL3C,CAAC;sBACV,CAAC;;;;;;;;;;;;;;;;;;;;wTADQ,CAAC;sBACV,CAAC;;;;;;;;;GAqMR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;oTAzNjC,CAAC;kBACV,CAAC;;;;;;GA0NR"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/cli/account.ts"],"names":[],"mappings":"AAqCA,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC,CAMlE;AAED,wBAAgB,kBAAkB;IAO9B,GAAG,IAAI,MAAM;IAOb,GAAG,QAAQ,MAAM,GAAG,IAAI;IAIxB,KAAK,IAAI,IAAI;EAMhB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5D;AAGD,wBAAgB,cAAc,CAAC,OAAO,SAAS;IAGrC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgCzB,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA0BlC,GAAG,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;EAoBhC;AAED,+EAA+E;AAC/E,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;YAOzC,aAAa;;;;;;;;;;;;;;;;;;;;;;YASb,UAAU;GAIvB;AAED,gEAAgE;AAChE,wBAAsB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;YAhB9C,aAAa;;;;;;;;;;;;;;;;;;;;;;YASb,UAAU;GAuBvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;GAEjD"}
package/dist/cli/cli.d.ts CHANGED
@@ -5,14 +5,10 @@ declare const cli: Cli.Cli<{
5
5
  url: string;
6
6
  };
7
7
  options: {
8
- confirm: boolean;
9
- session: string;
10
- silent: boolean;
11
- userAgent: string;
12
- verbose: number;
13
8
  account?: string | undefined;
14
9
  autoSwap?: boolean | undefined;
15
10
  config?: string | undefined;
11
+ confirm: boolean;
16
12
  currency?: string | undefined;
17
13
  data?: string | undefined;
18
14
  fail?: boolean | undefined;
@@ -23,10 +19,14 @@ declare const cli: Cli.Cli<{
23
19
  location?: boolean | undefined;
24
20
  method?: string | undefined;
25
21
  methodOpt?: string[] | undefined;
26
- network?: "testnet" | "mainnet" | undefined;
22
+ network?: "mainnet" | "testnet" | undefined;
27
23
  payWith?: string | undefined;
28
24
  rpcUrl?: string | undefined;
25
+ session: string;
26
+ silent: boolean;
29
27
  slippage?: number | undefined;
28
+ userAgent: string;
29
+ verbose: number;
30
30
  };
31
31
  };
32
32
  }, undefined, undefined, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAa,MAAM,OAAO,CAAA;AAiNtC,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAgiBP,CAAA;AA23BF,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAa,MAAM,OAAO,CAAA;AAiNtC,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAiiBP,CAAA;eA23Ba,GAAG"}
package/dist/cli/cli.js CHANGED
@@ -151,6 +151,7 @@ function findService(services, id) {
151
151
  });
152
152
  }
153
153
  const cli = Cli.create('mppx', {
154
+ mcp: { tools: { discovery: 'direct' } },
154
155
  version: packageJson.version,
155
156
  description: 'Make HTTP requests with automatic payment handling',
156
157
  usage: [{ suffix: '<url> [options]' }],