Safeguard
Developer Tools•

What does 'supports npm' mean? Five levels of ecosystem support

'Supports npm' can mean anything from reading a manifest to resolving full dependency trees with reachability. Five levels help you ask the right question.

Safeguard Security Team
3 min read

"Supports npm" is a starting point for a question, not an answer. It may mean the tool reads a manifest file, or it may mean it resolves the full dependency tree, matches advisories, understands your lockfile and analyses how your code calls a package. Ask which level applies to each ecosystem you use.

Five levels of support

LevelWhat the tool doesA gap to watch for
1. ManifestReads declared dependencies from the manifestMisses transitive packages
2. LockfileReads exact resolved versionsLockfile formats and versions vary
3. Advisory matchMatches versions against advisories for that ecosystemCoverage of advisories differs by ecosystem
4. Fix guidanceSuggests a fixed version that resolves cleanlyBreaking changes and peer constraints
5. Code level analysisChecks whether your code calls the affected functionOften supported for fewer languages

A vendor may be at level 5 for one language and level 1 for another. A single logo for each ecosystem hides this.

Build your own support matrix

List every ecosystem your organisation really uses, including the awkward ones: a private registry, a monorepo with several package managers, build tools that generate dependencies and container images. Then fill in a table with a row for each and a column for each level.

Be specific. "Python" is not a row. "pip with a requirements file", "poetry with a lockfile" and "a conda environment" are three rows, and tools often treat them differently.

How to verify a cell

  1. Take a real repository for that ecosystem.
  2. Run the tool, and compare its dependency list with the package manager's own output, such as the tree command.
  3. Count missing or extra packages.
  4. Pick two advisories you know affect a package in the tree, and see whether both appear.
  5. Check what the tool says when it cannot parse a file. Silent failure is the worst result.

Keep screenshots in your trial folder.

Questions for the vendor

  • Which package managers and lockfile versions are supported, and which are planned only?
  • How are private registries handled, and does the tool send package names outside your network?
  • What happens with a monorepo that has several ecosystems?
  • For which languages is code level analysis available, and which are generally available as opposed to preview?

Ask for the answers in writing and keep them with the trial notes.

Try it yourself

Click through it at your own pace, or open it full screen.

See how a dependency inventory distinguishes direct and transitive packages, which is the line between levels 1 and 2.

Where Safeguard fits

Safeguard offers dependency and SBOM scanning and reachability analysis. For your own languages, check each cell of your matrix with the free scan at gold.safeguard.sh/scan before relying on any list of supported ecosystems.

Quick check

Is a lockfile required for good results?

It makes results much more accurate, since it records the exact versions in use. Without one, a tool has to guess at resolution.

Why does language support differ for code level analysis?

It needs a language specific understanding of how code calls other code, which is more work than reading a package list.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.