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

@slip-stream-kit/config

v0.3.3

Published

Config-authoring surface for infra-kit: defineConfig, defineVendorConfig, and the infraKitDev vite helper. Depends only on zod, so a consumer repo can keep this locally while the infra-kit CLI is installed globally.

Readme

@slip-stream-kit/config

The config-authoring surface for infra-kit. Depends on zod and nothing else.

Why this package exists

It is not a convenience split — it is the only way infra-kit can be a global CLI.

Three facts force it:

  1. Node ESM cannot resolve a bare specifier from a global install. NODE_PATH is ignored by ESM. So import { defineConfig } from 'infra-kit' in an infra-kit.config.ts, and import { infraKitDev } from 'infra-kit/vite' in a vite.config.ts, each force infra-kit to be a local dependency. Both tsc --noEmit and vite (a separate process) demand it.
  2. npm cannot install a package's exports without its bin.
  3. A local node_modules/.bin/infra-kit shadows the global one.

Together: while configs imported from infra-kit, a local install was mandatory, and that local install hijacked every pnpm exec infra-kit call — so npm i -g infra-kit was inert, and every consumer repo carried the CLI's full dependency tree (fastify, ink, react, chokidar, zx, …) just to call an identity function.

The bin-bearing package and the locally-resolved package must therefore be two different npm packages. This is the locally-resolved one. Install it as a devDependency; install infra-kit globally.

Usage

// infra-kit.config.ts
import { defineConfig } from '@slip-stream-kit/config'

export default defineConfig(() => ({ requiredScripts: [], requiredFiles: [] }))
// vite.config.ts
import { infraKitDev } from '@slip-stream-kit/config/vite'
import { defineConfig } from 'vite'

export default defineConfig(async ({ command }) => ({
  // Per-worktree dynamic dev port + the config-driven `dev.proxy`. Passing `command` makes it a
  // no-op for `build`.
  server: await infraKitDev({ command }),
}))

@slip-stream-kit/vite wraps that helper as a vite plugin (plugins: [infraKit()]) and adds what the helper cannot do: it re-resolves the proxy while the server is up, so a backend started after the frontend flips its route from cloud to local on its own. The helper here stays supported — use it when you want the raw server block.

// vendor.config.ts
import { defineVendorConfig } from '@slip-stream-kit/config'

export default defineVendorConfig({ copy: [] })

Entry points

| Entry | Contents | | --- | --- | | . | defineConfig, defineVendorConfig, and the config types | | ./vite | infraKitDev, infraKitProxy, resolveProxyConfig, slugifyRelease | | ./internal | Consumed by the infra-kit CLI. Not public API — no stability guarantee |

Versioning

Released in lockstep with infra-kit: the two share the same version line, always.

This is load-bearing, not cosmetic. The CLI self-updates silently on developer machines while this package stays pinned in each consumer's lockfile, so a new CLI routinely meets an older helper. The CLI guards that skew by comparing this package's version against a floor — a guard that only works while both sides are points on the same version line. An independent version line here would make the floor either reject every consumer or pass vacuously, and a vacuous pass silently reinstates the failure the floor exists to prevent.