UNPKG

apisurf

Version:

Analyze API surface changes between npm package versions to catch breaking changes

65 lines (64 loc) 2.02 kB
import { ApiSurface } from '../types/ApiSurface.js'; /** * Information about a downloaded npm package. */ export interface NpmPackageInfo { /** Package name */ name: string; /** Package version */ version: string; /** Temporary directory where package was extracted */ tempDir: string; /** Path to the extracted package contents */ packagePath: string; } /** * Configuration for npm package analyzer. */ export interface NpmPackageAnalyzerConfig { /** Registry URL for npm packages */ registry?: string; /** Enable verbose logging */ verbose?: boolean; /** Output format (console, json, md) */ format?: string; } /** * Interface for npm package analyzer functionality. */ export interface NpmPackageAnalyzer { /** Downloads and installs an npm package with its dependencies */ downloadPackage(packageName: string, version: string): Promise<NpmPackageInfo>; /** Extracts API surface from downloaded package */ extractApiSurface(packageInfo: NpmPackageInfo): Promise<ApiSurface>; /** Cleans up temporary files */ cleanup(): void; } /** * Creates an npm package analyzer for downloading and analyzing packages. */ export declare function createNpmPackageAnalyzer(config?: NpmPackageAnalyzerConfig): NpmPackageAnalyzer; /** * Options for analyzing npm package versions. */ export interface AnalyzeNpmPackageVersionsOptions { /** Package name to analyze */ packageName: string; /** Base version to compare from */ fromVersion: string; /** Target version to compare to */ toVersion: string; /** Registry URL for npm packages */ registry?: string; /** Enable verbose logging */ verbose?: boolean; /** Output format (console, json, md) */ format?: string; } /** * Analyzes API surface changes between two versions of an npm package. */ export declare function analyzeNpmPackageVersions(options: AnalyzeNpmPackageVersionsOptions): Promise<{ base: ApiSurface; head: ApiSurface; }>;