/** * Agentic QE v3 - Real Coverage Parser * * REAL IMPLEMENTATION that parses actual coverage files: * - LCOV format (from Istanbul, nyc, c8) * - Cobertura XML format * - JSON format (Istanbul/vitest) * * This is NOT a simulation - it reads and parses real coverage data. * * @module coverage-analysis/coverage-parser */ /** * Coverage data for a single file */ export interface FileCoverageData { /** Absolute path to the file */ path: string; /** Relative path from project root */ relativePath: string; /** Line coverage data */ lines: LineCoverageData; /** Branch coverage data */ branches: BranchCoverageData; /** Function coverage data */ functions: FunctionCoverageData; /** Statement coverage data */ statements: StatementCoverageData; /** Overall coverage percentage */ coveragePercentage: number; } /** * Line coverage metrics */ export interface LineCoverageData { /** Total lines in the file */ total: number; /** Number of covered lines */ covered: number; /** Coverage percentage (0-100) */ percentage: number; /** Map of line number to hit count */ details: Map; /** Uncovered line numbers */ uncoveredLines: number[]; } /** * Branch coverage metrics */ export interface BranchCoverageData { /** Total branches */ total: number; /** Covered branches */ covered: number; /** Coverage percentage (0-100) */ percentage: number; /** Uncovered branch details */ uncoveredBranches: BranchDetail[]; } /** * Function coverage metrics */ export interface FunctionCoverageData { /** Total functions */ total: number; /** Covered functions */ covered: number; /** Coverage percentage (0-100) */ percentage: number; /** Function details */ details: FunctionDetail[]; /** Uncovered function names */ uncoveredFunctions: string[]; } /** * Statement coverage metrics */ export interface StatementCoverageData { /** Total statements */ total: number; /** Covered statements */ covered: number; /** Coverage percentage (0-100) */ percentage: number; } /** * Branch detail information */ export interface BranchDetail { /** Line number of the branch */ line: number; /** Block number */ block: number; /** Branch number within the block */ branch: number; /** Whether this branch was taken */ taken: boolean; /** Number of times taken */ hits: number; } /** * Function detail information */ export interface FunctionDetail { /** Function name */ name: string; /** Line number where function starts */ line: number; /** Number of times function was called */ hits: number; } /** * Complete coverage report */ export interface CoverageReport { /** Timestamp of when the report was generated */ timestamp: Date; /** Source format (lcov, cobertura, json) */ format: 'lcov' | 'cobertura' | 'json'; /** Coverage data by file */ files: Map; /** Summary statistics */ summary: CoverageSummary; } /** * Summary statistics for entire coverage report */ export interface CoverageSummary { /** Total files analyzed */ totalFiles: number; /** Lines */ lines: { total: number; covered: number; percentage: number; }; /** Branches */ branches: { total: number; covered: number; percentage: number; }; /** Functions */ functions: { total: number; covered: number; percentage: number; }; /** Statements */ statements: { total: number; covered: number; percentage: number; }; } /** * Parse LCOV format coverage data * * LCOV format is the most common output from Istanbul, nyc, c8, etc. */ export declare function parseLCOV(lcovPath: string, projectRoot?: string): Promise; /** * Parse LCOV content from string */ export declare function parseLCOVContent(content: string, projectRoot: string): CoverageReport; /** * Parse JSON coverage data (Istanbul/Vitest format) */ export declare function parseJSONCoverage(jsonPath: string, projectRoot?: string): Promise; /** * Auto-detect coverage format and parse accordingly */ export declare function parseCoverage(coveragePath: string, projectRoot?: string): Promise; /** * Find and parse coverage files in a directory */ export declare function findAndParseCoverage(searchDir: string, projectRoot?: string): Promise; /** * Identify coverage gaps from a report */ export interface CoverageGap { /** File path */ file: string; /** Gap type */ type: 'line' | 'branch' | 'function'; /** Location details */ location: { line?: number; lines?: number[]; function?: string; block?: number; branch?: number; }; /** Severity (based on risk analysis) */ severity: 'low' | 'medium' | 'high' | 'critical'; /** Suggested action */ suggestion: string; } /** * Extract gaps from coverage report */ export declare function extractGaps(report: CoverageReport): CoverageGap[]; //# sourceMappingURL=coverage-parser.d.ts.map