@sinete/nfe 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -115,6 +115,10 @@ interface CalculadoraIbsCbs {
115
115
 
116
116
  `test/rtc/e2e.test.ts` pega casos gravados da Calculadora offline da RFB (fixtures do oráculo do `@sinete/ibs-cbs/calcular`, só os sem divergência), monta a nota com a calculadora padrão, autoriza na `@sinete/sefaz-sim` por HTTPS com mTLS e confere cada campo dos grupos `IBSCBS` e do `IBSCBSTot` do `nfeProc` autorizado contra a saída gravada.
117
117
 
118
+ ### Experimental: `@sinete/nfe/ibs-cbs`
119
+
120
+ O subpath `@sinete/nfe/ibs-cbs` reexporta o `@sinete/ibs-cbs` inteiro, cuja calculadora espera a norma da base de cálculo (NT 2025.002, UB16-10). Até o `@sinete/ibs-cbs` sair 1.0, o subpath é experimental ([ADR 0016](../../docs/adr/0016-politica-de-estabilidade.md), seção 5): pode mudar em minor, sempre com changeset. A raiz do `@sinete/nfe`, inclusive a calculadora padrão usada pelo `montarNfe`, segue a política de estabilidade.
121
+
118
122
  ## Serviços (`criarClienteNfe`)
119
123
 
120
124
  `ClienteNfe` fala SOAP 1.2 sobre qualquer `Transporte` do `@sinete/transport`, com endpoints por UF e ambiente vindos dele. Cada operação devolve um `ResultadoSefaz` do core, com a rejeição enriquecida pelo `@sinete/rejeicoes`; o mapa de cStat é dado (`src/data/cstat.json`).
@@ -129,9 +133,9 @@ interface CalculadoraIbsCbs {
129
133
 
130
134
  ### Envio sem resposta
131
135
 
132
- Grave a NF-e assinada antes de enviar e nunca a remonte depois de um envio: outro cNF ou outro dhEmi cria uma segunda nota para o mesmo número. Sem resposta (timeout, conexão caída), ou com 204 ou 539, chame `resolverEnvioSemResposta(client, assinada, desfecho?)`: `concluida` traz o protocolo e o `nfeProc` (na denegação, que é da chave, conclui também sem `digVal` ou com outro, e `conteudo` diz qual; o `nfeProc` só vem com `confere`), `reenviar` (217) pede para reenviar os mesmos bytes, `divergente` diz que existe outra nota para o número (539 com a chave extraída do xMotivo, ou digVal diferente), `sem-prova` diz que a chave está autorizada e o protocolo não traz o `digVal` para provar que é esta nota (não reenvie, não descarte, não guarde sem conferir) e `indefinida` pede nova tentativa mais tarde.
136
+ Grave a NF-e assinada antes de enviar e nunca a remonte depois de um envio: outro cNF ou outro dhEmi cria uma segunda nota para o mesmo número. Sem resposta (timeout, conexão caída), ou com 204 ou 539, chame `resolverEnvioSemResposta(client, assinada, desfecho?, { signal }?)`: `concluida` traz o protocolo e o `nfeProc` (na denegação, que é da chave, conclui também sem `digVal` ou com outro, e `conteudo` diz qual; o `nfeProc` só vem com `confere`), `reenviar` (217) pede para reenviar os mesmos bytes, `divergente` diz que existe outra nota para o número (539 com a chave extraída do xMotivo, ou digVal diferente), `sem-prova` diz que a chave está autorizada e o protocolo não traz o `digVal` para provar que é esta nota (não reenvie, não descarte, não guarde sem conferir) e `indefinida` pede nova tentativa mais tarde.
133
137
 
134
- Pedido de evento sem resposta, ou respondido com 573 ou 580, pode ter sido registrado; o `cStat` sozinho não prova que foi este evento. `recuperarEventoRegistrado(client, chave, tpEvento)` consulta a chave e devolve o `procEventoNFe` que a SEFAZ tem (`registrado: true`, com `nProt`, `dhRegEvento` e o `retEvento`), ou `registrado: false` com a consulta, que pode ter sido só indecisa.
138
+ Pedido de evento sem resposta, ou respondido com 573 ou 580, pode ter sido registrado; o `cStat` sozinho não prova que foi este evento. `recuperarEventoRegistrado(client, chave, tpEvento, nSeqEvento?, { signal }?)` consulta a chave e devolve o `procEventoNFe` que a SEFAZ tem (`registrado: true`, com `nProt`, `dhRegEvento` e o `retEvento`), ou `registrado: false` com a consulta, que pode ter sido só indecisa.
135
139
 
136
140
  Quem guardou só o `nfeProc` tira dele a NF-e assinada com `nfeAssinadaDoProc(xml)`: a fatia sai com os bytes assinados e, quando a `NFe` herdava o `xmlns` do envelope (proc montado por outro emissor), com o namespace declarado na própria raiz, que é o que `consultar`, `resolverEnvioSemResposta` e `retomar` exigem. O C14N do `infNFe` não muda, então a assinatura confere dentro e fora do proc.
137
141
 
@@ -9,7 +9,7 @@ import type { EntradaDeVigencia } from '@sinete/schemas';
9
9
  import type { TNFe_infNFe } from '@sinete/schemas/nfe/PL_010f';
10
10
  import type { RoundingMode } from '../decimal.js';
11
11
  import type { DadosNfe, ResponsavelTecnico } from '../model.js';
12
- import type { CalculadoraIbsCbs } from '../ports.js';
12
+ import type { AliquotaIbsCbsInformada, CalculadoraIbsCbs } from '../ports.js';
13
13
  import type { Instante } from '../time.js';
14
14
  import type { NfceSupl, QrCodeNfceOpcoes } from './nfce.js';
15
15
  import type { Familia } from './values.js';
@@ -87,6 +87,13 @@ export interface NfeMontada {
87
87
  readonly infNFe: TNFe_infNFe;
88
88
  /** `<NFe xmlns="...">` com o `infNFe` canônico, sem assinatura, já validado contra o schema. */
89
89
  readonly xml: string;
90
+ /**
91
+ * Alíquotas do IBS/CBS que a calculadora usou vindas de quem integra (`comAliquotasInformadas`), e não da tabela
92
+ * oficial do pacote, por item. Ausente quando todas foram oficiais. A montagem não recusa por isso: é o caminho para
93
+ * emitir com uma alíquota já publicada antes de o pacote trazê-la. Guarde junto com a nota e alerte quem opera; em
94
+ * produção, a alíquota informada é responsabilidade de quem a informou.
95
+ */
96
+ readonly aliquotasInformadas?: readonly AliquotaIbsCbsInformada[];
90
97
  }
91
98
  export type ResultadoMontagemNfe = {
92
99
  readonly ok: true;
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/build/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/build/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Texto e tamanho dos campos de texto da NF-e conferidos na entrada (ADR 0011, revisão de 01/10/2026).
3
+ *
4
+ * Antes, o caractere que o XML não representa e o texto fora do tipo do leiaute (tamanho, espaço nas pontas,
5
+ * caractere fora do `TString`) só apareciam na montagem, com o caminho do XML (`infNFe.det[0].prod.xProd` ou
6
+ * `/infNFe/det[1]/prod/xProd`). Conferidos aqui, saem como `campo_invalido`, com `origem: 'entrada'`, o caminho da
7
+ * entrada (`itens[0].produto.xProd`) e uma mensagem para quem preenche o campo (`no máximo 60 caracteres`), sem nome
8
+ * de validador nem de tipo do XSD.
9
+ *
10
+ * O tipo de cada campo vem do schema do PL da montagem (o `TString` com o `maxLength` do elemento), nunca de um número
11
+ * escrito aqui: a tabela abaixo só diz qual elemento do `infNFe` recebe cada campo da entrada.
12
+ */
13
+ import type { ComplexType } from '@sinete/schemas';
14
+ import type { Issues } from '../issues.js';
15
+ import type { DadosNfe } from '../model.js';
16
+ /** Produção `Char` do XML 1.0: tab, LF, CR, U+0020 a U+D7FF, U+E000 a U+FFFD e U+10000 a U+10FFFF. */
17
+ export declare function textoXmlValido(texto: string): boolean;
18
+ /**
19
+ * Confere os textos da entrada: em qualquer campo, o caractere que o XML não representa; nos campos da tabela, o tipo
20
+ * do elemento no PL (tamanho, espaço nas pontas, caractere fora do conjunto aceito). Tudo sai como `campo_invalido`,
21
+ * com o caminho da entrada, `origem: 'entrada'` e uma ocorrência por regra violada. O campo que já tem ocorrência (de
22
+ * outra conferência da entrada) não ganha outra. `substituidos` são os campos que a montagem troca por um texto fixo
23
+ * (o nome do destinatário em homologação): o tipo deles não é conferido, porque o texto informado não vai ao XML.
24
+ */
25
+ export declare function conferirTextosDaEntrada(entrada: DadosNfe, infNFe: ComplexType, issues: Issues, substituidos?: ReadonlySet<string>): void;
26
+ //# sourceMappingURL=textos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textos.d.ts","sourceRoot":"","sources":["../../src/build/textos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAA0C,MAAM,iBAAiB,CAAC;AAE3F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAarD;AAmKD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,WAAW,CAAC,MAAM,CAAa,GAC5C,IAAI,CAoBN"}
package/dist/ibs-cbs.d.ts CHANGED
@@ -7,6 +7,11 @@
7
7
  * embarcado não entra aqui, para não ir para o bundle de quem não o usa: `carregarDatasetEmbarcado()`, na raiz do
8
8
  * `@sinete/nfe`, o importa sob demanda. `Dec`, `DataIso` e `Vigencia` vêm do motor (os de `Dec` e `DataIso` são os
9
9
  * mesmos; a `Vigencia` dos dados, com os campos do dataset, fica acessível pelos tipos que a usam).
10
+ *
11
+ * Experimental (ADR 0016, seção 5) até o `@sinete/ibs-cbs` sair 1.0: a calculadora espera a norma da base de cálculo
12
+ * (NT 2025.002, UB16-10), e este subpath pode mudar em minor, sempre com changeset.
13
+ *
14
+ * @experimental
10
15
  */
11
16
  export * from '@sinete/ibs-cbs';
12
17
  export type { AliquotasCredPres, Aplicabilidade, BaseLegal, BaseLegalClassTrib, BundleDoDataset, CalculoCredPres, CodigoErroDadosIbsCbs, ConteudoTributario, CreditoClassTrib, CredPresVigente, DatasetIbsCbs, DiferencaDeDatasets, DiferencaDeTabela, ExcecaoDePrefixo, ExpressoesDoTratamento, Familia, FiltroClassTrib, FiltroDeAtores, FonteDoDataset, GruposClassTrib, GruposCredPres, GruposCst, IdDaFonte, Indicador, IndicadoresDoTratamento, ManifestoDaTabela, ManifestoDoDataset, MudancaDeCampo, MudancaDeRegistro, NomeDaTabela, Nomenclatura, PapelDoAtor, PorTributo, RegistroAliquotaFixa, RegistroAnexo, RegistroAplicabilidade, RegistroAtor, RegistroAtorClassTrib, RegistroClassTrib, RegistroCredPres, RegistroCst, RegistroGrupoDeAtores, RegistroNfseNbs, RegistroReducao, RegistroRedutorCompraGov, RegistroTipoDfe, RegistroTransferenciaCbs, RegistroTratamento, ResultadoAplicabilidade, TabelasDoDataset, TipoDeAliquota, TipoDeMudanca, Tributo, VinculoDfe, VinculoTratamento, } from '@sinete/ibs-cbs-dados';
@@ -1 +1 @@
1
- {"version":3,"file":"ibs-cbs.d.ts","sourceRoot":"","sources":["../src/ibs-cbs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,iBAAiB,CAAC;AAChC,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,OAAO,EACP,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,OAAO,EACP,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,2BAA2B,EAC3B,gBAAgB,EAChB,OAAO,GACR,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"ibs-cbs.d.ts","sourceRoot":"","sources":["../src/ibs-cbs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,cAAc,iBAAiB,CAAC;AAChC,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,OAAO,EACP,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,OAAO,EACP,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,2BAA2B,EAC3B,gBAAgB,EAChB,OAAO,GACR,MAAM,uBAAuB,CAAC"}
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/ibs-cbs.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * `@sinete/nfe/ibs-cbs`: tudo o que quem emite NF-e precisa do IBS/CBS, sem importar `@sinete/ibs-cbs` nem\n * `@sinete/ibs-cbs-dados` diretamente.\n *\n * Reexporta o motor inteiro (`@sinete/ibs-cbs`: alíquotas, cálculo, regras da NT 2025.002 e determinação de CST e\n * cClassTrib) e o leitor do dataset (`@sinete/ibs-cbs-dados`: `carregarDataset`, `conferirDataset`, diff, tipos). O dataset\n * embarcado não entra aqui, para não ir para o bundle de quem não o usa: `carregarDatasetEmbarcado()`, na raiz do\n * `@sinete/nfe`, o importa sob demanda. `Dec`, `DataIso` e `Vigencia` vêm do motor (os de `Dec` e `DataIso` são os\n * mesmos; a `Vigencia` dos dados, com os campos do dataset, fica acessível pelos tipos que a usam).\n */\n\n// biome-ignore lint/performance/noReExportAll: o subpath existe para reexportar o motor inteiro, e as duas pontas são do mesmo repo.\nexport * from '@sinete/ibs-cbs';\nexport type {\n AliquotasCredPres,\n Aplicabilidade,\n BaseLegal,\n BaseLegalClassTrib,\n BundleDoDataset,\n CalculoCredPres,\n CodigoErroDadosIbsCbs,\n ConteudoTributario,\n CreditoClassTrib,\n CredPresVigente,\n DatasetIbsCbs,\n DiferencaDeDatasets,\n DiferencaDeTabela,\n ExcecaoDePrefixo,\n ExpressoesDoTratamento,\n Familia,\n FiltroClassTrib,\n FiltroDeAtores,\n FonteDoDataset,\n GruposClassTrib,\n GruposCredPres,\n GruposCst,\n IdDaFonte,\n Indicador,\n IndicadoresDoTratamento,\n ManifestoDaTabela,\n ManifestoDoDataset,\n MudancaDeCampo,\n MudancaDeRegistro,\n NomeDaTabela,\n Nomenclatura,\n PapelDoAtor,\n PorTributo,\n RegistroAliquotaFixa,\n RegistroAnexo,\n RegistroAplicabilidade,\n RegistroAtor,\n RegistroAtorClassTrib,\n RegistroClassTrib,\n RegistroCredPres,\n RegistroCst,\n RegistroGrupoDeAtores,\n RegistroNfseNbs,\n RegistroReducao,\n RegistroRedutorCompraGov,\n RegistroTipoDfe,\n RegistroTransferenciaCbs,\n RegistroTratamento,\n ResultadoAplicabilidade,\n TabelasDoDataset,\n TipoDeAliquota,\n TipoDeMudanca,\n Tributo,\n VinculoDfe,\n VinculoTratamento,\n} from '@sinete/ibs-cbs-dados';\nexport {\n aplicabilidade,\n carregarDataset,\n compararDatasets,\n conferirDataset,\n DESLOCAMENTO_BRASILIA_MIN,\n dataCivil,\n ErroDadosIbsCbs,\n ehDataIso,\n exigirDataIso,\n formatarDiferenca,\n jsonCanonico,\n NOMES_DAS_TABELAS,\n tabelaCanonica,\n tipoDeMudanca,\n VERSAO_DO_FORMATO_DOS_DADOS,\n versaoDoConteudo,\n vigente,\n} from '@sinete/ibs-cbs-dados';\n"
5
+ "/**\n * `@sinete/nfe/ibs-cbs`: tudo o que quem emite NF-e precisa do IBS/CBS, sem importar `@sinete/ibs-cbs` nem\n * `@sinete/ibs-cbs-dados` diretamente.\n *\n * Reexporta o motor inteiro (`@sinete/ibs-cbs`: alíquotas, cálculo, regras da NT 2025.002 e determinação de CST e\n * cClassTrib) e o leitor do dataset (`@sinete/ibs-cbs-dados`: `carregarDataset`, `conferirDataset`, diff, tipos). O dataset\n * embarcado não entra aqui, para não ir para o bundle de quem não o usa: `carregarDatasetEmbarcado()`, na raiz do\n * `@sinete/nfe`, o importa sob demanda. `Dec`, `DataIso` e `Vigencia` vêm do motor (os de `Dec` e `DataIso` são os\n * mesmos; a `Vigencia` dos dados, com os campos do dataset, fica acessível pelos tipos que a usam).\n *\n * Experimental (ADR 0016, seção 5) até o `@sinete/ibs-cbs` sair 1.0: a calculadora espera a norma da base de cálculo\n * (NT 2025.002, UB16-10), e este subpath pode mudar em minor, sempre com changeset.\n *\n * @experimental\n */\n\n// biome-ignore lint/performance/noReExportAll: o subpath existe para reexportar o motor inteiro, e as duas pontas são do mesmo repo.\nexport * from '@sinete/ibs-cbs';\nexport type {\n AliquotasCredPres,\n Aplicabilidade,\n BaseLegal,\n BaseLegalClassTrib,\n BundleDoDataset,\n CalculoCredPres,\n CodigoErroDadosIbsCbs,\n ConteudoTributario,\n CreditoClassTrib,\n CredPresVigente,\n DatasetIbsCbs,\n DiferencaDeDatasets,\n DiferencaDeTabela,\n ExcecaoDePrefixo,\n ExpressoesDoTratamento,\n Familia,\n FiltroClassTrib,\n FiltroDeAtores,\n FonteDoDataset,\n GruposClassTrib,\n GruposCredPres,\n GruposCst,\n IdDaFonte,\n Indicador,\n IndicadoresDoTratamento,\n ManifestoDaTabela,\n ManifestoDoDataset,\n MudancaDeCampo,\n MudancaDeRegistro,\n NomeDaTabela,\n Nomenclatura,\n PapelDoAtor,\n PorTributo,\n RegistroAliquotaFixa,\n RegistroAnexo,\n RegistroAplicabilidade,\n RegistroAtor,\n RegistroAtorClassTrib,\n RegistroClassTrib,\n RegistroCredPres,\n RegistroCst,\n RegistroGrupoDeAtores,\n RegistroNfseNbs,\n RegistroReducao,\n RegistroRedutorCompraGov,\n RegistroTipoDfe,\n RegistroTransferenciaCbs,\n RegistroTratamento,\n ResultadoAplicabilidade,\n TabelasDoDataset,\n TipoDeAliquota,\n TipoDeMudanca,\n Tributo,\n VinculoDfe,\n VinculoTratamento,\n} from '@sinete/ibs-cbs-dados';\nexport {\n aplicabilidade,\n carregarDataset,\n compararDatasets,\n conferirDataset,\n DESLOCAMENTO_BRASILIA_MIN,\n dataCivil,\n ErroDadosIbsCbs,\n ehDataIso,\n exigirDataIso,\n formatarDiferenca,\n jsonCanonico,\n NOMES_DAS_TABELAS,\n tabelaCanonica,\n tipoDeMudanca,\n VERSAO_DO_FORMATO_DOS_DADOS,\n versaoDoConteudo,\n vigente,\n} from '@sinete/ibs-cbs-dados';\n"
6
6
  ],
7
- "mappings": ";AAYA;AA0DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
7
+ "mappings": ";AAiBA;AA0DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
8
8
  "debugId": "ACA6AB89328A3AB064756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export type { CodigoOcorrenciaNfe } from './issues.js';
19
19
  export { CODIGOS_OCORRENCIA_NFE } from './issues.js';
20
20
  export type { ClassificacaoIbsCbs, Cobranca, Contingencia, Crt, CstPisCofinsOutras, DadosNfe, Desoneracao, DesoneracaoSt, Destinatario, DetalhePagamento, DocumentoPessoa, Emitente, Endereco, EnderecoExterior, FinNFe, IbsCbsItem, Icms, Icms00, Icms02, Icms10, Icms15, Icms20, Icms30, Icms40, Icms51, Icms53, Icms60, Icms61, Icms70, Icms90, IcmsFcp, IcmsPartilha, IcmsProprio, IcmsRepasseSt, IcmsSn101, IcmsSn102, IcmsSn201, IcmsSn202, IcmsSn500, IcmsSn900, IcmsSt, IcmsStRetido, IcmsUfDest, ImpostoImportacao, ImpostosItem, IndIEDest, InformacoesAdicionais, Ipi, IpiNaoTributado, IpiTributado, Issqn, Item, Local, ModBC, ModBCST, ModFrete, Origem, Pagamento, PisCofins, PisCofinsSt, Produto, ProdutoEspecifico, Referenciada, RefNfp, ResponsavelTecnico, TCIBS_NFe, TMonofasia, Transportador, Transporte, TTribNFe, Volume, } from './model.js';
21
21
  export { MotivoDesoneracaoIcms, TipoPagamento } from './model.js';
22
- export type { CalculadoraIbsCbs, PedidoIbsCbsItem, PedidoIbsCbsNota, RespostaIbsCbs } from './ports.js';
22
+ export type { AliquotaIbsCbsInformada, CalculadoraIbsCbs, PedidoIbsCbsItem, PedidoIbsCbsNota, RespostaIbsCbs, } from './ports.js';
23
23
  export { rotuloDoCaminho } from './rotulo.js';
24
24
  export type { CalculadoraIbsCbsOpcoes, GrupoIbsCbs } from './rtc.js';
25
25
  export { calculadoraIbsCbs, carregarDatasetEmbarcado, localDaOperacao } from './rtc.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -398,13 +398,26 @@ function grupoDoLeiaute(g, indDoacao) {
398
398
  }
399
399
  };
400
400
  }
401
- function ocorrenciaDoMotor(e, itens) {
401
+ function ocorrenciaDoMotor(e, itens, semAliquota) {
402
402
  if (e instanceof ErroClassificacao || e instanceof ErroRegimeNaoSuportado) {
403
403
  const path = e.item !== undefined ? caminho(e.item) : caminho(itens[0]?.nItem ?? 1);
404
404
  return { caminho: path, code: e.code, mensagem: e.message, origem: "entrada" };
405
405
  }
406
- if (e instanceof ErroAliquotaDesconhecida)
407
- return { caminho: "impostos.ibsCbs", code: e.code, mensagem: e.message, origem: "montagem" };
406
+ if (e instanceof ErroAliquotaDesconhecida) {
407
+ const n = semAliquota() ?? itens[0]?.nItem ?? 1;
408
+ return { caminho: caminho(n), code: e.code, mensagem: e.message, origem: "montagem" };
409
+ }
410
+ return;
411
+ }
412
+ function primeiroItemSemAliquota(op, calc) {
413
+ for (const it of [...op.itens].sort((a, b) => a.n - b.n)) {
414
+ try {
415
+ calc({ ...op, itens: [it] });
416
+ } catch (e) {
417
+ if (e instanceof ErroAliquotaDesconhecida)
418
+ return it.n;
419
+ }
420
+ }
408
421
  return;
409
422
  }
410
423
  var embarcado;
@@ -485,16 +498,17 @@ function calcularCom(dataset, rates, options, {
485
498
  itens: classificados
486
499
  };
487
500
  const time = contextoDeTempo({ emissao: relogioFixo(nota.emissao), fatoGerador: relogioFixo(nota.fatoGerador) });
501
+ const calc = (o) => calcular(o, {
502
+ dataset,
503
+ aliquotas: rates,
504
+ tempo: time,
505
+ ...options.deslocamentoMin === undefined ? {} : { deslocamentoMin: options.deslocamentoMin }
506
+ });
488
507
  let roc;
489
508
  try {
490
- roc = calcular(op, {
491
- dataset,
492
- aliquotas: rates,
493
- tempo: time,
494
- ...options.deslocamentoMin === undefined ? {} : { deslocamentoMin: options.deslocamentoMin }
495
- });
509
+ roc = calc(op);
496
510
  } catch (e) {
497
- const issue = ocorrenciaDoMotor(e, itens);
511
+ const issue = ocorrenciaDoMotor(e, itens, () => primeiroItemSemAliquota(op, calc));
498
512
  if (issue === undefined)
499
513
  throw e;
500
514
  return { itens: [], ocorrencias: [issue] };
@@ -538,11 +552,13 @@ function calcularCom(dataset, rates, options, {
538
552
  }
539
553
  }
540
554
  const porItem = new Map(itens.map((it) => [it.nItem, it]));
555
+ const informadas = roc.itens.flatMap((r) => r.aliquotas.filter((a) => a.situacao === "informada").map((a) => ({ nItem: r.nItem, tributo: a.tributo, valor: a.valor, motivo: a.motivo ?? "" })));
541
556
  return {
542
557
  itens: roc.itens.map((r) => ({
543
558
  nItem: r.nItem,
544
559
  IBSCBS: grupoDoLeiaute(r.IBSCBS, porItem.get(r.nItem)?.indDoacao)
545
560
  })),
561
+ ...informadas.length === 0 ? {} : { aliquotasInformadas: informadas },
546
562
  ...issues.length === 0 ? {} : { ocorrencias: issues }
547
563
  };
548
564
  }
@@ -578,7 +594,7 @@ function formatarDh(data, deslocamentoMin) {
578
594
  }
579
595
 
580
596
  // packages/nfe/src/versao-gerada.ts
581
- var VERSAO_PACOTE = "0.2.0";
597
+ var VERSAO_PACOTE = "0.4.0";
582
598
 
583
599
  // packages/nfe/src/build/destinatario.ts
584
600
  import { ufPorSigla } from "@sinete/core";
@@ -1919,6 +1935,192 @@ function conferirEmitenteDoCertificado(nfe, titular) {
1919
1935
  return [];
1920
1936
  }
1921
1937
 
1938
+ // packages/nfe/src/build/textos.ts
1939
+ import { conferirTipoSimples, ehComplexType as ehComplexType2, ehElementParticle as ehElementParticle2, ehWildcard as ehWildcard2 } from "@sinete/schemas";
1940
+ function textoXmlValido(texto) {
1941
+ for (const ch of texto) {
1942
+ const c = ch.codePointAt(0) ?? 0;
1943
+ const ok = c === 9 || c === 10 || c === 13 || c >= 32 && c <= 55295 || c >= 57344 && c <= 65533 || c >= 65536 && c <= 1114111;
1944
+ if (!ok)
1945
+ return false;
1946
+ }
1947
+ return true;
1948
+ }
1949
+ var CAMPOS = [
1950
+ ["natOp", "ide.natOp"],
1951
+ ["emitente.xNome", "emit.xNome"],
1952
+ ["emitente.xFant", "emit.xFant"],
1953
+ ["emitente.endereco.xLgr", "emit.enderEmit.xLgr"],
1954
+ ["emitente.endereco.nro", "emit.enderEmit.nro"],
1955
+ ["emitente.endereco.xCpl", "emit.enderEmit.xCpl"],
1956
+ ["emitente.endereco.xBairro", "emit.enderEmit.xBairro"],
1957
+ ["emitente.endereco.xMun", "emit.enderEmit.xMun"],
1958
+ ["destinatario.xNome", "dest.xNome"],
1959
+ ["destinatario.email", "dest.email"],
1960
+ ["destinatario.endereco.xLgr", "dest.enderDest.xLgr"],
1961
+ ["destinatario.endereco.nro", "dest.enderDest.nro"],
1962
+ ["destinatario.endereco.xCpl", "dest.enderDest.xCpl"],
1963
+ ["destinatario.endereco.xBairro", "dest.enderDest.xBairro"],
1964
+ ["destinatario.endereco.xMun", "dest.enderDest.xMun"],
1965
+ ["destinatario.endereco.xPais", "dest.enderDest.xPais"],
1966
+ ...["retirada", "entrega"].flatMap((g) => ["xNome", "xLgr", "nro", "xCpl", "xBairro", "xMun", "email"].map((c) => [`${g}.${c}`, `${g}.${c}`])),
1967
+ ["itens[].produto.cProd", "det.prod.cProd"],
1968
+ ["itens[].produto.xProd", "det.prod.xProd"],
1969
+ ["itens[].produto.uCom", "det.prod.uCom"],
1970
+ ["itens[].produto.uTrib", "det.prod.uTrib"],
1971
+ ["itens[].produto.xPed", "det.prod.xPed"],
1972
+ ["itens[].infAdProd", "det.infAdProd"],
1973
+ ["transporte.transportador.xNome", "transp.transporta.xNome"],
1974
+ ["transporte.transportador.xEnder", "transp.transporta.xEnder"],
1975
+ ["transporte.transportador.xMun", "transp.transporta.xMun"],
1976
+ ["transporte.volumes[].esp", "transp.vol.esp"],
1977
+ ["transporte.volumes[].marca", "transp.vol.marca"],
1978
+ ["transporte.volumes[].nVol", "transp.vol.nVol"],
1979
+ ["cobranca.fatura.nFat", "cobr.fat.nFat"],
1980
+ ["cobranca.duplicatas[].nDup", "cobr.dup.nDup"],
1981
+ ["pagamento.detPag[].xPag", "pag.detPag.xPag"],
1982
+ ["informacoesAdicionais.infAdFisco", "infAdic.infAdFisco"],
1983
+ ["informacoesAdicionais.infCpl", "infAdic.infCpl"],
1984
+ ["informacoesAdicionais.obsCont[].xTexto", "infAdic.obsCont.xTexto"],
1985
+ ["informacoesAdicionais.obsFisco[].xTexto", "infAdic.obsFisco.xTexto"],
1986
+ ["compra.xNEmp", "compra.xNEmp"],
1987
+ ["compra.xPed", "compra.xPed"],
1988
+ ["compra.xCont", "compra.xCont"]
1989
+ ];
1990
+ function elemento(p, nome) {
1991
+ if (p === undefined || ehWildcard2(p))
1992
+ return;
1993
+ if (ehElementParticle2(p))
1994
+ return p.e === nome ? p.t : undefined;
1995
+ for (const i of p.i) {
1996
+ const t = elemento(i, nome);
1997
+ if (t !== undefined)
1998
+ return t;
1999
+ }
2000
+ return;
2001
+ }
2002
+ function tipoEm(infNFe, caminho) {
2003
+ let t = infNFe;
2004
+ for (const nome of caminho.split(".")) {
2005
+ if (t === undefined || !ehComplexType2(t))
2006
+ return;
2007
+ t = elemento(t.c, nome);
2008
+ }
2009
+ return t === undefined || ehComplexType2(t) ? undefined : t;
2010
+ }
2011
+ var tiposPorPl = new WeakMap;
2012
+ function tiposDoPl(infNFe) {
2013
+ let m = tiposPorPl.get(infNFe);
2014
+ if (m === undefined) {
2015
+ const novo = new Map;
2016
+ for (const [entrada, xml] of CAMPOS) {
2017
+ const t = tipoEm(infNFe, xml);
2018
+ if (t !== undefined)
2019
+ novo.set(entrada, t);
2020
+ }
2021
+ m = novo;
2022
+ tiposPorPl.set(infNFe, m);
2023
+ }
2024
+ return m;
2025
+ }
2026
+ function valoresEm(raiz, caminho) {
2027
+ let atuais = [["", raiz]];
2028
+ for (const parte of caminho.split(".")) {
2029
+ const lista = parte.endsWith("[]");
2030
+ const chave = lista ? parte.slice(0, -2) : parte;
2031
+ const proximos = [];
2032
+ for (const [c, v] of atuais) {
2033
+ if (typeof v !== "object" || v === null)
2034
+ continue;
2035
+ const filho = v[chave];
2036
+ const base = c === "" ? chave : `${c}.${chave}`;
2037
+ if (!lista)
2038
+ proximos.push([base, filho]);
2039
+ else if (Array.isArray(filho))
2040
+ for (const [n, f] of filho.entries())
2041
+ proximos.push([`${base}[${n}]`, f]);
2042
+ }
2043
+ atuais = proximos;
2044
+ }
2045
+ return atuais;
2046
+ }
2047
+ function textosForaDoXml(valor, caminho, saida) {
2048
+ if (typeof valor === "string") {
2049
+ if (!textoXmlValido(valor))
2050
+ saida.push(caminho);
2051
+ } else if (Array.isArray(valor)) {
2052
+ for (const [n, v] of valor.entries())
2053
+ textosForaDoXml(v, `${caminho}[${n}]`, saida);
2054
+ } else if (typeof valor === "object" && valor !== null) {
2055
+ for (const [k, v] of Object.entries(valor))
2056
+ textosForaDoXml(v, caminho === "" ? k : `${caminho}.${k}`, saida);
2057
+ }
2058
+ }
2059
+ var CARACTERE_INVISIVEL = "caractere não aceito (símbolo ou caractere de controle)";
2060
+ var VISIVEL = /^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;
2061
+ function caractereRecusado(tipo, valor) {
2062
+ for (const ch of new Set(valor)) {
2063
+ const saida = [];
2064
+ conferirTipoSimples(tipo, `A${ch}A`, "", saida);
2065
+ if (saida.some((o) => o.code === "padrao"))
2066
+ return ch;
2067
+ }
2068
+ return;
2069
+ }
2070
+ function mensagensDoTexto(tipo, valor, violadas) {
2071
+ if (violadas.length === 0)
2072
+ return [];
2073
+ if (valor.trim() === "")
2074
+ return ["não pode ficar em branco"];
2075
+ const tamanho = [...valor].length;
2076
+ const mensagens = new Set;
2077
+ for (const o of violadas) {
2078
+ if (o.code === "tamanho_maximo" && tipo.mx !== undefined)
2079
+ mensagens.add(`no máximo ${tipo.mx} caracteres (tem ${tamanho})`);
2080
+ else if (o.code === "tamanho_minimo" && tipo.mn !== undefined)
2081
+ mensagens.add(`no mínimo ${tipo.mn} caracteres (tem ${tamanho})`);
2082
+ else if (o.code === "tamanho" && tipo.l !== undefined)
2083
+ mensagens.add(`exatamente ${tipo.l} caracteres (tem ${tamanho})`);
2084
+ else if (o.code === "padrao") {
2085
+ const espaco = valor !== valor.trim();
2086
+ const ch = caractereRecusado(tipo, valor);
2087
+ if (espaco)
2088
+ mensagens.add("sem espaço no começo nem no fim");
2089
+ if (ch !== undefined)
2090
+ mensagens.add(VISIVEL.test(ch) ? `caractere não aceito: “${ch}”` : CARACTERE_INVISIVEL);
2091
+ if (!espaco && ch === undefined)
2092
+ mensagens.add("formato não aceito");
2093
+ } else
2094
+ mensagens.add("valor não aceito neste campo");
2095
+ }
2096
+ return [...mensagens];
2097
+ }
2098
+ function conferirTextosDaEntrada(entrada, infNFe, issues, substituidos = new Set) {
2099
+ const jaRecusados = new Set(issues.list.map((i) => i.caminho));
2100
+ const foraDoXml = [];
2101
+ textosForaDoXml(entrada, "", foraDoXml);
2102
+ for (const c of foraDoXml) {
2103
+ if (jaRecusados.has(c) || substituidos.has(c))
2104
+ continue;
2105
+ issues.add(c, "campo_invalido", CARACTERE_INVISIVEL);
2106
+ jaRecusados.add(c);
2107
+ }
2108
+ const tipos = tiposDoPl(infNFe);
2109
+ for (const [campo] of CAMPOS) {
2110
+ const tipo = tipos.get(campo);
2111
+ if (tipo === undefined)
2112
+ continue;
2113
+ for (const [caminho, valor] of valoresEm(entrada, campo)) {
2114
+ if (typeof valor !== "string" || jaRecusados.has(caminho) || substituidos.has(caminho))
2115
+ continue;
2116
+ const saida = [];
2117
+ conferirTipoSimples(tipo, valor, caminho, saida);
2118
+ for (const m of mensagensDoTexto(tipo, valor, saida))
2119
+ issues.add(caminho, "campo_invalido", m);
2120
+ }
2121
+ }
2122
+ }
2123
+
1922
2124
  // packages/nfe/src/build/tributos.ts
1923
2125
  function buildIpi(ctx, input, vOp, path) {
1924
2126
  const head = {
@@ -2223,25 +2425,16 @@ function referencia(ref, path, issues) {
2223
2425
  }
2224
2426
  };
2225
2427
  }
2226
- function textoXmlValido(texto) {
2227
- for (const ch of texto) {
2228
- const c = ch.codePointAt(0) ?? 0;
2229
- const ok = c === 9 || c === 10 || c === 13 || c >= 32 && c <= 55295 || c >= 57344 && c <= 65533 || c >= 65536 && c <= 1114111;
2230
- if (!ok)
2231
- return false;
2232
- }
2233
- return true;
2234
- }
2235
- function textosForaDoXml(value, path, issues) {
2428
+ function textosForaDoXml2(value, path, issues) {
2236
2429
  if (typeof value === "string") {
2237
2430
  if (!textoXmlValido(value))
2238
2431
  issues.montagem(path, "campo_invalido", "texto com caractere não permitido em XML");
2239
2432
  } else if (Array.isArray(value)) {
2240
2433
  for (const [n, v] of value.entries())
2241
- textosForaDoXml(v, `${path}[${n}]`, issues);
2434
+ textosForaDoXml2(v, `${path}[${n}]`, issues);
2242
2435
  } else if (typeof value === "object" && value !== null) {
2243
2436
  for (const [k, v] of Object.entries(value))
2244
- textosForaDoXml(v, `${path}.${k}`, issues);
2437
+ textosForaDoXml2(v, `${path}.${k}`, issues);
2245
2438
  }
2246
2439
  }
2247
2440
  function montarItem(ctx, item, n, normal) {
@@ -2608,6 +2801,7 @@ async function montarNfe(entrada, opcoes) {
2608
2801
  primeiro.det.prod.xProd = XPROD_HOMOLOGACAO_NFCE;
2609
2802
  }
2610
2803
  const classificados = entrada.itens.map((it, n) => ({ it, n })).filter(({ it }) => it.impostos.ibsCbs?.classificacao !== undefined);
2804
+ let aliquotasInformadas = [];
2611
2805
  if (classificados.length > 0) {
2612
2806
  const calculadora = opcoes.ibsCbs ?? calculadoraPadrao();
2613
2807
  const reqs = classificados.map(({ it, n }) => {
@@ -2673,10 +2867,13 @@ async function montarNfe(entrada, opcoes) {
2673
2867
  itens: reqs
2674
2868
  });
2675
2869
  issues.addAll(resp.ocorrencias ?? [], "montagem");
2870
+ aliquotasInformadas = resp.aliquotasInformadas ?? [];
2871
+ const explicou = (resp.ocorrencias?.length ?? 0) > 0;
2676
2872
  for (const { n } of classificados) {
2677
2873
  const g = resp.itens.find((x) => x.nItem === n + 1);
2678
2874
  if (g === undefined) {
2679
- issues.montagem(`itens[${n}].impostos.ibsCbs`, "ibscbs_calculo", "a calculadora não devolveu o grupo IBSCBS do item");
2875
+ if (!explicou)
2876
+ issues.montagem(`itens[${n}].impostos.ibsCbs`, "ibscbs_calculo", "a calculadora não devolveu o grupo IBSCBS do item");
2680
2877
  continue;
2681
2878
  }
2682
2879
  itens[n].det.imposto.IBSCBS = g.IBSCBS;
@@ -2699,6 +2896,8 @@ async function montarNfe(entrada, opcoes) {
2699
2896
  grupoInvalido(TISCt, "IS", imp.IS, is, issues);
2700
2897
  }
2701
2898
  });
2899
+ const substituidos = opcoes.ambiente === "homologacao" ? ["destinatario.xNome", ...nfce ? ["itens[0].produto.xProd"] : []] : [];
2900
+ conferirTextosDaEntrada(entrada, pl.infNFe, issues, new Set(substituidos));
2702
2901
  if (!issues.empty)
2703
2902
  return { ok: false, ocorrencias: issues.classificadas };
2704
2903
  const gruposIbsCbs = itens.map((m) => m.det.imposto.IBSCBS).filter((g) => g !== undefined);
@@ -2995,7 +3194,7 @@ async function montarNfe(entrada, opcoes) {
2995
3194
  cstComIsento(entrada, idDest, issues);
2996
3195
  vencimentos(entrada, { dhEmi, instante: agora }, issues);
2997
3196
  camposForaDoPl(pl.infNFe, inf, "infNFe", pl.vigencia.pl, issues);
2998
- textosForaDoXml(inf, "infNFe", issues);
3197
+ textosForaDoXml2(inf, "infNFe", issues);
2999
3198
  if (!issues.empty)
3000
3199
  return { ok: false, ocorrencias: issues.classificadas };
3001
3200
  let xml;
@@ -3063,7 +3262,8 @@ async function montarNfe(entrada, opcoes) {
3063
3262
  ...supl === undefined ? {} : { nfce: supl },
3064
3263
  pl: pl.vigencia,
3065
3264
  infNFe: inf,
3066
- xml
3265
+ xml,
3266
+ ...aliquotasInformadas.length === 0 ? {} : { aliquotasInformadas }
3067
3267
  }
3068
3268
  };
3069
3269
  }
@@ -3198,7 +3398,7 @@ var GRUPOS = [
3198
3398
  { padrao: /^infNFe\.infRespTec\b/, rotulo: "Responsável técnico" },
3199
3399
  { padrao: /^infNFe\.exporta\b/, rotulo: "Exportação" }
3200
3400
  ];
3201
- var CAMPOS = {
3401
+ var CAMPOS2 = {
3202
3402
  IE: "Inscrição estadual",
3203
3403
  IEST: "Inscrição estadual do substituto tributário",
3204
3404
  IM: "Inscrição municipal",
@@ -3261,7 +3461,7 @@ var CAMPOS = {
3261
3461
  infCpl: "Informações complementares",
3262
3462
  infAdFisco: "Informações de interesse do fisco"
3263
3463
  };
3264
- var rotular = criarRotuloDoCaminho({ grupos: GRUPOS, campos: CAMPOS, padrao: "Dados da NF-e" });
3464
+ var rotular = criarRotuloDoCaminho({ grupos: GRUPOS, campos: CAMPOS2, padrao: "Dados da NF-e" });
3265
3465
  function rotuloDoCaminho(caminho) {
3266
3466
  return rotular(caminho);
3267
3467
  }
@@ -4300,8 +4500,8 @@ function lerProcEvento(xml) {
4300
4500
  ...nProt === undefined ? {} : { nProt }
4301
4501
  };
4302
4502
  }
4303
- async function recuperarEventoRegistrado(cliente, chave, tpEvento, nSeqEvento) {
4304
- const consulta = await cliente.consultar(chave);
4503
+ async function recuperarEventoRegistrado(cliente, chave, tpEvento, nSeqEvento, opcoes) {
4504
+ const consulta = await cliente.consultar(chave, undefined, opcoes);
4305
4505
  if (consulta.tipo !== "autorizado" && consulta.tipo !== "denegado")
4306
4506
  return { registrado: false, consulta };
4307
4507
  let achado;
@@ -4322,14 +4522,14 @@ var CHAVE_NO_MOTIVO = /\[\s*chNFe\s*:\s*([0-9]{6}[0-9A-Z]{12}[0-9]{26})\s*\]/i;
4322
4522
  function chaveDaDuplicidade(xMotivo) {
4323
4523
  return CHAVE_NO_MOTIVO.exec(xMotivo)?.[1]?.toUpperCase();
4324
4524
  }
4325
- async function resolverEnvioSemResposta(cliente, nfeAssinada, anterior) {
4525
+ async function resolverEnvioSemResposta(cliente, nfeAssinada, anterior, opcoes) {
4326
4526
  const a = documentoAssinado(nfeAssinada, "NFe", "infNFe");
4327
4527
  const chave = a.id.slice(3);
4328
4528
  if (anterior && anterior.tipo === "recusado" && cstatEm(anterior.cStat, "duplicidadeChaveDiferente")) {
4329
4529
  const outra = chaveDaDuplicidade(anterior.xMotivo);
4330
4530
  return { acao: "divergente", motivo: anterior, ...outra === undefined ? {} : { chNFe: outra } };
4331
4531
  }
4332
- const consulta = await cliente.consultar(chave, nfeAssinada);
4532
+ const consulta = await cliente.consultar(chave, nfeAssinada, opcoes);
4333
4533
  if (consulta.tipo === "recusado") {
4334
4534
  if (cstatEm(consulta.cStat, "naoConsta"))
4335
4535
  return { acao: "reenviar", nfeAssinada: a.xml };
@@ -4395,5 +4595,5 @@ export {
4395
4595
  urlsNfce
4396
4596
  };
4397
4597
 
4398
- //# debugId=82CED6CBF6EFA38F64756E2164756E21
4598
+ //# debugId=74A78D3EACEECD4D64756E2164756E21
4399
4599
  //# sourceMappingURL=index.js.map