{"_id":"@chainvue/v402-nestjs","_rev":"5-4ecb1e00c5fd5fbb6646a254532ec36f","name":"@chainvue/v402-nestjs","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@chainvue/v402-nestjs","version":"0.1.0","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-nestjs@0.1.0","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/adapter-nestjs#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"2db2a3e9ecc1add832437a0a37f943e8f3ca81a8","tarball":"https://registry.npmjs.org/@chainvue/v402-nestjs/-/v402-nestjs-0.1.0.tgz","fileCount":35,"integrity":"sha512-PcsqKi4OpFQ8WfKq5NjWC5FPWHAFlz3/aODdYgnLfToULLjRTY6HFQ/siTXhur+OA3cxkc7asMQrI3AUdu3rcg==","signatures":[{"sig":"MEQCICuEpGtsG3hfiK3dVyhJEIKa68KeSORIeRSih+liyjmoAiBc2o707zH3lu4HkyTwslB6MY2RTgckIsnX+ei4RbzeCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64277},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-nestjs-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"devdudeio","email":"fLoAtivErImE@proton.me"},"_resolved":"/private/var/folders/lc/_1dmy3kd06b9ryyyvv7pk9vw0000gn/T/31cc17e1c0fb4a623ad761d423d8f3bb/chainvue-v402-nestjs-0.1.0.tgz","_integrity":"sha512-PcsqKi4OpFQ8WfKq5NjWC5FPWHAFlz3/aODdYgnLfToULLjRTY6HFQ/siTXhur+OA3cxkc7asMQrI3AUdu3rcg==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/adapter-nestjs"},"_npmVersion":"11.11.0","description":"NestJS adapter for v402: PaymentGuard + PaymentInterceptor (two-phase debit), @V402Payment route decorator, V402Module with in-process or facilitator-HTTP verification.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@chainvue/v402-storage":"^0.1.0","@chainvue/v402-protocol":"^0.1.0","@chainvue/v402-verifier":"^0.1.0","@chainvue/v402-verus-rpc":"^0.1.0","@chainvue/v402-storage-sqlite":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","supertest":"^7.2.2","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@nestjs/testing":"^11.1.28","@types/supertest":"^7.2.0","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^11.1.28"},"peerDependencies":{"rxjs":"^7.8.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/v402-nestjs_0.1.0_1783727479944_0.17864388100562767","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@chainvue/v402-nestjs","version":"0.1.1","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-nestjs@0.1.1","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/adapter-nestjs#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"55ed89afa211d20a7987013b6e2bea8eb4ff1b7f","tarball":"https://registry.npmjs.org/@chainvue/v402-nestjs/-/v402-nestjs-0.1.1.tgz","fileCount":31,"integrity":"sha512-aBXndqu2RTD3Vrh4SnHR67iclIjbprVFS/2g/bOtmWpLY28B0eT7seAqyz36vr6EmHVejajaASNIsuo1y9r5XA==","signatures":[{"sig":"MEYCIQC1LYuj2Uj5cBPrsKk2fkZsbe16ZUtF+ISWJGSpp2/PUAIhANrrVe0rzVwz5ScF104Ctn0f2mvDNMn/Ht5UW3XSdt6u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-nestjs@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62186},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-nestjs-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3749ba62-fd0d-49be-b2d1-a28541565f44"}},"_resolved":"/tmp/b2f0f3610e054a77e4f11818b2bcf5f5/chainvue-v402-nestjs-0.1.1.tgz","_integrity":"sha512-aBXndqu2RTD3Vrh4SnHR67iclIjbprVFS/2g/bOtmWpLY28B0eT7seAqyz36vr6EmHVejajaASNIsuo1y9r5XA==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/adapter-nestjs"},"_npmVersion":"11.17.0","description":"NestJS adapter for v402: PaymentGuard + PaymentInterceptor (two-phase debit), @V402Payment route decorator, V402Module with in-process or facilitator-HTTP verification.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"@chainvue/v402-storage":"^0.1.0","@chainvue/v402-protocol":"^0.1.0","@chainvue/v402-verifier":"^0.1.2","@chainvue/v402-verus-rpc":"^0.1.0","@chainvue/v402-storage-sqlite":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","supertest":"^7.2.2","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@nestjs/testing":"^11.1.28","@types/supertest":"^7.2.0","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^11.1.28"},"peerDependencies":{"rxjs":"^7.8.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/v402-nestjs_0.1.1_1783795101152_0.24819984089039293","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@chainvue/v402-nestjs","version":"0.1.2","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-nestjs@0.1.2","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/adapter-nestjs#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"5dda5db8d9af54305726b66942254ee97de7d5b7","tarball":"https://registry.npmjs.org/@chainvue/v402-nestjs/-/v402-nestjs-0.1.2.tgz","fileCount":31,"integrity":"sha512-ksEk3dCgRQkexPxQmQkm/fL72ghERq6cb9UqZH8zhKPRWxsHC15qAOne4iVSO1c8qaB2KW0UF/HBNsZKpV80HA==","signatures":[{"sig":"MEUCIQCFgp+bzJYzl9Hi/7QqhOJQpxVl+NByEZAH6ukGLNSqFgIgeDOwdRChwnIHbWFJruScNVpFAgPtdBKCwxhmWd3MiXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-nestjs@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62186},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-nestjs-0.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3749ba62-fd0d-49be-b2d1-a28541565f44"}},"_resolved":"/tmp/0114c2bb5d318138b71e156ff774ccd9/chainvue-v402-nestjs-0.1.2.tgz","_integrity":"sha512-ksEk3dCgRQkexPxQmQkm/fL72ghERq6cb9UqZH8zhKPRWxsHC15qAOne4iVSO1c8qaB2KW0UF/HBNsZKpV80HA==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/adapter-nestjs"},"_npmVersion":"11.17.0","description":"NestJS adapter for v402: PaymentGuard + PaymentInterceptor (two-phase debit), @V402Payment route decorator, V402Module with in-process or facilitator-HTTP verification.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"@chainvue/v402-storage":"^0.1.0","@chainvue/v402-protocol":"^0.1.0","@chainvue/v402-verifier":"^0.1.3","@chainvue/v402-verus-rpc":"^0.1.0","@chainvue/v402-storage-sqlite":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","supertest":"^7.2.2","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@nestjs/testing":"^11.1.28","@types/supertest":"^7.2.0","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^11.1.28"},"peerDependencies":{"rxjs":"^7.8.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/v402-nestjs_0.1.2_1783796231030_0.6379546988937408","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@chainvue/v402-nestjs","version":"0.1.3","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-nestjs@0.1.3","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/adapter-nestjs#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"0cd3761309211c60435cdd65d9aa4ab84346a06b","tarball":"https://registry.npmjs.org/@chainvue/v402-nestjs/-/v402-nestjs-0.1.3.tgz","fileCount":31,"integrity":"sha512-N6OrNaZig55nvgsNgo5E+m9qxEIRLKDpZcSkkmmwhYvOIGZNsX6XdU9HkZKHWRC9v0KTFlAmjHrDjMOk9JnKhg==","signatures":[{"sig":"MEQCIHdRfFMutdXDQWV491Bs1R6ssmZDW72Ssz6PiPepfnNAAiBJjq7KqGzLX9iAIM1gmaTd0V25tbLSAlfLXOQe1wxnVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-nestjs@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62186},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-nestjs-0.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3749ba62-fd0d-49be-b2d1-a28541565f44"}},"_resolved":"/tmp/3eca1f7cfca48cc34db0e2ad93d2a73b/chainvue-v402-nestjs-0.1.3.tgz","_integrity":"sha512-N6OrNaZig55nvgsNgo5E+m9qxEIRLKDpZcSkkmmwhYvOIGZNsX6XdU9HkZKHWRC9v0KTFlAmjHrDjMOk9JnKhg==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/adapter-nestjs"},"_npmVersion":"11.17.0","description":"NestJS adapter for v402: PaymentGuard + PaymentInterceptor (two-phase debit), @V402Payment route decorator, V402Module with in-process or facilitator-HTTP verification.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"@chainvue/v402-storage":"^0.2.0","@chainvue/v402-protocol":"^0.2.0","@chainvue/v402-verifier":"^0.1.4","@chainvue/v402-verus-rpc":"^0.1.0","@chainvue/v402-storage-sqlite":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","supertest":"^7.2.2","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@nestjs/testing":"^11.1.28","@types/supertest":"^7.2.0","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^11.1.28"},"peerDependencies":{"rxjs":"^7.8.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/v402-nestjs_0.1.3_1783985701905_0.5416789272009288","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@chainvue/v402-nestjs","version":"0.1.4","description":"NestJS adapter for v402: PaymentGuard + PaymentInterceptor (two-phase debit), @V402Payment route decorator, V402Module with in-process or facilitator-HTTP verification.","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/adapter-nestjs"},"homepage":"https://github.com/chainvue/v402/tree/main/packages/adapter-nestjs#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"license":"Apache-2.0","author":{"name":"Robert Lech"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@chainvue/v402-protocol":"0.2.0","@chainvue/v402-storage":"0.3.0","@chainvue/v402-storage-sqlite":"0.3.0","@chainvue/v402-verifier":"0.1.5","@chainvue/v402-verus-rpc":"0.1.0"},"peerDependencies":{"@nestjs/common":"^11.0.0","@nestjs/core":"^11.0.0","reflect-metadata":"^0.2.0","rxjs":"^7.8.0"},"devDependencies":{"@nestjs/common":"^11.1.28","@nestjs/core":"^11.1.28","@nestjs/platform-express":"^11.1.28","@nestjs/testing":"^11.1.28","@types/supertest":"^7.2.0","reflect-metadata":"^0.2.2","rxjs":"^7.8.2","supertest":"^7.2.2"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json","test":"vitest run"},"_id":"@chainvue/v402-nestjs@0.1.4","_integrity":"sha512-TgNJ1nboVTUv8RbsCk7ga+LmbTv7WmECqAkv6RvlM8NE14urUysd9AlbvrYiNM/H35yz6+TgeVMO2cPtWkWNxg==","_resolved":"/tmp/15c7f4976f50949ee5485dfe72709d35/chainvue-v402-nestjs-0.1.4.tgz","_from":"file:chainvue-v402-nestjs-0.1.4.tgz","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-TgNJ1nboVTUv8RbsCk7ga+LmbTv7WmECqAkv6RvlM8NE14urUysd9AlbvrYiNM/H35yz6+TgeVMO2cPtWkWNxg==","shasum":"633b19adbdb8f815e79aa68c532346dc4bbc485e","tarball":"https://registry.npmjs.org/@chainvue/v402-nestjs/-/v402-nestjs-0.1.4.tgz","fileCount":31,"unpackedSize":62170,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-nestjs@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIATYf5OKovPiCRShTFcl1dYReuSaaFudBon15tUPg+ufAiEAgGELMPrGb2u49pXnkr7TDR9ucMh2P+m1qYdXE18CWwg="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3749ba62-fd0d-49be-b2d1-a28541565f44"}},"directories":{},"maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/v402-nestjs_0.1.4_1784046997848_0.5275023835914645"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T23:51:19.781Z","modified":"2026-07-14T16:36:38.287Z","0.1.0":"2026-07-10T23:51:20.101Z","0.1.1":"2026-07-11T18:38:21.298Z","0.1.2":"2026-07-11T18:57:11.163Z","0.1.3":"2026-07-13T23:35:02.041Z","0.1.4":"2026-07-14T16:36:37.998Z"},"bugs":{"url":"https://github.com/chainvue/v402/issues"},"author":{"name":"Robert Lech"},"license":"Apache-2.0","homepage":"https://github.com/chainvue/v402/tree/main/packages/adapter-nestjs#readme","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/adapter-nestjs"},"description":"NestJS adapter for v402: PaymentGuard + PaymentInterceptor (two-phase debit), @V402Payment route decorator, V402Module with in-process or facilitator-HTTP verification.","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"readme":"# @chainvue/v402-nestjs\n\nNestJS adapter for [v402](https://github.com/chainvue/v402): charge per request\non any route with a decorator.\n\n- `@V402Payment({ amount, ... })` — route decorator declaring the price (and\n  optional bodyHash policy)\n- `PaymentGuard` — runs the verify + reserve phase before the handler\n- `PaymentInterceptor` — commits after the response (two-phase debit: commit on\n  2xx–4xx, rollback on ≥ 500 — a definitive answer is a rendered service)\n- `V402Module` — wires either **in-process** verification (own storage + Verus\n  RPC) or **http mode** against a standalone facilitator daemon\n\n```sh\nnpm install @chainvue/v402-nestjs\n```\n\nIntegration walkthrough, mode comparison, and configuration reference:\n[docs/integration](https://github.com/chainvue/v402/tree/main/docs/integration)\nin the repo.\n\nRequirements worth knowing up front: bodyHash policies need the app created\nwith `{ rawBody: true }` (the guard fails closed with an operator error\notherwise), and path matching uses the request target verbatim — path-rewriting\nproxies in front of the API are unsupported, as the spec states.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}