smartcomply-web-sdk 1.0.57 → 1.0.59
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/camera/CameraManager.d.ts +16 -0
- package/dist/camera/CameraManager.d.ts.map +1 -1
- package/dist/camera/CameraManager.js +44 -1
- package/dist/camera/CameraManager.js.map +1 -1
- package/dist/camera/VideoRecorder.d.ts +3 -0
- package/dist/camera/VideoRecorder.d.ts.map +1 -1
- package/dist/camera/VideoRecorder.js +10 -1
- package/dist/camera/VideoRecorder.js.map +1 -1
- package/dist/esm/camera/CameraManager.d.ts +16 -0
- package/dist/esm/camera/CameraManager.d.ts.map +1 -1
- package/dist/esm/camera/CameraManager.js +44 -1
- package/dist/esm/camera/CameraManager.js.map +1 -1
- package/dist/esm/camera/VideoRecorder.d.ts +3 -0
- package/dist/esm/camera/VideoRecorder.d.ts.map +1 -1
- package/dist/esm/camera/VideoRecorder.js +10 -1
- package/dist/esm/camera/VideoRecorder.js.map +1 -1
- package/dist/esm/flow/SmartComplyFlow.d.ts +4 -1
- package/dist/esm/flow/SmartComplyFlow.d.ts.map +1 -1
- package/dist/esm/flow/SmartComplyFlow.js +78 -22
- package/dist/esm/flow/SmartComplyFlow.js.map +1 -1
- package/dist/esm/modules/liveness/LivenessUI.d.ts.map +1 -1
- package/dist/esm/modules/liveness/LivenessUI.js +10 -1
- package/dist/esm/modules/liveness/LivenessUI.js.map +1 -1
- package/dist/esm/modules/liveness/liveness.d.ts +3 -1
- package/dist/esm/modules/liveness/liveness.d.ts.map +1 -1
- package/dist/esm/modules/liveness/liveness.js +55 -23
- package/dist/esm/modules/liveness/liveness.js.map +1 -1
- package/dist/esm/utils/constants.d.ts +6 -2
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +6 -2
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/flow/SmartComplyFlow.d.ts +4 -1
- package/dist/flow/SmartComplyFlow.d.ts.map +1 -1
- package/dist/flow/SmartComplyFlow.js +78 -22
- package/dist/flow/SmartComplyFlow.js.map +1 -1
- package/dist/modules/liveness/LivenessUI.d.ts.map +1 -1
- package/dist/modules/liveness/LivenessUI.js +10 -1
- package/dist/modules/liveness/LivenessUI.js.map +1 -1
- package/dist/modules/liveness/liveness.d.ts +3 -1
- package/dist/modules/liveness/liveness.d.ts.map +1 -1
- package/dist/modules/liveness/liveness.js +55 -23
- package/dist/modules/liveness/liveness.js.map +1 -1
- package/dist/smartcomply.browser.js +392 -255
- package/dist/smartcomply.browser.js.map +4 -4
- package/dist/utils/constants.d.ts +6 -2
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +6 -2
- package/dist/utils/constants.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import { VideoRecorder } from "../../camera/VideoRecorder";
|
|
|
5
5
|
import { FaceDetectorEngine } from "../../camera/FaceDetector";
|
|
6
6
|
import { ActionDetector } from "../../camera/ActionDetector";
|
|
7
7
|
import { LivenessUI } from "./LivenessUI";
|
|
8
|
+
import { LivenessUploader } from "./uploader";
|
|
8
9
|
/**
|
|
9
10
|
* Liveness module — 3-step flow aligned with Adhere backend.
|
|
10
11
|
*
|
|
@@ -93,8 +94,10 @@ export class LivenessModule {
|
|
|
93
94
|
*
|
|
94
95
|
* Note: After submission, the session is revoked (single-use).
|
|
95
96
|
* The backend returns status: "processing" — results come via webhook.
|
|
97
|
+
*
|
|
98
|
+
* Pass onProgress for 0–1 upload-fraction callbacks (via LivenessUploader).
|
|
96
99
|
*/
|
|
97
|
-
async submit(entryId, videoBlob, snapshotBlob, autoshotBlob, videoDurationSeconds, videoSizeBytes) {
|
|
100
|
+
async submit(entryId, videoBlob, snapshotBlob, autoshotBlob, videoDurationSeconds, videoSizeBytes, onProgress) {
|
|
98
101
|
const formData = new FormData();
|
|
99
102
|
formData.append("entry", String(entryId));
|
|
100
103
|
formData.append("video", videoBlob, "liveness.webm");
|
|
@@ -108,6 +111,10 @@ export class LivenessModule {
|
|
|
108
111
|
if (videoSizeBytes !== undefined) {
|
|
109
112
|
formData.append("video_size_bytes", String(videoSizeBytes));
|
|
110
113
|
}
|
|
114
|
+
if (onProgress) {
|
|
115
|
+
const uploader = new LivenessUploader(this.http);
|
|
116
|
+
return uploader.upload("/v1/sdk/liveness/submit/", formData, { onProgress });
|
|
117
|
+
}
|
|
111
118
|
return this.http.uploadWithSession("/v1/sdk/liveness/submit/", formData);
|
|
112
119
|
}
|
|
113
120
|
/**
|
|
@@ -157,6 +164,20 @@ export class LivenessModule {
|
|
|
157
164
|
camera.stop();
|
|
158
165
|
ui.unmount();
|
|
159
166
|
};
|
|
167
|
+
// Rejects the whole flow if the camera stream or recorder dies mid-scan —
|
|
168
|
+
// raced against the detection loop below via Promise.race, otherwise the
|
|
169
|
+
// video just freezes and detection silently spins until the scan timeout.
|
|
170
|
+
let interruptedReject = null;
|
|
171
|
+
const interrupted = new Promise((_, reject) => {
|
|
172
|
+
interruptedReject = reject;
|
|
173
|
+
});
|
|
174
|
+
camera.onStreamInterrupted(() => {
|
|
175
|
+
interruptedReject?.(new Error("Camera connection was lost. Please check your camera and try again."));
|
|
176
|
+
});
|
|
177
|
+
recorder.onError(() => {
|
|
178
|
+
interruptedReject?.(new Error("Recording failed unexpectedly. Please try again."));
|
|
179
|
+
});
|
|
180
|
+
interrupted.catch(() => { });
|
|
160
181
|
try {
|
|
161
182
|
// 1. Open camera — reuse pre-warmed stream if available (B4)
|
|
162
183
|
let stream;
|
|
@@ -169,21 +190,12 @@ export class LivenessModule {
|
|
|
169
190
|
camera.setStream(stream);
|
|
170
191
|
}
|
|
171
192
|
else {
|
|
172
|
-
|
|
173
|
-
stream = await camera.open();
|
|
174
|
-
}
|
|
175
|
-
catch (camErr) {
|
|
176
|
-
if (camErr.name === "NotAllowedError" || camErr.name === "PermissionDeniedError") {
|
|
177
|
-
throw new Error("Camera access denied. Please allow camera permission in your browser settings and try again.");
|
|
178
|
-
}
|
|
179
|
-
if (camErr.name === "NotFoundError" || camErr.name === "DevicesNotFoundError") {
|
|
180
|
-
throw new Error("No camera found. Please connect a camera and try again.");
|
|
181
|
-
}
|
|
182
|
-
throw new Error(`Camera error: ${camErr.message || "Unable to access camera"}`);
|
|
183
|
-
}
|
|
193
|
+
stream = await camera.open();
|
|
184
194
|
}
|
|
185
|
-
// 2. Document capture step —
|
|
186
|
-
|
|
195
|
+
// 2. Document capture step — skipped if already captured earlier in
|
|
196
|
+
// the flow (SmartComplyFlow's document_capture step) and passed in
|
|
197
|
+
// via document/document_front; id_file is a legacy alias.
|
|
198
|
+
let capturedDocBlob = (params.id_file || params.document || params.document_front);
|
|
187
199
|
if (!capturedDocBlob && params.verification_type === "document_verification") {
|
|
188
200
|
capturedDocBlob = await ui.mountDocumentCapture(container, stream);
|
|
189
201
|
}
|
|
@@ -315,11 +327,13 @@ export class LivenessModule {
|
|
|
315
327
|
// scan on a single lucky frame before the camera has settled.
|
|
316
328
|
const MIN_SCAN_MS = 2000;
|
|
317
329
|
const actionDetector = new ActionDetector();
|
|
318
|
-
|
|
319
|
-
|
|
330
|
+
let scanAnimFrameId;
|
|
331
|
+
let scanTimeoutId;
|
|
332
|
+
const scanPromise = new Promise((resolve) => {
|
|
320
333
|
const scanStart = performance.now();
|
|
321
|
-
|
|
322
|
-
|
|
334
|
+
scanTimeoutId = setTimeout(() => {
|
|
335
|
+
if (scanAnimFrameId !== undefined)
|
|
336
|
+
cancelAnimationFrame(scanAnimFrameId);
|
|
323
337
|
resolve("timeout");
|
|
324
338
|
}, uiChallenge.time_limit_seconds * 1000);
|
|
325
339
|
const detectLoop = () => {
|
|
@@ -341,16 +355,31 @@ export class LivenessModule {
|
|
|
341
355
|
// right before the autoshot capture below.
|
|
342
356
|
const elapsed = performance.now() - scanStart;
|
|
343
357
|
if (detection.faceDetected && scan.livenessConfirmed && elapsed >= MIN_SCAN_MS) {
|
|
344
|
-
clearTimeout(
|
|
345
|
-
|
|
358
|
+
clearTimeout(scanTimeoutId);
|
|
359
|
+
if (scanAnimFrameId !== undefined)
|
|
360
|
+
cancelAnimationFrame(scanAnimFrameId);
|
|
346
361
|
resolve("completed");
|
|
347
362
|
return;
|
|
348
363
|
}
|
|
349
364
|
}
|
|
350
|
-
|
|
365
|
+
scanAnimFrameId = requestAnimationFrame(detectLoop);
|
|
351
366
|
};
|
|
352
367
|
detectLoop();
|
|
353
368
|
});
|
|
369
|
+
let detectionResult;
|
|
370
|
+
try {
|
|
371
|
+
detectionResult = await Promise.race([scanPromise, interrupted]);
|
|
372
|
+
}
|
|
373
|
+
catch (interruptErr) {
|
|
374
|
+
// Camera died mid-recording — stop the loop/timer and discard the
|
|
375
|
+
// now-unusable (truncated/frozen) recording rather than submitting it.
|
|
376
|
+
if (scanAnimFrameId !== undefined)
|
|
377
|
+
cancelAnimationFrame(scanAnimFrameId);
|
|
378
|
+
if (scanTimeoutId !== undefined)
|
|
379
|
+
clearTimeout(scanTimeoutId);
|
|
380
|
+
recorder.stop().catch(() => { });
|
|
381
|
+
throw interruptErr;
|
|
382
|
+
}
|
|
354
383
|
// ── On timeout: show retry screen, clean up, restart ──────────
|
|
355
384
|
if (detectionResult === "timeout") {
|
|
356
385
|
// IMPORTANT: mark cleanedUp=true BEFORE returning the new Promise so
|
|
@@ -393,7 +422,10 @@ export class LivenessModule {
|
|
|
393
422
|
const durationSeconds = recorded.durationSeconds;
|
|
394
423
|
// 10. Submit to backend — always include autoshot so document-flow
|
|
395
424
|
// entries (which bypassed create() via existingEntryId) still get it.
|
|
396
|
-
const submitResult = await this.submit(entry.id, videoBlob, snapshotBlob, autoshotBlob, durationSeconds, videoBlob.size)
|
|
425
|
+
const submitResult = await this.submit(entry.id, videoBlob, snapshotBlob, autoshotBlob, durationSeconds, videoBlob.size, (fraction) => {
|
|
426
|
+
const pct = Math.round(fraction * 100);
|
|
427
|
+
ui.updateInstruction(pct < 100 ? `Uploading... ${pct}%` : "Verifying...");
|
|
428
|
+
});
|
|
397
429
|
// 11. Show success overlay briefly before the flow advances
|
|
398
430
|
await ui.showResult(submitResult.status === "failed" ? "failed" : "processing", submitResult.id);
|
|
399
431
|
return submitResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveness.js","sourceRoot":"","sources":["../../../../src/modules/liveness/liveness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"liveness.js","sourceRoot":"","sources":["../../../../src/modules/liveness/liveness.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,12 @@ export declare const CAMERA_IDEAL_HEIGHT = 480;
|
|
|
40
40
|
/** Ideal resolution for rear-facing document capture camera. */
|
|
41
41
|
export declare const DOC_CAMERA_IDEAL_WIDTH = 1280;
|
|
42
42
|
export declare const DOC_CAMERA_IDEAL_HEIGHT = 960;
|
|
43
|
-
/**
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Video bitrate used by MediaRecorder for liveness recordings — raised from
|
|
45
|
+
* an earlier 250k baseline for sharper frames for SmartComply's face
|
|
46
|
+
* extractor (see VideoRecorder.ts, the only consumer of this constant).
|
|
47
|
+
*/
|
|
48
|
+
export declare const RECORDING_BITS_PER_SECOND = 800000;
|
|
45
49
|
/** Max milliseconds to wait for an initial face detection before proceeding. */
|
|
46
50
|
export declare const FACE_DETECT_TIMEOUT_MS = 10000;
|
|
47
51
|
/** Polling interval for the face-present check (ms). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wDAAwD;AACxD,eAAO,MAAM,cAAc,QAAiB,CAAC;AAE7C,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AAIpD,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,+DAA+D;AAC/D,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,6CAA6C;AAC7C,eAAO,MAAM,cAAc,OAAQ,CAAC;AAIpC,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AAElD,sDAAsD;AACtD,eAAO,MAAM,eAAe,QAAmB,CAAC;AAEhD,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AAElD,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,oDAAqD,CAAC;AAEvF,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,0EAA2E,CAAC;AAE1G;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,oBAAqB,CAAC;AAE5D,iEAAiE;AACjE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAI9C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,MAAO,CAAC;AACvC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,OAAQ,CAAC;AAC5C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wDAAwD;AACxD,eAAO,MAAM,cAAc,QAAiB,CAAC;AAE7C,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AAIpD,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,+DAA+D;AAC/D,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,6CAA6C;AAC7C,eAAO,MAAM,cAAc,OAAQ,CAAC;AAIpC,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AAElD,sDAAsD;AACtD,eAAO,MAAM,eAAe,QAAmB,CAAC;AAEhD,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AAElD,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,oDAAqD,CAAC;AAEvF,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,0EAA2E,CAAC;AAE1G;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,oBAAqB,CAAC;AAE5D,iEAAiE;AACjE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAI9C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,MAAO,CAAC;AACvC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,OAAQ,CAAC;AAC5C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAIjD,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAIvC,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAEhD,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AAErD,8EAA8E;AAC9E,eAAO,MAAM,eAAe,QAAS,CAAC"}
|
|
@@ -45,8 +45,12 @@ export const CAMERA_IDEAL_HEIGHT = 480;
|
|
|
45
45
|
/** Ideal resolution for rear-facing document capture camera. */
|
|
46
46
|
export const DOC_CAMERA_IDEAL_WIDTH = 1280;
|
|
47
47
|
export const DOC_CAMERA_IDEAL_HEIGHT = 960;
|
|
48
|
-
/**
|
|
49
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Video bitrate used by MediaRecorder for liveness recordings — raised from
|
|
50
|
+
* an earlier 250k baseline for sharper frames for SmartComply's face
|
|
51
|
+
* extractor (see VideoRecorder.ts, the only consumer of this constant).
|
|
52
|
+
*/
|
|
53
|
+
export const RECORDING_BITS_PER_SECOND = 800000;
|
|
50
54
|
// ── Face detection ───────────────────────────────────────────────────────────
|
|
51
55
|
/** Max milliseconds to wait for an initial face detection before proceeding. */
|
|
52
56
|
export const FACE_DETECT_TIMEOUT_MS = 10000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAEhF,wDAAwD;AACxD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7C,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpD,gFAAgF;AAEhF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAEzC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAK,CAAC;AAEpC,gFAAgF;AAEhF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;AAEvF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,gFAAgF;AAEhF,uFAAuF;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;AAE1G;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAO,CAAU,CAAC;AAE5D,iEAAiE;AACjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,gFAAgF;AAEhF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAI,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAI,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAEhF,wDAAwD;AACxD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7C,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpD,gFAAgF;AAEhF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAEzC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAK,CAAC;AAEpC,gFAAgF;AAEhF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;AAEvF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,gFAAgF;AAEhF,uFAAuF;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;AAE1G;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAO,CAAU,CAAC;AAE5D,iEAAiE;AACjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,gFAAgF;AAEhF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAI,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAI,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAO,CAAC;AAEjD,gFAAgF;AAEhF,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAM,CAAC;AAE7C,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,gFAAgF;AAEhF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAK,CAAC;AAEhD,mEAAmE;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAErD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAM,CAAC"}
|
|
@@ -44,6 +44,7 @@ export declare class SmartComplyFlow {
|
|
|
44
44
|
private livenessEntryId;
|
|
45
45
|
private isDestroyed;
|
|
46
46
|
private headerBackBtn;
|
|
47
|
+
private _keydownHandler;
|
|
47
48
|
private _confirmRetries;
|
|
48
49
|
private _livenessFailures;
|
|
49
50
|
private static readonly MAX_RETRIES;
|
|
@@ -82,6 +83,7 @@ export declare class SmartComplyFlow {
|
|
|
82
83
|
close(): void;
|
|
83
84
|
private mount;
|
|
84
85
|
private initialize;
|
|
86
|
+
private _showExpiryWarningWhenSafe;
|
|
85
87
|
private showStep;
|
|
86
88
|
private renderStep;
|
|
87
89
|
private renderLoading;
|
|
@@ -108,7 +110,6 @@ export declare class SmartComplyFlow {
|
|
|
108
110
|
private processDocumentBlob;
|
|
109
111
|
private handleDocumentProcessingError;
|
|
110
112
|
private renderLiveness;
|
|
111
|
-
private renderResult;
|
|
112
113
|
private showErrorStep;
|
|
113
114
|
private createHeader;
|
|
114
115
|
private createFooter;
|
|
@@ -116,6 +117,8 @@ export declare class SmartComplyFlow {
|
|
|
116
117
|
private createOptionCard;
|
|
117
118
|
private createPrimaryButton;
|
|
118
119
|
private createSecondaryButton;
|
|
120
|
+
/** Click handler that fires once and disables the button, preventing a double-tap double-dispatch. */
|
|
121
|
+
private _onceClick;
|
|
119
122
|
private isDocumentFlow;
|
|
120
123
|
private updateProgress;
|
|
121
124
|
private applyTheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartComplyFlow.d.ts","sourceRoot":"","sources":["../../src/flow/SmartComplyFlow.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIxF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;CAC7C;
|
|
1
|
+
{"version":3,"file":"SmartComplyFlow.d.ts","sourceRoot":"","sources":["../../src/flow/SmartComplyFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ const STEP_ORDER = [
|
|
|
17
17
|
"document_confirm",
|
|
18
18
|
"liveness",
|
|
19
19
|
"done",
|
|
20
|
-
"result",
|
|
21
20
|
];
|
|
22
21
|
const COUNTRY_LABELS = {
|
|
23
22
|
nigeria: "🇳🇬 Nigeria",
|
|
@@ -282,6 +281,7 @@ class SmartComplyFlow {
|
|
|
282
281
|
this.livenessEntryId = null;
|
|
283
282
|
this.isDestroyed = false;
|
|
284
283
|
this.headerBackBtn = null;
|
|
284
|
+
this._keydownHandler = null;
|
|
285
285
|
// Retry safety — max 3 confirmation rejections or liveness failures per session
|
|
286
286
|
this._confirmRetries = 0;
|
|
287
287
|
this._livenessFailures = 0;
|
|
@@ -339,6 +339,10 @@ class SmartComplyFlow {
|
|
|
339
339
|
*/
|
|
340
340
|
close() {
|
|
341
341
|
this.isDestroyed = true;
|
|
342
|
+
if (this._keydownHandler) {
|
|
343
|
+
document.removeEventListener("keydown", this._keydownHandler);
|
|
344
|
+
this._keydownHandler = null;
|
|
345
|
+
}
|
|
342
346
|
this.docCapture?.destroy();
|
|
343
347
|
// Release any pre-warmed camera stream
|
|
344
348
|
if (this._prewarmedStream) {
|
|
@@ -445,6 +449,30 @@ class SmartComplyFlow {
|
|
|
445
449
|
if (this.modal)
|
|
446
450
|
this.modal.style.transform = "translateY(0) scale(1)";
|
|
447
451
|
});
|
|
452
|
+
// Escape closes the dialog; Tab is trapped inside it (standard WCAG dialog pattern).
|
|
453
|
+
this._keydownHandler = (e) => {
|
|
454
|
+
if (e.key === "Escape") {
|
|
455
|
+
e.preventDefault();
|
|
456
|
+
this.close();
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
if (e.key === "Tab" && this.modal) {
|
|
460
|
+
const focusable = this.modal.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');
|
|
461
|
+
if (focusable.length === 0)
|
|
462
|
+
return;
|
|
463
|
+
const first = focusable[0];
|
|
464
|
+
const last = focusable[focusable.length - 1];
|
|
465
|
+
if (e.shiftKey && document.activeElement === first) {
|
|
466
|
+
e.preventDefault();
|
|
467
|
+
last.focus();
|
|
468
|
+
}
|
|
469
|
+
else if (!e.shiftKey && document.activeElement === last) {
|
|
470
|
+
e.preventDefault();
|
|
471
|
+
first.focus();
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
document.addEventListener("keydown", this._keydownHandler);
|
|
448
476
|
}
|
|
449
477
|
async initialize() {
|
|
450
478
|
this.showStep("loading");
|
|
@@ -456,11 +484,7 @@ class SmartComplyFlow {
|
|
|
456
484
|
if (expiresAt) {
|
|
457
485
|
const expiresMs = new Date(expiresAt).getTime() - Date.now();
|
|
458
486
|
const warnMs = Math.max(expiresMs - 120000, 0); // warn 2 min before
|
|
459
|
-
this.sessionExpiryTimer = setTimeout(() =>
|
|
460
|
-
if (!this.isDestroyed && this.currentStep !== "result") {
|
|
461
|
-
this.showErrorStep("Your session is about to expire. Please complete verification quickly or restart.");
|
|
462
|
-
}
|
|
463
|
-
}, warnMs);
|
|
487
|
+
this.sessionExpiryTimer = setTimeout(() => this._showExpiryWarningWhenSafe(), warnMs);
|
|
464
488
|
}
|
|
465
489
|
// Load config
|
|
466
490
|
this.sdkConfig = await this.sdk.initializeConfig();
|
|
@@ -481,6 +505,19 @@ class SmartComplyFlow {
|
|
|
481
505
|
this.showErrorStep(err.message || "Failed to initialize. Please try again.");
|
|
482
506
|
}
|
|
483
507
|
}
|
|
508
|
+
// Defers the expiry warning while the user is on a camera-active step
|
|
509
|
+
// (document_capture/liveness) — showing it there would blow away a live
|
|
510
|
+
// video element and in-progress MediaRecorder mid-scan.
|
|
511
|
+
_showExpiryWarningWhenSafe() {
|
|
512
|
+
if (this.isDestroyed)
|
|
513
|
+
return;
|
|
514
|
+
const cameraActiveSteps = ["document_capture", "liveness"];
|
|
515
|
+
if (cameraActiveSteps.includes(this.currentStep)) {
|
|
516
|
+
this.sessionExpiryTimer = setTimeout(() => this._showExpiryWarningWhenSafe(), 5000);
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
this.showErrorStep("Your session is about to expire. Please complete verification quickly or restart.");
|
|
520
|
+
}
|
|
484
521
|
// ─────────────────────────────────────────────────────────────────
|
|
485
522
|
// Step rendering
|
|
486
523
|
// ─────────────────────────────────────────────────────────────────
|
|
@@ -550,18 +587,12 @@ class SmartComplyFlow {
|
|
|
550
587
|
case "document_confirm":
|
|
551
588
|
this.renderDocumentConfirm(wrapper);
|
|
552
589
|
break;
|
|
553
|
-
case "processing":
|
|
554
|
-
// C1: processing step is dead code — flow now goes to 'done' after submit
|
|
555
|
-
break;
|
|
556
590
|
case "liveness":
|
|
557
591
|
this.renderLiveness(wrapper);
|
|
558
592
|
break;
|
|
559
593
|
case "done":
|
|
560
594
|
this.renderDone(wrapper);
|
|
561
595
|
break;
|
|
562
|
-
case "result":
|
|
563
|
-
// C2: result step is dead code — showResult/renderResult removed
|
|
564
|
-
break;
|
|
565
596
|
case "error":
|
|
566
597
|
break;
|
|
567
598
|
}
|
|
@@ -571,6 +602,23 @@ class SmartComplyFlow {
|
|
|
571
602
|
wrapper.style.opacity = "1";
|
|
572
603
|
wrapper.style.transform = "translateX(0)";
|
|
573
604
|
});
|
|
605
|
+
// Move focus to the new step's heading so keyboard/screen-reader users
|
|
606
|
+
// aren't left on a now-detached button. Skipped for camera-active steps
|
|
607
|
+
// and id_input, which already focuses its first field itself.
|
|
608
|
+
const skipAutoFocusSteps = ["document_capture", "liveness", "id_input"];
|
|
609
|
+
if (!skipAutoFocusSteps.includes(step)) {
|
|
610
|
+
requestAnimationFrame(() => {
|
|
611
|
+
const heading = wrapper.querySelector("h1, h2, h3");
|
|
612
|
+
const target = heading ||
|
|
613
|
+
wrapper.querySelector('button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');
|
|
614
|
+
if (target) {
|
|
615
|
+
if (heading && !heading.hasAttribute("tabindex")) {
|
|
616
|
+
heading.setAttribute("tabindex", "-1");
|
|
617
|
+
}
|
|
618
|
+
target.focus({ preventScroll: true });
|
|
619
|
+
}
|
|
620
|
+
});
|
|
621
|
+
}
|
|
574
622
|
}
|
|
575
623
|
// ── Loading ─────────────────────────────────────────────────────
|
|
576
624
|
renderLoading(container) {
|
|
@@ -1242,14 +1290,14 @@ class SmartComplyFlow {
|
|
|
1242
1290
|
container.appendChild(sub);
|
|
1243
1291
|
}
|
|
1244
1292
|
const yesBtn = this.createPrimaryButton("Yes, that's me — continue");
|
|
1245
|
-
|
|
1293
|
+
this._onceClick(yesBtn, () => {
|
|
1246
1294
|
// B5: Reset retry counter on successful confirmation
|
|
1247
1295
|
this._confirmRetries = 0;
|
|
1248
1296
|
this.showStep("liveness");
|
|
1249
1297
|
});
|
|
1250
1298
|
container.appendChild(yesBtn);
|
|
1251
1299
|
const noBtn = this.createSecondaryButton("No, use a different ID");
|
|
1252
|
-
|
|
1300
|
+
this._onceClick(noBtn, () => {
|
|
1253
1301
|
this._confirmRetries++;
|
|
1254
1302
|
this._ivsName = "";
|
|
1255
1303
|
this._ivsGender = "";
|
|
@@ -1335,14 +1383,14 @@ class SmartComplyFlow {
|
|
|
1335
1383
|
}
|
|
1336
1384
|
container.appendChild(card);
|
|
1337
1385
|
const yesBtn = this.createPrimaryButton("Yes, continue");
|
|
1338
|
-
|
|
1386
|
+
this._onceClick(yesBtn, () => {
|
|
1339
1387
|
// B5: Reset retry counter on successful confirmation
|
|
1340
1388
|
this._confirmRetries = 0;
|
|
1341
1389
|
this.showStep("liveness");
|
|
1342
1390
|
});
|
|
1343
1391
|
container.appendChild(yesBtn);
|
|
1344
1392
|
const noBtn = this.createSecondaryButton("No, retake document");
|
|
1345
|
-
|
|
1393
|
+
this._onceClick(noBtn, () => {
|
|
1346
1394
|
this._confirmRetries++;
|
|
1347
1395
|
this._ocrName = "";
|
|
1348
1396
|
this._ocrDocNumber = "";
|
|
@@ -1843,9 +1891,6 @@ class SmartComplyFlow {
|
|
|
1843
1891
|
this.showErrorStep(err.message || "Liveness verification failed. Please try again.");
|
|
1844
1892
|
});
|
|
1845
1893
|
}
|
|
1846
|
-
renderResult(_container) {
|
|
1847
|
-
// C2: Dead code — flow routes to 'done' step, not 'result'. Kept as stub.
|
|
1848
|
-
}
|
|
1849
1894
|
// ── Error ───────────────────────────────────────────────────────
|
|
1850
1895
|
showErrorStep(message) {
|
|
1851
1896
|
this.currentStep = "error";
|
|
@@ -2131,6 +2176,17 @@ class SmartComplyFlow {
|
|
|
2131
2176
|
});
|
|
2132
2177
|
return btn;
|
|
2133
2178
|
}
|
|
2179
|
+
/** Click handler that fires once and disables the button, preventing a double-tap double-dispatch. */
|
|
2180
|
+
_onceClick(btn, handler) {
|
|
2181
|
+
btn.addEventListener("click", () => {
|
|
2182
|
+
if (btn.disabled)
|
|
2183
|
+
return;
|
|
2184
|
+
btn.disabled = true;
|
|
2185
|
+
btn.style.opacity = "0.6";
|
|
2186
|
+
btn.style.cursor = "default";
|
|
2187
|
+
handler();
|
|
2188
|
+
});
|
|
2189
|
+
}
|
|
2134
2190
|
isDocumentFlow() {
|
|
2135
2191
|
// 1. Check verification_type — handle both string and array from backend
|
|
2136
2192
|
const vType = this.sdkConfig?.verification_type;
|
|
@@ -2160,7 +2216,7 @@ class SmartComplyFlow {
|
|
|
2160
2216
|
const allActionSteps = [...stage1Steps, ...stage2Steps];
|
|
2161
2217
|
const totalSteps = allActionSteps.length;
|
|
2162
2218
|
const actionIndex = allActionSteps.indexOf(this.currentStep);
|
|
2163
|
-
const pct = this.currentStep === "done"
|
|
2219
|
+
const pct = this.currentStep === "done" ? 100
|
|
2164
2220
|
: actionIndex >= 0 ? ((actionIndex + 1) / totalSteps) * 100
|
|
2165
2221
|
: 0;
|
|
2166
2222
|
if (this.progressBar) {
|
|
@@ -2171,7 +2227,7 @@ class SmartComplyFlow {
|
|
|
2171
2227
|
if (this.currentStep === "loading" || this.currentStep === "welcome") {
|
|
2172
2228
|
this.stepLabel.textContent = "";
|
|
2173
2229
|
}
|
|
2174
|
-
else if (this.currentStep === "done"
|
|
2230
|
+
else if (this.currentStep === "done") {
|
|
2175
2231
|
this.stepLabel.textContent = "Complete ✓";
|
|
2176
2232
|
}
|
|
2177
2233
|
else if (stage2Steps.includes(this.currentStep)) {
|
|
@@ -2189,7 +2245,7 @@ class SmartComplyFlow {
|
|
|
2189
2245
|
const dots = Array.from(this.stageDots.children);
|
|
2190
2246
|
const inStage1 = stage1Steps.includes(this.currentStep);
|
|
2191
2247
|
const inStage2 = stage2Steps.includes(this.currentStep);
|
|
2192
|
-
const isComplete = this.currentStep === "done"
|
|
2248
|
+
const isComplete = this.currentStep === "done";
|
|
2193
2249
|
const stage1Active = inStage1 || inStage2 || isComplete;
|
|
2194
2250
|
const stage2Active = inStage2 || isComplete;
|
|
2195
2251
|
if (dots[0])
|