workspace-v1/05-fase-shared-libs/README.md
Adrian Flores Cortes 967ab360bb Initial commit: Workspace v1 with 3-layer architecture
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>
2025-12-23 00:35:19 -06:00

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