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>
154 lines
3.3 KiB
Markdown
154 lines
3.3 KiB
Markdown
# 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:
|
|
|
|
1. Utilidades comunes (auth, logging, validation)
|
|
2. UI components compartidos
|
|
3. Tipos/interfaces compartidos
|
|
4. 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
|
|
|
|
```typescript
|
|
// Funciones de autenticacion compartidas
|
|
export { verifyJWT, generateJWT, hashPassword, verifyPassword } from './jwt';
|
|
export { AuthMiddleware } from './middleware';
|
|
export type { JWTPayload, AuthConfig } from './types';
|
|
```
|
|
|
|
### @workspace/logger
|
|
|
|
```typescript
|
|
// Logger estandarizado
|
|
export { createLogger, Logger } from './logger';
|
|
export type { LogLevel, LogConfig } from './types';
|
|
```
|
|
|
|
### @workspace/validation
|
|
|
|
```typescript
|
|
// Schemas de validacion compartidos
|
|
export { validateEmail, validatePassword, validateUUID } from './validators';
|
|
export { createValidationMiddleware } from './middleware';
|
|
```
|
|
|
|
### @workspace/ui-components
|
|
|
|
```typescript
|
|
// Componentes React compartidos
|
|
export { Button, Input, Modal, Table, Card } from './components';
|
|
export { useAuth, useToast, useModal } from './hooks';
|
|
```
|
|
|
|
### @workspace/types
|
|
|
|
```typescript
|
|
// Tipos compartidos
|
|
export type { User, Tenant, Permission } from './auth';
|
|
export type { ApiResponse, PaginatedResponse } from './api';
|
|
export type { BaseEntity, Timestamps } from './database';
|
|
```
|
|
|
|
---
|
|
|
|
## VERSIONADO
|
|
|
|
```yaml
|
|
# 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
|
|
|
|
```json
|
|
// gamilit-platform/apps/backend/package.json
|
|
{
|
|
"dependencies": {
|
|
"@workspace/auth": "^1.0.0",
|
|
"@workspace/logger": "^1.0.0"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## TAREAS PRINCIPALES
|
|
|
|
1. Crear estructura del repo shared-libs
|
|
2. Identificar codigo a extraer de proyectos
|
|
3. Crear paquetes iniciales
|
|
4. Configurar build y publish
|
|
5. 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
|