const HTML_ESCAPE_MAP: Record = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; const ALLOWED_TAG_PATTERN = /<(\/?)(strong|b)>|<br\s*\/?>/gi; const escapeHtml = (text: string): string => text.replace(/[&<>"']/g, (character) => HTML_ESCAPE_MAP[character]); export const sanitizeHtml = (html: string): string => { if (!html) return ''; return escapeHtml(html).replace(ALLOWED_TAG_PATTERN, (match: string, closingSlash?: string, tagName?: string) => { if (!tagName) return '
'; return `<${closingSlash}${tagName.toLowerCase()}>`; }); };