@simprints/simface-sdk 0.6.1 → 0.7.1

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.
@@ -6,9 +6,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { LitElement, html, css } from 'lit';
8
8
  import { customElement, property, query, state } from 'lit/decorators.js';
9
- import { blobToImage, captureFromCamera } from '../services/camera.js';
10
- import { assessFaceQuality, assessFaceQualityForVideo } from '../services/face-detection.js';
11
- import { AUTO_CAPTURE_ANALYSIS_INTERVAL_MS, AUTO_CAPTURE_COUNTDOWN_MS, CAPTURE_GUIDE_MASK_PATH, CAPTURE_GUIDE_PATH, autoCaptureCompleteMessage, autoCaptureCountdownMessage, } from '../shared/auto-capture.js';
9
+ import { captureFromCamera } from '../services/camera.js';
10
+ import { assessFaceQuality } from '../services/face-detection.js';
11
+ import { CAPTURE_GUIDE_MASK_PATH, CAPTURE_GUIDE_PATH, } from '../shared/auto-capture.js';
12
+ import { buildCapturePlan, normalizeCaptureOptions, resolveCaptureCapabilities, } from '../shared/capture-flow.js';
13
+ import { CameraCaptureSessionController, } from '../shared/capture-session.js';
14
+ import { CameraAccessError, blobToImage, captureFromFileInput, openUserFacingCameraStream, } from '../shared/capture-runtime.js';
12
15
  /**
13
16
  * <simface-capture> — Web Component for capturing and quality-checking face images.
14
17
  *
@@ -24,6 +27,8 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
24
27
  this.embedded = false;
25
28
  this.active = false;
26
29
  this.confirmLabel = 'Use this capture';
30
+ this.capturePreference = 'auto-preferred';
31
+ this.allowMediaPickerFallback = true;
27
32
  this.captureState = 'idle';
28
33
  this.errorMessage = '';
29
34
  this.feedbackMessage = 'Start a capture to see camera guidance here.';
@@ -31,30 +36,35 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
31
36
  this.previewUrl = '';
32
37
  this.countdownProgress = 0;
33
38
  this.qualityResult = null;
39
+ this.canTakePhoto = true;
34
40
  this.stream = null;
35
- this.animationFrameId = null;
36
- this.analysisInFlight = false;
37
- this.lastAnalysisTimestamp = 0;
41
+ this.sessionController = null;
42
+ this.currentCaptureStep = null;
38
43
  this.capturedBlob = null;
39
- this.countdownStartedAt = null;
40
- this.bestCaptureBlob = null;
41
- this.bestCaptureScore = -1;
42
- this.bestQualityResult = null;
44
+ this.pendingActiveSync = false;
43
45
  }
44
46
  disconnectedCallback() {
45
47
  super.disconnectedCallback();
46
48
  this.stopEmbeddedSession();
47
49
  }
48
50
  updated(changedProperties) {
49
- if (!this.embedded || !changedProperties.has('active')) {
51
+ if (!this.embedded || !changedProperties.has('active') || this.pendingActiveSync) {
50
52
  return;
51
53
  }
52
- if (this.active) {
53
- void this.startEmbeddedCapture();
54
- return;
55
- }
56
- this.stopEmbeddedSession();
57
- this.resetEmbeddedState();
54
+ this.pendingActiveSync = true;
55
+ queueMicrotask(() => {
56
+ this.pendingActiveSync = false;
57
+ if (!this.isConnected || !this.embedded) {
58
+ return;
59
+ }
60
+ if (this.active) {
61
+ if (this.captureState === 'idle') {
62
+ void this.beginEmbeddedCapture();
63
+ }
64
+ return;
65
+ }
66
+ this.endEmbeddedCapture();
67
+ });
58
68
  }
59
69
  render() {
60
70
  if (this.embedded) {
@@ -74,6 +84,7 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
74
84
  if (this.embedded) {
75
85
  this.active = true;
76
86
  await this.updateComplete;
87
+ await this.beginEmbeddedCapture();
77
88
  return;
78
89
  }
79
90
  await this.handlePopupCapture();
@@ -142,7 +153,7 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
142
153
  <div class="btn-row">
143
154
  ${this.captureState === 'live'
144
155
  ? html `
145
- <button class="btn btn-secondary" @click=${this.handleEmbeddedManualCapture}>Take photo now</button>
156
+ <button class="btn btn-secondary" ?disabled=${!this.canTakePhoto} @click=${this.handleEmbeddedManualCapture}>Take photo now</button>
146
157
  <button class="btn btn-ghost" @click=${this.handleEmbeddedCancel}>Cancel</button>
147
158
  `
148
159
  : ''}
@@ -157,7 +168,7 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
157
168
  : ''}
158
169
  ${this.captureState === 'error'
159
170
  ? html `
160
- <button class="btn btn-primary" @click=${this.startEmbeddedCapture}>Try again</button>
171
+ <button class="btn btn-primary" @click=${this.beginEmbeddedCapture}>Try again</button>
161
172
  <button class="btn btn-ghost" @click=${this.handleEmbeddedCancel}>Cancel</button>
162
173
  `
163
174
  : ''}
@@ -167,7 +178,11 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
167
178
  async handlePopupCapture() {
168
179
  this.captureState = 'starting';
169
180
  try {
170
- const blob = await captureFromCamera();
181
+ const blob = await captureFromCamera({
182
+ presentation: 'popup',
183
+ capturePreference: this.capturePreference,
184
+ allowMediaPickerFallback: this.allowMediaPickerFallback,
185
+ });
171
186
  if (!blob) {
172
187
  this.dispatchCancelled();
173
188
  this.captureState = 'idle';
@@ -190,7 +205,7 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
190
205
  this.dispatchCancelled();
191
206
  this.resetPopupState();
192
207
  }
193
- async startEmbeddedCapture() {
208
+ async beginEmbeddedCapture() {
194
209
  if (!this.active || this.captureState === 'starting' || this.captureState === 'live') {
195
210
  return;
196
211
  }
@@ -199,168 +214,130 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
199
214
  this.captureState = 'starting';
200
215
  this.feedbackMessage = 'Requesting camera access...';
201
216
  this.feedbackTone = 'neutral';
202
- await this.updateComplete;
203
- if (!navigator.mediaDevices?.getUserMedia) {
204
- this.handleEmbeddedError(new Error('This browser does not support inline camera capture.'));
217
+ const options = normalizeCaptureOptions({
218
+ presentation: 'embedded',
219
+ capturePreference: this.capturePreference,
220
+ allowMediaPickerFallback: this.allowMediaPickerFallback,
221
+ label: this.label,
222
+ confirmLabel: this.confirmLabel,
223
+ });
224
+ const capabilities = await resolveCaptureCapabilities({
225
+ capturePreference: options.capturePreference,
226
+ });
227
+ const plan = buildCapturePlan(options, capabilities);
228
+ const cameraStep = plan.steps.find((step) => step === 'auto-camera' || step === 'manual-camera') ?? null;
229
+ const hasMediaPickerFallback = plan.steps.includes('media-picker');
230
+ if (!cameraStep) {
231
+ await this.startEmbeddedMediaPicker();
205
232
  return;
206
233
  }
207
234
  try {
208
- this.stream = await navigator.mediaDevices.getUserMedia({
209
- video: { facingMode: { ideal: 'user' } },
210
- audio: false,
211
- });
212
- this.captureState = 'live';
213
- this.feedbackMessage = 'Center your face in the oval. We will capture automatically when framing looks good.';
214
- await this.updateComplete;
215
- const video = this.embeddedVideoElement;
216
- if (!video) {
217
- throw new Error('Inline camera preview could not be created.');
218
- }
219
- video.srcObject = this.stream;
220
- await this.waitForVideoReady(video);
221
- this.scheduleEmbeddedAnalysis();
235
+ this.stream = await openUserFacingCameraStream();
222
236
  }
223
237
  catch (error) {
238
+ if (error instanceof CameraAccessError && hasMediaPickerFallback) {
239
+ await this.startEmbeddedMediaPicker();
240
+ return;
241
+ }
224
242
  this.handleEmbeddedError(error);
225
- }
226
- }
227
- scheduleEmbeddedAnalysis() {
228
- if (this.captureState !== 'live' || !this.stream) {
229
243
  return;
230
244
  }
231
- if (typeof window.requestAnimationFrame !== 'function' ||
232
- typeof window.cancelAnimationFrame !== 'function') {
233
- this.feedbackMessage = 'Automatic analysis is unavailable. Use Take photo now.';
234
- this.feedbackTone = 'neutral';
245
+ await this.updateComplete;
246
+ if (!this.active) {
247
+ this.stopEmbeddedSession();
235
248
  return;
236
249
  }
237
- this.animationFrameId = window.requestAnimationFrame(async (timestamp) => {
238
- if (this.captureState !== 'live' ||
239
- this.analysisInFlight ||
240
- timestamp - this.lastAnalysisTimestamp < AUTO_CAPTURE_ANALYSIS_INTERVAL_MS) {
241
- this.scheduleEmbeddedAnalysis();
242
- return;
243
- }
244
- const video = this.embeddedVideoElement;
245
- if (!video) {
246
- return;
247
- }
248
- this.lastAnalysisTimestamp = timestamp;
249
- this.analysisInFlight = true;
250
- try {
251
- const qualityResult = await assessFaceQualityForVideo(video, timestamp);
252
- this.qualityResult = qualityResult;
253
- if (qualityResult.passesQualityChecks) {
254
- if (this.countdownStartedAt === null) {
255
- this.countdownStartedAt = timestamp;
256
- this.countdownProgress = 0;
257
- this.feedbackMessage = 'Great framing detected. Hold still while we pick the best frame.';
258
- this.feedbackTone = 'success';
259
- }
260
- await this.considerBestFrame(video, qualityResult);
261
- }
262
- if (this.countdownStartedAt !== null) {
263
- this.countdownProgress = Math.min((timestamp - this.countdownStartedAt) / AUTO_CAPTURE_COUNTDOWN_MS, 1);
264
- this.feedbackMessage = autoCaptureCountdownMessage(timestamp, this.countdownStartedAt, qualityResult);
265
- this.feedbackTone = qualityResult.passesQualityChecks ? 'success' : 'neutral';
266
- if (this.countdownProgress >= 1) {
267
- this.finishCountdownCapture();
268
- return;
269
- }
270
- }
271
- else {
272
- this.feedbackMessage = qualityResult.message;
273
- this.feedbackTone = 'neutral';
274
- }
275
- }
276
- catch {
277
- this.feedbackMessage = 'Automatic analysis is unavailable. Use Take photo now.';
278
- this.feedbackTone = 'neutral';
279
- return;
280
- }
281
- finally {
282
- this.analysisInFlight = false;
283
- }
284
- this.scheduleEmbeddedAnalysis();
285
- });
286
- }
287
- async captureEmbeddedFrame() {
288
250
  const video = this.embeddedVideoElement;
289
- if (!video || this.captureState !== 'live') {
251
+ if (!video || !this.stream) {
252
+ this.handleEmbeddedError(new Error('Inline camera preview could not be created.'));
290
253
  return;
291
254
  }
255
+ video.srcObject = this.stream;
256
+ this.currentCaptureStep = cameraStep;
257
+ this.sessionController = new CameraCaptureSessionController({
258
+ videoElement: video,
259
+ initialMode: cameraStep === 'auto-camera' ? 'auto' : 'manual',
260
+ copy: {
261
+ autoReadyMessage: 'Center your face in the oval. We will capture automatically when framing looks good.',
262
+ manualReadyMessage: 'When you are ready, use Take photo now.',
263
+ autoUnavailableMessage: 'Automatic analysis is unavailable. Use Take photo now.',
264
+ retakeReadyMessage: 'When you are ready, use Take photo now.',
265
+ },
266
+ onStateChange: (state) => this.applySessionState(state),
267
+ });
292
268
  try {
293
- const blob = await this.captureVideoFrame(video);
294
- const qualityResult = await this.assessCapturedBlob(blob);
295
- this.capturedBlob = blob;
296
- this.qualityResult = qualityResult;
297
- this.captureState = 'preview';
298
- this.feedbackMessage = qualityResult?.message ?? 'Review this capture before continuing.';
299
- this.feedbackTone = qualityResult
300
- ? qualityResult.passesQualityChecks
301
- ? 'success'
302
- : 'error'
303
- : 'neutral';
304
- if (this.previewUrl) {
305
- URL.revokeObjectURL(this.previewUrl);
306
- }
307
- this.previewUrl = URL.createObjectURL(blob);
308
- this.countdownProgress = 0;
269
+ await this.sessionController.start();
309
270
  }
310
271
  catch (error) {
311
272
  this.handleEmbeddedError(error);
312
273
  }
313
274
  }
314
- async considerBestFrame(video, qualityResult) {
315
- if (qualityResult.captureScore <= this.bestCaptureScore) {
316
- return;
317
- }
318
- const blob = await this.captureVideoFrame(video);
319
- this.bestCaptureBlob = blob;
320
- this.bestCaptureScore = qualityResult.captureScore;
321
- this.bestQualityResult = qualityResult;
322
- }
323
- finishCountdownCapture() {
324
- if (!this.bestCaptureBlob) {
325
- void this.captureEmbeddedFrame();
326
- return;
275
+ async startEmbeddedMediaPicker() {
276
+ this.stopEmbeddedSession();
277
+ this.currentCaptureStep = 'media-picker';
278
+ this.captureState = 'starting';
279
+ this.feedbackMessage = 'Opening media picker...';
280
+ this.feedbackTone = 'neutral';
281
+ try {
282
+ const blob = await captureFromFileInput();
283
+ if (!blob) {
284
+ this.handleEmbeddedCancel();
285
+ return;
286
+ }
287
+ await this.showPickedPreview(blob);
327
288
  }
328
- this.capturedBlob = this.bestCaptureBlob;
329
- this.qualityResult = this.bestQualityResult;
330
- this.captureState = 'preview';
331
- this.feedbackMessage = autoCaptureCompleteMessage(this.bestQualityResult);
332
- this.feedbackTone = 'success';
333
- if (this.previewUrl) {
334
- URL.revokeObjectURL(this.previewUrl);
289
+ catch (error) {
290
+ this.handleEmbeddedError(error);
335
291
  }
336
- this.previewUrl = URL.createObjectURL(this.bestCaptureBlob);
337
- this.countdownProgress = 1;
338
292
  }
339
- async assessCapturedBlob(blob) {
340
- try {
341
- const image = await blobToImage(blob);
342
- return await assessFaceQuality(image);
343
- }
344
- catch {
345
- return null;
293
+ applySessionState(state) {
294
+ this.captureState = state.phase;
295
+ this.feedbackMessage = state.feedbackMessage;
296
+ this.feedbackTone = state.feedbackTone;
297
+ this.countdownProgress = state.countdownProgress;
298
+ this.qualityResult = state.qualityResult;
299
+ this.errorMessage = state.phase === 'error' ? state.errorMessage : '';
300
+ this.canTakePhoto = state.canTakePhoto;
301
+ if (state.phase === 'preview') {
302
+ this.capturedBlob = state.previewBlob;
303
+ this.setPreviewBlob(state.previewBlob);
304
+ return;
346
305
  }
306
+ this.capturedBlob = null;
307
+ this.clearPreviewUrl();
308
+ }
309
+ async showPickedPreview(blob) {
310
+ const qualityResult = await this.assessPickedBlob(blob);
311
+ this.capturedBlob = blob;
312
+ this.qualityResult = qualityResult;
313
+ this.captureState = 'preview';
314
+ this.feedbackMessage = qualityResult?.message ?? 'Review this capture before continuing.';
315
+ this.feedbackTone = qualityResult
316
+ ? qualityResult.passesQualityChecks
317
+ ? 'success'
318
+ : 'error'
319
+ : 'neutral';
320
+ this.countdownProgress = qualityResult ? 1 : 0;
321
+ this.setPreviewBlob(blob);
347
322
  }
348
323
  handleEmbeddedManualCapture() {
349
- void this.captureEmbeddedFrame();
324
+ void this.sessionController?.takePhotoNow().catch((error) => {
325
+ this.handleEmbeddedError(error);
326
+ });
350
327
  }
351
328
  handleEmbeddedRetake() {
352
329
  this.capturedBlob = null;
353
330
  this.qualityResult = null;
354
- this.captureState = 'live';
355
- if (this.previewUrl) {
356
- URL.revokeObjectURL(this.previewUrl);
357
- this.previewUrl = '';
331
+ this.clearPreviewUrl();
332
+ if (this.currentCaptureStep === 'media-picker') {
333
+ if (this.active) {
334
+ void this.beginEmbeddedCapture();
335
+ }
336
+ return;
358
337
  }
359
- this.feedbackMessage = 'Ready to capture again.';
360
- this.feedbackTone = 'neutral';
361
- this.resetCountdown();
362
- this.resumeEmbeddedVideo();
363
- this.scheduleEmbeddedAnalysis();
338
+ void this.sessionController?.retake().catch((error) => {
339
+ this.handleEmbeddedError(error);
340
+ });
364
341
  }
365
342
  handleEmbeddedConfirm() {
366
343
  if (!this.capturedBlob) {
@@ -386,11 +363,14 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
386
363
  this.feedbackTone = 'error';
387
364
  this.dispatchError(this.errorMessage);
388
365
  }
366
+ endEmbeddedCapture() {
367
+ this.stopEmbeddedSession();
368
+ this.resetEmbeddedState();
369
+ }
389
370
  stopEmbeddedSession() {
390
- if (this.animationFrameId !== null) {
391
- window.cancelAnimationFrame(this.animationFrameId);
392
- this.animationFrameId = null;
393
- }
371
+ this.sessionController?.stop();
372
+ this.sessionController = null;
373
+ this.currentCaptureStep = null;
394
374
  if (this.stream) {
395
375
  this.stream.getTracks().forEach((track) => track.stop());
396
376
  this.stream = null;
@@ -399,15 +379,10 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
399
379
  if (video) {
400
380
  video.srcObject = null;
401
381
  }
402
- this.analysisInFlight = false;
403
- this.lastAnalysisTimestamp = 0;
404
- this.resetCountdown();
382
+ this.countdownProgress = 0;
405
383
  }
406
384
  resetEmbeddedState() {
407
- if (this.previewUrl) {
408
- URL.revokeObjectURL(this.previewUrl);
409
- this.previewUrl = '';
410
- }
385
+ this.clearPreviewUrl();
411
386
  this.captureState = 'idle';
412
387
  this.errorMessage = '';
413
388
  this.feedbackMessage = 'Start a capture to see camera guidance here.';
@@ -420,6 +395,16 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
420
395
  this.captureState = 'idle';
421
396
  this.errorMessage = '';
422
397
  }
398
+ setPreviewBlob(blob) {
399
+ this.clearPreviewUrl();
400
+ this.previewUrl = URL.createObjectURL(blob);
401
+ }
402
+ clearPreviewUrl() {
403
+ if (this.previewUrl) {
404
+ URL.revokeObjectURL(this.previewUrl);
405
+ this.previewUrl = '';
406
+ }
407
+ }
423
408
  dispatchCaptured(blob) {
424
409
  this.dispatchEvent(new CustomEvent('simface-captured', {
425
410
  detail: { imageBlob: blob },
@@ -447,66 +432,19 @@ let SimFaceCapture = class SimFaceCapture extends LitElement {
447
432
  if (this.feedbackTone === 'error') {
448
433
  return 'quality-bad';
449
434
  }
450
- return 'quality-neutral';
451
- }
452
- waitForVideoReady(video) {
453
- if (video.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA) {
454
- return video.play().then(() => undefined);
435
+ if (this.feedbackTone === 'manual') {
436
+ return 'quality-manual';
455
437
  }
456
- return new Promise((resolve, reject) => {
457
- const handleReady = () => {
458
- cleanup();
459
- video.play().then(() => resolve()).catch(reject);
460
- };
461
- const handleError = () => {
462
- cleanup();
463
- reject(new Error('Failed to start the inline camera preview.'));
464
- };
465
- const cleanup = () => {
466
- video.removeEventListener('loadedmetadata', handleReady);
467
- video.removeEventListener('error', handleError);
468
- };
469
- video.addEventListener('loadedmetadata', handleReady, { once: true });
470
- video.addEventListener('error', handleError, { once: true });
471
- });
438
+ return 'quality-neutral';
472
439
  }
473
- captureVideoFrame(video) {
474
- if (!video.videoWidth || !video.videoHeight) {
475
- return Promise.reject(new Error('Camera preview is not ready yet.'));
476
- }
477
- const canvas = document.createElement('canvas');
478
- canvas.width = video.videoWidth;
479
- canvas.height = video.videoHeight;
480
- const context = canvas.getContext('2d');
481
- if (!context) {
482
- return Promise.reject(new Error('Failed to initialize camera capture.'));
440
+ async assessPickedBlob(blob) {
441
+ try {
442
+ const image = await blobToImage(blob);
443
+ return await assessFaceQuality(image);
483
444
  }
484
- context.drawImage(video, 0, 0, canvas.width, canvas.height);
485
- return new Promise((resolve, reject) => {
486
- canvas.toBlob((blob) => {
487
- if (!blob) {
488
- reject(new Error('Failed to capture an image.'));
489
- return;
490
- }
491
- resolve(blob);
492
- }, 'image/jpeg', 0.92);
493
- });
494
- }
495
- resumeEmbeddedVideo() {
496
- const video = this.embeddedVideoElement;
497
- if (!video) {
498
- return;
445
+ catch {
446
+ return null;
499
447
  }
500
- void video.play().catch(() => {
501
- // Ignore replay failures here; the initial preview startup path already errors loudly.
502
- });
503
- }
504
- resetCountdown() {
505
- this.countdownStartedAt = null;
506
- this.countdownProgress = 0;
507
- this.bestCaptureBlob = null;
508
- this.bestCaptureScore = -1;
509
- this.bestQualityResult = null;
510
448
  }
511
449
  };
512
450
  SimFaceCapture.styles = css `
@@ -560,6 +498,7 @@ SimFaceCapture.styles = css `
560
498
  width: 100%;
561
499
  height: 100%;
562
500
  object-fit: cover;
501
+ transform: scaleX(-1);
563
502
  }
564
503
 
565
504
  .preview-img {
@@ -611,12 +550,6 @@ SimFaceCapture.styles = css `
611
550
  gap: 12px;
612
551
  }
613
552
 
614
- .preview-img-inline {
615
- max-width: 100%;
616
- border-radius: 8px;
617
- margin: 12px 0;
618
- }
619
-
620
553
  .btn {
621
554
  display: inline-flex;
622
555
  align-items: center;
@@ -682,6 +615,11 @@ SimFaceCapture.styles = css `
682
615
  color: #0f172a;
683
616
  }
684
617
 
618
+ .quality-manual {
619
+ background: #e0f2fe;
620
+ color: #0f172a;
621
+ }
622
+
685
623
  .spinner {
686
624
  display: inline-block;
687
625
  width: 24px;
@@ -715,6 +653,12 @@ __decorate([
715
653
  __decorate([
716
654
  property({ type: String, attribute: 'confirm-label' })
717
655
  ], SimFaceCapture.prototype, "confirmLabel", void 0);
656
+ __decorate([
657
+ property({ type: String, attribute: 'capture-preference' })
658
+ ], SimFaceCapture.prototype, "capturePreference", void 0);
659
+ __decorate([
660
+ property({ type: Boolean, attribute: 'allow-media-picker-fallback' })
661
+ ], SimFaceCapture.prototype, "allowMediaPickerFallback", void 0);
718
662
  __decorate([
719
663
  state()
720
664
  ], SimFaceCapture.prototype, "captureState", void 0);
@@ -736,6 +680,9 @@ __decorate([
736
680
  __decorate([
737
681
  state()
738
682
  ], SimFaceCapture.prototype, "qualityResult", void 0);
683
+ __decorate([
684
+ state()
685
+ ], SimFaceCapture.prototype, "canTakePhoto", void 0);
739
686
  __decorate([
740
687
  query('#embedded-video')
741
688
  ], SimFaceCapture.prototype, "embeddedVideoElement", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"simface-capture.js","sourceRoot":"","sources":["../../src/components/simface-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simface-capture.js","sourceRoot":"","sources":["../../src/components/simface-capture.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,8 +10,8 @@
10
10
  * // Verify an existing user
11
11
  * const result = await verify({ apiUrl: '...', projectId: '...', apiKey: '...' }, 'user-123');
12
12
  */
13
- import type { SimFaceConfig, EnrollResult, VerifyResult } from './types/index.js';
14
- export type { SimFaceConfig, EnrollResult, VerifyResult, FaceQualityResult, ValidateResult } from './types/index.js';
13
+ import type { SimFaceCaptureOptions, SimFaceConfig, EnrollResult, VerifyResult } from './types/index.js';
14
+ export type { CapturePreference, CapturePresentation, SimFaceCaptureOptions, SimFaceConfig, EnrollResult, VerifyResult, FaceQualityResult, ValidateResult, } from './types/index.js';
15
15
  export { SimFaceAPIClient } from './services/api-client.js';
16
16
  export { assessFaceQuality, assessFaceQualityForVideo } from './services/face-detection.js';
17
17
  export { captureFromCamera, blobToImage, blobToDataURL } from './services/camera.js';
@@ -23,8 +23,10 @@ export { SimFaceCapture } from './components/simface-capture.js';
23
23
  * and sends it to the backend for enrollment.
24
24
  *
25
25
  * If the user is already enrolled, returns { alreadyEnrolled: true }.
26
+ * The optional capture options let the host choose popup vs embedded capture
27
+ * and the preferred fallback policy.
26
28
  */
27
- export declare function enroll(config: SimFaceConfig, clientId: string): Promise<EnrollResult>;
29
+ export declare function enroll(config: SimFaceConfig, clientId: string, captureOptions?: SimFaceCaptureOptions): Promise<EnrollResult>;
28
30
  /**
29
31
  * Verify a user with facial recognition.
30
32
  *
@@ -32,5 +34,7 @@ export declare function enroll(config: SimFaceConfig, clientId: string): Promise
32
34
  * and sends it to the backend for comparison against the enrolled image.
33
35
  *
34
36
  * If the user is not enrolled, returns { notEnrolled: true }.
37
+ * The optional capture options let the host choose popup vs embedded capture
38
+ * and the preferred fallback policy.
35
39
  */
36
- export declare function verify(config: SimFaceConfig, clientId: string): Promise<VerifyResult>;
40
+ export declare function verify(config: SimFaceConfig, clientId: string, captureOptions?: SimFaceCaptureOptions): Promise<VerifyResult>;