versacompiler 2.2.0 → 2.3.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.
@@ -339,6 +339,9 @@ export class ModuleResolutionOptimizer {
339
339
  const dir = dirname(entryPoint);
340
340
  const baseName = entryPoint.split('/').pop() || '';
341
341
  const nameWithoutExt = baseName.replace(/\.[^/.]+$/, '');
342
+ // Determinar el nombre base sin sufijos como .runtime, .bundler, etc.
343
+ // Por ejemplo: vue.runtime.esm-bundler -> vue
344
+ const coreBaseName = nameWithoutExt.split('.')[0];
342
345
  const searchDir = join(moduleDir, dir);
343
346
  if (!existsSync(searchDir)) {
344
347
  return undefined;
@@ -346,15 +349,56 @@ export class ModuleResolutionOptimizer {
346
349
  try {
347
350
  const files = readdirSync(searchDir);
348
351
  this.metrics.filesystemAccess++;
349
- // Patrones de prioridad para versiones optimizadas
350
- const patterns = [
351
- `${nameWithoutExt}.esm-browser.js`,
352
- `${nameWithoutExt}.esm.js`,
353
- `${nameWithoutExt}.module.js`,
354
- `${nameWithoutExt}.browser.js`,
355
- ];
352
+ // Patrones de prioridad dinámicos según modo producción
353
+ const patterns = env.isPROD === 'true'
354
+ ? [
355
+ // 🏭 MODO PRODUCCIÓN: Priorizar versiones optimizadas
356
+ // Primero intentar con el nombre exacto
357
+ `${nameWithoutExt}.esm-browser.prod.js`,
358
+ `${nameWithoutExt}.esm-browser.min.js`,
359
+ // Luego con el nombre base (para casos como vue.runtime.esm-bundler -> vue.esm-browser.prod.js)
360
+ `${coreBaseName}.esm-browser.prod.js`,
361
+ `${coreBaseName}.esm-browser.min.js`,
362
+ `${coreBaseName}.runtime.esm-browser.prod.js`,
363
+ `${coreBaseName}.runtime.esm-browser.min.js`,
364
+ // Otros patrones ESM optimizados
365
+ `${nameWithoutExt}.esm.prod.js`,
366
+ `${nameWithoutExt}.esm.min.js`,
367
+ `${nameWithoutExt}.module.prod.js`,
368
+ `${nameWithoutExt}.module.min.js`,
369
+ `${nameWithoutExt}.browser.prod.js`,
370
+ `${nameWithoutExt}.browser.min.js`,
371
+ // Fallback a versiones de desarrollo
372
+ `${coreBaseName}.esm-browser.js`,
373
+ `${coreBaseName}.runtime.esm-browser.js`,
374
+ `${nameWithoutExt}.esm-browser.js`,
375
+ `${nameWithoutExt}.esm.js`,
376
+ `${nameWithoutExt}.module.js`,
377
+ `${nameWithoutExt}.browser.js`,
378
+ ]
379
+ : [
380
+ // 🔧 MODO DESARROLLO: Priorizar versiones sin minificar
381
+ // Primero con nombre exacto
382
+ `${nameWithoutExt}.esm-browser.js`,
383
+ // Luego con nombre base
384
+ `${coreBaseName}.esm-browser.js`,
385
+ `${coreBaseName}.runtime.esm-browser.js`,
386
+ // Otros patrones ESM
387
+ `${nameWithoutExt}.esm.js`,
388
+ `${nameWithoutExt}.module.js`,
389
+ `${nameWithoutExt}.browser.js`,
390
+ // Fallback a versiones de producción si no hay desarrollo
391
+ `${coreBaseName}.esm-browser.prod.js`,
392
+ `${coreBaseName}.runtime.esm-browser.prod.js`,
393
+ `${nameWithoutExt}.esm-browser.prod.js`,
394
+ `${nameWithoutExt}.esm.prod.js`,
395
+ ];
356
396
  for (const pattern of patterns) {
357
397
  if (files.includes(pattern)) {
398
+ if (env.VERBOSE === 'true') {
399
+ const mode = env.isPROD === 'true' ? '🏭 PROD' : '🔧 DEV';
400
+ logger.info(`${mode} Versión optimizada encontrada (${coreBaseName}): ${join(dir, pattern)}`);
401
+ }
358
402
  return join(dir, pattern);
359
403
  }
360
404
  }
@@ -1,7 +1,7 @@
1
1
  import { transform } from '/node_modules/oxc-transform/browser.js';
2
- export function traspileTStoJS(filePath, sourceCode) {
2
+ export async function traspileTStoJS(filePath, sourceCode) {
3
3
  try {
4
- const { code: outputText, declaration, errors: diagnostics, } = transform(filePath, sourceCode);
4
+ const { code: outputText, declaration, errors: diagnostics, } = await transform(filePath, sourceCode);
5
5
  return {
6
6
  outputText: outputText,
7
7
  declaration: declaration || '',
@@ -64,42 +64,81 @@ function findOptimalESMVersion(moduleDir, entryPoint) {
64
64
  return entryPoint;
65
65
  }
66
66
  try {
67
- const files = fs.readdirSync(searchDir); // Patrones de prioridad para buscar versiones optimizadas
68
- // Prioriza versiones completas de desarrollo para mejor debugging
69
- const priorityPatterns = [
70
- // Máxima prioridad: ESM-Browser completo (sin runtime, desarrollo)
71
- `${nameWithoutExt}.esm-browser.js`,
72
- // ESM puro sin minificar (desarrollo)
73
- `${nameWithoutExt}.esm.all.js`,
74
- `${nameWithoutExt}.esm.js`,
75
- `${nameWithoutExt}.module.js`,
76
- // Browser puro sin minificar (desarrollo)
77
- `${nameWithoutExt}.browser.js`,
78
- `${nameWithoutExt}.web.js`,
79
- // UMD sin minificar (desarrollo)
80
- `${nameWithoutExt}.umd.js`,
81
- `${nameWithoutExt}.global.js`,
82
- // Fallback a versiones minificadas sin runtime
83
- `${nameWithoutExt}.esm-browser.min.js`,
84
- `${nameWithoutExt}.esm-browser.prod.js`,
85
- `${nameWithoutExt}.esm.all.min.js`,
86
- `${nameWithoutExt}.esm.min.js`,
87
- `${nameWithoutExt}.module.min.js`,
88
- `${nameWithoutExt}.browser.min.js`,
89
- `${nameWithoutExt}.browser.prod.js`,
90
- `${nameWithoutExt}.web.min.js`,
91
- `${nameWithoutExt}.umd.min.js`,
92
- `${nameWithoutExt}.global.min.js`,
93
- `${nameWithoutExt}.min.js`,
94
- // Último recurso: versiones runtime (solo si no hay alternativas)
95
- `${nameWithoutExt}.runtime.esm-browser.js`,
96
- `${nameWithoutExt}.runtime.esm-browser.min.js`,
97
- `${nameWithoutExt}.runtime.esm-browser.prod.js`,
98
- ];
67
+ const files = fs.readdirSync(searchDir);
68
+ // Patrones de prioridad dinámicos según modo producción
69
+ const priorityPatterns = env.isPROD === 'true'
70
+ ? [
71
+ // 🏭 MODO PRODUCCIÓN: Priorizar versiones optimizadas
72
+ // Máxima prioridad: ESM-Browser producción
73
+ `${nameWithoutExt}.esm-browser.prod.js`,
74
+ `${nameWithoutExt}.esm-browser.min.js`,
75
+ // ESM producción
76
+ `${nameWithoutExt}.esm.prod.js`,
77
+ `${nameWithoutExt}.esm.min.js`,
78
+ `${nameWithoutExt}.module.prod.js`,
79
+ `${nameWithoutExt}.module.min.js`,
80
+ // Browser producción
81
+ `${nameWithoutExt}.browser.prod.js`,
82
+ `${nameWithoutExt}.browser.min.js`,
83
+ `${nameWithoutExt}.web.prod.js`,
84
+ `${nameWithoutExt}.web.min.js`,
85
+ // Global/UMD producción
86
+ `${nameWithoutExt}.global.prod.js`,
87
+ `${nameWithoutExt}.global.min.js`,
88
+ `${nameWithoutExt}.umd.prod.js`,
89
+ `${nameWithoutExt}.umd.min.js`,
90
+ `${nameWithoutExt}.min.js`,
91
+ // Fallback a versiones de desarrollo si no hay producción
92
+ `${nameWithoutExt}.esm-browser.js`,
93
+ `${nameWithoutExt}.esm.js`,
94
+ `${nameWithoutExt}.module.js`,
95
+ `${nameWithoutExt}.browser.js`,
96
+ `${nameWithoutExt}.web.js`,
97
+ `${nameWithoutExt}.umd.js`,
98
+ `${nameWithoutExt}.global.js`,
99
+ // Último recurso: versiones runtime
100
+ `${nameWithoutExt}.runtime.esm-browser.prod.js`,
101
+ `${nameWithoutExt}.runtime.esm-browser.min.js`,
102
+ `${nameWithoutExt}.runtime.esm-browser.js`,
103
+ ]
104
+ : [
105
+ // 🔧 MODO DESARROLLO: Priorizar versiones sin minificar
106
+ // Máxima prioridad: ESM-Browser desarrollo
107
+ `${nameWithoutExt}.esm-browser.js`,
108
+ // ESM puro sin minificar
109
+ `${nameWithoutExt}.esm.all.js`,
110
+ `${nameWithoutExt}.esm.js`,
111
+ `${nameWithoutExt}.module.js`,
112
+ // Browser puro sin minificar
113
+ `${nameWithoutExt}.browser.js`,
114
+ `${nameWithoutExt}.web.js`,
115
+ // UMD sin minificar
116
+ `${nameWithoutExt}.umd.js`,
117
+ `${nameWithoutExt}.global.js`,
118
+ // Fallback a versiones minificadas
119
+ `${nameWithoutExt}.esm-browser.prod.js`,
120
+ `${nameWithoutExt}.esm-browser.min.js`,
121
+ `${nameWithoutExt}.esm.prod.js`,
122
+ `${nameWithoutExt}.esm.min.js`,
123
+ `${nameWithoutExt}.module.min.js`,
124
+ `${nameWithoutExt}.browser.prod.js`,
125
+ `${nameWithoutExt}.browser.min.js`,
126
+ `${nameWithoutExt}.web.min.js`,
127
+ `${nameWithoutExt}.umd.min.js`,
128
+ `${nameWithoutExt}.global.min.js`,
129
+ `${nameWithoutExt}.min.js`,
130
+ // Último recurso: versiones runtime
131
+ `${nameWithoutExt}.runtime.esm-browser.js`,
132
+ `${nameWithoutExt}.runtime.esm-browser.min.js`,
133
+ `${nameWithoutExt}.runtime.esm-browser.prod.js`,
134
+ ];
99
135
  // Buscar archivos que coincidan exactamente con los patrones
100
136
  for (const pattern of priorityPatterns) {
101
137
  if (files.includes(pattern)) {
102
138
  const optimizedPath = join(dir, pattern).replace(/\\/g, '/');
139
+ if (env.VERBOSE === 'true') {
140
+ logger.info(`📦 Versión optimizada encontrada (${env.isPROD === 'true' ? 'PROD' : 'DEV'}): ${optimizedPath}`);
141
+ }
103
142
  return optimizedPath;
104
143
  }
105
144
  } // Buscar archivos que contengan patrones ESM/browser dinámicamente
@@ -118,18 +157,47 @@ function findOptimalESMVersion(moduleDir, entryPoint) {
118
157
  const esmBrowserCombined = esmBrowserFiles.filter((file) => file.toLowerCase().includes('.esm-browser.') &&
119
158
  !file.toLowerCase().includes('.runtime.'));
120
159
  if (esmBrowserCombined.length > 0) {
121
- // Dentro de esm-browser, priorizar desarrollo > .prod > .min
160
+ // MODO PRODUCCIÓN: Priorizar .prod.js o .min.js
161
+ if (env.isPROD === 'true') {
162
+ // Primera opción: archivos .prod.js
163
+ const prodFiles = esmBrowserCombined.filter((file) => file.toLowerCase().includes('.prod.'));
164
+ if (prodFiles.length > 0 && prodFiles[0]) {
165
+ const optimizedPath = join(dir, prodFiles[0]).replace(/\\/g, '/');
166
+ if (env.VERBOSE === 'true') {
167
+ logger.info(`🏭 Versión ESM-Browser producción encontrada: ${optimizedPath}`);
168
+ }
169
+ return optimizedPath;
170
+ }
171
+ // Segunda opción: archivos .min.js
172
+ const minFiles = esmBrowserCombined.filter((file) => file.toLowerCase().includes('.min.'));
173
+ if (minFiles.length > 0 && minFiles[0]) {
174
+ const optimizedPath = join(dir, minFiles[0]).replace(/\\/g, '/');
175
+ if (env.VERBOSE === 'true') {
176
+ logger.info(`🗜️ Versión ESM-Browser minificada encontrada: ${optimizedPath}`);
177
+ }
178
+ return optimizedPath;
179
+ }
180
+ // Fallback: si no hay .prod ni .min, usar desarrollo
181
+ if (env.VERBOSE === 'true') {
182
+ logger.warn('⚠️ No se encontró versión de producción, usando desarrollo');
183
+ }
184
+ }
185
+ // ✨ MODO DESARROLLO: Priorizar desarrollo > .prod > .min
122
186
  const devFiles = esmBrowserCombined.filter((file) => !file.toLowerCase().includes('.prod.') &&
123
187
  !file.toLowerCase().includes('.min.'));
124
188
  if (devFiles.length > 0 && devFiles[0]) {
125
189
  const optimizedPath = join(dir, devFiles[0]).replace(/\\/g, '/');
190
+ if (env.VERBOSE === 'true') {
191
+ logger.info(`🔧 Versión ESM-Browser desarrollo encontrada: ${optimizedPath}`);
192
+ }
126
193
  return optimizedPath;
127
194
  }
195
+ // Fallback en desarrollo: si no hay versión dev, usar prod
128
196
  const prodFiles = esmBrowserCombined.filter((file) => file.toLowerCase().includes('.prod.'));
129
197
  if (prodFiles.length > 0 && prodFiles[0]) {
130
198
  const optimizedPath = join(dir, prodFiles[0]).replace(/\\/g, '/');
131
199
  if (env.VERBOSE === 'true') {
132
- logger.info(`Versión ESM-Browser producción encontrada: ${optimizedPath}`);
200
+ logger.info(`Versión ESM-Browser producción encontrada (fallback): ${optimizedPath}`);
133
201
  }
134
202
  return optimizedPath;
135
203
  }
@@ -137,7 +205,7 @@ function findOptimalESMVersion(moduleDir, entryPoint) {
137
205
  if (minFiles.length > 0 && minFiles[0]) {
138
206
  const optimizedPath = join(dir, minFiles[0]).replace(/\\/g, '/');
139
207
  if (env.VERBOSE === 'true') {
140
- logger.info(`Versión ESM-Browser minificada encontrada: ${optimizedPath}`);
208
+ logger.info(`Versión ESM-Browser minificada encontrada (fallback): ${optimizedPath}`);
141
209
  }
142
210
  return optimizedPath;
143
211
  }
@@ -149,18 +217,36 @@ function findOptimalESMVersion(moduleDir, entryPoint) {
149
217
  return optimizedPath;
150
218
  }
151
219
  }
152
- // Segunda prioridad: cualquier versión ESM disponible (sin minificar)
153
- const esmFiles = esmBrowserFiles.filter((file) => (file.toLowerCase().includes('.esm.') ||
154
- file.toLowerCase().includes('.module.')) &&
155
- !file.toLowerCase().includes('.min.') &&
156
- !file.toLowerCase().includes('.prod.') &&
157
- !file.toLowerCase().includes('.runtime.'));
158
- if (esmFiles.length > 0 && esmFiles[0]) {
159
- const optimizedPath = join(dir, esmFiles[0]).replace(/\\/g, '/');
160
- if (env.VERBOSE === 'true') {
161
- logger.info(`Versión ESM dev encontrada: ${optimizedPath}`);
220
+ // Segunda prioridad: cualquier versión ESM disponible
221
+ if (env.isPROD === 'true') {
222
+ // En producción, buscar versiones minificadas/prod primero
223
+ const esmProdFiles = esmBrowserFiles.filter((file) => (file.toLowerCase().includes('.esm.') ||
224
+ file.toLowerCase().includes('.module.')) &&
225
+ (file.toLowerCase().includes('.prod.') ||
226
+ file.toLowerCase().includes('.min.')) &&
227
+ !file.toLowerCase().includes('.runtime.'));
228
+ if (esmProdFiles.length > 0 && esmProdFiles[0]) {
229
+ const optimizedPath = join(dir, esmProdFiles[0]).replace(/\\/g, '/');
230
+ if (env.VERBOSE === 'true') {
231
+ logger.info(`🏭 Versión ESM producción encontrada: ${optimizedPath}`);
232
+ }
233
+ return optimizedPath;
234
+ }
235
+ }
236
+ else {
237
+ // En desarrollo, buscar versiones sin minificar
238
+ const esmFiles = esmBrowserFiles.filter((file) => (file.toLowerCase().includes('.esm.') ||
239
+ file.toLowerCase().includes('.module.')) &&
240
+ !file.toLowerCase().includes('.min.') &&
241
+ !file.toLowerCase().includes('.prod.') &&
242
+ !file.toLowerCase().includes('.runtime.'));
243
+ if (esmFiles.length > 0 && esmFiles[0]) {
244
+ const optimizedPath = join(dir, esmFiles[0]).replace(/\\/g, '/');
245
+ if (env.VERBOSE === 'true') {
246
+ logger.info(`🔧 Versión ESM desarrollo encontrada: ${optimizedPath}`);
247
+ }
248
+ return optimizedPath;
162
249
  }
163
- return optimizedPath;
164
250
  }
165
251
  // Tercera prioridad: archivos minificados de cualquier tipo ESM/browser (sin runtime)
166
252
  const minifiedFiles = esmBrowserFiles.filter((file) => (file.toLowerCase().includes('.min.') ||
@@ -186,8 +186,8 @@ declare module '*.ico' {
186
186
  // Vue Router tipos adicionales
187
187
  declare module '@vue/runtime-core' {
188
188
  interface ComponentCustomProperties {
189
- $route: import('vue-router').RouteLocationNormalized;
190
- $router: import('vue-router').Router;
189
+ $route: import('/node_modules/vue-router/dist/vue-router.esm-browser.js').RouteLocationNormalized;
190
+ $router: import('/node_modules/vue-router/dist/vue-router.esm-browser.js').Router;
191
191
  }
192
192
  }
193
193
  `;
@@ -197,7 +197,7 @@ declare module '@vue/runtime-core' {
197
197
  // Pinia tipos adicionales
198
198
  declare module '@vue/runtime-core' {
199
199
  interface ComponentCustomProperties {
200
- $pinia: import('pinia').Pinia;
200
+ $pinia: import('/node_modules/pinia/dist/pinia.esm-browser.js').Pinia;
201
201
  }
202
202
  }
203
203
  `;
package/package.json CHANGED
@@ -1,107 +1,109 @@
1
- {
2
- "name": "versacompiler",
3
- "version": "2.2.0",
4
- "description": "Una herramienta para compilar y minificar archivos .vue, .js y .ts para proyectos de Vue 3 con soporte para TypeScript.",
5
- "main": "dist/main.js",
6
- "bin": {
7
- "versacompiler": "dist/main.js"
8
- },
9
- "publishConfig": {
10
- "access": "public"
11
- },
12
- "files": [
13
- "dist",
14
- "LICENSE",
15
- "README.md"
16
- ],
17
- "type": "module",
18
- "scripts": {
19
- "dev": "tsx --watch src/main.ts --watch --verbose --tailwind",
20
- "file": "tsx src/main.ts ",
21
- "compile": "tsx src/main.ts --all --cc --co -y --verbose --prod",
22
- "test": "vitest run",
23
- "test:watch": "vitest",
24
- "test:ui": "vitest --ui",
25
- "test:coverage": "vitest run --coverage",
26
- "build": "tsx src/main.ts --all -t --cc --co -y --verbose",
27
- "lint": "oxlint --fix --config .oxlintrc.json",
28
- "lint:eslint": "eslint --ext .js,.ts,.vue src/ --fix"
29
- },
30
- "keywords": [
31
- "vue",
32
- "compiler",
33
- "minifier",
34
- "vue3",
35
- "versacompiler",
36
- "typescript",
37
- "linter"
38
- ],
39
- "author": "Jorge Jara H (kriollone@gmail.com)",
40
- "license": "MIT",
41
- "repository": {
42
- "type": "git",
43
- "url": "git+https://github.com/kriollo/versaCompiler.git"
44
- },
45
- "bugs": {
46
- "url": "https://github.com/kriollo/versaCompiler/issues"
47
- },
48
- "homepage": "https://github.com/kriollo/versaCompiler#readme",
49
- "dependencies": {
50
- "@vue/compiler-dom": "^3.5.24",
51
- "@vue/reactivity": "^3.5.24",
52
- "@vue/runtime-core": "^3.5.24",
53
- "@vue/runtime-dom": "^3.5.24",
54
- "browser-sync": "^3.0.4",
55
- "chalk": "5.6.2",
56
- "chokidar": "^4.0.3",
57
- "enhanced-resolve": "^5.18.3",
58
- "execa": "^9.6.0",
59
- "find-root": "^1.1.0",
60
- "fs-extra": "^11.3.2",
61
- "get-port": "^7.1.0",
62
- "minify-html-literals": "^1.3.5",
63
- "minimatch": "^10.1.1",
64
- "oxc-minify": "^0.97.0",
65
- "oxc-parser": "^0.97.0",
66
- "oxc-transform": "^0.97.0",
67
- "resolve": "^1.22.11",
68
- "tsx": "^4.20.6",
69
- "typescript": "^5.9.3",
70
- "vue": "3.5.24",
71
- "yargs": "^18.0.0"
72
- },
73
- "devDependencies": {
74
- "@eslint/eslintrc": "^3.3.1",
75
- "@tailwindcss/cli": "^4.1.17",
76
- "@types/browser-sync": "^2.29.1",
77
- "@types/find-root": "^1.1.4",
78
- "@types/fs-extra": "^11.0.4",
79
- "@types/jest": "^30.0.0",
80
- "@types/mocha": "^10.0.10",
81
- "@types/node": "^24.10.1",
82
- "@types/resolve": "^1.20.6",
83
- "@types/yargs": "^17.0.35",
84
- "@typescript-eslint/eslint-plugin": "^8.46.4",
85
- "@typescript-eslint/parser": "^8.46.4",
86
- "@vitest/coverage-v8": "^4.0.9",
87
- "@vitest/ui": "^4.0.9",
88
- "@vue/eslint-config-typescript": "^14.6.0",
89
- "@vue/test-utils": "^2.4.6",
90
- "code-tag": "^1.2.0",
91
- "eslint": "^9.39.1",
92
- "eslint-import-resolver-typescript": "^4.4.4",
93
- "eslint-plugin-import": "^2.32.0",
94
- "eslint-plugin-oxlint": "^1.28.0",
95
- "eslint-plugin-promise": "^7.2.1",
96
- "eslint-plugin-unicorn": "^62.0.0",
97
- "eslint-plugin-vue": "^10.5.1",
98
- "oxlint": "^1.28.0",
99
- "prettier": "3.6.2",
100
- "rimraf": "^6.1.0",
101
- "sweetalert2": "^11.26.3",
102
- "tailwindcss": "^4.1.17",
103
- "vitest": "^4.0.9",
104
- "vue-eslint-parser": "^10.2.0"
105
- },
106
- "packageManager": "pnpm@10.15.0+sha512.486ebc259d3e999a4e8691ce03b5cac4a71cbeca39372a9b762cb500cfdf0873e2cb16abe3d951b1ee2cf012503f027b98b6584e4df22524e0c7450d9ec7aa7b"
107
- }
1
+ {
2
+ "name": "versacompiler",
3
+ "version": "2.3.0",
4
+ "description": "Una herramienta para compilar y minificar archivos .vue, .js y .ts para proyectos de Vue 3 con soporte para TypeScript.",
5
+ "main": "dist/main.js",
6
+ "bin": {
7
+ "versacompiler": "dist/main.js"
8
+ },
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "LICENSE",
15
+ "README.md"
16
+ ],
17
+ "type": "module",
18
+ "scripts": {
19
+ "dev": "tsx --watch src/main.ts --watch --verbose --tailwind",
20
+ "file": "tsx src/main.ts ",
21
+ "compile": "tsx src/main.ts --all --cc --co -y --verbose --prod",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest",
24
+ "test:ui": "vitest --ui",
25
+ "test:coverage": "vitest run --coverage",
26
+ "build": "tsx src/main.ts --all -t --cc --co -y --verbose",
27
+ "lint": "oxlint --fix --config .oxlintrc.json",
28
+ "lint:eslint": "eslint --ext .js,.ts,.vue src/ --fix"
29
+ },
30
+ "keywords": [
31
+ "vue",
32
+ "compiler",
33
+ "minifier",
34
+ "vue3",
35
+ "versacompiler",
36
+ "typescript",
37
+ "linter"
38
+ ],
39
+ "author": "Jorge Jara H (kriollone@gmail.com)",
40
+ "license": "MIT",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "git+https://github.com/kriollo/versaCompiler.git"
44
+ },
45
+ "bugs": {
46
+ "url": "https://github.com/kriollo/versaCompiler/issues"
47
+ },
48
+ "homepage": "https://github.com/kriollo/versaCompiler#readme",
49
+ "dependencies": {
50
+ "@vue/compiler-dom": "^3.5.24",
51
+ "@vue/reactivity": "^3.5.24",
52
+ "@vue/runtime-core": "^3.5.24",
53
+ "@vue/runtime-dom": "^3.5.24",
54
+ "browser-sync": "^3.0.4",
55
+ "chalk": "5.6.2",
56
+ "chokidar": "^5.0.0",
57
+ "enhanced-resolve": "^5.18.3",
58
+ "execa": "^9.6.0",
59
+ "find-root": "^1.1.0",
60
+ "fs-extra": "^11.3.2",
61
+ "get-port": "^7.1.0",
62
+ "minify-html-literals": "^1.3.5",
63
+ "minimatch": "^10.1.1",
64
+ "oxc-minify": "^0.108.0",
65
+ "oxc-parser": "^0.108.0",
66
+ "oxc-transform": "^0.108.0",
67
+ "resolve": "^1.22.11",
68
+ "tsx": "^4.20.6",
69
+ "typescript": "^5.9.3",
70
+ "vue": "3.5.26",
71
+ "yargs": "^18.0.0"
72
+ },
73
+ "devDependencies": {
74
+ "@eslint/eslintrc": "^3.3.1",
75
+ "@tailwindcss/cli": "^4.1.17",
76
+ "@types/browser-sync": "^2.29.1",
77
+ "@types/find-root": "^1.1.4",
78
+ "@types/fs-extra": "^11.0.4",
79
+ "@types/jest": "^30.0.0",
80
+ "@types/mocha": "^10.0.10",
81
+ "@types/node": "^25.0.8",
82
+ "@types/resolve": "^1.20.6",
83
+ "@types/yargs": "^17.0.35",
84
+ "@typescript-eslint/eslint-plugin": "^8.46.4",
85
+ "@typescript-eslint/parser": "^8.46.4",
86
+ "@vitest/coverage-v8": "^4.0.9",
87
+ "@vitest/ui": "^4.0.9",
88
+ "@vue/eslint-config-typescript": "^14.6.0",
89
+ "@vue/test-utils": "^2.4.6",
90
+ "code-tag": "^1.2.0",
91
+ "eslint": "^9.39.1",
92
+ "eslint-import-resolver-typescript": "^4.4.4",
93
+ "eslint-plugin-import": "^2.32.0",
94
+ "eslint-plugin-oxlint": "^1.28.0",
95
+ "eslint-plugin-promise": "^7.2.1",
96
+ "eslint-plugin-unicorn": "^62.0.0",
97
+ "eslint-plugin-vue": "^10.5.1",
98
+ "oxlint": "^1.28.0",
99
+ "pinia": "^3.0.4",
100
+ "prettier": "3.8.0",
101
+ "rimraf": "^6.1.0",
102
+ "sweetalert2": "^11.26.3",
103
+ "tailwindcss": "^4.1.17",
104
+ "vitest": "^4.0.9",
105
+ "vue-eslint-parser": "^10.2.0",
106
+ "vue-router": "^4.6.4"
107
+ },
108
+ "packageManager": "pnpm@10.15.0+sha512.486ebc259d3e999a4e8691ce03b5cac4a71cbeca39372a9b762cb500cfdf0873e2cb16abe3d951b1ee2cf012503f027b98b6584e4df22524e0c7450d9ec7aa7b"
109
+ }