sarif-explorer
Version:
A modern SARIF report viewer that converts SARIF files into interactive, shareable HTML reports with file explorer, collapsible issue lists, and code snippets.
90 lines • 2.43 kB
TypeScript
import { SarifData, Violation } from '../types/sarif.js';
/**
* Transform SARIF data into different views and formats
*/
export declare class SarifDataTransformer {
private data;
constructor(data: SarifData);
/**
* Get violations grouped by rule ID
*/
getViolationsByRule(): Map<string, Violation[]>;
/**
* Get violations grouped by severity level
*/
getViolationsByLevel(): Map<string, Violation[]>;
/**
* Get files sorted by violation count (descending)
*/
getFilesByViolationCount(): Array<{
file: string;
count: number;
violations: Violation[];
}>;
/**
* Get rules sorted by violation count (descending)
*/
getRulesByViolationCount(): Array<{
ruleId: string;
count: number;
violations: Violation[];
}>;
/**
* Get summary statistics with additional insights
*/
getDetailedStatistics(): {
totalRules: number;
filesWithMostViolations: {
file: string;
count: number;
violations: Violation[];
}[];
rulesWithMostViolations: {
ruleId: string;
count: number;
violations: Violation[];
}[];
levelBreakdown: {
[k: string]: Violation[];
};
ruleBreakdown: {
[k: string]: Violation[];
};
errorCount: number;
warningCount: number;
infoCount: number;
noteCount: number;
noneCount: number;
averageViolationsPerFile: number;
mostCommonRules: [string, number][];
totalFiles: number;
totalViolations: number;
};
/**
* Filter data by various criteria
*/
filterData(filters: {
levels?: string[];
rules?: string[];
files?: string[];
minLine?: number;
maxLine?: number;
}): SarifData;
/**
* Get violations in a specific line range
*/
getViolationsInRange(startLine: number, endLine: number): Violation[];
/**
* Get violations for a specific file
*/
getFileViolations(fileUri: string): Violation[];
/**
* Get violations for a specific rule
*/
getRuleViolations(ruleId: string): Violation[];
/**
* Calculate statistics for given violations
*/
private calculateStatistics;
}
//# sourceMappingURL=data-transformer.d.ts.map