{"_id":"@chainvue/v402-client-fetch","_rev":"4-f9e647a9ba3b7f2d08fdcafc7f6792aa","name":"@chainvue/v402-client-fetch","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@chainvue/v402-client-fetch","version":"0.1.0","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-client-fetch@0.1.0","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/client-fetch#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"1e5bd24497f2f8c424e155d2ca771b29e409a694","tarball":"https://registry.npmjs.org/@chainvue/v402-client-fetch/-/v402-client-fetch-0.1.0.tgz","fileCount":27,"integrity":"sha512-QSdh80B7VY6qLvaVdOVRMv6ZCJ4JQPUDJk0Hagqkjux0oqyn9nigFcI66SsphENYhotMhAJdM7h76gL02megVg==","signatures":[{"sig":"MEUCIGpMwb1AUHSeg7bW59UEc0BgSDA8V4KyY8CAj8INTpG+AiEAivzICs91eiLUrzbNcpqVBoYqQdZ/or7S+jvJv9nI9Ic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49183},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-client-fetch-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/7d605535f464d282bdaff46e016d7534/chainvue-v402-client-fetch-0.1.0.tgz","_integrity":"sha512-QSdh80B7VY6qLvaVdOVRMv6ZCJ4JQPUDJk0Hagqkjux0oqyn9nigFcI66SsphENYhotMhAJdM7h76gL02megVg==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/client-fetch"},"_npmVersion":"11.11.0","description":"v402 client for AI agents and services: wrapFetchWithPayment (transparent 402 handshake) and V402Client (balance, topup, discovery). Parallel-safe ULIDs, normative M5 retry semantics, automatic price-mismatch recovery.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@chainvue/v402-protocol":"^0.1.0","@chainvue/v402-signer-verus":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@nestjs/testing":"^11.1.28","reflect-metadata":"^0.2.2","@chainvue/v402-nestjs":"0.1.0","@chainvue/v402-storage":"0.1.0","@chainvue/v402-verus-rpc":"0.1.0","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/v402-client-fetch_0.1.0_1783727485085_0.791637653260296","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@chainvue/v402-client-fetch","version":"0.1.1","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-client-fetch@0.1.1","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/client-fetch#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"c9b0eef121700a739eaec46ffda4d92932af3490","tarball":"https://registry.npmjs.org/@chainvue/v402-client-fetch/-/v402-client-fetch-0.1.1.tgz","fileCount":31,"integrity":"sha512-bEerxzgvzhEfXSzPGz/ubaXALjSkkAaz7uCjmzawRotGh5VXtOmdDKP1IOjC3gY8QvBSQIxNVGz9LMiJxZe//w==","signatures":[{"sig":"MEQCIANO+FZhKG4EOO0On0iixTInsFq8puSIr8XWaslDOnDWAiAvh0XHYQElvYheBeld900ES0fuAClCbI97Yweimh8aDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-client-fetch@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57924},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-client-fetch-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:12cf1b73-6a6e-4f29-a72c-476cac47706b"}},"_resolved":"/tmp/135a1fe313e3b343f593d49dd9c3b04c/chainvue-v402-client-fetch-0.1.1.tgz","_integrity":"sha512-bEerxzgvzhEfXSzPGz/ubaXALjSkkAaz7uCjmzawRotGh5VXtOmdDKP1IOjC3gY8QvBSQIxNVGz9LMiJxZe//w==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/client-fetch"},"_npmVersion":"11.17.0","description":"v402 client for AI agents and services: wrapFetchWithPayment (transparent 402 handshake) and V402Client (balance, topup, discovery). Parallel-safe ULIDs, normative M5 retry semantics, automatic price-mismatch recovery.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"@chainvue/v402-protocol":"^0.1.0","@chainvue/v402-signer-verus":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@nestjs/testing":"^11.1.28","reflect-metadata":"^0.2.2","@chainvue/v402-nestjs":"0.1.1","@chainvue/v402-storage":"0.1.0","@chainvue/v402-verus-rpc":"0.1.0","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/v402-client-fetch_0.1.1_1783795109034_0.3235687935362954","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@chainvue/v402-client-fetch","version":"0.2.0","author":{"url":"chainvue","name":"Robert Lech"},"license":"Apache-2.0","_id":"@chainvue/v402-client-fetch@0.2.0","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"homepage":"https://github.com/chainvue/v402/tree/main/packages/client-fetch#readme","bugs":{"url":"https://github.com/chainvue/v402/issues"},"dist":{"shasum":"5950a3f5ef86ebee23373498e91ed0e31362a22d","tarball":"https://registry.npmjs.org/@chainvue/v402-client-fetch/-/v402-client-fetch-0.2.0.tgz","fileCount":31,"integrity":"sha512-YG7TwnPiCko8+H7OhBGLjGQZ/cZzRISLun+qkkLEoMUyn6GX0W2auegOAxGRyQB2Kv4AGuWS1io1yhXkxQgLWw==","signatures":[{"sig":"MEUCIQCiTAtaYECaras2KfxG7pLMwXz3eN5DX4A2MbvvPgTOewIgdyRgBTlN/Ossr/htvMoLqTmtwLBeMhVo3Al5sbBtFvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-client-fetch@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62055},"main":"./dist/index.js","type":"module","_from":"file:chainvue-v402-client-fetch-0.2.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12cf1b73-6a6e-4f29-a72c-476cac47706b"}},"_resolved":"/tmp/4cdd0ab7cfce127be6278dd5d473179b/chainvue-v402-client-fetch-0.2.0.tgz","_integrity":"sha512-YG7TwnPiCko8+H7OhBGLjGQZ/cZzRISLun+qkkLEoMUyn6GX0W2auegOAxGRyQB2Kv4AGuWS1io1yhXkxQgLWw==","repository":{"url":"git+https://github.com/chainvue/v402.git","type":"git","directory":"packages/client-fetch"},"_npmVersion":"11.17.0","description":"v402 client for AI agents and services: wrapFetchWithPayment (transparent 402 handshake) and V402Client (balance, topup, discovery). Parallel-safe ULIDs, normative M5 retry semantics, automatic price-mismatch recovery.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"@chainvue/v402-protocol":"^0.2.0","@chainvue/v402-signer-verus":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@nestjs/testing":"^11.1.28","reflect-metadata":"^0.2.2","@chainvue/v402-nestjs":"0.1.3","@chainvue/v402-storage":"0.2.0","@chainvue/v402-verus-rpc":"0.1.0","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/v402-client-fetch_0.2.0_1783985709116_0.664728531141751","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@chainvue/v402-client-fetch","version":"0.2.1","description":"v402 client for AI agents and services: wrapFetchWithPayment (transparent 402 handshake) and V402Client (balance, topup, discovery). Parallel-safe ULIDs, normative M5 retry semantics, automatic price-mismatch recovery.","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/client-fetch"},"homepage":"https://github.com/chainvue/v402/tree/main/packages/client-fetch#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-signer-verus":"0.1.2"},"devDependencies":{"@chainvue/v402-nestjs":"0.1.4","@chainvue/v402-storage":"0.3.0","@chainvue/v402-verus-rpc":"0.1.0","@nestjs/common":"^11.1.28","@nestjs/core":"^11.1.28","@nestjs/platform-express":"^11.1.28","@nestjs/testing":"^11.1.28","reflect-metadata":"^0.2.2","rxjs":"^7.8.2"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json","test":"vitest run"},"_id":"@chainvue/v402-client-fetch@0.2.1","_integrity":"sha512-STuX6NOVK6ERDLZKnYfPeHO8YoYY9yAnSku5c2Yy5bsEH5DDyA0gk7Yw9caKquhDqlBwgq/TipwFup0ID8/ltQ==","_resolved":"/tmp/790c026210854cdd4a7cbdcc10afee1a/chainvue-v402-client-fetch-0.2.1.tgz","_from":"file:chainvue-v402-client-fetch-0.2.1.tgz","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-STuX6NOVK6ERDLZKnYfPeHO8YoYY9yAnSku5c2Yy5bsEH5DDyA0gk7Yw9caKquhDqlBwgq/TipwFup0ID8/ltQ==","shasum":"cd20e5bd1836c6f3d8b85e91cf2522c838427f35","tarball":"https://registry.npmjs.org/@chainvue/v402-client-fetch/-/v402-client-fetch-0.2.1.tgz","fileCount":31,"unpackedSize":62042,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chainvue%2fv402-client-fetch@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDy8Z9QyL129Kp1FDhwfbqKnzLlHf1oUHTgfIhhjBRphgIgHDMrjJ0/t2disnD4tWlZweUmCby5iZN2fm2RQB5A7hE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12cf1b73-6a6e-4f29-a72c-476cac47706b"}},"directories":{},"maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/v402-client-fetch_0.2.1_1784046999648_0.3596742923622822"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T23:51:24.930Z","modified":"2026-07-14T16:36:41.398Z","0.1.0":"2026-07-10T23:51:25.212Z","0.1.1":"2026-07-11T18:38:29.165Z","0.2.0":"2026-07-13T23:35:09.253Z","0.2.1":"2026-07-14T16:36:40.993Z"},"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/client-fetch#readme","repository":{"type":"git","url":"git+https://github.com/chainvue/v402.git","directory":"packages/client-fetch"},"description":"v402 client for AI agents and services: wrapFetchWithPayment (transparent 402 handshake) and V402Client (balance, topup, discovery). Parallel-safe ULIDs, normative M5 retry semantics, automatic price-mismatch recovery.","maintainers":[{"name":"devdudeio","email":"fLoAtivErImE@proton.me"}],"readme":"# @chainvue/v402-client-fetch\n\n[v402](https://github.com/chainvue/v402) client for AI agents and services.\n`wrapFetchWithPayment(fetch, config)` returns a drop-in `fetch` that handles\nthe 402 handshake transparently: on a 402 it selects an accepted scheme, signs\nthe canonical payload, retries with `X-V402-*` payment headers, and recovers\nautomatically from price changes (M6). `V402Client` covers the rest of the\nfacilitator API: signed balance queries, topup info, discovery.\n\n```sh\nnpm install @chainvue/v402-client-fetch\n```\n\n```ts\nimport { wrapFetchWithPayment } from \"@chainvue/v402-client-fetch\";\nimport { EnvSigner } from \"@chainvue/v402-signer-verus\";\n\nconst paidFetch = wrapFetchWithPayment(fetch, {\n  payer: \"v402-agent@\",\n  signer: new EnvSigner(/* ... */),\n});\nconst res = await paidFetch(\"https://api.example.com/paid/thing\");\n```\n\nRetry semantics follow the normative M5 table: same-`requestId` auto-retry only\nfor network failures / 503 / 429; endpoint 5xx is **not** auto-retried (the\nreservation was rolled back server-side — whether to repeat a possibly\nside-effectful request is the caller's decision, with a fresh ULID). Node ≥ 22;\nbrowser support is on the roadmap (Etappe 2).\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}