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.
Files changed (32) hide show
  1. package/README.md +64 -15
  2. package/coverage/clover.xml +145 -111
  3. package/coverage/coverage-final.json +6 -6
  4. package/coverage/lcov-report/index.html +30 -30
  5. package/coverage/lcov-report/src/api/certs.js.html +73 -28
  6. package/coverage/lcov-report/src/api/index.html +31 -31
  7. package/coverage/lcov-report/src/api/revocations.js.html +1 -1
  8. package/coverage/lcov-report/src/api/signatures.js.html +186 -159
  9. package/coverage/lcov-report/src/api/users.js.html +24 -63
  10. package/coverage/lcov-report/src/config/index.html +1 -1
  11. package/coverage/lcov-report/src/config/index.js.html +1 -1
  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 +1 -1
  16. package/coverage/lcov-report/src/utils/constant.js.html +4 -4
  17. package/coverage/lcov-report/src/utils/helpers.js.html +101 -50
  18. package/coverage/lcov-report/src/utils/httpClient.js.html +1 -1
  19. package/coverage/lcov-report/src/utils/index.html +19 -19
  20. package/coverage/lcov.info +277 -205
  21. package/dist/index.js +136 -242
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +136 -242
  24. package/dist/index.mjs.map +1 -1
  25. package/package.json +1 -1
  26. package/src/api/certs.js +25 -10
  27. package/src/api/signatures.js +106 -97
  28. package/src/api/users.js +16 -29
  29. package/src/utils/helpers.js +17 -0
  30. package/tests/api/certs.test.js +58 -74
  31. package/tests/api/signatures.test.js +18 -73
  32. package/tests/api/users.test.js +10 -10
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>17/17</span>
28
+ <span class='fraction'>13/13</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">92.3% </span>
33
+ <span class="strong">91.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/13</span>
35
+ <span class='fraction'>11/12</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>17/17</span>
49
+ <span class='fraction'>13/13</span>
50
50
  </div>
51
51
 
52
52
 
@@ -125,20 +125,7 @@
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>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
128
+ <a name='L63'></a><a href='#L63'>63</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
142
129
  <span class="cline-any cline-neutral">&nbsp;</span>
143
130
  <span class="cline-any cline-neutral">&nbsp;</span>
144
131
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -153,15 +140,6 @@
153
140
  <span class="cline-any cline-neutral">&nbsp;</span>
154
141
  <span class="cline-any cline-yes">1x</span>
155
142
  <span class="cline-any cline-yes">5x</span>
156
- <span class="cline-any cline-yes">5x</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-yes">5x</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-yes">5x</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
143
  <span class="cline-any cline-neutral">&nbsp;</span>
166
144
  <span class="cline-any cline-yes">5x</span>
167
145
  <span class="cline-any cline-yes">1x</span>
@@ -169,7 +147,6 @@
169
147
  <span class="cline-any cline-neutral">&nbsp;</span>
170
148
  <span class="cline-any cline-neutral">&nbsp;</span>
171
149
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-yes">4x</span>
173
150
  <span class="cline-any cline-neutral">&nbsp;</span>
174
151
  <span class="cline-any cline-neutral">&nbsp;</span>
175
152
  <span class="cline-any cline-yes">4x</span>
@@ -177,14 +154,14 @@
177
154
  <span class="cline-any cline-neutral">&nbsp;</span>
178
155
  <span class="cline-any cline-neutral">&nbsp;</span>
179
156
  <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-yes">4x</span>
158
+ <span class="cline-any cline-yes">4x</span>
180
159
  <span class="cline-any cline-neutral">&nbsp;</span>
181
160
  <span class="cline-any cline-neutral">&nbsp;</span>
182
161
  <span class="cline-any cline-neutral">&nbsp;</span>
183
162
  <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-yes">2x</span>
185
163
  <span class="cline-any cline-neutral">&nbsp;</span>
186
164
  <span class="cline-any cline-yes">2x</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
165
  <span class="cline-any cline-yes">1x</span>
189
166
  <span class="cline-any cline-neutral">&nbsp;</span>
190
167
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -198,9 +175,6 @@
198
175
  <span class="cline-any cline-neutral">&nbsp;</span>
199
176
  <span class="cline-any cline-neutral">&nbsp;</span>
200
177
  <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-yes">3x</span>
204
178
  <span class="cline-any cline-yes">3x</span>
205
179
  <span class="cline-any cline-yes">2x</span>
206
180
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -222,46 +196,36 @@ import { getConfig } from "../config/index";
222
196
  * Este método es útil para endpoints que requieren datos en el cuerpo de la petición
223
197
  * para buscar un usuario, como un ID de sesión o un token de acceso.
224
198
  *
225
- * @returns {Promise&lt;object&gt;} Objeto con los detalles del usuario.
199
+ * @returns {Promise&lt;{token: string, userData: object, success: boolean}&gt;} Objeto con el token de sesión, los datos del usuario y un indicador de éxito.
226
200
  * @throws {Error} Si los parámetros de entrada son inválidos.
227
201
  * @throws {ApacuanaAPIError} Si ocurre un error en la API de Apacuana.
228
202
  */
229
203
  const getCustomer = async () =&gt; {
230
204
  const { verificationId, customerId } = getConfig();
205
+ &nbsp;
206
+ if (!verificationId || !customerId) {
207
+ throw new ApacuanaAPIError(
208
+ "Both 'verificationId' and 'customerId' must be configured.",
209
+ 400,
210
+ "CONFIGURATION_ERROR"
211
+ );
212
+ }
213
+ &nbsp;
231
214
  const body = {
232
215
  verificationid: verificationId,
233
216
  customerid: customerId,
234
217
  };
235
- // eslint-disable-next-line no-console
236
- console.log("-&gt; Función 'getCustomer' ejecutada.");
237
- // eslint-disable-next-line no-console
238
- console.log("Parámetros recibidos para buscar usuario:", body);
239
- &nbsp;
240
- // 1. Validación de Parámetros de Entrada (Lado del SDK)
241
- if (!body || !body.verificationid || !body.customerid) {
242
- throw new Error(
243
- "El 'body' con 'userId' es un parámetro requerido para getCustomer."
244
- );
245
- }
246
218
  &nbsp;
247
219
  try {
248
- // 2. Realizar la Llamada al Backend a través del HttpClient
249
- // Usamos POST ya que la búsqueda podría requerir datos sensibles o complejos en el cuerpo.
250
220
  const response = await httpRequest(
251
- "services/api/register/init", // Endpoint de ejemplo
252
- body, // Los datos a enviar en el cuerpo de la petición
221
+ "services/api/register/init",
222
+ body,
253
223
  "POST"
254
224
  );
255
- &nbsp;
256
- // 3. Procesar la Respuesta del Backend
257
- // Asumiendo que la respuesta exitosa del backend incluye un objeto 'user'
258
- // eslint-disable-next-line no-console
259
- console.log("Respuesta del servidor para el token:", response);
260
225
  &nbsp;
261
226
  if (!response.sessionid || !response.entry) {
262
- // Si el backend no devuelve el objeto 'user' esperado
263
227
  throw new ApacuanaAPIError(
264
- "La respuesta de la API no contiene el usuario.",
228
+ "The API response does not contain the user.",
265
229
  200,
266
230
  "INVALID_API_RESPONSE"
267
231
  );
@@ -271,17 +235,14 @@ const getCustomer = async () =&gt; {
271
235
  token: response.sessionid,
272
236
  userData: response.entry,
273
237
  success: true,
274
- }; // Retorna el objeto de usuario directamente
238
+ };
275
239
  } catch (error) {
276
- // 4. Manejo de Errores
277
- // eslint-disable-next-line no-console
278
- console.error("Error en getCustomer:", error);
279
240
  if (error instanceof ApacuanaAPIError) {
280
241
  throw error;
281
242
  }
282
243
  throw new ApacuanaAPIError(
283
- `Fallo inesperado al obtener el token: ${
284
- error.message || <span class="branch-1 cbranch-no" title="branch not covered" >"Error desconocido"</span>
244
+ `Unexpected failure getting token: ${
245
+ error.message || <span class="branch-1 cbranch-no" title="branch not covered" >"Unknown error"</span>
285
246
  }`
286
247
  );
287
248
  }
@@ -295,7 +256,7 @@ export default getCustomer;
295
256
  <div class='footer quiet pad2 space-top1 center small'>
296
257
  Code coverage generated by
297
258
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
298
- at 2025-08-22T15:34:11.195Z
259
+ at 2025-08-22T21:07:16.060Z
299
260
  </div>
300
261
  <script src="../../prettify.js"></script>
301
262
  <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-22T15:34:11.195Z
104
+ at 2025-08-22T21:07:16.060Z
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-22T15:34:11.195Z
196
+ at 2025-08-22T21:07:16.060Z
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-22T15:34:11.195Z
104
+ at 2025-08-22T21:07:16.060Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -91,15 +91,15 @@
91
91
  <span class="cline-any cline-neutral">&nbsp;</span>
92
92
  <span class="cline-any cline-neutral">&nbsp;</span>
93
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
- <span class="cline-any cline-yes">22x</span>
95
- <span class="cline-any cline-yes">22x</span>
96
- <span class="cline-any cline-yes">22x</span>
97
- <span class="cline-any cline-yes">22x</span>
98
- <span class="cline-any cline-yes">22x</span>
94
+ <span class="cline-any cline-yes">21x</span>
95
+ <span class="cline-any cline-yes">21x</span>
96
+ <span class="cline-any cline-yes">21x</span>
97
+ <span class="cline-any cline-yes">21x</span>
98
+ <span class="cline-any cline-yes">21x</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
100
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
- <span class="cline-any cline-yes">22x</span>
102
- <span class="cline-any cline-yes">22x</span>
101
+ <span class="cline-any cline-yes">21x</span>
102
+ <span class="cline-any cline-yes">21x</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -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-22T15:34:11.195Z
136
+ at 2025-08-22T21:07:16.060Z
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-22T15:34:11.195Z
104
+ at 2025-08-22T21:07:16.060Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -280,7 +280,7 @@ export default apacuana;
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
283
- at 2025-08-22T15:34:11.195Z
283
+ at 2025-08-22T21:07:16.060Z
284
284
  </div>
285
285
  <script src="../prettify.js"></script>
286
286
  <script>
@@ -83,7 +83,7 @@
83
83
  <a name='L18'></a><a href='#L18'>18</a>
84
84
  <a name='L19'></a><a href='#L19'>19</a>
85
85
  <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
86
+ <a name='L21'></a><a href='#L21'>21</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
87
87
  <span class="cline-any cline-neutral">&nbsp;</span>
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -94,12 +94,12 @@
94
94
  <span class="cline-any cline-neutral">&nbsp;</span>
95
95
  <span class="cline-any cline-neutral">&nbsp;</span>
96
96
  <span class="cline-any cline-neutral">&nbsp;</span>
97
- <span class="cline-any cline-yes">5x</span>
97
+ <span class="cline-any cline-yes">6x</span>
98
98
  <span class="cline-any cline-neutral">&nbsp;</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
100
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-yes">5x</span>
102
+ <span class="cline-any cline-yes">6x</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -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-22T15:34:11.195Z
133
+ at 2025-08-22T21:07:16.060Z
134
134
  </div>
135
135
  <script src="../../prettify.js"></script>
136
136
  <script>