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

@teacss/runtime

v0.10.11

Published

Build-pipeline runtime for TeaCSS (context, content extraction, transformers, layers).

Readme

@teacss/runtime

Shared stateful runtime for TeaCSS build integrations. It loads a CSS entry through @teacss/config, tracks source modules, runs transformers, extracts tokens, and coordinates @teacss/core generation. Applications should use a concrete build adapter.

Use applyTransformerPipeline for the pre → default → post sequence, or applyTransformers for one phase. A stateful transformer may implement onModuleRemoved(id, ctx) to release module-owned registrations. Its idFilter receives the current module ID with the transformer as this; the pipeline filter receives the current transformed code and ID.

Reloads are transactional: a candidate configuration replays tracked modules and settles staged work before publication. Failure preserves the last valid runtime state while exposing source dependencies for recovery. Overlapping transforms reconcile to the newest source and context. Stateful transformers should key registrations by ctx or ctx.generator, and make cleanup idempotent. onReload and onInvalidate return disposers.

getModuleOutput(ctx, id) reads the latest successful full-pipeline output, including output from a module currently excluded by global content filtering.

Source generation

Node integrations can share file reading and aggregation through the public subpath:

import {
  DEFAULT_SOURCE_IGNORE,
  generateSources,
  readSourceFile,
} from "@teacss/runtime/source-generation";

readSourceFile treats a missing file as empty and preserves other filesystem errors. generateSources applies configured extractors to supplied file paths and source content. Pass file paths alone and the runtime reads them through readSourceFile. If the generator configuration or extraction hooks change mid-build, it re-extracts those sources before returning a result. A caller's isInputCurrent check remains authoritative: a failed or false check is not retried as an internal snapshot change.

This package defines no utility vocabulary or application-facing class API.