New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

npm-dep-tree-analyzer

Package Overview
Dependencies
Maintainers
0
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

npm-dep-tree-analyzer

A utility for analyzing npm package dependencies

  • 0.1.7
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
10
decreased by-37.5%
Maintainers
0
Weekly downloads
 
Created
Source

npm-dep-tree-analyzer

A powerful TypeScript library for analyzing npm package dependencies, providing comprehensive dependency tree analysis and visualization with hoisting support.

CI

Features

  • 🔍 Deep Dependency Analysis: Analyze direct and transitive dependencies
  • 🌳 Dependency Tree Generation: Generate detailed dependency trees with version information
  • 📦 Hoisting Support: Simulate npm's package hoisting behavior
  • Parallel Processing: Fast dependency resolution with concurrent package fetching
  • 🎯 Version Conflict Detection: Identify and report version conflicts
  • 🤝 Peer Dependency Handling: Comprehensive peer dependency analysis and validation
  • 💾 Smart Caching: Built-in caching to reduce registry requests

Installation

npm install npm-dep-tree-analyzer

Usage

Analyzing a Single Package

import { NpmDepTreeAnalyzer } from 'npm-dep-tree-analyzer';

const analyzer = new NpmDepTreeAnalyzer();
const result = await analyzer.analyze('next', '14.0.3');

// Print dependency tree
NpmDepTreeAnalyzer.printDependencyTree(result.dependencyTree);

// Print hoisted tree (similar to node_modules structure)
NpmDepTreeAnalyzer.printHoistedTree(result.hoistedTree);

Analyzing Multiple Packages

import { NpmDepTreeAnalyzer } from 'npm-dep-tree-analyzer';

const analyzer = new NpmDepTreeAnalyzer({
  registry: 'https://registry.npmmirror.com',
  timeout: 30000,
  headers: {
    'User-Agent': 'npm-dep-tree-analyzer-example'
  }
});

const packages = [
  { name: 'express', version: '4.18.2' },
  { name: 'react', version: '18.2.0' },
  { name: '@testing-library/react', version: '14.1.2' }
];

const result = await analyzer.analyze(packages);

// Print combined hoisted tree
NpmDepTreeAnalyzer.printHoistedTree(result.combined.hoistedTree);

// Print individual dependency trees
for (const [pkgKey, analysis] of result.individual) {
  console.log(`\nDependency Tree for ${pkgKey}:`);
  NpmDepTreeAnalyzer.printDependencyTree(analysis.dependencyTree);
}

API Reference

NpmDepTreeAnalyzer

The main class for analyzing npm package dependencies.

Constructor Options
interface NpmRegistryConfig {
  registry?: string;      // npm registry URL (default: 'https://registry.npmjs.org')
  timeout?: number;       // request timeout in milliseconds (default: 30000)
  headers?: Record<string, string>;  // custom headers for registry requests
}
Methods
  • analyze(packageName: string, version: string): Promise<AnalysisResult> Analyzes a single package and returns its dependency information.

  • analyze(packages: Array<{ name: string, version: string }>): Promise<MultiPackageAnalysisResult> Analyzes multiple packages and returns combined dependency information.

  • static printDependencyTree(node: DependencyNode): void Prints a hierarchical view of the dependency tree.

  • static printHoistedTree(tree: HoistedTree): void Prints a visualization of the hoisted dependency tree (similar to node_modules structure).

Development

# Install dependencies
npm install

# Run tests
npm test

# Type checking
npm run type-check

# Build
npm run build

License

Apache-2.0

Keywords

FAQs

Package last updated on 23 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc