Pitch: Depx — entenda o que realmente tem no seu node_modules (e no seu Cargo.lock)
Seu node_modules tem centenas de pacotes. Você sabe quais deles o seu código de fato importa? Por que is-odd está instalado? Se aquele alerta de vulnerabilidade afeta código que você realmente usa?
Foi com essas perguntas que comecei a escrever o depx, um analisador de dependências pra projetos JS/TS e Rust, escrito em Rust. Ferramentas como npm ls, npm audit e depcheck dão pedaços da informação sem contexto. A ideia do depx é ligar os pontos.
O que essa atualização traz
analyze— separa o que é usado, o que é dev/build tool (esperado, não importado) e o que é lixo removível de verdade, já com a dica denpm uninstall.deprecated— agora cruza pacote deprecado × uso real. Você sabe se o problema está em algo que você importa ou só numa dependência transitiva ([USED]vs[unused]).why <pacote>— mostra a cadeia completa até a raiz, pra entender por que aquilo entrou na árvore.audit— consulta o OSV com as suas versões exatas instaladas, eliminando os falsos positivos clássicos donpm audit.duplicates— pra projetos Rust, encontra crates duplicados em várias versões, classifica por severidade e calcula o custo em compile units.
Pra testar
cargo install depx
Está em estágio inicial (pnpm-lock.yaml e yarn.lock vêm a seguir), é MIT, e o repo está aqui: https://github.com/ruidosujeira/depx
Transparência: construo o depx em parceria com IA. Eu defino a arquitetura, tomo as decisões e reviso o código; a IA acelera a execução. Está tudo explícito no README.
Feedback é muito bem-vindo, principalmente sobre as heurísticas de detecção de uso e de severidade.