import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { VitePWA } from 'vite-plugin-pwa' import path from 'path' export default defineConfig({ plugins: [ react(), VitePWA({ registerType: 'autoUpdate', workbox: { clientsClaim: true, skipWaiting: true, cleanupOutdatedCaches: true, runtimeCaching: [ { urlPattern: /^https:\/\/api\.aethex\.dev\/.*/i, handler: 'NetworkFirst', options: { cacheName: 'api-cache', networkTimeoutSeconds: 3, expiration: { maxEntries: 50, maxAgeSeconds: 7 * 24 * 60 * 60, // 1 week }, }, }, ], }, manifest: { name: 'AeThex Connect', short_name: 'AeThex', description: 'Next-generation communication platform', theme_color: '#a855f7', background_color: '#0a0a0f', display: 'standalone', scope: '/', start_url: '/', orientation: 'portrait-primary', }, devOptions: { enabled: true, navigateFallback: 'index.html', suppressWarnings: true, }, }), ], resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, build: { target: 'es2020', outDir: 'dist', sourcemap: false, minify: 'terser', terserOptions: { compress: { drop_console: true, }, }, rollupOptions: { output: { manualChunks: { 'vendor-core': ['react', 'react-dom', 'react-router-dom'], 'vendor-state': ['@reduxjs/toolkit', 'react-redux'], 'vendor-webrtc': ['socket.io-client'], }, }, }, }, server: { port: 5173, proxy: { '/api': { target: process.env.VITE_API_URL || 'http://localhost:3000', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), }, }, }, })