diff --git a/CHANGELOG.md b/CHANGELOG.md index ee740cb..c7bd3c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR ### Documentação +- **O README ganhou a tabela de versões suportadas.** Ela diz que só a 6.x recebe correções e + por que cada faixa anterior foi depreciada. O título do README, que ainda dizia v5, passa a + dizer v6. + - **As páginas de `docs/` que o portal espelha foram conferidas contra o código.** Havia assinaturas e retornos de antes da 6.0.0 nas páginas de NF-e, NFS-e, inscrição estadual, consulta de CNPJ e pessoas, e em `downloads.md`, que ainda prometia "Buffer sempre" e "ZIP por @@ -118,6 +122,35 @@ e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR modo estrito, e os que ela ensinava antes não compilam. Entraram também as notas desta release (distribuição no plural, envelopes). +### Depreciado — registro, não código + +**Todas as versões anteriores à 6.0.0 foram depreciadas no npm em 2026-10-17.** Nada muda no +pacote publicado: quem já instalou continua funcionando, e o `npm install` dessas versões passa +a mostrar o motivo e a versão de destino. + +| Faixa | Motivo dado na mensagem | +|---|---| +| `<3.0.0` | Não verifica o certificado TLS: `lib/BaseResource.js` passa `rejectUnauthorized: false` e `strictSSL: false` (conferido nas tarballs da 1.0.0 e da 2.0.0). O recurso de webhooks também chama `/v1/hooks`, que responde `404` de corpo vazio, igual a um path inventado, enquanto `/v1/companies` responde `401` sem credencial (medido em 2026-10-16) | +| `>=3.0.0 <3.2.1` | `validateSignature()` rejeita toda assinatura legítima de webhook, corrigido na 3.2.1 | +| `3.2.1` | Última versão para Node.js 18 e 20, ambos fora de suporte, e sem as correções da 6.x | +| `>=4.0.0 <6.0.0` | Métodos públicos que nunca alcançaram a API, corrigidos na 6.0.0 | + +A 3.2.1 entra apesar de ser a única versão para Node.js 18 e 20: tem os mesmos métodos quebrados +da 4.x e da 5.x, e o Node.js dela já está fora de suporte. A 6.0.0 fica de fora: o bug corrigido +na 6.0.1 era latente, sem tráfego do SDK na rota errada. + +Uso medido antes de depreciar, em 30 dias de log de gateway (2026-09-16 a 10-16): + +- **147.138 requisições** com `@nfe-io/sdk@3.0.0`, o User-Agent fixo das versões 3.x a 5.x. O + log não separa essas versões entre si. O Node.js do User-Agent ajuda pouco: 18 ou 20 sugere + 3.x, mas o npm não impede instalar a 6.x em Node 20, e há tráfego assim; +- **1.040 requisições** com `nfe-io@6.0.x`; +- **213 requisições** com `Nfe-io/v1 NodeBindings/2.0.0`, todas em emissão de NFS-e. Nenhuma + chamou `/v1/hooks`. + +Mais de 99% do tráfego do SDK ainda vem de versões anteriores à 6. As contas que usam a 2.0.0 +ou Node 18/20 foram identificadas para o suporte avisar, fora deste repositório. + ### Corrigido — registro, não código **A regra de chaves da 6.0.0 vale por rota, não por host.** A entrada 6.0.0 diz que as diff --git a/README.md b/README.md index 91ae9f8..6c9b337 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# NFE.io SDK para Node.js (v5) +# NFE.io SDK para Node.js (v6) [![npm version](https://img.shields.io/npm/v/nfe-io.svg)](https://www.npmjs.com/package/nfe-io) [![Node.js Version](https://img.shields.io/node/v/nfe-io.svg)](https://nodejs.org) @@ -14,6 +14,7 @@ - [Recursos](#-recursos) - [Instalação](#-instalação) +- [Versões suportadas](#-versões-suportadas) - [Início Rápido](#-início-rápido) - [Skill para Agentes de IA](#-skill-para-agentes-de-ia) - [Documentação](#-documentação) @@ -56,6 +57,24 @@ ou pnpm add nfe-io ``` +## 📅 Versões suportadas + +| Versão | Node.js | Situação | Motivo | +|--------|---------|----------|--------| +| **6.x** | 22+ | Suportada | Recebe correções e novidades | +| 4.x e 5.x | 22+ | Depreciada no npm | Há métodos que nunca alcançaram a API, corrigidos na 6.0.0. Veja a [migração v5 → v6](MIGRATION.md#v5--v6) | +| 3.2.1 | 18 e 20 | Depreciada no npm | Última versão para Node.js 18 e 20, ambos fora de suporte, e sem as correções da 6.x | +| 3.0.2 a 3.2.0 | 18+ | Depreciada no npm | `validateSignature()` rejeita toda assinatura legítima de webhook | +| 2.0.0 e anteriores | 0.8+ (2.0.0: 12+) | Depreciada no npm | Não verifica o certificado TLS da API (`rejectUnauthorized: false`), e os webhooks chamam `/v1/hooks`, que a API não serve mais (`404`). Veja a [migração da v2](#-migração-da-v2) | + +Depreciar não remove a versão do npm nem quebra quem já a instalou. O `npm install` passa a +mostrar um aviso com o motivo e a versão de destino. Para saber qual versão o seu projeto usa, +rode `npm ls nfe-io`. + +Só a 6.x recebe correções. Quem está em Node.js 18 ou 20, fora de suporte desde abril de 2025 e +abril de 2026, precisa atualizar para Node.js 22 antes de instalar a 6.x. O roteiro começa na +[migração v3 → v4](MIGRATION.md#v3--v4). + ## 🚀 Início Rápido ### ⚡ Setup Rápido para Testes