sunat-engine-nest 2.0.4 → 2.1.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.
Files changed (42) hide show
  1. package/README.md +43 -0
  2. package/dist/gre/sunat-gre.client.d.ts +1 -0
  3. package/dist/gre/sunat-gre.client.js +2 -1
  4. package/dist/gre/sunat-gre.client.js.map +1 -1
  5. package/dist/index.d.ts +3 -1
  6. package/dist/index.js +7 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/ose/ose.client.d.ts +20 -2
  9. package/dist/ose/ose.client.js +307 -27
  10. package/dist/ose/ose.client.js.map +1 -1
  11. package/dist/signer/xml-signer.service.js +4 -1
  12. package/dist/signer/xml-signer.service.js.map +1 -1
  13. package/dist/soap/sunat-soap.client.d.ts +2 -0
  14. package/dist/soap/sunat-soap.client.js.map +1 -1
  15. package/dist/sunat-engine.module.d.ts +4 -0
  16. package/dist/sunat-engine.module.js.map +1 -1
  17. package/dist/sunat-engine.service.d.ts +1 -0
  18. package/dist/sunat-engine.service.js +37 -13
  19. package/dist/sunat-engine.service.js.map +1 -1
  20. package/dist/tsconfig.build.tsbuildinfo +1 -1
  21. package/dist/tsconfig.tsbuildinfo +1 -1
  22. package/dist/types/sunat.types.d.ts +9 -1
  23. package/dist/validation/document.validator.d.ts +5 -0
  24. package/dist/validation/document.validator.js +262 -0
  25. package/dist/validation/document.validator.js.map +1 -0
  26. package/dist/validation/invoice.validator.d.ts +3 -0
  27. package/dist/validation/invoice.validator.js +247 -28
  28. package/dist/validation/invoice.validator.js.map +1 -1
  29. package/dist/xml/common.builder.js +50 -19
  30. package/dist/xml/common.builder.js.map +1 -1
  31. package/dist/xml/despatch.builder.d.ts +1 -0
  32. package/dist/xml/despatch.builder.js +204 -12
  33. package/dist/xml/despatch.builder.js.map +1 -1
  34. package/dist/xml/invoice.builder.js +4 -1
  35. package/dist/xml/invoice.builder.js.map +1 -1
  36. package/dist/xml/namespaces.js +2 -2
  37. package/dist/xml/namespaces.js.map +1 -1
  38. package/dist/xml/summary.builder.js +16 -23
  39. package/dist/xml/summary.builder.js.map +1 -1
  40. package/dist/xml/voided.builder.js +5 -5
  41. package/dist/xml/voided.builder.js.map +1 -1
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -235,6 +235,49 @@ return this.engine.sendInvoice(payload, {
235
235
  | Comunicación de Baja (RA) | `sendVoided()` | Baja de comprobantes — SOAP asíncrono |
236
236
  | Consulta de ticket | `getTicketStatus()` | Estado de procesos asíncronos |
237
237
 
238
+ ## Prevalidaciones (antes de guardar y antes de enviar)
239
+
240
+ Cada `send*()` ejecuta **primero** la prevalidación del payload y sólo después
241
+ resuelve credenciales, firma el XML y llama a SUNAT/OSE. Los errores salen como
242
+ `InvoiceValidationError` con `fields: string[]` (`campo: motivo`) para que el
243
+ consumidor responda `400` **antes** de crear registros en su base de datos.
244
+
245
+ Reglas cubiertas (Anexo N.° 8 y guías XML de SUNAT):
246
+
247
+ - Factura/Boleta/NC/ND: catálogos 01, 02, 06 y 07 (más el 51 en facturas y
248
+ boletas); coherencia de líneas
249
+ (`cantidad × valor unitario = valor de venta`, `IGV = base × 18%`,
250
+ `precio unitario = valor unitario × (1 + tasa)`, `totalImpuestos`), importes
251
+ a 2 decimales, tope de 500 líneas en RC y leyenda 1002 en operaciones
252
+ gratuitas.
253
+ - RC: catálogos 01/06/19, `sac:TotalAmount` y `TaxTotal` que cierran con la
254
+ línea, referencia obligatoria para NC/ND.
255
+ - RA: catálogo 01, serie/correlativo del comprobante y máximo 100 caracteres
256
+ en el motivo de baja.
257
+ - GRE: validación estructural más las reglas del Anexo N.° 14.
258
+
259
+ Para validar **sin enviar** (p. ej. antes de crear un placeholder de RC/RA en
260
+ la BD) usa los validadores exportados:
261
+
262
+ ```typescript
263
+ import {
264
+ validateInvoicePayload,
265
+ validateNotePayload,
266
+ validateSummaryPayload,
267
+ validateVoidedPayload,
268
+ validateDespatchPayload,
269
+ InvoiceValidationError,
270
+ } from 'sunat-engine-nest';
271
+
272
+ try {
273
+ validateSummaryPayload(payload);
274
+ } catch (err) {
275
+ if (err instanceof InvoiceValidationError) {
276
+ console.log(err.fields); // ['details[0].total: total 30 no coincide con ...', ...]
277
+ }
278
+ }
279
+ ```
280
+
238
281
  ## Testing / Modo simulado
239
282
 
240
283
  SUNAT beta rechaza `sendSummary` (RC/RA) con el RUC genérico de prueba `20000000001` — ese RUC solo funciona de forma confiable para `sendBill` (facturas y boletas). Para probar el flujo completo sin depender del entorno beta, el módulo incluye un **cliente SOAP simulado** que devuelve respuestas válidas sin realizar ninguna llamada HTTP.
@@ -14,6 +14,7 @@ export declare class SunatGreClient {
14
14
  ruc: string;
15
15
  solUser: string;
16
16
  solPass: string;
17
+ tipoDoc?: string;
17
18
  serie: string;
18
19
  correlativo: string;
19
20
  signedXml: string;
@@ -44,7 +44,8 @@ let SunatGreClient = SunatGreClient_1 = class SunatGreClient {
44
44
  if (!token) {
45
45
  return { success: false, error: { code: 'AUTH_ERROR', message: 'No se pudo obtener token OAuth para GRE' } };
46
46
  }
47
- const fileName = `${params.ruc}-09-${params.serie}-${params.correlativo}`;
47
+ const tipoDoc = params.tipoDoc ?? '09';
48
+ const fileName = `${params.ruc}-${tipoDoc}-${params.serie}-${params.correlativo}`;
48
49
  const zipBase64 = await this.createZip(`${fileName}.xml`, params.signedXml);
49
50
  const hashZip = crypto.createHash('sha256').update(Buffer.from(zipBase64, 'base64')).digest('hex');
50
51
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"sunat-gre.client.js","sourceRoot":"","sources":["../../src/gre/sunat-gre.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sunat-gre.client.js","sourceRoot":"","sources":["../../src/gre/sunat-gre.client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export type { SoapSendResult, SunatEndpointType } from './soap/sunat-soap.client
7
7
  export { FakeSunatSoapClient } from './soap/fake-sunat-soap.client';
8
8
  export { SunatGreClient } from './gre/sunat-gre.client';
9
9
  export { OseClient } from './ose/ose.client';
10
- export type { OseClientOptions } from './ose/ose.client';
10
+ export type { OseClientOptions, OseMode } from './ose/ose.client';
11
11
  export { CdrParserService } from './cdr/cdr-parser.service';
12
12
  export { DocumentPdfService } from './pdf/document-pdf.service';
13
13
  export type { PdfFormat } from './pdf/document-pdf.service';
@@ -17,4 +17,6 @@ export { buildDespatchXml } from './xml/despatch.builder';
17
17
  export { buildSummaryXml } from './xml/summary.builder';
18
18
  export { buildVoidedXml } from './xml/voided.builder';
19
19
  export { validateInvoicePayload, validateNotePayload, InvoiceValidationError } from './validation/invoice.validator';
20
+ export { validateSummaryPayload, validateVoidedPayload, validateDespatchPayload, } from './validation/document.validator';
21
+ export { validarGre } from './xml/despatch.builder';
20
22
  export type { AddressSunat, CompanySunat, ClientSunat, DetailSunat, LegendSunat, CuotaSunat, DescuentoSunat, DetraccionSunat, PercepcionSunat, InvoicePayload, NotePayload, DespatchPayload, DespatchDocReferencia, SummaryPayload, SummaryDetailSunat, VoidedPayload, VoidedDetailSunat, CompanyCredentials, EngineResponse, SunatResponse, CdrResponse, } from './types/sunat.types';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvoiceValidationError = exports.validateNotePayload = exports.validateInvoicePayload = exports.buildVoidedXml = exports.buildSummaryXml = exports.buildDespatchXml = exports.buildNoteXml = exports.buildInvoiceXml = exports.DocumentPdfService = exports.CdrParserService = exports.OseClient = exports.SunatGreClient = exports.FakeSunatSoapClient = exports.SunatSoapClient = exports.XmlSignerService = exports.SunatEngineService = exports.SUNAT_ENGINE_OPTIONS = exports.SunatEngineModule = void 0;
3
+ exports.validarGre = exports.validateDespatchPayload = exports.validateVoidedPayload = exports.validateSummaryPayload = exports.InvoiceValidationError = exports.validateNotePayload = exports.validateInvoicePayload = exports.buildVoidedXml = exports.buildSummaryXml = exports.buildDespatchXml = exports.buildNoteXml = exports.buildInvoiceXml = exports.DocumentPdfService = exports.CdrParserService = exports.OseClient = exports.SunatGreClient = exports.FakeSunatSoapClient = exports.SunatSoapClient = exports.XmlSignerService = exports.SunatEngineService = exports.SUNAT_ENGINE_OPTIONS = exports.SunatEngineModule = void 0;
4
4
  var sunat_engine_module_1 = require("./sunat-engine.module");
5
5
  Object.defineProperty(exports, "SunatEngineModule", { enumerable: true, get: function () { return sunat_engine_module_1.SunatEngineModule; } });
6
6
  Object.defineProperty(exports, "SUNAT_ENGINE_OPTIONS", { enumerable: true, get: function () { return sunat_engine_module_1.SUNAT_ENGINE_OPTIONS; } });
@@ -34,4 +34,10 @@ var invoice_validator_1 = require("./validation/invoice.validator");
34
34
  Object.defineProperty(exports, "validateInvoicePayload", { enumerable: true, get: function () { return invoice_validator_1.validateInvoicePayload; } });
35
35
  Object.defineProperty(exports, "validateNotePayload", { enumerable: true, get: function () { return invoice_validator_1.validateNotePayload; } });
36
36
  Object.defineProperty(exports, "InvoiceValidationError", { enumerable: true, get: function () { return invoice_validator_1.InvoiceValidationError; } });
37
+ var document_validator_1 = require("./validation/document.validator");
38
+ Object.defineProperty(exports, "validateSummaryPayload", { enumerable: true, get: function () { return document_validator_1.validateSummaryPayload; } });
39
+ Object.defineProperty(exports, "validateVoidedPayload", { enumerable: true, get: function () { return document_validator_1.validateVoidedPayload; } });
40
+ Object.defineProperty(exports, "validateDespatchPayload", { enumerable: true, get: function () { return document_validator_1.validateDespatchPayload; } });
41
+ var despatch_builder_2 = require("./xml/despatch.builder");
42
+ Object.defineProperty(exports, "validarGre", { enumerable: true, get: function () { return despatch_builder_2.validarGre; } });
37
43
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,6DAAgF;AAAvE,wHAAA,iBAAiB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAIhD,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAG3B,kEAA+D;AAAtD,sHAAA,gBAAgB,OAAA;AACzB,8DAA2D;AAAlD,oHAAA,eAAe,OAAA;AAExB,wEAAoE;AAA3D,6HAAA,mBAAmB,OAAA;AAC5B,2DAAwD;AAA/C,kHAAA,cAAc,OAAA;AACvB,+CAA6C;AAApC,uGAAA,SAAS,OAAA;AAElB,+DAA4D;AAAnD,sHAAA,gBAAgB,OAAA;AACzB,mEAAgE;AAAvD,0HAAA,kBAAkB,OAAA;AAI3B,yDAAwD;AAA/C,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,4GAAA,YAAY,OAAA;AACrB,2DAA0D;AAAjD,oHAAA,gBAAgB,OAAA;AACzB,yDAAwD;AAA/C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,gHAAA,cAAc,OAAA;AAGvB,oEAAqH;AAA5G,2HAAA,sBAAsB,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAAE,2HAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,6DAAgF;AAAvE,wHAAA,iBAAiB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAIhD,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAG3B,kEAA+D;AAAtD,sHAAA,gBAAgB,OAAA;AACzB,8DAA2D;AAAlD,oHAAA,eAAe,OAAA;AAExB,wEAAoE;AAA3D,6HAAA,mBAAmB,OAAA;AAC5B,2DAAwD;AAA/C,kHAAA,cAAc,OAAA;AACvB,+CAA6C;AAApC,uGAAA,SAAS,OAAA;AAElB,+DAA4D;AAAnD,sHAAA,gBAAgB,OAAA;AACzB,mEAAgE;AAAvD,0HAAA,kBAAkB,OAAA;AAI3B,yDAAwD;AAA/C,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,4GAAA,YAAY,OAAA;AACrB,2DAA0D;AAAjD,oHAAA,gBAAgB,OAAA;AACzB,yDAAwD;AAA/C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,gHAAA,cAAc,OAAA;AAGvB,oEAAqH;AAA5G,2HAAA,sBAAsB,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAAE,2HAAA,sBAAsB,OAAA;AAC5E,sEAIyC;AAHvC,4HAAA,sBAAsB,OAAA;AACtB,2HAAA,qBAAqB,OAAA;AACrB,6HAAA,uBAAuB,OAAA;AAEzB,2DAAoD;AAA3C,8GAAA,UAAU,OAAA"}
@@ -1,9 +1,14 @@
1
1
  import { SoapSendResult } from '../soap/sunat-soap.client';
2
+ export type OseMode = 'auto' | 'soap' | 'rest';
2
3
  export interface OseClientOptions {
3
4
  url: string;
5
+ mode?: OseMode;
4
6
  token?: string;
5
7
  username?: string;
6
8
  password?: string;
9
+ ruc?: string;
10
+ solUser?: string;
11
+ solPass?: string;
7
12
  }
8
13
  export declare class OseClient {
9
14
  private readonly logger;
@@ -17,8 +22,21 @@ export declare class OseClient {
17
22
  xmlSigned: string;
18
23
  ose: OseClientOptions;
19
24
  }): Promise<SoapSendResult>;
20
- private parseResponse;
21
- private buildAuth;
25
+ getStatus(params: {
26
+ ticket: string;
27
+ ose: OseClientOptions;
28
+ }): Promise<SoapSendResult>;
29
+ private postComprobante;
30
+ private useSoap;
31
+ private soapHeaders;
32
+ private buildSoapAuth;
33
+ private buildRestAuth;
34
+ private buildSoapEnvelope;
35
+ private soapSecurity;
36
+ private escapeXml;
37
+ private parseSoapResponse;
38
+ private parseSoapFault;
39
+ private parseJsonResponse;
22
40
  private handleError;
23
41
  private createZip;
24
42
  }
@@ -11,45 +11,296 @@ exports.OseClient = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const axios_1 = require("axios");
13
13
  const JSZip = require("jszip");
14
+ const OSE_ERROR_MESSAGES = {
15
+ '0100': 'El sistema no puede responder su solicitud. Intente nuevamente o comuníquese con su administrador.',
16
+ '0101': 'El encabezado de seguridad es incorrecto. Verifique las credenciales de acceso al OSE.',
17
+ '0102': 'Usuario o contraseña incorrectos.',
18
+ '0103': 'El usuario ingresado no existe.',
19
+ '0104': 'La clave ingresada es incorrecta.',
20
+ '0105': 'El usuario no está activo.',
21
+ '0106': 'El usuario no es válido.',
22
+ '0111': 'No tiene el perfil para enviar comprobantes electrónicos.',
23
+ '0127': 'Ticket no encontrado. Verifique el número de ticket.',
24
+ '0151': 'Nombre de archivo ZIP no válido. Verifique el formato RUC-TIPO-SERIE-CORRELATIVO.',
25
+ '0155': 'El archivo ZIP está vacío.',
26
+ '0156': 'El archivo ZIP está corrupto o no se pudo abrir.',
27
+ '0157': 'El ZIP no contiene comprobantes electrónicos (CPE).',
28
+ '0250': 'Error al descomprimir el archivo ZIP enviado.',
29
+ '0300': 'XML sin elemento raíz válido.',
30
+ '0304': 'No se encontró el esquema XSD del comprobante.',
31
+ '0305': 'El comprobante no se pudo procesar (XML inválido).',
32
+ '0306': 'No se pudo parsear el XML del comprobante.',
33
+ '2074': 'UBLVersionID - La versión del UBL no es correcta. Los resúmenes (RC/RA) deben enviarse con UBL 2.0.',
34
+ '2104': 'El número de RUC del emisor no existe.',
35
+ '2105': 'El comprobante a dar de baja no está registrado en SUNAT. Verifique serie y correlativo de la factura referenciada (ej: F001-00000001).',
36
+ '2119': 'El documento modificado en la Nota de Crédito no está registrado. Verifique numDocAfectado.',
37
+ '2120': 'El documento modificado en la Nota de Crédito se encuentra de baja.',
38
+ '2121': 'El documento modificado en la Nota de Crédito está registrado como rechazado.',
39
+ '2204': 'El tipo de documento modificado por la Nota de Débito debe ser factura electrónica o ticket.',
40
+ '2205': 'La serie o número del documento modificado por la Nota de Débito no cumple el formato. Verifique numDocAfectado.',
41
+ '2207': 'El documento modificado en la Nota de Débito se encuentra de baja.',
42
+ '2208': 'El documento modificado en la Nota de Débito está registrado como rechazado.',
43
+ '2209': 'El documento modificado en la Nota de Débito no está registrado. Verifique numDocAfectado.',
44
+ '2334': 'El XML fue alterado o la firma no coincide.',
45
+ '2987': 'El comprobante ya fue informado y se encuentra anulado o rechazado. No se puede volver a anular (RC) ni modificar; verifique el estado previo del comprobante.',
46
+ '1032': 'El comprobante ya está informado y se encuentra con estado anulado o rechazado. No se puede volver a informar ni anular.',
47
+ '2106': 'El comprobante a dar de baja ya se encuentra en estado de baja. La anulación (RC/RA) ya fue informada previamente.',
48
+ '2663': 'El documento indicado no existe y no puede ser modificado. En la RC, serie_nro debe coincidir con una boleta ya aceptada (ej: B001-00000001) y el comprobante debe haberse emitido previamente.',
49
+ };
50
+ function mapOseError(code, message) {
51
+ const msg = (message ?? '').trim();
52
+ const cd = (code ?? '').trim();
53
+ const key = /^\d{4}$/.test(msg)
54
+ ? msg
55
+ : /^\d{4}$/.test(cd)
56
+ ? cd
57
+ : (msg.match(/\b\d{4}\b/)?.[0] ?? cd.match(/\b\d{4}\b/)?.[0]);
58
+ const friendly = key ? OSE_ERROR_MESSAGES[key] : undefined;
59
+ if (!friendly) {
60
+ if (key && (msg === key || !msg || msg === cd)) {
61
+ return {
62
+ code: key,
63
+ message: `Error OSE ${key}. Consulte la documentación del operador.`,
64
+ rawCode: code,
65
+ rawMessage: message,
66
+ };
67
+ }
68
+ return { code, message: message ?? 'Error OSE desconocido' };
69
+ }
70
+ return {
71
+ code: key,
72
+ message: friendly,
73
+ rawCode: code,
74
+ rawMessage: message,
75
+ };
76
+ }
14
77
  let OseClient = OseClient_1 = class OseClient {
15
78
  constructor() {
16
79
  this.logger = new common_1.Logger(OseClient_1.name);
17
80
  }
18
81
  async sendBill(params) {
19
- const contentFile = await this.createZip(params.fileName, params.xmlSigned);
20
- try {
21
- const response = await axios_1.default.post(params.ose.url, { fileName: params.fileName.replace(/\.zip$/i, ''), contentFile }, {
22
- headers: {
23
- 'Content-Type': 'application/json',
24
- 'Authorization': this.buildAuth(params.ose),
82
+ return this.postComprobante('sendBill', params);
83
+ }
84
+ async sendSummary(params) {
85
+ return this.postComprobante('sendSummary', params);
86
+ }
87
+ async getStatus(params) {
88
+ const ose = params.ose;
89
+ if (!this.useSoap(ose)) {
90
+ return {
91
+ success: false,
92
+ error: {
93
+ code: 'UNSUPPORTED',
94
+ message: 'getStatus solo está soportado en modo SOAP para OSE',
25
95
  },
26
- timeout: 60_000,
96
+ };
97
+ }
98
+ const envelope = this.buildSoapEnvelope('getStatus', [['ticket', params.ticket]], this.soapSecurity(ose));
99
+ try {
100
+ const response = await axios_1.default.post(ose.url, envelope, {
101
+ headers: this.soapHeaders(ose),
102
+ timeout: 30_000,
27
103
  });
28
- return this.parseResponse(response.data);
104
+ return this.parseSoapResponse(String(response.data ?? ''), 'getStatus');
29
105
  }
30
106
  catch (err) {
31
107
  return this.handleError(err);
32
108
  }
33
109
  }
34
- async sendSummary(params) {
110
+ async postComprobante(operation, params) {
111
+ const ose = params.ose;
112
+ if (!ose?.url) {
113
+ return {
114
+ success: false,
115
+ error: { code: 'OSE_CONFIG', message: 'OSE_ENDPOINT no configurado' },
116
+ };
117
+ }
35
118
  const contentFile = await this.createZip(params.fileName, params.xmlSigned);
119
+ const fileName = /\.zip$/i.test(params.fileName) ? params.fileName : `${params.fileName}.zip`;
120
+ if (this.useSoap(ose)) {
121
+ const envelope = this.buildSoapEnvelope(operation, [
122
+ ['fileName', fileName],
123
+ ['contentFile', contentFile],
124
+ ], this.soapSecurity(ose));
125
+ try {
126
+ const response = await axios_1.default.post(ose.url, envelope, {
127
+ headers: this.soapHeaders(ose),
128
+ timeout: 60_000,
129
+ });
130
+ return this.parseSoapResponse(String(response.data ?? ''), operation);
131
+ }
132
+ catch (err) {
133
+ return this.handleError(err);
134
+ }
135
+ }
36
136
  try {
37
- const response = await axios_1.default.post(params.ose.url, { fileName: params.fileName.replace(/\.zip$/i, ''), contentFile }, {
137
+ const response = await axios_1.default.post(ose.url, { fileName, contentFile }, {
38
138
  headers: {
39
139
  'Content-Type': 'application/json',
40
- 'Authorization': this.buildAuth(params.ose),
140
+ Authorization: this.buildRestAuth(ose),
41
141
  },
42
142
  timeout: 60_000,
43
143
  });
44
- return this.parseResponse(response.data);
144
+ return this.parseJsonResponse(response.data);
45
145
  }
46
146
  catch (err) {
47
147
  return this.handleError(err);
48
148
  }
49
149
  }
50
- parseResponse(data) {
150
+ useSoap(ose) {
151
+ const mode = (ose.mode ?? 'auto').toLowerCase();
152
+ if (mode === 'soap')
153
+ return true;
154
+ if (mode === 'rest')
155
+ return false;
156
+ return /billService/i.test(ose.url ?? '');
157
+ }
158
+ soapHeaders(ose) {
159
+ return {
160
+ 'Content-Type': 'text/xml;charset=UTF-8',
161
+ SOAPAction: '',
162
+ Authorization: `Basic ${this.buildSoapAuth(ose)}`,
163
+ };
164
+ }
165
+ buildSoapAuth(ose) {
166
+ if (ose.ruc && ose.solUser && ose.solPass) {
167
+ return Buffer.from(`${ose.ruc}${ose.solUser}:${ose.solPass}`).toString('base64');
168
+ }
169
+ if (ose.username && ose.password) {
170
+ return Buffer.from(`${ose.username}:${ose.password}`).toString('base64');
171
+ }
172
+ return '';
173
+ }
174
+ buildRestAuth(ose) {
175
+ if (ose.token)
176
+ return `Bearer ${ose.token}`;
177
+ if (ose.username && ose.password) {
178
+ return `Basic ${Buffer.from(`${ose.username}:${ose.password}`).toString('base64')}`;
179
+ }
180
+ if (ose.ruc && ose.solUser && ose.solPass) {
181
+ return `Basic ${Buffer.from(`${ose.ruc}${ose.solUser}:${ose.solPass}`).toString('base64')}`;
182
+ }
183
+ return '';
184
+ }
185
+ buildSoapEnvelope(operation, fields, security) {
186
+ const body = fields
187
+ .map(([tag, value]) => ` <ser:${tag}>${this.escapeXml(value)}</ser:${tag}>`)
188
+ .join('\n');
189
+ const header = security
190
+ ? ` <SOAP-ENV:Header>
191
+ <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
192
+ <wsse:UsernameToken>
193
+ <wsse:Username>${this.escapeXml(security.user)}</wsse:Username>
194
+ <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">${this.escapeXml(security.pass)}</wsse:Password>
195
+ </wsse:UsernameToken>
196
+ </wsse:Security>
197
+ </SOAP-ENV:Header>`
198
+ : ' <SOAP-ENV:Header/>';
199
+ return `<?xml version="1.0" encoding="UTF-8"?>
200
+ <SOAP-ENV:Envelope
201
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
202
+ xmlns:ser="http://service.sunat.gob.pe"
203
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
204
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
205
+ ${header}
206
+ <SOAP-ENV:Body>
207
+ <ser:${operation}>
208
+ ${body}
209
+ </ser:${operation}>
210
+ </SOAP-ENV:Body>
211
+ </SOAP-ENV:Envelope>`;
212
+ }
213
+ soapSecurity(ose) {
214
+ if (ose.ruc && ose.solUser && ose.solPass) {
215
+ return { user: `${ose.ruc}${ose.solUser}`, pass: ose.solPass };
216
+ }
217
+ if (ose.username && ose.password) {
218
+ return { user: ose.username, pass: ose.password };
219
+ }
220
+ return undefined;
221
+ }
222
+ escapeXml(str) {
223
+ return String(str)
224
+ .replace(/&/g, '&amp;')
225
+ .replace(/</g, '&lt;')
226
+ .replace(/>/g, '&gt;')
227
+ .replace(/"/g, '&quot;')
228
+ .replace(/'/g, '&apos;');
229
+ }
230
+ parseSoapResponse(soapXml, operation) {
231
+ if (!soapXml || !soapXml.includes('<')) {
232
+ return {
233
+ success: false,
234
+ error: {
235
+ code: 'EMPTY_RESPONSE',
236
+ message: 'El OSE no devolvió respuesta SOAP',
237
+ },
238
+ };
239
+ }
240
+ if (operation === 'sendBill') {
241
+ const cdrMatch = soapXml.match(/<applicationResponse[^>]*>([\s\S]*?)<\/applicationResponse>/i);
242
+ if (cdrMatch?.[1]) {
243
+ return { success: true, cdrZipBase64: cdrMatch[1].trim() };
244
+ }
245
+ }
246
+ if (operation === 'sendSummary') {
247
+ const ticketMatch = soapXml.match(/<ticket[^>]*>([\s\S]*?)<\/ticket>/i);
248
+ if (ticketMatch?.[1]) {
249
+ return { success: true, ticket: ticketMatch[1].trim() };
250
+ }
251
+ }
252
+ if (operation === 'getStatus') {
253
+ const statusCode = soapXml.match(/<statusCode[^>]*>([\s\S]*?)<\/statusCode>/i)?.[1];
254
+ const content = soapXml.match(/<content[^>]*>([\s\S]*?)<\/content>/i)?.[1];
255
+ if (statusCode === '0' && content) {
256
+ return { success: true, cdrZipBase64: content.trim() };
257
+ }
258
+ if (statusCode === '98') {
259
+ return {
260
+ success: false,
261
+ error: { code: '98', message: 'Ticket en proceso, vuelva a intentar' },
262
+ };
263
+ }
264
+ }
265
+ return this.parseSoapFault(soapXml);
266
+ }
267
+ parseSoapFault(soapXml) {
268
+ const faultString = soapXml.match(/<faultstring[^>]*>([\s\S]*?)<\/faultstring>/i)?.[1];
269
+ const faultCode = soapXml.match(/<faultcode[^>]*>([\s\S]*?)<\/faultcode>/i)?.[1];
270
+ const detail = soapXml.match(/<detail[^>]*>([\s\S]*?)<\/detail>/i)?.[1];
271
+ if (!faultString && !faultCode && /<!DOCTYPE html|<html[\s>]/i.test(soapXml)) {
272
+ return {
273
+ success: false,
274
+ error: {
275
+ code: 'OSE_HTTP_ERROR',
276
+ message: 'El OSE no devolvió SOAP (respuesta HTML/HTTP). Verifique que OSE_ENDPOINT esté disponible.',
277
+ },
278
+ };
279
+ }
280
+ const message = faultString?.trim() ||
281
+ detail?.replace(/<[^>]+>/g, ' ').trim() ||
282
+ 'Error SOAP desconocido';
283
+ const mapped = mapOseError(faultCode?.trim(), message);
284
+ return {
285
+ success: false,
286
+ error: {
287
+ code: mapped.code ?? faultCode?.trim() ?? 'SOAP_FAULT',
288
+ message: mapped.message,
289
+ ...(mapped.rawCode || mapped.rawMessage
290
+ ? { rawCode: mapped.rawCode, rawMessage: mapped.rawMessage }
291
+ : {}),
292
+ },
293
+ };
294
+ }
295
+ parseJsonResponse(data) {
51
296
  if (!data) {
52
- return { success: false, error: { code: 'EMPTY_RESPONSE', message: 'El OSE no devolvió respuesta' } };
297
+ return {
298
+ success: false,
299
+ error: {
300
+ code: 'EMPTY_RESPONSE',
301
+ message: 'El OSE no devolvió respuesta',
302
+ },
303
+ };
53
304
  }
54
305
  const cdrZip = data.cdrZip || data.cdr || data.applicationResponse || data.contentFile || undefined;
55
306
  const ticket = data.ticket ?? data.numTicket;
@@ -68,23 +319,52 @@ let OseClient = OseClient_1 = class OseClient {
68
319
  }
69
320
  return { success: true, cdrZipBase64: cdrZip, ticket };
70
321
  }
71
- buildAuth(ose) {
72
- if (ose.token)
73
- return `Bearer ${ose.token}`;
74
- if (ose.username && ose.password) {
75
- return `Basic ${Buffer.from(`${ose.username}:${ose.password}`).toString('base64')}`;
76
- }
77
- return '';
78
- }
79
322
  handleError(err) {
80
323
  const data = err.response?.data;
81
- if (data) {
82
- const msg = data.message ?? data.description ?? data.descripcion ?? JSON.stringify(data);
83
- const code = String(data.code ?? data.codigoRespuesta ?? err.response?.status ?? 'OSE_ERROR');
84
- return { success: false, error: { code, message: msg } };
324
+ const status = err.response?.status;
325
+ if (typeof data === 'string' && data.includes('faultstring')) {
326
+ return this.parseSoapFault(data);
327
+ }
328
+ if (data && typeof data === 'object') {
329
+ const rawMsg = data.message ??
330
+ data.description ??
331
+ data.descripcion ??
332
+ JSON.stringify(data);
333
+ const rawCode = String(data.code ?? data.codigoRespuesta ?? status ?? 'OSE_ERROR');
334
+ const mapped = mapOseError(rawCode, rawMsg);
335
+ return {
336
+ success: false,
337
+ error: {
338
+ code: mapped.code ?? rawCode,
339
+ message: mapped.message,
340
+ ...(mapped.rawCode || mapped.rawMessage
341
+ ? { rawCode: mapped.rawCode, rawMessage: mapped.rawMessage }
342
+ : {}),
343
+ },
344
+ };
345
+ }
346
+ if (typeof data === 'string' && data.includes('<')) {
347
+ return this.parseSoapFault(data);
348
+ }
349
+ if (typeof data === 'string' && data.trim()) {
350
+ const snippet = data.replace(/\s+/g, ' ').slice(0, 160);
351
+ this.logger.error(`OSE HTTP ${status ?? '?'} no-SOAP: ${snippet}`);
352
+ return {
353
+ success: false,
354
+ error: {
355
+ code: status != null ? String(status) : 'OSE_HTTP_ERROR',
356
+ message: `El OSE no devolvió SOAP (HTTP ${status ?? '?'}). Verifique OSE_ENDPOINT. Respuesta: ${snippet}`,
357
+ },
358
+ };
85
359
  }
86
360
  this.logger.error(`Error OSE: ${err.message}`);
87
- return { success: false, error: { code: 'NETWORK_ERROR', message: err.message } };
361
+ return {
362
+ success: false,
363
+ error: {
364
+ code: String(status ?? 'NETWORK_ERROR'),
365
+ message: err.message,
366
+ },
367
+ };
88
368
  }
89
369
  async createZip(fileName, xmlContent) {
90
370
  const zip = new JSZip();
@@ -1 +1 @@
1
- {"version":3,"file":"ose.client.js","sourceRoot":"","sources":["../../src/ose/ose.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ose.client.js","sourceRoot":"","sources":["../../src/ose/ose.client.ts"],"names":[],"mappings":"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"}
@@ -71,7 +71,10 @@ let XmlSignerService = XmlSignerService_1 = class XmlSignerService {
71
71
  action: 'append',
72
72
  },
73
73
  });
74
- const signedXml = sig.getSignedXml();
74
+ let signedXml = sig.getSignedXml();
75
+ if (!/<ds:Signature[^>]*\sId=/.test(signedXml)) {
76
+ signedXml = signedXml.replace('<ds:Signature', '<ds:Signature Id="SignatureSP"');
77
+ }
75
78
  if (signedXml.includes('<ds:X509Certificate>') || signedXml.includes('<X509Certificate>')) {
76
79
  return signedXml;
77
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xml-signer.service.js","sourceRoot":"","sources":["../../src/signer/xml-signer.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AACpD,oCAAoC;AACpC,2CAAuC;AAWhC,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAAtB;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAwH9D,CAAC;IAjHC,OAAO,CAAC,SAAiB,EAAE,QAAQ,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAGlE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAGzD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,EAAE,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,GAA2B,CAAC,CAAC;QAEpF,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;IAKD,gBAAgB,CAAC,SAAiB;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;QACrD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACvD,OAAO,gCAAgC,KAAK,6BAA6B,CAAC;IAC5E,CAAC;IAKD,eAAe,CAAC,OAAe;QAC7B,OAAO,OAAO;aACX,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC;aAC1C,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;aACxC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAQD,IAAI,CAAC,WAAmB,EAAE,aAAqB,EAAE,OAAe;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,GAAG,GAAG,IAAI,sBAAS,CAAC;YACxB,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,OAAO;YACnB,kBAAkB,EAAE,mDAAmD;YACvE,yBAAyB,EAAE,iDAAiD;SAC7E,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE;gBACV,uDAAuD;gBACvD,iDAAiD;aAClD;YACD,eAAe,EAAE,yCAAyC;YAC1D,GAAG,EAAE,EAAE;YACP,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE;YAChC,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE;gBACR,SAAS,EAAE,uCAAuC;gBAClD,MAAM,EAAE,QAAQ;aACjB;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAErC,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1F,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,qBAAqB,CAAC,SAAiB,EAAE,OAAe;QAC9D,MAAM,UAAU,GAAG,cAAc,CAAC;QAClC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC;YACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YACtC,MAAM,YAAY,GAAG,gDAAgD,OAAO,kDAAkD,CAAC;YAC/H,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,YAAY,GAAG,eAAe,CAAC;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,UAAU,GAAG,GAAG,UAAU,oCAAoC,OAAO,sCAAsC,YAAY,EAAE,CAAC;QAChI,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC;IAKD,OAAO,CAAC,SAAiB;QACvB,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM;aACnB,MAAM,EAAE;aACR,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aACxC,MAAM,EAAE;aACR,KAAK,EAAE,CAAC;IACb,CAAC;CACF,CAAA;AAzHY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;GACA,gBAAgB,CAyH5B"}
1
+ {"version":3,"file":"xml-signer.service.js","sourceRoot":"","sources":["../../src/signer/xml-signer.service.ts"],"names":[],"mappings":"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"}