xTaskjs 1.0 ya está disponible: cuentas por rol, documentación y una interfaz personalizable.

Paquetes

Referencia de los paquetes e integraciones del runtime de xtaskjs.

Esta página describe los paquetes principales del monorepo xtask, qué aporta cada uno, cómo encaja en el runtime y qué ejemplos oficiales lo demuestran en la práctica, incluidos cache, scheduler, queues y value objects.

21 paquetes documentados

Runtime principal

Bootstrap, contenedor DI, orquestación del ciclo de vida y arranque de la aplicación HTTP.

Capa de adaptadores

Los adaptadores de Express y Fastify mantienen los mismos contratos de controlador y vista.

Integraciones

TypeORM, security, mailer, cache, scheduler y queues añaden persistencia, autenticación, trabajo en segundo plano y entrega compatibles con el ciclo de vida.

Catálogo

Paquetes del framework en el monorepo xtask

packages/core

@xtaskjs/core

Bootstrap, kernel, contenedor DI, ciclo de vida y primitivas de aplicación HTTP.

Core controla el arranque de la aplicación. Inicia el kernel, analiza componentes, resuelve adaptadores y coordina integraciones opcionales como TypeORM y security durante CreateApplication().

Cobertura de ejemplos: 01-new_app, 02-express_app, 03-fastify_app, 04-typeorm_app, 06-security_app, 07-security_express_app

Abrir página del paquete

packages/common

@xtaskjs/common

Decoradores transversales, metadata de rutas, logger y tipos de ejecución compartidos.

Common provides the public decorator surface for controllers and route pipelines. It is the language the rest of the framework uses to express middleware, guard, and event metadata, and it includes the Logger used across adapters and services.

Cobertura de ejemplos: All samples use controller decorators from @xtaskjs/common.

Abrir página del paquete

packages/config

@xtaskjs/config

Typed, fail-fast environment configuration with Zod-powered schema validation.

Config centralizes environment loading and validation so applications fail fast when required variables are missing or invalid. It exposes a typed ConfigService through DI and supports env-file loading plus optional prefixed variable mapping.

Cobertura de ejemplos: 01-new_app, 03-fastify_app, 06-security_app, 09-internationalization_app, 18-value_objects_app, 26-bots_app, 27-bots_webhook_security_app

Abrir página del paquete

packages/validation

@xtaskjs/validation

Schema-first request validation for controllers using Zod or Valibot adapters.

Validation integrates schema-based request validation into the xtaskjs HTTP pipeline. It offers parameter decorators and route-level schema decorators, returns structured validation issues, and plugs into DI for adapter and error customization.

Cobertura de ejemplos: Package README and package tests currently provide the primary reference.

Abrir página del paquete

packages/value-objects

@xtaskjs/value-objects

Primitivas de value objects, utilidades de conversión, decoradores para DTO y helpers de integración con fábricas DI.

Value objects ofrece a los proyectos xtaskjs una forma coherente de modelar primitivas de dominio y envoltorios de payload estructurados. Estandariza la conversión desde entrada cruda, cadenas JSON y payloads serializados, y además puede enlazar la transformación de DTO con la creación de fábricas gestionadas por DI.

Cobertura de ejemplos: Package README examples and package tests currently provide the primary reference.

Abrir página del paquete

packages/testing

@xtaskjs/testing

Testing runtime and module builder for isolated DI containers and provider overrides.

Testing provides a focused testing module API for xtaskjs services and controllers. It builds isolated DI containers, supports provider overrides, and helps teams write unit and integration tests without booting a full HTTP runtime.

Cobertura de ejemplos: 25-testing_app

Abrir página del paquete

packages/express-http

@xtaskjs/express-http

Adaptador de Express con recursos estáticos e integración de motor de plantillas.

El adaptador de Express traduce las rutas del framework al manejo de peticiones de Express. Añade archivos estáticos, motores de plantillas y respuestas JSON o renderizadas sin cambiar el código de los controladores.

Cobertura de ejemplos: 02-express_app and 07-security_express_app

Abrir página del paquete

packages/fastify-http

@xtaskjs/fastify-http

Adaptador de Fastify para el mismo modelo de controladores usado por core y Express.

El soporte de Fastify refleja el de Express, pero mantiene el servido, el renderizado de vistas y el comportamiento de archivos estáticos específicos de Fastify tras los mismos contratos del framework.

Cobertura de ejemplos: 03-fastify_app and 04-typeorm_app

Abrir página del paquete

packages/typeorm

@xtaskjs/typeorm

Integración con TypeORM, registro de datasources y utilidades de inyección de repositorios.

El soporte de TypeORM conecta el ciclo de vida del datasource al arranque y apagado de xtask. Proporciona al contenedor una forma estándar de inyectar datasources y repositorios mientras reexporta la superficie de TypeORM.

Cobertura de ejemplos: 04-typeorm_app

Abrir página del paquete

packages/cqrs

@xtaskjs/cqrs

Command, query, and event buses with handler decorators, read or write datasource aliases, and lifecycle-managed projection workflows.

CQRS adds message buses, handler discovery, read or write repository injection, process managers, projection rebuilders, and idempotent command execution to xtaskjs. It builds on @xtaskjs/typeorm so the container can expose read and write datasources and repositories without hard-coding infrastructure details into handlers.

Cobertura de ejemplos: 19-cqrs_app and 20-cqrs_postgres_replication_app

Abrir página del paquete

packages/event-source

@xtaskjs/event-source

Event-sourced aggregates, optimistic stream persistence, stored-event subscribers, and optional queue publication.

Event source adds aggregate rehydration, stream persistence, optimistic concurrency checks, and stored-event publication to xtaskjs. It keeps event application inside aggregate roots while exposing repositories, stores, publishers, and subscribers through the same DI lifecycle used by the rest of the framework.

Cobertura de ejemplos: 21-event_source_rabbitmq_app and 22-event_source_cqrs_app

Abrir página del paquete

packages/security

@xtaskjs/security

Autenticación JWT y JWE, decoradores de autorización y ciclo de vida de security compatible con DI.

Security se apoya en la canalización base de rutas. Registra estrategias, autentica peticiones mediante flujos compatibles con Passport e inyecta el estado de autenticación en el contexto de ejecución para guards y controladores.

Cobertura de ejemplos: 06-security_app and 07-security_express_app

Abrir página del paquete

packages/mailer

@xtaskjs/mailer

Entrega basada en Nodemailer, renderizado de plantillas, transports con nombre y servicios de correo compatibles con DI.

Mailer integra el correo saliente en el mismo ciclo de vida de xtask usado por controladores y persistencia. Registra transports al arrancar, expone servicios y transporters inyectables y admite plantillas inline, EJS o Handlebars.

Cobertura de ejemplos: 07-security_express_app and 08-email_express_app

Abrir página del paquete

packages/internationalization

@xtaskjs/internationalization

Traducciones dependientes de la petición, fallback de locale, carga de namespaces y servicios de formateo compatibles con DI.

Internationalization añade resolución de locale por petición, búsqueda de traducciones, pluralización y helpers de formato al ciclo de vida de xtask. Registra los servicios de locale antes de que se resuelvan los controladores y expone un servicio inyectable para controladores, vistas y presenters de dominio.

Cobertura de ejemplos: 09-internationalization_app and 10-internationalization_express_app

Abrir página del paquete

packages/scheduler

@xtaskjs/scheduler

Decoradores cron, interval y timeout con descubrimiento y control de trabajos gestionados por el ciclo de vida.

Scheduler añade trabajos recurrentes y diferidos a los servicios xtask. Descubre los métodos decorados cuando el contenedor DI está listo, ejecuta trabajos de arranque durante la inicialización, inicia el trabajo recurrente en el evento ready del ciclo de vida y expone APIs de servicio para inspección y ejecución manual.

Cobertura de ejemplos: 11-scheduler_app

Abrir página del paquete

packages/cache

@xtaskjs/cache

Memory and Redis-backed cache models, method decorators, runtime inspection, and browser cache policies.

Cache adds application-level data caching and client-facing HTTP cache control to xtaskjs. It registers named cache models, exposes injectable repositories and services, layers method decorators for cache read/write behavior, and can publish browser cache headers plus operational endpoints from the same package.

Cobertura de ejemplos: 12-cache_app, 13-cache_redis_app, 14-http_cache_web_app, 15-fastify_http_cache_web_app

Abrir página del paquete

packages/queues

@xtaskjs/queues

Handlers de colas agnósticos del transporte, utilidades para brokers, decoradores de publicación y consumidores gestionados por el ciclo de vida.

Queues incorpora entrega de mensajes con broker y en memoria a xtaskjs. Registra transports con nombre, descubre consumidores decorados desde servicios gestionados por DI, expone APIs de productores inyectables y coordina reintentos, dead-letter routing y el arranque o parada de consumidores mediante el ciclo de vida de la aplicación.

Cobertura de ejemplos: 16-queues_memory_app and 17-queues_rabbitmq_app

Abrir página del paquete

packages/throttler

@xtaskjs/throttler

Per-endpoint and global rate limiting with memory or Redis backing and custom key generators.

Throttler integrates rate limiting into the xtask route pipeline. It limits requests per time window using configurable storage backends, supports custom key generators for IP, user, or API-key-based identification, and applies limits globally or per-method through decorators.

Cobertura de ejemplos: 24-throttler_app

Abrir página del paquete

packages/socket-io

@xtaskjs/socket-io

Gateways de Socket.IO, decoradores de eventos, servicios realtime inyectables y acoplamiento al servidor gestionado por el ciclo de vida.

Socket.IO integra mensajería realtime en xtaskjs sin salir del modelo de DI y ciclo de vida del framework. Descubre servicios gateway decorados, se conecta al servidor HTTP activo durante app.listen(), expone namespaces y utilidades de broadcast mediante DI y se desmonta limpiamente durante app.close().

Cobertura de ejemplos: 23-socket_io_express_app

Abrir página del paquete

packages/bots

@xtaskjs/bots

Unified bots runtime for Telegram, Slack, and WhatsApp adapters with gateway decorators.

Bots adds a multi-platform messaging runtime to xtaskjs. It uses decorated gateway classes, adapter registration, and lifecycle-managed dispatch so bot workflows stay DI-friendly and consistent with the rest of the framework.

Cobertura de ejemplos: 26-bots_app and 27-bots_webhook_security_app

Abrir página del paquete

packages/mcp

@xtaskjs/mcp

Decorator-based MCP server builder, lifecycle hooks, and SDK transport adapters.

MCP adds a decorator-driven server builder for Model Context Protocol servers. It registers tools, prompts, resources, and lifecycle hooks inside the xtaskjs runtime, and it can bridge the official @modelcontextprotocol/sdk transports for stdio or Streamable HTTP.

Cobertura de ejemplos: 28-mcp_server_app and 29-mcp_auth_http_app

Abrir página del paquete