Repository navigation
Conversation
`google` y `cli` estaban declaradas como dependencias de produccion y no se usan en ninguna parte. `google` es un scraper de resultados de busqueda cuya ultima version es de hace una decada, y arrastraba request@2.88.2 (abandonado desde 2020) y cheerio@0.19.0 (de 2015): de ahi salian las vulnerabilidades criticas. `shadcn` SI se usa, aunque no desde JavaScript: src/index.css importa "shadcn/tailwind.css". Quitarla dejaba el build en "Can't resolve". Se movio a devDependencies, que es su sitio: el @import se resuelve al compilar, y tanto el CI como deploy-frontend.sh corren `npm ci` completo. Resultado: - 331 paquetes menos en el arbol de dependencias - Vulnerabilidades de produccion: 27 (4 criticas, 13 altas) -> 8 (1 critica) - Las 3 criticas que desaparecieron venian todas de `google` Verificado: lint y build en verde, el CSS del build pesa 78.47 kB contra los 79.15 kB de antes (o sea que los estilos de shadcn siguen ahi), el JS bajo 21 kB, y la app carga y responde. Lo que queda pendiente es axios: sigue en 1.14.0 y aporta la critica y varias altas que restan. Se trata aparte porque actualizarlo toca la libreria con la que la app entera habla con el backend.
El CI fallaba en `npm ci` con "Missing: @emnapi/core from lock file". Causa: el lockfile se regenero en Windows y npm poda las dependencias OPCIONALES que no aplican a la plataforma actual. @emnapi/core y @emnapi/runtime solo se instalan en Linux, que es justo donde corre el CI, asi que el lockfile quedaba incompleto para Ubuntu aunque en Windows funcionara. Arreglo: se rehizo el lockfile con `npm install --package-lock-only` sobre el de main y se le devolvieron las dos entradas opcionales que se habian podado. El filtro por "optional": true es lo que hace esto seguro: los 59 paquetes que SI queremos fuera (google, cli, request, cheerio y su arbol) no son opcionales, asi que no se restauran. Tambien se descarto regenerar el lockfile desde cero: eso subia todas las dependencias a la ultima version compatible con su rango, y con eslint-plugin-react-hooks nuevo aparecian 18 errores de lint en pantallas que este cambio no toca. Actualizar dependencias es otro trabajo y merece su propio PR. Verificado con `npm ci` local (lo mismo que corre el CI): instala, lint y build en verde.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Limpieza de dependencias: de 27 vulnerabilidades a 8
googleycliestaban declaradas como dependencias de producción y no se usan en ninguna parte del proyecto.googlees un scraper de resultados de búsqueda cuya última versión es de hace una década. Arrastraba:request@2.88.2— abandonado oficialmente desde 2020cheerio@0.19.0— de 2015, concss-selectycss-whatvulnerablesDe ahí salían las 3 críticas que se han ido.
shadcnsí se usaba — casi rompo el buildEl escaneo original decía que tampoco se usaba, y es falso:
src/index.css:3tieneAl quitarla, el build murió con
Can't resolve 'shadcn/tailwind.css'. El escaneo había buscadofrom '...'en JavaScript y no miró los@importde CSS.Así que no se quita: se mueve a
devDependencies, que es donde le toca — el@importse resuelve al compilar, y tanto el CI comodeploy-frontend.shcorrennpm cicompleto (sin--omit=dev), así que sigue disponible al construir.Resultado
Que el CSS pese prácticamente lo mismo es la comprobación de que los estilos de shadcn siguen entrando; si el
@importse hubiera perdido en silencio, ese número se habría desplomado.Verificado
npm run lintynpm run builden verdePendiente aparte
Lo que queda viene sobre todo de
axios1.14.0 (la crítica y varias altas), másreact-routerywebsocket-driver. Actualizar axios toca la librería con la que la app entera habla con el backend, así que va en su propio PR para poder probarlo con calma.