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

void-purge

v2.0.0

Published

Purge orphaned artifacts and corrupted transmissions from your archival nodes

Downloads

76

Readme

void-purge

Purge orphaned signal fragments from your archival nodes

npm version npm downloads Node.js version GitHub license Tests npm package vulnerabilities

A minimal, fast protocol for identifying and removing orphaned artifacts (unused dependencies) and corrupted transmissions (deprecated packages) from Node.js archival nodes. Scans large projects in under a second.

About

In the Signal Archives, every dependency is a signal fragment—a piece of transmitted knowledge preserved in your project manifest. Over time, some fragments become orphaned: referenced in manifests but no longer actively used in transmission patterns (code).

void-purge scans your codebase for these orphaned artifacts, helping maintain archival integrity by removing fragments that no longer serve the network.

Features

  • Detect orphaned artifacts - finds unused signal fragments in archival manifests
  • Identify duplicate fragments - spots artifacts listed in multiple manifest locations
  • Scan for corrupted transmissions - warns about deprecated packages via NPM registry
  • Safe by default - uses preview mode; requires --remove flag to purge
  • Fast signal analysis - scans large archives in under a second
  • Clean archival reports - clear, color-coded output with detailed analysis

Installation

npm install -g void-purge

Or run directly without installing:

npx void-purge

Usage

Scan current project

void-purge

Output:

◆ VOID-PURGE — Signal Purge Protocol
→ Scanning transmission logs...
✓ Detected 12 active signal patterns
→ Cross-referencing archival manifests...
→ Checking for corrupted transmissions...

◆ Archival Status Report
◆ Orphaned Artifacts (3)
  ● @types/jest — No active signal reference
  ● @types/node — Transmission path severed
  ● ts-jest — Fragment isolation confirmed

→ Execute with --remove to purge orphaned artifacts

Remove orphaned artifacts

void-purge --remove

This will:

  1. Purge unused packages from your package.json
  2. Show which orphaned artifacts were removed
  3. Suggest running npm install to update cache

Show detailed analysis

void-purge --verbose

Displays detailed information about all signal patterns, archival manifests, and analysis results.

Preserve specific signal fragments

void-purge --keep lodash react

Excludes specified packages from purging (even if unused/orphaned).

Scan a different archival node

void-purge /path/to/project

Combine protocol options

void-purge /path/to/project --remove --verbose --keep lodash

Preview changes with detailed analysis

void-purge --verbose

Shows what would be purged before applying changes with --remove.

Integration with build pipelines

Add to your package.json:

{
  "scripts": {
    "archive:audit": "void-purge",
    "archive:verify": "void-purge --verbose",
    "archive:purge": "void-purge --remove"
  }
}

Then run:

npm run archive:verify      # Preview orphaned artifacts
npm run archive:purge       # Purge from manifest

CI/CD Integration

Verify archival integrity in your pipeline:

# Scan for orphaned artifacts; fails if any detected
void-purge --verbose

Exit code will be non-zero if orphaned artifacts exist (useful for CI gates).

Configuration

Create a void-purge.config.json file in your project root to set archival preservation rules:

{
  "keep": ["lodash", "moment"]
}

Example configurations:

For a React application node:

{
  "keep": ["react", "react-dom", "react-router-dom"]
}

For a monorepo network:

{
  "keep": ["@company/shared-utils", "@company/types"]
}

For a library with peer fragment dependencies:

{
  "keep": ["tslib", "@types/node"]
}

How it works

  1. Scans all .js, .ts, .jsx, .tsx files in your archival node
  2. Extracts import and require statements using transmission patterns
  3. Cross-references found signal patterns against archival manifests
  4. Reports orphaned artifacts, duplicate fragments, and corrupted transmissions
  5. Purges from manifest (if --remove flag is used)

What it detects

✅ Detects

  • import statements: import foo from 'bar'
  • require() calls: require('foo')
  • Scoped fragments: @babel/core
  • Nested signal patterns: lodash/map → detects lodash
  • Both dependencies and devDependencies manifests
  • Duplicate artifacts across manifest sections
  • Corrupted transmissions from NPM archival network

⚠️ Limitations

  • Doesn't analyze dynamic imports like require(variable)
  • Doesn't scan .json, .html, or configuration files
  • Doesn't evaluate webpack/babel configuration networks
  • Doesn't track indirect signal propagation

Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run tests
npm test

# Run tests in watch mode
npm test:watch

# Run locally
node dist/cli.js

Contributing

Contributions welcome! Please feel free to submit a Pull Request to help maintain archival integrity across the network.

Field Notes

This tool was developed for maintaining clean archival nodes across signal networks. Each scan represents an integrity check of your project's dependency manifest against actual transmission patterns. Orphaned artifacts consume cache space and create noise in the signal. Regular purges maintain clarity and reduce corruption risk.

Signal integrity maintained • Archive Protocol

License

MIT © 2026