{"_id":"@bsv/402-pay","_rev":"12-bf0cf4f3b716a663e4a349b9cd5cacaa","name":"@bsv/402-pay","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"@bsv/402-pay","version":"0.1.0","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE","_id":"@bsv/402-pay@0.1.0","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"dist":{"shasum":"f3425f519fa27d7d7ddaed889021d3ca5d0829a1","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.1.0.tgz","fileCount":18,"integrity":"sha512-f32Vnme18xyGZVeIhaB5Zg7LNTZgkdvdGGSf8ctZO7qnM481ekI71b2ZNZTEDcqtVi8W6gWknir6gIeFwG0O0w==","signatures":[{"sig":"MEUCIEW1V6tRLz+koEli/FbuuTajah4U0Pd9RPB8p6bBRp45AiEAga9KqvrqPpnVYIJhGO2GHq0s4j9+9oG7i/KiCqaaBrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26601},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"c72a7a333eb40608188759b3fce3af41e822d332","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkellen","email":"darrkellen@gmail.com"},"_npmVersion":"11.10.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"@bsv/sdk":"^2.0.13","typescript":"^5.5.0","@types/node":"^20.14.0"},"peerDependencies":{"@bsv/sdk":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.1.0_1775352322492_0.8363793570216767","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bsv/402-pay","version":"0.1.1","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE","_id":"@bsv/402-pay@0.1.1","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"dist":{"shasum":"cb8fef0f04e1d4eefffb1028aedf21c980dd5854","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.1.1.tgz","fileCount":18,"integrity":"sha512-pCOWhEg1hvBL5Lr0BcpYgWzmU/W8jB3nOwuh5ns0lDv5n9cG2AYJH1teqMXip5TMxTm5PbKlbvgpRWCDmHn8KA==","signatures":[{"sig":"MEQCIE0Tv5gbuvtR0iVhvtvABuyfsiM0lJL04ZPzv3dTftv/AiATfVwtkkaAeGmLf3PCXhghFwl0oWquVA6sBLcZE1mw+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27163},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"b82a35be2b45b34187c8ecb01f34618ab1918281","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"dkellen","email":"darrkellen@gmail.com"},"_npmVersion":"11.10.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"@bsv/sdk":"^2.0.13","typescript":"^5.5.0","@types/node":"^20.14.0"},"peerDependencies":{"@bsv/sdk":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.1.1_1775353810650_0.8890158458155779","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bsv/402-pay","version":"0.1.2","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE","_id":"@bsv/402-pay@0.1.2","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/402-pay/issues"},"dist":{"shasum":"c4c481b08b213129fa59fbe715118ca2db7fad39","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.1.2.tgz","fileCount":19,"integrity":"sha512-JYgK9PHsX/dzh/Ut40PypmFBm4BQaZ50FIeZRU3klPh+5KNR0GMA5/nBBQUIOr4bclzEHZRvEs+K6DKglXO3bA==","signatures":[{"sig":"MEUCIGXVXFFGbMNGE6z4PeS8f36u6jIyzQOjZQEHJXdzlQGMAiEA5vgrJwhHV7FkwtCoZGokFx4RDOTcpxuV4r0YqaoeGhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31175},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"671cb38e4a3290636264df020fbed6956b050103","scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c90166db-18dc-4975-b172-dac8516a6a47"}},"repository":{"url":"git+https://github.com/bsv-blockchain/402-pay.git","type":"git"},"_npmVersion":"11.11.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.3","@bsv/sdk":"^2.0.13","typescript":"^5.5.0","@types/node":"^20.14.0"},"peerDependencies":{"@bsv/sdk":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.1.2_1775751477172_0.05227193157067056","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bsv/402-pay","version":"0.1.3","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE","_id":"@bsv/402-pay@0.1.3","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/402-pay/issues"},"dist":{"shasum":"b3e0e2ee8aa3114151332a236bcf086b89b65124","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.1.3.tgz","fileCount":19,"integrity":"sha512-u7u+D6OVdqYLJKDQ0O/QjdpxtRQZej2W4ht/n1IgvLd60CBnQtq4fy4WNWuLvINIQb7m29/0E/xU7YlWtsE6dg==","signatures":[{"sig":"MEYCIQDc8jdG1sq2Jd44uoP9ouF5wVz7xmIAcF+19Btrl3iBoQIhAOOE3imDRF4XPR/17OYaGwvAGhhS/UUpb0mMVetBnUeS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33557},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"a9a00e08d4ddadc6e9e266f2672baedadaae177c","scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c90166db-18dc-4975-b172-dac8516a6a47"}},"repository":{"url":"git+https://github.com/bsv-blockchain/402-pay.git","type":"git"},"_npmVersion":"11.11.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.3","@bsv/sdk":"^2.0.13","typescript":"^5.5.0","@types/node":"^20.14.0"},"peerDependencies":{"@bsv/sdk":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.1.3_1775752040213_0.6747752733627004","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bsv/402-pay","version":"0.1.4","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE","_id":"@bsv/402-pay@0.1.4","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"bce5a14bc7a328d3e40d73f3826a743637095696","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.1.4.tgz","fileCount":19,"integrity":"sha512-j2dxFf3pRd1S/Sz48kYm7wPyQWwsKSWBv6lLasCgcNM/VsoypDDhJ/t3RfQ0f/31U+F4wm0xCHnq5sDxHczT1g==","signatures":[{"sig":"MEQCIGmQIKgHt3g4hjWVx4lp78A0Lqg9B3HH//AdxtawVvX9AiBhAFfnBCAX1dONAk0nVu2el0yHAZM7qBQ38CIgD/yjUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33757},"main":"dist/index.js","type":"module","_from":"file:bsv-402-pay-0.1.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"_resolved":"/tmp/77e3e10481a783ed7aca4eef2a8f4da4/bsv-402-pay-0.1.4.tgz","_integrity":"sha512-j2dxFf3pRd1S/Sz48kYm7wPyQWwsKSWBv6lLasCgcNM/VsoypDDhJ/t3RfQ0f/31U+F4wm0xCHnq5sDxHczT1g==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.12.1","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.3","@bsv/sdk":"^2.1.2","typescript":"^5.5.0","@types/node":"^20.14.0"},"peerDependencies":{"@bsv/sdk":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.1.4_1779597554551_0.7272971552455394","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bsv/402-pay","version":"0.2.0","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE","_id":"@bsv/402-pay@0.2.0","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"71b745bd1a2d81e114f78fb5c99561e2729ffc24","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.2.0.tgz","fileCount":19,"integrity":"sha512-p258kLuKEMMaw6odZjecYH4rgVIGuAe9PJI5y3LqPaxeITjoa9dSZYxZYa5q2O4KjAk0R6K/wqKMQar4lbHUHA==","signatures":[{"sig":"MEYCIQC1awI2W0KjF/jraSJXGS+PBuR5wAg9Nk+OGEebfxkEiwIhAP5kdLm3CIFqUsDQj8GZH/VYaRGcDakgOYUboDLXT4+P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33833},"main":"dist/index.js","type":"module","_from":"file:bsv-402-pay-0.2.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"_resolved":"/tmp/1fb18cd6b71a9f6df2c8e1234362107a/bsv-402-pay-0.2.0.tgz","_integrity":"sha512-p258kLuKEMMaw6odZjecYH4rgVIGuAe9PJI5y3LqPaxeITjoa9dSZYxZYa5q2O4KjAk0R6K/wqKMQar4lbHUHA==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.13.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","@bsv/sdk":"^2.1.3","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@bsv/sdk":"^2"},"peerDependenciesMeta":{"@bsv/sdk":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.2.0_1781899655477_0.7290581363555315","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bsv/402-pay","version":"0.2.1","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE","_id":"@bsv/402-pay@0.2.1","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"fb0596a6cb85828c91f26e80bdeb95515a142120","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.2.1.tgz","fileCount":19,"integrity":"sha512-WiZP1CcHX/losWjcUr3kOsbovWbCu/LeZCLdwveS/kYcCZx/wnbVCahFH0zHWdF0H/X7f6OWTPa/3GWy0fQiPQ==","signatures":[{"sig":"MEQCID94a4EPEh/AaHpSLPSdSbBtzEP387Y3t/Iw52Ls6niXAiBDD6kMV3H85Q+7OG20gxbvAM2iAzRlcqQqq+b8H3AE9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33838},"main":"dist/index.js","type":"module","_from":"file:bsv-402-pay-0.2.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"_resolved":"/tmp/78406b96757f2be71c5ba0e7b89a0946/bsv-402-pay-0.2.1.tgz","_integrity":"sha512-WiZP1CcHX/losWjcUr3kOsbovWbCu/LeZCLdwveS/kYcCZx/wnbVCahFH0zHWdF0H/X7f6OWTPa/3GWy0fQiPQ==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.16.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","@bsv/sdk":"^2.2.0","typescript":"^6.0.3","@types/node":"^26.1.1"},"peerDependencies":{"@bsv/sdk":"^2.1.6"},"peerDependenciesMeta":{"@bsv/sdk":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.2.1_1784948663628_0.5941636361522253","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@bsv/402-pay","version":"0.2.4","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"Deggen","email":"d.kellenschwiler@bsvassociation.org"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@bsv/402-pay@0.2.4","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"cf972c3368308c74dfd60c11649522b047fb8b8c","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.2.4.tgz","fileCount":25,"integrity":"sha512-fLQ9eogKSZXokOW2NOG4TXkBs03XCnGmbXt+XNO9I7/7NzHKr3zBFvX+XaRliZktnV9aRGmwFx9TtJ7UrfinaA==","signatures":[{"sig":"MEUCIQCq2iux0U5QHEqXFU/f3ncOCJk0xlPYMm2M2scLWKJ6GwIgPvmRPrsIKeOAfItht3fYykoutiBTUlfkOHK9vGaHSug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86626},"main":"./dist/index.cjs","type":"commonjs","_from":"file:/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.2.4.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.cts","default":"./dist/server.cjs"}}},"scripts":{"lint":"oxlint src vitest.config.ts --deny-warnings","test":"vitest run","build":"tsdown src/index.ts src/server.ts src/client.ts --format cjs,esm --dts --sourcemap --clean --out-dir dist --tsconfig tsconfig.build.json","typecheck":"tsc --project tsconfig.typecheck.json","pack:check":"node ../../../scripts/check-package-artifact.mjs . --exports HEADERS,HEADER_PREFIX,BRC29_PROTOCOL_ID,DEFAULT_PAYMENT_WINDOW_MS,createPaymentMiddleware,validatePayment,send402,create402Fetch,constructPaymentHeaders --entry-exports \"./server=createPaymentMiddleware|validatePayment|send402;./client=create402Fetch|constructPaymentHeaders\"","test:watch":"vitest","format:check":"pnpm --workspace-root exec prettier --check \"packages/middleware/402-pay/src/**/*.ts\" \"packages/middleware/402-pay/*.{json,ts}\"","test:browser":"pnpm build && node ../../../scripts/check-browser-package.mjs .","test:coverage":"vitest run --coverage","test:property":"vitest run src/server.property.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"_resolved":"/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.2.4.tgz","_integrity":"sha512-fLQ9eogKSZXokOW2NOG4TXkBs03XCnGmbXt+XNO9I7/7NzHKr3zBFvX+XaRliZktnV9aRGmwFx9TtJ7UrfinaA==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.16.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"client":["dist/client.d.cts"],"server":["dist/server.d.cts"]}},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.76.0","tsdown":"0.22.14","vitest":"^4.1.10","@bsv/sdk":"^2.2.15","fast-check":"^4.9.0","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"^26.1.2","@typescript/native":"npm:typescript@7.0.2","@vitest/coverage-v8":"4.1.10"},"peerDependencies":{"@bsv/sdk":"^2.1.6"},"peerDependenciesMeta":{"@bsv/sdk":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.2.4_1785456860856_0.20879918025326916","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@bsv/402-pay","version":"0.2.5","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"BSV Association"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@bsv/402-pay@0.2.5","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"5af336fae8f7931fee8af1bc21c6cd35670655dc","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.2.5.tgz","fileCount":27,"integrity":"sha512-qLLDeGum9ChDdMZ8wZ4dKfgJMiV86qKVxA4fQzaSSO7NxI7J5txtZusprZ3eukGB6LvKfcZvm+TcWbkGgimVeg==","signatures":[{"sig":"MEUCIEsYGfI+MEOsbkADQId5mQCokcRoP4GeidzdTDhE5eDjAiEArhPRNr+F43PP3ENm8OBs6zBIgR6YMaAaf9m2Ixz4m+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91211},"main":"./dist/index.cjs","type":"commonjs","_from":"file:/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.2.5.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.cts","default":"./dist/server.cjs"}}},"scripts":{"lint":"oxlint src vitest.config.ts --deny-warnings","test":"vitest run","build":"tsdown src/index.ts src/server.ts src/client.ts --format cjs,esm --dts --sourcemap --clean --out-dir dist --tsconfig tsconfig.build.json","typecheck":"tsc --project tsconfig.typecheck.json","pack:check":"node ../../../scripts/check-package-artifact.mjs . --exports HEADERS,HEADER_PREFIX,BRC29_PROTOCOL_ID,DEFAULT_PAYMENT_WINDOW_MS,createPaymentMiddleware,validatePayment,send402,create402Fetch,constructPaymentHeaders --entry-exports \"./server=createPaymentMiddleware|validatePayment|send402;./client=create402Fetch|constructPaymentHeaders\"","test:watch":"vitest","format:check":"pnpm --workspace-root exec prettier --check \"packages/middleware/402-pay/src/**/*.ts\" \"packages/middleware/402-pay/*.{json,ts}\"","test:browser":"pnpm build && node ../../../scripts/check-browser-package.mjs .","test:coverage":"vitest run --coverage","test:property":"vitest run src/server.property.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"_resolved":"/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.2.5.tgz","_integrity":"sha512-qLLDeGum9ChDdMZ8wZ4dKfgJMiV86qKVxA4fQzaSSO7NxI7J5txtZusprZ3eukGB6LvKfcZvm+TcWbkGgimVeg==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.16.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"client":["dist/client.d.cts"],"server":["dist/server.d.cts"]}},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.76.0","tsdown":"0.22.14","vitest":"^4.1.10","@bsv/sdk":"^2.4.2","fast-check":"^4.9.0","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"^26.1.2","@typescript/native":"npm:typescript@7.0.2","@vitest/coverage-v8":"4.1.10"},"peerDependencies":{"@bsv/sdk":"^2.1.6"},"peerDependenciesMeta":{"@bsv/sdk":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.2.5_1787865943886_0.10589103266084154","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bsv/402-pay","version":"0.3.0","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"BSV Association"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@bsv/402-pay@0.3.0","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"65afd7e6b616c01726d77896e6a79ac33ee08200","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.3.0.tgz","fileCount":27,"integrity":"sha512-oNrExmm1ayjYT4K/FnT2hW+cQ1+rsAMmQdu/2jn8briAPicCsk2h6lLKy2cE2LRtH3X2YefJvVQJwsfBm7M27w==","signatures":[{"sig":"MEYCIQCQClhXuv/x4/aMTDZgzAT74RuwYEVnBrnZf4/Mo01MjAIhAIs8A73Kn1UqvzEPebC0c9Xj+6niqxzdsYHBICcAvCvu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICNevcu8i3xT01vISXMjY9yT6za7Hk5myDzfK0faVKzRAiEAj3o0VcgRAj9I3j/S8cM8diLSjwShQieGueWHMXXvweY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93971},"main":"./dist/index.cjs","type":"commonjs","_from":"file:/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.3.0.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.cts","default":"./dist/server.cjs"}}},"scripts":{"lint":"oxlint src vitest.config.ts --deny-warnings","test":"vitest run","build":"tsdown src/index.ts src/server.ts src/client.ts --format cjs,esm --dts --sourcemap --clean --out-dir dist --tsconfig tsconfig.build.json","typecheck":"tsc --project tsconfig.typecheck.json","pack:check":"node ../../../scripts/check-package-artifact.mjs . --exports HEADERS,HEADER_PREFIX,BRC29_PROTOCOL_ID,DEFAULT_PAYMENT_WINDOW_MS,createPaymentMiddleware,validatePayment,send402,create402Fetch,constructPaymentHeaders --entry-exports \"./server=createPaymentMiddleware|validatePayment|send402;./client=create402Fetch|constructPaymentHeaders\"","test:watch":"vitest","format:check":"pnpm --workspace-root exec prettier --check \"packages/middleware/402-pay/src/**/*.ts\" \"packages/middleware/402-pay/*.{json,ts}\"","test:browser":"pnpm build && node ../../../scripts/check-browser-package.mjs .","test:coverage":"vitest run --coverage","test:property":"vitest run src/server.property.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"_resolved":"/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.3.0.tgz","_integrity":"sha512-oNrExmm1ayjYT4K/FnT2hW+cQ1+rsAMmQdu/2jn8briAPicCsk2h6lLKy2cE2LRtH3X2YefJvVQJwsfBm7M27w==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.16.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"client":["dist/client.d.cts"],"server":["dist/server.d.cts"]}},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.76.0","tsdown":"0.22.14","vitest":"^4.1.10","@bsv/sdk":"^2.5.0","fast-check":"^4.9.0","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"^26.1.2","@typescript/native":"npm:typescript@7.0.2","@vitest/coverage-v8":"4.1.10"},"peerDependencies":{"@bsv/sdk":"^2.1.6"},"peerDependenciesMeta":{"@bsv/sdk":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.3.0_1789065114067_0.11289669673988523","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bsv/402-pay","version":"0.3.1","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"author":{"name":"BSV Association"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@bsv/402-pay@0.3.1","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"fbbc19b913998fcc374bb66c4e174b2a752eda0c","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.3.1.tgz","fileCount":27,"integrity":"sha512-Q7gjA26sxnIrtNl3slZv385pPj2ljx25bGotbL/3fR4V+BvIsCxt3h/lkzqA9rqugFjXTBm9WdqHWpuaqFt8Tw==","signatures":[{"sig":"MEQCIHYavrggx6iR5Hp+7fDEoHZqvslXgY+01HYSBEiZnY0eAiAgUAIYLwg+3YBuRRwoir4RO3DTH0h5VApGMYKjOaLIBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCcC99McX924G1RDINJG4X4YTQNEzhr34Is7p59H0X16wIhAOLNZvutnYt4za/lURxXiv7YoX6iFC98C3xb940R1aJ7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93971},"main":"./dist/index.cjs","type":"commonjs","_from":"file:/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.3.1.tgz","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.cts","default":"./dist/server.cjs"}}},"scripts":{"lint":"oxlint src vitest.config.ts --deny-warnings","test":"vitest run","build":"tsdown src/index.ts src/server.ts src/client.ts --format cjs,esm --dts --sourcemap --clean --out-dir dist --tsconfig tsconfig.build.json","typecheck":"tsc --project tsconfig.typecheck.json","pack:check":"node ../../../scripts/check-package-artifact.mjs . --exports HEADERS,HEADER_PREFIX,BRC29_PROTOCOL_ID,DEFAULT_PAYMENT_WINDOW_MS,createPaymentMiddleware,validatePayment,send402,create402Fetch,constructPaymentHeaders --entry-exports \"./server=createPaymentMiddleware|validatePayment|send402;./client=create402Fetch|constructPaymentHeaders\"","test:watch":"vitest","format:check":"pnpm --workspace-root exec prettier --check \"packages/middleware/402-pay/src/**/*.ts\" \"packages/middleware/402-pay/*.{json,ts}\"","test:browser":"pnpm build && node ../../../scripts/check-browser-package.mjs .","test:coverage":"vitest run --coverage","test:property":"vitest run src/server.property.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"_resolved":"/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.3.1.tgz","_integrity":"sha512-Q7gjA26sxnIrtNl3slZv385pPj2ljx25bGotbL/3fR4V+BvIsCxt3h/lkzqA9rqugFjXTBm9WdqHWpuaqFt8Tw==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.16.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"client":["dist/client.d.cts"],"server":["dist/server.d.cts"]}},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.76.0","tsdown":"0.22.14","vitest":"^4.1.11","@bsv/sdk":"^2.7.0","fast-check":"^4.9.0","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"^26.1.2","@typescript/native":"npm:typescript@7.0.2","@vitest/coverage-v8":"4.1.11"},"peerDependencies":{"@bsv/sdk":"^2.1.6"},"peerDependenciesMeta":{"@bsv/sdk":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/402-pay_0.3.1_1789507800179_0.34100924954118983","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"_id":"@bsv/402-pay@0.3.2","bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"dist":{"shasum":"dddb57331a1cf26d7c364e6c076f606a73f6f614","tarball":"https://registry.npmjs.org/@bsv/402-pay/-/402-pay-0.3.2.tgz","fileCount":27,"integrity":"sha512-Qq/O04iTgBuJIoiEgvKToy00qxPAEHSDCZMVTJLjAijj8afvwosiMcRzLUNh36Z1A55pgcxD5hf1L3RalEtAqA==","signatures":[{"sig":"MEQCIFl7Tlu4uPm7ohSOIPlsqLwxKSxxZy9NkIo+uXDLcvhYAiB/sJ2iWJSo3KyIvteZq6vf6aNK1S1JBJTR4Pg3Z5A1Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDNGHDpw7ij9k6/YBbs6k68UoTRAL3LsH/XwoJQrBiMQAIhAJYFZhJXRZIYZOBYrQY126IBU5L8m11A1geUABIALBuz"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsv%2f402-pay@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154305},"main":"./dist/index.cjs","name":"@bsv/402-pay","type":"commonjs","_from":"file:/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.3.2.tgz","types":"./dist/index.d.cts","author":{"name":"BSV Association"},"module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./client":{"import":{"types":"./dist/client.d.mts","default":"./dist/client.mjs"},"require":{"types":"./dist/client.d.cts","default":"./dist/client.cjs"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.cts","default":"./dist/server.cjs"}}},"license":"SEE LICENSE IN LICENSE.txt","scripts":{"lint":"oxlint src vitest.config.ts --deny-warnings","test":"vitest run","build":"tsdown src/index.ts src/server.ts src/client.ts --format cjs,esm --dts --sourcemap --clean --out-dir dist --tsconfig tsconfig.build.json","typecheck":"tsc --project tsconfig.typecheck.json","pack:check":"node ../../../scripts/check-package-artifact.mjs . --exports HEADERS,HEADER_PREFIX,BRC29_PROTOCOL_ID,DEFAULT_PAYMENT_WINDOW_MS,InMemoryPaymentReplayStore,createPaymentMiddleware,validatePayment,send402,create402Fetch,constructPaymentHeaders --entry-exports \"./server=InMemoryPaymentReplayStore|createPaymentMiddleware|validatePayment|send402;./client=create402Fetch|constructPaymentHeaders\"","test:watch":"vitest","format:check":"pnpm --workspace-root exec prettier --check \"packages/middleware/402-pay/src/**/*.ts\" \"packages/middleware/402-pay/*.{json,ts}\"","test:browser":"pnpm build && node ../../../scripts/check-browser-package.mjs .","test:coverage":"vitest run --coverage","test:property":"vitest run src/server.property.test.ts"},"version":"0.3.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:591cb9ac-d50d-44e0-bb0b-13150eac1994"}},"homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"_resolved":"/home/runner/work/ts-stack/ts-stack/release-artifacts/packages/bsv-402-pay-0.3.2.tgz","_integrity":"sha512-Qq/O04iTgBuJIoiEgvKToy00qxPAEHSDCZMVTJLjAijj8afvwosiMcRzLUNh36Z1A55pgcxD5hf1L3RalEtAqA==","repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"_npmVersion":"11.16.0","description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","directories":{},"maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"client":["dist/client.d.cts"],"server":["dist/server.d.cts"]}},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.76.0","tsdown":"0.22.14","vitest":"^4.1.11","@bsv/sdk":"^2.8.0","fast-check":"^4.9.0","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"^26.1.2","@typescript/native":"npm:typescript@7.0.2","@vitest/coverage-v8":"4.1.11"},"peerDependencies":{"@bsv/sdk":"^2.1.6"},"peerDependenciesMeta":{"@bsv/sdk":{"optional":false}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/402-pay_0.3.2_1790139392392_0.35718399211875407"}}},"time":{"created":"2026-04-05T01:25:22.404Z","modified":"2026-09-23T04:56:32.859Z","0.1.0":"2026-04-05T01:25:22.623Z","0.1.1":"2026-04-05T01:50:10.816Z","0.1.2":"2026-04-09T16:17:57.329Z","0.1.3":"2026-04-09T16:27:20.355Z","0.1.4":"2026-05-24T04:39:14.680Z","0.2.0":"2026-06-19T20:07:35.672Z","0.2.1":"2026-07-25T03:04:23.763Z","0.2.4":"2026-07-31T00:14:20.990Z","0.2.5":"2026-08-27T21:25:44.042Z","0.3.0":"2026-09-10T18:31:54.166Z","0.3.1":"2026-09-15T21:30:00.263Z","0.3.2":"2026-09-23T04:56:32.475Z"},"bugs":{"url":"https://github.com/bsv-blockchain/ts-stack/issues"},"author":{"name":"BSV Association"},"license":"SEE LICENSE IN LICENSE.txt","homepage":"https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay#readme","keywords":["bsv","402","payment","micropayments","brc-121","middleware"],"repository":{"url":"git+https://github.com/bsv-blockchain/ts-stack.git","type":"git","directory":"packages/middleware/402-pay"},"description":"BRC-121 Simple 402 Payments — server middleware and client for BSV micropayments over HTTP","maintainers":[{"name":"johngalt5","email":"dylan@murraydt.com"},{"name":"loftsteinn","email":"oli@oskarsson.nl"},{"name":"dkellen","email":"darrkellen@gmail.com"},{"name":"braydude","email":"brayden167@gmail.com"},{"name":"tyeverett","email":"p2ppsr@tyweb.us"}],"readme":"# @bsv/402-pay\n\n[BRC-121](https://github.com/bitcoin-sv/BRCs/blob/master/payments/0121.md) Simple 402 Payments -- server middleware and client for BSV micropayments over HTTP.\n\n## Install\n\n```sh\nnpm install @bsv/402-pay\n```\n\nPeer dependency: `@bsv/sdk ^2.1.6`. The package supports Node.js 22+ and browser\nconsumers, with matching ESM and CommonJS entry points and declarations for the\npackage root, `/server`, and `/client`.\n\n## Server\n\n### Express middleware\n\n```ts\nimport express from 'express'\nimport { createPaymentMiddleware } from '@bsv/402-pay/server'\n\nconst app = express()\n\napp.use(\n  '/articles/:slug',\n  createPaymentMiddleware({\n    wallet, // WalletInterface from @bsv/sdk\n    // Required in production when more than one process can serve this route.\n    replayStore: sharedAtomicReplayStore,\n    calculatePrice: path => {\n      // Return price in satoshis, or undefined to skip payment\n      return 100\n    }\n  })\n)\n\napp.get('/articles/:slug', (req, res) => {\n  // req.payment is set if payment was accepted\n  res.send('Paid content here')\n})\n```\n\n### Low-level validation\n\n```ts\nimport { validatePayment, send402 } from '@bsv/402-pay/server'\n\n// In any HTTP handler:\nconst requiredSatoshis = 100\nconst result = await validatePayment(\n  req,\n  wallet,\n  requiredSatoshis,\n  30_000,\n  sharedAtomicReplayStore\n)\nif (!result) {\n  send402(res, serverIdentityKey, requiredSatoshis)\n  return\n}\nif (!result.accepted) {\n  // Explicit replay rejection. Log safely and request a fresh payment.\n  send402(res, serverIdentityKey, requiredSatoshis)\n  return\n}\n// Payment accepted — serve content\n```\n\n## Client\n\n### Fetch wrapper\n\n```ts\nimport { create402Fetch } from '@bsv/402-pay/client'\n\nconst fetch402 = create402Fetch({ wallet })\n\n// Automatically handles 402 responses with payment\nconst response = await fetch402('https://example.com/articles/foo')\nconst html = await response.text()\n\n// Clear the optional payment cache\nfetch402.clearCache()\n```\n\nPaid-response caching is disabled by default because a URL alone is not an\nauthorization or browser-session boundary. Opt in only for immutable,\nnon-user-specific content with `cacheTimeoutMs`; request credentials and header\nvalues are hashed into the cache key, binary responses are preserved, and\n`maxCachedResponseBytes` defaults to 8 MiB. Cookie state cannot be keyed safely,\nso do not enable this cache for cookie-authenticated personalized responses.\nNon-GET requests are never cached.\n\n## Headers\n\n### Server → Client\n\n| Header         | Description                |\n| -------------- | -------------------------- |\n| `x-bsv-sats`   | Required satoshi amount    |\n| `x-bsv-server` | Server identity public key |\n\n### Client → Server\n\n| Header         | Description                      |\n| -------------- | -------------------------------- |\n| `x-bsv-beef`   | Base64-encoded BEEF transaction  |\n| `x-bsv-sender` | Client identity public key       |\n| `x-bsv-nonce`  | Base64-encoded derivation prefix |\n| `x-bsv-time`   | Unix millisecond timestamp       |\n| `x-bsv-vout`   | Payment output index             |\n\n## Security and Replay Protection\n\nReplay defense has three layers:\n\n1. **Timestamp freshness** -- `x-bsv-time` must be within 30 seconds of the server's clock, bounding the replay window and replay-record lifetime.\n2. **Wallet validation** -- `internalizeAction` validates the BRC-29 remittance. Wallets that expose an exact `isMerge` value provide an additional duplicate signal, but that field is not part of the public BRC-100 result contract and is not the sole replay defense.\n3. **Atomic transaction claim** -- an independent `PaymentReplayStore` permits exactly one successful claim for a transaction ID. The default store is bounded and process-local. Multi-process or multi-node services must inject one shared, durable, atomic store.\n\nLow-level `validatePayment` calls without an explicit store reuse a process-local\nstore keyed to the supplied wallet object. Keep that wallet object stable for\nthe life of the service. Passing a new wrapper per request defeats that local\nassociation; shared deployments must pass the same external replay store to\nevery call.\n\nServers should synchronize their clocks, treat payment headers as untrusted\ninput, retain normal request-rate/body limits around the middleware, and avoid\nlogging raw BEEF, identity material, request paths, or transaction identifiers.\nThe middleware emits no diagnostics unless an explicit structured logger is\nsupplied, and its wallet descriptions do not include attacker-controlled URLs.\nDuplicate and oversized BEEF headers are rejected before wallet work. Clients require HTTPS except for exact loopback\ndevelopment URLs, validate the server key before invoking the wallet, refuse\ncross-origin redirect challenges, and retransmit payment headers with automatic\nredirect following disabled so financial material is never forwarded to a\nredirect target.\n\nFor browser clients, configure the service or edge layer to expose\n`x-bsv-sats` and `x-bsv-server` and to allow the five client payment headers.\nThe package intentionally does not set an origin policy: public services can\nremain broadly accessible, while deployments that need an allowlist can apply\none without changing payment behavior.\n\nWallet initialization and invalid server pricing are treated as server errors\n(`500`). An unexpected failure after payment processing begins returns `503`\nwithout a fresh challenge, because wallet or replay-store state may already\nhave changed and requesting another payment could induce a second spend.\nMalformed, invalid, insufficient, or affirmatively replayed payments receive a\nfresh `402`, as required by BRC-121. Successful middleware results preserve the\nactual paid output value, including overpayment, in `satoshisPaid`.\n\nThe server requires a strictly framed BRC-95 Atomic BEEF envelope. It prices\nthe transaction named by the atomic subject and gives the wallet only that\ntransaction and its dependency closure. Legacy atomic envelopes containing\nunrelated branches are reduced to that closure; plain BEEF, trailing bytes,\nand a non-affirmative wallet internalization result are rejected.\n\n## License\n\nCurrent TS Stack changes are licensed under the Open BSV License Version 6; see\n[LICENSE.txt](./LICENSE.txt). This package also retains pre-uniformization code\nunder its package-specific Open BSV License Version 4 grant. Redistributors\nmust preserve [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md) and the\napplicable text in [`LICENSES/`](./LICENSES/).\n","readmeFilename":"README.md"}