@incodetech/core 2.3.0-rc.1 → 2.3.0-rc.3
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/{BrowserDiagnosticsCryptoProvider-CU6kBvqv.esm.js → BrowserDiagnosticsCryptoProvider-C2E4mGEX.esm.js} +1 -1
- package/dist/{FaceDetectionProvider-BfhWkK90.esm.js → FaceDetectionProvider-DAVK6BAe.esm.js} +4 -4
- package/dist/ae-signature.esm.js +1 -1
- package/dist/{apiError-Budb6m6w.esm.js → apiError-BArJSmSN.esm.js} +1 -1
- package/dist/authentication.d.ts +2 -2
- package/dist/authentication.esm.js +2 -2
- package/dist/{authenticationManager-cMXhG70r.esm.js → authenticationManager-DNciG_Ri.esm.js} +3 -3
- package/dist/{authenticationManager-CjXBjC-c.d.ts → authenticationManager-DcTHmYmL.d.ts} +1 -1
- package/dist/{authenticationStateMachine-MOYz4HCf.esm.js → authenticationStateMachine-BFOcuSH6.esm.js} +2 -2
- package/dist/consent.d.ts +1 -1
- package/dist/{consentManager-BhYFeKiG.d.ts → consentManager-uhDPdU6i.d.ts} +8 -8
- package/dist/{deepsightLoader-DDv3vhXU.esm.js → deepsightLoader-DPJZSnHo.esm.js} +3 -3
- package/dist/document-capture.d.ts +1 -1
- package/dist/{documentCaptureManager-DensIj5F.d.ts → documentCaptureManager-DD0qtFdE.d.ts} +1 -1
- package/dist/dynamic-forms.esm.js +2 -2
- package/dist/{dynamicFormsManager-BbS-XMFc.esm.js → dynamicFormsManager-BDi3ffWG.esm.js} +1 -1
- package/dist/{dynamicFormsStateMachine-D8zHBCh4.esm.js → dynamicFormsStateMachine-B7-mpYDT.esm.js} +1 -1
- package/dist/ekyb.esm.js +3 -3
- package/dist/{ekybManager-5aiac8wL.esm.js → ekybManager-BfpqWpNP.esm.js} +1 -1
- package/dist/{ekybStateMachine-Bn2IE9rx.esm.js → ekybStateMachine-BGnzaF__.esm.js} +1 -1
- package/dist/electronic-signature.esm.js +1 -1
- package/dist/{electronicSignatureManager-BJJH0Tvi.esm.js → electronicSignatureManager-Bc8MLmTL.esm.js} +1 -1
- package/dist/extensibility.d.ts +8 -8
- package/dist/extensibility.esm.js +10 -10
- package/dist/{faceCaptureManagerFactory-BeUl8fl1.d.ts → faceCaptureManagerFactory-Cx-8SqRy.d.ts} +45 -37
- package/dist/{faceCaptureManagerFactory-B7Ms6pSs.esm.js → faceCaptureManagerFactory-qPW__uXd.esm.js} +1 -1
- package/dist/{faceCaptureSetup-bkAlr5d8.esm.js → faceCaptureSetup-DpM1YYl9.esm.js} +264 -42
- package/dist/{feature-management-E0mq0pMs.esm.js → feature-management-Bzr9uaS4.esm.js} +1 -1
- package/dist/feature-management.esm.js +1 -1
- package/dist/flow.esm.js +3 -3
- package/dist/{flowCompletionService-DJp1odGN.esm.js → flowCompletionService-D0qKFy5Y.esm.js} +1 -1
- package/dist/{flowServices-DjPFGs_D.esm.js → flowServices-CnyFU9Bz.esm.js} +4 -4
- package/dist/geolocation.esm.js +2 -2
- package/dist/{geolocationManager-D5906YXx.esm.js → geolocationManager-BqM__4xb.esm.js} +1 -1
- package/dist/{geolocationStateMachine-BVOduc3y.esm.js → geolocationStateMachine-DpxY4O3h.esm.js} +1 -1
- package/dist/id-selfie-flow.esm.js +8 -7
- package/dist/id.d.ts +2 -2
- package/dist/id.esm.js +4 -4
- package/dist/idCaptureDefaults-Cd-qOMUt.esm.js +282 -0
- package/dist/{idCaptureManager-rfV9dIXy.esm.js → idCaptureManager-CO4WBQQN.esm.js} +3 -3
- package/dist/{idCaptureManager-DKESug0R.d.ts → idCaptureManager-De7O0TOD.d.ts} +23 -4
- package/dist/{idCaptureServices-i1KxugN7.esm.js → idCaptureServices-CFuKdAW7.esm.js} +58 -11
- package/dist/{idCaptureStateMachine-Ne_PXth_.esm.js → idCaptureStateMachine-CzyZ_21z.esm.js} +210 -66
- package/dist/identity-reuse.d.ts +1 -1
- package/dist/{identityReuseManager-v2TH5g7e.d.ts → identityReuseManager-BFDI7iFK.d.ts} +4 -4
- package/dist/index.esm.js +1 -1
- package/dist/mandatory-consent.d.ts +1 -1
- package/dist/{mandatoryConsentManager-vhv1co_n.d.ts → mandatoryConsentManager-Csfl7_XQ.d.ts} +4 -4
- package/dist/{multipartRecordingService-OEgIRvqC.esm.js → multipartRecordingService-CuXLH4tK.esm.js} +446 -1
- package/dist/personhood.esm.js +4 -4
- package/dist/qe-signature.esm.js +1 -1
- package/dist/{runChildModule-CI1gGWN1.esm.js → runChildModule-CTeh8a1T.esm.js} +1 -1
- package/dist/{sdkVersion-BZh6dj53.esm.js → sdkVersion-DYlnESxD.esm.js} +1 -1
- package/dist/selfie.d.ts +2 -2
- package/dist/selfie.esm.js +5 -5
- package/dist/{selfieManager-B-2c1n_x.esm.js → selfieManager-CFGf-DmP.esm.js} +3 -3
- package/dist/{selfieManager-4RRLi21P.d.ts → selfieManager-jXqwqosi.d.ts} +1 -1
- package/dist/{selfieStateMachine-Bzx41R8d.esm.js → selfieStateMachine-BJVwANex.esm.js} +2 -2
- package/dist/{session-3LmvAU4S.esm.js → session-Cs6z9Stj.esm.js} +3 -3
- package/dist/session.esm.js +4 -4
- package/dist/{sessionInitializer-BFk33E67.esm.js → sessionInitializer-DKCQfxZ2.esm.js} +3 -3
- package/dist/{setup-BWG-hivt.esm.js → setup-B-qr0dC6.esm.js} +4 -4
- package/dist/{trueSightService-BN-Hzw82.esm.js → trueSightService-De306VXK.esm.js} +3 -3
- package/dist/video-selfie.esm.js +4 -5
- package/dist/{videoSelfieCameraWarmer-B8PcYqmz.esm.js → videoSelfieCameraWarmer-BRz5aQPN.esm.js} +3 -3
- package/dist/wasm.esm.js +1 -1
- package/dist/workflow.esm.js +14 -14
- package/package.json +3 -3
- package/dist/idCaptureDefaults-CbPA-Auz.esm.js +0 -727
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
|
|
2
2
|
import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
|
|
3
|
-
import { l as trueSightLog, m as isTrueSightTesting } from "./trueSightService-
|
|
4
|
-
import "./sessionInitializer-
|
|
3
|
+
import { l as trueSightLog, m as isTrueSightTesting } from "./trueSightService-De306VXK.esm.js";
|
|
4
|
+
import "./sessionInitializer-DKCQfxZ2.esm.js";
|
|
5
5
|
import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
|
|
6
6
|
import { t as addDeviceStats } from "./stats-CZcy2J53.esm.js";
|
|
7
7
|
import { t as isAndroid } from "./platform-DkcRc9JV.esm.js";
|
|
8
8
|
import { i as assign, n as enqueueActions, r as sendTo, t as setup } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
9
9
|
import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
|
|
10
10
|
import { n as invokeRequestPermissionActor, t as checkPermission } from "./permissionServices-Bj_fyWtv.esm.js";
|
|
11
|
-
import { a as sendLabelInspectionEvent, i as initializeDeepsightSession, r as initializeCamera, s as stopStream, t as FaceDetectionProvider } from "./FaceDetectionProvider-
|
|
11
|
+
import { a as sendLabelInspectionEvent, i as initializeDeepsightSession, r as initializeCamera, s as stopStream, t as FaceDetectionProvider } from "./FaceDetectionProvider-DAVK6BAe.esm.js";
|
|
12
12
|
import { t as FACE_ERROR_CODES } from "./types-BN5RPPIZ.esm.js";
|
|
13
13
|
import { a as flagFaceManualReview, i as imageFileToDataUrl, n as runProtectedAttempt, r as cameraCycleProvider, s as PROTECTED_CAPTURE_TARGET, t as createCameraCycleOwnership } from "./createCameraCycleOwnership-CX3hJGKc.esm.js";
|
|
14
14
|
import { n as releaseFaceAvatarWarmup, r as warmFaceAvatar, t as createFaceAvatar } from "./createFaceAvatar-BNHdeFj8.esm.js";
|
|
15
15
|
import { t as IncodeCanvas } from "./canvas-BxFzWTt-.esm.js";
|
|
16
16
|
import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-uYZYFu4J.esm.js";
|
|
17
17
|
import { t as getDeviceClass } from "./getDeviceClass-5NYZg9s6.esm.js";
|
|
18
|
-
import { n as getAdaptiveMediaRecorderOptions, t as MultipartRecordingService } from "./multipartRecordingService-
|
|
18
|
+
import { n as CameraCompositor, r as getAdaptiveMediaRecorderOptions, t as MultipartRecordingService } from "./multipartRecordingService-CuXLH4tK.esm.js";
|
|
19
19
|
//#region src/internal/avatar/concealment.ts
|
|
20
20
|
/**
|
|
21
21
|
* Maps a backend concealment option to the internal avatar flags. `OPTION_NONE`
|
|
@@ -496,7 +496,28 @@ var LocalRecordingProvider = class {
|
|
|
496
496
|
recorder?.stream?.getTracks().forEach((track) => track.stop());
|
|
497
497
|
});
|
|
498
498
|
}
|
|
499
|
+
/**
|
|
500
|
+
* Discards the in-progress recording without producing a result: detaches
|
|
501
|
+
* the recorder's handlers, stops it, releases its cloned tracks and clears
|
|
502
|
+
* the flags. Idempotent, and safe after `stopRecording` or when never
|
|
503
|
+
* started. Mirrors `MultipartRecordingProvider.reset()` so an attempt that is
|
|
504
|
+
* released before finalization cannot leave a live camera clone behind
|
|
505
|
+
* (ENG-56648).
|
|
506
|
+
*/
|
|
499
507
|
reset() {
|
|
508
|
+
this.removeEventListeners();
|
|
509
|
+
const recorder = this.mediaRecorder;
|
|
510
|
+
if (recorder) {
|
|
511
|
+
recorder.ondataavailable = null;
|
|
512
|
+
recorder.onerror = null;
|
|
513
|
+
recorder.onstop = null;
|
|
514
|
+
if (recorder.state !== "inactive") try {
|
|
515
|
+
recorder.stop();
|
|
516
|
+
} catch {}
|
|
517
|
+
recorder.stream?.getTracks().forEach((track) => track.stop());
|
|
518
|
+
this.mediaRecorder = null;
|
|
519
|
+
}
|
|
520
|
+
this.stream = null;
|
|
500
521
|
this._isRecording = false;
|
|
501
522
|
this._error = null;
|
|
502
523
|
this._hasError = false;
|
|
@@ -571,49 +592,146 @@ var LocalRecordingService = class {
|
|
|
571
592
|
* the interview asynchronously by the backend's `selfie` scope consumer, so
|
|
572
593
|
* its upload id must not be forwarded to `/omni/add/face` as a legacy
|
|
573
594
|
* `recordingId`.
|
|
595
|
+
*
|
|
596
|
+
* The recording is scoped to the capture step (ENG-56648). The recorder
|
|
597
|
+
* records a stable `CameraCompositor` stream instead of a raw camera clone, so
|
|
598
|
+
* every attempt can end its own clone before PRC and POC run and the next
|
|
599
|
+
* attempt swaps a fresh clone into the same multipart upload. The owning
|
|
600
|
+
* controller completes the upload once the backend accepts a capture or the
|
|
601
|
+
* step ends without a retry.
|
|
574
602
|
*/
|
|
575
603
|
var MultipartFaceRecordingService = class {
|
|
576
604
|
constructor() {
|
|
577
605
|
this.service = new MultipartRecordingService("selfie");
|
|
606
|
+
this.audioSource = [];
|
|
607
|
+
this.needsVideoSourceReplacement = false;
|
|
578
608
|
this.pausedForAttempt = false;
|
|
609
|
+
this.startInFlight = false;
|
|
610
|
+
this.suspendRequested = false;
|
|
611
|
+
this.stopping = false;
|
|
579
612
|
}
|
|
580
613
|
async start(stream) {
|
|
581
|
-
if (this.
|
|
582
|
-
|
|
583
|
-
this.
|
|
614
|
+
if (this.stopping) throw new Error("Face recording already completed");
|
|
615
|
+
if (this.compositor) {
|
|
616
|
+
await this.resume(stream);
|
|
617
|
+
return;
|
|
618
|
+
}
|
|
619
|
+
const recordingSource = stream.clone();
|
|
620
|
+
const compositor = new CameraCompositor({ fps: 30 });
|
|
621
|
+
this.startInFlight = true;
|
|
622
|
+
try {
|
|
623
|
+
const composite = compositor.start(recordingSource);
|
|
624
|
+
await this.service.start(composite);
|
|
625
|
+
} catch (error) {
|
|
626
|
+
compositor.stop();
|
|
627
|
+
recordingSource.getTracks().forEach((track) => track.stop());
|
|
628
|
+
this.service.cleanup();
|
|
629
|
+
throw error;
|
|
630
|
+
} finally {
|
|
631
|
+
this.startInFlight = false;
|
|
632
|
+
}
|
|
633
|
+
if (this.stopping) {
|
|
634
|
+
compositor.stop();
|
|
635
|
+
recordingSource.getTracks().forEach((track) => track.stop());
|
|
636
|
+
this.service.cleanup();
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
639
|
+
this.compositor = compositor;
|
|
640
|
+
this.recordingSource = recordingSource;
|
|
641
|
+
this.audioSource = recordingSource.getAudioTracks();
|
|
642
|
+
if (this.suspendRequested) {
|
|
643
|
+
this.suspendRequested = false;
|
|
644
|
+
this.suspend();
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
/**
|
|
648
|
+
* Pauses the container and ends the camera clone on the calling thread. The
|
|
649
|
+
* composite stream and the upload stay open for the next attempt.
|
|
650
|
+
*/
|
|
651
|
+
suspend() {
|
|
652
|
+
if (this.stopping) return;
|
|
653
|
+
if (!this.compositor) {
|
|
654
|
+
this.suspendRequested = this.startInFlight;
|
|
584
655
|
return;
|
|
585
656
|
}
|
|
586
|
-
|
|
657
|
+
if (!this.pausedForAttempt) this.pausedForAttempt = this.service.pause();
|
|
658
|
+
this.releaseCameraClone({ keepAudio: true });
|
|
659
|
+
this.needsVideoSourceReplacement = true;
|
|
587
660
|
}
|
|
588
661
|
async prepareUpload() {
|
|
589
|
-
this.
|
|
662
|
+
this.suspend();
|
|
590
663
|
return { recordingId: null };
|
|
591
664
|
}
|
|
592
665
|
async stop() {
|
|
593
|
-
|
|
594
|
-
await this.service.stop();
|
|
595
|
-
} finally {
|
|
596
|
-
this.pausedForAttempt = false;
|
|
597
|
-
}
|
|
666
|
+
await this.complete();
|
|
598
667
|
return { recordingId: null };
|
|
599
668
|
}
|
|
600
669
|
pauseForBackground() {
|
|
601
|
-
this.
|
|
670
|
+
this.suspend();
|
|
602
671
|
}
|
|
603
|
-
async resumeFromBackground() {
|
|
604
|
-
this.
|
|
672
|
+
async resumeFromBackground(stream) {
|
|
673
|
+
if (!this.compositor || this.stopping) return;
|
|
674
|
+
await this.resume(stream);
|
|
605
675
|
}
|
|
606
676
|
async stopAndGetVideo() {
|
|
677
|
+
await this.complete();
|
|
678
|
+
return { videoBase64: void 0 };
|
|
679
|
+
}
|
|
680
|
+
cleanup() {
|
|
681
|
+
this.suspendRequested = false;
|
|
682
|
+
this.pausedForAttempt = false;
|
|
683
|
+
this.needsVideoSourceReplacement = false;
|
|
684
|
+
this.releaseCameraClone({ keepAudio: false });
|
|
685
|
+
this.compositor?.stop();
|
|
686
|
+
this.compositor = void 0;
|
|
687
|
+
this.recordingSource = void 0;
|
|
688
|
+
this.audioSource = [];
|
|
689
|
+
this.service.cleanup();
|
|
690
|
+
}
|
|
691
|
+
/** Swaps this attempt's camera clone into the composite and resumes. */
|
|
692
|
+
async resume(stream) {
|
|
693
|
+
const compositor = this.compositor;
|
|
694
|
+
if (!compositor) return;
|
|
695
|
+
if (this.needsVideoSourceReplacement) {
|
|
696
|
+
const recordingSource = stream.clone();
|
|
697
|
+
recordingSource.getAudioTracks().forEach((track) => track.stop());
|
|
698
|
+
compositor.switchVideo(recordingSource);
|
|
699
|
+
this.needsVideoSourceReplacement = false;
|
|
700
|
+
this.recordingSource = recordingSource;
|
|
701
|
+
const result = await compositor.resume();
|
|
702
|
+
if (result !== "resumed") throw new Error(`Face recording camera did not resume: ${result}`);
|
|
703
|
+
}
|
|
704
|
+
if (this.pausedForAttempt && !this.service.resume()) throw new Error("Face recording did not resume");
|
|
705
|
+
this.pausedForAttempt = false;
|
|
706
|
+
}
|
|
707
|
+
/**
|
|
708
|
+
* Completes the scoped upload. The camera clone ends synchronously before the
|
|
709
|
+
* drain so a step that ends mid-attempt never pins the camera; the composite
|
|
710
|
+
* stays alive until the recorder has emitted its final chunk.
|
|
711
|
+
*/
|
|
712
|
+
async complete() {
|
|
713
|
+
this.stopping = true;
|
|
714
|
+
this.suspendRequested = false;
|
|
715
|
+
this.releaseCameraClone({ keepAudio: false });
|
|
607
716
|
try {
|
|
608
717
|
await this.service.stop();
|
|
609
718
|
} finally {
|
|
719
|
+
this.compositor?.stop();
|
|
720
|
+
this.compositor = void 0;
|
|
721
|
+
this.recordingSource = void 0;
|
|
722
|
+
this.audioSource = [];
|
|
610
723
|
this.pausedForAttempt = false;
|
|
724
|
+
this.needsVideoSourceReplacement = false;
|
|
611
725
|
}
|
|
612
|
-
return { videoBase64: void 0 };
|
|
613
726
|
}
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
727
|
+
releaseCameraClone(options) {
|
|
728
|
+
try {
|
|
729
|
+
this.compositor?.pause();
|
|
730
|
+
} catch {}
|
|
731
|
+
const tracks = options.keepAudio ? this.recordingSource?.getVideoTracks() ?? [] : /* @__PURE__ */ new Set([...this.recordingSource?.getTracks() ?? [], ...this.audioSource]);
|
|
732
|
+
for (const track of tracks) try {
|
|
733
|
+
track.stop();
|
|
734
|
+
} catch {}
|
|
617
735
|
}
|
|
618
736
|
};
|
|
619
737
|
/**
|
|
@@ -637,51 +755,88 @@ function createRecordingService(params) {
|
|
|
637
755
|
//#endregion
|
|
638
756
|
//#region src/internal/faceCapture/protectedFaceAttempt.ts
|
|
639
757
|
const ON_DEVICE_MANUAL_CAPTURE_TIMEOUT_MS = 2147483647;
|
|
758
|
+
/**
|
|
759
|
+
* Recorder hooks for one protected face attempt.
|
|
760
|
+
*
|
|
761
|
+
* The recording service comes from the owner of the capture step (the face
|
|
762
|
+
* controller), so a step-scoped service (`suspend` present) is started or
|
|
763
|
+
* resumed by every attempt, paused with its camera clone ended before POC, and
|
|
764
|
+
* suspended again on release; only the controller completes it (ENG-56648).
|
|
765
|
+
* Per-attempt services (local video liveness, capture-only video) keep their
|
|
766
|
+
* stop-before-POC and cleanup-on-release behavior.
|
|
767
|
+
*/
|
|
640
768
|
var ProtectedFaceRecorderHooks = class {
|
|
641
|
-
constructor(config,
|
|
642
|
-
this.config = config;
|
|
643
|
-
this.dependencies = dependencies;
|
|
769
|
+
constructor(config, delivery, getRecordingService) {
|
|
644
770
|
this.delivery = delivery;
|
|
771
|
+
this.getRecordingService = getRecordingService;
|
|
772
|
+
this.disposed = false;
|
|
645
773
|
this.mode = config.onDeviceFaceResultsSubmissionEnabled === true || config.enableFaceRecording !== true && config.deepsightLiveness !== "VIDEOLIVENESS" ? "none" : "finalizeBeforePoc";
|
|
646
774
|
}
|
|
647
775
|
async start(unprotectedStream) {
|
|
648
776
|
if (this.mode === "none") return;
|
|
649
|
-
const
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
}
|
|
656
|
-
|
|
777
|
+
const service = await this.getRecordingService();
|
|
778
|
+
if (!service) return;
|
|
779
|
+
this.service = service;
|
|
780
|
+
if (this.disposed) {
|
|
781
|
+
this.suspendOrCleanup();
|
|
782
|
+
return;
|
|
783
|
+
}
|
|
784
|
+
try {
|
|
785
|
+
await service.start(unprotectedStream);
|
|
786
|
+
} catch (error) {
|
|
787
|
+
if (service.suspend) {
|
|
788
|
+
service.suspend();
|
|
789
|
+
trueSightLog("warning", "recording", "faceScan", "face recording did not resume for this attempt");
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
792
|
+
throw error;
|
|
793
|
+
}
|
|
794
|
+
if (this.disposed) this.suspendOrCleanup();
|
|
657
795
|
}
|
|
658
796
|
async prepareForPoc() {
|
|
659
|
-
|
|
797
|
+
const service = this.service;
|
|
798
|
+
if (!service) return {};
|
|
660
799
|
if (this.delivery === "local") {
|
|
661
800
|
try {
|
|
662
|
-
const result = await
|
|
801
|
+
const result = await service.stopAndGetVideo();
|
|
663
802
|
this.captureOnlyVideoBase64 = result.videoBase64;
|
|
664
803
|
} catch {
|
|
665
804
|
this.captureOnlyVideoBase64 = void 0;
|
|
666
805
|
}
|
|
667
806
|
return {};
|
|
668
807
|
}
|
|
669
|
-
return
|
|
808
|
+
if (service.suspend) return service.prepareUpload();
|
|
809
|
+
return service.stop();
|
|
670
810
|
}
|
|
671
811
|
async resumeAfterPoc() {}
|
|
672
812
|
pauseForBackground() {
|
|
673
813
|
this.service?.pauseForBackground?.();
|
|
674
814
|
}
|
|
675
815
|
async resumeFromBackground(unprotectedStream) {
|
|
676
|
-
|
|
816
|
+
const service = this.service;
|
|
817
|
+
if (!service?.resumeFromBackground || this.disposed) return;
|
|
818
|
+
try {
|
|
819
|
+
await service.resumeFromBackground(unprotectedStream);
|
|
820
|
+
} catch {
|
|
821
|
+
service.suspend?.();
|
|
822
|
+
trueSightLog("warning", "recording", "faceScan", "face recording did not resume after foreground");
|
|
823
|
+
}
|
|
677
824
|
}
|
|
678
825
|
dispose() {
|
|
826
|
+
this.disposed = true;
|
|
679
827
|
try {
|
|
680
|
-
this.
|
|
828
|
+
this.suspendOrCleanup();
|
|
681
829
|
} finally {
|
|
682
830
|
this.service = void 0;
|
|
683
831
|
}
|
|
684
832
|
}
|
|
833
|
+
/** Step-scoped services suspend (the owner completes them); others clean up. */
|
|
834
|
+
suspendOrCleanup() {
|
|
835
|
+
const service = this.service;
|
|
836
|
+
if (!service) return;
|
|
837
|
+
if (service.suspend) service.suspend();
|
|
838
|
+
else service.cleanup();
|
|
839
|
+
}
|
|
685
840
|
takeCaptureOnlyVideo() {
|
|
686
841
|
const video = this.captureOnlyVideoBase64;
|
|
687
842
|
this.captureOnlyVideoBase64 = void 0;
|
|
@@ -705,9 +860,19 @@ var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
|
|
|
705
860
|
this.recorderTransferred = false;
|
|
706
861
|
this.pendingSignals = [];
|
|
707
862
|
this.provider = options.faceDetection;
|
|
708
|
-
this.recorder = new ProtectedFaceRecorderHooks(options.config, options.
|
|
863
|
+
this.recorder = new ProtectedFaceRecorderHooks(options.config, options.delivery, options.getRecordingService ?? (() => this.createAttemptRecordingService()));
|
|
709
864
|
this.cycleOwnership = createCameraCycleOwnership(options.cycle);
|
|
710
865
|
}
|
|
866
|
+
/** Per-attempt fallback when no step owner supplies the recording service. */
|
|
867
|
+
async createAttemptRecordingService() {
|
|
868
|
+
const wasmUtil = await this.options.dependencies.getWasmUtil();
|
|
869
|
+
return createRecordingService({
|
|
870
|
+
config: this.options.config,
|
|
871
|
+
wasmUtil,
|
|
872
|
+
sessionToken: getToken(),
|
|
873
|
+
localDelivery: this.options.delivery === "local"
|
|
874
|
+
});
|
|
875
|
+
}
|
|
711
876
|
get delivery() {
|
|
712
877
|
return this.options.delivery;
|
|
713
878
|
}
|
|
@@ -973,6 +1138,8 @@ function createProtectedFaceControllerActor(options) {
|
|
|
973
1138
|
let committedPreview;
|
|
974
1139
|
let pendingAutoPreview;
|
|
975
1140
|
let recording = {};
|
|
1141
|
+
let stepRecording;
|
|
1142
|
+
let stepRecordingPending;
|
|
976
1143
|
let generation = 0;
|
|
977
1144
|
let active = true;
|
|
978
1145
|
let diagnosticAttempt = 0;
|
|
@@ -991,6 +1158,48 @@ function createProtectedFaceControllerActor(options) {
|
|
|
991
1158
|
if (!controllerInput) throw new Error("Protected face controller is not bound");
|
|
992
1159
|
return controllerInput;
|
|
993
1160
|
};
|
|
1161
|
+
/**
|
|
1162
|
+
* One recording service per capture step (ENG-56648). Every attempt of the
|
|
1163
|
+
* step starts or resumes it; `completeStepRecording` completes it when the
|
|
1164
|
+
* backend accepts a capture or the step ends without a retry.
|
|
1165
|
+
*/
|
|
1166
|
+
const getStepRecordingService = () => {
|
|
1167
|
+
if (stepRecording) return Promise.resolve(stepRecording);
|
|
1168
|
+
if (stepRecordingPending) return stepRecordingPending;
|
|
1169
|
+
const input = getControllerInput();
|
|
1170
|
+
const pending = (async () => {
|
|
1171
|
+
const wasmUtil = await input.dependencies.getWasmUtil();
|
|
1172
|
+
if (!active) return;
|
|
1173
|
+
stepRecording ??= createRecordingService({
|
|
1174
|
+
config: input.config,
|
|
1175
|
+
wasmUtil,
|
|
1176
|
+
sessionToken: getToken(),
|
|
1177
|
+
localDelivery: options.delivery === "local"
|
|
1178
|
+
});
|
|
1179
|
+
return stepRecording;
|
|
1180
|
+
})();
|
|
1181
|
+
stepRecordingPending = pending;
|
|
1182
|
+
pending.finally(() => {
|
|
1183
|
+
if (stepRecordingPending === pending) stepRecordingPending = void 0;
|
|
1184
|
+
});
|
|
1185
|
+
return pending;
|
|
1186
|
+
};
|
|
1187
|
+
const completeStepRecording = () => {
|
|
1188
|
+
const service = stepRecording;
|
|
1189
|
+
stepRecording = void 0;
|
|
1190
|
+
if (!service) return;
|
|
1191
|
+
if (!service.suspend) {
|
|
1192
|
+
try {
|
|
1193
|
+
service.cleanup();
|
|
1194
|
+
} catch {}
|
|
1195
|
+
return;
|
|
1196
|
+
}
|
|
1197
|
+
service.stop().catch(() => void 0).finally(() => {
|
|
1198
|
+
try {
|
|
1199
|
+
service.cleanup();
|
|
1200
|
+
} catch {}
|
|
1201
|
+
});
|
|
1202
|
+
};
|
|
994
1203
|
const ensureRuntime = () => {
|
|
995
1204
|
if (!runtime) {
|
|
996
1205
|
const input = getControllerInput();
|
|
@@ -1006,7 +1215,8 @@ function createProtectedFaceControllerActor(options) {
|
|
|
1006
1215
|
acquireCamera: (provider) => initializeCamera({
|
|
1007
1216
|
config: input.config,
|
|
1008
1217
|
provider
|
|
1009
|
-
})
|
|
1218
|
+
}),
|
|
1219
|
+
getRecordingService: getStepRecordingService
|
|
1010
1220
|
});
|
|
1011
1221
|
if (deepsightService) runtime.setDeepsightService(deepsightService);
|
|
1012
1222
|
}
|
|
@@ -1250,12 +1460,16 @@ function createProtectedFaceControllerActor(options) {
|
|
|
1250
1460
|
case "RESET":
|
|
1251
1461
|
releaseCurrent("retry");
|
|
1252
1462
|
return;
|
|
1463
|
+
case "COMPLETE_RECORDING":
|
|
1464
|
+
completeStepRecording();
|
|
1465
|
+
return;
|
|
1253
1466
|
case "RELEASE": releaseCurrent(command.reason);
|
|
1254
1467
|
}
|
|
1255
1468
|
});
|
|
1256
1469
|
return () => {
|
|
1257
1470
|
active = false;
|
|
1258
1471
|
releaseCurrent("externalStop");
|
|
1472
|
+
completeStepRecording();
|
|
1259
1473
|
};
|
|
1260
1474
|
});
|
|
1261
1475
|
}
|
|
@@ -1491,6 +1705,10 @@ const faceCaptureMachine = setup({
|
|
|
1491
1705
|
if (!isProtectedFaceControllerRunning(self)) return;
|
|
1492
1706
|
enqueue.sendTo("protectedFaceController", { type: "RESET" });
|
|
1493
1707
|
}),
|
|
1708
|
+
completeProtectedRecording: enqueueActions(({ enqueue, self }) => {
|
|
1709
|
+
if (!isProtectedFaceControllerRunning(self)) return;
|
|
1710
|
+
enqueue.sendTo("protectedFaceController", { type: "COMPLETE_RECORDING" });
|
|
1711
|
+
}),
|
|
1494
1712
|
sendProtectedAutoCapture: enqueueActions(({ enqueue, self, event }) => {
|
|
1495
1713
|
if (!isProtectedFaceControllerRunning(self)) return;
|
|
1496
1714
|
enqueue.sendTo("protectedFaceController", {
|
|
@@ -1980,7 +2198,7 @@ const faceCaptureMachine = setup({
|
|
|
1980
2198
|
}
|
|
1981
2199
|
] } },
|
|
1982
2200
|
success: {
|
|
1983
|
-
entry: "cleanup",
|
|
2201
|
+
entry: ["completeProtectedRecording", "cleanup"],
|
|
1984
2202
|
after: { 3e3: { target: "#faceCapture.processing" } }
|
|
1985
2203
|
}
|
|
1986
2204
|
}
|
|
@@ -2026,7 +2244,7 @@ const faceCaptureMachine = setup({
|
|
|
2026
2244
|
onError: { target: "finished" }
|
|
2027
2245
|
} },
|
|
2028
2246
|
terminalProcessing: {
|
|
2029
|
-
entry: "cleanup",
|
|
2247
|
+
entry: ["completeProtectedRecording", "cleanup"],
|
|
2030
2248
|
invoke: {
|
|
2031
2249
|
id: "processFace",
|
|
2032
2250
|
src: "processFace",
|
|
@@ -2055,7 +2273,11 @@ const faceCaptureMachine = setup({
|
|
|
2055
2273
|
type: "final"
|
|
2056
2274
|
},
|
|
2057
2275
|
error: {
|
|
2058
|
-
entry: [
|
|
2276
|
+
entry: [
|
|
2277
|
+
"completeProtectedRecording",
|
|
2278
|
+
"stopMediaStream",
|
|
2279
|
+
"releaseAvatarWarmup"
|
|
2280
|
+
],
|
|
2059
2281
|
on: { RESET: {
|
|
2060
2282
|
target: "idle",
|
|
2061
2283
|
actions: ["resetProtectedController", "resetContext"]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __toESM } from "./rolldown-runtime-FDOR9p9I.esm.js";
|
|
2
|
-
import { t as SDK_VERSION } from "./sdkVersion-
|
|
2
|
+
import { t as SDK_VERSION } from "./sdkVersion-DYlnESxD.esm.js";
|
|
3
3
|
import { t as BrowserLazyImportProvider } from "./BrowserLazyImportProvider-BhoA957O.esm.js";
|
|
4
4
|
let currentEnvironment;
|
|
5
5
|
/** Effective tier: the explicitly-set value, else the default (see note above). */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { E as updateFeatureManagementUser, T as subscribeFeatureManagement, _ as getIsFeatureManagementInitialized, a as stringParam, d as ONBOARDING_WEB_SDK_PARAMETER_STORE, f as getExperiment, g as getFeatureParameterStore, h as getFeatureManagementVersion, i as numberParam, l as resolveExperiment, m as getFeatureGate, n as defineExperimentParams, o as EXPERIMENT_UNAVAILABLE_SENTINEL, p as getFeatureDynamicConfig, r as enumParam, s as exposeExperimentOnce, t as booleanParam, u as resolveExperimentOnce, x as logEvent, y as getLayer } from "./feature-management-
|
|
1
|
+
import { E as updateFeatureManagementUser, T as subscribeFeatureManagement, _ as getIsFeatureManagementInitialized, a as stringParam, d as ONBOARDING_WEB_SDK_PARAMETER_STORE, f as getExperiment, g as getFeatureParameterStore, h as getFeatureManagementVersion, i as numberParam, l as resolveExperiment, m as getFeatureGate, n as defineExperimentParams, o as EXPERIMENT_UNAVAILABLE_SENTINEL, p as getFeatureDynamicConfig, r as enumParam, s as exposeExperimentOnce, t as booleanParam, u as resolveExperimentOnce, x as logEvent, y as getLayer } from "./feature-management-Bzr9uaS4.esm.js";
|
|
2
2
|
export { EXPERIMENT_UNAVAILABLE_SENTINEL, ONBOARDING_WEB_SDK_PARAMETER_STORE, booleanParam, defineExperimentParams, enumParam, exposeExperimentOnce, getExperiment, getFeatureDynamicConfig, getFeatureGate, getFeatureManagementVersion, getFeatureParameterStore, getIsFeatureManagementInitialized, getLayer, logEvent, numberParam, resolveExperiment, resolveExperimentOnce, stringParam, subscribeFeatureManagement, updateFeatureManagementUser };
|
package/dist/flow.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { v as addEvent } from "./events-ijlbX_Wx.esm.js";
|
|
2
|
-
import { a as resolveDashboardModuleConfig, c as getRequiredWasmPipelines, j as mergeDashboardConfig, l as normalizeFlowModules, n as getFlow, o as enrichFlowModuleConfig, r as preloadDashboardFlow, s as getNextRequiredWasmPipelines, t as completeDeferredActivation, u as resolveFlowModuleConfig } from "./flowServices-
|
|
2
|
+
import { a as resolveDashboardModuleConfig, c as getRequiredWasmPipelines, j as mergeDashboardConfig, l as normalizeFlowModules, n as getFlow, o as enrichFlowModuleConfig, r as preloadDashboardFlow, s as getNextRequiredWasmPipelines, t as completeDeferredActivation, u as resolveFlowModuleConfig } from "./flowServices-CnyFU9Bz.esm.js";
|
|
3
3
|
import { i as assign, s as createActor, t as setup, u as createManager } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
4
4
|
import { n as fromPromise } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
|
|
5
|
-
import { n as getFinishStatus, r as getTotalScoreStatus, t as classifyScoreStatus } from "./flowCompletionService-
|
|
6
|
-
import { n as attachFlowEventEmitter, t as runChildModule } from "./runChildModule-
|
|
5
|
+
import { n as getFinishStatus, r as getTotalScoreStatus, t as classifyScoreStatus } from "./flowCompletionService-D0qKFy5Y.esm.js";
|
|
6
|
+
import { n as attachFlowEventEmitter, t as runChildModule } from "./runChildModule-CTeh8a1T.esm.js";
|
|
7
7
|
import { n as isAdvanceableError } from "./advanceableErrors-CpF2cBy6.esm.js";
|
|
8
8
|
//#region src/modules/flow/noOpFlowModuleMachine.ts
|
|
9
9
|
const noOpFlowModuleMachine = setup({}).createMachine({
|
package/dist/{flowCompletionService-DJp1odGN.esm.js → flowCompletionService-D0qKFy5Y.esm.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as api } from "./api-Bx3gKW_y.esm.js";
|
|
2
2
|
import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
|
|
3
|
-
import { i as toIncodeApiError } from "./apiError-
|
|
3
|
+
import { i as toIncodeApiError } from "./apiError-BArJSmSN.esm.js";
|
|
4
4
|
//#region src/modules/flow/flowCompletionService.ts
|
|
5
5
|
const getFinishStatus = async (flowId, signal) => {
|
|
6
6
|
const url = `${endpoints.finishStatus}${flowId ? `?flowId=${flowId}` : ""}`;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as getWasmStatus } from "./warmup-CUUnwYxe.esm.js";
|
|
2
|
-
import { E as updateFeatureManagementUser } from "./feature-management-
|
|
2
|
+
import { E as updateFeatureManagementUser } from "./feature-management-Bzr9uaS4.esm.js";
|
|
3
3
|
import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
|
|
4
|
-
import { i as initializeSession, l as whenSessionFingerprintSettled, r as getSessionFingerprintResult, u as getStandaloneFlowPolicy } from "./sessionInitializer-
|
|
4
|
+
import { i as initializeSession, l as whenSessionFingerprintSettled, r as getSessionFingerprintResult, u as getStandaloneFlowPolicy } from "./sessionInitializer-DKCQfxZ2.esm.js";
|
|
5
5
|
import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
|
|
6
|
-
import { i as toIncodeApiError } from "./apiError-
|
|
7
|
-
import "./session-
|
|
6
|
+
import { i as toIncodeApiError } from "./apiError-BArJSmSN.esm.js";
|
|
7
|
+
import "./session-Cs6z9Stj.esm.js";
|
|
8
8
|
import { i as toEkycConfig } from "./ekycUtils-Dew1rBG0.esm.js";
|
|
9
9
|
//#region src/modules/flow/dashboardConfig.ts
|
|
10
10
|
function isPlainObject(value) {
|
package/dist/geolocation.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as createGeolocationManager } from "./geolocationManager-
|
|
2
|
-
import { t as geolocationMachine } from "./geolocationStateMachine-
|
|
1
|
+
import { t as createGeolocationManager } from "./geolocationManager-BqM__4xb.esm.js";
|
|
2
|
+
import { t as geolocationMachine } from "./geolocationStateMachine-DpxY4O3h.esm.js";
|
|
3
3
|
export { createGeolocationManager, geolocationMachine };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ijlbX_Wx.esm.js";
|
|
2
2
|
import { s as createActor, u as createManager } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
3
|
-
import { t as geolocationMachine } from "./geolocationStateMachine-
|
|
3
|
+
import { t as geolocationMachine } from "./geolocationStateMachine-DpxY4O3h.esm.js";
|
|
4
4
|
//#region ../infra/src/providers/browser/BrowserGeolocationProvider.ts
|
|
5
5
|
var BrowserGeolocationProvider = class {
|
|
6
6
|
getCurrentPosition() {
|
package/dist/{geolocationStateMachine-BVOduc3y.esm.js → geolocationStateMachine-DpxY4O3h.esm.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as api } from "./api-Bx3gKW_y.esm.js";
|
|
2
2
|
import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
|
|
3
3
|
import { a as isIOS, t as isAndroid } from "./platform-DkcRc9JV.esm.js";
|
|
4
|
-
import { n as isConnectivityError } from "./apiError-
|
|
4
|
+
import { n as isConnectivityError } from "./apiError-BArJSmSN.esm.js";
|
|
5
5
|
import { i as assign, t as setup } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
6
6
|
import { n as fromPromise } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
|
|
7
7
|
//#region src/modules/geolocation/geolocationServices.ts
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { t as ensureWasmPipelines } from "./setup-
|
|
1
|
+
import { t as ensureWasmPipelines } from "./setup-B-qr0dC6.esm.js";
|
|
2
2
|
import { r as WasmUtilProvider } from "./safeStorage-B-trhxg6.esm.js";
|
|
3
3
|
import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
|
|
4
|
-
import { a as resolveDashboardModuleConfig, d as facingModeForStep } from "./flowServices-
|
|
4
|
+
import { a as resolveDashboardModuleConfig, d as facingModeForStep } from "./flowServices-CnyFU9Bz.esm.js";
|
|
5
5
|
import { i as assign, r as sendTo, s as createActor, t as setup, u as createManager } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
6
6
|
import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
|
|
7
|
-
import { n as encryptSelfieImage, o as startDetection, t as FaceDetectionProvider } from "./FaceDetectionProvider-
|
|
7
|
+
import { n as encryptSelfieImage, o as startDetection, t as FaceDetectionProvider } from "./FaceDetectionProvider-DAVK6BAe.esm.js";
|
|
8
8
|
import { t as StreamCanvasProcessingSession } from "./StreamCanvasProcessingSession-CBnbTnOr.esm.js";
|
|
9
9
|
import { n as getWindowDimensions } from "./getDeviceClass-CeBiEayS.esm.js";
|
|
10
10
|
import { a as uploadSelfie, r as processFace } from "./selfieErrorUtils-UiQ46EBa.esm.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
11
|
+
import { n as CameraCompositor } from "./multipartRecordingService-CuXLH4tK.esm.js";
|
|
12
|
+
import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider, t as DEFAULT_ID_CAPTURE_GEOMETRY } from "./idCaptureDefaults-Cd-qOMUt.esm.js";
|
|
13
|
+
import { _ as validateUploadResponse, h as uploadIdImage, u as processId, v as ID_ERROR_CODES } from "./idCaptureServices-CFuKdAW7.esm.js";
|
|
13
14
|
import { t as StreamCanvasCapture } from "./StreamCanvasCapture-C9jtgBdT.esm.js";
|
|
14
|
-
import { n as getFinishStatus } from "./flowCompletionService-
|
|
15
|
-
import { i as delay, n as defaultAcquireCamera, o as isSelfieValidationError, s as isWrongVideoSelfieIdSide } from "./videoSelfieCameraWarmer-
|
|
15
|
+
import { n as getFinishStatus } from "./flowCompletionService-D0qKFy5Y.esm.js";
|
|
16
|
+
import { i as delay, n as defaultAcquireCamera, o as isSelfieValidationError, s as isWrongVideoSelfieIdSide } from "./videoSelfieCameraWarmer-BRz5aQPN.esm.js";
|
|
16
17
|
//#region src/modules/id-selfie-flow/idSelfieFlowStepDetector.ts
|
|
17
18
|
/** Default autocapture window for the selfie step. */
|
|
18
19
|
const SELFIE_AUTOCAPTURE_MS = 1e4;
|
package/dist/id.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { n as PermissionStatus, t as PermissionResult } from "./types-BEwVKkLJ.j
|
|
|
3
3
|
import { t as CameraStream } from "./camera-9wWD-pwg.js";
|
|
4
4
|
import { r as IdCaptureSettings, t as DetectionOrientation } from "./IIdCaptureCapability-RNiFhvXR.js";
|
|
5
5
|
import { A as MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, B as DeviceWalletProvider, C as IdDocumentType, D as UploadIdResponse, E as IdFlowStep, F as DeviceWalletDecision, G as DigitalIdPlatformSupport, H as DIGITAL_ID_REGISTRY, I as DeviceWalletDecryptResponse, J as resolveDigitalIdImplementation, K as ResolvedDigitalIdRoute, L as DeviceWalletFailReason, M as ManualUploadContext, N as ManualUploadSide, P as ManualUploadTab, R as DeviceWalletOutput, S as IdCapturedImageData, T as IdErrorCode, U as DigitalIdDocumentType, V as DIGITAL_ID_DOCUMENT_TYPES, W as DigitalIdFunnelEntry, Y as DigitalIdProviderId, Z as RedirectReturnParams, _ as IdCaptureInput, a as CaptureOnlyResponse, b as IdCaptureOutput, c as DetectionStatus, d as IdCaptureContext, f as IdCaptureDependencies, g as IdCaptureGeometry, h as IdCaptureEvent, i as CaptureIdResponse, j as MANUAL_UPLOAD_MAX_RETRIES, k as MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, l as ID_ERROR_CODES, m as IdCaptureDigitalIdMethod, n as AcceptedDocumentType, o as CapturedImage, p as IdCaptureDigitalIdFlowType, q as isRedirectFlowType, r as AddBarcodeV3Response, s as DetectionArea, t as AcceptedDocument, u as IdCaptureConfig, v as IdCaptureMode, w as IdError, x as IdCaptureThresholds, y as IdCaptureOnlyConfig, z as DeviceWalletPlatform } from "./types-byBHOzCG2.js";
|
|
6
|
-
import { A as
|
|
6
|
+
import { A as pauseRecordingForAttempt, C as addBarcode, D as getRealQualityValue, E as finalizeRecordingSession, F as stopRecording, I as stopStream, L as uploadIdImage, M as processId, N as resumeRecordingAfterPause, O as initializeIdCapture, P as startRecordingSession, R as uploadManualIdFile, S as ValidationError, T as disposeRecordingSession, _ as IdCaptureInitResult, a as CreateIdCaptureOnlyActorOptions, b as UploadIdImageParams, c as IdCaptureOnlyMachine, d as IdCaptureActor, f as createIdCaptureActor, g as FinalizedIdRecording, h as AddBarcodeParams, j as prepareRecordingForCameraRetry, k as isSuspendableRecordingSession, l as idCaptureOnlyMachine, m as idCaptureMachine, n as IdCaptureManager, o as IdCaptureOnlyActor, p as IdCaptureMachine, r as IdCaptureState, s as createIdCaptureOnlyActor, t as createIdCaptureManager, u as CreateIdCaptureActorOptions, v as InitializeIdCaptureParams, w as barcodeToBase64, x as UploadManualIdFileParams, y as StartRecordingParams, z as validateUploadResponse } from "./idCaptureManager-De7O0TOD.js";
|
|
7
7
|
//#region src/modules/id/deviceWallet/deviceWalletErrors.d.ts
|
|
8
8
|
/**
|
|
9
9
|
* Fail reason → i18n key for the device-wallet error screen (same shape as
|
|
@@ -47,4 +47,4 @@ declare function createIdCaptureOnlyManagerFromActor(actor: IdCaptureOnlyActor,
|
|
|
47
47
|
*/
|
|
48
48
|
declare function createIdCaptureOnlyManager(options: CreateIdCaptureOnlyActorOptions): IdCaptureOnlyManager;
|
|
49
49
|
//#endregion
|
|
50
|
-
export { AcceptedDocument, AcceptedDocumentType, AddBarcodeParams, AddBarcodeV3Response, type CameraStream, CaptureIdResponse, CaptureOnlyResponse, CapturedImage, type CreateIdCaptureActorOptions, type CreateIdCaptureOnlyActorOptions, DEVICE_WALLET_ERROR_KEYS, DIGITAL_ID_DOCUMENT_TYPES, DIGITAL_ID_REGISTRY, DetectionArea, type DetectionOrientation, DetectionStatus, type DeviceWalletDecision, type DeviceWalletDecryptResponse, type DeviceWalletFailReason, type DeviceWalletOutput, type DeviceWalletPlatform, type DeviceWalletProvider, type DigitalIdDocumentType, type DigitalIdFunnelEntry, type DigitalIdPlatformSupport, type DigitalIdProviderId, FinalizedIdRecording, ID_ERROR_CODES, type IdCaptureActor, IdCaptureConfig, IdCaptureContext, IdCaptureDependencies, IdCaptureDigitalIdFlowType, IdCaptureDigitalIdMethod, IdCaptureEvent, IdCaptureGeometry, IdCaptureInitResult, IdCaptureInput, type IdCaptureMachine, type IdCaptureManager, IdCaptureMode, type IdCaptureOnlyActor, IdCaptureOnlyConfig, type IdCaptureOnlyMachine, type IdCaptureOnlyManager, IdCaptureOutput, type IdCaptureSettings, type IdCaptureState, IdCaptureThresholds, IdCapturedImageData, IdDocumentType, IdError, IdErrorCode, IdFlowStep, InitializeIdCaptureParams, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, MANUAL_UPLOAD_MAX_RETRIES, type ManualUploadContext, type ManualUploadSide, type ManualUploadTab, type PermissionResult, type PermissionStatus, type RedirectReturnParams, type ResolvedDigitalIdRoute, StartRecordingParams, UploadIdImageParams, UploadIdResponse, UploadManualIdFileParams, ValidationError, addBarcode, barcodeToBase64, createIdCaptureActor, createIdCaptureManager, createIdCaptureOnlyActor, createIdCaptureOnlyManager, createIdCaptureOnlyManagerFromActor, disposeRecordingSession, finalizeRecordingSession, getRealQualityValue, idCaptureMachine, idCaptureOnlyMachine, initializeIdCapture, isRedirectFlowType, pauseRecordingForAttempt, prepareRecordingForCameraRetry, processId, resolveDigitalIdImplementation, resolveWalletPlatform, startRecordingSession, stopRecording, stopStream, uploadIdImage, uploadManualIdFile, validateUploadResponse };
|
|
50
|
+
export { AcceptedDocument, AcceptedDocumentType, AddBarcodeParams, AddBarcodeV3Response, type CameraStream, CaptureIdResponse, CaptureOnlyResponse, CapturedImage, type CreateIdCaptureActorOptions, type CreateIdCaptureOnlyActorOptions, DEVICE_WALLET_ERROR_KEYS, DIGITAL_ID_DOCUMENT_TYPES, DIGITAL_ID_REGISTRY, DetectionArea, type DetectionOrientation, DetectionStatus, type DeviceWalletDecision, type DeviceWalletDecryptResponse, type DeviceWalletFailReason, type DeviceWalletOutput, type DeviceWalletPlatform, type DeviceWalletProvider, type DigitalIdDocumentType, type DigitalIdFunnelEntry, type DigitalIdPlatformSupport, type DigitalIdProviderId, FinalizedIdRecording, ID_ERROR_CODES, type IdCaptureActor, IdCaptureConfig, IdCaptureContext, IdCaptureDependencies, IdCaptureDigitalIdFlowType, IdCaptureDigitalIdMethod, IdCaptureEvent, IdCaptureGeometry, IdCaptureInitResult, IdCaptureInput, type IdCaptureMachine, type IdCaptureManager, IdCaptureMode, type IdCaptureOnlyActor, IdCaptureOnlyConfig, type IdCaptureOnlyMachine, type IdCaptureOnlyManager, IdCaptureOutput, type IdCaptureSettings, type IdCaptureState, IdCaptureThresholds, IdCapturedImageData, IdDocumentType, IdError, IdErrorCode, IdFlowStep, InitializeIdCaptureParams, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, MANUAL_UPLOAD_MAX_RETRIES, type ManualUploadContext, type ManualUploadSide, type ManualUploadTab, type PermissionResult, type PermissionStatus, type RedirectReturnParams, type ResolvedDigitalIdRoute, StartRecordingParams, UploadIdImageParams, UploadIdResponse, UploadManualIdFileParams, ValidationError, addBarcode, barcodeToBase64, createIdCaptureActor, createIdCaptureManager, createIdCaptureOnlyActor, createIdCaptureOnlyManager, createIdCaptureOnlyManagerFromActor, disposeRecordingSession, finalizeRecordingSession, getRealQualityValue, idCaptureMachine, idCaptureOnlyMachine, initializeIdCapture, isRedirectFlowType, isSuspendableRecordingSession, pauseRecordingForAttempt, prepareRecordingForCameraRetry, processId, resolveDigitalIdImplementation, resolveWalletPlatform, resumeRecordingAfterPause, startRecordingSession, stopRecording, stopStream, uploadIdImage, uploadManualIdFile, validateUploadResponse };
|
package/dist/id.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as eventModuleNames } from "./events-ijlbX_Wx.esm.js";
|
|
2
2
|
import { i as assign, s as createActor } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
3
3
|
import { n as fromPromise } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
|
|
4
|
-
import { a as createIdProtectedCaptureController, c as DIGITAL_ID_DOCUMENT_TYPES, d as resolveDigitalIdImplementation, f as MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, h as resolveWalletPlatform, i as createIdCaptureOnlyDeliveryActor, l as DIGITAL_ID_REGISTRY, m as MANUAL_UPLOAD_MAX_RETRIES, n as provideIdProtectedCaptureController, p as MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, r as attachIdProtectedCaptureController, t as idCaptureMachine, u as isRedirectFlowType } from "./idCaptureStateMachine-
|
|
5
|
-
import { n as createIdCaptureActor, r as createIdCaptureManagerFromActor, t as createIdCaptureManager } from "./idCaptureManager-
|
|
6
|
-
import { a as getRealQualityValue, c as
|
|
4
|
+
import { a as createIdProtectedCaptureController, c as DIGITAL_ID_DOCUMENT_TYPES, d as resolveDigitalIdImplementation, f as MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, h as resolveWalletPlatform, i as createIdCaptureOnlyDeliveryActor, l as DIGITAL_ID_REGISTRY, m as MANUAL_UPLOAD_MAX_RETRIES, n as provideIdProtectedCaptureController, p as MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, r as attachIdProtectedCaptureController, t as idCaptureMachine, u as isRedirectFlowType } from "./idCaptureStateMachine-CzyZ_21z.esm.js";
|
|
5
|
+
import { n as createIdCaptureActor, r as createIdCaptureManagerFromActor, t as createIdCaptureManager } from "./idCaptureManager-CO4WBQQN.esm.js";
|
|
6
|
+
import { _ as validateUploadResponse, a as getRealQualityValue, b as resolveIdCaptureThresholds, c as pauseRecordingForAttempt, d as resumeRecordingAfterPause, f as startRecordingSession, g as uploadManualIdFile, h as uploadIdImage, i as finalizeRecordingSession, l as prepareRecordingForCameraRetry, m as stopStream, n as barcodeToBase64, o as initializeIdCapture, p as stopRecording, r as disposeRecordingSession, s as isSuspendableRecordingSession, t as addBarcode, u as processId, v as ID_ERROR_CODES } from "./idCaptureServices-CFuKdAW7.esm.js";
|
|
7
7
|
import { t as invokeOnCaptureCallback } from "./invokeOnCaptureCallback-BjzPjJ_p.esm.js";
|
|
8
8
|
//#region src/modules/id/deviceWallet/deviceWalletErrors.ts
|
|
9
9
|
/**
|
|
@@ -213,4 +213,4 @@ function createIdCaptureOnlyManager(options) {
|
|
|
213
213
|
return createIdCaptureOnlyManagerFromActor(createIdCaptureOnlyActor(options), options.config);
|
|
214
214
|
}
|
|
215
215
|
//#endregion
|
|
216
|
-
export { DEVICE_WALLET_ERROR_KEYS, DIGITAL_ID_DOCUMENT_TYPES, DIGITAL_ID_REGISTRY, ID_ERROR_CODES, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, MANUAL_UPLOAD_MAX_RETRIES, addBarcode, barcodeToBase64, createIdCaptureActor, createIdCaptureManager, createIdCaptureOnlyActor, createIdCaptureOnlyManager, createIdCaptureOnlyManagerFromActor, disposeRecordingSession, finalizeRecordingSession, getRealQualityValue, idCaptureMachine, idCaptureOnlyMachine, initializeIdCapture, isRedirectFlowType, pauseRecordingForAttempt, prepareRecordingForCameraRetry, processId, resolveDigitalIdImplementation, resolveWalletPlatform, startRecordingSession, stopRecording, stopStream, uploadIdImage, uploadManualIdFile, validateUploadResponse };
|
|
216
|
+
export { DEVICE_WALLET_ERROR_KEYS, DIGITAL_ID_DOCUMENT_TYPES, DIGITAL_ID_REGISTRY, ID_ERROR_CODES, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, MANUAL_UPLOAD_MAX_RETRIES, addBarcode, barcodeToBase64, createIdCaptureActor, createIdCaptureManager, createIdCaptureOnlyActor, createIdCaptureOnlyManager, createIdCaptureOnlyManagerFromActor, disposeRecordingSession, finalizeRecordingSession, getRealQualityValue, idCaptureMachine, idCaptureOnlyMachine, initializeIdCapture, isRedirectFlowType, isSuspendableRecordingSession, pauseRecordingForAttempt, prepareRecordingForCameraRetry, processId, resolveDigitalIdImplementation, resolveWalletPlatform, resumeRecordingAfterPause, startRecordingSession, stopRecording, stopStream, uploadIdImage, uploadManualIdFile, validateUploadResponse };
|