import path from 'path'; import { defineConfig, loadEnv } from 'vite'; import react from '@vitejs/plugin-react'; import { VitePWA } from 'vite-plugin-pwa'; import pkg from './package.json'; export default defineConfig(({ mode }) => { const env = loadEnv(mode, '.', ''); return { server: { port: 3000, host: '0.0.0.0', }, plugins: [ react(), VitePWA({ strategies: 'injectManifest', srcDir: '.', filename: 'sw.ts', registerType: 'autoUpdate', injectRegister: 'auto', devOptions: { enabled: false, }, manifest: { name: 'Cognitive Clarity', short_name: 'Clarity', description: 'CBT Case Conceptualization & Roleplay AI', theme_color: '#0f172a', background_color: '#0f172a', display: 'standalone', icons: [ { src: 'pwa-192x192.png', sizes: '192x192', type: 'image/png' }, { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png' }, { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png', purpose: 'any maskable' } ] } }) ], define: { 'process.env.API_KEY': JSON.stringify(env.VITE_GEMINI_API_KEY), 'process.env.GEMINI_API_KEY': JSON.stringify(env.VITE_GEMINI_API_KEY), '__APP_VERSION__': JSON.stringify(pkg.version), '__BUILD_TIMESTAMP__': JSON.stringify(new Date().toISOString()), }, resolve: { alias: { '@': path.resolve(__dirname, '.'), } } }; });