nfewizard-org / nfewizard-io

NFeWizard é uma biblioteca Node.js que simplifica a interação com os serviços da SEFAZ, oferecendo uma solução robusta para automação de processos relacionados à Nota Fiscal Eletrônica (NF-e).
https://nfewizard-org.github.io/
GNU General Public License v3.0
94 stars 13 forks source link

fix: add file extensions to imports to resolve ERR_MODULE_NOT_FOUND (#4) #6

Closed Maurelima closed 3 months ago

Maurelima commented 3 months ago

Problema:

  1. Ao tentar utilizar a biblioteca no JavaScript, ocorreu o erro "ERR_MODULE_NOT_FOUND". Este problema foi causado porque, após a compilação do TypeScript, os arquivos JavaScript gerados não incluíam as extensões de arquivo (.js) nos imports. Enquanto o TypeScript consegue resolver os caminhos dos módulos sem a extensão, o Node.js exige a presença das extensões para resolver corretamente os módulos ES.

  2. Durante a assinatura de XML, o método NFE_Autorizacao estava falhando devido à ausência das propriedades digestAlgorithm e signatureAlgorithm.

Solução:

  1. Foi adicionado um passo adicional no script de build para garantir que todos os imports nos arquivos gerados incluam a extensão .js. Além disso, foram ajustados os imports de arquivos JSON para incluir a asserção de tipo necessária (assert { type: "json" }). Isso garante que o Node.js possa resolver todos os módulos corretamente, evitando os erros de importação.

  2. Ao assinar o XML, foram incluídos os parâmetros digestAlgorithm e signatureAlgorithm na configuração do objeto SignedXml. Estes parâmetros são essenciais para especificar os algoritmos utilizados na digestão e na assinatura, garantindo que o processo de assinatura ocorra sem erros.

Mudanças:

Resumo:

Essas mudanças asseguram que os arquivos gerados pela compilação TypeScript sejam compatíveis com os requisitos de resolução de módulos do Node.js, eliminando o erro "ERR_MODULE_NOT_FOUND" ao utilizar a biblioteca no JavaScript. Além disso, garantem que o processo de assinatura de XML ocorra corretamente, resolvendo os problemas relacionados à ausência de algoritmos de digestão e assinatura.