Esto базовая функциональная библиотека (@dxtmisha/functional-basic). Здесь собраны алгоритмы, утилиты и классы, независимые от фреймворка.

ВНИМАНИЕ ДЛЯ СРЕДЫ VUE:
Если вы разрабатываете под Vue, СНАЧАЛА всегда ищите нужный функционал (composables, реактивные классы) в библиотеке `@dxtmisha/functional`.
И ТОЛЬКО если там нет нужного реактивного/специфичного для Vue аналога, используйте функционал напрямую из этой библиотеки (@dxtmisha/functional-basic).

=============================================================================
СТРУКТУРА КЛАССОВ И СТАНДАРТЫ КОДА (ПРАВИЛА ДЛЯ AI)
=============================================================================

Для обеспечения согласованности и высокого промышленного качества кодовой базы dxt-ui, все классы TypeScript внутри `@dxtmisha/functional-basic` должны строго следовать следующим правилам относительно структуры, порядка членов и стилей.

1. ПОРЯДОК ЧЛЕНОВ ВНУТРИ КЛАССА
Члены каждого класса ДОЛЖНЫ быть упорядочены в следующей последовательности:

   А. Свойства класса / Переменные-члены:
      - Располагаются в самом верху тела класса.
      - Сортируются по видимости: сначала Public, затем Protected и в конце Private.
      - Внутри каждого уровня видимости группируются по смыслу или по алфавиту.
      - Инициализируйте значения по умолчанию прямо при объявлении, если это возможно.

   Б. Конструктор:
      - Располагается сразу после объявлений всех свойств.
      - Разрешено объявление свойств через параметры конструктора (например, `protected url: string`) для упрощения кода.

   В. Публичные методы (Public Methods):
      - Располагаются после конструктора.
      - Группируются логически:
        1. Геттеры, методы проверки состояния и статуса (например, `is*`, `get*`).
        2. Сеттеры и методы конфигурации (например, `set*`).
        3. Основные методы выполнения и экшены (например, `request()`, `fetch()`, `show()`).

   Г. Защищенные методы (Protected Methods):
      - Располагаются после всех публичных методов.
      - Содержат внутреннюю вспомогательную логику, доступную для наследников класса.

   Д. Приватные методы (Private Methods):
      - Располагаются в самом конце класса.
      - Строгая инкапсуляция внутренней логики.

2. СТИЛЬ И СОГЛАШЕНИЯ ПО НАПИСАНИЮ КОДА
   - Именование:
     * Классы: PascalCase (например, `LoadingInstance`).
     * Методы и свойства: camelCase (например, `registrationEvent`, `registrationList`).
     * Константы внутри файлов: UPPER_SNAKE_CASE (например, `LOADING_EVENT_NAME`).
   - Безопасность TypeScript:
     * Никогда не используйте тип `any`. Используйте дженерики или `unknown`, если тип динамический/неопределенный.
     * Явно указывайте возвращаемые типы для ВСЕХ публичных, защищенных и приватных методов (включая `void`).
     * Используйте интерфейсы/типы для определения структурных контрактов сложных входящих и исходящих данных.
   - SSR Изоляция (Server-Side Rendering):
     * Библиотека должна быть полностью изоморфной и безопасной для SSR.
     * Избегайте прямого хранения специфичного для запроса состояния в глобальных/статических свойствах классов.
     * Используйте `ServerStorage.get('key', () => new Instance())` для синглтонов, изолированных в рамках запроса.
     * Используйте проверку `isDomRuntime()` перед обращением к браузерным API, таким как `window`, `document` или `location`.
