GitHub - NodeSecure/scanner: ⚡️ A package API to run a static analysis of your module's dependencies. This is the CLI engine! (original) (raw)

# Nodesecure Scanner

version Maintenance OpenSSF Scorecard mit build

⚡️ Run a static analysis of your module's dependencies.

Requirements

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @nodesecure/scanner

or

$ yarn add @nodesecure/scanner

Usage example

import * as scanner from "@nodesecure/scanner"; import fs from "node:fs/promises";

// CONSTANTS const kPackagesToAnalyze = ["mocha", "cacache", "is-wsl"];

const payloads = await Promise.all( kPackagesToAnalyze.map((name) => scanner.from(name)) );

const promises = []; for (let i = 0; i < kPackagesToAnalyze.length; i++) { const data = JSON.stringify(payloads[i], null, 2);

promises.push(fs.writeFile(${kPackagesToAnalyze[i]}.json, data)); } await Promise.allSettled(promises);

API

See types/api.d.ts for a complete TypeScript definition.

function cwd( location: string, options?: Scanner.Options ): Promise<Scanner.Payload>; function from( packageName: string, options?: Omit<Scanner.Options, "includeDevDeps"> ): Promise<Scanner.Payload>; function verify( packageName?: string | null ): Promise<tarball.ScannedPackageResult>;

Options is described with the following TypeScript interface:

interface Options { /**

readonly registry?: string | URL;

/**

/**
 * Specifies the location of the manifest file for Arborist.
 * This is typically the path to the `package.json` file.
 */
location: string;

};

highlight?: { contacts: Contact[]; };

/**

/**

/**

Additional APIs are available at:

Workspaces

Click on one of the links to access the documentation of the workspace:

name package and link
tarball @nodesecure/tarball
tree-walker @nodesecure/tree-walker
mama @nodesecure/mama
contact @nodesecure/contact
conformance @nodesecure/conformance
npm-types @nodesecure/npm-types
i18n @nodesecure/i18n
rc @nodesecure/rc

Contributors ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

Gentilhomme Gentilhomme💻 📖 👀 🛡️ 🐛 Tony Gorez Tony Gorez💻 📖 👀 🐛 Haze Haze💻 Maksim Balabash Maksim Balabash💻 Antoine Coulon Antoine Coulon💻 🛡️ Nicolas Hallaert Nicolas Hallaert💻 Yefis Yefis💻
Franck Hallaert Franck Hallaert💻 Ange TEKEU Ange TEKEU💻 Vincent Dhennin Vincent Dhennin💻 Kouadio Fabrice Nguessan Kouadio Fabrice Nguessan🚧 PierreDemailly PierreDemailly💻 👀 🐛 ⚠️ Kishore Kishore💻

License

MIT