Skip to content

🔒 Zerar alertas de segurança (Dependabot + Code Scanning) e modernizar toolchain → v4.0.0 #31

@andrenfe

Description

@andrenfe

Contexto

O repositório acumula 9 alertas de segurança abertos, todos restritos a
dependências de desenvolvimento, scripts e CI — o pacote publicado (nfe-io)
tem zero dependências de runtime e não expõe consumidores a nenhum deles.

Origem Alerta Severidade Item Ação
Dependabot #34 đź”´ CrĂ­tica vitest < 3.2.6 (GHSA-5xrq-8626-4rwp) Upgrade para vitest 4 (PR 2)
Dependabot #35 🟡 Baixa esbuild < 0.28.1 (GHSA-g7r4-m6w7-qqqr) Eliminado pela migração tsup → tsdown (PR 2)
CodeQL #1–3 🟡 Média GITHUB_TOKEN sem permissions mínimas no ci.yml Corrigir (PR 1)
CodeQL #6 🔴 Alta Sanitização incompleta em scripts/download-openapi.ts Remover script morto (PR 1)
CodeQL #5, #7, #8 🔴/🟡 Código legado v2 em lib/ (morto: não importado, não publicado, não executa) Deletar lib/ (PR 1)

Plano de execução

PR 1 — Hardening rápido (bugfix/code-scanning-alerts)

  • Adicionar permissions: contents: read no nĂ­vel do workflow em ci.yml
  • Remover scripts/download-openapi.ts e o script download:spec do package.json
    (todos os endpoints retornam 404; as specs sĂŁo mantidas manualmente em openapi/spec/)
  • Deletar lib/ (cĂłdigo legado v2 morto: ninguĂ©m importa, nĂŁo Ă© publicado no pacote,
    e depende de when, que não está declarada nem instalada — o v2 vive no histórico git
    e no nfe-io@2.x do npm) + atualizar menções no CLAUDE.md

PR 2 — Modernização do toolchain (chore/modernize-build-toolchain)

  • Migrar tsup → tsdown (Rolldown; remove esbuild do pipeline de build)
  • Atualizar vitest 3.2.4 → 4.x (+ @vitest/ui, @vitest/coverage-v8)
  • Atualizar tsx → 4.22.x (esbuild residual já na versĂŁo corrigida 0.28.1)
  • Elevar piso de Node para ≥22 (engines, build target, matriz de CI 22/24, docs)
    — Node 18 e 20 estão EOL
  • Atualizar actions dos workflows para majors Node 24-ready
    (checkout@v6, setup-node@v6, upload-artifact@v7, github-script@v9, codecov@v7)
    — runners mudam para Node 24 em 16/06/2026
  • Skill embarcada: renomear nfeio-sdk → nfeio-node-sdk (diretĂłrio + frontmatter +
    agents.skills do package.json, hoje com path quebrado) — fixa a convenção cross-SDK
    antes do publish no skills.sh — e atualizar "Node.js 18+" → "22+" no SKILL.md
  • VersĂŁo v4.0.0 (package.json + VERSION) + CHANGELOG + seção v3 → v4 no MIGRATION.md

⚠️ Breaking change (v4.0.0)

Único requisito novo: Node.js ≥ 22. Nenhuma mudança de API — quem está em
Node ≥22 atualiza sem alterar código. Usuários em Node 18/20 (EOL) permanecem
no nfe-io@3.2.x.

Critério de fechamento

Security tab zerada: 2 alertas Dependabot fechados e 7 CodeQL corrigidos
(nenhum dismiss — tudo resolvido por correção ou remoção de código).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions