280 líneas
6.6 KiB
Markdown
280 líneas
6.6 KiB
Markdown
# alepm - Advanced Package Manager
|
|
|
|
**alepm** es un package manager avanzado y seguro para Node.js que proporciona gestión a nivel de sistema con almacenamiento binario eficiente, caché inteligente y características de seguridad avanzadas.
|
|
|
|
## 🚀 Características
|
|
|
|
### 🔒 Seguridad
|
|
- **Verificación de integridad**: Validación automática de checksums SHA-512/SHA-256
|
|
- **Auditoría de vulnerabilidades**: Escaneo automático contra bases de datos de vulnerabilidades
|
|
- **Análisis de contenido**: Detección de patrones maliciosos en paquetes
|
|
- **Cuarentena automática**: Aislamiento de paquetes sospechosos
|
|
- **Verificación de firmas**: Soporte para paquetes firmados digitalmente
|
|
|
|
### 💾 Almacenamiento Binario
|
|
- **Formato binario optimizado**: Reducción significativa del espacio en disco
|
|
- **Compresión avanzada**: Algoritmos de compresión de alta eficiencia
|
|
- **Deduplicación**: Eliminación automática de archivos duplicados
|
|
- **Índice eficiente**: Acceso rápido a paquetes almacenados
|
|
|
|
### ⚡ Caché Inteligente
|
|
- **Caché persistente**: Almacenamiento eficiente de paquetes descargados
|
|
- **Limpieza automática**: Gestión inteligente del espacio de caché
|
|
- **Verificación de integridad**: Validación automática de archivos en caché
|
|
- **Compresión**: Reducción del espacio utilizado por el caché
|
|
|
|
### 🔐 Gestión de Estado
|
|
- **alepm.lock**: Archivo de bloqueo para garantizar instalaciones reproducibles
|
|
- **Verificación de consistencia**: Validación automática del estado del proyecto
|
|
- **Resolución de dependencias**: Algoritmo avanzado de resolución de conflictos
|
|
- **Metadatos extendidos**: Información detallada sobre cada paquete
|
|
|
|
## 📦 Instalación
|
|
|
|
```bash
|
|
npm install -g alepm
|
|
```
|
|
|
|
## 🛠️ Uso
|
|
|
|
### Comandos Básicos
|
|
|
|
```bash
|
|
# Instalar paquetes
|
|
alepm install lodash
|
|
alepm install express@4.18.0
|
|
alepm install --save-dev jest
|
|
|
|
# Instalar todas las dependencias del proyecto
|
|
alepm install
|
|
|
|
# Desinstalar paquetes
|
|
alepm uninstall lodash
|
|
alepm remove express
|
|
|
|
# Actualizar paquetes
|
|
alepm update
|
|
alepm update lodash
|
|
|
|
# Buscar paquetes
|
|
alepm search react
|
|
|
|
# Información de un paquete
|
|
alepm info lodash
|
|
|
|
# Listar paquetes instalados
|
|
alepm list
|
|
alepm ls --depth=2
|
|
```
|
|
|
|
### Gestión de Caché
|
|
|
|
```bash
|
|
# Limpiar caché
|
|
alepm cache clean
|
|
|
|
# Verificar integridad del caché
|
|
alepm cache verify
|
|
|
|
# Estadísticas del caché
|
|
alepm cache stats
|
|
```
|
|
|
|
### Auditoría de Seguridad
|
|
|
|
```bash
|
|
# Auditar vulnerabilidades
|
|
alepm audit
|
|
|
|
# Corregir vulnerabilidades automáticamente
|
|
alepm audit --fix
|
|
|
|
# Verificar integridad del archivo de bloqueo
|
|
alepm lock verify
|
|
```
|
|
|
|
### Configuración
|
|
|
|
```bash
|
|
# Ver configuración
|
|
alepm config list
|
|
|
|
# Establecer configuración
|
|
alepm config set registry https://registry.npmjs.org
|
|
alepm config set cache.maxSize 2GB
|
|
|
|
# Obtener valor de configuración
|
|
alepm config get registry
|
|
|
|
# Restablecer configuración
|
|
alepm config reset
|
|
```
|
|
|
|
### Inicializar Proyecto
|
|
|
|
```bash
|
|
# Crear nuevo proyecto
|
|
alepm init
|
|
|
|
# Usar valores por defecto
|
|
alepm init --yes
|
|
```
|
|
|
|
## ⚙️ Configuración
|
|
|
|
alepm utiliza un archivo de configuración ubicado en `~/.alepm/config.json`. Las opciones principales incluyen:
|
|
|
|
### Registro y Red
|
|
```json
|
|
{
|
|
"registry": "https://registry.npmjs.org",
|
|
"network": {
|
|
"timeout": 30000,
|
|
"retries": 3,
|
|
"proxy": null
|
|
}
|
|
}
|
|
```
|
|
|
|
### Caché
|
|
```json
|
|
{
|
|
"cache": {
|
|
"enabled": true,
|
|
"maxSize": "1GB",
|
|
"maxAge": "30d",
|
|
"compression": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### Seguridad
|
|
```json
|
|
{
|
|
"security": {
|
|
"enableAudit": true,
|
|
"enableIntegrityCheck": true,
|
|
"maxPackageSize": "100MB",
|
|
"scanPackageContent": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### Almacenamiento
|
|
```json
|
|
{
|
|
"storage": {
|
|
"compression": 9,
|
|
"binaryFormat": true,
|
|
"deduplication": true
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🔧 Características Avanzadas
|
|
|
|
### Almacenamiento Binario
|
|
alepm utiliza un formato de almacenamiento binario personalizado que:
|
|
- Reduce el uso de disco hasta en un 60%
|
|
- Mejora la velocidad de acceso a paquetes
|
|
- Incluye verificación de integridad integrada
|
|
- Soporta deduplicación automática
|
|
|
|
### Sistema de Caché
|
|
El sistema de caché inteligente:
|
|
- Almacena paquetes con compresión optimizada
|
|
- Limpia automáticamente archivos antiguos
|
|
- Verifica la integridad de los datos almacenados
|
|
- Optimiza el acceso frecuente a paquetes
|
|
|
|
### Resolución de Dependencias
|
|
El resolvedor de dependencias:
|
|
- Maneja conflictos de versiones automáticamente
|
|
- Optimiza el árbol de dependencias
|
|
- Detecta dependencias circulares
|
|
- Soporta hoisting inteligente
|
|
|
|
### Seguridad Avanzada
|
|
Las características de seguridad incluyen:
|
|
- Escaneo de vulnerabilidades en tiempo real
|
|
- Análisis estático de código malicioso
|
|
- Sistema de cuarentena para paquetes sospechosos
|
|
- Verificación de firmas digitales
|
|
|
|
## 📄 Archivo alepm.lock
|
|
|
|
El archivo `alepm.lock` garantiza instalaciones reproducibles y contiene:
|
|
|
|
```json
|
|
{
|
|
"lockfileVersion": "1.0.0",
|
|
"name": "mi-proyecto",
|
|
"packages": {
|
|
"lodash@4.17.21": {
|
|
"version": "4.17.21",
|
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
"requires": {}
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"lodash": {
|
|
"version": "4.17.21",
|
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🤝 Contribuir
|
|
|
|
Las contribuciones son bienvenidas. Por favor:
|
|
|
|
1. Fork el repositorio
|
|
2. Crea una rama para tu característica (`git checkout -b feature/AmazingFeature`)
|
|
3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)
|
|
4. Push a la rama (`git push origin feature/AmazingFeature`)
|
|
5. Abre un Pull Request
|
|
|
|
## 📋 Requisitos del Sistema
|
|
|
|
- Node.js >= 16.0.0
|
|
- npm >= 7.0.0 (para desarrollo)
|
|
- Sistema operativo: Linux, macOS, Windows
|
|
|
|
## 🐛 Reportar Problemas
|
|
|
|
Si encuentras un bug o tienes una sugerencia, por favor abre un issue en el repositorio.
|
|
|
|
## 📝 Licencia
|
|
|
|
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para detalles.
|
|
|
|
## 🙏 Agradecimientos
|
|
|
|
- Inspirado en npm, yarn y pnpm
|
|
- Utiliza bibliotecas de código abierto de la comunidad Node.js
|
|
- Agradecimiento especial a todos los contribuidores
|
|
|
|
## 🔮 Roadmap
|
|
|
|
### v1.1.0
|
|
- [ ] Soporte para workspaces
|
|
- [ ] Plugin system
|
|
- [ ] Mejoras en el rendimiento
|
|
|
|
### v1.2.0
|
|
- [ ] Interfaz web de gestión
|
|
- [ ] Soporte para registros privados
|
|
- [ ] Análisis de dependencias mejorado
|
|
|
|
### v2.0.0
|
|
- [ ] Soporte para otros lenguajes (Python, Go, etc.)
|
|
- [ ] Sistema de firmas distribuido
|
|
- [ ] Inteligencia artificial para detección de malware
|
|
|
|
---
|
|
|
|
**alepm** - Package management, evolved. 🚀
|