{"_id":"@afoures/http-client","_rev":"10-425a34ea0a042a903a38733d427054ee","name":"@afoures/http-client","dist-tags":{"latest":"0.7.0"},"versions":{"0.0.0":{"name":"@afoures/http-client","version":"0.0.0","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.0.0","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"d4944c3ebe93e964c223e60b6b0c818a18519128","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.0.0.tgz","fileCount":5,"integrity":"sha512-MoqBrgyEzQ0n/bYNr4dtlp8B4E71OlxLXZLx/k5SOfGGCh4T7wsfSyTrozMnqiYM2YNYZ5PIPmT/kZRz1LE16A==","signatures":[{"sig":"MEYCIQCgNfQppcO6a11VfuGg4jzcSHA9EYy8Fobb6GQYIX0WkQIhAK3kS5jCW6aNZh5PCAFXni1dUk1UXDecNt25avXaPIB1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5078},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.0.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"afoures","email":"contact@afoures.com"},"_resolved":"/private/var/folders/9d/t0nnfz915k175dgmvk81l3r80000gn/T/0f76370ec888b66b6657fb9cccc046bb/afoures-http-client-0.0.0.tgz","_integrity":"sha512-MoqBrgyEzQ0n/bYNr4dtlp8B4E71OlxLXZLx/k5SOfGGCh4T7wsfSyTrozMnqiYM2YNYZ5PIPmT/kZRz1LE16A==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.6.2","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.10","zod":"^4.3.6","oxfmt":"^0.25.0","oxlint":"^1.48.0","tsdown":"^0.20.3","typescript":"^5.9.3","@types/node":"^24.10.13","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.0.0_1771607775618_0.2859680216460083","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@afoures/http-client","version":"0.1.0","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.1.0","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"bee32d0a1b47ec617f58bcc93883a4d082a5dade","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.1.0.tgz","fileCount":21,"integrity":"sha512-KsfR4Xa1VoRx5lT+r5EVaM1qHZQwyr7+b+EFm71tltKP2UZFHVRSRnDjDhhSlIKJvPM0ZN2K0O4qqJYMq+6agA==","signatures":[{"sig":"MEUCIA60jSaL9LJb6pXrmmJIwps1CccgKU1q2tIY/JEkGBAUAiEAvZzN1b72sqE/HYNTpeQ2QmBx9EaPzHvWIanVQQ20XT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93782},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.1.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"afoures","email":"contact@afoures.com"},"_resolved":"/private/var/folders/9d/t0nnfz915k175dgmvk81l3r80000gn/T/4e9c863d357194148cd31a6d095603cb/afoures-http-client-0.1.0.tgz","_integrity":"sha512-KsfR4Xa1VoRx5lT+r5EVaM1qHZQwyr7+b+EFm71tltKP2UZFHVRSRnDjDhhSlIKJvPM0ZN2K0O4qqJYMq+6agA==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.6.2","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.10","zod":"^4.3.6","oxfmt":"^0.36.0","oxlint":"^1.51.0","tsdown":"^0.21.0","typescript":"^5.9.3","@types/node":"^24.12.0","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.1.0_1772928746118_0.8732455952886153","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@afoures/http-client","version":"0.1.1","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.1.1","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"dbb9ed237005a76f23dba869381d6231ad4eeb74","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.1.1.tgz","fileCount":21,"integrity":"sha512-VctfspLbhH2a0zsLQ1PHL4UV8va6zgQ1gDt0cSz8MCnkWLXWRlslsllvEKtxohfzmLJjmcRtPEqdauAAFokOcg==","signatures":[{"sig":"MEYCIQCqGrcwh+3dYcBr6uTiRTSw65ICsfgHDXxoyxOZk0eWcwIhAJQa7TmOxmRNMtE9VS+5b2hnxGlQ9VqUBGybOz8wnbzt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93853},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.1.1.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"afoures","email":"contact@afoures.com"},"_resolved":"/private/var/folders/9d/t0nnfz915k175dgmvk81l3r80000gn/T/a973b0a9cfc5a6ad349e4e294fc38be1/afoures-http-client-0.1.1.tgz","_integrity":"sha512-VctfspLbhH2a0zsLQ1PHL4UV8va6zgQ1gDt0cSz8MCnkWLXWRlslsllvEKtxohfzmLJjmcRtPEqdauAAFokOcg==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.6.2","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.10","zod":"^4.3.6","oxfmt":"^0.36.0","oxlint":"^1.51.0","tsdown":"^0.21.0","typescript":"^5.9.3","@types/node":"^24.12.0","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.1.1_1772928838826_0.0024910516571037267","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@afoures/http-client","version":"0.2.0","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.2.0","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"9ab82f88a6cabe95ade6d7958052747d98361269","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.2.0.tgz","fileCount":21,"integrity":"sha512-e7YugUjk+OykFVsAANwLYlK7ZisSG7xPoSOnoXyGd3APHZENkGKjhpLu6k3Q+nJHB0+HqJaRrxF498X22i0W3Q==","signatures":[{"sig":"MEUCID8Eo6nhWA/FLqnQiaTPP9bxJ8f/T+3Ru3gmOcVcyyYYAiEAot4Yt/8Wb5UX0Y6xu8KoA/8Mix5whbJ8Dk8TmpcID8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afoures%2fhttp-client@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92530},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.2.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dec6f4c1-3033-46aa-aaa1-7cfadd32882e"}},"_resolved":"/tmp/5681df6abb12cc3deaf38643bd0ad8d5/afoures-http-client-0.2.0.tgz","_integrity":"sha512-e7YugUjk+OykFVsAANwLYlK7ZisSG7xPoSOnoXyGd3APHZENkGKjhpLu6k3Q+nJHB0+HqJaRrxF498X22i0W3Q==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.9.0","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.12.10","zod":"^4.3.6","oxfmt":"^0.36.0","oxlint":"^1.51.0","tsdown":"^0.21.0","typescript":"^5.9.3","@types/node":"^24.12.0","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.2.0_1775142184111_0.8071835291257321","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@afoures/http-client","version":"0.3.0","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.3.0","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"51f82d83d174c9658996bb3f848f7fd60585c8f7","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.3.0.tgz","fileCount":21,"integrity":"sha512-N2q8ZmlnwNGeKCNAetJRsCani4/K6nZ5YApSpy4Eip+NqFvVD9t162SP+o5wqZYFkMS50bNsGL/kgpgIcoBinQ==","signatures":[{"sig":"MEUCIQCNoKPXTBAF2m1lQC7+iZMuE+u2NX3VyxgxYp6yA6zWqgIgRU0QMm1UZlz2EBB098XWLmaCG51b9b12fyMVpbbcYGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afoures%2fhttp-client@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97389},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.3.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dec6f4c1-3033-46aa-aaa1-7cfadd32882e"}},"_resolved":"/tmp/c190415b50ffe473badaf8cdb56a2c98/afoures-http-client-0.3.0.tgz","_integrity":"sha512-N2q8ZmlnwNGeKCNAetJRsCani4/K6nZ5YApSpy4Eip+NqFvVD9t162SP+o5wqZYFkMS50bNsGL/kgpgIcoBinQ==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.11.0","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.13.2","zod":"^4.3.6","oxfmt":"^0.36.0","oxlint":"^1.59.0","tsdown":"^0.21.0","typescript":"^5.9.3","@types/node":"^24.12.2","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.3.0_1776004158583_0.9572572791241665","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@afoures/http-client","version":"0.4.0","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.4.0","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"7744d0e6d6caa35d3095b98da87919a651b4b19b","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.4.0.tgz","fileCount":21,"integrity":"sha512-d1QE33thepg0mpG4/QQ07RgdSn/RhszQpwdcHjW5jT4Zt8hIjpXOqvvYkCJXVbuLMQ9LRhuUEMTG3dsUXGMj2w==","signatures":[{"sig":"MEUCIQCPQcgMlBLcwk70Kr+jbjNNuRE9pwudD6WaaI9mDs/P/gIgU6PzqmEdtBi5rwQ4SitBfx9RwySNlN/ehP8v4XNk+YY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afoures%2fhttp-client@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101346},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.4.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dec6f4c1-3033-46aa-aaa1-7cfadd32882e"}},"_resolved":"/tmp/fcbf6049b5cd2574d12e5fcbe3a93fc3/afoures-http-client-0.4.0.tgz","_integrity":"sha512-d1QE33thepg0mpG4/QQ07RgdSn/RhszQpwdcHjW5jT4Zt8hIjpXOqvvYkCJXVbuLMQ9LRhuUEMTG3dsUXGMj2w==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.12.1","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.13.2","zod":"^4.3.6","oxfmt":"^0.36.0","oxlint":"^1.59.0","tsdown":"^0.21.0","typescript":"^5.9.3","@types/node":"^24.12.2","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.4.0_1779148426037_0.2889614177530597","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@afoures/http-client","version":"0.5.0","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.5.0","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"bdf717b7b0998de36f11bfe3cb783198ed50d8bb","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.5.0.tgz","fileCount":21,"integrity":"sha512-Nkddm1LO8eiwTpGLPbTH6jIYJRKfex4/6jBkZ4x2cU+GKi4wxyVWuBP5ESJtng0H6wdee0V3+jBRaSpcvjNazQ==","signatures":[{"sig":"MEYCIQC39B7KsaOVC7hWOPu4MfPvgbucI+Am9DEajziM5UTZmQIhAObytIZx8/S1JvHUOurLU3crs+bVQLZfzbZby82Fv2y9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afoures%2fhttp-client@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78013},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.5.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:infer":"node src/lib/infer.bench.ts","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dec6f4c1-3033-46aa-aaa1-7cfadd32882e"}},"_resolved":"/tmp/77f566a00fb711203be473c40df56f6b/afoures-http-client-0.5.0.tgz","_integrity":"sha512-Nkddm1LO8eiwTpGLPbTH6jIYJRKfex4/6jBkZ4x2cU+GKi4wxyVWuBP5ESJtng0H6wdee0V3+jBRaSpcvjNazQ==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.16.0","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.13.2","zod":"^4.3.6","oxfmt":"^0.36.0","oxlint":"^1.59.0","tsdown":"^0.21.0","typescript":"^5.9.3","@types/node":"^24.12.2","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.5.0_1782917714118_0.8386166146584868","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@afoures/http-client","version":"0.5.1","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.5.1","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"1ab3c1f8ae2f8c18243a30520a777953aff7d797","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.5.1.tgz","fileCount":21,"integrity":"sha512-CGKqrfK4zj3t8s27m/gm+m9b6vgXTjPkxqS/PFZqdI5SFrgVHA+WsgY/gGbfgUkm5dQQ4ekXFR36cNbELBKJTQ==","signatures":[{"sig":"MEUCIFJ1BSD5Cs4dHsjKaJd/U0o/C59lucJGnTCXgEPKzBWQAiEA6ZeTrftweBGknwfmp6gNYf/UEMWzK21HzmZWeKayaWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afoures%2fhttp-client@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78005},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.5.1.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:infer":"node src/lib/infer.bench.ts","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dec6f4c1-3033-46aa-aaa1-7cfadd32882e"}},"_resolved":"/tmp/b8b6367dbf397e2cef63173ccb264a92/afoures-http-client-0.5.1.tgz","_integrity":"sha512-CGKqrfK4zj3t8s27m/gm+m9b6vgXTjPkxqS/PFZqdI5SFrgVHA+WsgY/gGbfgUkm5dQQ4ekXFR36cNbELBKJTQ==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.16.0","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.13.2","zod":"^4.3.6","oxfmt":"^0.36.0","oxlint":"^1.59.0","tsdown":"^0.21.0","typescript":"^5.9.3","@types/node":"^24.12.2","@arktype/attest":"^0.56.0","@afoures/auto-release":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.5.1_1782944262896_0.8830853800505842","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@afoures/http-client","version":"0.6.0","keywords":[],"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","_id":"@afoures/http-client@0.6.0","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"homepage":"https://github.com/afoures/http-client#readme","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"b354268b22daee3a150c2bd2a30b4d8d1499f38d","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.6.0.tgz","fileCount":22,"integrity":"sha512-gXnbb7n4fG5rf89lYFsWux0tvik+DSffj/pkUTnr+Mc1yJb0slp5XlMaeRuzk6Yrvj4iY70LNCaRDRqw0+Bdmg==","signatures":[{"sig":"MEQCIHdEqR5LgW/vpjcMGKTyUYsRjZvEsfSJf8z4A2z6+HHjAiAYl0/QO/+cPiYMY9pEYcva8/PM3X550FFfcCFUPeYC6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afoures%2fhttp-client@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110598},"main":"./dist/index.mjs","type":"module","_from":"file:afoures-http-client-0.6.0.tgz","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:infer":"node src/lib/infer.bench.ts","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dec6f4c1-3033-46aa-aaa1-7cfadd32882e"}},"_resolved":"/tmp/5ed6d48977fd035adf662b615bf84218/afoures-http-client-0.6.0.tgz","_integrity":"sha512-gXnbb7n4fG5rf89lYFsWux0tvik+DSffj/pkUTnr+Mc1yJb0slp5XlMaeRuzk6Yrvj4iY70LNCaRDRqw0+Bdmg==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.16.0","description":"A typesafe and robust HTTP client","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@standard-schema/spec":"^1.1.0","@remix-run/route-pattern":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.15.0","zod":"^4.4.3","oxfmt":"^0.36.0","oxlint":"^1.73.0","tsdown":"^0.21.10","typescript":"^5.9.3","@types/node":"^24.13.3","@arktype/attest":"^0.56.3","@afoures/auto-release":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/http-client_0.6.0_1784534606145_0.07854344471075425","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"_id":"@afoures/http-client@0.7.0","bugs":{"url":"https://github.com/afoures/http-client/issues"},"dist":{"shasum":"1a64810445df14a2a9a0d80965d75a832719d576","tarball":"https://registry.npmjs.org/@afoures/http-client/-/http-client-0.7.0.tgz","fileCount":26,"integrity":"sha512-nlYqt/K9Fg18MLS0RQcYGAilIbA2PzlPN+aZ598StGkbKOlc+Fr7POjzdskgAbtCxL0dh4AR1ilobI0AEXrSig==","signatures":[{"sig":"MEQCIFpgDdtPmBt+v90anGl3GAYT8bSioZJ8SKf2+9rwNr7rAiBdAUdL/UYYAG1fi0kNep2rVTZ1DKHiuTMJlqYFynOBtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCQCKx/7xB6KpJbmLlPkTnkvwIgucbJEWy4FSYzaG5aqQIhAKSWDsCNojDlxddjyMIElR7VLZGGRBQn5rPw7nj+mZkD"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afoures%2fhttp-client@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230865},"main":"./dist/index.mjs","name":"@afoures/http-client","type":"module","_from":"file:afoures-http-client-0.7.0.tgz","types":"./dist/index.d.mts","author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"module":"./dist/index.mjs","engines":{"node":">=20.3.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./package.json":"./package.json"},"license":"MIT","scripts":{"dev":"tsdown --watch","lint":"oxlint","test":"node --test src/**/*.test.ts","build":"tsdown","format":"oxfmt","typecheck":"tsc --noEmit","bench:infer":"node src/lib/infer.bench.ts","bench:endpoint":"node src/lib/endpoint.bench.ts","bench:http-client":"node src/lib/http-client.bench.ts"},"version":"0.7.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dec6f4c1-3033-46aa-aaa1-7cfadd32882e"}},"homepage":"https://github.com/afoures/http-client#readme","keywords":[],"_resolved":"/tmp/a8eae8204bb9ba25878ea2b5d8e68698/afoures-http-client-0.7.0.tgz","_integrity":"sha512-nlYqt/K9Fg18MLS0RQcYGAilIbA2PzlPN+aZ598StGkbKOlc+Fr7POjzdskgAbtCxL0dh4AR1ilobI0AEXrSig==","repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"_npmVersion":"11.19.0","description":"A typesafe and robust HTTP client","directories":{},"maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"_nodeVersion":"24.20.0","dependencies":{"@standard-schema/spec":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.15.0","zod":"^4.4.3","oxfmt":"^0.36.0","oxlint":"^1.73.0","tsdown":"^0.21.10","typescript":"^5.9.3","@types/node":"^24.13.3","@arktype/attest":"^0.56.3","@afoures/auto-release":"^0.9.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/http-client_0.7.0_1789452115178_0.5143568727168286"}}},"time":{"created":"2026-02-20T17:16:15.439Z","modified":"2026-09-15T06:01:55.762Z","0.0.0":"2026-02-20T17:16:15.788Z","0.1.0":"2026-03-08T00:12:26.280Z","0.1.1":"2026-03-08T00:13:58.987Z","0.2.0":"2026-04-02T15:03:04.248Z","0.3.0":"2026-04-12T14:29:18.774Z","0.4.0":"2026-05-18T23:53:46.203Z","0.5.0":"2026-07-01T14:55:14.302Z","0.5.1":"2026-07-01T22:17:43.060Z","0.6.0":"2026-07-20T08:03:26.278Z","0.7.0":"2026-09-15T06:01:55.279Z"},"bugs":{"url":"https://github.com/afoures/http-client/issues"},"author":{"name":"Antoine Fourès","email":"contact@afoures.com"},"license":"MIT","homepage":"https://github.com/afoures/http-client#readme","keywords":[],"repository":{"url":"git+https://github.com/afoures/http-client.git","type":"git"},"description":"A typesafe and robust HTTP client","maintainers":[{"name":"afoures","email":"contact@afoures.com"}],"readme":"# http-client\n\nA typesafe and robust HTTP client with schema validation.\n\n## Why?\n\n**Typesafe by design**: Path params, query strings, request bodies, and responses are all typed. Responses are typed _per status code_ (with `2xx`/`4xx`/`5xx` wildcard fallbacks), so a `200` body and a `404` body each carry their own type. Schema validation happens at runtime with full TypeScript inference.\n\n**Standard Schema compatible**: Works with Zod, ArkType, Valibot, or any schema library implementing the [Standard Schema spec](https://github.com/standard-schema/standard-schema).\n\n**Robust error handling**: Typed errors for timeouts, network failures, serialization issues, and unexpected errors. No more guessing what went wrong.\n\n**Built-in retry**: Configurable retry policies with contextual conditions and exponential backoff support.\n\n## Installation\n\n```bash\nnpm install @afoures/http-client\n# or\npnpm add @afoures/http-client\n# or\nyarn add @afoures/http-client\n# or\nbun add @afoures/http-client\n```\n\nThe package has no runtime dependencies. It needs a runtime with `fetch`, `AbortSignal.any`,\n`AbortSignal.timeout` and `URL.canParse`: Node 20.3 or later (declared in `engines`), Bun, Deno,\nand every current browser. Schemas come from your own library, anything implementing the\n[Standard Schema spec](https://github.com/standard-schema/standard-schema).\n\n## Quick Start\n\n```typescript\nimport { Endpoint, http_client } from \"@afoures/http-client\";\nimport { z } from \"zod\";\n\nconst api = http_client(\n  {\n    users: {\n      list: new Endpoint(\n        { method: \"GET\", pathname: \"/users\" },\n        {\n          query: {\n            schema: z.object({\n              page: z\n                .number()\n                .transform((n) => String(n))\n                .optional(),\n              limit: z\n                .number()\n                .transform((n) => String(n))\n                .optional(),\n            }),\n          },\n          responses: {\n            200: {\n              schema: z.array(z.object({ id: z.string(), name: z.string() })),\n              parse: \"json\",\n            },\n          },\n        },\n      ),\n      get: new Endpoint(\n        { method: \"GET\", pathname: \"/users/:id\" },\n        {\n          responses: {\n            200: {\n              schema: z.object({ id: z.string(), name: z.string() }),\n              parse: \"json\",\n            },\n            404: {\n              schema: z.object({ message: z.string() }),\n              parse: \"json\",\n            },\n          },\n        },\n      ),\n      create: new Endpoint(\n        { method: \"POST\", pathname: \"/users\" },\n        {\n          body: {\n            schema: z.object({ name: z.string(), email: z.string().email() }),\n            serialize: \"json\",\n          },\n          responses: {\n            201: {\n              schema: z.object({ id: z.string(), name: z.string() }),\n              parse: \"json\",\n            },\n          },\n        },\n      ),\n    },\n  },\n  { base_url: \"https://api.example.com\" },\n);\n\n// All endpoints are fully typed\nconst list = await api.users.list({ query: { page: 1, limit: 10 } });\nconst user = await api.users.get({ params: { id: \"123\" } });\nconst created = await api.users.create({ body: { name: \"John\", email: \"john@example.com\" } });\n\n// Failures are returned, never thrown; peel them off first, then narrow on `status`\nif (user instanceof Error) {\n  console.error(user.message, user.context);\n} else if (user.status === 200) {\n  console.log(user.data.name); // { id: string; name: string }\n} else if (user.status === 404) {\n  console.warn(user.error.message); // { message: string }\n}\n```\n\nTwo things worth knowing before the first request:\n\n- `base_url` follows standard URL resolution, so a path prefix needs a trailing slash:\n  `\"https://api.example.com/v1/\"` keeps `/v1`, `\"https://api.example.com/v1\"` drops it. See\n  [Base URL](./docs/http-client.md#base-url).\n- Every call takes one input object, even when empty: `api.users.list({})`.\n\n## Documentation\n\n- [HTTP Client](./docs/http-client.md)\n- [Endpoint Definition](./docs/endpoint-definition.md)\n- [Dynamic Context](./docs/dynamic-context.md)\n- [Schema Integration](./docs/schema-integration.md)\n- [Serialization](./docs/serialization.md)\n- [Response Parsing](./docs/response-parsing.md)\n- [Error Handling](./docs/error-handling.md)\n- [Retry Policy](./docs/retry-policy.md)\n- [API Reference](./docs/api-reference.md)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}