35 lines
962 B
TypeScript
35 lines
962 B
TypeScript
import type { DatasetSheet } from './dataset';
|
|
import type { FindingRecord } from './finding';
|
|
import type { ToolProfileDefinition } from './tool-profile-definition';
|
|
|
|
export interface ProfileDetectionContext {
|
|
fileName: string;
|
|
rawText: string;
|
|
sheets: DatasetSheet[];
|
|
}
|
|
|
|
export interface ProfileDefaults {
|
|
titleColumn: string;
|
|
sortColumn: string;
|
|
sortDirection: 'asc' | 'desc';
|
|
statusFilter: string;
|
|
}
|
|
|
|
export interface PresentationHints {
|
|
severityFieldPattern: RegExp;
|
|
titleFieldPattern: RegExp;
|
|
statusFilters: Array<{ value: string; label: string }>;
|
|
}
|
|
|
|
export interface ImportProfile {
|
|
id: string;
|
|
name: string;
|
|
version: string;
|
|
definition: ToolProfileDefinition;
|
|
detect(context: ProfileDetectionContext): number;
|
|
prioritizeSheets(sheets: DatasetSheet[]): DatasetSheet[];
|
|
defaults(sheet?: DatasetSheet): ProfileDefaults;
|
|
matchesStatus(record: FindingRecord, status: string): boolean;
|
|
presentation: PresentationHints;
|
|
}
|