Sobre el proyecto

QimenJS es una biblioteca de infraestructura TypeScript modular, cuyo nombre proviene de "Qi Men Dun Jia", el antiguo sistema de disposición de tropas. Construye una arquitectura frontend flexible mediante la combinación de capacidades (Ability) y pipelines de datos (Pipeline), ofreciendo 38 subpaquetes independientes que incluyen sistema de eventos, pipelines de datos, gestión de entidades, internacionalización, cliente HTTP, etc., cubriendo desde la capa base hasta la capa UI de las aplicaciones frontend. La versión actual es 0.2.0, en etapa de desarrollo inicial. Las API principales y la capa de componentes UI ya están disponibles, y el flujo del framework funciona, pero las API pueden cambiar en versiones posteriores. La lista de paquetes está organizada por capas: - **Capa base (Layer 0)**: sistema unificado de errores, sistema de registro, funciones de utilidad general, utilidades asíncronas, detección del entorno de ejecución, hash y codificación/decodificación, internacionalización, contexto de solicitud/evento, tipos base compartidos entre paquetes. - **Capa núcleo (Layer 1)**: registro, bus de eventos, gestión de caché, pipeline de datos, combinación de capacidades, programación de tareas. - **Capa de datos (Layer 2)**: framework de procesadores de datos, motor de validación, adaptador de eventos DOM (reconocimiento de 8 gestos), análisis de tipos MIME, registrador de patrones regex con nombre, definición de esquemas, sistema de permisos. - **Capa de servicios (Layer 3)**: cliente HTTP (pipeline de 4 etapas + interceptores + streaming SSE), autenticación OAuth2 (modos contraseña/código de autorización/credenciales de cliente + renovación automática 401), procesador de datos del framework ABP, procesador de datos de Spring Data, conjunto de capacidades del sistema. - **Capa de aplicación (Layer 4)**: framework de gestión de entidades (5 tipos de Manager + arquitectura de combinación Ability), sistema de enrutamiento (modo de eventos puro + capacidad de componente RouteAbility). - **Capa UI**: infraestructura central de componentes, definición de capacidades de componentes UI, implementación de componentes UI (Icon/Button/Toggle/Tabs/Card/Menu/Nav/Panel, etc.), componentes UI avanzados (Step/Timeline/Rating/PropertyGrid/OneTimePassword, etc.), sistema de definición de layouts basado en JSON, recursos de temas (claro/oscuro + 10 presets de estilo chino + personalización del usuario), biblioteca de iconos de estilo chino (102 SVG + iconos de fuente), API imperativa (toast/msgbox). Las características arquitectónicas incluyen diseño por capas (dirección de dependencia única, sin referencias entre capas), combinación de capacidades (los gestores de entidades combinan capacidades dinámicamente mediante AbilityDefinition), procesamiento en pipeline (las solicitudes/respuestas de datos pasan por pipelines de procesadores conectables, con ABP/Spring listos para usar), adaptación al entorno (los paquetes núcleo son independientes del entorno, compatibles con navegador/Node.js) y seguridad de tipos (definiciones TypeScript completas). El directorio de ejemplos `examples/full-stack/` contiene una demostración full-stack completa que cubre autenticación OAuth2, gestión de usuarios de la API ABP, gestión de pedidos de Spring Data, páginas de demostración de funciones de 36 subpaquetes de QimenJS, internacionalización (precompilación i18n + cambio dinámico de idioma). La documentación incluye explicación de la arquitectura, descripción de paquetes, mejores prácticas y referencia de API. Los comandos de desarrollo incluyen instalación de dependencias, compilación, ejecución de pruebas, verificación de código y generación de documentación de API. El número de versión sigue la especificación SemVer; 0.x.x indica la etapa de desarrollo inicial. Este proyecto es un proyecto asistido por IA; la mayor parte del código fue generado por IA. Agradecemos las contribuciones de herramientas como Huawei CodeArts, Trae CN, ChatGPT, DeepSeek, Gemini, Tongyi Qianwen y FitEncode. La licencia es MIT.