{"adoption": {"forks": 166, "observed_at": "2026-08-28T04:03:13.915662+00:00", "stars": 1014}, "canonical_url": "https://ross.abutalabs.com/products/appauth-js", "card": {"archived": false, "artifact_type": "library", "description": "JavaScript client SDK for communicating with OAuth 2.0 and OpenID Connect providers.", "domain": ["security", "web-development", "apis", "developer-tools"], "enriched": true, "function": ["auth", "sdk", "http-client"], "health_score": 79, "homepage": null, "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["openid/AppAuth-JS"], "name": "openid/AppAuth-JS", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-18T22:26:45+00:00", "repo": "openid/AppAuth-JS", "stars": 1014, "tags": ["oauth2", "openid-connect", "pkce", "typescript", "authentication", "nodejs", "electron"], "topics": ["oauth2", "openid-connect", "web"], "urls": [], "use_cases": ["add oauth2 login to a web app", "implement openid connect authentication in javascript", "secure authorization code flow with pkce", "authenticate a nodejs cli app against an oauth provider", "exchange authorization codes for tokens", "fetch openid connect provider discovery configuration", "add sign-in to an electron app"], "what_it_is": "AppAuth-JS is a TypeScript client SDK for OAuth 2.0 and OpenID Connect, designed for public clients following RFC 8252 best practices. It supports PKCE and works in web apps, Node.js CLIs, Chrome apps, and Electron applications.", "when_to_avoid": ["you need a full identity provider or server-side session management", "you want a batteries-included auth UI or user management (use an auth service SDK instead)", "your app is a confidential server-side client needing client-secret flows with advanced session features"], "when_to_choose": ["you need standards-compliant OAuth 2.0 / OIDC client behavior in JS or TypeScript", "you are building a public client (SPA, CLI, Electron) that should use PKCE", "you want fine-grained control over authorization and token requests"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/appauth-js", "repo": "openid/AppAuth-JS", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "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:03:13.915662+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.915662+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:11:34.851207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d91fc4e502d16784ac1bab33a225e66d4994e39d4bf68552d94c8e23e05b03d3", "fetched_at": "2026-08-28T04:03:13.915662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-JS"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3439, "days_push": 15, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}