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

@sanity/vanilla-extract-integration

v0.1.18

Published

Vendored port of @vanilla-extract/integration onto the rolldown toolchain: yuku-parsed debug IDs and a rolldown child compilation instead of babel and esbuild

Readme

@sanity/vanilla-extract-integration

A vendored port of @vanilla-extract/integration onto the rolldown toolchain, for the @sanity/vanilla-extract-* plugins. Same API for the surface they consume, none of the babel/esbuild machinery:

| Upstream | Here | | --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | compile() bundles .css.ts graphs with an esbuild child compilation | a rolldown child compilation (in-memory, CommonJS, lazy-loaded) | | debug IDs injected by babel (@vanilla-extract/babel-plugin-debug-ids + @babel/plugin-syntax-typescript) | an AST pass over yuku-parser's oxc-shaped AST, spliced by offset so untouched code stays byte-identical | | module evaluation via the eval package | node:vm.compileFunction + node:module.createRequire | | find-up, dedent, mlly dependencies | inlined (walk-up loop, plain strings, vendored detectSyntax regexes) |

The only runtime dependencies left are rolldown (which the host toolchain — tsdown, Vite 8, or raw rolldown — ships anyway; the wide ^1.1.5 range lets package managers reuse the host's copy when its version satisfies it, though hosts pinning older minors can still resolve a second copy), yuku-parser (already transitive in rolldown-based toolchains through rolldown-plugin-dts), @vanilla-extract/css, and javascript-stringify.

API

import {
  compile, // rolldown child compilation of a .css.ts graph
  cssFileFilter,
  getPackageInfo,
  getSourceFromVirtualCssFile,
  normalizePath,
  processVanillaFile, // evaluate compiled output into virtual CSS imports + serialized exports
  serializeVanillaModule,
  transform, // debug IDs + file scope wrapping for a single module
  virtualCssFileFilter,
  type IdentifierOption,
} from '@sanity/vanilla-extract-integration'

Intentional differences from upstream:

  • The esbuildOptions bag of compile() is dropped (it leaked the esbuild API into the public surface).
  • Only the API surface consumed by @sanity/vanilla-extract-rolldown-plugin and @sanity/vanilla-extract-vite-plugin is exported.
  • The babel-compiled createTheme destructure special-cases of the debug-ID transform are not ported: the transform only ever sees authored source.

The parser bench-off

The debug-ID pass is parser-agnostic (one shared walker over the oxc-shaped TS-ESTree AST). bench/debug-ids.bench.ts compares yuku-parser against rolldown/parseAst over a generated corpus of hundreds of realistic .css.ts files, and the unit tests run every case through both parsers to prove identical output:

pnpm --filter @sanity/vanilla-extract-integration bench
# corpus size: VE_BENCH_DEBUG_IDS_FILES=2500 pnpm --filter @sanity/vanilla-extract-integration bench

Last measured (2026-07-16, Node 24.18.0, Linux x64, 4-core Intel Xeon; rolldown 1.1.5, yuku-parser 0.6.1): yuku-parser parses ~2x faster — 59.7ms vs 121.0ms mean per 500-file corpus pass, 278ms vs 593ms at 2500 files (cold import 9.0ms vs 6.6ms). yuku-parser ships as the production backend on that win; it's effectively free dependency-wise since the yuku toolchain is already in the install graph of rolldown-based setups (rolldown-plugin-dts, used by tsdown and @sanity/pkg-utils, parses with it). rolldown/parseAst stays in the bench (rolldown is a dependency regardless, for compile()) so the comparison remains reproducible as both parsers evolve.

License

MIT — incorporates code from vanilla-extract (MIT, Copyright (c) 2021 SEEK) and mlly (MIT). See LICENSE.