First commit - backup RDOC

This commit is contained in:
2026-02-20 07:20:32 -03:00
commit b7415f0586
259 changed files with 51707 additions and 0 deletions

102
scripts/setup-supabase.js Normal file
View File

@@ -0,0 +1,102 @@
#!/usr/bin/env node
import { readFileSync, writeFileSync } from 'fs';
import { join } from 'path';
import readline from 'readline';
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const question = (query) => new Promise(resolve => rl.question(query, resolve));
async function setupSupabase() {
console.log(`
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ 🔗 CONFIGURAR CONEXÃO COM SUPABASE "RDO" ║
║ ║
╚═══════════════════════════════════════════════════════════════╝
`);
console.log('📋 Você vai precisar das credenciais do seu projeto Supabase "RDO"');
console.log(' Acesse: https://supabase.com/dashboard');
console.log(' Selecione o projeto "RDO"');
console.log(' Vá em: Settings → API\n');
// Obter credenciais
const supabaseUrl = await question('🔗 Project URL (https://...supabase.co): ');
const anonKey = await question('🔑 Anon Public Key: ');
// Validar
if (!supabaseUrl || !anonKey) {
console.error('\n❌ Erro: Credenciais não podem estar vazias!');
rl.close();
process.exit(1);
}
if (!supabaseUrl.includes('supabase.co')) {
console.error('\n❌ Erro: URL do Supabase inválida!');
rl.close();
process.exit(1);
}
if (!anonKey.startsWith('eyJ')) {
console.error('\n❌ Erro: Anon Key parece inválida (deve começar com "eyJ")!');
rl.close();
process.exit(1);
}
// Atualizar .env
console.log('\n⏳ Atualizando arquivo .env...');
const envPath = join(process.cwd(), '.env');
const envContent = `# Supabase Configuration
VITE_SUPABASE_URL=${supabaseUrl}
VITE_SUPABASE_ANON_KEY=${anonKey}
# Service Role Key (Backend Only - Never use in frontend)
# SUPABASE_SERVICE_ROLE_KEY=
`;
try {
writeFileSync(envPath, envContent);
console.log('✅ Arquivo .env atualizado com sucesso!\n');
} catch (error) {
console.error('❌ Erro ao atualizar .env:', error.message);
rl.close();
process.exit(1);
}
// Extrair project-ref
const projectRef = supabaseUrl.match(/https:\/\/([^.]+)\.supabase\.co/)?.[1];
console.log('📊 Resumo da configuração:');
console.log(` Project URL: ${supabaseUrl}`);
console.log(` Project Ref: ${projectRef}`);
console.log(` Anon Key: ${anonKey.substring(0, 20)}...`);
console.log('\n✅ Configuração concluída!\n');
console.log('📝 Próximos passos:\n');
console.log('1⃣ Linkar projeto Supabase CLI:');
console.log(` supabase link --project-ref ${projectRef}\n`);
console.log('2⃣ Verificar conexão:');
console.log(' node check-supabase-status.js\n');
console.log('3⃣ Aplicar migrations:');
console.log(' supabase db push\n');
console.log('4⃣ Iniciar desenvolvimento:');
console.log(' npm run dev\n');
rl.close();
}
setupSupabase().catch(error => {
console.error('❌ Erro:', error.message);
rl.close();
process.exit(1);
});