Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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
Expand Down
Loading