"""InvisibleTextNormalizer --- strips zero-width, PUA, and tag block characters."""

from __future__ import annotations

from .base import BaseNormalizer


class InvisibleTextNormalizer(BaseNormalizer):
    """Strips invisible Unicode characters before scanning.

    Removes format characters (Unicode category Cf: zero-width space, ZWNJ,
    ZWJ, BOM, soft hyphen, etc.) and Private Use Area characters (U+E000-U+F8FF).
    """

    def to_normalizer_spec(self) -> dict:
        return {"type": "invisible_text", "config": {}}
