consultame-sdk 1.2.0 → 1.2.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.
package/README.md CHANGED
@@ -51,7 +51,6 @@ Dependencias en tiempo de ejecución:
51
51
  | [`node-forge`](https://www.npmjs.com/package/node-forge) | Leer los certificados `.p12`/`.pfx` y exportarlos a PEM. |
52
52
  | [`xml2js`](https://www.npmjs.com/package/xml2js) | Parsear el XML firmado al generar el QR. |
53
53
  | [`xml-crypto`](https://www.npmjs.com/package/xml-crypto) | Firmar digitalmente (XMLDSig) el Documento Electrónico generado. |
54
- | [`crypto-js`](https://www.npmjs.com/package/crypto-js) | Calcular el hash SHA-256 (`cHashQR`) del código QR. |
55
54
 
56
55
  La librería se publica en formato dual **CommonJS + ESM** con tipos incluidos:
57
56
 
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  var fs = require('fs');
4
4
  var forge = require('node-forge');
5
5
  var xml2js = require('xml2js');
6
- var sha256 = require('crypto-js/sha256');
6
+ var crypto = require('crypto');
7
7
  var xmlCrypto = require('xml-crypto');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -28,7 +28,6 @@ function _interopNamespace(e) {
28
28
 
29
29
  var forge__default = /*#__PURE__*/_interopDefault(forge);
30
30
  var xml2js__namespace = /*#__PURE__*/_interopNamespace(xml2js);
31
- var sha256__default = /*#__PURE__*/_interopDefault(sha256);
32
31
 
33
32
  // src/sifen/domain/useCases/consultBatch.useCase.ts
34
33
  var ConsultBatchUseCase = class {
@@ -132,6 +131,18 @@ var NominationInvoiceUseCase = class {
132
131
  }
133
132
  };
134
133
 
134
+ // src/sifen/domain/useCases/generateBatch.useCase.ts
135
+ var GenerateBatchUseCase = class {
136
+ constructor(sifenRepository) {
137
+ this.sifenRepository = sifenRepository;
138
+ }
139
+ sifenRepository;
140
+ execute(generateBatchDto) {
141
+ const batch = this.sifenRepository.generateBatch(generateBatchDto);
142
+ return batch;
143
+ }
144
+ };
145
+
135
146
  // src/shared/utils/dictionary.utils.ts
136
147
  var TIPOS_DOCUMENTOS = [
137
148
  {
@@ -8169,6 +8180,19 @@ var generateConsultBatchXml = (consultBatchDto) => {
8169
8180
  </env:Envelope>
8170
8181
  `;
8171
8182
  };
8183
+ var generateSendBatchXml = (generateBatchDto) => {
8184
+ return `<?xml version="1.0" encoding="UTF-8"?>
8185
+ <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
8186
+ <env:Header/>
8187
+ <env:Body>
8188
+ <rEnvioLote xmlns="http://ekuatia.set.gov.py/sifen/xsd">
8189
+ <dId>${generateBatchDto.id}</dId>
8190
+ <xDE>${generateBatchDto.xml}</xDE>
8191
+ </rEnvioLote>
8192
+ </env:Body>
8193
+ </env:Envelope>
8194
+ `;
8195
+ };
8172
8196
  var validateNominationInvoice = (dto) => {
8173
8197
  if (!/^\d{44}$/.test(dto.cdc)) {
8174
8198
  throw new Error("El CDC debe tener 44 d\xEDgitos");
@@ -8388,7 +8412,7 @@ var generateQr = async (generationQrDto) => {
8388
8412
  qr += "DigestValue=" + digestValue + "&";
8389
8413
  qr += "IdCSC=" + idCsc;
8390
8414
  const valueForHash = qr;
8391
- const valueHashed = sha256__default.default(valueForHash + csc);
8415
+ const valueHashed = crypto.createHash("sha256").update(valueForHash + csc, "utf8").digest("hex");
8392
8416
  qr += "&cHashQR=" + valueHashed;
8393
8417
  const dCarQR = (linkQr + qr).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
8394
8418
  const cierreRDE = xml.lastIndexOf("</rDE>");
@@ -10168,6 +10192,13 @@ var SifenPersistence = class {
10168
10192
  throw error;
10169
10193
  }
10170
10194
  }
10195
+ generateBatch(generateBatchDto) {
10196
+ try {
10197
+ return generateSendBatchXml(generateBatchDto);
10198
+ } catch (error) {
10199
+ throw error;
10200
+ }
10201
+ }
10171
10202
  };
10172
10203
 
10173
10204
  // src/sifen/applications/services/sifen.service.ts
@@ -10180,6 +10211,7 @@ var SifenService = class {
10180
10211
  generateDocumentUseCase;
10181
10212
  signedXmlUseCase;
10182
10213
  nominationInvoiceUseCase;
10214
+ generateBatchUseCase;
10183
10215
  sifenRepository;
10184
10216
  constructor() {
10185
10217
  this.sifenRepository = new SifenPersistence();
@@ -10199,6 +10231,7 @@ var SifenService = class {
10199
10231
  this.nominationInvoiceUseCase = new NominationInvoiceUseCase(
10200
10232
  this.sifenRepository
10201
10233
  );
10234
+ this.generateBatchUseCase = new GenerateBatchUseCase(this.sifenRepository);
10202
10235
  }
10203
10236
  consultRuc(consultRucDto) {
10204
10237
  const ruc = this.consultRucUseCase.execute(consultRucDto);
@@ -10246,6 +10279,10 @@ var SifenService = class {
10246
10279
  throw error;
10247
10280
  }
10248
10281
  }
10282
+ generateBatch(generateBatchDto) {
10283
+ const xml = this.generateBatchUseCase.execute(generateBatchDto);
10284
+ return xml;
10285
+ }
10249
10286
  };
10250
10287
 
10251
10288
  exports.SifenService = SifenService;