Command line interface for the Node Security Platform to scan Node.js projects for known security vulnerabilities
npx @tessl/cli install tessl/npm-nsp@2.8.0The Node Security Platform CLI is a command-line tool and Node.js library for scanning Node.js projects for known security vulnerabilities. It identifies vulnerable dependencies by checking package.json, npm-shrinkwrap.json, and package-lock.json files against the Node Security database, providing multiple output formats and supporting both online and offline modes.
npm install -g nspconst nsp = require('nsp');
const { check, formatters, getFormatter } = require('nsp');# Check current project for vulnerabilities
nsp check
# Check with specific output format
nsp check --output json
# Check in offline mode
nsp check --offline --advisoriesPath ./advisories.json
# Show help
nsp --helpconst nsp = require('nsp');
// Check a project programmatically
nsp.check({
package: './package.json',
shrinkwrap: './npm-shrinkwrap.json'
}, function(err, results) {
if (err) {
console.error('Error:', err);
return;
}
if (results.length > 0) {
console.log('Found', results.length, 'vulnerabilities');
results.forEach(vuln => {
console.log(`${vuln.module}@${vuln.version}: ${vuln.title}`);
});
} else {
console.log('No vulnerabilities found');
}
});NSP is built around several key components:
Complete command-line interface for vulnerability scanning with multiple commands and output options.
// CLI commands available via bin/nsp
// Root command: nsp [--version] [--help]
// Check command: nsp check [options]Programmatic interface for integrating vulnerability scanning into Node.js applications.
function check(options, callback);
function getFormatter(name);
interface CheckOptions {
package?: string | object;
shrinkwrap?: string | object;
packagelock?: string | object;
exceptions?: string[];
offline?: boolean;
advisoriesPath?: string;
proxy?: string;
}Multiple built-in formatters for displaying vulnerability results in different formats.
const formatters = {
default: function(err, data, pkgPath),
summary: function(err, data, pkgPath),
json: function(err, data, pkgPath),
codeclimate: function(err, data, pkgPath),
none: function(err, data, pkgPath),
quiet: function(err, data, pkgPath)
};Configuration system supporting .nsprc files and environment variables for proxy settings and exceptions.
// Configuration options in .nsprc
interface NSPConfig {
exceptions?: string[];
proxy?: string;
advisoriesPath?: string;
}interface VulnerabilityResult {
module: string;
version: string;
vulnerable_versions: string;
patched_versions: string;
title: string;
path: string[];
advisory: string;
cvss_score?: number;
}
interface CheckCallback {
(err: Error | null, results: VulnerabilityResult[]): void;
}
interface FormatterFunction {
(err: Error | null, data: VulnerabilityResult[], pkgPath: string): string;
}