apacuana-sdk-core 0.10.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 +305 -286
  2. package/coverage/clover.xml +337 -243
  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 +162 -87
  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 +26 -2
  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 +582 -406
  24. package/dist/api/certs.d.ts +9 -70
  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 +6 -0
  29. package/dist/index.js +463 -252
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.mjs +463 -252
  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 +74 -49
  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 +8 -0
  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 +99 -6
  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
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">61.18% </span>
26
+ <span class="strong">67.08% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>238/389</span>
28
+ <span class='fraction'>318/474</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">32.28% </span>
33
+ <span class="strong">40% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>92/285</span>
35
+ <span class='fraction'>132/330</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">63.79% </span>
40
+ <span class="strong">69.44% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>37/58</span>
42
+ <span class='fraction'>50/72</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">61.81% </span>
47
+ <span class="strong">67.65% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>238/385</span>
49
+ <span class='fraction'>318/470</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,17 +95,17 @@
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="src/api"><a href="src/api/index.html">src/api</a></td>
98
- <td data-value="86.89" class="pic high">
99
- <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
98
+ <td data-value="88.7" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
100
100
  </td>
101
- <td data-value="86.89" class="pct high">86.89%</td>
102
- <td data-value="229" class="abs high">199/229</td>
103
- <td data-value="73.33" class="pct medium">73.33%</td>
104
- <td data-value="120" class="abs medium">88/120</td>
105
- <td data-value="100" class="pct high">100%</td>
106
- <td data-value="35" class="abs high">35/35</td>
107
- <td data-value="86.89" class="pct high">86.89%</td>
108
- <td data-value="229" class="abs high">199/229</td>
101
+ <td data-value="88.7" class="pct high">88.7%</td>
102
+ <td data-value="310" class="abs high">275/310</td>
103
+ <td data-value="77.43" class="pct medium">77.43%</td>
104
+ <td data-value="164" class="abs medium">127/164</td>
105
+ <td data-value="97.91" class="pct high">97.91%</td>
106
+ <td data-value="48" class="abs high">47/48</td>
107
+ <td data-value="88.7" class="pct high">88.7%</td>
108
+ <td data-value="310" class="abs high">275/310</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
@@ -138,6 +138,21 @@
138
138
  <td data-value="7" class="abs high">7/7</td>
139
139
  </tr>
140
140
 
141
+ <tr>
142
+ <td class="file high" data-value="src/success"><a href="src/success/index.html">src/success</a></td>
143
+ <td data-value="100" class="pic high">
144
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
145
+ </td>
146
+ <td data-value="100" class="pct high">100%</td>
147
+ <td data-value="4" class="abs high">4/4</td>
148
+ <td data-value="100" class="pct high">100%</td>
149
+ <td data-value="1" class="abs high">1/1</td>
150
+ <td data-value="100" class="pct high">100%</td>
151
+ <td data-value="1" class="abs high">1/1</td>
152
+ <td data-value="100" class="pct high">100%</td>
153
+ <td data-value="4" class="abs high">4/4</td>
154
+ </tr>
155
+
141
156
  <tr>
142
157
  <td class="file low" data-value="src/utils"><a href="src/utils/index.html">src/utils</a></td>
143
158
  <td data-value="11.9" class="pic low">
@@ -161,7 +176,7 @@
161
176
  <div class='footer quiet pad2 space-top1 center small'>
162
177
  Code coverage generated by
163
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at 2025-09-05T15:19:06.305Z
179
+ at 2025-09-11T22:20:22.994Z
165
180
  </div>
166
181
  <script src="prettify.js"></script>
167
182
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.05% </span>
26
+ <span class="strong">89.61% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>49/59</span>
28
+ <span class='fraction'>69/77</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">70.37% </span>
33
+ <span class="strong">81.57% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>19/27</span>
35
+ <span class='fraction'>31/38</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>10/10</span>
42
+ <span class='fraction'>13/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.05% </span>
47
+ <span class="strong">89.61% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/59</span>
49
+ <span class='fraction'>69/77</span>
50
50
  </div>
51
51
 
52
52
 
@@ -291,13 +291,32 @@
291
291
  <a name='L226'></a><a href='#L226'>226</a>
292
292
  <a name='L227'></a><a href='#L227'>227</a>
293
293
  <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
301
320
  <span class="cline-any cline-neutral">&nbsp;</span>
302
321
  <span class="cline-any cline-neutral">&nbsp;</span>
303
322
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -390,39 +409,46 @@
390
409
  <span class="cline-any cline-yes">1x</span>
391
410
  <span class="cline-any cline-neutral">&nbsp;</span>
392
411
  <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-yes">2x</span>
413
+ <span class="cline-any cline-yes">1x</span>
414
+ <span class="cline-any cline-yes">1x</span>
393
415
  <span class="cline-any cline-neutral">&nbsp;</span>
394
416
  <span class="cline-any cline-neutral">&nbsp;</span>
395
417
  <span class="cline-any cline-neutral">&nbsp;</span>
396
418
  <span class="cline-any cline-neutral">&nbsp;</span>
397
419
  <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-yes">1x</span>
398
421
  <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-no">&nbsp;</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
399
424
  <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
400
426
  <span class="cline-any cline-neutral">&nbsp;</span>
401
427
  <span class="cline-any cline-neutral">&nbsp;</span>
402
428
  <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-yes">2x</span>
430
+ <span class="cline-any cline-yes">1x</span>
403
431
  <span class="cline-any cline-neutral">&nbsp;</span>
404
432
  <span class="cline-any cline-neutral">&nbsp;</span>
405
433
  <span class="cline-any cline-neutral">&nbsp;</span>
406
434
  <span class="cline-any cline-neutral">&nbsp;</span>
407
435
  <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">2x</span>
409
- <span class="cline-any cline-yes">1x</span>
410
- <span class="cline-any cline-yes">1x</span>
411
436
  <span class="cline-any cline-neutral">&nbsp;</span>
412
437
  <span class="cline-any cline-neutral">&nbsp;</span>
413
438
  <span class="cline-any cline-neutral">&nbsp;</span>
414
439
  <span class="cline-any cline-neutral">&nbsp;</span>
415
440
  <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-yes">1x</span>
417
441
  <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-no">&nbsp;</span>
419
- <span class="cline-any cline-no">&nbsp;</span>
420
442
  <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
443
+ <span class="cline-any cline-yes">2x</span>
444
+ <span class="cline-any cline-yes">3x</span>
445
+ <span class="cline-any cline-yes">3x</span>
446
+ <span class="cline-any cline-yes">1x</span>
422
447
  <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-yes">2x</span>
449
+ <span class="cline-any cline-yes">1x</span>
423
450
  <span class="cline-any cline-neutral">&nbsp;</span>
424
451
  <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">2x</span>
426
452
  <span class="cline-any cline-yes">1x</span>
427
453
  <span class="cline-any cline-neutral">&nbsp;</span>
428
454
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -430,21 +456,24 @@
430
456
  <span class="cline-any cline-neutral">&nbsp;</span>
431
457
  <span class="cline-any cline-neutral">&nbsp;</span>
432
458
  <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-yes">2x</span>
460
+ <span class="cline-any cline-yes">2x</span>
461
+ <span class="cline-any cline-yes">2x</span>
433
462
  <span class="cline-any cline-neutral">&nbsp;</span>
434
463
  <span class="cline-any cline-neutral">&nbsp;</span>
435
464
  <span class="cline-any cline-neutral">&nbsp;</span>
436
465
  <span class="cline-any cline-neutral">&nbsp;</span>
437
466
  <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-yes">1x</span>
438
468
  <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-yes">2x</span>
440
- <span class="cline-any cline-yes">3x</span>
441
- <span class="cline-any cline-yes">3x</span>
442
469
  <span class="cline-any cline-yes">1x</span>
470
+ <span class="cline-any cline-no">&nbsp;</span>
443
471
  <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-yes">2x</span>
445
472
  <span class="cline-any cline-yes">1x</span>
446
473
  <span class="cline-any cline-neutral">&nbsp;</span>
447
474
  <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-yes">2x</span>
448
477
  <span class="cline-any cline-yes">1x</span>
449
478
  <span class="cline-any cline-neutral">&nbsp;</span>
450
479
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -460,30 +489,48 @@
460
489
  <span class="cline-any cline-neutral">&nbsp;</span>
461
490
  <span class="cline-any cline-neutral">&nbsp;</span>
462
491
  <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-yes">2x</span>
493
+ <span class="cline-any cline-yes">7x</span>
494
+ <span class="cline-any cline-yes">3x</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
496
  <span class="cline-any cline-neutral">&nbsp;</span>
464
497
  <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-yes">4x</span>
465
499
  <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-yes">4x</span>
501
+ <span class="cline-any cline-yes">4x</span>
502
+ <span class="cline-any cline-yes">2x</span>
466
503
  <span class="cline-any cline-neutral">&nbsp;</span>
467
504
  <span class="cline-any cline-yes">2x</span>
468
505
  <span class="cline-any cline-yes">1x</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
508
  <span class="cline-any cline-yes">1x</span>
470
509
  <span class="cline-any cline-neutral">&nbsp;</span>
471
510
  <span class="cline-any cline-neutral">&nbsp;</span>
472
511
  <span class="cline-any cline-neutral">&nbsp;</span>
473
512
  <span class="cline-any cline-neutral">&nbsp;</span>
474
513
  <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-yes">1x</span>
476
514
  <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-no">&nbsp;</span>
515
+ <span class="cline-any cline-yes">2x</span>
516
+ <span class="cline-any cline-yes">3x</span>
517
+ <span class="cline-any cline-yes">3x</span>
479
518
  <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-no">&nbsp;</span>
481
519
  <span class="cline-any cline-neutral">&nbsp;</span>
482
520
  <span class="cline-any cline-neutral">&nbsp;</span>
483
521
  <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-yes">1x</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
525
  <span class="cline-any cline-yes">2x</span>
485
526
  <span class="cline-any cline-yes">1x</span>
486
527
  <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-yes">1x</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
+ <span class="cline-any cline-yes">2x</span>
533
+ <span class="cline-any cline-yes">1x</span>
487
534
  <span class="cline-any cline-neutral">&nbsp;</span>
488
535
  <span class="cline-any cline-neutral">&nbsp;</span>
489
536
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -498,16 +545,19 @@
498
545
  <span class="cline-any cline-neutral">&nbsp;</span>
499
546
  <span class="cline-any cline-neutral">&nbsp;</span>
500
547
  <span class="cline-any cline-yes">2x</span>
501
- <span class="cline-any cline-yes">6x</span>
502
- <span class="cline-any cline-yes">3x</span>
548
+ <span class="cline-any cline-yes">8x</span>
503
549
  <span class="cline-any cline-neutral">&nbsp;</span>
504
550
  <span class="cline-any cline-neutral">&nbsp;</span>
505
551
  <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-yes">3x</span>
507
552
  <span class="cline-any cline-neutral">&nbsp;</span>
508
553
  <span class="cline-any cline-yes">3x</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-yes">5x</span>
559
+ <span class="cline-any cline-yes">5x</span>
509
560
  <span class="cline-any cline-yes">3x</span>
510
- <span class="cline-any cline-yes">1x</span>
511
561
  <span class="cline-any cline-neutral">&nbsp;</span>
512
562
  <span class="cline-any cline-yes">2x</span>
513
563
  <span class="cline-any cline-yes">1x</span>
@@ -519,30 +569,24 @@
519
569
  <span class="cline-any cline-neutral">&nbsp;</span>
520
570
  <span class="cline-any cline-neutral">&nbsp;</span>
521
571
  <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { getConfig } from "../config/index";
572
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
573
+ * @typedef {import('../types/users').UserData} UserData
574
+ * @typedef {import('../types/certs').GenerateCertResponse} GenerateCertResponse
575
+ * @typedef {import('../types/certs').GetCertStatusResponse} GetCertStatusResponse
576
+ * @typedef {import('../types/certs').EncryptedCSRObject} EncryptedCSRObject
577
+ * @typedef {import('../types/certs').GetCertTypesResponse} GetCertTypesResponse
578
+ * @typedef {import('../types/certs').GetRequirementsResponse} GetRequirementsResponse
579
+ * @typedef {import('../types/certs').CertificateRequestParams} CertificateRequestParams
580
+ * @typedef {import('../types/certs').RequestCertificateResponse} RequestCertificateResponse
581
+ */
582
+ &nbsp;
583
+ import { getConfig } from "../config/index";
523
584
  import { httpRequest } from "../utils/httpClient";
524
585
  import helpers from "../utils/helpers";
525
586
  import { ApacuanaAPIError } from "../errors";
587
+ import ApacuanaSuccess from "../success";
526
588
  import { INTEGRATION_TYPE } from "../utils/constant";
527
589
  &nbsp;
528
- /**
529
- * @typedef {object} GenerateCertResponse
530
- * @property {string} cert - El certificado generado en formato string.
531
- * @property {string} certifiedid - El ID del certificado generado.
532
- * @property {boolean} success - Indica si la operación fue exitosa.
533
- */
534
- &nbsp;
535
- /**
536
- * @typedef {object} GetCertStatusResponse
537
- * @property {string} status - El estado actual del certificado del usuario.
538
- * @property {boolean} success - Indica si la operación fue exitosa.
539
- */
540
- &nbsp;
541
- /**
542
- * @typedef {object} EncryptedCSRObject
543
- * @property {string} csr - The encrypted Certificate Signing Request.
544
- */
545
- &nbsp;
546
590
  /**
547
591
  * @param {EncryptedCSRObject} encryptedCSR
548
592
  */
@@ -562,7 +606,7 @@ const generateCertOnBoarding = async (encryptedCSR) =&gt; {
562
606
  );
563
607
  }
564
608
  &nbsp;
565
- return { cert, certifiedid, success: true };
609
+ return new ApacuanaSuccess({ cert, certifiedid });
566
610
  } catch (error) {
567
611
  // The captured error is re-thrown, which will already be of type ApacuanaAPIError or a native Error.
568
612
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
@@ -615,24 +659,9 @@ export const getCertStatus = (isCertificateInDevice = <span class="branch-0 cbra
615
659
  config.userData,
616
660
  isCertificateInDevice
617
661
  );
618
- return {
619
- status,
620
- success: true,
621
- };
662
+ return new ApacuanaSuccess({ status });
622
663
  };
623
664
  &nbsp;
624
- /**
625
- * @typedef {object} CertType
626
- * @property {string} id - The ID of the certificate type.
627
- * @property {string} name - The name of the certificate type.
628
- */
629
- &nbsp;
630
- /**
631
- * @typedef {object} GetCertTypesResponse
632
- * @property {Array&lt;CertType&gt;} types - A list of available certificate types.
633
- * @property {boolean} success - Indicates if the operation was successful.
634
- */
635
- &nbsp;
636
665
  const getCertTypesOnBoarding = async () =&gt; {
637
666
  try {
638
667
  const response = await httpRequest(
@@ -641,7 +670,7 @@ const getCertTypesOnBoarding = async () =&gt; {
641
670
  "GET"
642
671
  );
643
672
  &nbsp;
644
- return { ...response, success: true };
673
+ return new ApacuanaSuccess(response);
645
674
  } catch (error) {
646
675
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
647
676
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -680,18 +709,6 @@ export const getCertTypes = async () =&gt; {
680
709
  );
681
710
  };
682
711
  &nbsp;
683
- /**
684
- * @typedef {object} Requirement
685
- * @property {string} id - The ID of the requirement.
686
- * @property {string} description - The description of the requirement.
687
- */
688
- &nbsp;
689
- /**
690
- * @typedef {object} GetRequirementsResponse
691
- * @property {Array&lt;Requirement&gt;} requirements - A list of requirements for the user type.
692
- * @property {boolean} success - Indicates if the operation was successful.
693
- */
694
- &nbsp;
695
712
  const getRequerimentsByTypeUserOnBoarding = async (type) =&gt; {
696
713
  try {
697
714
  const response = await httpRequest(
@@ -700,12 +717,12 @@ const getRequerimentsByTypeUserOnBoarding = async (type) =&gt; {
700
717
  "GET"
701
718
  );
702
719
  &nbsp;
703
- return { ...response, success: true };
720
+ return new ApacuanaSuccess(response);
704
721
  } catch (error) {
705
- <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
722
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (error instanceof ApacuanaAPIError) {
706
723
  <span class="cstat-no" title="statement not covered" > throw error;</span>
707
724
  }
708
- <span class="cstat-no" title="statement not covered" > throw new Error(`Failed to get requirements: ${error.message}`);</span>
725
+ throw new Error(`Failed to get requirements: ${error.message}`);
709
726
  }
710
727
  };
711
728
  &nbsp;
@@ -747,6 +764,64 @@ export const getRequerimentsByTypeUser = async (params) =&gt; {
747
764
  "UNSUPPORTED_INTEGRATION_TYPE"
748
765
  );
749
766
  };
767
+ &nbsp;
768
+ const requestCertificateOnBoarding = async (params) =&gt; {
769
+ try {
770
+ const response = await httpRequest(
771
+ "services/api/customer/request-certificate",
772
+ params,
773
+ "POST"
774
+ );
775
+ &nbsp;
776
+ return new ApacuanaSuccess(response);
777
+ } catch (error) {
778
+ if (error instanceof ApacuanaAPIError) {
779
+ throw error;
780
+ }
781
+ throw new Error(`Failed to request certificate: ${error.message}`);
782
+ }
783
+ };
784
+ &nbsp;
785
+ const requestCertificateOnPremise = async () =&gt; {
786
+ throw new ApacuanaAPIError(
787
+ "Requesting a certificate is not supported for integration type: ONPREMISE",
788
+ 501,
789
+ "NOT_IMPLEMENTED"
790
+ );
791
+ };
792
+ &nbsp;
793
+ /**
794
+ * Requests a certificate for the user.
795
+ * @param {CertificateRequestParams} params - The parameters for the certificate request.
796
+ * @returns {Promise&lt;RequestCertificateResponse&gt;} Object with a confirmation message and a success indicator.
797
+ * @throws {ApacuanaAPIError} If the API response is invalid or the integration type is not supported.
798
+ * @throws {Error} If the request fails for another reason or the params are invalid.
799
+ */
800
+ export const requestCertificate = async (params) =&gt; {
801
+ if (
802
+ !params ||
803
+ typeof params.type !== "number" ||
804
+ !Array.isArray(params.documents)
805
+ ) {
806
+ throw new Error(
807
+ 'The "params" object with a numeric "type" property and a "documents" array is required.'
808
+ );
809
+ }
810
+ &nbsp;
811
+ const { integrationType } = getConfig();
812
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
813
+ return requestCertificateOnBoarding(params);
814
+ }
815
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
816
+ return requestCertificateOnPremise();
817
+ }
818
+ &nbsp;
819
+ throw new ApacuanaAPIError(
820
+ `Unsupported integration type: ${integrationType}`,
821
+ 400,
822
+ "UNSUPPORTED_INTEGRATION_TYPE"
823
+ );
824
+ };
750
825
  &nbsp;</pre></td></tr></table></pre>
751
826
 
752
827
  <div class='push'></div><!-- for sticky footer -->
@@ -754,7 +829,7 @@ export const getRequerimentsByTypeUser = async (params) =&gt; {
754
829
  <div class='footer quiet pad2 space-top1 center small'>
755
830
  Code coverage generated by
756
831
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
757
- at 2025-09-05T15:19:06.305Z
832
+ at 2025-09-11T22:20:22.994Z
758
833
  </div>
759
834
  <script src="../../prettify.js"></script>
760
835
  <script>