versacompiler 2.4.0 → 2.5.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.
Files changed (33) hide show
  1. package/README.md +722 -722
  2. package/dist/compiler/compile-worker-pool.js +96 -0
  3. package/dist/compiler/compile-worker-thread.cjs +72 -0
  4. package/dist/compiler/compile.js +81 -2
  5. package/dist/compiler/integrity-validator.js +1 -1
  6. package/dist/compiler/module-resolution-optimizer.js +23 -20
  7. package/dist/compiler/performance-monitor.js +61 -61
  8. package/dist/compiler/pipeline/build-pipeline.js +127 -0
  9. package/dist/compiler/pipeline/core-plugins.js +218 -0
  10. package/dist/compiler/pipeline/module-graph.js +63 -0
  11. package/dist/compiler/pipeline/plugin-driver.js +87 -0
  12. package/dist/compiler/pipeline/types.js +2 -0
  13. package/dist/compiler/transforms.js +222 -16
  14. package/dist/compiler/typescript-manager.js +3 -1
  15. package/dist/compiler/typescript-sync-validator.js +33 -31
  16. package/dist/compiler/typescript-worker-pool.js +66 -19
  17. package/dist/compiler/typescript-worker-thread.cjs +482 -469
  18. package/dist/compiler/vuejs.js +32 -32
  19. package/dist/config.js +2 -0
  20. package/dist/hrm/VueHRM.js +359 -359
  21. package/dist/hrm/errorScreen.js +83 -83
  22. package/dist/hrm/getInstanciaVue.js +313 -313
  23. package/dist/hrm/initHRM.js +628 -586
  24. package/dist/main.js +2 -1
  25. package/dist/servicios/browserSync.js +8 -2
  26. package/dist/servicios/file-watcher.js +48 -6
  27. package/dist/servicios/readConfig.js +129 -54
  28. package/dist/servicios/versacompile.config.types.js +2 -0
  29. package/dist/utils/module-resolver.js +74 -40
  30. package/dist/utils/vue-types-setup.js +248 -248
  31. package/dist/wrappers/eslint-node.js +3 -1
  32. package/dist/wrappers/oxlint-node.js +3 -1
  33. package/package.json +73 -54
package/README.md CHANGED
@@ -1,722 +1,722 @@
1
- # 🚀 VersaCompiler
2
-
3
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
- [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
5
- [![Vue.js](https://img.shields.io/badge/Vue.js-35495E?style=flat&logo=vuedotjs&logoColor=4FC08D)](https://vuejs.org/)
6
-
7
- > **🎯 Compilador rápido y eficiente para Vue.js, TypeScript y JavaScript con Hot Module Replacement (HMR) integrado.**
8
-
9
- **VersaCompiler** es una herramienta de compilación diseñada para proyectos Vue 3 con soporte completo para TypeScript, JavaScript y todas las funcionalidades modernas que necesitas para desarrollo web.
10
-
11
- ## 🌟 Características Principales
12
-
13
- - ⚡ **Compilación ultra-rápida** - Workers paralelos y cache inteligente
14
- - 🔥 **HMR Automático (como Vite)** - Detección inteligente sin configuración manual, igual que Vite y esbuild
15
- - 🧩 **Soporte completo para Vue 3** - SFC, Composition API, script setup
16
- - 📝 **TypeScript avanzado** - Language Service, decorators, validación de tipos
17
- - 🔍 **Sistema de linting dual** - ESLint + OxLint con auto-fix
18
- - 🎨 **TailwindCSS integrado** - Compilación automática y optimizada
19
- - 🗜️ **Minificación de última generación** - OxcMinify para builds ultra-optimizados
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)
22
- - 🛠️ **Compilación por archivo** - Granular control de compilación
23
- - 🧹 **Gestión de caché avanzada** - Cache automático con invalidación inteligente
24
-
25
- ## ⚡ Instalación
26
-
27
- ### 📦 Desde código fuente
28
-
29
- ```bash
30
- git clone https://github.com/kriollo/versaCompiler.git
31
- cd versaCompiler
32
- npm install
33
- npm run build
34
- ```
35
-
36
- ### 🔗 Instalación local en tu proyecto
37
-
38
- ```bash
39
- # Copiar archivos compilados a tu proyecto
40
- cp -r dist/* tu-proyecto/versacompiler/
41
- ```
42
-
43
- ## 🎯 Quick Start
44
-
45
- ### 1. Configuración inicial
46
-
47
- ```bash
48
- # Crear archivo de configuración
49
- versacompiler --init
50
- ```
51
-
52
- ### 2. Estructura de proyecto
53
-
54
- ```
55
- mi-proyecto/
56
- ├── src/ # 📝 Código fuente
57
- │ ├── components/ # 🧩 Componentes Vue
58
- │ └── main.ts # 🚀 Punto de entrada
59
- ├── dist/ # 📦 Archivos compilados (auto-generado)
60
- ├── versacompile.config.ts # ⚙️ Configuración
61
- └── package.json
62
- ```
63
-
64
- ### 3. Comandos básicos
65
-
66
- ```bash
67
- # 🔥 Desarrollo con auto-reload y HMR
68
- versacompiler --watch
69
-
70
- # 🔥 Desarrollo con análisis detallado
71
- versacompiler --watch --verbose
72
-
73
- # 🏗️ Compilar todo el proyecto
74
- versacompiler --all
75
-
76
- # 📄 Compilar archivo específico
77
- versacompiler --file src/components/MyComponent.vue
78
-
79
- # 📝 Compilar múltiples archivos específicos
80
- versacompiler src/main.ts src/components/App.vue
81
-
82
- # 🚀 Build para producción (minificado)
83
- versacompiler --all --prod
84
-
85
- # 🛡️ Build con validación de integridad (recomendado para deploy)
86
- versacompiler --all --prod --checkIntegrity
87
-
88
- # 🧹 Limpiar y recompilar todo
89
- versacompiler --all --cleanOutput --cleanCache
90
-
91
- # 🔍 Solo verificar código (linting)
92
- versacompiler --linter
93
-
94
- # 🎨 Solo compilar TailwindCSS
95
- versacompiler --tailwind
96
-
97
- # ⚡ Compilación rápida con confirmación automática
98
- versacompiler --all --prod --yes
99
-
100
- # 🔬 Verificación de tipos específica
101
- versacompiler --typeCheck --file src/types.ts
102
- ```
103
-
104
- ## 📖 Configuración
105
-
106
- ### 🛠️ Comandos CLI Disponibles
107
-
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 |
125
-
126
- ### 🔧 Archivo de configuración
127
-
128
- Crea un archivo `versacompile.config.ts` en la raíz de tu proyecto:
129
-
130
- ```typescript
131
- // Archivo de configuración de VersaCompiler
132
- export default {
133
- tsconfig: './tsconfig.json',
134
- compilerOptions: {
135
- sourceRoot: './src',
136
- outDir: './dist',
137
- pathsAlias: {
138
- '@/*': ['src/*'],
139
- 'P@/*': ['public/*'],
140
- },
141
- },
142
- proxyConfig: {
143
- proxyUrl: '',
144
- assetsOmit: true,
145
- },
146
- aditionalWatch: ['./app/templates/**/*.twig'],
147
- tailwindConfig: {
148
- bin: './node_modules/.bin/tailwindcss',
149
- input: './src/css/input.css',
150
- output: './public/css/output.css',
151
- },
152
- linter: [
153
- {
154
- name: 'eslint',
155
- bin: './node_modules/.bin/eslint',
156
- configFile: './eslint.config.js',
157
- fix: false,
158
- paths: ['src/'],
159
- },
160
- {
161
- name: 'oxlint',
162
- bin: './node_modules/.bin/oxlint',
163
- configFile: './.oxlintrc.json',
164
- fix: false,
165
- paths: ['src/'],
166
- },
167
- ],
168
- bundlers: [
169
- {
170
- name: 'appLoader',
171
- fileInput: './public/module/appLoader.js',
172
- fileOutput: './public/module/appLoader.prod.js',
173
- },
174
- ],
175
- };
176
- ```
177
-
178
- ### 📝 Opciones de configuración
179
-
180
- #### `compilerOptions`
181
-
182
- - `sourceRoot`: Directorio de archivos fuente (por defecto: `'./src'`)
183
- - `outDir`: Directorio de salida (por defecto: `'./dist'`)
184
- - `pathsAlias`: Aliases para imports (ej: `'@/*': ['src/*']`)
185
-
186
- #### `proxyConfig`
187
-
188
- - `proxyUrl`: URL del proxy para desarrollo
189
- - `assetsOmit`: Omitir assets en el proxy
190
-
191
- #### `tailwindConfig`
192
-
193
- - `bin`: Ruta al binario de TailwindCSS
194
- - `input`: Archivo CSS de entrada
195
- - `output`: Archivo CSS de salida
196
-
197
- #### `linter`
198
-
199
- Array de configuraciones de linters avanzadas:
200
-
201
- - `name`: Nombre del linter (`'eslint'` o `'oxlint'`)
202
- - `bin`: Ruta al binario del linter
203
- - `configFile`: Archivo de configuración del linter
204
- - `fix`: Auto-fix de errores detectados
205
- - `paths`: Rutas específicas a analizar
206
- - `eslintConfig`: Configuración específica de ESLint
207
- - `cache`: Habilitar cache de ESLint
208
- - `maxWarnings`: Máximo número de warnings
209
- - `quiet`: Mostrar solo errores
210
- - `formats`: Formatos de salida (`'json'`, `'stylish'`, `'compact'`)
211
- - `oxlintConfig`: Configuración específica de OxLint
212
- - `rules`: Reglas personalizadas
213
- - `plugins`: Plugins de OxLint
214
- - `deny`: Reglas a denegar
215
- - `allow`: Reglas a permitir
216
-
217
- #### `bundlers`
218
-
219
- Array de configuraciones de bundling:
220
-
221
- - `name`: Nombre del bundle
222
- - `fileInput`: Archivo de entrada
223
- - `fileOutput`: Archivo de salida
224
-
225
- ## 🎯 Ejemplos de Uso
226
-
227
- ### Desarrollo Local
228
-
229
- ```bash
230
- # Iniciar servidor de desarrollo con HMR
231
- versacompiler --watch
232
-
233
- # Desarrollo con información detallada
234
- versacompiler --watch --verbose
235
-
236
- # Compilación específica durante desarrollo
237
- versacompiler --file src/main.ts
238
-
239
- # Solo linting durante desarrollo
240
- versacompiler --linter
241
-
242
- # Desarrollo con limpieza de caché
243
- versacompiler --watch --cleanCache
244
- ```
245
-
246
- ### Compilación para Producción
247
-
248
- ```bash
249
- # Build completo para producción
250
- versacompiler --all --prod
251
-
252
- # Build con limpieza previa
253
- versacompiler --all --prod --cleanOutput --cleanCache
254
-
255
- # Build silencioso para CI/CD
256
- versacompiler --all --prod --yes
257
-
258
- # Build con análisis detallado
259
- versacompiler --all --prod --verbose
260
- ```
261
-
262
- ### Flujos de Trabajo Específicos
263
-
264
- ```bash
265
- # Compilar solo archivos modificados
266
- versacompiler file1.vue file2.ts file3.js
267
-
268
- # Verificación de tipos específica
269
- versacompiler --typeCheck --file src/types/api.ts
270
-
271
- # Solo TailwindCSS
272
- versacompiler --tailwind
273
-
274
- # Compilación híbrida (linting + compilación)
275
- versacompiler --all --linter --typeCheck
276
- ```
277
-
278
- ### Integración CI/CD
279
-
280
- ```bash
281
- # Pipeline de CI completo
282
- versacompiler --linter # 1. Verificar código
283
- versacompiler --typeCheck --all # 2. Verificar tipos
284
- versacompiler --all --prod --yes # 3. Build para producción
285
- ```
286
-
287
- ## 🧩 Casos de Uso Avanzados
288
-
289
- ### 🎮 Desarrollo de Componentes Vue
290
-
291
- ```bash
292
- # Compilación específica de componente con hot reload
293
- versacompiler --watch --file src/components/GameBoard.vue
294
-
295
- # Desarrollo con validación de tipos estricta
296
- versacompiler --watch --typeCheck --verbose
297
-
298
- # Solo compilar estilos para rapid prototyping
299
- versacompiler --tailwind --file src/styles/components.css
300
- ```
301
-
302
- ### 🏢 Proyectos Enterprise
303
-
304
- ```bash
305
- # Validación completa antes de commit
306
- versacompiler --linter --typeCheck --all
307
-
308
- # Build optimizado para múltiples entornos
309
- versacompiler --all --prod --cleanOutput --verbose
310
-
311
- # Análisis de bundle para optimización
312
- versacompiler --all --prod --verbose | grep "Bundle"
313
- ```
314
-
315
- ### 🧪 Testing y CI/CD
316
-
317
- ```bash
318
- # Pre-commit hooks
319
- versacompiler --linter --typeCheck --cleanCache
320
-
321
- # GitHub Actions / CI Pipeline
322
- versacompiler --all --prod --yes --verbose
323
-
324
- # Testing de componentes individuales
325
- versacompiler --file tests/components/Button.test.ts
326
- ```
327
-
328
- ### 🎨 Design System Development
329
-
330
- ```bash
331
- # Compilación de componentes de design system
332
- versacompiler --watch src/design-system/components/
333
-
334
- # Build de librería de componentes
335
- versacompiler --all --prod src/design-system/
336
-
337
- # Validación de tokens de diseño
338
- versacompiler --tailwind --verbose
339
- ```
340
-
341
- ## 🏗️ Funcionalidades
342
-
343
- ### 🔥 Hot Module Replacement (HMR)
344
-
345
- - **Componentes Vue**: Actualizaciones instantáneas preservando estado de componentes
346
- - **TypeScript/JavaScript**: Recarga inteligente de módulos sin perder contexto
347
- - **CSS/TailwindCSS**: Inyección de estilos en tiempo real
348
- - **Key-based updates**: Sistema de keys únicos para identificación de componentes
349
-
350
- ### 🚀 Sistema de Compilación Avanzado
351
-
352
- - **Worker Threads**: Pool de workers TypeScript optimizado para CPU cores
353
- - **Cache inteligente**: Sistema de cache por archivos con invalidación automática
354
- - **Compilación incremental**: Solo recompila archivos modificados
355
- - **Progress tracking**: Métricas en tiempo real con timing detallado
356
- - **Lazy loading**: Carga de módulos bajo demanda para máxima eficiencia
357
-
358
- ### 🔍 Sistema de Linting Dual de Nueva Generación
359
-
360
- - **ESLint**: Análisis profundo de código JavaScript/TypeScript/Vue
361
- - Soporte para múltiples formatos de salida (json, stylish, compact)
362
- - Cache inteligente para acelerar análisis repetitivos
363
- - Auto-fix avanzado con preservación de formato
364
- - **OxLint**: Linter ultra-rápido escrito en Rust
365
- - Análisis paralelo de archivos
366
- - Reglas optimizadas para Vue 3 y TypeScript moderno
367
- - Integración con tsconfig.json
368
-
369
- ### 📝 TypeScript de Última Generación
370
-
371
- - **Language Service Host**: Validación de tipos completa y optimizada
372
- - **Soporte para Decorators**: Experimental decorators y emit decorator metadata
373
- - **Archivos virtuales**: Soporte para archivos .vue como .vue.ts
374
- - **Worker-based validation**: Validación de tipos en threads separados
375
- - **Fallback inteligente**: Modo sincrónico para entornos de testing
376
- - **Error filtering**: Filtrado inteligente de errores específicos de TypeScript
377
-
378
- ### 🧩 Soporte Vue 3 de Nivel Profesional
379
-
380
- - **Vue 3.5 Support**: Soporte completo para las últimas características
381
- - **Script Setup**: Compilación optimizada de composition API
382
- - **CSS Modules**: Soporte completo para CSS modules con hashing
383
- - **Scoped Styles**: Compilación de estilos scoped con scope IDs únicos
384
- - **SCSS/Sass**: Preprocesadores CSS integrados
385
- - **Custom Blocks**: Soporte para bloques personalizados en SFC
386
- - **Slots avanzados**: Compilación optimizada de slots con fallbacks
387
-
388
- ### 📦 Minificación y Optimización
389
-
390
- - **OxcMinify**: Minificador de última generación escrito en Rust
391
- - **Tree shaking**: Eliminación inteligente de código no utilizado
392
- - **Variable mangling**: Renombrado de variables para máxima compresión
393
- - **Dead code elimination**: Eliminación de código muerto
394
- - **Compresión avanzada**: Algoritmos de compresión optimizados
395
- - **Source maps**: Generación de source maps en desarrollo
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
-
481
- ### 🛠️ Gestión de Archivos y Cache
482
-
483
- - **Sistema de cache multinivel**: Cache de configuraciones, compilaciones y validaciones
484
- - **Invalidación inteligente**: Cache invalidation basado en timestamps y dependencias
485
- - **Compilación granular**: Compilación por archivo individual o en lotes
486
- - **Gestión de dependencias**: Tracking automático de dependencias entre archivos
487
- - **Limpieza automática**: Auto-limpieza de archivos obsoletos
488
-
489
- ### 🎨 TailwindCSS Integrado
490
-
491
- - **Compilación automática**: Watch mode integrado para cambios en CSS
492
- - **Optimización de producción**: Minificación y purging automático
493
- - **Content scanning**: Escaneo inteligente de archivos para clases utilizadas
494
- - **Config personalizada**: Soporte para configuraciones personalizadas de Tailwind
495
-
496
- ## 🚧 Troubleshooting
497
-
498
- ### ❌ Problemas Frecuentes
499
-
500
- #### 🔍 Error: "Cannot resolve module" o problemas de imports
501
-
502
- ```bash
503
- # Verificar configuración de aliases y paths
504
- versacompiler --verbose --file problemFile.ts
505
-
506
- # Limpiar cache TypeScript si persiste
507
- versacompiler --cleanCache
508
-
509
- # Verificar configuración en tsconfig.json
510
- cat tsconfig.json | grep -A 10 "paths"
511
- ```
512
-
513
- #### 🔥 HMR no funciona correctamente
514
-
515
- ```typescript
516
- // Verificar configuración en versacompile.config.ts
517
- export default {
518
- proxyConfig: {
519
- proxyUrl: '', // Vacío si no usas proxy backend
520
- assetsOmit: true,
521
- },
522
- };
523
- ```
524
-
525
- ```bash
526
- # Reiniciar con limpieza de cache
527
- versacompiler --watch --cleanCache
528
- ```
529
-
530
- #### 🐌 Compilación o linting muy lento
531
-
532
- ```bash
533
- # Usar solo OxLint para máxima velocidad
534
- versacompiler --linter --verbose
535
-
536
- # Verificar si worker threads están activos
537
- versacompiler --verbose --typeCheck
538
-
539
- # Limpiar cache si está corrupto
540
- versacompiler --cleanCache --cleanOutput
541
- ```
542
-
543
- #### 🔴 Errores de TypeScript en archivos Vue
544
-
545
- ```bash
546
- # Verificar soporte para decorators en tsconfig.json
547
- {
548
- "compilerOptions": {
549
- "experimentalDecorators": true,
550
- "emitDecoratorMetadata": true
551
- }
552
- }
553
-
554
- # Ejecutar solo verificación de tipos
555
- versacompiler --typeCheck --file Component.vue
556
- ```
557
-
558
- #### ⚠️ Warnings de dependencias o módulos
559
-
560
- ```bash
561
- # Verificar si las dependencias están instaladas
562
- npm install
563
-
564
- # Revisar configuración de paths en versacompile.config.ts
565
- versacompiler --verbose --file problematicFile.ts
566
- ```
567
-
568
- #### 🎨 TailwindCSS no se actualiza
569
-
570
- ```bash
571
- # Verificar configuración de Tailwind
572
- versacompiler --tailwind --verbose
573
-
574
- # Limpiar cache de TailwindCSS
575
- rm -rf ./node_modules/.cache/tailwindcss
576
- versacompiler --tailwind --cleanCache
577
- ```
578
-
579
- ### 🔧 Configuraciones de Debug
580
-
581
- #### Habilitar logging detallado
582
-
583
- ```bash
584
- # Máximo nivel de detalle
585
- versacompiler --verbose --all
586
-
587
- # Debug específico por archivo
588
- versacompiler --verbose --file src/problematicFile.vue
589
- ```
590
-
591
- #### Verificar configuración activa
592
-
593
- ```bash
594
- # Ver configuración cargada
595
- versacompiler --verbose --init # Muestra config actual
596
- ```
597
-
598
- #### Performance profiling
599
-
600
- ```bash
601
- # Analizar performance de compilación
602
- versacompiler --verbose --all --prod
603
- # Revisar timings en la salida
604
- ```
605
-
606
- ## 📚 Documentación
607
-
608
- - 📖 [**Guía de Inicio Rápido**](./docs/getting-started.md)
609
- - 📋 [**Configuración Avanzada**](./docs/configuration.md)
610
- - 🎯 [**Ejemplos y Recetas**](./docs/examples.md)
611
- - 🔧 [**API Reference**](./docs/api.md)
612
- - 🔄 [**Guía de Migración**](./docs/migration.md)
613
- - 🤝 [**Guía de Contribución**](./docs/contributing.md)
614
- - ❓ [**FAQ - Preguntas Frecuentes**](./docs/faq.md)
615
-
616
- ## 🧪 Testing
617
-
618
- ```bash
619
- # Ejecutar tests
620
- npm test
621
-
622
- # Tests con coverage
623
- npm run test:coverage
624
-
625
- # Tests en modo watch
626
- npm run test:watch
627
- ```
628
-
629
- ## 🤝 Contribuir
630
-
631
- ¡Las contribuciones son bienvenidas! Ver [CONTRIBUTING.md](./docs/contributing.md) para detalles.
632
-
633
- ### 🛠️ Desarrollo Local
634
-
635
- ```bash
636
- git clone https://github.com/kriollo/versaCompiler.git
637
- cd versaCompiler
638
- npm install
639
- npm run dev
640
- ```
641
-
642
- ## 📄 Licencia
643
-
644
- MIT © [Jorge Jara H](https://github.com/kriollo)
645
-
646
- ## 🙏 Agradecimientos
647
-
648
- - **Vue.js Team** - Por el increíble framework
649
- - **TypeScript Team** - Por el excelente sistema de tipos
650
- - **Oxc Project** - Por las herramientas de desarrollo ultra-rápidas
651
- - **Comunidad Open Source** - Por el feedback y contribuciones
652
-
653
- ---
654
-
655
- ## 🔧 Arquitectura Técnica
656
-
657
- ### Compilación de Archivos
658
-
659
- - **JavaScript (.js)**: Procesamiento, transformaciones y optimización con placement inteligente
660
- - **TypeScript (.ts)**: Transpilación completa usando TypeScript Compiler API con Language Service
661
- - **Vue SFC (.vue)**: Compilación completa de Single File Components con:
662
- - Script compilation (incluyendo script setup)
663
- - Template compilation con optimizaciones
664
- - Style compilation (CSS, SCSS, CSS Modules, Scoped)
665
- - Custom blocks processing
666
-
667
- ### Sistema de Workers Avanzado
668
-
669
- - **TypeScript Worker Threads**: Validación de tipos en procesos separados
670
- - **Fallback sincrónico**: Detección automática de entorno de testing
671
- - **Pool de workers**: Optimizado según CPU cores disponibles
672
- - **Cache de validación**: Resultados de validación persistentes
673
-
674
- ### Minificación de Última Generación
675
-
676
- - **OxcMinify**: Minificador ultra-rápido en Rust para modo `--prod`
677
- - **Variable mangling**: Renombrado inteligente de variables
678
- - **Dead code elimination**: Eliminación de código no utilizado
679
- - **Modern JavaScript**: Preservación de sintaxis ES2020+
680
-
681
- ### Sistema de Observación de Archivos
682
-
683
- - **Chokidar**: Observación eficiente de cambios en archivos
684
- - **Debounced compilation**: Evita recompilaciones excesivas
685
- - **Dependency tracking**: Seguimiento de dependencias entre archivos
686
- - **Hot Module Replacement**: Actualizaciones sin perder estado
687
-
688
- ### Cache Multinivel
689
-
690
- - **Configuration cache**: Cache de tsconfig.json y configuraciones
691
- - **Compilation cache**: Resultados de compilación por archivo
692
- - **TypeScript cache**: Cache del Language Service Host
693
- - **File system cache**: Cache de lecturas de archivos
694
-
695
- ### Dependencias Principales
696
-
697
- - **Vue.js**: `vue/compiler-sfc` para compilación de SFC
698
- - **TypeScript**: Compiler API completa con Language Service Host
699
- - **OxcMinify**: Minificación ultra-optimizada
700
- - **OxLint**: Linting ultra-rápido en Rust
701
- - **ESLint**: Análisis profundo de código
702
- - **Chokidar**: Observación de archivos
703
- - **BrowserSync**: Servidor de desarrollo con HMR
704
- - **TailwindCSS**: Compilación de utilidades CSS
705
-
706
- ### Optimizaciones de Performance
707
-
708
- - **Lazy loading**: Carga de módulos bajo demanda
709
- - **Module manager**: Gestión inteligente de dependencias pesadas
710
- - **Compilation batching**: Agrupación de compilaciones
711
- - **Progressive compilation**: Compilación incremental
712
- - **Memory management**: Gestión optimizada de memoria en workers
713
-
714
- ---
715
-
716
- <div align="center">
717
-
718
- **¿Te gusta VersaCompiler? ¡Dale una ⭐ en GitHub!**
719
-
720
- [🐛 Reportar Bug](https://github.com/kriollo/versaCompiler/issues) • [✨ Feature Request](https://github.com/kriollo/versaCompiler/issues) • [💬 Discusiones](https://github.com/kriollo/versaCompiler/discussions)
721
-
722
- </div>
1
+ # 🚀 VersaCompiler
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+ [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
5
+ [![Vue.js](https://img.shields.io/badge/Vue.js-35495E?style=flat&logo=vuedotjs&logoColor=4FC08D)](https://vuejs.org/)
6
+
7
+ > **🎯 Compilador rápido y eficiente para Vue.js, TypeScript y JavaScript con Hot Module Replacement (HMR) integrado.**
8
+
9
+ **VersaCompiler** es una herramienta de compilación diseñada para proyectos Vue 3 con soporte completo para TypeScript, JavaScript y todas las funcionalidades modernas que necesitas para desarrollo web.
10
+
11
+ ## 🌟 Características Principales
12
+
13
+ - ⚡ **Compilación ultra-rápida** - Workers paralelos y cache inteligente
14
+ - 🔥 **HMR Automático (como Vite)** - Detección inteligente sin configuración manual, igual que Vite y esbuild
15
+ - 🧩 **Soporte completo para Vue 3** - SFC, Composition API, script setup
16
+ - 📝 **TypeScript avanzado** - Language Service, decorators, validación de tipos
17
+ - 🔍 **Sistema de linting dual** - ESLint + OxLint con auto-fix
18
+ - 🎨 **TailwindCSS integrado** - Compilación automática y optimizada
19
+ - 🗜️ **Minificación de última generación** - OxcMinify para builds ultra-optimizados
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)
22
+ - 🛠️ **Compilación por archivo** - Granular control de compilación
23
+ - 🧹 **Gestión de caché avanzada** - Cache automático con invalidación inteligente
24
+
25
+ ## ⚡ Instalación
26
+
27
+ ### 📦 Desde código fuente
28
+
29
+ ```bash
30
+ git clone https://github.com/kriollo/versaCompiler.git
31
+ cd versaCompiler
32
+ npm install
33
+ npm run build
34
+ ```
35
+
36
+ ### 🔗 Instalación local en tu proyecto
37
+
38
+ ```bash
39
+ # Copiar archivos compilados a tu proyecto
40
+ cp -r dist/* tu-proyecto/versacompiler/
41
+ ```
42
+
43
+ ## 🎯 Quick Start
44
+
45
+ ### 1. Configuración inicial
46
+
47
+ ```bash
48
+ # Crear archivo de configuración
49
+ versacompiler --init
50
+ ```
51
+
52
+ ### 2. Estructura de proyecto
53
+
54
+ ```
55
+ mi-proyecto/
56
+ ├── src/ # 📝 Código fuente
57
+ │ ├── components/ # 🧩 Componentes Vue
58
+ │ └── main.ts # 🚀 Punto de entrada
59
+ ├── dist/ # 📦 Archivos compilados (auto-generado)
60
+ ├── versacompile.config.ts # ⚙️ Configuración
61
+ └── package.json
62
+ ```
63
+
64
+ ### 3. Comandos básicos
65
+
66
+ ```bash
67
+ # 🔥 Desarrollo con auto-reload y HMR
68
+ versacompiler --watch
69
+
70
+ # 🔥 Desarrollo con análisis detallado
71
+ versacompiler --watch --verbose
72
+
73
+ # 🏗️ Compilar todo el proyecto
74
+ versacompiler --all
75
+
76
+ # 📄 Compilar archivo específico
77
+ versacompiler --file src/components/MyComponent.vue
78
+
79
+ # 📝 Compilar múltiples archivos específicos
80
+ versacompiler src/main.ts src/components/App.vue
81
+
82
+ # 🚀 Build para producción (minificado)
83
+ versacompiler --all --prod
84
+
85
+ # 🛡️ Build con validación de integridad (recomendado para deploy)
86
+ versacompiler --all --prod --checkIntegrity
87
+
88
+ # 🧹 Limpiar y recompilar todo
89
+ versacompiler --all --cleanOutput --cleanCache
90
+
91
+ # 🔍 Solo verificar código (linting)
92
+ versacompiler --linter
93
+
94
+ # 🎨 Solo compilar TailwindCSS
95
+ versacompiler --tailwind
96
+
97
+ # ⚡ Compilación rápida con confirmación automática
98
+ versacompiler --all --prod --yes
99
+
100
+ # 🔬 Verificación de tipos específica
101
+ versacompiler --typeCheck --file src/types.ts
102
+ ```
103
+
104
+ ## 📖 Configuración
105
+
106
+ ### 🛠️ Comandos CLI Disponibles
107
+
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 |
125
+
126
+ ### 🔧 Archivo de configuración
127
+
128
+ Crea un archivo `versacompile.config.ts` en la raíz de tu proyecto:
129
+
130
+ ```typescript
131
+ // Archivo de configuración de VersaCompiler
132
+ export default {
133
+ tsconfig: './tsconfig.json',
134
+ compilerOptions: {
135
+ sourceRoot: './src',
136
+ outDir: './dist',
137
+ pathsAlias: {
138
+ '@/*': ['src/*'],
139
+ 'P@/*': ['public/*'],
140
+ },
141
+ },
142
+ proxyConfig: {
143
+ proxyUrl: '',
144
+ assetsOmit: true,
145
+ },
146
+ aditionalWatch: ['./app/templates/**/*.twig'],
147
+ tailwindConfig: {
148
+ bin: './node_modules/.bin/tailwindcss',
149
+ input: './src/css/input.css',
150
+ output: './public/css/output.css',
151
+ },
152
+ linter: [
153
+ {
154
+ name: 'eslint',
155
+ bin: './node_modules/.bin/eslint',
156
+ configFile: './eslint.config.js',
157
+ fix: false,
158
+ paths: ['src/'],
159
+ },
160
+ {
161
+ name: 'oxlint',
162
+ bin: './node_modules/.bin/oxlint',
163
+ configFile: './.oxlintrc.json',
164
+ fix: false,
165
+ paths: ['src/'],
166
+ },
167
+ ],
168
+ bundlers: [
169
+ {
170
+ name: 'appLoader',
171
+ fileInput: './public/module/appLoader.js',
172
+ fileOutput: './public/module/appLoader.prod.js',
173
+ },
174
+ ],
175
+ };
176
+ ```
177
+
178
+ ### 📝 Opciones de configuración
179
+
180
+ #### `compilerOptions`
181
+
182
+ - `sourceRoot`: Directorio de archivos fuente (por defecto: `'./src'`)
183
+ - `outDir`: Directorio de salida (por defecto: `'./dist'`)
184
+ - `pathsAlias`: Aliases para imports (ej: `'@/*': ['src/*']`)
185
+
186
+ #### `proxyConfig`
187
+
188
+ - `proxyUrl`: URL del proxy para desarrollo
189
+ - `assetsOmit`: Omitir assets en el proxy
190
+
191
+ #### `tailwindConfig`
192
+
193
+ - `bin`: Ruta al binario de TailwindCSS
194
+ - `input`: Archivo CSS de entrada
195
+ - `output`: Archivo CSS de salida
196
+
197
+ #### `linter`
198
+
199
+ Array de configuraciones de linters avanzadas:
200
+
201
+ - `name`: Nombre del linter (`'eslint'` o `'oxlint'`)
202
+ - `bin`: Ruta al binario del linter
203
+ - `configFile`: Archivo de configuración del linter
204
+ - `fix`: Auto-fix de errores detectados
205
+ - `paths`: Rutas específicas a analizar
206
+ - `eslintConfig`: Configuración específica de ESLint
207
+ - `cache`: Habilitar cache de ESLint
208
+ - `maxWarnings`: Máximo número de warnings
209
+ - `quiet`: Mostrar solo errores
210
+ - `formats`: Formatos de salida (`'json'`, `'stylish'`, `'compact'`)
211
+ - `oxlintConfig`: Configuración específica de OxLint
212
+ - `rules`: Reglas personalizadas
213
+ - `plugins`: Plugins de OxLint
214
+ - `deny`: Reglas a denegar
215
+ - `allow`: Reglas a permitir
216
+
217
+ #### `bundlers`
218
+
219
+ Array de configuraciones de bundling:
220
+
221
+ - `name`: Nombre del bundle
222
+ - `fileInput`: Archivo de entrada
223
+ - `fileOutput`: Archivo de salida
224
+
225
+ ## 🎯 Ejemplos de Uso
226
+
227
+ ### Desarrollo Local
228
+
229
+ ```bash
230
+ # Iniciar servidor de desarrollo con HMR
231
+ versacompiler --watch
232
+
233
+ # Desarrollo con información detallada
234
+ versacompiler --watch --verbose
235
+
236
+ # Compilación específica durante desarrollo
237
+ versacompiler --file src/main.ts
238
+
239
+ # Solo linting durante desarrollo
240
+ versacompiler --linter
241
+
242
+ # Desarrollo con limpieza de caché
243
+ versacompiler --watch --cleanCache
244
+ ```
245
+
246
+ ### Compilación para Producción
247
+
248
+ ```bash
249
+ # Build completo para producción
250
+ versacompiler --all --prod
251
+
252
+ # Build con limpieza previa
253
+ versacompiler --all --prod --cleanOutput --cleanCache
254
+
255
+ # Build silencioso para CI/CD
256
+ versacompiler --all --prod --yes
257
+
258
+ # Build con análisis detallado
259
+ versacompiler --all --prod --verbose
260
+ ```
261
+
262
+ ### Flujos de Trabajo Específicos
263
+
264
+ ```bash
265
+ # Compilar solo archivos modificados
266
+ versacompiler file1.vue file2.ts file3.js
267
+
268
+ # Verificación de tipos específica
269
+ versacompiler --typeCheck --file src/types/api.ts
270
+
271
+ # Solo TailwindCSS
272
+ versacompiler --tailwind
273
+
274
+ # Compilación híbrida (linting + compilación)
275
+ versacompiler --all --linter --typeCheck
276
+ ```
277
+
278
+ ### Integración CI/CD
279
+
280
+ ```bash
281
+ # Pipeline de CI completo
282
+ versacompiler --linter # 1. Verificar código
283
+ versacompiler --typeCheck --all # 2. Verificar tipos
284
+ versacompiler --all --prod --yes # 3. Build para producción
285
+ ```
286
+
287
+ ## 🧩 Casos de Uso Avanzados
288
+
289
+ ### 🎮 Desarrollo de Componentes Vue
290
+
291
+ ```bash
292
+ # Compilación específica de componente con hot reload
293
+ versacompiler --watch --file src/components/GameBoard.vue
294
+
295
+ # Desarrollo con validación de tipos estricta
296
+ versacompiler --watch --typeCheck --verbose
297
+
298
+ # Solo compilar estilos para rapid prototyping
299
+ versacompiler --tailwind --file src/styles/components.css
300
+ ```
301
+
302
+ ### 🏢 Proyectos Enterprise
303
+
304
+ ```bash
305
+ # Validación completa antes de commit
306
+ versacompiler --linter --typeCheck --all
307
+
308
+ # Build optimizado para múltiples entornos
309
+ versacompiler --all --prod --cleanOutput --verbose
310
+
311
+ # Análisis de bundle para optimización
312
+ versacompiler --all --prod --verbose | grep "Bundle"
313
+ ```
314
+
315
+ ### 🧪 Testing y CI/CD
316
+
317
+ ```bash
318
+ # Pre-commit hooks
319
+ versacompiler --linter --typeCheck --cleanCache
320
+
321
+ # GitHub Actions / CI Pipeline
322
+ versacompiler --all --prod --yes --verbose
323
+
324
+ # Testing de componentes individuales
325
+ versacompiler --file tests/components/Button.test.ts
326
+ ```
327
+
328
+ ### 🎨 Design System Development
329
+
330
+ ```bash
331
+ # Compilación de componentes de design system
332
+ versacompiler --watch src/design-system/components/
333
+
334
+ # Build de librería de componentes
335
+ versacompiler --all --prod src/design-system/
336
+
337
+ # Validación de tokens de diseño
338
+ versacompiler --tailwind --verbose
339
+ ```
340
+
341
+ ## 🏗️ Funcionalidades
342
+
343
+ ### 🔥 Hot Module Replacement (HMR)
344
+
345
+ - **Componentes Vue**: Actualizaciones instantáneas preservando estado de componentes
346
+ - **TypeScript/JavaScript**: Recarga inteligente de módulos sin perder contexto
347
+ - **CSS/TailwindCSS**: Inyección de estilos en tiempo real
348
+ - **Key-based updates**: Sistema de keys únicos para identificación de componentes
349
+
350
+ ### 🚀 Sistema de Compilación Avanzado
351
+
352
+ - **Worker Threads**: Pool de workers TypeScript optimizado para CPU cores
353
+ - **Cache inteligente**: Sistema de cache por archivos con invalidación automática
354
+ - **Compilación incremental**: Solo recompila archivos modificados
355
+ - **Progress tracking**: Métricas en tiempo real con timing detallado
356
+ - **Lazy loading**: Carga de módulos bajo demanda para máxima eficiencia
357
+
358
+ ### 🔍 Sistema de Linting Dual de Nueva Generación
359
+
360
+ - **ESLint**: Análisis profundo de código JavaScript/TypeScript/Vue
361
+ - Soporte para múltiples formatos de salida (json, stylish, compact)
362
+ - Cache inteligente para acelerar análisis repetitivos
363
+ - Auto-fix avanzado con preservación de formato
364
+ - **OxLint**: Linter ultra-rápido escrito en Rust
365
+ - Análisis paralelo de archivos
366
+ - Reglas optimizadas para Vue 3 y TypeScript moderno
367
+ - Integración con tsconfig.json
368
+
369
+ ### 📝 TypeScript de Última Generación
370
+
371
+ - **Language Service Host**: Validación de tipos completa y optimizada
372
+ - **Soporte para Decorators**: Experimental decorators y emit decorator metadata
373
+ - **Archivos virtuales**: Soporte para archivos .vue como .vue.ts
374
+ - **Worker-based validation**: Validación de tipos en threads separados
375
+ - **Fallback inteligente**: Modo sincrónico para entornos de testing
376
+ - **Error filtering**: Filtrado inteligente de errores específicos de TypeScript
377
+
378
+ ### 🧩 Soporte Vue 3 de Nivel Profesional
379
+
380
+ - **Vue 3.5 Support**: Soporte completo para las últimas características
381
+ - **Script Setup**: Compilación optimizada de composition API
382
+ - **CSS Modules**: Soporte completo para CSS modules con hashing
383
+ - **Scoped Styles**: Compilación de estilos scoped con scope IDs únicos
384
+ - **SCSS/Sass**: Preprocesadores CSS integrados
385
+ - **Custom Blocks**: Soporte para bloques personalizados en SFC
386
+ - **Slots avanzados**: Compilación optimizada de slots con fallbacks
387
+
388
+ ### 📦 Minificación y Optimización
389
+
390
+ - **OxcMinify**: Minificador de última generación escrito en Rust
391
+ - **Tree shaking**: Eliminación inteligente de código no utilizado
392
+ - **Variable mangling**: Renombrado de variables para máxima compresión
393
+ - **Dead code elimination**: Eliminación de código muerto
394
+ - **Compresión avanzada**: Algoritmos de compresión optimizados
395
+ - **Source maps**: Generación de source maps en desarrollo
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
+
481
+ ### 🛠️ Gestión de Archivos y Cache
482
+
483
+ - **Sistema de cache multinivel**: Cache de configuraciones, compilaciones y validaciones
484
+ - **Invalidación inteligente**: Cache invalidation basado en timestamps y dependencias
485
+ - **Compilación granular**: Compilación por archivo individual o en lotes
486
+ - **Gestión de dependencias**: Tracking automático de dependencias entre archivos
487
+ - **Limpieza automática**: Auto-limpieza de archivos obsoletos
488
+
489
+ ### 🎨 TailwindCSS Integrado
490
+
491
+ - **Compilación automática**: Watch mode integrado para cambios en CSS
492
+ - **Optimización de producción**: Minificación y purging automático
493
+ - **Content scanning**: Escaneo inteligente de archivos para clases utilizadas
494
+ - **Config personalizada**: Soporte para configuraciones personalizadas de Tailwind
495
+
496
+ ## 🚧 Troubleshooting
497
+
498
+ ### ❌ Problemas Frecuentes
499
+
500
+ #### 🔍 Error: "Cannot resolve module" o problemas de imports
501
+
502
+ ```bash
503
+ # Verificar configuración de aliases y paths
504
+ versacompiler --verbose --file problemFile.ts
505
+
506
+ # Limpiar cache TypeScript si persiste
507
+ versacompiler --cleanCache
508
+
509
+ # Verificar configuración en tsconfig.json
510
+ cat tsconfig.json | grep -A 10 "paths"
511
+ ```
512
+
513
+ #### 🔥 HMR no funciona correctamente
514
+
515
+ ```typescript
516
+ // Verificar configuración en versacompile.config.ts
517
+ export default {
518
+ proxyConfig: {
519
+ proxyUrl: '', // Vacío si no usas proxy backend
520
+ assetsOmit: true,
521
+ },
522
+ };
523
+ ```
524
+
525
+ ```bash
526
+ # Reiniciar con limpieza de cache
527
+ versacompiler --watch --cleanCache
528
+ ```
529
+
530
+ #### 🐌 Compilación o linting muy lento
531
+
532
+ ```bash
533
+ # Usar solo OxLint para máxima velocidad
534
+ versacompiler --linter --verbose
535
+
536
+ # Verificar si worker threads están activos
537
+ versacompiler --verbose --typeCheck
538
+
539
+ # Limpiar cache si está corrupto
540
+ versacompiler --cleanCache --cleanOutput
541
+ ```
542
+
543
+ #### 🔴 Errores de TypeScript en archivos Vue
544
+
545
+ ```bash
546
+ # Verificar soporte para decorators en tsconfig.json
547
+ {
548
+ "compilerOptions": {
549
+ "experimentalDecorators": true,
550
+ "emitDecoratorMetadata": true
551
+ }
552
+ }
553
+
554
+ # Ejecutar solo verificación de tipos
555
+ versacompiler --typeCheck --file Component.vue
556
+ ```
557
+
558
+ #### ⚠️ Warnings de dependencias o módulos
559
+
560
+ ```bash
561
+ # Verificar si las dependencias están instaladas
562
+ npm install
563
+
564
+ # Revisar configuración de paths en versacompile.config.ts
565
+ versacompiler --verbose --file problematicFile.ts
566
+ ```
567
+
568
+ #### 🎨 TailwindCSS no se actualiza
569
+
570
+ ```bash
571
+ # Verificar configuración de Tailwind
572
+ versacompiler --tailwind --verbose
573
+
574
+ # Limpiar cache de TailwindCSS
575
+ rm -rf ./node_modules/.cache/tailwindcss
576
+ versacompiler --tailwind --cleanCache
577
+ ```
578
+
579
+ ### 🔧 Configuraciones de Debug
580
+
581
+ #### Habilitar logging detallado
582
+
583
+ ```bash
584
+ # Máximo nivel de detalle
585
+ versacompiler --verbose --all
586
+
587
+ # Debug específico por archivo
588
+ versacompiler --verbose --file src/problematicFile.vue
589
+ ```
590
+
591
+ #### Verificar configuración activa
592
+
593
+ ```bash
594
+ # Ver configuración cargada
595
+ versacompiler --verbose --init # Muestra config actual
596
+ ```
597
+
598
+ #### Performance profiling
599
+
600
+ ```bash
601
+ # Analizar performance de compilación
602
+ versacompiler --verbose --all --prod
603
+ # Revisar timings en la salida
604
+ ```
605
+
606
+ ## 📚 Documentación
607
+
608
+ - 📖 [**Guía de Inicio Rápido**](./docs/getting-started.md)
609
+ - 📋 [**Configuración Avanzada**](./docs/configuration.md)
610
+ - 🎯 [**Ejemplos y Recetas**](./docs/examples.md)
611
+ - 🔧 [**API Reference**](./docs/api.md)
612
+ - 🔄 [**Guía de Migración**](./docs/migration.md)
613
+ - 🤝 [**Guía de Contribución**](./docs/contributing.md)
614
+ - ❓ [**FAQ - Preguntas Frecuentes**](./docs/faq.md)
615
+
616
+ ## 🧪 Testing
617
+
618
+ ```bash
619
+ # Ejecutar tests
620
+ npm test
621
+
622
+ # Tests con coverage
623
+ npm run test:coverage
624
+
625
+ # Tests en modo watch
626
+ npm run test:watch
627
+ ```
628
+
629
+ ## 🤝 Contribuir
630
+
631
+ ¡Las contribuciones son bienvenidas! Ver [CONTRIBUTING.md](./docs/contributing.md) para detalles.
632
+
633
+ ### 🛠️ Desarrollo Local
634
+
635
+ ```bash
636
+ git clone https://github.com/kriollo/versaCompiler.git
637
+ cd versaCompiler
638
+ npm install
639
+ npm run dev
640
+ ```
641
+
642
+ ## 📄 Licencia
643
+
644
+ MIT © [Jorge Jara H](https://github.com/kriollo)
645
+
646
+ ## 🙏 Agradecimientos
647
+
648
+ - **Vue.js Team** - Por el increíble framework
649
+ - **TypeScript Team** - Por el excelente sistema de tipos
650
+ - **Oxc Project** - Por las herramientas de desarrollo ultra-rápidas
651
+ - **Comunidad Open Source** - Por el feedback y contribuciones
652
+
653
+ ---
654
+
655
+ ## 🔧 Arquitectura Técnica
656
+
657
+ ### Compilación de Archivos
658
+
659
+ - **JavaScript (.js)**: Procesamiento, transformaciones y optimización con placement inteligente
660
+ - **TypeScript (.ts)**: Transpilación completa usando TypeScript Compiler API con Language Service
661
+ - **Vue SFC (.vue)**: Compilación completa de Single File Components con:
662
+ - Script compilation (incluyendo script setup)
663
+ - Template compilation con optimizaciones
664
+ - Style compilation (CSS, SCSS, CSS Modules, Scoped)
665
+ - Custom blocks processing
666
+
667
+ ### Sistema de Workers Avanzado
668
+
669
+ - **TypeScript Worker Threads**: Validación de tipos en procesos separados
670
+ - **Fallback sincrónico**: Detección automática de entorno de testing
671
+ - **Pool de workers**: Optimizado según CPU cores disponibles
672
+ - **Cache de validación**: Resultados de validación persistentes
673
+
674
+ ### Minificación de Última Generación
675
+
676
+ - **OxcMinify**: Minificador ultra-rápido en Rust para modo `--prod`
677
+ - **Variable mangling**: Renombrado inteligente de variables
678
+ - **Dead code elimination**: Eliminación de código no utilizado
679
+ - **Modern JavaScript**: Preservación de sintaxis ES2020+
680
+
681
+ ### Sistema de Observación de Archivos
682
+
683
+ - **Chokidar**: Observación eficiente de cambios en archivos
684
+ - **Debounced compilation**: Evita recompilaciones excesivas
685
+ - **Dependency tracking**: Seguimiento de dependencias entre archivos
686
+ - **Hot Module Replacement**: Actualizaciones sin perder estado
687
+
688
+ ### Cache Multinivel
689
+
690
+ - **Configuration cache**: Cache de tsconfig.json y configuraciones
691
+ - **Compilation cache**: Resultados de compilación por archivo
692
+ - **TypeScript cache**: Cache del Language Service Host
693
+ - **File system cache**: Cache de lecturas de archivos
694
+
695
+ ### Dependencias Principales
696
+
697
+ - **Vue.js**: `vue/compiler-sfc` para compilación de SFC
698
+ - **TypeScript**: Compiler API completa con Language Service Host
699
+ - **OxcMinify**: Minificación ultra-optimizada
700
+ - **OxLint**: Linting ultra-rápido en Rust
701
+ - **ESLint**: Análisis profundo de código
702
+ - **Chokidar**: Observación de archivos
703
+ - **BrowserSync**: Servidor de desarrollo con HMR
704
+ - **TailwindCSS**: Compilación de utilidades CSS
705
+
706
+ ### Optimizaciones de Performance
707
+
708
+ - **Lazy loading**: Carga de módulos bajo demanda
709
+ - **Module manager**: Gestión inteligente de dependencias pesadas
710
+ - **Compilation batching**: Agrupación de compilaciones
711
+ - **Progressive compilation**: Compilación incremental
712
+ - **Memory management**: Gestión optimizada de memoria en workers
713
+
714
+ ---
715
+
716
+ <div align="center">
717
+
718
+ **¿Te gusta VersaCompiler? ¡Dale una ⭐ en GitHub!**
719
+
720
+ [🐛 Reportar Bug](https://github.com/kriollo/versaCompiler/issues) • [✨ Feature Request](https://github.com/kriollo/versaCompiler/issues) • [💬 Discusiones](https://github.com/kriollo/versaCompiler/discussions)
721
+
722
+ </div>