Una aplicación web moderna que permite reconstruir código fuente original a partir de archivos Source Map (.js.map), ideal para recuperar proyectos perdidos o analizar aplicaciones compiladas.
- 🔍 Reconstrucción automática: Extrae y reconstruye archivos fuente originales desde source maps
- 📁 Gestión de proyectos: Organiza y almacena múltiples proyectos reconstruidos
- 🎨 Interfaz moderna: UI elegante con Material-UI y tema oscuro
- 📋 Visualizador de código: Syntax highlighting con Prism.js para múltiples lenguajes
- 🏷️ Sistema de etiquetas: Organiza proyectos con etiquetas personalizadas
- 🔍 Búsqueda y filtros: Encuentra proyectos y archivos rápidamente
- 📊 Estadísticas detalladas: Métricas sobre archivos recuperados por carpeta
- 💾 Base de datos SQLite: Almacenamiento local persistente
- Node.js + Express.js - Servidor web
- SQLite3 - Base de datos
- source-map - Procesamiento de source maps
- Multer - Upload de archivos
- CORS - Cross-origin resource sharing
- React - Biblioteca de UI
- Material-UI (MUI) - Componentes de interfaz
- Prism.js - Syntax highlighting
- MUI X Tree View - Navegador de archivos tipo árbol
- Node.js (v16 o superior)
- npm o yarn
git clone https://github.com/raa2015/MapsReconstruct.git
cd MapsReconstruct
cd backend
npm install
cd ../frontend
npm install
# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm start
# Backend
cd backend
npm start
- Frontend: http://localhost:3000
- Backend API: http://localhost:4000
- Ve a la pestaña "Nuevo Proyecto"
- Ingresa un nombre y descripción
- Añade etiquetas (opcional)
- Sube uno o más archivos
.js.map
- Haz clic en "Procesar Archivos"
- Ve a la pestaña "Mis Proyectos"
- Navega por la lista o usa la búsqueda
- Haz clic en un proyecto para ver detalles
- Explora la estructura de archivos recuperados
- Dentro de un proyecto, navega por el árbol de archivos
- Haz clic en cualquier archivo para ver su contenido
- El código se mostrará con syntax highlighting automático
- Usa el botón "Copiar" para copiar el contenido
MapsReconstruct/
├── backend/ # Servidor Node.js
│ ├── src/
│ │ ├── server.js # Servidor Express principal
│ │ └── reconstruct.js # Lógica de reconstrucción
│ ├── maps/ # Source maps cargados
│ ├── recovered_projects/ # Proyectos reconstruidos
│ ├── projects.sqlite # Base de datos
│ └── package.json
├── frontend/ # Aplicación React
│ ├── src/
│ │ ├── App.js # Componente principal
│ │ └── ...
│ └── package.json
└── README.md
GET /proyectos
- Listar todos los proyectosPOST /proyectos
- Crear nuevo proyecto (multipart/form-data)GET /proyectos/:id
- Obtener detalles de un proyectoDELETE /proyectos/:id
- Eliminar proyecto
GET /proyectos/:id/archivo?ruta=<path>
- Obtener contenido de archivo
- Tema oscuro moderno con colores personalizados
- Animaciones fluidas y transiciones suaves
- Responsive design para diferentes dispositivos
- Tree view interactivo para navegación de archivos
- Syntax highlighting para 20+ lenguajes de programación
- Notificaciones con feedback visual
- Sistema de filtros y búsqueda en tiempo real
- Recuperación de proyectos perdidos cuando solo tienes los bundles
- Análisis de aplicaciones compiladas o minificadas
- Auditoría de código en aplicaciones web
- Educación y investigación sobre bundling y source maps
- Backup y archivo de código fuente
- Requiere source maps válidos y completos
- La calidad de reconstrucción depende del bundler usado
- Algunos archivos pueden no recuperarse si faltan en el source map
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
Si encuentras algún problema o tienes preguntas:
- Revisa los Issues existentes
- Crea un nuevo issue con detalles del problema
- Incluye los source maps de ejemplo si es posible
- Export de proyectos como ZIP
- Soporte para más tipos de source maps
- Integración con Git
- Comparación entre versiones
- Métricas avanzadas de código
- Plugin para navegadores
⭐ Si este proyecto te resultó útil, no olvides darle una estrella!