/** * Common types for multi-language dependency auditing */ /** * Supported package file types for dependency auditing */ export type PackageFileType = "package.json" | "requirements.txt" | "pyproject.toml" | "pipfile" | "go.mod" | "Cargo.toml" | "Gemfile" | "vcpkg.json" | "conanfile.txt" | "rockspec" | "csproj" | "uv.lock" | "yarn.lock" | "tsconfig.json" | "auto"; /** * Supported programming language ecosystems */ export type EcosystemType = "javascript" | "typescript" | "python" | "go" | "rust" | "ruby" | "cpp" | "lua" | "dotnet"; /** * Dependency type classification */ export type DependencyType = "dependencies" | "devDependencies" | "peerDependencies" | "optionalDependencies" | "buildDependencies"; /** * Issue severity levels */ export type IssueSeverity = "critical" | "high" | "moderate" | "low" | "info"; /** * Issue type classification */ export type IssueType = "Unpinned Version" | "Pre-1.0 Version" | "Exact Version Pin" | "Deprecated Package" | "Known Vulnerabilities" | "Deprecated & Bundle Size" | "ESM Alternative Available" | "Bundle Size Concern" | "Outdated Pattern" | "Security Risk" | "Version Constraint Issue" | "Maintenance Concern"; /** * Package information common to all ecosystems */ export interface PackageInfo { name: string; version: string; type: DependencyType; ecosystem: EcosystemType; extras?: string[]; source?: string; } /** * Issue detected during dependency analysis */ export interface Issue { package: string; version: string; type: IssueType | string; severity: IssueSeverity; description: string; recommendation?: string; ecosystem: EcosystemType; cveIds?: string[]; references?: string[]; } /** * Result from a parser */ export interface ParseResult { packages: PackageInfo[]; projectName?: string; projectVersion?: string; ecosystem: EcosystemType; fileType: PackageFileType; errors?: string[]; } /** * Result from analyzing dependencies */ export interface AnalysisResult { packages: PackageInfo[]; issues: Issue[]; recommendations: string[]; ecosystem: EcosystemType; fileType: PackageFileType; projectName?: string; projectVersion?: string; } /** * Combined result for multi-file audits */ export interface MultiFileAuditResult { results: AnalysisResult[]; totalPackages: number; totalIssues: number; summary: { critical: number; high: number; moderate: number; low: number; info: number; }; } /** * Parser interface that all language parsers must implement */ export interface DependencyParser { /** * Parse the file content and extract package information */ parse(content: string): ParseResult; /** * Analyze parsed packages for issues */ analyze(parseResult: ParseResult, options: AnalysisOptions): AnalysisResult; /** * Check if this parser can handle the given content */ canParse(content: string): boolean; /** * Get the ecosystem type this parser handles */ getEcosystem(): EcosystemType; /** * Get the file types this parser handles */ getFileTypes(): PackageFileType[]; } /** * Options for dependency analysis */ export interface AnalysisOptions { checkOutdated: boolean; checkDeprecated: boolean; checkVulnerabilities: boolean; suggestAlternatives: boolean; analyzeBundleSize: boolean; } /** * Known deprecated packages per ecosystem */ export interface DeprecatedPackageInfo { reason: string; alternative: string; } /** * Reference link for further reading */ export interface ReferenceLink { title: string; url: string; description?: string; } //# sourceMappingURL=types.d.ts.map