sunat-engine-nest 1.0.4 → 1.0.6
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 +93 -14
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/ose/ose.client.d.ts +24 -0
- package/dist/ose/ose.client.js +101 -0
- package/dist/ose/ose.client.js.map +1 -0
- package/dist/sunat-engine.module.d.ts +17 -0
- package/dist/sunat-engine.module.js +3 -0
- package/dist/sunat-engine.module.js.map +1 -1
- package/dist/sunat-engine.service.d.ts +13 -7
- package/dist/sunat-engine.service.js +71 -78
- package/dist/sunat-engine.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
var SunatEngineService_1;
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
exports.SunatEngineService = void 0;
|
|
@@ -20,33 +23,42 @@ const voided_builder_1 = require("./xml/voided.builder");
|
|
|
20
23
|
const xml_signer_service_1 = require("./signer/xml-signer.service");
|
|
21
24
|
const sunat_soap_client_1 = require("./soap/sunat-soap.client");
|
|
22
25
|
const sunat_gre_client_1 = require("./gre/sunat-gre.client");
|
|
26
|
+
const ose_client_1 = require("./ose/ose.client");
|
|
23
27
|
const cdr_parser_service_1 = require("./cdr/cdr-parser.service");
|
|
28
|
+
const sunat_engine_module_1 = require("./sunat-engine.module");
|
|
24
29
|
let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
|
|
25
|
-
constructor(signer, soap, gre, cdrParser) {
|
|
30
|
+
constructor(signer, soap, gre, oseClient, cdrParser, options) {
|
|
26
31
|
this.signer = signer;
|
|
27
32
|
this.soap = soap;
|
|
28
33
|
this.gre = gre;
|
|
34
|
+
this.oseClient = oseClient;
|
|
29
35
|
this.cdrParser = cdrParser;
|
|
36
|
+
this.options = options;
|
|
30
37
|
this.logger = new common_1.Logger(SunatEngineService_1.name);
|
|
31
38
|
}
|
|
39
|
+
useOse() {
|
|
40
|
+
return (this.options.provider ?? 'sunat') === 'ose';
|
|
41
|
+
}
|
|
42
|
+
resolveCredentials(perCall) {
|
|
43
|
+
const global = this.options.sunat ?? {};
|
|
44
|
+
const merged = { ...global, ...perCall };
|
|
45
|
+
if (!merged.ruc || !merged.solUser || !merged.solPass || !merged.certPem) {
|
|
46
|
+
throw new Error('Credenciales incompletas: proporciona ruc, solUser, solPass y certPem en sunat:{} del módulo o en cada llamada');
|
|
47
|
+
}
|
|
48
|
+
return merged;
|
|
49
|
+
}
|
|
32
50
|
async sendInvoice(payload, credentials) {
|
|
51
|
+
const creds = this.resolveCredentials(credentials);
|
|
33
52
|
const xmlUnsigned = (0, invoice_builder_1.buildInvoiceXml)(payload);
|
|
34
|
-
const { signedXml, hash } = this.signDocument(xmlUnsigned,
|
|
35
|
-
const fileName = this.soap.buildZipFileName(
|
|
36
|
-
const result =
|
|
37
|
-
|
|
38
|
-
solUser:
|
|
39
|
-
solPass: credentials.solPass,
|
|
40
|
-
fileName,
|
|
41
|
-
xmlSigned: signedXml,
|
|
42
|
-
mode: credentials.endpointMode ?? 'beta',
|
|
43
|
-
});
|
|
53
|
+
const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
|
|
54
|
+
const fileName = this.soap.buildZipFileName(creds.ruc, payload.tipoDoc, payload.serie, payload.correlativo);
|
|
55
|
+
const result = this.useOse()
|
|
56
|
+
? await this.oseClient.sendBill({ fileName, xmlSigned: signedXml, ose: this.options.ose })
|
|
57
|
+
: await this.soap.sendBill({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
|
|
44
58
|
if (!result.success) {
|
|
45
59
|
return { xml: Buffer.from(signedXml).toString('base64'), hash, sunatResponse: { success: false, error: result.error } };
|
|
46
60
|
}
|
|
47
|
-
const cdrResponse = result.cdrZipBase64
|
|
48
|
-
? await this.cdrParser.parse(result.cdrZipBase64)
|
|
49
|
-
: undefined;
|
|
61
|
+
const cdrResponse = result.cdrZipBase64 ? await this.cdrParser.parse(result.cdrZipBase64) : undefined;
|
|
50
62
|
return {
|
|
51
63
|
xml: Buffer.from(signedXml).toString('base64'),
|
|
52
64
|
hash,
|
|
@@ -58,45 +70,35 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
|
|
|
58
70
|
};
|
|
59
71
|
}
|
|
60
72
|
async sendNote(payload, credentials) {
|
|
73
|
+
const creds = this.resolveCredentials(credentials);
|
|
61
74
|
const xmlUnsigned = (0, note_builder_1.buildNoteXml)(payload);
|
|
62
|
-
const { signedXml, hash } = this.signDocument(xmlUnsigned,
|
|
63
|
-
const fileName = this.soap.buildZipFileName(
|
|
64
|
-
const result =
|
|
65
|
-
|
|
66
|
-
solUser:
|
|
67
|
-
|
|
68
|
-
fileName,
|
|
69
|
-
xmlSigned: signedXml,
|
|
70
|
-
mode: credentials.endpointMode ?? 'beta',
|
|
71
|
-
});
|
|
72
|
-
const cdrResponse = result.cdrZipBase64
|
|
73
|
-
? await this.cdrParser.parse(result.cdrZipBase64)
|
|
74
|
-
: undefined;
|
|
75
|
+
const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
|
|
76
|
+
const fileName = this.soap.buildZipFileName(creds.ruc, payload.tipoDoc, payload.serie, payload.correlativo);
|
|
77
|
+
const result = this.useOse()
|
|
78
|
+
? await this.oseClient.sendBill({ fileName, xmlSigned: signedXml, ose: this.options.ose })
|
|
79
|
+
: await this.soap.sendBill({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
|
|
80
|
+
const cdrResponse = result.cdrZipBase64 ? await this.cdrParser.parse(result.cdrZipBase64) : undefined;
|
|
75
81
|
return {
|
|
76
82
|
xml: Buffer.from(signedXml).toString('base64'),
|
|
77
83
|
hash,
|
|
78
|
-
sunatResponse: {
|
|
79
|
-
success: result.success,
|
|
80
|
-
cdrZip: result.cdrZipBase64,
|
|
81
|
-
cdrResponse,
|
|
82
|
-
error: result.error,
|
|
83
|
-
},
|
|
84
|
+
sunatResponse: { success: result.success, cdrZip: result.cdrZipBase64, cdrResponse, error: result.error },
|
|
84
85
|
};
|
|
85
86
|
}
|
|
86
87
|
async sendDespatch(payload, credentials) {
|
|
88
|
+
const creds = this.resolveCredentials(credentials);
|
|
87
89
|
const xmlUnsigned = (0, despatch_builder_1.buildDespatchXml)(payload);
|
|
88
|
-
const { signedXml, hash } = this.signDocument(xmlUnsigned,
|
|
90
|
+
const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
|
|
89
91
|
const result = await this.gre.sendGRE({
|
|
90
|
-
ruc:
|
|
91
|
-
solUser:
|
|
92
|
-
solPass:
|
|
92
|
+
ruc: creds.ruc,
|
|
93
|
+
solUser: creds.solUser,
|
|
94
|
+
solPass: creds.solPass,
|
|
93
95
|
serie: payload.serie,
|
|
94
96
|
correlativo: payload.correlativo,
|
|
95
97
|
signedXml,
|
|
96
|
-
clientId:
|
|
97
|
-
clientSecret:
|
|
98
|
-
authUrl:
|
|
99
|
-
apiUrl:
|
|
98
|
+
clientId: creds.greClientId,
|
|
99
|
+
clientSecret: creds.greClientSecret,
|
|
100
|
+
authUrl: creds.greAuthUrl,
|
|
101
|
+
apiUrl: creds.greApiUrl,
|
|
100
102
|
});
|
|
101
103
|
return {
|
|
102
104
|
xml: Buffer.from(signedXml).toString('base64'),
|
|
@@ -109,41 +111,29 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
|
|
|
109
111
|
};
|
|
110
112
|
}
|
|
111
113
|
async sendSummary(payload, credentials) {
|
|
114
|
+
const creds = this.resolveCredentials(credentials);
|
|
112
115
|
const xmlUnsigned = (0, summary_builder_1.buildSummaryXml)(payload);
|
|
113
|
-
const { signedXml, hash } = this.signDocument(xmlUnsigned,
|
|
116
|
+
const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
|
|
114
117
|
const fecha = payload.fecResumen.slice(0, 10);
|
|
115
|
-
const fileName = this.soap.buildSummaryFileName(
|
|
116
|
-
const result =
|
|
117
|
-
|
|
118
|
-
solUser:
|
|
119
|
-
solPass: credentials.solPass,
|
|
120
|
-
fileName,
|
|
121
|
-
xmlSigned: signedXml,
|
|
122
|
-
mode: credentials.endpointMode ?? 'beta',
|
|
123
|
-
});
|
|
118
|
+
const fileName = this.soap.buildSummaryFileName(creds.ruc, 'RC', fecha, payload.correlativo);
|
|
119
|
+
const result = this.useOse()
|
|
120
|
+
? await this.oseClient.sendSummary({ fileName, xmlSigned: signedXml, ose: this.options.ose })
|
|
121
|
+
: await this.soap.sendSummary({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
|
|
124
122
|
return {
|
|
125
123
|
xml: Buffer.from(signedXml).toString('base64'),
|
|
126
124
|
hash,
|
|
127
|
-
sunatResponse: {
|
|
128
|
-
success: result.success,
|
|
129
|
-
ticket: result.ticket,
|
|
130
|
-
error: result.error,
|
|
131
|
-
},
|
|
125
|
+
sunatResponse: { success: result.success, ticket: result.ticket, error: result.error },
|
|
132
126
|
};
|
|
133
127
|
}
|
|
134
128
|
async sendVoided(payload, credentials) {
|
|
129
|
+
const creds = this.resolveCredentials(credentials);
|
|
135
130
|
const xmlUnsigned = (0, voided_builder_1.buildVoidedXml)(payload);
|
|
136
|
-
const { signedXml, hash } = this.signDocument(xmlUnsigned,
|
|
131
|
+
const { signedXml, hash } = this.signDocument(xmlUnsigned, creds);
|
|
137
132
|
const fecha = payload.fecGeneracion.slice(0, 10);
|
|
138
|
-
const fileName = this.soap.buildSummaryFileName(
|
|
139
|
-
const result =
|
|
140
|
-
|
|
141
|
-
solUser:
|
|
142
|
-
solPass: credentials.solPass,
|
|
143
|
-
fileName,
|
|
144
|
-
xmlSigned: signedXml,
|
|
145
|
-
mode: credentials.endpointMode ?? 'beta',
|
|
146
|
-
});
|
|
133
|
+
const fileName = this.soap.buildSummaryFileName(creds.ruc, 'RA', fecha, payload.correlativo);
|
|
134
|
+
const result = this.useOse()
|
|
135
|
+
? await this.oseClient.sendSummary({ fileName, xmlSigned: signedXml, ose: this.options.ose })
|
|
136
|
+
: await this.soap.sendSummary({ ruc: creds.ruc, solUser: creds.solUser, solPass: creds.solPass, fileName, xmlSigned: signedXml, mode: creds.endpointMode ?? 'beta' });
|
|
147
137
|
return {
|
|
148
138
|
xml: Buffer.from(signedXml).toString('base64'),
|
|
149
139
|
hash,
|
|
@@ -155,16 +145,17 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
|
|
|
155
145
|
};
|
|
156
146
|
}
|
|
157
147
|
async getTicketStatus(ticket, credentials, endpointType = 'factura') {
|
|
148
|
+
const creds = this.resolveCredentials(credentials);
|
|
158
149
|
if (endpointType === 'guia') {
|
|
159
150
|
const result = await this.gre.getStatus({
|
|
160
|
-
ruc:
|
|
161
|
-
solUser:
|
|
162
|
-
solPass:
|
|
151
|
+
ruc: creds.ruc,
|
|
152
|
+
solUser: creds.solUser,
|
|
153
|
+
solPass: creds.solPass,
|
|
163
154
|
ticket,
|
|
164
|
-
clientId:
|
|
165
|
-
clientSecret:
|
|
166
|
-
authUrl:
|
|
167
|
-
apiUrl:
|
|
155
|
+
clientId: creds.greClientId,
|
|
156
|
+
clientSecret: creds.greClientSecret,
|
|
157
|
+
authUrl: creds.greAuthUrl,
|
|
158
|
+
apiUrl: creds.greApiUrl,
|
|
168
159
|
});
|
|
169
160
|
const cdrResponse = result.cdrZipBase64
|
|
170
161
|
? await this.cdrParser.parse(result.cdrZipBase64)
|
|
@@ -179,11 +170,11 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
|
|
|
179
170
|
};
|
|
180
171
|
}
|
|
181
172
|
const result = await this.soap.getStatus({
|
|
182
|
-
ruc:
|
|
183
|
-
solUser:
|
|
184
|
-
solPass:
|
|
173
|
+
ruc: creds.ruc,
|
|
174
|
+
solUser: creds.solUser,
|
|
175
|
+
solPass: creds.solPass,
|
|
185
176
|
ticket,
|
|
186
|
-
mode:
|
|
177
|
+
mode: creds.endpointMode ?? 'beta',
|
|
187
178
|
endpointType,
|
|
188
179
|
});
|
|
189
180
|
const cdrResponse = result.cdrZipBase64
|
|
@@ -220,9 +211,11 @@ let SunatEngineService = SunatEngineService_1 = class SunatEngineService {
|
|
|
220
211
|
exports.SunatEngineService = SunatEngineService;
|
|
221
212
|
exports.SunatEngineService = SunatEngineService = SunatEngineService_1 = __decorate([
|
|
222
213
|
(0, common_1.Injectable)(),
|
|
214
|
+
__param(5, (0, common_1.Inject)(sunat_engine_module_1.SUNAT_ENGINE_OPTIONS)),
|
|
223
215
|
__metadata("design:paramtypes", [xml_signer_service_1.XmlSignerService,
|
|
224
216
|
sunat_soap_client_1.SunatSoapClient,
|
|
225
217
|
sunat_gre_client_1.SunatGreClient,
|
|
226
|
-
|
|
218
|
+
ose_client_1.OseClient,
|
|
219
|
+
cdr_parser_service_1.CdrParserService, Object])
|
|
227
220
|
], SunatEngineService);
|
|
228
221
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"sunat-engine.service.js","sourceRoot":"","sources":["../src/sunat-engine.service.ts"],"names":[],"mappings":"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"}
|