versacompiler 2.0.7 → 2.0.8

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 (39) hide show
  1. package/dist/compiler/compile.js +26 -2332
  2. package/dist/compiler/error-reporter.js +38 -467
  3. package/dist/compiler/linter.js +1 -72
  4. package/dist/compiler/minify.js +1 -229
  5. package/dist/compiler/module-resolution-optimizer.js +1 -821
  6. package/dist/compiler/parser.js +1 -203
  7. package/dist/compiler/performance-monitor.js +56 -192
  8. package/dist/compiler/tailwindcss.js +1 -39
  9. package/dist/compiler/transform-optimizer.js +1 -392
  10. package/dist/compiler/transformTStoJS.js +1 -16
  11. package/dist/compiler/transforms.js +1 -550
  12. package/dist/compiler/typescript-compiler.js +2 -172
  13. package/dist/compiler/typescript-error-parser.js +10 -281
  14. package/dist/compiler/typescript-manager.js +2 -273
  15. package/dist/compiler/typescript-sync-validator.js +31 -295
  16. package/dist/compiler/typescript-worker-pool.js +1 -842
  17. package/dist/compiler/typescript-worker-thread.cjs +41 -466
  18. package/dist/compiler/typescript-worker.js +1 -339
  19. package/dist/compiler/vuejs.js +37 -392
  20. package/dist/hrm/VueHRM.js +1 -353
  21. package/dist/hrm/errorScreen.js +1 -83
  22. package/dist/hrm/getInstanciaVue.js +1 -313
  23. package/dist/hrm/initHRM.js +1 -141
  24. package/dist/main.js +7 -347
  25. package/dist/servicios/browserSync.js +5 -501
  26. package/dist/servicios/file-watcher.js +4 -379
  27. package/dist/servicios/logger.js +3 -63
  28. package/dist/servicios/readConfig.js +105 -430
  29. package/dist/utils/excluded-modules.js +1 -36
  30. package/dist/utils/module-resolver.js +1 -466
  31. package/dist/utils/promptUser.js +2 -48
  32. package/dist/utils/proxyValidator.js +1 -68
  33. package/dist/utils/resolve-bin.js +1 -48
  34. package/dist/utils/utils.js +1 -21
  35. package/dist/utils/vue-types-setup.js +241 -435
  36. package/dist/wrappers/eslint-node.js +1 -145
  37. package/dist/wrappers/oxlint-node.js +1 -120
  38. package/dist/wrappers/tailwind-node.js +1 -92
  39. package/package.json +36 -35
package/dist/main.js CHANGED
@@ -1,348 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import path from 'node:path'; // Importar el módulo path
3
- import process, { env } from 'node:process';
4
- // Lazy loading optimizations - Only import lightweight modules synchronously
5
- import { fileURLToPath } from 'node:url';
6
- import { logger } from './servicios/logger.js';
7
- import { readConfig } from './servicios/readConfig.js';
8
- // Heavy dependencies will be loaded dynamically when needed
9
- let chalk;
10
- let yargs;
11
- let hideBin;
12
- // Obtener el directorio del archivo actual (src/)
13
- env.PATH_PROY = path.dirname(fileURLToPath(import.meta.url));
14
- env.PATH_CONFIG_FILE = path.resolve(process.cwd(), 'versacompile.config.ts');
15
- // Lazy loading helper functions
16
- async function loadChalk() {
17
- if (!chalk) {
18
- chalk = (await import('chalk')).default;
19
- }
20
- return chalk;
21
- }
22
- // Función para obtener la versión del package.json
23
- async function getPackageVersion() {
24
- try {
25
- const fs = await import('node:fs/promises');
26
- const packageJsonPath = path.resolve(env.PATH_PROY || path.dirname(fileURLToPath(import.meta.url)), '..', 'package.json');
27
- const packageContent = await fs.readFile(packageJsonPath, 'utf-8');
28
- const packageData = JSON.parse(packageContent);
29
- return packageData.version || 'unknown';
30
- }
31
- catch {
32
- // Fallback si no se puede leer el package.json
33
- return 'unknown';
34
- }
35
- }
36
- async function loadYargs() {
37
- if (!yargs) {
38
- const yargsModule = await import('yargs');
39
- const helpersModule = await import('yargs/helpers');
40
- yargs = yargsModule.default;
41
- hideBin = helpersModule.hideBin;
42
- }
43
- return { yargs, hideBin };
44
- }
45
- async function loadCompilerModule() {
46
- return await import('./compiler/compile.js');
47
- }
48
- async function loadBrowserSyncModule() {
49
- return await import('./servicios/browserSync.js');
50
- }
51
- async function loadChokidarModule() {
52
- return await import('./servicios/file-watcher.js');
53
- }
54
- async function loadConfigModule() {
55
- return await import('./servicios/readConfig.js');
56
- }
57
- function stopCompile() {
58
- logger.info('VersaCompiler cerrado correctamente');
59
- }
60
- async function main() {
61
- // Load yargs dynamically
62
- const { yargs: yargsInstance, hideBin: hideBinFn } = await loadYargs();
63
- const chalk = await loadChalk();
64
- let yargInstance = yargsInstance(hideBinFn(process.argv))
65
- .scriptName('versa')
66
- .usage(chalk.blue('VersaCompiler') + ' - Compilador de archivos Vue/TS/JS')
67
- .option('init', {
68
- type: 'boolean',
69
- description: 'Inicializar la configuración',
70
- })
71
- .option('watch', {
72
- type: 'boolean',
73
- description: 'Habilitar el modo de observación (watch)',
74
- default: false, // Por defecto, el modo watch está habilitado
75
- })
76
- .alias('w', 'watch')
77
- .option('all', {
78
- type: 'boolean',
79
- description: 'Compilar todos los archivos',
80
- })
81
- .option('file', {
82
- type: 'string',
83
- description: 'Compilar un archivo específico',
84
- alias: 'f',
85
- })
86
- .option('prod', {
87
- type: 'boolean',
88
- description: 'Modo producción',
89
- })
90
- .alias('p', 'prod')
91
- .option('verbose', {
92
- type: 'boolean',
93
- description: 'Habilitar salida detallada (verbose)',
94
- default: false, // Por defecto, verbose está deshabilitado
95
- })
96
- .alias('v', 'verbose')
97
- .option('cleanOutput', {
98
- type: 'boolean',
99
- description: 'Limpiar el directorio de salida antes de compilar',
100
- default: false, // Por defecto, clean está deshabilitado
101
- })
102
- .alias('co', 'cleanOutput')
103
- .option('cleanCache', {
104
- type: 'boolean',
105
- description: 'Limpiar el cache de compilación antes de compilar',
106
- default: false, // Por defecto, clean está deshabilitado
107
- })
108
- .alias('cc', 'cleanCache')
109
- .option('yes', {
110
- type: 'boolean',
111
- description: 'Confirmar automáticamente las acciones que requieren confirmación',
112
- default: false, // Por defecto, no se confirma automáticamente
113
- })
114
- .alias('y', 'yes')
115
- .option('typeCheck', {
116
- type: 'boolean',
117
- description: 'Habilitar/Deshabilitar la verificación de tipos. Por defecto --typeCheck=false',
118
- default: false,
119
- })
120
- .alias('t', 'typeCheck');
121
- // Definir la opción tailwind dinámicamente
122
- // Asumiendo que env.TAILWIND es una cadena que podría ser 'true', 'false', o undefined
123
- if (env.tailwindcss !== 'false') {
124
- yargInstance = yargInstance.option('tailwind', {
125
- type: 'boolean',
126
- description: 'Habilitar/Deshabilitar compilación de Tailwind CSS. Por defecto --tailwind=false',
127
- default: false,
128
- });
129
- }
130
- if (env.linter !== 'false') {
131
- yargInstance = yargInstance.option('linter', {
132
- type: 'boolean',
133
- description: 'Habilitar/Deshabilitar el linter. Por defecto --linter=false',
134
- default: false,
135
- });
136
- }
137
- const argv = (await yargInstance
138
- .help()
139
- .alias('h', 'help')
140
- .command('* [files...]', 'Compilar archivos específicos', (yargs) => {
141
- return yargs.positional('files', {
142
- describe: 'Archivos para compilar',
143
- type: 'string',
144
- array: true,
145
- });
146
- })
147
- .parse());
148
- try {
149
- // 🎨 Header moderno y elegante
150
- const version = await getPackageVersion();
151
- const headerLine = '━'.repeat(60);
152
- logger.log(`\n` +
153
- chalk.cyan(headerLine) +
154
- `\n` +
155
- chalk.bold.cyan(' ⚡ VersaCompiler ') +
156
- chalk.gray(`v${version}`) +
157
- `\n` +
158
- chalk.gray(' Vue · TypeScript · JavaScript Compiler') +
159
- `\n` +
160
- chalk.cyan(headerLine) +
161
- `\n`);
162
- if (argv.init) {
163
- logger.info('Iniciando la configuración...');
164
- const { initConfig } = await loadConfigModule();
165
- await initConfig();
166
- process.exit(0);
167
- }
168
- if (!(await readConfig())) {
169
- process.exit(1);
170
- }
171
- env.isPROD = argv.prod ? 'true' : 'false';
172
- env.isALL = argv.all ? 'true' : 'false';
173
- env.TAILWIND =
174
- argv.tailwind === undefined ? 'true' : String(argv.tailwind);
175
- env.ENABLE_LINTER = String(argv.linter);
176
- env.VERBOSE = argv.verbose ? 'true' : 'false'; // 🎯 Configuración moderna y organizada
177
- logger.info(chalk.bold.blue('⚙️ Configuración'));
178
- logger.info(chalk.gray(' ┌─ Modo de ejecución'));
179
- const modes = [
180
- { label: 'Observar', value: argv.watch, icon: '👀' },
181
- {
182
- label: 'Todos los archivos',
183
- value: env.isALL === 'true',
184
- icon: '📁',
185
- },
186
- { label: 'Archivo único', value: !!argv.file, icon: '📄' },
187
- { label: 'Producción', value: env.isPROD === 'true', icon: '🏭' },
188
- ];
189
- const features = [
190
- { label: 'Tailwind', value: env.TAILWIND === 'true', icon: '🎨' },
191
- { label: 'Minificación', value: env.isPROD === 'true', icon: '🗜️' },
192
- {
193
- label: 'Linter',
194
- value: env.ENABLE_LINTER === 'true',
195
- icon: '🔍',
196
- },
197
- { label: 'Verificar tipos', value: argv.typeCheck, icon: '📘' },
198
- { label: 'Detallado', value: env.VERBOSE === 'true', icon: '📝' },
199
- ];
200
- modes.forEach(mode => {
201
- const status = mode.value ? chalk.green('●') : chalk.gray('○');
202
- const label = mode.value
203
- ? chalk.green(mode.label)
204
- : chalk.gray(mode.label);
205
- logger.info(chalk.gray(' │ ') + status + ` ${mode.icon} ${label}`);
206
- });
207
- logger.info(chalk.gray(' ├─ Características'));
208
- features.forEach(feature => {
209
- const status = feature.value ? chalk.green('●') : chalk.gray('○');
210
- const label = feature.value
211
- ? chalk.green(feature.label)
212
- : chalk.gray(feature.label);
213
- logger.info(chalk.gray(' │ ') + status + ` ${feature.icon} ${label}`);
214
- });
215
- if (argv.file) {
216
- logger.info(chalk.gray(' ├─ Objetivo'));
217
- logger.info(chalk.gray(' │ ') + chalk.blue('📄 ') + argv.file);
218
- }
219
- if (argv.cleanOutput) {
220
- logger.info(chalk.gray(' ├─ Limpieza'));
221
- logger.info(chalk.gray(' │ ') + chalk.yellow('🧹 Limpiar salida'));
222
- }
223
- if (argv.cleanCache) {
224
- logger.info(chalk.gray(' │ ') + chalk.yellow('🗑️ Limpiar caché'));
225
- }
226
- logger.info(chalk.gray(' └─ ¡Listo para compilar!'));
227
- logger.log('');
228
- env.typeCheck = argv.typeCheck ? 'true' : 'false';
229
- env.cleanCache = argv.cleanCache ? 'true' : 'false';
230
- env.yes = argv.y ? 'true' : 'false';
231
- if (argv.cleanOutput) {
232
- const { cleanOutputDir } = await loadChokidarModule();
233
- await cleanOutputDir(env.PATH_DIST || './dist');
234
- }
235
- // Manejar archivos pasados como argumentos posicionales
236
- if (argv.files && argv.files.length > 0) {
237
- logger.info(chalk.yellow(`📄 Compilando ${argv.files.length} archivo(s)...`));
238
- const fs = await import('node:fs/promises');
239
- const { compileFile } = await loadCompilerModule();
240
- let hasErrors = false;
241
- for (const file of argv.files) {
242
- try {
243
- // Verificar si el archivo existe
244
- await fs.access(file);
245
- logger.info(chalk.blue(`🔄 Compilando: ${file}`));
246
- const result = await compileFile(file);
247
- if (result.success) {
248
- logger.info(chalk.green(`✅ ${file} → ${result.output}`));
249
- }
250
- else {
251
- logger.error(chalk.red(`❌ Error al compilar: ${file}`));
252
- hasErrors = true;
253
- }
254
- }
255
- catch {
256
- logger.error(chalk.red(`❌ El archivo '${file}' no existe.`));
257
- hasErrors = true;
258
- }
259
- }
260
- process.exit(hasErrors ? 1 : 0);
261
- }
262
- if (argv.file) {
263
- // Compilar archivo individual
264
- logger.info(chalk.yellow(`📄 Compilando archivo: ${argv.file}`)); // Verificar si el archivo existe
265
- const fs = await import('node:fs/promises');
266
- const { compileFile } = await loadCompilerModule();
267
- let absolutePathFile;
268
- try {
269
- await fs.access(argv.file);
270
- absolutePathFile = path.resolve(argv.file);
271
- }
272
- catch {
273
- logger.error(chalk.red(`❌ Error: El archivo '${argv.file}' no existe.`));
274
- process.exit(1);
275
- }
276
- // Compilar el archivo (absolutePathFile está garantizado aquí)
277
- const result = await compileFile(absolutePathFile);
278
- if (result.success) {
279
- logger.info(chalk.green(`✅ Archivo compilado exitosamente: ${result.output}`));
280
- process.exit(0);
281
- }
282
- else {
283
- logger.error(chalk.red(`❌ Error al compilar el archivo: ${argv.file}`));
284
- process.exit(1);
285
- }
286
- }
287
- if (argv.all) {
288
- const { initCompileAll } = await loadCompilerModule();
289
- await initCompileAll();
290
- process.exit(0);
291
- }
292
- if (!argv.watch) {
293
- if (env.ENABLE_LINTER === 'true') {
294
- const { runLinter } = await loadCompilerModule();
295
- await runLinter(true);
296
- process.exit(1);
297
- }
298
- }
299
- if (env.TAILWIND === 'true') {
300
- const tailwindModule = await import('./compiler/tailwindcss.js');
301
- const resultTW = await tailwindModule.generateTailwindCSS();
302
- if (typeof resultTW !== 'boolean') {
303
- if (resultTW?.success) {
304
- logger.info(`\nTailwind CSS compilado🎨 ${resultTW.message}\n`);
305
- }
306
- else {
307
- const errorMsg = `${resultTW.message}${resultTW.details ? '\n' + resultTW.details : ''}`;
308
- logger.error(`\n❌ Error al generar Tailwind CSS: ${errorMsg}\n`);
309
- }
310
- }
311
- }
312
- let bs;
313
- let watch;
314
- if (argv.watch) {
315
- const { browserSyncServer } = await loadBrowserSyncModule();
316
- const { initChokidar } = await loadChokidarModule();
317
- bs = await browserSyncServer();
318
- if (!bs) {
319
- process.exit(1);
320
- }
321
- watch = await initChokidar(bs);
322
- if (!watch) {
323
- process.exit(1);
324
- }
325
- }
326
- process.on('SIGINT', async () => {
327
- if (bs) {
328
- bs.exit();
329
- }
330
- if (watch) {
331
- watch.close();
332
- }
333
- stopCompile();
334
- process.exit(0);
335
- });
336
- process.on('SIGTERM', async () => {
337
- stopCompile();
338
- process.exit(0);
339
- });
340
- }
341
- catch (error) {
342
- logger.error('Error en la aplicación:', error);
343
- stopCompile();
344
- process.exit(1);
345
- }
346
- }
347
- main();
348
- //# sourceMappingURL=main.js.map
2
+ import e from"node:path";import t,{env as n}from"node:process";import{fileURLToPath as r}from"node:url";import{logger as i}from"./servicios/logger.js";import{readConfig as a}from"./servicios/readConfig.js";let o,s,c;n.PATH_PROY=e.dirname(r(import.meta.url)),n.PATH_CONFIG_FILE=e.resolve(t.cwd(),`versacompile.config.ts`);async function l(){return o||=(await import(`chalk`)).default,o}async function u(){try{let t=await import(`node:fs/promises`),i=e.resolve(n.PATH_PROY||e.dirname(r(import.meta.url)),`..`,`package.json`),a=await t.readFile(i,`utf-8`),o=JSON.parse(a);return o.version||`unknown`}catch{return`unknown`}}async function d(){if(!s){let e=await import(`yargs`),t=await import(`yargs/helpers`);s=e.default,c=t.hideBin}return{yargs:s,hideBin:c}}async function f(){return await import(`./compiler/compile.js`)}async function p(){return await import(`./servicios/browserSync.js`)}async function m(){return await import(`./servicios/file-watcher.js`)}async function h(){return await import(`./servicios/readConfig.js`)}function g(){i.info(`VersaCompiler cerrado correctamente`)}async function _(){let{yargs:r,hideBin:o}=await d(),s=await l(),c=r(o(t.argv)).scriptName(`versa`).usage(s.blue(`VersaCompiler`)+` - Compilador de archivos Vue/TS/JS`).option(`init`,{type:`boolean`,description:`Inicializar la configuración`}).option(`watch`,{type:`boolean`,description:`Habilitar el modo de observación (watch)`,default:!1}).alias(`w`,`watch`).option(`all`,{type:`boolean`,description:`Compilar todos los archivos`}).option(`file`,{type:`string`,description:`Compilar un archivo específico`,alias:`f`}).option(`prod`,{type:`boolean`,description:`Modo producción`}).alias(`p`,`prod`).option(`verbose`,{type:`boolean`,description:`Habilitar salida detallada (verbose)`,default:!1}).alias(`v`,`verbose`).option(`cleanOutput`,{type:`boolean`,description:`Limpiar el directorio de salida antes de compilar`,default:!1}).alias(`co`,`cleanOutput`).option(`cleanCache`,{type:`boolean`,description:`Limpiar el cache de compilación antes de compilar`,default:!1}).alias(`cc`,`cleanCache`).option(`yes`,{type:`boolean`,description:`Confirmar automáticamente las acciones que requieren confirmación`,default:!1}).alias(`y`,`yes`).option(`typeCheck`,{type:`boolean`,description:`Habilitar/Deshabilitar la verificación de tipos. Por defecto --typeCheck=false`,default:!1}).alias(`t`,`typeCheck`);n.tailwindcss!==`false`&&(c=c.option(`tailwind`,{type:`boolean`,description:`Habilitar/Deshabilitar compilación de Tailwind CSS. Por defecto --tailwind=false`,default:!1})),n.linter!==`false`&&(c=c.option(`linter`,{type:`boolean`,description:`Habilitar/Deshabilitar el linter. Por defecto --linter=false`,default:!1}));let _=await c.help().alias(`h`,`help`).command(`* [files...]`,`Compilar archivos específicos`,e=>e.positional(`files`,{describe:`Archivos para compilar`,type:`string`,array:!0})).parse();try{let r=await u(),o=`━`.repeat(60);if(i.log(`
3
+ `+s.cyan(o)+`
4
+ `+s.bold.cyan(` ⚡ VersaCompiler `)+s.gray(`v${r}`)+`
5
+ `+s.gray(` Vue · TypeScript · JavaScript Compiler`)+`
6
+ `+s.cyan(o)+`
7
+ `),_.init){i.info(`Iniciando la configuración...`);let{initConfig:e}=await h();await e(),t.exit(0)}await a()||t.exit(1),n.isPROD=_.prod?`true`:`false`,n.isALL=_.all?`true`:`false`,n.TAILWIND=_.tailwind===void 0?`true`:String(_.tailwind),n.ENABLE_LINTER=String(_.linter),n.VERBOSE=_.verbose?`true`:`false`,i.info(s.bold.blue(`⚙️ Configuración`)),i.info(s.gray(` ┌─ Modo de ejecución`));let c=[{label:`Observar`,value:_.watch,icon:`👀`},{label:`Todos los archivos`,value:n.isALL===`true`,icon:`📁`},{label:`Archivo único`,value:!!_.file,icon:`📄`},{label:`Producción`,value:n.isPROD===`true`,icon:`🏭`}],l=[{label:`Tailwind`,value:n.TAILWIND===`true`,icon:`🎨`},{label:`Minificación`,value:n.isPROD===`true`,icon:`🗜️`},{label:`Linter`,value:n.ENABLE_LINTER===`true`,icon:`🔍`},{label:`Verificar tipos`,value:_.typeCheck,icon:`📘`},{label:`Detallado`,value:n.VERBOSE===`true`,icon:`📝`}];if(c.forEach(e=>{let t=e.value?s.green(`●`):s.gray(`○`),n=e.value?s.green(e.label):s.gray(e.label);i.info(s.gray(` │ `)+t+` ${e.icon} ${n}`)}),i.info(s.gray(` ├─ Características`)),l.forEach(e=>{let t=e.value?s.green(`●`):s.gray(`○`),n=e.value?s.green(e.label):s.gray(e.label);i.info(s.gray(` │ `)+t+` ${e.icon} ${n}`)}),_.file&&(i.info(s.gray(` ├─ Objetivo`)),i.info(s.gray(` │ `)+s.blue(`📄 `)+_.file)),_.cleanOutput&&(i.info(s.gray(` ├─ Limpieza`)),i.info(s.gray(` │ `)+s.yellow(`🧹 Limpiar salida`))),_.cleanCache&&i.info(s.gray(` │ `)+s.yellow(`🗑️ Limpiar caché`)),i.info(s.gray(` └─ ¡Listo para compilar!`)),i.log(``),n.typeCheck=_.typeCheck?`true`:`false`,n.cleanCache=_.cleanCache?`true`:`false`,n.yes=_.y?`true`:`false`,_.cleanOutput){let{cleanOutputDir:e}=await m();await e(n.PATH_DIST||`./dist`)}if(_.files&&_.files.length>0){i.info(s.yellow(`📄 Compilando ${_.files.length} archivo(s)...`));let e=await import(`node:fs/promises`),{compileFile:n}=await f(),r=!1;for(let t of _.files)try{await e.access(t),i.info(s.blue(`🔄 Compilando: ${t}`));let a=await n(t);a.success?i.info(s.green(`✅ ${t} → ${a.output}`)):(i.error(s.red(`❌ Error al compilar: ${t}`)),r=!0)}catch{i.error(s.red(`❌ El archivo '${t}' no existe.`)),r=!0}t.exit(r?1:0)}if(_.file){i.info(s.yellow(`📄 Compilando archivo: ${_.file}`));let n=await import(`node:fs/promises`),{compileFile:r}=await f(),a;try{await n.access(_.file),a=e.resolve(_.file)}catch{i.error(s.red(`❌ Error: El archivo '${_.file}' no existe.`)),t.exit(1)}let o=await r(a);o.success?(i.info(s.green(`✅ Archivo compilado exitosamente: ${o.output}`)),t.exit(0)):(i.error(s.red(`❌ Error al compilar el archivo: ${_.file}`)),t.exit(1))}if(_.all){let{initCompileAll:e}=await f();await e(),t.exit(0)}if(!_.watch&&n.ENABLE_LINTER===`true`){let{runLinter:e}=await f();await e(!0),t.exit(1)}if(n.TAILWIND===`true`){let e=await import(`./compiler/tailwindcss.js`),t=await e.generateTailwindCSS();if(typeof t!=`boolean`)if(t?.success)i.info(`\nTailwind CSS compilado🎨 ${t.message}\n`);else{let e=`${t.message}${t.details?`
8
+ `+t.details:``}`;i.error(`\n❌ Error al generar Tailwind CSS: ${e}\n`)}}let d,v;if(_.watch){let{browserSyncServer:e}=await p(),{initChokidar:n}=await m();d=await e(),d||t.exit(1),v=await n(d),v||t.exit(1)}t.on(`SIGINT`,async()=>{d&&d.exit(),v&&v.close(),g(),t.exit(0)}),t.on(`SIGTERM`,async()=>{g(),t.exit(0)})}catch(e){i.error(`Error en la aplicación:`,e),g(),t.exit(1)}}_();