apacuana-sdk-core 0.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 (53) hide show
  1. package/.babelrc +3 -0
  2. package/.eslintrc.cjs +22 -0
  3. package/CHANGELOG.md +1 -0
  4. package/README.md +291 -0
  5. package/coverage/clover.xml +171 -0
  6. package/coverage/coverage-final.json +8 -0
  7. package/coverage/lcov-report/base.css +224 -0
  8. package/coverage/lcov-report/block-navigation.js +87 -0
  9. package/coverage/lcov-report/certs.js.html +175 -0
  10. package/coverage/lcov-report/favicon.png +0 -0
  11. package/coverage/lcov-report/index.html +161 -0
  12. package/coverage/lcov-report/prettify.css +1 -0
  13. package/coverage/lcov-report/prettify.js +2 -0
  14. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  15. package/coverage/lcov-report/sorter.js +196 -0
  16. package/coverage/lcov-report/src/api/certs.js.html +295 -0
  17. package/coverage/lcov-report/src/api/index.html +146 -0
  18. package/coverage/lcov-report/src/api/revocations.js.html +214 -0
  19. package/coverage/lcov-report/src/api/signatures.js.html +334 -0
  20. package/coverage/lcov-report/src/api/users.js.html +307 -0
  21. package/coverage/lcov-report/src/config/index.html +116 -0
  22. package/coverage/lcov-report/src/config/index.js.html +175 -0
  23. package/coverage/lcov-report/src/errors/index.html +116 -0
  24. package/coverage/lcov-report/src/errors/index.js.html +145 -0
  25. package/coverage/lcov-report/src/index.html +116 -0
  26. package/coverage/lcov-report/src/index.js.html +286 -0
  27. package/coverage/lcov-report/src/utils/constant.js.html +145 -0
  28. package/coverage/lcov-report/src/utils/helpers.js.html +583 -0
  29. package/coverage/lcov-report/src/utils/index.html +131 -0
  30. package/coverage/lcov.info +303 -0
  31. package/dist/index.js +32927 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/index.mjs +32925 -0
  34. package/dist/index.mjs.map +1 -0
  35. package/jest.config.cjs +7 -0
  36. package/package.json +47 -0
  37. package/rollup.config.js +32 -0
  38. package/src/api/certs.js +70 -0
  39. package/src/api/revocations.js +43 -0
  40. package/src/api/signatures.js +77 -0
  41. package/src/api/users.js +74 -0
  42. package/src/auth/index.js +24 -0
  43. package/src/config/index.js +41 -0
  44. package/src/errors/index.js +20 -0
  45. package/src/index.js +67 -0
  46. package/src/utils/constant.js +20 -0
  47. package/src/utils/helpers.js +166 -0
  48. package/src/utils/httpClient.js +187 -0
  49. package/tests/api/certs.test.js +6 -0
  50. package/tests/api/revocations.test.js +6 -0
  51. package/tests/api/signatures.test.js +6 -0
  52. package/tests/api/users.test.js +115 -0
  53. package/tests/index.test.js +122 -0
package/.babelrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "presets": ["@babel/preset-env"]
3
+ }
package/.eslintrc.cjs ADDED
@@ -0,0 +1,22 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true,
4
+ es2021: true,
5
+ node: true,
6
+ jest: true, // Importante para que ESLint no marque errores en los tests
7
+ },
8
+ extends: [
9
+ "airbnb-base",
10
+ "prettier", // Añade esto al final
11
+ ],
12
+ parserOptions: {
13
+ ecmaVersion: 12,
14
+ sourceType: "module",
15
+ },
16
+ rules: {
17
+ // Puedes añadir reglas personalizadas aquí
18
+ "no-console": "off", // Para permitir console.log si lo necesitas para depurar
19
+ quotes: "off", // Enforce single quotes for strings
20
+ "linebreak-style": "off",
21
+ },
22
+ };
package/CHANGELOG.md ADDED
@@ -0,0 +1 @@
1
+
package/README.md ADDED
@@ -0,0 +1,291 @@
1
+ # Apacuana SDK Core
2
+
3
+ ## Descripción
4
+
5
+ Apacuana SDK Core es una biblioteca JavaScript que proporciona una interfaz para interactuar con los servicios de Apacuana, permitiendo la generación de certificados digitales, verificación de estados, revocaciones y firma de documentos.
6
+
7
+ ## Instalación
8
+
9
+ ```bash
10
+ npm install apacuana-sdk-core
11
+ ```
12
+
13
+ ## Requisitos
14
+
15
+ - Node.js 12 o superior
16
+ - Acceso a las credenciales de API de Apacuana (apiKey y secretKey)
17
+
18
+ ## Configuración Inicial
19
+
20
+ Antes de utilizar cualquier funcionalidad del SDK, es necesario inicializarlo con la configuración adecuada:
21
+
22
+ ```javascript
23
+ const apacuana = require("apacuana-sdk-core");
24
+
25
+ // Configuración inicial
26
+ await apacuana.init({
27
+ apiUrl: "https://api.apacuana.com",
28
+ secretKey: "YOUR_SECRET_KEY",
29
+ apiKey: "YOUR_API_KEY",
30
+ verificationId: "VERIFICATION_ID",
31
+ customerId: "CUSTOMER_ID",
32
+ integrationType: "ONBOARDING",
33
+ });
34
+ ```
35
+
36
+ ## Métodos Públicos
37
+
38
+ ### init(config)
39
+
40
+ Inicializa el SDK con la configuración proporcionada.
41
+
42
+ **Parámetros:**
43
+
44
+ - `config` (Object): Objeto de configuración con las siguientes propiedades:
45
+ - `apiUrl` (String): URL base de la API de Apacuana
46
+ - `secretKey` (String): Clave secreta para autenticación
47
+ - `apiKey` (String): Clave de API para autenticación
48
+ - `verificationId` (String): ID de verificación
49
+ - `customerId` (String): ID del cliente
50
+ - `integrationType` (String): Tipo de integración (ver sección de Tipos de Integración)
51
+
52
+ **Retorna:**
53
+
54
+ - Promise que se resuelve cuando la inicialización es exitosa
55
+
56
+ **Ejemplo:**
57
+
58
+ ```javascript
59
+ try {
60
+ await apacuana.init({
61
+ apiUrl: "https://api.apacuana.com",
62
+ secretKey: "YOUR_SECRET_KEY",
63
+ apiKey: "YOUR_API_KEY",
64
+ verificationId: "VERIFICATION_ID",
65
+ customerId: "CUSTOMER_ID",
66
+ integrationType: "ONBOARDING",
67
+ });
68
+ console.log("SDK inicializado correctamente");
69
+ } catch (error) {
70
+ console.error("Error al inicializar el SDK:", error);
71
+ }
72
+ ```
73
+
74
+ ### getConfig()
75
+
76
+ Obtiene la configuración actual del SDK.
77
+
78
+ **Parámetros:** Ninguno
79
+
80
+ **Retorna:**
81
+
82
+ - Object: Configuración actual del SDK
83
+
84
+ **Ejemplo:**
85
+
86
+ ```javascript
87
+ const config = apacuana.getConfig();
88
+ console.log("Configuración actual:", config);
89
+ ```
90
+
91
+ ### getCustomer()
92
+
93
+ Obtiene la información del cliente utilizando los datos de configuración.
94
+
95
+ **Parámetros:** Ninguno (utiliza verificationId y customerId de la configuración)
96
+
97
+ **Retorna:**
98
+
99
+ - Promise que se resuelve con un objeto que contiene:
100
+ - `token` (String): ID de sesión para autenticación
101
+ - `userData` (Object): Datos del usuario
102
+
103
+ **Ejemplo:**
104
+
105
+ ```javascript
106
+ try {
107
+ const { token, userData } = await apacuana.getCustomer();
108
+ console.log("Token de sesión:", token);
109
+ console.log("Datos del usuario:", userData);
110
+ } catch (error) {
111
+ console.error("Error al obtener información del cliente:", error);
112
+ }
113
+ ```
114
+
115
+ ### generateCert()
116
+
117
+ Genera un certificado digital basado en el tipo de integración configurado.
118
+
119
+ **Parámetros:** Ninguno (utiliza la configuración previa y datos del usuario)
120
+
121
+ **Retorna:**
122
+
123
+ - Promise que se resuelve con la respuesta de la API de generación de certificados
124
+
125
+ **Ejemplo:**
126
+
127
+ ```javascript
128
+ try {
129
+ const certificateResponse = await apacuana.generateCert();
130
+ console.log("Certificado generado:", certificateResponse);
131
+ } catch (error) {
132
+ console.error("Error al generar certificado:", error);
133
+ }
134
+ ```
135
+
136
+ ### getCertStatus()
137
+
138
+ Obtiene el estado actual del certificado del usuario.
139
+
140
+ **Parámetros:** Ninguno (utiliza la configuración previa y datos del usuario)
141
+
142
+ **Retorna:**
143
+
144
+ - Promise que se resuelve con el estado del certificado (ver sección de Estados de Certificado)
145
+
146
+ **Ejemplo:**
147
+
148
+ ```javascript
149
+ try {
150
+ const status = await apacuana.getCertStatus();
151
+ console.log("Estado del certificado:", status);
152
+ } catch (error) {
153
+ console.error("Error al obtener estado del certificado:", error);
154
+ }
155
+ ```
156
+
157
+ ### requestRevocation(reasonCode)
158
+
159
+ Solicita la revocación de un certificado.
160
+
161
+ **Parámetros:**
162
+
163
+ - `reasonCode` (String): Código que indica la razón de la revocación
164
+
165
+ **Retorna:**
166
+
167
+ - Promise que se resuelve con la respuesta de la API de revocación
168
+
169
+ **Ejemplo:**
170
+
171
+ ```javascript
172
+ try {
173
+ const revocationResponse = await apacuana.requestRevocation("COMPROMISED");
174
+ console.log("Revocación solicitada:", revocationResponse);
175
+ } catch (error) {
176
+ console.error("Error al solicitar revocación:", error);
177
+ }
178
+ ```
179
+
180
+ ### signDocument(documentData, signatureData)
181
+
182
+ Firma un documento utilizando el certificado del usuario.
183
+
184
+ **Parámetros:**
185
+
186
+ - `documentData` (Object): Datos del documento a firmar
187
+ - `signatureData` (Object): Datos de la firma
188
+
189
+ **Retorna:**
190
+
191
+ - Promise que se resuelve con la respuesta de la API de firma
192
+
193
+ **Ejemplo:**
194
+
195
+ ```javascript
196
+ try {
197
+ const documentData = {
198
+ id: "doc123",
199
+ content: "Base64EncodedContent...",
200
+ };
201
+
202
+ const signatureData = {
203
+ position: { x: 100, y: 200 },
204
+ page: 1,
205
+ };
206
+
207
+ const signResponse = await apacuana.signDocument(documentData, signatureData);
208
+ console.log("Documento firmado:", signResponse);
209
+ } catch (error) {
210
+ console.error("Error al firmar documento:", error);
211
+ }
212
+ ```
213
+
214
+ ### addSigner(signerData)
215
+
216
+ Añade un firmante adicional a un documento.
217
+
218
+ **Parámetros:**
219
+
220
+ - `signerData` (Object): Datos del firmante a añadir
221
+
222
+ **Retorna:**
223
+
224
+ - Promise que se resuelve con la respuesta de la API
225
+
226
+ **Ejemplo:**
227
+
228
+ ```javascript
229
+ try {
230
+ const signerData = {
231
+ documentId: "doc123",
232
+ email: "signer@example.com",
233
+ name: "John Doe",
234
+ role: "Approver",
235
+ };
236
+
237
+ const response = await apacuana.addSigner(signerData);
238
+ console.log("Firmante añadido:", response);
239
+ } catch (error) {
240
+ console.error("Error al añadir firmante:", error);
241
+ }
242
+ ```
243
+
244
+ ## Estados de Certificado
245
+
246
+ El SDK utiliza los siguientes estados para los certificados:
247
+
248
+ - `PENDING`: El certificado está pendiente de generación o procesamiento
249
+ - `ACTIVE`: El certificado está activo y puede ser utilizado
250
+ - `EXPIRED`: El certificado ha caducado
251
+ - `REVOKED`: El certificado ha sido revocado
252
+ - `SUSPENDED`: El certificado está temporalmente suspendido
253
+
254
+ ## Tipos de Integración
255
+
256
+ El SDK soporta los siguientes tipos de integración:
257
+
258
+ - `ONBOARDING`: Proceso de registro inicial y generación de certificado
259
+ - `AUTHENTICATION`: Proceso de autenticación con certificado existente
260
+ - `SIGNATURE`: Proceso de firma de documentos
261
+
262
+ ## Manejo de Errores
263
+
264
+ El SDK utiliza la clase `ApacuanaAPIError` para manejar errores específicos de la API. Esta clase extiende `Error` y proporciona información adicional sobre el error:
265
+
266
+ ```javascript
267
+ try {
268
+ await apacuana.generateCert();
269
+ } catch (error) {
270
+ if (error.name === "ApacuanaAPIError") {
271
+ console.error("Error de API:", error.message);
272
+ console.error("Código de error:", error.code);
273
+ console.error("Detalles:", error.details);
274
+ } else {
275
+ console.error("Error general:", error);
276
+ }
277
+ }
278
+ ```
279
+
280
+ ## Seguridad
281
+
282
+ El SDK implementa las siguientes medidas de seguridad:
283
+
284
+ - Generación de pares de claves criptográficas (RSA)
285
+ - Creación de CSR (Certificate Signing Request)
286
+ - Comunicación segura con la API mediante HTTPS
287
+ - Autenticación mediante apiKey y secretKey
288
+
289
+ ## Licencia
290
+
291
+ Este SDK está licenciado bajo términos propietarios. Consulte el acuerdo de licencia para más detalles.
@@ -0,0 +1,171 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <coverage generated="1755288310822" clover="3.2.0">
3
+ <project timestamp="1755288310822" name="All files">
4
+ <metrics statements="132" coveredstatements="49" conditionals="80" coveredconditionals="16" methods="14" coveredmethods="3" elements="226" coveredelements="68" complexity="0" loc="132" ncloc="132" packages="4" files="7" classes="7"/>
5
+ <package name="src">
6
+ <metrics statements="15" coveredstatements="14" conditionals="2" coveredconditionals="1" methods="1" coveredmethods="1"/>
7
+ <file name="index.js" path="/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/index.js">
8
+ <metrics statements="15" coveredstatements="14" conditionals="2" coveredconditionals="1" methods="1" coveredmethods="1"/>
9
+ <line num="8" count="1" type="stmt"/>
10
+ <line num="23" count="4" type="stmt"/>
11
+ <line num="27" count="4" type="stmt"/>
12
+ <line num="29" count="4" type="stmt"/>
13
+ <line num="32" count="3" type="stmt"/>
14
+ <line num="35" count="3" type="stmt"/>
15
+ <line num="36" count="3" type="cond" truecount="1" falsecount="1"/>
16
+ <line num="37" count="0" type="stmt"/>
17
+ <line num="44" count="3" type="stmt"/>
18
+ <line num="48" count="2" type="stmt"/>
19
+ <line num="49" count="2" type="stmt"/>
20
+ <line num="51" count="2" type="stmt"/>
21
+ <line num="55" count="2" type="stmt"/>
22
+ <line num="58" count="2" type="stmt"/>
23
+ <line num="59" count="2" type="stmt"/>
24
+ </file>
25
+ </package>
26
+ <package name="src.api">
27
+ <metrics statements="55" coveredstatements="21" conditionals="29" coveredconditionals="12" methods="5" coveredmethods="1"/>
28
+ <file name="certs.js" path="/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/certs.js">
29
+ <metrics statements="26" coveredstatements="3" conditionals="8" coveredconditionals="0" methods="3" coveredmethods="0"/>
30
+ <line num="8" count="1" type="stmt"/>
31
+ <line num="9" count="0" type="stmt"/>
32
+ <line num="10" count="0" type="stmt"/>
33
+ <line num="11" count="0" type="stmt"/>
34
+ <line num="12" count="0" type="stmt"/>
35
+ <line num="13" count="0" type="stmt"/>
36
+ <line num="15" count="0" type="stmt"/>
37
+ <line num="22" count="0" type="stmt"/>
38
+ <line num="28" count="0" type="stmt"/>
39
+ <line num="29" count="0" type="cond" truecount="0" falsecount="2"/>
40
+ <line num="30" count="0" type="stmt"/>
41
+ <line num="37" count="0" type="stmt"/>
42
+ <line num="41" count="0" type="stmt"/>
43
+ <line num="44" count="0" type="cond" truecount="0" falsecount="2"/>
44
+ <line num="45" count="0" type="stmt"/>
45
+ <line num="47" count="0" type="stmt"/>
46
+ <line num="51" count="1" type="stmt"/>
47
+ <line num="52" count="0" type="stmt"/>
48
+ <line num="54" count="0" type="cond" truecount="0" falsecount="2"/>
49
+ <line num="55" count="0" type="stmt"/>
50
+ <line num="56" count="0" type="cond" truecount="0" falsecount="2"/>
51
+ <line num="58" count="0" type="stmt"/>
52
+ <line num="64" count="1" type="stmt"/>
53
+ <line num="65" count="0" type="stmt"/>
54
+ <line num="66" count="0" type="stmt"/>
55
+ <line num="67" count="0" type="stmt"/>
56
+ </file>
57
+ <file name="revocations.js" path="/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/revocations.js">
58
+ <metrics statements="12" coveredstatements="1" conditionals="8" coveredconditionals="0" methods="1" coveredmethods="0"/>
59
+ <line num="10" count="1" type="stmt"/>
60
+ <line num="11" count="0" type="stmt"/>
61
+ <line num="12" count="0" type="stmt"/>
62
+ <line num="16" count="0" type="cond" truecount="0" falsecount="2"/>
63
+ <line num="17" count="0" type="stmt"/>
64
+ <line num="22" count="0" type="stmt"/>
65
+ <line num="23" count="0" type="stmt"/>
66
+ <line num="28" count="0" type="stmt"/>
67
+ <line num="29" count="0" type="cond" truecount="0" falsecount="2"/>
68
+ <line num="30" count="0" type="stmt"/>
69
+ <line num="34" count="0" type="stmt"/>
70
+ <line num="39" count="0" type="stmt"/>
71
+ </file>
72
+ <file name="users.js" path="/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/users.js">
73
+ <metrics statements="17" coveredstatements="17" conditionals="13" coveredconditionals="12" methods="1" coveredmethods="1"/>
74
+ <line num="14" count="1" type="stmt"/>
75
+ <line num="15" count="5" type="stmt"/>
76
+ <line num="16" count="5" type="stmt"/>
77
+ <line num="21" count="5" type="stmt"/>
78
+ <line num="23" count="5" type="stmt"/>
79
+ <line num="26" count="5" type="cond" truecount="5" falsecount="0"/>
80
+ <line num="27" count="1" type="stmt"/>
81
+ <line num="32" count="4" type="stmt"/>
82
+ <line num="35" count="4" type="stmt"/>
83
+ <line num="44" count="2" type="stmt"/>
84
+ <line num="46" count="2" type="cond" truecount="4" falsecount="0"/>
85
+ <line num="48" count="1" type="stmt"/>
86
+ <line num="55" count="1" type="stmt"/>
87
+ <line num="62" count="3" type="stmt"/>
88
+ <line num="63" count="3" type="cond" truecount="2" falsecount="0"/>
89
+ <line num="64" count="2" type="stmt"/>
90
+ <line num="66" count="1" type="stmt"/>
91
+ </file>
92
+ </package>
93
+ <package name="src.errors">
94
+ <metrics statements="6" coveredstatements="6" conditionals="4" coveredconditionals="3" methods="1" coveredmethods="1"/>
95
+ <file name="index.js" path="/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/errors/index.js">
96
+ <metrics statements="6" coveredstatements="6" conditionals="4" coveredconditionals="3" methods="1" coveredmethods="1"/>
97
+ <line num="8" count="3" type="stmt"/>
98
+ <line num="9" count="3" type="stmt"/>
99
+ <line num="10" count="3" type="stmt"/>
100
+ <line num="11" count="3" type="stmt"/>
101
+ <line num="14" count="3" type="cond" truecount="1" falsecount="1"/>
102
+ <line num="15" count="3" type="stmt"/>
103
+ </file>
104
+ </package>
105
+ <package name="src.utils">
106
+ <metrics statements="56" coveredstatements="8" conditionals="45" coveredconditionals="0" methods="7" coveredmethods="0"/>
107
+ <file name="constant.js" path="/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/utils/constant.js">
108
+ <metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
109
+ <line num="1" count="1" type="stmt"/>
110
+ <line num="12" count="1" type="stmt"/>
111
+ <line num="17" count="1" type="stmt"/>
112
+ </file>
113
+ <file name="helpers.js" path="/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/utils/helpers.js">
114
+ <metrics statements="53" coveredstatements="5" conditionals="45" coveredconditionals="0" methods="7" coveredmethods="0"/>
115
+ <line num="7" count="1" type="stmt"/>
116
+ <line num="8" count="0" type="cond" truecount="0" falsecount="2"/>
117
+ <line num="9" count="0" type="stmt"/>
118
+ <line num="11" count="0" type="cond" truecount="0" falsecount="2"/>
119
+ <line num="12" count="0" type="stmt"/>
120
+ <line num="17" count="0" type="cond" truecount="0" falsecount="2"/>
121
+ <line num="18" count="0" type="stmt"/>
122
+ <line num="19" count="0" type="cond" truecount="0" falsecount="2"/>
123
+ <line num="26" count="0" type="stmt"/>
124
+ <line num="28" count="0" type="cond" truecount="0" falsecount="4"/>
125
+ <line num="29" count="0" type="stmt"/>
126
+ <line num="30" count="0" type="cond" truecount="0" falsecount="2"/>
127
+ <line num="34" count="0" type="stmt"/>
128
+ <line num="36" count="0" type="cond" truecount="0" falsecount="2"/>
129
+ <line num="37" count="0" type="cond" truecount="0" falsecount="2"/>
130
+ <line num="39" count="0" type="cond" truecount="0" falsecount="2"/>
131
+ <line num="41" count="0" type="stmt"/>
132
+ <line num="44" count="1" type="stmt"/>
133
+ <line num="48" count="0" type="stmt"/>
134
+ <line num="49" count="0" type="stmt"/>
135
+ <line num="50" count="0" type="cond" truecount="0" falsecount="2"/>
136
+ <line num="51" count="0" type="stmt"/>
137
+ <line num="54" count="0" type="stmt"/>
138
+ <line num="65" count="0" type="stmt"/>
139
+ <line num="67" count="0" type="stmt"/>
140
+ <line num="68" count="0" type="stmt"/>
141
+ <line num="76" count="1" type="cond" truecount="0" falsecount="1"/>
142
+ <line num="77" count="0" type="stmt"/>
143
+ <line num="78" count="0" type="stmt"/>
144
+ <line num="81" count="0" type="cond" truecount="0" falsecount="5"/>
145
+ <line num="82" count="0" type="stmt"/>
146
+ <line num="86" count="0" type="cond" truecount="0" falsecount="4"/>
147
+ <line num="87" count="0" type="stmt"/>
148
+ <line num="92" count="0" type="stmt"/>
149
+ <line num="93" count="0" type="stmt"/>
150
+ <line num="95" count="0" type="stmt"/>
151
+ <line num="117" count="0" type="stmt"/>
152
+ <line num="120" count="0" type="stmt"/>
153
+ <line num="121" count="0" type="stmt"/>
154
+ <line num="125" count="0" type="stmt"/>
155
+ <line num="126" count="0" type="stmt"/>
156
+ <line num="129" count="0" type="stmt"/>
157
+ <line num="132" count="0" type="stmt"/>
158
+ <line num="138" count="0" type="stmt"/>
159
+ <line num="139" count="0" type="stmt"/>
160
+ <line num="148" count="1" type="stmt"/>
161
+ <line num="149" count="0" type="stmt"/>
162
+ <line num="150" count="0" type="stmt"/>
163
+ <line num="154" count="0" type="stmt"/>
164
+ <line num="155" count="0" type="stmt"/>
165
+ <line num="156" count="0" type="stmt"/>
166
+ <line num="157" count="0" type="stmt"/>
167
+ <line num="160" count="1" type="stmt"/>
168
+ </file>
169
+ </package>
170
+ </project>
171
+ </coverage>
@@ -0,0 +1,8 @@
1
+ {"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/index.js": {"path":"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/index.js","statementMap":{"0":{"start":{"line":8,"column":17},"end":{"line":65,"column":1}},"1":{"start":{"line":23,"column":4},"end":{"line":25,"column":6}},"2":{"start":{"line":27,"column":4},"end":{"line":60,"column":5}},"3":{"start":{"line":29,"column":6},"end":{"line":29,"column":24}},"4":{"start":{"line":32,"column":6},"end":{"line":32,"column":23}},"5":{"start":{"line":35,"column":28},"end":{"line":35,"column":39}},"6":{"start":{"line":36,"column":6},"end":{"line":41,"column":7}},"7":{"start":{"line":37,"column":8},"end":{"line":40,"column":10}},"8":{"start":{"line":44,"column":34},"end":{"line":44,"column":53}},"9":{"start":{"line":48,"column":6},"end":{"line":48,"column":55}},"10":{"start":{"line":49,"column":6},"end":{"line":49,"column":26}},"11":{"start":{"line":51,"column":6},"end":{"line":54,"column":8}},"12":{"start":{"line":55,"column":6},"end":{"line":55,"column":18}},"13":{"start":{"line":58,"column":6},"end":{"line":58,"column":71}},"14":{"start":{"line":59,"column":6},"end":{"line":59,"column":18}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":21,"column":8},"end":{"line":21,"column":9}},"loc":{"start":{"line":21,"column":26},"end":{"line":61,"column":3}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":36,"column":6},"end":{"line":41,"column":7}},"type":"if","locations":[{"start":{"line":36,"column":6},"end":{"line":41,"column":7}},{"start":{},"end":{}}],"line":36}},"s":{"0":1,"1":4,"2":4,"3":4,"4":3,"5":3,"6":3,"7":0,"8":3,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2},"f":{"0":4},"b":{"0":[0,3]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3918ffa80d4ab122db806dbe5d8f4475d501173d"}
2
+ ,"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/certs.js": {"path":"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/certs.js","statementMap":{"0":{"start":{"line":8,"column":31},"end":{"line":49,"column":1}},"1":{"start":{"line":9,"column":2},"end":{"line":48,"column":3}},"2":{"start":{"line":10,"column":19},"end":{"line":10,"column":30}},"3":{"start":{"line":11,"column":25},"end":{"line":11,"column":31}},"4":{"start":{"line":12,"column":20},"end":{"line":12,"column":51}},"5":{"start":{"line":13,"column":26},"end":{"line":13,"column":70}},"6":{"start":{"line":15,"column":17},"end":{"line":20,"column":5}},"7":{"start":{"line":22,"column":21},"end":{"line":26,"column":5}},"8":{"start":{"line":28,"column":21},"end":{"line":28,"column":29}},"9":{"start":{"line":29,"column":4},"end":{"line":35,"column":5}},"10":{"start":{"line":30,"column":6},"end":{"line":34,"column":8}},"11":{"start":{"line":37,"column":31},"end":{"line":39,"column":5}},"12":{"start":{"line":41,"column":4},"end":{"line":41,"column":52}},"13":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"14":{"start":{"line":45,"column":6},"end":{"line":45,"column":18}},"15":{"start":{"line":47,"column":4},"end":{"line":47,"column":80}},"16":{"start":{"line":51,"column":28},"end":{"line":62,"column":1}},"17":{"start":{"line":52,"column":30},"end":{"line":52,"column":41}},"18":{"start":{"line":54,"column":2},"end":{"line":61,"column":3}},"19":{"start":{"line":55,"column":4},"end":{"line":55,"column":35}},"20":{"start":{"line":56,"column":9},"end":{"line":61,"column":3}},"21":{"start":{"line":58,"column":4},"end":{"line":58,"column":45}},"22":{"start":{"line":64,"column":29},"end":{"line":70,"column":1}},"23":{"start":{"line":65,"column":17},"end":{"line":65,"column":28}},"24":{"start":{"line":66,"column":17},"end":{"line":66,"column":69}},"25":{"start":{"line":67,"column":2},"end":{"line":69,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":31},"end":{"line":8,"column":32}},"loc":{"start":{"line":8,"column":43},"end":{"line":49,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":51,"column":28},"end":{"line":51,"column":29}},"loc":{"start":{"line":51,"column":40},"end":{"line":62,"column":1}},"line":51},"2":{"name":"(anonymous_2)","decl":{"start":{"line":64,"column":29},"end":{"line":64,"column":30}},"loc":{"start":{"line":64,"column":35},"end":{"line":70,"column":1}},"line":64}},"branchMap":{"0":{"loc":{"start":{"line":29,"column":4},"end":{"line":35,"column":5}},"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":35,"column":5}},{"start":{},"end":{}}],"line":29},"1":{"loc":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},{"start":{},"end":{}}],"line":44},"2":{"loc":{"start":{"line":54,"column":2},"end":{"line":61,"column":3}},"type":"if","locations":[{"start":{"line":54,"column":2},"end":{"line":61,"column":3}},{"start":{"line":56,"column":9},"end":{"line":61,"column":3}}],"line":54},"3":{"loc":{"start":{"line":56,"column":9},"end":{"line":61,"column":3}},"type":"if","locations":[{"start":{"line":56,"column":9},"end":{"line":61,"column":3}},{"start":{},"end":{}}],"line":56}},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":1,"17":0,"18":0,"19":0,"20":0,"21":0,"22":1,"23":0,"24":0,"25":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"28aaa3cb5273355d1d0198b0025219958c7ba6c5"}
3
+ ,"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/revocations.js": {"path":"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/revocations.js","statementMap":{"0":{"start":{"line":10,"column":26},"end":{"line":41,"column":1}},"1":{"start":{"line":11,"column":2},"end":{"line":11,"column":61}},"2":{"start":{"line":12,"column":2},"end":{"line":14,"column":5}},"3":{"start":{"line":16,"column":2},"end":{"line":20,"column":3}},"4":{"start":{"line":17,"column":4},"end":{"line":19,"column":6}},"5":{"start":{"line":22,"column":2},"end":{"line":40,"column":3}},"6":{"start":{"line":23,"column":21},"end":{"line":27,"column":5}},"7":{"start":{"line":28,"column":4},"end":{"line":28,"column":52}},"8":{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},"9":{"start":{"line":30,"column":6},"end":{"line":32,"column":8}},"10":{"start":{"line":34,"column":4},"end":{"line":37,"column":6}},"11":{"start":{"line":39,"column":4},"end":{"line":39,"column":77}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":26},"end":{"line":10,"column":27}},"loc":{"start":{"line":10,"column":48},"end":{"line":41,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":2},"end":{"line":20,"column":3}},"type":"if","locations":[{"start":{"line":16,"column":2},"end":{"line":20,"column":3}},{"start":{},"end":{}}],"line":16},"1":{"loc":{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},{"start":{},"end":{}}],"line":29},"2":{"loc":{"start":{"line":31,"column":8},"end":{"line":31,"column":72}},"type":"binary-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":24}},{"start":{"line":31,"column":28},"end":{"line":31,"column":72}}],"line":31},"3":{"loc":{"start":{"line":35,"column":24},"end":{"line":35,"column":52}},"type":"binary-expr","locations":[{"start":{"line":35,"column":24},"end":{"line":35,"column":39}},{"start":{"line":35,"column":43},"end":{"line":35,"column":52}}],"line":35}},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},"f":{"0":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"57ee1187ef59daed4050baef7d5d296d194958ab"}
4
+ ,"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/users.js": {"path":"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/api/users.js","statementMap":{"0":{"start":{"line":14,"column":20},"end":{"line":72,"column":1}},"1":{"start":{"line":15,"column":41},"end":{"line":15,"column":52}},"2":{"start":{"line":16,"column":15},"end":{"line":19,"column":3}},"3":{"start":{"line":21,"column":2},"end":{"line":21,"column":53}},"4":{"start":{"line":23,"column":2},"end":{"line":23,"column":65}},"5":{"start":{"line":26,"column":2},"end":{"line":30,"column":3}},"6":{"start":{"line":27,"column":4},"end":{"line":29,"column":6}},"7":{"start":{"line":32,"column":2},"end":{"line":71,"column":3}},"8":{"start":{"line":35,"column":21},"end":{"line":39,"column":5}},"9":{"start":{"line":44,"column":4},"end":{"line":44,"column":67}},"10":{"start":{"line":46,"column":4},"end":{"line":53,"column":5}},"11":{"start":{"line":48,"column":6},"end":{"line":52,"column":8}},"12":{"start":{"line":55,"column":4},"end":{"line":58,"column":6}},"13":{"start":{"line":62,"column":4},"end":{"line":62,"column":50}},"14":{"start":{"line":63,"column":4},"end":{"line":65,"column":5}},"15":{"start":{"line":64,"column":6},"end":{"line":64,"column":18}},"16":{"start":{"line":66,"column":4},"end":{"line":70,"column":6}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":20},"end":{"line":14,"column":21}},"loc":{"start":{"line":14,"column":32},"end":{"line":72,"column":1}},"line":14}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":2},"end":{"line":30,"column":3}},"type":"if","locations":[{"start":{"line":26,"column":2},"end":{"line":30,"column":3}},{"start":{},"end":{}}],"line":26},"1":{"loc":{"start":{"line":26,"column":6},"end":{"line":26,"column":55}},"type":"binary-expr","locations":[{"start":{"line":26,"column":6},"end":{"line":26,"column":11}},{"start":{"line":26,"column":15},"end":{"line":26,"column":35}},{"start":{"line":26,"column":39},"end":{"line":26,"column":55}}],"line":26},"2":{"loc":{"start":{"line":46,"column":4},"end":{"line":53,"column":5}},"type":"if","locations":[{"start":{"line":46,"column":4},"end":{"line":53,"column":5}},{"start":{},"end":{}}],"line":46},"3":{"loc":{"start":{"line":46,"column":8},"end":{"line":46,"column":46}},"type":"binary-expr","locations":[{"start":{"line":46,"column":8},"end":{"line":46,"column":27}},{"start":{"line":46,"column":31},"end":{"line":46,"column":46}}],"line":46},"4":{"loc":{"start":{"line":63,"column":4},"end":{"line":65,"column":5}},"type":"if","locations":[{"start":{"line":63,"column":4},"end":{"line":65,"column":5}},{"start":{},"end":{}}],"line":63},"5":{"loc":{"start":{"line":68,"column":8},"end":{"line":68,"column":44}},"type":"binary-expr","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":21}},{"start":{"line":68,"column":25},"end":{"line":68,"column":44}}],"line":68}},"s":{"0":1,"1":5,"2":5,"3":5,"4":5,"5":5,"6":1,"7":4,"8":4,"9":2,"10":2,"11":1,"12":1,"13":3,"14":3,"15":2,"16":1},"f":{"0":5},"b":{"0":[1,4],"1":[5,5,5],"2":[1,1],"3":[2,1],"4":[2,1],"5":[1,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ed3a43bfcf1858d3c5ea2a5c4498bc89e88471dc"}
5
+ ,"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/errors/index.js": {"path":"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/errors/index.js","statementMap":{"0":{"start":{"line":8,"column":4},"end":{"line":8,"column":19}},"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":35}},"2":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":31}},"4":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"5":{"start":{"line":15,"column":6},"end":{"line":15,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":2},"end":{"line":7,"column":3}},"loc":{"start":{"line":7,"column":59},"end":{"line":17,"column":3}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":23},"end":{"line":7,"column":39}},"type":"default-arg","locations":[{"start":{"line":7,"column":36},"end":{"line":7,"column":39}}],"line":7},"1":{"loc":{"start":{"line":7,"column":41},"end":{"line":7,"column":57}},"type":"default-arg","locations":[{"start":{"line":7,"column":53},"end":{"line":7,"column":57}}],"line":7},"2":{"loc":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},{"start":{},"end":{}}],"line":14}},"s":{"0":3,"1":3,"2":3,"3":3,"4":3,"5":3},"f":{"0":3},"b":{"0":[1],"1":[1],"2":[3,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"722c08457ad3491d9e735f6526f1a50c9fe55581"}
6
+ ,"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/utils/constant.js": {"path":"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/utils/constant.js","statementMap":{"0":{"start":{"line":1,"column":34},"end":{"line":10,"column":1}},"1":{"start":{"line":12,"column":35},"end":{"line":15,"column":1}},"2":{"start":{"line":17,"column":32},"end":{"line":20,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cba78979cdc098550051e2bba8252ec347376d35"}
7
+ ,"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/utils/helpers.js": {"path":"/builds/3dlinkweb/apacuana/libs/apacuana-sdk-core/main/src/utils/helpers.js","statementMap":{"0":{"start":{"line":7,"column":29},"end":{"line":42,"column":1}},"1":{"start":{"line":8,"column":2},"end":{"line":10,"column":3}},"2":{"start":{"line":9,"column":4},"end":{"line":9,"column":59}},"3":{"start":{"line":11,"column":2},"end":{"line":15,"column":3}},"4":{"start":{"line":12,"column":4},"end":{"line":14,"column":6}},"5":{"start":{"line":17,"column":2},"end":{"line":18,"column":38}},"6":{"start":{"line":18,"column":4},"end":{"line":18,"column":38}},"7":{"start":{"line":19,"column":2},"end":{"line":26,"column":57}},"8":{"start":{"line":26,"column":4},"end":{"line":26,"column":57}},"9":{"start":{"line":28,"column":2},"end":{"line":29,"column":46}},"10":{"start":{"line":29,"column":4},"end":{"line":29,"column":46}},"11":{"start":{"line":30,"column":2},"end":{"line":34,"column":38}},"12":{"start":{"line":34,"column":4},"end":{"line":34,"column":38}},"13":{"start":{"line":36,"column":2},"end":{"line":36,"column":65}},"14":{"start":{"line":36,"column":31},"end":{"line":36,"column":65}},"15":{"start":{"line":37,"column":2},"end":{"line":37,"column":64}},"16":{"start":{"line":37,"column":29},"end":{"line":37,"column":64}},"17":{"start":{"line":39,"column":2},"end":{"line":39,"column":67}},"18":{"start":{"line":39,"column":33},"end":{"line":39,"column":67}},"19":{"start":{"line":41,"column":2},"end":{"line":41,"column":36}},"20":{"start":{"line":44,"column":24},"end":{"line":74,"column":1}},"21":{"start":{"line":48,"column":2},"end":{"line":73,"column":3}},"22":{"start":{"line":49,"column":19},"end":{"line":49,"column":30}},"23":{"start":{"line":50,"column":4},"end":{"line":52,"column":5}},"24":{"start":{"line":51,"column":6},"end":{"line":51,"column":76}},"25":{"start":{"line":54,"column":20},"end":{"line":63,"column":5}},"26":{"start":{"line":65,"column":4},"end":{"line":65,"column":19}},"27":{"start":{"line":67,"column":4},"end":{"line":67,"column":75}},"28":{"start":{"line":68,"column":4},"end":{"line":72,"column":6}},"29":{"start":{"line":76,"column":20},"end":{"line":145,"column":1}},"30":{"start":{"line":77,"column":2},"end":{"line":144,"column":3}},"31":{"start":{"line":78,"column":38},"end":{"line":78,"column":45}},"32":{"start":{"line":81,"column":4},"end":{"line":85,"column":5}},"33":{"start":{"line":82,"column":6},"end":{"line":84,"column":8}},"34":{"start":{"line":86,"column":4},"end":{"line":90,"column":5}},"35":{"start":{"line":87,"column":6},"end":{"line":89,"column":8}},"36":{"start":{"line":92,"column":19},"end":{"line":92,"column":51}},"37":{"start":{"line":93,"column":4},"end":{"line":93,"column":23}},"38":{"start":{"line":95,"column":30},"end":{"line":117,"column":40}},"39":{"start":{"line":117,"column":23},"end":{"line":117,"column":39}},"40":{"start":{"line":120,"column":4},"end":{"line":122,"column":6}},"41":{"start":{"line":121,"column":6},"end":{"line":121,"column":79}},"42":{"start":{"line":125,"column":4},"end":{"line":125,"column":59}},"43":{"start":{"line":126,"column":4},"end":{"line":126,"column":43}},"44":{"start":{"line":129,"column":16},"end":{"line":129,"column":46}},"45":{"start":{"line":132,"column":4},"end":{"line":135,"column":6}},"46":{"start":{"line":138,"column":4},"end":{"line":138,"column":65}},"47":{"start":{"line":139,"column":4},"end":{"line":143,"column":6}},"48":{"start":{"line":148,"column":28},"end":{"line":151,"column":1}},"49":{"start":{"line":149,"column":17},"end":{"line":149,"column":72}},"50":{"start":{"line":150,"column":2},"end":{"line":150,"column":29}},"51":{"start":{"line":154,"column":17},"end":{"line":154,"column":28}},"52":{"start":{"line":155,"column":19},"end":{"line":155,"column":55}},"53":{"start":{"line":156,"column":31},"end":{"line":156,"column":55}},"54":{"start":{"line":157,"column":2},"end":{"line":157,"column":51}},"55":{"start":{"line":160,"column":23},"end":{"line":166,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":29},"end":{"line":7,"column":30}},"loc":{"start":{"line":7,"column":64},"end":{"line":42,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":44,"column":24},"end":{"line":44,"column":25}},"loc":{"start":{"line":47,"column":5},"end":{"line":74,"column":1}},"line":47},"2":{"name":"(anonymous_2)","decl":{"start":{"line":76,"column":20},"end":{"line":76,"column":21}},"loc":{"start":{"line":76,"column":70},"end":{"line":145,"column":1}},"line":76},"3":{"name":"(anonymous_3)","decl":{"start":{"line":117,"column":13},"end":{"line":117,"column":14}},"loc":{"start":{"line":117,"column":23},"end":{"line":117,"column":39}},"line":117},"4":{"name":"(anonymous_4)","decl":{"start":{"line":120,"column":30},"end":{"line":120,"column":31}},"loc":{"start":{"line":121,"column":6},"end":{"line":121,"column":79}},"line":121},"5":{"name":"(anonymous_5)","decl":{"start":{"line":148,"column":28},"end":{"line":148,"column":29}},"loc":{"start":{"line":148,"column":40},"end":{"line":151,"column":1}},"line":148},"6":{"name":"exportPrivateKey","decl":{"start":{"line":153,"column":22},"end":{"line":153,"column":38}},"loc":{"start":{"line":153,"column":44},"end":{"line":158,"column":1}},"line":153}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":10,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":10,"column":3}},{"start":{},"end":{}}],"line":8},"1":{"loc":{"start":{"line":11,"column":2},"end":{"line":15,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":2},"end":{"line":15,"column":3}},{"start":{},"end":{}}],"line":11},"2":{"loc":{"start":{"line":17,"column":2},"end":{"line":18,"column":38}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":18,"column":38}},{"start":{},"end":{}}],"line":17},"3":{"loc":{"start":{"line":19,"column":2},"end":{"line":26,"column":57}},"type":"if","locations":[{"start":{"line":19,"column":2},"end":{"line":26,"column":57}},{"start":{},"end":{}}],"line":19},"4":{"loc":{"start":{"line":20,"column":4},"end":{"line":24,"column":62}},"type":"binary-expr","locations":[{"start":{"line":20,"column":4},"end":{"line":20,"column":29}},{"start":{"line":21,"column":4},"end":{"line":21,"column":26}},{"start":{"line":22,"column":4},"end":{"line":22,"column":36}},{"start":{"line":23,"column":4},"end":{"line":23,"column":24}},{"start":{"line":24,"column":4},"end":{"line":24,"column":62}}],"line":20},"5":{"loc":{"start":{"line":28,"column":2},"end":{"line":29,"column":46}},"type":"if","locations":[{"start":{"line":28,"column":2},"end":{"line":29,"column":46}},{"start":{},"end":{}}],"line":28},"6":{"loc":{"start":{"line":28,"column":6},"end":{"line":28,"column":66}},"type":"binary-expr","locations":[{"start":{"line":28,"column":6},"end":{"line":28,"column":37}},{"start":{"line":28,"column":41},"end":{"line":28,"column":66}}],"line":28},"7":{"loc":{"start":{"line":30,"column":2},"end":{"line":34,"column":38}},"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":34,"column":38}},{"start":{},"end":{}}],"line":30},"8":{"loc":{"start":{"line":31,"column":4},"end":{"line":32,"column":62}},"type":"binary-expr","locations":[{"start":{"line":31,"column":4},"end":{"line":31,"column":26}},{"start":{"line":32,"column":4},"end":{"line":32,"column":62}}],"line":31},"9":{"loc":{"start":{"line":36,"column":2},"end":{"line":36,"column":65}},"type":"if","locations":[{"start":{"line":36,"column":2},"end":{"line":36,"column":65}},{"start":{},"end":{}}],"line":36},"10":{"loc":{"start":{"line":37,"column":2},"end":{"line":37,"column":64}},"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":64}},{"start":{},"end":{}}],"line":37},"11":{"loc":{"start":{"line":39,"column":2},"end":{"line":39,"column":67}},"type":"if","locations":[{"start":{"line":39,"column":2},"end":{"line":39,"column":67}},{"start":{},"end":{}}],"line":39},"12":{"loc":{"start":{"line":45,"column":2},"end":{"line":45,"column":31}},"type":"default-arg","locations":[{"start":{"line":45,"column":12},"end":{"line":45,"column":31}}],"line":45},"13":{"loc":{"start":{"line":46,"column":2},"end":{"line":46,"column":21}},"type":"default-arg","locations":[{"start":{"line":46,"column":12},"end":{"line":46,"column":21}}],"line":46},"14":{"loc":{"start":{"line":50,"column":4},"end":{"line":52,"column":5}},"type":"if","locations":[{"start":{"line":50,"column":4},"end":{"line":52,"column":5}},{"start":{},"end":{}}],"line":50},"15":{"loc":{"start":{"line":76,"column":46},"end":{"line":76,"column":65}},"type":"default-arg","locations":[{"start":{"line":76,"column":56},"end":{"line":76,"column":65}}],"line":76},"16":{"loc":{"start":{"line":81,"column":4},"end":{"line":85,"column":5}},"type":"if","locations":[{"start":{"line":81,"column":4},"end":{"line":85,"column":5}},{"start":{},"end":{}}],"line":81},"17":{"loc":{"start":{"line":81,"column":8},"end":{"line":81,"column":45}},"type":"binary-expr","locations":[{"start":{"line":81,"column":8},"end":{"line":81,"column":16}},{"start":{"line":81,"column":20},"end":{"line":81,"column":30}},{"start":{"line":81,"column":34},"end":{"line":81,"column":45}}],"line":81},"18":{"loc":{"start":{"line":86,"column":4},"end":{"line":90,"column":5}},"type":"if","locations":[{"start":{"line":86,"column":4},"end":{"line":90,"column":5}},{"start":{},"end":{}}],"line":86},"19":{"loc":{"start":{"line":86,"column":8},"end":{"line":86,"column":36}},"type":"binary-expr","locations":[{"start":{"line":86,"column":8},"end":{"line":86,"column":17}},{"start":{"line":86,"column":21},"end":{"line":86,"column":36}}],"line":86},"20":{"loc":{"start":{"line":98,"column":51},"end":{"line":98,"column":75}},"type":"binary-expr","locations":[{"start":{"line":98,"column":51},"end":{"line":98,"column":67}},{"start":{"line":98,"column":71},"end":{"line":98,"column":75}}],"line":98},"21":{"loc":{"start":{"line":102,"column":46},"end":{"line":102,"column":74}},"type":"binary-expr","locations":[{"start":{"line":102,"column":46},"end":{"line":102,"column":65}},{"start":{"line":102,"column":69},"end":{"line":102,"column":74}}],"line":102}},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":1,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":1,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":1,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0,0,0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0],"13":[0],"14":[0,0],"15":[0],"16":[0,0],"17":[0,0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"82e20d132d2f717fb1fc8b15cebbab5d98b9bbaa"}
8
+ }