ghinfe 0.6.0 → 0.6.2

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.
Files changed (110) hide show
  1. package/.env.example +24 -15
  2. package/LICENSE +21 -21
  3. package/README.md +491 -413
  4. package/docs/developer-guide.html +421 -421
  5. package/docs/openapi.yaml +428 -428
  6. package/examples/dce-homologacao.js +141 -0
  7. package/examples/emitir-nfce.js +51 -51
  8. package/examples/emitir-nfe.js +83 -83
  9. package/examples/emitir-nfse.js +46 -46
  10. package/examples/endpoints-sefaz.js +14 -14
  11. package/examples/eventos-nfe.js +49 -49
  12. package/examples/gerar-chave.js +25 -25
  13. package/examples/gerar-dace.js +59 -0
  14. package/examples/gerar-danfe.js +75 -75
  15. package/examples/gerar-dce.js +58 -0
  16. package/examples/layouts-nfse.js +51 -51
  17. package/examples/mock-sefaz.js +52 -52
  18. package/examples/nfse-eventos.js +57 -57
  19. package/examples/reforma-ibscbs.js +27 -27
  20. package/examples/reforma-nfe-xml.js +52 -52
  21. package/examples/status-sefaz.js +12 -12
  22. package/examples/validar-xsd.js +48 -48
  23. package/package.json +59 -68
  24. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/consSitDCeTiposBasico_v1.00.xsd +123 -0
  25. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/consSitDCe_v1.00.xsd +10 -0
  26. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/consStatServDCeTiposBasico_v1.00.xsd +110 -0
  27. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/consStatServDCe_v1.00.xsd +10 -0
  28. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/dceTiposBasico_v1.00.xsd +1388 -0
  29. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/retConsSitDCe_v1.00.xsd +10 -0
  30. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/retConsStatServDCe_v1.00.xsd +10 -0
  31. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/tiposGeralDCe_v1.00.xsd +712 -0
  32. package/schemas/dce/PL_DCe_100a_NT2024.001/consulta/xmldsig-core-schema_v1.01.xsd +98 -0
  33. package/schemas/dce/PL_DCe_100a_NT2024.001/dceTiposBasico_v1.00.xsd +1410 -0
  34. package/schemas/dce/PL_DCe_100a_NT2024.001/dce_v1.00.xsd +10 -0
  35. package/schemas/dce/PL_DCe_100a_NT2024.001/evento/evCancDCe_v1.00.xsd +36 -0
  36. package/schemas/dce/PL_DCe_100a_NT2024.001/evento/eventoDCeTiposBasico_v1.00.xsd +283 -0
  37. package/schemas/dce/PL_DCe_100a_NT2024.001/evento/eventoDCe_v1.00.xsd +9 -0
  38. package/schemas/dce/PL_DCe_100a_NT2024.001/evento/procEventoDCe_v1.00.xsd +10 -0
  39. package/schemas/dce/PL_DCe_100a_NT2024.001/evento/retEventoDCe_v1.00.xsd +9 -0
  40. package/schemas/dce/PL_DCe_100a_NT2024.001/evento/tiposGeralDCe_v1.00.xsd +712 -0
  41. package/schemas/dce/PL_DCe_100a_NT2024.001/evento/xmldsig-core-schema_v1.01.xsd +98 -0
  42. package/schemas/dce/PL_DCe_100a_NT2024.001/procDCe_v1.00.xsd +37 -0
  43. package/schemas/dce/PL_DCe_100a_NT2024.001/retDCe_v1.00.xsd +9 -0
  44. package/schemas/dce/PL_DCe_100a_NT2024.001/tiposGeralDCe_v1.00.xsd +712 -0
  45. package/schemas/dce/PL_DCe_100a_NT2024.001/xmldsig-core-schema_v1.01.xsd +98 -0
  46. package/schemas/nfe/PL_009_V4/enviNFe_v3.10.xsd +8 -8
  47. package/schemas/nfe/PL_009_V4/xmldsig-core-schema_v1.01.xsd +97 -97
  48. package/scripts/download-schemas.js +39 -39
  49. package/scripts/test-xsd.js +34 -34
  50. package/src/api/server.js +316 -316
  51. package/src/constants/sefaz.js +69 -69
  52. package/src/danfe/DanfeService.js +205 -205
  53. package/src/danfe/xml-extract.js +69 -69
  54. package/src/dce/builders/DCeEventoXmlBuilder.js +86 -0
  55. package/src/dce/builders/DCeXmlBuilder.js +345 -0
  56. package/src/dce/constants/dce.js +87 -0
  57. package/src/dce/dace/DaceService.js +356 -0
  58. package/src/dce/dace/dace-extract.js +114 -0
  59. package/src/dce/services/DCeService.js +263 -0
  60. package/src/dce/services/DCeSoapService.js +235 -0
  61. package/src/dce/services/DCeXmlService.js +67 -0
  62. package/src/dce/types/DCeDocument.js +106 -0
  63. package/src/dce/utils/qrcode.utils.js +59 -0
  64. package/src/errors/GhinfeError.js +13 -13
  65. package/src/errors/SefazError.js +25 -25
  66. package/src/errors/XsdValidationError.js +15 -15
  67. package/src/index.js +84 -60
  68. package/src/nfce/builders/NFCeXmlBuilder.js +178 -178
  69. package/src/nfce/constants/qrcode.js +26 -26
  70. package/src/nfce/services/NFCeService.js +188 -188
  71. package/src/nfce/services/NFCeXmlService.js +38 -38
  72. package/src/nfce/types/NFCeDocument.js +42 -42
  73. package/src/nfce/utils/qrcode.utils.js +92 -92
  74. package/src/nfe/builders/NFeEventoXmlBuilder.js +110 -110
  75. package/src/nfe/builders/NFeXmlBuilder.js +215 -215
  76. package/src/nfe/mocks/sefaz-responses.js +195 -195
  77. package/src/nfe/services/NFeEventoService.js +95 -95
  78. package/src/nfe/services/NFeService.js +196 -196
  79. package/src/nfe/services/NFeSignService.js +127 -111
  80. package/src/nfe/services/NFeSoapService.js +437 -437
  81. package/src/nfe/services/NFeXmlService.js +41 -41
  82. package/src/nfe/services/NFeXsdService.js +56 -56
  83. package/src/nfe/types/NFeDocument.js +92 -92
  84. package/src/nfe/types/NFeEvento.js +44 -44
  85. package/src/nfse/NFSeMunicipioResolver.js +42 -42
  86. package/src/nfse/builders/NFSeEventoXmlBuilder.js +92 -92
  87. package/src/nfse/builders/NFSeXmlBuilder.js +16 -16
  88. package/src/nfse/constants/municipios.js +82 -82
  89. package/src/nfse/layouts/adapters.js +202 -202
  90. package/src/nfse/mocks/nfse-responses.js +142 -142
  91. package/src/nfse/services/NFSeService.js +191 -191
  92. package/src/nfse/services/NFSeSoapService.js +232 -232
  93. package/src/nfse/services/NFSeXmlService.js +12 -12
  94. package/src/nfse/types/NFSeDocument.js +54 -54
  95. package/src/queue/NFCeQueue.js +63 -63
  96. package/src/queue/NFSeQueue.js +59 -59
  97. package/src/queue/NFeQueue.js +76 -76
  98. package/src/reforma/ibscbs.js +175 -175
  99. package/src/sefaz/SefazEndpointResolver.js +95 -95
  100. package/src/sefaz/ca/icp-brasil-raiz-v10.pem +38 -0
  101. package/src/sefaz/endpoints.registry.js +205 -205
  102. package/src/sefaz/httpsAgent.js +33 -0
  103. package/src/shared/fiscal.helpers.js +53 -53
  104. package/src/utils/certificate.utils.js +69 -47
  105. package/src/utils/chave.utils.js +205 -117
  106. package/src/utils/code128.utils.js +67 -0
  107. package/src/utils/date.utils.js +26 -26
  108. package/src/utils/xml.utils.js +44 -44
  109. package/src/validation/XsdValidator.js +133 -114
  110. package/src/validation/schemas.js +18 -14
@@ -0,0 +1,59 @@
1
+ import crypto from 'crypto';
2
+ import { DCE_QRCODE_URL, DCE_TIPO_EMISSAO } from '../constants/dce.js';
3
+ import { loadPfxCertificate } from '../../utils/certificate.utils.js';
4
+ import { GhinfeError } from '../../errors/GhinfeError.js';
5
+
6
+ /**
7
+ * Assina a chave de acesso (RSA-SHA1, Base64) para o parâmetro sign do QR Code
8
+ * em contingência off-line. Deve usar o mesmo certificado que assina a DC-e.
9
+ * @param {string} chaveAcesso
10
+ * @param {Buffer|string} pfx
11
+ * @param {string} senha
12
+ */
13
+ export function assinarChaveQrCodeDCe(chaveAcesso, pfx, senha) {
14
+ const { privateKeyPem } = loadPfxCertificate(pfx, senha);
15
+ return crypto.createSign('RSA-SHA1').update(chaveAcesso).sign(privateKeyPem, 'base64');
16
+ }
17
+
18
+ /**
19
+ * Monta URL do QR Code da DC-e (Manual DC-e — Anexo II, item 3.2).
20
+ *
21
+ * Normal: {url}?chDCe={chave}&tpAmb={amb}
22
+ * Contingência: {url}?chDCe={chave}&tpAmb={amb}&sign={assinatura}&{CNPJ|CPF|idOutros}={doc}
23
+ *
24
+ * O pattern de qrCodDCe no XSD exige "&sign=" logo após tpAmb, embora o exemplo
25
+ * do manual traga a identificação do emitente antes de sign.
26
+ *
27
+ * @param {{
28
+ * chaveAcesso: string,
29
+ * ambiente?: number,
30
+ * tipoEmissao?: number,
31
+ * emitente?: { cnpj?: string, cpf?: string, idOutros?: string },
32
+ * sign?: string,
33
+ * baseUrl?: string,
34
+ * }} params
35
+ */
36
+ export function gerarUrlQrCodeDCe(params) {
37
+ const baseUrl = params.baseUrl ?? DCE_QRCODE_URL;
38
+ let url = `${baseUrl}?chDCe=${params.chaveAcesso}&tpAmb=${params.ambiente ?? 2}`;
39
+
40
+ if ((params.tipoEmissao ?? DCE_TIPO_EMISSAO.NORMAL) !== DCE_TIPO_EMISSAO.CONTINGENCIA_OFFLINE) {
41
+ return url;
42
+ }
43
+
44
+ if (!params.sign) {
45
+ throw new GhinfeError(
46
+ 'Parâmetro sign obrigatório no QR Code em contingência off-line',
47
+ 'DCE_QRCODE_SIGN_MISSING'
48
+ );
49
+ }
50
+
51
+ url += `&sign=${params.sign}`;
52
+
53
+ const emit = params.emitente ?? {};
54
+ if (emit.cnpj) url += `&CNPJ=${emit.cnpj.replace(/\D/g, '')}`;
55
+ else if (emit.cpf) url += `&CPF=${emit.cpf.replace(/\D/g, '')}`;
56
+ else if (emit.idOutros) url += `&idOutros=${emit.idOutros}`;
57
+
58
+ return url;
59
+ }
@@ -1,13 +1,13 @@
1
- export class GhinfeError extends Error {
2
- /**
3
- * @param {string} message
4
- * @param {string} [code]
5
- * @param {unknown} [details]
6
- */
7
- constructor(message, code = 'GHINFE_ERROR', details = null) {
8
- super(message);
9
- this.name = 'GhinfeError';
10
- this.code = code;
11
- this.details = details;
12
- }
13
- }
1
+ export class GhinfeError extends Error {
2
+ /**
3
+ * @param {string} message
4
+ * @param {string} [code]
5
+ * @param {unknown} [details]
6
+ */
7
+ constructor(message, code = 'GHINFE_ERROR', details = null) {
8
+ super(message);
9
+ this.name = 'GhinfeError';
10
+ this.code = code;
11
+ this.details = details;
12
+ }
13
+ }
@@ -1,25 +1,25 @@
1
- import { GhinfeError } from './GhinfeError.js';
2
-
3
- export class SefazError extends GhinfeError {
4
- /**
5
- * @param {string} cStat
6
- * @param {string} xMotivo
7
- * @param {Record<string, unknown>} [raw]
8
- */
9
- constructor(cStat, xMotivo, raw = {}) {
10
- super(`SEFAZ [${cStat}]: ${xMotivo}`, `SEFAZ_${cStat}`, { cStat, xMotivo, ...raw });
11
- this.name = 'SefazError';
12
- this.cStat = cStat;
13
- this.xMotivo = xMotivo;
14
- }
15
-
16
- /** @returns {boolean} */
17
- isAutorizado() {
18
- return this.cStat === '100';
19
- }
20
-
21
- /** @returns {boolean} */
22
- isRejeicao() {
23
- return this.cStat.length === 3 && this.cStat.startsWith('2');
24
- }
25
- }
1
+ import { GhinfeError } from './GhinfeError.js';
2
+
3
+ export class SefazError extends GhinfeError {
4
+ /**
5
+ * @param {string} cStat
6
+ * @param {string} xMotivo
7
+ * @param {Record<string, unknown>} [raw]
8
+ */
9
+ constructor(cStat, xMotivo, raw = {}) {
10
+ super(`SEFAZ [${cStat}]: ${xMotivo}`, `SEFAZ_${cStat}`, { cStat, xMotivo, ...raw });
11
+ this.name = 'SefazError';
12
+ this.cStat = cStat;
13
+ this.xMotivo = xMotivo;
14
+ }
15
+
16
+ /** @returns {boolean} */
17
+ isAutorizado() {
18
+ return this.cStat === '100';
19
+ }
20
+
21
+ /** @returns {boolean} */
22
+ isRejeicao() {
23
+ return this.cStat.length === 3 && this.cStat.startsWith('2');
24
+ }
25
+ }
@@ -1,15 +1,15 @@
1
- import { GhinfeError } from './GhinfeError.js';
2
-
3
- export class XsdValidationError extends GhinfeError {
4
- /**
5
- * @param {string[]} erros
6
- * @param {string} [schema]
7
- */
8
- constructor(erros, schema = 'unknown') {
9
- const resumo = erros[0] ?? 'XML não conforme ao schema XSD';
10
- super(`Validação XSD falhou: ${resumo}`, 'XSD_VALIDATION_FAILED', { erros, schema });
11
- this.name = 'XsdValidationError';
12
- this.erros = erros;
13
- this.schema = schema;
14
- }
15
- }
1
+ import { GhinfeError } from './GhinfeError.js';
2
+
3
+ export class XsdValidationError extends GhinfeError {
4
+ /**
5
+ * @param {string[]} erros
6
+ * @param {string} [schema]
7
+ */
8
+ constructor(erros, schema = 'unknown') {
9
+ const resumo = erros[0] ?? 'XML não conforme ao schema XSD';
10
+ super(`Validação XSD falhou: ${resumo}`, 'XSD_VALIDATION_FAILED', { erros, schema });
11
+ this.name = 'XsdValidationError';
12
+ this.erros = erros;
13
+ this.schema = schema;
14
+ }
15
+ }
package/src/index.js CHANGED
@@ -1,60 +1,84 @@
1
- export { NFeService } from './nfe/services/NFeService.js';
2
- export { NFeXmlService } from './nfe/services/NFeXmlService.js';
3
- export { NFeSignService } from './nfe/services/NFeSignService.js';
4
- export { NFeSoapService } from './nfe/services/NFeSoapService.js';
5
- export { NFeEventoService } from './nfe/services/NFeEventoService.js';
6
- export { NFeXsdService } from './nfe/services/NFeXsdService.js';
7
- export { NFeXmlBuilder } from './nfe/builders/NFeXmlBuilder.js';
8
- export { NFeEventoXmlBuilder } from './nfe/builders/NFeEventoXmlBuilder.js';
9
- export { NFeQueue } from './queue/NFeQueue.js';
10
-
11
- export { NFCeService } from './nfce/services/NFCeService.js';
12
- export { NFCeXmlService } from './nfce/services/NFCeXmlService.js';
13
- export { NFCeXmlBuilder } from './nfce/builders/NFCeXmlBuilder.js';
14
- export { NFCeQueue } from './queue/NFCeQueue.js';
15
- export { gerarUrlQrCodeV3, gerarHashQrCodeV3, inserirInfNFeSupl } from './nfce/utils/qrcode.utils.js';
16
-
17
- export { NFSeService } from './nfse/services/NFSeService.js';
18
- export { NFSeXmlService } from './nfse/services/NFSeXmlService.js';
19
- export { NFSeXmlBuilder } from './nfse/builders/NFSeXmlBuilder.js';
20
- export { NFSeEventoXmlBuilder } from './nfse/builders/NFSeEventoXmlBuilder.js';
21
- export { NFSeSoapService, NFSeSoapError } from './nfse/services/NFSeSoapService.js';
22
- export { NFSeMunicipioResolver } from './nfse/NFSeMunicipioResolver.js';
23
- export { NFSeQueue } from './queue/NFSeQueue.js';
24
- export { NFSE_LAYOUTS, NFSE_MUNICIPIOS } from './nfse/constants/municipios.js';
25
- export { obterAdapter, NFSeLayoutAdapters } from './nfse/layouts/adapters.js';
26
-
27
- export { DanfeService } from './danfe/DanfeService.js';
28
- export { extrairDadosDanfe, formatarChaveAcesso } from './danfe/xml-extract.js';
29
-
30
- export { SefazEndpointResolver, SEFAZ_SERVICO } from './sefaz/SefazEndpointResolver.js';
31
- export { UF_AUTORIZADOR, AUTORIZADOR_ENDPOINTS } from './sefaz/endpoints.registry.js';
32
-
33
- export {
34
- calcularIBSCBS,
35
- buildFragmentoIBSCBS,
36
- somarTotaisReforma,
37
- reformaHabilitada,
38
- appendIBSCBS,
39
- appendTotaisIBSCBS,
40
- CST_IBSCBS,
41
- REFORMA_LAYOUT,
42
- } from './reforma/ibscbs.js';
43
-
44
- export { XsdValidator } from './validation/XsdValidator.js';
45
- export { XSD_SCHEMAS } from './validation/schemas.js';
46
-
47
- export { GhinfeError } from './errors/GhinfeError.js';
48
- export { SefazError } from './errors/SefazError.js';
49
- export { XsdValidationError } from './errors/XsdValidationError.js';
50
-
51
- export { SEFAZ_STATUS, SEFAZ_URLS, AMBIENTE, NFE_VERSAO, UF_IBGE } from './constants/sefaz.js';
52
- export { NFE_EVENTOS } from './nfe/types/NFeEvento.js';
53
- export { loadPfxCertificate } from './utils/certificate.utils.js';
54
- export {
55
- gerarChaveAcesso,
56
- calcularDigitoVerificador,
57
- validarChaveAcesso,
58
- parseChaveAcesso,
59
- gerarCodigoNumerico,
60
- } from './utils/chave.utils.js';
1
+ export { NFeService } from './nfe/services/NFeService.js';
2
+ export { NFeXmlService } from './nfe/services/NFeXmlService.js';
3
+ export { NFeSignService } from './nfe/services/NFeSignService.js';
4
+ export { NFeSoapService } from './nfe/services/NFeSoapService.js';
5
+ export { NFeEventoService } from './nfe/services/NFeEventoService.js';
6
+ export { NFeXsdService } from './nfe/services/NFeXsdService.js';
7
+ export { NFeXmlBuilder } from './nfe/builders/NFeXmlBuilder.js';
8
+ export { NFeEventoXmlBuilder } from './nfe/builders/NFeEventoXmlBuilder.js';
9
+ export { NFeQueue } from './queue/NFeQueue.js';
10
+
11
+ export { NFCeService } from './nfce/services/NFCeService.js';
12
+ export { NFCeXmlService } from './nfce/services/NFCeXmlService.js';
13
+ export { NFCeXmlBuilder } from './nfce/builders/NFCeXmlBuilder.js';
14
+ export { NFCeQueue } from './queue/NFCeQueue.js';
15
+ export { gerarUrlQrCodeV3, gerarHashQrCodeV3, inserirInfNFeSupl } from './nfce/utils/qrcode.utils.js';
16
+
17
+ export { NFSeService } from './nfse/services/NFSeService.js';
18
+ export { NFSeXmlService } from './nfse/services/NFSeXmlService.js';
19
+ export { NFSeXmlBuilder } from './nfse/builders/NFSeXmlBuilder.js';
20
+ export { NFSeEventoXmlBuilder } from './nfse/builders/NFSeEventoXmlBuilder.js';
21
+ export { NFSeSoapService, NFSeSoapError } from './nfse/services/NFSeSoapService.js';
22
+ export { NFSeMunicipioResolver } from './nfse/NFSeMunicipioResolver.js';
23
+ export { NFSeQueue } from './queue/NFSeQueue.js';
24
+ export { NFSE_LAYOUTS, NFSE_MUNICIPIOS } from './nfse/constants/municipios.js';
25
+ export { obterAdapter, NFSeLayoutAdapters } from './nfse/layouts/adapters.js';
26
+
27
+ export { DCeService } from './dce/services/DCeService.js';
28
+ export { DCeXmlService } from './dce/services/DCeXmlService.js';
29
+ export { DCeXmlBuilder } from './dce/builders/DCeXmlBuilder.js';
30
+ export { DCeSoapService } from './dce/services/DCeSoapService.js';
31
+ export { DCeEventoXmlBuilder } from './dce/builders/DCeEventoXmlBuilder.js';
32
+ export { DaceService } from './dce/dace/DaceService.js';
33
+ export { extrairDadosDace } from './dce/dace/dace-extract.js';
34
+ export { codificarCode128C, gerarSvgCode128C } from './utils/code128.utils.js';
35
+ export { gerarUrlQrCodeDCe, assinarChaveQrCodeDCe } from './dce/utils/qrcode.utils.js';
36
+ export {
37
+ DCE_VERSAO,
38
+ DCE_TIPO_EMITENTE,
39
+ DCE_TIPO_EMISSAO,
40
+ DCE_MODALIDADE_TRANSPORTE,
41
+ DCE_QRCODE_URL,
42
+ DCE_WEBSERVICES,
43
+ DCE_EVENTOS,
44
+ DCE_STATUS,
45
+ } from './dce/constants/dce.js';
46
+ export { criarHttpsAgentSefaz, ICP_BRASIL_RAIZ_V10 } from './sefaz/httpsAgent.js';
47
+
48
+ export { DanfeService } from './danfe/DanfeService.js';
49
+ export { extrairDadosDanfe, formatarChaveAcesso } from './danfe/xml-extract.js';
50
+
51
+ export { SefazEndpointResolver, SEFAZ_SERVICO } from './sefaz/SefazEndpointResolver.js';
52
+ export { UF_AUTORIZADOR, AUTORIZADOR_ENDPOINTS } from './sefaz/endpoints.registry.js';
53
+
54
+ export {
55
+ calcularIBSCBS,
56
+ buildFragmentoIBSCBS,
57
+ somarTotaisReforma,
58
+ reformaHabilitada,
59
+ appendIBSCBS,
60
+ appendTotaisIBSCBS,
61
+ CST_IBSCBS,
62
+ REFORMA_LAYOUT,
63
+ } from './reforma/ibscbs.js';
64
+
65
+ export { XsdValidator } from './validation/XsdValidator.js';
66
+ export { XSD_SCHEMAS } from './validation/schemas.js';
67
+
68
+ export { GhinfeError } from './errors/GhinfeError.js';
69
+ export { SefazError } from './errors/SefazError.js';
70
+ export { XsdValidationError } from './errors/XsdValidationError.js';
71
+
72
+ export { SEFAZ_STATUS, SEFAZ_URLS, AMBIENTE, NFE_VERSAO, UF_IBGE } from './constants/sefaz.js';
73
+ export { NFE_EVENTOS } from './nfe/types/NFeEvento.js';
74
+ export { loadPfxCertificate, criarPfxDePem } from './utils/certificate.utils.js';
75
+ export {
76
+ gerarChaveAcesso,
77
+ calcularDigitoVerificador,
78
+ validarChaveAcesso,
79
+ parseChaveAcesso,
80
+ gerarCodigoNumerico,
81
+ gerarChaveAcessoDCe,
82
+ parseChaveAcessoDCe,
83
+ gerarCodigoNumericoDCe,
84
+ } from './utils/chave.utils.js';