open-index/open-npm huggingface dataset:
npm package: @smdv/localization
Description: <div align="center">
Latest version: 1.2.90


<div align="center">

# @smdv/localization

Librería Angular para localización dinámica, sesión, permisos y auditoría.

</div>

## ✨ Características

- Carga remota de recursos de idioma (multi-módulo)
- Manejo de sesión y permisos (guards + interceptor HTTP)
- Registro de eventos (event log)
- Tipos e interfaces reutilizables

## ✅ Requisitos

- Angular >= 14 (recomendado 16+)
- HttpClientModule disponible

## 📦 Instalación

```bash
npm install @smdv/localization
```

## ⚙️ Configuración del módulo

Usar `forRoot` para inyectar la configuración (environment de la librería):

```typescript
import { LocalizationModule } from '@smdv/localization';

@NgModule({
	imports: [
		LocalizationModule.forRoot({
			msLocalizationApiUrl: 'https://api.example.com/localization',
			msConfigurationsApiUrl: 'https://api.example.com/config',
			application: 'my-app'
		})
	]
})
export class AppModule {}
```

## 🧪 Uso del servicio de localización

```typescript
import { LocalizationService } from '@smdv/localization';

constructor(private loc: LocalizationService) {}

ngOnInit() {
	this.loc.loadLocales(['general', 'dashboard']);
	const mensaje = this.loc.getLocalization('welcome');
}
```

## 🔐 Sesión y permisos

Guard de activación (ejemplo conceptual):
```typescript
// SessionCanActiveService protege rutas según sesión válida
{
	path: 'panel',
	canActivate: [SessionCanActiveService],
	loadChildren: () => import('./panel/panel.module').then(m => m.PanelModule)
}
```

Interceptor HTTP: Se registra automáticamente al importar el módulo (si está configurado en providers en el futuro). Asegúrate de no duplicar interceptores globales.

## 🧱 Interfaces clave

Ubicadas en `services/interfaces/` (posible futura carpeta `models/`):

- `AuthSession`
- `Permits`
- `EventLog`
- `PaginatedData<T>`
- `ResponseApi<T>`

## 🌐 Carga de recursos

El método `loadLocales(modulos: string[])` obtiene y cachea recursos por módulo. Luego `getLocalization(key: string)` retorna el texto asociado.

## 🛠 Scripts útiles

| Acción | Comando |
|--------|---------|
| Build | `ng build localization` |
| Tests | `ng test localization` |
| Producción | `ng build localization --configuration production` |
| Publicar | `npm publish` (desde `dist/localization`) |

## 🧬 Publicación

1. Incrementar versión en `projects/localization/package.json` (semver).
2. `ng build localization`.
3. `cd dist/localization`.
4. `npm publish` (usar `--access public` si es necesario / registro privado si aplica).

## 🧹 Limpieza local

```bash
rm -rf node_modules dist .angular
npm ci
ng build localization
```

## 🗺 Roadmap sugerido

- Refactor de `enviroment` a `environment`
- Módulo separado para auditoría si crece
- Migrar interfaces a `models/`
- Añadir tests de integración (módulo + interceptor + guard)

## 🤝 Contribuir

1. Rama: `feature/nombre`
2. Commits claros
3. PR con descripción funcional / breaking changes

## 📄 Licencia

Privado / Interno (definir si se publica públicamente más adelante)

---

Mantén este README actualizado conforme evolucione la API.