Skip to content

node-dependencies/require-provenance-deps

Require provenance information for dependencies

📖 Rule Details

This rule reports dependency entries whose allowed version range includes packages that don't publish provenance attestations on the npm registry. It checks dependencies and peerDependencies by default, and can optionally check devDependencies.

jsonc
/* eslint "node-dependencies/require-provenance-deps": "error" */
{
  "dependencies": {
    "eslint": "^9.39.0" /* ✓ GOOD: All resolved versions provide provenance information. */
  }
}
jsonc
/* eslint "node-dependencies/require-provenance-deps": "error" */
{
  "dependencies": {
    
"eslint": "^9.0.0"
, /* ✓ BAD: Reports because versions <=9.38.0 lack provenance attestations. */
"babel-eslint": "^10"
/* ✗ BAD: Reports because versions 10.0.0 - 10.1.0 lack provenance attestations. */
} }

The rule fetches npm metadata to determine which published versions expose provenance data. If no metadata is available for the package/range, the dependency is ignored.

🔧 Options

json
{
  "node-dependencies/require-provenance-deps": ["error", {
    "devDependencies": false,
    "allows": []
  }]
}
  • devDependencies … When true, the rule also inspects devDependencies.
  • allows … An array of package names to ignore, even if they don't publish provenance data.

💡 Examples

jsonc
/* eslint "node-dependencies/require-provenance-deps": ["error", {"devDependencies": true}] */
{
  "devDependencies": {
    
"eslint": "^9.0.0"
/* ✗ BAD: Reported once devDependencies are included. */
} }
jsonc
/* eslint "node-dependencies/require-provenance-deps": ["error", {"allows": ["eslint"]}] */
{
  "dependencies": {
    "eslint": "^9.0.0" /* ✓ GOOD: Explicitly allowed via the allows option. */
  }
}

📚 Further reading

🚀 Version

This rule was introduced in eslint-plugin-node-dependencies v1.2.0

🔍 Implementation