"""Вспомогательные типы и функции для работы с IOC."""

from __future__ import annotations

from .domain import DOMAINIndicator
from .hash import HashIndicator
from .ip import IPAddressIndicator
from .url import URLIndicator
from .text_parser import TextIOCParser

IOCType = DOMAINIndicator | IPAddressIndicator | URLIndicator | HashIndicator


_parser = TextIOCParser()


def identify_ioc(value: str) -> IOCType:
    """Определить тип IOC по его строковому представлению."""

    results = _parser.parse(value)
    if results:
        return results[0].indicator
    return DOMAINIndicator(value=value, kinds=frozenset())
