node-sped-nfe 1.2.31 → 1.2.33

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.
@@ -28,7 +28,8 @@ const cUF2UF = {
28
28
  "50": "MS",
29
29
  "51": "MT",
30
30
  "52": "GO",
31
- "53": "DF"
31
+ "53": "DF",
32
+ "91": "AN"
32
33
  }, UF2cUF = {
33
34
  "RO": "11",
34
35
  "AC": "12",
@@ -319,7 +320,7 @@ const docZip = async (xml, retorno = "original") => {
319
320
  };
320
321
  const jXml = await xml2json(xml);
321
322
  try {
322
- var docZips = jXml["nfeDistDFeInteresseResponse"]["nfeDistDFeInteresseResult"]["retDistDFeInt"];
323
+ var docZips = jXml["nfeDistDFeInteresseResult"]["retDistDFeInt"];
323
324
  if (typeof docZips['loteDistDFeInt'] == "undefined")
324
325
  return resolve([]);
325
326
  docZips = docZips["loteDistDFeInt"]['docZip'];
@@ -509,7 +509,11 @@ class Make {
509
509
  throw "Não implementado!";
510
510
  }
511
511
  tagInfAdic(obj) {
512
- throw "Não implementado!";
512
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infAdic === undefined)
513
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infAdic = {};
514
+ Object.keys(obj).forEach(key => {
515
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infAdic[key] = obj[key];
516
+ });
513
517
  }
514
518
  tagObsCont(obj) {
515
519
  throw "Não implementado!";
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _Tools_instances, _Tools_cert, _Tools_pem, _Tools_config, _Tools_getSignature, _Tools_gerarQRCodeNFCe, _Tools_descEvento, _Tools_xmlValido, _Tools_certTools;
12
+ var _Tools_instances, _Tools_cert, _Tools_pem, _Tools_config, _Tools_getSignature, _Tools_gerarQRCodeNFCe, _Tools_descEvento, _Tools_xmlValido, _Tools_certTools, _Tools_limparSoap;
13
13
  import { XMLBuilder } from "fast-xml-parser";
14
14
  import https from "https";
15
15
  import { spawnSync } from "child_process";
@@ -101,10 +101,13 @@ class Tools {
101
101
  res.on('data', (chunk) => {
102
102
  data += chunk;
103
103
  });
104
- res.on('end', () => {
105
- xml2json(data).then((jRes) => {
106
- json2xml(jRes['soapenv:Envelope']?.['soapenv:Body']?.['nfeResultMsg'] || jRes['soap:Envelope']?.['soap:Body']?.['nfeResultMsg']).then(resolve).catch(reject);
107
- });
104
+ res.on('end', async () => {
105
+ try {
106
+ resolve(await __classPrivateFieldGet(this, _Tools_instances, "m", _Tools_limparSoap).call(this, data));
107
+ }
108
+ catch (error) {
109
+ resolve(data);
110
+ }
108
111
  });
109
112
  });
110
113
  req.setTimeout(__classPrivateFieldGet(this, _Tools_config, "f").timeout * 1000, () => {
@@ -216,10 +219,13 @@ class Tools {
216
219
  }, (res) => {
217
220
  let data = '';
218
221
  res.on('data', (chunk) => data += chunk);
219
- res.on('end', () => {
220
- xml2json(data).then((jRes) => {
221
- json2xml(jRes['soapenv:Envelope']?.['soapenv:Body']?.['nfeResultMsg'] || jRes['soap:Envelope']?.['soap:Body']?.['nfeResultMsg']).then(resolve).catch(reject);
222
- });
222
+ res.on('end', async () => {
223
+ try {
224
+ resolve(await __classPrivateFieldGet(this, _Tools_instances, "m", _Tools_limparSoap).call(this, data));
225
+ }
226
+ catch (error) {
227
+ resolve(data);
228
+ }
223
229
  });
224
230
  });
225
231
  req.setTimeout(__classPrivateFieldGet(this, _Tools_config, "f").timeout * 1000, () => {
@@ -290,6 +296,7 @@ class Tools {
290
296
  }
291
297
  // Ciência (210210), Confirmação (210200), Desconhecimento (210220) não precisam de campos extras
292
298
  const tempUF = urlEventos(cUF2UF[cOrgao], __classPrivateFieldGet(this, _Tools_config, "f").versao);
299
+ console.log(cUF2UF);
293
300
  const evento = {
294
301
  "envEvento": {
295
302
  "@xmlns": "http://www.portalfiscal.inf.br/nfe",
@@ -344,10 +351,13 @@ class Tools {
344
351
  res.on('data', (chunk) => {
345
352
  data += chunk;
346
353
  });
347
- res.on('end', () => {
348
- xml2json(data).then((jRes) => {
349
- json2xml(jRes['soapenv:Envelope']?.['soapenv:Body']?.['nfeResultMsg'] || jRes['soap:Envelope']?.['soap:Body']?.['nfeResultMsg']).then(resolve).catch(reject);
350
- });
354
+ res.on('end', async () => {
355
+ try {
356
+ resolve(await __classPrivateFieldGet(this, _Tools_instances, "m", _Tools_limparSoap).call(this, data));
357
+ }
358
+ catch (error) {
359
+ resolve(data);
360
+ }
351
361
  });
352
362
  });
353
363
  req.setTimeout(__classPrivateFieldGet(this, _Tools_config, "f").timeout * 1000, () => {
@@ -432,10 +442,13 @@ class Tools {
432
442
  res.on('data', (chunk) => {
433
443
  data += chunk;
434
444
  });
435
- res.on('end', () => {
436
- xml2json(data).then((jRes) => {
437
- json2xml(jRes['soapenv:Envelope']?.['soapenv:Body']?.['nfeResultMsg'] || jRes['soap:Envelope']?.['soap:Body']?.['nfeResultMsg']).then(resolve).catch(reject);
438
- });
445
+ res.on('end', async () => {
446
+ try {
447
+ resolve(await __classPrivateFieldGet(this, _Tools_instances, "m", _Tools_limparSoap).call(this, data));
448
+ }
449
+ catch (error) {
450
+ resolve(data);
451
+ }
439
452
  });
440
453
  });
441
454
  req.setTimeout(__classPrivateFieldGet(this, _Tools_config, "f").timeout * 1000, () => {
@@ -509,10 +522,13 @@ class Tools {
509
522
  res.on('data', (chunk) => {
510
523
  data += chunk;
511
524
  });
512
- res.on('end', () => {
513
- xml2json(data).then((jRes) => {
514
- json2xml(jRes['soapenv:Envelope']?.['soapenv:Body']?.['nfeResultMsg'] || jRes['soap:Envelope']?.['soap:Body']?.['nfeResultMsg']).then(resolve).catch(reject);
515
- });
525
+ res.on('end', async () => {
526
+ try {
527
+ resolve(await __classPrivateFieldGet(this, _Tools_instances, "m", _Tools_limparSoap).call(this, data));
528
+ }
529
+ catch (error) {
530
+ resolve(data);
531
+ }
516
532
  });
517
533
  });
518
534
  req.setTimeout(__classPrivateFieldGet(this, _Tools_config, "f").timeout * 1000, () => {
@@ -633,5 +649,31 @@ async function _Tools_xmlValido(xml, xsd) {
633
649
  resvol(__classPrivateFieldGet(this, _Tools_pem, "f"));
634
650
  });
635
651
  });
652
+ }, _Tools_limparSoap =
653
+ //Remove coisas inuteis da resposta do sefaz
654
+ async function _Tools_limparSoap(xml) {
655
+ if (xml == "Bad Request")
656
+ throw xml;
657
+ const clear = [
658
+ 'soapenv:Envelope',
659
+ 'soapenv:Body',
660
+ 'nfeResultMsg',
661
+ 'soap:Envelope',
662
+ 'soap:Body',
663
+ 'nfeResultMsg',
664
+ 'nfeDistDFeInteresseResponse'
665
+ ];
666
+ let jXml = await xml2json(xml);
667
+ let index = 0;
668
+ while (index < clear.length) {
669
+ if (typeof jXml[clear[index]] !== "undefined") {
670
+ jXml = jXml[clear[index]];
671
+ index = 0; // reinicia a busca no novo nível
672
+ }
673
+ else {
674
+ index++;
675
+ }
676
+ }
677
+ return await json2xml(jXml);
636
678
  };
637
679
  export { Tools };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-sped-nfe",
3
- "version": "1.2.31",
3
+ "version": "1.2.33",
4
4
  "author": "Kalmon V. Tavares",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/xmlSing.xml DELETED
@@ -1 +0,0 @@
1
- <NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe Id="NFe43250508512944000150650000000002511000020233" versao="4.00"><ide><cUF>43</cUF><cNF>00002023</cNF><natOp>VENDA</natOp><mod>65</mod><serie>0</serie><nNF>251</nNF><dhEmi>2025-05-14T13:21:01-03:00</dhEmi><tpNF>1</tpNF><idDest>1</idDest><cMunFG>5106257</cMunFG><tpImp>4</tpImp><tpEmis>1</tpEmis><cDV>3</cDV><tpAmb>2</tpAmb><finNFe>1</finNFe><indFinal>1</indFinal><indPres>1</indPres><indIntermed>0</indIntermed><procEmi>0</procEmi><verProc>4.13</verProc></ide><emit><CNPJ>08512944000150</CNPJ><xNome>S CANDIDA DA SILVA </xNome><xFant>S CANDIDA DA SILVA </xFant><enderEmit><xLgr>Av. Nodejs</xLgr><nro>22</nro><xBairro>Githubsom</xBairro><cMun>4313466</cMun><xMun>Novo Xingu</xMun><UF>SP</UF><CEP>99687000</CEP><cPais>1058</cPais><xPais>BRASIL</xPais><fone>1140028922</fone></enderEmit><IE>133299414</IE><CRT>1</CRT></emit><det nItem="1"><prod><cProd>126</cProd><cEAN>SEM GTIN</cEAN><xProd>NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xProd><NCM>85044010</NCM><CFOP>5102</CFOP><uCom>UNID</uCom><qCom>3.0000</qCom><vUnCom>132.0000000000</vUnCom><vProd>396.00</vProd><cEANTrib>SEM GTIN</cEANTrib><uTrib>UNID</uTrib><qTrib>3.0000</qTrib><vUnTrib>132.0000000000</vUnTrib><indTot>1</indTot></prod><imposto><ICMS><ICMSSN102><orig>0</orig><CSOSN>400</CSOSN></ICMSSN102></ICMS><PIS><PISOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vPIS>0.00</vPIS></PISOutr></PIS><COFINS><COFINSOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vCOFINS>0.00</vCOFINS></COFINSOutr></COFINS></imposto></det><det nItem="2"><prod><cProd>129</cProd><cEAN>SEM GTIN</cEAN><xProd>CABO P2 PARA P10 CELULAR MESA DE SOM CAIXA DE SOM 25 METRO</xProd><NCM>85044010</NCM><CFOP>5102</CFOP><uCom>UNID</uCom><qCom>2.0000</qCom><vUnCom>218.0000000000</vUnCom><vProd>436.00</vProd><cEANTrib>SEM GTIN</cEANTrib><uTrib>UNID</uTrib><qTrib>2.0000</qTrib><vUnTrib>218.0000000000</vUnTrib><indTot>1</indTot></prod><imposto><ICMS><ICMSSN102><orig>0</orig><CSOSN>400</CSOSN></ICMSSN102></ICMS><PIS><PISOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vPIS>0.00</vPIS></PISOutr></PIS><COFINS><COFINSOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vCOFINS>0.00</vCOFINS></COFINSOutr></COFINS></imposto></det><det nItem="3"><prod><cProd>127</cProd><cEAN>SEM GTIN</cEAN><xProd>CABO DE MICROFONE XLR FEMEA PARA P10 MONO 20 METROS CIRILO CABOS</xProd><NCM>85044010</NCM><CFOP>5102</CFOP><uCom>UNID</uCom><qCom>2.0000</qCom><vUnCom>185.0000000000</vUnCom><vProd>370.00</vProd><cEANTrib>SEM GTIN</cEANTrib><uTrib>UNID</uTrib><qTrib>2.0000</qTrib><vUnTrib>185.0000000000</vUnTrib><vDesc>38.00</vDesc><indTot>1</indTot></prod><imposto><ICMS><ICMSSN102><orig>0</orig><CSOSN>400</CSOSN></ICMSSN102></ICMS><PIS><PISOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vPIS>0.00</vPIS></PISOutr></PIS><COFINS><COFINSOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vCOFINS>0.00</vCOFINS></COFINSOutr></COFINS></imposto></det><det nItem="4"><prod><cProd>128</cProd><cEAN>SEM GTIN</cEAN><xProd>CABO DE AUDIO P10 X P10 MONO BLINDADO 5 METROS</xProd><NCM>85044010</NCM><CFOP>5102</CFOP><uCom>UNID</uCom><qCom>2.0000</qCom><vUnCom>18.0000000000</vUnCom><vProd>36.00</vProd><cEANTrib>SEM GTIN</cEANTrib><uTrib>UNID</uTrib><qTrib>2.0000</qTrib><vUnTrib>18.0000000000</vUnTrib><indTot>1</indTot></prod><imposto><ICMS><ICMSSN102><orig>0</orig><CSOSN>400</CSOSN></ICMSSN102></ICMS><PIS><PISOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vPIS>0.00</vPIS></PISOutr></PIS><COFINS><COFINSOutr><CST>49</CST><qBCProd>0.0000</qBCProd><vAliqProd>0.0000</vAliqProd><vCOFINS>0.00</vCOFINS></COFINSOutr></COFINS></imposto></det><total><ICMSTot><vBC>0.00</vBC><vICMS>0.00</vICMS><vICMSDeson>0.00</vICMSDeson><vFCP>0.00</vFCP><vBCST>0.00</vBCST><vST>0.00</vST><vFCPST>0.00</vFCPST><vFCPSTRet>0.00</vFCPSTRet><vProd>1238.00</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>38.00</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vIPIDevol>0.00</vIPIDevol><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro><vNF>1200.00</vNF></ICMSTot></total><transp><modFrete>9</modFrete></transp><pag><detPag><indPag>0</indPag><tPag>17</tPag><vPag>1200.00</vPag></detPag><vTroco>0.00</vTroco></pag><infRespTec><CNPJ>47506306000188</CNPJ><xContato>PP Programador Perfeito</xContato><email>pp@email.com</email><fone>551140028922</fone></infRespTec></infNFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI="#NFe43250508512944000150650000000002511000020233"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>Rvp1yuwdqJSZcEqgFFNX+yD74PI=</DigestValue></Reference></SignedInfo><SignatureValue>iwJ35xNS4HPfMmucz6zki7H92JbPt5BAAwxhhQer3VGCw/2xzFw/ZIU9RIi5dUGmeSH3s23wl0n/MB590YDpB6ysUHTFpcrlywi76x/uEc9zc7sdLKk9ECe4y4BsBI5lxANlY0sDpMMm1KyseuQPgnOAE3HPeDMGW3S6lMInNxDx+3jhcLKtKokHEovEZEgeQnsSCjXHxNxpEdXFnSdnz0rAzpt6onErDQI/fTpTvF/BHtB3WmsO7ApXYV2FyuWaRuE2/UT2ozvVcwYphrgLiIvGQOnR6lbKH2ivoRrsDGJlLB0a0FxFN8UDCn+1xhjFcMhbAbgRqE5R/pUE5urpcw==</SignatureValue><KeyInfo><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature><infNFeSupl><qrCode>https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx</qrCode><urlChave>www.sefaz.rs.gov.br/nfce/consulta</urlChave></infNFeSupl></NFe>