npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@codelitdev/oauth-server-kit

v0.4.1

Published

Lean Better Auth OAuth authentication framework for web, mobile, REST, and MCP surfaces.

Readme

@codelitdev/oauth-server-kit

A lean Better Auth authentication library for CodeLit products. It provides hosted login/consent pages, neutral session and OAuth identities, Express bearer middleware, and MCP OAuth discovery.

The library authenticates people and OAuth clients. Each product continues to own its users-to-actor mapping, organizations, teams, memberships, roles, permissions, API keys, and credential precedence.

Supported surfaces

  • Web apps use product-local Better Auth sessions.
  • Mobile apps use Authorization Code with S256 PKCE and a statically registered public client.
  • REST APIs use OAuth bearer tokens through neutral req.auth.
  • MCP servers use the same bearer verification plus RFC 9728 discovery and a standard WWW-Authenticate challenge.

Every product deploys its own Better Auth issuer, user store, sessions, OAuth clients, signing keys, and provider configuration. The package is not a shared CodeLit SSO service.

Entry points

import {
    verifyOAuthAccessToken,
    type AuthenticatedIdentity,
} from "@codelitdev/oauth-server-kit";

import {
    createOAuthProviderOptions,
    resolveBetterAuthSession,
} from "@codelitdev/oauth-server-kit/better-auth";

import {
    createOAuthBearerMiddleware,
    createOAuthPagesRouter,
} from "@codelitdev/oauth-server-kit/express";

import { createMcpOAuthDiscoveryRoutes } from "@codelitdev/oauth-server-kit/mcp";

The root entry point does not load Express, a database library, or product modules. Better Auth persistence and schema ownership remain in the consuming application.

Secure defaults

  • OAuth Dynamic Client Registration is disabled unless explicitly enabled.
  • Unauthenticated DCR requires a separate explicit opt-in.
  • MCP client metadata documents (CIMD) are configured through the product's Better Auth plugins; see the integration guide for the secure fetch transport.
  • Issuer and audience/resource are verified for every bearer token.
  • Invalid explicit bearer tokens fail closed.
  • Ordinary-login redirects are restricted to configured origins.
  • Hosted pages reject framing and clear configured stale host-only cookies at both /login and /oauth/login.
  • Product claims such as team_id, roles, or permissions are not returned as trusted package identity fields.

See docs/integration.md for full web, mobile, REST, and MCP setup, and docs/architecture.md for the normative product requirements and public contract.

Development gates

bun run check-types
bun test
bun run test:coverage
bun run build

The coverage release gate is 90% statements, lines, and functions and 80% branches. The suite includes a real Better Auth OAuth Provider flow with a public client, S256 PKCE, refresh, JWKS verification, and MCP discovery.