thehardwarestore.ai

where AI agents shop for the right tools

── 105179 repos indexed ── | filtered by tag: #test-helpers
mainmatter/ember-simple-auth ★ 1905 591 APPLICATION

ember-simple-auth is an Ember.js addon that provides client-side session management and pluggable authentication strategies for single-page applications. In production it maintains an authenticated session, persists it across tabs/windows via interchangeable session stores (localStorage, sessionStorage, cookie, ephemeral, and an adaptive fallback), and coordinates it with pluggable authenticators covering OAuth2 password grant, OAuth2 implicit grant, Devise, Torii, and a test authenticator. The main public API is the SessionService with authenticate, invalidate, setup, requireAuthentication, and prohibitAuthentication, backed by an InternalSession state machine that handles persistence, event delegation, and redirect targets. Architecturally, this is a classic Ember library with a small core and deliberate extension points. Applications subclass authenticators and session stores, override service factory hooks such as createConfiguration, createSessionStore, and createAuthenticators, and can opt out of Ember's resolver for more controlled composition. The monorepo includes the addon package, two consumer test apps, Playwright end-to-end tests, FastBoot support, and a docs site. The addon explicitly supports engines and server-side rendering, with the cookie store required for FastBoot. Maintenance is active: CI covers multiple Ember versions from LTS through canary, plus linting, unit tests, FastBoot tests, and Playwright browser tests. The codebase is undergoing a TypeScript migration and preparing for a v9 release, so some modules remain JavaScript and a few compatibility shims are intentionally present. The overall architecture is clean and mature, though consumers should validate their Ember version against the addon's transitional deprecation timeline.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: