@neofaceid/web-sdk 1.26.1 → 1.28.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/dist/index.d.ts +165 -19
- package/dist/neoface-id-sdk.es.js +551 -130
- package/dist/neoface-id-sdk.umd.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ export declare interface AuthorizationOptions {
|
|
|
33
33
|
onProgress?: (step: number, totalSteps: number, instruction: string) => void;
|
|
34
34
|
onPhotoTaken?: (photoNumber: number, blob: Blob) => void;
|
|
35
35
|
captureDelay?: number;
|
|
36
|
+
/** Nome do integrador exibido no topo do modal de consentimento (US14.2). */
|
|
37
|
+
appName?: string;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
export declare interface AuthorizationResult {
|
|
@@ -141,6 +143,11 @@ export declare function biometricLogin(applicationToken: string, mode?: 'face' |
|
|
|
141
143
|
|
|
142
144
|
export declare interface BiometricLoginOptions {
|
|
143
145
|
applicationToken: string;
|
|
146
|
+
/**
|
|
147
|
+
* Nome do integrador exibido no topo do modal de consentimento (US14.2).
|
|
148
|
+
* Ausência gera console.warn e cai para o fallback "sua aplicação".
|
|
149
|
+
*/
|
|
150
|
+
appName?: string;
|
|
144
151
|
onSuccess: (result: BiometricLoginResult) => void;
|
|
145
152
|
onError: (error: NeoFaceError) => void;
|
|
146
153
|
onCancel?: () => void;
|
|
@@ -258,6 +265,19 @@ export declare interface CaptureFaceFramesOptions {
|
|
|
258
265
|
livenessCheck: boolean;
|
|
259
266
|
}
|
|
260
267
|
|
|
268
|
+
export declare type CapturePurpose = 'login' | 'onboarding' | 'authorization' | 'identification' | 'liveness';
|
|
269
|
+
|
|
270
|
+
export declare interface CaptureSession {
|
|
271
|
+
session_id: string;
|
|
272
|
+
expires_at: string;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
export declare interface ChallengeGesture {
|
|
276
|
+
index: number;
|
|
277
|
+
gesture_key: GestureKey | string;
|
|
278
|
+
instruction_i18n?: Record<string, string>;
|
|
279
|
+
}
|
|
280
|
+
|
|
261
281
|
/**
|
|
262
282
|
* Check if a user exists by email or CPF
|
|
263
283
|
* @param params Object with email or cpf to check (only one at a time)
|
|
@@ -337,16 +357,15 @@ export declare function confirmPasswordReset(token: string, new_password: string
|
|
|
337
357
|
message: string;
|
|
338
358
|
}>;
|
|
339
359
|
|
|
360
|
+
declare type ConsentFlow = 'verification' | 'registration';
|
|
361
|
+
|
|
340
362
|
export declare interface ConsentInfo {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
privacyPolicyUrl
|
|
344
|
-
retentionDays
|
|
363
|
+
appName?: string;
|
|
364
|
+
flow?: ConsentFlow;
|
|
365
|
+
privacyPolicyUrl?: string;
|
|
366
|
+
retentionDays?: number;
|
|
345
367
|
}
|
|
346
368
|
|
|
347
|
-
/**
|
|
348
|
-
* Gerencia o ciclo de vida (montagem/desmontagem) do modal de consentimento.
|
|
349
|
-
*/
|
|
350
369
|
export declare class ConsentModal {
|
|
351
370
|
private container;
|
|
352
371
|
private root;
|
|
@@ -354,21 +373,18 @@ export declare class ConsentModal {
|
|
|
354
373
|
close(): void;
|
|
355
374
|
}
|
|
356
375
|
|
|
357
|
-
/**
|
|
358
|
-
* Props do modal de consentimento LGPD exibido antes de qualquer captura de câmera.
|
|
359
|
-
*/
|
|
360
376
|
export declare interface ConsentModalProps {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
privacyPolicyUrl
|
|
364
|
-
retentionDays
|
|
377
|
+
appName: string;
|
|
378
|
+
flow: ConsentFlow;
|
|
379
|
+
privacyPolicyUrl?: string;
|
|
380
|
+
retentionDays?: number;
|
|
365
381
|
onAccept: () => void;
|
|
366
382
|
onDecline: () => void;
|
|
367
383
|
}
|
|
368
384
|
|
|
369
385
|
/**
|
|
370
|
-
*
|
|
371
|
-
*
|
|
386
|
+
* Compatibilidade com callers antigos que passavam `{ purpose, legalBasis }`.
|
|
387
|
+
* Deprecated — remover quando US14.4 unificar tokens.
|
|
372
388
|
*/
|
|
373
389
|
export declare const DEFAULT_CONSENT_INFO: ConsentInfo;
|
|
374
390
|
|
|
@@ -431,6 +447,9 @@ export declare interface DocumentCaptureOptions {
|
|
|
431
447
|
useBackCamera?: boolean;
|
|
432
448
|
onCancel?: () => void;
|
|
433
449
|
preSelectedDocument?: DocumentType_2;
|
|
450
|
+
/** Nome do integrador exibido no topo do modal de consentimento (US14.2). */
|
|
451
|
+
appName?: string;
|
|
452
|
+
/* Excluded from this release type: skipConsent */
|
|
434
453
|
}
|
|
435
454
|
|
|
436
455
|
export declare interface DocumentCaptureResult {
|
|
@@ -557,6 +576,14 @@ export declare class ForgotPasswordModal {
|
|
|
557
576
|
private addStyles;
|
|
558
577
|
}
|
|
559
578
|
|
|
579
|
+
export declare type GestureKey = 'turn_left' | 'turn_right' | 'turn_up' | 'turn_down' | 'blink' | 'smile' | 'open_mouth';
|
|
580
|
+
|
|
581
|
+
export declare interface GestureResponse {
|
|
582
|
+
gesture_key: string;
|
|
583
|
+
/** Frames capturados como data URL ou base64. SDK só empacota — servidor valida. */
|
|
584
|
+
images: string[];
|
|
585
|
+
}
|
|
586
|
+
|
|
560
587
|
/**
|
|
561
588
|
* Retorna o token de aplicação configurado, se houver.
|
|
562
589
|
*/
|
|
@@ -568,6 +595,8 @@ export declare function getApplicationToken(): string | null;
|
|
|
568
595
|
*/
|
|
569
596
|
export declare function getBaseUrl(): string;
|
|
570
597
|
|
|
598
|
+
export declare function getCachedCaptureSession(): CaptureSession | null;
|
|
599
|
+
|
|
571
600
|
/**
|
|
572
601
|
* Retorna toda a configuração atual (para debug).
|
|
573
602
|
*/
|
|
@@ -656,6 +685,19 @@ export declare function isAdvancedDetectionAvailable(): boolean;
|
|
|
656
685
|
*/
|
|
657
686
|
export declare function isInitialized(): boolean;
|
|
658
687
|
|
|
688
|
+
export declare interface LivenessChallenge {
|
|
689
|
+
challenge_id: string;
|
|
690
|
+
gestures: ChallengeGesture[];
|
|
691
|
+
expires_at?: string;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
export declare interface LivenessChallengeResult {
|
|
695
|
+
success: boolean;
|
|
696
|
+
liveness_passed?: boolean;
|
|
697
|
+
score?: number;
|
|
698
|
+
raw: unknown;
|
|
699
|
+
}
|
|
700
|
+
|
|
659
701
|
/**
|
|
660
702
|
* Options for login recognition
|
|
661
703
|
*/
|
|
@@ -942,6 +984,19 @@ export declare interface OnboardingPersonData {
|
|
|
942
984
|
email?: string;
|
|
943
985
|
}
|
|
944
986
|
|
|
987
|
+
/**
|
|
988
|
+
* Abre uma sessão de captura no servidor. Server-decides: o `session_id`
|
|
989
|
+
* vem do backend, nunca é inventado no cliente.
|
|
990
|
+
*
|
|
991
|
+
* @throws NeoFaceError em 4xx/5xx ou payload inválido.
|
|
992
|
+
*/
|
|
993
|
+
export declare function openCaptureSession({ applicationToken, purpose, }: OpenCaptureSessionParams): Promise<CaptureSession>;
|
|
994
|
+
|
|
995
|
+
export declare interface OpenCaptureSessionParams {
|
|
996
|
+
applicationToken: string;
|
|
997
|
+
purpose: CapturePurpose;
|
|
998
|
+
}
|
|
999
|
+
|
|
945
1000
|
export declare type OverlayStatus = 'preparing' | 'detecting' | 'waiting-for-face' | 'capturing' | 'verifying' | 'success' | 'error';
|
|
946
1001
|
|
|
947
1002
|
/**
|
|
@@ -1174,11 +1229,39 @@ export declare const registerPersonWithoutFace: (personData: {
|
|
|
1174
1229
|
*/
|
|
1175
1230
|
export declare const RELEASE_DATE = "2026-09-01";
|
|
1176
1231
|
|
|
1232
|
+
declare interface RequestChallengeWithSessionParams {
|
|
1233
|
+
applicationToken: string;
|
|
1234
|
+
purpose: CapturePurpose;
|
|
1235
|
+
sessionId?: string;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1177
1238
|
/**
|
|
1178
1239
|
* Exibe o modal de consentimento e resolve `true` se o titular aceitou,
|
|
1179
1240
|
* `false` se recusou. Deve ser chamado antes de qualquer `getUserMedia()`.
|
|
1241
|
+
*
|
|
1242
|
+
* `appName` é obrigatório na prática — omitir gera console.warn e fallback.
|
|
1243
|
+
* `flow` decide a copy da terceira linha: 'verification' (padrão) descarta a
|
|
1244
|
+
* imagem; 'registration' informa que o vetor biométrico é armazenado.
|
|
1180
1245
|
*/
|
|
1181
|
-
export declare function requestConsent(info?:
|
|
1246
|
+
export declare function requestConsent(info?: ConsentInfo): Promise<boolean>;
|
|
1247
|
+
|
|
1248
|
+
/**
|
|
1249
|
+
* Pede ao servidor a sequência de gestos do desafio de liveness.
|
|
1250
|
+
* O SDK apenas exibe e coleta — validação de gesto/yaw/pitch é responsabilidade
|
|
1251
|
+
* exclusiva do servidor (regra "client collects, server decides").
|
|
1252
|
+
*/
|
|
1253
|
+
export declare function requestLivenessChallenge({ sessionId, applicationToken, }: RequestLivenessChallengeParams): Promise<LivenessChallenge>;
|
|
1254
|
+
|
|
1255
|
+
export declare interface RequestLivenessChallengeParams {
|
|
1256
|
+
sessionId: string;
|
|
1257
|
+
applicationToken: string;
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
/**
|
|
1261
|
+
* Garante uma sessão válida e retorna o desafio.
|
|
1262
|
+
* Em 410 (sessão expirada), reabre 1x e reenvia. Segunda falha propaga.
|
|
1263
|
+
*/
|
|
1264
|
+
export declare function requestLivenessChallengeWithSession({ applicationToken, purpose, sessionId, }: RequestChallengeWithSessionParams): Promise<LivenessChallenge>;
|
|
1182
1265
|
|
|
1183
1266
|
/**
|
|
1184
1267
|
* Request a password reset for a user account
|
|
@@ -1189,6 +1272,33 @@ export declare function requestPasswordReset(email: string, applicationToken: st
|
|
|
1189
1272
|
message: string;
|
|
1190
1273
|
}>;
|
|
1191
1274
|
|
|
1275
|
+
export declare function resetCaptureSession(): void;
|
|
1276
|
+
|
|
1277
|
+
/**
|
|
1278
|
+
* Orquestra o fluxo completo:
|
|
1279
|
+
* 1. Abre `capture/session`
|
|
1280
|
+
* 2. Pede `liveness/challenge` (sequência sorteada pelo servidor)
|
|
1281
|
+
* 3. Delega a coleta de frames ao consumidor gesto a gesto
|
|
1282
|
+
* 4. Submete a resposta para o servidor validar
|
|
1283
|
+
*
|
|
1284
|
+
* Retry: em 410 no submit, reabre a sessão + refaz o desafio + reenvia UMA vez.
|
|
1285
|
+
* Segunda falha propaga.
|
|
1286
|
+
*/
|
|
1287
|
+
export declare function runLivenessChallenge({ applicationToken, purpose, collectFramesForGesture, retryOnSessionExpired, }: RunLivenessChallengeParams): Promise<LivenessChallengeResult>;
|
|
1288
|
+
|
|
1289
|
+
export declare interface RunLivenessChallengeParams {
|
|
1290
|
+
applicationToken: string;
|
|
1291
|
+
purpose: CapturePurpose;
|
|
1292
|
+
/**
|
|
1293
|
+
* Callback fornecido pelo consumidor: para cada gesto na sequência sorteada
|
|
1294
|
+
* pelo servidor, retorna os frames coletados. SDK NÃO decide se o gesto foi
|
|
1295
|
+
* cumprido — só coleta e envia; validação é 100% servidor.
|
|
1296
|
+
*/
|
|
1297
|
+
collectFramesForGesture: (gesture: ChallengeGesture, index: number, total: number) => Promise<string[]>;
|
|
1298
|
+
/** Se true, quando o servidor devolver 410 no submit, reabre sessão + refaz o desafio 1x. */
|
|
1299
|
+
retryOnSessionExpired?: boolean;
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1192
1302
|
/**
|
|
1193
1303
|
* Configuração interna do SDK
|
|
1194
1304
|
*/
|
|
@@ -1249,7 +1359,9 @@ export declare const simpleIdentification: (documentType: string, documentNumber
|
|
|
1249
1359
|
};
|
|
1250
1360
|
}>;
|
|
1251
1361
|
|
|
1252
|
-
export declare function start(applicationToken: string, callbacks: Callbacks
|
|
1362
|
+
export declare function start(applicationToken: string, callbacks: Callbacks, options?: {
|
|
1363
|
+
appName?: string;
|
|
1364
|
+
}): void;
|
|
1253
1365
|
|
|
1254
1366
|
/**
|
|
1255
1367
|
* Inicia o processo de login com detecção automática do tipo biométrico
|
|
@@ -1271,6 +1383,7 @@ export declare function startBiometricRegistration(personData: {
|
|
|
1271
1383
|
password: string;
|
|
1272
1384
|
}, applicationToken: string, callbacks: BiometricRegistrationCallbacks, options?: {
|
|
1273
1385
|
useRealApi?: boolean;
|
|
1386
|
+
appName?: string;
|
|
1274
1387
|
}): void;
|
|
1275
1388
|
|
|
1276
1389
|
/**
|
|
@@ -1300,6 +1413,8 @@ export declare function startLivenessCapture(applicationToken: string, callbacks
|
|
|
1300
1413
|
onSuccess(photos: Blob[]): void;
|
|
1301
1414
|
onError(code: string, message: string): void;
|
|
1302
1415
|
onCancel?(): void;
|
|
1416
|
+
}, options?: {
|
|
1417
|
+
appName?: string;
|
|
1303
1418
|
}): void;
|
|
1304
1419
|
|
|
1305
1420
|
/**
|
|
@@ -1314,6 +1429,8 @@ export declare interface StartOnboardingOptions {
|
|
|
1314
1429
|
countdown?: number;
|
|
1315
1430
|
title?: string;
|
|
1316
1431
|
subtitle?: string;
|
|
1432
|
+
/** Nome do integrador exibido no topo do modal de consentimento (US14.2). */
|
|
1433
|
+
appName?: string;
|
|
1317
1434
|
onSuccess: (result: {
|
|
1318
1435
|
success: boolean;
|
|
1319
1436
|
message: string;
|
|
@@ -1327,6 +1444,20 @@ export declare interface StartOnboardingOptions {
|
|
|
1327
1444
|
onCancel?: () => void;
|
|
1328
1445
|
}
|
|
1329
1446
|
|
|
1447
|
+
/**
|
|
1448
|
+
* Envia os frames coletados para o servidor validar o desafio de liveness.
|
|
1449
|
+
* Endpoint: `POST /api/v1/auth/liveness/challenge/{challenge_id}/submit/`
|
|
1450
|
+
* O SDK apenas empacota e envia — nenhuma decisão de aprovar/reprovar aqui.
|
|
1451
|
+
*/
|
|
1452
|
+
export declare function submitLivenessChallenge({ challengeId, sessionId, applicationToken, gestures, }: SubmitLivenessChallengeParams): Promise<LivenessChallengeResult>;
|
|
1453
|
+
|
|
1454
|
+
export declare interface SubmitLivenessChallengeParams {
|
|
1455
|
+
challengeId: string;
|
|
1456
|
+
sessionId: string;
|
|
1457
|
+
applicationToken: string;
|
|
1458
|
+
gestures: GestureResponse[];
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1330
1461
|
/**
|
|
1331
1462
|
* Result of user existence check
|
|
1332
1463
|
*/
|
|
@@ -1363,6 +1494,21 @@ export declare const validateToken: (applicationToken: string) => Promise<boolea
|
|
|
1363
1494
|
* MINOR: Incrementado quando adicionamos funcionalidades mantendo compatibilidade
|
|
1364
1495
|
* PATCH: Incrementado quando corrigimos bugs mantendo compatibilidade
|
|
1365
1496
|
*/
|
|
1366
|
-
export declare const VERSION = "1.
|
|
1497
|
+
export declare const VERSION = "1.28.0";
|
|
1498
|
+
|
|
1499
|
+
/**
|
|
1500
|
+
* Executa `fn(sessionId)`. Se o servidor devolver 410 (sessão consumida/expirada),
|
|
1501
|
+
* reabre a sessão automaticamente 1x e reexecuta. Segunda falha propaga.
|
|
1502
|
+
*/
|
|
1503
|
+
export declare function withCaptureSession<T>(params: OpenCaptureSessionParams, fn: (sessionId: string) => Promise<T>): Promise<T>;
|
|
1504
|
+
|
|
1505
|
+
/**
|
|
1506
|
+
* Injeta `session_id` cacheado no payload. Se não houver sessão aberta,
|
|
1507
|
+
* retorna o payload original inalterado — a decisão de exigir sessão
|
|
1508
|
+
* fica no servidor.
|
|
1509
|
+
*/
|
|
1510
|
+
export declare function withSessionId<T extends Record<string, unknown>>(payload: T): T & {
|
|
1511
|
+
session_id?: string;
|
|
1512
|
+
};
|
|
1367
1513
|
|
|
1368
1514
|
export { }
|