feat!: modernizar toolchain (tsdown, vitest 4) e elevar piso para Node 22 — v4.0.0#33
Merged
Merged
Conversation
…e 22 BREAKING CHANGE: Node.js >= 22 obrigatorio (Node 18 e 20 estao EOL). Nenhuma mudanca de API - todo codigo v3 funciona sem alteracoes. Seguranca (fecha os 2 alertas do Dependabot): - vitest 3.2.4 -> 4.1.8: corrige GHSA-5xrq-8626-4rwp (critica) - tsup -> tsdown (Rolldown): remove esbuild do pipeline de build; o esbuild residual (via tsx 4.22.4) ja usa 0.28.1, corrigindo GHSA-g7r4-m6w7-qqqr (baixa) - npm audit: 0 vulnerabilidades Toolchain: - tsdown.config.ts substitui tsup.config.ts (mesmo output dual ESM/CJS, target node22, outExtensions preserva index.js/index.cjs) - exports do package.json com types por condicao (index.d.ts ESM, index.d.cts CJS) - publint e attw 100% verdes (corrige o "masquerading as ESM" que existia na v3) - sideEffects: false para tree-shaking - vitest.config.ts: corrige opcao inexistente testMatch -> include; thresholds achatados; tests/ excluido do coverage - @types/node ^20 -> ^22 CI/CD: - matriz de testes Node 22/24 (antes 18/20/22); jobs em 24.x - actions atualizadas para majors Node 24-ready: checkout@v6, setup-node@v6, upload-artifact@v7, github-script@v9, codecov@v7 (runners executam actions em Node 24 a partir de 16/06/2026) Skill: - renomeada nfeio-sdk -> nfeio-node-sdk (convencao cross-SDK para publicacao no skills.sh); corrige path quebrado no agents.skills; requisito atualizado para Node.js 22+ Versao 4.0.0 (package.json + VERSION) + CHANGELOG + MIGRATION v3->v4. Refs #31
📋 OpenAPI Spec Validation✅ All specs validated and types generated successfully Specs processed:
Generated types available as artifact in |
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.
Resumo
Parte 2 de 2 do plano de segurança da #31 — fecha os 2 alertas do Dependabot (vitest crítica + esbuild baixa) modernizando o toolchain, e prepara a release v4.0.0.
Node.js ≥ 22 (Node 18 e 20 estão EOL). Zero mudanças de API — todo código v3 funciona sem alterações. Documentado no CHANGELOG e na nova seção v3→v4 do MIGRATION.md.
Segurança
vitest(GHSA-5xrq-8626-4rwp)esbuild(GHSA-g7r4-m6w7-qqqr)npm audit: 0 vulnerabilidades.Toolchain
outExtensionspreservaindex.js/index.cjs), targetnode22exportscom types por condição (index.d.tsESM /index.d.ctsCJS) +sideEffects: false→ publint "All good!" e attw "No problems found" (corrige o "Masquerading as ESM" que a v3 publicada tinha)testMatch→include; thresholds no formato do vitest 4;tests/excluído do coverage@types/node^20 → ^22CI/CD
checkout@v6,setup-node@v6,upload-artifact@v7,github-script@v9,codecov@v7) — runners passam a executar actions em Node 24 em 16/06/2026Skill
nfeio-sdk→nfeio-node-sdk(convenção cross-SDK para o skills.sh); corrige o path quebrado doagents.skillsno package.json; requisito Node 22+Verificação
npm test -- --run— 650 testes passando no vitest 4 (sem mudanças nos testes)npm run test:coverage— thresholds 80% ok (branches 80.64%)npm run build—dist/index.js+index.cjs+index.d.ts+index.d.cts, banner preservadorequire) e ESM (import) — named + default exports + instanciaçãopublintAll good! ·attw --packNo problems found 🌟npm run lint(0 erros) enpm run typechecknpm ls esbuild→ somente 0.28.1 ·npm audit→ 0 vulnerabilidadesCloses #31