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

@tscircuit/dependency-check

v0.0.6

Published

Script/GitHub Action to enforce dependency rules for internal packages in the TSCircuit ecosystem.

Downloads

600

Readme

@tscircuit/dependency-check

Script/GitHub Action to enforce dependency rules for internal packages in the TSCircuit ecosystem.

Rules

This action enforces the following rules:

  1. For internal_lib package type (default):

    • Internal packages should always be included as peer dependencies and/or devDependencies, not as regular dependencies.
    • Optionally, all peer dependencies must use "*" as the version.
  2. For bundled_lib package type:

    • No internal package should be in dependencies or peerDependencies.

A module is considered "internal" if:

  • It has the prefix @tscircuit/*
  • It has "circuit" anywhere in the package name
  • It's in the provided list of additional internal modules

You can modify this repo's INTERNAL_PACKAGE_LIST in the dependency-check.ts file to add internal packages to the list of internal packages.

No Circular Dependency Rule

image

Usage

Basic usage in your GitHub workflow:

name: Dependency Check

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  check-dependencies:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Check dependencies
        uses: tscircuit/dependency-check-action@v1

With custom options:

- name: Check dependencies
  uses: tscircuit/dependency-check-action@v1
  with:
    package_type: "bundled_lib"
    peer_deps_should_be_asterisk: "true"
    additional_internal_modules: "my-internal-lib,another-internal-lib"

Options

| Option | Description | Default | | ------------------------------ | ------------------------------------------------------------------ | -------------- | | package_type | Type of package, either internal_lib or bundled_lib | internal_lib | | peer_deps_should_be_asterisk | Force all peer dependencies to use an asterisk for the version | false | | additional_internal_modules | Comma-separated list of additional modules to consider as internal | '' |

Publishing the package

  1. Organize the files:

    src/
      index.ts  # Main script
    package.json
    tsconfig.json
    README.md
  2. Build and publish:

    npm run build
    npm publish

Implementation details

The action uses Bun to run the dependency check script (@tscircuit/dependency-check). Bun will automatically pull the latest version of the package, making it easy to update the rules across all repositories.

Development

To add new features or parameters:

  1. Update the TypeScript code in the @tscircuit/dependency-check package
  2. Publish a new version
  3. Repositories using the action will automatically use the latest version when they run GitHub workflows

This approach allows for easy updates and maintenance across your 200+ repositories.