apacuana-sdk-core 0.9.0 → 0.11.0

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 (56) hide show
  1. package/README.md +320 -236
  2. package/coverage/clover.xml +341 -212
  3. package/coverage/coverage-final.json +9 -7
  4. package/coverage/lcov-report/index.html +34 -19
  5. package/coverage/lcov-report/src/api/certs.js.html +493 -37
  6. package/coverage/lcov-report/src/api/faceLiveness.js.html +496 -0
  7. package/coverage/lcov-report/src/api/index.html +43 -28
  8. package/coverage/lcov-report/src/api/revocations.js.html +103 -106
  9. package/coverage/lcov-report/src/api/signatures.js.html +25 -253
  10. package/coverage/lcov-report/src/api/users.js.html +7 -13
  11. package/coverage/lcov-report/src/config/index.html +1 -1
  12. package/coverage/lcov-report/src/config/index.js.html +1 -1
  13. package/coverage/lcov-report/src/errors/index.html +1 -1
  14. package/coverage/lcov-report/src/errors/index.js.html +8 -8
  15. package/coverage/lcov-report/src/index.html +1 -1
  16. package/coverage/lcov-report/src/index.js.html +48 -3
  17. package/coverage/lcov-report/src/success/index.html +116 -0
  18. package/coverage/lcov-report/src/success/index.js.html +106 -0
  19. package/coverage/lcov-report/src/utils/constant.js.html +4 -4
  20. package/coverage/lcov-report/src/utils/helpers.js.html +1 -1
  21. package/coverage/lcov-report/src/utils/httpClient.js.html +1 -1
  22. package/coverage/lcov-report/src/utils/index.html +1 -1
  23. package/coverage/lcov.info +591 -352
  24. package/dist/api/certs.d.ts +13 -30
  25. package/dist/api/faceLiveness.d.ts +6 -0
  26. package/dist/api/revocations.d.ts +3 -42
  27. package/dist/api/signatures.d.ts +11 -153
  28. package/dist/index.d.ts +10 -0
  29. package/dist/index.js +630 -214
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.mjs +630 -214
  32. package/dist/index.mjs.map +1 -1
  33. package/dist/success/index.d.ts +7 -0
  34. package/dist/types/certs.d.ts +97 -0
  35. package/dist/types/faceLiveness.d.ts +10 -0
  36. package/dist/types/revocations.d.ts +40 -0
  37. package/dist/types/signatures.d.ts +152 -0
  38. package/dist/types/users.d.ts +260 -0
  39. package/package.json +1 -1
  40. package/src/api/certs.js +175 -23
  41. package/src/api/faceLiveness.js +137 -0
  42. package/src/api/revocations.js +66 -67
  43. package/src/api/signatures.js +21 -97
  44. package/src/api/users.js +4 -6
  45. package/src/index.js +16 -1
  46. package/src/success/index.js +8 -0
  47. package/src/types/certs.js +56 -0
  48. package/src/types/faceLiveness.js +7 -0
  49. package/src/types/revocations.js +25 -0
  50. package/src/types/signatures.js +77 -0
  51. package/src/types/users.js +73 -0
  52. package/tests/api/certs.test.js +209 -4
  53. package/tests/api/faceLiveness.test.js +172 -0
  54. package/tests/api/revocations.test.js +37 -37
  55. package/tests/api/signatures.test.js +11 -5
  56. package/tests/api/users.test.js +3 -2
@@ -521,135 +521,7 @@
521
521
  <a name='L456'></a><a href='#L456'>456</a>
522
522
  <a name='L457'></a><a href='#L457'>457</a>
523
523
  <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <a name='L459'></a><a href='#L459'>459</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
653
525
  <span class="cline-any cline-neutral">&nbsp;</span>
654
526
  <span class="cline-any cline-neutral">&nbsp;</span>
655
527
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -756,6 +628,8 @@
756
628
  <span class="cline-any cline-yes">1x</span>
757
629
  <span class="cline-any cline-yes">1x</span>
758
630
  <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
759
633
  <span class="cline-any cline-no">&nbsp;</span>
760
634
  <span class="cline-any cline-no">&nbsp;</span>
761
635
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -807,7 +681,6 @@
807
681
  <span class="cline-any cline-neutral">&nbsp;</span>
808
682
  <span class="cline-any cline-neutral">&nbsp;</span>
809
683
  <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
684
  <span class="cline-any cline-no">&nbsp;</span>
812
685
  <span class="cline-any cline-no">&nbsp;</span>
813
686
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -957,31 +830,6 @@
957
830
  <span class="cline-any cline-neutral">&nbsp;</span>
958
831
  <span class="cline-any cline-neutral">&nbsp;</span>
959
832
  <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-neutral">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
833
  <span class="cline-any cline-yes">2x</span>
986
834
  <span class="cline-any cline-yes">4x</span>
987
835
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1135,72 +983,20 @@
1135
983
  import { getConfig } from "../config/index";
1136
984
  import { httpRequest } from "../utils/httpClient";
1137
985
  import { ApacuanaAPIError } from "../errors";
986
+ import ApacuanaSuccess from "../success";
1138
987
  import helpers from "../utils/helpers";
1139
988
  import { INTEGRATION_TYPE } from "../utils/constant";
1140
989
  &nbsp;
1141
- // =================================================================
1142
- // Type Definitions
1143
- // =================================================================
1144
- &nbsp;
1145
- /**
1146
- * Define la estructura de un objeto Firmante.
1147
- * @typedef {object} Signer
1148
- * @property {string} name - Nombre completo del firmante.
1149
- * @property {string} email - Correo electrónico del firmante.
1150
- * @property {string} document - Documento de identidad del firmante.
1151
- */
1152
- &nbsp;
1153
- /**
1154
- * Define la estructura de datos para añadir un firmante.
1155
- * @typedef {object} SignerData
1156
- * @property {string} docId - Identificador único del documento.
1157
- */
1158
- &nbsp;
1159
- /**
1160
- * Define la estructura de la respuesta al añadir un firmante.
1161
- * @typedef {object} AddSignerResponse
1162
- * @property {string} signer - Identificador de confirmación del firmante añadido.
1163
- * @property {boolean} success - Indica si la operación fue exitosa.
1164
- */
1165
- &nbsp;
1166
- /**
1167
- * Define la estructura de datos para obtener el digest de un documento.
1168
- * @typedef {object} GetDigestData
1169
- * @property {string} cert - Certificado del firmante en formato base64.
1170
- * @property {string} signatureId - Identificador único del proceso de firma.
1171
- */
1172
- &nbsp;
1173
- /**
1174
- * Define la estructura de la respuesta al obtener el digest.
1175
- * @typedef {object} GetDigestResponse
1176
- * @property {string} digest - El digest del documento que se va a firmar.
1177
- * @property {boolean} success - Indica si la operación fue exitosa.
1178
- */
1179
- &nbsp;
1180
- /**
1181
- * Define la estructura de los parámetros para obtener documentos.
1182
- * @typedef {object} GetDocsParams
1183
- * @property {number} page - Número de página para la paginación.
1184
- * @property {number} size - Cantidad de registros por página.
1185
- * @property {string} [status] - (Opcional) Estado para filtrar los documentos.
1186
- */
1187
- &nbsp;
1188
- /**
1189
- * Define la estructura de la respuesta al obtener documentos.
1190
- * @typedef {object} GetDocsResponse
1191
- * @property {number} totalRecords - El número total de registros encontrados.
1192
- * @property {Array&lt;object&gt;} records - Un arreglo con los registros de los documentos.
1193
- * @property {boolean} success - Indica si la operación fue exitosa.
1194
- */
1195
- &nbsp;
1196
- /**
1197
- * @typedef {object} SignDocumentData
1198
- * @property {object} signature - Objeto con información de la firma.
1199
- * @property {string} signature.id - ID de la firma.
1200
- * @property {Array&lt;object&gt;} signature.positions - Posiciones de la firma.
1201
- * @property {string} cert - Certificado en base64.
1202
- * @property {string} signedDigest - Digest firmado.
1203
- */
990
+ /** @typedef {import("../types/signatures").Signer} Signer */
991
+ /** @typedef {import("../types/signatures").SignerData} SignerData */
992
+ /** @typedef {import("../types/signatures").AddSignerResponse} AddSignerResponse */
993
+ /** @typedef {import("../types/signatures").GetDigestData} GetDigestData */
994
+ /** @typedef {import("../types/signatures").GetDigestResponse} GetDigestResponse */
995
+ /** @typedef {import("../types/signatures").GetDocsParams} GetDocsParams */
996
+ /** @typedef {import("../types/signatures").GetDocsResponse} GetDocsResponse */
997
+ /** @typedef {import("../types/signatures").SignDocumentData} SignDocumentData */
998
+ /** @typedef {import("../types/signatures").SignaturePosition} SignaturePosition */
999
+ /** @typedef {import("../types/signatures").OnboardingSignerData} OnboardingSignerData */
1204
1000
  &nbsp;
1205
1001
  // =================================================================
1206
1002
  // Internal Functions
@@ -1228,7 +1024,7 @@ const signDocumentOnBoarding = async (signData) =&gt; {
1228
1024
  signBody,
1229
1025
  "PUT"
1230
1026
  );
1231
- return response;
1027
+ return new ApacuanaSuccess(response);
1232
1028
  } catch (error) {
1233
1029
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1234
1030
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -1265,7 +1061,7 @@ const getDigestToSignOnBoarding = async (signData) =&gt; {
1265
1061
  );
1266
1062
  }
1267
1063
  &nbsp;
1268
- return { digest, success: true };
1064
+ return new ApacuanaSuccess({ digest });
1269
1065
  } catch (error) {
1270
1066
  <span class="missing-if-branch" title="else path not taken" >E</span>if (error.name === "ApacuanaAPIError") {
1271
1067
  throw error;
@@ -1288,7 +1084,9 @@ const addSignerOnBoarding = async (signerData) =&gt; {
1288
1084
  helpers.validateOnBoardingSignerData(signerData);
1289
1085
  try {
1290
1086
  await httpRequest("services/api/documents/signing", signerData, "POST");
1291
- return { signer: signerData.typedoc + signerData.doc, success: true };
1087
+ return new ApacuanaSuccess({
1088
+ signer: signerData.typedoc + signerData.doc,
1089
+ });
1292
1090
  } catch (error) {
1293
1091
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1294
1092
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -1336,11 +1134,10 @@ const getDocsOnBoarding = async (data) =&gt; {
1336
1134
  &nbsp;
1337
1135
  const apiUrl = `services/api/documents/listcustomer?${params.toString()}`;
1338
1136
  const response = await httpRequest(apiUrl, {}, "GET");
1339
- return {
1137
+ return new ApacuanaSuccess({
1340
1138
  totalRecords: response.numofrecords,
1341
1139
  records: response.records,
1342
- success: true,
1343
- };
1140
+ });
1344
1141
  } catch (error) {
1345
1142
  <span class="cstat-no" title="statement not covered" > if (error.name === "ApacuanaAPIError") {</span>
1346
1143
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -1358,7 +1155,7 @@ const uploadSignatureVariantOnBoarding = async ({ file }) =&gt; {
1358
1155
  { file },
1359
1156
  "POST"
1360
1157
  );
1361
- return { ...response, success: true };
1158
+ return new ApacuanaSuccess(response);
1362
1159
  } catch (error) {
1363
1160
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1364
1161
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -1385,7 +1182,7 @@ const getSignatureVariantOnBoarding = async () =&gt; {
1385
1182
  {},
1386
1183
  "GET"
1387
1184
  );
1388
- return { ...response, success: true };
1185
+ return new ApacuanaSuccess(response);
1389
1186
  } catch (error) {
1390
1187
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1391
1188
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -1411,7 +1208,7 @@ const deleteSignatureVariantOnBoarding = async () =&gt; {
1411
1208
  {},
1412
1209
  "DELETE"
1413
1210
  );
1414
- return { ...response, success: true };
1211
+ return new ApacuanaSuccess(response);
1415
1212
  } catch (error) {
1416
1213
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1417
1214
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -1491,31 +1288,6 @@ export const getDigest = async (signData) =&gt; {
1491
1288
  * @returns {Promise&lt;AddSignerResponse&gt;} Una promesa que resuelve a un objeto con el resultado de la operación.
1492
1289
  * @throws {ApacuanaAPIError} Si los datos del firmante son inválidos, la llamada a la API falla, o el tipo de integración no es soportado.
1493
1290
  */
1494
- /**
1495
- * @typedef {object} SignaturePosition
1496
- * @property {number} page - The page number for the signature.
1497
- * @property {number} x - The x-coordinate for the signature's position (from 0 to 1).
1498
- * @property {number} y - The y-coordinate for the signature's position (from 0 to 1).
1499
- */
1500
- &nbsp;
1501
- /**
1502
- * @typedef {object} OnboardingSignerData
1503
- * @property {string} name - The name of the document.
1504
- * @property {string} reference - An external reference for the document.
1505
- * @property {string} typedoc - The type of document of the signer (e.g., "V", "E", "J").
1506
- * @property {string} doc - The document number of the signer.
1507
- * @property {SignaturePosition[]} signature - An array of signature positions.
1508
- */
1509
- &nbsp;
1510
- /**
1511
- * Adds a new signer to the signature process.
1512
- * This function acts as a dispatcher, delegating to the appropriate implementation
1513
- * based on the configured integration type.
1514
- *
1515
- * @param {OnboardingSignerData | object} signerData - The signer's data. The structure depends on the integration type.
1516
- * @returns {Promise&lt;object&gt;} The result from the API.
1517
- * @throws {ApacuanaAPIError} If signerData is invalid or if the integration type is not supported.
1518
- */
1519
1291
  export const addSigner = async (signerData) =&gt; {
1520
1292
  if (
1521
1293
  !signerData ||
@@ -1672,7 +1444,7 @@ export const deleteSignatureVariant = async () =&gt; {
1672
1444
  <div class='footer quiet pad2 space-top1 center small'>
1673
1445
  Code coverage generated by
1674
1446
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1675
- at 2025-09-05T13:42:51.598Z
1447
+ at 2025-09-11T22:20:22.994Z
1676
1448
  </div>
1677
1449
  <script src="../../prettify.js"></script>
1678
1450
  <script>
@@ -130,9 +130,8 @@
130
130
  <a name='L65'></a><a href='#L65'>65</a>
131
131
  <a name='L66'></a><a href='#L66'>66</a>
132
132
  <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
133
+ <a name='L68'></a><a href='#L68'>68</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
135
  <span class="cline-any cline-neutral">&nbsp;</span>
137
136
  <span class="cline-any cline-neutral">&nbsp;</span>
138
137
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -188,7 +187,6 @@
188
187
  <span class="cline-any cline-neutral">&nbsp;</span>
189
188
  <span class="cline-any cline-neutral">&nbsp;</span>
190
189
  <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
190
  <span class="cline-any cline-yes">3x</span>
193
191
  <span class="cline-any cline-yes">2x</span>
194
192
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -199,11 +197,10 @@
199
197
  <span class="cline-any cline-neutral">&nbsp;</span>
200
198
  <span class="cline-any cline-neutral">&nbsp;</span>
201
199
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
200
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { httpRequest } from "../utils/httpClient";
205
201
  import { ApacuanaAPIError } from "../errors/index";
206
202
  import { getConfig } from "../config/index";
203
+ import ApacuanaSuccess from "../success";
207
204
  &nbsp;
208
205
  /**
209
206
  * @typedef {object} GetCustomerResponse
@@ -252,19 +249,16 @@ const getCustomer = async () =&gt; {
252
249
  );
253
250
  }
254
251
  &nbsp;
255
- return {
252
+ return new ApacuanaSuccess({
256
253
  token: response.sessionid,
257
254
  userData: response.entry,
258
- success: true,
259
- };
255
+ });
260
256
  } catch (error) {
261
257
  if (error instanceof ApacuanaAPIError) {
262
258
  throw error;
263
259
  }
264
260
  throw new ApacuanaAPIError(
265
- `Unexpected failure getting token: ${
266
- error.message || <span class="branch-1 cbranch-no" title="branch not covered" >"Unknown error"</span>
267
- }`
261
+ `Unexpected failure getting token: ${error.message || <span class="branch-1 cbranch-no" title="branch not covered" >"Unknown error"}</span>`
268
262
  );
269
263
  }
270
264
  };
@@ -277,7 +271,7 @@ export default getCustomer;
277
271
  <div class='footer quiet pad2 space-top1 center small'>
278
272
  Code coverage generated by
279
273
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
280
- at 2025-09-05T13:42:51.598Z
274
+ at 2025-09-11T22:20:22.994Z
281
275
  </div>
282
276
  <script src="../../prettify.js"></script>
283
277
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-09-05T13:42:51.598Z
104
+ at 2025-09-11T22:20:22.994Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -241,7 +241,7 @@ export const close = <span class="fstat-no" title="function not covered" >()</sp
241
241
  <div class='footer quiet pad2 space-top1 center small'>
242
242
  Code coverage generated by
243
243
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
244
- at 2025-09-05T13:42:51.598Z
244
+ at 2025-09-11T22:20:22.994Z
245
245
  </div>
246
246
  <script src="../../prettify.js"></script>
247
247
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-09-05T13:42:51.598Z
104
+ at 2025-09-11T22:20:22.994Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -91,15 +91,15 @@
91
91
  <span class="cline-any cline-neutral">&nbsp;</span>
92
92
  <span class="cline-any cline-neutral">&nbsp;</span>
93
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
- <span class="cline-any cline-yes">53x</span>
95
- <span class="cline-any cline-yes">53x</span>
96
- <span class="cline-any cline-yes">53x</span>
97
- <span class="cline-any cline-yes">53x</span>
98
- <span class="cline-any cline-yes">53x</span>
94
+ <span class="cline-any cline-yes">83x</span>
95
+ <span class="cline-any cline-yes">83x</span>
96
+ <span class="cline-any cline-yes">83x</span>
97
+ <span class="cline-any cline-yes">83x</span>
98
+ <span class="cline-any cline-yes">83x</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
100
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
- <span class="cline-any cline-yes">53x</span>
102
- <span class="cline-any cline-yes">53x</span>
101
+ <span class="cline-any cline-yes">83x</span>
102
+ <span class="cline-any cline-yes">83x</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -133,7 +133,7 @@ export default ApacuanaAPIError;
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at 2025-09-05T13:42:51.598Z
136
+ at 2025-09-11T22:20:22.994Z
137
137
  </div>
138
138
  <script src="../../prettify.js"></script>
139
139
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-09-05T13:42:51.598Z
104
+ at 2025-09-11T22:20:22.994Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -129,7 +129,32 @@
129
129
  <a name='L64'></a><a href='#L64'>64</a>
130
130
  <a name='L65'></a><a href='#L65'>65</a>
131
131
  <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
158
  <span class="cline-any cline-neutral">&nbsp;</span>
134
159
  <span class="cline-any cline-neutral">&nbsp;</span>
135
160
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -195,11 +220,22 @@
195
220
  <span class="cline-any cline-neutral">&nbsp;</span>
196
221
  <span class="cline-any cline-neutral">&nbsp;</span>
197
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
228
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { setConfig, getConfig, close } from "./config/index";
199
229
  import { initHttpClient, setAuthToken } from "./utils/httpClient";
200
230
  import getCustomer from "./api/users";
201
231
  import { requestRevocation, getRevocationReasons } from "./api/revocations";
202
- import { generateCert, getCertStatus } from "./api/certs";
232
+ import {
233
+ generateCert,
234
+ getCertStatus,
235
+ getCertTypes,
236
+ getRequerimentsByTypeUser,
237
+ requestCertificate,
238
+ } from "./api/certs";
203
239
  import {
204
240
  addSigner,
205
241
  deleteSignatureVariant,
@@ -209,6 +245,10 @@ import {
209
245
  signDocument,
210
246
  uploadSignatureVariant,
211
247
  } from "./api/signatures";
248
+ import {
249
+ createFaceLivenessSession,
250
+ validateFaceLiveness,
251
+ } from "./api/faceLiveness";
212
252
  &nbsp;
213
253
  const apacuana = {
214
254
  /**
@@ -258,6 +298,11 @@ const apacuana = {
258
298
  uploadSignatureVariant,
259
299
  getSignatureVariant,
260
300
  deleteSignatureVariant,
301
+ getCertTypes,
302
+ getRequerimentsByTypeUser,
303
+ createFaceLivenessSession,
304
+ validateFaceLiveness,
305
+ requestCertificate,
261
306
  };
262
307
  &nbsp;
263
308
  export default apacuana;
@@ -268,7 +313,7 @@ export default apacuana;
268
313
  <div class='footer quiet pad2 space-top1 center small'>
269
314
  Code coverage generated by
270
315
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
271
- at 2025-09-05T13:42:51.598Z
316
+ at 2025-09-11T22:20:22.994Z
272
317
  </div>
273
318
  <script src="../prettify.js"></script>
274
319
  <script>