import type { CanonicalSeverity } from '../../domain/canonical-model'; export const PINGCASTLE_SEVERITY_FROM_POINTS_RULE_ID = 'pingcastle-severity-from-points'; export const PINGCASTLE_SEVERITY_FROM_POINTS_RULE_VERSION = '1.0.0'; // PingCastle liefert je Regel keine eigene Severity, sondern Points (0-50+ in // bestehenden Berichten). Die Schwellen entsprechen PingCastles eigener // Score-Legende fuer den 0-100-Kategorie-/Domain-Risk-Level, angewandt auf die // Punktzahl der einzelnen Regel statt auf die Kategorie-Summe: 0 = informativ // (nur ausgeloeste Regeln erzeugen ueberhaupt ein Finding, "kein Risiko" ohne // Fund kommt hier nie an), 1-10 = low, 11-30 = medium, > 30 = high. "critical" // bleibt bewusst unerreichbar, bis eine eigene, gesondert versionierte // Zusatzschwelle definiert wird. export function pingCastleSeverityFromPoints(points: number): CanonicalSeverity { if (!Number.isFinite(points) || points < 0) return 'unknown'; if (points === 0) return 'info'; if (points <= 10) return 'low'; if (points <= 30) return 'medium'; return 'high'; }