@neofaceid/web-sdk 1.29.0 → 1.31.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 CHANGED
@@ -47,6 +47,15 @@ export declare interface AuthorizationResult {
47
47
  message?: string;
48
48
  }
49
49
 
50
+ /**
51
+ * NeoFaceSDK.authorize — autoriza uma operação por biometria, orquestrando
52
+ * consent + captura + desafio de vivacidade (via runLivenessChallenge, NEO-408).
53
+ *
54
+ * O servidor sorteia a sequência de gestos, valida cada frame enviado e decide
55
+ * o resultado. O SDK apenas exibe e coleta ("client collects, server decides").
56
+ */
57
+ export declare function authorize(options: AuthorizeOptions): Promise<void>;
58
+
50
59
  /**
51
60
  * NEO-108: Authorization operation with multi-photo capture and gesture detection
52
61
  *
@@ -64,6 +73,26 @@ export declare interface AuthorizationResult {
64
73
  */
65
74
  export declare const authorizeOperation: (applicationToken: string, cpf: string, options?: AuthorizationOptions) => Promise<AuthorizationResult>;
66
75
 
76
+ export declare interface AuthorizeOptions {
77
+ applicationToken: string;
78
+ /** Titular sendo autorizado (CPF, e-mail ou id opaco). */
79
+ subject: string;
80
+ /** Nome do integrador (fallback: `init({ appName })`). */
81
+ appName?: string;
82
+ /**
83
+ * Número máximo de desafios (0-3). O servidor decide a sequência (NEO-408
84
+ * runLivenessChallenge) — este campo é apenas um teto sugerido ao backend.
85
+ */
86
+ challenges?: 0 | 1 | 2 | 3;
87
+ /** Valor monetário exibido no header. Ex.: 1250 = "R$ 1.250,00". */
88
+ amount?: number;
89
+ onChallengeStart?: (gesture: ChallengeGesture, index: number, total: number) => void;
90
+ onChallengeComplete?: (gesture: ChallengeGesture, index: number, total: number) => void;
91
+ onSuccess?: (result: LivenessChallengeResult) => void;
92
+ onError?: (error: NeoFaceError) => void;
93
+ onCancel?: () => void;
94
+ }
95
+
67
96
  export declare class BiometricCaptureModal {
68
97
  private modal;
69
98
  private video;
@@ -90,9 +119,11 @@ export declare class BiometricCaptureModal {
90
119
  */
91
120
  private initializeCamera;
92
121
  /**
93
- * Inicia a contagem regressiva
122
+ * NEO-413 · US14.6 (item 18) — a contagem "3, 2, 1" foi removida.
123
+ * Agora habilita direto o botão "Capturar" assim que a câmera fica pronta.
124
+ * Vivacidade fica com o desafio `runLivenessChallenge` (NEO-408), servidor decide.
94
125
  */
95
- private startCountdown;
126
+ private enableCaptureButton;
96
127
  /**
97
128
  * Captura a imagem da câmera
98
129
  */
@@ -503,12 +534,6 @@ export declare interface EmailPasswordOptions {
503
534
  subtitle?: string;
504
535
  }
505
536
 
506
- /**
507
- * SDK Global Configuration
508
- *
509
- * Este módulo gerencia a configuração global do SDK, permitindo
510
- * inicialização com detecção automática de ambiente ou override manual.
511
- */
512
537
  export declare type Environment = 'development' | 'sandbox' | 'production';
513
538
 
514
539
  /**
@@ -596,11 +621,17 @@ export declare interface GestureResponse {
596
621
  images: string[];
597
622
  }
598
623
 
624
+ /** Retorna a cor de acento configurada, se houver (antes do validador de contraste). */
625
+ export declare function getAccent(): string | null;
626
+
599
627
  /**
600
628
  * Retorna o token de aplicação configurado, se houver.
601
629
  */
602
630
  export declare function getApplicationToken(): string | null;
603
631
 
632
+ /** Retorna o nome do integrador configurado, se houver. */
633
+ export declare function getAppName(): string | null;
634
+
604
635
  /**
605
636
  * Retorna a URL base configurada para a API.
606
637
  * Se o SDK não foi inicializado, retorna o fallback para sandbox.
@@ -619,6 +650,22 @@ export declare function getConfig(): Readonly<SDKConfig>;
619
650
  */
620
651
  export declare function getEnvironment(): Environment | 'custom';
621
652
 
653
+ /** Retorna o locale configurado (padrão 'pt-BR'). */
654
+ export declare function getLocale(): string;
655
+
656
+ /** Retorna o raio base configurado (padrão 16). */
657
+ export declare function getRadius(): SDKRadius;
658
+
659
+ /**
660
+ * Retorna o modo de tema resolvido para a superfície de UI (light | dark).
661
+ * Considera 'auto' + `prefers-color-scheme`. Útil para consumidores que
662
+ * precisam alinhar visualmente algum elemento próprio ao SDK.
663
+ */
664
+ export declare function getResolvedThemeMode(): ThemeMode;
665
+
666
+ /** Retorna o modo de tema configurado (padrão 'light'). */
667
+ export declare function getTheme(): SDKTheme;
668
+
622
669
  /**
623
670
  * Identifies a person from an image and returns name and age
624
671
  * @param image The image blob to process
@@ -1286,6 +1333,15 @@ export declare function requestPasswordReset(email: string, applicationToken: st
1286
1333
 
1287
1334
  export declare function resetCaptureSession(): void;
1288
1335
 
1336
+ declare interface ResolvedTheme {
1337
+ mode: ThemeMode;
1338
+ tokens: ThemeTokens;
1339
+ radius: 8 | 16 | 24;
1340
+ accent: string;
1341
+ /** True quando o `accent` do integrador foi rejeitado por contraste. */
1342
+ accentFellBack: boolean;
1343
+ }
1344
+
1289
1345
  /**
1290
1346
  * Orquestra o fluxo completo:
1291
1347
  * 1. Abre `capture/session`
@@ -1319,6 +1375,12 @@ declare interface SDKConfig {
1319
1375
  applicationToken: string | null;
1320
1376
  environment: Environment | 'custom';
1321
1377
  initialized: boolean;
1378
+ appName: string | null;
1379
+ accent: string | null;
1380
+ radius: SDKRadius;
1381
+ theme: SDKTheme;
1382
+ locale: string;
1383
+ resolvedTheme: ResolvedTheme | null;
1322
1384
  }
1323
1385
 
1324
1386
  /**
@@ -1340,8 +1402,42 @@ export declare interface SDKInitOptions {
1340
1402
  * Obtido através do painel administrativo do NeoFaceID.
1341
1403
  */
1342
1404
  applicationToken?: string;
1405
+ /**
1406
+ * Nome do integrador — mostrado no topo dos modais do SDK ("Banco Exemplo" >
1407
+ * NeoFaceID). Obrigatório na prática: omitir gera `console.warn` e cai para o
1408
+ * fallback "sua aplicação".
1409
+ */
1410
+ appName?: string;
1411
+ /**
1412
+ * Cor de acento do integrador. Pinta APENAS o preenchimento do botão primário.
1413
+ * Nunca o anel de captura, o arco de desafio, os colchetes Focus Frame, os
1414
+ * glifos ou o selo de resultado — o visor precisa ser idêntico em toda parte
1415
+ * para que uma tela falsa não engane.
1416
+ *
1417
+ * Validado em runtime: contraste vs `#FFFFFF` < 4.5 = fallback para `#0059C4`
1418
+ * + `console.warn`. É segurança, não gosto.
1419
+ */
1420
+ accent?: string;
1421
+ /**
1422
+ * Raio base dos containers. Restrito aos três raios do sistema: 8, 16 ou 24.
1423
+ * Padrão 16. Valor fora dos três permitidos = `console.warn` + fallback 16.
1424
+ */
1425
+ radius?: SDKRadius;
1426
+ /**
1427
+ * Modo do tema para a superfície dos modais. Padrão `light`. `auto` respeita
1428
+ * `prefers-color-scheme`. O visor de captura é sempre escuro nos dois modos.
1429
+ */
1430
+ theme?: SDKTheme;
1431
+ /**
1432
+ * Locale da UI. Padrão `pt-BR`.
1433
+ */
1434
+ locale?: string;
1343
1435
  }
1344
1436
 
1437
+ export declare type SDKRadius = 8 | 16 | 24;
1438
+
1439
+ export declare type SDKTheme = 'light' | 'dark' | 'auto';
1440
+
1345
1441
  /**
1346
1442
  * Session data interface for external integrations
1347
1443
  */
@@ -1476,6 +1572,24 @@ export declare interface SubmitLivenessChallengeParams {
1476
1572
  gestures: GestureResponse[];
1477
1573
  }
1478
1574
 
1575
+ declare type ThemeMode = 'light' | 'dark';
1576
+
1577
+ /** Tokens semânticos por tema — o que os componentes consomem. */
1578
+ declare interface ThemeTokens {
1579
+ ground: string;
1580
+ surface: string;
1581
+ surfaceMuted: string;
1582
+ line: string;
1583
+ text: string;
1584
+ textMuted: string;
1585
+ textSubtle: string;
1586
+ action: string;
1587
+ actionText: string;
1588
+ accent: string;
1589
+ overlay: string;
1590
+ focusRing: string;
1591
+ }
1592
+
1479
1593
  /**
1480
1594
  * Result of user existence check
1481
1595
  */
@@ -1512,7 +1626,7 @@ export declare const validateToken: (applicationToken: string) => Promise<boolea
1512
1626
  * MINOR: Incrementado quando adicionamos funcionalidades mantendo compatibilidade
1513
1627
  * PATCH: Incrementado quando corrigimos bugs mantendo compatibilidade
1514
1628
  */
1515
- export declare const VERSION = "1.29.0";
1629
+ export declare const VERSION = "1.31.0";
1516
1630
 
1517
1631
  /**
1518
1632
  * Executa `fn(sessionId)`. Se o servidor devolver 410 (sessão consumida/expirada),