Release v5.1.0#40
Merged
Merged
Conversation
Sonda ao vivo (2026-07-02/03, 3 contas) provou que o contrato de webhooks
divergia da API em dois pontos:
- /v1/companies/{id}/webhooks (métodos company-scoped) retorna 404 em
todas as contas testadas. Contrato alucinado no rewrite v3, nunca
existiu na API, nos specs ou no SDK legado v2. Métodos marcados
@deprecated (comportamento inalterado, remoção na próxima major).
- createAccountWebhook/updateAccountWebhook/retrieveAccountWebhook
(v5.0.0) ignoravam o envelope { "webHook": {...} } exigido pela API:
create sem envelope sempre respondia 400. Corrigido nos dois sentidos
(wrap no request, unwrap na resposta, com fallback defensivo).
Tipo AccountWebhook novo com o shape real (uri/contentType/secret/
filters/insecureSsl/headers/properties/status), já presente nos specs
oficiais (nf-servico-v1.yaml e equivalentes) e nos tipos gerados —
o resource manuscrito só não os consultava. WebhookEventType substitui
os literais invoice.* (inexistentes na API) pelos 46 event types reais
(service_invoice.*, product_invoice.*, consumer_invoice.*).
Achado da contraprova: PUT /v2/webhooks/{id} é substituição integral —
update sem `status` desativa o webhook. Documentado no JSDoc do
updateAccountWebhook com exemplo partindo do retrieve.
Teste de alinhamento (tests/types/account-webhook-alignment.test-d.ts)
amarra o AccountWebhook ao schema gerado do spec, para que um sync de
spec que mude o contrato quebre o build em vez de driftar em silêncio.
Docs, exemplos e a skill nfeio-node-sdk atualizados para o fluxo
account-scoped.
Bump de versão para 5.1.0 (minor) nos 4 pontos (package.json, VERSION, PACKAGE_VERSION, @Version) e datação do CHANGELOG. Conteúdo da release: fix do contrato de webhooks de conta (3ffe83f) — envelope webHook no request/response, tipos AccountWebhook/WebhookEventType, deprecation dos métodos company-scoped (404 confirmado em 3 contas), teste de alinhamento com o spec gerado.
📋 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.
Release v5.1.0 (minor)
Reúne tudo desde a v5.0.0 e faz a bump de versão. Publicação não é automática por merge — o
publish.ymldispara ao criar a GitHub Release (com a tagv5.1.0); este PR só prepara o código.Destaque — fix do contrato de webhooks de conta
Sonda ao vivo (2026-07-02/03, 3 contas) provou que o contrato de webhooks divergia da API:
/v1/companies/{id}/webhooks(company-scoped) retorna 404 em todas as contas — contrato alucinado no rewrite v3, nunca existiu na API, nos specs ou no SDK legado v2. Métodos marcados@deprecated(comportamento inalterado; remoção na próxima major).createAccountWebhookfuncionava 0% das vezes: faltava o envelope{ "webHook": {...} }exigido no request (a API respondia 400 incondicional). Corrigido nos dois sentidos (wrap no request, unwrap na resposta, com fallback defensivo) em create/update/retrieve.AccountWebhooknovo com o shape real (uri/contentType/secret/filters/insecureSsl/headers/properties/status) — já presente nos specs oficiais e nos tipos gerados; o resource manuscrito só não os consultava.WebhookEventTypesubstitui os literaisinvoice.*(inexistentes) pelos 46 event types reais (service_invoice.*,product_invoice.*,consumer_invoice.*).PUT /v2/webhooks/{id}é substituição integral — update semstatusdesativa o webhook. Documentado no JSDoc doupdateAccountWebhook.AccountWebhookao schema gerado do spec — sync de spec que mude o contrato quebra o build em vez de driftar.Docs, exemplos e a skill
nfeio-node-sdkatualizados para o fluxo account-scoped.Semver — minor
Adiciona tipos exportados novos + deprecations não-quebráveis. A troca de assinatura de
createAccountWebhooké breaking só no papel (o método respondia 400 sempre; nenhum consumidor funcional existe). Nada de major.Commits neste PR
chore(release): v5.1.0— bump nos 4 pontos (package.json,VERSION,PACKAGE_VERSION,@version) + datação e links do CHANGELOGfix(webhooks): corrigir contrato de webhooks de conta contra a API realchorede higiene (.gitignore, remoção de config/context obsoletos) — já commitados na master local, sobem juntoVerificação
dist/expõe5.1.0Pós-merge (manual — gatilho do publish)