Conversation
…ource - Introduced `cteApiKey` in NfeConfig and RequiredNfeConfig interfaces for CT-e API key management. - Added TransportationInvoicesResource for handling CT-e operations, including enabling/disabling automatic searches, retrieving settings, and managing events. - Implemented comprehensive unit tests for TransportationInvoicesResource covering all functionalities and edge cases. - Updated NfeClient to support multi-API key configuration, including fallback mechanisms for CT-e API key. - Regenerated OpenAPI types and updated generated files with new timestamps.
Consolida as chaves de API separadas para serviços de consulta
(addressApiKey e cteApiKey) em uma única propriedade dataApiKey,
simplificando a configuração do SDK e refletindo a arquitetura
real da API NFE.io (duas categorias: fiscal e consulta).
Motivação:
- A API NFE.io utiliza apenas duas categorias de chave: uma para
operações fiscais (NFS-e, Companies, etc.) e outra para todos
os serviços de consulta (Endereços, CT-e, CNPJ, CPF)
- Ter chaves separadas (addressApiKey, cteApiKey) adicionava
complexidade desnecessária sem benefício real
- A unificação prepara o SDK para futuros serviços de consulta
que usarão a mesma chave
Alterações em tipos (src/core/types.ts):
- NfeConfig: remove addressApiKey e cteApiKey, adiciona dataApiKey
- RequiredNfeConfig: idem, mantendo tipagem string | undefined
Alterações no client (src/core/client.ts):
- Remove resolveAddressApiKey() e resolveCteApiKey()
- Adiciona resolveDataApiKey() com cadeia de fallback:
config.dataApiKey → config.apiKey → NFE_DATA_API_KEY → NFE_API_KEY
- getAddressHttpClient() e getCteHttpClient() usam resolveDataApiKey()
- validateAndNormalizeConfig() normaliza dataApiKey ao invés de duas
- updateConfig() preserva cache de dataApiKey ao invés de duas
- Mensagens de erro atualizadas para referenciar dataApiKey
- JSDoc atualizado nos getters addresses e transportationInvoices
Alterações em resources:
- addresses.ts: JSDoc atualizado para referenciar dataApiKey
- transportation-invoices.ts: JSDoc atualizado para referenciar dataApiKey
Alterações em testes:
- tests/unit/client-multikey.test.ts: reescrito (38 testes)
- Testa cadeia de fallback para Addresses e CT-e via dataApiKey
- Testa que ambos services resolvem a mesma chave
- Testa uso isolado de dataApiKey sem apiKey
- Testa que NFE_ADDRESS_API_KEY e NFE_CTE_API_KEY não são mais
reconhecidas (breaking change documentada)
- tests/integration/addresses.integration.test.ts: atualizado
Alterações em documentação:
- README.md: config examples, tabela env vars (2 vars ao invés de 3),
notas sobre Address API e CT-e
- docs/API.md: NfeConfig type, nota do recurso CT-e
Alterações em exemplos:
- examples/setup.js: template .env.test usa NFE_DATA_API_KEY
- examples/address-lookup.js: config e env vars atualizados
- examples/transportation-invoices.js: config e env vars atualizados
Arquivos gerados (src/generated/):
- Timestamps atualizados pela regeneração do openapi-typescript
Validação:
- TypeScript: zero erros (npx tsc --noEmit)
- Testes: 381 passed, 47 skipped (integration)
- Build: ESM + CJS + DTS gerados com sucesso
BREAKING CHANGE: addressApiKey e cteApiKey foram removidos de NfeConfig.
Use dataApiKey para configurar a chave de serviços de consulta.
As variáveis de ambiente NFE_ADDRESS_API_KEY e NFE_CTE_API_KEY foram
substituídas por NFE_DATA_API_KEY.
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.
Esta solicitação de pull introduz suporte para Faturas de Transporte (CT-e) no SDK Node.js da NFE.io, juntamente com uma refatoração da configuração da chave de API para serviços de dados/consultas. As alterações incluem nova documentação, scripts de exemplo e atualizações nos nomes das variáveis de ambiente e opções de configuração. As atualizações mais significativas são a adição do recurso de API CT-e, a nova configuração
dataApiKeysubstituindoaddressApiKeye documentação abrangente com exemplos de uso.Suporte para Faturas de Transporte (CT-e)
Adicionado
TransportationInvoicesResourceao SDK, incluindo novos campos de cliente e cliente HTTP para operações CT-e (src/core/client.ts). [1] [2] [3]Introduzido um script de exemplo completo para operações CT-e (
examples/transportation-invoices.js).Documentação expandida em
docs/API.mdeREADME.mdpara abranger o uso do CT-e, pré-requisitos e referência da API. [1] [2] [3]Refatoração da Configuração da Chave de API
addressApiKeypordataApiKeyna configuração do cliente, documentação e exemplos para todos os serviços de dados/consultas (Endereços, CT-e, CNPJ, CPF). [1] [2] [3] [4] [5] [6]NFE_ADDRESS_API_KEYparaNFE_DATA_API_KEYem toda a documentação e scripts de exemplo. [1] [2] [3]Documentação e Exemplos
README.mdedocs/API.md. [1] [2]dataApiKeye novos nomes de variáveis de ambiente (examples/address-lookup.js). [1] [2] [3]Essas alterações fornecem uma abordagem unificada para configurar serviços de dados/consultas e introduzem suporte robusto para operações CT-e no SDK.