{"_id":"@cardbrother/up-fetch","_rev":"8-af053d53b8ef701e9802eea4db0a8208","name":"@cardbrother/up-fetch","dist-tags":{"latest":"1.3.6-beta.7"},"versions":{"1.3.6-beta.0":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.0","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","_id":"@cardbrother/up-fetch@1.3.6-beta.0","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"homepage":"https://github.com/guotingchao/up-fetch#readme","bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"dist":{"shasum":"36f77fdf1d2016f7017a11b0474b29b35df6268f","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.0.tgz","fileCount":18,"integrity":"sha512-j/fcn67KUWvS67mQeu3stXpVAiumN/hx4dYfxH9UQ5HjLX07m+bIXDkPsmW0I8NgTa2iZ+1y8zxAtOIgNMzFLQ==","signatures":[{"sig":"MEUCIQCRf+ucX8zkRSCcJYek3eQBQRzLN2Nc2ArNhL46HrvsUQIgMAo1I3hwdzJia6/pLtO0SK22QjBlHzCr30E4zQxjMs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115683},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"a1458f725e0fc91d44f018289993065c02f04182","scripts":{"dev":"vitest","lint":"eslint . && tsc --noEmit","test":"vitest run","build":"tsup","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"repository":{"url":"git+https://github.com/guotingchao/up-fetch.git","type":"git"},"_npmVersion":"9.6.7","description":"Advanced fetch client builder for typescript.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","publishConfig":{"access":"public","branches":["master"]},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.0","zod":"3.24.1","tsup":"^8.3.6","jsdom":"^26.0.0","eslint":"^9.20.0","vitest":"^3.0.5","valibot":">=1.0.0-rc.0","prettier":"^3.5.0","@eslint/js":"^9.20.0","typescript":"5.7.3","@types/node":"^22.13.1","typescript-eslint":"^8.24.0","@standard-schema/spec":"^1.0.0","eslint-plugin-prefer-let":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/up-fetch_1.3.6-beta.0_1741598854746_0.12709980324856884","host":"s3://npm-registry-packages-npm-production"}},"1.3.6-beta.1":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.1","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","_id":"@cardbrother/up-fetch@1.3.6-beta.1","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"homepage":"https://github.com/guotingchao/up-fetch#readme","bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"dist":{"shasum":"537d68076b2d2f267afc21e1b9185d5f714f8932","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.1.tgz","fileCount":24,"integrity":"sha512-XQE5BiOxMtUbJIIyTyszTqBGMuXlz9SgoEY7jC/Ja8gAY6h58hZEYtUcYLloVuEf5nQwRT9MuwOsKpFx2ufTBg==","signatures":[{"sig":"MEQCIFsnG/RCZkNAn69rXfYGrxoPseKLv7kitYUkK4xa/S6RAiA/haksujhZJ26LL2o3IHp/PYcdcNxledWYbCNyOpkukg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178789},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"a1458f725e0fc91d44f018289993065c02f04182","scripts":{"dev":"vitest","lint":"eslint . && tsc --noEmit","test":"vitest run","build":"tsup","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"repository":{"url":"git+https://github.com/guotingchao/up-fetch.git","type":"git"},"_npmVersion":"9.6.7","description":"Advanced fetch client builder for typescript.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","publishConfig":{"access":"public","branches":["master"]},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.0","zod":"3.24.1","tsup":"^8.3.6","jsdom":"^26.0.0","eslint":"^9.20.0","vitest":"^3.0.5","valibot":">=1.0.0-rc.0","prettier":"^3.5.0","@eslint/js":"^9.20.0","typescript":"5.7.3","@types/node":"^22.13.1","typescript-eslint":"^8.24.0","@standard-schema/spec":"^1.0.0","eslint-plugin-prefer-let":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/up-fetch_1.3.6-beta.1_1741599197982_0.6390459651035973","host":"s3://npm-registry-packages-npm-production"}},"1.3.6-beta.2":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.2","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","_id":"@cardbrother/up-fetch@1.3.6-beta.2","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"homepage":"https://github.com/guotingchao/up-fetch#readme","bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"dist":{"shasum":"4bb13930a3350ffb2c961c3ffbcff9ee4ae79cd5","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.2.tgz","fileCount":24,"integrity":"sha512-tHgw+i3u3lTfahFZsO6ajKef0NrwrYS32QS2d3J9xcfQHPUw+CZxmbIEwpYrwrv/kZ38BnYtlV/bJIudgb5mwQ==","signatures":[{"sig":"MEYCIQCY2cr/DAEahl1IWHJCXqfuIs4rMEG0haqsp/aSKIBwdgIhAKofSi+neg5dxv4s4vOm4uAIIreVB+ag9j1F0e1HCvyT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178775},"main":"dist/index.cjs","type":"module","_from":"file:cardbrother-up-fetch-1.3.6-beta.2.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vitest","lint":"eslint . && tsc --noEmit","test":"vitest run","build":"tsup","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"_resolved":"/private/var/folders/16/wt7hv8z56vd7w5h8ylkllkgm0000gn/T/691007851d5170ff9f23bb994acb5898/cardbrother-up-fetch-1.3.6-beta.2.tgz","_integrity":"sha512-tHgw+i3u3lTfahFZsO6ajKef0NrwrYS32QS2d3J9xcfQHPUw+CZxmbIEwpYrwrv/kZ38BnYtlV/bJIudgb5mwQ==","repository":{"url":"git+https://github.com/guotingchao/up-fetch.git","type":"git"},"_npmVersion":"9.6.7","description":"Advanced fetch client builder for typescript.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","publishConfig":{"access":"public","branches":["master"]},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.0","zod":"3.24.1","tsup":"^8.3.6","jsdom":"^26.0.0","eslint":"^9.20.0","vitest":"^3.0.5","valibot":">=1.0.0-rc.0","prettier":"^3.5.0","@eslint/js":"^9.20.0","typescript":"5.7.3","@types/node":"^22.13.1","typescript-eslint":"^8.24.0","@standard-schema/spec":"^1.0.0","eslint-plugin-prefer-let":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/up-fetch_1.3.6-beta.2_1741600172225_0.4608895962569104","host":"s3://npm-registry-packages-npm-production"}},"1.3.6-beta.3":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.3","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","_id":"@cardbrother/up-fetch@1.3.6-beta.3","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"homepage":"https://github.com/guotingchao/up-fetch#readme","bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"dist":{"shasum":"c86b1232e898d3bcb920f30879fe62a37a6a764b","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.3.tgz","fileCount":24,"integrity":"sha512-m6vh8SsPrwfVsTAapQb6VcQVDa/V2Cy8VJUwX3UboNnpPpcV8mlW57kVetbbxxg8aCoW/cvIuhHs4btBOsYmPA==","signatures":[{"sig":"MEUCIBD99zrVwsCYAoV2jHBSaM6Z76Rv71sCTJHO7ioGL6NoAiEAmUUDYuyynQ17WHPcJQPGJUDiR7LnJ+oZfVGygOn4Bfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179028},"main":"dist/index.cjs","type":"module","_from":"file:cardbrother-up-fetch-1.3.6-beta.3.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vitest","lint":"eslint . && tsc --noEmit","test":"vitest run","build":"tsup","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"_resolved":"/private/var/folders/16/wt7hv8z56vd7w5h8ylkllkgm0000gn/T/90270c491eb05b9e701da6889bbf310f/cardbrother-up-fetch-1.3.6-beta.3.tgz","_integrity":"sha512-m6vh8SsPrwfVsTAapQb6VcQVDa/V2Cy8VJUwX3UboNnpPpcV8mlW57kVetbbxxg8aCoW/cvIuhHs4btBOsYmPA==","repository":{"url":"git+https://github.com/guotingchao/up-fetch.git","type":"git"},"_npmVersion":"9.6.7","description":"Advanced fetch client builder for typescript.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","publishConfig":{"access":"public","branches":["master"]},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.0","zod":"3.24.1","tsup":"^8.3.6","jsdom":"^26.0.0","eslint":"^9.20.0","vitest":"^3.0.5","valibot":">=1.0.0-rc.0","prettier":"^3.5.0","@eslint/js":"^9.20.0","typescript":"5.7.3","@types/node":"^22.13.1","typescript-eslint":"^8.24.0","@standard-schema/spec":"^1.0.0","eslint-plugin-prefer-let":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/up-fetch_1.3.6-beta.3_1741600552930_0.72745960190797","host":"s3://npm-registry-packages-npm-production"}},"1.3.6-beta.4":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.4","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","_id":"@cardbrother/up-fetch@1.3.6-beta.4","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"homepage":"https://github.com/guotingchao/up-fetch#readme","bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"dist":{"shasum":"cdd0be1ad6d757e866a0555e33223d89953311ad","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.4.tgz","fileCount":24,"integrity":"sha512-+dF2DW9J+yYy7neTno5550yCqqivdVMykd6rzkAVs2G+f2xBwWZ8Ml1A8fGQyrXvfkP/bknfrT0crfsfKMKKdw==","signatures":[{"sig":"MEUCIEOgBz4OMip7ZyzGdWx/NAej7CAcig5s81gMlPGK/QjrAiEAqtxTy8BFVx2jhGlmzc/S+6T2ktEy/yk3nzvscdhggnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178503},"main":"dist/index.cjs","type":"module","_from":"file:cardbrother-up-fetch-1.3.6-beta.4.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vitest","lint":"eslint . && tsc --noEmit","test":"vitest run","build":"tsup","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"_resolved":"/private/var/folders/16/wt7hv8z56vd7w5h8ylkllkgm0000gn/T/035ee6949baffc3282375db39b9f87c6/cardbrother-up-fetch-1.3.6-beta.4.tgz","_integrity":"sha512-+dF2DW9J+yYy7neTno5550yCqqivdVMykd6rzkAVs2G+f2xBwWZ8Ml1A8fGQyrXvfkP/bknfrT0crfsfKMKKdw==","repository":{"url":"git+https://github.com/guotingchao/up-fetch.git","type":"git"},"_npmVersion":"9.6.7","description":"Advanced fetch client builder for typescript.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","publishConfig":{"access":"public","branches":["master"]},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.0","zod":"3.24.1","tsup":"^8.3.6","jsdom":"^26.0.0","eslint":"^9.20.0","vitest":"^3.0.5","valibot":">=1.0.0-rc.0","prettier":"^3.5.0","@eslint/js":"^9.20.0","typescript":"5.7.3","@types/node":"^22.13.1","typescript-eslint":"^8.24.0","@standard-schema/spec":"^1.0.0","eslint-plugin-prefer-let":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/up-fetch_1.3.6-beta.4_1741600705792_0.4452334165581202","host":"s3://npm-registry-packages-npm-production"}},"1.3.6-beta.5":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.5","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","_id":"@cardbrother/up-fetch@1.3.6-beta.5","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"homepage":"https://github.com/guotingchao/up-fetch#readme","bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"dist":{"shasum":"904dfcd2d556770888443945ee8d685ed6444d16","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.5.tgz","fileCount":24,"integrity":"sha512-XfZrQbS8lXnhsWhAUiAAPDiV71e/Eo0NyqAOBDfDbU7g2LECzncvJO+tvTvhDqzE/8LbY6/SMIg92T4efoWeDg==","signatures":[{"sig":"MEYCIQDuDA7qeGhCeGFF18BBGlYjss8gXGmI9D4UFLj719OQFwIhAPkFZfJoeUniw/rMgJGNE0YkuaB7s37xB/W6971fH5es","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178856},"main":"dist/index.cjs","type":"module","_from":"file:cardbrother-up-fetch-1.3.6-beta.5.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vitest","lint":"eslint . && tsc --noEmit","test":"vitest run","build":"tsup","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"_resolved":"/private/var/folders/16/wt7hv8z56vd7w5h8ylkllkgm0000gn/T/cdb64fb62c0bd27016c2ce7a21076e75/cardbrother-up-fetch-1.3.6-beta.5.tgz","_integrity":"sha512-XfZrQbS8lXnhsWhAUiAAPDiV71e/Eo0NyqAOBDfDbU7g2LECzncvJO+tvTvhDqzE/8LbY6/SMIg92T4efoWeDg==","repository":{"url":"git+https://github.com/guotingchao/up-fetch.git","type":"git"},"_npmVersion":"9.6.7","description":"Advanced fetch client builder for typescript.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","publishConfig":{"access":"public","branches":["master"]},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.0","zod":"3.24.1","tsup":"^8.3.6","jsdom":"^26.0.0","eslint":"^9.20.0","vitest":"^3.0.5","valibot":">=1.0.0-rc.0","prettier":"^3.5.0","@eslint/js":"^9.20.0","typescript":"5.7.3","@types/node":"^22.13.1","typescript-eslint":"^8.24.0","@standard-schema/spec":"^1.0.0","eslint-plugin-prefer-let":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/up-fetch_1.3.6-beta.5_1741600798826_0.2993779212992176","host":"s3://npm-registry-packages-npm-production"}},"1.3.6-beta.6":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.6","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","_id":"@cardbrother/up-fetch@1.3.6-beta.6","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"homepage":"https://github.com/guotingchao/up-fetch#readme","bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"dist":{"shasum":"42addd48e2db11b11963aec355fe2422d94c4470","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.6.tgz","fileCount":24,"integrity":"sha512-uyU7ORUFWzoJr1z5JvB+yrncSdSEeACS/1d52xTWaOUvFzasWIFVFdFoSnQJip8+zvBLkWLmkFt0QPzDycG9Aw==","signatures":[{"sig":"MEQCID4qKTCyWwWqt3qX1/ZwjIlNofI50+TO0SCZjIgj72E0AiAV5kjOm0cpy5VR7hoTksqU1FqpX2KaqdLNiS3Fh++gfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178837},"main":"dist/index.cjs","type":"module","_from":"file:cardbrother-up-fetch-1.3.6-beta.6.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vitest","lint":"eslint . && tsc --noEmit","test":"vitest run","build":"tsup","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"_resolved":"/private/var/folders/16/wt7hv8z56vd7w5h8ylkllkgm0000gn/T/1b932bb05f7688245161eecf1696ea3b/cardbrother-up-fetch-1.3.6-beta.6.tgz","_integrity":"sha512-uyU7ORUFWzoJr1z5JvB+yrncSdSEeACS/1d52xTWaOUvFzasWIFVFdFoSnQJip8+zvBLkWLmkFt0QPzDycG9Aw==","repository":{"url":"git+https://github.com/guotingchao/up-fetch.git","type":"git"},"_npmVersion":"9.6.7","description":"Advanced fetch client builder for typescript.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","publishConfig":{"access":"public","branches":["master"]},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.0","zod":"3.24.1","tsup":"^8.3.6","jsdom":"^26.0.0","eslint":"^9.20.0","vitest":"^3.0.5","valibot":">=1.0.0-rc.0","prettier":"^3.5.0","@eslint/js":"^9.20.0","typescript":"5.7.3","@types/node":"^22.13.1","typescript-eslint":"^8.24.0","@standard-schema/spec":"^1.0.0","eslint-plugin-prefer-let":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/up-fetch_1.3.6-beta.6_1741601231111_0.012028093721402122","host":"s3://npm-registry-packages-npm-production"}},"1.3.6-beta.7":{"name":"@cardbrother/up-fetch","version":"1.3.6-beta.7","description":"Advanced fetch client builder for typescript.","type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"author":{"name":"guozichun"},"license":"MIT","devDependencies":{"@eslint/js":"^9.20.0","@standard-schema/spec":"^1.0.0","@types/node":"^22.13.1","eslint":"^9.20.0","eslint-plugin-prefer-let":"^4.0.0","jsdom":"^26.0.0","msw":"^2.7.0","prettier":"^3.5.0","tsup":"^8.3.6","typescript":"5.7.3","typescript-eslint":"^8.24.0","valibot":">=1.0.0-rc.0","vitest":"^3.0.5","zod":"3.24.1"},"publishConfig":{"access":"public","branches":["master"]},"repository":{"type":"git","url":"git+https://github.com/guotingchao/up-fetch.git"},"engines":{"node":">=18"},"scripts":{"lint":"eslint . && tsc --noEmit","build":"tsup","dev":"vitest","test":"vitest run","release:pre:beta":"git pull && node scripts/check-beta-version.js && npm run lint && npm run test && npm run build","release:pre:stable":"git pull && node scripts/check-stable-version.js && npm run lint && npm run test && npm run build","release:stable":"npm run release:pre:stable && npm publish && npm run release:post","release:beta":"npm run release:pre:beta && npm publish --tag beta && npm run release:post","release:post":"git add . && git commit -a && git tag v$npm_package_version && git push --tags && git push"},"bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"homepage":"https://github.com/guotingchao/up-fetch#readme","_id":"@cardbrother/up-fetch@1.3.6-beta.7","_integrity":"sha512-84u3Eu5ANMCLyYgnTBGpSyjeMeSSdVeL1XG2mZNe1+PAAQuoXSbxx4MweM2JTnKjzj+m32/a9/XDhDlqWd+WvA==","_resolved":"/private/var/folders/16/wt7hv8z56vd7w5h8ylkllkgm0000gn/T/d7fa672b5e3191a1552477ddb9eb8f76/cardbrother-up-fetch-1.3.6-beta.7.tgz","_from":"file:cardbrother-up-fetch-1.3.6-beta.7.tgz","_nodeVersion":"23.6.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-84u3Eu5ANMCLyYgnTBGpSyjeMeSSdVeL1XG2mZNe1+PAAQuoXSbxx4MweM2JTnKjzj+m32/a9/XDhDlqWd+WvA==","shasum":"53aa8a56ad441e14e917729293e3cd97896d5549","tarball":"https://registry.npmjs.org/@cardbrother/up-fetch/-/up-fetch-1.3.6-beta.7.tgz","fileCount":24,"unpackedSize":178239,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDGk11lFHnSc0EDivnvz/QsmviW23KIw/9RZsa3hr4SbAiADOYrqvVhwt+2tMxeYlRznO6vQ2/TrHLlsJsh4UWmZ+g=="}]},"_npmUser":{"name":"guozichun","email":"guotingchaopr@gmail.com"},"directories":{},"maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/up-fetch_1.3.6-beta.7_1741603720365_0.2645200878553955"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-10T09:27:34.681Z","modified":"2025-03-10T10:48:40.910Z","1.3.6-beta.0":"2025-03-10T09:27:34.958Z","1.3.6-beta.1":"2025-03-10T09:33:18.190Z","1.3.6-beta.2":"2025-03-10T09:49:32.413Z","1.3.6-beta.3":"2025-03-10T09:55:53.149Z","1.3.6-beta.4":"2025-03-10T09:58:25.983Z","1.3.6-beta.5":"2025-03-10T09:59:59.037Z","1.3.6-beta.6":"2025-03-10T10:07:11.356Z","1.3.6-beta.7":"2025-03-10T10:48:40.651Z"},"bugs":{"url":"https://github.com/guotingchao/up-fetch/issues"},"author":{"name":"guozichun"},"license":"MIT","homepage":"https://github.com/guotingchao/up-fetch#readme","keywords":["fetch","fetch wrapper","request","http","config","fetcher","api","rest","get","axios","wretch","got","ky"],"repository":{"type":"git","url":"git+https://github.com/guotingchao/up-fetch.git"},"description":"Advanced fetch client builder for typescript.","maintainers":[{"name":"guozichun","email":"guotingchaopr@gmail.com"}],"readme":"<h1 align=\"center\">upfetch - advanced fetch client builder</h1>\n<br>\n<p align=\"center\">\n<img src=\"https://raw.githubusercontent.com/L-Blondy/up-fetch/refs/heads/master/logos/upfetch-logo-gold.svg\" alt=\"upfetch\">\n</p>\n<br>\n<p align=\"center\">\n   <a href=\"https://www.npmjs.com/package/up-fetch\"><img src=\"https://img.shields.io/npm/v/up-fetch.svg?color=EFBA5F\" alt=\"npm version\"></a>\n   <a href=\"https://bundlephobia.com/package/up-fetch\"><img src=\"https://img.shields.io/bundlephobia/minzip/up-fetch?color=EFBA5F\" alt=\"npm bundle size\"></a>\n   <a href=\"https://github.com/L-Blondy/up-fetch/blob/master/LICENSE\"><img src=\"https://img.shields.io/npm/l/up-fetch.svg?color=EFBA5F\" alt=\"license\"></a>\n   <a href=\"https://github.com/L-Blondy/up-fetch/graphs/commit-activity\"><img src=\"https://img.shields.io/github/commit-activity/m/L-Blondy/up-fetch?color=EFBA5F\" alt=\"commit activity\"></a>\n   <a href=\"https://www.npmjs.com/package/up-fetch\"><img src=\"https://img.shields.io/npm/dm/up-fetch.svg?color=EFBA5F\" alt=\"downloads per month\"></a>\n</p>\n<br>\n\n_upfetch_ is an advanced fetch client builder with standard schema validation, automatic response parsing, smart defaults and more. Designed to make data fetching type-safe and developer-friendly while keeping the familiar fetch API.\n\n[中文文档 (AI 翻译)](./README_ZH.md)\n\n## 🚀 Try v2 Beta!\n\nVersion 2 of upfetch is now available in beta! The changes mainly impact advanced use cases, so most projects won’t require any modifications. Give it a try with:\n\n```bash\nnpm i up-fetch@2.0.0-beta.3\n```\n\nCheck out the [Migration Guide](https://github.com/L-Blondy/up-fetch/blob/v2.0/MIGRATION_v1_v2.md) for details about changes and how to upgrade. \\\nFor a complete overview of new features, see the [v2 documentation](https://github.com/L-Blondy/up-fetch/tree/v2.0/README.md).\n\n## Table of Contents\n\n- [Highlights](#️-highlights)\n- [QuickStart](#️-quickstart)\n- [Key Features](#️-key-features)\n   - [Request Configuration](#️-request-configuration)\n   - [Simple Query Parameters](#️-simple-query-parameters)\n   - [Automatic Body Handling](#️-automatic-body-handling)\n   - [Schema Validation](#️-schema-validation)\n   - [Lifecycle Hooks](#️-lifecycle-hooks)\n   - [Timeout](#️-timeout)\n   - [Error Handling](#️-error-handling)\n- [Usage](#️-usage)\n   - [Authentication](#️-authentication)\n   - [Delete a default option](#️-delete-a-default-option)\n   - [FormData](#️-formdata)\n   - [HTTP Agent](#️-http-agent)\n   - [Multiple fetch clients](#️-multiple-fetch-clients)\n- [Advanced Usage](#️-advanced-usage)\n   - [Error as value](#️-error-as-value)\n   - [Custom response parsing](#️-custom-response-parsing)\n   - [Custom response errors](#️-custom-response-errors)\n   - [Custom params serialization](#️-custom-params-serialization)\n   - [Custom body serialization](#️-custom-body-serialization)\n   - [Defaults based on the request](#️-defaults-based-on-the-request)\n- [API Reference](#️-api-reference)\n- [Feature Comparison](#️-feature-comparison)\n- [Environment Support](#️-environment-support)\n\n## ➡️ Highlights\n\n- 🚀 **Lightweight** - 1.2kB gzipped, no dependency\n- 🔒 **Typesafe** - Validate API responses with [zod][zod], [valibot][valibot] or [arktype][arktype]\n- 🛠️ **Practical API** - Use objects for `params` and `body`, get parsed responses automatically\n- 🎨 **Flexible Config** - Set defaults like `baseUrl` or `headers` once, use everywhere\n- 🤝 **Familiar** - same API as fetch with additional options and sensible defaults\n\n## ➡️ QuickStart\n\n```bash\nnpm i up-fetch\n```\n\nCreate a new upfetch instance:\n\n```ts\nimport { up } from 'up-fetch'\n\nexport const upfetch = up(fetch)\n```\n\nMake a fetch request with schema validation:\n\n```ts\nimport { upfetch } from './upfetch'\nimport { z } from 'zod'\n\nconst user = await upfetch('https://a.b.c/users/1', {\n   schema: z.object({\n      id: z.number(),\n      name: z.string(),\n      avatar: z.string().url(),\n   }),\n})\n```\n\nThe response is already **parsed** and properly **typed** based on the schema.\n\n_upfetch_ extends the native fetch API, which means all standard fetch options are available.\n\n## ➡️ Key Features\n\n### ✔️ Request Configuration\n\nSet defaults for all requests when creating an instance:\n\n```ts\nconst upfetch = up(fetch, () => ({\n   baseUrl: 'https://a.b.c',\n   timeout: 30000,\n}))\n```\n\nCheck out the the [API Reference][api-reference] for the full list of options.\n\n### ✔️ Simple Query Parameters\n\n👎 With raw fetch:\n\n```ts\nfetch(\n   `https://api.example.com/todos?search=${search}&skip=${skip}&take=${take}`,\n)\n```\n\n👍 With _upfetch_:\n\n```ts\nupfetch('/todos', {\n   params: { search, skip, take },\n})\n```\n\nUse the [serializeParams][api-reference] option to customize the query parameter serialization.\n\n### ✔️ Automatic Body Handling\n\n👎 With raw fetch:\n\n```ts\nfetch('https://api.example.com/todos', {\n   method: 'POST',\n   headers: { 'Content-Type': 'application/json' },\n   body: JSON.stringify({ title: 'New Todo' }),\n})\n```\n\n👍 With _upfetch_:\n\n```ts\nupfetch('/todos', {\n   method: 'POST',\n   body: { title: 'New Todo' },\n})\n```\n\n_upfetch_ also supports all [fetch body types](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit#body).\n\nCheck out the [serializeBody][api-reference] option to customize the body serialization.\n\n### ✔️ Schema Validation\n\nSince _upfetch_ follows the [Standard Schema Specification][standard-schema] it can be used with any schema library that implements the spec. \\\nSee the full list [here][standard-schema-libs].\n\n👉 With **zod** 3.24+\n\n```ts\nimport { z } from 'zod'\n\nconst posts = await upfetch('/posts/1', {\n   schema: z.object({\n      id: z.number(),\n      title: z.string(),\n   }),\n})\n```\n\n👉 With **valibot** 1.0+\n\n```ts\nimport { object, string, number } from 'valibot'\n\nconst posts = await upfetch('/posts/1', {\n   schema: object({\n      id: number(),\n      title: string(),\n   }),\n})\n```\n\n### ✔️ Lifecycle Hooks\n\nControl request/response lifecycle with simple hooks:\n\n```ts\nconst upfetch = up(fetch, () => ({\n   onRequest: (options) => {\n      // Called before the request is made, options might be mutated here\n   },\n   onSuccess: (data, options) => {\n      // Called when the request successfully completes\n   },\n   onError: (error, options) => {\n      // Called when the request fails\n   },\n}))\n```\n\n### ✔️ Timeout\n\nSet a timeout for one request:\n\n```ts\nupfetch('/todos', {\n   timeout: 3000,\n})\n```\n\nSet a default timeout for all requests:\n\n```ts\nconst upfetch = up(fetch, () => ({\n   timeout: 5000,\n}))\n```\n\n### ✔️ Error Handling\n\n#### 👉 <samp>ResponseError</samp>\n\nRaised when `response.ok` is `false`. \\\nUse `isResponseError` to identify this error type.\n\n```ts\nimport { isResponseError } from 'up-fetch'\n\ntry {\n   await upfetch('/todos/1')\n} catch (error) {\n   if (isResponseError(error)) {\n      console.log(error.status)\n   }\n}\n```\n\n- Use the [parseRejected][api-reference] option to throw a custom error instead.\n- Use the [reject][api-reference] option to decide **when** to throw.\n\n#### 👉 <samp>ValidationError</samp>\n\nRaised when schema validation fails. \\\nUse `isValidationError` to identify this error type.\n\n```ts\nimport { isValidationError } from 'up-fetch'\n\ntry {\n   await upfetch('/todos/1', { schema: todoSchema })\n} catch (error) {\n   if (isValidationError(error)) {\n      console.log(error.issues)\n   }\n}\n```\n\n## ➡️ Usage\n\n### ✔️ Authentication\n\nYou can easily add authentication to all requests by setting a default header:\n\n```ts\nconst upfetch = up(fetch, () => ({\n   headers: { Authorization: localStorage.getItem('bearer-token') },\n}))\n```\n\nThe bearer token will be retrieved from `localStorage` before each request.\n\n### ✔️ Delete a default option\n\nSimply pass `undefined`:\n\n```ts\nupfetch('/todos', {\n   signal: undefined,\n})\n```\n\n### ✔️ FormData\n\nGrab the FormData from a `form`.\n\n```ts\nconst form = document.querySelector('#my-form')\n\nupfetch('/todos', {\n   method: 'POST',\n   body: new FormData(form),\n})\n```\n\nOr create FormData from an object:\n\n```ts\nimport { serialize } from 'object-to-formdata'\n\nconst upfetch = up(fetch, () => ({\n   serializeBody: (body) => serialize(body),\n}))\n\nupfetch('https://a.b.c', {\n   method: 'POST',\n   body: { file: new File(['foo'], 'foo.txt') },\n})\n```\n\n### ✔️ HTTP Agent\n\nSince _upfetch_ is _\"fetch agnostic\"_, you can use [undici](https://github.com/nodejs/undici) instead of the native fetch implementation.\n\nOn a single request:\n\n```ts\nimport { fetch, Agent } from 'undici'\n\nconst upfetch = up(fetch)\n\nconst data = await upfetch('https://a.b.c', {\n   dispatcher: new Agent({\n      keepAliveTimeout: 10,\n      keepAliveMaxTimeout: 10,\n   }),\n})\n```\n\nOn all requests:\n\n```ts\nimport { fetch, Agent } from 'undici'\n\nconst upfetch = up(fetch, () => ({\n   dispatcher: new Agent({\n      keepAliveTimeout: 10,\n      keepAliveMaxTimeout: 10,\n   }),\n}))\n```\n\n### ✔️ Multiple fetch clients\n\nYou can create multiple upfetch instances with different defaults:\n\n```ts\nconst fetchMovie = up(fetch, () => ({\n   baseUrl: \"https://api.themoviedb.org\",\n   headers: {\n      accept: \"application/json\",\n      Authorization: `Bearer ${process.env.API_KEY}`,\n   },\n}))\n\nconst fetchFile = up(fetch, () => ({\n   parseResponse: async (res) => {\n      const name = res.url.split('/').at(-1) ?? ''\n      const type = res.headers.get('content-type') ?? ''\n      return new File([await res.blob()], name, { type })\n   },\n}))\n```\n\n## ➡️ Advanced Usage\n\n### ✔️ Error as value\n\nWhile the Fetch API does not throw an error when the response is not ok, _upfetch_ throws a `ResponseError` instead.\n\nIf you'd rather handle errors as values, set `reject` to return `false`. \\\nThis allows you to customize the `parseResponse` function to return both successful data and error responses in a structured format.\n\n```ts\nconst upfetch = up(fetch, () => ({\n   reject: () => false,\n   parseResponse: async (response) => {\n      const json = await response.json()\n      return response.ok\n         ? { data: json, error: null }\n         : { data: null, error: json }\n   },\n}))\n```\n\nUsage:\n\n```ts\nconst { data, error } = await upfetch('/users/1')\n```\n\n### ✔️ Custom response parsing\n\nBy default _upfetch_ is able to parse `json` and `text` sucessful responses automatically.\n\nThe `parseResponse` method is called when `reject` returns `false`.\nYou can use that option to parse other response types.\n\n```ts\nconst upfetch = up(fetch, () => ({\n   parseResponse: (response) => response.blob(),\n}))\n```\n\n💡 Note that the `parseResponse` method is called only when `reject` returns `false`.\n\n### ✔️ Custom response errors\n\nBy default _upfetch_ throws a `ResponseError` when `reject` returns `true`.\n\nIf you want to throw a custom error instead, you can pass a function to the `parseRejected` option.\n\n```ts\nconst upfetch = up(fetch, () => ({\n   parseRejected: async (response) => {\n      const status = response.status\n      const data = await response.json()\n      return new CustomError(status, data)\n   },\n}))\n```\n\n### ✔️ Custom params serialization\n\nBy default _upfetch_ serializes the params using `URLSearchParams`.\n\nYou can customize the params serialization by passing a function to the `serializeParams` option.\n\n```ts\nimport queryString from 'query-string'\n\nconst upfetch = up(fetch, () => ({\n   serializeParams: (params) => queryString.stringify(params),\n}))\n```\n\n### ✔️ Custom body serialization\n\nBy default _upfetch_ serializes the plain objects using `JSON.stringify`.\n\nYou can customize the body serialization by passing a function to the `serializeBody` option. It lets you:\n\n- **restrict the valid body type** by typing its first argument\n- **transform the body** in a valid `BodyInit` type\n\nThe following example show how to restrict the valid body type to `Record<string, any>` and serialize it using `JSON.stringify`:\n\n```ts\n// Restrict the body type to Record<string, any> and serialize it\nconst upfetch = up(fetch, () => ({\n   serializeBody: (body: Record<string, any>) => JSON.stringify(body),\n}))\n\n// ❌ type error: the body is not a Record<string, any>\nupfetch('https://a.b.c/todos', {\n   method: 'POST',\n   body: [['title', 'New Todo']],\n})\n\n// ✅ works fine with Record<string, any>\nupfetch('https://a.b.c/todos', {\n   method: 'POST',\n   body: { title: 'New Todo' },\n})\n```\n\nThe following example uses `superjson` to serialize the body. The valid body type is inferred from `SuperJSON.stringify`.\n\n```ts\nimport SuperJSON from 'superjson'\n\nconst upfetch = up(fetch, () => ({\n   serializeBody: SuperJSON.stringify,\n}))\n```\n\n### ✔️ Defaults based on the request\n\nThe default options receive the fetcher arguments, this allows you to tailor the defaults based on the actual request.\n\n```ts\nconst upfetch = up(fetch, (input, options) => ({\n   baseUrl: 'https://example.com/',\n   headers: {\n      // Add authentication only for protected routes\n      Authorization:\n         typeof input === 'string' && input.startsWith('/api/protected/')\n            ? `Bearer ${getToken()}`\n            : undefined,\n   },\n   // Add tracking params only for public endpoints\n   params: {\n      trackingId:\n         typeof input === 'string' && input.startsWith('/public/')\n            ? crypto.randomUUID()\n            : undefined,\n   },\n   // Increase timeout for long-running operations\n   timeout:\n      typeof input === 'string' && input.startsWith('/export/') ? 30000 : 5000,\n}))\n```\n\n## ➡️ API Reference\n\n### <samp>up(fetch, getDefaultOptions?)</samp>\n\nCreates a new upfetch instance with optional default options.\n\n```ts\nfunction up(\n   fetchFn: typeof globalThis.fetch,\n   getDefaultOptions?: (fetcherOptions: FetcherOptions) => DefaultOptions,\n): UpFetch\n```\n\n| Option                           | Signature                      | Description                                                                                               |\n| -------------------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------- |\n| `baseUrl`                        | `string`                       | Base URL for all requests.                                                                                |\n| `params`                         | `object`                       | The default query parameters.                                                                             |\n| `onRequest`                      | `(options) => void`            | Executes before the request is made.                                                                      |\n| `onError`                        | `(error, options) => void`     | Executes on error.                                                                                        |\n| `onSuccess`                      | `(data, options) => void`      | Executes when the request successfully completes.                                                         |\n| `parseResponse`                  | `(response, options) => data`  | The default success response parser. <br/>If omitted `json` and `text` response are parsed automatically. |\n| `parseRejected`                  | `(response, options) => error` | The default error response parser. <br/>If omitted `json` and `text` response are parsed automatically    |\n| `serializeBody`                  | `(body) => BodyInit`           | The default body serializer.<br/> Restrict the valid `body` type by typing its first argument.            |\n| `serializeParams`                | `(params) => string`           | The default query parameter serializer.                                                                   |\n| `timeout`                        | `number`                       | The default timeout in milliseconds.                                                                      |\n| `reject`                         | `(response) => boolean`        | Decide when to reject the response.                                                                       |\n| _...and all other fetch options_ |                                |                                                                                                           |\n\n### <samp>upfetch(url, options?)</samp>\n\nMakes a fetch request with the given options.\n\n```ts\nfunction upfetch(\n   url: string | URL | Request,\n   options?: FetcherOptions,\n): Promise<any>\n```\n\nOptions:\n\n| Option                           | Signature                      | Description                                                                                                                   |\n| -------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |\n| `baseUrl`                        | `string`                       | Base URL for the request.                                                                                                     |\n| `params`                         | `object`                       | The query parameters.                                                                                                         |\n| `parseResponse`                  | `(response, options) => data`  | The success response parser.                                                                                                  |\n| `parseRejected`                  | `(response, options) => error` | The error response parser.                                                                                                    |\n| `schema`                         | `StandardSchemaV1`             | The schema to validate the response against.<br/>The schema must follow the [Standard Schema Specification][standard-schema]. |\n| `serializeBody`                  | `(body) => BodyInit`           | The body serializer.<br/> Restrict the valid `body` type by typing its first argument.                                        |\n| `serializeParams`                | `(params) => string`           | The query parameter serializer.                                                                                               |\n| `timeout`                        | `number`                       | The timeout in milliseconds.                                                                                                  |\n| `reject`                         | `(response) => boolean`        | Decide when to reject the response.                                                                                           |\n| _...and all other fetch options_ |                                |                                                                                                                               |\n\n<br/>\n\n### <samp>isResponseError(error)</samp>\n\nChecks if the error is a `ResponseError`.\n\n### <samp>isValidationError(error)</samp>\n\nChecks if the error is a `ValidationError`.\n\n### <samp>isJsonifiable(value)</samp>\n\nDetermines whether a value can be safely converted to `json`.\n\nAre considered jsonifiable:\n\n- plain objects\n- arrays\n- class instances with a `toJSON` method\n\n## ➡️ Feature Comparison\n\nCheck out the [Feature Comparison][comparison] table to see how _upfetch_ compares to other fetching libraries.\n\n<br/>\n\n## ➡️ Environment Support\n\n- ✅ Browsers (Chrome, Firefox, Safari, Edge)\n- ✅ Node.js (18.0+)\n- ✅ Bun\n- ✅ Deno\n- ✅ Cloudflare Workers\n- ✅ Vercel Edge Runtime\n\n<div align=\"center\">\n<br />\n<br />\n<hr/>\n<h3>Share on:</h3>\n\n[![s][bsky-badge]][bsky-link]\n[![Share on Twitter][tweet-badge]][tweet-link]\n\n<br />\n<br />\n</div >\n\n<!-- Badges -->\n\n[bsky-badge]: https://img.shields.io/badge/Bluesky-0085ff?logo=bluesky&logoColor=fff\n[bsky-link]: https://bsky.app/intent/compose?text=https%3A%2F%2Fgithub.com%2FL-Blondy%2Fup-fetch\n[tweet-badge]: https://img.shields.io/badge/Twitter-0f1419?logo=x&logoColor=fff\n[tweet-link]: https://twitter.com/intent/tweet?text=https%3A%2F%2Fgithub.com%2FL-Blondy%2Fup-fetch\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[standard-schema-libs]: https://github.com/standard-schema/standard-schema?tab=readme-ov-file#what-schema-libraries-implement-the-spec\n[api-reference]: #️-api-reference\n[comparison]: https://github.com/L-Blondy/up-fetch/blob/master/COMPARISON.md\n","readmeFilename":"README.md"}