@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.
Files changed (150) hide show
  1. package/dist/__tests__/stubs/createDocument.stub.d.ts +2 -0
  2. package/dist/__tests__/stubs/createDocument.stub.js +78 -0
  3. package/dist/__tests__/stubs/createDocument.stub.js.map +1 -0
  4. package/dist/__tests__/stubs/frontendRequest.stub.d.ts +3 -0
  5. package/dist/__tests__/stubs/frontendRequest.stub.js +61 -0
  6. package/dist/__tests__/stubs/frontendRequest.stub.js.map +1 -0
  7. package/dist/__tests__/stubs/token.stub.d.ts +17 -0
  8. package/dist/__tests__/stubs/token.stub.js +21 -0
  9. package/dist/__tests__/stubs/token.stub.js.map +1 -0
  10. package/dist/__tests__/tests/ATV/index.test.d.ts +1 -0
  11. package/dist/__tests__/tests/ATV/index.test.js +62 -0
  12. package/dist/__tests__/tests/ATV/index.test.js.map +1 -0
  13. package/dist/__tests__/tests/getClave.test.d.ts +1 -0
  14. package/dist/__tests__/tests/getClave.test.js +15 -0
  15. package/dist/__tests__/tests/getClave.test.js.map +1 -0
  16. package/dist/__tests__/tests/getToken.test.d.ts +0 -0
  17. package/dist/__tests__/tests/getToken.test.js +28 -0
  18. package/dist/__tests__/tests/getToken.test.js.map +1 -0
  19. package/dist/__tests__/tests/lib/getClave.test.d.ts +1 -0
  20. package/dist/__tests__/tests/lib/getClave.test.js +15 -0
  21. package/dist/__tests__/tests/lib/getClave.test.js.map +1 -0
  22. package/dist/__tests__/tests/services/getToken.test.d.ts +1 -0
  23. package/dist/__tests__/tests/services/getToken.test.js +27 -0
  24. package/dist/__tests__/tests/services/getToken.test.js.map +1 -0
  25. package/dist/src/ATV/core/Clave.d.ts +18 -0
  26. package/dist/src/ATV/core/Clave.js +29 -0
  27. package/dist/src/ATV/core/Clave.js.map +1 -0
  28. package/dist/src/ATV/core/Document.d.ts +46 -0
  29. package/dist/src/ATV/core/Document.js +80 -0
  30. package/dist/src/ATV/core/Document.js.map +1 -0
  31. package/dist/src/ATV/core/DocumentType.d.ts +8 -0
  32. package/dist/src/ATV/core/DocumentType.js +20 -0
  33. package/dist/src/ATV/core/DocumentType.js.map +1 -0
  34. package/dist/src/ATV/core/FullConsecutive.d.ts +13 -0
  35. package/dist/src/ATV/core/FullConsecutive.js +22 -0
  36. package/dist/src/ATV/core/FullConsecutive.js.map +1 -0
  37. package/dist/src/ATV/core/OrderLine.d.ts +34 -0
  38. package/dist/src/ATV/core/OrderLine.js +63 -0
  39. package/dist/src/ATV/core/OrderLine.js.map +1 -0
  40. package/dist/src/ATV/core/Person.d.ts +36 -0
  41. package/dist/src/ATV/core/Person.js +37 -0
  42. package/dist/src/ATV/core/Person.js.map +1 -0
  43. package/dist/src/ATV/core/Summary.type.d.ts +20 -0
  44. package/dist/src/ATV/core/Summary.type.js +3 -0
  45. package/dist/src/ATV/core/Summary.type.js.map +1 -0
  46. package/dist/src/ATV/core/documentNames.types.d.ts +1 -0
  47. package/dist/src/ATV/core/documentNames.types.js +3 -0
  48. package/dist/src/ATV/core/documentNames.types.js.map +1 -0
  49. package/dist/src/ATV/index.d.ts +32 -0
  50. package/dist/src/ATV/index.js +134 -0
  51. package/dist/src/ATV/index.js.map +1 -0
  52. package/dist/src/ATV/mappers/billDocToAtv.d.ts +5 -0
  53. package/dist/src/ATV/mappers/billDocToAtv.js +99 -0
  54. package/dist/src/ATV/mappers/billDocToAtv.js.map +1 -0
  55. package/dist/src/ATV/types.d.ts +32 -0
  56. package/dist/src/ATV/types.js +3 -0
  57. package/dist/src/ATV/types.js.map +1 -0
  58. package/dist/src/ATV/useCases/createDocument/index.d.ts +16 -0
  59. package/dist/src/ATV/useCases/createDocument/index.js +140 -0
  60. package/dist/src/ATV/useCases/createDocument/index.js.map +1 -0
  61. package/dist/src/ATV/useCases/createDocument/types.d.ts +74 -0
  62. package/dist/src/ATV/useCases/createDocument/types.js +3 -0
  63. package/dist/src/ATV/useCases/createDocument/types.js.map +1 -0
  64. package/dist/src/confirmXML.d.ts +8 -0
  65. package/dist/src/confirmXML.js +44 -0
  66. package/dist/src/confirmXML.js.map +1 -0
  67. package/dist/src/creditNote.d.ts +14 -0
  68. package/dist/src/creditNote.js +77 -0
  69. package/dist/src/creditNote.js.map +1 -0
  70. package/dist/src/data/codigoMoneda.d.ts +1 -0
  71. package/dist/src/data/codigoMoneda.js +184 -0
  72. package/dist/src/data/codigoMoneda.js.map +1 -0
  73. package/dist/src/data/exoneracion.d.ts +1 -0
  74. package/dist/src/data/exoneracion.js +15 -0
  75. package/dist/src/data/exoneracion.js.map +1 -0
  76. package/dist/src/data/impuestos.d.ts +25 -0
  77. package/dist/src/data/impuestos.js +51 -0
  78. package/dist/src/data/impuestos.js.map +1 -0
  79. package/dist/src/data/tipoCedula.d.ts +7 -0
  80. package/dist/src/data/tipoCedula.js +17 -0
  81. package/dist/src/data/tipoCedula.js.map +1 -0
  82. package/dist/src/data/tipoDocumento.d.ts +26 -0
  83. package/dist/src/data/tipoDocumento.js +30 -0
  84. package/dist/src/data/tipoDocumento.js.map +1 -0
  85. package/dist/src/data/unidadesMedida.d.ts +5 -0
  86. package/dist/src/data/unidadesMedida.js +141 -0
  87. package/dist/src/data/unidadesMedida.js.map +1 -0
  88. package/dist/src/debitNote.d.ts +14 -0
  89. package/dist/src/debitNote.js +77 -0
  90. package/dist/src/debitNote.js.map +1 -0
  91. package/dist/src/electronicBill.d.ts +3 -0
  92. package/dist/src/electronicBill.js +61 -0
  93. package/dist/src/electronicBill.js.map +1 -0
  94. package/dist/src/helpers/comprobantes.d.ts +7 -0
  95. package/dist/src/helpers/comprobantes.js +92 -0
  96. package/dist/src/helpers/comprobantes.js.map +1 -0
  97. package/dist/src/index.d.ts +2 -0
  98. package/dist/src/index.js.map +1 -0
  99. package/dist/src/lib/genClave/index.d.ts +9 -0
  100. package/dist/src/lib/genClave/index.js +119 -0
  101. package/dist/src/lib/genClave/index.js.map +1 -0
  102. package/dist/src/lib/genJSON/confirmXML.d.ts +7 -0
  103. package/dist/src/lib/genJSON/confirmXML.js +46 -0
  104. package/dist/src/lib/genJSON/confirmXML.js.map +1 -0
  105. package/dist/src/lib/genJSON/index.d.ts +5 -0
  106. package/dist/src/lib/genJSON/index.js +135 -0
  107. package/dist/src/lib/genJSON/index.js.map +1 -0
  108. package/dist/src/lib/genXML/index.d.ts +7 -0
  109. package/dist/src/lib/genXML/index.js +51 -0
  110. package/dist/src/lib/genXML/index.js.map +1 -0
  111. package/dist/src/lib/genXML/sigXML/genKeysAndCert.d.ts +6 -0
  112. package/dist/src/lib/genXML/sigXML/genKeysAndCert.js +72 -0
  113. package/dist/src/lib/genXML/sigXML/genKeysAndCert.js.map +1 -0
  114. package/dist/src/lib/genXML/sigXML/index.d.ts +1 -0
  115. package/dist/src/lib/genXML/sigXML/index.js +88 -0
  116. package/dist/src/lib/genXML/sigXML/index.js.map +1 -0
  117. package/dist/src/lib/genXML/xmlConfig.d.ts +55 -0
  118. package/dist/src/lib/genXML/xmlConfig.js +36 -0
  119. package/dist/src/lib/genXML/xmlConfig.js.map +1 -0
  120. package/dist/src/services/getToken/GetToken.d.ts +8 -0
  121. package/dist/src/services/getToken/GetToken.js +66 -0
  122. package/dist/src/services/getToken/GetToken.js.map +1 -0
  123. package/dist/src/services/getToken/__tests__/GetToken.test.d.ts +1 -0
  124. package/dist/src/services/getToken/__tests__/GetToken.test.js +86 -0
  125. package/dist/src/services/getToken/__tests__/GetToken.test.js.map +1 -0
  126. package/dist/src/services/getToken/index.d.ts +3 -0
  127. package/dist/src/services/getToken/index.js +22 -0
  128. package/dist/src/services/getToken/index.js.map +1 -0
  129. package/dist/src/services/getToken/types.d.ts +27 -0
  130. package/dist/src/services/getToken/types.js +3 -0
  131. package/dist/src/services/getToken/types.js.map +1 -0
  132. package/dist/src/services/send/index.d.ts +2 -0
  133. package/dist/src/services/send/index.js +40 -0
  134. package/dist/src/services/send/index.js.map +1 -0
  135. package/dist/src/types/xml/notaDeCredito.d.ts +21 -0
  136. package/dist/src/types/xml/notaDeCredito.js +3 -0
  137. package/dist/src/types/xml/notaDeCredito.js.map +1 -0
  138. package/dist/src/types/xml/notaDeDebito.d.ts +21 -0
  139. package/dist/src/types/xml/notaDeDebito.js +3 -0
  140. package/dist/src/types/xml/notaDeDebito.js.map +1 -0
  141. package/examples/README.md +4 -0
  142. package/examples/createAndSend.ts +1 -1
  143. package/package.json +1 -1
  144. package/src/ATV/index.ts +0 -1
  145. package/src/ATV/mappers/billDocToAtv.ts +2 -2
  146. package/src/ATV/useCases/createDocument/index.ts +2 -1
  147. package/src/ATV/useCases/createDocument/types.ts +3 -0
  148. package/src/lib/genJSON/index.ts +2 -2
  149. package/src/types/facturaInterfaces.d.ts +1 -1
  150. package/tsconfig.json +1 -1
@@ -0,0 +1,2 @@
1
+ import { CreateDocumentInput } from "../../src/ATV/useCases/createDocument/types";
2
+ export declare const createDocumentInputStub: CreateDocumentInput['document'];
@@ -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,3 @@
1
+ import { ClientPayload } from "../../src/types/globalInterfaces";
2
+ declare const requestStub: ClientPayload;
3
+ export default requestStub;
@@ -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 {};