1 line
16 KiB
JSON
1 line
16 KiB
JSON
{"repo": "bhmtecnologia/lexidecis", "files": {"config/app.config.js": {"46221e19a7c7871b2baded833de4c17f57134e83": {"t": 1785746690.567469, "n": 7700, "h": "6f11fc18f5bae667", "c": "/**\n * 🚀 Configuração Centralizada - LexiDecis\n * \n * Este arquivo contém todas as configurações da aplicação,\n * incluindo endpoints de API, configurações Firebase,\n * e outras variáveis de ambiente.\n */\n\n// Configurações da aplicação\nexport const APP_CONFIG = {\n // Informações básicas da aplicação\n app: {\n name: 'LexiDecis',\n version: '1.0.0',\n description: 'Sistema de Chat com Inteligência Artificial',\n author: 'LexiDecis Team',\n environment: process.env.NODE_ENV || 'development',\n debug: process.env.NODE_ENV === 'development'\n },\n\n // Configurações de API\n api: {\n baseUrl: process.env.API_BASE_URL || 'http://localhost:8000',\n timeout: 30000,\n retries: 3,\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n }\n },\n\n // Endpoints de APIs de IA\n aiEndpoints: {\n openai: {\n url: 'https://api.openai.com/v1/chat/completions',\n model: 'gpt-4',\n maxTokens: 4000,\n temperature: 0.7\n },\n gemini: {\n url: 'https://generativelanguage.googleapis.com/v1beta/models',\n model: 'gemini-pro',\n maxTokens: 4000,\n temperature: 0.7\n },\n anthropic: {\n url: 'https://api.anthropic.com/v1/messages',\n model: 'claude-3-sonnet-20240229',\n maxTokens: 4000,\n temperature: 0.7\n },\n deepseek: {\n url: 'https://api.deepseek.com/v1/chat/completions',\n model: 'deepseek-chat',\n maxTokens: 4000,\n temperature: 0.7\n },\n groq: {\n url: 'https://api.groq.com/openai/v1/chat/completions',\n model: 'llama3-8b-8192',\n maxTokens: 4000,\n temperature: 0.7\n }\n },\n\n // Configurações Firebase\n firebase: {\n apiKey: process.env.FIREBASE_API_KEY || \"sua-api-key-aqui\",\n authDomain: process.env.FIREBASE_AUTH_DOMAIN || \"seu-projeto.firebaseapp.com\",\n projectId: process.env.FIREBASE_PROJECT_ID || \"seu-projeto-id\",\n storageBucket: process.env.FIREBASE_STORAGE_BUCKET || \"seu-projeto.appspot.com\",\n messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID || \"123456789\",\n appId: process.env.FIREBASE_APP_ID || \"1:123456789:web:abcdef123456\"\n },\n\n // Configurações de UI\n ui: {\n theme: {\n primary: '#007bff',\n secondary: '#6c757d',\n success: '#28a745',\n danger: '#dc3545',\n warning: '#ffc107',\n info: '#17a2b8',\n light: '#f8f9fa',\n dark: '#343a40'\n },\n chat: {\n maxMessages: 100,\n autoScroll: true,\n typingIndicator: true,\n messageTimeout: 30000\n },\n sidebar: {\n width: 280,\n collapsedWidth: 60,\n autoCollapse: true\n }\n },\n\n // Configurações de teste\n testing: {\n enabled: process.env.NODE_ENV === 'development',\n mockData: true,\n timeout: 5000,\n retries: 2\n },\n\n // Configurações de performance\n performance: {\n debounceDelay: 300,\n throttleDelay: 100,\n maxConcurrentRequests: 5,\n cacheTimeout: 300000 // 5 minutos\n },\n\n // Configurações de segurança\n security: {\n sessionTimeout: 3600000, // 1 hora\n maxLoginAttempts: 5,\n passwordMinLength: 8,\n enableCORS: true\n }\n};\n\n// Configurações específicas por ambiente\nexport const ENV_CONFIG = {\n development: {\n debug: true,\n logLevel: 'debug',\n apiUrl: 'http://localhost:8000',\n enableHotReload: true\n },\n staging: {\n debug: false,\n logLevel: 'info',\n apiUrl: 'https://staging.lexidecis.com',\n enableHotReload: false\n },\n production: {\n debug: false,\n logLevel: 'error',\n apiUrl: 'https://api.lexidecis.com',\n enableHotReload: false\n }\n};\n\n// Configurações de logging\nexport const LOG_CONFIG = {\n levels: {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3\n },\n colors: {\n error: 'red',\n warn: 'yellow',\n info: 'blue',\n debug: 'green'\n },\n format: '[{timestamp}] {level}: {message}',\n maxLogSize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5\n};\n\n// Configurações de cache\nexport const CACHE_CONFIG = {\n localStorage: {\n prefix: 'lexidecis_',\n expiration: 24 * 60 * 60 * 1000 // 24 horas\n },\n sessionStorage: {\n prefix: 'lexidecis_session_',\n expiration: 60 * 60 * 1000 // 1 hora\n },\n memory: {\n maxSize: 100,\n expiration: 30 * 60 * 1000 // 30 minutos\n }\n};\n\n// Configurações de validação\nexport const VALIDATION_CONFIG = {\n message: {\n minLength: 1,\n maxLength: 4000,\n allowedTags: ['b', 'i', 'u', 'code', 'pre']\n },\n user: {\n name: {\n minLength: 2,\n maxLength: 50,\n pattern: /^[a-zA-ZÀ-ÿ\\s]+$/\n },\n email: {\n pattern: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n }\n }\n};\n\n// Configurações de erro\nexport const ERROR_CONFIG = {\n messages: {\n network: 'Erro de conexão. Verifique sua internet.',\n auth: 'Erro de autenticação. Faça login novamente.',\n validation: 'Dados inválidos. Verifique as informações.',\n server: 'Erro no servidor. Tente novamente mais tarde.',\n unknown: 'Erro desconhecido. Tente novamente.'\n },\n retry: {\n maxAttempts: 3,\n delay: 1000,\n backoff: 2\n }\n};\n\n// Configurações de notificação\nexport const NOTIFICATION_CONFIG = {\n types: {\n success: {\n icon: '✅',\n duration: 3000,\n position: 'top-right'\n },\n error: {\n icon: '❌',\n duration: 5000,\n position: 'top-right'\n },\n warning: {\n icon: '⚠️',\n duration: 4000,\n position: 'top-right'\n },\n info: {\n icon: 'ℹ️',\n duration: 3000,\n position: 'top-right'\n }\n }\n};\n\n// Função para obter configuração baseada no ambiente\nexport function getConfig() {\n const env = APP_CONFIG.app.environment;\n return {\n ...APP_CONFIG,\n ...ENV_CONFIG[env]\n };\n}\n\n// Função para validar configurações\nexport function validateConfig() {\n const config = getConfig();\n const errors = [];\n\n // Validar configurações obrigatórias\n if (!config.firebase.apiKey || config.firebase.apiKey === \"sua-api-key-aqui\") {\n errors.push('FIREBASE_API_KEY não configurada');\n }\n\n if (!config.firebase.projectId || config.firebase.projectId === \"seu-projeto-id\") {\n errors.push('FIREBASE_PROJECT_ID não configurado');\n }\n\n // Validar endpoints de IA\n Object.entries(config.aiEndpoints).forEach(([provider, endpoint]) => {\n if (!endpoint.url) {\n errors.push(`URL do endpoint ${provider} não configurada`);\n }\n });\n\n if (errors.length > 0) {\n console.error('❌ Erros de configuração:', errors);\n return false;\n }\n\n console.log('✅ Configurações válidas');\n return true;\n}\n\n// Função para obter configuração de API específica\nexport function getApiConfig(provider) {\n const config = getConfig();\n return config.aiEndpoints[provider] || null;\n}\n\n// Função para obter configuração de tema\nexport function getThemeConfig() {\n const config = getConfig();\n return config.ui.theme;\n}\n\n// Exportar configuração padrão\nexport default APP_CONFIG; "}, "4b7ee9227e1b919c4b28cd2c2f9d9328bf75a29d": {"t": 1785766921.029809, "n": 7700, "h": "6f11fc18f5bae667", "c": "/**\n * 🚀 Configuração Centralizada - LexiDecis\n * \n * Este arquivo contém todas as configurações da aplicação,\n * incluindo endpoints de API, configurações Firebase,\n * e outras variáveis de ambiente.\n */\n\n// Configurações da aplicação\nexport const APP_CONFIG = {\n // Informações básicas da aplicação\n app: {\n name: 'LexiDecis',\n version: '1.0.0',\n description: 'Sistema de Chat com Inteligência Artificial',\n author: 'LexiDecis Team',\n environment: process.env.NODE_ENV || 'development',\n debug: process.env.NODE_ENV === 'development'\n },\n\n // Configurações de API\n api: {\n baseUrl: process.env.API_BASE_URL || 'http://localhost:8000',\n timeout: 30000,\n retries: 3,\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n }\n },\n\n // Endpoints de APIs de IA\n aiEndpoints: {\n openai: {\n url: 'https://api.openai.com/v1/chat/completions',\n model: 'gpt-4',\n maxTokens: 4000,\n temperature: 0.7\n },\n gemini: {\n url: 'https://generativelanguage.googleapis.com/v1beta/models',\n model: 'gemini-pro',\n maxTokens: 4000,\n temperature: 0.7\n },\n anthropic: {\n url: 'https://api.anthropic.com/v1/messages',\n model: 'claude-3-sonnet-20240229',\n maxTokens: 4000,\n temperature: 0.7\n },\n deepseek: {\n url: 'https://api.deepseek.com/v1/chat/completions',\n model: 'deepseek-chat',\n maxTokens: 4000,\n temperature: 0.7\n },\n groq: {\n url: 'https://api.groq.com/openai/v1/chat/completions',\n model: 'llama3-8b-8192',\n maxTokens: 4000,\n temperature: 0.7\n }\n },\n\n // Configurações Firebase\n firebase: {\n apiKey: process.env.FIREBASE_API_KEY || \"sua-api-key-aqui\",\n authDomain: process.env.FIREBASE_AUTH_DOMAIN || \"seu-projeto.firebaseapp.com\",\n projectId: process.env.FIREBASE_PROJECT_ID || \"seu-projeto-id\",\n storageBucket: process.env.FIREBASE_STORAGE_BUCKET || \"seu-projeto.appspot.com\",\n messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID || \"123456789\",\n appId: process.env.FIREBASE_APP_ID || \"1:123456789:web:abcdef123456\"\n },\n\n // Configurações de UI\n ui: {\n theme: {\n primary: '#007bff',\n secondary: '#6c757d',\n success: '#28a745',\n danger: '#dc3545',\n warning: '#ffc107',\n info: '#17a2b8',\n light: '#f8f9fa',\n dark: '#343a40'\n },\n chat: {\n maxMessages: 100,\n autoScroll: true,\n typingIndicator: true,\n messageTimeout: 30000\n },\n sidebar: {\n width: 280,\n collapsedWidth: 60,\n autoCollapse: true\n }\n },\n\n // Configurações de teste\n testing: {\n enabled: process.env.NODE_ENV === 'development',\n mockData: true,\n timeout: 5000,\n retries: 2\n },\n\n // Configurações de performance\n performance: {\n debounceDelay: 300,\n throttleDelay: 100,\n maxConcurrentRequests: 5,\n cacheTimeout: 300000 // 5 minutos\n },\n\n // Configurações de segurança\n security: {\n sessionTimeout: 3600000, // 1 hora\n maxLoginAttempts: 5,\n passwordMinLength: 8,\n enableCORS: true\n }\n};\n\n// Configurações específicas por ambiente\nexport const ENV_CONFIG = {\n development: {\n debug: true,\n logLevel: 'debug',\n apiUrl: 'http://localhost:8000',\n enableHotReload: true\n },\n staging: {\n debug: false,\n logLevel: 'info',\n apiUrl: 'https://staging.lexidecis.com',\n enableHotReload: false\n },\n production: {\n debug: false,\n logLevel: 'error',\n apiUrl: 'https://api.lexidecis.com',\n enableHotReload: false\n }\n};\n\n// Configurações de logging\nexport const LOG_CONFIG = {\n levels: {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3\n },\n colors: {\n error: 'red',\n warn: 'yellow',\n info: 'blue',\n debug: 'green'\n },\n format: '[{timestamp}] {level}: {message}',\n maxLogSize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5\n};\n\n// Configurações de cache\nexport const CACHE_CONFIG = {\n localStorage: {\n prefix: 'lexidecis_',\n expiration: 24 * 60 * 60 * 1000 // 24 horas\n },\n sessionStorage: {\n prefix: 'lexidecis_session_',\n expiration: 60 * 60 * 1000 // 1 hora\n },\n memory: {\n maxSize: 100,\n expiration: 30 * 60 * 1000 // 30 minutos\n }\n};\n\n// Configurações de validação\nexport const VALIDATION_CONFIG = {\n message: {\n minLength: 1,\n maxLength: 4000,\n allowedTags: ['b', 'i', 'u', 'code', 'pre']\n },\n user: {\n name: {\n minLength: 2,\n maxLength: 50,\n pattern: /^[a-zA-ZÀ-ÿ\\s]+$/\n },\n email: {\n pattern: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n }\n }\n};\n\n// Configurações de erro\nexport const ERROR_CONFIG = {\n messages: {\n network: 'Erro de conexão. Verifique sua internet.',\n auth: 'Erro de autenticação. Faça login novamente.',\n validation: 'Dados inválidos. Verifique as informações.',\n server: 'Erro no servidor. Tente novamente mais tarde.',\n unknown: 'Erro desconhecido. Tente novamente.'\n },\n retry: {\n maxAttempts: 3,\n delay: 1000,\n backoff: 2\n }\n};\n\n// Configurações de notificação\nexport const NOTIFICATION_CONFIG = {\n types: {\n success: {\n icon: '✅',\n duration: 3000,\n position: 'top-right'\n },\n error: {\n icon: '❌',\n duration: 5000,\n position: 'top-right'\n },\n warning: {\n icon: '⚠️',\n duration: 4000,\n position: 'top-right'\n },\n info: {\n icon: 'ℹ️',\n duration: 3000,\n position: 'top-right'\n }\n }\n};\n\n// Função para obter configuração baseada no ambiente\nexport function getConfig() {\n const env = APP_CONFIG.app.environment;\n return {\n ...APP_CONFIG,\n ...ENV_CONFIG[env]\n };\n}\n\n// Função para validar configurações\nexport function validateConfig() {\n const config = getConfig();\n const errors = [];\n\n // Validar configurações obrigatórias\n if (!config.firebase.apiKey || config.firebase.apiKey === \"sua-api-key-aqui\") {\n errors.push('FIREBASE_API_KEY não configurada');\n }\n\n if (!config.firebase.projectId || config.firebase.projectId === \"seu-projeto-id\") {\n errors.push('FIREBASE_PROJECT_ID não configurado');\n }\n\n // Validar endpoints de IA\n Object.entries(config.aiEndpoints).forEach(([provider, endpoint]) => {\n if (!endpoint.url) {\n errors.push(`URL do endpoint ${provider} não configurada`);\n }\n });\n\n if (errors.length > 0) {\n console.error('❌ Erros de configuração:', errors);\n return false;\n }\n\n console.log('✅ Configurações válidas');\n return true;\n}\n\n// Função para obter configuração de API específica\nexport function getApiConfig(provider) {\n const config = getConfig();\n return config.aiEndpoints[provider] || null;\n}\n\n// Função para obter configuração de tema\nexport function getThemeConfig() {\n const config = getConfig();\n return config.ui.theme;\n}\n\n// Exportar configuração padrão\nexport default APP_CONFIG; "}}}} |