require('dotenv').config(); const TURNSTILE_KEY_MATCH = /[0-9]x[0-9A-Za-z_-]{20,}/; const normalizeTurnstileValue = (value) => { if (typeof value !== 'string') return ''; const trimmedValue = value.trim(); const keyMatch = trimmedValue.match(TURNSTILE_KEY_MATCH); if (keyMatch) return keyMatch[0]; return trimmedValue.replace(/^[\s"'`{[]+|[\s"'`}\]]+$/g, ''); }; const firstEnvValue = (...values) => values .map(normalizeTurnstileValue) .find(Boolean) || ''; const TURNSTILE_SITE_KEY = firstEnvValue( process.env.TURNSTILE_SITE_KEY, process.env.TURNSTILE_SITEKEY, process.env.VITE_TURNSTILE_SITE_KEY, process.env.CLOUDFLARE_TURNSTILE_SITE_KEY ); const TURNSTILE_SECRET = firstEnvValue( process.env.TURNSTILE_SECRET, process.env.TURNSTILE_SECRET_KEY, process.env.CLOUDFLARE_TURNSTILE_SECRET ); module.exports = { PORT: process.env.PORT || 3004, API_KEY: process.env.API_KEY || 'nexstar_secret_key_123', ADMIN_EMAIL: process.env.ADMIN_EMAIL || 'admin@admin.com', ADMIN_PASSWORD: process.env.ADMIN_PASSWORD || 'admin123', JWT_SECRET: process.env.JWT_SECRET || 'super_secret_jwt_key_123', DATABASE_URL: process.env.DATABASE_URL || 'postgres://graphuser:graphpassword@localhost:5432/graphdb', N8N_WHATSAPP_TRIGGER_URL: process.env.N8N_WHATSAPP_TRIGGER_URL || 'http://localhost:5678/webhook/whatsapp', OLIST_CLIENT_ID: process.env.OLIST_CLIENT_ID || '', OLIST_CLIENT_SECRET: process.env.OLIST_CLIENT_SECRET || '', OLIST_REDIRECT_URI: process.env.OLIST_REDIRECT_URI || '', OLIST_FRONTEND_URL: process.env.OLIST_FRONTEND_URL || '', OLIST_TOKEN_ENCRYPTION_KEY: process.env.OLIST_TOKEN_ENCRYPTION_KEY || '', OLIST_SYNC_ENABLED: process.env.OLIST_SYNC_ENABLED === 'true', OLIST_SYNC_HOUR: 11, OLIST_SYNC_REQUEST_DELAY_MS: Math.max(2_500, Number(process.env.OLIST_SYNC_REQUEST_DELAY_MS) || 2_500), TURNSTILE_SITE_KEY, TURNSTILE_SECRET };