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

@coduckai/flags-management

v0.1.0

Published

Headless management SDK for CoDuck Flags

Readme

@coduckai/flags-management

The UI-independent administrative SDK for CoDuck Flags. It publishes complete validated ruleset revisions with optimistic concurrency and exposes small helpers for common changes. A dashboard, internal admin route, automation, or script can all use the same API.

npm install @coduckai/flags-management
import { createManagementClient } from "@coduckai/flags-management";

const flags = createManagementClient({
  url: process.env.FLAGS_URL!,
  adminKey: process.env.FLAGS_ADMIN_KEY!
});

await flags.setBooleanRollout("new-checkout", 25, { environment: "production" });
await flags.setTarget("production", "new-checkout", "account_123", "on");
await flags.setEnabled("production", "new-checkout", false); // kill switch

update() reads the latest snapshot, applies a mutation, and publishes with If-Match. Revision conflicts are retried without silently overwriting another writer. Management credentials must never be shipped to browsers.

Important semantics

  • setBooleanRollout() accepts 0–100 with at most two decimal places. It creates or replaces an ordered rule, not the whole flag. Earlier matching rules and exact targets retain priority.
  • Keep ruleId, bucketBy and conditions the same when expanding a cohort. Omitting conditions on a later call removes that named rule's eligibility filter.
  • setEnabled(..., false) serves offVariation before every target and rule once the new revision reaches a client. true restores normal evaluation; it does not force the flag on.
  • setTarget() moves one targeting key to the requested named variation, overriding rules.
  • createEnvironment() is a one-time initialization; an existing environment is a conflict.
  • update() may invoke its synchronous mutation callback more than once after a conflict. Keep that callback free of external side effects. It overwrites revision/timestamp fields.
  • publishRuleset(ruleset, expectedRevision) is the low-level complete-snapshot operation. Use null only when creating an environment. Inspect ManagementApiError.status on failure.

See the repository README for the full workflow.