Scans and reports licenses across the dependency tree.
Reads license fields from package manifests to produce
compliance reports and detect potential issues.
Summary
Functions
Checks entries against a list of allowed licenses. Returns packages that violate the policy.
Extracts the license from a package.json data map.
Groups license entries by license type.
Finds packages with non-permissive or unknown licenses.
Checks if a license is considered permissive.
Scans a node_modules directory for license information.
Returns a compliance summary.
Types
Functions
@spec check_policy([license_entry()], [String.t()]) :: [license_entry()]
Checks entries against a list of allowed licenses. Returns packages that violate the policy.
Extracts the license from a package.json data map.
Handles both string license and legacy licenses array.
@spec group_by_license([license_entry()]) :: %{ required(String.t()) => [license_entry()] }
Groups license entries by license type.
@spec non_permissive([license_entry()]) :: [license_entry()]
Finds packages with non-permissive or unknown licenses.
Checks if a license is considered permissive.
@spec scan(String.t()) :: [license_entry()]
Scans a node_modules directory for license information.
@spec summary([license_entry()]) :: %{ total: non_neg_integer(), permissive: non_neg_integer(), non_permissive: non_neg_integer(), unknown: non_neg_integer(), unique_licenses: [String.t()] }
Returns a compliance summary.