apisurf
Version:
Analyze API surface changes between npm package versions to catch breaking changes
65 lines (64 loc) • 2.02 kB
TypeScript
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;
}>;