versacompiler 2.3.4 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,7 +17,8 @@
17
17
  - 🔍 **Sistema de linting dual** - ESLint + OxLint con auto-fix
18
18
  - 🎨 **TailwindCSS integrado** - Compilación automática y optimizada
19
19
  - 🗜️ **Minificación de última generación** - OxcMinify para builds ultra-optimizados
20
- - 📦 **Bundling inteligente** - Agrupación configurable de módulos (EN DESARROLLO)
20
+ - 🛡️ **Validación de integridad** - Sistema de 4 niveles que detecta código corrupto, exports eliminados y errores de sintaxis en builds
21
+ - �📦 **Bundling inteligente** - Agrupación configurable de módulos (EN DESARROLLO)
21
22
  - 🛠️ **Compilación por archivo** - Granular control de compilación
22
23
  - 🧹 **Gestión de caché avanzada** - Cache automático con invalidación inteligente
23
24
 
@@ -81,6 +82,9 @@ versacompiler src/main.ts src/components/App.vue
81
82
  # 🚀 Build para producción (minificado)
82
83
  versacompiler --all --prod
83
84
 
85
+ # 🛡️ Build con validación de integridad (recomendado para deploy)
86
+ versacompiler --all --prod --checkIntegrity
87
+
84
88
  # 🧹 Limpiar y recompilar todo
85
89
  versacompiler --all --cleanOutput --cleanCache
86
90
 
@@ -101,22 +105,23 @@ versacompiler --typeCheck --file src/types.ts
101
105
 
102
106
  ### 🛠️ Comandos CLI Disponibles
103
107
 
104
- | Comando | Alias | Descripción |
105
- | ------------------ | ----- | ---------------------------------------------- |
106
- | `--init` | | Inicializar configuración del proyecto |
107
- | `--watch` | `-w` | Modo observación con HMR y auto-recompilación |
108
- | `--all` | | Compilar todos los archivos del proyecto |
109
- | `--file <archivo>` | `-f` | Compilar un archivo específico |
110
- | `[archivos...]` | | Compilar múltiples archivos específicos |
111
- | `--prod` | `-p` | Modo producción con minificación |
112
- | `--verbose` | `-v` | Mostrar información detallada de compilación |
113
- | `--cleanOutput` | `-co` | Limpiar directorio de salida antes de compilar |
114
- | `--cleanCache` | `-cc` | Limpiar caché de compilación |
115
- | `--yes` | `-y` | Confirmar automáticamente todas las acciones |
116
- | `--typeCheck` | `-t` | Habilitar/deshabilitar verificación de tipos |
117
- | `--tailwind` | | Habilitar/deshabilitar compilación TailwindCSS |
118
- | `--linter` | | Habilitar/deshabilitar análisis de código |
119
- | `--help` | `-h` | Mostrar ayuda y opciones disponibles |
108
+ | Comando | Alias | Descripción |
109
+ | ------------------ | ----- | ------------------------------------------------ |
110
+ | `--init` | | Inicializar configuración del proyecto |
111
+ | `--watch` | `-w` | Modo observación con HMR y auto-recompilación |
112
+ | `--all` | | Compilar todos los archivos del proyecto |
113
+ | `--file <archivo>` | `-f` | Compilar un archivo específico |
114
+ | `[archivos...]` | | Compilar múltiples archivos específicos |
115
+ | `--prod` | `-p` | Modo producción con minificación |
116
+ | `--verbose` | `-v` | Mostrar información detallada de compilación |
117
+ | `--cleanOutput` | `-co` | Limpiar directorio de salida antes de compilar |
118
+ | `--cleanCache` | `-cc` | Limpiar caché de compilación |
119
+ | `--yes` | `-y` | Confirmar automáticamente todas las acciones |
120
+ | `--typeCheck` | `-t` | Habilitar/deshabilitar verificación de tipos |
121
+ | `--checkIntegrity` | `-ci` | Validar integridad del código compilado (deploy) |
122
+ | `--tailwind` | | Habilitar/deshabilitar compilación TailwindCSS |
123
+ | `--linter` | | Habilitar/deshabilitar análisis de código |
124
+ | `--help` | `-h` | Mostrar ayuda y opciones disponibles |
120
125
 
121
126
  ### 🔧 Archivo de configuración
122
127
 
@@ -389,6 +394,90 @@ versacompiler --tailwind --verbose
389
394
  - **Compresión avanzada**: Algoritmos de compresión optimizados
390
395
  - **Source maps**: Generación de source maps en desarrollo
391
396
 
397
+ ### 🛡️ Sistema de Validación de Integridad (v2.4.0+)
398
+
399
+ Protección automática contra código corrupto en compilación y minificación con sistema de 4 niveles:
400
+
401
+ #### ✅ Check 1: Validación de Tamaño (~0.1ms)
402
+
403
+ - Verifica que el código no esté vacío después de compilación
404
+ - Detecta archivos con menos de 10 caracteres (posible corrupción)
405
+ - Previene archivos completamente vacíos por errores de minificación
406
+
407
+ #### 🔍 Check 2: Validación de Estructura (~1ms) ⚠️ _Temporalmente suspendido_
408
+
409
+ - Parser character-by-character para verificar brackets balanceados
410
+ - Detección de strings, template literals, comentarios y regex
411
+ - **Nota**: Actualmente suspendido debido a limitaciones con character classes en regex (`/[()\[\]{}]/`)
412
+ - Los otros 3 checks proporcionan protección suficiente durante la suspensión
413
+
414
+ #### 📤 Check 3: Validación de Exports (~1ms)
415
+
416
+ - Detecta exports eliminados incorrectamente durante transformaciones
417
+ - Compara exports del código original vs código procesado
418
+ - Previene bugs críticos en módulos que pierden sus APIs públicas
419
+
420
+ #### 🔬 Check 4: Validación de Sintaxis (~3ms)
421
+
422
+ - Validación completa con oxc-parser (parser JavaScript/TypeScript de producción)
423
+ - Detecta errores de sintaxis introducidos durante compilación
424
+ - Garantiza que el código generado es sintácticamente válido
425
+
426
+ #### 🚀 Características Adicionales
427
+
428
+ - **Cache LRU**: Hasta 100 entradas cacheadas para optimizar validaciones repetidas (~0.1ms en cache hit)
429
+ - **Performance objetivo**: <5ms por archivo (típicamente 1-3ms total)
430
+ - **Estadísticas detalladas**: Tracking de validaciones, cache hits/misses, duración promedio
431
+ - **Modo verbose**: Logging detallado de cada validación para debugging
432
+ - **Opciones configurables**: `skipSyntaxCheck`, `throwOnError`, `verbose`
433
+
434
+ #### 📊 Casos de Uso Detectados
435
+
436
+ ```typescript
437
+ // Bug #1: Código vacío después de minificación (Check 1)
438
+ const result = minify(code);
439
+ // → IntegrityValidator detecta: "Tamaño de código inválido (0 chars)"
440
+
441
+ // Bug #2: Export eliminado por error (Check 3)
442
+ export const API_KEY = '...';
443
+ // → Después de transform: const API_KEY = "...";
444
+ // → IntegrityValidator detecta: "Export 'API_KEY' fue eliminado"
445
+
446
+ // Bug #3: Sintaxis inválida introducida (Check 4)
447
+ const obj = { key: value };
448
+ // → Después de transform: const obj = { key: value
449
+ // → IntegrityValidator detecta: "SyntaxError: Expected '}'"
450
+
451
+ // Bug #4: Brackets desbalanceados (Check 2, cuando esté habilitado)
452
+ const arr = [1, 2, 3];
453
+ // → Después de transform: const arr = [1, 2, 3;
454
+ // → IntegrityValidator detectará: "Corchetes desbalanceados"
455
+ ```
456
+
457
+ #### 🎯 Uso Recomendado
458
+
459
+ ```bash
460
+ # Desarrollo: Validación automática integrada
461
+ versacompiler --watch
462
+ # → Validación de integridad en cada compilación
463
+
464
+ # Producción: Validación explícita antes de deploy
465
+ versacompiler --all --prod --checkIntegrity
466
+ # → 100% de archivos validados antes de deployment
467
+
468
+ # CI/CD: Validación en pipeline
469
+ versacompiler --all --prod --checkIntegrity --yes
470
+ # → Build fallará si hay código corrupto
471
+ ```
472
+
473
+ #### 📈 Resultados de Validación
474
+
475
+ - **Validación típica**: 1-3ms por archivo
476
+ - **Cache hit**: <0.1ms (resultado reutilizado)
477
+ - **Overhead total**: <5ms adicional en compilación estándar
478
+ - **Tests**: 32/32 tests pasando con cobertura completa
479
+ - **Tasa de éxito**: 40/40 archivos (100%) con Checks 1, 3 y 4 activos
480
+
392
481
  ### 🛠️ Gestión de Archivos y Cache
393
482
 
394
483
  - **Sistema de cache multinivel**: Cache de configuraciones, compilaciones y validaciones