UNPKG

@nodesecure/scanner

Version:

A package API to run a static analysis of your module's dependencies.

48 lines 2.45 kB
import type { Simplify } from "type-fest"; import type { Dependency, DependencyVersion, Payload as NodesecurePayload } from "../types.ts"; type MergeDeep<T extends unknown[]> = T extends [a: infer A, ...rest: infer R] ? A & MergeDeep<R> : {}; export type ExtractProbeResult<T extends ProbeExtractor<any>[]> = { [K in keyof T]: T[K] extends ProbeExtractor<any> ? ReturnType<T[K]["done"]> : never; }; export type MergedExtractProbeResult<T extends ProbeExtractor<any>[]> = Simplify<MergeDeep<ExtractProbeResult<T>>>; export type ProbeExtractorLevel = "packument" | "manifest"; export type ProbeExtractorManifestParent = { name: string; dependency: Dependency; }; export type PackumentProbeNextCallback = (name: string, dependency: Dependency) => void; export type ManifestProbeNextCallback = (spec: string, dependencyVersion: DependencyVersion, parent: ProbeExtractorManifestParent) => void; export interface ProbeExtractor<Defs> { level: ProbeExtractorLevel; next(...args: any[]): void; done(): Defs; } export interface PackumentProbeExtractor<Defs> extends ProbeExtractor<Defs> { level: "packument"; next: PackumentProbeNextCallback; } export interface ManifestProbeExtractor<Defs> extends ProbeExtractor<Defs> { level: "manifest"; next: ManifestProbeNextCallback; } export declare class Payload<T extends ProbeExtractor<any>[]> extends EventTarget { #private; private dependencies; private probes; private cachedResult; constructor(data: NodesecurePayload | NodesecurePayload["dependencies"], probes: [...T]); extract(): ExtractProbeResult<T>; extractAndMerge(): MergedExtractProbeResult<T>; on<T extends ProbeExtractorLevel>(e: T, listener: ExtractorListener<T>): this; on(e: "error", listener: ErrorListener): this; } export declare const Callbacks: { readonly packument: (callback: PackumentProbeNextCallback) => PackumentProbeExtractor<void>; readonly manifest: (callback: ManifestProbeNextCallback) => ManifestProbeExtractor<void>; }; type ExtractorCallback<T extends ProbeExtractorLevel> = Parameters<(typeof Callbacks)[T]>[0]; export type ExtractorCallbackParams<T extends ProbeExtractorLevel> = Parameters<ExtractorCallback<T>>; export type ExtractorListener<T extends ProbeExtractorLevel> = (...events: CustomEvent<ExtractorCallbackParams<T>>["detail"]) => void; type ErrorListener = (e: Error) => void; export {}; //# sourceMappingURL=payload.d.ts.map