Files
amayo/README/GUIA_PRACTICA_ENVMANAGER.md
Shni 954e0ba333 Creacion de la AEditor Basicamente un Editor solo para el bot
feat: Add new commands for Discord bot

- Implemented "Everyone" command that replies to the user when executed.
- Added "sdfsdfsdf" command with an alias "dfsf" that also replies to the user.
- Enhanced the command structure with type definitions for better type safety.
2025-11-04 03:09:23 -06:00

420 lines
11 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎯 Guía Práctica: Usando las Nuevas Funciones
## 📋 Tabla de Contenidos
1. [Usar EnvManager](#1-usar-envmanager)
2. [Eliminar Archivos Correctamente](#2-eliminar-archivos)
3. [Interpretar Logs de Debugging](#3-logs-de-debugging)
4. [Prevenir Errores Comunes](#4-prevenir-errores)
---
## 1. Usar EnvManager
### Paso 1: Abrir el Manager
1. Click en el botón **"🔐 Variables ENV"** en el sidebar izquierdo
2. Se abrirá el panel del EnvManager
### Paso 2: Escanear Variables
1. Click en **"🔍 Escanear Proyecto"**
2. Espera a que termine (aparecerá notificación)
3. Verás algo como:
```
✅ Escaneadas 5 variables del código
Se agregaron 3 variables nuevas
```
### Paso 3: Ver Ubicaciones
Cada variable mostrará dónde se usa:
```
DATABASE_URL
📍 Usada en 2 ubicación(es) ▼
├─ src\core\prisma.ts:12 → const client = new PrismaClient({ datasourceUrl: process.env.DATABASE_URL })
└─ src\commands\admin\setup.ts:8 → if (!process.env.DATABASE_URL) throw new Error('Missing DB')
```
**Explicación:**
- `src\core\prisma.ts:12` = Archivo y número de línea
- `→ const client = ...` = Código exacto donde se usa
### Paso 4: Editar Variables
**Opción A: Formulario (Recomendado)**
1. Busca la variable en la lista
2. Escribe el valor en el input
3. Click en 👁️ para mostrar/ocultar valores sensibles
4. Click en **"💾 Guardar .env"**
**Opción B: Editor Raw**
1. Scroll hasta **"📝 Editor Raw (.env)"**
2. Edita el texto directamente:
```env
DATABASE_URL=postgres://localhost:5432/mydb
API_KEY=sk_test_123456789
DEBUG=true
```
3. Click en **"🔄 Sincronizar desde Raw"**
4. Click en **"💾 Guardar .env"**
### Paso 5: Agregar Variable Manual
Si necesitas una variable que no está en el código:
1. Click en **" Agregar Variable"**
2. Escribe el nombre (ej: `MY_SECRET_KEY`)
3. Se convierte automáticamente a mayúsculas: `MY_SECRET_KEY`
4. Escribe el valor
5. Guarda
### Paso 6: Eliminar Variable
1. Busca la variable en la lista
2. Click en el botón **"🗑️"**
3. Confirma la eliminación
4. La variable desaparece del formulario Y del editor raw
5. Click en **"💾 Guardar .env"** para aplicar
---
## 2. Eliminar Archivos
### Problema: "Permiso Denegado"
**Síntoma:**
```
❌ Error eliminando: Permiso denegado para eliminar: src/test.ts
Ejecuta el editor como administrador
```
**Solución Windows:**
**Método 1: Ejecutar como Admin**
1. Cierra la aplicación
2. Click derecho en el ejecutable
3. "Ejecutar como administrador"
4. Intenta eliminar de nuevo
**Método 2: PowerShell Elevado**
```powershell
# Abrir PowerShell como Admin
Start-Process -FilePath "C:\ruta\a\tu\editor.exe" -Verb RunAs
```
**Método 3: Cambiar Permisos**
1. Click derecho en la carpeta del proyecto
2. Propiedades → Seguridad → Editar
3. Tu usuario → Control total ✅
4. Aplicar → OK
### Problema: "Archivo no Encontrado"
**Síntoma:**
```
❌ Archivo no encontrado: src/deleted.ts
```
**Causa:** Otro programa ya eliminó el archivo (Git, otro editor, etc.)
**Solución:** Refresca el árbol de archivos (F5 o click en "🔄 Refrescar")
### Problema: "No es un Archivo"
**Síntoma:**
```
❌ La ruta no es un archivo: src/commands
```
**Causa:** Intentaste eliminar una carpeta con el botón de eliminar archivo
**Solución:** Usa el botón de eliminar carpeta (usualmente click derecho → Eliminar carpeta)
---
## 3. Logs de Debugging
### Dónde Ver los Logs
**Opción 1: Consola del Navegador (Desarrollo)**
1. Presiona **F12**
2. Tab "Console"
3. Verás todos los logs
**Opción 2: Archivo de Log (Producción)**
- Windows: `C:\Users\TuUsuario\AppData\Local\amayo-editor\logs\`
- Linux: `~/.local/share/amayo-editor/logs/`
- Mac: `~/Library/Application Support/amayo-editor/logs/`
### Logs del EnvManager
#### Carga Exitosa
```
📂 Cargando .env desde: C:/Users/Shnimlz/Documents/GitHub/amayo
✅ .env cargado, contenido: DATABASE_URL=postgres://localhost
PORT=3000
API_KEY=sk_test_123
🔍 Parseando .env, líneas: 3
✓ DATABASE_URL=postgres://localhost
✓ PORT=3000
✓ API_KEY=sk_test_123
✅ Variables parseadas: 3
```
**Interpretación:**
- ✅ Todo bien
- Se cargaron 3 variables correctamente
#### Archivo No Existe
```
📂 Cargando .env desde: C:/Users/Shnimlz/Documents/GitHub/amayo
❌ Error cargando .env: No such file or directory
No se encontró archivo .env, se creará uno nuevo
```
**Interpretación:**
- ⚠️ Normal en proyectos nuevos
- El archivo se creará cuando guardes
#### Error de Parseo
```
🔍 Parseando .env, líneas: 5
✓ DATABASE_URL=postgres://localhost
✗ Línea inválida: "INVALID LINE WITHOUT EQUALS"
✓ API_KEY=sk_test_123
✅ Variables parseadas: 2
```
**Interpretación:**
- ⚠️ Una línea no tiene formato válido
- Se ignoró y se cargaron las demás
### Logs del Guardado
#### Guardado Exitoso
```
💾 Guardando .env...
Ruta del proyecto: C:/Users/Shnimlz/Documents/GitHub/amayo
Contenido a guardar: DATABASE_URL=postgres://localhost
PORT=3000
✅ Guardado exitoso
```
**Interpretación:**
- ✅ Archivo escrito en el disco
- Ubicación: `{projectRoot}/.env`
#### Error de Permisos
```
💾 Guardando .env...
❌ Error guardando .env: Permission denied (os error 13)
```
**Solución:** Ejecutar como administrador
---
## 4. Prevenir Errores Comunes
### Error 1: Variables No Se Guardan
**Síntoma:** Editas variables pero al reabrir están en blanco
**Causa:** No hiciste click en "💾 Guardar .env"
**Prevención:**
1. Siempre busca el botón verde "💾 Guardar .env"
2. Debe estar habilitado (no gris)
3. Click y espera la notificación: "✅ Archivo .env guardado correctamente"
### Error 2: Editor Raw y Formulario Desincronizados
**Síntoma:** El formulario muestra valores diferentes al editor raw
**Causa:** Editaste en raw pero no sincronizaste
**Prevención:**
1. Si editas en raw, SIEMPRE click en "🔄 Sincronizar desde Raw"
2. Espera la notificación: "🔄 Sincronizado desde editor raw"
3. Verifica que el formulario se actualizó
4. Ahora sí, guarda
### Error 3: Loop Infinito (Navegador Colgado)
**Síntoma:** El navegador se congela al editar variables
**Causa:** Bug en el código (ya arreglado con `isUpdatingRaw`)
**Si pasa:**
1. Cierra la aplicación
2. Actualiza a la última versión
3. El flag `isUpdatingRaw` previene este problema
### Error 4: Variables Detectadas pero No en el .env
**Síntoma:** "⚠️ Sin definir: 3" pero no aparecen en la lista
**Causa:** No se auto-agregaron
**Solución:**
1. Scroll hasta "⚠️ Variables sin definir encontradas en el código"
2. Click en " Agregar" en cada variable faltante
3. O click en "🔍 Escanear Proyecto" de nuevo
### Error 5: Ubicaciones No Aparecen
**Síntoma:** Las variables no muestran "📍 Usada en X ubicación(es)"
**Causa:** Versión vieja del backend
**Solución:**
1. Verifica que `AEditor/src-tauri/src/lib.rs` tenga la función `scan_env_variables_with_locations`
2. Recompila el backend Rust:
```bash
cd AEditor
npm run tauri build
```
3. Reinicia la aplicación
---
## 5. Ejemplos de Casos de Uso
### Caso 1: Proyecto Nuevo
**Escenario:** Acabas de clonar un repo, no tiene .env
**Pasos:**
1. Abre EnvManager
2. Click "🔍 Escanear Proyecto"
3. Se detectan automáticamente todas las variables del código
4. Completa los valores:
```env
DATABASE_URL=postgres://localhost:5432/mydb
JWT_SECRET=supersecret123
API_KEY=sk_live_...
```
5. Guarda
6. ¡Listo! Ya tienes tu .env
### Caso 2: Migración de Variables
**Escenario:** Renombraste una variable en el código
**Pasos:**
1. Cambia en el código:
```typescript
// Antes
const url = process.env.DATABASE_URL;
// Después
const url = process.env.DB_CONNECTION_STRING;
```
2. Abre EnvManager
3. Click "🔍 Escanear Proyecto"
4. Verás:
- ✅ `DB_CONNECTION_STRING` detectada
- ⚠️ `DATABASE_URL` ya no se usa
5. Elimina `DATABASE_URL`
6. Agrega valor a `DB_CONNECTION_STRING`
7. Guarda
### Caso 3: Debugging de Variable Faltante
**Escenario:** Tu app dice "Missing environment variable: API_KEY"
**Pasos:**
1. Abre EnvManager
2. Click "🔍 Escanear Proyecto"
3. Busca `API_KEY` en la lista
4. Mira "📍 Usada en X ubicación(es)" para ver dónde se requiere:
```
src\server\api.ts:15 → headers: { 'Authorization': process.env.API_KEY }
```
5. Agrega el valor correcto
6. Guarda
7. Reinicia la app
### Caso 4: Compartir .env.example
**Escenario:** Quieres compartir un template del .env sin valores sensibles
**Pasos:**
1. Abre EnvManager
2. Copia el contenido del editor raw
3. Crea archivo `.env.example`
4. Pega y reemplaza valores:
```env
DATABASE_URL=postgres://localhost:5432/your_db_name
JWT_SECRET=your_secret_here
API_KEY=your_api_key_here
```
5. Commit `.env.example` a Git
6. **NO** comitees `.env` (debe estar en `.gitignore`)
---
## 6. Atajos de Teclado
| Acción | Atajo |
|--------|-------|
| Guardar .env | `Ctrl+S` (cuando el botón está habilitado) |
| Abrir DevTools | `F12` |
| Refrescar | `F5` |
| Buscar en raw | `Ctrl+F` (dentro del textarea) |
| Seleccionar todo raw | `Ctrl+A` (dentro del textarea) |
---
## 7. Checklist de Verificación
Antes de cerrar EnvManager, verifica:
- [ ] Todas las variables tienen valores (no vacías)
- [ ] No hay "⚠️ Sin definir" (o las agregaste intencionalmente)
- [ ] Guardaste los cambios (botón "💾 Guardar .env" presionado)
- [ ] Viste la notificación: "✅ Archivo .env guardado correctamente"
- [ ] Si editaste en raw, sincronizaste primero
---
## 8. Troubleshooting Rápido
| Problema | Solución Rápida |
|----------|-----------------|
| No guarda cambios | ¿Hiciste click en "💾 Guardar .env"? |
| Permiso denegado | Ejecutar como administrador |
| Variables no aparecen | Click en "🔍 Escanear Proyecto" |
| Raw y formulario diferentes | Click en "🔄 Sincronizar desde Raw" |
| Ubicaciones no aparecen | Recompila el backend Rust |
| App se congela | Actualiza a última versión (tiene fix) |
---
## 9. Preguntas Frecuentes
**P: ¿Dónde se guarda el .env?**
R: En la raíz del proyecto: `{projectRoot}/.env`
**P: ¿Puedo editar el .env manualmente en otro editor?**
R: Sí, pero después haz "🔄 Refrescar" en el EnvManager para recargar
**P: ¿Las ubicaciones se actualizan en tiempo real?**
R: No, tienes que hacer "🔍 Escanear Proyecto" para actualizar
**P: ¿Puedo agregar comentarios en el .env?**
R: Sí, líneas que empiezan con `#` son comentarios
**P: ¿Qué pasa si elimino una variable que se usa en el código?**
R: El código fallará en runtime. Verifica las ubicaciones antes de eliminar.
**P: ¿Puedo tener múltiples .env?**
R: Sí, pero el EnvManager solo maneja `.env`. Para `.env.local`, `.env.production`, etc., edítalos manualmente.
---
¡Eso es todo! Ahora eres un experto en usar el nuevo EnvManager 🎉