{"_id":"@boilerbuilder/deps-analyzer","_rev":"2-6b616489bf5f87dc09bf6766b0b52b98","name":"@boilerbuilder/deps-analyzer","dist-tags":{"latest":"0.1.0-alpha.2"},"versions":{"0.1.0-alpha.1":{"name":"@boilerbuilder/deps-analyzer","version":"0.1.0-alpha.1","keywords":["dependencies","npm","analysis","cli","reports","libyear","drift","pulse"],"author":{"name":"Barney"},"license":"MIT","_id":"@boilerbuilder/deps-analyzer@0.1.0-alpha.1","maintainers":[{"name":"gabemule","email":"gabemule@gmail.com"}],"homepage":"https://github.com/BoilerBuilder/deps-analyzer#readme","bugs":{"url":"https://github.com/BoilerBuilder/deps-analyzer/issues"},"bin":{"deps-analyzer":"bin/deps-analyzer.js"},"dist":{"shasum":"09021a2a9a8493346001c2daf388fef0240565c2","tarball":"https://registry.npmjs.org/@boilerbuilder/deps-analyzer/-/deps-analyzer-0.1.0-alpha.1.tgz","fileCount":16,"integrity":"sha512-KfsOgQMmWKUVICmZx64mW/YlVDirjVSIz3ucCP/ui9OBj1SlUt2jBk0sFkSrKa6SDw1z/P0kL0x8hj7XMnMLjA==","signatures":[{"sig":"MEYCIQCakEAKQ+/U1RpN/MiymF0o7MkyZk9TuoYNjqTlWRXC3gIhANu9bOwZ+IyLqrROFxN0QG2eZNVwUo41Q+e6BhsJviIm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118584},"main":"lib/index.js","engines":{"node":">=16.0.0"},"gitHead":"e00ef3084a22dd437f75e9510a69bb84070bc7d1","scripts":{"dev":"node --inspect bin/deps-analyzer.js","link":"npm link","test":"node bin/deps-analyzer.js ./templates","start":"node bin/deps-analyzer.js","unlink":"npm unlink -g @boilerbuilder/deps-analyzer"},"_npmUser":{"name":"gabemule","email":"gabemule@gmail.com"},"repository":{"url":"git+https://github.com/BoilerBuilder/deps-analyzer.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to analyze dependency evolution and release frequency","directories":{},"_nodeVersion":"23.7.0","dependencies":{"semver":"^7.7.2","fast-glob":"^3.3.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/deps-analyzer_0.1.0-alpha.1_1756255756716_0.43219171694660985","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.2":{"name":"@boilerbuilder/deps-analyzer","version":"0.1.0-alpha.2","description":"CLI tool to analyze dependency evolution and release frequency","main":"lib/index.js","bin":{"deps-analyzer":"bin/deps-analyzer.js"},"scripts":{"start":"node bin/deps-analyzer.js","test":"node bin/deps-analyzer.js ./templates","dev":"node --inspect bin/deps-analyzer.js","link":"npm link","unlink":"npm unlink -g @boilerbuilder/deps-analyzer"},"keywords":["dependencies","npm","analysis","cli","reports","libyear","drift","pulse"],"author":{"name":"Barney"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/BoilerBuilder/deps-analyzer.git"},"homepage":"https://github.com/BoilerBuilder/deps-analyzer#readme","bugs":{"url":"https://github.com/BoilerBuilder/deps-analyzer/issues"},"dependencies":{"fast-glob":"^3.3.2","semver":"^7.7.2"},"engines":{"node":">=16.0.0"},"_id":"@boilerbuilder/deps-analyzer@0.1.0-alpha.2","gitHead":"8a6af070bf031e872bd0f0c2a896374290e6eda9","_nodeVersion":"23.7.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-0IWr6QzQlLJOscacH2+qO0j1IxcNDXqJSxgJXgSfeaQ9TDV/FrhrGeFS7TM61VReGpUw+GCA2k4jWEdsQkjAvg==","shasum":"8fd32826d5274a78e9d289ab698a87b11cbebadc","tarball":"https://registry.npmjs.org/@boilerbuilder/deps-analyzer/-/deps-analyzer-0.1.0-alpha.2.tgz","fileCount":16,"unpackedSize":128355,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDFmB3S27nrzvyTvP47XEYFqpdQ3LHI55YvKQ6yOvB8oAIhAPWlgwIRyNdWM4roFb6OtQY5rrobmWai3OIFqv7+4O/M"}]},"_npmUser":{"name":"gabemule","email":"gabemule@gmail.com"},"directories":{},"maintainers":[{"name":"gabemule","email":"gabemule@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/deps-analyzer_0.1.0-alpha.2_1756264860922_0.29529809891506886"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-27T00:49:16.659Z","modified":"2025-08-27T03:21:01.402Z","0.1.0-alpha.1":"2025-08-27T00:49:16.955Z","0.1.0-alpha.2":"2025-08-27T03:21:01.109Z"},"bugs":{"url":"https://github.com/BoilerBuilder/deps-analyzer/issues"},"author":{"name":"Barney"},"license":"MIT","homepage":"https://github.com/BoilerBuilder/deps-analyzer#readme","keywords":["dependencies","npm","analysis","cli","reports","libyear","drift","pulse"],"repository":{"type":"git","url":"git+https://github.com/BoilerBuilder/deps-analyzer.git"},"description":"CLI tool to analyze dependency evolution and release frequency","maintainers":[{"name":"gabemule","email":"gabemule@gmail.com"}],"readme":"# Dependencies Evolution Analyzer\n\n📊 Advanced CLI tool to analyze dependency evolution, release frequency, and semver patterns in JavaScript/Node.js projects.\n\n## Features\n\n- 🔍 **Auto-discovery**: Finds package.json files in directories or glob patterns\n- 📊 **NPM Analysis**: Fetches release data from NPM registry with smart filtering\n- 🏷️ **Semver Analysis**: Detailed breakdown of major/minor/patch releases\n- 📅 **Time-based Analysis**: Compares releases from different time periods (12m vs 12-24m)\n- 📄 **Multiple Outputs**: Generates both JSON and Markdown reports\n- 🚀 **Multiple Projects**: Analyze multiple patterns/projects in one command\n- ⚡ **Fast**: Built-in NPM CLI integration and efficient processing\n- 🛡️ **Robust**: Handles errors gracefully and continues processing\n- 🔧 **Smart Filtering**: Automatically filters dev/beta/alpha/nightly versions\n\n## Installation\n\n### Local Development\n\n```bash\ngit clone <repository-url>\ncd deps-analyzer\nnpm install\n```\n\n### Using npm link for testing\n\n```bash\nnpm run link          # Link globally for testing\ndeps-analyzer --help  # Test the command\nnpm run unlink        # Unlink when done\n```\n\n## 📚 Documentation\n\nFor detailed information on specific topics:\n\n- **[Libyear Algorithm](docs/libyears.md)** - Understanding drift/pulse metrics and calculations\n- **[Max-Deps Configuration](docs/max-deps.md)** - Strategic version control and constraints  \n- **[NPM Client](docs/npm-client.md)** - Data collection strategies and filtering\n- **[Report Interpretation](docs/reporter.md)** - How to read and act on analysis results\n\n## Usage\n\n### Basic Usage\n\n```bash\n# Analyze templates directory\ndeps-analyzer ./templates\n\n# Analyze single project\ndeps-analyzer ./package.json\n\n# Use glob patterns\ndeps-analyzer \"projects/**/package.json\"\n```\n\n### Multiple Projects\n\n```bash\n# Analyze specific projects\ndeps-analyzer templates/next-app templates/react-spa-vite --output selected-projects\n\n# Mix directories and files\ndeps-analyzer ./frontend ./backend/package.json --output fullstack-analysis\n```\n\n### Advanced Options\n\n```bash\n# Custom analysis period\ndeps-analyzer ./templates --months 18\n\n# Custom output name\ndeps-analyzer ./templates --output my-report\n\n# Skip NPM analysis (discovery only)\ndeps-analyzer ./templates --no-npm\n\n# Use HTTP instead of npm CLI (slower but more compatible)\ndeps-analyzer ./templates --use-http\n\n# Advanced filtering for internal libraries\ndeps-analyzer ./templates --internal-libs \"@akad/*,design-system*\"\n\n# Skip specific version filters\ndeps-analyzer ./templates --ignore-filter alpha,beta,rc\n\n# Combined enterprise usage\ndeps-analyzer ./templates --internal-libs \"@company/*\" --ignore-filter canary,nightly\n\n# Custom max-deps configuration file\ndeps-analyzer ./templates --max-deps-config ./my-constraints.json\n\n# Strategic version control example\necho '{\"react\": \"^18.0.0\", \"typescript\": \"^5.0.0\"}' > max-deps.json\ndeps-analyzer ./project --max-deps-config max-deps.json\n\n# Help and version\ndeps-analyzer --help\ndeps-analyzer --version\n```\n\n### Scope Filtering\n\nAnalyze only internal or external dependencies using `--scope`:\n\n```bash\n# Analyze only internal dependencies\ndeps-analyzer ./templates --scope=internal --internal-libs \"@company/*\"\n\n# Analyze only external dependencies (excludes internal)\ndeps-analyzer ./templates --scope=external --internal-libs \"@company/*\"\n\n# Analyze all dependencies (default behavior)\ndeps-analyzer ./templates --scope=all --internal-libs \"@company/*\"\n```\n\n### Max-Deps Configuration Examples\n\nStrategic version control with custom configuration files:\n\n```bash\n# Production environment constraints\ndeps-analyzer ./templates --max-deps-config ./configs/production.json\n\n# Shared team constraints\ndeps-analyzer ./templates --max-deps-config /shared/team-constraints.json\n\n# Benchmark analysis (zero-drift simulation)\ndeps-analyzer ./templates --max-deps-config ./benchmarks/zero-drift.json --output benchmark\n\n# Enterprise compliance analysis\ndeps-analyzer ./microservices --max-deps-config ./security/approved-versions.json\n```\n\n## Output\n\nThe tool generates two files with comprehensive analysis:\n\n### JSON Report (`<output>.json`)\n```json\n{\n  \"metadata\": {\n    \"generatedAt\": \"2025-08-14T00:26:31.877Z\",\n    \"period\": \"24 months\",\n    \"totalProjects\": 2,\n    \"totalDependencies\": 52,\n    \"uniqueDependencies\": 36,\n    \"globalUniqueReleases\": {\n      \"totalLast12m\": 1130,\n      \"totalLast12to24m\": 983,\n      \"avgPerMonthLast12m\": 94.17,\n      \"avgPerMonthLast12to24m\": 81.92,\n      \"semverBreakdown\": {\n        \"majorLast12m\": 26,\n        \"minorLast12m\": 165,\n        \"patchLast12m\": 597,\n        \"avgMajorPerMonthLast12m\": 2.17,\n        \"avgMinorPerMonthLast12m\": 13.75,\n        \"avgPatchPerMonthLast12m\": 49.75\n      }\n    }\n  },\n  \"projects\": {\n    \"react-spa-vite\": {\n      \"packagePath\": \"/path/to/package.json\",\n      \"dependencyCount\": 32,\n      \"dependencies\": {\n        \"react\": {\n          \"currentVersion\": \"19.1.1\",\n          \"last12Months\": 3,\n          \"months12to24\": 2,\n          \"totalReleases\": 345,\n          \"avgReleasesPerMonthLast12m\": 0.25,\n          \"avgReleasesPerMonthLast12to24m\": 0.17,\n          \"avgDaysBetweenReleases\": 14.6,\n          \"semverBreakdown\": {\n            \"majorLast12m\": 1,\n            \"minorLast12m\": 1,\n            \"patchLast12m\": 1,\n            \"majorLast12to24m\": 0,\n            \"minorLast12to24m\": 1,\n            \"patchLast12to24m\": 1\n          },\n          \"monthlyBreakdown\": {\n            \"2024-12\": [\"19.0.0\"],\n            \"2025-03\": [\"19.1.0\"], \n            \"2025-07\": [\"19.1.1\"]\n          },\n          \"mostActiveMonth\": \"2024-12 (1)\"\n        }\n      },\n      \"metadata\": {\n        \"totalReleasesLast12m\": 672,\n        \"totalReleasesLast12to24m\": 655,\n        \"totalReleases\": 6429,\n        \"avgReleasesPerMonthLast12m\": 56,\n        \"avgReleasesPerMonthLast12to24m\": 54.58,\n        \"semverBreakdown\": {\n          \"totalMajorLast12m\": 22,\n          \"totalMinorLast12m\": 140,\n          \"totalPatchLast12m\": 419,\n          \"avgMajorPerMonthLast12m\": 1.83,\n          \"avgMinorPerMonthLast12m\": 11.67,\n          \"avgPatchPerMonthLast12m\": 34.92\n        }\n      }\n    }\n  }\n}\n```\n\n### Markdown Report (`<output>.md`)\n```markdown\n# Dependencies Evolution Report\n\n## Summary\n- **Generated at:** 2025-08-14 00:26:31 UTC\n- **Analysis period:** 24 months\n- **Projects analyzed:** 2\n- **Total dependencies:** 52\n- **Unique dependencies:** 36\n\n## Global Statistics\n- **Total releases (12m):** 1,130 (avg: 94.17/month)\n- **Total releases (12-24m):** 983 (avg: 81.92/month)\n- **Semver breakdown (12m):** 26 major, 165 minor, 597 patch\n\n## Project: react-spa-vite (32 dependencies)\n\n### Dependencies Release Activity (Last 12m vs 12-24m)\n| Package | Current | 12m | 12-24m | Major | Minor | Patch | Most Active Month |\n|---------|---------|-----|--------|-------|-------|-------|-------------------|\n| react   | 19.1.1  | 3   | 2      | 1     | 1     | 1     | 2024-12 (1)      |\n```\n\n## API\n\n### Programmatic Usage\n\n```javascript\nconst { main } = require('deps-analyzer');\n\n// Basic analysis\nconst result = await main(['./templates']);\n\n// Multiple patterns\nconst result = await main([\n  './templates/next-app',\n  './templates/react-spa-vite'\n]);\n\n// With options\nconst result = await main(['./templates'], {\n  months: 18,\n  output: 'custom-report',\n  analyzeNpm: true,\n  useNpmCli: true\n});\n```\n\n## Options Reference\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--months <number>` | `24` | Analysis period in months |\n| `--output <path>, -o` | `dependency-report` | Output file base name |\n| `--scope <type>` | `all` | Filter dependencies by scope: internal, external, all |\n| `--no-npm` | `false` | Skip NPM registry analysis (discovery only) |\n| `--use-http` | `false` | Use HTTP requests instead of npm CLI (slower) |\n| `--ignore-filter <list>` | `[]` | Skip filtering specific version types (alpha,beta,rc,etc) |\n| `--internal-libs <list>` | `[]` | Libraries to include alpha/beta versions (supports wildcards: @akad/*,design-system*) |\n| `--max-deps-config <path>` | `null` | Custom max-deps.json file path for strategic version control |\n| `--help, -h` | - | Show help information |\n| `--version, -v` | - | Show version |\n\n## Examples\n\n### Template Repository Analysis\n```bash\n# Analyze all templates\ndeps-analyzer ./templates --months 12 --output templates-report\n\n# Analyze specific templates\ndeps-analyzer templates/next-app templates/react-spa-vite --output selected-templates\n```\n\n### Monorepo Analysis\n```bash\n# Analyze all packages\ndeps-analyzer \"packages/*/package.json\" --months 18\n\n# Analyze specific workspaces\ndeps-analyzer packages/frontend packages/backend packages/shared --output monorepo-analysis\n```\n\n### Quick Dependency Discovery\n```bash\n# Skip NPM analysis for faster results\ndeps-analyzer ./project --no-npm\n\n# Discovery only with HTTP fallback\ndeps-analyzer ./project --no-npm --use-http\n```\n\n### Enterprise Usage\n```bash\n# Comprehensive analysis with custom period\ndeps-analyzer ./microservices ./shared-libs --months 36 --output enterprise-deps\n```\n\n## Advanced Filtering\n\n### Filtering Strategy Hierarchy\n\nThe tool applies filtering in a specific order to ensure predictable results:\n\n1. **Scope Filtering** (`--scope`): First, filter dependencies by scope (internal, external, all)\n2. **Internal Library Classification** (`--internal-libs`): Classify remaining dependencies as internal/external  \n3. **Selective Version Filtering**: Apply different filtering rules based on classification\n4. **Filter Overrides** (`--ignore-filter`): Override specific version type filtering\n\n### Internal vs External Dependencies\n\nThe tool implements **selective filtering** that treats internal and external dependencies differently:\n\n- **External Dependencies**: Automatically filters out pre-release versions (alpha, beta, rc, etc.)\n- **Internal Dependencies**: Can include pre-release versions when specified via `--internal-libs`\n\n### Scope Filtering Behavior\n\n- **`--scope=internal`**: Analyze only dependencies matching `--internal-libs` patterns\n- **`--scope=external`**: Analyze only dependencies NOT matching `--internal-libs` patterns  \n- **`--scope=all`**: Analyze all dependencies (default), but still apply selective filtering logic\n\n### Pattern Matching\n\nThe `--internal-libs` flag supports wildcard patterns:\n\n```bash\n# Exact match\ndeps-analyzer ./project --internal-libs \"my-package\"\n\n# Scoped packages with wildcard\ndeps-analyzer ./project --internal-libs \"@company/*\"\n\n# Multiple patterns\ndeps-analyzer ./project --internal-libs \"@company/*,design-system*,@internal/*\"\n```\n\n### Filtering Override\n\nUse `--ignore-filter` to skip specific version type filtering:\n\n```bash\n# Include alpha versions for ALL dependencies\ndeps-analyzer ./project --ignore-filter alpha\n\n# Include multiple pre-release types\ndeps-analyzer ./project --ignore-filter alpha,beta,rc\n\n# Combined usage: include alpha/beta for internal libs only\ndeps-analyzer ./project --internal-libs \"@company/*\" --ignore-filter canary,nightly\n```\n\n### Practical Examples\n\n#### Enterprise Monorepo Analysis\n```bash\n# Analyze with company-specific internal libraries\ndeps-analyzer ./packages/* \\\n  --internal-libs \"@acme/*,design-tokens*\" \\\n  --ignore-filter canary \\\n  --output enterprise-analysis\n```\n\n#### Mixed Public/Private Dependencies\n```bash\n# Allow alpha/beta for internal libs, strict filtering for external\ndeps-analyzer ./apps/frontend ./apps/backend \\\n  --internal-libs \"@company/*,internal-*\" \\\n  --output mixed-dependencies\n```\n\n#### Historical Analysis with Custom Filters\n```bash\n# Skip all pre-release filtering for specific analysis\ndeps-analyzer ./legacy-projects \\\n  --ignore-filter alpha,beta,rc,canary,experimental \\\n  --output legacy-comprehensive\n```\n\n## Understanding the Output\n\n### Portfolio vs Project Metrics\n\nThe tool provides **two different types of drift/pulse calculations** that serve different purposes:\n\n#### 🏢 Global/Portfolio Metrics (Unique Dependencies)\n- **What it measures**: Drift/pulse for each dependency **once per portfolio**\n- **Calculation**: Sums drift only from unique dependencies across all projects\n- **Example**: If `react` appears in 4 projects, its drift is counted **only once**\n- **Use case**: Strategic decisions - \"Which dependencies should we prioritize updating?\"\n\n#### 📋 Project Metrics (Total Across Projects)  \n- **What it measures**: Drift/pulse for **every occurrence** of each dependency\n- **Calculation**: Sums drift from all dependencies in all projects\n- **Example**: If `react` appears in 4 projects, its drift is counted **4 times**\n- **Use case**: Effort estimation - \"How much total work is needed to update everything?\"\n\n#### 💡 Example: 4 Projects with React (2y drift)\n\n**Scenario:**\n- 4 projects each use `react` with 2 years of drift\n- Each project also has `lodash` with 1 year of drift\n\n**Global Drift (Unique Dependencies):**\n- `react`: 2 years (counted once)\n- `lodash`: 1 year (counted once)\n- **Total: 3 years**\n\n**Project Drift (Sum Across Projects):**\n- Project 1: `react` (2y) + `lodash` (1y) = 3y\n- Project 2: `react` (2y) + `lodash` (1y) = 3y  \n- Project 3: `react` (2y) + `lodash` (1y) = 3y\n- Project 4: `react` (2y) + `lodash` (1y) = 3y\n- **Total: 12 years**\n\n#### 🎯 When to Use Each Metric\n\n| Scenario | Use Global Metrics | Use Project Metrics |\n|----------|-------------------|-------------------|\n| Prioritizing which deps to update | ✅ Focus on unique deps | ❌ May mislead priorities |\n| Estimating update effort/time | ❌ Underestimates work | ✅ Shows true scope |\n| Executive reporting | ✅ Clear strategic view | ❌ May seem inflated |\n| Sprint planning | ❌ Doesn't show full work | ✅ Shows actual tasks |\n| Ecosystem health assessment | ✅ True portfolio state | ❌ Duplicated concerns |\n\n### Semver Analysis\nThe tool performs intelligent semver analysis:\n- **Major**: Breaking changes (1.0.0 → 2.0.0)\n- **Minor**: New features (1.0.0 → 1.1.0)\n- **Patch**: Bug fixes (1.0.0 → 1.0.1)\n\n### Smart Filtering\nAutomatically filters out:\n- Development versions (`-dev`, `-nightly`)\n- Alpha/Beta releases (`-alpha`, `-beta`)\n- Release candidates (`-rc`)\n- Experimental builds (`-experimental`, `-canary`)\n- Malformed versions (`0.0.0-*`)\n\n### Backport Detection\nThe tool detects version backports/downgrades:\n- Total releases include all stable versions\n- Semver breakdown only counts progressive releases\n- Difference represents maintenance releases for older versions\n\n## Technical Details\n\n- **Rate Limiting**: Intelligent batching with NPM CLI\n- **Error Handling**: Continues processing even if some packages fail\n- **Ignores**: `node_modules/`, `public/`, `dist/`, `build/` directories\n- **Node Version**: Requires Node.js >= 16.0.0\n- **NPM Version**: Works with npm >= 7.0.0\n\n## Development\n\n### Project Structure\n```\ndeps-analyzer/\n├── package.json\n├── README.md\n├── bin/\n│   └── deps-analyzer.js    # CLI entry point\n├── lib/\n│   ├── index.js            # Core logic & discovery\n│   ├── npm-client.js       # NPM registry client\n│   ├── libyear.js          # Drift/pulse calculations\n│   └── reporter.js         # Report generation\n└── utils/                  # Utility functions\n    ├── chunkArray.js       # Array chunking\n    ├── cleanVersion.js     # Version cleaning\n    ├── filterDependenciesByScope.js  # Dependency filtering\n    ├── findMaxAllowedVersion.js      # Version constraint parsing\n    ├── findWorkspaceRoot.js          # Workspace detection\n    ├── isInternalLib.js              # Internal library matching\n    ├── parsePnpmLock.js              # PNPM lock file parsing\n    ├── parseYarnLock.js              # Yarn lock file parsing\n    └── versionSatisfiesConstraint.js # Semver constraint checking\n```\n\n### Scripts\n```bash\nnpm run start      # Run with default args\nnpm run test       # Test with templates\nnpm run dev        # Run with debugging\nnpm run link       # Link globally\nnpm run unlink     # Unlink globally\n```\n\n### Debugging\n```bash\n# Enable detailed error information\nDEBUG=1 deps-analyzer ./templates\n\n# Use HTTP instead of npm CLI if issues\ndeps-analyzer ./templates --use-http\n```\n\n## Troubleshooting\n\n### Common Issues\n\n**npm CLI not found**\n```bash\n# Use HTTP fallback\ndeps-analyzer ./templates --use-http\n```\n\n**Permission errors**\n```bash\n# Check npm permissions\nnpm config get prefix\nnpm config get cache\n```\n\n**Network timeouts**\n```bash\n# Increase npm timeout\nnpm config set timeout 60000\ndeps-analyzer ./templates\n```\n\n**Memory issues with large projects**\n```bash\n# Analyze projects separately\ndeps-analyzer ./project1 --output report1\ndeps-analyzer ./project2 --output report2\n```\n\n## Performance\n\n### Benchmarks\n- **Small project** (10 deps): ~2-5 seconds\n- **Medium project** (50 deps): ~10-20 seconds  \n- **Large monorepo** (200+ deps): ~1-3 minutes\n\n### Optimization Tips\n- Use npm CLI mode (default) for better performance\n- Analyze fewer projects simultaneously for large codebases\n- Use `--no-npm` for quick dependency discovery\n\n## License\n\nMIT\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Create a Pull Request\n\n### Development Guidelines\n- Maintain backward compatibility\n- Add tests for new features\n- Update documentation\n- Follow existing code style\n\n---\n\nBuilt with ❤️ for better dependency management and DevOps insights\n","readmeFilename":"README.md"}