import path from 'path'; import { defineConfig, loadEnv } from 'vite'; import { unifiedConfig } from './config/unified.config'; export default defineConfig(({ mode }) => { // Still load env for backward compatibility and overrides const env = loadEnv(mode, '.', ''); // Use unified config as the primary source const config = unifiedConfig; return { define: { // Legacy API key support 'process.env.API_KEY': JSON.stringify(env.GEMINI_API_KEY), 'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY), // Application configuration from unified config 'import.meta.env.VITE_APP_NAME': JSON.stringify(config.app.name), 'import.meta.env.VITE_APP_VERSION': JSON.stringify(config.app.version), 'import.meta.env.VITE_BASE_URL': JSON.stringify(config.app.baseUrl), // Database configuration from unified config 'import.meta.env.VITE_COUCHDB_URL': JSON.stringify(config.database.url), 'import.meta.env.VITE_COUCHDB_USER': JSON.stringify( config.database.username ), 'import.meta.env.VITE_COUCHDB_PASSWORD': JSON.stringify( config.database.password ), // Email configuration from unified config 'import.meta.env.VITE_MAILGUN_API_KEY': JSON.stringify( config.email.mailgun?.apiKey || '' ), 'import.meta.env.VITE_MAILGUN_DOMAIN': JSON.stringify( config.email.mailgun?.domain || '' ), 'import.meta.env.VITE_MAILGUN_FROM_NAME': JSON.stringify( config.email.fromName ), 'import.meta.env.VITE_MAILGUN_FROM_EMAIL': JSON.stringify( config.email.fromEmail ), // OAuth configuration from unified config 'import.meta.env.VITE_GOOGLE_CLIENT_ID': JSON.stringify( config.oauth.google?.clientId || '' ), 'import.meta.env.VITE_GITHUB_CLIENT_ID': JSON.stringify( config.oauth.github?.clientId || '' ), // Feature flags from unified config 'import.meta.env.ENABLE_EMAIL_VERIFICATION': JSON.stringify( config.features.enableEmailVerification ), 'import.meta.env.ENABLE_OAUTH': JSON.stringify( config.features.enableOAuth ), 'import.meta.env.ENABLE_ADMIN_INTERFACE': JSON.stringify( config.features.enableAdminInterface ), 'import.meta.env.DEBUG_MODE': JSON.stringify(config.features.debugMode), // Environment info 'import.meta.env.NODE_ENV': JSON.stringify(config.app.environment), 'import.meta.env.IS_PRODUCTION': JSON.stringify( config.app.environment === 'production' ), 'import.meta.env.IS_DEVELOPMENT': JSON.stringify( config.app.environment === 'development' ), }, resolve: { alias: { '@': path.resolve(__dirname, '.'), }, }, }; });