@nodesecure/scanner
Version:
A package API to run a static analysis of your module's dependencies.
66 lines • 2.52 kB
TypeScript
import type { Warning } from "@nodesecure/js-x-ray";
import * as Vulnera from "@nodesecure/vulnera";
import type { Payload, Dependency, DependencyVersion, Publisher, Maintainer, Repository, DependencyLinks, GlobalWarning } from "./types.js";
export interface PayloadComparison {
title: string;
warnings: ArrayDiff<GlobalWarning>;
scannerVersion: ValueComparison<string>;
vulnerabilityStrategy: ValueComparison<string>;
dependencies: DependenciesComparison;
}
export interface DependenciesComparison {
compared: Map<string, DependencyComparison>;
added: Map<string, Dependency>;
removed: Map<string, Dependency>;
}
export interface DependencyComparison {
publishers: ArrayDiff<Publisher>;
maintainers: ArrayDiff<Maintainer>;
versions: VersionsComparisonResult;
vulnerabilities: ArrayDiff<Vulnera.StandardVulnerability>;
}
export interface VersionsComparisonResult {
compared: Map<string, DependencyVersionComparison>;
added: Map<string, DependencyVersion>;
removed: Map<string, DependencyVersion>;
}
export interface DependencyVersionComparison {
id: ValueComparison<number>;
size: ValueComparison<number>;
usedBy: DictionaryComparison<string>;
isDevDependency: ValueComparison<boolean>;
existOnRemoteRegistry: ValueComparison<boolean>;
description: ValueComparison<string>;
author: ValueComparison<Maintainer>;
engines: DictionaryComparison<string>;
repository: ValueComparison<Repository>;
scripts: DictionaryComparison<string>;
warnings: ArrayDiff<Warning>;
composition: CompositionComparison;
uniqueLicenseIds: ArrayDiff<string>;
flags: ArrayDiff<string>;
links: ValueComparison<DependencyLinks>;
}
export interface DictionaryComparison<T> {
compared: Map<string, ValueComparison<T>>;
added: Map<string, T>;
removed: Map<string, T>;
}
export interface CompositionComparison {
minified: ArrayDiff<string>;
required_thirdparty: ArrayDiff<string>;
required_nodejs: ArrayDiff<string>;
unused: ArrayDiff<string>;
missing: ArrayDiff<string>;
}
export type ValueComparison<T> = {
prev: T;
now: T;
} | undefined;
export interface ArrayDiff<T> {
added: T[];
removed: T[];
}
export declare function comparePayloads(payload: Payload, comparedPayload: Payload): PayloadComparison;
export declare function arrayOfObjectsDiffByKey<T extends Record<string, any>>(key: string, original?: T[], toCompare?: T[]): ArrayDiff<T>;
//# sourceMappingURL=comparePayloads.d.ts.map