/** * Dateinamen-Helfer des Zertifikat-Managers. Eigene Datei, damit cert-model.ts und cert-output.ts * einander nicht gegenseitig einbinden muessen. */ /** Dateiname ohne Pfad und ohne gefaehrliche Zeichen, z. B. „*.example.de“ -> „wildcard.example.de“. */ export function safeBaseName(raw: string, fallback: string): string { const cleaned = raw .replace(/^\*\./, 'wildcard.') .replace(/[^A-Za-z0-9._-]+/g, '_') .replace(/^[._]+/, '') .slice(0, 80); return cleaned || fallback; }