apacuana-sdk-core 1.0.0 → 1.1.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 (92) hide show
  1. package/.eslintrc.cjs +22 -0
  2. package/CHANGELOG.md +1 -0
  3. package/README.md +794 -0
  4. package/babel.config.cjs +11 -0
  5. package/coverage/clover.xml +627 -0
  6. package/coverage/coverage-final.json +13 -0
  7. package/coverage/lcov-report/api/index.html +131 -0
  8. package/coverage/lcov-report/api/signatures.js.html +1093 -0
  9. package/coverage/lcov-report/api/users.js.html +292 -0
  10. package/coverage/lcov-report/base.css +224 -0
  11. package/coverage/lcov-report/block-navigation.js +87 -0
  12. package/coverage/lcov-report/certs.js.html +175 -0
  13. package/coverage/lcov-report/config/index.html +116 -0
  14. package/coverage/lcov-report/config/index.js.html +208 -0
  15. package/coverage/lcov-report/errors/index.html +116 -0
  16. package/coverage/lcov-report/errors/index.js.html +148 -0
  17. package/coverage/lcov-report/favicon.png +0 -0
  18. package/coverage/lcov-report/index.html +191 -0
  19. package/coverage/lcov-report/prettify.css +1 -0
  20. package/coverage/lcov-report/prettify.js +2 -0
  21. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  22. package/coverage/lcov-report/sorter.js +210 -0
  23. package/coverage/lcov-report/src/api/certs.js.html +853 -0
  24. package/coverage/lcov-report/src/api/faceLiveness.js.html +523 -0
  25. package/coverage/lcov-report/src/api/index.html +176 -0
  26. package/coverage/lcov-report/src/api/revocations.js.html +412 -0
  27. package/coverage/lcov-report/src/api/signatures.js.html +1420 -0
  28. package/coverage/lcov-report/src/api/users.js.html +466 -0
  29. package/coverage/lcov-report/src/config/index.html +116 -0
  30. package/coverage/lcov-report/src/config/index.js.html +256 -0
  31. package/coverage/lcov-report/src/errors/index.html +116 -0
  32. package/coverage/lcov-report/src/errors/index.js.html +148 -0
  33. package/coverage/lcov-report/src/index.html +116 -0
  34. package/coverage/lcov-report/src/index.js.html +592 -0
  35. package/coverage/lcov-report/src/success/index.html +116 -0
  36. package/coverage/lcov-report/src/success/index.js.html +106 -0
  37. package/coverage/lcov-report/src/utils/constant.js.html +256 -0
  38. package/coverage/lcov-report/src/utils/helpers.js.html +1195 -0
  39. package/coverage/lcov-report/src/utils/httpClient.js.html +622 -0
  40. package/coverage/lcov-report/src/utils/index.html +146 -0
  41. package/coverage/lcov-report/utils/constant.js.html +145 -0
  42. package/coverage/lcov-report/utils/httpClient.js.html +646 -0
  43. package/coverage/lcov-report/utils/index.html +131 -0
  44. package/coverage/lcov.info +1258 -0
  45. package/dist/api/certs.d.ts +15 -0
  46. package/dist/api/faceLiveness.d.ts +6 -0
  47. package/dist/api/revocations.d.ts +6 -0
  48. package/dist/api/signatures.d.ts +19 -0
  49. package/dist/api/users.d.ts +47 -0
  50. package/dist/config/index.d.ts +22 -0
  51. package/dist/errors/index.d.ts +10 -0
  52. package/dist/index.d.ts +25 -0
  53. package/dist/index.js +34492 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/index.mjs +34490 -0
  56. package/dist/index.mjs.map +1 -0
  57. package/dist/success/index.d.ts +7 -0
  58. package/dist/types/certs.d.ts +83 -0
  59. package/dist/types/faceLiveness.d.ts +11 -0
  60. package/dist/types/revocations.d.ts +51 -0
  61. package/dist/types/signatures.d.ts +162 -0
  62. package/dist/types/users.d.ts +260 -0
  63. package/dist/utils/constant.d.ts +49 -0
  64. package/dist/utils/helpers.d.ts +25 -0
  65. package/dist/utils/httpClient.d.ts +3 -0
  66. package/jest.config.cjs +12 -0
  67. package/package.json +51 -9
  68. package/rollup.config.js +32 -0
  69. package/src/api/certs.js +256 -0
  70. package/src/api/faceLiveness.js +146 -0
  71. package/src/api/revocations.js +109 -0
  72. package/src/api/signatures.js +445 -0
  73. package/src/api/users.js +127 -0
  74. package/src/config/index.js +57 -0
  75. package/src/errors/index.js +21 -0
  76. package/src/index.js +169 -0
  77. package/src/success/index.js +8 -0
  78. package/src/types/certs.js +67 -0
  79. package/src/types/faceLiveness.js +16 -0
  80. package/src/types/revocations.js +45 -0
  81. package/src/types/signatures.js +96 -0
  82. package/src/types/users.js +73 -0
  83. package/src/utils/constant.js +57 -0
  84. package/src/utils/helpers.js +370 -0
  85. package/src/utils/httpClient.js +179 -0
  86. package/tests/api/certs.test.js +311 -0
  87. package/tests/api/faceLiveness.test.js +170 -0
  88. package/tests/api/revocations.test.js +119 -0
  89. package/tests/api/signatures.test.js +530 -0
  90. package/tests/api/users.test.js +117 -0
  91. package/tests/index.test.js +131 -0
  92. package/tsconfig.json +16 -0
@@ -0,0 +1,853 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/api/certs.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/api</a> certs.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">89.74% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>70/78</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">81.57% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>31/38</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>13/13</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">89.74% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>70/78</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
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>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
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>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-yes">2x</span>
344
+ <span class="cline-any cline-yes">1x</span>
345
+ <span class="cline-any cline-yes">1x</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-yes">1x</span>
351
+ <span class="cline-any cline-yes">1x</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">1x</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-yes">2x</span>
370
+ <span class="cline-any cline-yes">1x</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-yes">2x</span>
385
+ <span class="cline-any cline-yes">3x</span>
386
+ <span class="cline-any cline-yes">3x</span>
387
+ <span class="cline-any cline-yes">3x</span>
388
+ <span class="cline-any cline-yes">1x</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-yes">2x</span>
391
+ <span class="cline-any cline-yes">1x</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-yes">1x</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-yes">2x</span>
407
+ <span class="cline-any cline-yes">1x</span>
408
+ <span class="cline-any cline-yes">1x</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-yes">1x</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-yes">1x</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-yes">2x</span>
419
+ <span class="cline-any cline-yes">1x</span>
420
+ <span class="cline-any cline-yes">1x</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-yes">1x</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
+ <span class="cline-any cline-no">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-no">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-yes">2x</span>
436
+ <span class="cline-any cline-yes">1x</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-yes">2x</span>
450
+ <span class="cline-any cline-yes">3x</span>
451
+ <span class="cline-any cline-yes">3x</span>
452
+ <span class="cline-any cline-yes">1x</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-yes">2x</span>
455
+ <span class="cline-any cline-yes">1x</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-yes">1x</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-yes">2x</span>
466
+ <span class="cline-any cline-yes">2x</span>
467
+ <span class="cline-any cline-yes">2x</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-yes">1x</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-yes">1x</span>
476
+ <span class="cline-any cline-no">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-yes">1x</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-yes">2x</span>
483
+ <span class="cline-any cline-yes">1x</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-yes">2x</span>
499
+ <span class="cline-any cline-yes">7x</span>
500
+ <span class="cline-any cline-yes">3x</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-yes">4x</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-yes">4x</span>
507
+ <span class="cline-any cline-yes">4x</span>
508
+ <span class="cline-any cline-yes">2x</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-yes">2x</span>
511
+ <span class="cline-any cline-yes">1x</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-yes">1x</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-yes">2x</span>
522
+ <span class="cline-any cline-yes">3x</span>
523
+ <span class="cline-any cline-yes">3x</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-yes">1x</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-yes">2x</span>
532
+ <span class="cline-any cline-yes">1x</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-yes">1x</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-yes">2x</span>
539
+ <span class="cline-any cline-yes">1x</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-yes">2x</span>
554
+ <span class="cline-any cline-yes">8x</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-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-yes">3x</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-yes">5x</span>
565
+ <span class="cline-any cline-yes">5x</span>
566
+ <span class="cline-any cline-yes">3x</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-yes">2x</span>
569
+ <span class="cline-any cline-yes">1x</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-yes">1x</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
579
+ * @typedef {import('../types/users').UserData} UserData
580
+ * @typedef {import('../types/certs').GenerateCertResponse} GenerateCertResponse
581
+ * @typedef {import('../types/certs').GetCertStatusResponse} GetCertStatusResponse
582
+ * @typedef {import('../types/certs').EncryptedCSRObject} EncryptedCSRObject
583
+ * @typedef {import('../types/certs').GetCertTypesResponse} GetCertTypesResponse
584
+ * @typedef {import('../types/certs').GetRequirementsResponse} GetRequirementsResponse
585
+ * @typedef {import('../types/certs').CertificateRequestParams} CertificateRequestParams
586
+ * @typedef {import('../types/certs').RequestCertificateResponse} RequestCertificateResponse
587
+ */
588
+ &nbsp;
589
+ import { getConfig } from "../config/index";
590
+ import { httpRequest } from "../utils/httpClient";
591
+ import helpers from "../utils/helpers";
592
+ import { ApacuanaAPIError } from "../errors";
593
+ import ApacuanaSuccess from "../success";
594
+ import { INTEGRATION_TYPE, PARSE_STATUS } from "../utils/constant";
595
+ &nbsp;
596
+ /**
597
+ * @param {EncryptedCSRObject} encryptedCSR
598
+ */
599
+ const generateCertOnBoarding = async (encryptedCSR) =&gt; {
600
+ try {
601
+ const response = await httpRequest(
602
+ "services/api/register/certificate",
603
+ encryptedCSR,
604
+ "POST"
605
+ );
606
+ const { cert, certifiedid } = response;
607
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!cert || !certifiedid) {
608
+ <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
609
+ "The API response does not contain the certificate.",
610
+ response.status,
611
+ "INVALID_API_RESPONSE"
612
+ );
613
+ }
614
+ &nbsp;
615
+ return new ApacuanaSuccess({ cert, certifiedid });
616
+ } catch (error) {
617
+ // The captured error is re-thrown, which will already be of type ApacuanaAPIError or a native Error.
618
+ <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
619
+ <span class="cstat-no" title="statement not covered" > throw error;</span>
620
+ }
621
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Certificate generation failed: ${error.message}`);</span>
622
+ }
623
+ };
624
+ &nbsp;
625
+ const generateCertOnPremise = async () =&gt; {
626
+ throw new ApacuanaAPIError(
627
+ "Certificate generation is not supported for integration type: ONPREMISE",
628
+ 501,
629
+ "NOT_IMPLEMENTED"
630
+ );
631
+ };
632
+ &nbsp;
633
+ /**
634
+ * Generates a digital certificate.
635
+ * @param {EncryptedCSRObject} encryptedCSR - Certificate Signing Request (CSR) object.
636
+ * @returns {Promise&lt;GenerateCertResponse&gt;} Object with the generated certificate and a success indicator.
637
+ * @throws {ApacuanaAPIError} If the CSR is invalid, if the API response does not contain the certificate, or if the integration type is not supported.
638
+ * @throws {Error} If certificate generation fails for another reason.
639
+ */
640
+ export const generateCert = async (encryptedCSR) =&gt; {
641
+ const { integrationType } = getConfig();
642
+ helpers.validateCsr(encryptedCSR);
643
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
644
+ return generateCertOnBoarding(encryptedCSR);
645
+ }
646
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
647
+ return generateCertOnPremise();
648
+ }
649
+ &nbsp;
650
+ throw new ApacuanaAPIError(
651
+ `Unsupported integration type: ${integrationType}`,
652
+ 400,
653
+ "UNSUPPORTED_INTEGRATION_TYPE"
654
+ );
655
+ };
656
+ &nbsp;
657
+ /**
658
+ * Gets the user's certificate status.
659
+ * @param {boolean} [isCertificateInDevice=false] - Indicates if the certificate is already on the device.
660
+ * @returns {GetCertStatusResponse} Object with the certificate status and a success indicator.
661
+ */
662
+ export const getCertStatus = (isCertificateInDevice = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> =&gt; {
663
+ const config = getConfig();
664
+ const status = helpers.getCertificateStatus(
665
+ config.userData,
666
+ isCertificateInDevice,
667
+ config.integrationType
668
+ );
669
+ const parseStatus = PARSE_STATUS[status];
670
+ &nbsp;
671
+ return new ApacuanaSuccess({ status: parseStatus });
672
+ };
673
+ &nbsp;
674
+ const getCertTypesOnBoarding = async () =&gt; {
675
+ try {
676
+ const response = await httpRequest(
677
+ "services/api/customer/typeusers",
678
+ {},
679
+ "GET"
680
+ );
681
+ &nbsp;
682
+ return new ApacuanaSuccess(response);
683
+ } catch (error) {
684
+ <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
685
+ <span class="cstat-no" title="statement not covered" > throw error;</span>
686
+ }
687
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Failed to get certificate types: ${error.message}`);</span>
688
+ }
689
+ };
690
+ &nbsp;
691
+ const getCertTypesOnPremise = async () =&gt; {
692
+ throw new ApacuanaAPIError(
693
+ "Getting certificate types is not supported for integration type: ONPREMISE",
694
+ 501,
695
+ "NOT_IMPLEMENTED"
696
+ );
697
+ };
698
+ &nbsp;
699
+ /**
700
+ * Gets the available certificate types.
701
+ * @returns {Promise&lt;GetCertTypesResponse&gt;} Object with the list of certificate types and a success indicator.
702
+ * @throws {ApacuanaAPIError} If the API response is invalid or the integration type is not supported.
703
+ * @throws {Error} If the request fails for another reason.
704
+ */
705
+ export const getCertTypes = async () =&gt; {
706
+ const { integrationType } = getConfig();
707
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
708
+ return getCertTypesOnBoarding();
709
+ }
710
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
711
+ return getCertTypesOnPremise();
712
+ }
713
+ &nbsp;
714
+ throw new ApacuanaAPIError(
715
+ `Unsupported integration type: ${integrationType}`,
716
+ 400,
717
+ "UNSUPPORTED_INTEGRATION_TYPE"
718
+ );
719
+ };
720
+ &nbsp;
721
+ const getRequerimentsByTypeUserOnBoarding = async (type) =&gt; {
722
+ try {
723
+ const response = await httpRequest(
724
+ `services/api/customer/documentspref?typeuser=${type}`,
725
+ {},
726
+ "GET"
727
+ );
728
+ &nbsp;
729
+ return new ApacuanaSuccess(response);
730
+ } catch (error) {
731
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (error instanceof ApacuanaAPIError) {
732
+ <span class="cstat-no" title="statement not covered" > throw error;</span>
733
+ }
734
+ throw new Error(`Failed to get requirements: ${error.message}`);
735
+ }
736
+ };
737
+ &nbsp;
738
+ const getRequerimentsByTypeUserOnPremise = async () =&gt; {
739
+ throw new ApacuanaAPIError(
740
+ "Getting requirements by user type is not supported for integration type: ONPREMISE",
741
+ 501,
742
+ "NOT_IMPLEMENTED"
743
+ );
744
+ };
745
+ &nbsp;
746
+ /**
747
+ * Gets the requirements for a given user type.
748
+ * @param {object} params - The parameters.
749
+ * @param {number} params.type - The user type to get requirements for.
750
+ * @returns {Promise&lt;GetRequirementsResponse&gt;} Object with the list of requirements and a success indicator.
751
+ * @throws {ApacuanaAPIError} If the API response is invalid or the integration type is not supported.
752
+ * @throws {Error} If the request fails for another reason or the type is invalid.
753
+ */
754
+ export const getRequerimentsByTypeUser = async (params) =&gt; {
755
+ if (!params || typeof params.type !== "number") {
756
+ throw new Error(
757
+ 'The "params" object with a numeric "type" property is required.'
758
+ );
759
+ }
760
+ const { type } = params;
761
+ &nbsp;
762
+ const { integrationType } = getConfig();
763
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
764
+ return getRequerimentsByTypeUserOnBoarding(type);
765
+ }
766
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
767
+ return getRequerimentsByTypeUserOnPremise();
768
+ }
769
+ &nbsp;
770
+ throw new ApacuanaAPIError(
771
+ `Unsupported integration type: ${integrationType}`,
772
+ 400,
773
+ "UNSUPPORTED_INTEGRATION_TYPE"
774
+ );
775
+ };
776
+ &nbsp;
777
+ const requestCertificateOnBoarding = async (params) =&gt; {
778
+ try {
779
+ const response = await httpRequest(
780
+ "services/api/customer/request-certificate",
781
+ params,
782
+ "POST"
783
+ );
784
+ &nbsp;
785
+ return new ApacuanaSuccess(response);
786
+ } catch (error) {
787
+ if (error instanceof ApacuanaAPIError) {
788
+ throw error;
789
+ }
790
+ throw new Error(`Failed to request certificate: ${error.message}`);
791
+ }
792
+ };
793
+ &nbsp;
794
+ const requestCertificateOnPremise = async () =&gt; {
795
+ throw new ApacuanaAPIError(
796
+ "Requesting a certificate is not supported for integration type: ONPREMISE",
797
+ 501,
798
+ "NOT_IMPLEMENTED"
799
+ );
800
+ };
801
+ &nbsp;
802
+ /**
803
+ * Requests a certificate for the user.
804
+ * @param {CertificateRequestParams} params - The parameters for the certificate request.
805
+ * @returns {Promise&lt;RequestCertificateResponse&gt;} Object with a confirmation message and a success indicator.
806
+ * @throws {ApacuanaAPIError} If the API response is invalid or the integration type is not supported.
807
+ * @throws {Error} If the request fails for another reason or the params are invalid.
808
+ */
809
+ export const requestCertificate = async (params) =&gt; {
810
+ if (
811
+ !params ||
812
+ typeof params.type !== "number" ||
813
+ !Array.isArray(params.documents)
814
+ ) {
815
+ throw new Error(
816
+ 'The "params" object with a numeric "type" property and a "documents" array is required.'
817
+ );
818
+ }
819
+ &nbsp;
820
+ const { integrationType } = getConfig();
821
+ if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
822
+ return requestCertificateOnBoarding(params);
823
+ }
824
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
825
+ return requestCertificateOnPremise();
826
+ }
827
+ &nbsp;
828
+ throw new ApacuanaAPIError(
829
+ `Unsupported integration type: ${integrationType}`,
830
+ 400,
831
+ "UNSUPPORTED_INTEGRATION_TYPE"
832
+ );
833
+ };
834
+ &nbsp;</pre></td></tr></table></pre>
835
+
836
+ <div class='push'></div><!-- for sticky footer -->
837
+ </div><!-- /wrapper -->
838
+ <div class='footer quiet pad2 space-top1 center small'>
839
+ Code coverage generated by
840
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
841
+ at 2025-11-03T16:01:42.357Z
842
+ </div>
843
+ <script src="../../prettify.js"></script>
844
+ <script>
845
+ window.onload = function () {
846
+ prettyPrint();
847
+ };
848
+ </script>
849
+ <script src="../../sorter.js"></script>
850
+ <script src="../../block-navigation.js"></script>
851
+ </body>
852
+ </html>
853
+