alphavalid-sdk 0.0.25 → 0.1.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 +73 -107
- package/bin/alphavalid.js +39 -0
- package/dist/__vite-browser-external-C7ivxuo1.mjs +18 -0
- package/dist/alphavalid.es.js +6539 -4893
- package/dist/alphavalid.umd.js +271 -223
- package/dist/core/camera.d.ts.map +1 -1
- package/dist/core/feedback.d.ts +102 -1
- package/dist/core/feedback.d.ts.map +1 -1
- package/dist/index.d.ts +100 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/setupModels-RA6BN3uf.mjs +19 -0
- package/dist/setupModels.d.ts +2 -0
- package/dist/setupModels.d.ts.map +1 -0
- package/dist/types/sdk.d.ts +346 -88
- package/dist/types/sdk.d.ts.map +1 -1
- package/dist/ui/baseStyles.d.ts +2 -0
- package/dist/ui/baseStyles.d.ts.map +1 -0
- package/dist/ui/captureButtonCoxinha.d.ts +13 -0
- package/dist/ui/captureButtonCoxinha.d.ts.map +1 -0
- package/dist/ui/containerStyles.d.ts +1 -0
- package/dist/ui/containerStyles.d.ts.map +1 -0
- package/dist/ui/loader.d.ts +15 -0
- package/dist/ui/loader.d.ts.map +1 -0
- package/dist/ui/overlay.d.ts +186 -1
- package/dist/ui/overlay.d.ts.map +1 -1
- package/dist/ui/overlayCoxinhaMobile.d.ts +10 -0
- package/dist/ui/overlayCoxinhaMobile.d.ts.map +1 -0
- package/dist/ui/userPreviewCoxinha.d.ts +20 -0
- package/dist/ui/userPreviewCoxinha.d.ts.map +1 -0
- package/dist/utils/canvas.d.ts +27 -0
- package/dist/utils/canvas.d.ts.map +1 -0
- package/dist/vision/faceDetector.d.ts.map +1 -1
- package/package.json +9 -2
- package/scripts/copy-models.cjs +17 -62
package/dist/types/sdk.d.ts
CHANGED
|
@@ -1,48 +1,134 @@
|
|
|
1
|
-
export type
|
|
2
|
-
|
|
1
|
+
export type AlphaValidChallengeType = 'lookForward' | 'lookUp' | 'lookDown' | 'lookLeft' | 'lookRight' | 'zoomIn' | 'zoomOut' | 'blink' | 'cheese' | 'openMouth' | 'mouthWidth';
|
|
2
|
+
/** Um passo de desafio (liveness) na sequência configurada. */
|
|
3
3
|
export interface AlphaValidChallengeStep {
|
|
4
|
+
/** Tipo do desafio a ser executado pelo usuário. */
|
|
4
5
|
type: AlphaValidChallengeType;
|
|
5
|
-
/**
|
|
6
|
+
/** Timeout (ms) opcional para este step. Ao estourar, o step é reiniciado/reativado. */
|
|
6
7
|
timeoutMs?: number;
|
|
7
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Opções de validação/liveness.
|
|
11
|
+
*
|
|
12
|
+
* Notas importantes:
|
|
13
|
+
* - Se `challenges` for informado, a sequência é executada exatamente como definida.
|
|
14
|
+
* - O SDK não “injeta” `lookForward` automaticamente entre steps; se quiser, inclua como step explícito.
|
|
15
|
+
* - Alguns desafios requerem landmarks (ex.: `blink`); o SDK solicita landmarks automaticamente quando há um step ativo.
|
|
16
|
+
*/
|
|
8
17
|
export interface AlphaValidLivenessOptions {
|
|
9
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Força look-forward como regra global (para todos os frames).
|
|
20
|
+
* Recomendação: prefira usar `challenges: [{ type: 'lookForward' }]` quando quiser um passo explícito.
|
|
21
|
+
*/
|
|
10
22
|
requireLookForward?: boolean;
|
|
11
|
-
/**
|
|
23
|
+
/** Sequência opcional de desafios. Quando presente, determina o progresso de `state.challenge`. */
|
|
12
24
|
challenges?: AlphaValidChallengeStep[];
|
|
13
|
-
/**
|
|
25
|
+
/** 0..1: controla sensibilidade geral (quando omitido, defaults internos são derivados). */
|
|
14
26
|
strictness?: number;
|
|
27
|
+
/** 0..1. Maior = mais tolerante no lookForward (mais fácil passar). */
|
|
28
|
+
lookForwardTolerance?: number;
|
|
29
|
+
/** Tolerância (normalizada) de centralização para lookForward usando bbox/centerX. */
|
|
30
|
+
lookForwardCenterTol?: number;
|
|
15
31
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* - 0.0: very strict
|
|
19
|
-
* - 1.0: very permissive
|
|
32
|
+
* Tolerância de yaw para lookForward quando `yawProxy` (landmarks) está disponível.
|
|
33
|
+
* Menor = mais estrito. Default é derivado de `strictness`.
|
|
20
34
|
*/
|
|
21
|
-
|
|
35
|
+
lookForwardYawTol?: number;
|
|
22
36
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
37
|
+
* Período de graça (ms) após o rosto desaparecer antes de emitir FACE_NOT_FOUND.
|
|
38
|
+
* Durante essa janela, landmarks no overlay podem ser ocultados para evitar pontos “stale”.
|
|
39
|
+
* Default: 900
|
|
25
40
|
*/
|
|
26
|
-
|
|
41
|
+
faceLostGraceMs?: number;
|
|
27
42
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
43
|
+
* LookForward via geometria boca/mandíbula.
|
|
44
|
+
* Se informado, pode ter precedência sobre yawProxy/centerX dependendo da implementação.
|
|
45
|
+
* Unidades: pixels do frame de vídeo.
|
|
30
46
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
lookForwardJawMouthDistMinPx?: number;
|
|
48
|
+
lookForwardJawMouthDistMaxPx?: number;
|
|
49
|
+
/** Tolerância (0..1, normalizado) para o eixo Y da boca vs jawMid ser considerado neutro. */
|
|
50
|
+
lookForwardMouthVsJawMidYAbsTol?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Por quanto tempo (ms) o lookForward deve permanecer ok para ser aceito como stepOk.
|
|
53
|
+
* Default: 1000
|
|
54
|
+
*/
|
|
55
|
+
lookForwardHoldMs?: number;
|
|
56
|
+
/** Tolerância para lookLeft/lookRight quando usando sinais simples (centerX etc). */
|
|
37
57
|
lookSideTol?: number;
|
|
38
|
-
/**
|
|
58
|
+
/** Tolerância para lookUp/lookDown quando usando sinais simples (centerY/box). */
|
|
39
59
|
lookUpDownTol?: number;
|
|
40
|
-
/** Optional: face area threshold (normalized) to satisfy zoomIn. If omitted, derived from strictness. */
|
|
41
60
|
zoomInMinArea?: number;
|
|
42
|
-
/** Optional: face area threshold (normalized) to satisfy zoomOut. If omitted, derived from strictness. */
|
|
43
61
|
zoomOutMaxArea?: number;
|
|
44
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* Threshold de “olhos fechados” para blink.
|
|
64
|
+
* Observação: como os valores de eye open prob aqui normalmente não chegam a 0, o default é mais alto.
|
|
65
|
+
* Default: 0.65 (mais sensível)
|
|
66
|
+
*/
|
|
45
67
|
blinkClosedThreshold?: number;
|
|
68
|
+
/** Threshold de “olhos abertos” para armar o blink (evita completar com olhos semicerrados). */
|
|
69
|
+
blinkOpenThreshold?: number;
|
|
70
|
+
/** Tempo mínimo (ms) que um challenge deve permanecer válido para ser aceito. Default: 150 */
|
|
71
|
+
challengeMinHoldMs?: number;
|
|
72
|
+
/** Delay mínimo (ms) depois de completar um challenge antes que o próximo possa completar. Default: 400 */
|
|
73
|
+
challengeCooldownMs?: number;
|
|
74
|
+
/**
|
|
75
|
+
* Threshold (delta) para sorriso (cheese).
|
|
76
|
+
*
|
|
77
|
+
* Quando `cheeseUseBaseline === true` (default), o SDK calcula um baseline do usuário (boca neutra)
|
|
78
|
+
* e considera “sorrindo” quando:
|
|
79
|
+
* `mouthSmileRatio >= (cheeseBaseline + cheeseThreshold)`
|
|
80
|
+
*
|
|
81
|
+
* Menor = mais sensível.
|
|
82
|
+
* Default: 0.05 (delta acima do baseline, mais sensível)
|
|
83
|
+
*/
|
|
84
|
+
cheeseThreshold?: number;
|
|
85
|
+
/**
|
|
86
|
+
* Se `true` (default), calibra um baseline de sorriso por usuário (boca neutra) e valida por delta.
|
|
87
|
+
* Se `false`, valida por threshold absoluto (sem baseline).
|
|
88
|
+
* Default: true
|
|
89
|
+
*/
|
|
90
|
+
cheeseUseBaseline?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Janela (ms) para coletar baseline neutro do sorriso após iniciar ou ao entrar no step `cheese`.
|
|
93
|
+
* Default: 1200
|
|
94
|
+
*/
|
|
95
|
+
cheeseBaselineWindowMs?: number;
|
|
96
|
+
/**
|
|
97
|
+
* Quantidade mínima de amostras para aceitar um baseline.
|
|
98
|
+
* Default: 8
|
|
99
|
+
*/
|
|
100
|
+
cheeseBaselineMinSamples?: number;
|
|
101
|
+
/** Threshold (0..1) para boca aberta. Maior = exige abrir mais. Default: 0.5 (mais permissivo) */
|
|
102
|
+
openMouthThreshold?: number;
|
|
103
|
+
/** Progresso (0..1) para aceitar pose challenges. Default: 0.65 */
|
|
104
|
+
poseProgressAccept?: number;
|
|
105
|
+
/** Por quanto tempo (ms) pode reutilizar o último status bom durante head-turns quando a detecção oscila. Default: 900 */
|
|
106
|
+
poseGraceMs?: number;
|
|
107
|
+
/** Define a semântica esquerda/direita quando o preview é espelhado. Default: 'mirrored'. */
|
|
108
|
+
mirrorMode?: 'mirrored' | 'raw';
|
|
109
|
+
/**
|
|
110
|
+
* Threshold (ratio) para assimetria boca<->mandíbula em lookLeft/lookRight quando `poseProgressSource` usa mouthJaw.
|
|
111
|
+
* Default: 0.12 (≈12%).
|
|
112
|
+
*/
|
|
113
|
+
lookSideRatioThr?: number;
|
|
114
|
+
/** Delta absoluto mínimo (ratio/unidade interna) entre lados em mouthJaw para evitar passar por jitter. Default: 0.10 */
|
|
115
|
+
lookSideAbsDeltaThr?: number;
|
|
116
|
+
/**
|
|
117
|
+
* Seleciona qual sinal será usado para computar progresso de pose.
|
|
118
|
+
* - 'auto' (default): yawProxy -> mouthJaw -> centerX
|
|
119
|
+
* - 'yawProxy': landmarks yawProxy (fallback p/ centerX)
|
|
120
|
+
* - 'mouthJaw': assimetria mouth<->jaw (fallback p/ centerX)
|
|
121
|
+
* - 'centerX': apenas bbox/centerX
|
|
122
|
+
*/
|
|
123
|
+
poseProgressSource?: 'auto' | 'yawProxy' | 'mouthJaw' | 'centerX';
|
|
124
|
+
/** Thresholds absolutos para validação estrita via mouthJaw. */
|
|
125
|
+
lookSideNearThr?: number;
|
|
126
|
+
lookSideFarThr?: number;
|
|
127
|
+
/**
|
|
128
|
+
* Quanto tempo (ms) o usuário deve manter lookForward quando ele aparece como gate neutro no fluxo.
|
|
129
|
+
* Default: 350
|
|
130
|
+
*/
|
|
131
|
+
neutralHoldMs?: number;
|
|
46
132
|
}
|
|
47
133
|
export type AlphaValidErrorCode = 'CAMERA_PERMISSION_DENIED' | 'CAMERA_NOT_FOUND' | 'CAMERA_NOT_READABLE' | 'CAMERA_OVERCONSTRAINED' | 'CAMERA_NOT_SUPPORTED' | 'CAMERA_UNKNOWN' | 'MODEL_LOAD_FAILED' | 'MODEL_LOAD_TIMEOUT';
|
|
48
134
|
export interface AlphaValidSdkError {
|
|
@@ -51,70 +137,215 @@ export interface AlphaValidSdkError {
|
|
|
51
137
|
cause?: unknown;
|
|
52
138
|
}
|
|
53
139
|
export type AlphaValidStatus = 'idle' | 'initializing' | 'running' | 'ready' | 'error';
|
|
54
|
-
export type AlphaValidFeedbackCode = 'INITIALIZING' | 'FACE_NOT_FOUND' | 'MULTIPLE_FACES' | 'FACE_TOO_FAR' | 'FACE_TOO_CLOSE' | 'FACE_OFF_CENTER' | 'LOOK_FORWARD' | 'LOOK_UP' | 'LOOK_DOWN' | 'LOOK_LEFT' | 'LOOK_RIGHT' | 'ZOOM_IN' | 'ZOOM_OUT' | 'BLINK' | 'READY';
|
|
140
|
+
export type AlphaValidFeedbackCode = 'INITIALIZING' | 'FACE_NOT_FOUND' | 'MULTIPLE_FACES' | 'FACE_TOO_FAR' | 'FACE_TOO_CLOSE' | 'FACE_OFF_CENTER' | 'LOOK_FORWARD' | 'LOOK_UP' | 'LOOK_DOWN' | 'LOOK_LEFT' | 'LOOK_RIGHT' | 'ZOOM_IN' | 'ZOOM_OUT' | 'BLINK' | 'CHEESE' | 'OPEN_MOUTH' | 'READY';
|
|
141
|
+
export type AlphaValidFeedbackMessage = 'Inicializando câmera...' | 'Centralize seu rosto' | 'Aproxime o rosto' | 'Afaste o rosto' | 'Ajuste a iluminação' | 'Apenas 1 rosto por vez' | 'Rosto detectado' | 'Pronto para capturar' | 'Olhe para a câmera' | 'Olhe para cima' | 'Olhe para baixo' | 'Olhe para a esquerda' | 'Olhe para a direita' | 'Aproxime-se da câmera' | 'Afaste-se da câmera' | 'Pisque' | 'Sorria' | 'Abra a boca';
|
|
55
142
|
export type AlphaValidFeedback = {
|
|
56
143
|
code: AlphaValidFeedbackCode;
|
|
57
|
-
message: string;
|
|
144
|
+
message: AlphaValidFeedbackMessage | string;
|
|
58
145
|
};
|
|
146
|
+
export interface AlphaValidState {
|
|
147
|
+
/** Estado de alto nível do SDK (idle/initializing/running/ready/error). */
|
|
148
|
+
status: AlphaValidStatus;
|
|
149
|
+
/** Feedback atual (código + mensagem) para UX. */
|
|
150
|
+
feedback: AlphaValidFeedback;
|
|
151
|
+
/** Alias textual para UX (atualmente igual a feedback.message). */
|
|
152
|
+
message: string;
|
|
153
|
+
/** Indica se o SDK considera o frame pronto para captura (após liveness, se configurado). */
|
|
154
|
+
isReadyToCapture: boolean;
|
|
155
|
+
/** Progresso de desafios (quando `liveness.challenges` está ativo). */
|
|
156
|
+
challenge?: {
|
|
157
|
+
enabled: boolean;
|
|
158
|
+
/** Índice atual na lista de desafios (0..total). */
|
|
159
|
+
index: number;
|
|
160
|
+
/** Total de passos configurados. */
|
|
161
|
+
total: number;
|
|
162
|
+
/** Step atual (quando ainda não completou todos). */
|
|
163
|
+
current?: AlphaValidChallengeType;
|
|
164
|
+
/** True quando não há step ativo (sequência concluída). */
|
|
165
|
+
completed: boolean;
|
|
166
|
+
};
|
|
167
|
+
/** Informações de debug (opcionais) para diagnóstico e overlay. */
|
|
168
|
+
debug?: {
|
|
169
|
+
faces?: number;
|
|
170
|
+
centerX?: number;
|
|
171
|
+
box?: {
|
|
172
|
+
x: number;
|
|
173
|
+
y: number;
|
|
174
|
+
width: number;
|
|
175
|
+
height: number;
|
|
176
|
+
};
|
|
177
|
+
eyeDist?: number;
|
|
178
|
+
yawProxy?: number;
|
|
179
|
+
leftEyeOpenProb?: number;
|
|
180
|
+
rightEyeOpenProb?: number;
|
|
181
|
+
/** Qual sinal foi usado para o progresso de pose (yawProxy | mouthJaw | centerX). */
|
|
182
|
+
poseProgressSource?: 'yawProxy' | 'mouthJaw' | 'centerX';
|
|
183
|
+
/** Debug interno do motor de validação/feedback (thresholds, razões, valores intermediários). */
|
|
184
|
+
fb?: any;
|
|
185
|
+
/** 0..1 progressos para desafios de pose. */
|
|
186
|
+
progress?: {
|
|
187
|
+
lookLeft?: number;
|
|
188
|
+
lookRight?: number;
|
|
189
|
+
lookUp?: number;
|
|
190
|
+
lookDown?: number;
|
|
191
|
+
};
|
|
192
|
+
/** Sorriso (cheese): width/height da boca (heurística). */
|
|
193
|
+
mouthSmileRatio?: number;
|
|
194
|
+
/** Sorriso (cheese): baseline neutro (por usuário/sessão), quando `cheeseUseBaseline` está habilitado. */
|
|
195
|
+
cheeseBaseline?: number;
|
|
196
|
+
/** Sorriso (cheese): alvo calculado (baseline + delta) quando aplicável. */
|
|
197
|
+
cheeseTarget?: number;
|
|
198
|
+
/** Tempo (ms) que o lookForward deve ser mantido para ser aceito. */
|
|
199
|
+
lookForwardHoldMs?: number;
|
|
200
|
+
/** Tempo (ms) já mantido dentro dos critérios principais do lookForward. */
|
|
201
|
+
lookForwardHeldMs?: number;
|
|
202
|
+
/** Timestamp (ms) do início do hold do lookForward (ou null se não está segurando). */
|
|
203
|
+
lookForwardOkSince?: number | null;
|
|
204
|
+
/** 0..1: progresso do hold do challenge atual (para UX/overlay). */
|
|
205
|
+
challengeHoldProgress?: number;
|
|
206
|
+
};
|
|
207
|
+
}
|
|
59
208
|
export interface AlphaValidStartOptions {
|
|
60
|
-
|
|
61
|
-
|
|
209
|
+
/**
|
|
210
|
+
* Container onde o SDK vai montar o vídeo e (opcionalmente) o overlay.
|
|
211
|
+
* Se omitido, usa o elemento com id 'cameraContainer'.
|
|
212
|
+
*/
|
|
213
|
+
container?: HTMLElement;
|
|
214
|
+
/** Preset de liveness de alto nivel (sem precisar mexer em todos os thresholds). */
|
|
215
|
+
livenessPreset?: 'easy' | 'normal' | 'strict';
|
|
216
|
+
/** Callback chamado quando câmera/overlay (se houver) estão prontos e modelos foram carregados. */
|
|
62
217
|
onReady?: () => void;
|
|
63
|
-
/**
|
|
218
|
+
/** Callback leve: emite o feedback atual (ideal para textos/UI do app). */
|
|
64
219
|
onFeedback?: (feedback: AlphaValidFeedback) => void;
|
|
65
|
-
/**
|
|
220
|
+
/** Callback de erro normalizado. */
|
|
66
221
|
onError?: (error: AlphaValidSdkError) => void;
|
|
67
|
-
/**
|
|
222
|
+
/** Controla se o overlay deve ser renderizado. Default: true (quando `uiMode` não é headless). */
|
|
68
223
|
overlay?: boolean;
|
|
69
|
-
/**
|
|
224
|
+
/** Proporção do círculo guia (0..1). Default: 0.72 */
|
|
70
225
|
guideCircleRatio?: number;
|
|
71
|
-
/**
|
|
226
|
+
/** Intervalo (ms) entre detecções. Default: 50 */
|
|
72
227
|
detectionIntervalMs?: number;
|
|
73
|
-
/**
|
|
74
|
-
* Base URL where face-api.js models are served from.
|
|
75
|
-
* Recommended (Vite/Ionic): copy this package's `/models` into your app `public/alphavalid-models`
|
|
76
|
-
* so they are served at `/alphavalid-models`.
|
|
77
|
-
*
|
|
78
|
-
* Example: modelsPath: '/alphavalid-models'
|
|
79
|
-
*/
|
|
228
|
+
/** Caminho público (URL) de onde os models do face-api serão carregados. Default: '/alphavalid-models' */
|
|
80
229
|
modelsPath?: string;
|
|
81
|
-
/**
|
|
230
|
+
/** Opções de liveness/heurísticas e sequência de desafios. */
|
|
82
231
|
liveness?: AlphaValidLivenessOptions;
|
|
83
|
-
/** Optional: called when internal state changes (useful to enable/disable capture button). */
|
|
84
|
-
onStateChange?: (state: AlphaValidState) => void;
|
|
85
232
|
/**
|
|
86
|
-
*
|
|
87
|
-
* -
|
|
88
|
-
* -
|
|
233
|
+
* Exige um "lookForward" válido (checar se está olhando para a câmera) no momento de habilitar captura.
|
|
234
|
+
* - Quando true, o botão de captura (manual) só habilita se o usuário estiver alinhado/olhando para frente.
|
|
235
|
+
* - Quando true, o autoCapture só dispara se o usuário estiver alinhado/olhando para frente.
|
|
236
|
+
*
|
|
237
|
+
* Observação: esta validação é intencionalmente simples e independente da pipeline de challenges.
|
|
238
|
+
* Default: false
|
|
89
239
|
*/
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
240
|
+
requireLookForwardForCapture?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Callback completo do estado (status + debug + challenge progress). */
|
|
243
|
+
onStateChange?: (state: AlphaValidState) => void;
|
|
244
|
+
/** Modo UI: 'headless' desabilita overlay. */
|
|
245
|
+
uiMode?: 'default' | 'headless' | 'Mobile';
|
|
246
|
+
/** Debug do SDK. */
|
|
96
247
|
debug?: {
|
|
97
|
-
/**
|
|
248
|
+
/** Se true, solicita landmarks ao detector e desenha no overlay (custo maior). */
|
|
98
249
|
drawLandmarks?: boolean;
|
|
250
|
+
/**
|
|
251
|
+
* Toggles finos para o desenho de landmarks no overlay.
|
|
252
|
+
* Se omitido, `drawLandmarks` controla tudo (comportamento antigo).
|
|
253
|
+
*/
|
|
254
|
+
draw?: {
|
|
255
|
+
/** Mostra pontos/centros dos olhos. */
|
|
256
|
+
eyes?: boolean;
|
|
257
|
+
/** Mostra polilinha/pontos da boca. */
|
|
258
|
+
mouth?: boolean;
|
|
259
|
+
/** Mostra nariz (ponta + linha) quando disponível. */
|
|
260
|
+
nose?: boolean;
|
|
261
|
+
/** Mostra a jaw line (polilinha). */
|
|
262
|
+
jaw?: boolean;
|
|
263
|
+
/** Mostra linhas/labels mouth<->jaw (diagnóstico). */
|
|
264
|
+
mouthJaw?: boolean;
|
|
265
|
+
/** Mostra/oculta as linhas de debug do sorriso (cheese) no painel do overlay. */
|
|
266
|
+
cheese?: boolean;
|
|
267
|
+
};
|
|
268
|
+
/**
|
|
269
|
+
* Campo extra para flags customizadas de debug (ex: showOverlayTable).
|
|
270
|
+
*/
|
|
271
|
+
extra?: any;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Auto-capture embutido: espera `READY` + estabilidade, captura 1x e chama `onCapture`.
|
|
275
|
+
* Útil para evitar duplicar lógica de estabilidade no app consumidor.
|
|
276
|
+
*/
|
|
277
|
+
autoCapture?: {
|
|
278
|
+
enabled?: boolean;
|
|
279
|
+
/** Tempo mínimo (ms) que o rosto deve ficar estável antes de capturar. Default: 650 */
|
|
280
|
+
stableMs?: number;
|
|
281
|
+
/** Mensagem exibida enquanto segura estabilidade (quando aplicável). */
|
|
282
|
+
holdStillMessage?: string;
|
|
283
|
+
/** Callback disparado com o Blob (JPEG) assim que capturar. */
|
|
284
|
+
onCapture?: (blob: Blob) => void;
|
|
285
|
+
};
|
|
286
|
+
/**
|
|
287
|
+
* Botão de captura manual gerenciado pelo SDK.
|
|
288
|
+
* - Default: enabled (true)
|
|
289
|
+
* - Quando `autoCapture.enabled === false`, o SDK pode exibir um botão para o usuário capturar.
|
|
290
|
+
*/
|
|
291
|
+
captureButton?: {
|
|
292
|
+
enabled?: boolean;
|
|
293
|
+
/** Texto do botão. Default: 'Capturar imagem' */
|
|
294
|
+
text?: string;
|
|
295
|
+
/** Cor de fundo (CSS color). Default: '#00bcd4' */
|
|
296
|
+
color?: string;
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Callback chamado após uma captura (manual ou auto), antes de finalizar o fluxo.
|
|
300
|
+
* Recebe o blob da foto e ações para retomar ou confirmar.
|
|
301
|
+
*/
|
|
302
|
+
onPreview?: (blob: Blob, actions: {
|
|
303
|
+
retake: () => void;
|
|
304
|
+
confirm: () => void;
|
|
305
|
+
}) => void;
|
|
306
|
+
/**
|
|
307
|
+
* Ativa o preview "fácil" gerenciado pelo SDK (UI + botões OK/Recapturar).
|
|
308
|
+
* - Só será aplicado quando `uiMode === 'Mobile'`.
|
|
309
|
+
* - Quando true, o SDK mostra o preview após qualquer captura (manual ou auto)
|
|
310
|
+
* e resolve OK/Recapturar internamente.
|
|
311
|
+
*/
|
|
312
|
+
userPreview?: boolean;
|
|
313
|
+
/**
|
|
314
|
+
* Callback disparado quando o usuário confirma (OK) no `userPreview`.
|
|
315
|
+
* Observação: só é chamado quando `userPreview === true`.
|
|
316
|
+
*/
|
|
317
|
+
onUserPreviewConfirm?: (blob: Blob) => void;
|
|
318
|
+
/** Texto do botão OK no preview (default: 'OK'). */
|
|
319
|
+
previewOkText?: string;
|
|
320
|
+
/** Texto do botão "Tirar outra" no preview (default: 'Tirar outra'). */
|
|
321
|
+
previewRetakeText?: string;
|
|
322
|
+
/**
|
|
323
|
+
* Loader do SDK (overlay com GIF enquanto inicializa a câmera/models).
|
|
324
|
+
* - Default: enabled (true)
|
|
325
|
+
* - O GIF default é `/images/alphaloader.gif` (mesmo do demo)
|
|
326
|
+
*/
|
|
327
|
+
loader?: {
|
|
328
|
+
enabled?: boolean;
|
|
329
|
+
/** URL do gif/imagem do loader. */
|
|
330
|
+
src?: string;
|
|
331
|
+
/** Tamanho (px). Default: 120 */
|
|
332
|
+
sizePx?: number;
|
|
333
|
+
/** Tempo mínimo visível (ms). Default: 900 */
|
|
334
|
+
minVisibleMs?: number;
|
|
99
335
|
};
|
|
100
336
|
}
|
|
101
337
|
export interface FaceDetectionStatus {
|
|
102
338
|
faces: number;
|
|
103
|
-
/** Face box normalized [0..1] relative to video square viewport. */
|
|
104
339
|
box?: {
|
|
105
340
|
x: number;
|
|
106
341
|
y: number;
|
|
107
342
|
width: number;
|
|
108
343
|
height: number;
|
|
109
344
|
};
|
|
110
|
-
/** simple heuristic: face center x normalized (0..1). */
|
|
111
345
|
centerX?: number;
|
|
112
|
-
/** Relative face area (width*height) in normalized coordinates. */
|
|
113
346
|
area?: number;
|
|
114
|
-
/** Eye aspect ratio heuristic (if landmarks enabled). */
|
|
115
347
|
leftEyeOpenProb?: number;
|
|
116
348
|
rightEyeOpenProb?: number;
|
|
117
|
-
/** Eye centers (normalized) if landmarks enabled */
|
|
118
349
|
leftEyeCenter?: {
|
|
119
350
|
x: number;
|
|
120
351
|
y: number;
|
|
@@ -123,9 +354,33 @@ export interface FaceDetectionStatus {
|
|
|
123
354
|
x: number;
|
|
124
355
|
y: number;
|
|
125
356
|
};
|
|
126
|
-
/** Inter-eye distance normalized relative to max(videoWidth, videoHeight) */
|
|
127
357
|
eyeDist?: number;
|
|
128
|
-
/**
|
|
358
|
+
/** Best-effort yaw proxy from landmarks: (noseX - eyeMidX) / interOcularDistance. */
|
|
359
|
+
yawProxy?: number;
|
|
360
|
+
/** Mouth corners (normalized video space). */
|
|
361
|
+
mouthLeft?: {
|
|
362
|
+
x: number;
|
|
363
|
+
y: number;
|
|
364
|
+
};
|
|
365
|
+
mouthRight?: {
|
|
366
|
+
x: number;
|
|
367
|
+
y: number;
|
|
368
|
+
};
|
|
369
|
+
/** Jaw side points (normalized video space). */
|
|
370
|
+
jawLeft?: {
|
|
371
|
+
x: number;
|
|
372
|
+
y: number;
|
|
373
|
+
};
|
|
374
|
+
jawRight?: {
|
|
375
|
+
x: number;
|
|
376
|
+
y: number;
|
|
377
|
+
};
|
|
378
|
+
/** Distances between mouth corners and jaw sides, normalized by inter-ocular distance (scale invariant). */
|
|
379
|
+
mouthJawLeftDist?: number;
|
|
380
|
+
mouthJawRightDist?: number;
|
|
381
|
+
/** Absolute distances (in pixels of the underlying video frame). */
|
|
382
|
+
mouthJawLeftDistPx?: number;
|
|
383
|
+
mouthJawRightDistPx?: number;
|
|
129
384
|
leftEyePoints?: Array<{
|
|
130
385
|
x: number;
|
|
131
386
|
y: number;
|
|
@@ -134,44 +389,47 @@ export interface FaceDetectionStatus {
|
|
|
134
389
|
x: number;
|
|
135
390
|
y: number;
|
|
136
391
|
}>;
|
|
137
|
-
/** Nose tip (normalized) if landmarks enabled */
|
|
138
392
|
noseTip?: {
|
|
139
393
|
x: number;
|
|
140
394
|
y: number;
|
|
141
395
|
};
|
|
142
|
-
|
|
396
|
+
nosePoints?: Array<{
|
|
397
|
+
x: number;
|
|
398
|
+
y: number;
|
|
399
|
+
}>;
|
|
400
|
+
mouthPoints?: Array<{
|
|
401
|
+
x: number;
|
|
402
|
+
y: number;
|
|
403
|
+
}>;
|
|
143
404
|
jawPoints?: Array<{
|
|
144
405
|
x: number;
|
|
145
406
|
y: number;
|
|
146
407
|
}>;
|
|
147
|
-
/** Rough face center derived from jawline (normalized), if landmarks enabled */
|
|
148
408
|
jawCenter?: {
|
|
149
409
|
x: number;
|
|
150
410
|
y: number;
|
|
151
411
|
};
|
|
152
|
-
/**
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
*/
|
|
157
|
-
poseSource?: 'landmarks' | 'bbox';
|
|
158
|
-
}
|
|
159
|
-
export interface AlphaValidState {
|
|
160
|
-
/** Engine status */
|
|
161
|
-
status: AlphaValidStatus;
|
|
162
|
-
/** Current feedback (code + message) */
|
|
163
|
-
feedback: AlphaValidFeedback;
|
|
164
|
-
/** Compatibility: current feedback message */
|
|
165
|
-
message: string;
|
|
166
|
-
/** Whether the current frame is acceptable for capture (all rules + challenges satisfied). */
|
|
167
|
-
isReadyToCapture: boolean;
|
|
168
|
-
/** Challenge progress (if enabled). */
|
|
169
|
-
challenge?: {
|
|
170
|
-
enabled: boolean;
|
|
171
|
-
index: number;
|
|
172
|
-
total: number;
|
|
173
|
-
current?: AlphaValidChallengeType;
|
|
174
|
-
completed: boolean;
|
|
412
|
+
/** Pontos centrais do lábio superior (51) e inferior (57) (normalized video space). */
|
|
413
|
+
mouthUpper?: {
|
|
414
|
+
x: number;
|
|
415
|
+
y: number;
|
|
175
416
|
};
|
|
417
|
+
mouthLower?: {
|
|
418
|
+
x: number;
|
|
419
|
+
y: number;
|
|
420
|
+
};
|
|
421
|
+
/** Distância vertical absoluta (px) e normalizada por eyeDist entre lábio superior e inferior. */
|
|
422
|
+
mouthOpenPx?: number;
|
|
423
|
+
mouthOpenNorm?: number;
|
|
424
|
+
/** Jaw top points (normalized video space). */
|
|
425
|
+
jawTopL?: {
|
|
426
|
+
x: number;
|
|
427
|
+
y: number;
|
|
428
|
+
};
|
|
429
|
+
jawTopR?: {
|
|
430
|
+
x: number;
|
|
431
|
+
y: number;
|
|
432
|
+
};
|
|
433
|
+
poseSource?: 'landmarks' | 'bbox';
|
|
176
434
|
}
|
|
177
435
|
//# sourceMappingURL=sdk.d.ts.map
|
package/dist/types/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/types/sdk.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/types/sdk.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAC/B,aAAa,GACb,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,WAAW,GACX,YAAY,CAAC;AAEjB,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mGAAmG;IACnG,UAAU,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAEvC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAEtC,6FAA6F;IAC7F,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,gGAAgG;IAChG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,2GAA2G;IAC3G,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,0HAA0H;IAC1H,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAEhC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,yHAAyH;IACzH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAElE,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAC3B,0BAA0B,GAC1B,kBAAkB,GAClB,qBAAqB,GACrB,wBAAwB,GACxB,sBAAsB,GACtB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvF,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,GACd,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,OAAO,CAAC;AAEZ,MAAM,MAAM,yBAAyB,GACjC,yBAAyB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,wBAAwB,GACxB,iBAAiB,GACjB,sBAAsB,GACtB,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB,GACrB,QAAQ,GACR,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,MAAM,EAAE,gBAAgB,CAAC;IAEzB,kDAAkD;IAClD,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAEhB,6FAA6F;IAC7F,gBAAgB,EAAE,OAAO,CAAC;IAE1B,uEAAuE;IACvE,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,oDAAoD;QACpD,KAAK,EAAE,MAAM,CAAC;QACd,oCAAoC;QACpC,KAAK,EAAE,MAAM,CAAC;QACd,qDAAqD;QACrD,OAAO,CAAC,EAAE,uBAAuB,CAAC;QAClC,2DAA2D;QAC3D,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,mEAAmE;IACnE,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,qFAAqF;QACrF,kBAAkB,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;QAEzD,iGAAiG;QACjG,EAAE,CAAC,EAAE,GAAG,CAAC;QAET,6CAA6C;QAC7C,QAAQ,CAAC,EAAE;YACT,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QAEF,2DAA2D;QAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,0GAA0G;QAC1G,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,4EAA4E;QAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB,qEAAqE;QACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,4EAA4E;QAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,uFAAuF;QACvF,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAEnC,oEAAoE;QACpE,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAE9C,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEpD,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAE9C,kGAAkG;IAClG,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,0GAA0G;IAC1G,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAErC;;;;;;;OAOG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;4EACwE;IACxE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAEjD,8CAA8C;IAC9C,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAE3C,oBAAoB;IACpB,KAAK,CAAC,EAAE;QACN,kFAAkF;QAClF,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB;;;WAGG;QACH,IAAI,CAAC,EAAE;YACL,uCAAuC;YACvC,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,uCAAuC;YACvC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,sDAAsD;YACtD,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,qCAAqC;YACrC,GAAG,CAAC,EAAE,OAAO,CAAC;YACd,sDAAsD;YACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;YAEnB,iFAAiF;YACjF,MAAM,CAAC,EAAE,OAAO,CAAC;SAClB,CAAC;QACF;;WAEG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;KACb,CAAC;IAEF;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,uFAAuF;QACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,wEAAwE;QACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,+DAA+D;QAC/D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;KAClC,CAAC;IAEF;;;;OAIG;IACH,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,iDAAiD;QACjD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mDAAmD;QACnD,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAEvF;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAE5C,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,mCAAmC;QACnC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,iCAAiC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,8CAA8C;QAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAE9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,cAAc,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8CAA8C;IAC9C,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,UAAU,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEtC,gDAAgD;IAChD,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEpC,4GAA4G;IAC5G,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAErC,uFAAuF;IACvF,UAAU,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,UAAU,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,+CAA+C;IAC/C,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEnC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseStyles.d.ts","sourceRoot":"","sources":["../../src/ui/baseStyles.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,WAAW,QAsDvD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type CaptureButtonUiHandle = {
|
|
2
|
+
show: () => void;
|
|
3
|
+
hide: () => void;
|
|
4
|
+
dispose: () => void;
|
|
5
|
+
setEnabled: (enabled: boolean) => void;
|
|
6
|
+
};
|
|
7
|
+
export declare function createCaptureButtonCoxinhaUi(params: {
|
|
8
|
+
container: HTMLElement;
|
|
9
|
+
text?: string;
|
|
10
|
+
color?: string;
|
|
11
|
+
onClick: () => void;
|
|
12
|
+
}): CaptureButtonUiHandle;
|
|
13
|
+
//# sourceMappingURL=captureButtonCoxinha.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureButtonCoxinha.d.ts","sourceRoot":"","sources":["../../src/ui/captureButtonCoxinha.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AAOF,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,qBAAqB,CAsDxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=containerStyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containerStyles.d.ts","sourceRoot":"","sources":["../../src/ui/containerStyles.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface LoaderHandle {
|
|
2
|
+
show(): void;
|
|
3
|
+
hide(): void;
|
|
4
|
+
dispose(): void;
|
|
5
|
+
}
|
|
6
|
+
export interface LoaderOptions {
|
|
7
|
+
/** Image URL for the loader (gif). */
|
|
8
|
+
src?: string;
|
|
9
|
+
/** Size in pixels. */
|
|
10
|
+
sizePx?: number;
|
|
11
|
+
/** Minimum visible time in ms (prevents flicker). */
|
|
12
|
+
minVisibleMs?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function createCameraLoader(container: HTMLElement, opts?: LoaderOptions): LoaderHandle;
|
|
15
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/ui/loader.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,GAAE,aAAkB,GAAG,YAAY,CA2EjG"}
|