@facturacr/atv-sdk 0.0.1-beta → 0.0.3-beta
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/.env.example +7 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/.github/pull_request_template.md +7 -0
- package/.github/workflows/ci.yml +3 -3
- package/CODE_OF_CONDUCT.md +128 -0
- package/LICENSE +21 -0
- package/README.md +8 -1
- package/__tests__/stubs/dummyKeys/README.md +19 -0
- package/__tests__/stubs/frontendRequest.stub.ts +3 -2
- package/__tests__/stubs/token.stub.ts +18 -0
- package/__tests__/tests/electronicBill.test.ts +28 -0
- package/__tests__/tests/lib/getClave.test.ts +11 -0
- package/__tests__/tests/services/getToken.test.ts +15 -0
- package/atv-structures/4.3/FacturaElectronicaExportacion_V4.3.xsd.xml +1747 -0
- package/atv-structures/4.3/FacturaElectronica_V4.3.xsd.xml +1781 -0
- package/dist/__tests__/stubs/frontendRequest.stub.js +3 -2
- package/dist/__tests__/stubs/frontendRequest.stub.js.map +1 -1
- package/dist/__tests__/stubs/token.stub.d.ts +17 -0
- package/dist/__tests__/stubs/token.stub.js +21 -0
- package/dist/__tests__/stubs/token.stub.js.map +1 -0
- package/dist/__tests__/tests/electronicBill.test.d.ts +1 -0
- package/dist/__tests__/tests/electronicBill.test.js +38 -0
- package/dist/__tests__/tests/electronicBill.test.js.map +1 -0
- package/dist/__tests__/tests/getClave.test.d.ts +1 -0
- package/dist/__tests__/tests/getClave.test.js +15 -0
- package/dist/__tests__/tests/getClave.test.js.map +1 -0
- package/dist/__tests__/tests/getToken.test.d.ts +0 -0
- package/dist/__tests__/tests/getToken.test.js +28 -0
- package/dist/__tests__/tests/getToken.test.js.map +1 -0
- package/dist/__tests__/tests/lib/getClave.test.d.ts +1 -0
- package/dist/__tests__/tests/lib/getClave.test.js +15 -0
- package/dist/__tests__/tests/lib/getClave.test.js.map +1 -0
- package/dist/__tests__/tests/services/getToken.test.d.ts +1 -0
- package/dist/__tests__/tests/services/getToken.test.js +27 -0
- package/dist/__tests__/tests/services/getToken.test.js.map +1 -0
- package/dist/examples/confirmXML.js +3 -3
- package/dist/examples/confirmXML.js.map +1 -1
- package/dist/examples/consultXML.js +2 -2
- package/dist/examples/consultXML.js.map +1 -1
- package/dist/examples/createAndSend.js +6 -5
- package/dist/examples/createAndSend.js.map +1 -1
- package/dist/examples/createCreditNote.js +2 -2
- package/dist/examples/createCreditNote.js.map +1 -1
- package/dist/examples/createDebitNote.js +2 -2
- package/dist/examples/createDebitNote.js.map +1 -1
- package/dist/examples/genBasicXML.js +4 -4
- package/dist/examples/genBasicXML.js.map +1 -1
- package/dist/examples/getClave.js +1 -1
- package/dist/examples/getClave.js.map +1 -1
- package/dist/examples/getToken.js +1 -1
- package/dist/examples/getToken.js.map +1 -1
- package/dist/src/confirmXML.js +10 -10
- package/dist/src/confirmXML.js.map +1 -1
- package/dist/src/creditNote.d.ts +2 -2
- package/dist/src/creditNote.js +14 -14
- package/dist/src/creditNote.js.map +1 -1
- package/dist/src/data/codigoMoneda.d.ts +1 -0
- package/dist/src/data/codigoMoneda.js +184 -0
- package/dist/src/data/codigoMoneda.js.map +1 -0
- package/dist/src/data/exoneracion.d.ts +1 -0
- package/dist/src/data/exoneracion.js +15 -0
- package/dist/src/data/exoneracion.js.map +1 -0
- package/dist/src/data/impuestos.d.ts +2 -0
- package/dist/src/data/impuestos.js +25 -1
- package/dist/src/data/impuestos.js.map +1 -1
- package/dist/src/data/tipoCedula.d.ts +1 -0
- package/dist/src/data/tipoCedula.js +8 -1
- package/dist/src/data/tipoCedula.js.map +1 -1
- package/dist/src/data/unidadesMedida.d.ts +1 -0
- package/dist/src/data/unidadesMedida.js +99 -1
- package/dist/src/data/unidadesMedida.js.map +1 -1
- package/dist/src/debitNote.d.ts +2 -2
- package/dist/src/debitNote.js +14 -14
- package/dist/src/debitNote.js.map +1 -1
- package/dist/src/electronicBill.d.ts +1 -1
- package/dist/src/electronicBill.js +15 -9
- package/dist/src/electronicBill.js.map +1 -1
- package/dist/src/helpers/comprobantes.d.ts +2 -2
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/genClave/index.d.ts +2 -2
- package/dist/src/lib/genClave/index.js +1 -1
- package/dist/src/lib/genClave/index.js.map +1 -1
- package/dist/src/lib/genJSON/confirmXML.d.ts +1 -1
- package/dist/src/lib/genJSON/confirmXML.js +1 -1
- package/dist/src/lib/genJSON/confirmXML.js.map +1 -1
- package/dist/src/lib/genJSON/index.d.ts +1 -1
- package/dist/src/lib/genJSON/index.js +18 -16
- package/dist/src/lib/genJSON/index.js.map +1 -1
- package/dist/src/lib/genXML/index.js +6 -12
- package/dist/src/lib/genXML/index.js.map +1 -1
- package/dist/src/lib/genXML/sigXML/index.js +3 -3
- package/dist/src/lib/genXML/sigXML/index.js.map +1 -1
- package/dist/src/lib/genXML/xmlConfig.d.ts +8 -1
- package/dist/src/lib/genXML/xmlConfig.js +5 -1
- package/dist/src/lib/genXML/xmlConfig.js.map +1 -1
- package/dist/src/services/getToken/index.d.ts +1 -1
- package/dist/src/services/send/index.js +4 -3
- package/dist/src/services/send/index.js.map +1 -1
- package/dist/src/types/xml/notaDeCredito.d.ts +1 -1
- package/dist/src/types/xml/notaDeDebito.d.ts +1 -1
- package/examples/README.md +6 -1
- package/examples/createAndSend.ts +7 -8
- package/examples/getToken.ts +6 -9
- package/jest.config.js +20 -3
- package/package.json +10 -11
- package/src/ATV.ts +28 -0
- package/src/confirmXML.ts +4 -4
- package/src/creditNote.ts +6 -6
- package/src/data/codigoMoneda.ts +180 -0
- package/src/data/exoneracion.ts +11 -0
- package/src/data/impuestos.ts +26 -0
- package/src/data/tipoCedula.ts +8 -0
- package/src/data/unidadesMedida.ts +99 -0
- package/src/debitNote.ts +6 -6
- package/src/electronicBill.ts +14 -6
- package/src/helpers/comprobantes.ts +2 -2
- package/src/index.ts +2 -0
- package/src/lib/genClave/index.ts +3 -3
- package/src/lib/genJSON/confirmXML.ts +2 -2
- package/src/lib/genJSON/index.ts +20 -18
- package/src/lib/genXML/index.ts +3 -9
- package/src/lib/genXML/sigXML/genKeysAndCert.ts +1 -5
- package/src/lib/genXML/sigXML/index.ts +1 -1
- package/src/lib/genXML/xmlConfig.ts +14 -1
- package/src/services/getToken/GetToken.ts +54 -0
- package/src/services/getToken/__tests__/GetToken.test.ts +82 -0
- package/src/services/getToken/index.ts +1 -1
- package/src/services/getToken/types.ts +30 -0
- package/src/services/send/index.ts +2 -2
- package/src/types/facturaInterfaces.d.ts +18 -1
- package/src/types/globalInterfaces.d.ts +2 -1
- package/src/types/xml/notaDeCredito.ts +1 -1
- package/src/types/xml/notaDeDebito.ts +1 -1
- package/tools/strToClave.ts +1 -1
- package/tools/xsdToJsonSchema.ts +108 -0
- package/tsconfig.json +1 -1
- package/dist/src/types/facturaInterfaces.d.ts +0 -88
- package/dist/src/types/facturaInterfaces.js +0 -7
- package/dist/src/types/facturaInterfaces.js.map +0 -1
- /package/__tests__/{unit → tests}/getClave.test.ts +0 -0
- /package/__tests__/{unit → tests}/getToken.test.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/genClave/index.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/genClave/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFinalMessage = exports.getMsjObj = void 0;
|
|
4
|
-
const tipoDocumento_1 = require("
|
|
4
|
+
const tipoDocumento_1 = require("@src/data/tipoDocumento");
|
|
5
5
|
function getMsjObj(opts) {
|
|
6
6
|
const { fullInvoice, tipoDocKey } = opts;
|
|
7
7
|
const emisor = fullInvoice.Emisor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirmXML.js","sourceRoot":"","sources":["../../../../src/lib/genJSON/confirmXML.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"confirmXML.js","sourceRoot":"","sources":["../../../../src/lib/genJSON/confirmXML.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AAEvD,SAAgB,SAAS,CAAC,IAIvB;IACD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IACxC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;IACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;IACrC,MAAM,GAAG,GAAG,6BAAa,CAAC,UAAU,CAAC,CAAC,eAAe,CAAA;IACrD,OAAO;QACL,eAAe,EAAE;YACf,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,kBAAkB,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM;YAChD,eAAe,EAAE,WAAW,CAAC,YAAY;YACzC,OAAO,EAAE,GAAG;YACZ,cAAc,EAAE,EAAE;YAClB,kBAAkB,EAAE,WAAW,CAAC,cAAc,CAAC,aAAa;YAC5D,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,WAAW,CAAC,cAAc,CAAC,UAAU;YACjE,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,UAAU;YACnD,oBAAoB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM;YACpD,yBAAyB,EAAE,IAAI,CAAC,WAAW;SAC5C;KACF,CAAA;AACH,CAAC;AAzBD,8BAyBC;AAED,SAAgB,eAAe,CAAC,WAAgB,EAAE,mBAA2B,EAAE,SAAc;IAC3F,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;IACvB,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;QACzB,MAAM,EAAE;YACN,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI;YAC5D,oBAAoB,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM;SACjE;QACD,QAAQ,EAAE;YACR,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI;YAC1D,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM;SAC/D;QACD,mBAAmB,EAAE,mBAAmB;QACxC,cAAc,EAAE,SAAS;KAC1B,CAAA;AACH,CAAC;AAhBD,0CAgBC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ClientPayload } from '
|
|
1
|
+
import { ClientPayload } from '@src/types/globalInterfaces';
|
|
2
2
|
declare const _default: (frontEndRequest: ClientPayload, date: any, clave: string, consecutivo: string, options: any) => Promise<any>;
|
|
3
3
|
export default _default;
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const genXML_1 = require("
|
|
12
|
+
const genXML_1 = require("@src/lib/genXML");
|
|
13
13
|
// Default XML Values
|
|
14
14
|
const DEFAULT_VALUES = {
|
|
15
15
|
key: 0,
|
|
@@ -109,23 +109,25 @@ exports.default = (frontEndRequest, date, clave, consecutivo, options) => __awai
|
|
|
109
109
|
const receiver = getReceiver(frontEndRequest);
|
|
110
110
|
const sender = getSender(frontEndRequest);
|
|
111
111
|
const lines = setLinesDefaults(frontEndRequest.LineasDetalle);
|
|
112
|
+
const key = frontEndRequest.facturaElectronicaType || 'FacturaElectronica';
|
|
113
|
+
const body = {
|
|
114
|
+
Clave: clave,
|
|
115
|
+
CodigoActividad: frontEndRequest.actividad.padStart(6, '0'),
|
|
116
|
+
NumeroConsecutivo: consecutivo,
|
|
117
|
+
FechaEmision: date,
|
|
118
|
+
Emisor: sender,
|
|
119
|
+
Receptor: receiver,
|
|
120
|
+
CondicionVenta: '01',
|
|
121
|
+
MedioPago: '01',
|
|
122
|
+
DetalleServicio: {
|
|
123
|
+
LineaDetalle: lines
|
|
124
|
+
},
|
|
125
|
+
ResumenFactura: getBillResum(lines)
|
|
126
|
+
};
|
|
112
127
|
const factura = {
|
|
113
|
-
|
|
114
|
-
Clave: clave,
|
|
115
|
-
CodigoActividad: frontEndRequest.actividad.padStart(6, '0'),
|
|
116
|
-
NumeroConsecutivo: consecutivo,
|
|
117
|
-
FechaEmision: date,
|
|
118
|
-
Emisor: sender,
|
|
119
|
-
Receptor: receiver,
|
|
120
|
-
CondicionVenta: '01',
|
|
121
|
-
MedioPago: '01',
|
|
122
|
-
DetalleServicio: {
|
|
123
|
-
LineaDetalle: lines
|
|
124
|
-
},
|
|
125
|
-
ResumenFactura: getBillResum(lines)
|
|
126
|
-
}
|
|
128
|
+
[key]: body
|
|
127
129
|
};
|
|
128
|
-
const XML = yield genXML_1.genXML(
|
|
130
|
+
const XML = yield (0, genXML_1.genXML)(key, factura, options);
|
|
129
131
|
return XML;
|
|
130
132
|
});
|
|
131
133
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/genJSON/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/genJSON/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.xmlToJson = exports.genXML = exports.objToXML = void 0;
|
|
16
16
|
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
17
|
-
const xmlConfig_1 = require("
|
|
18
|
-
const index_1 = __importDefault(require("
|
|
19
|
-
const encodeXML = (xmlStr) => {
|
|
20
|
-
const buffer = Buffer.from(xmlStr);
|
|
21
|
-
return buffer.toString('base64');
|
|
22
|
-
};
|
|
17
|
+
const xmlConfig_1 = require("@src/lib/genXML/xmlConfig");
|
|
18
|
+
const index_1 = __importDefault(require("@src/lib/genXML/sigXML/index"));
|
|
23
19
|
const objToXML = (xmlStructure, obj) => {
|
|
24
20
|
const parser = new fast_xml_parser_1.j2xParser(xmlConfig_1.defaultOptions); // eslint-disable-line new-cap
|
|
25
21
|
const mainKey = Object.keys(obj)[0];
|
|
@@ -30,19 +26,17 @@ exports.objToXML = objToXML;
|
|
|
30
26
|
// tipoDocKey = xmlStructure
|
|
31
27
|
function genXML(xmlStructure, obj, options) {
|
|
32
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
const xml = exports.objToXML(xmlStructure, obj);
|
|
29
|
+
const xml = (0, exports.objToXML)(xmlStructure, obj);
|
|
34
30
|
if (!options)
|
|
35
31
|
return xml;
|
|
36
|
-
const signedXML = yield index_1.default(xml, options.buffer, options.password);
|
|
37
|
-
|
|
38
|
-
return signedXML;
|
|
39
|
-
return encodeXML(signedXML);
|
|
32
|
+
const signedXML = yield (0, index_1.default)(xml, options.buffer, options.password);
|
|
33
|
+
return signedXML;
|
|
40
34
|
});
|
|
41
35
|
}
|
|
42
36
|
exports.genXML = genXML;
|
|
43
37
|
const xmlToJson = (xml) => {
|
|
44
38
|
try {
|
|
45
|
-
const json = fast_xml_parser_1.parse(xml, {
|
|
39
|
+
const json = (0, fast_xml_parser_1.parse)(xml, {
|
|
46
40
|
ignoreAttributes: false,
|
|
47
41
|
ignoreNameSpace: false,
|
|
48
42
|
parseNodeValue: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/genXML/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/genXML/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAAkD;AAClD,yDAAuF;AACvF,yEAAiD;AAE1C,MAAM,QAAQ,GAAG,CAAC,YAAoB,EAAE,GAAW,EAAU,EAAE;IACpE,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC,0BAAc,CAAC,CAAA,CAAC,8BAA8B;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,0BAAc,CAAC,YAAY,CAAC,CAAA;IAChD,OAAO,uBAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC,CAAA;AALY,QAAA,QAAQ,YAKpB;AAED,4BAA4B;AAC5B,SAAsB,MAAM,CAAC,YAAoB,EAAE,GAAW,EAAE,OAI7D;;QACD,MAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAA;QACxB,MAAM,SAAS,GAAG,MAAM,IAAA,eAAM,EAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QACrE,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AATD,wBASC;AAEM,MAAM,SAAS,GAAG,CAAC,GAAW,EAAO,EAAE;IAC5C,IAAI;QACF,MAAM,IAAI,GAAG,IAAA,uBAAK,EAAC,GAAG,EAAE;YACtB,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,kBAAkB,CAAA;KAC/B;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAXY,QAAA,SAAS,aAWrB"}
|
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const xadesjs_1 = require("xadesjs");
|
|
13
13
|
const webcrypto_1 = require("@peculiar/webcrypto");
|
|
14
|
-
const genKeysAndCert_1 = require("
|
|
14
|
+
const genKeysAndCert_1 = require("@src/lib/genXML/sigXML/genKeysAndCert");
|
|
15
15
|
const xmldom_alpha_1 = require("xmldom-alpha");
|
|
16
16
|
function addSigToXML(xml, signature) {
|
|
17
17
|
xml.documentElement.appendChild(signature.GetXml());
|
|
@@ -69,13 +69,13 @@ function signXML(xmlStr, p12, p12Password) {
|
|
|
69
69
|
xadesjs_1.Application.setEngine('OpenSSL', crypto);
|
|
70
70
|
const xadesXml = new xadesjs_1.SignedXml();
|
|
71
71
|
const algorithm = getAlgorithm();
|
|
72
|
-
const result = genKeysAndCert_1.genKeysAndCert(crypto, {
|
|
72
|
+
const result = (0, genKeysAndCert_1.genKeysAndCert)(crypto, {
|
|
73
73
|
algorithm,
|
|
74
74
|
keyStr: p12,
|
|
75
75
|
password: p12Password
|
|
76
76
|
});
|
|
77
77
|
const x509 = result.cert.certPem;
|
|
78
|
-
const xml = xadesjs_1.Parse(xmlStr);
|
|
78
|
+
const xml = (0, xadesjs_1.Parse)(xmlStr);
|
|
79
79
|
const key = yield result.privateKey;
|
|
80
80
|
const publicKey = yield result.publicKey;
|
|
81
81
|
const signature = yield xadesXml.Sign(algorithm, key, xml, getOptions(publicKey, x509, referenceId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/genXML/sigXML/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qCAAqE;AACrE,mDAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/genXML/sigXML/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,14 @@ export declare const defaultOptions: {
|
|
|
3
3
|
attrNodeName: string;
|
|
4
4
|
};
|
|
5
5
|
export declare const xmlExtructures: {
|
|
6
|
-
|
|
6
|
+
FacturaElectronica: {
|
|
7
|
+
'xsi:schemaLocation': string;
|
|
8
|
+
'xmlns:ds': string;
|
|
9
|
+
'xmlns:xsd': string;
|
|
10
|
+
'xmlns:xsi': string;
|
|
11
|
+
xmlns: string;
|
|
12
|
+
};
|
|
13
|
+
FacturaElectronicaExportacion: {
|
|
7
14
|
'xsi:schemaLocation': string;
|
|
8
15
|
'xmlns:ds': string;
|
|
9
16
|
'xmlns:xsd': string;
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.xmlExtructures = exports.defaultOptions = exports.declaration = void 0;
|
|
4
4
|
const FE_XML_SCHEMA_NS = 'https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.3/facturaElectronica';
|
|
5
5
|
const FE_XML_SCHEMA_XSI = 'https://www.hacienda.go.cr/ATV/ComprobanteElectronico/docs/esquemas/2016/v4.3/FacturaElectronica_V4.3.xsd';
|
|
6
|
+
const FEE_XML_SCHEMA_NS = 'https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.3/facturaElectronicaExportacion';
|
|
7
|
+
const FEE_XML_SCHEMA_XSI = 'https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.3/facturaElectronicaExportacion.xsd';
|
|
6
8
|
const MR_XML_SCHEMA_NS = 'https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.3/mensajeReceptor';
|
|
7
9
|
const NC_XML_SCHEMA_NS = 'https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.3/notaCreditoElectronica';
|
|
8
10
|
const NC_XML_SCHEMA_XSI = 'https://www.hacienda.go.cr/ATV/ComprobanteElectronico/docs/esquemas/2016/v4.3/NotaCreditoElectronica_V4.3.xsd';
|
|
@@ -18,11 +20,13 @@ const COMMON_STRUCTURE = {
|
|
|
18
20
|
'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance'
|
|
19
21
|
};
|
|
20
22
|
const FE_XML_ATTRS = Object.assign(Object.assign({ xmlns: FE_XML_SCHEMA_NS }, COMMON_STRUCTURE), { 'xsi:schemaLocation': `${FE_XML_SCHEMA_NS} ${FE_XML_SCHEMA_XSI}` });
|
|
23
|
+
const FEE_XML_ATTRS = Object.assign(Object.assign({ xmlns: FE_XML_SCHEMA_NS }, COMMON_STRUCTURE), { 'xsi:schemaLocation': `${FEE_XML_SCHEMA_NS} ${FEE_XML_SCHEMA_XSI}` });
|
|
21
24
|
const NC_XML_ATTRS = Object.assign(Object.assign({ xmlns: NC_XML_SCHEMA_NS }, COMMON_STRUCTURE), { 'xsi:schemaLocation': `${NC_XML_SCHEMA_NS} ${NC_XML_SCHEMA_XSI}` });
|
|
22
25
|
const ND_XML_ATTRS = Object.assign(Object.assign({ xmlns: NC_XML_SCHEMA_NS }, COMMON_STRUCTURE), { 'xsi:schemaLocation': `${ND_XML_SCHEMA_NS} ${ND_XML_SCHEMA_XSI}` });
|
|
23
26
|
const MR_XML_ATTRS = Object.assign(Object.assign({ xmlns: MR_XML_SCHEMA_NS }, COMMON_STRUCTURE), { 'xsi:schemaLocation': `${MR_XML_SCHEMA_NS}` });
|
|
24
27
|
exports.xmlExtructures = {
|
|
25
|
-
|
|
28
|
+
FacturaElectronica: FE_XML_ATTRS,
|
|
29
|
+
FacturaElectronicaExportacion: FEE_XML_ATTRS,
|
|
26
30
|
NC: NC_XML_ATTRS,
|
|
27
31
|
ND: ND_XML_ATTRS,
|
|
28
32
|
CCE: MR_XML_ATTRS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmlConfig.js","sourceRoot":"","sources":["../../../../src/lib/genXML/xmlConfig.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG,gFAAgF,CAAA;AACzG,MAAM,iBAAiB,GAAG,2GAA2G,CAAA;
|
|
1
|
+
{"version":3,"file":"xmlConfig.js","sourceRoot":"","sources":["../../../../src/lib/genXML/xmlConfig.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG,gFAAgF,CAAA;AACzG,MAAM,iBAAiB,GAAG,2GAA2G,CAAA;AAErI,MAAM,iBAAiB,GAAG,2FAA2F,CAAA;AACrH,MAAM,kBAAkB,GAAG,+FAA+F,CAAA;AAE1H,MAAM,gBAAgB,GAAG,6EAA6E,CAAA;AAEtG,MAAM,gBAAgB,GAAG,oFAAoF,CAAA;AAC7G,MAAM,iBAAiB,GAAG,+GAA+G,CAAA;AAEzI,MAAM,gBAAgB,GAAG,mFAAmF,CAAA;AAC5G,MAAM,iBAAiB,GAAG,8GAA8G,CAAA;AAE3H,QAAA,WAAW,GAAG,wCAAwC,CAAA;AAEtD,QAAA,cAAc,GAAG;IAC5B,YAAY,EAAE,MAAM;CACrB,CAAA;AAED,MAAM,gBAAgB,GAAG;IACvB,UAAU,EAAE,oCAAoC;IAChD,WAAW,EAAE,kCAAkC;IAC/C,WAAW,EAAE,2CAA2C;CACzD,CAAA;AAED,MAAM,YAAY,iCAChB,KAAK,EAAE,gBAAgB,IACpB,gBAAgB,KACnB,oBAAoB,EAAE,GAAG,gBAAgB,IAAI,iBAAiB,EAAE,GACjE,CAAA;AAED,MAAM,aAAa,iCACjB,KAAK,EAAE,gBAAgB,IACpB,gBAAgB,KACnB,oBAAoB,EAAE,GAAG,iBAAiB,IAAI,kBAAkB,EAAE,GACnE,CAAA;AAED,MAAM,YAAY,iCAChB,KAAK,EAAE,gBAAgB,IACpB,gBAAgB,KACnB,oBAAoB,EAAE,GAAG,gBAAgB,IAAI,iBAAiB,EAAE,GACjE,CAAA;AAED,MAAM,YAAY,iCAChB,KAAK,EAAE,gBAAgB,IACpB,gBAAgB,KACnB,oBAAoB,EAAE,GAAG,gBAAgB,IAAI,iBAAiB,EAAE,GACjE,CAAA;AAED,MAAM,YAAY,iCAChB,KAAK,EAAE,gBAAgB,IACpB,gBAAgB,KACnB,oBAAoB,EAAE,GAAG,gBAAgB,EAAE,GAC5C,CAAA;AAEY,QAAA,cAAc,GAAG;IAC5B,kBAAkB,EAAE,YAAY;IAChC,6BAA6B,EAAE,aAAa;IAC5C,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,YAAY;CAClB,CAAA"}
|
|
@@ -8,9 +8,10 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
8
8
|
const MAIN_DOMAIN = 'https://api.comprobanteselectronicos.go.cr/';
|
|
9
9
|
const RUT = (process.env.IS_STG) ? 'recepcion-sandbox' : 'recepcion';
|
|
10
10
|
const PATH = `${RUT}/v1/recepcion/`;
|
|
11
|
-
const
|
|
11
|
+
const SANBOX_URL = 'https://api-sandbox.comprobanteselectronicos.go.cr/recepcion/v1/recepcion';
|
|
12
|
+
const URL = (process.env.IS_STG) ? SANBOX_URL : MAIN_DOMAIN + PATH;
|
|
12
13
|
function send(token, postOptions) {
|
|
13
|
-
return axios_1.default({
|
|
14
|
+
return (0, axios_1.default)({
|
|
14
15
|
url: URL,
|
|
15
16
|
method: 'post',
|
|
16
17
|
data: postOptions,
|
|
@@ -22,7 +23,7 @@ function send(token, postOptions) {
|
|
|
22
23
|
}
|
|
23
24
|
exports.send = send;
|
|
24
25
|
function sendToCustomURL(token, url) {
|
|
25
|
-
return axios_1.default({
|
|
26
|
+
return (0, axios_1.default)({
|
|
26
27
|
url: url,
|
|
27
28
|
method: 'get',
|
|
28
29
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/send/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEzB,MAAM,WAAW,GAAG,6CAA6C,CAAA;AACjE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAA;AACpE,MAAM,IAAI,GAAG,GAAG,GAAG,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/send/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEzB,MAAM,WAAW,GAAG,6CAA6C,CAAA;AACjE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAA;AACpE,MAAM,IAAI,GAAG,GAAG,GAAG,gBAAgB,CAAA;AACnC,MAAM,UAAU,GAAG,2EAA2E,CAAA;AAC9F,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAA;AAElE,SAAgB,IAAI,CAAC,KAAa,EAAE,WAAgB;IAClD,OAAO,IAAA,eAAK,EAAC;QACX,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP,aAAa,EAAE,SAAS,GAAG,KAAK;YAChC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAA;AACJ,CAAC;AAVD,oBAUC;AAED,SAAgB,eAAe,CAAC,KAAa,EAAE,GAAW;IACxD,OAAO,IAAA,eAAK,EAAC;QACX,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,SAAS,GAAG,KAAK;YAChC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAA;AACJ,CAAC;AATD,0CASC;AAED;;;GAGG"}
|
package/examples/README.md
CHANGED
|
@@ -20,6 +20,11 @@ Para crear una nota de credito
|
|
|
20
20
|
yarn ts-node -r tsconfig-paths/register --require dotenv/config examples/createCreditNote.ts
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
Para obtener un token
|
|
24
|
+
```
|
|
25
|
+
yarn ts-node -r tsconfig-paths/register --require dotenv/config examples/getToken.ts
|
|
26
|
+
```
|
|
27
|
+
|
|
23
28
|
## Testing
|
|
24
29
|
Para probar las funcionalidades se recomienda crear un .env en donde se especifiquen datos de prueba.
|
|
25
30
|
```
|
|
@@ -37,7 +42,7 @@ USERNAME_TEST=USER@stag.comprobanteselectronicos.go.cr
|
|
|
37
42
|
PASSWORD_TEST=PASSWORD_PROVIDED_BY_ATV
|
|
38
43
|
IS_STG="1"
|
|
39
44
|
SOURCE_P12_URI=$PATH/#####.p12
|
|
40
|
-
SOURCE_P12_PASSPORT=
|
|
45
|
+
SOURCE_P12_PASSPORT=1234
|
|
41
46
|
SOURCE_URI_XML_OUTPUT=$PATH/__test__/output/output.xml
|
|
42
47
|
XML_TO_CONFIRM=$PATH/__test__/input/Comprobante_Electronico_####_####.xml
|
|
43
48
|
```
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ClientPayload } from '@src/types/globalInterfaces'
|
|
2
2
|
import requestStub from '@test/stubs/frontendRequest.stub'
|
|
3
|
-
import { eletronicBill, sendToCustomURL
|
|
3
|
+
import { eletronicBill, sendToCustomURL } from '@src/index'
|
|
4
4
|
import fs from 'fs'
|
|
5
|
+
import { ATV } from '@src/ATV'
|
|
5
6
|
|
|
6
7
|
const IS_STG = process.env.IS_STG
|
|
7
8
|
const USERNAME_TEST = process.env.USERNAME_TEST
|
|
@@ -19,7 +20,7 @@ const pem = fs.readFileSync(SOURCE_P12_URI, 'binary')
|
|
|
19
20
|
|
|
20
21
|
const frontEndRequest: ClientPayload = requestStub
|
|
21
22
|
|
|
22
|
-
console.log('requestStub', requestStub.consecutivo)
|
|
23
|
+
console.log('requestStub consecutivo', requestStub.consecutivo)
|
|
23
24
|
|
|
24
25
|
function decodeBase64(encodedStr: string): string {
|
|
25
26
|
const buff = Buffer.from(encodedStr, 'base64')
|
|
@@ -29,7 +30,7 @@ function decodeBase64(encodedStr: string): string {
|
|
|
29
30
|
function getConfimation(token: string, data: any, ms: number): Promise<any> {
|
|
30
31
|
return new Promise((resolve, reject): any => {
|
|
31
32
|
setTimeout(() => {
|
|
32
|
-
const location = data
|
|
33
|
+
const location = data?.headers?.location
|
|
33
34
|
console.log('location', location)
|
|
34
35
|
sendToCustomURL(token, location)
|
|
35
36
|
.then(data => resolve(data))
|
|
@@ -39,14 +40,12 @@ function getConfimation(token: string, data: any, ms: number): Promise<any> {
|
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
async function main(): Promise<void> {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
client_secret: '', // eslint-disable-line
|
|
45
|
-
grant_type: 'password', // eslint-disable-line
|
|
43
|
+
const atv = new ATV({}, 'stg')
|
|
44
|
+
const tokenData = await atv.getToken({
|
|
46
45
|
username: USERNAME_TEST,
|
|
47
46
|
password: PASSWORD_TEST
|
|
48
47
|
})
|
|
49
|
-
const token =
|
|
48
|
+
const token = tokenData.accessToken
|
|
50
49
|
const data = await eletronicBill(token, frontEndRequest, {
|
|
51
50
|
buffer: pem,
|
|
52
51
|
password: SOURCE_P12_PASSPORT
|
package/examples/getToken.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ATV } from '@src/ATV'
|
|
2
2
|
|
|
3
3
|
const IS_STG = process.env.IS_STG
|
|
4
4
|
const USERNAME_TEST = process.env.USERNAME_TEST
|
|
5
5
|
const PASSWORD_TEST = process.env.PASSWORD_TEST
|
|
6
6
|
console.log('process.env.IS_STG', IS_STG)
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
client_secret: '', // eslint-disable-line @typescript-eslint/camelcase
|
|
11
|
-
grant_type: 'password', // eslint-disable-line @typescript-eslint/camelcase
|
|
8
|
+
const atv = new ATV({}, 'stg')
|
|
9
|
+
const tokenData = atv.getToken({
|
|
12
10
|
username: USERNAME_TEST,
|
|
13
11
|
password: PASSWORD_TEST
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
console.log('e', e.response.data)
|
|
12
|
+
})
|
|
13
|
+
tokenData.then((resp) => {
|
|
14
|
+
console.log('accessToken', resp.accessToken)
|
|
18
15
|
})
|
package/jest.config.js
CHANGED
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
testEnvironment: 'node',
|
|
3
3
|
transform: {
|
|
4
|
-
'^.+\\.ts$': 'ts-jest'
|
|
4
|
+
'^.+\\.ts$': 'ts-jest'
|
|
5
5
|
},
|
|
6
|
-
modulePathIgnorePatterns: ['inputs', 'stubs']
|
|
7
|
-
|
|
6
|
+
modulePathIgnorePatterns: ['<rootDir>/dist/', 'inputs', 'stubs'],
|
|
7
|
+
moduleNameMapper: {
|
|
8
|
+
'^@test(.*)$': '<rootDir>/__tests__/$1',
|
|
9
|
+
'^@src(.*)$': '<rootDir>/src/$1'
|
|
10
|
+
},
|
|
11
|
+
coverageThreshold: {
|
|
12
|
+
global: {
|
|
13
|
+
statements: 58,
|
|
14
|
+
branches: 35,
|
|
15
|
+
functions: 58,
|
|
16
|
+
lines: 58
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
restoreMocks: true,
|
|
20
|
+
collectCoverage: true,
|
|
21
|
+
collectCoverageFrom: [
|
|
22
|
+
'src/**/*.{ts,js}'
|
|
23
|
+
]
|
|
24
|
+
}
|
package/package.json
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@facturacr/atv-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3-beta",
|
|
4
4
|
"description": "Librería (SDK) de Javascript/NodeJS para acceder al API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src//index.d.ts",
|
|
7
7
|
"directories": {
|
|
8
8
|
"doc": "doc",
|
|
9
9
|
"example": "examples",
|
|
10
|
-
"test": "
|
|
10
|
+
"test": "__test__"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
|
-
"test
|
|
13
|
+
"test": "npx jest",
|
|
14
14
|
"dev": "dotenv -- nodemon -e ts,graphql -x 'yarn lint & ts-node -r tsconfig-paths/register src/index.ts'",
|
|
15
15
|
"build": "yarn lint & tsc",
|
|
16
|
-
"lint": "eslint --ext .ts, --ignore-path .gitignore ."
|
|
17
|
-
"test": "test"
|
|
16
|
+
"lint": "eslint --ext .ts, --ignore-path .gitignore ."
|
|
18
17
|
},
|
|
19
18
|
"repository": {
|
|
20
19
|
"type": "git",
|
|
@@ -42,19 +41,19 @@
|
|
|
42
41
|
"eslint-plugin-node": "^11.1.0",
|
|
43
42
|
"eslint-plugin-promise": "^4.3.1",
|
|
44
43
|
"eslint-plugin-standard": "^5.0.0",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"tsconfig-paths": "^3.9.0",
|
|
48
|
-
"typescript": "^4.2.4",
|
|
44
|
+
"jest": "^26.6.3",
|
|
45
|
+
"nodemon": "^2.0.19",
|
|
49
46
|
"ts-jest": "^26.5.6",
|
|
47
|
+
"ts-node": "10.9.1",
|
|
50
48
|
"tsc": "^1.20150623.0",
|
|
51
|
-
"
|
|
49
|
+
"tsconfig-paths": "^3.9.0",
|
|
50
|
+
"typescript": "^4.2.4"
|
|
52
51
|
},
|
|
53
52
|
"dependencies": {
|
|
54
53
|
"@peculiar/webcrypto": "^1.1.6",
|
|
55
54
|
"axios": "^0.21.1",
|
|
56
55
|
"fast-xml-parser": "^3.19.0",
|
|
57
|
-
"node-forge": "^
|
|
56
|
+
"node-forge": "^1.3.0",
|
|
58
57
|
"xadesjs": "^2.1.2",
|
|
59
58
|
"xmldom-alpha": "^0.1.28"
|
|
60
59
|
}
|
package/src/ATV.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { GetToken } from './services/getToken/GetToken'
|
|
3
|
+
import { GetTokenDto, GetTokenResponse } from './services/getToken/types'
|
|
4
|
+
|
|
5
|
+
export type Mode = 'prod' | 'stg' | 'custom';
|
|
6
|
+
|
|
7
|
+
export type ATVOptions = {
|
|
8
|
+
defaultOverwrites?: {
|
|
9
|
+
tokenServiceUrl: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type TokenServiceProps = {
|
|
14
|
+
serviceUrl: string;
|
|
15
|
+
clientId: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export class ATV {
|
|
19
|
+
public readonly options: ATVOptions
|
|
20
|
+
constructor(options?: ATVOptions, public readonly mode: Mode = 'prod') {
|
|
21
|
+
this.options = options
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public getToken(params: GetTokenDto): Promise<GetTokenResponse> {
|
|
25
|
+
const tokenService = new GetToken(this)
|
|
26
|
+
return tokenService.execute(params)
|
|
27
|
+
}
|
|
28
|
+
}
|
package/src/confirmXML.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { consecutivoStr } from '
|
|
2
|
-
import { xmlToJson, genXML } from '
|
|
3
|
-
import { send } from '
|
|
4
|
-
import { getFinalMessage, getMsjObj } from '
|
|
1
|
+
import { consecutivoStr } from '@src/lib/genClave'
|
|
2
|
+
import { xmlToJson, genXML } from '@src/lib/genXML/index'
|
|
3
|
+
import { send } from '@src/services/send/index'
|
|
4
|
+
import { getFinalMessage, getMsjObj } from '@src/lib/genJSON/confirmXML'
|
|
5
5
|
|
|
6
6
|
function getConsecutivoStr(opts: any): string {
|
|
7
7
|
return consecutivoStr({
|
package/src/creditNote.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { ClientPayload, XmlOpt } from '
|
|
2
|
-
import { NotaCreditoContenedor } from '
|
|
3
|
-
import { genXML } from '
|
|
4
|
-
import { send } from '
|
|
5
|
-
import { genClaveObj, genString, parseOptions } from '
|
|
1
|
+
import { ClientPayload, XmlOpt } from '@src/types/globalInterfaces'
|
|
2
|
+
import { NotaCreditoContenedor } from '@src/types/xml/notaDeCredito'
|
|
3
|
+
import { genXML } from '@src/lib/genXML/index'
|
|
4
|
+
import { send } from '@src/services/send/index'
|
|
5
|
+
import { genClaveObj, genString, parseOptions } from '@src/lib/genClave/index'
|
|
6
6
|
import {
|
|
7
7
|
getBillResum,
|
|
8
8
|
getReceiver,
|
|
9
9
|
getSender,
|
|
10
10
|
getSimpleReceiver,
|
|
11
11
|
getSimpleSender
|
|
12
|
-
} from '
|
|
12
|
+
} from '@src/helpers/comprobantes'
|
|
13
13
|
|
|
14
14
|
const VOUCHER_TYPE = 'NC'
|
|
15
15
|
|