sunat-engine-nest 1.0.5 → 1.0.7

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
@@ -196,18 +196,23 @@ export class InvoicesService {
196
196
 
197
197
  ## Certificado digital
198
198
 
199
- El motor acepta el certificado en dos formatos:
199
+ El motor acepta el certificado en tres formatos:
200
200
 
201
201
  ```typescript
202
- // Formato 1: archivo .p12 en base64
202
+ // Formato 1: ruta al archivo .p12 o .pem en disco
203
203
  const credentials: CompanyCredentials = {
204
- certPem: 'MIIKJAIBAzCCCd4GCSqGSI...', // .p12 en base64 (sin headers PEM)
204
+ certPem: '/ruta/al/certificado.p12',
205
205
  };
206
206
 
207
- // Formato 2: certificado PEM + clave privada PEM por separado
207
+ // Formato 2: ruta a cert PEM + ruta a clave privada PEM por separado
208
208
  const credentials: CompanyCredentials = {
209
- certPem: '-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----',
210
- certKey: '-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----',
209
+ certPem: '/ruta/al/cert.pem',
210
+ certKey: '/ruta/al/key.pem',
211
+ };
212
+
213
+ // Formato 3: contenido directo en base64 (.p12) o texto PEM
214
+ const credentials: CompanyCredentials = {
215
+ certPem: 'MIIKJAIBAzCCCd4GCSqGSI...', // .p12 en base64
211
216
  };
212
217
  ```
213
218
 
@@ -238,6 +243,59 @@ interface EngineResponse {
238
243
  | `beta` | e-beta.sunat.gob.pe | gre-test.nubefact.com |
239
244
  | `produccion` | e-factura.sunat.gob.pe | api-cpe.sunat.gob.pe |
240
245
 
246
+ ## Proveedor: SUNAT directo vs OSE
247
+
248
+ Puedes elegir enviar tus comprobantes **directamente a SUNAT** o a través de un **OSE (Operador de Servicios Electrónicos)** autorizado como Nubefact, EFACT, DigiFlow, Bizlinks, entre otros.
249
+
250
+ ```typescript
251
+ // Envío directo a SUNAT (por defecto)
252
+ SunatEngineModule.forRoot({
253
+ provider: 'sunat',
254
+ sunat: { ruc: '...', solUser: '...', solPass: '...', certPem: '...' },
255
+ })
256
+
257
+ // Envío a través de un OSE
258
+ SunatEngineModule.forRoot({
259
+ provider: 'ose',
260
+ sunat: { ruc: '...', certPem: '...' }, // solo se usa para firmar el XML
261
+ ose: {
262
+ url: 'https://api.tuose.com/v1/documents',
263
+ token: 'TU_TOKEN_OSE', // Bearer token
264
+ // o en lugar de token:
265
+ // username: 'usuario',
266
+ // password: 'clave',
267
+ },
268
+ })
269
+ ```
270
+
271
+ Con variables de entorno:
272
+
273
+ ```typescript
274
+ SunatEngineModule.forRootAsync({
275
+ useFactory: (config: ConfigService) => ({
276
+ provider: config.get('PROVIDER'), // 'sunat' | 'ose'
277
+ sunat: {
278
+ ruc: config.get('SUNAT_RUC'),
279
+ solUser: config.get('SUNAT_SOL_USER'),
280
+ solPass: config.get('SUNAT_SOL_PASS'),
281
+ certPem: config.get('SUNAT_CERT_PEM'),
282
+ },
283
+ ose: {
284
+ url: config.get('OSE_URL'),
285
+ token: config.get('OSE_TOKEN'),
286
+ },
287
+ }),
288
+ })
289
+ ```
290
+
291
+ ```env
292
+ PROVIDER=ose
293
+ OSE_URL=https://api.tuose.com/v1/documents
294
+ OSE_TOKEN=tu_token_aqui
295
+ ```
296
+
297
+ > El `OseClient` es genérico y compatible con cualquier OSE que acepte `{ fileName, contentFile }` (ZIP en base64) vía POST con autenticación Bearer o Basic.
298
+
241
299
  ## Soporte y actualizaciones
242
300
 
243
301
  SUNAT actualiza continuamente sus esquemas, validaciones y normativas de facturación electrónica. Este paquete recibe mantenimiento activo para mantenerse alineado con cada cambio oficial, garantizando que tu integración siga funcionando sin interrupciones.
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  export { SunatEngineModule, SUNAT_ENGINE_OPTIONS } from './sunat-engine.module';
2
- export type { SunatEngineOptions, SunatEngineAsyncOptions, SunatEngineGreOptions } from './sunat-engine.module';
2
+ export type { SunatEngineOptions, SunatEngineAsyncOptions, SunatEngineGreOptions, SunatEngineCredentialsOptions, SunatEngineOseOptions } from './sunat-engine.module';
3
3
  export { SunatEngineService } from './sunat-engine.service';
4
4
  export { XmlSignerService } from './signer/xml-signer.service';
5
5
  export { SunatSoapClient } from './soap/sunat-soap.client';
6
6
  export type { SoapSendResult, SunatEndpointType } from './soap/sunat-soap.client';
7
7
  export { SunatGreClient } from './gre/sunat-gre.client';
8
+ export { OseClient } from './ose/ose.client';
9
+ export type { OseClientOptions } from './ose/ose.client';
8
10
  export { CdrParserService } from './cdr/cdr-parser.service';
9
11
  export { DocumentPdfService } from './pdf/document-pdf.service';
10
12
  export type { PdfFormat } from './pdf/document-pdf.service';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildVoidedXml = exports.buildSummaryXml = exports.buildDespatchXml = exports.buildNoteXml = exports.buildInvoiceXml = exports.DocumentPdfService = exports.CdrParserService = exports.SunatGreClient = exports.SunatSoapClient = exports.XmlSignerService = exports.SunatEngineService = exports.SUNAT_ENGINE_OPTIONS = exports.SunatEngineModule = void 0;
3
+ exports.buildVoidedXml = exports.buildSummaryXml = exports.buildDespatchXml = exports.buildNoteXml = exports.buildInvoiceXml = exports.DocumentPdfService = exports.CdrParserService = exports.OseClient = exports.SunatGreClient = 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; } });
@@ -12,6 +12,8 @@ var sunat_soap_client_1 = require("./soap/sunat-soap.client");
12
12
  Object.defineProperty(exports, "SunatSoapClient", { enumerable: true, get: function () { return sunat_soap_client_1.SunatSoapClient; } });
13
13
  var sunat_gre_client_1 = require("./gre/sunat-gre.client");
14
14
  Object.defineProperty(exports, "SunatGreClient", { enumerable: true, get: function () { return sunat_gre_client_1.SunatGreClient; } });
15
+ var ose_client_1 = require("./ose/ose.client");
16
+ Object.defineProperty(exports, "OseClient", { enumerable: true, get: function () { return ose_client_1.OseClient; } });
15
17
  var cdr_parser_service_1 = require("./cdr/cdr-parser.service");
16
18
  Object.defineProperty(exports, "CdrParserService", { enumerable: true, get: function () { return cdr_parser_service_1.CdrParserService; } });
17
19
  var document_pdf_service_1 = require("./pdf/document-pdf.service");
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,2DAAwD;AAA/C,kHAAA,cAAc,OAAA;AACvB,+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"}
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,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"}
@@ -0,0 +1,24 @@
1
+ import { SoapSendResult } from '../soap/sunat-soap.client';
2
+ export interface OseClientOptions {
3
+ url: string;
4
+ token?: string;
5
+ username?: string;
6
+ password?: string;
7
+ }
8
+ export declare class OseClient {
9
+ private readonly logger;
10
+ sendBill(params: {
11
+ fileName: string;
12
+ xmlSigned: string;
13
+ ose: OseClientOptions;
14
+ }): Promise<SoapSendResult>;
15
+ sendSummary(params: {
16
+ fileName: string;
17
+ xmlSigned: string;
18
+ ose: OseClientOptions;
19
+ }): Promise<SoapSendResult>;
20
+ private parseResponse;
21
+ private buildAuth;
22
+ private handleError;
23
+ private createZip;
24
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var OseClient_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.OseClient = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const axios_1 = require("axios");
13
+ const JSZip = require("jszip");
14
+ let OseClient = OseClient_1 = class OseClient {
15
+ constructor() {
16
+ this.logger = new common_1.Logger(OseClient_1.name);
17
+ }
18
+ 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),
25
+ },
26
+ timeout: 60_000,
27
+ });
28
+ return this.parseResponse(response.data);
29
+ }
30
+ catch (err) {
31
+ return this.handleError(err);
32
+ }
33
+ }
34
+ async sendSummary(params) {
35
+ const contentFile = await this.createZip(params.fileName, params.xmlSigned);
36
+ try {
37
+ const response = await axios_1.default.post(params.ose.url, { fileName: params.fileName.replace(/\.zip$/i, ''), contentFile }, {
38
+ headers: {
39
+ 'Content-Type': 'application/json',
40
+ 'Authorization': this.buildAuth(params.ose),
41
+ },
42
+ timeout: 60_000,
43
+ });
44
+ return this.parseResponse(response.data);
45
+ }
46
+ catch (err) {
47
+ return this.handleError(err);
48
+ }
49
+ }
50
+ parseResponse(data) {
51
+ if (!data) {
52
+ return { success: false, error: { code: 'EMPTY_RESPONSE', message: 'El OSE no devolvió respuesta' } };
53
+ }
54
+ const cdrZip = data.cdrZip || data.cdr || data.applicationResponse || data.contentFile || undefined;
55
+ const ticket = data.ticket ?? data.numTicket;
56
+ const codeRaw = data.cdrResponse?.code ?? data.code ?? data.codigoRespuesta;
57
+ const code = codeRaw !== undefined ? String(codeRaw) : undefined;
58
+ const description = data.cdrResponse?.description ?? data.description ?? data.descripcion;
59
+ const success = data.success !== undefined ? Boolean(data.success) : code === '0';
60
+ if (!success) {
61
+ return {
62
+ success: false,
63
+ error: {
64
+ code: code ?? 'OSE_ERROR',
65
+ message: description ?? 'Error devuelto por el OSE',
66
+ },
67
+ };
68
+ }
69
+ return { success: true, cdrZipBase64: cdrZip, ticket };
70
+ }
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
+ handleError(err) {
80
+ 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 } };
85
+ }
86
+ this.logger.error(`Error OSE: ${err.message}`);
87
+ return { success: false, error: { code: 'NETWORK_ERROR', message: err.message } };
88
+ }
89
+ async createZip(fileName, xmlContent) {
90
+ const zip = new JSZip();
91
+ const xmlFileName = fileName.replace(/\.zip$/i, '.xml');
92
+ zip.file(xmlFileName, xmlContent, { compression: 'DEFLATE' });
93
+ const zipBuffer = await zip.generateAsync({ type: 'nodebuffer' });
94
+ return zipBuffer.toString('base64');
95
+ }
96
+ };
97
+ exports.OseClient = OseClient;
98
+ exports.OseClient = OseClient = OseClient_1 = __decorate([
99
+ (0, common_1.Injectable)()
100
+ ], OseClient);
101
+ //# sourceMappingURL=ose.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ose.client.js","sourceRoot":"","sources":["../../src/ose/ose.client.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AACpD,iCAA0C;AAC1C,+BAA+B;AAqBxB,IAAM,SAAS,iBAAf,MAAM,SAAS;IAAf;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,WAAS,CAAC,IAAI,CAAC,CAAC;IA0GvD,CAAC;IAxGC,KAAK,CAAC,QAAQ,CAAC,MAId;QACC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,EACd,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,EACjE;gBACE,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;iBAC5C;gBACD,OAAO,EAAE,MAAM;aAChB,CACF,CAAC;YAEF,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,WAAW,CAAC,GAAiB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAIjB;QACC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,EACd,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,EACjE;gBACE,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;iBAC5C;gBACD,OAAO,EAAE,MAAM;aAChB,CACF,CAAC;YAEF,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,WAAW,CAAC,GAAiB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,IAAS;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,8BAA8B,EAAE,EAAE,CAAC;QACxG,CAAC;QAED,MAAM,MAAM,GAAuB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QACxH,MAAM,MAAM,GAAuB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;QAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC;QAC5E,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,MAAM,WAAW,GAAuB,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;QAC9G,MAAM,OAAO,GAAY,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;QAE3F,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,IAAI,IAAI,WAAW;oBACzB,OAAO,EAAE,WAAW,IAAI,2BAA2B;iBACpD;aACF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IAEO,SAAS,CAAC,GAAqB;QACrC,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtF,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,WAAW,CAAC,GAAe;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAW,CAAC;QACvC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjG,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,WAAW,CAAC,CAAC;YACtG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,UAAkB;QAC1D,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AA3GY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;GACA,SAAS,CA2GrB"}
@@ -17,8 +17,16 @@ export interface SunatEngineCredentialsOptions {
17
17
  certKey?: string;
18
18
  endpointMode?: 'beta' | 'produccion';
19
19
  }
20
+ export interface SunatEngineOseOptions {
21
+ url: string;
22
+ token?: string;
23
+ username?: string;
24
+ password?: string;
25
+ }
20
26
  export interface SunatEngineOptions {
27
+ provider?: 'sunat' | 'ose';
21
28
  sunat?: SunatEngineCredentialsOptions;
29
+ ose?: SunatEngineOseOptions;
22
30
  gre?: SunatEngineGreOptions;
23
31
  }
24
32
  export interface SunatEngineAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
@@ -15,12 +15,14 @@ const sunat_soap_client_1 = require("./soap/sunat-soap.client");
15
15
  const sunat_gre_client_1 = require("./gre/sunat-gre.client");
16
16
  const cdr_parser_service_1 = require("./cdr/cdr-parser.service");
17
17
  const document_pdf_service_1 = require("./pdf/document-pdf.service");
18
+ const ose_client_1 = require("./ose/ose.client");
18
19
  exports.SUNAT_ENGINE_OPTIONS = 'SUNAT_ENGINE_OPTIONS';
19
20
  const ENGINE_PROVIDERS = [
20
21
  sunat_engine_service_1.SunatEngineService,
21
22
  xml_signer_service_1.XmlSignerService,
22
23
  sunat_soap_client_1.SunatSoapClient,
23
24
  sunat_gre_client_1.SunatGreClient,
25
+ ose_client_1.OseClient,
24
26
  cdr_parser_service_1.CdrParserService,
25
27
  document_pdf_service_1.DocumentPdfService,
26
28
  ];
@@ -29,6 +31,7 @@ const ENGINE_EXPORTS = [
29
31
  xml_signer_service_1.XmlSignerService,
30
32
  sunat_soap_client_1.SunatSoapClient,
31
33
  sunat_gre_client_1.SunatGreClient,
34
+ ose_client_1.OseClient,
32
35
  cdr_parser_service_1.CdrParserService,
33
36
  document_pdf_service_1.DocumentPdfService,
34
37
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"sunat-engine.module.js","sourceRoot":"","sources":["../src/sunat-engine.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+E;AAC/E,iEAA4D;AAC5D,oEAA+D;AAC/D,gEAA2D;AAC3D,6DAAwD;AACxD,iEAA4D;AAC5D,qEAAgE;AAkCnD,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAI3D,MAAM,gBAAgB,GAAG;IACvB,yCAAkB;IAClB,qCAAgB;IAChB,mCAAe;IACf,iCAAc;IACd,qCAAgB;IAChB,yCAAkB;CACnB,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,yCAAkB;IAClB,qCAAgB;IAChB,mCAAe;IACf,iCAAc;IACd,qCAAgB;IAChB,yCAAkB;CACnB,CAAC;AAIK,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAc5B,MAAM,CAAC,OAAO,CAAC,UAA8B,EAAE;QAC7C,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,4BAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACpD,GAAG,gBAAgB;aACpB;YACD,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAkBD,MAAM,CAAC,YAAY,CAAC,YAAqC;QACvD,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,EAAE;YACnC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,4BAAoB;oBAC7B,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;iBAClC;gBACD,GAAG,gBAAgB;aACpB;YACD,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;CACF,CAAA;AA1DY,8CAAiB;4BAAjB,iBAAiB;IAF7B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CA0D7B"}
1
+ {"version":3,"file":"sunat-engine.module.js","sourceRoot":"","sources":["../src/sunat-engine.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+E;AAC/E,iEAA4D;AAC5D,oEAA+D;AAC/D,gEAA2D;AAC3D,6DAAwD;AACxD,iEAA4D;AAC5D,qEAAgE;AAChE,iDAA6C;AA2ChC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAI3D,MAAM,gBAAgB,GAAG;IACvB,yCAAkB;IAClB,qCAAgB;IAChB,mCAAe;IACf,iCAAc;IACd,sBAAS;IACT,qCAAgB;IAChB,yCAAkB;CACnB,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,yCAAkB;IAClB,qCAAgB;IAChB,mCAAe;IACf,iCAAc;IACd,sBAAS;IACT,qCAAgB;IAChB,yCAAkB;CACnB,CAAC;AAIK,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAc5B,MAAM,CAAC,OAAO,CAAC,UAA8B,EAAE;QAC7C,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,4BAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACpD,GAAG,gBAAgB;aACpB;YACD,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAkBD,MAAM,CAAC,YAAY,CAAC,YAAqC;QACvD,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,EAAE;YACnC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,4BAAoB;oBAC7B,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;iBAClC;gBACD,GAAG,gBAAgB;aACpB;YACD,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;CACF,CAAA;AA1DY,8CAAiB;4BAAjB,iBAAiB;IAF7B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CA0D7B"}
@@ -2,16 +2,19 @@ import { CompanyCredentials, EngineResponse, InvoicePayload, NotePayload, Despat
2
2
  import { XmlSignerService } from './signer/xml-signer.service';
3
3
  import { SunatSoapClient } from './soap/sunat-soap.client';
4
4
  import { SunatGreClient } from './gre/sunat-gre.client';
5
+ import { OseClient } from './ose/ose.client';
5
6
  import { CdrParserService } from './cdr/cdr-parser.service';
6
7
  import { SunatEngineOptions } from './sunat-engine.module';
7
8
  export declare class SunatEngineService {
8
9
  private readonly signer;
9
10
  private readonly soap;
10
11
  private readonly gre;
12
+ private readonly oseClient;
11
13
  private readonly cdrParser;
12
14
  private readonly options;
13
15
  private readonly logger;
14
- constructor(signer: XmlSignerService, soap: SunatSoapClient, gre: SunatGreClient, cdrParser: CdrParserService, options: SunatEngineOptions);
16
+ constructor(signer: XmlSignerService, soap: SunatSoapClient, gre: SunatGreClient, oseClient: OseClient, cdrParser: CdrParserService, options: SunatEngineOptions);
17
+ private useOse;
15
18
  private resolveCredentials;
16
19
  sendInvoice(payload: InvoicePayload, credentials?: Partial<CompanyCredentials>): Promise<EngineResponse>;
17
20
  sendNote(payload: NotePayload, credentials?: Partial<CompanyCredentials>): Promise<EngineResponse>;
@@ -19,5 +22,6 @@ export declare class SunatEngineService {
19
22
  sendSummary(payload: SummaryPayload, credentials?: Partial<CompanyCredentials>): Promise<EngineResponse>;
20
23
  sendVoided(payload: VoidedPayload, credentials?: Partial<CompanyCredentials>): Promise<EngineResponse>;
21
24
  getTicketStatus(ticket: string, credentials?: Partial<CompanyCredentials>, endpointType?: 'factura' | 'guia'): Promise<EngineResponse>;
25
+ private resolveFileContent;
22
26
  private signDocument;
23
27
  }
@@ -15,6 +15,7 @@ var SunatEngineService_1;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.SunatEngineService = void 0;
17
17
  const common_1 = require("@nestjs/common");
18
+ const fs = require("fs");
18
19
  const invoice_builder_1 = require("./xml/invoice.builder");
19
20
  const note_builder_1 = require("./xml/note.builder");
20
21
  const despatch_builder_1 = require("./xml/despatch.builder");
@@ -23,17 +24,22 @@ const voided_builder_1 = require("./xml/voided.builder");
23
24
  const xml_signer_service_1 = require("./signer/xml-signer.service");
24
25
  const sunat_soap_client_1 = require("./soap/sunat-soap.client");
25
26
  const sunat_gre_client_1 = require("./gre/sunat-gre.client");
27
+ const ose_client_1 = require("./ose/ose.client");
26
28
  const cdr_parser_service_1 = require("./cdr/cdr-parser.service");
27
29
  const sunat_engine_module_1 = require("./sunat-engine.module");
28
30
  let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
29
- constructor(signer, soap, gre, cdrParser, options) {
31
+ constructor(signer, soap, gre, oseClient, cdrParser, options) {
30
32
  this.signer = signer;
31
33
  this.soap = soap;
32
34
  this.gre = gre;
35
+ this.oseClient = oseClient;
33
36
  this.cdrParser = cdrParser;
34
37
  this.options = options;
35
38
  this.logger = new common_1.Logger(SunatEngineService_1.name);
36
39
  }
40
+ useOse() {
41
+ return (this.options.provider ?? 'sunat') === 'ose';
42
+ }
37
43
  resolveCredentials(perCall) {
38
44
  const global = this.options.sunat ?? {};
39
45
  const merged = { ...global, ...perCall };
@@ -47,20 +53,13 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
47
53
  const xmlUnsigned = (0, invoice_builder_1.buildInvoiceXml)(payload);
48
54
  const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
49
55
  const fileName = this.soap.buildZipFileName(creds.ruc, payload.tipoDoc, payload.serie, payload.correlativo);
50
- const result = await this.soap.sendBill({
51
- ruc: creds.ruc,
52
- solUser: creds.solUser,
53
- solPass: creds.solPass,
54
- fileName,
55
- xmlSigned: signedXml,
56
- mode: creds.endpointMode ?? 'beta',
57
- });
56
+ const result = this.useOse()
57
+ ? await this.oseClient.sendBill({ fileName, xmlSigned: signedXml, ose: this.options.ose })
58
+ : await this.soap.sendBill({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
58
59
  if (!result.success) {
59
60
  return { xml: Buffer.from(signedXml).toString('base64'), hash, sunatResponse: { success: false, error: result.error } };
60
61
  }
61
- const cdrResponse = result.cdrZipBase64
62
- ? await this.cdrParser.parse(result.cdrZipBase64)
63
- : undefined;
62
+ const cdrResponse = result.cdrZipBase64 ? await this.cdrParser.parse(result.cdrZipBase64) : undefined;
64
63
  return {
65
64
  xml: Buffer.from(signedXml).toString('base64'),
66
65
  hash,
@@ -76,26 +75,14 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
76
75
  const xmlUnsigned = (0, note_builder_1.buildNoteXml)(payload);
77
76
  const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
78
77
  const fileName = this.soap.buildZipFileName(creds.ruc, payload.tipoDoc, payload.serie, payload.correlativo);
79
- const result = await this.soap.sendBill({
80
- ruc: creds.ruc,
81
- solUser: creds.solUser,
82
- solPass: creds.solPass,
83
- fileName,
84
- xmlSigned: signedXml,
85
- mode: creds.endpointMode ?? 'beta',
86
- });
87
- const cdrResponse = result.cdrZipBase64
88
- ? await this.cdrParser.parse(result.cdrZipBase64)
89
- : undefined;
78
+ const result = this.useOse()
79
+ ? await this.oseClient.sendBill({ fileName, xmlSigned: signedXml, ose: this.options.ose })
80
+ : await this.soap.sendBill({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
81
+ const cdrResponse = result.cdrZipBase64 ? await this.cdrParser.parse(result.cdrZipBase64) : undefined;
90
82
  return {
91
83
  xml: Buffer.from(signedXml).toString('base64'),
92
84
  hash,
93
- sunatResponse: {
94
- success: result.success,
95
- cdrZip: result.cdrZipBase64,
96
- cdrResponse,
97
- error: result.error,
98
- },
85
+ sunatResponse: { success: result.success, cdrZip: result.cdrZipBase64, cdrResponse, error: result.error },
99
86
  };
100
87
  }
101
88
  async sendDespatch(payload, credentials) {
@@ -130,22 +117,13 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
130
117
  const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
131
118
  const fecha = payload.fecResumen.slice(0, 10);
132
119
  const fileName = this.soap.buildSummaryFileName(creds.ruc, 'RC', fecha, payload.correlativo);
133
- const result = await this.soap.sendSummary({
134
- ruc: creds.ruc,
135
- solUser: creds.solUser,
136
- solPass: creds.solPass,
137
- fileName,
138
- xmlSigned: signedXml,
139
- mode: creds.endpointMode ?? 'beta',
140
- });
120
+ const result = this.useOse()
121
+ ? await this.oseClient.sendSummary({ fileName, xmlSigned: signedXml, ose: this.options.ose })
122
+ : await this.soap.sendSummary({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
141
123
  return {
142
124
  xml: Buffer.from(signedXml).toString('base64'),
143
125
  hash,
144
- sunatResponse: {
145
- success: result.success,
146
- ticket: result.ticket,
147
- error: result.error,
148
- },
126
+ sunatResponse: { success: result.success, ticket: result.ticket, error: result.error },
149
127
  };
150
128
  }
151
129
  async sendVoided(payload, credentials) {
@@ -154,14 +132,9 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
154
132
  const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
155
133
  const fecha = payload.fecGeneracion.slice(0, 10);
156
134
  const fileName = this.soap.buildSummaryFileName(creds.ruc, 'RA', fecha, payload.correlativo);
157
- const result = await this.soap.sendSummary({
158
- ruc: creds.ruc,
159
- solUser: creds.solUser,
160
- solPass: creds.solPass,
161
- fileName,
162
- xmlSigned: signedXml,
163
- mode: creds.endpointMode ?? 'beta',
164
- });
135
+ const result = this.useOse()
136
+ ? await this.oseClient.sendSummary({ fileName, xmlSigned: signedXml, ose: this.options.ose })
137
+ : await this.soap.sendSummary({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
165
138
  return {
166
139
  xml: Buffer.from(signedXml).toString('base64'),
167
140
  hash,
@@ -217,9 +190,15 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
217
190
  },
218
191
  };
219
192
  }
193
+ resolveFileContent(value) {
194
+ if (/^\.{0,2}\//.test(value) || /^[A-Za-z]:\\/.test(value)) {
195
+ return fs.readFileSync(value, 'utf8');
196
+ }
197
+ return value;
198
+ }
220
199
  signDocument(xmlUnsigned, credentials) {
221
- let privateKeyPem = credentials.certKey ?? '';
222
- let certPem = credentials.certPem;
200
+ let certPem = this.resolveFileContent(credentials.certPem);
201
+ let privateKeyPem = credentials.certKey ? this.resolveFileContent(credentials.certKey) : '';
223
202
  if (!certPem.includes('-----BEGIN')) {
224
203
  const extracted = this.signer.loadP12(certPem);
225
204
  privateKeyPem = extracted.privateKeyPem;
@@ -239,10 +218,11 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
239
218
  exports.SunatEngineService = SunatEngineService;
240
219
  exports.SunatEngineService = SunatEngineService = SunatEngineService_1 = __decorate([
241
220
  (0, common_1.Injectable)(),
242
- __param(4, (0, common_1.Inject)(sunat_engine_module_1.SUNAT_ENGINE_OPTIONS)),
221
+ __param(5, (0, common_1.Inject)(sunat_engine_module_1.SUNAT_ENGINE_OPTIONS)),
243
222
  __metadata("design:paramtypes", [xml_signer_service_1.XmlSignerService,
244
223
  sunat_soap_client_1.SunatSoapClient,
245
224
  sunat_gre_client_1.SunatGreClient,
225
+ ose_client_1.OseClient,
246
226
  cdr_parser_service_1.CdrParserService, Object])
247
227
  ], SunatEngineService);
248
228
  //# sourceMappingURL=sunat-engine.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sunat-engine.service.js","sourceRoot":"","sources":["../src/sunat-engine.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sunat-engine.service.js","sourceRoot":"","sources":["../src/sunat-engine.service.ts"],"names":[],"mappings":"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"}