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 +106 -17
- package/dist/compiler/compile.js +221 -205
- package/dist/compiler/integrity-validator.js +525 -0
- package/dist/compiler/minify.js +18 -1
- package/dist/compiler/minifyTemplate.js +16 -0
- package/dist/compiler/transforms.js +17 -0
- package/dist/compiler/typescript-error-parser.js +0 -133
- package/dist/compiler/typescript-sync-validator.js +12 -7
- package/dist/compiler/typescript-worker-pool.js +96 -24
- package/dist/compiler/typescript-worker-thread.cjs +9 -6
- package/dist/compiler/vuejs.js +12 -6
- package/dist/hrm/initHRM.js +2 -2
- package/dist/main.js +18 -6
- package/dist/servicios/file-watcher.js +3 -1
- package/dist/servicios/readConfig.js +17 -4
- package/package.json +32 -32
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
|
-
-
|
|
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
|
-
| `--
|
|
118
|
-
| `--
|
|
119
|
-
| `--
|
|
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
|