Об этом проекте

QimenJS — модульная TypeScript-инфраструктурная библиотека, название которой происходит от «Ци Мэнь Дунь Цзя» — древней системы построения войск. Она строит гибкую фронтенд-архитектуру через комбинацию способностей (Ability) и пайплайны данных (Pipeline), предоставляя систему событий, пайплайны данных, управление сущностями, интернационализацию, HTTP-клиент и другие 38 независимых подпакетов, охватывающих от базового до UI-уровня фронтенд-приложений. Текущая версия — 0.2.0, находится на начальной стадии разработки. Основные API и слой UI-компонентов уже доступны, фреймворк-процесс работает, но API может измениться в последующих версиях. Список пакетов организован по уровням: - **Базовый уровень (Layer 0)**: единая система ошибок, система логирования, общие утилиты, асинхронные утилиты, определение среды выполнения, хеширование и кодеки, интернационализация, контекст запроса/события, общие базовые типы между пакетами. - **Ядро (Layer 1)**: реестр, шина событий, управление кэшем, пайплайн данных, комбинация способностей, планирование задач. - **Уровень данных (Layer 2)**: фреймворк обработчиков данных, движок валидации, адаптер DOM-событий (распознавание 8 жестов), разбор MIME-типов, реестр именованных регулярных выражений, определение схем, система разрешений. - **Сервисный уровень (Layer 3)**: HTTP-клиент (4-этапный пайплайн + перехватчики + потоковая передача SSE), OAuth2-аутентификация (режимы пароля/кода авторизации/учётных данных клиента + автоматическое обновление при 401), обработчик данных фреймворка ABP, обработчик данных Spring Data, набор системных способностей. - **Прикладной уровень (Layer 4)**: фреймворк управления сущностями (5 видов Manager + архитектура комбинации Ability), система маршрутизации (чисто событийная модель + компонентная способность RouteAbility). - **UI-уровень**: базовая инфраструктура компонентов, определения способностей UI-компонентов, реализации UI-компонентов (Icon/Button/Toggle/Tabs/Card/Menu/Nav/Panel и др.), продвинутые UI-компоненты (Step/Timeline/Rating/PropertyGrid/OneTimePassword и др.), система определения макетов на основе JSON, ресурсы тем (светлая/тёмная + 10 пресетов в китайском стиле + пользовательские), библиотека иконок в китайском стиле (102 SVG + шрифтовые иконки), императивный API (toast/msgbox). Особенности архитектуры включают многоуровневую структуру (однонаправленные зависимости, без перекрёстных ссылок между уровнями), комбинацию способностей (менеджеры сущностей динамически комбинируют способности через AbilityDefinition), пайплайнную обработку (запросы/ответы данных проходят через подключаемые пайплайны обработчиков, ABP/Spring работают из коробки), адаптацию к среде (пакеты ядра не зависят от среды, работают в браузере и Node.js), типобезопасность (полные определения типов TypeScript). Каталог примеров `examples/full-stack/` содержит полную full-stack демонстрацию, охватывающую OAuth2-аутентификацию, управление пользователями через ABP API, управление заказами через Spring Data, страницы демонстрации функций 36 подпакетов QimenJS, интернационализацию (предкомпиляция i18n + динамическое переключение языка). Документация включает описание архитектуры, описание пакетов, лучшие практики и справочник API. Команды разработки включают установку зависимостей, сборку, запуск тестов, проверку кода и генерацию API-документации. Номера версий следуют спецификации SemVer, 0.x.x означает начальную стадию разработки. Этот проект разработан с помощью ИИ, большая часть кода сгенерирована ИИ. Благодарим за вклад инструменты Huawei CodeArts, Trae CN, ChatGPT, DeepSeek, Gemini, Tongyi Qianwen, FitEncode и другие. Лицензия — MIT.