@incodetech/core 2.2.0 → 2.3.0-rc.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.
- package/THIRD_PARTY_NOTICES.txt +281 -0
- package/dist/BaseWasmProvider-Dyi6dKp1.d.ts +65 -0
- package/dist/{BrowserDiagnosticsCryptoProvider-B8vorxN5.esm.js → BrowserDiagnosticsCryptoProvider-CU6kBvqv.esm.js} +1 -1
- package/dist/{BrowserVisibilityObserverProvider-BX1BiLDK.esm.js → BrowserVisibilityObserverProvider-BrJN1B8A.esm.js} +2 -0
- package/dist/FaceDetectionProvider-BfhWkK90.esm.js +431 -0
- package/dist/FaceDetectionProvider-LdZ47bWy.d.ts +36 -0
- package/dist/{IIdCaptureCapability-DHTT3FC2.d.ts → IIdCaptureCapability-RNiFhvXR.d.ts} +7 -33
- package/dist/IWasmUtilCapability-CNWRl7jr.d.ts +117 -0
- package/dist/{MotionSensorProvider-DGiV77J_.esm.js → MotionSensorProvider-BgTYwg9L.esm.js} +1 -1
- package/dist/{StreamCanvasCapture-D2XcXCZ4.esm.js → StreamCanvasCapture-C9jtgBdT.esm.js} +2 -2
- package/dist/{deepsightService-DLVQS_RH.d.ts → StreamCanvasCapture-_8gdW5Lk.d.ts} +54 -41
- package/dist/StreamCanvasProcessingSession-CBnbTnOr.esm.js +42 -0
- package/dist/{addressSearch-D1XpBdUS.esm.js → addressSearch-DyHGgeX8.esm.js} +1 -1
- package/dist/advanceableErrors-CpF2cBy6.esm.js +21 -0
- package/dist/ae-signature.d.ts +4 -2
- package/dist/ae-signature.esm.js +1 -1
- package/dist/antifraud.esm.js +2 -2
- package/dist/{antifraudManager-CQFNgSPt.esm.js → antifraudManager-DNkw66oW.esm.js} +2 -2
- package/dist/{antifraudStateMachine-Bf_JVNwn.esm.js → antifraudStateMachine-DBeq47D2.esm.js} +1 -1
- package/dist/{apiError-BA1d_au0.esm.js → apiError-Budb6m6w.esm.js} +14 -2
- package/dist/authentication.d.ts +3 -3
- package/dist/authentication.esm.js +2 -2
- package/dist/{authenticationManager-BBMGTcwW.d.ts → authenticationManager-CjXBjC-c.d.ts} +7 -1
- package/dist/{authenticationManager-zh9TC62P.esm.js → authenticationManager-cMXhG70r.esm.js} +5 -5
- package/dist/{authenticationStateMachine-xzi-vnvE.esm.js → authenticationStateMachine-MOYz4HCf.esm.js} +6 -62
- package/dist/avatar.d.ts +1 -2
- package/dist/avatar.esm.js +1 -1
- package/dist/{backCameraStream-CUeYm5eu.esm.js → backCameraStream-BOtyQowf.esm.js} +83 -22
- package/dist/{camera-_2sXMXiF.esm.js → camera-sIa9ceW2.esm.js} +19 -1
- package/dist/camera.esm.js +1 -1
- package/dist/{canvas-E1zGkel4.esm.js → canvas-BxFzWTt-.esm.js} +19 -0
- package/dist/certificate-issuance.d.ts +2 -302
- package/dist/certificate-issuance.esm.js +3 -66
- package/dist/certificateIssuanceManager-C3-CI0_s.esm.js +69 -0
- package/dist/certificateIssuanceManager-DCgEidHz.d.ts +312 -0
- package/dist/{certificateIssuanceStateMachine-D_R92TYu.esm.js → certificateIssuanceStateMachine-CxqS_nD-.esm.js} +1 -1
- package/dist/consent.d.ts +1 -1
- package/dist/consent.esm.js +2 -2
- package/dist/{consentManager-BxjpLZAG.esm.js → consentManager-B6E1XJDw.esm.js} +2 -2
- package/dist/{consentManager-3Pbtj-RV.d.ts → consentManager-BhYFeKiG.d.ts} +4 -4
- package/dist/{consentStateMachine-D9D4ON8Z.esm.js → consentStateMachine-DTSfdGiW.esm.js} +1 -1
- package/dist/createCameraCycleOwnership-CX3hJGKc.esm.js +826 -0
- package/dist/{createFaceAvatar-DQKaRise.esm.js → createFaceAvatar-BNHdeFj8.esm.js} +2 -2
- package/dist/createFaceAvatar-BlcTYgJv.d.ts +497 -0
- package/dist/cross-document-data-match.esm.js +1 -1
- package/dist/{crossDocumentDataMatchManager-CGT0V6RV.esm.js → crossDocumentDataMatchManager-9XhFVZ5S.esm.js} +2 -2
- package/dist/curp-validation.d.ts +1 -1
- package/dist/curp-validation.esm.js +2 -2
- package/dist/{curpValidationManager-6Nmkn5u1.esm.js → curpValidationManager-DbIMYFcJ.esm.js} +2 -2
- package/dist/{curpValidationManager-DVGr7Fq7.d.ts → curpValidationManager-SSKNrm5Z.d.ts} +1 -1
- package/dist/{curpValidationStateMachine-Ds7KMacK.esm.js → curpValidationStateMachine-g5kMfuLj.esm.js} +1 -1
- package/dist/custom-fields.d.ts +2 -114
- package/dist/custom-fields.esm.js +2 -232
- package/dist/custom-watchlist.d.ts +2 -51
- package/dist/custom-watchlist.esm.js +3 -70
- package/dist/customFieldsManager-8-W2KY4n.d.ts +141 -0
- package/dist/customFieldsManager-CzWZTkW-.esm.js +264 -0
- package/dist/customWatchlistManager-DWTED5Ur.esm.js +73 -0
- package/dist/customWatchlistManager-PBWHr_oM.d.ts +64 -0
- package/dist/{customWatchlistStateMachine-YWSgKLbF.esm.js → customWatchlistStateMachine-DOQou6TW.esm.js} +1 -1
- package/dist/{deepsightLoader--wMKWECS.esm.js → deepsightLoader-DDv3vhXU.esm.js} +27 -71
- package/dist/device.d.ts +25 -2
- package/dist/device.esm.js +69 -7
- package/dist/document-capture.d.ts +2 -2
- package/dist/document-capture.esm.js +2 -2
- package/dist/{documentCaptureManager-DsQQhWry.esm.js → documentCaptureManager-CwAiM9WY.esm.js} +2 -2
- package/dist/{documentCaptureManager-B3t0ydtg.d.ts → documentCaptureManager-DensIj5F.d.ts} +83 -83
- package/dist/{documentCaptureStateMachine-BM4Ex_5x.esm.js → documentCaptureStateMachine-DfGOBapD.esm.js} +5 -5
- package/dist/dynamic-forms.d.ts +1 -1
- package/dist/dynamic-forms.esm.js +2 -2
- package/dist/{dynamicFormsManager-fFVIRBNv.esm.js → dynamicFormsManager-BbS-XMFc.esm.js} +16 -5
- package/dist/{dynamicFormsManager-fhK0yINk.d.ts → dynamicFormsManager-D5R_uxLQ.d.ts} +25 -3
- package/dist/{dynamicFormsStateMachine-D6D7oEYk.esm.js → dynamicFormsStateMachine-D8zHBCh4.esm.js} +35 -3
- package/dist/ekyb.d.ts +1 -1
- package/dist/ekyb.esm.js +3 -3
- package/dist/{ekybManager-Y3MkoXpC.esm.js → ekybManager-5aiac8wL.esm.js} +2 -2
- package/dist/{ekybStateMachine-3nlnqdlr.esm.js → ekybStateMachine-Bn2IE9rx.esm.js} +3 -3
- package/dist/ekyc.esm.js +2 -2
- package/dist/{ekycManager-DgT48ky6.esm.js → ekycManager-BlQ-Qj4E.esm.js} +2 -2
- package/dist/{ekycStateMachine-CQwqiR-R.esm.js → ekycStateMachine-CshSNJhh.esm.js} +2 -2
- package/dist/electronic-signature.d.ts +3 -3
- package/dist/electronic-signature.esm.js +2 -2
- package/dist/{electronicSignatureManager-DGbAJ00W.esm.js → electronicSignatureManager-BJJH0Tvi.esm.js} +357 -51
- package/dist/electronicSignatureManager-Ds-KEVTq.d.ts +2786 -0
- package/dist/email.esm.js +2 -2
- package/dist/{emailManager-BY0jeYwR.esm.js → emailManager-bR1N5rV_.esm.js} +2 -2
- package/dist/{emailStateMachine-Crw8QVmc.esm.js → emailStateMachine-Bc_6oIYw.esm.js} +1 -1
- package/dist/{endpoints-CCzL3XD_.esm.js → endpoints-B-3Q-LUw.esm.js} +24 -10
- package/dist/{events-DYiyoSlx.esm.js → events-ijlbX_Wx.esm.js} +2 -2
- package/dist/events.d.ts +1 -1
- package/dist/events.esm.js +1 -1
- package/dist/extensibility.d.ts +24 -64
- package/dist/extensibility.esm.js +35 -29
- package/dist/face-match.esm.js +2 -2
- package/dist/{faceCaptureManagerFactory-CVnZ0fa5.esm.js → faceCaptureManagerFactory-B7Ms6pSs.esm.js} +68 -7
- package/dist/{faceCaptureManagerFactory-BxWPpxyd.d.ts → faceCaptureManagerFactory-BeUl8fl1.d.ts} +86 -54
- package/dist/faceCaptureSetup-bkAlr5d8.esm.js +2067 -0
- package/dist/{faceMatchManager-Ri4UbNz0.esm.js → faceMatchManager-Bmv0HzuY.esm.js} +2 -2
- package/dist/{faceMatchStateMachine-20DdZ3jg.esm.js → faceMatchStateMachine-mRIHQ3dA.esm.js} +1 -1
- package/dist/{feature-management-CPQ4qv3F.esm.js → feature-management-E0mq0pMs.esm.js} +32 -7
- package/dist/feature-management.d.ts +1 -1
- package/dist/feature-management.esm.js +1 -1
- package/dist/field-comparison.esm.js +1 -1
- package/dist/{fieldComparisonManager-Cg6kPQQx.esm.js → fieldComparisonManager-CC-klG0h.esm.js} +2 -2
- package/dist/fiscal-qr.d.ts +2 -56
- package/dist/fiscal-qr.esm.js +2 -308
- package/dist/fiscalQrManager-B1STmT6z.d.ts +71 -0
- package/dist/fiscalQrManager-BunLVFbd.esm.js +34143 -0
- package/dist/flow-events.d.ts +1 -1
- package/dist/flow.d.ts +212 -185
- package/dist/flow.esm.js +119 -30
- package/dist/{flowCompletionService-tfeoGre9.esm.js → flowCompletionService-DJp1odGN.esm.js} +2 -2
- package/dist/{flowServices-f5Ruz7R9.esm.js → flowServices-DjPFGs_D.esm.js} +91 -26
- package/dist/geolocation.esm.js +2 -2
- package/dist/{geolocationManager-CH6RfqFH.esm.js → geolocationManager-D5906YXx.esm.js} +2 -2
- package/dist/{geolocationStateMachine-DmbWFely.esm.js → geolocationStateMachine-BVOduc3y.esm.js} +3 -3
- package/dist/getBrowser-CBiibsL-.esm.js +19 -0
- package/dist/{getBrowser-DNrQeL4T.esm.js → getBrowser-Cbe1C4Tn.esm.js} +2 -1
- package/dist/{getDeviceClass-9y-kbVDw.esm.js → getDeviceClass-5NYZg9s6.esm.js} +2 -2
- package/dist/getParsedUserAgent-B2iFDql1.esm.js +1278 -0
- package/dist/government-validation.d.ts +2 -85
- package/dist/government-validation.esm.js +3 -120
- package/dist/governmentValidationManager-CacFOtKO.esm.js +79 -0
- package/dist/governmentValidationManager-D02vT4yY.d.ts +63 -0
- package/dist/governmentValidationStateMachine-CoaZOSTP.esm.js +54 -0
- package/dist/home.d.ts +1 -1
- package/dist/home.esm.js +1 -1
- package/dist/id-ocr.d.ts +2 -2
- package/dist/id-ocr.esm.js +2 -2
- package/dist/id-selfie-flow.d.ts +3 -2
- package/dist/id-selfie-flow.esm.js +11 -10
- package/dist/id-verification.esm.js +2 -2
- package/dist/id.d.ts +29 -5
- package/dist/id.esm.js +48 -46
- package/dist/idCaptureDefaults-CbPA-Auz.esm.js +727 -0
- package/dist/{idCaptureManager-CqrqSjJV.d.ts → idCaptureManager-DKESug0R.d.ts} +230 -43
- package/dist/{idCaptureManager-BYwTZ2H8.esm.js → idCaptureManager-rfV9dIXy.esm.js} +259 -46
- package/dist/{idCaptureServices-44kwQItl.esm.js → idCaptureServices-i1KxugN7.esm.js} +285 -72
- package/dist/idCaptureStateMachine-Ne_PXth_.esm.js +5333 -0
- package/dist/{idOcrManager-DXc_xRN7.d.ts → idOcrManager-BF_cXZq8.d.ts} +1 -1
- package/dist/{idOcrManager-BIQYQXXj.esm.js → idOcrManager-r46XfZGE.esm.js} +2 -2
- package/dist/{idOcrStateMachine-cSxzHpHt.esm.js → idOcrStateMachine-ClDEP-VI.esm.js} +1 -1
- package/dist/{idVerificationManager-JpV_SAsl.esm.js → idVerificationManager-DT42c77H.esm.js} +2 -2
- package/dist/{idVerificationStateMachine-nPeUNyFq.esm.js → idVerificationStateMachine-DbDVIh9t.esm.js} +1 -1
- package/dist/identity-reuse.esm.js +2 -2
- package/dist/{identityReuseManager-kNCg9AbD.esm.js → identityReuseManager-yG3acUrQ.esm.js} +2 -2
- package/dist/{identityReuseStateMachine-DyulxDjP.esm.js → identityReuseStateMachine-BhAkuIra.esm.js} +1 -1
- package/dist/{index-CLMF0QLQ.d.ts → index-DLcJT5YP.d.ts} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/{invokeOnCaptureCallback-GpvMuz9o.esm.js → invokeOnCaptureCallback-BjzPjJ_p.esm.js} +1 -1
- package/dist/mandatory-consent.d.ts +2 -2
- package/dist/mandatory-consent.esm.js +2 -2
- package/dist/{mandatoryConsentManager-B4Niyg_u.esm.js → mandatoryConsentManager-7dI0D08q.esm.js} +2 -2
- package/dist/{mandatoryConsentManager-DyPzUmsZ.d.ts → mandatoryConsentManager-vhv1co_n.d.ts} +1 -1
- package/dist/{mandatoryConsentStateMachine-B4-1u-L8.esm.js → mandatoryConsentStateMachine-DC5Mo6M1.esm.js} +1 -1
- package/dist/multipartRecordingService-OEgIRvqC.esm.js +605 -0
- package/dist/{permissionGuards-KINpmKtI.esm.js → permissionGuards-uYZYFu4J.esm.js} +1 -1
- package/dist/{permissionServices-UvUcOSRb.esm.js → permissionServices-Bj_fyWtv.esm.js} +5 -5
- package/dist/personhood.d.ts +6 -5
- package/dist/personhood.esm.js +10 -10
- package/dist/phone.esm.js +2 -2
- package/dist/{phoneManager-FsJ0W2Ei.esm.js → phoneManager-IjhSv5XS.esm.js} +2 -2
- package/dist/{phoneStateMachine-Ba0wKHyX.esm.js → phoneStateMachine-CXdXufKg.esm.js} +1 -1
- package/dist/{platform-BJrm5nzZ.esm.js → platform-DkcRc9JV.esm.js} +29 -1
- package/dist/qe-signature.d.ts +5 -3
- package/dist/qe-signature.esm.js +2 -2
- package/dist/redirect-to-mobile.esm.js +2 -2
- package/dist/{redirectToMobileManager-y4VQB11M.esm.js → redirectToMobileManager-FLEWJtv8.esm.js} +2 -2
- package/dist/{redirectToMobileStateMachine-Cyv2x0PP.esm.js → redirectToMobileStateMachine-CSWWgUTO.esm.js} +1 -1
- package/dist/{rolldown-runtime-FZ4Itg2g.esm.js → rolldown-runtime-FDOR9p9I.esm.js} +1 -19
- package/dist/{runChildModule-Dukuw23X.esm.js → runChildModule-CI1gGWN1.esm.js} +3 -21
- package/dist/safeStorage-B-trhxg6.esm.js +423 -0
- package/dist/{sdkVersion-D1Bm59g6.esm.js → sdkVersion-BZh6dj53.esm.js} +1 -1
- package/dist/selfie.d.ts +5 -5
- package/dist/selfie.esm.js +14 -76
- package/dist/{selfieErrorUtils-C2PYBVsp.esm.js → selfieErrorUtils-UiQ46EBa.esm.js} +30 -4
- package/dist/{selfieManager-DwlCppg0.d.ts → selfieManager-4RRLi21P.d.ts} +8 -11
- package/dist/{selfieManager-Bj6B2ZVy.esm.js → selfieManager-B-2c1n_x.esm.js} +5 -5
- package/dist/selfieStateMachine-Bzx41R8d.esm.js +69 -0
- package/dist/{session-BFdLgN4i.esm.js → session-3LmvAU4S.esm.js} +4 -5
- package/dist/session.d.ts +21 -11
- package/dist/session.esm.js +5 -5
- package/dist/{sessionInitializer-dlfDehHk.esm.js → sessionInitializer-BFk33E67.esm.js} +187 -68
- package/dist/{setup-BIAtLa8k.esm.js → setup-BWG-hivt.esm.js} +226 -100
- package/dist/{setup-BgoWtvIS.d.ts → setup-Cv-JM9QC.d.ts} +63 -69
- package/dist/signature.esm.js +2 -2
- package/dist/{signatureManager-Ca43yhwk.esm.js → signatureManager-B72np4ZO.esm.js} +2 -2
- package/dist/{signatureStateMachine-K1LMRrxG.esm.js → signatureStateMachine-ce_XMA3l.esm.js} +1 -1
- package/dist/{src-0Jurt29N.esm.js → src-35ekGRzK.esm.js} +1 -1
- package/dist/{stats-B0nFKawG.esm.js → stats-CZcy2J53.esm.js} +1 -1
- package/dist/stats.esm.js +1 -1
- package/dist/{trueSightService---iW2KKJ.esm.js → trueSightService-BN-Hzw82.esm.js} +7 -7
- package/dist/trust-graph.esm.js +1 -1
- package/dist/{types-BX_XkMsQ2.d.ts → types-9_esGTPj.d.ts} +1 -1
- package/dist/types-BT_Oalip.d.ts +1 -0
- package/dist/{types-DelMqZLe.d.ts → types-BjSly8cp.d.ts} +1 -1
- package/dist/{types-Hmd7U0JA.d.ts → types-Bnl58jUQ.d.ts} +6 -85
- package/dist/types-ChAowIxT.d.ts +6 -0
- package/dist/{types-DVmXIdzW.d.ts → types-D0gekt4U.d.ts} +38 -5
- package/dist/types-DgDvvzg0.d.ts +10 -0
- package/dist/{types-KPvmag_B.d.ts → types-Do5rEXij.d.ts} +7 -4
- package/dist/{types-Bdf8_LYB2.d.ts → types-byBHOzCG2.d.ts} +305 -25
- package/dist/video-selfie.d.ts +59 -35
- package/dist/video-selfie.esm.js +510 -601
- package/dist/{videoSelfieCameraWarmer-NEhFZvWx.esm.js → videoSelfieCameraWarmer-B8PcYqmz.esm.js} +14 -153
- package/dist/videoSelfieFlowModuleMachine-BUe2uACW.esm.js +32 -0
- package/dist/{videoSelfieStepDetector-D3oo2ofo.d.ts → videoSelfieStepDetector-Co0Gu2k2.d.ts} +59 -13
- package/dist/virtualCameraCheck-Cjab7FTI.esm.js +48 -0
- package/dist/warmup-CUUnwYxe.esm.js +714 -0
- package/dist/warmup-Cis2p6O0.d.ts +128 -0
- package/dist/wasm.d.ts +30 -6
- package/dist/wasm.esm.js +36 -4
- package/dist/{wasmDsFlagSync-BqUCwLY8.esm.js → wasmDsFlagSync-B2e8p268.esm.js} +2 -2
- package/dist/{wasmWebClient-DM8lkb0z.esm.js → wasmWebClient-B7baE-Wf.esm.js} +358 -28
- package/dist/watchlist-for-business.d.ts +2 -78
- package/dist/watchlist-for-business.esm.js +3 -102
- package/dist/watchlist.esm.js +2 -2
- package/dist/watchlistForBusinessManager-CIMkpEhu.esm.js +107 -0
- package/dist/watchlistForBusinessManager-CsnJnG-C.d.ts +99 -0
- package/dist/{watchlistForBusinessStateMachine-CxFnlshm.esm.js → watchlistForBusinessStateMachine-CJ-MvUre.esm.js} +13 -6
- package/dist/{watchlistManager-LoNZH9qm.esm.js → watchlistManager-CixcLNDT.esm.js} +2 -2
- package/dist/{watchlistStateMachine-DIKQDoUT.esm.js → watchlistStateMachine-CBqk2w-h.esm.js} +1 -1
- package/dist/workflow.d.ts +12 -8
- package/dist/workflow.esm.js +48 -39
- package/package.json +4 -10
- package/dist/BrowserStorageProvider-k-FDkC4W.esm.js +0 -67
- package/dist/FaceDetectionProvider-Mh6q3EbA.d.ts +0 -349
- package/dist/IFaceAvatarCapability-BrL19G0s.d.ts +0 -23
- package/dist/IStorageCapability-ORkQfK3F.d.ts +0 -242
- package/dist/OpenViduRecordingProvider-Du98qevC.esm.js +0 -85
- package/dist/createFaceAvatar-BEj18KXi.d.ts +0 -50
- package/dist/document-upload.d.ts +0 -325
- package/dist/document-upload.esm.js +0 -197
- package/dist/electronicSignatureManager-CcUXQZS7.d.ts +0 -1300
- package/dist/faceCaptureSetup-Cd-04W_X.esm.js +0 -863
- package/dist/getBrowser-Cb8Zgrgp.esm.js +0 -7
- package/dist/getParsedUserAgent-pJjATANs.esm.js +0 -1622
- package/dist/governmentValidationStateMachine-CK9DrZXX.esm.js +0 -226
- package/dist/idCaptureDefaults-WeHbQM7W.esm.js +0 -225
- package/dist/idCaptureStateMachine-kZ5OpdfM.esm.js +0 -3342
- package/dist/lib-DAyUtOTj.esm.js +0 -12420
- package/dist/manualReviewService-D4IkipnN.esm.js +0 -15
- package/dist/mediaRecorderOptions-dALSV8af.esm.js +0 -40
- package/dist/onDeviceFaceResults-CUHwyZT4.esm.js +0 -646
- package/dist/openviduLazy-CCDpFWg1.esm.js +0 -10
- package/dist/recordingService-3NSENVwp.esm.js +0 -329
- package/dist/safeStorage-Ep56I-f_.esm.js +0 -982
- package/dist/selfieStateMachine-CHV_WNst.esm.js +0 -55
- package/dist/trueSight-B_icM8r2.esm.js +0 -1
- package/dist/types-EELWyWpd.d.ts +0 -6
- package/dist/types-Vb4P9ovf.d.ts +0 -22
- package/dist/warmup-Dv2alr2-.d.ts +0 -82
- package/dist/wasmDefaults-DTUrftxR.esm.js +0 -125
- package/dist/{Face2DProvider-UUQt_vRC.esm.js → Face2DProvider-BF48sz5c.esm.js} +1 -1
- package/dist/{PrivacyLensProvider-D8PS7AJa.esm.js → PrivacyLensProvider-EwnC_C5n.esm.js} +1 -1
- /package/dist/{types-BfgmV7s72.d.ts → types-BfgmV7s7.d.ts} +0 -0
- /package/dist/{types-CJ7Yl9K-2.d.ts → types-CJ7Yl9K-.d.ts} +0 -0
|
@@ -1,15 +1,177 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { y as IncodeCanvas } from "./createFaceAvatar-BlcTYgJv.js";
|
|
2
|
+
import { a as RegulationTypes, n as Flow, o as TutorialIdConfig } from "./types-Do5rEXij.js";
|
|
3
|
+
import { i as IStorageCapability } from "./IWasmUtilCapability-CNWRl7jr.js";
|
|
4
4
|
import { t as PermissionResult } from "./types-BEwVKkLJ.js";
|
|
5
|
-
import { n as
|
|
6
|
-
import {
|
|
5
|
+
import { n as DeepsightService, t as StreamCanvasCapture } from "./StreamCanvasCapture-_8gdW5Lk.js";
|
|
6
|
+
import { t as CameraStream } from "./camera-9wWD-pwg.js";
|
|
7
|
+
import { i as Pdf417DecodeResult, n as IIdCaptureCapability, r as IdCaptureSettings, t as DetectionOrientation } from "./IIdCaptureCapability-RNiFhvXR.js";
|
|
8
|
+
//#region ../infra/src/capabilities/IDigitalCredentialsCapability.d.ts
|
|
9
|
+
/**
|
|
10
|
+
* Digital Credentials capability — wraps the W3C Digital Credentials API
|
|
11
|
+
* (`navigator.credentials.get()` with a `digital` request) used to pull a
|
|
12
|
+
* verified credential (e.g. an mDL) from an OS wallet such as Apple Wallet
|
|
13
|
+
* (web) or Google Wallet.
|
|
14
|
+
*
|
|
15
|
+
* The request payloads are built entirely by the Incode backend and are
|
|
16
|
+
* opaque to the SDK; the wallet's response is likewise an opaque string that
|
|
17
|
+
* is forwarded to the backend for decryption.
|
|
18
|
+
*/
|
|
19
|
+
/** Wallet protocols the SDK requests credentials with. */
|
|
20
|
+
type DigitalCredentialProtocol = 'org-iso-mdoc' | 'openid4vp-v1-unsigned';
|
|
21
|
+
/** One entry of the Digital Credentials API `digital.requests` array. */
|
|
22
|
+
type DigitalCredentialRequest = {
|
|
23
|
+
protocol: DigitalCredentialProtocol;
|
|
24
|
+
/**
|
|
25
|
+
* Opaque protocol payload, built by the backend.
|
|
26
|
+
* Apple (`org-iso-mdoc`): `{ deviceRequest, encryptionInfo }` base64 strings.
|
|
27
|
+
* Google (`openid4vp-v1-unsigned`): the whole OIDC4VP/DCQL request object.
|
|
28
|
+
*/
|
|
29
|
+
data: unknown;
|
|
30
|
+
};
|
|
31
|
+
type DigitalCredentialResult = {
|
|
32
|
+
/**
|
|
33
|
+
* Opaque wallet response (Apple: encrypted deviceResponse; Google: a JWE).
|
|
34
|
+
* `undefined` when the OS sheet completed without producing a credential
|
|
35
|
+
* (user dismissed, or no eligible digital ID on the device) — that outcome
|
|
36
|
+
* is data, not an error.
|
|
37
|
+
*/
|
|
38
|
+
response: string | undefined;
|
|
39
|
+
};
|
|
40
|
+
interface IDigitalCredentialsCapability {
|
|
41
|
+
/**
|
|
42
|
+
* Whether the environment exposes Digital Credentials, not just the generic
|
|
43
|
+
* Credentials API used by passwords/WebAuthn.
|
|
44
|
+
*/
|
|
45
|
+
isAvailable(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Presents the OS wallet sheet for the given request and resolves with the
|
|
48
|
+
* wallet's opaque response. Must be reached from a user gesture — iOS
|
|
49
|
+
* Safari requires transient user activation for `navigator.credentials.get()`.
|
|
50
|
+
* Rejects when the underlying API rejects (blocked, aborted, protocol error).
|
|
51
|
+
*/
|
|
52
|
+
get(request: DigitalCredentialRequest, options?: {
|
|
53
|
+
signal?: AbortSignal;
|
|
54
|
+
}): Promise<DigitalCredentialResult>;
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/modules/digital-id-redirect/types.d.ts
|
|
58
|
+
/**
|
|
59
|
+
* Trinsic web-redirect Digital ID — module contracts.
|
|
60
|
+
*
|
|
61
|
+
* DRAFT (P1 core scaffolding) — shape for review before implementation.
|
|
62
|
+
* Ticket: Phase 1 "Integrate with Trinsic for Digital IDs - Web Redirect" (1509).
|
|
63
|
+
* API: "Digital ID Verification API — Frozen Definition v2.0"
|
|
64
|
+
* base /omni/v2/digital-id, auth x-api-key + X-Incode-Hardware-Id.
|
|
65
|
+
*/
|
|
66
|
+
/** Catalog-driven provider id (open set), e.g. `trinsic_netherlands_idin`. */
|
|
67
|
+
type DigitalIdProviderId = string;
|
|
68
|
+
type FlowType = 'REDIRECT' | 'DEEPLINK' | 'QR' | 'NATIVE_CHALLENGE' | 'PUSH';
|
|
69
|
+
/** Mapped from Trinsic `failCode` by the backend (Phase 1 §4.1). */
|
|
70
|
+
type FailureReason = 'USER_CANCELED' | 'AUTHENTICATION_FAILED' | 'SESSION_EXPIRED' | 'VERIFICATION_FAILED' | 'PROVIDER_INTERNAL_ERROR' | 'RESULTS_EXCHANGE_FAILED' | 'RP_CANCELED' | 'INVALID_REDIRECT_RESULT' | 'SESSION_TOKEN_EXPIRED';
|
|
71
|
+
/** Query params the provider appends to the return URL (open list — read these three, ignore the rest). */
|
|
72
|
+
type RedirectReturnParams = {
|
|
73
|
+
success: boolean;
|
|
74
|
+
sessionId: string;
|
|
75
|
+
resultsAccessKey: string;
|
|
76
|
+
};
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region src/modules/id/digitalIdRegistry.d.ts
|
|
79
|
+
/**
|
|
80
|
+
* True when a digital-ID method uses a full-page web-redirect flow (Trinsic
|
|
81
|
+
* iDIN/FTN). Accepts both the module `FlowType` value (`REDIRECT`) and the
|
|
82
|
+
* backend value (`WEB_REDIRECT`). (Lives here rather than in
|
|
83
|
+
* `idCaptureHelpers` to keep the registry free of circular imports; the
|
|
84
|
+
* helpers re-export it.)
|
|
85
|
+
*/
|
|
86
|
+
declare function isRedirectFlowType(flowType: string): boolean;
|
|
87
|
+
/** Digital-ID document schemes the SDK knows how to verify. */
|
|
88
|
+
type DigitalIdDocumentType = 'mDL' | 'iDIN' | 'FTN';
|
|
89
|
+
/** One way to fulfil a `DigitalIdDocumentType`, in funnel priority order. */
|
|
90
|
+
type DigitalIdFunnelEntry = {
|
|
91
|
+
/** Incode-native device-wallet handshake (Apple Wallet web / Google Wallet). */
|
|
92
|
+
kind: 'incodeWallet';
|
|
93
|
+
/** Chooser tile this entry surfaces as. */
|
|
94
|
+
documentType: Extract<IdDocumentType, 'digitalId'>;
|
|
95
|
+
/** Config flag that activates this entry. */
|
|
96
|
+
configFlag: 'deviceWallet';
|
|
97
|
+
} | {
|
|
98
|
+
/** Trinsic web-redirect flow (existing `digitalIdRedirect` child). */
|
|
99
|
+
kind: 'trinsicRedirect';
|
|
100
|
+
documentType: Extract<IdDocumentType, 'digitalIdRedirect'>;
|
|
101
|
+
/** Catalog provider id passed to the `digitalIdRedirectMachine`. */
|
|
102
|
+
providerId: DigitalIdProviderId;
|
|
103
|
+
/**
|
|
104
|
+
* Persisted backend method name in `config.digitalIds.methods[]` that
|
|
105
|
+
* activates this entry (e.g. `IDIN`).
|
|
106
|
+
*/
|
|
107
|
+
method: string;
|
|
108
|
+
};
|
|
109
|
+
declare const DIGITAL_ID_REGISTRY: Record<DigitalIdDocumentType, readonly DigitalIdFunnelEntry[]>;
|
|
110
|
+
declare const DIGITAL_ID_DOCUMENT_TYPES: DigitalIdDocumentType[];
|
|
111
|
+
/** What the chooser routing actually launches for a document type. */
|
|
112
|
+
type ResolvedDigitalIdRoute = {
|
|
113
|
+
kind: 'incodeWallet';
|
|
114
|
+
} | {
|
|
115
|
+
kind: 'trinsicRedirect';
|
|
116
|
+
providerId: DigitalIdProviderId;
|
|
117
|
+
method?: IdCaptureDigitalIdMethod;
|
|
118
|
+
};
|
|
119
|
+
/** Platform capabilities consulted by the funnel. */
|
|
120
|
+
type DigitalIdPlatformSupport = {
|
|
121
|
+
/** `IDigitalCredentialsCapability.isAvailable()`. */
|
|
122
|
+
credentialsAvailable: boolean;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Resolves the implementation that should fulfil a digital-ID document type:
|
|
126
|
+
* the first funnel entry that is active under the given config and platform.
|
|
127
|
+
* `undefined` when nothing can run it (the chooser then shows no tile for it).
|
|
128
|
+
*/
|
|
129
|
+
declare function resolveDigitalIdImplementation(docType: DigitalIdDocumentType, config: Pick<IdCaptureConfig, 'deviceWallet' | 'digitalIds'>, platform: DigitalIdPlatformSupport): ResolvedDigitalIdRoute | undefined;
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/modules/id/deviceWallet/types.d.ts
|
|
132
|
+
/** Which wallet backend the handshake talks to. */
|
|
133
|
+
type DeviceWalletPlatform = 'ios' | 'android';
|
|
134
|
+
/** Explicit provider override, mirroring V1's `DigitalIdWalletProvider`. */
|
|
135
|
+
type DeviceWalletProvider = 'apple_web' | 'google';
|
|
136
|
+
type DeviceWalletDecision = 'ACCEPTED' | 'REJECTED';
|
|
137
|
+
/**
|
|
138
|
+
* Failure classification.
|
|
139
|
+
* - `UNSUPPORTED_PLATFORM` — no Credentials API. The digital-ID funnel
|
|
140
|
+
* resolves this away before the machine is invoked; kept for the defensive
|
|
141
|
+
* path when the machine is started on an unsupported environment anyway.
|
|
142
|
+
* - `NO_CREDENTIAL` — the wallet sheet completed without a credential (user
|
|
143
|
+
* dismissed, or no eligible digital ID on the device).
|
|
144
|
+
* - `WALLET_ERROR` — anything else (request/decrypt HTTP failure, the
|
|
145
|
+
* Credentials API rejecting, missing activation, protocol errors).
|
|
146
|
+
*/
|
|
147
|
+
type DeviceWalletFailReason = 'UNSUPPORTED_PLATFORM' | 'NO_CREDENTIAL' | 'WALLET_ERROR';
|
|
148
|
+
/** Response of both decrypt endpoints. Attributes are not inline (see above). */
|
|
149
|
+
type DeviceWalletDecryptResponse = {
|
|
150
|
+
success: boolean;
|
|
151
|
+
decision?: DeviceWalletDecision;
|
|
152
|
+
[key: string]: unknown;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Terminal machine output read by the ID-Capture parent (`onDone`).
|
|
156
|
+
* Projected by the machine's ROOT `output` — a top-level final node's own
|
|
157
|
+
* `output` does not propagate in this XState version.
|
|
158
|
+
*/
|
|
159
|
+
type DeviceWalletOutput = {
|
|
160
|
+
result: 'success';
|
|
161
|
+
decision: DeviceWalletDecision | undefined;
|
|
162
|
+
response: DeviceWalletDecryptResponse;
|
|
163
|
+
} | {
|
|
164
|
+
result: 'dismissed';
|
|
165
|
+
};
|
|
166
|
+
//#endregion
|
|
7
167
|
//#region src/modules/id/manualUpload/types.d.ts
|
|
8
168
|
type ManualUploadTab = 'id' | 'passport';
|
|
9
169
|
type ManualUploadSide = 'front' | 'back' | 'passport';
|
|
10
170
|
type ManualUploadContext = {
|
|
11
171
|
/** Passed from parent machine input — used by guards and actor inputs. */
|
|
12
172
|
onlyFront: boolean;
|
|
173
|
+
/** Back-only takes precedence when both side-only flags are supplied. */
|
|
174
|
+
onlyBack: boolean;
|
|
13
175
|
isSecondId: boolean;
|
|
14
176
|
/** Retry budget for this manual upload (sourced from `config.captureAttempts`). */
|
|
15
177
|
captureAttempts: number;
|
|
@@ -45,11 +207,13 @@ interface IAnalyticsCapability {
|
|
|
45
207
|
//#region src/modules/id/types.d.ts
|
|
46
208
|
type IdCaptureMode = 'front' | 'back' | 'passport';
|
|
47
209
|
/**
|
|
48
|
-
* Document type options for the ID capture chooser (ID, passport, manual ID
|
|
210
|
+
* Document type options for the ID capture chooser (ID, passport, manual ID
|
|
211
|
+
* upload, digital ID upload (PDF), digital ID from device wallet, digital ID
|
|
212
|
+
* web-redirect (Trinsic iDIN/FTN)).
|
|
49
213
|
* Used for selection and for the list of available options derived from config.
|
|
50
214
|
*/
|
|
51
|
-
type IdDocumentType = 'id' | 'passport' | 'manualIdUpload' | 'digitalIdUpload' | 'digitalId';
|
|
52
|
-
type IdFlowStep = 'chooser' | 'ageVerification' | 'tutorial' | 'permissions' | 'capture' | 'mandatoryConsent' | 'frontFinished' | 'backFinished' | 'success' | 'processing' | 'expired' | 'finished' | 'error' | 'closed' | 'manualIdUpload' | 'digitalIdUpload';
|
|
215
|
+
type IdDocumentType = 'id' | 'passport' | 'manualIdUpload' | 'digitalIdUpload' | 'digitalId' | 'digitalIdRedirect';
|
|
216
|
+
type IdFlowStep = 'chooser' | 'ageVerification' | 'tutorial' | 'permissions' | 'capture' | 'mandatoryConsent' | 'frontFinished' | 'backFinished' | 'success' | 'processing' | 'expired' | 'finished' | 'error' | 'closed' | 'manualIdUpload' | 'digitalIdUpload' | 'digitalIdRedirect';
|
|
53
217
|
type DetectionStatus = 'idle' | 'detecting' | 'farAway' | 'blur' | 'glare' | 'wrongSide' | 'capturing' | 'manualCapture' | 'idNotDetected' | 'offline';
|
|
54
218
|
/**
|
|
55
219
|
* Represents the detection area dimensions in pixels.
|
|
@@ -86,10 +250,32 @@ type IdCaptureThresholds = {
|
|
|
86
250
|
idDetectedTimeout: number;
|
|
87
251
|
autocaptureTimeout: number;
|
|
88
252
|
};
|
|
253
|
+
/**
|
|
254
|
+
* Flow shape a digital-ID method uses. iDIN/FTN are `WEB_REDIRECT` (the backend
|
|
255
|
+
* value) / `REDIRECT` (the digital-id-redirect module's `FlowType`). Only the
|
|
256
|
+
* redirect variants are handled by the ID-Capture `digitalIdRedirect` child;
|
|
257
|
+
* the other shapes are declared for forward-compatibility with the catalog.
|
|
258
|
+
*/
|
|
259
|
+
type IdCaptureDigitalIdFlowType = FlowType | 'WEB_REDIRECT';
|
|
260
|
+
/**
|
|
261
|
+
* One digital-ID verification method offered inside ID-Capture, threaded from
|
|
262
|
+
* the backend flow node's `configuration.digitalIds` (unified path — same rails
|
|
263
|
+
* as Apple/Google Wallet). A `REDIRECT`/`WEB_REDIRECT` method surfaces the
|
|
264
|
+
* `digitalIdRedirect` chooser option and drives the `digitalIdRedirectMachine`
|
|
265
|
+
* child. iDIN-only for now (FTN is BE-blocked).
|
|
266
|
+
*/
|
|
267
|
+
type IdCaptureDigitalIdMethod = {
|
|
268
|
+
/** Persisted method name, e.g. `IDIN` / `FTN`. */
|
|
269
|
+
method?: string;
|
|
270
|
+
/** Catalog provider id passed to the child, e.g. `trinsic_netherlands_idin`. */
|
|
271
|
+
provider: DigitalIdProviderId;
|
|
272
|
+
/** Redirect vs. other flow shapes. Only the redirect variants are handled. */
|
|
273
|
+
flowType: IdCaptureDigitalIdFlowType;
|
|
274
|
+
/** ISO alpha-2 to bias provider ordering / prefill. */
|
|
275
|
+
country?: string;
|
|
276
|
+
displayName?: string;
|
|
277
|
+
};
|
|
89
278
|
type IdCaptureConfig = TutorialIdConfig & {
|
|
90
|
-
recording?: {
|
|
91
|
-
capability?: IRecordingCapability;
|
|
92
|
-
};
|
|
93
279
|
ageAssurance?: boolean;
|
|
94
280
|
mergeSessionRecordings?: boolean;
|
|
95
281
|
isDeepsightEnabled?: boolean;
|
|
@@ -127,6 +313,30 @@ type IdCaptureConfig = TutorialIdConfig & {
|
|
|
127
313
|
* parameter-store read, no Statsig exposure, and no assignment event.
|
|
128
314
|
*/
|
|
129
315
|
supportsOptimizingStatus?: boolean;
|
|
316
|
+
/**
|
|
317
|
+
* Digital-ID methods offered inside ID-Capture (from the backend flow node's
|
|
318
|
+
* `configuration.digitalIds`). A `REDIRECT`/`WEB_REDIRECT` method surfaces the
|
|
319
|
+
* `digitalIdRedirect` chooser option and drives the `digitalIdRedirectMachine`
|
|
320
|
+
* child (Trinsic iDIN/FTN). Absent / empty → no redirect option shown.
|
|
321
|
+
*/
|
|
322
|
+
digitalIds?: IdCaptureDigitalIdMethod[];
|
|
323
|
+
/**
|
|
324
|
+
* https page the identity provider redirects back to on the digital-ID
|
|
325
|
+
* web-redirect return leg. The host onboarding app owns this route and passes
|
|
326
|
+
* it here; forwarded to the `digitalIdRedirectMachine` as its `returnUrl`.
|
|
327
|
+
*/
|
|
328
|
+
digitalIdReturnUrl?: string;
|
|
329
|
+
/**
|
|
330
|
+
* Digital-ID web-redirect RETURN leg. When present, ID-Capture skips the
|
|
331
|
+
* chooser and resumes straight into the `digitalIdRedirect` child in resume
|
|
332
|
+
* mode: the persisted `verificationId` is recovered from storage and the
|
|
333
|
+
* host-parsed `returnParams` are submitted. Set by the host on the return
|
|
334
|
+
* route (mirrors the old top-level `FlowConfig.digitalIdReturn`, re-targeted
|
|
335
|
+
* to the ID-Capture module).
|
|
336
|
+
*/
|
|
337
|
+
digitalIdReturn?: {
|
|
338
|
+
returnParams: RedirectReturnParams;
|
|
339
|
+
};
|
|
130
340
|
};
|
|
131
341
|
/**
|
|
132
342
|
* Public ID capture configuration for the captureOnly flow.
|
|
@@ -152,6 +362,23 @@ type IdError = {
|
|
|
152
362
|
message: string;
|
|
153
363
|
messageDescription?: string;
|
|
154
364
|
};
|
|
365
|
+
/**
|
|
366
|
+
* Document types the backend is known to report in
|
|
367
|
+
* `UploadIdResponse.acceptedDocuments` (`add-front-id-v2`: the list of document
|
|
368
|
+
* types accepted for the detected country when `failReason` is
|
|
369
|
+
* `ID_TYPE_UNACCEPTABLE`).
|
|
370
|
+
*
|
|
371
|
+
* The wire format is `array[string]`, so this union documents the known values
|
|
372
|
+
* rather than constraining them — see `AcceptedDocument`, which is what the
|
|
373
|
+
* response is actually typed as. Consumers must handle unknown values.
|
|
374
|
+
*/
|
|
375
|
+
type AcceptedDocumentType = 'IdentificationCard' | 'Passport' | 'DriversLicense' | 'ResidenceDocument' | 'BirthCertificate' | 'TravelDocument' | 'WeaponLicense' | 'MedicalCard' | 'TribalIdentification' | 'Currency' | 'VehicleRegistration' | 'TaxIdentification' | 'Visa' | 'Permit' | 'Military' | 'VoterIdentification' | 'FederalID' | 'Unknown' | 'Other';
|
|
376
|
+
/**
|
|
377
|
+
* A single entry of `UploadIdResponse.acceptedDocuments`. Widened to `string`
|
|
378
|
+
* so that a document type the backend adds later still type-checks, while
|
|
379
|
+
* `AcceptedDocumentType` keeps autocomplete for the known values.
|
|
380
|
+
*/
|
|
381
|
+
type AcceptedDocument = AcceptedDocumentType | (string & {});
|
|
155
382
|
type UploadIdResponse = {
|
|
156
383
|
sharpness: number;
|
|
157
384
|
correctSharpness: boolean;
|
|
@@ -171,10 +398,11 @@ type UploadIdResponse = {
|
|
|
171
398
|
skipGlareFront?: boolean;
|
|
172
399
|
skipGlareBack?: boolean;
|
|
173
400
|
documentIsOnTheEdge?: boolean;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
401
|
+
/**
|
|
402
|
+
* List of document types accepted for the detected country when
|
|
403
|
+
* `failReason` is `ID_TYPE_UNACCEPTABLE`. BE-documented as `array[string]`.
|
|
404
|
+
*/
|
|
405
|
+
acceptedDocuments?: Array<AcceptedDocument>;
|
|
178
406
|
forceFrontIdCapture?: boolean;
|
|
179
407
|
/**
|
|
180
408
|
* US Smart Capture: when `true`, the backend has already validated the ID
|
|
@@ -248,14 +476,6 @@ type CaptureOnlyResponse = {
|
|
|
248
476
|
frontImage: IdCapturedImageData;
|
|
249
477
|
backImage: IdCapturedImageData | undefined;
|
|
250
478
|
};
|
|
251
|
-
type RecordingSession = {
|
|
252
|
-
token: string;
|
|
253
|
-
sessionId: string;
|
|
254
|
-
videoRecordingId: string;
|
|
255
|
-
connection: RecordingConnection;
|
|
256
|
-
resolution?: string;
|
|
257
|
-
hasAudio: boolean;
|
|
258
|
-
};
|
|
259
479
|
declare const ID_ERROR_CODES: {
|
|
260
480
|
readonly UPLOAD_ERROR: "UPLOAD_ERROR";
|
|
261
481
|
readonly CLASSIFICATION_FAILED: "CLASSIFICATION_FAILED";
|
|
@@ -339,7 +559,8 @@ type IdCaptureContext = {
|
|
|
339
559
|
* best-frame / front `success` shows its real captured image as usual).
|
|
340
560
|
*/
|
|
341
561
|
barcodeFastPathCaptured: boolean;
|
|
342
|
-
|
|
562
|
+
/** Opaque SDK-owned handle for the active multipart ID recording. */
|
|
563
|
+
recordingSession: object | undefined;
|
|
343
564
|
attemptsRemaining: number;
|
|
344
565
|
/**
|
|
345
566
|
* Number of consecutive `isDocumentExpired === true` upload responses for
|
|
@@ -377,6 +598,35 @@ type IdCaptureContext = {
|
|
|
377
598
|
* for the workflow orchestrator.
|
|
378
599
|
*/
|
|
379
600
|
isDigitalUpload: boolean;
|
|
601
|
+
/**
|
|
602
|
+
* `true` once a Digital ID web-redirect (Trinsic iDIN/FTN) has COMPLETED for
|
|
603
|
+
* this session. Like a digital upload, it is single-side (no back capture).
|
|
604
|
+
* Combined with `portraitPresent` it drives the downstream Face Match skip
|
|
605
|
+
* (iDIN returns no portrait → nothing to match) via `computeIdCaptureOutput`.
|
|
606
|
+
*/
|
|
607
|
+
isDigitalIdRedirect: boolean;
|
|
608
|
+
/**
|
|
609
|
+
* Whether the completed digital-ID web-redirect scheme returned a portrait.
|
|
610
|
+
* iDIN/FTN → `false`. When `false`, the ID has no face → the downstream Face
|
|
611
|
+
* Match step is skipped (`computeIdCaptureOutput.skipFaceMatch`).
|
|
612
|
+
*/
|
|
613
|
+
portraitPresent: boolean;
|
|
614
|
+
/**
|
|
615
|
+
* The digital-ID implementation resolved by the funnel when the user picked
|
|
616
|
+
* the Digital ID chooser tile (`resolveDigitalIdImplementation`). Stored so
|
|
617
|
+
* the `digitalIdRouting` state can branch on it and the Trinsic fallback can
|
|
618
|
+
* preset its provider on the `digitalIdRedirect` child input.
|
|
619
|
+
*/
|
|
620
|
+
digitalIdRoute: ResolvedDigitalIdRoute | undefined;
|
|
621
|
+
/**
|
|
622
|
+
* `true` once a device-wallet (mDL) handshake has completed for this
|
|
623
|
+
* session. Wallet credentials are single-side and carry no client-side
|
|
624
|
+
* image; the mDL portrait lands in the session server-side, so the
|
|
625
|
+
* downstream Face Match is NOT skipped (unlike a portrait-less redirect).
|
|
626
|
+
*/
|
|
627
|
+
isDeviceWallet: boolean;
|
|
628
|
+
/** Backend decision of the completed device-wallet handshake. */
|
|
629
|
+
deviceWalletDecision: DeviceWalletDecision | undefined;
|
|
380
630
|
/**
|
|
381
631
|
* Set when `expiredExhausted` was reached via the per-upload (camera)
|
|
382
632
|
* exhaustion path. Used by `CONTINUE_EXHAUSTED` to decide whether to run
|
|
@@ -467,6 +717,18 @@ type IdCaptureContext = {
|
|
|
467
717
|
captureResolution?: string;
|
|
468
718
|
/** Android camera access fallback level that succeeded */
|
|
469
719
|
cameraFallbackLevel?: number;
|
|
720
|
+
/**
|
|
721
|
+
* Digital-ID web-redirect RETURN leg (recovered on start from
|
|
722
|
+
* `config.digitalIdReturn`). Present only when re-mounting after the provider
|
|
723
|
+
* redirect; drives the direct route into the `digitalIdRedirect` child in
|
|
724
|
+
* resume mode. `verificationId`/`providerId` are read back from storage
|
|
725
|
+
* (persisted before the redirect); `returnParams` come from the host.
|
|
726
|
+
*/
|
|
727
|
+
digitalIdReturnParams: RedirectReturnParams | undefined;
|
|
728
|
+
digitalIdResumeVerificationId: string | undefined;
|
|
729
|
+
digitalIdResumeProviderId: DigitalIdProviderId | undefined;
|
|
730
|
+
/** Whether the live `stream` is genuinely the rear camera. */
|
|
731
|
+
usingBackCamera?: boolean;
|
|
470
732
|
};
|
|
471
733
|
type IdCaptureEvent = {
|
|
472
734
|
type: 'LOAD';
|
|
@@ -596,9 +858,27 @@ type IdCaptureEvent = {
|
|
|
596
858
|
type: 'DIGITAL_UPLOAD_SCAN_INSTEAD';
|
|
597
859
|
} | {
|
|
598
860
|
type: 'DIGITAL_UPLOAD_CHOOSE_ANOTHER';
|
|
861
|
+
} | {
|
|
862
|
+
type: 'DIGITAL_ID_REDIRECT_RETRY';
|
|
863
|
+
} | {
|
|
864
|
+
type: 'DIGITAL_ID_REDIRECT_USE_ANOTHER_METHOD';
|
|
865
|
+
} | {
|
|
866
|
+
type: 'DIGITAL_ID_REDIRECT_CONTINUE';
|
|
867
|
+
} | {
|
|
868
|
+
type: 'DIGITAL_ID_REDIRECT_REFRESH';
|
|
869
|
+
} | {
|
|
870
|
+
type: 'DEVICE_WALLET_RETRY';
|
|
871
|
+
} | {
|
|
872
|
+
type: 'DEVICE_WALLET_USE_ANOTHER_METHOD';
|
|
599
873
|
};
|
|
600
874
|
type IdCaptureDependencies = {
|
|
601
875
|
storage: IStorageCapability;
|
|
876
|
+
/**
|
|
877
|
+
* W3C Digital Credentials API access for the device-wallet (mDL) child.
|
|
878
|
+
* Optional for backward compatibility; defaults to
|
|
879
|
+
* `BrowserDigitalCredentialsProvider` at the composition points.
|
|
880
|
+
*/
|
|
881
|
+
credentials?: IDigitalCredentialsCapability;
|
|
602
882
|
trackCaptureAttemptFinished?: (payload: {
|
|
603
883
|
logs: string;
|
|
604
884
|
resolution?: string;
|
|
@@ -642,4 +922,4 @@ type IdCaptureOutput = {
|
|
|
642
922
|
skipFaceMatch: boolean;
|
|
643
923
|
} | undefined;
|
|
644
924
|
//#endregion
|
|
645
|
-
export {
|
|
925
|
+
export { MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES as A, DeviceWalletProvider as B, IdDocumentType as C, UploadIdResponse as D, IdFlowStep as E, DeviceWalletDecision as F, DigitalIdPlatformSupport as G, DIGITAL_ID_REGISTRY as H, DeviceWalletDecryptResponse as I, resolveDigitalIdImplementation as J, ResolvedDigitalIdRoute as K, DeviceWalletFailReason as L, ManualUploadContext as M, ManualUploadSide as N, IAnalyticsCapability as O, ManualUploadTab as P, DeviceWalletOutput as R, IdCapturedImageData as S, IdErrorCode as T, DigitalIdDocumentType as U, DIGITAL_ID_DOCUMENT_TYPES as V, DigitalIdFunnelEntry as W, FailureReason as X, DigitalIdProviderId as Y, RedirectReturnParams as Z, IdCaptureInput as _, CaptureOnlyResponse as a, IdCaptureOutput as b, DetectionStatus as c, IdCaptureContext as d, IdCaptureDependencies as f, IdCaptureGeometry as g, IdCaptureEvent as h, CaptureIdResponse as i, MANUAL_UPLOAD_MAX_RETRIES as j, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS as k, ID_ERROR_CODES as l, IdCaptureDigitalIdMethod as m, AcceptedDocumentType as n, CapturedImage as o, IdCaptureDigitalIdFlowType as p, isRedirectFlowType as q, AddBarcodeV3Response as r, DetectionArea as s, AcceptedDocument as t, IdCaptureConfig as u, IdCaptureMode as v, IdError as w, IdCaptureThresholds as x, IdCaptureOnlyConfig as y, DeviceWalletPlatform as z };
|
package/dist/video-selfie.d.ts
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as WasmPipeline } from "./warmup-Cis2p6O0.js";
|
|
2
2
|
import { A as StateMachine, _ as MachineContext, c as AnyEventObject, p as EventObject, v as MetaObject, y as NonReducibleUnknown } from "./spawn-D9jgw9pW.js";
|
|
3
3
|
import "./StateMachine-EDpYWy0i.js";
|
|
4
4
|
import "./Actor-iTq7YY48.js";
|
|
5
|
+
import { t as IVisibilityObserverCapability } from "./IVisibilityObserverCapability-D4tvIB5v.js";
|
|
5
6
|
import { t as CameraStream } from "./camera-9wWD-pwg.js";
|
|
6
|
-
import { t as DetectionOrientation } from "./IIdCaptureCapability-
|
|
7
|
-
import { a as FacingMode, i as CameraCompositor, n as VideoSelfieDetectionStatus, o as VideoSelfieConfig, r as VideoSelfieValidationFailure, s as VideoSelfieStep, t as StepDetector } from "./videoSelfieStepDetector-
|
|
7
|
+
import { t as DetectionOrientation } from "./IIdCaptureCapability-RNiFhvXR.js";
|
|
8
|
+
import { a as FacingMode, i as CameraCompositor, n as VideoSelfieDetectionStatus, o as VideoSelfieConfig, r as VideoSelfieValidationFailure, s as VideoSelfieStep, t as StepDetector } from "./videoSelfieStepDetector-Co0Gu2k2.js";
|
|
9
|
+
//#region ../infra/src/capabilities/ITimerCapability.d.ts
|
|
10
|
+
type TimerHandle = ReturnType<typeof setTimeout>;
|
|
11
|
+
type ITimerCapability = {
|
|
12
|
+
setTimeout(callback: () => void, delayMs: number): TimerHandle;
|
|
13
|
+
setInterval(callback: () => void, delayMs: number): TimerHandle;
|
|
14
|
+
clearTimeout(handle: TimerHandle): void;
|
|
15
|
+
clearInterval(handle: TimerHandle): void;
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/internal/recordings/videoSelfieUploadService.d.ts
|
|
19
|
+
/** What the multipart upload records. Must be sent on every protocol call. */
|
|
20
|
+
type VideoUploadScope = 'videoselfie' | 'selfie' | 'frontId' | 'backId';
|
|
21
|
+
//#endregion
|
|
8
22
|
//#region src/internal/recordings/multipartRecordingService.d.ts
|
|
9
23
|
type MultipartRecordingResult = {
|
|
10
24
|
/**
|
|
@@ -19,12 +33,10 @@ type MultipartRecordingResult = {
|
|
|
19
33
|
* captured, using the video-selfie-service multipart upload protocol
|
|
20
34
|
* (`/v1/video-upload/*`).
|
|
21
35
|
*
|
|
22
|
-
* This is the
|
|
23
|
-
*
|
|
24
|
-
* / `OpenViduRecordingService`) — it is the replacement for server-side
|
|
25
|
-
* (OpenVidu) recording, not a sibling of it.
|
|
36
|
+
* This is the client-side recorder for Video Selfie and for scoped regular
|
|
37
|
+
* Selfie and ID recordings. It replaces the former server-side recording path.
|
|
26
38
|
*
|
|
27
|
-
* Every ~
|
|
39
|
+
* Every ~0.5 s recorder blob uploads as its own chunk, concurrently with
|
|
28
40
|
* recording, through {@link VideoSelfieChunkUploader} (keep-until-ack +
|
|
29
41
|
* retry with backoff — see its doc for the full policy). The service stages
|
|
30
42
|
* sub-5 MiB chunks and combines them server-side, so `stop()` only drains
|
|
@@ -33,14 +45,23 @@ type MultipartRecordingResult = {
|
|
|
33
45
|
* (S3 SSE-AES-256).
|
|
34
46
|
*/
|
|
35
47
|
declare class MultipartRecordingService {
|
|
48
|
+
private readonly scope;
|
|
36
49
|
private recorder;
|
|
37
50
|
private timer;
|
|
38
51
|
private session;
|
|
39
52
|
private uploader;
|
|
40
53
|
private chunksEmitted;
|
|
54
|
+
private stopPromise;
|
|
55
|
+
private abandonRequested;
|
|
56
|
+
constructor(scope?: VideoUploadScope);
|
|
41
57
|
get isRecording(): boolean;
|
|
42
58
|
start(stream: MediaStream): Promise<void>;
|
|
59
|
+
/** Pause the current media container without finalizing its upload. */
|
|
60
|
+
pause(): boolean;
|
|
61
|
+
/** Resume the same media container after its video source has recovered. */
|
|
62
|
+
resume(): boolean;
|
|
43
63
|
stop(): Promise<MultipartRecordingResult>;
|
|
64
|
+
private finalizeRecording;
|
|
44
65
|
cleanup(): void;
|
|
45
66
|
/**
|
|
46
67
|
* `complete` is idempotent server-side ("safe to repeat if the response
|
|
@@ -66,21 +87,31 @@ type VideoSelfieRecordingDependencies = {
|
|
|
66
87
|
acquireCamera?: (facingMode: FacingMode, withAudio: boolean) => Promise<CameraStream>;
|
|
67
88
|
/** Runs WASM detection + backend validation per step; resolves to advance. */
|
|
68
89
|
detect?: StepDetector;
|
|
90
|
+
/** Timer used by the whole-session maximum recording duration. */
|
|
91
|
+
timer?: ITimerCapability;
|
|
92
|
+
/**
|
|
93
|
+
* Overrides the page-visibility source used to pause capture. The manager
|
|
94
|
+
* promotes this dependency to the machine's required top-level input.
|
|
95
|
+
*/
|
|
96
|
+
visibilityObserver?: IVisibilityObserverCapability;
|
|
69
97
|
/** Minimum time to hold the switching-camera screen before resuming capture. */
|
|
70
98
|
switchingCameraMinDwellMs?: number;
|
|
71
99
|
};
|
|
72
100
|
/**
|
|
73
101
|
* Why the module errored: `connection` means a transport-level failure the
|
|
74
102
|
* user can fix by getting back online (the UI shows the connection-error
|
|
75
|
-
* copy); `technical` is
|
|
76
|
-
* diagnostics/hosts, the UI shows its generic fallback)
|
|
103
|
+
* copy); `technical` is every other recoverable failure (raw detail stays in
|
|
104
|
+
* `error` for diagnostics/hosts, the UI shows its generic fallback);
|
|
105
|
+
* `maxVideoLengthReached` is the configured recording limit; and
|
|
106
|
+
* `validationAttemptsExhausted` terminates the module after the last allowed
|
|
107
|
+
* ID or selfie validation failure.
|
|
77
108
|
*/
|
|
78
|
-
type VideoSelfieErrorKind = 'connection' | 'technical';
|
|
109
|
+
type VideoSelfieErrorKind = 'connection' | 'technical' | 'maxVideoLengthReached' | 'validationAttemptsExhausted';
|
|
79
110
|
//#endregion
|
|
80
111
|
//#region src/modules/video-selfie/videoSelfieRecordingActor.d.ts
|
|
81
112
|
type CreateVideoSelfieRecordingActorOptions = {
|
|
82
|
-
/** Module config; its flags determine the active capture steps + validations. */
|
|
83
113
|
config?: VideoSelfieConfig;
|
|
114
|
+
steps?: VideoSelfieStep[];
|
|
84
115
|
dependencies?: VideoSelfieRecordingDependencies;
|
|
85
116
|
};
|
|
86
117
|
//#endregion
|
|
@@ -116,12 +147,19 @@ type VideoSelfieRecordingState = {
|
|
|
116
147
|
attemptsRemaining: number;
|
|
117
148
|
/** The completed upload id, available during `success` and `finished`. */
|
|
118
149
|
recordingId: string | null;
|
|
119
|
-
/**
|
|
150
|
+
/**
|
|
151
|
+
* Failure detail for diagnostics, or the stable
|
|
152
|
+
* `maxVideoLengthReached` reason when the configured limit expires.
|
|
153
|
+
* Set when `status === 'error'`.
|
|
154
|
+
*/
|
|
120
155
|
error: string | undefined;
|
|
121
156
|
/**
|
|
122
157
|
* Why the module errored: `connection` (transport failure — the UI shows
|
|
123
158
|
* the connection-error copy; raw detail stays in `error` for diagnostics)
|
|
124
|
-
* or `technical` (
|
|
159
|
+
* or `technical` (recoverable technical failures), or
|
|
160
|
+
* `maxVideoLengthReached` (the configured recording limit), or
|
|
161
|
+
* `validationAttemptsExhausted` (terminal ID/selfie validation failure).
|
|
162
|
+
* Set when `status === 'error'`.
|
|
125
163
|
*/
|
|
126
164
|
errorKind: VideoSelfieErrorKind | undefined;
|
|
127
165
|
};
|
|
@@ -172,27 +210,10 @@ declare function facingModeForStep(step: VideoSelfieStep): 'user' | 'environment
|
|
|
172
210
|
* the first well-framed frame.
|
|
173
211
|
*/
|
|
174
212
|
declare function resolveVideoSelfieSteps(config: VideoSelfieConfig): VideoSelfieStep[];
|
|
175
|
-
|
|
176
|
-
* The WASM pipelines a Video Selfie session loads. The selfie step always runs
|
|
177
|
-
* face detection (`videoSelfie`); the ID steps run the simplified ID-capture
|
|
178
|
-
* pipeline (`videoSelfieId`), gated by `checkIdScan`. Used both for the
|
|
179
|
-
* flow-level eager warmup ({@link getRequiredWasmPipelines}) and the
|
|
180
|
-
* tutorial-time lazy warmup (`warmupVideoSelfieWasm`).
|
|
181
|
-
*/
|
|
182
|
-
declare function videoSelfieWasmPipelines(config: VideoSelfieConfig): WasmPipeline[];
|
|
213
|
+
declare function videoSelfieWasmPipelines(config: VideoSelfieConfig, steps?: VideoSelfieStep[]): WasmPipeline[];
|
|
183
214
|
//#endregion
|
|
184
215
|
//#region src/modules/video-selfie/videoSelfieWasm.d.ts
|
|
185
|
-
|
|
186
|
-
* Warms the WASM pipelines the Video Selfie flow needs (face detection, plus the
|
|
187
|
-
* ID-capture pipeline when `checkIdScan` is on), reusing the WASM config stored
|
|
188
|
-
* by `setup({ wasm })`.
|
|
189
|
-
*
|
|
190
|
-
* Idempotent and safe to call eagerly — the UI invokes it when the tutorial
|
|
191
|
-
* mounts so the models finish loading while the user reads the instructions, and
|
|
192
|
-
* detection is ready the instant recording starts (mirrors how the selfie and ID
|
|
193
|
-
* modules warm up during their tutorials). No-op when WASM was not configured.
|
|
194
|
-
*/
|
|
195
|
-
declare function warmupVideoSelfieWasm(config: VideoSelfieConfig): Promise<void>;
|
|
216
|
+
declare function warmupVideoSelfieWasm(config: VideoSelfieConfig, steps?: VideoSelfieStep[]): Promise<void>;
|
|
196
217
|
//#endregion
|
|
197
218
|
//#region src/modules/video-selfie/videoSelfieCameraWarmer.d.ts
|
|
198
219
|
/**
|
|
@@ -230,7 +251,7 @@ type VideoSelfieCameraWarmer = {
|
|
|
230
251
|
* camera (and whether it needs audio) is derived from the resolved step order —
|
|
231
252
|
* the same first acquire the recording machine performs on `START`.
|
|
232
253
|
*/
|
|
233
|
-
declare function createVideoSelfieCameraWarmer(config: VideoSelfieConfig): VideoSelfieCameraWarmer;
|
|
254
|
+
declare function createVideoSelfieCameraWarmer(config: VideoSelfieConfig, steps?: VideoSelfieStep[]): VideoSelfieCameraWarmer;
|
|
234
255
|
//#endregion
|
|
235
256
|
//#region src/modules/video-selfie/videoSelfieSpeechService.d.ts
|
|
236
257
|
/** A single random question (and its expected answer) for the challenge step. */
|
|
@@ -304,4 +325,7 @@ declare const videoSelfieFlowModuleMachine: StateMachine<MachineContext, AnyEven
|
|
|
304
325
|
};
|
|
305
326
|
}>;
|
|
306
327
|
//#endregion
|
|
307
|
-
|
|
328
|
+
//#region src/internal/orchestration/advanceableErrors.d.ts
|
|
329
|
+
declare const VIDEO_SELFIE_VALIDATION_ATTEMPTS_EXHAUSTED_CODE = "VIDEO_SELFIE_VALIDATION_ATTEMPTS_EXHAUSTED";
|
|
330
|
+
//#endregion
|
|
331
|
+
export { type ConsentRecorder, type CreateVideoSelfieRecordingActorOptions, VIDEO_SELFIE_VALIDATION_ATTEMPTS_EXHAUSTED_CODE, type VideoSelfieCameraWarmer, type VideoSelfieConfig, type VideoSelfieQuestion, type VideoSelfieRecordingManager, type VideoSelfieRecordingState, type VideoSelfieRecordingStatus, type VideoSelfieStep, createConsentRecorder, createVideoSelfieCameraWarmer, createVideoSelfieRecordingManager, facingModeForStep, getVideoSelfieQuestions, getVoiceConsentPhrase, resolveVideoSelfieSteps, videoSelfieFlowModuleMachine, videoSelfieWasmPipelines, warmupVideoSelfieWasm };
|