Saltar al contenido
Volver al portafolio

Extensión para VS Code · Código abierto

Corrige vulnerabilidades npm sin actualizar a ciegas.

Las aplicaciones dependen de paquetes creados por terceros. Cuando uno tiene una vulnerabilidad, la solución rápida puede introducir cambios incompatibles. Keel analiza el proyecto dentro de VS Code, calcula una alternativa más prudente y muestra qué cambiará antes de tocar los archivos.

Problema
npm audit fix --force puede saltar a una versión principal incompatible, mientras npm audit señala la vulnerabilidad pero no indica la versión mínima necesaria para salir de ella.
Solución
Keel calcula una candidata mínima sin la vulnerabilidad y reúne señales de riesgo, referencias del paquete, cambios y comandos para revisarlos antes de aplicar nada.
Resultado
La actualización deja de ser un salto automático: se convierte en una decisión explícita, informada y trazable dentro del editor.

Flujo de uso

De la alerta a una decisión revisada

El recorrido sigue los pasos documentados por Keel y deja la validación final en manos del equipo.

  1. Abre un proyecto npm que tenga package-lock.json.

  2. Ejecuta «Keel: Scan» desde la paleta de comandos de VS Code.

  3. Revisa las candidatas, el nivel de riesgo y el detalle de cada paquete.

  4. Elige los cambios, comprueba el diff y los comandos, y aprueba de forma explícita el método de aplicación.

  5. Ejecuta después la compilación y las pruebas propias del proyecto. Keel no las ejecuta.

Dentro de VS Code

Tres momentos para entender antes de cambiar

El análisis separa el panorama general, la evidencia de cada dependencia y la aprobación final.

Pantalla de resultados de Keel en VS Code con paquetes vulnerables agrupados por riesgo y versiones recomendadas

Qué comprueba antes de recomendar una versión

Keel combina la información de npm con controles de procedencia, publicación y aplicación para reducir decisiones apresuradas.

  1. Versión mínima sin la vulnerabilidad

    Lee npm audit, el lockfile y el registro para buscar la primera versión publicada que queda fuera de los rangos vulnerables.

  2. Cuarentena de versiones nuevas

    Evita recomendar publicaciones demasiado recientes durante el periodo configurable; una vulnerabilidad crítica puede omitir esa espera y queda señalada.

  3. Contraste con OSV o Snyk

    Usa OSV por defecto. Si hay un token y una organización de Snyk configurados, consulta también su API para comprobar la candidata.

  4. Rechazo de avisos de malware

    Descarta versiones afectadas por avisos MAL- de OSV y, al usar Snyk, por señales de paquete malicioso como CWE-506.

  5. Scripts de instalación nuevos

    Compara los manifiestos y advierte si la versión candidata añade preinstall, install o postinstall.

  6. Firmas del registro tras instalar

    Después de npm install o npm audit fix ejecuta npm audit signatures; si falla, detiene el flujo.

  7. Aprobación explícita, nunca --force

    Muestra el diff y los comandos antes de aplicar. Solo acepta comandos npm permitidos y rechaza cualquier argumento --force.

Privacidad y límites claros

Keel no recopila telemetría. El panel funciona con una política de seguridad sin acceso de red y la extensión restringe sus solicitudes a destinos conocidos.

Contacta únicamente registry.npmjs.org, api.osv.dev, api.snyk.io y api.github.com. El token opcional de Snyk se guarda en SecretStorage de VS Code.

Los resúmenes de notas de versión con IA son opcionales. Usan el modelo de lenguaje de VS Code proporcionado por Copilot y envían a ese modelo las notas de versión pertinentes.

Lo que no pretende hacer

  • Solo admite proyectos npm con package-lock.json.
  • No admite monorepos que declaran workspaces.
  • Un override puede forzar una versión fuera del rango solicitado por un paquete padre.
  • La información de cambios depende de que el repositorio publique GitHub Releases.
  • La detección de imports busca texto; no realiza un análisis completo del árbol sintáctico.
  • No ejecuta la compilación ni las pruebas del proyecto; deben correrse después de actualizar.

Tecnologías y servicios

  • TypeScript
  • VS Code API
  • Vue 3
  • Vite
  • Node.js
  • npm
  • OSV
  • Snyk API
  • GitHub API
Disponible para proyectos

¿Tu herramienta también necesita convertir riesgo en claridad?

Puedo ayudarte a diseñar una experiencia que haga visible la evidencia, los límites y la decisión importante antes de ejecutar un cambio.

Conversemos
Hablemos