alphavalid-sdk 0.0.10 → 0.0.16

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 CHANGED
@@ -16,6 +16,9 @@ npm i alphavalid-sdk
16
16
 
17
17
  O `face-api.js` carrega os pesos do modelo via HTTP. Este pacote leva os arquivos em `models/`, e você deve copiá-los para os assets do seu app.
18
18
 
19
+ > Nota (Ionic/Angular + Vite dev-server): o shard do TinyFaceDetector é distribuído com extensão `.bin`
20
+ > para evitar erros de `vite:import-analysis` em alguns pipelines.
21
+
19
22
  ### Ionic/Angular (recomendado) — cópia automática no `postinstall`
20
23
 
21
24
  No `package.json` do **APP consumidor**, adicione:
@@ -51,8 +54,8 @@ const sdk = new AlphaValid();
51
54
 
52
55
  await sdk.start({
53
56
  container: document.getElementById('cameraContainer')!,
54
- // default: '/assets/alphavalid-models'
55
- // modelsPath: '/assets/alphavalid-models',
57
+ // Angular/Ionic assets:
58
+ modelsPath: '/assets/alphavalid-models',
56
59
  onReady: () => console.log('ready'),
57
60
  onFeedback: (msg) => console.log('feedback:', msg),
58
61
  onError: (err) => console.error('error:', err)
@@ -68,8 +71,39 @@ Para encerrar:
68
71
  await sdk.stop();
69
72
  ```
70
73
 
74
+ ### Liveness / desafios (opcional)
75
+
76
+ Você pode exigir que só seja considerado **válido olhando para frente**, e/ou definir uma sequência de desafios.
77
+
78
+ ```ts
79
+ await sdk.start({
80
+ container: document.getElementById('cameraContainer')!,
81
+ modelsPath: '/assets/alphavalid-models',
82
+ liveness: {
83
+ requireLookForward: true,
84
+ strictness: 0.5,
85
+ challenges: [
86
+ { type: 'lookForward' },
87
+ { type: 'lookLeft' },
88
+ { type: 'lookRight' },
89
+ { type: 'zoomIn' },
90
+ { type: 'zoomOut' },
91
+ { type: 'blink' }
92
+ ]
93
+ },
94
+ onStateChange: (state) => {
95
+ // habilite o botão de capturar quando state.isReadyToCapture === true
96
+ console.log(state);
97
+ }
98
+ });
99
+ ```
100
+
71
101
  ## Observações
72
102
 
73
103
  - Este MVP faz **detecção** (tem 1 rosto? está centralizado? perto/longe?).
74
104
  - Não é reconhecimento facial (comparar com base de rostos).
75
105
 
106
+ Observações sobre liveness:
107
+ - Tudo aqui é **heurístico (MVP)**. Para liveness robusto, o ideal é um pipeline dedicado.
108
+ - O desafio `blink` usa landmarks (modelo `faceLandmark68TinyNet`).
109
+