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.
118 lines • 3 kB
TypeScript
export interface SarifReport {
$schema?: string;
version: string;
runs: SarifRun[];
}
export interface SarifRun {
tool: SarifTool;
results: SarifResult[];
artifacts?: SarifArtifact[];
}
export interface SarifTool {
driver: SarifToolComponent;
extensions?: SarifToolComponent[];
}
export interface SarifToolComponent {
name: string;
version?: string;
informationUri?: string;
}
export interface SarifResult {
ruleId: string;
level: 'error' | 'warning' | 'info' | 'note' | 'none';
message: SarifMessage;
locations: SarifLocation[];
rule?: SarifReportingDescriptor;
}
export interface SarifMessage {
text: string;
markdown?: string;
}
export interface SarifLocation {
physicalLocation: SarifPhysicalLocation;
logicalLocations?: SarifLogicalLocation[];
}
export interface SarifPhysicalLocation {
artifactLocation: SarifArtifactLocation;
region: SarifRegion;
contextRegion?: SarifRegion;
}
export interface SarifArtifactLocation {
uri: string;
uriBaseId?: string;
index?: number;
}
export interface SarifRegion {
startLine: number;
startColumn?: number;
endLine?: number;
endColumn?: number;
charOffset?: number;
charLength?: number;
snippet?: SarifArtifactContent;
}
export interface SarifArtifactContent {
text?: string;
binary?: string;
rendered?: SarifMultiformatMessageString;
}
export interface SarifMultiformatMessageString {
text: string;
markdown?: string;
}
export interface SarifLogicalLocation {
fullyQualifiedName?: string;
name?: string;
index?: number;
kind?: string;
}
export interface SarifReportingDescriptor {
id: string;
name?: string;
shortDescription?: SarifMultiformatMessageString;
fullDescription?: SarifMultiformatMessageString;
helpUri?: string;
help?: SarifMultiformatMessageString;
}
export interface SarifArtifact {
location: SarifArtifactLocation;
length?: number;
roles?: string[];
mimeType?: string;
contents?: SarifArtifactContent;
encoding?: string;
sourceLanguage?: string;
}
export interface Violation {
ruleId: string;
level: 'error' | 'warning' | 'info' | 'note' | 'none';
message: string;
line: number;
column: number;
endLine?: number;
endColumn?: number;
fileUri: string;
snippet?: string;
artifactIndex?: number;
}
export interface FileViolations {
[fileUri: string]: Violation[];
}
export interface SarifData {
files: string[];
fileViolations: FileViolations;
totalViolations: number;
statistics: {
errorCount: number;
warningCount: number;
infoCount: number;
noteCount: number;
noneCount: number;
averageViolationsPerFile: number;
mostCommonRules: [string, number][];
filesWithMostViolations: [string, number][];
totalFiles: number;
totalViolations: number;
};
}
//# sourceMappingURL=sarif.d.ts.map