Structure: - control-plane/: Registries, SIMCO directives, CI/CD templates - projects/: Gamilit, ERP-Suite, Trading-Platform, Betting-Analytics - shared/: Libs catalog, knowledge-base Key features: - Centralized port, domain, database, and service registries - 23 SIMCO directives + 6 fundamental principles - NEXUS agent profiles with delegation rules - Validation scripts for workspace integrity - Dockerfiles for all services - Path aliases for quick reference 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| README.md | ||
FASE 5: SHARED LIBRARIES
Estado: Pendiente Duracion Estimada: 2-3 dias Agente Principal: Tech-Leader + Backend-Agent Dependencias: Fase 4 completada
OBJETIVO
Crear repositorio de librerias compartidas que puedan ser usadas por todos los proyectos:
- Utilidades comunes (auth, logging, validation)
- UI components compartidos
- Tipos/interfaces compartidos
- Configuraciones compartidas
ESTRUCTURA OBJETIVO
shared-libs/
|
+-- packages/
| +-- auth/ # Autenticacion compartida
| | +-- src/
| | +-- package.json
| | +-- tsconfig.json
| |
| +-- logger/ # Logging estandarizado
| | +-- src/
| | +-- package.json
| |
| +-- validation/ # Validaciones comunes
| | +-- src/
| | +-- package.json
| |
| +-- ui-components/ # Componentes React compartidos
| | +-- src/
| | +-- package.json
| |
| +-- types/ # Tipos TypeScript compartidos
| | +-- src/
| | +-- package.json
| |
| +-- config/ # Configuraciones base
| +-- eslint-config/
| +-- tsconfig/
| +-- prettier-config/
|
+-- package.json # Workspaces
+-- lerna.json # O pnpm-workspace.yaml
+-- README.md
PAQUETES A CREAR
@workspace/auth
// Funciones de autenticacion compartidas
export { verifyJWT, generateJWT, hashPassword, verifyPassword } from './jwt';
export { AuthMiddleware } from './middleware';
export type { JWTPayload, AuthConfig } from './types';
@workspace/logger
// Logger estandarizado
export { createLogger, Logger } from './logger';
export type { LogLevel, LogConfig } from './types';
@workspace/validation
// Schemas de validacion compartidos
export { validateEmail, validatePassword, validateUUID } from './validators';
export { createValidationMiddleware } from './middleware';
@workspace/ui-components
// Componentes React compartidos
export { Button, Input, Modal, Table, Card } from './components';
export { useAuth, useToast, useModal } from './hooks';
@workspace/types
// Tipos compartidos
export type { User, Tenant, Permission } from './auth';
export type { ApiResponse, PaginatedResponse } from './api';
export type { BaseEntity, Timestamps } from './database';
VERSIONADO
# Cada paquete tiene version independiente (SemVer)
@workspace/auth: 1.0.0
@workspace/logger: 1.0.0
@workspace/validation: 1.0.0
# Publicacion a registry privado o npm
npm publish --registry=https://npm.tu-org.com
USO EN PROYECTOS
// gamilit-platform/apps/backend/package.json
{
"dependencies": {
"@workspace/auth": "^1.0.0",
"@workspace/logger": "^1.0.0"
}
}
TAREAS PRINCIPALES
- Crear estructura del repo shared-libs
- Identificar codigo a extraer de proyectos
- Crear paquetes iniciales
- Configurar build y publish
- Actualizar proyectos para usar shared-libs
CONSIDERACIONES
- No extraer codigo hasta que proyectos esten migrados
- Empezar con paquetes pequenos y estables
- Documentar API de cada paquete
- Tests para cada paquete
Agente Responsable: Tech-Leader