Skip to content
This repository has been archived by the owner on Jul 31, 2024. It is now read-only.

Parse spdx license expressions into structured object

License

Notifications You must be signed in to change notification settings

NodeSecure/licenses-conformance

Repository files navigation

Caution

This project has been migrated to scanner monorepo

SPDX Licenses conformance

version Maintenance OpenSSF Scorecard mit build

NodeSecure SPDX licenses conformance. Project forked/inspired from cutenode/conformance.

Requirements

Getting Started

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

This repository is inspired by cutenode/conformance

$ npm i @nodesecure/licenses-conformance
# or
$ yarn add @nodesecure/licenses-conformance

Usage example

import { licenseIdConformance } from "@nodesecure/licenses-conformance";

const conformance = licenseIdConformance("MIT").unwrap();
console.log(conformance);

/*  
  {
    uniqueLicenseIds: ["MIT"],
    spdxLicenseLinks: ["https://spdx.org/licenses/MIT.html#licenseText"],
    spdx: {
      osi: true,
      fsf: true,
      fsfAndOsi: true,
      includesDeprecated: false
    }
  }
*/

API

export interface SpdxLicenseConformance {
  licenses: Record<string, string>
  spdx: {
    osi: boolean;
    fsf: boolean;
    fsfAndOsi: boolean;
    includesDeprecated: boolean;
  };
}

function licenseIdConformance(
  licenseID: string
): Result<SpdxLicenseConformance, Error>;

function searchSpdxLicenseId(contentStr: string): string | null;

Updating SPDX licenses

To update the src/data/spdx.ts file just run the following npm script:

$ npm run spdx:refresh

It will fetch SPDX licenses here.

Contributors ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

Vincent Dhennin
Vincent Dhennin

💻 🐛 📖
Gentilhomme
Gentilhomme

💻 👀 🛡️
Kouadio Fabrice Nguessan
Kouadio Fabrice Nguessan

🚧

License

MIT