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

impactguard-cli

v1.0.4

Published

Pre-PR impact detection — know what breaks before your PR merges

Readme

ImpactGuard CLI

Know what breaks before your PR merges.

ImpactGuard scans your codebase locally, builds a call graph, and tells you exactly which methods, callers, and API endpoints are affected when something changes — before you raise a PR.

npx impactguard-cli init
npx impactguard-cli check

How it works

Your code changes
      ↓
impactguard check
      ↓
⛔ Method Removed — confidence 95%
   Changed : DriversService.assignNearestDriver
   Callers : DriversController.assignDriver
   APIs    : POST /caption/assign
   Evidence:
     · Method removed: DriversService.assignNearestDriver
     · 1 direct caller: DriversController.assignDriver
     · 1 API endpoint affected: POST /caption/assign

Quick start

Setup — once per project

cd your-project
npx impactguard-cli init

After every code change

npx impactguard-cli check

That is it. Two commands. The tool remembers your baseline and compares automatically.


Language support

| Language | Framework | Scanner | |------------------|------------------------|--------------| | TypeScript/Node | NestJS | ts-morph AST | | JavaScript/Node | Express, Fastify | ts-morph AST | | Java | Spring Boot | Regex parser | | Python | FastAPI, Flask | Python AST |

# Node / NestJS / Express (default)
npx impactguard-cli init

# Java Spring Boot
npx impactguard-cli init --lang java

# Python FastAPI / Flask
npx impactguard-cli init --lang python

What it detects

| Change type | Confidence | What is shown | |---------------------|------------|--------------------------------------| | Method removed | 95% | All callers and API endpoints | | Signature changed | 90% | All callers passing wrong args | | Return type changed | 85% | All callers depending on old type | | Endpoint removed | 95% | All clients get 404 | | Method renamed | 45% | Heuristic — verify manually |

Every warning includes evidence explaining exactly why it was flagged.


Consumer rule

ImpactGuard only warns when something depends on what changed.

No consumer = silence. No noise. No false positives on isolated changes.


What it does NOT check

ImpactGuard is a heuristic static call-graph generator — not a runtime analyser. It does not check:

  • Logic changes inside methods
  • Feature flag behaviour
  • Database migrations
  • Config-driven logic changes
  • Dynamic calls — service[method]()
  • Runtime polymorphism
  • Cross-service dependencies (Phase 3 — coming soon)
  • Message queue consumers (Phase 3)

These are documented at the bottom of every report.


Commands

# Set up ImpactGuard for this project (run once)
npx impactguard-cli init

# Check impact after code changes (run every time)
npx impactguard-cli check

# Update baseline after intentional breaking change
npx impactguard-cli check --update-baseline

# Generate call graph manually
npx impactguard-cli generate --lang node

# Diff two call graph files manually
npx impactguard-cli diff baseline.json changed.json

# Install pre-push git hook
npx impactguard-cli install-hook

Requirements

  • Node.js 16 or higher
  • For Python projects: Python 3.6+
  • No other dependencies — no Docker, no database, no server

The tool reads your source files locally. Nothing is sent anywhere.


Tested on

  • NestJS backends with 100+ methods
  • Express REST APIs
  • Fastify services
  • Spring Boot microservices
  • FastAPI services

Positioning

ImpactGuard sits between your unit tests and integration tests:

Compiler → Unit Tests → ImpactGuard → Integration Tests → Production

It catches structural breaks — removed methods, changed signatures, removed endpoints — that cause immediate runtime failures in callers. Not a replacement for tests. A different layer.


Feedback

Testing ImpactGuard on your project? We want to know:

  1. Did it catch something you would not have noticed?
  2. Did it miss something it should have caught?
  3. Was anything wrong or unhelpful?

Open an issue at github.com/impactcheckorg/impactcheck-cli/issues or email [email protected]


ImpactGuard is practical CI-level impact intelligence — not authoritative for exact runtime reachability. We identify likely impacts and explain why we think they are at risk.