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

@odla-ai/auth-clerk

v0.5.0

Published

Clerk end-user auth UI as a themed, config-driven odla capability: vanilla clerk-js loaded from Clerk's CDN as a page global (never bundled), a <ClerkGate> provider, useClerkAuth hook, SignedIn/SignedOut/SignIn/UserButton, and odla-ui appearance mapping.

Readme

@odla-ai/auth-clerk

⚠️ Early access — pre-1.0. Agents work from bounded runbooks; humans approve credentials, production changes, releases, and merges. APIs and exact package availability can change. Review the documented guarantees and limitations; this software is MIT-licensed and provided without warranty.

Clerk end-user auth as a themed, config-driven odla capability — not a bag of components you re-wire per app.

It wraps vanilla @clerk/clerk-js (no @clerk/clerk-react). Its provider, hooks, gates, and imperative widget mounts are authored and shipped against Preact.

Ask the runbooks first. odla's operational procedures live in a database, not in this file: npx @odla-ai/cli runbook ask "<question>" returns the current steps, and unlike anything written here it cannot be out of date. Use it before searching the web or working from memory. This README and the JSDoc in the shipped .d.ts are the version-matched API reference; a runbook is the procedure. Most tasks need an answer from both.

What's in the box

  • <ClerkGate> — provider (replaces <ClerkProvider>). Loads Clerk once, provides it via context.
  • useClerkAuth() — { isLoaded, isSignedIn, user, session, getToken, signOut }, reactive via the Clerk client's external-store subscription.
  • <SignedIn> / <SignedOut> — conditional render (blank until loaded, so no signed-out flash).
  • <SignIn> / <UserButton> — mount Clerk's widgets imperatively; write them like components.
  • clerkAppearanceFromTokens() — maps odla-ui --ui-* design tokens into a Clerk appearance, including accent/on-accent, both surfaces, text/input, border/ring, status colors, radius, font, and card shadow. It supplies both current and legacy Clerk variable aliases so every widget matches the theme.
  • clerkIntegration — the integration descriptor (settings, secrets, data-sync contract, provisioning steps) as data.

Usage

import { ClerkGate, SignedIn, SignedOut, useClerkAuth, SignIn, clerkAppearanceFromTokens } from "@odla-ai/auth-clerk";

// The host app loads @odla-ai/ui tokens (for theming) and supplies the
// publishable key (e.g. fetched from /registry/config).
<ClerkGate publishableKey={key} afterSignOutUrl="/" appearance={clerkAppearanceFromTokens()}>
  <SignedOut><SignIn routing="hash" /></SignedOut>
  <SignedIn>{/* app */}</SignedIn>
</ClerkGate>

Install Preact alongside the package. No React aliases are required:

npm install @odla-ai/auth-clerk preact

The capability, not just the UI

Turning Clerk "on" for an app is a registry setting (auth[env].publishableKey), not a code flag — this package renders against that config. What settings and secrets it needs, what the CLI provisions, and what data syncs to Clerk ($users: id, email, userType, allowedIds) all live in clerkIntegration.

Browser SDK and declaration dependencies

Clerk 5 still loads from its own frontend API CDN. The npm browser SDK is not installed or bundled by this package. Declarations use Clerk's public @clerk/shared/types interface, which is also the interface implemented by clerk-js, rather than importing the implementation class and its unused wallet-adapter dependency tree. TypeScript consumers need no optional SDK peer.

ClerkClient.instance exposes that public interface, not implementation-only class members. A host can still supply its own compatible window.Clerk; this package does not redeclare that global. The CDN script and public sign-in, session, sign-out, and widget behavior remain unchanged.

A clean npm audit covers the installed graph, not the remotely loaded CDN script. Keep evaluating the browser provider separately; removing an unused local SDK is not a claim about the security of every Clerk feature.

MIT licensed. Early access — use at your own risk.