apacuana-sdk-core 0.6.0 → 0.7.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 +105 -250
- package/babel.config.cjs +11 -0
- package/coverage/clover.xml +189 -195
- package/coverage/coverage-final.json +8 -8
- package/coverage/lcov-report/api/index.html +131 -0
- package/coverage/lcov-report/api/signatures.js.html +1093 -0
- package/coverage/lcov-report/api/users.js.html +292 -0
- package/coverage/lcov-report/config/index.html +116 -0
- package/coverage/lcov-report/config/index.js.html +208 -0
- package/coverage/lcov-report/errors/index.html +116 -0
- package/coverage/lcov-report/errors/index.js.html +148 -0
- package/coverage/lcov-report/index.html +41 -41
- package/coverage/lcov-report/src/api/certs.js.html +55 -34
- package/coverage/lcov-report/src/api/index.html +25 -25
- package/coverage/lcov-report/src/api/revocations.js.html +135 -30
- package/coverage/lcov-report/src/api/signatures.js.html +76 -4
- package/coverage/lcov-report/src/api/users.js.html +1 -1
- package/coverage/lcov-report/src/config/index.html +13 -13
- package/coverage/lcov-report/src/config/index.js.html +69 -18
- 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 +15 -15
- package/coverage/lcov-report/src/index.js.html +14 -68
- package/coverage/lcov-report/src/utils/constant.js.html +1 -1
- package/coverage/lcov-report/src/utils/helpers.js.html +18 -51
- package/coverage/lcov-report/src/utils/httpClient.js.html +6 -72
- package/coverage/lcov-report/src/utils/index.html +19 -19
- package/coverage/lcov-report/utils/constant.js.html +145 -0
- package/coverage/lcov-report/utils/httpClient.js.html +646 -0
- package/coverage/lcov-report/utils/index.html +131 -0
- package/coverage/lcov.info +334 -337
- package/dist/api/certs.d.ts +11 -1
- package/dist/api/revocations.d.ts +32 -12
- package/dist/api/signatures.d.ts +37 -5
- package/dist/config/index.d.ts +13 -2
- package/dist/index.d.ts +4 -1
- package/dist/index.js +436 -290
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +436 -290
- package/dist/index.mjs.map +1 -1
- package/dist/utils/helpers.d.ts +1 -1
- package/jest.config.cjs +6 -1
- package/package.json +12 -7
- package/rollup.config.js +1 -1
- package/src/api/certs.js +17 -10
- package/src/api/revocations.js +55 -20
- package/src/api/signatures.js +25 -1
- package/src/config/index.js +25 -8
- package/src/index.js +4 -22
- package/src/utils/helpers.js +11 -22
- package/src/utils/httpClient.js +0 -22
- package/tests/api/certs.test.js +30 -48
- package/tsconfig.json +2 -1
- package/.babelrc +0 -3
package/README.md
CHANGED
|
@@ -53,22 +53,19 @@ Inicializa el SDK con la configuración proporcionada.
|
|
|
53
53
|
|
|
54
54
|
- `Promise<boolean>` que se resuelve a `true` cuando la inicialización es exitosa.
|
|
55
55
|
|
|
56
|
+
### close()
|
|
57
|
+
|
|
58
|
+
Cierra la sesión actual del SDK y restablece la configuración a sus valores por defecto, dejando la instancia lista para una nueva inicialización.
|
|
59
|
+
|
|
60
|
+
**Parámetros:** Ninguno
|
|
61
|
+
|
|
62
|
+
**Retorna:** Nada
|
|
63
|
+
|
|
56
64
|
**Ejemplo:**
|
|
57
65
|
|
|
58
66
|
```javascript
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
}
|
|
67
|
+
apacuana.close();
|
|
68
|
+
console.log("La sesión del SDK ha sido cerrada.");
|
|
72
69
|
```
|
|
73
70
|
|
|
74
71
|
### getConfig()
|
|
@@ -81,18 +78,11 @@ Obtiene la configuración actual del SDK.
|
|
|
81
78
|
|
|
82
79
|
- `Object`: Configuración actual del SDK
|
|
83
80
|
|
|
84
|
-
**Ejemplo:**
|
|
85
|
-
|
|
86
|
-
```javascript
|
|
87
|
-
const config = apacuana.getConfig();
|
|
88
|
-
console.log("Configuración actual:", config);
|
|
89
|
-
```
|
|
90
|
-
|
|
91
81
|
### getCustomer()
|
|
92
82
|
|
|
93
83
|
Obtiene la información del cliente utilizando los datos de configuración.
|
|
94
84
|
|
|
95
|
-
**Parámetros:** Ninguno
|
|
85
|
+
**Parámetros:** Ninguno
|
|
96
86
|
|
|
97
87
|
**Retorna:**
|
|
98
88
|
|
|
@@ -101,37 +91,19 @@ Obtiene la información del cliente utilizando los datos de configuración.
|
|
|
101
91
|
- `userData` (Object): Datos del usuario.
|
|
102
92
|
- `success` (Boolean): Indicador de éxito de la operación.
|
|
103
93
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
```javascript
|
|
107
|
-
try {
|
|
108
|
-
const { token, userData, success } = await apacuana.getCustomer();
|
|
109
|
-
if (success) {
|
|
110
|
-
console.log("Token de sesión:", token);
|
|
111
|
-
console.log("Datos del usuario:", userData);
|
|
112
|
-
}
|
|
113
|
-
} catch (error) {
|
|
114
|
-
console.error("Error al obtener información del cliente:", error);
|
|
115
|
-
}
|
|
116
|
-
```
|
|
94
|
+
### generateCert(encryptedCSR)
|
|
117
95
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
Genera un certificado digital basado en el tipo de integración configurado. Para la integración `ONBOARDING`, esta función valida la Solicitud de Firma de Certificado (CSR) y la envía a la API de Apacuana para su registro.
|
|
96
|
+
Genera un certificado digital. El comportamiento y el parámetro esperado varían según el `integrationType`.
|
|
121
97
|
|
|
122
98
|
**Parámetros:**
|
|
123
99
|
|
|
124
|
-
- `
|
|
125
|
-
|
|
126
|
-
**Validaciones:**
|
|
100
|
+
- `encryptedCSR` (`EncryptedCSRObject`): Un objeto que contiene la Solicitud de Firma de Certificado (CSR) encriptada.
|
|
101
|
+
- `csr` (String): La CSR en formato Base64.
|
|
127
102
|
|
|
128
|
-
|
|
129
|
-
- Es un parámetro requerido.
|
|
130
|
-
- Debe ser una cadena de texto (`string`).
|
|
131
|
-
- No puede ser una cadena vacía.
|
|
132
|
-
- Debe estar codificada en formato Base64 válido.
|
|
103
|
+
**Comportamiento por `integrationType`:**
|
|
133
104
|
|
|
134
|
-
|
|
105
|
+
- **`ONBOARDING`**: Valida la CSR y la envía a la API para su registro.
|
|
106
|
+
- **`ONPREMISE`**: No soportado. Lanza una `ApacuanaAPIError` con el código `NOT_IMPLEMENTED`.
|
|
135
107
|
|
|
136
108
|
**Retorna:**
|
|
137
109
|
|
|
@@ -142,20 +114,15 @@ Si alguna de estas validaciones falla, la función lanzará una `ApacuanaAPIErro
|
|
|
142
114
|
**Ejemplo:**
|
|
143
115
|
|
|
144
116
|
```javascript
|
|
145
|
-
|
|
146
|
-
const myBase64Csr = "MIIC...==";
|
|
117
|
+
const myCsrObject = { csr: "MIIC...==" };
|
|
147
118
|
|
|
148
119
|
try {
|
|
149
|
-
const { cert, success } = await apacuana.generateCert(
|
|
120
|
+
const { cert, success } = await apacuana.generateCert(myCsrObject);
|
|
150
121
|
if (success) {
|
|
151
122
|
console.log("Certificado generado exitosamente:", cert);
|
|
152
123
|
}
|
|
153
124
|
} catch (error) {
|
|
154
|
-
|
|
155
|
-
console.error(`Error de API (${error.code}):`, error.message);
|
|
156
|
-
} else {
|
|
157
|
-
console.error("Ocurrió un error inesperado:", error);
|
|
158
|
-
}
|
|
125
|
+
console.error("Error al generar el certificado:", error.message);
|
|
159
126
|
}
|
|
160
127
|
```
|
|
161
128
|
|
|
@@ -173,60 +140,62 @@ Obtiene el estado actual del certificado del usuario.
|
|
|
173
140
|
- `status` (String): El estado del certificado (ver sección de Estados de Certificado).
|
|
174
141
|
- `success` (Boolean): Indicador de éxito de la operación.
|
|
175
142
|
|
|
176
|
-
|
|
143
|
+
### addSigner(signerData)
|
|
177
144
|
|
|
178
|
-
|
|
179
|
-
try {
|
|
180
|
-
const { status, success } = apacuana.getCertStatus(true);
|
|
181
|
-
if (success) {
|
|
182
|
-
console.log("Estado del certificado:", status);
|
|
183
|
-
}
|
|
184
|
-
} catch (error) {
|
|
185
|
-
console.error("Error al obtener estado del certificado:", error);
|
|
186
|
-
}
|
|
187
|
-
```
|
|
145
|
+
Agrega un firmante a un documento. El comportamiento y la estructura del objeto `signerData` varían según el `integrationType`.
|
|
188
146
|
|
|
189
|
-
|
|
147
|
+
**Parámetros:**
|
|
190
148
|
|
|
191
|
-
|
|
149
|
+
- `signerData` (`OnboardingSignerData` | `object`): Un objeto que contiene la información del firmante.
|
|
192
150
|
|
|
193
|
-
|
|
151
|
+
---
|
|
194
152
|
|
|
195
|
-
|
|
196
|
-
- `signature` (Object): Objeto con información de la firma.
|
|
197
|
-
- `id` (String): ID de la firma.
|
|
198
|
-
- `positions` (Array<Object>): Posiciones de la firma en el documento.
|
|
199
|
-
- `cert` (String): El certificado del firmante en formato base64.
|
|
200
|
-
- `signedDigest` (String): El digest del documento, ya firmado.
|
|
153
|
+
#### Flujo de Integración: ONBOARDING
|
|
201
154
|
|
|
202
|
-
|
|
155
|
+
Para el tipo de integración `ONBOARDING`, la función espera un objeto `signerData` con una estructura específica y realiza validaciones estrictas sobre cada campo.
|
|
203
156
|
|
|
204
|
-
|
|
157
|
+
**Estructura de `signerData` para ONBOARDING:**
|
|
205
158
|
|
|
206
|
-
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"name": "Nombre del Documento",
|
|
162
|
+
"reference": "Referencia Externa",
|
|
163
|
+
"typedoc": "V",
|
|
164
|
+
"doc": "26122862",
|
|
165
|
+
"signature": [
|
|
166
|
+
{
|
|
167
|
+
"page": 1,
|
|
168
|
+
"x": 0.5,
|
|
169
|
+
"y": 0.85
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
```
|
|
207
174
|
|
|
208
|
-
|
|
209
|
-
- `INVALID_PARAMETER`: Si los datos en `signData` son incorrectos o están incompletos.
|
|
175
|
+
**Campos de `signerData`:**
|
|
210
176
|
|
|
211
|
-
|
|
177
|
+
- **`name`** (`string`, requerido): Nombre del documento.
|
|
178
|
+
- **`reference`** (`string`, requerido): Referencia externa del documento en el gestor documental.
|
|
179
|
+
- **`typedoc`** (`string`, requerido): Tipo de documento de identidad. Valores permitidos: `V`, `P`, `E`.
|
|
180
|
+
- **`doc`** (`string`, requerido): Número del documento de identidad.
|
|
181
|
+
- **`signature`** (`Array<SignaturePosition>`, requerido): Un array de objetos que definen la posición de la firma.
|
|
182
|
+
- **`page`** (`number`, requerido): Número de página (entero positivo).
|
|
183
|
+
- **`x`** (`number`, requerido): Coordenada X (entre 0 y 1).
|
|
184
|
+
- **`y`** (`number`, requerido): Coordenada Y (entre 0 y 1).
|
|
212
185
|
|
|
213
|
-
|
|
214
|
-
const signData = {
|
|
215
|
-
signature: {
|
|
216
|
-
id: "unique-signature-id",
|
|
217
|
-
positions: [{ page: 1, x: 0.5, y: 0.8 }],
|
|
218
|
-
},
|
|
219
|
-
cert: "base64-encoded-certificate",
|
|
220
|
-
signedDigest: "signed-digest-of-the-document",
|
|
221
|
-
};
|
|
186
|
+
---
|
|
222
187
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
188
|
+
#### Flujo de Integración: ONPREMISE
|
|
189
|
+
|
|
190
|
+
Esta funcionalidad aún no está implementada para el tipo de integración `ONPREMISE`. Invocar `addSigner` en este modo lanzará una `ApacuanaAPIError` con el código `NOT_IMPLEMENTED`.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
**Retorna:**
|
|
195
|
+
|
|
196
|
+
- `Promise<AddSignerResponse>` que se resuelve con un objeto que contiene:
|
|
197
|
+
- `signer` (String): Un identificador del firmante, construido a partir de `typedoc` y `doc`.
|
|
198
|
+
- `success` (Boolean): Indicador de éxito de la operación.
|
|
230
199
|
|
|
231
200
|
### getDigest(signData)
|
|
232
201
|
|
|
@@ -244,11 +213,22 @@ Obtiene el `digest` de un documento que se va a firmar. Este `digest` es un resu
|
|
|
244
213
|
- `digest` (String): El digest del documento a firmar.
|
|
245
214
|
- `success` (Boolean): Indicador de éxito de la operación.
|
|
246
215
|
|
|
247
|
-
|
|
216
|
+
### signDocument(signData)
|
|
248
217
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
218
|
+
Firma un documento utilizando un certificado digital y un digest previamente firmado. Esta función es compatible únicamente con el flujo de integración `ONBOARDING`.
|
|
219
|
+
|
|
220
|
+
**Parámetros:**
|
|
221
|
+
|
|
222
|
+
- `signData` (`SignDocumentData`): Un objeto que contiene los datos necesarios para la firma.
|
|
223
|
+
- `signature` (Object): Objeto con información de la firma.
|
|
224
|
+
- `id` (String): ID de la firma.
|
|
225
|
+
- `positions` (Array<Object>): Posiciones de la firma en el documento.
|
|
226
|
+
- `cert` (String): El certificado del firmante en formato base64.
|
|
227
|
+
- `signedDigest` (String): El digest del documento, ya firmado.
|
|
228
|
+
|
|
229
|
+
**Retorna:**
|
|
230
|
+
|
|
231
|
+
- `Promise<object>`: Una promesa que se resuelve con la respuesta de la API tras completar la firma.
|
|
252
232
|
|
|
253
233
|
### requestRevocation(reasonCode)
|
|
254
234
|
|
|
@@ -264,183 +244,58 @@ Solicita la revocación de un certificado.
|
|
|
264
244
|
- `revocationStatus` (String): El estado de la solicitud (ej. "pending").
|
|
265
245
|
- `requestId` (String | Number): El ID de la solicitud de revocación.
|
|
266
246
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
```javascript
|
|
270
|
-
try {
|
|
271
|
-
const revocationResponse = await apacuana.requestRevocation("COMPROMISED");
|
|
272
|
-
console.log("Revocación solicitada:", revocationResponse);
|
|
273
|
-
} catch (error) {
|
|
274
|
-
console.error("Error al solicitar revocación:", error);
|
|
275
|
-
}
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
### getDocs(data)
|
|
247
|
+
### getRevocationReasons()
|
|
279
248
|
|
|
280
|
-
Obtiene
|
|
249
|
+
Obtiene la lista de códigos de motivo de revocación disponibles que se pueden usar en la función `requestRevocation`.
|
|
281
250
|
|
|
282
|
-
**Parámetros:**
|
|
283
|
-
|
|
284
|
-
- `data` (`GetDocsParams`): Objeto que contiene los parámetros para la consulta.
|
|
285
|
-
- `page` (Number): Número de página para la paginación.
|
|
286
|
-
- `size` (Number): Cantidad de resultados por página.
|
|
287
|
-
- `status` (Number, opcional): Filtra los documentos por su estado. Los valores permitidos son:
|
|
288
|
-
- `-1`: Rechazado
|
|
289
|
-
- `0`: Pendiente
|
|
290
|
-
- `1`: Firmado
|
|
291
|
-
- `2`: En proceso
|
|
251
|
+
**Parámetros:** Ninguno
|
|
292
252
|
|
|
293
253
|
**Retorna:**
|
|
294
254
|
|
|
295
|
-
- `Promise<
|
|
296
|
-
- `
|
|
297
|
-
- `records` (Array<Object>): Un array de objetos, donde cada objeto es un documento.
|
|
255
|
+
- `Promise<RevocationReasonsResponse>`: Un objeto que contiene:
|
|
256
|
+
- `reasons` (Array<Object>): Un array de objetos, donde cada objeto representa un motivo de revocación con `code` y `description`.
|
|
298
257
|
- `success` (Boolean): Indicador de éxito de la operación.
|
|
299
258
|
|
|
300
259
|
**Comportamiento por `integrationType`:**
|
|
301
260
|
|
|
302
|
-
- **`ONBOARDING`**: Obtiene
|
|
303
|
-
- **`ONPREMISE`**: No soportado. Lanza
|
|
304
|
-
|
|
305
|
-
**Ejemplo (`ONBOARDING`):**
|
|
261
|
+
- **`ONBOARDING`**: Obtiene la lista de motivos desde la API.
|
|
262
|
+
- **`ONPREMISE`**: No soportado. Lanza una `ApacuanaAPIError` con el código `NOT_IMPLEMENTED`.
|
|
306
263
|
|
|
307
|
-
|
|
308
|
-
try {
|
|
309
|
-
const documents = await apacuana.getDocs({ page: 1, size: 10, status: 1 });
|
|
310
|
-
console.log("Documentos:", documents);
|
|
311
|
-
} catch (error) {
|
|
312
|
-
console.error("Error al obtener documentos:", error.message);
|
|
313
|
-
}
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**Posibles `ApacuanaAPIError`:**
|
|
317
|
-
|
|
318
|
-
- `INVALID_PARAMETER`: Si `page`, `size` o `status` no son válidos.
|
|
319
|
-
- `CONFIGURATION_ERROR`: Si el `customerId` no está configurado en la inicialización.
|
|
320
|
-
- `NOT_IMPLEMENTED`: Si se llama con `integrationType` igual a `ONPREMISE`.
|
|
321
|
-
|
|
322
|
-
### addSigner(signerData)
|
|
264
|
+
### getDocs(data)
|
|
323
265
|
|
|
324
|
-
|
|
266
|
+
Obtiene una lista de documentos paginada.
|
|
325
267
|
|
|
326
268
|
**Parámetros:**
|
|
327
269
|
|
|
328
|
-
- `
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
#### Flujo de Integración: ONBOARDING
|
|
333
|
-
|
|
334
|
-
Para el tipo de integración `ONBOARDING`, la función espera un objeto `signerData` con la siguiente estructura y realiza validaciones estrictas sobre cada campo.
|
|
335
|
-
|
|
336
|
-
**Estructura de `signerData` para ONBOARDING:**
|
|
337
|
-
|
|
338
|
-
```json
|
|
339
|
-
{
|
|
340
|
-
"name": "Nombre del Documento",
|
|
341
|
-
"reference": "Referencia Externa",
|
|
342
|
-
"typedoc": "V",
|
|
343
|
-
"doc": "26122862",
|
|
344
|
-
"signature": [
|
|
345
|
-
{
|
|
346
|
-
"page": 1,
|
|
347
|
-
"x": 0.5,
|
|
348
|
-
"y": 0.85
|
|
349
|
-
}
|
|
350
|
-
]
|
|
351
|
-
}
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**Validaciones (ONBOARDING):**
|
|
355
|
-
|
|
356
|
-
- **signerData**: Debe ser un objeto no vacío.
|
|
357
|
-
- **name**: Requerido, `string`.
|
|
358
|
-
- **reference**: Requerido, `string`. (referencia del documento en el gestor documental)
|
|
359
|
-
- **typedoc**: Requerido, debe ser `V`, `P` o `E`.
|
|
360
|
-
- **doc**: Requerido, `string`.
|
|
361
|
-
- **signature**: Requerido, `array` no vacío.
|
|
362
|
-
- Cada objeto en el `array` debe tener:
|
|
363
|
-
- `page`: Requerido, `número` entero positivo.
|
|
364
|
-
- `x`: Requerido, `número` entre 0 y 1.
|
|
365
|
-
- `y`: Requerido, `número` entre 0 y 1.
|
|
366
|
-
|
|
367
|
-
Si alguna validación falla, se lanzará una `ApacuanaAPIError` con el código `INVALID_PARAMETER` o `INVALID_PARAMETER_FORMAT`.
|
|
368
|
-
|
|
369
|
-
---
|
|
270
|
+
- `data` (`GetDocsParams`): Objeto que contiene los parámetros para la consulta.
|
|
271
|
+
- `page` (Number): Número de página.
|
|
272
|
+
- `size` (Number): Cantidad de resultados por página.
|
|
273
|
+
- `status` (Number, opcional): Filtra por estado (`-1`: Rechazado, `0`: Pendiente, `1`: Firmado, `2`: En proceso).
|
|
370
274
|
|
|
371
275
|
**Retorna:**
|
|
372
276
|
|
|
373
|
-
- `Promise<
|
|
374
|
-
- `
|
|
277
|
+
- `Promise<GetDocsResponse>`: Un objeto que contiene:
|
|
278
|
+
- `totalRecords` (Number): El número total de documentos.
|
|
279
|
+
- `records` (Array<Object>): Un array de documentos.
|
|
375
280
|
- `success` (Boolean): Indicador de éxito de la operación.
|
|
376
281
|
|
|
377
|
-
**Ejemplo (ONBOARDING):**
|
|
378
|
-
|
|
379
|
-
```javascript
|
|
380
|
-
const signerInfo = {
|
|
381
|
-
name: "Contrato de Servicios",
|
|
382
|
-
reference: "CS-2024-001",
|
|
383
|
-
typedoc: "V",
|
|
384
|
-
doc: "12345678",
|
|
385
|
-
signature: [{ page: 5, x: 0.25, y: 0.75 }],
|
|
386
|
-
};
|
|
387
|
-
|
|
388
|
-
try {
|
|
389
|
-
const response = await apacuana.addSigner(signerInfo);
|
|
390
|
-
console.log("Firmante agregado exitosamente:", response);
|
|
391
|
-
} catch (error) {
|
|
392
|
-
if (error.name === "ApacuanaAPIError") {
|
|
393
|
-
console.error(`Error de API (${error.code}):`, error.message);
|
|
394
|
-
} else {
|
|
395
|
-
console.error("Ocurrió un error inesperado:", error);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
```
|
|
399
|
-
|
|
400
282
|
## Estados de Certificado
|
|
401
283
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
- `
|
|
405
|
-
- `
|
|
406
|
-
- `
|
|
407
|
-
- `REVOKED`: El certificado ha sido revocado
|
|
408
|
-
- `SUSPENDED`: El certificado está temporalmente suspendido
|
|
284
|
+
- `PENDING`: Pendiente de generación.
|
|
285
|
+
- `ACTIVE`: Activo y listo para usar.
|
|
286
|
+
- `EXPIRED`: Caducado.
|
|
287
|
+
- `REVOKED`: Revocado.
|
|
288
|
+
- `SUSPENDED`: Suspendido temporalmente.
|
|
409
289
|
|
|
410
290
|
## Tipos de Integración
|
|
411
291
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
- `ONBOARDING`: Proceso de registro inicial y generación de certificado.
|
|
415
|
-
- `ONPREMISE`: Integración donde el cliente gestiona su propia infraestructura. Algunas funcionalidades no están soportadas en este modo.
|
|
292
|
+
- `ONBOARDING`: Proceso de registro y generación de certificado gestionado por Apacuana.
|
|
293
|
+
- `ONPREMISE`: Integración donde el cliente gestiona su propia infraestructura.
|
|
416
294
|
|
|
417
295
|
## Manejo de Errores
|
|
418
296
|
|
|
419
|
-
El SDK utiliza la clase `ApacuanaAPIError` para manejar errores específicos de la API
|
|
420
|
-
|
|
421
|
-
```javascript
|
|
422
|
-
try {
|
|
423
|
-
await apacuana.generateCert();
|
|
424
|
-
} catch (error) {
|
|
425
|
-
if (error.name === "ApacuanaAPIError") {
|
|
426
|
-
console.error("Error de API:", error.message);
|
|
427
|
-
console.error("Código de error:", error.code);
|
|
428
|
-
console.error("Detalles:", error.details);
|
|
429
|
-
} else {
|
|
430
|
-
console.error("Error general:", error);
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
## Seguridad
|
|
436
|
-
|
|
437
|
-
El SDK implementa las siguientes medidas de seguridad:
|
|
438
|
-
|
|
439
|
-
- Generación de pares de claves criptográficas (RSA)
|
|
440
|
-
- Creación de CSR (Certificate Signing Request)
|
|
441
|
-
- Comunicación segura con la API mediante HTTPS
|
|
442
|
-
- Autenticación mediante apiKey y secretKey
|
|
297
|
+
El SDK utiliza la clase `ApacuanaAPIError` para manejar errores específicos de la API, la cual extiende `Error` y añade las propiedades `code` y `details`.
|
|
443
298
|
|
|
444
299
|
## Licencia
|
|
445
300
|
|
|
446
|
-
Este SDK está licenciado bajo términos propietarios.
|
|
301
|
+
Este SDK está licenciado bajo términos propietarios.
|
package/babel.config.cjs
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
presets: [
|
|
3
|
+
'@babel/preset-env',
|
|
4
|
+
'@babel/preset-flow'
|
|
5
|
+
],
|
|
6
|
+
plugins: [
|
|
7
|
+
['@babel/plugin-transform-class-properties', { loose: true }],
|
|
8
|
+
['@babel/plugin-transform-private-methods', { loose: true }],
|
|
9
|
+
['@babel/plugin-transform-private-property-in-object', { loose: true }]
|
|
10
|
+
]
|
|
11
|
+
};
|