@facturacr/atv-sdk 0.0.18-beta → 0.0.20-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/dist/__tests__/stubs/createDocument.stub.d.ts +2 -0
- package/dist/__tests__/stubs/createDocument.stub.js +78 -0
- package/dist/__tests__/stubs/createDocument.stub.js.map +1 -0
- package/dist/__tests__/stubs/frontendRequest.stub.d.ts +3 -0
- package/dist/__tests__/stubs/frontendRequest.stub.js +61 -0
- package/dist/__tests__/stubs/frontendRequest.stub.js.map +1 -0
- 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/ATV/index.test.d.ts +1 -0
- package/dist/__tests__/tests/ATV/index.test.js +62 -0
- package/dist/__tests__/tests/ATV/index.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/src/ATV/core/Clave.d.ts +18 -0
- package/dist/src/ATV/core/Clave.js +29 -0
- package/dist/src/ATV/core/Clave.js.map +1 -0
- package/dist/src/ATV/core/Document.d.ts +46 -0
- package/dist/src/ATV/core/Document.js +80 -0
- package/dist/src/ATV/core/Document.js.map +1 -0
- package/dist/src/ATV/core/DocumentType.d.ts +8 -0
- package/dist/src/ATV/core/DocumentType.js +20 -0
- package/dist/src/ATV/core/DocumentType.js.map +1 -0
- package/dist/src/ATV/core/FullConsecutive.d.ts +13 -0
- package/dist/src/ATV/core/FullConsecutive.js +22 -0
- package/dist/src/ATV/core/FullConsecutive.js.map +1 -0
- package/dist/src/ATV/core/OrderLine.d.ts +34 -0
- package/dist/src/ATV/core/OrderLine.js +63 -0
- package/dist/src/ATV/core/OrderLine.js.map +1 -0
- package/dist/src/ATV/core/Person.d.ts +36 -0
- package/dist/src/ATV/core/Person.js +37 -0
- package/dist/src/ATV/core/Person.js.map +1 -0
- package/dist/src/ATV/core/Summary.type.d.ts +20 -0
- package/dist/src/ATV/core/Summary.type.js +3 -0
- package/dist/src/ATV/core/Summary.type.js.map +1 -0
- package/dist/src/ATV/core/documentNames.types.d.ts +1 -0
- package/dist/src/ATV/core/documentNames.types.js +3 -0
- package/dist/src/ATV/core/documentNames.types.js.map +1 -0
- package/dist/src/ATV/index.d.ts +32 -0
- package/dist/src/ATV/index.js +134 -0
- package/dist/src/ATV/index.js.map +1 -0
- package/dist/src/ATV/mappers/billDocToAtv.d.ts +5 -0
- package/dist/src/ATV/mappers/billDocToAtv.js +99 -0
- package/dist/src/ATV/mappers/billDocToAtv.js.map +1 -0
- package/dist/src/ATV/types.d.ts +32 -0
- package/dist/src/ATV/types.js +3 -0
- package/dist/src/ATV/types.js.map +1 -0
- package/dist/src/ATV/useCases/createDocument/index.d.ts +16 -0
- package/dist/src/ATV/useCases/createDocument/index.js +140 -0
- package/dist/src/ATV/useCases/createDocument/index.js.map +1 -0
- package/dist/src/ATV/useCases/createDocument/types.d.ts +74 -0
- package/dist/src/ATV/useCases/createDocument/types.js +3 -0
- package/dist/src/ATV/useCases/createDocument/types.js.map +1 -0
- package/dist/src/confirmXML.d.ts +8 -0
- package/dist/src/confirmXML.js +44 -0
- package/dist/src/confirmXML.js.map +1 -0
- package/dist/src/creditNote.d.ts +14 -0
- package/dist/src/creditNote.js +77 -0
- package/dist/src/creditNote.js.map +1 -0
- 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 +25 -0
- package/dist/src/data/impuestos.js +51 -0
- package/dist/src/data/impuestos.js.map +1 -0
- package/dist/src/data/tipoCedula.d.ts +7 -0
- package/dist/src/data/tipoCedula.js +17 -0
- package/dist/src/data/tipoCedula.js.map +1 -0
- package/dist/src/data/tipoDocumento.d.ts +26 -0
- package/dist/src/data/tipoDocumento.js +30 -0
- package/dist/src/data/tipoDocumento.js.map +1 -0
- package/dist/src/data/unidadesMedida.d.ts +5 -0
- package/dist/src/data/unidadesMedida.js +141 -0
- package/dist/src/data/unidadesMedida.js.map +1 -0
- package/dist/src/debitNote.d.ts +14 -0
- package/dist/src/debitNote.js +77 -0
- package/dist/src/debitNote.js.map +1 -0
- package/dist/src/electronicBill.d.ts +3 -0
- package/dist/src/electronicBill.js +61 -0
- package/dist/src/electronicBill.js.map +1 -0
- package/dist/src/helpers/comprobantes.d.ts +7 -0
- package/dist/src/helpers/comprobantes.js +92 -0
- package/dist/src/helpers/comprobantes.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/genClave/index.d.ts +9 -0
- package/dist/src/lib/genClave/index.js +119 -0
- package/dist/src/lib/genClave/index.js.map +1 -0
- package/dist/src/lib/genJSON/confirmXML.d.ts +7 -0
- package/dist/src/lib/genJSON/confirmXML.js +46 -0
- package/dist/src/lib/genJSON/confirmXML.js.map +1 -0
- package/dist/src/lib/genJSON/index.d.ts +5 -0
- package/dist/src/lib/genJSON/index.js +135 -0
- package/dist/src/lib/genJSON/index.js.map +1 -0
- package/dist/src/lib/genXML/index.d.ts +7 -0
- package/dist/src/lib/genXML/index.js +51 -0
- package/dist/src/lib/genXML/index.js.map +1 -0
- package/dist/src/lib/genXML/sigXML/genKeysAndCert.d.ts +6 -0
- package/dist/src/lib/genXML/sigXML/genKeysAndCert.js +72 -0
- package/dist/src/lib/genXML/sigXML/genKeysAndCert.js.map +1 -0
- package/dist/src/lib/genXML/sigXML/index.d.ts +1 -0
- package/dist/src/lib/genXML/sigXML/index.js +88 -0
- package/dist/src/lib/genXML/sigXML/index.js.map +1 -0
- package/dist/src/lib/genXML/xmlConfig.d.ts +55 -0
- package/dist/src/lib/genXML/xmlConfig.js +36 -0
- package/dist/src/lib/genXML/xmlConfig.js.map +1 -0
- package/dist/src/services/getToken/GetToken.d.ts +8 -0
- package/dist/src/services/getToken/GetToken.js +66 -0
- package/dist/src/services/getToken/GetToken.js.map +1 -0
- package/dist/src/services/getToken/__tests__/GetToken.test.d.ts +1 -0
- package/dist/src/services/getToken/__tests__/GetToken.test.js +86 -0
- package/dist/src/services/getToken/__tests__/GetToken.test.js.map +1 -0
- package/dist/src/services/getToken/index.d.ts +3 -0
- package/dist/src/services/getToken/index.js +22 -0
- package/dist/src/services/getToken/index.js.map +1 -0
- package/dist/src/services/getToken/types.d.ts +27 -0
- package/dist/src/services/getToken/types.js +3 -0
- package/dist/src/services/getToken/types.js.map +1 -0
- package/dist/src/services/send/index.d.ts +2 -0
- package/dist/src/services/send/index.js +40 -0
- package/dist/src/services/send/index.js.map +1 -0
- package/dist/src/types/xml/notaDeCredito.d.ts +21 -0
- package/dist/src/types/xml/notaDeCredito.js +3 -0
- package/dist/src/types/xml/notaDeCredito.js.map +1 -0
- package/dist/src/types/xml/notaDeDebito.d.ts +21 -0
- package/dist/src/types/xml/notaDeDebito.js +3 -0
- package/dist/src/types/xml/notaDeDebito.js.map +1 -0
- package/examples/README.md +4 -0
- package/examples/createAndSend.ts +1 -1
- package/package.json +1 -1
- package/src/ATV/index.ts +0 -1
- package/src/ATV/mappers/billDocToAtv.ts +2 -2
- package/src/ATV/useCases/createDocument/index.ts +2 -1
- package/src/ATV/useCases/createDocument/types.ts +3 -0
- package/src/lib/genJSON/index.ts +2 -2
- package/src/types/facturaInterfaces.d.ts +1 -1
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDocumentInputStub = void 0;
|
|
4
|
+
const taxStub = {
|
|
5
|
+
code: '01',
|
|
6
|
+
rateCode: '08',
|
|
7
|
+
rate: 13
|
|
8
|
+
};
|
|
9
|
+
const orderLines = [{
|
|
10
|
+
code: '7113301000000',
|
|
11
|
+
quantity: 1,
|
|
12
|
+
measureUnit: 'Unid',
|
|
13
|
+
detail: 'detalle',
|
|
14
|
+
unitaryPrice: 10,
|
|
15
|
+
tax: taxStub
|
|
16
|
+
}];
|
|
17
|
+
const receiverStub = {
|
|
18
|
+
fullName: 'SRL',
|
|
19
|
+
commercialName: 'CIENCIA DEL SABOR',
|
|
20
|
+
identifier: {
|
|
21
|
+
type: '02',
|
|
22
|
+
id: '3102759157'
|
|
23
|
+
},
|
|
24
|
+
location: {
|
|
25
|
+
province: '2',
|
|
26
|
+
canton: '06',
|
|
27
|
+
district: '04',
|
|
28
|
+
neighborhood: '06',
|
|
29
|
+
details: '25 norte 500 oeste restaurante El Faro'
|
|
30
|
+
},
|
|
31
|
+
phone: {
|
|
32
|
+
countryCode: '506',
|
|
33
|
+
number: '80808080'
|
|
34
|
+
},
|
|
35
|
+
email: 'cienciadelsabor@gmail.com',
|
|
36
|
+
fax: {
|
|
37
|
+
countryCode: '506',
|
|
38
|
+
number: '80808080'
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const emitterStub = {
|
|
42
|
+
fullName: 'Nombre Receptor',
|
|
43
|
+
commercialName: 'xyz',
|
|
44
|
+
identifier: {
|
|
45
|
+
type: '01',
|
|
46
|
+
id: '206920142'
|
|
47
|
+
},
|
|
48
|
+
location: {
|
|
49
|
+
province: '1',
|
|
50
|
+
canton: '1',
|
|
51
|
+
district: '1',
|
|
52
|
+
neighborhood: '1',
|
|
53
|
+
details: 'Señas xyz'
|
|
54
|
+
},
|
|
55
|
+
email: 'test@test.com',
|
|
56
|
+
fax: {
|
|
57
|
+
countryCode: '506',
|
|
58
|
+
number: '12341234'
|
|
59
|
+
},
|
|
60
|
+
phone: {
|
|
61
|
+
countryCode: '506',
|
|
62
|
+
number: '12341234'
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
exports.createDocumentInputStub = {
|
|
66
|
+
consecutiveIdentifier: '2',
|
|
67
|
+
activityCode: '4',
|
|
68
|
+
documentName: 'FacturaElectronica',
|
|
69
|
+
branch: '001',
|
|
70
|
+
terminal: '00001',
|
|
71
|
+
ceSituation: '1',
|
|
72
|
+
countryCode: '506',
|
|
73
|
+
emitter: emitterStub,
|
|
74
|
+
receiver: receiverStub,
|
|
75
|
+
orderLines,
|
|
76
|
+
securityCode: '00000001'
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=createDocument.stub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDocument.stub.js","sourceRoot":"","sources":["../../../__tests__/stubs/createDocument.stub.ts"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAA4D;IACvE,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,EAAE;CACT,CAAA;AAED,MAAM,UAAU,GAAkD,CAAC;QACjE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,EAAE;QAChB,GAAG,EAAE,OAAO;KACb,CAAC,CAAA;AAEF,MAAM,YAAY,GAA+C;IAC/D,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,mBAAmB;IACnC,UAAU,EAAE;QACV,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,YAAY;KACjB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,wCAAwC;KAClD;IACD,KAAK,EAAE;QACL,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,UAAU;KACnB;IACD,KAAK,EAAE,2BAA2B;IAClC,GAAG,EAAE;QACH,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,UAAU;KACnB;CACF,CAAA;AAED,MAAM,WAAW,GAAgD;IAC/D,QAAQ,EAAE,iBAAiB;IAC3B,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE;QACV,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,WAAW;KAChB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;QACb,YAAY,EAAE,GAAG;QACjB,OAAO,EAAE,WAAW;KACrB;IACD,KAAK,EAAE,eAAe;IACtB,GAAG,EAAE;QACH,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,UAAU;KACnB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,UAAU;KACnB;CACF,CAAA;AAEY,QAAA,uBAAuB,GAAoC;IACtE,qBAAqB,EAAE,GAAG;IAC1B,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,oBAAoB;IAClC,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;IACtB,UAAU;IACV,YAAY,EAAE,UAAU;CACzB,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const impuestoStub = {
|
|
4
|
+
Codigo: '01',
|
|
5
|
+
CodigoTarifa: '08',
|
|
6
|
+
Tarifa: 13
|
|
7
|
+
};
|
|
8
|
+
const lineaDetalleStub = {
|
|
9
|
+
Codigo: '8311100000000',
|
|
10
|
+
Cantidad: 1,
|
|
11
|
+
UnidadMedida: 'Unid',
|
|
12
|
+
Detalle: 'detalle',
|
|
13
|
+
PrecioUnitario: 10,
|
|
14
|
+
Impuesto: impuestoStub
|
|
15
|
+
};
|
|
16
|
+
const transmitterStub = {
|
|
17
|
+
Nombre: 'SRL',
|
|
18
|
+
NombreComercial: 'CIENCIA DEL SABOR',
|
|
19
|
+
Identificacion: {
|
|
20
|
+
Tipo: '02',
|
|
21
|
+
Numero: '3102759157'
|
|
22
|
+
},
|
|
23
|
+
Ubicacion: {
|
|
24
|
+
Provincia: '2',
|
|
25
|
+
Canton: '06',
|
|
26
|
+
Distrito: '04',
|
|
27
|
+
Barrio: '06',
|
|
28
|
+
OtrasSenas: '25 norte 500 oeste restaurante El Faro'
|
|
29
|
+
},
|
|
30
|
+
Telefono: {
|
|
31
|
+
CodigoPais: '506',
|
|
32
|
+
NumTelefono: '80808080'
|
|
33
|
+
},
|
|
34
|
+
CorreoElectronico: 'cienciadelsabor@gmail.com',
|
|
35
|
+
Fax: {
|
|
36
|
+
CodigoPais: '506',
|
|
37
|
+
NumTelefono: '80808080'
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const receiverStub = {
|
|
41
|
+
Nombre: 'Nombre Receptor',
|
|
42
|
+
Identificacion: {
|
|
43
|
+
Numero: '206920142'
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const requestStub = {
|
|
47
|
+
Emisor: transmitterStub,
|
|
48
|
+
Receptor: receiverStub,
|
|
49
|
+
sucursal: '001',
|
|
50
|
+
terminal: '00001',
|
|
51
|
+
tipoDocumento: 'FE',
|
|
52
|
+
codigoPais: '506',
|
|
53
|
+
consecutivo: '18', // In the examples this prop needs to be changed
|
|
54
|
+
codigoSeguridad: '00000001',
|
|
55
|
+
situationEC: '1',
|
|
56
|
+
actividad: '4',
|
|
57
|
+
LineasDetalle: [lineaDetalleStub],
|
|
58
|
+
facturaElectronicaType: 'FacturaElectronicaExportacion'
|
|
59
|
+
};
|
|
60
|
+
exports.default = requestStub;
|
|
61
|
+
//# sourceMappingURL=frontendRequest.stub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontendRequest.stub.js","sourceRoot":"","sources":["../../../__tests__/stubs/frontendRequest.stub.ts"],"names":[],"mappings":";;AAGA,MAAM,YAAY,GAAa;IAC7B,MAAM,EAAE,IAAI;IACZ,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,EAAE;CACX,CAAA;AAED,MAAM,gBAAgB,GAAiB;IACrC,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,CAAC;IACX,YAAY,EAAE,MAAM;IACpB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,YAAY;CACvB,CAAA;AAED,MAAM,eAAe,GAAY;IAC/B,MAAM,EAAE,KAAK;IACb,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE;QACd,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,YAAY;KACrB;IACD,SAAS,EAAE;QACT,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,wCAAwC;KACrD;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,UAAU;KACxB;IACD,iBAAiB,EAAE,2BAA2B;IAC9C,GAAG,EAAE;QACH,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,UAAU;KACxB;CACF,CAAA;AAED,MAAM,YAAY,GAAY;IAC5B,MAAM,EAAE,iBAAiB;IACzB,cAAc,EAAE;QACd,MAAM,EAAE,WAAW;KACpB;CACF,CAAA;AAED,MAAM,WAAW,GAAkB;IACjC,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,IAAI,EAAE,gDAAgD;IACnE,eAAe,EAAE,UAAU;IAC3B,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,GAAG;IACd,aAAa,EAAE,CAAC,gBAAgB,CAAC;IACjC,sBAAsB,EAAE,+BAA+B;CACxD,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const postTokenOptions: {
|
|
2
|
+
client_id: string;
|
|
3
|
+
client_secret: string;
|
|
4
|
+
grant_type: string;
|
|
5
|
+
username: string;
|
|
6
|
+
password: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const tokenStub: {
|
|
9
|
+
access_token: string;
|
|
10
|
+
expires_in: number;
|
|
11
|
+
refresh_expires_in: number;
|
|
12
|
+
refresh_token: string;
|
|
13
|
+
token_type: string;
|
|
14
|
+
'not-before-policy': number;
|
|
15
|
+
session_state: string;
|
|
16
|
+
scope: string;
|
|
17
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tokenStub = exports.postTokenOptions = void 0;
|
|
4
|
+
exports.postTokenOptions = {
|
|
5
|
+
client_id: 'api-stag', // eslint-disable-line @typescript-eslint/camelcase
|
|
6
|
+
client_secret: '', // eslint-disable-line @typescript-eslint/camelcase
|
|
7
|
+
grant_type: 'password', // eslint-disable-line @typescript-eslint/camelcase
|
|
8
|
+
username: 'cpj-1-111-654321@stag.comprobanteselectronicos.go.cr',
|
|
9
|
+
password: 'Rg-OQS)]Y00987654321'
|
|
10
|
+
};
|
|
11
|
+
exports.tokenStub = {
|
|
12
|
+
access_token: 'eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ4WERpTElEdW1DNUlKYkViZDRFRDlrMy1NS0Z6eUh4QW4xUWZYeEtSOWt3In0.eyJqdGkiOiIwMWE1NzY0Yy1lZGExLTRlNmEtOTg4MS1kNWJiYWQ5MTE3MjQiLCJleHAiOjE2MjE4MTIzNTcsIm5iZiI6MCwiaWF0IjoxNjIxODEyMDU3LCJpc3MiOiJodHRwOi8vaWRwLmNvbXByb2JhbnRlc2VsZWN0cm9uaWNvcy5nby5jci9hdXRoL3JlYWxtcy9ydXQtc3RhZyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJiZDAyZmFiNS1hMjMwLTRlY2YtOWI3Zi1lMjA1NGM3YjhhMGYiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhcGktc3RhZyIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjQ3Y2UyYzBhLTU2MDAtNDA0NS1hNDllLTQ1NDQwM2VmYzg2YiIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiIiwibmFtZSI6IkNJRU5DSUEgREVMIFNBQk9SIFNPQ0lFREFEIERFIFJFU1BPTlNBQklMSURBRCBMSU1JVEFEQSIsInByZWZlcnJlZF91c2VybmFtZSI6ImNwai0zLTEwMi03NTkxNTdAc3RhZy5jb21wcm9iYW50ZXNlbGVjdHJvbmljb3MuZ28uY3IiLCJnaXZlbl9uYW1lIjoiQ0lFTkNJQSBERUwgU0FCT1IgU09DSUVEQUQgREUgUkVTUE9OU0FCSUxJREFEIExJTUlUQURBIiwicG9sIjoiNWI4MGI0NDc5ZWNlMzYwMzJiMDdkMmViIiwicG9saWN5LWlkIjoiNThhNjIwMzM3NmVhZTE0MDhjZTVlN2RkIiwiZW1haWwiOiJjcGotMy0xMDItNzU5MTU3QHN0YWcuY29tcHJvYmFudGVzZWxlY3Ryb25pY29zLmdvLmNyIn0.GBhbEkVQFGKgKr28H2SaB0QHMLIXcn8jmCj-VVTvSDGKmF7CLp7Dwi94oXiW72AoZAqvNBRnRr4hDJb7s8HZedhtD965O9x_pKPVYjgc6B_xXwczNqL6o4I2o3GKZ_1dY7E9KZgUTqv-dbZ3LmKmvB5dk_icRw-Kh5tGheUaF5cSdzIYa4VHy-ZgMcacdBnvl-G9mixkYlBShMJyszIQ-k2T9z4FFvOUdNstBiehwFiCBi7CS7HP_wn1w04O2uClyq-zHk9U8Qb25YROquFtZHV9IPrgg3LMA4MuLS6OhnKRjYHbqf0j4Elh_ucNYDs7Whz5Y76Ya33d3VhooUuDKA', // eslint-disable-line @typescript-eslint/camelcase
|
|
13
|
+
expires_in: 300, // eslint-disable-line @typescript-eslint/camelcase
|
|
14
|
+
refresh_expires_in: 1200, // eslint-disable-line @typescript-eslint/camelcase
|
|
15
|
+
refresh_token: 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmOThjMTk2Mi02ZGJkLTRjNDAtOTM5Ni00YTVmMDdjYTYxZTQifQ.eyJqdGkiOiJiZDMyMWYyNC02MGFlLTRiMmYtYWJlZS01ZDI1NWNlMDAyMDYiLCJleHAiOjE2MjE4MTMyNTcsIm5iZiI6MCwiaWF0IjoxNjIxODEyMDU3LCJpc3MiOiJodHRwOi8vaWRwLmNvbXByb2JhbnRlc2VsZWN0cm9uaWNvcy5nby5jci9hdXRoL3JlYWxtcy9ydXQtc3RhZyIsImF1ZCI6Imh0dHA6Ly9pZHAuY29tcHJvYmFudGVzZWxlY3Ryb25pY29zLmdvLmNyL2F1dGgvcmVhbG1zL3J1dC1zdGFnIiwic3ViIjoiYmQwMmZhYjUtYTIzMC00ZWNmLTliN2YtZTIwNTRjN2I4YTBmIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6ImFwaS1zdGFnIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiNDdjZTJjMGEtNTYwMC00MDQ1LWE0OWUtNDU0NDAzZWZjODZiIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6IiJ9.aQzWy0NHyizDSZwYz14oOXrwekSPlHOrkjiRdo_BvP4', // eslint-disable-line @typescript-eslint/camelcase
|
|
16
|
+
token_type: 'bearer', // eslint-disable-line @typescript-eslint/camelcase
|
|
17
|
+
'not-before-policy': 0,
|
|
18
|
+
session_state: '47ce2c0a-5600-4045-a49e-454403efc86b', // eslint-disable-line @typescript-eslint/camelcase
|
|
19
|
+
scope: ''
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=token.stub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.stub.js","sourceRoot":"","sources":["../../../__tests__/stubs/token.stub.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;IAC9B,SAAS,EAAE,UAAU,EAAE,mDAAmD;IAC1E,aAAa,EAAE,EAAE,EAAE,mDAAmD;IACtE,UAAU,EAAE,UAAU,EAAE,mDAAmD;IAC3E,QAAQ,EAAE,sDAAsD;IAChE,QAAQ,EAAE,sBAAsB;CACjC,CAAA;AAEY,QAAA,SAAS,GAAG;IACvB,YAAY,EAAE,ojDAAojD,EAAE,mDAAmD;IACvnD,UAAU,EAAE,GAAG,EAAE,mDAAmD;IACpE,kBAAkB,EAAE,IAAI,EAAE,mDAAmD;IAC7E,aAAa,EAAE,i3BAAi3B,EAAE,mDAAmD;IACr7B,UAAU,EAAE,QAAQ,EAAE,mDAAmD;IACzE,mBAAmB,EAAE,CAAC;IACtB,aAAa,EAAE,sCAAsC,EAAE,mDAAmD;IAC1G,KAAK,EAAE,EAAE;CACV,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'jest-xml-matcher';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
const ATV_1 = require("../../../src/ATV");
|
|
17
|
+
require("jest-xml-matcher");
|
|
18
|
+
const createDocument_stub_1 = require("../../stubs/createDocument.stub");
|
|
19
|
+
const fakePem = fs_1.default.readFileSync('__tests__/stubs/dummyKeys/client-identity.p12', 'binary');
|
|
20
|
+
const fakePassword = '1234';
|
|
21
|
+
const expectXml = fs_1.default.readFileSync('__tests__/stubs/commonExpectedXml.xml', 'utf-8');
|
|
22
|
+
describe('Create Document (Invoice)', () => {
|
|
23
|
+
beforeAll(() => {
|
|
24
|
+
jest.useFakeTimers();
|
|
25
|
+
jest.setSystemTime(new Date(2024, 3, 1, 0, 0, 0, 0));
|
|
26
|
+
});
|
|
27
|
+
it('should create document and generate a correct command', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
const atv = new ATV_1.ATV({}, 'stg');
|
|
29
|
+
const createdDoc = yield atv.createDocumentCommand({
|
|
30
|
+
document: createDocument_stub_1.createDocumentInputStub,
|
|
31
|
+
token: 'fake-token',
|
|
32
|
+
signatureOptions: {
|
|
33
|
+
buffer: fakePem,
|
|
34
|
+
password: fakePassword
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
expect(createdDoc.command).toMatchObject({
|
|
38
|
+
url: 'https://api-sandbox.comprobanteselectronicos.go.cr/recepcion/v1/recepcion',
|
|
39
|
+
method: 'post'
|
|
40
|
+
});
|
|
41
|
+
expect(createdDoc.command.data).toMatchObject({
|
|
42
|
+
clave: '50601042400020692014200100001010000000002100000001',
|
|
43
|
+
fecha: '2024-04-01T00:00:00.000Z',
|
|
44
|
+
emisor: { tipoIdentificacion: '01', numeroIdentificacion: '206920142' },
|
|
45
|
+
receptor: { tipoIdentificacion: '02', numeroIdentificacion: '3102759157' }
|
|
46
|
+
});
|
|
47
|
+
expect(createdDoc.command.data.comprobanteXml).toBeDefined();
|
|
48
|
+
expect(createdDoc.extraData.xml).toBeDefined();
|
|
49
|
+
}));
|
|
50
|
+
it('should create document and generate a correct command', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
const atv = new ATV_1.ATV({}, 'stg');
|
|
52
|
+
// @ts-ignore just for testing
|
|
53
|
+
const createdDoc = yield atv.createDocumentCommand({
|
|
54
|
+
document: createDocument_stub_1.createDocumentInputStub,
|
|
55
|
+
token: 'fake-token',
|
|
56
|
+
signatureOptions: undefined
|
|
57
|
+
});
|
|
58
|
+
expect(createdDoc.command.data.comprobanteXml).toMatchSnapshot();
|
|
59
|
+
expect(createdDoc.extraData.xml).toEqualXML(expectXml);
|
|
60
|
+
}));
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../__tests__/tests/ATV/index.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4CAAmB;AACnB,0CAA8B;AAC9B,4BAAyB;AACzB,yEAAyE;AACzE,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,+CAA+C,EAAE,QAAQ,CAAC,CAAA;AAC1F,MAAM,YAAY,GAAG,MAAM,CAAA;AAC3B,MAAM,SAAS,GAAG,YAAE,CAAC,YAAY,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAA;AAEnF,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAS,EAAE;QACrE,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAC9B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC;YACjD,QAAQ,EAAE,6CAAuB;YACjC,KAAK,EAAE,YAAY;YACnB,gBAAgB,EAAE;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,YAAY;aACvB;SACF,CAAC,CAAA;QACF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACvC,GAAG,EAAE,2EAA2E;YAChF,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;QACF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC5C,KAAK,EAAE,oDAAoD;YAC3D,KAAK,EAAE,0BAA0B;YACjC,MAAM,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE;YACvE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE;SAC3E,CAAC,CAAA;QACF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5D,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAChD,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAS,EAAE;QACrE,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAC9B,8BAA8B;QAC9B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC;YACjD,QAAQ,EAAE,6CAAuB;YACjC,KAAK,EAAE,YAAY;YACnB,gBAAgB,EAAE,SAAS;SAC5B,CAAC,CAAA;QACF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,eAAe,EAAE,CAAA;QAChE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const genClave_1 = require("../../src/lib/genClave");
|
|
7
|
+
const frontendRequest_stub_1 = __importDefault(require("../stubs/frontendRequest.stub"));
|
|
8
|
+
describe('GET CLAVE', () => {
|
|
9
|
+
it('should create a new key with 50 characters', () => {
|
|
10
|
+
const frontEndRequest = frontendRequest_stub_1.default;
|
|
11
|
+
const result = (0, genClave_1.getClave)(frontEndRequest);
|
|
12
|
+
expect(result.length).toBe(50);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=getClave.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getClave.test.js","sourceRoot":"","sources":["../../../__tests__/tests/getClave.test.ts"],"names":[],"mappings":";;;;;AAAA,qDAAiD;AACjD,yFAA8C;AAG9C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,eAAe,GAAkB,8BAAE,CAAA;QACzC,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,eAAe,CAAC,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// import getToken from '../../src/services/getToken'
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
// const USERNAME_TEST = process.env.USERNAME_TEST
|
|
12
|
+
// const PASSWORD_TEST = process.env.PASSWORD_TEST
|
|
13
|
+
describe('GET TOKEN', () => {
|
|
14
|
+
it('should create a new user token', () => __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
// const response = await getToken({
|
|
16
|
+
// client_id: 'api-stag',
|
|
17
|
+
// client_secret: '',
|
|
18
|
+
// grant_type: 'password',
|
|
19
|
+
// username: USERNAME_TEST,
|
|
20
|
+
// password: PASSWORD_TEST
|
|
21
|
+
// })
|
|
22
|
+
// const { access_token } = response.data
|
|
23
|
+
// expect(access_token).toBeTruthy()
|
|
24
|
+
// TODO mock axios
|
|
25
|
+
expect(1 + 1).toEqual(2);
|
|
26
|
+
}));
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=getToken.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getToken.test.js","sourceRoot":"","sources":["../../../__tests__/tests/getToken.test.ts"],"names":[],"mappings":"AAAA,qDAAqD;;;;;;;;;;AAErD,kDAAkD;AAClD,kDAAkD;AAElD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,gCAAgC,EAAE,GAAS,EAAE;QAC9C,oCAAoC;QACpC,2BAA2B;QAC3B,uBAAuB;QACvB,4BAA4B;QAC5B,6BAA6B;QAC7B,4BAA4B;QAC5B,KAAK;QACL,yCAAyC;QACzC,oCAAoC;QACpC,kBAAkB;QAClB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const genClave_1 = require("../../../src/lib/genClave");
|
|
7
|
+
const frontendRequest_stub_1 = __importDefault(require("../../stubs/frontendRequest.stub"));
|
|
8
|
+
describe('GET CLAVE', () => {
|
|
9
|
+
it('should create a new key with 50 characters', () => {
|
|
10
|
+
const frontEndRequest = frontendRequest_stub_1.default;
|
|
11
|
+
const result = (0, genClave_1.getClave)(frontEndRequest);
|
|
12
|
+
expect(result.length).toBe(50);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=getClave.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getClave.test.js","sourceRoot":"","sources":["../../../../__tests__/tests/lib/getClave.test.ts"],"names":[],"mappings":";;;;;AAAA,wDAAoD;AACpD,4FAAiD;AAGjD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,eAAe,GAAkB,8BAAE,CAAA;QACzC,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,eAAe,CAAC,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const axios_1 = __importDefault(require("axios"));
|
|
16
|
+
const token_stub_1 = require("../../stubs/token.stub");
|
|
17
|
+
const getToken_1 = __importDefault(require("../../../src/services/getToken"));
|
|
18
|
+
jest.mock('axios');
|
|
19
|
+
const mockedAxios = axios_1.default;
|
|
20
|
+
describe('Get Token', () => {
|
|
21
|
+
it('should return a valid token', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
mockedAxios.post.mockResolvedValue({ data: token_stub_1.tokenStub });
|
|
23
|
+
const token = yield (0, getToken_1.default)(token_stub_1.postTokenOptions);
|
|
24
|
+
expect(token).toEqual({ data: token_stub_1.tokenStub });
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=getToken.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getToken.test.js","sourceRoot":"","sources":["../../../../__tests__/tests/services/getToken.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAAyB;AACzB,uDAAoE;AACpE,8EAA6C;AAE7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAClB,MAAM,WAAW,GAAG,eAAkC,CAAA;AAEtD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,6BAA6B,EAAE,GAAS,EAAE;QAC3C,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,sBAAS,EAAE,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAQ,EAAC,6BAAgB,CAAC,CAAA;QAE9C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,sBAAS,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type ClaveProps = {
|
|
2
|
+
countryCode: string;
|
|
3
|
+
docKeyType: string;
|
|
4
|
+
identifierType: string;
|
|
5
|
+
emitterIdentifier: string;
|
|
6
|
+
ceSituation: string;
|
|
7
|
+
consecutiveIdentifier: string;
|
|
8
|
+
securityCode: string;
|
|
9
|
+
branch: string;
|
|
10
|
+
terminal: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class Clave {
|
|
13
|
+
private props;
|
|
14
|
+
get value(): string;
|
|
15
|
+
constructor(props: ClaveProps);
|
|
16
|
+
static create(props: ClaveProps): Clave;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Clave = void 0;
|
|
4
|
+
const genClave_1 = require("../../lib/genClave");
|
|
5
|
+
class Clave {
|
|
6
|
+
get value() {
|
|
7
|
+
const claveObj = (0, genClave_1.genClaveObj)({
|
|
8
|
+
cedulaEmisor: this.props.emitterIdentifier,
|
|
9
|
+
codigoPais: this.props.countryCode,
|
|
10
|
+
codigoSeguridad: this.props.securityCode,
|
|
11
|
+
consecutivo: this.props.consecutiveIdentifier,
|
|
12
|
+
situacionCE: this.props.ceSituation,
|
|
13
|
+
sucursal: this.props.branch,
|
|
14
|
+
terminal: this.props.terminal,
|
|
15
|
+
tipoCedula: this.props.identifierType,
|
|
16
|
+
tipoDocKey: this.props.docKeyType
|
|
17
|
+
});
|
|
18
|
+
const claveStr = (0, genClave_1.genString)(claveObj);
|
|
19
|
+
return claveStr;
|
|
20
|
+
}
|
|
21
|
+
constructor(props) {
|
|
22
|
+
this.props = props;
|
|
23
|
+
}
|
|
24
|
+
static create(props) {
|
|
25
|
+
return new Clave(props);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Clave = Clave;
|
|
29
|
+
//# sourceMappingURL=Clave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Clave.js","sourceRoot":"","sources":["../../../../src/ATV/core/Clave.ts"],"names":[],"mappings":";;;AAAA,iDAA0D;AAc1D,MAAa,KAAK;IAGhB,IAAI,KAAK;QACP,MAAM,QAAQ,GAAG,IAAA,sBAAW,EAAC;YAC3B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;YAC1C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YAClC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACxC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB;YAC7C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACrC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;SAClC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,IAAA,oBAAS,EAAC,QAAQ,CAAC,CAAA;QACpC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,YAAY,KAAiB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAiB;QACpC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;CACF;AA1BD,sBA0BC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Clave } from './Clave';
|
|
2
|
+
import { FullConsecutive } from './FullConsecutive';
|
|
3
|
+
import { OrderLine } from './OrderLine';
|
|
4
|
+
import { Person } from './Person';
|
|
5
|
+
import { SummaryProps } from './Summary.type';
|
|
6
|
+
export type InvoiceProps = {
|
|
7
|
+
clave: Clave;
|
|
8
|
+
fullConsecutive: FullConsecutive;
|
|
9
|
+
activityCode: string;
|
|
10
|
+
issueDate: Date;
|
|
11
|
+
emitter: Person;
|
|
12
|
+
receiver: Person;
|
|
13
|
+
orderLines: OrderLine[];
|
|
14
|
+
conditionSale?: string;
|
|
15
|
+
deadlineCredit?: string;
|
|
16
|
+
paymentMethod?: string;
|
|
17
|
+
summaryInvoice?: SummaryProps;
|
|
18
|
+
others?: {
|
|
19
|
+
OtroTexto: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
type OrderLineSum = {
|
|
23
|
+
totalAmount: number;
|
|
24
|
+
totalTaxes: number;
|
|
25
|
+
};
|
|
26
|
+
export declare class Document {
|
|
27
|
+
readonly props: InvoiceProps;
|
|
28
|
+
constructor(props: InvoiceProps);
|
|
29
|
+
get clave(): string;
|
|
30
|
+
get fullConsecutive(): string;
|
|
31
|
+
get activityCode(): string;
|
|
32
|
+
get issueDate(): Date;
|
|
33
|
+
get emitter(): Person;
|
|
34
|
+
get receiver(): Person;
|
|
35
|
+
get orderLines(): OrderLine[];
|
|
36
|
+
get conditionSale(): string | undefined;
|
|
37
|
+
get deadlineCredit(): string | undefined;
|
|
38
|
+
get paymentMethod(): string | undefined;
|
|
39
|
+
get others(): {
|
|
40
|
+
OtroTexto: string;
|
|
41
|
+
} | undefined;
|
|
42
|
+
get summaryInvoice(): SummaryProps;
|
|
43
|
+
sumCreditLines(): OrderLineSum;
|
|
44
|
+
static create(props: InvoiceProps): Document;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Document = void 0;
|
|
4
|
+
class Document {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
this.props = props;
|
|
7
|
+
}
|
|
8
|
+
get clave() {
|
|
9
|
+
return this.props.clave.value;
|
|
10
|
+
}
|
|
11
|
+
get fullConsecutive() {
|
|
12
|
+
return this.props.fullConsecutive.value;
|
|
13
|
+
}
|
|
14
|
+
get activityCode() {
|
|
15
|
+
return this.props.activityCode;
|
|
16
|
+
}
|
|
17
|
+
get issueDate() {
|
|
18
|
+
return this.props.issueDate;
|
|
19
|
+
}
|
|
20
|
+
get emitter() {
|
|
21
|
+
return this.props.emitter;
|
|
22
|
+
}
|
|
23
|
+
get receiver() {
|
|
24
|
+
return this.props.receiver;
|
|
25
|
+
}
|
|
26
|
+
get orderLines() {
|
|
27
|
+
return this.props.orderLines;
|
|
28
|
+
}
|
|
29
|
+
get conditionSale() {
|
|
30
|
+
return this.props.conditionSale;
|
|
31
|
+
}
|
|
32
|
+
get deadlineCredit() {
|
|
33
|
+
return this.props.deadlineCredit;
|
|
34
|
+
}
|
|
35
|
+
get paymentMethod() {
|
|
36
|
+
return this.props.paymentMethod;
|
|
37
|
+
}
|
|
38
|
+
get others() {
|
|
39
|
+
return this.props.others;
|
|
40
|
+
}
|
|
41
|
+
get summaryInvoice() {
|
|
42
|
+
if (this.props.summaryInvoice) {
|
|
43
|
+
return this.props.summaryInvoice;
|
|
44
|
+
}
|
|
45
|
+
const orderLineSumResult = this.sumCreditLines();
|
|
46
|
+
const summary = {
|
|
47
|
+
currency: {
|
|
48
|
+
code: 'CRC',
|
|
49
|
+
exchangeRate: '585.69'
|
|
50
|
+
},
|
|
51
|
+
totalExemptServices: 0,
|
|
52
|
+
totalEncumberedServices: 0,
|
|
53
|
+
totalExonerated: 0,
|
|
54
|
+
totalTaxedServices: 0,
|
|
55
|
+
totalTaxes: orderLineSumResult.totalTaxes,
|
|
56
|
+
totalDiscounts: 0,
|
|
57
|
+
totalEncumberedMerchandise: orderLineSumResult.totalAmount,
|
|
58
|
+
totalTaxed: orderLineSumResult.totalTaxes,
|
|
59
|
+
totalExemptMerchandise: 0,
|
|
60
|
+
totalExempt: 0,
|
|
61
|
+
totalNetSale: orderLineSumResult.totalAmount,
|
|
62
|
+
totalEncumbered: orderLineSumResult.totalAmount
|
|
63
|
+
};
|
|
64
|
+
const totalSale = summary.totalEncumbered + summary.totalExempt + summary.totalExonerated;
|
|
65
|
+
return Object.assign(Object.assign({}, summary), { totalSale, totalNetSale: totalSale - summary.totalDiscounts, totalVoucher: summary.totalNetSale + summary.totalTaxed });
|
|
66
|
+
}
|
|
67
|
+
sumCreditLines() {
|
|
68
|
+
return this.orderLines.reduce((previousValue, currentValue) => {
|
|
69
|
+
return {
|
|
70
|
+
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
71
|
+
totalTaxes: previousValue.totalTaxes + currentValue.tax.amount
|
|
72
|
+
};
|
|
73
|
+
}, { totalAmount: 0, totalTaxes: 0 });
|
|
74
|
+
}
|
|
75
|
+
static create(props) {
|
|
76
|
+
return new Document(props);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.Document = Document;
|
|
80
|
+
//# sourceMappingURL=Document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../../src/ATV/core/Document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DocumentNames } from './documentNames.types';
|
|
2
|
+
type DocumentTypeValues = 'FE' | 'ND' | 'NC' | 'TE';
|
|
3
|
+
export declare class DocumentType {
|
|
4
|
+
value: DocumentTypeValues;
|
|
5
|
+
constructor(value: DocumentTypeValues);
|
|
6
|
+
static create(documentName: DocumentNames): DocumentType;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocumentType = void 0;
|
|
4
|
+
const map = {
|
|
5
|
+
FacturaElectronica: 'FE',
|
|
6
|
+
FacturaElectronicaExportacion: 'FE',
|
|
7
|
+
NotaCreditoElectronica: 'NC',
|
|
8
|
+
NotaDebitoElectronica: 'NC'
|
|
9
|
+
};
|
|
10
|
+
class DocumentType {
|
|
11
|
+
constructor(value) {
|
|
12
|
+
this.value = value;
|
|
13
|
+
}
|
|
14
|
+
static create(documentName) {
|
|
15
|
+
const value = map[documentName];
|
|
16
|
+
return new DocumentType(value);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.DocumentType = DocumentType;
|
|
20
|
+
//# sourceMappingURL=DocumentType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentType.js","sourceRoot":"","sources":["../../../../src/ATV/core/DocumentType.ts"],"names":[],"mappings":";;;AAEA,MAAM,GAAG,GAAwC;IAC/C,kBAAkB,EAAE,IAAI;IACxB,6BAA6B,EAAE,IAAI;IACnC,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;CAC5B,CAAA;AAID,MAAa,YAAY;IAGvB,YAAY,KAAyB;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,YAA2B;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,CAAA;QAC/B,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;CACF;AAXD,oCAWC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type FullConsecutiveProps = {
|
|
2
|
+
consecutiveIdentifier: string;
|
|
3
|
+
documentType?: string;
|
|
4
|
+
branch?: string;
|
|
5
|
+
terminal?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class FullConsecutive {
|
|
8
|
+
private props;
|
|
9
|
+
get value(): string;
|
|
10
|
+
constructor(props: FullConsecutiveProps);
|
|
11
|
+
static create(props: FullConsecutiveProps): FullConsecutive;
|
|
12
|
+
}
|
|
13
|
+
export {};
|