{"adoption": {"forks": 20, "observed_at": "2026-08-28T04:04:38.330465+00:00", "stars": 1406}, "canonical_url": "https://ross.abutalabs.com/products/up-fetch", "card": {"archived": false, "artifact_type": "library", "description": "Advanced fetch client builder", "domain": ["web-development", "frontend", "backend", "apis", "developer-tools"], "enriched": true, "function": ["http-client", "middleware", "serialization", "streaming"], "health_score": 98, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["L-Blondy/up-fetch"], "name": "L-Blondy/up-fetch", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-25T09:35:01+00:00", "repo": "L-Blondy/up-fetch", "stars": 1406, "tags": ["fetch-wrapper", "zod", "standard-schema", "schema-validation", "retry", "timeout", "progress-tracking", "type-safe", "response-parsing", "query-params", "lifecycle-hooks", "error-handling", "valibot", "arktype", "lightweight", "nodejs", "typescript"], "topics": ["fetch", "fetch-wrapper", "validation", "zod", "api", "fetch-client", "progress", "retry", "schema", "standard-schema", "streaming"], "urls": [], "use_cases": ["type-safe fetch client with zod response validation", "wrap fetch with baseUrl and default headers", "automatic JSON parsing and body serialization for fetch", "retry failed requests with configurable backoff", "track upload and download progress with fetch", "stream API responses with schema validation", "shared request defaults across multiple API clients", "handle fetch errors with typed error classes"], "what_it_is": "upfetch is an advanced fetch client builder for TypeScript that wraps the native fetch API with schema validation, automatic response parsing, and smart defaults. It supports validators like zod, valibot, and arktype via the Standard Schema spec, and adds practical features like retry, timeout, progress tracking, and streaming.", "when_to_avoid": ["you need a full-featured HTTP client with interceptors like axios", "your project is not TypeScript or does not use schema validation", "you need GraphQL or WebSocket support rather than REST-style fetching", "you want automatic React query caching or state management integration"], "when_to_choose": ["you want type-safe API calls without leaving the native fetch API", "you need a tiny (1.6kB) zero-dependency fetch wrapper", "you use zod, valibot, or arktype and want runtime-validated responses", "you want retry, timeout, and progress in one lightweight client", "you need multiple configured fetch instances for different APIs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/up-fetch", "repo": "L-Blondy/up-fetch", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.330465+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:38:40.993330+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "286d4fe8916c59e4c3f5079f45b9f185856595542fb062572da668ff169136a1", "fetched_at": "2026-08-28T04:04:38.330465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/L-Blondy/up-fetch"}, {"content_hash": "09fdcea7c003ed8130fdb362cfc828d46f543825e0e14e7d46cf3ba204274cd4", "fetched_at": "2026-08-29T11:52:24.592934+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/up-fetch"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 90, "rhythm": 74}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1267, "days_push": 8, "days_rel": 177, "gap_med": 1.0, "n_releases_24m": 29}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}