mppx 0.8.15 → 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 (464) hide show
  1. package/CHANGELOG.md +36 -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/client/Mppx.d.ts +3 -0
  66. package/dist/client/Mppx.d.ts.map +1 -1
  67. package/dist/client/Mppx.js +13 -5
  68. package/dist/client/Mppx.js.map +1 -1
  69. package/dist/client/Transport.d.ts +3 -5
  70. package/dist/client/Transport.d.ts.map +1 -1
  71. package/dist/client/Transport.js +1 -17
  72. package/dist/client/Transport.js.map +1 -1
  73. package/dist/client/internal/Fetch.d.ts.map +1 -1
  74. package/dist/client/internal/Fetch.js +2 -6
  75. package/dist/client/internal/Fetch.js.map +1 -1
  76. package/dist/client/node.js.map +1 -1
  77. package/dist/discovery/OpenApi.d.ts +3 -5
  78. package/dist/discovery/OpenApi.d.ts.map +1 -1
  79. package/dist/discovery/OpenApi.js +13 -34
  80. package/dist/discovery/OpenApi.js.map +1 -1
  81. package/dist/discovery/internal/Metadata.d.ts +20 -0
  82. package/dist/discovery/internal/Metadata.d.ts.map +1 -0
  83. package/dist/discovery/internal/Metadata.js +36 -0
  84. package/dist/discovery/internal/Metadata.js.map +1 -0
  85. package/dist/evm/Methods.d.ts +11 -11
  86. package/dist/evm/Methods.d.ts.map +1 -1
  87. package/dist/evm/Types.d.ts +17 -17
  88. package/dist/evm/Types.d.ts.map +1 -1
  89. package/dist/evm/client/Charge.d.ts +11 -11
  90. package/dist/evm/client/Methods.d.ts +11 -11
  91. package/dist/evm/server/Charge.d.ts +1 -1
  92. package/dist/evm/server/Charge.d.ts.map +1 -1
  93. package/dist/evm/server/Charge.js +2 -0
  94. package/dist/evm/server/Charge.js.map +1 -1
  95. package/dist/evm/server/Methods.d.ts +11 -11
  96. package/dist/internal/HeaderCodec.d.ts +2 -2
  97. package/dist/internal/HeaderCodec.d.ts.map +1 -1
  98. package/dist/internal/types.d.ts +6 -0
  99. package/dist/internal/types.d.ts.map +1 -1
  100. package/dist/middlewares/elysia.js.map +1 -1
  101. package/dist/middlewares/express.js.map +1 -1
  102. package/dist/middlewares/hono.js.map +1 -1
  103. package/dist/middlewares/nextjs.js.map +1 -1
  104. package/dist/proxy/Proxy.d.ts +2 -0
  105. package/dist/proxy/Proxy.d.ts.map +1 -1
  106. package/dist/proxy/Proxy.js +117 -9
  107. package/dist/proxy/Proxy.js.map +1 -1
  108. package/dist/proxy/Service.d.ts +36 -1
  109. package/dist/proxy/Service.d.ts.map +1 -1
  110. package/dist/proxy/Service.js +9 -8
  111. package/dist/proxy/Service.js.map +1 -1
  112. package/dist/proxy/services/anthropic.d.ts.map +1 -1
  113. package/dist/proxy/services/anthropic.js +1 -0
  114. package/dist/proxy/services/anthropic.js.map +1 -1
  115. package/dist/proxy/services/openai.d.ts.map +1 -1
  116. package/dist/proxy/services/openai.js +1 -0
  117. package/dist/proxy/services/openai.js.map +1 -1
  118. package/dist/proxy/services/stripe.d.ts.map +1 -1
  119. package/dist/proxy/services/stripe.js +1 -0
  120. package/dist/proxy/services/stripe.js.map +1 -1
  121. package/dist/server/Mppx.d.ts +75 -13
  122. package/dist/server/Mppx.d.ts.map +1 -1
  123. package/dist/server/Mppx.js +201 -23
  124. package/dist/server/Mppx.js.map +1 -1
  125. package/dist/server/internal/html/config.d.ts +9 -9
  126. package/dist/server/internal/html/config.d.ts.map +1 -1
  127. package/dist/server/internal/html/constants.d.ts +17 -17
  128. package/dist/server/internal/html/constants.d.ts.map +1 -1
  129. package/dist/stripe/Methods.d.ts +10 -10
  130. package/dist/stripe/Methods.d.ts.map +1 -1
  131. package/dist/stripe/client/Charge.d.ts +10 -10
  132. package/dist/stripe/client/Methods.d.ts +10 -10
  133. package/dist/stripe/internal/constants.d.ts +1 -1
  134. package/dist/stripe/internal/constants.js +1 -1
  135. package/dist/stripe/internal/types.d.ts +1 -0
  136. package/dist/stripe/internal/types.d.ts.map +1 -1
  137. package/dist/stripe/server/Charge.d.ts +11 -11
  138. package/dist/stripe/server/Charge.d.ts.map +1 -1
  139. package/dist/stripe/server/Charge.js +49 -1
  140. package/dist/stripe/server/Charge.js.map +1 -1
  141. package/dist/stripe/server/Methods.d.ts +137 -48
  142. package/dist/stripe/server/Methods.d.ts.map +1 -1
  143. package/dist/stripe/server/Methods.js +259 -4
  144. package/dist/stripe/server/Methods.js.map +1 -1
  145. package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
  146. package/dist/stripe/server/internal/deposit-address.d.ts.map +1 -0
  147. package/dist/stripe/server/internal/deposit-address.js +28 -0
  148. package/dist/stripe/server/internal/deposit-address.js.map +1 -0
  149. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  150. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  151. package/dist/stripe/server/internal/html.gen.js +1 -1
  152. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  153. package/dist/stripe/server/internal/record-payment.d.ts +15 -0
  154. package/dist/stripe/server/internal/record-payment.d.ts.map +1 -0
  155. package/dist/stripe/server/internal/record-payment.js +42 -0
  156. package/dist/stripe/server/internal/record-payment.js.map +1 -0
  157. package/dist/stripe/server/internal/request.d.ts +25 -0
  158. package/dist/stripe/server/internal/request.d.ts.map +1 -0
  159. package/dist/stripe/server/internal/request.js +29 -0
  160. package/dist/stripe/server/internal/request.js.map +1 -0
  161. package/dist/tap/Constants.d.ts +28 -0
  162. package/dist/tap/Constants.d.ts.map +1 -0
  163. package/dist/tap/Constants.js +32 -0
  164. package/dist/tap/Constants.js.map +1 -0
  165. package/dist/tap/Types.d.ts +11 -0
  166. package/dist/tap/Types.d.ts.map +1 -0
  167. package/dist/tap/Types.js +2 -0
  168. package/dist/tap/Types.js.map +1 -0
  169. package/dist/tap/client/index.d.ts +26 -0
  170. package/dist/tap/client/index.d.ts.map +1 -0
  171. package/dist/tap/client/index.js +33 -0
  172. package/dist/tap/client/index.js.map +1 -0
  173. package/dist/tap/index.d.ts +5 -0
  174. package/dist/tap/index.d.ts.map +1 -0
  175. package/dist/tap/index.js +5 -0
  176. package/dist/tap/index.js.map +1 -0
  177. package/dist/tap/server/index.d.ts +20 -0
  178. package/dist/tap/server/index.d.ts.map +1 -0
  179. package/dist/tap/server/index.js +36 -0
  180. package/dist/tap/server/index.js.map +1 -0
  181. package/dist/tempo/Attribution.d.ts +1 -1
  182. package/dist/tempo/Methods.d.ts +60 -60
  183. package/dist/tempo/Methods.d.ts.map +1 -1
  184. package/dist/tempo/Proof.d.ts +16 -16
  185. package/dist/tempo/client/Charge.d.ts +19 -19
  186. package/dist/tempo/client/Charge.d.ts.map +1 -1
  187. package/dist/tempo/client/Charge.js +1 -7
  188. package/dist/tempo/client/Charge.js.map +1 -1
  189. package/dist/tempo/client/Methods.d.ts +38 -38
  190. package/dist/tempo/client/Methods.js.map +1 -1
  191. package/dist/tempo/client/Subscription.d.ts +23 -23
  192. package/dist/tempo/client/Subscription.js.map +1 -1
  193. package/dist/tempo/internal/address.d.ts +2 -1
  194. package/dist/tempo/internal/address.d.ts.map +1 -1
  195. package/dist/tempo/internal/address.js +3 -1
  196. package/dist/tempo/internal/address.js.map +1 -1
  197. package/dist/tempo/internal/auto-swap.d.ts.map +1 -1
  198. package/dist/tempo/internal/auto-swap.js +4 -19
  199. package/dist/tempo/internal/auto-swap.js.map +1 -1
  200. package/dist/tempo/internal/defaults.d.ts +6 -6
  201. package/dist/tempo/internal/defaults.d.ts.map +1 -1
  202. package/dist/tempo/internal/fee-payer.d.ts +12 -12
  203. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  204. package/dist/tempo/internal/fee-payer.js.map +1 -1
  205. package/dist/tempo/internal/proof.d.ts +17 -17
  206. package/dist/tempo/internal/proof.d.ts.map +1 -1
  207. package/dist/tempo/legacy/client/Session.d.ts +20 -20
  208. package/dist/tempo/legacy/client/Session.js.map +1 -1
  209. package/dist/tempo/legacy/client/SessionManager.js.map +1 -1
  210. package/dist/tempo/legacy/index.d.ts +1 -3
  211. package/dist/tempo/legacy/index.d.ts.map +1 -1
  212. package/dist/tempo/legacy/index.js +1 -3
  213. package/dist/tempo/legacy/index.js.map +1 -1
  214. package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
  215. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +1 -1
  216. package/dist/tempo/server/Charge.d.ts +25 -11
  217. package/dist/tempo/server/Charge.d.ts.map +1 -1
  218. package/dist/tempo/server/Charge.js +44 -39
  219. package/dist/tempo/server/Charge.js.map +1 -1
  220. package/dist/tempo/server/Methods.d.ts +37 -52
  221. package/dist/tempo/server/Methods.d.ts.map +1 -1
  222. package/dist/tempo/server/Methods.js +0 -14
  223. package/dist/tempo/server/Methods.js.map +1 -1
  224. package/dist/tempo/server/Relay.d.ts +1 -1
  225. package/dist/tempo/server/Relay.d.ts.map +1 -1
  226. package/dist/tempo/server/Relay.js +2 -2
  227. package/dist/tempo/server/Relay.js.map +1 -1
  228. package/dist/tempo/server/Subscription.d.ts +25 -25
  229. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  230. package/dist/tempo/server/Subscription.js +2 -0
  231. package/dist/tempo/server/Subscription.js.map +1 -1
  232. package/dist/tempo/server/index.d.ts +1 -1
  233. package/dist/tempo/server/index.d.ts.map +1 -1
  234. package/dist/tempo/server/index.js +1 -1
  235. package/dist/tempo/server/index.js.map +1 -1
  236. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  237. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  238. package/dist/tempo/server/internal/html.gen.js +1 -1
  239. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  240. package/dist/tempo/server/internal/transport.d.ts +2 -0
  241. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  242. package/dist/tempo/server/internal/transport.js +9 -2
  243. package/dist/tempo/server/internal/transport.js.map +1 -1
  244. package/dist/tempo/session/client/ChannelOps.js.map +1 -1
  245. package/dist/tempo/session/client/CredentialState.d.ts +1 -1
  246. package/dist/tempo/session/client/CredentialState.js.map +1 -1
  247. package/dist/tempo/session/client/ReceiptCoordinator.js.map +1 -1
  248. package/dist/tempo/session/client/Runtime.js.map +1 -1
  249. package/dist/tempo/session/client/Session.d.ts +19 -19
  250. package/dist/tempo/session/client/Session.js.map +1 -1
  251. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  252. package/dist/tempo/session/client/Transports.d.ts.map +1 -1
  253. package/dist/tempo/session/precompile/Chain.d.ts +27 -0
  254. package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
  255. package/dist/tempo/session/precompile/Chain.js +68 -7
  256. package/dist/tempo/session/precompile/Chain.js.map +1 -1
  257. package/dist/tempo/session/precompile/Protocol.js.map +1 -1
  258. package/dist/tempo/session/precompile/Voucher.d.ts +4 -4
  259. package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -1
  260. package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
  261. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +1 -1
  262. package/dist/tempo/session/server/ChannelStore.d.ts +9 -0
  263. package/dist/tempo/session/server/ChannelStore.d.ts.map +1 -1
  264. package/dist/tempo/session/server/ChannelStore.js +16 -8
  265. package/dist/tempo/session/server/ChannelStore.js.map +1 -1
  266. package/dist/tempo/session/server/CredentialVerification.d.ts +30 -13
  267. package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -1
  268. package/dist/tempo/session/server/CredentialVerification.js +207 -13
  269. package/dist/tempo/session/server/CredentialVerification.js.map +1 -1
  270. package/dist/tempo/session/server/MeteredStream.d.ts +3 -0
  271. package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -1
  272. package/dist/tempo/session/server/MeteredStream.js +3 -1
  273. package/dist/tempo/session/server/MeteredStream.js.map +1 -1
  274. package/dist/tempo/session/server/Session.d.ts +32 -21
  275. package/dist/tempo/session/server/Session.d.ts.map +1 -1
  276. package/dist/tempo/session/server/Session.js +116 -53
  277. package/dist/tempo/session/server/Session.js.map +1 -1
  278. package/dist/tempo/session/server/Sse.d.ts +3 -1
  279. package/dist/tempo/session/server/Sse.d.ts.map +1 -1
  280. package/dist/tempo/session/server/Sse.js +2 -1
  281. package/dist/tempo/session/server/Sse.js.map +1 -1
  282. package/dist/tempo/session/server/Transports.d.ts +1 -1
  283. package/dist/tempo/session/server/Transports.d.ts.map +1 -1
  284. package/dist/tempo/session/server/Transports.js +1 -0
  285. package/dist/tempo/session/server/Transports.js.map +1 -1
  286. package/dist/tempo/session/server/Ws.d.ts +6 -1
  287. package/dist/tempo/session/server/Ws.d.ts.map +1 -1
  288. package/dist/tempo/session/server/Ws.js +1 -0
  289. package/dist/tempo/session/server/Ws.js.map +1 -1
  290. package/dist/tempo/subscription/KeyAuthorization.d.ts +39 -39
  291. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  292. package/dist/viem/Account.d.ts.map +1 -1
  293. package/dist/viem/Account.js.map +1 -1
  294. package/dist/web-bot-auth/Constants.d.ts +20 -0
  295. package/dist/web-bot-auth/Constants.d.ts.map +1 -0
  296. package/dist/web-bot-auth/Constants.js +24 -0
  297. package/dist/web-bot-auth/Constants.js.map +1 -0
  298. package/dist/web-bot-auth/Types.d.ts +10 -0
  299. package/dist/web-bot-auth/Types.d.ts.map +1 -0
  300. package/dist/web-bot-auth/Types.js +2 -0
  301. package/dist/web-bot-auth/Types.js.map +1 -0
  302. package/dist/web-bot-auth/client/index.d.ts +29 -0
  303. package/dist/web-bot-auth/client/index.d.ts.map +1 -0
  304. package/dist/web-bot-auth/client/index.js +64 -0
  305. package/dist/web-bot-auth/client/index.js.map +1 -0
  306. package/dist/web-bot-auth/index.d.ts +7 -0
  307. package/dist/web-bot-auth/index.d.ts.map +1 -0
  308. package/dist/web-bot-auth/index.js +7 -0
  309. package/dist/web-bot-auth/index.js.map +1 -0
  310. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
  311. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +1 -0
  312. package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
  313. package/dist/web-bot-auth/internal/JwkThumbprint.js.map +1 -0
  314. package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
  315. package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +1 -0
  316. package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
  317. package/dist/web-bot-auth/internal/SignatureAgent.js.map +1 -0
  318. package/dist/web-bot-auth/server/index.d.ts +35 -0
  319. package/dist/web-bot-auth/server/index.d.ts.map +1 -0
  320. package/dist/web-bot-auth/server/index.js +88 -0
  321. package/dist/web-bot-auth/server/index.js.map +1 -0
  322. package/dist/x402/Assets.d.ts.map +1 -1
  323. package/dist/x402/Types.d.ts +6 -6
  324. package/dist/x402/Types.d.ts.map +1 -1
  325. package/dist/x402/server/EvmCharge.d.ts.map +1 -1
  326. package/dist/x402/server/EvmCharge.js +32 -20
  327. package/dist/x402/server/EvmCharge.js.map +1 -1
  328. package/package.json +19 -3
  329. package/src/Challenge.fuzz.test.ts +80 -47
  330. package/src/Challenge.test.ts +65 -0
  331. package/src/Challenge.ts +39 -35
  332. package/src/Method.ts +82 -68
  333. package/src/Store.test-d.ts +16 -0
  334. package/src/Store.test.ts +50 -0
  335. package/src/Store.ts +68 -0
  336. package/src/attestation/Attestation.integration.test.ts +208 -0
  337. package/src/attestation/Client.test.ts +83 -0
  338. package/src/attestation/Client.ts +34 -0
  339. package/src/attestation/Constants.ts +15 -0
  340. package/src/attestation/Server.test.ts +60 -0
  341. package/src/attestation/Server.ts +12 -0
  342. package/src/attestation/Types.test-d.ts +54 -0
  343. package/src/attestation/Types.ts +77 -0
  344. package/src/attestation/index.ts +5 -0
  345. package/src/attestation/internal/HttpMessageSignature.test.ts +101 -0
  346. package/src/attestation/internal/HttpMessageSignature.ts +429 -0
  347. package/src/attestation/internal/SigningContext.ts +13 -0
  348. package/src/bin.js +2 -0
  349. package/src/cli/cli.ts +1 -0
  350. package/src/client/Mppx.test-d.ts +17 -0
  351. package/src/client/Mppx.test.ts +14 -14
  352. package/src/client/Mppx.ts +25 -4
  353. package/src/client/Transport.test.ts +12 -45
  354. package/src/client/Transport.ts +3 -24
  355. package/src/client/internal/Fetch.ts +2 -6
  356. package/src/discovery/OpenApi.test.ts +170 -0
  357. package/src/discovery/OpenApi.ts +16 -48
  358. package/src/discovery/internal/Metadata.ts +51 -0
  359. package/src/evm/server/Charge.ts +6 -1
  360. package/src/internal/AcceptPayment.test.ts +12 -8
  361. package/src/internal/types.ts +9 -0
  362. package/src/mcp/client/McpClient.integration.test.ts +19 -32
  363. package/src/middlewares/elysia.test.ts +2 -12
  364. package/src/middlewares/express.test.ts +2 -12
  365. package/src/middlewares/hono.test.ts +6 -9
  366. package/src/middlewares/nextjs.test.ts +2 -12
  367. package/src/proxy/Proxy.test.ts +26 -19
  368. package/src/proxy/Proxy.ts +147 -9
  369. package/src/proxy/Proxy.upstreamError.test.ts +364 -0
  370. package/src/proxy/Service.test.ts +73 -3
  371. package/src/proxy/Service.ts +50 -23
  372. package/src/proxy/services/anthropic.ts +1 -0
  373. package/src/proxy/services/hooks.test-d.ts +14 -0
  374. package/src/proxy/services/hooks.test.ts +44 -0
  375. package/src/proxy/services/openai.ts +1 -0
  376. package/src/proxy/services/stripe.ts +1 -0
  377. package/src/server/Methods.test-d.ts +88 -0
  378. package/src/server/Methods.test.ts +69 -0
  379. package/src/server/Mppx.test-d.ts +141 -7
  380. package/src/server/Mppx.test.ts +1017 -119
  381. package/src/server/Mppx.ts +350 -54
  382. package/src/stripe/internal/constants.ts +1 -1
  383. package/src/stripe/internal/types.ts +1 -0
  384. package/src/stripe/server/Charge.test-d.ts +16 -1
  385. package/src/stripe/server/Charge.test.ts +79 -0
  386. package/src/stripe/server/Charge.ts +54 -1
  387. package/src/stripe/server/Methods.test-d.ts +157 -0
  388. package/src/stripe/server/Methods.test.ts +403 -0
  389. package/src/stripe/server/Methods.ts +423 -6
  390. package/src/stripe/server/internal/deposit-address.ts +57 -0
  391. package/src/stripe/server/internal/html/node_modules/.bin/mppx +3 -3
  392. package/src/stripe/server/internal/html/package.json +1 -1
  393. package/src/stripe/server/internal/html.gen.ts +1 -1
  394. package/src/stripe/server/internal/record-payment.ts +66 -0
  395. package/src/stripe/server/internal/request.ts +49 -0
  396. package/src/tap/Constants.ts +32 -0
  397. package/src/tap/Tap.test.ts +125 -0
  398. package/src/tap/Types.ts +11 -0
  399. package/src/tap/client/index.ts +54 -0
  400. package/src/tap/index.ts +4 -0
  401. package/src/tap/server/index.ts +48 -0
  402. package/src/tempo/PublicExports.test-d.ts +3 -3
  403. package/src/tempo/client/Charge.ts +1 -19
  404. package/src/tempo/internal/address.test.ts +42 -0
  405. package/src/tempo/internal/address.ts +3 -3
  406. package/src/tempo/internal/auto-swap.test.ts +4 -4
  407. package/src/tempo/internal/auto-swap.ts +7 -50
  408. package/src/tempo/legacy/README.md +5 -5
  409. package/src/tempo/legacy/index.ts +1 -3
  410. package/src/tempo/server/AtomicStore.test-d.ts +13 -0
  411. package/src/tempo/server/Charge.test.ts +19 -84
  412. package/src/tempo/server/Charge.ts +83 -55
  413. package/src/tempo/server/Methods.ts +0 -20
  414. package/src/tempo/server/Relay.test.ts +5 -5
  415. package/src/tempo/server/Relay.ts +2 -2
  416. package/src/tempo/server/Subscription.ts +4 -1
  417. package/src/tempo/server/index.ts +1 -1
  418. package/src/tempo/server/internal/html/node_modules/.bin/mppx +3 -3
  419. package/src/tempo/server/internal/html/package.json +1 -1
  420. package/src/tempo/server/internal/html.gen.ts +1 -1
  421. package/src/tempo/server/internal/transport.test.ts +22 -3
  422. package/src/tempo/server/internal/transport.ts +15 -3
  423. package/src/tempo/session/README.md +112 -0
  424. package/src/tempo/session/precompile/Chain.ts +131 -11
  425. package/src/tempo/session/server/ChannelStore.ts +33 -12
  426. package/src/tempo/session/server/CredentialVerification.test.ts +4 -4
  427. package/src/tempo/session/server/CredentialVerification.ts +340 -28
  428. package/src/tempo/session/server/MeteredStream.ts +5 -1
  429. package/src/tempo/session/server/Session.test.ts +428 -43
  430. package/src/tempo/session/server/Session.ts +159 -60
  431. package/src/tempo/session/server/Sse.test.ts +77 -0
  432. package/src/tempo/session/server/Sse.ts +8 -1
  433. package/src/tempo/session/server/Transports.ts +2 -1
  434. package/src/tempo/session/server/Ws.test.ts +171 -0
  435. package/src/tempo/session/server/Ws.ts +7 -1
  436. package/src/web-bot-auth/Constants.ts +24 -0
  437. package/src/web-bot-auth/Types.ts +9 -0
  438. package/src/web-bot-auth/WebBotAuth.test.ts +182 -0
  439. package/src/web-bot-auth/client/index.ts +84 -0
  440. package/src/web-bot-auth/index.ts +6 -0
  441. package/src/web-bot-auth/internal/JwkThumbprint.ts +21 -0
  442. package/src/web-bot-auth/internal/SignatureAgent.ts +18 -0
  443. package/src/web-bot-auth/server/index.ts +113 -0
  444. package/src/x402/Exact.e2e.test.ts +121 -81
  445. package/src/x402/Exact.localnet.test.ts +1 -1
  446. package/src/x402/server/EvmCharge.ts +35 -19
  447. package/dist/tempo/legacy/server/Session.d.ts +0 -208
  448. package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
  449. package/dist/tempo/legacy/server/Session.js +0 -698
  450. package/dist/tempo/legacy/server/Session.js.map +0 -1
  451. package/dist/tempo/legacy/server/index.d.ts +0 -5
  452. package/dist/tempo/legacy/server/index.d.ts.map +0 -1
  453. package/dist/tempo/legacy/server/index.js +0 -5
  454. package/dist/tempo/legacy/server/index.js.map +0 -1
  455. package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
  456. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
  457. package/dist/tempo/legacy/session/ChannelStore.js +0 -6
  458. package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
  459. package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
  460. package/src/tempo/legacy/server/Session.test.ts +0 -6370
  461. package/src/tempo/legacy/server/Session.ts +0 -1024
  462. package/src/tempo/legacy/server/index.ts +0 -4
  463. package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
  464. package/src/tempo/legacy/session/ChannelStore.ts +0 -39
package/dist/Store.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { MaybePromise } from './internal/types.js';
1
2
  export type StoreItemMap = Record<string, unknown>;
2
3
  /**
3
4
  * Describes the outcome of an atomic {@link Update} callback.
@@ -27,6 +28,13 @@ export type Change<value, result> = {
27
28
  * must be synchronous and free of side effects.
28
29
  */
29
30
  export type Update<itemMap extends StoreItemMap = StoreItemMap> = <key extends keyof itemMap & string, result>(key: key, fn: (current: itemMap[key] | null) => Change<itemMap[key], result>) => Promise<result>;
31
+ /** Attempts to atomically record first use of a replay key through its expiry. */
32
+ export type TryClaim<itemMap extends StoreItemMap = StoreItemMap> = <key extends keyof itemMap & string>(key: key, expires: number) => MaybePromise<boolean>;
33
+ /** Persisted marker used by the {@link tryClaim} fallback. */
34
+ export type ReplayMarker = {
35
+ expires: number;
36
+ type: 'mppx:replay';
37
+ };
30
38
  /** Base key-value actions available on every {@link Store}. */
31
39
  export type StoreActions<itemMap extends StoreItemMap = StoreItemMap> = {
32
40
  get: <key extends keyof itemMap & string>(key: key) => Promise<itemMap[key] | null>;
@@ -36,6 +44,8 @@ export type StoreActions<itemMap extends StoreItemMap = StoreItemMap> = {
36
44
  /** Atomic actions that can be provided via the `extended` slot. */
37
45
  export type AtomicActions<itemMap extends StoreItemMap = StoreItemMap> = {
38
46
  update: Update<itemMap>;
47
+ /** Optional single-operation fast path for recording expiring replay keys. */
48
+ tryClaim?: TryClaim<itemMap> | undefined;
39
49
  };
40
50
  /**
41
51
  * Async key-value store.
@@ -54,6 +64,15 @@ export type Store<itemMap extends StoreItemMap = StoreItemMap, extended extends
54
64
  * Equivalent to `Store<itemMap, AtomicActions<itemMap>>`.
55
65
  */
56
66
  export type AtomicStore<itemMap extends StoreItemMap = StoreItemMap> = Store<itemMap, AtomicActions<itemMap>>;
67
+ /**
68
+ * Attempts to atomically record first use of a replay key through its expiry.
69
+ *
70
+ * Returns `true` when this call recorded the key and `false` when it was already
71
+ * recorded and unexpired. `expires` is a Unix timestamp in milliseconds.
72
+ * Uses the adapter's optimized primitive when available and otherwise falls
73
+ * back to {@link AtomicStore.update}.
74
+ */
75
+ export declare function tryClaim<itemMap extends StoreItemMap, key extends keyof itemMap & string>(store: AtomicStore<itemMap>, key: key, expires: number): MaybePromise<boolean>;
57
76
  /** Options shared by store constructors. */
58
77
  export type Options = {
59
78
  /** Prefix prepended to every backing store key. */
@@ -1 +1 @@
1
- {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
package/dist/Store.js CHANGED
@@ -15,6 +15,35 @@
15
15
  * `AtomicActions`, just like Viem's `PublicClient = Client<..., PublicActions>`.
16
16
  */
17
17
  import { Json } from 'ox';
18
+ /**
19
+ * Attempts to atomically record first use of a replay key through its expiry.
20
+ *
21
+ * Returns `true` when this call recorded the key and `false` when it was already
22
+ * recorded and unexpired. `expires` is a Unix timestamp in milliseconds.
23
+ * Uses the adapter's optimized primitive when available and otherwise falls
24
+ * back to {@link AtomicStore.update}.
25
+ */
26
+ export function tryClaim(store, key, expires) {
27
+ if (store.tryClaim)
28
+ return store.tryClaim(key, expires);
29
+ return store.update(key, (current) => {
30
+ if (current !== null && (!isReplayMarker(current) || current.expires > Date.now()))
31
+ return { op: 'noop', result: false };
32
+ return {
33
+ op: 'set',
34
+ value: { expires, type: 'mppx:replay' },
35
+ result: true,
36
+ };
37
+ });
38
+ }
39
+ function isReplayMarker(value) {
40
+ return (typeof value === 'object' &&
41
+ value !== null &&
42
+ 'expires' in value &&
43
+ typeof value.expires === 'number' &&
44
+ 'type' in value &&
45
+ value.type === 'mppx:replay');
46
+ }
18
47
  const keyPrefixCache = new WeakMap();
19
48
  export function from(store, options) {
20
49
  return withKeyPrefix(store, options?.keyPrefix);
@@ -44,6 +73,13 @@ function withKeyPrefix(store, keyPrefix = '') {
44
73
  },
45
74
  }
46
75
  : {}),
76
+ ...('tryClaim' in store && typeof store.tryClaim === 'function'
77
+ ? {
78
+ tryClaim(key, expires) {
79
+ return store.tryClaim(prefixedKey(key), expires);
80
+ },
81
+ }
82
+ : {}),
47
83
  });
48
84
  const cachedByPrefix = keyPrefixCache.get(store) ?? new Map();
49
85
  cachedByPrefix.set(keyPrefix, prefixed);
@@ -107,6 +143,13 @@ export function memory(options) {
107
143
  store.delete(key);
108
144
  return change.result;
109
145
  },
146
+ tryClaim(key, expires) {
147
+ const current = store.has(key) ? Json.parse(store.get(key)) : null;
148
+ if (current !== null && (!isReplayMarker(current) || current.expires > Date.now()))
149
+ return false;
150
+ store.set(key, Json.stringify({ expires, type: 'mppx:replay' }));
151
+ return true;
152
+ },
110
153
  }, options);
111
154
  }
112
155
  export function redis(client, options) {
package/dist/Store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Store.js","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAA;AAwFzB;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,KAA2B,EAC3B,GAAQ,EACR,OAAe;IAEf,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACvD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QACnC,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QACtC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAkB;YACvD,MAAM,EAAE,IAAI;SACb,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,aAAa,CAC7B,CAAA;AACH,CAAC;AAQD,MAAM,cAAc,GAAG,IAAI,OAAO,EAA2C,CAAA;AAK7E,MAAM,UAAU,IAAI,CAAC,KAA0B,EAAE,OAAiB;IAChE,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,KAA0B,EAAE,SAAS,GAAG,EAAE;IAC/D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAE5B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACxD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,OAAO,GAAG,KAAc,CAAA;IAC9B,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,GAAG,EAAE,CAAA;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAqB,CAAA;QAC1D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAc;YACnC,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAW;YACtB,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QACxC,CAAC;QACD,GAAG,CAAC,QAAQ,IAAI,KAAK;YACnB,CAAC,CAAC;gBACE,KAAK,CAAC,MAAM,CACV,GAAW,EACX,EAAwD;oBAExD,OAAQ,KAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAW,CAAC,CAAA;gBACrE,CAAC;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU;YAC7D,CAAC,CAAC;gBACE,QAAQ,CAAC,GAAW,EAAE,OAAe;oBACnC,OAAO,KAAK,CAAC,QAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;gBACnD,CAAC;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACsB,CAAC,CAAA;IAEhC,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAA+B,CAAA;IAC1F,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACvC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACzC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,cAAc,CACrB,MAKa;IAEb,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IACtB,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;YAClB,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAW,CAAA;gBACtE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;gBACzB,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK;oBAAE,OAAO,MAAM,CAAA;gBACtC,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;YAC3D,CAAC,CAAC,CAAA;QACJ,CAAC;KACsB,CAAA;AAC3B,CAAC;AAQD,MAAM,UAAU,UAAU,CAAC,EAAyB,EAAE,OAA4B;IAChF,OAAO,IAAI,CACT;QACE,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC7B,IAAI,GAAG,IAAI,IAAI;gBAAE,OAAO,IAAW,CAAA;YACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAa,CAAC,CAAA;QAClC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAc;YACnC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAW;YACtB,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,GAAG,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC;KAC7B,EACD,OAAO,CACR,CAAA;AACH,CAAC;AAuBD,8FAA8F;AAC9F,MAAM,UAAU,MAAM,CAAC,OAAwB;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,OAAO,IAAI,CACT;QACE,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC1B,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,IAAW,CAAA;YACzC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAc;YACnC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAW;YACtB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;QACD,KAAK,CAAC,MAAM,CAAS,GAAW,EAAE,EAAwD;YACxF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAW,CAAC,CAAC,CAAC,IAAI,CAAA;YAC9E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAA;YAC1B,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YACrE,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ;gBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC7C,OAAO,MAAM,CAAC,MAAM,CAAA;QACtB,CAAC;QACD,QAAQ,CAAC,GAAW,EAAE,OAAe;YACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACnE,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChF,OAAO,KAAK,CAAA;YACd,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;YAChE,OAAO,IAAI,CAAA;QACb,CAAC;KACF,EACD,OAAO,CACR,CAAA;AACH,CAAC;AAYD,MAAM,UAAU,KAAK,CAAC,MAAwB,EAAE,OAAuB;IACrE,OAAO,IAAI,CACT;QACE,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,GAAG,IAAI,IAAI;gBAAE,OAAO,IAAW,CAAA;YACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAc;YACnC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAW;YACtB,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QACD,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;KACjC,EACD,OAAO,CACR,CAAA;AACH,CAAC;AA0BD,MAAM,UAAU,OAAO,CAAC,KAAyB,EAAE,OAAyB;IAC1E,OAAO,IAAI,CACT;QACE,KAAK,CAAC,GAAG,CAAC,GAAW;YACnB,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAQ,CAAA;QACtC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAc;YACnC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAW;YACtB,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC;gBACE,MAAM,EAAE,KAAK,CAAC,MAAgB;aAC/B;YACH,CAAC,CAAC,EAAE,CAAC;KACR,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type * as Types from './Types.js';
2
+ /**
3
+ * Combines request signers using one shared context per call.
4
+ *
5
+ * The returned signer creates a fresh context unless its caller supplies one,
6
+ * allowing every signature on one HTTP attempt to share a nonce and timestamp.
7
+ */
8
+ export declare function composeSigners(...signers: readonly [Types.Signer, ...Types.Signer[]]): Types.Signer<'composed'>;
9
+ /**
10
+ * Wraps a fetch implementation so every outbound request is attested.
11
+ *
12
+ * Configure this wrapper as the underlying `fetch` passed to `mppx/client`
13
+ * `Fetch.from()`. MPPX then uses it for both the initial request and its
14
+ * automatic request containing an `Authorization: Payment` credential.
15
+ */
16
+ export declare function wrapFetch(fetch: typeof globalThis.fetch, signer: Types.Signer): typeof globalThis.fetch;
17
+ //# sourceMappingURL=Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/attestation/Client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GACrD,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAQ1B;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,EAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,GACnB,OAAO,UAAU,CAAC,KAAK,CAEzB"}
@@ -0,0 +1,28 @@
1
+ import * as SigningContext from './internal/SigningContext.js';
2
+ /**
3
+ * Combines request signers using one shared context per call.
4
+ *
5
+ * The returned signer creates a fresh context unless its caller supplies one,
6
+ * allowing every signature on one HTTP attempt to share a nonce and timestamp.
7
+ */
8
+ export function composeSigners(...signers) {
9
+ return {
10
+ protocol: 'composed',
11
+ async sign(request, context = SigningContext.create()) {
12
+ for (const signer of signers)
13
+ request = await signer.sign(request, context);
14
+ return request;
15
+ },
16
+ };
17
+ }
18
+ /**
19
+ * Wraps a fetch implementation so every outbound request is attested.
20
+ *
21
+ * Configure this wrapper as the underlying `fetch` passed to `mppx/client`
22
+ * `Fetch.from()`. MPPX then uses it for both the initial request and its
23
+ * automatic request containing an `Authorization: Payment` credential.
24
+ */
25
+ export function wrapFetch(fetch, signer) {
26
+ return async (input, init) => fetch(await signer.sign(new Request(input, init)));
27
+ }
28
+ //# sourceMappingURL=Client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/attestation/Client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAG,OAAmD;IAEtD,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE;YACnD,KAAK,MAAM,MAAM,IAAI,OAAO;gBAAE,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3E,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,KAA8B,EAC9B,MAAoB;IAEpB,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAClF,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** RFC 9421 signature algorithms supported by request attestation. */
2
+ export declare const Algorithms: {
3
+ /** EdDSA using the Ed25519 curve. */
4
+ readonly ed25519: 'ed25519';
5
+ /** RSASSA-PSS using SHA-512 and a 64-byte salt. */
6
+ readonly rsaPssSha512: 'rsa-pss-sha512';
7
+ };
8
+ /** HTTP headers defined by RFC 9421 for request-attestation signatures. */
9
+ export declare const Headers: {
10
+ /** Carries the RFC 9421 signature bytes. */
11
+ readonly signature: 'Signature';
12
+ /** Carries the RFC 9421 covered components and signature parameters. */
13
+ readonly signatureInput: 'Signature-Input';
14
+ };
15
+ //# sourceMappingURL=Constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../src/attestation/Constants.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,eAAO,MAAM,UAAU;IACrB,qCAAqC;aACrC,OAAO,EAAE,SAAS;IAClB,mDAAmD;aACnD,YAAY,EAAE,gBAAgB;CACtB,CAAA;AAEV,2EAA2E;AAC3E,eAAO,MAAM,OAAO;IAClB,4CAA4C;aAC5C,SAAS,EAAE,WAAW;IACtB,wEAAwE;aACxE,cAAc,EAAE,iBAAiB;CACzB,CAAA"}
@@ -0,0 +1,15 @@
1
+ /** RFC 9421 signature algorithms supported by request attestation. */
2
+ export const Algorithms = {
3
+ /** EdDSA using the Ed25519 curve. */
4
+ ed25519: 'ed25519',
5
+ /** RSASSA-PSS using SHA-512 and a 64-byte salt. */
6
+ rsaPssSha512: 'rsa-pss-sha512',
7
+ };
8
+ /** HTTP headers defined by RFC 9421 for request-attestation signatures. */
9
+ export const Headers = {
10
+ /** Carries the RFC 9421 signature bytes. */
11
+ signature: 'Signature',
12
+ /** Carries the RFC 9421 covered components and signature parameters. */
13
+ signatureInput: 'Signature-Input',
14
+ };
15
+ //# sourceMappingURL=Constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/attestation/Constants.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qCAAqC;IACrC,OAAO,EAAE,SAAS;IAClB,mDAAmD;IACnD,YAAY,EAAE,gBAAgB;CACtB,CAAA;AAEV,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,4CAA4C;IAC5C,SAAS,EAAE,WAAW;IACtB,wEAAwE;IACxE,cAAc,EAAE,iBAAiB;CACzB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type * as Types from './Types.js';
2
+ /** Verifies every configured request-attestation protocol. */
3
+ export declare function verify<const verifiers extends Types.VerifierMap>(request: Request, verifiers: verifiers): Promise<Types.VerificationsFrom<verifiers>>;
4
+ //# sourceMappingURL=Server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../src/attestation/Server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,8DAA8D;AAC9D,wBAAsB,MAAM,CAAC,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,WAAW,EACpE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAK7C"}
@@ -0,0 +1,8 @@
1
+ /** Verifies every configured request-attestation protocol. */
2
+ export async function verify(request, verifiers) {
3
+ const outcomes = {};
4
+ for (const [name, verifier] of Object.entries(verifiers))
5
+ outcomes[name] = await verifier.verify(request);
6
+ return outcomes;
7
+ }
8
+ //# sourceMappingURL=Server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/attestation/Server.ts"],"names":[],"mappings":"AAEA,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAgB,EAChB,SAAoB;IAEpB,MAAM,QAAQ,GAAuC,EAAE,CAAA;IACvD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,OAAO,QAA8C,CAAA;AACvD,CAAC"}
@@ -0,0 +1,76 @@
1
+ import type { MaybePromise } from '../internal/types.js';
2
+ import type { Algorithms } from './Constants.js';
3
+ /** RFC 9421 algorithms implemented by the request-attestation signer and verifier. */
4
+ export type SignatureAlgorithm = (typeof Algorithms)[keyof typeof Algorithms];
5
+ /** Resolves a trusted public key for a parsed request signature. */
6
+ export type KeyResolver = (parameters: {
7
+ /** RFC 9421 algorithm declared by the signature. */
8
+ algorithm: SignatureAlgorithm;
9
+ /** Key identifier declared by the signature. */
10
+ keyId: string;
11
+ /** Request carrying the signature. */
12
+ request: Request;
13
+ }) => MaybePromise<CryptoKey | undefined>;
14
+ /**
15
+ * The complete outcome of attempting one protocol verifier.
16
+ *
17
+ * `absent` means the protocol did not appear on the request. `invalid` means
18
+ * it appeared but failed validation and must reject the request. `unverified`
19
+ * means key material or another required verification dependency was unavailable.
20
+ * `verified` carries protocol-specific data that is safe for callers to inspect.
21
+ */
22
+ export type Verification<value = unknown> = {
23
+ status: 'absent';
24
+ } | {
25
+ status: 'invalid';
26
+ reason: string;
27
+ } | {
28
+ status: 'unverified';
29
+ reason: string;
30
+ } | {
31
+ status: 'verified';
32
+ value: value;
33
+ };
34
+ /**
35
+ * Verifies one request-attestation protocol carried by an HTTP request.
36
+ *
37
+ * Verifiers are registered in a {@link VerifierMap}; each map key names the
38
+ * result returned to the caller.
39
+ */
40
+ export type Verifier<value = unknown> = {
41
+ /** Validates the request and returns a complete protocol verification outcome. */
42
+ verify: (request: Request) => MaybePromise<Verification<value>>;
43
+ };
44
+ /** Maps each recognized protocol name to its verifier. */
45
+ export type VerifierMap = Readonly<Record<string, Verifier>>;
46
+ /** Preserves each configured protocol's complete verification outcome. */
47
+ export type VerificationsFrom<verifiers extends VerifierMap> = {
48
+ readonly [protocol in keyof verifiers]: Awaited<ReturnType<verifiers[protocol]['verify']>>;
49
+ };
50
+ /**
51
+ * Values shared by every signer contributing to one HTTP request attempt.
52
+ *
53
+ * A caller may reuse this context across independent signature protocols so
54
+ * they describe the same attempt. A later network retry must use a new context.
55
+ */
56
+ export type SigningContext = {
57
+ /** Unix timestamp, in seconds, at which the request attempt was created. */
58
+ readonly created: number;
59
+ /** Base64url-encoded random value identifying this request attempt. */
60
+ readonly nonce: string;
61
+ };
62
+ /**
63
+ * Signs each outbound HTTP request, including MPP payment retries.
64
+ *
65
+ * The protocol type preserves which adapter produced the signer for diagnostics
66
+ * and composition, without asserting that the signer alone authorizes payment.
67
+ */
68
+ export type Signer<protocol extends string = string> = {
69
+ /** Protocol identifier used for diagnostics. */
70
+ protocol: protocol;
71
+ /** Returns a new request containing the protocol's signature material. */
72
+ sign: (request: Request, context?: SigningContext | undefined) => MaybePromise<Request>;
73
+ };
74
+ /** Maps application-defined names to request-attestation signers. */
75
+ export type SignerMap = Readonly<Record<string, Signer>>;
76
+ //# sourceMappingURL=Types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/attestation/Types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,sFAAsF;AACtF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAE7E,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE;IACrC,oDAAoD;IACpD,SAAS,EAAE,kBAAkB,CAAA;IAC7B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;CACjB,KAAK,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;AAEzC;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,CAAC,KAAK,GAAG,OAAO,IACpC;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAExC;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,GAAG,OAAO,IAAI;IACtC,kFAAkF;IAClF,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;CAChE,CAAA;AAED,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE5D,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,CAAC,SAAS,SAAS,WAAW,IAAI;IAC7D,QAAQ,EAAE,QAAQ,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC3F,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,MAAM,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,gDAAgD;IAChD,QAAQ,EAAE,QAAQ,CAAA;IAClB,0EAA0E;IAC1E,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,KAAK,YAAY,CAAC,OAAO,CAAC,CAAA;CACxF,CAAA;AAED,qEAAqE;AACrE,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/attestation/Types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * as Client from './Client.js';
2
+ export * as Server from './Server.js';
3
+ export * as Store from '../Store.js';
4
+ export * from './Constants.js';
5
+ export * from './Types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/attestation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * as Client from './Client.js';
2
+ export * as Server from './Server.js';
3
+ export * as Store from '../Store.js';
4
+ export * from './Constants.js';
5
+ export * from './Types.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/attestation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,73 @@
1
+ import type { BareItem } from 'structured-headers';
2
+ import type { MaybePromise } from '../../internal/types.js';
3
+ import * as Store from '../../Store.js';
4
+ import type { KeyResolver, SignatureAlgorithm, SigningContext } from '../Types.js';
5
+ /** RFC 9421 constants used by request-attestation signature profiles. */
6
+ export declare const Constants: {
7
+ /** Derived request components supported by this narrow request profile. */
8
+ readonly components: {
9
+ /** The target host and non-default port. */
10
+ readonly authority: '@authority';
11
+ /** The request URL path without its query string. */
12
+ readonly path: '@path';
13
+ /** The lowercased `Signature-Agent` request header. */
14
+ readonly signatureAgent: 'signature-agent';
15
+ /** The signature's canonicalized covered-components and parameters. */
16
+ readonly signatureParams: '@signature-params';
17
+ };
18
+ };
19
+ /** A covered HTTP message component and its RFC 9421 component parameters. */
20
+ export type Component = {
21
+ /** Derived component identifier or lowercased HTTP field name. */
22
+ id: string;
23
+ /** Parameters that qualify the component, such as `;key="agent"`. */
24
+ parameters?: ReadonlyMap<string, BareItem> | undefined;
25
+ };
26
+ /** Input accepted by signers; bare strings denote unparameterized components. */
27
+ export type ComponentInput = string | Component;
28
+ export type SignatureInput = {
29
+ algorithm: SignatureAlgorithm;
30
+ components: readonly Component[];
31
+ created: number;
32
+ expires: number;
33
+ keyId: string;
34
+ label: string;
35
+ nonce: string;
36
+ parameters: ReadonlyMap<string, BareItem>;
37
+ tag: string;
38
+ };
39
+ /** Result of validating one supported RFC 9421 signature. */
40
+ export type VerificationResult = {
41
+ status: 'absent';
42
+ } | {
43
+ status: 'invalid';
44
+ reason: string;
45
+ } | {
46
+ status: 'unverified';
47
+ reason: string;
48
+ } | {
49
+ status: 'verified';
50
+ input: SignatureInput;
51
+ };
52
+ /** Signs a request using the configured RFC 9421-derived component list. */
53
+ export declare function sign(request: Request, options: {
54
+ components: readonly ComponentInput[];
55
+ expiresIn?: number | undefined;
56
+ keyId: string;
57
+ key: CryptoKey;
58
+ label: string;
59
+ context?: SigningContext | undefined;
60
+ tag: string;
61
+ }): Promise<Request>;
62
+ /** Verifies a request signature, its lifetime, and optionally its nonce. */
63
+ export declare function verify(request: Request, options: {
64
+ keyResolver: KeyResolver;
65
+ maxAge: number;
66
+ nonceNamespace: string;
67
+ nonceStore: Store.AtomicStore;
68
+ requiredComponents: readonly string[];
69
+ tag: string | readonly string[];
70
+ validate?: ((input: SignatureInput, request: Request) => string | undefined) | undefined;
71
+ validateKey?: ((key: CryptoKey, input: SignatureInput, request: Request) => MaybePromise<string | undefined>) | undefined;
72
+ }): Promise<VerificationResult>;
73
+ //# sourceMappingURL=HttpMessageSignature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpMessageSignature.d.ts","sourceRoot":"","sources":["../../../src/attestation/internal/HttpMessageSignature.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,oBAAoB,CAAA;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGlF,yEAAyE;AACzE,eAAO,MAAM,SAAS;IACpB,2EAA2E;aAC3E,UAAU;QACR,4CAA4C;iBAC5C,SAAS,EAAE,YAAY;QACvB,qDAAqD;iBACrD,IAAI,EAAE,OAAO;QACb,uDAAuD;iBACvD,cAAc,EAAE,iBAAiB;QACjC,uEAAuE;iBACvE,eAAe,EAAE,mBAAmB;;CAE9B,CAAA;AAsBV,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG;IACtB,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAA;IACV,qEAAqE;IACrE,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;CACvD,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAA;AAE/C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,kBAAkB,CAAA;IAC7B,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAA;AAEjD,4EAA4E;AAC5E,wBAAsB,IAAI,CACxB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IACP,UAAU,EAAE,SAAS,cAAc,EAAE,CAAA;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,SAAS,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,GAAG,EAAE,MAAM,CAAA;CACZ,GACA,OAAO,CAAC,OAAO,CAAC,CAyClB;AAED,4EAA4E;AAC5E,wBAAsB,MAAM,CAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IACP,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,KAAK,CAAC,WAAW,CAAA;IAC7B,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IACxF,WAAW,CAAC,EACR,CAAC,CACC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,OAAO,KACb,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GACtC,SAAS,CAAA;CACd,GACA,OAAO,CAAC,kBAAkB,CAAC,CAqE7B"}