- Bundle information and relevant links.
+
+
+
+
+
+
+
+
+
+
+ {{ appName }}
+
+
+ Versión {{ currentVersion }}
+
+
+
+
+
+
+
+
+ Dashboard para producción de overlays de fighting games usando NodeCG, Vue y Quasar.
+
+
+
+
+
+
+
+
+
+
+
+ Colaboradores y agradecimientos
+
+
+
+
+ {{ person.name }}
+
+ {{ person.role }}
+
+
+
+
+
+
+
+
+
+
+
+
+ Sistema de updates (GitHub Releases)
+
+
+ Este chequeo consulta el último release del repo y lo compara con la versión actual.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Último release: {{ releaseLabel }}
+
+
+ Publicado: {{ new Date(latestRelease.published_at).toLocaleString() }}
+
+
+ {{ hasUpdate ? 'Hay una versión más nueva disponible.' : 'Tu versión está actualizada frente al último release.' }}
+
+
+
+
+
+
+
+ {{ updateError }}
+
+
+
+ Nota para Electron: este panel implementa solo detección y aviso. Para updates
+ automáticos reales en desktop, hay que integrar `autoUpdater` en el proceso principal de Electron
+ y publicar artefactos firmados por plataforma.
+
+
+
+
diff --git a/src/types/vite-env.d.ts b/src/types/vite-env.d.ts
index 11f02fe..a6704e7 100644
--- a/src/types/vite-env.d.ts
+++ b/src/types/vite-env.d.ts
@@ -1 +1,9 @@
///
+
+interface ImportMetaEnv {
+ readonly PACKAGE_VERSION: string;
+}
+
+interface ImportMeta {
+ readonly env: ImportMetaEnv;
+}
diff --git a/vite.config.ts b/vite.config.ts
index 722fad9..0cc9506 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,12 +1,18 @@
import { quasar, transformAssetUrls } from '@quasar/vite-plugin';
import vue from '@vitejs/plugin-vue';
+import { readFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { defineConfig } from 'vite';
import checker from 'vite-plugin-checker';
import NodeCGPlugin from 'vite-plugin-nodecg';
+const packageJson = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf-8')) as { version: string };
+
// https://vitejs.dev/config/
export default defineConfig({
+ define: {
+ 'import.meta.env.PACKAGE_VERSION': JSON.stringify(packageJson.version),
+ },
plugins: [
vue({ template: { transformAssetUrls } }),
quasar({