{"_id":"1000fetches","_rev":"15-a5517c46a5c138ed59fef52ed593668c","name":"1000fetches","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"1000fetches","version":"0.1.0","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.0","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"c1ca0f30f1637f44160bd4901ada0a1c95e56e0d","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.0.tgz","fileCount":5,"integrity":"sha512-gxY1ARw00vFLk+rN/yDNdI1HjmFQ56qtZ3HCYgbeXmdimKlyexlEPGRs9iWPLYxTmX7pXCDAnm6L5WuGk6BVmw==","signatures":[{"sig":"MEUCIQCKJjOr5z/yGetYwb/bUoNv+tPZeRQqt0jOfdvRO2xPEQIgALJGiSr8HZLhzxQinVqiYNjCz+NcMEbHRq2gjYWdi/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173657},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"770864f0db3cab7c3048cf2d26b133964d2eaa38","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"11.6.1","description":"A modern, type-safe HTTP client for TypeScript with built-in schema validation, interceptors, retry logic, and compile-time path parameter validation. Features full TypeScript support, automatic retry logic, request/response interceptors, and schema valid","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.3","zod":"4.1.11","vite":"7.1.7","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.2","@types/node":"22.18.6","expect-type":"1.2.2","@vitest/coverage-v8":"3.2.4","@vitejs/plugin-react":"4.7.0","rollup-plugin-visualizer":"6.0.3"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.0_1759839079685_0.10956761697170925","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"1000fetches","version":"0.1.1","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.1","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"87863a6219c9d2fec3c56b240963096c6e944627","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.1.tgz","fileCount":6,"integrity":"sha512-Jk7gKNuKUlZz9hHY13MUNVtYBeaBujjHwKp8PtNKDXjTLANFQhYpUISD1N4NOAK555ZFOLza4djqKMzfcyHoTg==","signatures":[{"sig":"MEUCIGET8LyjWGUqI2mVrb33yPIeirzty3rXQ/CLXPtb89+HAiEAuafFiBuI+GR+biY+FwplBp6O6WmiUR0sZUEYAebp+aA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207363},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"58e076487f93ae9f9165ddc161e78a60f5d1d55c","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"11.6.1","description":"A type-first HTTP client with compile-time path validation, runtime schema verification, smart retry logic, and interceptors — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.3","zod":"4.1.11","vite":"7.1.7","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.2","@types/node":"22.18.6","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","@vitejs/plugin-react":"4.7.0","rollup-plugin-visualizer":"6.0.3"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.1_1759857211072_0.9066493422356445","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"1000fetches","version":"0.1.2","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.2","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"0b92c2f7e4a1f51cedb05be2f660e5a9da35440b","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.2.tgz","fileCount":6,"integrity":"sha512-RXk6HyCZD6Fsl5dwtEKRAs9pGrJT5XumQL4Bq3l0t/TlgTdRF9Q7Mg/JDZDvvEYts3SIKeBSYT9QrDQ934BXuw==","signatures":[{"sig":"MEQCIBEwy/eextqtFsb+3P2RUEEiz7cx8zfjhrTlfs9Tw+kyAiAdACt7Lxw/VX3F1qf1Epg0ln8LSkW6VOtIjLEiE22gRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190023},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"d7ce8276ad0239775c833421692533220a520142","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"11.6.1","description":"A type-first HTTP client with compile-time path validation, runtime schema verification, smart retry logic, and interceptors — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.3","zod":"4.1.12","vite":"7.1.9","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.8","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.2_1759859352182_0.1589224027334255","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"1000fetches","version":"0.1.3","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.3","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"983d38b381ab3503c37100878f508df45a116618","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.3.tgz","fileCount":6,"integrity":"sha512-RzdBqpMK+OEs8FtQ/+PAccV4I9qSFVBjuuV0i5Jk+4ET//9f+Ks3eC4/WywyBzSz6ULh81Kvh37h7bwqYzzo+A==","signatures":[{"sig":"MEQCIGKb9afsoq68slUROT5+PnC7TtxFJ1Vok6Ex4N8LyiSKAiAb/SY0KpRUbvs8008WZzd/HSbztr26DVPOW7E0wIw3RQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211265},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"70bf94bf9e4b0fb19fb76756a5eeb8fd51fa431f","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, runtime schema verification, smart retry logic, and interceptors — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.3","zod":"4.1.12","vite":"7.1.9","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.8","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.3_1760159823645_0.1716803386201058","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"1000fetches","version":"0.1.4","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.4","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"4f3897ecae21cb5e4485a37dfcaab73dc38201c8","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.4.tgz","fileCount":6,"integrity":"sha512-tlm2cOz5jX0cmYonTSSjHag5tKMJEAPB+TvtjE+4jwBft527IsWF1f5vhb505rCTrdVXEnPDmWfAXT5MsOboQg==","signatures":[{"sig":"MEQCICRbGKSKBcc2fCJGjApg1KuCalG2FSyzvTWBXtBoaFDCAiBCAFx9S72Io8/2IYFZfIeG+AtSNNRwPBBT70TkzyRFNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195082},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"86f2da98e2943c17b0cc772eca92c16ab3d139a1","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, runtime schema verification, smart retry logic, and interceptors — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.5","zod":"4.1.12","vite":"7.1.9","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.9","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.4_1760190172876_0.38135696775753636","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"1000fetches","version":"0.1.5","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.5","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"7c4e900091a1ea53cb9281a00fc21baff8eb2125","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.5.tgz","fileCount":6,"integrity":"sha512-5ZJLFKJDLlpVVDN/Qwmwd5nwEv2W5u+f5uFAgvM77AQ+8fnWu1CCCH68U75ckaLyoJW5qPAEqxdnlYc2K0dx9w==","signatures":[{"sig":"MEUCIQDN0jy2gLzOagunzE0/5hITrxLAdIjmibyNfmZnXA58iQIgR0pxoJV/U//FSyDkglOovb2W7Wqw7NDeWnlR48wpDUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135689},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"22456aaa7239af038d05e3b6472be0ccdbca2765","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.5","zod":"4.1.12","vite":"7.1.9","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.9","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.5_1760273184444_0.056712233066199325","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"1000fetches","version":"0.1.6","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.6","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"2c93d956bf48b09b1fe7bc0f68324034dd44e78d","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.6.tgz","fileCount":6,"integrity":"sha512-KMtR1vO9duqypwiopKhit40951OBktH8u0CpVPriuUEsTrFkV3UmxwIXIlYF3mKQkH9jSAX7qAIHFduunVAtLA==","signatures":[{"sig":"MEUCIQCa2ZSYNaS6h4/vAqGh8IdMgRag8Hxp4t5yotdtOHlL0AIgZMqmB0u+pMf9oYiXfGvntHcqi8LVUIUdX/3wjO52zOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142747},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"1bb96726468b3d8c80f803a3eca7712a1ed1ded0","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.5","zod":"4.1.12","vite":"7.1.9","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.9","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.6_1760275934275_0.5516242579723372","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"1000fetches","version":"0.1.7","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.7","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"bee82ec9c9aac2bb4fcdbc2d1961b1e5c9896da3","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.7.tgz","fileCount":6,"integrity":"sha512-D4ZhJi4Wtq7laJjCB6SOrJG7+nOBeC7zJnrRDh+tAJ853SFvMC3DwKvh/jiqKyw7BXTeT3Ac+5S+VSTEOn/1ZQ==","signatures":[{"sig":"MEYCIQDfX+cqjYhGkswOBcW37un+H0iCrTTF/8OoEKqysOt80wIhAIAB5b0QrBfLwoJyWA1L5T1XUMYCV0iJ1RpKX779u1sy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141984},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"12e11af6a1678d6fd371b969df8a4601fbd99cdc","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.5","zod":"4.1.12","vite":"7.1.9","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.9","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.7_1760277245813_0.9343425222695176","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"1000fetches","version":"0.1.9","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Your Name"},"license":"MIT","_id":"1000fetches@0.1.9","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/your-username/1000fetches#readme","bugs":{"url":"https://github.com/your-username/1000fetches/issues"},"dist":{"shasum":"22a284856c46e4a12d11cbf73ad2d2e62eadf6e7","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.9.tgz","fileCount":6,"integrity":"sha512-FRGkkDo0NoBp1jpkgAX9t4HBeOOK7worKfOBGCU64kzWQxYFXdvqx5JwQrzE6OIQbtZv1fyG35jxjlElkoivSw==","signatures":[{"sig":"MEUCIQDXrCLu+q4HanrFVm6THSyyH9zQ+oM2oLhtVrnkUhPzmAIgeAb5LpxdWe1rH+Iuyc0CA5SKtsc3thWJEaeGtL4/1bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142541},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"dc4868ec7bd78c9ab537a7e8ca786ee7973f6c46","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:watch":"vitest","bundle:size":"node ../../scripts/bundle-size.js","test:coverage":"vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/your-username/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.5","zod":"4.1.12","vite":"7.1.9","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.22","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.9","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.9_1760340135916_0.8847508077515205","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"1000fetches","version":"0.1.10","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"kioviensis"},"license":"MIT","_id":"1000fetches@0.1.10","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/kioviensis/1000fetches#readme","bugs":{"url":"https://github.com/kioviensis/1000fetches/issues"},"dist":{"shasum":"7d57b012f76c4ffcefd761f9c9a17f4bc64a388b","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.10.tgz","fileCount":8,"integrity":"sha512-HA1cfbjZFE5kSy6E7BTX0RqqVLLIfi+4ojiL9ueE5iDH34C1YoxqPNiSt8Axrtt71K7fu/FMGeS27qZ0Gb2vHQ==","signatures":[{"sig":"MEUCIGr3+57OHGALHQL1FlLfAWKW+gIVkTyaKSmHkV0BxB/9AiEAkFgM3W578PL+KfeyVP1RFwVClPs1Myewfq9aAZzggcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156405},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"36d7123ff9231076d0f3e0c55ad17cfd5dcf0bf1","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build && node scripts/copy-assets.js","clean":"rm -rf dist coverage","lint:fix":"prettier --write .","test:watch":"vitest","copy-assets":"node scripts/copy-assets.js","test:coverage":"vitest --coverage"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/kioviensis/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.5","zod":"4.1.12","vite":"7.1.10","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.23","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.9","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.10_1760597645390_0.43676966635057224","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"1000fetches","version":"0.1.11","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"kioviensis"},"license":"MIT","_id":"1000fetches@0.1.11","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/kioviensis/1000fetches#readme","bugs":{"url":"https://github.com/kioviensis/1000fetches/issues"},"dist":{"shasum":"08bb2234733cd0d2afded2d0d3f3e9a8f052c2d8","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.1.11.tgz","fileCount":8,"integrity":"sha512-1iMUvf5x+pp1i5ktYBDhGY6t7xzRdrnCJdhoznQYEWfL8pt9qz44EfdU8Hpr1yQsS/9kYMrF/9wT67kyok3tcA==","signatures":[{"sig":"MEUCIQDEUplCAQjh1p+HwGgKts+0J2JCx4IcQKR6ipnKkTijJQIgXU9lJWgScN2CKzNxzDkEy37GSLZu9vadDTdDGKAgkrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158034},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"1b8b0175dba2c602cd7043728f4aab1014934c3b","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build && node scripts/copy-assets.js","clean":"rm -rf dist coverage","lint:fix":"prettier --write .","test:watch":"vitest","copy-assets":"node scripts/copy-assets.js","test:coverage":"vitest --coverage"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/kioviensis/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.5","zod":"4.1.12","vite":"7.1.10","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.23","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.9","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.4"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.1.11_1760729729807_0.35895312873944873","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"1000fetches","version":"0.2.0","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"kioviensis"},"license":"MIT","_id":"1000fetches@0.2.0","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/kioviensis/1000fetches#readme","bugs":{"url":"https://github.com/kioviensis/1000fetches/issues"},"dist":{"shasum":"1f15792f02060d20a47bda901ff2452333a1c849","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.2.0.tgz","fileCount":8,"integrity":"sha512-vZNXT8x6wdtjE2HAyP29LbUBpa7OLiUiI+97314pRR3XuhTVeYwHapa3RA4XCq4FIC7LdaQfLz9N/ZLhvkcwyw==","signatures":[{"sig":"MEUCIEkoUogJYsd6T+cJ4QjLYIvptBxiDxXdklqBXMrXv1VlAiEAohOO5v+NFWEkbG/oFCjYyLwnfqYGu7andZz9Ln2Bzxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180923},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"09898516a52f3e31d7f3c2e188104230567d515f","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build && node scripts/copy-assets.js","clean":"rm -rf dist coverage","lint:fix":"prettier --write .","test:watch":"vitest","copy-assets":"node scripts/copy-assets.js","test:coverage":"vitest --coverage"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/kioviensis/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.6","zod":"4.1.12","vite":"7.1.11","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.23","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.11","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.5"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.2.0_1760985924647_0.17710808481245444","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"1000fetches","version":"0.2.1","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"kioviensis"},"license":"MIT","_id":"1000fetches@0.2.1","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"homepage":"https://github.com/kioviensis/1000fetches#readme","bugs":{"url":"https://github.com/kioviensis/1000fetches/issues"},"dist":{"shasum":"5555849f7ee68ae3f21b4f8cbb32a1a40ea3e8aa","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.2.1.tgz","fileCount":8,"integrity":"sha512-vHC+6LjzWXMQB0cWkO0q6HFLs9zlX6eqfYz68t1Ef2nolSMulOULGEGmnDKv7+AIIzxJhxoIvJivp7C/2CINqA==","signatures":[{"sig":"MEYCIQCf6EqcPZ+v875Nx0VZ5T7dhm/AYh6rcqelpwRoHrEwKQIhANNP2SE+jgAIABQfykpI2MC5rVdNF/aMu/cvBiaZ3PSJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181473},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"f4e6eb8fbb15d4ee33f60c2d9b7ee3cf22498666","scripts":{"dev":"vite build --watch","tsc":"tsc --noEmit","lint":"prettier --check .","test":"vitest --run","build":"tsc && vite build && node scripts/copy-assets.js","clean":"rm -rf dist coverage","lint:fix":"prettier --write .","test:watch":"vitest","copy-assets":"node scripts/copy-assets.js","test:coverage":"vitest --coverage"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"repository":{"url":"git+https://github.com/kioviensis/1000fetches.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-first HTTP client with compile-time path validation, schema validation, middleware, retries, and real-time streaming — powered by native fetch. Supports Zod, Valibot, ArkType, and any Standard Schema-compatible library.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@standard-schema/spec":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.11.6","zod":"4.1.12","vite":"7.1.11","terser":"5.44.0","vitest":"3.2.4","arktype":"2.1.23","valibot":"1.1.0","typescript":"5.9.3","@types/node":"22.18.11","expect-type":"1.2.2","vite-plugin-dts":"4.5.4","@vitest/coverage-v8":"3.2.4","rollup-plugin-visualizer":"6.0.5"},"peerDependencies":{"zod":"^4.0.0","arktype":"^2.0.0","valibot":"^1.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"arktype":{"optional":true},"valibot":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.2.1_1761418520832_0.31493938438943214","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"1000fetches","version":"0.2.2","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Max Tarsis","email":"tarsis.maksym@gmail.com"},"license":"MIT","_id":"1000fetches@0.2.2","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"dist":{"shasum":"a03e4a5304d18ef92e44bcb0e82762e606aa9834","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.2.2.tgz","fileCount":28,"integrity":"sha512-Oc56ygvm7O2gGkAoVBwd2ahgF7OYlqkeMngXdxtitoPcq8r+PpWCKwrE5jjocjwV4mo++GkO1cbffqX1oY3B9g==","signatures":[{"sig":"MEYCIQD4jfKp2GooziCc6Y7uNzUSFmP1O+BcH05VNQAziFPuJgIhAP5jSqW7afuc65VrSzYSAfQYIPe7heT2DtX4Xjtm3h29","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271418},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./http":{"types":"./dist/http.d.ts","import":"./dist/http.mjs","require":"./dist/http.cjs"}},"gitHead":"3dc09b61439311875230798233b0bfafbeea0a94","scripts":{"dev":"vite build --watch","tsc":"yarn test:types","lint":"prettier --check .","test":"yarn test:types && yarn test:unit","build":"tsc && vite build","clean":"rm -rf dist coverage","bundle":"LIB_BUILD=true vite build && yarn bundle:size","lint:fix":"prettier --write .","test:unit":"vitest --run","test:types":"tsc --noEmit && tsc --noEmit --project tsconfig.test.json","test:watch":"yarn test:types && vitest","bundle:size":"node ../../scripts/bundle-size.js","test:exports":"node scripts/smoke-exports.mjs","package:smoke":"yarn build && yarn test:exports && npm pack --dry-run --json","test:coverage":"yarn test:types && vitest --coverage","bundle:analyze":"LIB_BUILD=true vite build --mode analyze"},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"_npmVersion":"11.12.1","description":"A modern, type-safe HTTP client for TypeScript with built-in schema validation, middleware, opt-in retry logic, and compile-time path parameter validation. Features full TypeScript support, request/response middleware, and schema validation using Standard","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"@standard-schema/spec":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"2.14.6","zod":"4.4.3","vite":"8.0.14","terser":"5.48.0","vitest":"4.1.7","arktype":"2.2.0","valibot":"1.4.0","typescript":"6.0.3","@types/node":"22.19.19","expect-type":"1.3.0","vite-plugin-dts":"5.0.1","@vitest/coverage-v8":"4.1.7","rollup-plugin-visualizer":"6.0.11"},"_npmOperationalInternal":{"tmp":"tmp/1000fetches_0.2.2_1779455926949_0.8091563718600532","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"1000fetches","version":"0.3.0","description":"A modern, type-safe HTTP client for TypeScript with built-in schema validation, middleware, opt-in retry logic, and compile-time path parameter validation. Features full TypeScript support, request/response middleware, and schema validation using Standard","type":"module","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"sideEffects":false,"scripts":{"build":"tsc --noEmit && vite build","dev":"vite build --watch","test":"yarn test:types && yarn test:unit","test:unit":"vitest --run","test:exports":"node scripts/smoke-exports.mjs","test:watch":"yarn test:types && vitest","test:coverage":"yarn test:types && vitest --coverage","test:types":"tsc --noEmit && tsc --noEmit --project tsconfig.test.json","tsc":"yarn test:types","lint":"yarn lint:code && prettier --check .","lint:code":"eslint src vite.config.ts vitest.config.ts","lint:fix":"eslint src vite.config.ts vitest.config.ts --fix && prettier --write .","bundle:analyze":"LIB_BUILD=true vite build --mode analyze","bundle:size":"node scripts/bundle-size.js","bundle":"LIB_BUILD=true vite build && yarn bundle:size","package:smoke":"yarn build && yarn test:exports && npm pack --dry-run --json","clean":"rm -rf dist coverage","format":"prettier --write .","format:check":"prettier --check ."},"keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"author":{"name":"Max Tarsis","email":"tarsis.maksym@gmail.com"},"license":"MIT","devDependencies":{"@eslint/js":"^10.0.1","@types/node":"22.20.0","@vitest/coverage-v8":"4.1.9","arktype":"2.2.1","eslint":"^10.6.0","eslint-config-prettier":"^10.1.8","expect-type":"1.4.0","msw":"2.14.6","rollup-plugin-visualizer":"7.0.1","terser":"5.48.0","typescript":"6.0.3","typescript-eslint":"^8.62.0","valibot":"1.4.2","vite":"8.1.0","vite-plugin-dts":"5.0.3","vitest":"4.1.9","zod":"4.4.3","prettier":"3.9.1"},"dependencies":{"@standard-schema/spec":"^1.1.0"},"packageManager":"yarn@1.22.22","resolutions":{"vite":"8.1.0"},"gitHead":"adf87531106e02abfbc1bfb77e8e69a73650bded","_id":"1000fetches@0.3.0","_nodeVersion":"22.21.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Hwi3FljbrYxmC5Prd4bWGchZ5ctZluE47dq9P+YVS+kxSnh/+936AUP186X8Xl0d7fD7wVdCzk/HwHU76n1trw==","shasum":"f2dd22107c2e4454b00fbe38a3815efff7bfb731","tarball":"https://registry.npmjs.org/1000fetches/-/1000fetches-0.3.0.tgz","fileCount":43,"unpackedSize":303597,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE+IVLl7azGfqId+T5Y1SUQfZ8EKsYmXrfzCE+797qLtAiEAmOGU4Mso9mDlay1jDU+oU1POFBJuzRt/dMymdRJQbHA="}]},"_npmUser":{"name":"retarsis","email":"tarsis.maksym@gmail.com"},"directories":{},"maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/1000fetches_0.3.0_1782685141145_0.632615334786155"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-07T12:11:19.684Z","modified":"2026-06-28T22:19:01.403Z","0.1.0":"2025-10-07T12:11:19.892Z","0.1.1":"2025-10-07T17:13:31.283Z","0.1.2":"2025-10-07T17:49:12.399Z","0.1.3":"2025-10-11T05:17:03.851Z","0.1.4":"2025-10-11T13:42:53.098Z","0.1.5":"2025-10-12T12:46:24.621Z","0.1.6":"2025-10-12T13:32:14.468Z","0.1.7":"2025-10-12T13:54:06.007Z","0.1.9":"2025-10-13T07:22:16.075Z","0.1.10":"2025-10-16T06:54:05.549Z","0.1.11":"2025-10-17T19:35:29.997Z","0.2.0":"2025-10-20T18:45:24.852Z","0.2.1":"2025-10-25T18:55:21.051Z","0.2.2":"2026-05-22T13:18:47.093Z","0.3.0":"2026-06-28T22:19:01.292Z"},"author":{"name":"Max Tarsis","email":"tarsis.maksym@gmail.com"},"license":"MIT","keywords":["http","client","typescript","fetch","axios","api","schema","validation","zod","valibot","arktype"],"description":"A modern, type-safe HTTP client for TypeScript with built-in schema validation, middleware, opt-in retry logic, and compile-time path parameter validation. Features full TypeScript support, request/response middleware, and schema validation using Standard","maintainers":[{"name":"retarsis","email":"tarsis.maksym@gmail.com"}],"readme":"# 1000fetches\n\n_Schema-powered Fetch 2.0 — where types meet runtime reality_\n<br/>\n\n[![npm version](https://img.shields.io/npm/v/1000fetches?style=flat-square)](https://www.npmjs.com/package/1000fetches)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n\n> Built for the 1000th call to be as safe as the first\n\n### The problem\n\nYou start with `fetch`, then add a wrapper for error handling.\nThen generics. Then path params. Then retries and timeouts.\nSoon every project grows its own version — slightly different, equally fragile.\n\n**Alternatives**? Tiny helpers that stop halfway,\nor heavy Axios-style clients that add weight without type guarantees.\n\n---\n\n### The idea\n\nA type-first HTTP client that unifies validation, dynamic defaults, retries, and middleware on top of native `fetch`.\n\n---\n\n### Highlights\n\n- 🧭 **Compile-time path safety** — `:pathParam` can't slip through undefined\n- 🧩 **Schema-driven validation** — infer types at build time, verify data at runtime\n- ⚙️ **Dynamic defaults** — resolve auth, params, timeouts, and fetch options per request\n- 🔁 **Retries, timeouts, middleware** — production essentials with opt-ins\n- 🎯 **Method-based API** — `api.get()` with response contracts `.contract()` and extractor `.data()` for clean and concise code\n- 🧠 **Designed for flow** — clear API, predictable behavior, no hidden magic\n\n---\n\n## Quickstart\n\n```bash\nnpm install 1000fetches\n```\n\n```ts\nimport { createHttpClient } from '1000fetches'\nimport { z } from 'zod'\n\n// Create client\nconst api = createHttpClient({\n  baseUrl: 'https://api.example.com',\n})\n\n// Define schemas for types and safety\nconst userSchema = z.object({\n  id: z.number(),\n  name: z.string(),\n  email: z.email(),\n})\n\n// Request data with a response contract\nconst userResponse = await api\n  .get('/users/:id', {\n    pathParams: { id: '123' },\n  })\n  .contract(userSchema)\n// userResponse.data 👉 { id: number, ... }\n\n// Clean data extraction with full type safety\nconst user = await api\n  .get('/users/:id', {\n    pathParams: { id: '123' },\n  })\n  .contract(userSchema)\n  .data()\n// user 👉 { id: number, ... }\n```\n\nWith native Node `fetch`, requests must resolve to absolute URLs. Use an absolute `baseUrl` in Node, or provide a custom `fetch` implementation that supports relative URLs.\n\n## ➡️ Key Features\n\n### ✔️ Type Safety That Actually Works\n\n- **Compile-time path validation** — TypeScript catches missing `:userId` parameters before runtime\n- **Trailing optional path params only** — `'/users/:id?'` supported, `'/users/:id?/cards/:cardId'` rejected\n- **Runtime schema validation** — Schemas verify data at the network boundary\n- **Schema-based type inference** — Types inferred from schemas, no generics needed\n- **Multi-schema support** — [Zod](https://github.com/colinhacks/zod), [Valibot](https://github.com/fabian-hiller/valibot), [ArkType](https://github.com/arktypeio/arktype), or any [Standard Schema](https://github.com/standard-schema/standard-schema)-compatible library\n\n### ✔️ Production-Ready Quality\n\n- **Smart retry logic** — Opt-in exponential backoff for resilient requests\n- **Timeout and cancellation support** — Built-in `AbortController` integration\n- **Structured error handling** — `HttpError`, `NetworkError`, `TimeoutError` with full context\n- **Dynamic defaults and middleware** — Authentication, logging, transformations\n- **Minimalistic footprint** — Production features without the bloat\n\n### ✔️ Engineer-Friendly DX\n\n- **Method-based API** — `api.get()`, `api.post()`, `api.put()`, `api.patch()`, `api.delete()`, and generic `api.request()` with full type safety\n- **Contract-first validation** — Chain `.contract()` for runtime validation and automatic type inference\n- **Smart data extraction** — Chain `.data()` for direct value access without `.data` property\n- **Automatic response parsing** — JSON/text responses parsed automatically\n- **Per-request defaults** — Resolve auth, params, timeouts, retry settings, and fetch options from request context\n- **Tiny runtime footprint** — one tiny Standard Schema type dependency, tree-shakable builds\n- **TypeScript-first** — Full type inference and `IntelliSense` support\n\n**1000fetches** combines native `fetch` performance with production-oriented features and schema-backed type safety.\n\n## ➡️ Usage Examples\n\n### Authentication\n\n```ts\nconst api = createHttpClient({\n  baseUrl: 'https://api.example.com',\n  headers: { Authorization: `Bearer ${token}` },\n})\n\n// Or dynamic auth\nconst api = createHttpClient({\n  baseUrl: 'https://api.example.com',\n  defaults: async () => {\n    const token = await getToken()\n    return {\n      headers: { Authorization: `Bearer ${token}` },\n    }\n  },\n})\n```\n\n### Dynamic Defaults\n\n```ts\nconst api = createHttpClient({\n  baseUrl: 'https://api.example.com',\n  defaults: ({ resolvedPath, method }) => ({\n    headers: { 'X-Client': 'dashboard' },\n    timeout: resolvedPath.startsWith('/reports') ? 60_000 : 10_000,\n    retry: method === 'GET',\n    params: { locale: 'en-US' },\n  }),\n})\n```\n\n### Middleware\n\n```ts\nconst api = createHttpClient({\n  baseUrl: 'https://api.example.com',\n  onRequestMiddleware: context => {\n    console.log(`→ ${context.method} ${context.url}`)\n    return context\n  },\n  onResponseMiddleware: response => {\n    console.log(`← ${response.status} ${response.method} ${response.url}`)\n    return response\n  },\n})\n```\n\nMiddleware can observe requests and responses, but it can also mutate them. Keep middleware side-effect-light; use mutation only when dynamic defaults are not enough.\n\n### Error Handling\n\n```ts\nimport {\n  AbortError,\n  HttpError,\n  NetworkError,\n  TimeoutError,\n  MiddlewareError,\n  PathParameterError,\n  SchemaValidationError,\n} from '1000fetches'\n\ntry {\n  const user = await api\n    .get('/users/:id', {\n      pathParams: { id: '123' },\n    })\n    .contract(userSchema)\n} catch (error) {\n  if (error instanceof HttpError) {\n    console.log(`HTTP ${error.status}: ${error.statusText}`)\n  } else if (error instanceof NetworkError) {\n    console.log('Network error:', error.message)\n  } else if (error instanceof TimeoutError) {\n    console.log('Request timed out')\n  } else if (error instanceof AbortError) {\n    console.log('Request was cancelled')\n  } else if (error instanceof MiddlewareError) {\n    console.log('Middleware error:', error.message)\n  } else if (error instanceof PathParameterError) {\n    console.log('Path parameter error:', error.message)\n  } else if (error instanceof SchemaValidationError) {\n    console.log('Schema validation error:', error.message)\n  }\n}\n```\n\n## API Reference\n\n### <samp>createHttpClient(config?)</samp>\n\nCreates a new HTTP client with optional configuration.\n\n```ts\nfunction createHttpClient(config?: HttpClientConfig)\n```\n\n**Configuration Options:**\n\n| Option                 | Type                                                                                     | Description                        |\n| ---------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------- |\n| `baseUrl`              | `string`                                                                                 | Absolute or root-relative base URL |\n| `headers`              | `Record<string, string>`                                                                 | Default headers                    |\n| `timeout`              | `number`                                                                                 | Default timeout in milliseconds    |\n| `retry`                | `RetryOptions \\| boolean`                                                                | Opt-in retry configuration         |\n| `fetch`                | `typeof fetch`                                                                           | Custom fetch-compatible transport  |\n| `serializeBody`        | `(body: TBody) => BodyInit \\| null \\| undefined`                                         | Custom request body serializer     |\n| `serializeParams`      | `(params) => string`                                                                     | Custom query parameter serializer  |\n| `defaults`             | `(context) => RequestDefaults \\| void \\| Promise<RequestDefaults \\| void>`               | Dynamic request defaults           |\n| `onRequestMiddleware`  | `(context: RequestContext) => RequestContext \\| void \\| Promise<RequestContext \\| void>` | Request middleware                 |\n| `onResponseMiddleware` | `(response: ResponseType) => ResponseType \\| Promise<ResponseType>`                      | Response middleware                |\n| `schemaValidator`      | `SchemaValidator`                                                                        | Custom schema validator            |\n\n### <samp>HTTP Methods</samp>\n\nAll HTTP methods support response contracts and data extraction:\n\n```ts\n// GET\nconst user = await api\n  .get('/users/:id', {\n    pathParams: { id: '123' },\n  })\n  .contract(userSchema)\n  .data()\n// user 👉 Fully typed user object\n\n// POST\nconst newUser = await api.post('/users', userData).contract(userSchema).data()\n// newUser 👉 Fully typed user object\n\n// PUT\nconst updatedUser = await api\n  .put('/users/:id', userData, {\n    pathParams: { id: '123' },\n  })\n  .contract(userSchema)\n  .data()\n// updatedUser 👉 Fully typed user object\n\n// PATCH\nconst patchedUser = await api\n  .patch('/users/:id', partialData, {\n    pathParams: { id: '123' },\n  })\n  .contract(userSchema)\n  .data()\n// patchedUser 👉 Fully typed user object\n\n// DELETE\nawait api.delete('/users/:id', {\n  pathParams: { id: '123' },\n})\n```\n\n### <samp>Request Options</samp>\n\n| Option         | Type                                                        | Description                       |\n| -------------- | ----------------------------------------------------------- | --------------------------------- |\n| `pathParams`   | `Record<string, string \\| number \\| undefined>`             | Path parameters for URL templates |\n| `params`       | `RequestParamsType`                                         | Query parameters                  |\n| `headers`      | `Record<string, string>`                                    | Request headers                   |\n| `body`         | `TBody`                                                     | Request body                      |\n| `timeout`      | `number`                                                    | Request timeout                   |\n| `signal`       | `AbortSignal`                                               | Request cancellation signal       |\n| `responseType` | `'json' \\| 'text' \\| 'blob' \\| 'arrayBuffer' \\| 'formData'` | Response type override            |\n| `cache`        | `RequestCache`                                              | Cache mode                        |\n| `credentials`  | `RequestCredentials`                                        | Credentials mode                  |\n| `mode`         | `RequestMode`                                               | Request mode                      |\n| `redirect`     | `RequestRedirect`                                           | Redirect mode                     |\n| `fetchOptions` | `FetchOptions`                                              | Native Fetch/Node passthrough     |\n| `retry`        | `RetryOptions \\| boolean`                                   | Retry configuration               |\n\n### <samp>Retry Options</samp>\n\nRetries are disabled unless you set client `retry`, request `retry: true`, or request retry settings. The built-in policy retries idempotent methods by default (`GET`, `HEAD`, `OPTIONS`, `PUT`, `DELETE`), honors `Retry-After`, supports jitter, and never retries one-shot `ReadableStream` request bodies.\n\n```ts\nconst api = createHttpClient({\n  retry: {\n    maxRetries: 3,\n    retryDelay: 250,\n    jitter: 'full',\n    onRetry: event => {\n      console.log(event.method, event.url, event.nextAttempt)\n    },\n  },\n})\n```\n\n### <samp>Status and Empty Responses</samp>\n\nBy default, 1000fetches treats any 2xx response as successful. Declare valid non-2xx protocol flows, such as `304 Not Modified`, in response contracts.\n\nResponses that cannot carry a body (`204`, `205`, `304`, and `HEAD`) resolve with `data: undefined` without attempting JSON parsing.\n\n```ts\nconst response = await api.get('/cached-resource').contract({\n  success: {\n    default: CachedResourceSchema,\n    304: z.undefined(),\n  },\n})\n```\n\n### <samp>Response Object</samp>\n\nAll requests return a `ResponseType<T>` object:\n\n```ts\ninterface ResponseType<T> {\n  data: T // Parsed response data\n  status: number // HTTP status code\n  statusText: string // HTTP status text\n  headers: HttpHeaders // Response headers\n  method: HttpMethod\n  url: string // Final URL\n  raw: Response // Raw fetch Response\n}\n```\n\n### <samp>Response Contracts</samp>\n\nThe library provides a chainable API for response contracts:\n\n```ts\n// Without contract\nconst response = await api.get('/users/:id', {\n  pathParams: { id: '123' },\n})\n// response 👉 ResponseType<unknown>\n\n// With a schema contract\nconst response = await api\n  .get('/users/:id', {\n    pathParams: { id: '123' },\n  })\n  .contract(userSchema)\n// response 👉 ResponseType<User>\n```\n\nContracts can also describe success and error bodies by status:\n\n```ts\nawait api.post('/transactions', transactionInput).contract({\n  success: {\n    default: CreatedTransactionSchema,\n    201: EmptyResponseSchema,\n  },\n  error: {\n    default: ErrorSchema,\n    400: BadTransactionResponseSchema,\n    409: AlreadyCreatedTransactionResponseSchema,\n  },\n})\n```\n\nSuccess status maps accept only `2xx` and `3xx` status keys. Error status maps accept only `4xx` and `5xx` status keys. Success map status keys control which non-2xx responses resolve; error contracts validate failed responses before `HttpError` is thrown.\n\nError branches validate failed HTTP responses before throwing `HttpError` with the validated error data. If an error response fails its own contract, 1000fetches throws `ContractValidationError` with the status, method, URL, response, schema, and original data.\n\n### <samp>Data Extraction</samp>\n\nThe method-based API provides clean data extraction with full type safety:\n\n```ts\n// Extract untyped data (without contract)\nconst data = await api\n  .get('/users/:id', {\n    pathParams: { id: '123' },\n  })\n  .data()\n// data 👉 unknown\n\n// Direct typed data extraction (with contract)\nconst user = await api\n  .get('/users/:id', {\n    pathParams: { id: '123' },\n  })\n  .contract(userSchema)\n  .data()\n// user 👉 { id: number, ... }\n\n// Works with all HTTP methods\nconst newUser = await api.post('/users', userData).contract(userSchema).data()\n// newUser 👉 Fully typed user object\n\nconst updatedUser = await api\n  .put('/users/:id', userData, { pathParams: { id: '123' } })\n  .contract(userSchema)\n  .data()\n// updatedUser 👉 Fully typed user object\n\n// Run the request and intentionally ignore response data\nawait api.delete('/users/:id', { pathParams: { id: '123' } }).void()\n```\n\n## ➡️ Design Trade-Offs\n\n1000fetches is intentionally small, but it is not just a thin `fetch` alias. It focuses on the features that tend to become repetitive in application code:\n\n| Capability            | What 1000fetches Provides                                             |\n| --------------------- | --------------------------------------------------------------------- |\n| **TypeScript**        | Schema-inferred response types and typed path parameters              |\n| **Path Params**       | Compile-time and runtime checks for `:param` placeholders             |\n| **Schema Validation** | Standard Schema support for Zod, Valibot, ArkType, and more           |\n| **Retry Logic**       | Opt-in retry policy with backoff, jitter, and `Retry-After`           |\n| **Error Handling**    | Structured errors for HTTP, network, timeout, and validation failures |\n| **Dynamic Defaults**  | Per-request headers, params, timeout, retry, and fetch options        |\n| **Middleware**        | Request and response middleware with typed context                    |\n| **Tree Shaking**      | Side-effect-free ESM/CJS builds                                       |\n\n---\n\n## 📄 License\n\nMIT License - see [LICENSE](./LICENSE) for details.\n\n---\n\n<div align=\"center\">\n\n**Built for developers who believe type safety shouldn't be optional.**\n**Because your backend deserves skepticism.**\n\n</div>\n\n<!-- Links -->\n\n[zod]: https://zod.dev/\n[valibot]: https://valibot.dev/\n[arktype]: https://arktype.dev/\n[standard-schema]: https://github.com/standard-schema/standard-schema\n","readmeFilename":"README.md"}