# NPM v0.6.0 - Table of Contents

npm package manager for Elixir — resolve, fetch, and manage npm dependencies with Mix tasks.

## Pages

- [NPM](readme.md)
- [Changelog](changelog.md)

## Modules

- [NPM](NPM.md): npm package manager for Elixir.
- [NPM.Alias](NPM.Alias.md): Handle npm package aliases.
- [NPM.Audit](NPM.Audit.md): Security audit for npm packages.
- [NPM.Bin](NPM.Bin.md): Parses and manages package bin field entries.
- [NPM.BinResolver](NPM.BinResolver.md): Resolve executable binaries from `node_modules/.bin/`.
- [NPM.BundleAnalysis](NPM.BundleAnalysis.md): Analyzes package bundle-friendliness.
- [NPM.BundleDeps](NPM.BundleDeps.md): Handles bundledDependencies in package.json.
- [NPM.CI](NPM.CI.md): Strict frozen install for CI environments.
- [NPM.CVE](NPM.CVE.md): CVE (Common Vulnerabilities and Exposures) cross-referencing.
- [NPM.Cache](NPM.Cache.md): Global package cache.
- [NPM.CacheStats](NPM.CacheStats.md): Provides statistics about the npm package cache.

- [NPM.Changelog](NPM.Changelog.md): Detects and reads changelog files from installed packages.
- [NPM.Compat](NPM.Compat.md): Checks compatibility of packages with a target Node.js version.
- [NPM.Compiler](NPM.Compiler.md): Mix compiler that ensures npm packages are installed.
- [NPM.Completion](NPM.Completion.md): Shell completion support for mix npm commands.
- [NPM.Config](NPM.Config.md): Read npm configuration from `.npmrc` files.
- [NPM.Corepack](NPM.Corepack.md): Parses corepack/packageManager field from package.json.
- [NPM.Dedupe](NPM.Dedupe.md): Analyzes and deduplicates npm dependency trees.
- [NPM.DepCheck](NPM.DepCheck.md): Detects unused and missing dependencies in a project.
- [NPM.DepConflict](NPM.DepConflict.md): Detects version conflicts between dependency groups.
- [NPM.DepFreshness](NPM.DepFreshness.md): Analyzes how up-to-date dependencies are by comparing locked vs latest versions.

- [NPM.DepGraph](NPM.DepGraph.md): Dependency graph operations on the lockfile.
- [NPM.DepPath](NPM.DepPath.md): Resolves dependency paths in the node_modules tree.

- [NPM.DepRange](NPM.DepRange.md): Analyzes dependency version ranges for pinning strategy insights.

- [NPM.DepSort](NPM.DepSort.md): Topological sorting of packages for correct install/build order.

- [NPM.DepStats](NPM.DepStats.md): Computes aggregate statistics across all dependencies.

- [NPM.DepTree](NPM.DepTree.md): Build and query a dependency tree from the lockfile.
- [NPM.Deprecation](NPM.Deprecation.md): Detects and reports deprecated packages in the dependency tree.
- [NPM.DeprecationAnalysis](NPM.DeprecationAnalysis.md): Analyzes deprecation messages to extract replacement suggestions
and categorize deprecation reasons.

- [NPM.DepsOutput](NPM.DepsOutput.md): Formats installed npm packages for display, similar to `mix deps`.

- [NPM.DevDeps](NPM.DevDeps.md): Manages devDependencies from package.json.
- [NPM.Diagnostics](NPM.Diagnostics.md): Runs diagnostic checks on a project for common npm issues.

- [NPM.Diff](NPM.Diff.md): Compares two versions of a package to show what changed.
- [NPM.Dist](NPM.Dist.md): Handles package distribution metadata.
- [NPM.Doctor](NPM.Doctor.md): Health check for the npm installation.
- [NPM.Duplicate](NPM.Duplicate.md): Finds packages installed at multiple versions in the dependency tree.
- [NPM.EngineCheck](NPM.EngineCheck.md): Checks engine compatibility across all installed packages.
- [NPM.Engines](NPM.Engines.md): Parses and analyzes the `engines` field from package.json.

- [NPM.EnvCheck](NPM.EnvCheck.md): Environment checks for npm_ex.
- [NPM.ErrorMessage](NPM.ErrorMessage.md): Structured error formatting for npm operations.
- [NPM.Exec](NPM.Exec.md): npx-style execution — resolve and run binaries from installed packages.
- [NPM.FileSize](NPM.FileSize.md): Analyzes file sizes within installed packages.
- [NPM.Format](NPM.Format.md): Formatting utilities for npm CLI output.
- [NPM.FormatUtil](NPM.FormatUtil.md): Shared formatting utilities.

- [NPM.Fund](NPM.Fund.md): Discovers and aggregates funding information from installed packages.
- [NPM.Funding](NPM.Funding.md): Parses the `funding` field from package.json.
- [NPM.GitInfo](NPM.GitInfo.md): Extracts git metadata for npm packages.
- [NPM.Gitignore](NPM.Gitignore.md): Manages .gitignore entries for npm projects.

- [NPM.GraphOps](NPM.GraphOps.md): Advanced graph operations on dependency graphs.
- [NPM.Health](NPM.Health.md): Comprehensive project health scoring.
- [NPM.HoistingConflict](NPM.HoistingConflict.md): Detects hoisting conflicts in the dependency tree.
- [NPM.Hooks](NPM.Hooks.md): Hooks for integrating npm operations with Mix workflows.
- [NPM.Ignore](NPM.Ignore.md): Parses .npmignore and .gitignore files for package publishing.
- [NPM.Import](NPM.Import.md): Imports lockfiles from other package managers.
- [NPM.ImportMap](NPM.ImportMap.md): Generates and manages import maps for browser-native ES module loading.
- [NPM.Init](NPM.Init.md): Generates package.json files with sensible defaults.
- [NPM.InstallStrategy](NPM.InstallStrategy.md): Determines and configures package installation strategy.
- [NPM.Integrity](NPM.Integrity.md): Verify package integrity using Subresource Integrity (SRI) hashes.
- [NPM.IntegrityCheck](NPM.IntegrityCheck.md): Verifies installed packages match lockfile entries.
- [NPM.Keywords](NPM.Keywords.md): Analyzes package keywords for search and categorization.
- [NPM.License](NPM.License.md): Scans and reports licenses across the dependency tree.
- [NPM.Lifecycle](NPM.Lifecycle.md): Detect and manage npm lifecycle scripts.
- [NPM.Link](NPM.Link.md): Manages local package linking via symlinks.
- [NPM.Linker](NPM.Linker.md): Creates `node_modules` from the global cache.
- [NPM.LockMerge](NPM.LockMerge.md): Merge two lockfiles, preferring entries from the newer lockfile.
- [NPM.Lockfile](NPM.Lockfile.md): Read and write `npm.lock` lockfile.
- [NPM.LockfileCheck](NPM.LockfileCheck.md): Validates lockfile consistency against package.json dependencies.

- [NPM.LockfileStats](NPM.LockfileStats.md): Computes statistics about the lockfile itself.

- [NPM.Manifest](NPM.Manifest.md): Generate a complete package manifest from `package.json`.
- [NPM.ManifestDiff](NPM.ManifestDiff.md): Diffs two package.json manifests to determine what changed.

- [NPM.Migration](NPM.Migration.md): Provides migration guidance between npm and lockfile versions.

- [NPM.Monorepo](NPM.Monorepo.md): Detects monorepo tooling and structure.
- [NPM.NodeModules](NPM.NodeModules.md): Inspect and query the `node_modules` directory.
- [NPM.NodeVersion](NPM.NodeVersion.md): Parses Node.js version pinning files (.nvmrc, .node-version, .tool-versions).

- [NPM.Normalize](NPM.Normalize.md): Normalizes package.json data.
- [NPM.Npmrc](NPM.Npmrc.md): Parses and analyzes .npmrc configuration files.
- [NPM.NpmrcMerge](NPM.NpmrcMerge.md): Multi-layer .npmrc resolution (project → user → global).
- [NPM.OptionalDeps](NPM.OptionalDeps.md): Handles optionalDependencies in package.json.
- [NPM.Os](NPM.Os.md): Checks package os/cpu field compatibility.
- [NPM.Outdated](NPM.Outdated.md): Checks for outdated packages by comparing installed versions
against the latest available versions on the registry.

- [NPM.OutdatedReport](NPM.OutdatedReport.md): Generates formatted reports for outdated npm packages.

- [NPM.Overrides](NPM.Overrides.md): Handles npm overrides for forcing specific package versions.
- [NPM.Pack](NPM.Pack.md): Creates npm-compatible tarballs from local projects.
- [NPM.PackageFiles](NPM.PackageFiles.md): Analyzes which files would be included when publishing a package.
- [NPM.PackageJSON](NPM.PackageJSON.md): Read and write `package.json` files.

- [NPM.PackageLock](NPM.PackageLock.md): Reads and analyzes npm's package-lock.json format.
- [NPM.PackageQuality](NPM.PackageQuality.md): Scores individual package quality based on metadata completeness.

- [NPM.PackageSpec](NPM.PackageSpec.md): Parse npm package specifiers into structured data.
- [NPM.PackageUpdate](NPM.PackageUpdate.md): Computes available package updates by comparing locked vs latest versions.

- [NPM.Packager](NPM.Packager.md): Create tarballs for npm publishing.
- [NPM.Patch](NPM.Patch.md): Manages patched packages (patch-package style).
- [NPM.PeerDep](NPM.PeerDep.md): Analyzes peer dependency declarations and their resolution status.

- [NPM.PeerDeps](NPM.PeerDeps.md): Analyzes and validates peer dependency requirements.
- [NPM.PeerDepsCheck](NPM.PeerDepsCheck.md): Deep peer dependency compatibility scanner.
- [NPM.People](NPM.People.md): Extracts and analyzes author/contributor information from packages.

- [NPM.PhantomDep](NPM.PhantomDep.md): Detects phantom (undeclared) dependencies.
- [NPM.Platform](NPM.Platform.md): Platform compatibility checks for npm packages.
- [NPM.ProgressReporter](NPM.ProgressReporter.md): Reports progress during npm operations (resolution, fetching, linking).

- [NPM.ProjectInit](NPM.ProjectInit.md): Initializes an Elixir project for npm dependency management.
- [NPM.Provenance](NPM.Provenance.md): Supply chain provenance checking for npm packages.
- [NPM.Prune](NPM.Prune.md): Identifies and removes extraneous packages from node_modules.
- [NPM.Publish](NPM.Publish.md): Validates a package before publishing to the registry.
- [NPM.PublishConfig](NPM.PublishConfig.md): Parses the `publishConfig` field from package.json.
- [NPM.Rebuild](NPM.Rebuild.md): Detects packages needing native rebuilds.
- [NPM.Registry](NPM.Registry.md): HTTP client for the npm registry.
- [NPM.RegistryMirror](NPM.RegistryMirror.md): Support for registry mirror URLs and fallback.
- [NPM.RegistryUrl](NPM.RegistryUrl.md): Constructs registry API URLs for package operations.

- [NPM.ReleaseNotes](NPM.ReleaseNotes.md): Extracts release notes from changelog content for specific version ranges.

- [NPM.Report](NPM.Report.md): Generates comprehensive project dependency reports.
- [NPM.Repository](NPM.Repository.md): Repository field parsing and URL generation from package.json.

- [NPM.Resolution.Conditional](NPM.Resolution.Conditional.md): Resolves conditional exports/imports from package.json.
- [NPM.Resolution.Exports](NPM.Resolution.Exports.md): Parse and resolve the `exports` field from `package.json`.
- [NPM.Resolution.PackageResolver](NPM.Resolution.PackageResolver.md): Resolve bare and relative import specifiers to files on disk.
- [NPM.Resolutions](NPM.Resolutions.md): Handles yarn-style resolutions in package.json.
- [NPM.Resolver](NPM.Resolver.md): `HexSolver.Registry` implementation for npm packages.
- [NPM.SBOM](NPM.SBOM.md): Software Bill of Materials (SBOM) generation.
- [NPM.Scope](NPM.Scope.md): Parses and manages npm package scopes.
- [NPM.ScopeRegistry](NPM.ScopeRegistry.md): Resolve the registry URL for scoped packages.
- [NPM.ScriptRunner](NPM.ScriptRunner.md): Analyzes and validates npm scripts from package.json.

- [NPM.Scripts](NPM.Scripts.md): Reads and manages npm scripts from package.json.
- [NPM.Search](NPM.Search.md): Local search functionality for installed packages.
- [NPM.SemverUtil](NPM.SemverUtil.md): Utility functions for working with npm semver ranges.
- [NPM.Shrinkwrap](NPM.Shrinkwrap.md): Implements npm shrinkwrap lockfile freezing.
- [NPM.SideEffects](NPM.SideEffects.md): Analyzes the `sideEffects` field from package.json.
- [NPM.Size](NPM.Size.md): Estimates install size and disk usage per package.
- [NPM.SnapshotDiff](NPM.SnapshotDiff.md): Compares two lockfile snapshots to determine what changed.

- [NPM.Stats](NPM.Stats.md): Collects statistics about the project's npm dependencies.
- [NPM.SupplyChain](NPM.SupplyChain.md): Evaluates supply chain security posture of a project's dependencies.
- [NPM.Tarball](NPM.Tarball.md): Download and extract npm package tarballs.
- [NPM.Token](NPM.Token.md): Manages npm authentication tokens.
- [NPM.Tree](NPM.Tree.md): Formats and renders dependency trees for display.
- [NPM.TreeFormat](NPM.TreeFormat.md): Formats dependency trees for terminal display.

- [NPM.TypeField](NPM.TypeField.md): Analyzes the `type` field from package.json.
- [NPM.TypesCompanion](NPM.TypesCompanion.md): Suggests @types/* companion packages for dependencies that need TypeScript type definitions.

- [NPM.TypesResolution](NPM.TypesResolution.md): Resolves DefinitelyTyped @types/ packages for TypeScript consumers.
- [NPM.Validate](NPM.Validate.md): Validates package.json data against npm conventions.
- [NPM.Validator](NPM.Validator.md): Validate `package.json` fields.

- [NPM.Verify](NPM.Verify.md): Verifies that installed packages match the lockfile.
- [NPM.VersionRange](NPM.VersionRange.md): Advanced version range manipulation.
- [NPM.VersionUtil](NPM.VersionUtil.md): Utilities for npm version string manipulation.
- [NPM.Why](NPM.Why.md): Explains why a package is installed by tracing through the dependency tree.
- [NPM.Workspace](NPM.Workspace.md): Workspace management for npm monorepos.
- [NPM.Workspaces](NPM.Workspaces.md): Discovers and validates npm workspace packages.

## Mix Tasks

- [mix npm.audit](Mix.Tasks.Npm.Audit.md): Check installed packages for known security vulnerabilities.
- [mix npm.cache](Mix.Tasks.Npm.Cache.md): Manage the global npm package cache.
- [mix npm.check](Mix.Tasks.Npm.Check.md): Verify that the npm installation is consistent.
- [mix npm.ci](Mix.Tasks.Npm.Ci.md): Install npm packages in CI mode.
- [mix npm.clean](Mix.Tasks.Npm.Clean.md): Remove the `node_modules` directory.
- [mix npm.completion](Mix.Tasks.Npm.Completion.md): Output shell completion data for npm tasks.
- [mix npm.config](Mix.Tasks.Npm.Config.md): Display the current npm configuration.
- [mix npm.dedupe](Mix.Tasks.Npm.Dedupe.md): Re-resolve dependencies to minimize duplicate packages.
- [mix npm.deprecations](Mix.Tasks.Npm.Deprecations.md): Show deprecated packages in the current lockfile.
- [mix npm.deps](Mix.Tasks.Npm.Deps.md): Lists installed npm packages in a format similar to `mix deps`.
- [mix npm.diff](Mix.Tasks.Npm.Diff.md): Show what changed since the last `npm.lock` was committed.
- [mix npm.doctor](Mix.Tasks.Npm.Doctor.md): Run diagnostics on the npm installation.
- [mix npm.exec](Mix.Tasks.Npm.Exec.md): Execute a binary from `node_modules/.bin/`.
- [mix npm.explain](Mix.Tasks.Npm.Explain.md): Explain why a package is installed.
- [mix npm.fund](Mix.Tasks.Npm.Fund.md): Show funding information for installed packages.
- [mix npm.get](Mix.Tasks.Npm.Get.md): Fetch npm packages from `npm.lock` without re-resolving.
- [mix npm.info](Mix.Tasks.Npm.Info.md): Show information about an npm package from the registry.
- [mix npm.init](Mix.Tasks.Npm.Init.md): Create a new `package.json` in the current directory.
- [mix npm.install](Mix.Tasks.Npm.Install.md): Install npm packages.
- [mix npm.licenses](Mix.Tasks.Npm.Licenses.md): List the license of each installed package.
- [mix npm.link](Mix.Tasks.Npm.Link.md): Link a local package directory into `node_modules/`.
- [mix npm.list](Mix.Tasks.Npm.List.md): List installed npm packages from `npm.lock`.
- [mix npm.ls](Mix.Tasks.Npm.Ls.md): List installed npm packages from `npm.lock`.
- [mix npm.outdated](Mix.Tasks.Npm.Outdated.md): Show npm packages with newer versions available.
- [mix npm.pack](Mix.Tasks.Npm.Pack.md): Create a tarball of the current package.
- [mix npm.prune](Mix.Tasks.Npm.Prune.md): Remove packages from `node_modules/` not listed in `npm.lock`.
- [mix npm.publish](Mix.Tasks.Npm.Publish.md): Publish the current package to the npm registry.
- [mix npm.rebuild](Mix.Tasks.Npm.Rebuild.md): Remove `node_modules/` and reinstall from the lockfile.
- [mix npm.remove](Mix.Tasks.Npm.Remove.md): Remove an npm package from `package.json` and re-install.
- [mix npm.run](Mix.Tasks.Npm.Run.md): Run a script defined in `package.json`.
- [mix npm.search](Mix.Tasks.Npm.Search.md): Search for packages on the npm registry.
- [mix npm.set](Mix.Tasks.Npm.Set.md): Set a configuration value in `.npmrc`.
- [mix npm.shrinkwrap](Mix.Tasks.Npm.Shrinkwrap.md): Create an `npm-shrinkwrap.json` from the current `npm.lock`.
- [mix npm.size](Mix.Tasks.Npm.Size.md): Analyze `node_modules` disk usage.
- [mix npm.stats](Mix.Tasks.Npm.Stats.md): Display statistics about the npm dependency graph.
- [mix npm.token](Mix.Tasks.Npm.Token.md): Display or verify npm authentication token status.
- [mix npm.tree](Mix.Tasks.Npm.Tree.md): Display the full dependency tree from `npm.lock`.
- [mix npm.uninstall](Mix.Tasks.Npm.Uninstall.md): Remove an npm package from `package.json` and re-install.
- [mix npm.update](Mix.Tasks.Npm.Update.md): Update npm packages to the latest versions matching their ranges.
- [mix npm.verify](Mix.Tasks.Npm.Verify.md): Check that `node_modules` matches `npm.lock`.
- [mix npm.version](Mix.Tasks.Npm.Version.md): Display the installed version of npm_ex.
- [mix npm.view](Mix.Tasks.Npm.View.md): View detailed information about a package from the registry.
- [mix npm.why](Mix.Tasks.Npm.Why.md): Show why an npm package is in the dependency tree.

