Fix frontend ignore dependency and use native folder filtering
This commit is contained in:
parent
8a2eceb877
commit
e3770b69ed
3 changed files with 14 additions and 15 deletions
|
|
@ -47,4 +47,5 @@ Dar continuidad al RAG en `RAG/` a partir del estado actual documentado.
|
||||||
- Limpieza ejecutada exitosamente sobre el `scope` del código fuente antiguo (`RAG/src`).
|
- Limpieza ejecutada exitosamente sobre el `scope` del código fuente antiguo (`RAG/src`).
|
||||||
- Reingesta del directorio `RAG/src` con el código actualizado.
|
- Reingesta del directorio `RAG/src` con el código actualizado.
|
||||||
- Documento de seguimiento `RAG/docs/TASK_LIMPIEZA.md` y documentacion API `RAG/docs/API_RAG.md` actualizados.
|
- Documento de seguimiento `RAG/docs/TASK_LIMPIEZA.md` y documentacion API `RAG/docs/API_RAG.md` actualizados.
|
||||||
- Implementacion de ingesta directa de carpetas locales desde el playground: el navegador respeta `.gitignore`, empaqueta la carpeta en un `.zip` en memoria y el backend usa `adm-zip` para extraerla de forma segura en un directorio temporal antes de la ingesta.
|
- Implementacion de ingesta directa de carpetas locales desde el playground: el navegador empaqueta la carpeta en un `.zip` en memoria (filtrando `node_modules`, `dist`, `.git`, etc. con logica nativa) y el backend usa `adm-zip` para extraerla de forma segura en un directorio temporal antes de la ingesta.
|
||||||
|
- Correccion de error `ReferenceError: ignore is not defined` eliminando dependencia externa en el frontend.
|
||||||
|
|
|
||||||
|
|
@ -355,25 +355,24 @@ ingestButton.addEventListener("click", async () => {
|
||||||
ingestResult.textContent = "Empaquetando carpeta local (esto puede tardar unos segundos)...";
|
ingestResult.textContent = "Empaquetando carpeta local (esto puede tardar unos segundos)...";
|
||||||
|
|
||||||
const zip = new JSZip();
|
const zip = new JSZip();
|
||||||
const ig = ignore();
|
|
||||||
|
|
||||||
// Buscar .gitignore en la raiz
|
|
||||||
const gitignoreFile = Array.from(ingestUploadFolder.files).find(f => f.webkitRelativePath.match(/^[^\/]+\/\.gitignore$/));
|
|
||||||
if (gitignoreFile) {
|
|
||||||
const content = await gitignoreFile.text();
|
|
||||||
ig.add(content);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reglas hardcodeadas de seguridad
|
|
||||||
ig.add(['node_modules/', '.git/', '.venv/', 'dist/', 'build/']);
|
|
||||||
|
|
||||||
let addedCount = 0;
|
let addedCount = 0;
|
||||||
for (const file of ingestUploadFolder.files) {
|
for (const file of ingestUploadFolder.files) {
|
||||||
// webkitRelativePath format: "FolderName/path/to/file.ext"
|
// webkitRelativePath format: "FolderName/path/to/file.ext"
|
||||||
// Le quitamos el primer segmento (FolderName) para validar con ignore correctamente
|
// Le quitamos el primer segmento (FolderName) para la ruta interna
|
||||||
const relativePath = file.webkitRelativePath.split('/').slice(1).join('/');
|
const relativePath = file.webkitRelativePath.split('/').slice(1).join('/');
|
||||||
|
|
||||||
if (relativePath && !ig.ignores(relativePath)) {
|
// Filtro nativo simple sin depender de la libreria ignore
|
||||||
|
const isIgnored =
|
||||||
|
relativePath.startsWith('node_modules/') ||
|
||||||
|
relativePath.startsWith('.git/') ||
|
||||||
|
relativePath.startsWith('.venv/') ||
|
||||||
|
relativePath.startsWith('dist/') ||
|
||||||
|
relativePath.startsWith('build/') ||
|
||||||
|
relativePath.includes('/node_modules/') ||
|
||||||
|
relativePath.includes('/.git/');
|
||||||
|
|
||||||
|
if (relativePath && !isIgnored) {
|
||||||
zip.file(relativePath, file);
|
zip.file(relativePath, file);
|
||||||
addedCount++;
|
addedCount++;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
<title>RAG Playground</title>
|
<title>RAG Playground</title>
|
||||||
<link rel="stylesheet" href="/playground/styles.css" />
|
<link rel="stylesheet" href="/playground/styles.css" />
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ignore/5.3.1/ignore.min.js"></script>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main class="layout">
|
<main class="layout">
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue