apacuana-sdk-core 0.7.0 → 0.9.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 (35) hide show
  1. package/README.md +93 -8
  2. package/coverage/clover.xml +198 -131
  3. package/coverage/coverage-final.json +7 -7
  4. package/coverage/lcov-report/index.html +35 -35
  5. package/coverage/lcov-report/src/api/certs.js.html +1 -1
  6. package/coverage/lcov-report/src/api/index.html +32 -32
  7. package/coverage/lcov-report/src/api/revocations.js.html +79 -43
  8. package/coverage/lcov-report/src/api/signatures.js.html +595 -73
  9. package/coverage/lcov-report/src/api/users.js.html +1 -1
  10. package/coverage/lcov-report/src/config/index.html +11 -11
  11. package/coverage/lcov-report/src/config/index.js.html +12 -15
  12. package/coverage/lcov-report/src/errors/index.html +1 -1
  13. package/coverage/lcov-report/src/errors/index.js.html +8 -8
  14. package/coverage/lcov-report/src/index.html +1 -1
  15. package/coverage/lcov-report/src/index.js.html +38 -5
  16. package/coverage/lcov-report/src/utils/constant.js.html +4 -4
  17. package/coverage/lcov-report/src/utils/helpers.js.html +1 -1
  18. package/coverage/lcov-report/src/utils/httpClient.js.html +65 -35
  19. package/coverage/lcov-report/src/utils/index.html +15 -15
  20. package/coverage/lcov.info +353 -222
  21. package/dist/api/signatures.d.ts +5 -0
  22. package/dist/config/index.d.ts +1 -1
  23. package/dist/index.d.ts +6 -0
  24. package/dist/index.js +377 -83
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +377 -83
  27. package/dist/index.mjs.map +1 -1
  28. package/package.json +1 -1
  29. package/src/api/revocations.js +14 -2
  30. package/src/api/signatures.js +174 -0
  31. package/src/config/index.js +1 -2
  32. package/src/index.js +14 -3
  33. package/src/utils/httpClient.js +29 -19
  34. package/tests/api/revocations.test.js +118 -5
  35. package/tests/api/signatures.test.js +306 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">50.6% </span>
26
+ <span class="strong">85.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>42/83</span>
28
+ <span class='fraction'>118/138</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">38.46% </span>
33
+ <span class="strong">68.49% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/39</span>
35
+ <span class='fraction'>50/73</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">46.15% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/13</span>
42
+ <span class='fraction'>22/22</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">50.6% </span>
47
+ <span class="strong">85.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>42/83</span>
49
+ <span class='fraction'>118/138</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -423,7 +423,181 @@
423
423
  <a name='L358'></a><a href='#L358'>358</a>
424
424
  <a name='L359'></a><a href='#L359'>359</a>
425
425
  <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
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>
427
601
  <span class="cline-any cline-neutral">&nbsp;</span>
428
602
  <span class="cline-any cline-neutral">&nbsp;</span>
429
603
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -499,12 +673,12 @@
499
673
  <span class="cline-any cline-neutral">&nbsp;</span>
500
674
  <span class="cline-any cline-neutral">&nbsp;</span>
501
675
  <span class="cline-any cline-yes">2x</span>
502
- <span class="cline-any cline-no">&nbsp;</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-no">&nbsp;</span>
676
+ <span class="cline-any cline-yes">1x</span>
677
+ <span class="cline-any cline-yes">1x</span>
678
+ <span class="cline-any cline-yes">1x</span>
679
+ <span class="cline-any cline-yes">1x</span>
506
680
  <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-no">&nbsp;</span>
681
+ <span class="cline-any cline-yes">1x</span>
508
682
  <span class="cline-any cline-neutral">&nbsp;</span>
509
683
  <span class="cline-any cline-neutral">&nbsp;</span>
510
684
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -515,12 +689,12 @@
515
689
  <span class="cline-any cline-neutral">&nbsp;</span>
516
690
  <span class="cline-any cline-neutral">&nbsp;</span>
517
691
  <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-no">&nbsp;</span>
692
+ <span class="cline-any cline-yes">1x</span>
519
693
  <span class="cline-any cline-neutral">&nbsp;</span>
520
694
  <span class="cline-any cline-neutral">&nbsp;</span>
521
695
  <span class="cline-any cline-neutral">&nbsp;</span>
522
696
  <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-no">&nbsp;</span>
697
+ <span class="cline-any cline-yes">1x</span>
524
698
  <span class="cline-any cline-neutral">&nbsp;</span>
525
699
  <span class="cline-any cline-no">&nbsp;</span>
526
700
  <span class="cline-any cline-no">&nbsp;</span>
@@ -532,7 +706,7 @@
532
706
  <span class="cline-any cline-neutral">&nbsp;</span>
533
707
  <span class="cline-any cline-neutral">&nbsp;</span>
534
708
  <span class="cline-any cline-yes">2x</span>
535
- <span class="cline-any cline-no">&nbsp;</span>
709
+ <span class="cline-any cline-yes">1x</span>
536
710
  <span class="cline-any cline-neutral">&nbsp;</span>
537
711
  <span class="cline-any cline-neutral">&nbsp;</span>
538
712
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -540,27 +714,27 @@
540
714
  <span class="cline-any cline-neutral">&nbsp;</span>
541
715
  <span class="cline-any cline-neutral">&nbsp;</span>
542
716
  <span class="cline-any cline-yes">2x</span>
543
- <span class="cline-any cline-no">&nbsp;</span>
544
- <span class="cline-any cline-no">&nbsp;</span>
717
+ <span class="cline-any cline-yes">2x</span>
718
+ <span class="cline-any cline-yes">2x</span>
545
719
  <span class="cline-any cline-neutral">&nbsp;</span>
546
720
  <span class="cline-any cline-neutral">&nbsp;</span>
547
721
  <span class="cline-any cline-neutral">&nbsp;</span>
548
722
  <span class="cline-any cline-neutral">&nbsp;</span>
549
723
  <span class="cline-any cline-neutral">&nbsp;</span>
550
724
  <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
552
- <span class="cline-any cline-no">&nbsp;</span>
553
- <span class="cline-any cline-no">&nbsp;</span>
725
+ <span class="cline-any cline-yes">2x</span>
726
+ <span class="cline-any cline-yes">2x</span>
727
+ <span class="cline-any cline-yes">1x</span>
554
728
  <span class="cline-any cline-neutral">&nbsp;</span>
555
729
  <span class="cline-any cline-neutral">&nbsp;</span>
556
730
  <span class="cline-any cline-neutral">&nbsp;</span>
557
731
  <span class="cline-any cline-neutral">&nbsp;</span>
558
732
  <span class="cline-any cline-neutral">&nbsp;</span>
559
733
  <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
734
+ <span class="cline-any cline-yes">1x</span>
561
735
  <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-no">&nbsp;</span>
563
- <span class="cline-any cline-no">&nbsp;</span>
736
+ <span class="cline-any cline-yes">1x</span>
737
+ <span class="cline-any cline-yes">1x</span>
564
738
  <span class="cline-any cline-neutral">&nbsp;</span>
565
739
  <span class="cline-any cline-no">&nbsp;</span>
566
740
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -569,7 +743,7 @@
569
743
  <span class="cline-any cline-neutral">&nbsp;</span>
570
744
  <span class="cline-any cline-neutral">&nbsp;</span>
571
745
  <span class="cline-any cline-yes">2x</span>
572
- <span class="cline-any cline-no">&nbsp;</span>
746
+ <span class="cline-any cline-yes">1x</span>
573
747
  <span class="cline-any cline-neutral">&nbsp;</span>
574
748
  <span class="cline-any cline-neutral">&nbsp;</span>
575
749
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -643,34 +817,89 @@
643
817
  <span class="cline-any cline-neutral">&nbsp;</span>
644
818
  <span class="cline-any cline-neutral">&nbsp;</span>
645
819
  <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-yes">2x</span>
821
+ <span class="cline-any cline-yes">1x</span>
822
+ <span class="cline-any cline-yes">1x</span>
646
823
  <span class="cline-any cline-neutral">&nbsp;</span>
647
824
  <span class="cline-any cline-neutral">&nbsp;</span>
648
825
  <span class="cline-any cline-neutral">&nbsp;</span>
649
826
  <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-yes">1x</span>
650
828
  <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-no">&nbsp;</span>
830
+ <span class="cline-any cline-no">&nbsp;</span>
651
831
  <span class="cline-any cline-neutral">&nbsp;</span>
832
+ <span class="cline-any cline-no">&nbsp;</span>
652
833
  <span class="cline-any cline-neutral">&nbsp;</span>
653
834
  <span class="cline-any cline-neutral">&nbsp;</span>
654
835
  <span class="cline-any cline-neutral">&nbsp;</span>
655
836
  <span class="cline-any cline-neutral">&nbsp;</span>
656
837
  <span class="cline-any cline-neutral">&nbsp;</span>
657
838
  <span class="cline-any cline-yes">2x</span>
658
- <span class="cline-any cline-no">&nbsp;</span>
839
+ <span class="cline-any cline-yes">1x</span>
840
+ <span class="cline-any cline-neutral">&nbsp;</span>
841
+ <span class="cline-any cline-neutral">&nbsp;</span>
842
+ <span class="cline-any cline-neutral">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-neutral">&nbsp;</span>
845
+ <span class="cline-any cline-neutral">&nbsp;</span>
846
+ <span class="cline-any cline-yes">2x</span>
847
+ <span class="cline-any cline-yes">1x</span>
848
+ <span class="cline-any cline-yes">1x</span>
849
+ <span class="cline-any cline-yes">1x</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
851
+ <span class="cline-any cline-neutral">&nbsp;</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-yes">1x</span>
659
855
  <span class="cline-any cline-neutral">&nbsp;</span>
660
856
  <span class="cline-any cline-no">&nbsp;</span>
661
857
  <span class="cline-any cline-no">&nbsp;</span>
662
858
  <span class="cline-any cline-neutral">&nbsp;</span>
859
+ <span class="cline-any cline-no">&nbsp;</span>
860
+ <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-neutral">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-neutral">&nbsp;</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
865
+ <span class="cline-any cline-yes">2x</span>
866
+ <span class="cline-any cline-yes">1x</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
871
+ <span class="cline-any cline-neutral">&nbsp;</span>
872
+ <span class="cline-any cline-neutral">&nbsp;</span>
873
+ <span class="cline-any cline-yes">2x</span>
874
+ <span class="cline-any cline-yes">1x</span>
875
+ <span class="cline-any cline-yes">1x</span>
876
+ <span class="cline-any cline-neutral">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-neutral">&nbsp;</span>
879
+ <span class="cline-any cline-neutral">&nbsp;</span>
880
+ <span class="cline-any cline-yes">1x</span>
663
881
  <span class="cline-any cline-neutral">&nbsp;</span>
664
882
  <span class="cline-any cline-no">&nbsp;</span>
665
883
  <span class="cline-any cline-no">&nbsp;</span>
666
884
  <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
885
  <span class="cline-any cline-no">&nbsp;</span>
669
886
  <span class="cline-any cline-neutral">&nbsp;</span>
670
887
  <span class="cline-any cline-neutral">&nbsp;</span>
671
888
  <span class="cline-any cline-neutral">&nbsp;</span>
672
889
  <span class="cline-any cline-neutral">&nbsp;</span>
673
890
  <span class="cline-any cline-neutral">&nbsp;</span>
891
+ <span class="cline-any cline-yes">2x</span>
892
+ <span class="cline-any cline-yes">1x</span>
893
+ <span class="cline-any cline-neutral">&nbsp;</span>
894
+ <span class="cline-any cline-neutral">&nbsp;</span>
895
+ <span class="cline-any cline-neutral">&nbsp;</span>
896
+ <span class="cline-any cline-neutral">&nbsp;</span>
897
+ <span class="cline-any cline-neutral">&nbsp;</span>
898
+ <span class="cline-any cline-neutral">&nbsp;</span>
899
+ <span class="cline-any cline-neutral">&nbsp;</span>
900
+ <span class="cline-any cline-neutral">&nbsp;</span>
901
+ <span class="cline-any cline-neutral">&nbsp;</span>
902
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
903
  <span class="cline-any cline-neutral">&nbsp;</span>
675
904
  <span class="cline-any cline-neutral">&nbsp;</span>
676
905
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -679,19 +908,43 @@
679
908
  <span class="cline-any cline-neutral">&nbsp;</span>
680
909
  <span class="cline-any cline-neutral">&nbsp;</span>
681
910
  <span class="cline-any cline-yes">2x</span>
682
- <span class="cline-any cline-no">&nbsp;</span>
911
+ <span class="cline-any cline-yes">3x</span>
912
+ <span class="cline-any cline-neutral">&nbsp;</span>
913
+ <span class="cline-any cline-yes">3x</span>
914
+ <span class="cline-any cline-yes">1x</span>
915
+ <span class="cline-any cline-neutral">&nbsp;</span>
916
+ <span class="cline-any cline-neutral">&nbsp;</span>
917
+ <span class="cline-any cline-yes">2x</span>
918
+ <span class="cline-any cline-yes">1x</span>
919
+ <span class="cline-any cline-neutral">&nbsp;</span>
920
+ <span class="cline-any cline-neutral">&nbsp;</span>
921
+ <span class="cline-any cline-yes">1x</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-neutral">&nbsp;</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
926
  <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-no">&nbsp;</span>
685
927
  <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-no">&nbsp;</span>
687
- <span class="cline-any cline-no">&nbsp;</span>
688
928
  <span class="cline-any cline-neutral">&nbsp;</span>
689
929
  <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
930
  <span class="cline-any cline-neutral">&nbsp;</span>
693
931
  <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-no">&nbsp;</span>
932
+ <span class="cline-any cline-neutral">&nbsp;</span>
933
+ <span class="cline-any cline-neutral">&nbsp;</span>
934
+ <span class="cline-any cline-yes">2x</span>
935
+ <span class="cline-any cline-yes">4x</span>
936
+ <span class="cline-any cline-neutral">&nbsp;</span>
937
+ <span class="cline-any cline-yes">4x</span>
938
+ <span class="cline-any cline-neutral">&nbsp;</span>
939
+ <span class="cline-any cline-yes">4x</span>
940
+ <span class="cline-any cline-yes">2x</span>
941
+ <span class="cline-any cline-neutral">&nbsp;</span>
942
+ <span class="cline-any cline-neutral">&nbsp;</span>
943
+ <span class="cline-any cline-yes">2x</span>
944
+ <span class="cline-any cline-yes">1x</span>
945
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
+ <span class="cline-any cline-neutral">&nbsp;</span>
947
+ <span class="cline-any cline-yes">1x</span>
695
948
  <span class="cline-any cline-neutral">&nbsp;</span>
696
949
  <span class="cline-any cline-neutral">&nbsp;</span>
697
950
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -783,6 +1036,101 @@
783
1036
  <span class="cline-any cline-neutral">&nbsp;</span>
784
1037
  <span class="cline-any cline-neutral">&nbsp;</span>
785
1038
  <span class="cline-any cline-neutral">&nbsp;</span>
1039
+ <span class="cline-any cline-neutral">&nbsp;</span>
1040
+ <span class="cline-any cline-neutral">&nbsp;</span>
1041
+ <span class="cline-any cline-neutral">&nbsp;</span>
1042
+ <span class="cline-any cline-neutral">&nbsp;</span>
1043
+ <span class="cline-any cline-neutral">&nbsp;</span>
1044
+ <span class="cline-any cline-neutral">&nbsp;</span>
1045
+ <span class="cline-any cline-neutral">&nbsp;</span>
1046
+ <span class="cline-any cline-neutral">&nbsp;</span>
1047
+ <span class="cline-any cline-yes">2x</span>
1048
+ <span class="cline-any cline-yes">7x</span>
1049
+ <span class="cline-any cline-yes">2x</span>
1050
+ <span class="cline-any cline-neutral">&nbsp;</span>
1051
+ <span class="cline-any cline-neutral">&nbsp;</span>
1052
+ <span class="cline-any cline-neutral">&nbsp;</span>
1053
+ <span class="cline-any cline-neutral">&nbsp;</span>
1054
+ <span class="cline-any cline-neutral">&nbsp;</span>
1055
+ <span class="cline-any cline-neutral">&nbsp;</span>
1056
+ <span class="cline-any cline-yes">5x</span>
1057
+ <span class="cline-any cline-yes">1x</span>
1058
+ <span class="cline-any cline-neutral">&nbsp;</span>
1059
+ <span class="cline-any cline-neutral">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-neutral">&nbsp;</span>
1062
+ <span class="cline-any cline-neutral">&nbsp;</span>
1063
+ <span class="cline-any cline-neutral">&nbsp;</span>
1064
+ <span class="cline-any cline-yes">4x</span>
1065
+ <span class="cline-any cline-yes">1x</span>
1066
+ <span class="cline-any cline-neutral">&nbsp;</span>
1067
+ <span class="cline-any cline-neutral">&nbsp;</span>
1068
+ <span class="cline-any cline-neutral">&nbsp;</span>
1069
+ <span class="cline-any cline-neutral">&nbsp;</span>
1070
+ <span class="cline-any cline-neutral">&nbsp;</span>
1071
+ <span class="cline-any cline-neutral">&nbsp;</span>
1072
+ <span class="cline-any cline-yes">3x</span>
1073
+ <span class="cline-any cline-neutral">&nbsp;</span>
1074
+ <span class="cline-any cline-yes">3x</span>
1075
+ <span class="cline-any cline-yes">1x</span>
1076
+ <span class="cline-any cline-neutral">&nbsp;</span>
1077
+ <span class="cline-any cline-neutral">&nbsp;</span>
1078
+ <span class="cline-any cline-yes">2x</span>
1079
+ <span class="cline-any cline-yes">1x</span>
1080
+ <span class="cline-any cline-neutral">&nbsp;</span>
1081
+ <span class="cline-any cline-neutral">&nbsp;</span>
1082
+ <span class="cline-any cline-yes">1x</span>
1083
+ <span class="cline-any cline-neutral">&nbsp;</span>
1084
+ <span class="cline-any cline-neutral">&nbsp;</span>
1085
+ <span class="cline-any cline-neutral">&nbsp;</span>
1086
+ <span class="cline-any cline-neutral">&nbsp;</span>
1087
+ <span class="cline-any cline-neutral">&nbsp;</span>
1088
+ <span class="cline-any cline-neutral">&nbsp;</span>
1089
+ <span class="cline-any cline-neutral">&nbsp;</span>
1090
+ <span class="cline-any cline-neutral">&nbsp;</span>
1091
+ <span class="cline-any cline-neutral">&nbsp;</span>
1092
+ <span class="cline-any cline-neutral">&nbsp;</span>
1093
+ <span class="cline-any cline-neutral">&nbsp;</span>
1094
+ <span class="cline-any cline-yes">2x</span>
1095
+ <span class="cline-any cline-yes">3x</span>
1096
+ <span class="cline-any cline-neutral">&nbsp;</span>
1097
+ <span class="cline-any cline-yes">3x</span>
1098
+ <span class="cline-any cline-yes">1x</span>
1099
+ <span class="cline-any cline-neutral">&nbsp;</span>
1100
+ <span class="cline-any cline-neutral">&nbsp;</span>
1101
+ <span class="cline-any cline-yes">2x</span>
1102
+ <span class="cline-any cline-yes">1x</span>
1103
+ <span class="cline-any cline-neutral">&nbsp;</span>
1104
+ <span class="cline-any cline-neutral">&nbsp;</span>
1105
+ <span class="cline-any cline-yes">1x</span>
1106
+ <span class="cline-any cline-neutral">&nbsp;</span>
1107
+ <span class="cline-any cline-neutral">&nbsp;</span>
1108
+ <span class="cline-any cline-neutral">&nbsp;</span>
1109
+ <span class="cline-any cline-neutral">&nbsp;</span>
1110
+ <span class="cline-any cline-neutral">&nbsp;</span>
1111
+ <span class="cline-any cline-neutral">&nbsp;</span>
1112
+ <span class="cline-any cline-neutral">&nbsp;</span>
1113
+ <span class="cline-any cline-neutral">&nbsp;</span>
1114
+ <span class="cline-any cline-neutral">&nbsp;</span>
1115
+ <span class="cline-any cline-neutral">&nbsp;</span>
1116
+ <span class="cline-any cline-neutral">&nbsp;</span>
1117
+ <span class="cline-any cline-yes">2x</span>
1118
+ <span class="cline-any cline-yes">3x</span>
1119
+ <span class="cline-any cline-neutral">&nbsp;</span>
1120
+ <span class="cline-any cline-yes">3x</span>
1121
+ <span class="cline-any cline-yes">1x</span>
1122
+ <span class="cline-any cline-neutral">&nbsp;</span>
1123
+ <span class="cline-any cline-neutral">&nbsp;</span>
1124
+ <span class="cline-any cline-yes">2x</span>
1125
+ <span class="cline-any cline-yes">1x</span>
1126
+ <span class="cline-any cline-neutral">&nbsp;</span>
1127
+ <span class="cline-any cline-neutral">&nbsp;</span>
1128
+ <span class="cline-any cline-yes">1x</span>
1129
+ <span class="cline-any cline-neutral">&nbsp;</span>
1130
+ <span class="cline-any cline-neutral">&nbsp;</span>
1131
+ <span class="cline-any cline-neutral">&nbsp;</span>
1132
+ <span class="cline-any cline-neutral">&nbsp;</span>
1133
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
1134
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// src/api/signatures.js
787
1135
  import { getConfig } from "../config/index";
788
1136
  import { httpRequest } from "../utils/httpClient";
@@ -858,13 +1206,13 @@ import { INTEGRATION_TYPE } from "../utils/constant";
858
1206
  // Internal Functions
859
1207
  // =================================================================
860
1208
  &nbsp;
861
- const signDocumentOnBoarding = <span class="fstat-no" title="function not covered" >as</span>ync (signData) =&gt; {
862
- <span class="cstat-no" title="statement not covered" > helpers.validateOnBoardingSignDocumentData(signData);</span>
863
- const { signature, cert, signedDigest } = <span class="cstat-no" title="statement not covered" >signData;</span>
864
- <span class="cstat-no" title="statement not covered" > try {</span>
865
- const signBody = <span class="cstat-no" title="statement not covered" >{</span>
1209
+ const signDocumentOnBoarding = async (signData) =&gt; {
1210
+ helpers.validateOnBoardingSignDocumentData(signData);
1211
+ const { signature, cert, signedDigest } = signData;
1212
+ try {
1213
+ const signBody = {
866
1214
  positions: JSON.stringify(
867
- signature.positions.map(<span class="fstat-no" title="function not covered" >(p</span>) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1215
+ signature.positions.map((p) =&gt; ({
868
1216
  x: p.x,
869
1217
  y: p.y,
870
1218
  page: p.page,
@@ -875,12 +1223,12 @@ const signDocumentOnBoarding = <span class="fstat-no" title="function not covere
875
1223
  signeddigest: signedDigest,
876
1224
  };
877
1225
  &nbsp;
878
- const response = <span class="cstat-no" title="statement not covered" >await httpRequest(</span>
1226
+ const response = await httpRequest(
879
1227
  `services/api/documents/sign/${signature.id}`,
880
1228
  signBody,
881
1229
  "PUT"
882
1230
  );
883
- <span class="cstat-no" title="statement not covered" > return response;</span>
1231
+ return response;
884
1232
  } catch (error) {
885
1233
  <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
886
1234
  <span class="cstat-no" title="statement not covered" > throw error;</span>
@@ -891,36 +1239,36 @@ const signDocumentOnBoarding = <span class="fstat-no" title="function not covere
891
1239
  }
892
1240
  };
893
1241
  &nbsp;
894
- const signDocumentOnPremise = <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {
895
- <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1242
+ const signDocumentOnPremise = async () =&gt; {
1243
+ throw new ApacuanaAPIError(
896
1244
  "Document signing is not supported for integration type: ONPREMISE",
897
1245
  501,
898
1246
  "NOT_IMPLEMENTED"
899
1247
  );
900
1248
  };
901
1249
  &nbsp;
902
- const getDigestToSignOnBoarding = <span class="fstat-no" title="function not covered" >as</span>ync (signData) =&gt; {
903
- <span class="cstat-no" title="statement not covered" > try {</span>
904
- const response = <span class="cstat-no" title="statement not covered" >await httpRequest(</span>
1250
+ const getDigestToSignOnBoarding = async (signData) =&gt; {
1251
+ try {
1252
+ const response = await httpRequest(
905
1253
  `services/api/documents/getdigest/${signData.signatureId}`,
906
1254
  {
907
1255
  publickey: signData.cert,
908
1256
  },
909
1257
  "POST"
910
1258
  );
911
- const digest = <span class="cstat-no" title="statement not covered" >response.data?.digest || response.digest;</span>
912
- <span class="cstat-no" title="statement not covered" > if (!digest) {</span>
913
- <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1259
+ const digest = response.data?.digest || response.digest;
1260
+ if (!digest) {
1261
+ throw new ApacuanaAPIError(
914
1262
  "Signature generation failed: digest not found in the response.",
915
1263
  500,
916
1264
  "API_RESPONSE_ERROR"
917
1265
  );
918
1266
  }
919
1267
  &nbsp;
920
- <span class="cstat-no" title="statement not covered" > return { digest, success: true };</span>
1268
+ return { digest, success: true };
921
1269
  } catch (error) {
922
- <span class="cstat-no" title="statement not covered" > if (error.name === "ApacuanaAPIError") {</span>
923
- <span class="cstat-no" title="statement not covered" > throw error;</span>
1270
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (error.name === "ApacuanaAPIError") {
1271
+ throw error;
924
1272
  }
925
1273
  <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
926
1274
  `Failed to sign document (on-boarding): ${error.message}`
@@ -928,8 +1276,8 @@ const getDigestToSignOnBoarding = <span class="fstat-no" title="function not cov
928
1276
  }
929
1277
  };
930
1278
  &nbsp;
931
- const getDigestToSignOnPremise = <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {
932
- <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1279
+ const getDigestToSignOnPremise = async () =&gt; {
1280
+ throw new ApacuanaAPIError(
933
1281
  "Digest retrieval is not supported for integration type: ONPREMISE",
934
1282
  501,
935
1283
  "NOT_IMPLEMENTED"
@@ -1003,6 +1351,85 @@ const getDocsOnBoarding = async (data) =&gt; {
1003
1351
  }
1004
1352
  };
1005
1353
  &nbsp;
1354
+ const uploadSignatureVariantOnBoarding = async ({ file }) =&gt; {
1355
+ try {
1356
+ const response = await httpRequest(
1357
+ "services/api/customer/signaturephoto",
1358
+ { file },
1359
+ "POST"
1360
+ );
1361
+ return { ...response, success: true };
1362
+ } catch (error) {
1363
+ <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1364
+ <span class="cstat-no" title="statement not covered" > throw error;</span>
1365
+ }
1366
+ <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1367
+ `Failed to upload signature variant: ${error.message || "Unknown error"}`
1368
+ );
1369
+ }
1370
+ };
1371
+ &nbsp;
1372
+ const uploadSignatureVariantOnPremise = async () =&gt; {
1373
+ throw new ApacuanaAPIError(
1374
+ "Uploading signature variants is not supported for integration type: ONPREMISE",
1375
+ 501,
1376
+ "NOT_IMPLEMENTED"
1377
+ );
1378
+ };
1379
+ &nbsp;
1380
+ const getSignatureVariantOnBoarding = async () =&gt; {
1381
+ const { customerId } = getConfig();
1382
+ try {
1383
+ const response = await httpRequest(
1384
+ `services/api/customer/getsignaturephotosdk/${customerId}`,
1385
+ {},
1386
+ "GET"
1387
+ );
1388
+ return { ...response, success: true };
1389
+ } catch (error) {
1390
+ <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1391
+ <span class="cstat-no" title="statement not covered" > throw error;</span>
1392
+ }
1393
+ <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1394
+ `Failed to get signature variant: ${error.message || "Unknown error"}`
1395
+ );
1396
+ }
1397
+ };
1398
+ &nbsp;
1399
+ const getSignatureVariantOnPremise = async () =&gt; {
1400
+ throw new ApacuanaAPIError(
1401
+ "Getting signature variants is not supported for integration type: ONPREMISE",
1402
+ 501,
1403
+ "NOT_IMPLEMENTED"
1404
+ );
1405
+ };
1406
+ &nbsp;
1407
+ const deleteSignatureVariantOnBoarding = async () =&gt; {
1408
+ try {
1409
+ const response = await httpRequest(
1410
+ "services/api/customer/cleansignaturephoto",
1411
+ {},
1412
+ "DELETE"
1413
+ );
1414
+ return { ...response, success: true };
1415
+ } catch (error) {
1416
+ <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
1417
+ <span class="cstat-no" title="statement not covered" > throw error;</span>
1418
+ }
1419
+ <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1420
+ `Failed to delete signature variant: ${error.message || "Unknown error"}`
1421
+ );
1422
+ }
1423
+ };
1424
+ &nbsp;
1425
+ const deleteSignatureVariantOnPremise = async () =&gt; {
1426
+ throw new ApacuanaAPIError(
1427
+ "Deleting signature variants is not supported for integration type: ONPREMISE",
1428
+ 501,
1429
+ "NOT_IMPLEMENTED"
1430
+ );
1431
+ };
1432
+ &nbsp;
1006
1433
  // =================================================================
1007
1434
  // Exported Functions
1008
1435
  // =================================================================
@@ -1014,18 +1441,18 @@ const getDocsOnBoarding = async (data) =&gt; {
1014
1441
  * @returns {Promise&lt;object&gt;}
1015
1442
  * @throws {ApacuanaAPIError} Arroja un error 'NOT_IMPLEMENTED' para cualquier tipo de integración.
1016
1443
  */
1017
- export const signDocument = <span class="fstat-no" title="function not covered" >as</span>ync (signData) =&gt; {
1018
- const { integrationType } = <span class="cstat-no" title="statement not covered" >getConfig();</span>
1444
+ export const signDocument = async (signData) =&gt; {
1445
+ const { integrationType } = getConfig();
1019
1446
  &nbsp;
1020
- <span class="cstat-no" title="statement not covered" > if (integrationType === INTEGRATION_TYPE.ONBOARDING) {</span>
1021
- <span class="cstat-no" title="statement not covered" > return signDocumentOnBoarding(signData);</span>
1447
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
1448
+ return signDocumentOnBoarding(signData);
1022
1449
  }
1023
1450
  &nbsp;
1024
- <span class="cstat-no" title="statement not covered" > if (integrationType === INTEGRATION_TYPE.ONPREMISE) {</span>
1025
- <span class="cstat-no" title="statement not covered" > return signDocumentOnPremise();</span>
1451
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
1452
+ return signDocumentOnPremise();
1026
1453
  }
1027
1454
  &nbsp;
1028
- <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1455
+ throw new ApacuanaAPIError(
1029
1456
  `Unsupported integration type: ${integrationType}`,
1030
1457
  400,
1031
1458
  "UNSUPPORTED_INTEGRATION_TYPE"
@@ -1038,20 +1465,20 @@ export const signDocument = <span class="fstat-no" title="function not covered"
1038
1465
  * @returns {Promise&lt;GetDigestResponse&gt;} Una promesa que resuelve a un objeto con el digest del documento.
1039
1466
  * @throws {ApacuanaAPIError} Si los datos de entrada son inválidos, la llamada a la API falla, o el tipo de integración no es soportado.
1040
1467
  */
1041
- export const getDigest = <span class="fstat-no" title="function not covered" >as</span>ync (signData) =&gt; {
1042
- <span class="cstat-no" title="statement not covered" > helpers.validateGetDigestData(signData);</span>
1468
+ export const getDigest = async (signData) =&gt; {
1469
+ helpers.validateGetDigestData(signData);
1043
1470
  &nbsp;
1044
- const { integrationType } = <span class="cstat-no" title="statement not covered" >getConfig();</span>
1471
+ const { integrationType } = getConfig();
1045
1472
  &nbsp;
1046
- <span class="cstat-no" title="statement not covered" > if (integrationType === INTEGRATION_TYPE.ONBOARDING) {</span>
1047
- <span class="cstat-no" title="statement not covered" > return getDigestToSignOnBoarding(signData);</span>
1473
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
1474
+ return getDigestToSignOnBoarding(signData);
1048
1475
  }
1049
1476
  &nbsp;
1050
- <span class="cstat-no" title="statement not covered" > if (integrationType === INTEGRATION_TYPE.ONPREMISE) {</span>
1051
- <span class="cstat-no" title="statement not covered" > return getDigestToSignOnPremise();</span>
1477
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
1478
+ return getDigestToSignOnPremise();
1052
1479
  }
1053
1480
  &nbsp;
1054
- <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
1481
+ throw new ApacuanaAPIError(
1055
1482
  `Document retrieval is not supported for an unknown integration type: ${integrationType}`,
1056
1483
  501,
1057
1484
  "NOT_IMPLEMENTED"
@@ -1143,6 +1570,101 @@ export const getDocs = async (data) =&gt; {
1143
1570
  "NOT_IMPLEMENTED"
1144
1571
  );
1145
1572
  };
1573
+ &nbsp;
1574
+ /**
1575
+ * Sube una variante de firma para un firmante.
1576
+ * @param {object} data - Datos para la subida.
1577
+ * @param {File} data.file - El archivo de la variante de firma (debe ser PNG).
1578
+ * @returns {Promise&lt;object&gt;} Una promesa que resuelve a un objeto con el resultado de la operación.
1579
+ * @throws {ApacuanaAPIError} Si los datos son inválidos o la llamada a la API falla.
1580
+ */
1581
+ export const uploadSignatureVariant = async (data) =&gt; {
1582
+ if (!data || !data.file) {
1583
+ throw new ApacuanaAPIError(
1584
+ "El parámetro 'file' es requerido.",
1585
+ 400,
1586
+ "INVALID_PARAMETER"
1587
+ );
1588
+ }
1589
+ &nbsp;
1590
+ if (typeof File === "undefined" || !(data.file instanceof File)) {
1591
+ throw new ApacuanaAPIError(
1592
+ "El parámetro 'file' debe ser una instancia de 'File'.",
1593
+ 400,
1594
+ "INVALID_PARAMETER"
1595
+ );
1596
+ }
1597
+ &nbsp;
1598
+ if (data.file.type !== "image/png") {
1599
+ throw new ApacuanaAPIError(
1600
+ "El archivo debe ser de tipo PNG (image/png).",
1601
+ 400,
1602
+ "INVALID_PARAMETER"
1603
+ );
1604
+ }
1605
+ &nbsp;
1606
+ const { integrationType } = getConfig();
1607
+ &nbsp;
1608
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
1609
+ return uploadSignatureVariantOnBoarding(data);
1610
+ }
1611
+ &nbsp;
1612
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
1613
+ return uploadSignatureVariantOnPremise();
1614
+ }
1615
+ &nbsp;
1616
+ throw new ApacuanaAPIError(
1617
+ `Unsupported integration type: ${integrationType}`,
1618
+ 400,
1619
+ "UNSUPPORTED_INTEGRATION_TYPE"
1620
+ );
1621
+ };
1622
+ &nbsp;
1623
+ /**
1624
+ * Obtiene la variante de firma del firmante.
1625
+ * @returns {Promise&lt;object&gt;} Una promesa que resuelve a un objeto con los datos de la variante de firma.
1626
+ * @throws {ApacuanaAPIError} Si la llamada a la API falla o el tipo de integración no es soportado.
1627
+ */
1628
+ export const getSignatureVariant = async () =&gt; {
1629
+ const { integrationType } = getConfig();
1630
+ &nbsp;
1631
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
1632
+ return getSignatureVariantOnBoarding();
1633
+ }
1634
+ &nbsp;
1635
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
1636
+ return getSignatureVariantOnPremise();
1637
+ }
1638
+ &nbsp;
1639
+ throw new ApacuanaAPIError(
1640
+ `Unsupported integration type: ${integrationType}`,
1641
+ 400,
1642
+ "UNSUPPORTED_INTEGRATION_TYPE"
1643
+ );
1644
+ };
1645
+ &nbsp;
1646
+ /**
1647
+ * Elimina la variante de firma del firmante.
1648
+ * @returns {Promise&lt;object&gt;} Una promesa que resuelve a un objeto con el resultado de la operación.
1649
+ * @throws {ApacuanaAPIError} Si la llamada a la API falla o el tipo de integración no es soportado.
1650
+ */
1651
+ export const deleteSignatureVariant = async () =&gt; {
1652
+ const { integrationType } = getConfig();
1653
+ &nbsp;
1654
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
1655
+ return deleteSignatureVariantOnBoarding();
1656
+ }
1657
+ &nbsp;
1658
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
1659
+ return deleteSignatureVariantOnPremise();
1660
+ }
1661
+ &nbsp;
1662
+ throw new ApacuanaAPIError(
1663
+ `Unsupported integration type: ${integrationType}`,
1664
+ 400,
1665
+ "UNSUPPORTED_INTEGRATION_TYPE"
1666
+ );
1667
+ };
1146
1668
  &nbsp;</pre></td></tr></table></pre>
1147
1669
 
1148
1670
  <div class='push'></div><!-- for sticky footer -->
@@ -1150,7 +1672,7 @@ export const getDocs = async (data) =&gt; {
1150
1672
  <div class='footer quiet pad2 space-top1 center small'>
1151
1673
  Code coverage generated by
1152
1674
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1153
- at 2025-08-29T13:20:25.539Z
1675
+ at 2025-09-05T13:42:51.598Z
1154
1676
  </div>
1155
1677
  <script src="../../prettify.js"></script>
1156
1678
  <script>