@dynamicore/jumio-sdk 1.0.1 → 1.0.2
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 +235 -160
- package/dist/client-BwEiGMPy.d.mts +515 -0
- package/dist/client-BwEiGMPy.d.ts +515 -0
- package/dist/core/index.d.mts +94 -4
- package/dist/core/index.d.ts +94 -4
- package/dist/core/index.js +545 -125
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +506 -83
- package/dist/core/index.mjs.map +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +747 -126
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +706 -83
- package/dist/index.mjs.map +1 -1
- package/dist/react/index.d.mts +146 -2
- package/dist/react/index.d.ts +146 -2
- package/dist/react/index.js +766 -142
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +766 -143
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/client-BR1xIZ0X.d.mts +0 -252
- package/dist/client-BR1xIZ0X.d.ts +0 -252
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Estados posibles del flujo de verificación en Jumio.
|
|
5
|
+
*/
|
|
6
|
+
type JumioWorkflowStatus = "PENDING" | "INITIATED" | "ACQUIRED" | "SUBMITTED" | "PROCESSED" | "APPROVED_VERIFIED" | "REJECTED" | "FAILED" | "ERROR" | "DENIED" | "EXPIRED" | "ABANDONED" | (string & {});
|
|
7
|
+
/**
|
|
8
|
+
* Tipos de entrada soportados para las imágenes del documento.
|
|
9
|
+
*/
|
|
10
|
+
type ImageSource = string | Blob | File | ArrayBuffer | Uint8Array | {
|
|
11
|
+
url?: unknown;
|
|
12
|
+
} | {
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Función personalizada para firmar URLs de S3 o descargar recursos privados.
|
|
17
|
+
*/
|
|
18
|
+
type S3SignerFunction = (pathOrUrl: string, expires?: number) => Promise<string | {
|
|
19
|
+
url?: unknown;
|
|
20
|
+
} | unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* Función o valor para proveer el token de autenticación.
|
|
23
|
+
*/
|
|
24
|
+
type AuthTokenProvider = string | (() => string | undefined | null | Promise<string | undefined | null>);
|
|
25
|
+
/**
|
|
26
|
+
* Opciones de configuración para instanciar el cliente JumioClient.
|
|
27
|
+
*/
|
|
28
|
+
interface JumioClientConfig {
|
|
29
|
+
/**
|
|
30
|
+
* URL base de la API de DynamiCore / Backend.
|
|
31
|
+
* @default "https://front.dynamicore.io"
|
|
32
|
+
*/
|
|
33
|
+
baseUrl?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Endpoint específico del servicio de verificación Jumio.
|
|
36
|
+
* @default "/marketplace/apps/jumio"
|
|
37
|
+
*/
|
|
38
|
+
endpoint?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Header de contexto moral / negocio enviado en las peticiones.
|
|
41
|
+
*/
|
|
42
|
+
context?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Token de autenticación o función que lo obtiene.
|
|
45
|
+
*/
|
|
46
|
+
authToken?: AuthTokenProvider;
|
|
47
|
+
/**
|
|
48
|
+
* Prefijo para el header Authorization (por defecto vacío o "Bearer ").
|
|
49
|
+
* @default ""
|
|
50
|
+
*/
|
|
51
|
+
authTokenPrefix?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Timeout en milisegundos para las peticiones POST de verificación.
|
|
54
|
+
* @default 180000 (3 minutos)
|
|
55
|
+
*/
|
|
56
|
+
requestTimeout?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Timeout en milisegundos para las peticiones GET de status.
|
|
59
|
+
* @default 120000 (2 minutos)
|
|
60
|
+
*/
|
|
61
|
+
statusTimeout?: number;
|
|
62
|
+
/**
|
|
63
|
+
* Número máximo de reintentos ante timeouts o fallas transitorias de red.
|
|
64
|
+
* @default 3
|
|
65
|
+
*/
|
|
66
|
+
maxRetries?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Delay base en milisegundos para el backoff exponencial de reintentos.
|
|
69
|
+
* @default 800
|
|
70
|
+
*/
|
|
71
|
+
retryDelayMs?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Intervalo en milisegundos entre consultas sucesivas de sondeo (polling).
|
|
74
|
+
* @default 10000 (10 segundos)
|
|
75
|
+
*/
|
|
76
|
+
pollingIntervalMs?: number;
|
|
77
|
+
/**
|
|
78
|
+
* Número máximo de intentos de sondeo antes de timeout.
|
|
79
|
+
* @default 20 (20 x 10s = aprox 200 segundos)
|
|
80
|
+
*/
|
|
81
|
+
maxPollingAttempts?: number;
|
|
82
|
+
/**
|
|
83
|
+
* Función opcional para firmar rutas u URLs de Amazon S3.
|
|
84
|
+
*/
|
|
85
|
+
s3Signer?: S3SignerFunction;
|
|
86
|
+
/**
|
|
87
|
+
* Headers HTTP adicionales para incluir en cada petición.
|
|
88
|
+
*/
|
|
89
|
+
customHeaders?: Record<string, string>;
|
|
90
|
+
/**
|
|
91
|
+
* Instancia personalizada de Axios (opcional).
|
|
92
|
+
*/
|
|
93
|
+
axiosInstance?: AxiosInstance;
|
|
94
|
+
/**
|
|
95
|
+
* URL base del proxy de redirección para el flujo Hosted Webflow.
|
|
96
|
+
* Se usa para construir las URLs de éxito/error con codificación Base64 URL-safe.
|
|
97
|
+
* Si no se especifica, la URL de retorno se usa directamente sin proxied.
|
|
98
|
+
* @example "https://my-api.example.com/prod/jumio/redirect/"
|
|
99
|
+
*/
|
|
100
|
+
redirectProxyUrl?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Parámetros de entrada para iniciar un flujo Hosted Webflow de Jumio.
|
|
104
|
+
* El backend genera una URL de verificación oficial de Jumio a la que se redirige al usuario.
|
|
105
|
+
*/
|
|
106
|
+
interface StartWebflowInput {
|
|
107
|
+
/**
|
|
108
|
+
* Identificador único del cliente a verificar.
|
|
109
|
+
*/
|
|
110
|
+
clientId: string;
|
|
111
|
+
/**
|
|
112
|
+
* URL a la que Jumio redirigirá al usuario si la verificación es exitosa.
|
|
113
|
+
* Si `useRedirectProxy` es true, esta URL se codificará en Base64 y se añadirá al proxy.
|
|
114
|
+
*/
|
|
115
|
+
successUrl: string;
|
|
116
|
+
/**
|
|
117
|
+
* URL a la que Jumio redirigirá al usuario si la verificación falla o es rechazada.
|
|
118
|
+
* Si `useRedirectProxy` es true, esta URL se codificará en Base64 y se añadirá al proxy.
|
|
119
|
+
*/
|
|
120
|
+
errorUrl: string;
|
|
121
|
+
/**
|
|
122
|
+
* Si es `true`, codifica las URLs de retorno en Base64 URL-safe y las prepone al `redirectProxyUrl`.
|
|
123
|
+
* Útil cuando el backend o la gateway de Jumio requiere un proxy intermediario.
|
|
124
|
+
* @default false
|
|
125
|
+
*/
|
|
126
|
+
useRedirectProxy?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Si es `true`, redirige automáticamente el navegador a la URL de Jumio (`href`) al recibirla.
|
|
129
|
+
* Solo aplica en entornos de navegador (`window.location`).
|
|
130
|
+
* @default false
|
|
131
|
+
*/
|
|
132
|
+
autoRedirect?: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Si es `true`, abre la URL de verificación de Jumio en una nueva pestaña del navegador (`window.open(href, '_blank')`)
|
|
135
|
+
* sin salir ni perder el estado de la pestaña actual.
|
|
136
|
+
* @default false
|
|
137
|
+
*/
|
|
138
|
+
openInNewTab?: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Referencia opcional a una ventana o pestaña pre-abierta (`window.open`).
|
|
141
|
+
*/
|
|
142
|
+
targetWindow?: Window | null;
|
|
143
|
+
/**
|
|
144
|
+
* Señal de cancelación para abortar la petición HTTP.
|
|
145
|
+
*/
|
|
146
|
+
signal?: AbortSignal;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resultado devuelto por `startWebflow`.
|
|
150
|
+
* Contiene la URL de Jumio (`href`) a la que debe redirigirse el usuario.
|
|
151
|
+
*/
|
|
152
|
+
interface StartWebflowResult {
|
|
153
|
+
/**
|
|
154
|
+
* URL de la página web alojada de Jumio. Redirigir al usuario a esta URL para iniciar la verificación.
|
|
155
|
+
*/
|
|
156
|
+
href: string;
|
|
157
|
+
/**
|
|
158
|
+
* ID de cuenta en Jumio (puede estar disponible desde el inicio o sólo tras el retorno).
|
|
159
|
+
*/
|
|
160
|
+
accountId?: string;
|
|
161
|
+
/**
|
|
162
|
+
* ID de workflow de Jumio (puede estar disponible desde el inicio o sólo tras el retorno).
|
|
163
|
+
*/
|
|
164
|
+
workflowId?: string;
|
|
165
|
+
/**
|
|
166
|
+
* Payload completo devuelto por el backend.
|
|
167
|
+
*/
|
|
168
|
+
data: unknown;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Parámetros extraídos de la URL de retorno luego de completar el flujo web de Jumio.
|
|
172
|
+
* Jumio añade estos parámetros como query params al redirigir de vuelta a la aplicación.
|
|
173
|
+
*/
|
|
174
|
+
interface WebflowReturnParams {
|
|
175
|
+
/**
|
|
176
|
+
* ID de cuenta de Jumio. Requerido para consultar el resultado.
|
|
177
|
+
*/
|
|
178
|
+
accountId?: string;
|
|
179
|
+
/**
|
|
180
|
+
* ID de ejecución del workflow de Jumio. Requerido para consultar el resultado.
|
|
181
|
+
* Puede venir como `workflowExecutionId` o `workflowId` dependiendo de la configuración del backend.
|
|
182
|
+
*/
|
|
183
|
+
workflowId?: string;
|
|
184
|
+
/**
|
|
185
|
+
* Valor crudo del parámetro `status` de la URL (puede contener sub-parámetros anidados).
|
|
186
|
+
*/
|
|
187
|
+
rawStatus?: string;
|
|
188
|
+
/**
|
|
189
|
+
* Todos los parámetros de query de la URL de retorno, sin procesar.
|
|
190
|
+
*/
|
|
191
|
+
allParams: Record<string, string>;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Parámetros de entrada para consultar el estado del flujo Hosted Webflow.
|
|
195
|
+
*/
|
|
196
|
+
interface GetWebflowStatusInput {
|
|
197
|
+
/**
|
|
198
|
+
* ID de cuenta de Jumio.
|
|
199
|
+
*/
|
|
200
|
+
accountId: string;
|
|
201
|
+
/**
|
|
202
|
+
* ID de workflow de Jumio.
|
|
203
|
+
*/
|
|
204
|
+
workflowId: string;
|
|
205
|
+
/**
|
|
206
|
+
* ID del cliente (requerido por algunos endpoints de DynamiCore).
|
|
207
|
+
*/
|
|
208
|
+
clientId?: string;
|
|
209
|
+
/**
|
|
210
|
+
* Señal de cancelación.
|
|
211
|
+
*/
|
|
212
|
+
signal?: AbortSignal;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Resultado de una verificación completada mediante Hosted Webflow.
|
|
216
|
+
*/
|
|
217
|
+
interface WebflowResult {
|
|
218
|
+
/**
|
|
219
|
+
* `true` si la verificación fue exitosa (PASSED/WARNING con extracción de datos).
|
|
220
|
+
* `false` si fue rechazada.
|
|
221
|
+
*/
|
|
222
|
+
valid: boolean;
|
|
223
|
+
/**
|
|
224
|
+
* Tipo de decisión devuelta por Jumio: 'PASSED', 'WARNING', 'REJECTED', 'NOT_EXECUTED', etc.
|
|
225
|
+
*/
|
|
226
|
+
decision?: string;
|
|
227
|
+
/**
|
|
228
|
+
* Estado final del workflow de Jumio.
|
|
229
|
+
*/
|
|
230
|
+
status?: string;
|
|
231
|
+
/**
|
|
232
|
+
* Datos de extracción del documento (CURP, nombre, etc.) si están disponibles.
|
|
233
|
+
*/
|
|
234
|
+
extraction?: Record<string, unknown>;
|
|
235
|
+
/**
|
|
236
|
+
* ID de cuenta de Jumio asociado a la verificación.
|
|
237
|
+
*/
|
|
238
|
+
accountId?: string;
|
|
239
|
+
/**
|
|
240
|
+
* ID de workflow de Jumio asociado a la verificación.
|
|
241
|
+
*/
|
|
242
|
+
workflowId?: string;
|
|
243
|
+
/**
|
|
244
|
+
* Payload completo de la respuesta del backend.
|
|
245
|
+
*/
|
|
246
|
+
data: unknown;
|
|
247
|
+
/**
|
|
248
|
+
* Mensaje descriptivo en caso de que la verificación no sea válida.
|
|
249
|
+
*/
|
|
250
|
+
errorMessage?: string;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Opciones para el sondeo del estado del flujo Hosted Webflow.
|
|
254
|
+
*/
|
|
255
|
+
interface PollWebflowOptions {
|
|
256
|
+
/**
|
|
257
|
+
* Intervalo en milisegundos entre consultas de estado.
|
|
258
|
+
* @default 10000
|
|
259
|
+
*/
|
|
260
|
+
pollingIntervalMs?: number;
|
|
261
|
+
/**
|
|
262
|
+
* Número máximo de intentos de sondeo.
|
|
263
|
+
* @default 20
|
|
264
|
+
*/
|
|
265
|
+
maxAttempts?: number;
|
|
266
|
+
/**
|
|
267
|
+
* Señal de cancelación.
|
|
268
|
+
*/
|
|
269
|
+
signal?: AbortSignal;
|
|
270
|
+
/**
|
|
271
|
+
* Callback invocado en cada intento de sondeo.
|
|
272
|
+
*/
|
|
273
|
+
onAttempt?: (attempt: number, maxAttempts: number, lastData: unknown) => void;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Payload enviado a la API de verificación de Jumio.
|
|
277
|
+
*/
|
|
278
|
+
interface JumioVerificationPayload {
|
|
279
|
+
client: string;
|
|
280
|
+
front_image_b64: string;
|
|
281
|
+
back_image_b64: string;
|
|
282
|
+
[key: string]: unknown;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Estructura de respuesta de datos de verificación.
|
|
286
|
+
*/
|
|
287
|
+
interface JumioVerificationData {
|
|
288
|
+
valid?: boolean;
|
|
289
|
+
status?: JumioWorkflowStatus;
|
|
290
|
+
workflowStatus?: JumioWorkflowStatus;
|
|
291
|
+
decision?: string;
|
|
292
|
+
accountId?: string;
|
|
293
|
+
workflowId?: string;
|
|
294
|
+
message?: string;
|
|
295
|
+
[key: string]: unknown;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Estructura inicial devuelta al iniciar el flujo de verificación.
|
|
299
|
+
*/
|
|
300
|
+
interface JumioIneStartData extends JumioVerificationData {
|
|
301
|
+
accountId?: string;
|
|
302
|
+
workflowId?: string;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Resultado estructurado retornado por el cliente tras una validación.
|
|
306
|
+
*/
|
|
307
|
+
interface VerifyIneResult {
|
|
308
|
+
/**
|
|
309
|
+
* Indica si la validación fue exitosa (true) o fallida/rechazada (false).
|
|
310
|
+
*/
|
|
311
|
+
valid: boolean;
|
|
312
|
+
/**
|
|
313
|
+
* Estado actual o final del flujo de Jumio.
|
|
314
|
+
*/
|
|
315
|
+
status?: JumioWorkflowStatus;
|
|
316
|
+
/**
|
|
317
|
+
* Identificador de cuenta en Jumio.
|
|
318
|
+
*/
|
|
319
|
+
accountId?: string;
|
|
320
|
+
/**
|
|
321
|
+
* Identificador del workflow en Jumio.
|
|
322
|
+
*/
|
|
323
|
+
workflowId?: string;
|
|
324
|
+
/**
|
|
325
|
+
* Datos completos devueltos por la API de Jumio/DynamiCore.
|
|
326
|
+
*/
|
|
327
|
+
data: unknown;
|
|
328
|
+
/**
|
|
329
|
+
* Mensaje descriptivo o de error si la validación falló.
|
|
330
|
+
*/
|
|
331
|
+
errorMessage?: string;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Callback ejecutado cuando el sondeo resuelve un estado final.
|
|
335
|
+
*/
|
|
336
|
+
type JumioStatusResolvedCallback = (result: VerifyIneResult) => void;
|
|
337
|
+
/**
|
|
338
|
+
* Callback ejecutado si ocurre un error durante el sondeo o la petición.
|
|
339
|
+
*/
|
|
340
|
+
type JumioStatusErrorCallback = (error: Error) => void;
|
|
341
|
+
/**
|
|
342
|
+
* Callback de progreso para reportar avances de conversión o polling.
|
|
343
|
+
*/
|
|
344
|
+
type JumioProgressCallback = (stage: string, percent?: number) => void;
|
|
345
|
+
/**
|
|
346
|
+
* Parámetros de entrada para la función `verifyIne`.
|
|
347
|
+
*/
|
|
348
|
+
interface VerifyIneInput {
|
|
349
|
+
/**
|
|
350
|
+
* Identificador único del cliente (persona, usuario o ID externo).
|
|
351
|
+
*/
|
|
352
|
+
clientId: string;
|
|
353
|
+
/**
|
|
354
|
+
* Imagen frontal del documento (INE): URL, ruta S3, File, Blob o Base64.
|
|
355
|
+
*/
|
|
356
|
+
frontImage: ImageSource;
|
|
357
|
+
/**
|
|
358
|
+
* Imagen trasera/reverso del documento (INE): URL, ruta S3, File, Blob o Base64.
|
|
359
|
+
*/
|
|
360
|
+
backImage: ImageSource;
|
|
361
|
+
/**
|
|
362
|
+
* Si es `true`, la promesa espera hasta que Jumio resuelva el resultado final (bloqueante).
|
|
363
|
+
* Si es `false` (por defecto), inicia la validación, retorna de inmediato y ejecuta el sondeo en 2do plano.
|
|
364
|
+
* @default false
|
|
365
|
+
*/
|
|
366
|
+
awaitFinalStatus?: boolean;
|
|
367
|
+
/**
|
|
368
|
+
* Callback invocado cuando se completa el proceso de validación (síncrono o en segundo plano).
|
|
369
|
+
*/
|
|
370
|
+
onStatusResolved?: JumioStatusResolvedCallback;
|
|
371
|
+
/**
|
|
372
|
+
* Callback invocado ante errores no recuperables durante la validación o sondeo.
|
|
373
|
+
*/
|
|
374
|
+
onStatusError?: JumioStatusErrorCallback;
|
|
375
|
+
/**
|
|
376
|
+
* Callback opcional para reportar etapas del proceso.
|
|
377
|
+
*/
|
|
378
|
+
onProgress?: JumioProgressCallback;
|
|
379
|
+
/**
|
|
380
|
+
* Señal de cancelación (AbortSignal) para abortar peticiones o sondeo activo.
|
|
381
|
+
*/
|
|
382
|
+
signal?: AbortSignal;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Opciones para el método de polling de estado.
|
|
386
|
+
*/
|
|
387
|
+
interface PollStatusOptions {
|
|
388
|
+
pollingIntervalMs?: number;
|
|
389
|
+
maxAttempts?: number;
|
|
390
|
+
signal?: AbortSignal;
|
|
391
|
+
onAttempt?: (attempt: number, maxAttempts: number, lastData: unknown) => void;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Cliente principal para gestionar validaciones de identidad mediante Jumio.
|
|
396
|
+
*/
|
|
397
|
+
declare class JumioClient {
|
|
398
|
+
private readonly http;
|
|
399
|
+
private readonly config;
|
|
400
|
+
constructor(config?: JumioClientConfig);
|
|
401
|
+
/**
|
|
402
|
+
* Inicia el proceso de verificación convirtiendo las imágenes y enviando el payload inicial a Jumio.
|
|
403
|
+
*/
|
|
404
|
+
startIneVerification(params: {
|
|
405
|
+
clientId: string;
|
|
406
|
+
frontImage: ImageSource;
|
|
407
|
+
backImage: ImageSource;
|
|
408
|
+
signal?: AbortSignal;
|
|
409
|
+
onProgress?: JumioProgressCallback;
|
|
410
|
+
}): Promise<JumioIneStartData>;
|
|
411
|
+
/**
|
|
412
|
+
* Consulta una única vez el estado actual de la validación.
|
|
413
|
+
*/
|
|
414
|
+
getIneStatus(accountId: string, workflowId: string, signal?: AbortSignal): Promise<JumioVerificationData>;
|
|
415
|
+
/**
|
|
416
|
+
* Sondea periódicamente el estado hasta obtener un resultado definitivo.
|
|
417
|
+
*/
|
|
418
|
+
pollIneStatus(accountId: string, workflowId: string, options?: PollStatusOptions): Promise<VerifyIneResult>;
|
|
419
|
+
/**
|
|
420
|
+
* Ejecuta el flujo completo de validación de INE.
|
|
421
|
+
*
|
|
422
|
+
* @param input Parámetros de validación y callbacks.
|
|
423
|
+
* @returns `VerifyIneResult` con el resultado inicial o definitivo según `awaitFinalStatus`.
|
|
424
|
+
*/
|
|
425
|
+
verifyIne(input: VerifyIneInput): Promise<VerifyIneResult>;
|
|
426
|
+
/**
|
|
427
|
+
* Construye la URL de redirección de retorno para el flujo Hosted Webflow.
|
|
428
|
+
*
|
|
429
|
+
* Si el cliente está configurado con un `redirectProxyUrl` y `useProxy` es `true`,
|
|
430
|
+
* la URL de retorno se codifica en Base64 URL-safe y se adjunta al proxy.
|
|
431
|
+
*
|
|
432
|
+
* @param returnUrl URL de la aplicación a la que Jumio redirigirá tras la verificación.
|
|
433
|
+
* @param useProxy Si es `true` y hay `redirectProxyUrl` configurado, usa el proxy.
|
|
434
|
+
* @returns URL de redirección construida.
|
|
435
|
+
*/
|
|
436
|
+
buildRedirectUrl(returnUrl: string, useProxy?: boolean): string;
|
|
437
|
+
/**
|
|
438
|
+
* Inicia el flujo Hosted Webflow solicitando al backend de DynamiCore la URL
|
|
439
|
+
* de verificación de Jumio (`href`).
|
|
440
|
+
*
|
|
441
|
+
* El usuario debe ser redirigido a esa URL para completar la verificación en la
|
|
442
|
+
* página oficial de Jumio. Al terminar, Jumio redirige de vuelta a la aplicación
|
|
443
|
+
* con `accountId` y `workflowExecutionId` como query params.
|
|
444
|
+
*
|
|
445
|
+
* @param input Parámetros del flujo: `clientId`, `successUrl`, `errorUrl`, opciones de proxy y redirección.
|
|
446
|
+
* @returns `StartWebflowResult` con la URL de Jumio (`href`) y datos adicionales.
|
|
447
|
+
*
|
|
448
|
+
* @example
|
|
449
|
+
* ```ts
|
|
450
|
+
* const { href } = await client.startWebflow({
|
|
451
|
+
* clientId: "usr_123",
|
|
452
|
+
* successUrl: "https://app.example.com/verify/success",
|
|
453
|
+
* errorUrl: "https://app.example.com/verify/error",
|
|
454
|
+
* });
|
|
455
|
+
* window.location.href = href;
|
|
456
|
+
* ```
|
|
457
|
+
*/
|
|
458
|
+
startWebflow(input: StartWebflowInput): Promise<StartWebflowResult>;
|
|
459
|
+
/**
|
|
460
|
+
* Extrae los parámetros de seguimiento de Jumio de la URL de retorno.
|
|
461
|
+
*
|
|
462
|
+
* Jumio añade `accountId` y `workflowExecutionId` (o `workflowId`) como query
|
|
463
|
+
* params al redirigir de vuelta a la aplicación tras la verificación.
|
|
464
|
+
*
|
|
465
|
+
* @param source URL completa, `URLSearchParams`, objeto con `search`/`href`, o nada para leer `window.location`.
|
|
466
|
+
* @returns `WebflowReturnParams` con `accountId`, `workflowId`, `rawStatus` y todos los params.
|
|
467
|
+
*
|
|
468
|
+
* @example En React, en el componente de retorno:
|
|
469
|
+
* ```ts
|
|
470
|
+
* const { accountId, workflowId } = client.parseWebflowReturnParams(window.location.href);
|
|
471
|
+
* ```
|
|
472
|
+
*/
|
|
473
|
+
parseWebflowReturnParams(source?: string | URLSearchParams | {
|
|
474
|
+
search?: string;
|
|
475
|
+
href?: string;
|
|
476
|
+
}): WebflowReturnParams;
|
|
477
|
+
/**
|
|
478
|
+
* Consulta una única vez el estado actual de la verificación del flujo Hosted Webflow.
|
|
479
|
+
*
|
|
480
|
+
* @param input Parámetros de consulta: `accountId`, `workflowId`, y `clientId` opcional.
|
|
481
|
+
* @returns `WebflowResult | null` — `null` si la verificación aún está pendiente.
|
|
482
|
+
*/
|
|
483
|
+
getWebflowStatus(input: GetWebflowStatusInput): Promise<WebflowResult | null>;
|
|
484
|
+
/**
|
|
485
|
+
* Sondea periódicamente el estado de verificación de un flujo Hosted Webflow de Jumio.
|
|
486
|
+
*
|
|
487
|
+
* Continúa consultando hasta obtener un resultado definitivo o agotar los intentos.
|
|
488
|
+
*
|
|
489
|
+
* @param params `accountId`, `workflowId` y `clientId` opcional.
|
|
490
|
+
* @param options Opciones de sondeo (`maxAttempts`, `pollingIntervalMs`, `signal`, `onAttempt`).
|
|
491
|
+
* @returns `WebflowResult` con el resultado definitivo.
|
|
492
|
+
*
|
|
493
|
+
* @example
|
|
494
|
+
* ```ts
|
|
495
|
+
* // En el componente de retorno, tras leer los params de la URL:
|
|
496
|
+
* const result = await client.pollWebflowStatus({ accountId, workflowId, clientId });
|
|
497
|
+
* if (result.valid) {
|
|
498
|
+
* console.log("Verificación aprobada:", result.extraction);
|
|
499
|
+
* } else {
|
|
500
|
+
* console.warn("Rechazado:", result.errorMessage);
|
|
501
|
+
* }
|
|
502
|
+
* ```
|
|
503
|
+
*/
|
|
504
|
+
pollWebflowStatus(params: {
|
|
505
|
+
accountId: string;
|
|
506
|
+
workflowId: string;
|
|
507
|
+
clientId?: string;
|
|
508
|
+
}, options?: PollWebflowOptions): Promise<WebflowResult>;
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Fábrica para crear una nueva instancia de `JumioClient`.
|
|
512
|
+
*/
|
|
513
|
+
declare function createJumioClient(config?: JumioClientConfig): JumioClient;
|
|
514
|
+
|
|
515
|
+
export { type AuthTokenProvider as A, type GetWebflowStatusInput as G, type ImageSource as I, JumioClient as J, type PollStatusOptions as P, type S3SignerFunction as S, type VerifyIneInput as V, type WebflowResult as W, type JumioClientConfig as a, type JumioIneStartData as b, type JumioProgressCallback as c, type JumioStatusErrorCallback as d, type JumioStatusResolvedCallback as e, type JumioVerificationData as f, type JumioVerificationPayload as g, type JumioWorkflowStatus as h, type PollWebflowOptions as i, type StartWebflowInput as j, type StartWebflowResult as k, type VerifyIneResult as l, type WebflowReturnParams as m, createJumioClient as n };
|
package/dist/core/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as JumioVerificationData, I as ImageSource, S as S3SignerFunction, a as JumioClientConfig, P as PollStatusOptions,
|
|
2
|
-
export { A as AuthTokenProvider, J as JumioClient, b as JumioIneStartData, c as JumioProgressCallback, d as JumioStatusErrorCallback, e as JumioStatusResolvedCallback, g as JumioVerificationPayload, h as JumioWorkflowStatus, V as VerifyIneInput,
|
|
1
|
+
import { f as JumioVerificationData, I as ImageSource, S as S3SignerFunction, a as JumioClientConfig, P as PollStatusOptions, l as VerifyIneResult, m as WebflowReturnParams, i as PollWebflowOptions, W as WebflowResult, j as StartWebflowInput, k as StartWebflowResult } from '../client-BwEiGMPy.mjs';
|
|
2
|
+
export { A as AuthTokenProvider, G as GetWebflowStatusInput, J as JumioClient, b as JumioIneStartData, c as JumioProgressCallback, d as JumioStatusErrorCallback, e as JumioStatusResolvedCallback, g as JumioVerificationPayload, h as JumioWorkflowStatus, V as VerifyIneInput, n as createJumioClient } from '../client-BwEiGMPy.mjs';
|
|
3
3
|
import 'axios';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -81,7 +81,8 @@ declare function toLowerText(value: unknown): string;
|
|
|
81
81
|
*/
|
|
82
82
|
declare function toUpperText(value: unknown): string;
|
|
83
83
|
/**
|
|
84
|
-
* Desempaqueta el envoltorio estándar `{ data: ... }` si
|
|
84
|
+
* Desempaqueta el envoltorio estándar `{ data: ... }` o `{ values: ... }` si están presentes en la respuesta.
|
|
85
|
+
* Soporta ambas formas de envelope usadas por los distintos endpoints de DynamiCore/Jumio.
|
|
85
86
|
*/
|
|
86
87
|
declare function extractEnvelopeData<T>(responseData: unknown): T;
|
|
87
88
|
/**
|
|
@@ -115,6 +116,18 @@ declare function isPassedJumioDecision(decision: unknown): boolean;
|
|
|
115
116
|
* 3. Fallback conservador basado en el estado del workflow.
|
|
116
117
|
*/
|
|
117
118
|
declare function resolveVerificationValidity(data: Pick<JumioVerificationData, "valid" | "decision">, fallbackStatus: unknown): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Codifica una URL en Base64 URL-safe (sin `+`, `/` ni `=`).
|
|
121
|
+
*
|
|
122
|
+
* Compatible con:
|
|
123
|
+
* - **Node.js ≥ 18**: Usa `Buffer.from(url).toString("base64")`.
|
|
124
|
+
* - **Navegadores modernos**: Usa `TextEncoder` + `btoa`.
|
|
125
|
+
* - **Navegadores legacy**: Usa `btoa` directamente.
|
|
126
|
+
*
|
|
127
|
+
* @param url La URL a codificar.
|
|
128
|
+
* @returns La cadena codificada en Base64 URL-safe, o `null` si ocurre un error.
|
|
129
|
+
*/
|
|
130
|
+
declare function encodeUrlToBase64UrlSafe(url: string): string | null;
|
|
118
131
|
|
|
119
132
|
interface RetryOptions {
|
|
120
133
|
maxRetries?: number;
|
|
@@ -188,10 +201,12 @@ declare class JumioHttpClient {
|
|
|
188
201
|
}): Promise<T>;
|
|
189
202
|
/**
|
|
190
203
|
* Ejecuta una petición GET para consultar el estado actual de una verificación de INE.
|
|
204
|
+
* Soporta un `clientId` opcional requerido por algunos endpoints de DynamiCore (p. ej. Hosted Webflow).
|
|
191
205
|
*/
|
|
192
206
|
getVerificationStatus<T>(accountId: string, workflowId: string, options?: {
|
|
193
207
|
signal?: AbortSignal;
|
|
194
208
|
timeout?: number;
|
|
209
|
+
clientId?: string;
|
|
195
210
|
}): Promise<T>;
|
|
196
211
|
getConfig(): Readonly<JumioClientConfig>;
|
|
197
212
|
}
|
|
@@ -201,4 +216,79 @@ declare class JumioHttpClient {
|
|
|
201
216
|
*/
|
|
202
217
|
declare function pollJumioStatus(http: JumioHttpClient, accountId: string, workflowId: string, options?: PollStatusOptions): Promise<VerifyIneResult>;
|
|
203
218
|
|
|
204
|
-
|
|
219
|
+
/**
|
|
220
|
+
* Construye la URL de redirección para el flujo Hosted Webflow.
|
|
221
|
+
*
|
|
222
|
+
* Si se provee un `proxyUrl`, la URL de retorno se codifica en Base64 URL-safe y
|
|
223
|
+
* se adjunta al proxy. Esto es util cuando la gateway de Jumio o el backend requiere
|
|
224
|
+
* un intermediario para manejar la redireccion.
|
|
225
|
+
*
|
|
226
|
+
* Si no se provee `proxyUrl`, la URL de retorno se usa directamente tal cual.
|
|
227
|
+
*
|
|
228
|
+
* @param returnUrl La URL de la aplicacion a la que Jumio redirigira al usuario.
|
|
229
|
+
* @param proxyUrl URL base del proxy de redireccion (opcional).
|
|
230
|
+
* @returns La URL final construida.
|
|
231
|
+
*/
|
|
232
|
+
declare function buildRedirectUrl(returnUrl: string, proxyUrl?: string): string;
|
|
233
|
+
/**
|
|
234
|
+
* Extrae los parametros de seguimiento de Jumio de la URL de retorno.
|
|
235
|
+
*
|
|
236
|
+
* Jumio redirige al usuario de vuelta a la aplicacion anadiendo `accountId` y
|
|
237
|
+
* `workflowExecutionId` (o `workflowId`) como query params. Este helper los
|
|
238
|
+
* extrae correctamente, manejando:
|
|
239
|
+
*
|
|
240
|
+
* - Parametros directos: `?accountId=...&workflowExecutionId=...`
|
|
241
|
+
* - Parametros anidados dentro de `?status=...?workflowExecutionId=...`
|
|
242
|
+
* - Alias `workflowId` ademas de `workflowExecutionId`
|
|
243
|
+
*
|
|
244
|
+
* @param source URL completa, `URLSearchParams`, o un objeto similar a `window.location`.
|
|
245
|
+
* Si se omite, usa `window.location.search` (solo en navegador).
|
|
246
|
+
* @returns `WebflowReturnParams` con los parametros extraidos.
|
|
247
|
+
*/
|
|
248
|
+
declare function parseWebflowReturnParams(source?: string | URLSearchParams | {
|
|
249
|
+
search?: string;
|
|
250
|
+
href?: string;
|
|
251
|
+
}): WebflowReturnParams;
|
|
252
|
+
/**
|
|
253
|
+
* Evalua los datos de respuesta del backend para determinar si la verificacion
|
|
254
|
+
* del flujo Hosted Webflow fue exitosa.
|
|
255
|
+
*
|
|
256
|
+
* Logica de decision (por prioridad):
|
|
257
|
+
* 1. `valid: true` explicito → aprobado.
|
|
258
|
+
* 2. `valid: false` explicito → rechazado.
|
|
259
|
+
* 3. `decision.type === "REJECTED"` → rechazado.
|
|
260
|
+
* 4. Extraccion con datos + (`decision.type === "PASSED"` o `"WARNING"`) → aprobado.
|
|
261
|
+
* 5. Sin datos de extraccion → pendiente (retorna null).
|
|
262
|
+
*
|
|
263
|
+
* @returns `WebflowResult | null` -- null indica que la verificacion aun esta pendiente.
|
|
264
|
+
*/
|
|
265
|
+
declare function resolveWebflowResult(rawData: unknown, accountId: string, workflowId: string): WebflowResult | null;
|
|
266
|
+
/**
|
|
267
|
+
* Sondea periodicamente el estado de verificacion de un flujo Hosted Webflow de Jumio.
|
|
268
|
+
*
|
|
269
|
+
* Continua consultando hasta:
|
|
270
|
+
* - Obtener un resultado definitivo (aprobado, rechazado o `valid` explicito).
|
|
271
|
+
* - Agotar el numero maximo de intentos (lanza `JumioPollingTimeoutError`).
|
|
272
|
+
* - Recibir una senal de cancelacion (lanza `JumioAbortError`).
|
|
273
|
+
*
|
|
274
|
+
* @param http Instancia del cliente HTTP de Jumio.
|
|
275
|
+
* @param params Parametros de la verificacion.
|
|
276
|
+
* @param options Opciones de configuracion del sondeo.
|
|
277
|
+
* @returns `WebflowResult` con el resultado definitivo.
|
|
278
|
+
*/
|
|
279
|
+
declare function pollWebflowStatus(http: JumioHttpClient, params: {
|
|
280
|
+
accountId: string;
|
|
281
|
+
workflowId: string;
|
|
282
|
+
clientId?: string;
|
|
283
|
+
}, options?: PollWebflowOptions): Promise<WebflowResult>;
|
|
284
|
+
/**
|
|
285
|
+
* Inicia el flujo Hosted Webflow solicitando al backend la URL de verificacion de Jumio.
|
|
286
|
+
*
|
|
287
|
+
* @param http Instancia del cliente HTTP de Jumio.
|
|
288
|
+
* @param config Configuracion del cliente (para leer `redirectProxyUrl`).
|
|
289
|
+
* @param input Parametros de inicio del flujo.
|
|
290
|
+
* @returns `StartWebflowResult` con el `href` de Jumio y datos adicionales.
|
|
291
|
+
*/
|
|
292
|
+
declare function startWebflowSession(http: JumioHttpClient, config: JumioClientConfig, input: StartWebflowInput): Promise<StartWebflowResult>;
|
|
293
|
+
|
|
294
|
+
export { APPROVED_JUMIO_STATUSES, FINAL_JUMIO_STATUSES, ImageSource, JumioAbortError, JumioClientConfig, JumioError, JumioHttpClient, JumioImageProcessingError, JumioNetworkError, JumioPollingTimeoutError, JumioTimeoutError, JumioValidationError, JumioVerificationData, PollStatusOptions, PollWebflowOptions, type RetryOptions, S3SignerFunction, StartWebflowInput, StartWebflowResult, VerifyIneResult, WebflowResult, WebflowReturnParams, arrayBufferToBase64, blobToBase64, buildRedirectUrl, delay, encodeUrlToBase64UrlSafe, extractEnvelopeData, extractJumioMessage, extractNestedData, fetchUrlAsBase64, isApprovedJumioStatus, isBase64String, isFinalJumioStatus, isJumioError, isPassedJumioDecision, normalizeSignedUrl, parseWebflowReturnParams, pollJumioStatus, pollWebflowStatus, resolveImageSourceToBase64, resolveVerificationValidity, resolveWebflowResult, shouldRetryJumio, startWebflowSession, stripDataUrlPrefix, toLowerText, toUpperText, withRetry };
|