@incodetech/core 2.1.1 → 2.2.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/dist/{3dAvatarProvider-BwOmTMOy.esm.js → 3dAvatarProvider-g02DTFqT.esm.js} +811 -880
- package/dist/Actor-iTq7YY48.d.ts +1 -0
- package/dist/BrowserDiagnosticsCryptoProvider-BwGL3Lmi.esm.js +95 -0
- package/dist/BrowserLazyImportProvider-BhoA957O.esm.js +114 -0
- package/dist/{BrowserStorageProvider-CBHBhKQN.esm.js → BrowserStorageProvider-k-FDkC4W.esm.js} +2 -4
- package/dist/{BrowserTimerProvider-CHloo0eQ.esm.js → BrowserTimerProvider-BXhgNxLt.esm.js} +1 -2
- package/dist/{BrowserVisibilityObserverProvider-GBS6XSii.esm.js → BrowserVisibilityObserverProvider-BX1BiLDK.esm.js} +1 -2
- package/dist/Face2DProvider-UUQt_vRC.esm.js +437 -0
- package/dist/{createFaceAvatar-CpdYp9Iy.d.ts → FaceDetectionProvider-Mh6q3EbA.d.ts} +107 -159
- package/dist/IBrowserEnvironmentCapability-DEaRRk-R.esm.js +9 -0
- package/dist/IFaceAvatarCapability-BrL19G0s.d.ts +23 -0
- package/dist/IFeatureManagementCapability-DdEUp6tB.d.ts +1125 -0
- package/dist/IIdCaptureCapability-DHTT3FC2.d.ts +237 -0
- package/dist/IStorageCapability-ORkQfK3F.d.ts +242 -0
- package/dist/{ITimerCapability-DJ73P4RK.esm.js → ITimerCapability-DgdDzp8G.esm.js} +1 -2
- package/dist/{Manager-goNPc_h_.d.ts → Manager-CQQ99QOI.d.ts} +1 -0
- package/dist/{MotionSensorProvider-BHuHoYvJ.esm.js → MotionSensorProvider-DGiV77J_.esm.js} +2 -37
- package/dist/{OpenViduRecordingProvider-CK6A5kiU.esm.js → OpenViduRecordingProvider-Du98qevC.esm.js} +2 -4
- package/dist/PrivacyLensProvider-D8PS7AJa.esm.js +405 -0
- package/dist/StateMachine-EDpYWy0i.d.ts +6 -0
- package/dist/{StreamCanvasCapture-CAqUdVkM.esm.js → StreamCanvasCapture-D2XcXCZ4.esm.js} +2 -4
- package/dist/{addressSearch-D7msRieq.esm.js → addressSearch-DQyrvDQj.esm.js} +10 -21
- package/dist/ae-signature.d.ts +4 -6
- package/dist/ae-signature.esm.js +10 -11
- package/dist/antifraud.d.ts +1 -6
- package/dist/antifraud.esm.js +3 -8
- package/dist/{antifraudManager-5KA84wtF.esm.js → antifraudManager-B8Plzf7a.esm.js} +11 -8
- package/dist/{antifraudManager-DCiNI6np.d.ts → antifraudManager-BY36bS12.d.ts} +3 -3
- package/dist/{antifraudStateMachine-BQVw46N5.esm.js → antifraudStateMachine-r4VxSBS4.esm.js} +5 -7
- package/dist/api-Bx3gKW_y.esm.js +129 -0
- package/dist/{apiError-DkOXfFBu.esm.js → apiError-oiEnJIlk.esm.js} +25 -3
- package/dist/authentication.d.ts +3 -19
- package/dist/authentication.esm.js +3 -35
- package/dist/{authenticationManager-BeT6tNZm.d.ts → authenticationManager-BBMGTcwW.d.ts} +3 -4
- package/dist/{authenticationManager-BryLnSaF.esm.js → authenticationManager-Dq_tudSW.esm.js} +7 -10
- package/dist/{authenticationStateMachine-DbdxfGHx.esm.js → authenticationStateMachine-D4koAtP3.esm.js} +11 -15
- package/dist/avatar.d.ts +2 -2
- package/dist/avatar.esm.js +2 -3
- package/dist/avatar2dWarm-DqucNFX4.esm.js +1330 -0
- package/dist/avatarStats-CdUOb3VD.esm.js +136 -0
- package/dist/{backCameraStream-ChrMTJv-.esm.js → backCameraStream-CUeYm5eu.esm.js} +20 -8
- package/dist/browser-DlFgHpoC-DnyrCR8r.esm.js +1513 -0
- package/dist/callback-645_omgz.d.ts +133 -0
- package/dist/camera-_2sXMXiF.esm.js +140 -0
- package/dist/camera.d.ts +19 -2
- package/dist/camera.esm.js +2 -6
- package/dist/{canvas-Pi10hG_l.esm.js → canvas-E1zGkel4.esm.js} +1 -2
- package/dist/certificate-issuance.d.ts +34 -39
- package/dist/certificate-issuance.esm.js +4 -11
- package/dist/{certificateIssuanceStateMachine-DlZQT1_u.esm.js → certificateIssuanceStateMachine-COd7_l2T.esm.js} +7 -11
- package/dist/consent.d.ts +1 -4
- package/dist/consent.esm.js +3 -8
- package/dist/{consentManager-BwNu-uC-.esm.js → consentManager-BApTlfA0.esm.js} +5 -7
- package/dist/{consentManager-B4PMGXW-.d.ts → consentManager-uhDPdU6i.d.ts} +55 -61
- package/dist/{consentStateMachine-BOkVFiU7.esm.js → consentStateMachine-WD-S-Yhs.esm.js} +5 -7
- package/dist/{cpf-16m_cGAM.esm.js → cpf-BIADjddF.esm.js} +1 -2
- package/dist/createFaceAvatar-BEj18KXi.d.ts +50 -0
- package/dist/createFaceAvatar-DQKaRise.esm.js +103 -0
- package/dist/cross-document-data-match.d.ts +2 -26
- package/dist/cross-document-data-match.esm.js +2 -71
- package/dist/crossDocumentDataMatchManager-Dq8Z3SOg.d.ts +41 -0
- package/dist/crossDocumentDataMatchManager-OmYvyung.esm.js +84 -0
- package/dist/curp-validation.d.ts +1 -11
- package/dist/curp-validation.esm.js +3 -8
- package/dist/{curpValidationManager-CoqODZx5.d.ts → curpValidationManager-DVGr7Fq7.d.ts} +4 -6
- package/dist/{curpValidationManager-Cbji2inV.esm.js → curpValidationManager-UZxcrsrz.esm.js} +11 -7
- package/dist/{curpValidationStateMachine-Dlw4qfFb.esm.js → curpValidationStateMachine-9KwnqeoB.esm.js} +22 -14
- package/dist/custom-fields.d.ts +2 -5
- package/dist/custom-fields.esm.js +24 -11
- package/dist/custom-watchlist.d.ts +1 -3
- package/dist/custom-watchlist.esm.js +11 -10
- package/dist/{customWatchlistStateMachine-D8w0mNxm.esm.js → customWatchlistStateMachine-B_ey3TFj.esm.js} +5 -7
- package/dist/{dateUtils-BW6mBV6p.esm.js → dateUtils-CvG0FvK8.esm.js} +1 -2
- package/dist/{deepsightService-CViys6T4.esm.js → deepsightLoader-CWE0SvF1.esm.js} +68 -14
- package/dist/{deepsightService-BuTOFTr8.d.ts → deepsightService-DLVQS_RH.d.ts} +41 -2
- package/dist/device.d.ts +10 -2
- package/dist/device.esm.js +21 -21
- package/dist/document-capture.d.ts +3 -1816
- package/dist/document-capture.esm.js +3 -245
- package/dist/document-upload.d.ts +48 -55
- package/dist/document-upload.esm.js +8 -14
- package/dist/documentCaptureManager-B3t0ydtg.d.ts +2062 -0
- package/dist/documentCaptureManager-DszmcU-l.esm.js +296 -0
- package/dist/{documentCaptureStateMachine-BkTvU3yq.esm.js → documentCaptureStateMachine-D2jBwwVb.esm.js} +66 -40
- package/dist/dynamic-forms.d.ts +2 -4
- package/dist/dynamic-forms.esm.js +3 -9
- package/dist/{dynamicFormsManager-CHXUBNs4.esm.js → dynamicFormsManager-B-OmpJkU.esm.js} +48 -9
- package/dist/{dynamicFormsManager-CKZkE7Wo.d.ts → dynamicFormsManager-fhK0yINk.d.ts} +22 -46
- package/dist/{dynamicFormsStateMachine-DJ1HGZff.esm.js → dynamicFormsStateMachine-D_3oLtOE.esm.js} +161 -34
- package/dist/ekyb.d.ts +5 -137
- package/dist/ekyb.esm.js +4 -179
- package/dist/ekybManager-BJVp2ahf.esm.js +178 -0
- package/dist/ekybManager-Dzswb_b8.d.ts +114 -0
- package/dist/{ekybStateMachine-D9GzA4MW.esm.js → ekybStateMachine-BYcc9VaR.esm.js} +16 -193
- package/dist/ekyc.d.ts +2 -79
- package/dist/ekyc.esm.js +4 -154
- package/dist/ekycManager-BFpHbBoT.d.ts +97 -0
- package/dist/ekycManager-oTstTJuL.esm.js +156 -0
- package/dist/{ekycStateMachine-DnVRiu3s.esm.js → ekycStateMachine-DHvksnrr.esm.js} +141 -423
- package/dist/ekycUtils-Dew1rBG0.esm.js +223 -0
- package/dist/electronic-signature.d.ts +3 -5
- package/dist/electronic-signature.esm.js +2 -10
- package/dist/{electronicSignatureManager-DESRgObX.esm.js → electronicSignatureManager-CApcBEQd.esm.js} +47 -33
- package/dist/{index-36QX_21w.d.ts → electronicSignatureManager-CcUXQZS7.d.ts} +220 -251
- package/dist/email.d.ts +1 -5
- package/dist/email.esm.js +3 -10
- package/dist/{emailManager-CMS4q_r6.d.ts → emailManager-CADXW_9X.d.ts} +4 -7
- package/dist/{emailManager-B9Vrv3Ma.esm.js → emailManager-tE-YvNtS.esm.js} +76 -12
- package/dist/{emailStateMachine-CbmKFVSi.esm.js → emailStateMachine-Bm894MHB.esm.js} +7 -9
- package/dist/{endpoints-CwrFQfW7.esm.js → endpoints-CCzL3XD_.esm.js} +55 -6
- package/dist/{events-1wxZ97yf.esm.js → events-CxfNJVZW.esm.js} +43 -176
- package/dist/events.d.ts +28 -10
- package/dist/events.esm.js +2 -4
- package/dist/extensibility.d.ts +37 -37
- package/dist/extensibility.esm.js +31 -80
- package/dist/{externalFetch-hvmz_npP.esm.js → externalFetch-BKBThAUC.esm.js} +2 -4
- package/dist/face-match.d.ts +2 -225
- package/dist/face-match.esm.js +3 -173
- package/dist/{faceCaptureManagerFactory-C9TiGbkA.esm.js → faceCaptureManagerFactory-4VejGOQX.esm.js} +52 -31
- package/dist/{faceCaptureManagerFactory-DiJ64oem.d.ts → faceCaptureManagerFactory-BxWPpxyd.d.ts} +63 -24
- package/dist/{faceCaptureSetup-BqhqfFHL.esm.js → faceCaptureSetup-BB5KEtbV.esm.js} +57 -36
- package/dist/faceMatchManager-BXp2WUT-.esm.js +201 -0
- package/dist/faceMatchManager-BnvrZM2F.d.ts +268 -0
- package/dist/{faceMatchStateMachine-MDb30gCm.esm.js → faceMatchStateMachine-CJiO2yLO.esm.js} +14 -10
- package/dist/feature-management-DS_Nj5Gg.esm.js +615 -0
- package/dist/feature-management.d.ts +173 -0
- package/dist/feature-management.esm.js +2 -0
- package/dist/field-comparison.d.ts +1 -4
- package/dist/field-comparison.esm.js +2 -7
- package/dist/{fieldComparisonManager-OLKVsG2Z.d.ts → fieldComparisonManager-CBvEGxFx.d.ts} +3 -5
- package/dist/{fieldComparisonManager-Cw4uzD7S.esm.js → fieldComparisonManager-DhnYdYZ2.esm.js} +6 -11
- package/dist/fiscal-qr.d.ts +1 -6
- package/dist/fiscal-qr.esm.js +14 -29
- package/dist/flow-events.d.ts +2 -9
- package/dist/flow.d.ts +59 -21
- package/dist/flow.esm.js +132 -49
- package/dist/{flowCompletionService-B6P6_EF3.esm.js → flowCompletionService-Bt3wD28k.esm.js} +4 -6
- package/dist/flowServices-b0Pd4F1K.esm.js +620 -0
- package/dist/geolocation.d.ts +1 -4
- package/dist/geolocation.esm.js +3 -9
- package/dist/geolocationManager-Cz744E5S.d.ts +506 -0
- package/dist/{geolocationManager-CF6-NizA.esm.js → geolocationManager-DGwnL5lg.esm.js} +44 -16
- package/dist/{geolocationStateMachine-CD2XJs1b.esm.js → geolocationStateMachine-il6jz5DZ.esm.js} +53 -28
- package/dist/{getBrowser-1yNcfFZR.esm.js → getBrowser-Cb8Zgrgp.esm.js} +1 -2
- package/dist/getBrowser-DNrQeL4T.esm.js +16 -0
- package/dist/getDeviceClass-9y-kbVDw.esm.js +19 -0
- package/dist/{getDeviceClass-C-Dg6IsJ.esm.js → getDeviceClass-CeBiEayS.esm.js} +1 -2
- package/dist/getParsedUserAgent-pJjATANs.esm.js +1622 -0
- package/dist/government-validation.d.ts +3 -6
- package/dist/government-validation.esm.js +7 -13
- package/dist/{governmentValidationStateMachine-BE5wiQ7Y.esm.js → governmentValidationStateMachine-BYKYUdza.esm.js} +8 -11
- package/dist/home.d.ts +14 -22
- package/dist/home.esm.js +3 -8
- package/dist/http.d.ts +0 -1
- package/dist/http.esm.js +2 -4
- package/dist/id-ocr.d.ts +8 -7
- package/dist/id-ocr.esm.js +20 -9
- package/dist/id-selfie-flow.d.ts +179 -0
- package/dist/id-selfie-flow.esm.js +917 -0
- package/dist/id-verification.d.ts +2 -191
- package/dist/id-verification.esm.js +3 -43
- package/dist/id.d.ts +7 -18
- package/dist/id.esm.js +47 -53
- package/dist/{idCaptureDefaults-CZajItdO.esm.js → idCaptureDefaults-WeHbQM7W.esm.js} +54 -17
- package/dist/idCaptureManager-BjU-Wyow.d.ts +429 -0
- package/dist/{idCaptureManager-DASPUMtC.esm.js → idCaptureManager-DgohUfUQ.esm.js} +173 -34
- package/dist/idCaptureServices-RDiDS9tg.esm.js +396 -0
- package/dist/{idCaptureStateMachine-DZ2ZTSxu.esm.js → idCaptureStateMachine-DWocZD_m.esm.js} +438 -585
- package/dist/{idOcrManager-Tm4LzKR0.esm.js → idOcrManager-CvJZhmBR.esm.js} +4 -7
- package/dist/{idOcrManager-DLfAjDZn.d.ts → idOcrManager-DXc_xRN7.d.ts} +62 -229
- package/dist/{idOcrStateMachine-BJxZCxwS.esm.js → idOcrStateMachine-Bq_e3l4E.esm.js} +15 -20
- package/dist/idVerificationManager-BB4Pj_N6.d.ts +197 -0
- package/dist/idVerificationManager-CduNXhWd.esm.js +51 -0
- package/dist/{idVerificationStateMachine-DXN9WcdM.esm.js → idVerificationStateMachine-GEQWUPU2.esm.js} +5 -7
- package/dist/identity-reuse.d.ts +1 -4
- package/dist/identity-reuse.esm.js +3 -8
- package/dist/{identityReuseManager-LjkPvSQN.esm.js → identityReuseManager-D5vXknnJ.esm.js} +24 -7
- package/dist/{identityReuseManager-CLVOYxcp.d.ts → identityReuseManager-v2TH5g7e.d.ts} +38 -43
- package/dist/{identityReuseStateMachine-Bp-zONoV.esm.js → identityReuseStateMachine-AubRPhIi.esm.js} +6 -8
- package/dist/index-B8weJxmL.d.ts +1 -0
- package/dist/index-BKOWUhxG.d.ts +258 -0
- package/dist/{index-DrpWp15Z.d.ts → index-CLMF0QLQ.d.ts} +3 -3
- package/dist/index.d.ts +1 -3
- package/dist/index.esm.js +2 -15
- package/dist/{invokeOnCaptureCallback-CCS2Ruzi.esm.js → invokeOnCaptureCallback-1m1VJ3Q4.esm.js} +2 -4
- package/dist/{lib-Bjd6nOLG.esm.js → lib-DAyUtOTj.esm.js} +1510 -1589
- package/dist/mandatory-consent.d.ts +2 -10
- package/dist/mandatory-consent.esm.js +3 -8
- package/dist/{mandatoryConsentManager-DeBmOHcQ.d.ts → mandatoryConsentManager-B29kR0XA.d.ts} +60 -85
- package/dist/{mandatoryConsentManager-DZ26sg4B.esm.js → mandatoryConsentManager-BeELm1zS.esm.js} +4 -7
- package/dist/{mandatoryConsentStateMachine-_44ZoDSh.esm.js → mandatoryConsentStateMachine-zroQGzwb.esm.js} +5 -7
- package/dist/manualReviewService-D4IkipnN.esm.js +15 -0
- package/dist/{mediaRecorderOptions-CClCKAiF.esm.js → mediaRecorderOptions-dALSV8af.esm.js} +2 -4
- package/dist/{mediapipeShared-Bcmkzs3x.esm.js → mediapipeShared-B6oNoXEQ.esm.js} +21 -9
- package/dist/{onDeviceFaceResults-DILtthks.esm.js → onDeviceFaceResults-C6IRJHQB.esm.js} +30 -87
- package/dist/openviduLazy-CCDpFWg1.esm.js +10 -0
- package/dist/{otp-B1YeyRXu.d.ts → otp-CEWfTj9v.d.ts} +0 -1
- package/dist/{otp-uaXiKt_R.esm.js → otp-D2k3PeSL.esm.js} +3 -14
- package/dist/{permissionGuards-BNOe4Tnu.esm.js → permissionGuards-KINpmKtI.esm.js} +2 -4
- package/dist/{permissionServices-C_kxhNeo.esm.js → permissionServices-UvUcOSRb.esm.js} +35 -28
- package/dist/personhood.d.ts +13 -20
- package/dist/personhood.esm.js +153 -85
- package/dist/phone.d.ts +1 -5
- package/dist/phone.esm.js +3 -10
- package/dist/{phoneManager-_KtitbUA.d.ts → phoneManager-BBU8Lq0O.d.ts} +4 -7
- package/dist/{phoneManager-CRblfdcI.esm.js → phoneManager-Cpiai2IM.esm.js} +82 -12
- package/dist/{phoneStateMachine-DjFGWMjQ.esm.js → phoneStateMachine-E1fUUcNM.esm.js} +7 -9
- package/dist/{platform-0Ot-bF_a.esm.js → platform-BJrm5nzZ.esm.js} +31 -11
- package/dist/privacyLensWorker-DI-Rg83h.esm.js +355 -0
- package/dist/qe-signature.d.ts +4 -6
- package/dist/qe-signature.esm.js +10 -11
- package/dist/{recordingService-CxaYkITO.esm.js → recordingService-N4RhdyiT.esm.js} +13 -31
- package/dist/redirect-to-mobile.d.ts +2 -6
- package/dist/redirect-to-mobile.esm.js +3 -10
- package/dist/{redirectToMobileManager-dv29o_LS.d.ts → redirectToMobileManager-BD2PvT5B.d.ts} +8 -44
- package/dist/{redirectToMobileManager-DbuNUlru.esm.js → redirectToMobileManager-C0dfc7f6.esm.js} +28 -8
- package/dist/{redirectToMobileStateMachine-BRaIJWOM.esm.js → redirectToMobileStateMachine-C9SYCJcH.esm.js} +74 -18
- package/dist/rolldown-runtime-FZ4Itg2g.esm.js +42 -0
- package/dist/{runChildModule-kojSv3MH.esm.js → runChildModule-DpRmKWV0.esm.js} +10 -9
- package/dist/{WasmUtilProvider-BgzcXBdl.esm.js → safeStorage-Ep56I-f_.esm.js} +98 -473
- package/dist/selfie.d.ts +8 -21
- package/dist/selfie.esm.js +40 -47
- package/dist/selfieErrorUtils-C2PYBVsp.esm.js +90 -0
- package/dist/{selfieManager-B1Px3GGa.esm.js → selfieManager-CmoNiluM.esm.js} +7 -10
- package/dist/{selfieManager-4juKfrHG.d.ts → selfieManager-DwlCppg0.d.ts} +3 -4
- package/dist/{selfieStateMachine-D0TS93Tu.esm.js → selfieStateMachine-L9pghTly.esm.js} +14 -29
- package/dist/{session-CLsU2Jnb.esm.js → session-DeR_I24J.esm.js} +16 -7
- package/dist/session.d.ts +12 -10
- package/dist/session.esm.js +5 -15
- package/dist/sessionInitializer-DNgRpf5Y.esm.js +1865 -0
- package/dist/{setup-CfNsYAeB.esm.js → setup-DuYKUt0r.esm.js} +319 -137
- package/dist/{setup-CmA2apmN.d.ts → setup-DywQeePQ.d.ts} +186 -4
- package/dist/signature.d.ts +2 -96
- package/dist/signature.esm.js +3 -108
- package/dist/signatureManager-DGBSWz2_.d.ts +106 -0
- package/dist/signatureManager-DdPgcmou.esm.js +113 -0
- package/dist/{signatureStateMachine-CdhlMih-.esm.js → signatureStateMachine-Cf73DGWO.esm.js} +5 -7
- package/dist/spawn-D9jgw9pW.d.ts +1441 -0
- package/dist/src-0Jurt29N.esm.js +4482 -0
- package/dist/{stats-BVy52wLy.esm.js → stats-B0nFKawG.esm.js} +3 -5
- package/dist/stats.esm.js +2 -5
- package/dist/topLevelStateName-B5i2avbh.esm.js +41 -0
- package/dist/{tri-CFAPtAUM.esm.js → tri-4RsGrIt6.esm.js} +3 -119
- package/dist/tri.d.ts +2 -2
- package/dist/tri.esm-BIjHhBJ2.esm.js +2620 -0
- package/dist/tri.esm.js +2 -4
- package/dist/trueSight-BTl_vvd3.esm.js +1 -0
- package/dist/trueSightService-s3T95geD.esm.js +1894 -0
- package/dist/trust-graph.d.ts +4 -5
- package/dist/trust-graph.esm.js +13 -9
- package/dist/types-BEwVKkLJ.d.ts +15 -0
- package/dist/{types-BKLb3C42.esm.js → types-BN5RPPIZ.esm.js} +1 -2
- package/dist/types-BSBzhHRH.d.ts +57 -0
- package/dist/types-BX_XkMsQ2.d.ts +21 -0
- package/dist/types-BfHiko5D.d.ts +48 -0
- package/dist/{types-D8Cl1N2Z.d.ts → types-BfgmV7s72.d.ts} +2 -2
- package/dist/types-CJ7Yl9K-2.d.ts +164 -0
- package/dist/types-DPIDuhut.d.ts +40 -0
- package/dist/types-DVmXIdzW.d.ts +82 -0
- package/dist/types-DelMqZLe.d.ts +105 -0
- package/dist/types-EELWyWpd.d.ts +6 -0
- package/dist/{types-fO6KIdol.d.ts → types-Hmd7U0JA.d.ts} +80 -6
- package/dist/{types-BUgeB2X6.d.ts → types-KPvmag_B.d.ts} +7 -7
- package/dist/types-M6eb82ra2.d.ts +589 -0
- package/dist/{types-DV3wkhQ4.d.ts → types-Vb4P9ovf.d.ts} +1 -3
- package/dist/{urlUtils-CpiYwn7w.esm.js → urlUtils-D6phjq1-.esm.js} +1 -2
- package/dist/{video-ZY92rkel.esm.js → video-BtSWtHy1.esm.js} +1 -2
- package/dist/video-selfie.d.ts +71 -117
- package/dist/video-selfie.esm.js +575 -643
- package/dist/videoSelfieCameraWarmer-DPx5Lm3d.esm.js +651 -0
- package/dist/videoSelfieStepDetector-D3oo2ofo.d.ts +123 -0
- package/dist/wasm.d.ts +2 -4
- package/dist/wasm.esm.js +4 -15
- package/dist/wasmDefaults-DTUrftxR.esm.js +125 -0
- package/dist/{wasmDsFlagSync-Ch0mFJNT.esm.js → wasmDsFlagSync-BqUCwLY8.esm.js} +2 -4
- package/dist/wasmWebClient-DM8lkb0z.esm.js +407 -0
- package/dist/watchlist-for-business.d.ts +1 -3
- package/dist/watchlist-for-business.esm.js +9 -9
- package/dist/watchlist.d.ts +1 -52
- package/dist/watchlist.esm.js +3 -70
- package/dist/{watchlistForBusinessStateMachine-R1Yp1g5A.esm.js → watchlistForBusinessStateMachine-BcBMkMvV.esm.js} +5 -7
- package/dist/watchlistManager-CjSMmbyq.esm.js +83 -0
- package/dist/watchlistManager-DLXef90v.d.ts +68 -0
- package/dist/{watchlistStateMachine-D07UVq1m.esm.js → watchlistStateMachine-Bl7Wy9Cm.esm.js} +5 -7
- package/dist/workflow.d.ts +239 -203
- package/dist/workflow.esm.js +156 -101
- package/dist/xstate-actors.esm-CtI5S0f4.esm.js +310 -0
- package/dist/{xstate.esm-nY3M5UYm.esm.js → xstate.esm-Cf4e0Cfd.esm.js} +136 -610
- package/package.json +14 -9
- package/dist/Actor-BwgmOPkb.d.ts +0 -2
- package/dist/Face2DProvider-CZU11g6r.esm.js +0 -824
- package/dist/FaceDetectionProvider-CPWg-PAH.d.ts +0 -119
- package/dist/IWasmUtilCapability-DaSNxgA8.d.ts +0 -150
- package/dist/PrivacyLensProvider-B_zrV25p.esm.js +0 -339
- package/dist/StateMachine-D5WO6lHS.d.ts +0 -2
- package/dist/StreamCanvasCapture-DHaWferF.d.ts +0 -42
- package/dist/ae-signature-Pp4oCAHD.esm.js +0 -12
- package/dist/api-DsbUi7TO.esm.js +0 -72
- package/dist/browser-DlFgHpoC-Br3G10gw.esm.js +0 -1425
- package/dist/browserSimulation-DZwEy9bu.esm.js +0 -2804
- package/dist/camera-CxxXV0VN.esm.js +0 -79
- package/dist/canvas-90BqS0NF.d.ts +0 -112
- package/dist/chunk-CIKcdghV.esm.js +0 -49
- package/dist/clientLifecycle-VyzRfALg.esm.js +0 -534
- package/dist/cpf-ocr.d.ts +0 -10
- package/dist/cpf-ocr.esm.js +0 -8
- package/dist/cpfOcrManager-9eM4z4o7.esm.js +0 -190
- package/dist/cpfOcrManager-C5U9E0hf.d.ts +0 -216
- package/dist/createFaceAvatar-BZSg2MNo.esm.js +0 -46
- package/dist/deepsightLoader-CU_tiLMx.esm.js +0 -62
- package/dist/flowServices-DkQmOkLV.esm.js +0 -208
- package/dist/geolocationManager-DaHYFkVO.d.ts +0 -156
- package/dist/getDeviceClass-DIjnTPjR.esm.js +0 -14
- package/dist/http-CnsKEaJY.esm.js +0 -0
- package/dist/idCaptureManager-CwuXtVu6.d.ts +0 -1013
- package/dist/index-BAyZ8_iI.d.ts +0 -93
- package/dist/openviduLazy-jPgABwrt.esm.js +0 -3
- package/dist/openviduLazy-wEojM41w.esm.js +0 -12
- package/dist/qe-signature-BnWIpR-O.esm.js +0 -12
- package/dist/sessionInitializer-Dj7-aJaP.esm.js +0 -547
- package/dist/tri.esm-DDJ1zOqG.esm.js +0 -2593
- package/dist/types-BcF-fii5.d.ts +0 -5
- package/dist/videoSelfieSteps-Djpv7cjb.esm.js +0 -58
- /package/dist/{IVisibilityObserverCapability-BZ1rE7ly.d.ts → IVisibilityObserverCapability-D4tvIB5v.d.ts} +0 -0
- /package/dist/{camera-CKU96nwJ.d.ts → camera-9wWD-pwg.d.ts} +0 -0
- /package/dist/{flowCompletionService-BOSTlAWo.d.ts → flowCompletionService-BlAHsKyv.d.ts} +0 -0
- /package/dist/{types-BgjMAEXl.d.ts → types-Bk_6dmDa.d.ts} +0 -0
- /package/dist/{warmup-Dd0iq6KF.d.ts → warmup-Dv2alr2-.d.ts} +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { r as getToken } from "./api-
|
|
2
|
-
import {
|
|
3
|
-
import { n as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
-
import {
|
|
9
|
-
import { n as
|
|
10
|
-
|
|
1
|
+
import { r as getToken } from "./api-Bx3gKW_y.esm.js";
|
|
2
|
+
import { r as assign, t as setup } from "./xstate.esm-Cf4e0Cfd.esm.js";
|
|
3
|
+
import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-CtI5S0f4.esm.js";
|
|
4
|
+
import { n as invokeRequestPermissionActor, t as checkPermission } from "./permissionServices-UvUcOSRb.esm.js";
|
|
5
|
+
import { c as sendLabelInspectionEvent, f as stopStream, l as startDetection, o as initializeCamera, s as initializeDeepsightSession } from "./onDeviceFaceResults-C6IRJHQB.esm.js";
|
|
6
|
+
import { t as FACE_ERROR_CODES } from "./types-BN5RPPIZ.esm.js";
|
|
7
|
+
import { n as releaseFaceAvatarWarmup, r as warmFaceAvatar, t as createFaceAvatar } from "./createFaceAvatar-DQKaRise.esm.js";
|
|
8
|
+
import { t as StreamCanvasCapture } from "./StreamCanvasCapture-D2XcXCZ4.esm.js";
|
|
9
|
+
import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-KINpmKtI.esm.js";
|
|
10
|
+
import { t as flagFaceManualReview } from "./manualReviewService-D4IkipnN.esm.js";
|
|
11
|
+
import { n as preloadOpenViduProvider, t as createRecordingService } from "./recordingService-N4RhdyiT.esm.js";
|
|
11
12
|
//#region src/internal/avatar/concealment.ts
|
|
12
13
|
/**
|
|
13
14
|
* Maps a backend concealment option to the internal avatar flags. `OPTION_NONE`
|
|
@@ -37,13 +38,12 @@ function concealmentToAvatar(option) {
|
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
|
|
41
41
|
//#endregion
|
|
42
42
|
//#region src/internal/faceCapture/faceCaptureSetup.ts
|
|
43
43
|
const getAttemptsFromConfig = (config) => {
|
|
44
44
|
return config.captureAttempts ?? config.numberOfAttempts ?? 3;
|
|
45
45
|
};
|
|
46
|
-
const
|
|
46
|
+
const faceCaptureMachine = setup({
|
|
47
47
|
types: {
|
|
48
48
|
context: {},
|
|
49
49
|
events: {},
|
|
@@ -84,10 +84,6 @@ const _faceCaptureMachine = setup({
|
|
|
84
84
|
type: "DETECTION_UPDATE",
|
|
85
85
|
status
|
|
86
86
|
}),
|
|
87
|
-
onFrame: (frame) => sendBack({
|
|
88
|
-
type: "DETECTION_FRAME",
|
|
89
|
-
frame
|
|
90
|
-
}),
|
|
91
87
|
onSuccess: (canvas, faceCoordinates) => sendBack({
|
|
92
88
|
type: "DETECTION_SUCCESS",
|
|
93
89
|
canvas,
|
|
@@ -176,7 +172,8 @@ const _faceCaptureMachine = setup({
|
|
|
176
172
|
stream: void 0,
|
|
177
173
|
provider: void 0,
|
|
178
174
|
frameCapturer: void 0,
|
|
179
|
-
avatarCanvas: void 0
|
|
175
|
+
avatarCanvas: void 0,
|
|
176
|
+
usingBackCamera: false
|
|
180
177
|
};
|
|
181
178
|
}),
|
|
182
179
|
setStreamAndCapturer: assign({
|
|
@@ -188,6 +185,10 @@ const _faceCaptureMachine = setup({
|
|
|
188
185
|
},
|
|
189
186
|
frameCapturer: ({ event }) => {
|
|
190
187
|
if ("output" in event) return new StreamCanvasCapture(event.output.stream);
|
|
188
|
+
},
|
|
189
|
+
usingBackCamera: ({ event }) => {
|
|
190
|
+
if ("output" in event) return event.output.usingBackCamera;
|
|
191
|
+
return false;
|
|
191
192
|
}
|
|
192
193
|
}),
|
|
193
194
|
trackTutorial: () => void 0,
|
|
@@ -196,9 +197,9 @@ const _faceCaptureMachine = setup({
|
|
|
196
197
|
stream: void 0,
|
|
197
198
|
provider: void 0,
|
|
198
199
|
frameCapturer: void 0,
|
|
200
|
+
usingBackCamera: false,
|
|
199
201
|
error: void 0,
|
|
200
202
|
detectionStatus: "idle",
|
|
201
|
-
debugFrame: void 0,
|
|
202
203
|
capturedImage: void 0,
|
|
203
204
|
faceCoordinates: void 0,
|
|
204
205
|
uploadResponse: void 0,
|
|
@@ -236,7 +237,8 @@ const _faceCaptureMachine = setup({
|
|
|
236
237
|
stream: void 0,
|
|
237
238
|
provider: void 0,
|
|
238
239
|
frameCapturer: void 0,
|
|
239
|
-
avatarCanvas: void 0
|
|
240
|
+
avatarCanvas: void 0,
|
|
241
|
+
usingBackCamera: false
|
|
240
242
|
};
|
|
241
243
|
}),
|
|
242
244
|
decrementAttemptsRemaining: assign(({ context }) => ({ attemptsRemaining: context.attemptsRemaining - 1 })),
|
|
@@ -261,7 +263,6 @@ const _faceCaptureMachine = setup({
|
|
|
261
263
|
const status = event.status;
|
|
262
264
|
return context.manualCaptureTriggered || status === "manualCapture";
|
|
263
265
|
} }),
|
|
264
|
-
setDebugFrameFromEvent: assign({ debugFrame: ({ event }) => event.frame }),
|
|
265
266
|
setAvatarCanvas: assign({ avatarCanvas: ({ event }) => event.canvas }),
|
|
266
267
|
clearAvatarCanvas: assign({ avatarCanvas: () => void 0 }),
|
|
267
268
|
setResetDetectionFromEvent: assign({ resetDetection: ({ event }) => event.reset }),
|
|
@@ -288,10 +289,22 @@ const _faceCaptureMachine = setup({
|
|
|
288
289
|
preloadRecordingProvider: ({ context }) => {
|
|
289
290
|
if (context.config.enableFaceRecording === true && context.config.deepsightLiveness !== "VIDEOLIVENESS") preloadOpenViduProvider();
|
|
290
291
|
},
|
|
292
|
+
warmAvatarProvider: ({ context }) => {
|
|
293
|
+
const { obfuscateWithAvatar, avatarVariant } = concealmentToAvatar(context.config.selfieConcealmentOption);
|
|
294
|
+
if (!obfuscateWithAvatar || !avatarVariant) return;
|
|
295
|
+
warmFaceAvatar({
|
|
296
|
+
variant: avatarVariant,
|
|
297
|
+
assets: context.config.avatarAssets
|
|
298
|
+
});
|
|
299
|
+
},
|
|
300
|
+
releaseAvatarWarmup: () => {
|
|
301
|
+
releaseFaceAvatarWarmup();
|
|
302
|
+
},
|
|
291
303
|
noOp: () => void 0
|
|
292
304
|
},
|
|
293
305
|
guards: {
|
|
294
306
|
hasShowTutorial: ({ context }) => context.config.showTutorial,
|
|
307
|
+
hasAgeAssurance: ({ context }) => context.config.ageAssurance === true,
|
|
295
308
|
isPermissionGranted: ({ event }) => {
|
|
296
309
|
if ("output" in event) return event.output === "granted";
|
|
297
310
|
return false;
|
|
@@ -327,9 +340,9 @@ const _faceCaptureMachine = setup({
|
|
|
327
340
|
stream: void 0,
|
|
328
341
|
provider: void 0,
|
|
329
342
|
frameCapturer: void 0,
|
|
343
|
+
usingBackCamera: false,
|
|
330
344
|
error: void 0,
|
|
331
345
|
detectionStatus: "idle",
|
|
332
|
-
debugFrame: void 0,
|
|
333
346
|
capturedImage: void 0,
|
|
334
347
|
faceCoordinates: void 0,
|
|
335
348
|
uploadResponse: void 0,
|
|
@@ -349,12 +362,19 @@ const _faceCaptureMachine = setup({
|
|
|
349
362
|
}),
|
|
350
363
|
on: { QUIT: { target: "#faceCapture.closed" } },
|
|
351
364
|
states: {
|
|
352
|
-
idle: { on: { LOAD: [
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
365
|
+
idle: { on: { LOAD: [
|
|
366
|
+
{
|
|
367
|
+
target: "tutorial",
|
|
368
|
+
guard: "hasShowTutorial"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
target: "tutorial",
|
|
372
|
+
guard: "hasAgeAssurance"
|
|
373
|
+
},
|
|
374
|
+
{ target: "loading" }
|
|
375
|
+
] } },
|
|
356
376
|
loading: {
|
|
357
|
-
entry: "preloadRecordingProvider",
|
|
377
|
+
entry: ["preloadRecordingProvider", "warmAvatarProvider"],
|
|
358
378
|
invoke: [{
|
|
359
379
|
id: "checkPermissionLoading",
|
|
360
380
|
src: "checkPermission",
|
|
@@ -379,7 +399,11 @@ const _faceCaptureMachine = setup({
|
|
|
379
399
|
},
|
|
380
400
|
tutorial: {
|
|
381
401
|
initial: "checkingPermission",
|
|
382
|
-
entry: [
|
|
402
|
+
entry: [
|
|
403
|
+
"trackTutorial",
|
|
404
|
+
"preloadRecordingProvider",
|
|
405
|
+
"warmAvatarProvider"
|
|
406
|
+
],
|
|
383
407
|
states: {
|
|
384
408
|
checkingPermission: { invoke: {
|
|
385
409
|
id: "checkPermissionTutorial",
|
|
@@ -498,7 +522,7 @@ const _faceCaptureMachine = setup({
|
|
|
498
522
|
}
|
|
499
523
|
},
|
|
500
524
|
permissions: {
|
|
501
|
-
entry: "preloadRecordingProvider",
|
|
525
|
+
entry: ["preloadRecordingProvider", "warmAvatarProvider"],
|
|
502
526
|
initial: "checkingDeepsight",
|
|
503
527
|
states: {
|
|
504
528
|
checkingDeepsight: { always: [{
|
|
@@ -591,7 +615,7 @@ const _faceCaptureMachine = setup({
|
|
|
591
615
|
}
|
|
592
616
|
},
|
|
593
617
|
capture: {
|
|
594
|
-
entry: "preloadRecordingProvider",
|
|
618
|
+
entry: ["preloadRecordingProvider", "warmAvatarProvider"],
|
|
595
619
|
initial: "checkingDeepsight",
|
|
596
620
|
exit: [
|
|
597
621
|
"stopMediaStream",
|
|
@@ -701,7 +725,6 @@ const _faceCaptureMachine = setup({
|
|
|
701
725
|
exit: ["clearAvatarCanvas"],
|
|
702
726
|
on: {
|
|
703
727
|
DETECTION_UPDATE: { actions: ["setDetectionStatusFromEvent", "setManualCaptureTriggered"] },
|
|
704
|
-
DETECTION_FRAME: { actions: "setDebugFrameFromEvent" },
|
|
705
728
|
AVATAR_READY: { actions: "setAvatarCanvas" },
|
|
706
729
|
DETECTION_RESET_READY: { actions: "setResetDetectionFromEvent" },
|
|
707
730
|
DETECTION_SUCCESS: {
|
|
@@ -820,15 +843,15 @@ const _faceCaptureMachine = setup({
|
|
|
820
843
|
}
|
|
821
844
|
},
|
|
822
845
|
finished: {
|
|
823
|
-
entry: "stopMediaStream",
|
|
846
|
+
entry: ["stopMediaStream", "releaseAvatarWarmup"],
|
|
824
847
|
type: "final"
|
|
825
848
|
},
|
|
826
849
|
closed: {
|
|
827
|
-
entry: "stopMediaStream",
|
|
850
|
+
entry: ["stopMediaStream", "releaseAvatarWarmup"],
|
|
828
851
|
type: "final"
|
|
829
852
|
},
|
|
830
853
|
error: {
|
|
831
|
-
entry: "stopMediaStream",
|
|
854
|
+
entry: ["stopMediaStream", "releaseAvatarWarmup"],
|
|
832
855
|
on: { RESET: {
|
|
833
856
|
target: "idle",
|
|
834
857
|
actions: "resetContext"
|
|
@@ -836,7 +859,5 @@ const _faceCaptureMachine = setup({
|
|
|
836
859
|
}
|
|
837
860
|
}
|
|
838
861
|
});
|
|
839
|
-
const faceCaptureMachine = _faceCaptureMachine;
|
|
840
|
-
|
|
841
862
|
//#endregion
|
|
842
|
-
export { concealmentToAvatar as n, faceCaptureMachine as t };
|
|
863
|
+
export { concealmentToAvatar as n, faceCaptureMachine as t };
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-CxfNJVZW.esm.js";
|
|
2
|
+
import { c as createManager, o as createActor } from "./xstate.esm-Cf4e0Cfd.esm.js";
|
|
3
|
+
import { t as faceMatchMachine } from "./faceMatchStateMachine-CJiO2yLO.esm.js";
|
|
4
|
+
//#region src/modules/face-match/faceMatchActor.ts
|
|
5
|
+
function createFaceMatchActor(options) {
|
|
6
|
+
return createActor(faceMatchMachine, { input: { config: options.config } }).start();
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/modules/face-match/faceMatchManager.ts
|
|
10
|
+
/**
|
|
11
|
+
* @module @incodetech/core/face-match
|
|
12
|
+
*
|
|
13
|
+
* Face match module for the Incode Web SDK.
|
|
14
|
+
* Supports both headless (programmatic) and UI-driven usage patterns.
|
|
15
|
+
*
|
|
16
|
+
* ## Headless Usage
|
|
17
|
+
*
|
|
18
|
+
* The face match manager can be used entirely without UI for backend integrations,
|
|
19
|
+
* custom UI implementations, or automated workflows.
|
|
20
|
+
*
|
|
21
|
+
* @example Basic headless face match with auto-skip
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { createFaceMatchManager } from '@incodetech/core/face-match';
|
|
24
|
+
* import { setup } from '@incodetech/core';
|
|
25
|
+
*
|
|
26
|
+
* // 1. Configure the SDK (required before using any module)
|
|
27
|
+
* setup({ apiURL: 'https://api.example.com', token: 'your-token' });
|
|
28
|
+
*
|
|
29
|
+
* // 2. Create the face match manager
|
|
30
|
+
* const faceMatchManager = createFaceMatchManager({
|
|
31
|
+
* config: {
|
|
32
|
+
* matchingType: 'selfieVsId',
|
|
33
|
+
* disableFaceMatchAnimation: true,
|
|
34
|
+
* },
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // 3. Subscribe to state changes (optional but recommended)
|
|
38
|
+
* faceMatchManager.subscribe((state) => {
|
|
39
|
+
* console.log('Face match state:', state.status);
|
|
40
|
+
* if (state.status === 'finished') {
|
|
41
|
+
* console.log('Face match complete!', state.matched);
|
|
42
|
+
* }
|
|
43
|
+
* if (state.status === 'error') {
|
|
44
|
+
* console.error('Error:', state.error);
|
|
45
|
+
* }
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* // 4. Start the flow
|
|
49
|
+
* faceMatchManager.load();
|
|
50
|
+
*
|
|
51
|
+
* // 5. Auto-completes when disableFaceMatchAnimation is true
|
|
52
|
+
* // Or call faceMatchManager.continue() after animation in custom UI
|
|
53
|
+
*
|
|
54
|
+
* // 6. Clean up when done
|
|
55
|
+
* faceMatchManager.stop();
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @example Headless face match with custom UI
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const faceMatchManager = createFaceMatchManager({
|
|
61
|
+
* config: { matchingType: 'selfieVsId', disableFaceMatchAnimation: false },
|
|
62
|
+
* });
|
|
63
|
+
*
|
|
64
|
+
* faceMatchManager.subscribe((state) => {
|
|
65
|
+
* if (state.status === 'animating') {
|
|
66
|
+
* // Render your custom animation
|
|
67
|
+
* renderAnimation(state.images, state.result);
|
|
68
|
+
* }
|
|
69
|
+
* if (state.status === 'result') {
|
|
70
|
+
* // Show result and wait for user to click continue
|
|
71
|
+
* showResult(state.matched);
|
|
72
|
+
* }
|
|
73
|
+
* });
|
|
74
|
+
*
|
|
75
|
+
* faceMatchManager.load();
|
|
76
|
+
* // When animation completes in your UI:
|
|
77
|
+
* faceMatchManager.animationComplete();
|
|
78
|
+
* // When user clicks continue:
|
|
79
|
+
* faceMatchManager.continue();
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
function mapState(snapshot) {
|
|
83
|
+
const typedSnapshot = snapshot;
|
|
84
|
+
const { context } = typedSnapshot;
|
|
85
|
+
if (typedSnapshot.matches("idle")) return { status: "idle" };
|
|
86
|
+
if (typedSnapshot.matches("loading")) return { status: "loading" };
|
|
87
|
+
if (typedSnapshot.matches("animating")) return {
|
|
88
|
+
status: "animating",
|
|
89
|
+
images: context.images,
|
|
90
|
+
result: context.result
|
|
91
|
+
};
|
|
92
|
+
if (typedSnapshot.matches("result")) return {
|
|
93
|
+
status: "result",
|
|
94
|
+
images: context.images,
|
|
95
|
+
result: context.result,
|
|
96
|
+
matched: context.result.matched
|
|
97
|
+
};
|
|
98
|
+
if (typedSnapshot.matches("finished")) return {
|
|
99
|
+
status: "finished",
|
|
100
|
+
matched: context.result?.matched ?? null
|
|
101
|
+
};
|
|
102
|
+
if (typedSnapshot.matches("error")) return {
|
|
103
|
+
status: "error",
|
|
104
|
+
error: context.error ?? "An error occurred"
|
|
105
|
+
};
|
|
106
|
+
return { status: "idle" };
|
|
107
|
+
}
|
|
108
|
+
function createApi({ actor, trackElementClicked }) {
|
|
109
|
+
return {
|
|
110
|
+
/**
|
|
111
|
+
* Initializes the face match flow.
|
|
112
|
+
* Transitions from 'idle' to 'loading'.
|
|
113
|
+
* Must be called before any other method.
|
|
114
|
+
*/
|
|
115
|
+
load() {
|
|
116
|
+
actor.send({ type: "LOAD" });
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* Signals that the animation has completed.
|
|
120
|
+
* Should be called when state is 'animating' and your UI animation finishes.
|
|
121
|
+
* Transitions to 'result' state.
|
|
122
|
+
*/
|
|
123
|
+
animationComplete() {
|
|
124
|
+
actor.send({ type: "ANIMATION_COMPLETE" });
|
|
125
|
+
},
|
|
126
|
+
/**
|
|
127
|
+
* User clicked continue button.
|
|
128
|
+
* Should be called when state is 'result'.
|
|
129
|
+
* Transitions to 'finished' state.
|
|
130
|
+
*/
|
|
131
|
+
continue() {
|
|
132
|
+
trackElementClicked?.("continue");
|
|
133
|
+
actor.send({ type: "CONTINUE" });
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Resets the manager to initial state.
|
|
137
|
+
* Can be called from 'error' state to start over.
|
|
138
|
+
* Clears all stored data including images and result.
|
|
139
|
+
*/
|
|
140
|
+
reset() {
|
|
141
|
+
actor.send({ type: "RESET" });
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Creates a face match manager for headless or UI-driven usage.
|
|
147
|
+
*
|
|
148
|
+
* The manager provides a state machine-based API for face comparison
|
|
149
|
+
* with optional animation display.
|
|
150
|
+
*
|
|
151
|
+
* @param options - Configuration options
|
|
152
|
+
* @param options.config - Face match configuration
|
|
153
|
+
* @param options.config.matchingType - Which images to compare (default: 'selfieVsId')
|
|
154
|
+
* @param options.config.disableFaceMatchAnimation - Skip animation and auto-complete (default: false)
|
|
155
|
+
*
|
|
156
|
+
* @returns Face match manager with state, API methods, and subscription
|
|
157
|
+
*
|
|
158
|
+
* @example Headless usage
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const manager = createFaceMatchManager({
|
|
161
|
+
* config: { matchingType: 'selfieVsId', disableFaceMatchAnimation: true },
|
|
162
|
+
* });
|
|
163
|
+
*
|
|
164
|
+
* manager.subscribe((state) => console.log(state.status));
|
|
165
|
+
* manager.load();
|
|
166
|
+
* // Auto-completes when disableFaceMatchAnimation is true
|
|
167
|
+
* manager.stop();
|
|
168
|
+
* ```
|
|
169
|
+
*
|
|
170
|
+
* @example With React/Preact UI hook
|
|
171
|
+
* ```tsx
|
|
172
|
+
* const [state, manager] = useManager(() => createFaceMatchManager({ config }));
|
|
173
|
+
*
|
|
174
|
+
* if (state.status === 'animating') {
|
|
175
|
+
* return <Animation images={state.images} />;
|
|
176
|
+
* }
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
function createFaceMatchManager(options) {
|
|
180
|
+
return createManager({
|
|
181
|
+
actor: createFaceMatchActor(options),
|
|
182
|
+
mapState,
|
|
183
|
+
createApi,
|
|
184
|
+
instrumentation: createManagerInstrumentation(eventModuleNames.faceMatch)
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Creates a face-match manager from a pre-built actor.
|
|
189
|
+
* Use this when overriding the machine via `.provide()` for custom backends
|
|
190
|
+
* or for story-isolation testing.
|
|
191
|
+
*/
|
|
192
|
+
function createFaceMatchManagerFromActor(actor) {
|
|
193
|
+
return createManager({
|
|
194
|
+
actor,
|
|
195
|
+
mapState,
|
|
196
|
+
createApi,
|
|
197
|
+
instrumentation: createManagerInstrumentation(eventModuleNames.faceMatch)
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
//#endregion
|
|
201
|
+
export { createFaceMatchManagerFromActor as n, createFaceMatchManager as t };
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { T as Actor } from "./spawn-D9jgw9pW.js";
|
|
2
|
+
import "./StateMachine-EDpYWy0i.js";
|
|
3
|
+
import { t as Manager } from "./Manager-CQQ99QOI.js";
|
|
4
|
+
//#region src/modules/face-match/types.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Face match comparison variant.
|
|
7
|
+
* Determines which images are compared in the face match flow.
|
|
8
|
+
*/
|
|
9
|
+
type FaceMatchVariant = 'selfieVsId' | 'selfieVsNfc' | 'idVsNfc' | 'nfc3Way' | 'secondId';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration options for face match module.
|
|
12
|
+
*
|
|
13
|
+
* @example Standard face match with animation
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const config: FaceMatchConfig = {
|
|
16
|
+
* matchingType: 'selfieVsId',
|
|
17
|
+
* disableFaceMatchAnimation: false,
|
|
18
|
+
* };
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example Auto-skip mode (headless)
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const config: FaceMatchConfig = {
|
|
24
|
+
* matchingType: 'selfieVsId',
|
|
25
|
+
* disableFaceMatchAnimation: true,
|
|
26
|
+
* };
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
type FaceMatchConfig = {
|
|
30
|
+
/**
|
|
31
|
+
* Which images to compare in the face match flow.
|
|
32
|
+
* Backend field name: `matchingType`.
|
|
33
|
+
* @default 'selfieVsId'
|
|
34
|
+
*/
|
|
35
|
+
matchingType?: FaceMatchVariant;
|
|
36
|
+
/**
|
|
37
|
+
* When true, skips the animation UI and auto-completes immediately after fetching data.
|
|
38
|
+
* Useful for headless integrations or silent verification flows.
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
disableFaceMatchAnimation?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* When true, the module completes immediately on mount WITHOUT fetching data
|
|
44
|
+
* or rendering any match UI. Set by the Flow orchestrator under US Smart
|
|
45
|
+
* Capture when the ID was captured without a front image ("no front, no
|
|
46
|
+
* match") — there is no ID face to compare against. Distinct from (and
|
|
47
|
+
* complementary to) the reactive backend-4084 skip: this avoids mounting the
|
|
48
|
+
* module and the failing fetch entirely.
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
skipFaceMatch?: boolean;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Cropped face images fetched from the backend.
|
|
55
|
+
*/
|
|
56
|
+
type FaceMatchImages = {
|
|
57
|
+
/**
|
|
58
|
+
* Cropped face from ID document.
|
|
59
|
+
*/
|
|
60
|
+
idFace: string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Cropped selfie image (from face capture).
|
|
63
|
+
*/
|
|
64
|
+
selfie: string | null;
|
|
65
|
+
/**
|
|
66
|
+
* Cropped face from second ID document (only for 'secondId' variant).
|
|
67
|
+
*/
|
|
68
|
+
secondIdFace?: string | null;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Face match result parsed from score response.
|
|
72
|
+
*/
|
|
73
|
+
type FaceMatchResult = {
|
|
74
|
+
/**
|
|
75
|
+
* Whether faces matched (OK = true, FAIL = false, null = unknown).
|
|
76
|
+
*/
|
|
77
|
+
matched: boolean | null;
|
|
78
|
+
/**
|
|
79
|
+
* Whether liveness check passed.
|
|
80
|
+
*/
|
|
81
|
+
liveness: boolean | null;
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/modules/face-match/faceMatchActor.d.ts
|
|
85
|
+
type CreateFaceMatchActorOptions = {
|
|
86
|
+
config: FaceMatchConfig;
|
|
87
|
+
};
|
|
88
|
+
declare function createFaceMatchActor(options: CreateFaceMatchActorOptions): Actor<any>;
|
|
89
|
+
type FaceMatchActor = ReturnType<typeof createFaceMatchActor>;
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/modules/face-match/faceMatchManager.d.ts
|
|
92
|
+
/** Face match manager is in initial state, waiting for `load()` to be called */
|
|
93
|
+
type FaceMatchIdleState = {
|
|
94
|
+
status: 'idle';
|
|
95
|
+
};
|
|
96
|
+
/** Fetching images and score from backend */
|
|
97
|
+
type FaceMatchLoadingState = {
|
|
98
|
+
status: 'loading';
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Animation is playing - images are animating.
|
|
102
|
+
* @property images - Cropped face images fetched from backend
|
|
103
|
+
* @property result - Face match result (matched, liveness)
|
|
104
|
+
*/
|
|
105
|
+
type FaceMatchAnimatingState = {
|
|
106
|
+
status: 'animating';
|
|
107
|
+
images: {
|
|
108
|
+
idFace: string | null;
|
|
109
|
+
selfie: string | null;
|
|
110
|
+
secondIdFace?: string | null;
|
|
111
|
+
};
|
|
112
|
+
result: {
|
|
113
|
+
matched: boolean | null;
|
|
114
|
+
liveness: boolean | null;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Showing match result - waiting for user to click continue.
|
|
119
|
+
* @property images - Cropped face images
|
|
120
|
+
* @property result - Face match result
|
|
121
|
+
* @property matched - Whether faces matched (true/false/null)
|
|
122
|
+
*/
|
|
123
|
+
type FaceMatchResultState = {
|
|
124
|
+
status: 'result';
|
|
125
|
+
images: {
|
|
126
|
+
idFace: string | null;
|
|
127
|
+
selfie: string | null;
|
|
128
|
+
secondIdFace?: string | null;
|
|
129
|
+
};
|
|
130
|
+
result: {
|
|
131
|
+
matched: boolean | null;
|
|
132
|
+
liveness: boolean | null;
|
|
133
|
+
};
|
|
134
|
+
matched: boolean | null;
|
|
135
|
+
};
|
|
136
|
+
/** Face match completed successfully */
|
|
137
|
+
type FaceMatchFinishedState = {
|
|
138
|
+
status: 'finished';
|
|
139
|
+
matched: boolean | null;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Fatal error occurred - call `reset()` to start over
|
|
143
|
+
* @property error - Error message describing what went wrong
|
|
144
|
+
*/
|
|
145
|
+
type FaceMatchErrorState = {
|
|
146
|
+
status: 'error';
|
|
147
|
+
error: string;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Union of all possible face match manager states.
|
|
151
|
+
* Use discriminated union pattern to narrow the type:
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* const state = faceMatchManager.getState();
|
|
156
|
+
* if (state.status === 'animating') {
|
|
157
|
+
* // TypeScript knows state has images and result
|
|
158
|
+
* console.log(state.images.idFace);
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
type FaceMatchState = FaceMatchIdleState | FaceMatchLoadingState | FaceMatchAnimatingState | FaceMatchResultState | FaceMatchFinishedState | FaceMatchErrorState;
|
|
163
|
+
/**
|
|
164
|
+
* Creates a face match manager for headless or UI-driven usage.
|
|
165
|
+
*
|
|
166
|
+
* The manager provides a state machine-based API for face comparison
|
|
167
|
+
* with optional animation display.
|
|
168
|
+
*
|
|
169
|
+
* @param options - Configuration options
|
|
170
|
+
* @param options.config - Face match configuration
|
|
171
|
+
* @param options.config.matchingType - Which images to compare (default: 'selfieVsId')
|
|
172
|
+
* @param options.config.disableFaceMatchAnimation - Skip animation and auto-complete (default: false)
|
|
173
|
+
*
|
|
174
|
+
* @returns Face match manager with state, API methods, and subscription
|
|
175
|
+
*
|
|
176
|
+
* @example Headless usage
|
|
177
|
+
* ```typescript
|
|
178
|
+
* const manager = createFaceMatchManager({
|
|
179
|
+
* config: { matchingType: 'selfieVsId', disableFaceMatchAnimation: true },
|
|
180
|
+
* });
|
|
181
|
+
*
|
|
182
|
+
* manager.subscribe((state) => console.log(state.status));
|
|
183
|
+
* manager.load();
|
|
184
|
+
* // Auto-completes when disableFaceMatchAnimation is true
|
|
185
|
+
* manager.stop();
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* @example With React/Preact UI hook
|
|
189
|
+
* ```tsx
|
|
190
|
+
* const [state, manager] = useManager(() => createFaceMatchManager({ config }));
|
|
191
|
+
*
|
|
192
|
+
* if (state.status === 'animating') {
|
|
193
|
+
* return <Animation images={state.images} />;
|
|
194
|
+
* }
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
declare function createFaceMatchManager(options: CreateFaceMatchActorOptions): Manager<FaceMatchState> & {
|
|
198
|
+
/**
|
|
199
|
+
* Initializes the face match flow.
|
|
200
|
+
* Transitions from 'idle' to 'loading'.
|
|
201
|
+
* Must be called before any other method.
|
|
202
|
+
*/
|
|
203
|
+
load(): void;
|
|
204
|
+
/**
|
|
205
|
+
* Signals that the animation has completed.
|
|
206
|
+
* Should be called when state is 'animating' and your UI animation finishes.
|
|
207
|
+
* Transitions to 'result' state.
|
|
208
|
+
*/
|
|
209
|
+
animationComplete(): void;
|
|
210
|
+
/**
|
|
211
|
+
* User clicked continue button.
|
|
212
|
+
* Should be called when state is 'result'.
|
|
213
|
+
* Transitions to 'finished' state.
|
|
214
|
+
*/
|
|
215
|
+
continue(): void;
|
|
216
|
+
/**
|
|
217
|
+
* Resets the manager to initial state.
|
|
218
|
+
* Can be called from 'error' state to start over.
|
|
219
|
+
* Clears all stored data including images and result.
|
|
220
|
+
*/
|
|
221
|
+
reset(): void;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Creates a face-match manager from a pre-built actor.
|
|
225
|
+
* Use this when overriding the machine via `.provide()` for custom backends
|
|
226
|
+
* or for story-isolation testing.
|
|
227
|
+
*/
|
|
228
|
+
declare function createFaceMatchManagerFromActor(actor: FaceMatchActor): Manager<FaceMatchState> & {
|
|
229
|
+
/**
|
|
230
|
+
* Initializes the face match flow.
|
|
231
|
+
* Transitions from 'idle' to 'loading'.
|
|
232
|
+
* Must be called before any other method.
|
|
233
|
+
*/
|
|
234
|
+
load(): void;
|
|
235
|
+
/**
|
|
236
|
+
* Signals that the animation has completed.
|
|
237
|
+
* Should be called when state is 'animating' and your UI animation finishes.
|
|
238
|
+
* Transitions to 'result' state.
|
|
239
|
+
*/
|
|
240
|
+
animationComplete(): void;
|
|
241
|
+
/**
|
|
242
|
+
* User clicked continue button.
|
|
243
|
+
* Should be called when state is 'result'.
|
|
244
|
+
* Transitions to 'finished' state.
|
|
245
|
+
*/
|
|
246
|
+
continue(): void;
|
|
247
|
+
/**
|
|
248
|
+
* Resets the manager to initial state.
|
|
249
|
+
* Can be called from 'error' state to start over.
|
|
250
|
+
* Clears all stored data including images and result.
|
|
251
|
+
*/
|
|
252
|
+
reset(): void;
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Type representing a face match manager instance.
|
|
256
|
+
* Includes state access, API methods, and lifecycle management.
|
|
257
|
+
*
|
|
258
|
+
* @property getState - Returns the current FaceMatchState
|
|
259
|
+
* @property subscribe - Subscribes to state changes, returns unsubscribe function
|
|
260
|
+
* @property stop - Stops the manager and cleans up resources
|
|
261
|
+
* @property load - Initializes the face match flow
|
|
262
|
+
* @property animationComplete - Signals animation finished
|
|
263
|
+
* @property continue - User clicked continue button
|
|
264
|
+
* @property reset - Resets to initial state
|
|
265
|
+
*/
|
|
266
|
+
type FaceMatchManager = ReturnType<typeof createFaceMatchManager>;
|
|
267
|
+
//#endregion
|
|
268
|
+
export { FaceMatchActor as a, FaceMatchResult as c, createFaceMatchManagerFromActor as i, FaceMatchVariant as l, FaceMatchState as n, FaceMatchConfig as o, createFaceMatchManager as r, FaceMatchImages as s, FaceMatchManager as t };
|