apacuana-sdk-core 0.5.0 → 0.6.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.
- package/README.md +90 -55
- package/coverage/clover.xml +144 -123
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/index.html +27 -27
- package/coverage/lcov-report/src/api/certs.js.html +40 -4
- package/coverage/lcov-report/src/api/index.html +19 -19
- package/coverage/lcov-report/src/api/revocations.js.html +21 -3
- package/coverage/lcov-report/src/api/signatures.js.html +123 -18
- package/coverage/lcov-report/src/api/users.js.html +24 -3
- package/coverage/lcov-report/src/config/index.html +1 -1
- package/coverage/lcov-report/src/config/index.js.html +1 -1
- package/coverage/lcov-report/src/errors/index.html +1 -1
- package/coverage/lcov-report/src/errors/index.js.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.js.html +9 -3
- package/coverage/lcov-report/src/utils/constant.js.html +3 -3
- package/coverage/lcov-report/src/utils/helpers.js.html +143 -8
- package/coverage/lcov-report/src/utils/httpClient.js.html +1 -1
- package/coverage/lcov-report/src/utils/index.html +15 -15
- package/coverage/lcov.info +252 -204
- package/dist/api/certs.d.ts +17 -3
- package/dist/api/revocations.d.ts +17 -2
- package/dist/api/signatures.d.ts +18 -1
- package/dist/api/users.d.ts +22 -6
- package/dist/index.d.ts +4 -0
- package/dist/index.js +335 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +335 -22
- package/dist/index.mjs.map +1 -1
- package/dist/utils/helpers.d.ts +2 -0
- package/package.json +1 -1
- package/src/api/certs.js +14 -2
- package/src/api/revocations.js +7 -1
- package/src/api/signatures.js +43 -8
- package/src/api/users.js +8 -1
- package/src/index.js +3 -1
- package/src/utils/constant.js +2 -2
- package/src/utils/helpers.js +45 -0
|
@@ -145,7 +145,31 @@
|
|
|
145
145
|
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
146
|
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
147
|
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
165
|
+
<span class="cline-any cline-neutral"> </span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-neutral"> </span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
149
173
|
<span class="cline-any cline-neutral"> </span>
|
|
150
174
|
<span class="cline-any cline-neutral"> </span>
|
|
151
175
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -233,6 +257,18 @@ import helpers from "../utils/helpers";
|
|
|
233
257
|
import { ApacuanaAPIError } from "../errors";
|
|
234
258
|
import { INTEGRATION_TYPE } from "../utils/constant";
|
|
235
259
|
|
|
260
|
+
/**
|
|
261
|
+
* @typedef {object} GenerateCertResponse
|
|
262
|
+
* @property {string} cert - El certificado generado en formato string.
|
|
263
|
+
* @property {boolean} success - Indica si la operación fue exitosa.
|
|
264
|
+
*/
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* @typedef {object} GetCertStatusResponse
|
|
268
|
+
* @property {string} status - El estado actual del certificado del usuario.
|
|
269
|
+
* @property {boolean} success - Indica si la operación fue exitosa.
|
|
270
|
+
*/
|
|
271
|
+
|
|
236
272
|
const generateCertOnBoarding = async (csr = <span class="branch-0 cbranch-no" title="branch not covered" >undefined)</span> => {
|
|
237
273
|
try {
|
|
238
274
|
const encryptedCSR = helpers.encryptedCsr(csr);
|
|
@@ -272,7 +308,7 @@ const generateCertOnPremise = async () => {
|
|
|
272
308
|
/**
|
|
273
309
|
* Generates a digital certificate.
|
|
274
310
|
* @param {string} [csr] - Certificate Signing Request (CSR).
|
|
275
|
-
* @returns {Promise<
|
|
311
|
+
* @returns {Promise<GenerateCertResponse>} Object with the generated certificate and a success indicator.
|
|
276
312
|
* @throws {ApacuanaAPIError} If the CSR is invalid, if the API response does not contain the certificate, or if the integration type is not supported.
|
|
277
313
|
* @throws {Error} If certificate generation fails for another reason.
|
|
278
314
|
*/
|
|
@@ -296,7 +332,7 @@ export const generateCert = async (csr = <span class="branch-0 cbranch-no" title
|
|
|
296
332
|
/**
|
|
297
333
|
* Gets the user's certificate status.
|
|
298
334
|
* @param {boolean} [isCertificateInDevice=false] - Indicates if the certificate is already on the device.
|
|
299
|
-
* @returns {
|
|
335
|
+
* @returns {GetCertStatusResponse} Object with the certificate status and a success indicator.
|
|
300
336
|
*/
|
|
301
337
|
export const getCertStatus = (isCertificateInDevice = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> => {
|
|
302
338
|
const config = getConfig();
|
|
@@ -316,7 +352,7 @@ export const getCertStatus = (isCertificateInDevice = <span class="branch-0 cbra
|
|
|
316
352
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
317
353
|
Code coverage generated by
|
|
318
354
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
319
|
-
at 2025-08-
|
|
355
|
+
at 2025-08-25T23:18:38.359Z
|
|
320
356
|
</div>
|
|
321
357
|
<script src="../../prettify.js"></script>
|
|
322
358
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">60.9% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>81/
|
|
28
|
+
<span class='fraction'>81/133</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">48.57% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>34/
|
|
35
|
+
<span class='fraction'>34/70</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">57.89% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>11/
|
|
42
|
+
<span class='fraction'>11/19</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">60.9% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>81/
|
|
49
|
+
<span class='fraction'>81/133</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -110,17 +110,17 @@
|
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
112
112
|
<td class="file medium" data-value="signatures.js"><a href="signatures.js.html">signatures.js</a></td>
|
|
113
|
-
<td data-value="
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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>
|
|
115
115
|
</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="
|
|
118
|
-
<td data-value="
|
|
119
|
-
<td data-value="
|
|
120
|
-
<td data-value="
|
|
121
|
-
<td data-value="
|
|
122
|
-
<td data-value="
|
|
123
|
-
<td data-value="
|
|
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>
|
|
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-08-
|
|
149
|
+
at 2025-08-25T23:18:38.359Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../../prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -105,7 +105,19 @@
|
|
|
105
105
|
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
106
|
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
107
|
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
115
|
+
<span class="cline-any cline-neutral"> </span>
|
|
116
|
+
<span class="cline-any cline-neutral"> </span>
|
|
117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
109
121
|
<span class="cline-any cline-neutral"> </span>
|
|
110
122
|
<span class="cline-any cline-neutral"> </span>
|
|
111
123
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -150,10 +162,16 @@
|
|
|
150
162
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { httpRequest } from "../utils/httpClient";
|
|
151
163
|
import { ApacuanaAPIError } from "../errors/index";
|
|
152
164
|
|
|
165
|
+
/**
|
|
166
|
+
* @typedef {object} RequestRevocationResponse
|
|
167
|
+
* @property {string} revocationStatus - El estado de la solicitud de revocación (e.g., "pending").
|
|
168
|
+
* @property {string|number} requestId - El ID de la solicitud de revocación.
|
|
169
|
+
*/
|
|
170
|
+
|
|
153
171
|
/**
|
|
154
172
|
* Simula la solicitud de revocación de un certificado.
|
|
155
173
|
* @param {string} reasonCode - Código o descripción del motivo de la revocación.
|
|
156
|
-
* @returns {Promise<
|
|
174
|
+
* @returns {Promise<RequestRevocationResponse>} Objeto con el estado de la solicitud de revocación.
|
|
157
175
|
*/
|
|
158
176
|
const requestRevocation = <span class="fstat-no" title="function not covered" >as</span>ync (reasonCode) => {
|
|
159
177
|
<span class="cstat-no" title="statement not covered" > console.log("-> Función 'requestRevocation' ejecutada.");</span>
|
|
@@ -196,7 +214,7 @@ export default requestRevocation;
|
|
|
196
214
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
197
215
|
Code coverage generated by
|
|
198
216
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
199
|
-
at 2025-08-
|
|
217
|
+
at 2025-08-25T23:18:38.359Z
|
|
200
218
|
</div>
|
|
201
219
|
<script src="../../prettify.js"></script>
|
|
202
220
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">50.6% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>42/
|
|
28
|
+
<span class='fraction'>42/83</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">38.46% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>15/
|
|
35
|
+
<span class='fraction'>15/39</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">46.15% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>6/
|
|
42
|
+
<span class='fraction'>6/13</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">50.6% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>42/
|
|
49
|
+
<span class='fraction'>42/83</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -364,7 +364,51 @@
|
|
|
364
364
|
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
365
|
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
366
|
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
-
<a name='L302'></a><a href='#L302'>302</a
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
412
|
<span class="cline-any cline-neutral"> </span>
|
|
369
413
|
<span class="cline-any cline-neutral"> </span>
|
|
370
414
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -433,7 +477,32 @@
|
|
|
433
477
|
<span class="cline-any cline-neutral"> </span>
|
|
434
478
|
<span class="cline-any cline-yes">2x</span>
|
|
435
479
|
<span class="cline-any cline-no"> </span>
|
|
480
|
+
<span class="cline-any cline-no"> </span>
|
|
481
|
+
<span class="cline-any cline-no"> </span>
|
|
482
|
+
<span class="cline-any cline-no"> </span>
|
|
483
|
+
<span class="cline-any cline-neutral"> </span>
|
|
484
|
+
<span class="cline-any cline-no"> </span>
|
|
485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
489
|
+
<span class="cline-any cline-neutral"> </span>
|
|
490
|
+
<span class="cline-any cline-neutral"> </span>
|
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
495
|
+
<span class="cline-any cline-no"> </span>
|
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
497
|
+
<span class="cline-any cline-neutral"> </span>
|
|
498
|
+
<span class="cline-any cline-neutral"> </span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-no"> </span>
|
|
436
501
|
<span class="cline-any cline-neutral"> </span>
|
|
502
|
+
<span class="cline-any cline-no"> </span>
|
|
503
|
+
<span class="cline-any cline-no"> </span>
|
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-no"> </span>
|
|
437
506
|
<span class="cline-any cline-neutral"> </span>
|
|
438
507
|
<span class="cline-any cline-neutral"> </span>
|
|
439
508
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -561,6 +630,7 @@
|
|
|
561
630
|
<span class="cline-any cline-neutral"> </span>
|
|
562
631
|
<span class="cline-any cline-neutral"> </span>
|
|
563
632
|
<span class="cline-any cline-neutral"> </span>
|
|
633
|
+
<span class="cline-any cline-neutral"> </span>
|
|
564
634
|
<span class="cline-any cline-yes">2x</span>
|
|
565
635
|
<span class="cline-any cline-no"> </span>
|
|
566
636
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -728,16 +798,50 @@ import { INTEGRATION_TYPE } from "../utils/constant";
|
|
|
728
798
|
* @property {boolean} success - Indica si la operación fue exitosa.
|
|
729
799
|
*/
|
|
730
800
|
|
|
801
|
+
/**
|
|
802
|
+
* @typedef {object} SignDocumentData
|
|
803
|
+
* @property {object} signature - Objeto con información de la firma.
|
|
804
|
+
* @property {string} signature.id - ID de la firma.
|
|
805
|
+
* @property {Array<object>} signature.positions - Posiciones de la firma.
|
|
806
|
+
* @property {string} cert - Certificado en base64.
|
|
807
|
+
* @property {string} signedDigest - Digest firmado.
|
|
808
|
+
*/
|
|
809
|
+
|
|
731
810
|
// =================================================================
|
|
732
811
|
// Internal Functions
|
|
733
812
|
// =================================================================
|
|
734
813
|
|
|
735
|
-
const signDocumentOnBoarding = <span class="fstat-no" title="function not covered" >as</span>ync () => {
|
|
736
|
-
<span class="cstat-no" title="statement not covered" >
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
"
|
|
740
|
-
|
|
814
|
+
const signDocumentOnBoarding = <span class="fstat-no" title="function not covered" >as</span>ync (signData) => {
|
|
815
|
+
<span class="cstat-no" title="statement not covered" > helpers.validateOnBoardingSignDocumentData(signData);</span>
|
|
816
|
+
const { signature, cert, signedDigest } = <span class="cstat-no" title="statement not covered" >signData;</span>
|
|
817
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
818
|
+
const signBody = <span class="cstat-no" title="statement not covered" >{</span>
|
|
819
|
+
positions: JSON.stringify(
|
|
820
|
+
signature.positions.map(<span class="fstat-no" title="function not covered" >(p</span>) => (<span class="cstat-no" title="statement not covered" >{</span>
|
|
821
|
+
x: p.x,
|
|
822
|
+
y: p.y,
|
|
823
|
+
page: p.page,
|
|
824
|
+
status: 1,
|
|
825
|
+
}))
|
|
826
|
+
),
|
|
827
|
+
publickey: cert,
|
|
828
|
+
signeddigest: signedDigest,
|
|
829
|
+
};
|
|
830
|
+
|
|
831
|
+
const response = <span class="cstat-no" title="statement not covered" >await httpRequest(</span>
|
|
832
|
+
`services/api/documents/sign/${signature.id}`,
|
|
833
|
+
signBody,
|
|
834
|
+
"PUT"
|
|
835
|
+
);
|
|
836
|
+
<span class="cstat-no" title="statement not covered" > return response;</span>
|
|
837
|
+
} catch (error) {
|
|
838
|
+
<span class="cstat-no" title="statement not covered" > if (error instanceof ApacuanaAPIError) {</span>
|
|
839
|
+
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
840
|
+
}
|
|
841
|
+
<span class="cstat-no" title="statement not covered" > throw new ApacuanaAPIError(</span>
|
|
842
|
+
`Failed to sign document: ${error.message || "Unknown error"}`
|
|
843
|
+
);
|
|
844
|
+
}
|
|
741
845
|
};
|
|
742
846
|
|
|
743
847
|
const signDocumentOnPremise = <span class="fstat-no" title="function not covered" >as</span>ync () => {
|
|
@@ -859,14 +963,15 @@ const getDocsOnBoarding = async (data) => {
|
|
|
859
963
|
/**
|
|
860
964
|
* Firma un documento PDF con un certificado digital.
|
|
861
965
|
* NOTA: Esta función no está implementada actualmente para ningún tipo de integración.
|
|
966
|
+
* @param {SignDocumentData} signData - Datos necesarios para la firma.
|
|
862
967
|
* @returns {Promise<object>}
|
|
863
968
|
* @throws {ApacuanaAPIError} Arroja un error 'NOT_IMPLEMENTED' para cualquier tipo de integración.
|
|
864
969
|
*/
|
|
865
|
-
export const signDocument = <span class="fstat-no" title="function not covered" >as</span>ync () => {
|
|
970
|
+
export const signDocument = <span class="fstat-no" title="function not covered" >as</span>ync (signData) => {
|
|
866
971
|
const { integrationType } = <span class="cstat-no" title="statement not covered" >getConfig();</span>
|
|
867
972
|
|
|
868
973
|
<span class="cstat-no" title="statement not covered" > if (integrationType === INTEGRATION_TYPE.ONBOARDING) {</span>
|
|
869
|
-
<span class="cstat-no" title="statement not covered" > return signDocumentOnBoarding();</span>
|
|
974
|
+
<span class="cstat-no" title="statement not covered" > return signDocumentOnBoarding(signData);</span>
|
|
870
975
|
}
|
|
871
976
|
|
|
872
977
|
<span class="cstat-no" title="statement not covered" > if (integrationType === INTEGRATION_TYPE.ONPREMISE) {</span>
|
|
@@ -973,7 +1078,7 @@ export const getDocs = async (data) => {
|
|
|
973
1078
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
974
1079
|
Code coverage generated by
|
|
975
1080
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
976
|
-
at 2025-08-
|
|
1081
|
+
at 2025-08-25T23:18:38.359Z
|
|
977
1082
|
</div>
|
|
978
1083
|
<script src="../../prettify.js"></script>
|
|
979
1084
|
<script>
|
|
@@ -125,7 +125,21 @@
|
|
|
125
125
|
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
126
|
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
127
|
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
129
143
|
<span class="cline-any cline-neutral"> </span>
|
|
130
144
|
<span class="cline-any cline-neutral"> </span>
|
|
131
145
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -191,12 +205,19 @@
|
|
|
191
205
|
import { ApacuanaAPIError } from "../errors/index";
|
|
192
206
|
import { getConfig } from "../config/index";
|
|
193
207
|
|
|
208
|
+
/**
|
|
209
|
+
* @typedef {object} GetCustomerResponse
|
|
210
|
+
* @property {string} token - El token de sesión del usuario.
|
|
211
|
+
* @property {object} userData - Los datos del usuario obtenidos.
|
|
212
|
+
* @property {boolean} success - Indica si la operación fue exitosa.
|
|
213
|
+
*/
|
|
214
|
+
|
|
194
215
|
/**
|
|
195
216
|
* Obtiene el token de un usuario a través de una petición POST.
|
|
196
217
|
* Este método es útil para endpoints que requieren datos en el cuerpo de la petición
|
|
197
218
|
* para buscar un usuario, como un ID de sesión o un token de acceso.
|
|
198
219
|
*
|
|
199
|
-
* @returns {Promise<
|
|
220
|
+
* @returns {Promise<GetCustomerResponse>} Objeto con el token de sesión, los datos del usuario y un indicador de éxito.
|
|
200
221
|
* @throws {Error} Si los parámetros de entrada son inválidos.
|
|
201
222
|
* @throws {ApacuanaAPIError} Si ocurre un error en la API de Apacuana.
|
|
202
223
|
*/
|
|
@@ -256,7 +277,7 @@ export default getCustomer;
|
|
|
256
277
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
257
278
|
Code coverage generated by
|
|
258
279
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
259
|
-
at 2025-08-
|
|
280
|
+
at 2025-08-25T23:18:38.359Z
|
|
260
281
|
</div>
|
|
261
282
|
<script src="../../prettify.js"></script>
|
|
262
283
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2025-08-
|
|
104
|
+
at 2025-08-25T23:18:38.359Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -193,7 +193,7 @@ export const getConfig = <span class="fstat-no" title="function not covered" >()
|
|
|
193
193
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
194
194
|
Code coverage generated by
|
|
195
195
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
196
|
-
at 2025-08-
|
|
196
|
+
at 2025-08-25T23:18:38.359Z
|
|
197
197
|
</div>
|
|
198
198
|
<script src="../../prettify.js"></script>
|
|
199
199
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2025-08-
|
|
104
|
+
at 2025-08-25T23:18:38.359Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -133,7 +133,7 @@ export default ApacuanaAPIError;
|
|
|
133
133
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
134
|
Code coverage generated by
|
|
135
135
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
136
|
-
at 2025-08-
|
|
136
|
+
at 2025-08-25T23:18:38.359Z
|
|
137
137
|
</div>
|
|
138
138
|
<script src="../../prettify.js"></script>
|
|
139
139
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2025-08-
|
|
104
|
+
at 2025-08-25T23:18:38.359Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -134,7 +134,9 @@
|
|
|
134
134
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
135
|
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
136
|
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
138
140
|
<span class="cline-any cline-neutral"> </span>
|
|
139
141
|
<span class="cline-any cline-neutral"> </span>
|
|
140
142
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -205,12 +207,14 @@
|
|
|
205
207
|
<span class="cline-any cline-neutral"> </span>
|
|
206
208
|
<span class="cline-any cline-neutral"> </span>
|
|
207
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
208
212
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { setConfig, getConfig } from "./config/index";
|
|
209
213
|
import { initHttpClient, setAuthToken } from "./utils/httpClient";
|
|
210
214
|
import getCustomer from "./api/users";
|
|
211
215
|
import requestRevocation from "./api/revocations";
|
|
212
216
|
import { generateCert, getCertStatus } from "./api/certs";
|
|
213
|
-
import { addSigner, getDocs } from "./api/signatures";
|
|
217
|
+
import { addSigner, getDigest, getDocs, signDocument } from "./api/signatures";
|
|
214
218
|
|
|
215
219
|
const apacuana = {
|
|
216
220
|
/**
|
|
@@ -273,6 +277,8 @@ const apacuana = {
|
|
|
273
277
|
addSigner,
|
|
274
278
|
getDocs,
|
|
275
279
|
generateCert,
|
|
280
|
+
signDocument,
|
|
281
|
+
getDigest,
|
|
276
282
|
};
|
|
277
283
|
|
|
278
284
|
export default apacuana;
|
|
@@ -283,7 +289,7 @@ export default apacuana;
|
|
|
283
289
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
284
290
|
Code coverage generated by
|
|
285
291
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
286
|
-
at 2025-08-
|
|
292
|
+
at 2025-08-25T23:18:38.359Z
|
|
287
293
|
</div>
|
|
288
294
|
<script src="../prettify.js"></script>
|
|
289
295
|
<script>
|
|
@@ -120,8 +120,8 @@ export const VERIFICATION_STATUS = {
|
|
|
120
120
|
};
|
|
121
121
|
|
|
122
122
|
export const INTEGRATION_TYPE = {
|
|
123
|
-
ONBOARDING:
|
|
124
|
-
ONPREMISE:
|
|
123
|
+
ONBOARDING: "ONBOARDING",
|
|
124
|
+
ONPREMISE: "ONPREMISE",
|
|
125
125
|
};
|
|
126
126
|
</pre></td></tr></table></pre>
|
|
127
127
|
|
|
@@ -130,7 +130,7 @@ export const INTEGRATION_TYPE = {
|
|
|
130
130
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
131
131
|
Code coverage generated by
|
|
132
132
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
133
|
-
at 2025-08-
|
|
133
|
+
at 2025-08-25T23:18:38.359Z
|
|
134
134
|
</div>
|
|
135
135
|
<script src="../../prettify.js"></script>
|
|
136
136
|
<script>
|