apacuana-sdk-core 0.8.0 → 0.10.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 (36) hide show
  1. package/README.md +150 -0
  2. package/coverage/clover.xml +233 -130
  3. package/coverage/coverage-final.json +8 -8
  4. package/coverage/lcov-report/index.html +29 -29
  5. package/coverage/lcov-report/src/api/certs.js.html +390 -9
  6. package/coverage/lcov-report/src/api/index.html +40 -40
  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 +1 -1
  11. package/coverage/lcov-report/src/config/index.js.html +6 -6
  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 +58 -4
  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 +422 -227
  21. package/dist/api/certs.d.ts +44 -0
  22. package/dist/api/signatures.d.ts +5 -0
  23. package/dist/index.d.ts +10 -0
  24. package/dist/index.js +579 -79
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +579 -79
  27. package/dist/index.mjs.map +1 -1
  28. package/package.json +1 -1
  29. package/src/api/certs.js +127 -0
  30. package/src/api/revocations.js +14 -2
  31. package/src/api/signatures.js +174 -0
  32. package/src/index.js +20 -2
  33. package/src/utils/httpClient.js +29 -19
  34. package/tests/api/certs.test.js +113 -1
  35. package/tests/api/revocations.test.js +118 -5
  36. 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">56.61% </span>
26
+ <span class="strong">86.89% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>77/136</span>
28
+ <span class='fraction'>199/229</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">48.52% </span>
33
+ <span class="strong">73.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>33/68</span>
35
+ <span class='fraction'>88/120</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">55% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/20</span>
42
+ <span class='fraction'>35/35</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">56.61% </span>
47
+ <span class="strong">86.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>77/136</span>
49
+ <span class='fraction'>199/229</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
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -80,47 +80,47 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="certs.js"><a href="certs.js.html">certs.js</a></td>
83
- <td data-value="83.33" class="pic high">
83
+ <td data-value="83.05" class="pic high">
84
84
  <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
85
85
  </td>
86
- <td data-value="83.33" class="pct high">83.33%</td>
87
- <td data-value="24" class="abs high">20/24</td>
88
- <td data-value="63.63" class="pct medium">63.63%</td>
89
- <td data-value="11" class="abs medium">7/11</td>
86
+ <td data-value="83.05" class="pct high">83.05%</td>
87
+ <td data-value="59" class="abs high">49/59</td>
88
+ <td data-value="70.37" class="pct medium">70.37%</td>
89
+ <td data-value="27" class="abs medium">19/27</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="4" class="abs high">4/4</td>
92
- <td data-value="83.33" class="pct high">83.33%</td>
93
- <td data-value="24" class="abs high">20/24</td>
91
+ <td data-value="10" class="abs high">10/10</td>
92
+ <td data-value="83.05" class="pct high">83.05%</td>
93
+ <td data-value="59" class="abs high">49/59</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file low" data-value="revocations.js"><a href="revocations.js.html">revocations.js</a></td>
98
- <td data-value="12.5" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 12%"></div><div class="cover-empty" style="width: 88%"></div></div>
97
+ <td class="file high" data-value="revocations.js"><a href="revocations.js.html">revocations.js</a></td>
98
+ <td data-value="100" class="pic high">
99
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
100
  </td>
101
- <td data-value="12.5" class="pct low">12.5%</td>
102
- <td data-value="16" class="abs low">2/16</td>
103
- <td data-value="0" class="pct low">0%</td>
104
- <td data-value="6" class="abs low">0/6</td>
105
- <td data-value="0" class="pct low">0%</td>
106
- <td data-value="2" class="abs low">0/2</td>
107
- <td data-value="12.5" class="pct low">12.5%</td>
108
- <td data-value="16" class="abs low">2/16</td>
101
+ <td data-value="100" class="pct high">100%</td>
102
+ <td data-value="19" class="abs high">19/19</td>
103
+ <td data-value="100" class="pct high">100%</td>
104
+ <td data-value="8" class="abs high">8/8</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="2" class="abs high">2/2</td>
107
+ <td data-value="100" class="pct high">100%</td>
108
+ <td data-value="19" class="abs high">19/19</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
- <td class="file medium" data-value="signatures.js"><a href="signatures.js.html">signatures.js</a></td>
113
- <td data-value="50.6" class="pic medium">
114
- <div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
112
+ <td class="file high" data-value="signatures.js"><a href="signatures.js.html">signatures.js</a></td>
113
+ <td data-value="85.5" class="pic high">
114
+ <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
115
115
  </td>
116
- <td data-value="50.6" class="pct medium">50.6%</td>
117
- <td data-value="83" class="abs medium">42/83</td>
118
- <td data-value="38.46" class="pct low">38.46%</td>
119
- <td data-value="39" class="abs low">15/39</td>
120
- <td data-value="46.15" class="pct low">46.15%</td>
121
- <td data-value="13" class="abs low">6/13</td>
122
- <td data-value="50.6" class="pct medium">50.6%</td>
123
- <td data-value="83" class="abs medium">42/83</td>
116
+ <td data-value="85.5" class="pct high">85.5%</td>
117
+ <td data-value="138" class="abs high">118/138</td>
118
+ <td data-value="68.49" class="pct medium">68.49%</td>
119
+ <td data-value="73" class="abs medium">50/73</td>
120
+ <td data-value="100" class="pct high">100%</td>
121
+ <td data-value="22" class="abs high">22/22</td>
122
+ <td data-value="85.5" class="pct high">85.5%</td>
123
+ <td data-value="138" class="abs high">118/138</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2025-09-02T16:03:18.966Z
149
+ at 2025-09-05T15:19:06.305Z
150
150
  </div>
151
151
  <script src="../../prettify.js"></script>
152
152
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">12.5% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>2/16</span>
28
+ <span class='fraction'>19/19</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/6</span>
35
+ <span class='fraction'>8/8</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/2</span>
42
+ <span class='fraction'>2/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">12.5% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>2/16</span>
49
+ <span class='fraction'>19/19</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 low'></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>
@@ -146,7 +146,19 @@
146
146
  <a name='L81'></a><a href='#L81'>81</a>
147
147
  <a name='L82'></a><a href='#L82'>82</a>
148
148
  <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
150
162
  <span class="cline-any cline-neutral">&nbsp;</span>
151
163
  <span class="cline-any cline-neutral">&nbsp;</span>
152
164
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -184,21 +196,24 @@
184
196
  <span class="cline-any cline-neutral">&nbsp;</span>
185
197
  <span class="cline-any cline-neutral">&nbsp;</span>
186
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-yes">2x</span>
202
+ <span class="cline-any cline-yes">3x</span>
187
203
  <span class="cline-any cline-yes">1x</span>
188
- <span class="cline-any cline-no">&nbsp;</span>
189
- <span class="cline-any cline-no">&nbsp;</span>
190
204
  <span class="cline-any cline-neutral">&nbsp;</span>
191
205
  <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-no">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
206
+ <span class="cline-any cline-yes">2x</span>
207
+ <span class="cline-any cline-yes">2x</span>
194
208
  <span class="cline-any cline-neutral">&nbsp;</span>
195
209
  <span class="cline-any cline-neutral">&nbsp;</span>
196
210
  <span class="cline-any cline-neutral">&nbsp;</span>
197
211
  <span class="cline-any cline-neutral">&nbsp;</span>
198
212
  <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-no">&nbsp;</span>
213
+ <span class="cline-any cline-yes">1x</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-yes">1x</span>
200
216
  <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
202
217
  <span class="cline-any cline-neutral">&nbsp;</span>
203
218
  <span class="cline-any cline-neutral">&nbsp;</span>
204
219
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -206,31 +221,42 @@
206
221
  <span class="cline-any cline-neutral">&nbsp;</span>
207
222
  <span class="cline-any cline-neutral">&nbsp;</span>
208
223
  <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-yes">2x</span>
225
+ <span class="cline-any cline-yes">5x</span>
209
226
  <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-yes">5x</span>
210
228
  <span class="cline-any cline-yes">1x</span>
211
- <span class="cline-any cline-no">&nbsp;</span>
212
- <span class="cline-any cline-no">&nbsp;</span>
213
229
  <span class="cline-any cline-neutral">&nbsp;</span>
214
230
  <span class="cline-any cline-neutral">&nbsp;</span>
215
231
  <span class="cline-any cline-neutral">&nbsp;</span>
216
232
  <span class="cline-any cline-neutral">&nbsp;</span>
217
233
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-no">&nbsp;</span>
219
- <span class="cline-any cline-no">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-yes">4x</span>
236
+ <span class="cline-any cline-yes">4x</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
240
  <span class="cline-any cline-neutral">&nbsp;</span>
221
241
  <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-no">&nbsp;</span>
242
+ <span class="cline-any cline-yes">2x</span>
243
+ <span class="cline-any cline-yes">1x</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
245
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
225
- <span class="cline-any cline-no">&nbsp;</span>
246
+ <span class="cline-any cline-yes">1x</span>
226
247
  <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-yes">3x</span>
249
+ <span class="cline-any cline-yes">2x</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-yes">1x</span>
228
252
  <span class="cline-any cline-neutral">&nbsp;</span>
229
253
  <span class="cline-any cline-neutral">&nbsp;</span>
230
254
  <span class="cline-any cline-neutral">&nbsp;</span>
231
255
  <span class="cline-any cline-neutral">&nbsp;</span>
232
256
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { httpRequest } from "../utils/httpClient";
233
257
  import { ApacuanaAPIError } from "../errors/index";
258
+ import { getConfig } from "../config";
259
+ import { INTEGRATION_TYPE } from "../utils/constant";
234
260
  &nbsp;
235
261
  /**
236
262
  * @typedef {object} RequestRevocationResponse
@@ -267,21 +293,21 @@ import { ApacuanaAPIError } from "../errors/index";
267
293
  * @returns {Promise&lt;RevocationResponse&gt;} An object indicating the success of the request.
268
294
  * @throws {ApacuanaAPIError} If the revocation request fails.
269
295
  */
270
- export const requestRevocation = <span class="fstat-no" title="function not covered" >as</span>ync (reasonCode) =&gt; {
271
- <span class="cstat-no" title="statement not covered" > if (!reasonCode) {</span>
272
- <span class="cstat-no" title="statement not covered" > throw new Error("Código de motivo es requerido para requestRevocation.");</span>
296
+ export const requestRevocation = async (reasonCode) =&gt; {
297
+ if (!reasonCode) {
298
+ throw new Error("Código de motivo es requerido para requestRevocation.");
273
299
  }
274
300
  &nbsp;
275
- <span class="cstat-no" title="statement not covered" > try {</span>
276
- const response = <span class="cstat-no" title="statement not covered" >await httpRequest(</span>
301
+ try {
302
+ const response = await httpRequest(
277
303
  "services/api/onboardingclient/requestcert",
278
304
  { reason: reasonCode },
279
305
  "POST"
280
306
  );
281
307
  &nbsp;
282
- <span class="cstat-no" title="statement not covered" > return response;</span>
308
+ return response;
283
309
  } catch (error) {
284
- <span class="cstat-no" title="statement not covered" > throw new Error(`Fallo en la solicitud de revocación: ${error.message}`);</span>
310
+ throw new Error(`Fallo en la solicitud de revocación: ${error.message}`);
285
311
  }
286
312
  };
287
313
  &nbsp;
@@ -290,24 +316,34 @@ export const requestRevocation = <span class="fstat-no" title="function not cove
290
316
  * @returns {Promise&lt;RevocationReasonsResponse&gt;} An object containing the list of revocation reasons.
291
317
  * @throws {ApacuanaAPIError} If fetching the reasons fails.
292
318
  */
293
- export const getRevocationReasons = <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {
294
- <span class="cstat-no" title="statement not covered" > try {</span>
295
- const response = <span class="cstat-no" title="statement not covered" >await httpRequest(</span>
319
+ export const getRevocationReasons = async () =&gt; {
320
+ const { integrationType } = getConfig();
321
+ &nbsp;
322
+ if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
323
+ throw new ApacuanaAPIError(
324
+ `Get revocation reasons is not supported for integration type: ${integrationType}`,
325
+ 501,
326
+ "NOT_IMPLEMENTED"
327
+ );
328
+ }
329
+ &nbsp;
330
+ try {
331
+ const response = await httpRequest(
332
+ "GET",
296
333
  "config/api/revocation/reasonsonboarding",
297
- {},
298
- "GET"
334
+ {}
299
335
  );
300
336
  &nbsp;
301
- <span class="cstat-no" title="statement not covered" > if (!response.records) {</span>
302
- <span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError("Failed to fetch revocation reasons.");</span>
337
+ if (!response.records) {
338
+ throw new ApacuanaAPIError("Failed to fetch revocation reasons.");
303
339
  }
304
340
  &nbsp;
305
- <span class="cstat-no" title="statement not covered" > return response.records;</span>
341
+ return response.records;
306
342
  } catch (error) {
307
- <span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
308
- <span class="cstat-no" title="statement not covered" > throw error;</span>
343
+ if (error instanceof ApacuanaAPIError) {
344
+ throw error;
309
345
  }
310
- <span class="cstat-no" title="statement not covered" > throw new Error(</span>
346
+ throw new Error(
311
347
  "Failed to get revocation reasons. Please try again later."
312
348
  );
313
349
  }
@@ -319,7 +355,7 @@ export const getRevocationReasons = <span class="fstat-no" title="function not c
319
355
  <div class='footer quiet pad2 space-top1 center small'>
320
356
  Code coverage generated by
321
357
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
322
- at 2025-09-02T16:03:18.966Z
358
+ at 2025-09-05T15:19:06.305Z
323
359
  </div>
324
360
  <script src="../../prettify.js"></script>
325
361
  <script>