apacuana-sdk-core 0.2.0 → 0.3.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 +64 -15
- package/coverage/clover.xml +145 -111
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/index.html +30 -30
- package/coverage/lcov-report/src/api/certs.js.html +73 -28
- package/coverage/lcov-report/src/api/index.html +31 -31
- package/coverage/lcov-report/src/api/revocations.js.html +1 -1
- package/coverage/lcov-report/src/api/signatures.js.html +186 -159
- package/coverage/lcov-report/src/api/users.js.html +24 -63
- 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 +8 -8
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.js.html +1 -1
- package/coverage/lcov-report/src/utils/constant.js.html +4 -4
- package/coverage/lcov-report/src/utils/helpers.js.html +101 -50
- package/coverage/lcov-report/src/utils/httpClient.js.html +1 -1
- package/coverage/lcov-report/src/utils/index.html +19 -19
- package/coverage/lcov.info +277 -205
- package/dist/index.js +136 -242
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +136 -242
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/api/certs.js +25 -10
- package/src/api/signatures.js +106 -97
- package/src/api/users.js +16 -29
- package/src/utils/helpers.js +17 -0
- package/tests/api/certs.test.js +58 -74
- package/tests/api/signatures.test.js +18 -73
- package/tests/api/users.test.js +10 -10
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>25/25</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>25/25</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -130,17 +130,32 @@
|
|
|
130
130
|
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
131
|
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
132
|
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
134
149
|
<span class="cline-any cline-neutral"> </span>
|
|
135
150
|
<span class="cline-any cline-neutral"> </span>
|
|
136
151
|
<span class="cline-any cline-neutral"> </span>
|
|
137
152
|
<span class="cline-any cline-neutral"> </span>
|
|
138
153
|
<span class="cline-any cline-neutral"> </span>
|
|
139
154
|
<span class="cline-any cline-yes">2x</span>
|
|
140
|
-
<span class="cline-any cline-yes">
|
|
141
|
-
<span class="cline-any cline-yes">
|
|
155
|
+
<span class="cline-any cline-yes">4x</span>
|
|
156
|
+
<span class="cline-any cline-yes">4x</span>
|
|
142
157
|
<span class="cline-any cline-neutral"> </span>
|
|
143
|
-
<span class="cline-any cline-yes">
|
|
158
|
+
<span class="cline-any cline-yes">4x</span>
|
|
144
159
|
<span class="cline-any cline-neutral"> </span>
|
|
145
160
|
<span class="cline-any cline-neutral"> </span>
|
|
146
161
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -157,21 +172,35 @@
|
|
|
157
172
|
<span class="cline-any cline-yes">1x</span>
|
|
158
173
|
<span class="cline-any cline-neutral"> </span>
|
|
159
174
|
<span class="cline-any cline-neutral"> </span>
|
|
175
|
+
<span class="cline-any cline-yes">3x</span>
|
|
176
|
+
<span class="cline-any cline-yes">2x</span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
178
|
<span class="cline-any cline-yes">1x</span>
|
|
179
|
+
<span class="cline-any cline-neutral"> </span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-yes">2x</span>
|
|
161
183
|
<span class="cline-any cline-yes">1x</span>
|
|
162
184
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-
|
|
185
|
+
<span class="cline-any cline-neutral"> </span>
|
|
186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
194
|
<span class="cline-any cline-neutral"> </span>
|
|
165
195
|
<span class="cline-any cline-neutral"> </span>
|
|
166
196
|
<span class="cline-any cline-neutral"> </span>
|
|
167
197
|
<span class="cline-any cline-yes">2x</span>
|
|
168
|
-
<span class="cline-any cline-yes">
|
|
169
|
-
<span class="cline-any cline-yes">
|
|
198
|
+
<span class="cline-any cline-yes">6x</span>
|
|
199
|
+
<span class="cline-any cline-yes">6x</span>
|
|
200
|
+
<span class="cline-any cline-yes">6x</span>
|
|
170
201
|
<span class="cline-any cline-yes">4x</span>
|
|
171
|
-
<span class="cline-any cline-yes">2x</span>
|
|
172
202
|
<span class="cline-any cline-neutral"> </span>
|
|
173
203
|
<span class="cline-any cline-yes">2x</span>
|
|
174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
175
204
|
<span class="cline-any cline-yes">1x</span>
|
|
176
205
|
<span class="cline-any cline-neutral"> </span>
|
|
177
206
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -179,7 +208,8 @@
|
|
|
179
208
|
<span class="cline-any cline-neutral"> </span>
|
|
180
209
|
<span class="cline-any cline-neutral"> </span>
|
|
181
210
|
<span class="cline-any cline-neutral"> </span>
|
|
182
|
-
<span class="cline-any cline-
|
|
211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
183
213
|
<span class="cline-any cline-neutral"> </span>
|
|
184
214
|
<span class="cline-any cline-neutral"> </span>
|
|
185
215
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -215,7 +245,7 @@ const generateCertOnBoarding = async (csr = <span class="branch-0 cbranch-no" ti
|
|
|
215
245
|
const { cert } = response;
|
|
216
246
|
if (!cert) {
|
|
217
247
|
throw new ApacuanaAPIError(
|
|
218
|
-
"
|
|
248
|
+
"The API response does not contain the certificate.",
|
|
219
249
|
response.status,
|
|
220
250
|
"INVALID_API_RESPONSE"
|
|
221
251
|
);
|
|
@@ -223,36 +253,51 @@ const generateCertOnBoarding = async (csr = <span class="branch-0 cbranch-no" ti
|
|
|
223
253
|
|
|
224
254
|
return { cert, success: true };
|
|
225
255
|
} catch (error) {
|
|
226
|
-
//
|
|
227
|
-
|
|
256
|
+
// The captured error is re-thrown, which will already be of type ApacuanaAPIError or a native Error.
|
|
257
|
+
if (error instanceof ApacuanaAPIError) {
|
|
228
258
|
throw error;
|
|
229
259
|
}
|
|
230
|
-
|
|
260
|
+
throw new Error(`Certificate generation failed: ${error.message}`);
|
|
231
261
|
}
|
|
232
262
|
};
|
|
233
263
|
|
|
234
|
-
|
|
264
|
+
const generateCertOnPremise = async () => {
|
|
265
|
+
throw new ApacuanaAPIError(
|
|
266
|
+
"Certificate generation is not supported for integration type: ONPREMISE",
|
|
267
|
+
501,
|
|
268
|
+
"NOT_IMPLEMENTED"
|
|
269
|
+
);
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Generates a digital certificate.
|
|
274
|
+
* @param {string} [csr] - Optional Certificate Signing Request (CSR).
|
|
275
|
+
* @returns {Promise<{cert: string, success: boolean}>} Object with the generated certificate and a success indicator.
|
|
276
|
+
* @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
|
+
* @throws {Error} If certificate generation fails for another reason.
|
|
278
|
+
*/
|
|
279
|
+
export const generateCert = async (csr = <span class="branch-0 cbranch-no" title="branch not covered" >undefined)</span> => {
|
|
235
280
|
const { integrationType } = getConfig();
|
|
236
281
|
helpers.validateCsr(csr);
|
|
237
282
|
if (integrationType === INTEGRATION_TYPE.ONBOARDING) {
|
|
238
283
|
return generateCertOnBoarding(csr);
|
|
239
284
|
}
|
|
240
285
|
if (integrationType === INTEGRATION_TYPE.ONPREMISE) {
|
|
241
|
-
|
|
242
|
-
console.log("-> Lógica para On-premise");
|
|
243
|
-
// Aquí iría la llamada a httpRequest para el endpoint de on-premise
|
|
244
|
-
// return httpRequest('/certs/generate-onpremise', data);
|
|
245
|
-
return Promise.resolve(); // Retornar una promesa resuelta para consistencia
|
|
286
|
+
return generateCertOnPremise();
|
|
246
287
|
}
|
|
247
288
|
|
|
248
|
-
// Lanzar un error si el tipo de integración no es soportado
|
|
249
289
|
throw new ApacuanaAPIError(
|
|
250
|
-
`
|
|
290
|
+
`Unsupported integration type: ${integrationType}`,
|
|
251
291
|
400,
|
|
252
292
|
"UNSUPPORTED_INTEGRATION_TYPE"
|
|
253
293
|
);
|
|
254
294
|
};
|
|
255
295
|
|
|
296
|
+
/**
|
|
297
|
+
* Gets the user's certificate status.
|
|
298
|
+
* @param {boolean} [isCertificateInDevice=false] - Indicates if the certificate is already on the device.
|
|
299
|
+
* @returns {{status: string, success: boolean}} Object with the certificate status and a success indicator.
|
|
300
|
+
*/
|
|
256
301
|
export const getCertStatus = (isCertificateInDevice = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> => {
|
|
257
302
|
const config = getConfig();
|
|
258
303
|
const status = helpers.getCertificateStatus(
|
|
@@ -271,7 +316,7 @@ export const getCertStatus = (isCertificateInDevice = <span class="branch-0 cbra
|
|
|
271
316
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
272
317
|
Code coverage generated by
|
|
273
318
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
274
|
-
at 2025-08-
|
|
319
|
+
at 2025-08-22T21:07:16.060Z
|
|
275
320
|
</div>
|
|
276
321
|
<script src="../../prettify.js"></script>
|
|
277
322
|
<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">65.32% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>81/124</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">51.51% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>34/
|
|
35
|
+
<span class='fraction'>34/66</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">61.11% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>11/18</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">65.32% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>81/124</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
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="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="100" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="100" class="pct high">100%</td>
|
|
87
|
+
<td data-value="25" class="abs high">25/25</td>
|
|
88
88
|
<td data-value="72.72" class="pct medium">72.72%</td>
|
|
89
89
|
<td data-value="11" class="abs medium">8/11</td>
|
|
90
90
|
<td data-value="100" class="pct high">100%</td>
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
91
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
92
|
+
<td data-value="100" class="pct high">100%</td>
|
|
93
|
+
<td data-value="25" class="abs high">25/25</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -109,18 +109,18 @@
|
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
112
|
-
<td class="file
|
|
113
|
-
<td data-value="
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
112
|
+
<td class="file medium" data-value="signatures.js"><a href="signatures.js.html">signatures.js</a></td>
|
|
113
|
+
<td data-value="56.75" class="pic medium">
|
|
114
|
+
<div class="chart"><div class="cover-fill" style="width: 56%"></div><div class="cover-empty" style="width: 44%"></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="56.75" class="pct medium">56.75%</td>
|
|
117
|
+
<td data-value="74" class="abs medium">42/74</td>
|
|
118
|
+
<td data-value="42.85" class="pct low">42.85%</td>
|
|
119
|
+
<td data-value="35" class="abs low">15/35</td>
|
|
120
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
121
|
+
<td data-value="12" class="abs medium">6/12</td>
|
|
122
|
+
<td data-value="56.75" class="pct medium">56.75%</td>
|
|
123
|
+
<td data-value="74" class="abs medium">42/74</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
@@ -129,13 +129,13 @@
|
|
|
129
129
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
130
130
|
</td>
|
|
131
131
|
<td data-value="100" class="pct high">100%</td>
|
|
132
|
-
<td data-value="
|
|
133
|
-
<td data-value="
|
|
134
|
-
<td data-value="
|
|
132
|
+
<td data-value="13" class="abs high">13/13</td>
|
|
133
|
+
<td data-value="91.66" class="pct high">91.66%</td>
|
|
134
|
+
<td data-value="12" class="abs high">11/12</td>
|
|
135
135
|
<td data-value="100" class="pct high">100%</td>
|
|
136
136
|
<td data-value="1" class="abs high">1/1</td>
|
|
137
137
|
<td data-value="100" class="pct high">100%</td>
|
|
138
|
-
<td data-value="
|
|
138
|
+
<td data-value="13" class="abs high">13/13</td>
|
|
139
139
|
</tr>
|
|
140
140
|
|
|
141
141
|
</tbody>
|
|
@@ -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-22T21:07:16.060Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../../prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -199,7 +199,7 @@ export default requestRevocation;
|
|
|
199
199
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
200
200
|
Code coverage generated by
|
|
201
201
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
202
|
-
at 2025-08-
|
|
202
|
+
at 2025-08-22T21:07:16.060Z
|
|
203
203
|
</div>
|
|
204
204
|
<script src="../../prettify.js"></script>
|
|
205
205
|
<script>
|