@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,125 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
7
|
-
import { r as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"wasmPath",
|
|
17
|
-
"wasmSimdPath",
|
|
18
|
-
"glueCodePath",
|
|
19
|
-
"glueCodeSimdPath",
|
|
20
|
-
"modelsBasePath"
|
|
21
|
-
];
|
|
22
|
-
function isBlank(value) {
|
|
23
|
-
return value.trim() === "";
|
|
24
|
-
}
|
|
25
|
-
function hasDisallowedControlChars(value) {
|
|
26
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
27
|
-
const code = value.charCodeAt(i);
|
|
28
|
-
if (code < 32 || code === 127) return true;
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
function isMalformedPath(value) {
|
|
33
|
-
const trimmed = value.trim();
|
|
34
|
-
if (trimmed === "") return false;
|
|
35
|
-
if (hasDisallowedControlChars(trimmed)) return true;
|
|
36
|
-
if (/^https?:\/\//i.test(trimmed)) try {
|
|
37
|
-
new URL(trimmed);
|
|
38
|
-
return false;
|
|
39
|
-
} catch {
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
function warnInvalidWasmPath(field, reason) {
|
|
45
|
-
if (reason === "empty") {
|
|
46
|
-
console.warn(`[Incode SDK] wasm.${field} is empty. Falling back to CDN default.`);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
console.warn(`[Incode SDK] wasm.${field} appears malformed. Falling back to CDN default.`);
|
|
50
|
-
}
|
|
51
|
-
function warnMalformedWasmPath(field) {
|
|
52
|
-
console.warn(`[Incode SDK] wasm.${field} appears malformed. Check the URL or path.`);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Validates merged WASM path strings. When overrides contained blank path
|
|
56
|
-
* values, callers should have already fallen back to defaults before this runs.
|
|
57
|
-
*/
|
|
58
|
-
function validateWasmPaths(config) {
|
|
59
|
-
for (const key of PATH_KEYS) {
|
|
60
|
-
const value = config[key];
|
|
61
|
-
if (typeof value === "string" && isMalformedPath(value)) warnMalformedWasmPath(key);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
function pickPath(key, overrides, defaultValue) {
|
|
65
|
-
if (!overrides || !(key in overrides)) return defaultValue;
|
|
66
|
-
const raw = overrides[key];
|
|
67
|
-
if (raw === void 0) return defaultValue;
|
|
68
|
-
if (typeof raw !== "string") return defaultValue;
|
|
69
|
-
if (isBlank(raw)) {
|
|
70
|
-
warnInvalidWasmPath(key, "empty");
|
|
71
|
-
return defaultValue;
|
|
72
|
-
}
|
|
73
|
-
if (isMalformedPath(raw)) {
|
|
74
|
-
warnInvalidWasmPath(key, "malformed");
|
|
75
|
-
return defaultValue;
|
|
76
|
-
}
|
|
77
|
-
return raw.trim();
|
|
78
|
-
}
|
|
79
|
-
/** Builds a WarmupConfig from a directory that mirrors the ml-wasm-kit CDN layout. */
|
|
80
|
-
function buildWasmConfigFromBasePath(basePath) {
|
|
81
|
-
const base = basePath.endsWith("/") ? basePath.slice(0, -1) : basePath;
|
|
82
|
-
return {
|
|
83
|
-
wasmPath: `${base}/webLib.wasm`,
|
|
84
|
-
wasmSimdPath: `${base}/webLibSimd.wasm`,
|
|
85
|
-
glueCodePath: `${base}/webLib.js`,
|
|
86
|
-
glueCodeSimdPath: `${base}/webLibSimd.js`,
|
|
87
|
-
modelsBasePath: `${base}/models`
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
/** Builds the standard WarmupConfig from the Incode CDN. */
|
|
91
|
-
function buildDefaultWasmConfig() {
|
|
92
|
-
return buildWasmConfigFromBasePath(`${WASM_CDN_BASE_URL}/${DEFAULT_WASM_VERSION}`);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Merges optional WASM path overrides with CDN defaults. Explicit non-blank
|
|
96
|
-
* paths take precedence. Blank override strings log a warning and fall back to defaults.
|
|
97
|
-
*/
|
|
98
|
-
function resolveWasmConfig(overrides) {
|
|
99
|
-
if (!overrides) return buildDefaultWasmConfig();
|
|
100
|
-
const defaults = buildWasmConfigFromBasePath(pickPath("basePath", overrides, `${WASM_CDN_BASE_URL}/${DEFAULT_WASM_VERSION}`));
|
|
101
|
-
const simdDefault = defaults.wasmSimdPath ?? defaults.wasmPath;
|
|
102
|
-
const modelsDefault = defaults.modelsBasePath ?? (() => {
|
|
103
|
-
const lastSlash = defaults.wasmPath.lastIndexOf("/");
|
|
104
|
-
return lastSlash === -1 ? "models" : `${defaults.wasmPath.substring(0, lastSlash)}/models`;
|
|
105
|
-
})();
|
|
106
|
-
const resolvedWasmSimdPath = pickPath("wasmSimdPath", overrides, simdDefault);
|
|
107
|
-
const glueCodeSimdDefault = deriveSiblingJsPath(resolvedWasmSimdPath);
|
|
108
|
-
const merged = {
|
|
109
|
-
wasmPath: pickPath("wasmPath", overrides, defaults.wasmPath),
|
|
110
|
-
wasmSimdPath: resolvedWasmSimdPath,
|
|
111
|
-
glueCodePath: pickPath("glueCodePath", overrides, defaults.glueCodePath),
|
|
112
|
-
glueCodeSimdPath: pickPath("glueCodeSimdPath", overrides, glueCodeSimdDefault),
|
|
113
|
-
modelsBasePath: pickPath("modelsBasePath", overrides, modelsDefault),
|
|
114
|
-
useSimd: overrides.useSimd,
|
|
115
|
-
pipelines: overrides.pipelines,
|
|
116
|
-
pipelineModels: overrides.pipelineModels
|
|
117
|
-
};
|
|
118
|
-
validateWasmPaths(merged);
|
|
119
|
-
return merged;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
//#endregion
|
|
1
|
+
import { a as resolveWasmConfig } from "./wasmDefaults-DTUrftxR.esm.js";
|
|
2
|
+
import { o as setWasmOnDeviceMode, r as WasmUtilProvider, s as warmupWasm } from "./safeStorage-Ep56I-f_.esm.js";
|
|
3
|
+
import { t as BrowserStorageProvider } from "./BrowserStorageProvider-k-FDkC4W.esm.js";
|
|
4
|
+
import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
|
|
5
|
+
import { C as resetFeatureManagement, D as applyEnvironment, O as getEnvironment, S as optOutFeatureManagement, b as initializeFeatureManagement, c as resetResolvedExperiments, k as resetEnvironment, v as getIsFeatureManagementLocked, w as resetFeatureManagementProviderInstance } from "./feature-management-DS_Nj5Gg.esm.js";
|
|
6
|
+
import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
|
|
7
|
+
import { a as resetApi, i as isApiConfigured, n as getApi, r as getToken, s as setHttpRequestObserver, t as api } from "./api-Bx3gKW_y.esm.js";
|
|
8
|
+
import { C as upgradeToWasmHttpClient$1, S as resetHttpClientState, b as getStoredHttpConfig, g as noteTestingSignals, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as installFreshHttpClient } from "./trueSightService-s3T95geD.esm.js";
|
|
9
|
+
import { b as resetAnalyticsBatcher, c as resetExperimentAssignments, x as setAnalyticsBatcher, y as getAnalyticsBatcher } from "./events-CxfNJVZW.esm.js";
|
|
10
|
+
import { a as resetSessionInit, d as resolveStandaloneFlowPolicy, f as setStandaloneFlowPolicy, i as initializeSession, l as registerFlowPreloader, o as setClientFingerprintEnabled, s as setClientIpLookupEnabled, u as resetStandaloneFlowPolicy, v as BrowserEnvironmentProvider } from "./sessionInitializer-DNgRpf5Y.esm.js";
|
|
11
|
+
import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
|
|
12
|
+
import "./trueSight-BTl_vvd3.esm.js";
|
|
13
|
+
import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-B0nFKawG.esm.js";
|
|
14
|
+
import { a as resetTRI, n as initializeTRI, o as resetTRIProviderInstance } from "./tri-4RsGrIt6.esm.js";
|
|
15
|
+
import { n as preloadDashboardFlow, r as resetDashboardFlowCache } from "./flowServices-b0Pd4F1K.esm.js";
|
|
123
16
|
//#region ../infra/src/providers/browser/BrowserPageLifecycleProvider.ts
|
|
124
17
|
var BrowserPageLifecycleProvider = class {
|
|
125
18
|
sendBeacon(url, body, contentType = "application/json") {
|
|
@@ -141,7 +34,201 @@ var BrowserPageLifecycleProvider = class {
|
|
|
141
34
|
};
|
|
142
35
|
}
|
|
143
36
|
};
|
|
144
|
-
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/internal/events/AnalyticsBatchingService.ts
|
|
39
|
+
const DEFAULT_MAX_BATCH_SIZE = 50;
|
|
40
|
+
const DEFAULT_MAX_BATCH_AGE_MS = 1e3;
|
|
41
|
+
const DEFAULT_MAX_RETRIES = 2;
|
|
42
|
+
const RETRY_BASE_DELAY_MS = 250;
|
|
43
|
+
function isTransientStatus(status) {
|
|
44
|
+
return status === 0 || status >= 500 || status === 408 || status === 429;
|
|
45
|
+
}
|
|
46
|
+
function createAnalyticsBatchingService(options) {
|
|
47
|
+
const { endpoint, authToken, pageLifecycle, timer, apiBaseUrl, apiClient = api, maxBatchSize = DEFAULT_MAX_BATCH_SIZE, maxBatchAgeMs = DEFAULT_MAX_BATCH_AGE_MS, maxRetries = DEFAULT_MAX_RETRIES } = options;
|
|
48
|
+
let buffer = [];
|
|
49
|
+
let started = false;
|
|
50
|
+
let disposed = false;
|
|
51
|
+
let ageTimerHandle = null;
|
|
52
|
+
let unsubscribeLifecycle = null;
|
|
53
|
+
let warnedNullToken = false;
|
|
54
|
+
function clearAgeTimer() {
|
|
55
|
+
if (ageTimerHandle !== null) {
|
|
56
|
+
timer.clearTimeout(ageTimerHandle);
|
|
57
|
+
ageTimerHandle = null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function armAgeTimerIfNeeded() {
|
|
61
|
+
if (ageTimerHandle === null) ageTimerHandle = timer.setTimeout(() => {
|
|
62
|
+
ageTimerHandle = null;
|
|
63
|
+
flush();
|
|
64
|
+
}, maxBatchAgeMs);
|
|
65
|
+
}
|
|
66
|
+
function dropTokenless() {
|
|
67
|
+
if (!warnedNullToken) {
|
|
68
|
+
warnedNullToken = true;
|
|
69
|
+
console.warn("[AnalyticsBatchingService] Dropping batch: no auth token at flush time.");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function sendBatch(batch, attempt) {
|
|
73
|
+
let promise;
|
|
74
|
+
try {
|
|
75
|
+
promise = apiClient.post(endpoint, batch, { keepalive: true });
|
|
76
|
+
} catch (error) {
|
|
77
|
+
handleSendError(batch, error, attempt);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
promise.catch((error) => handleSendError(batch, error, attempt));
|
|
81
|
+
}
|
|
82
|
+
function handleSendError(batch, error, attempt) {
|
|
83
|
+
if (disposed) return;
|
|
84
|
+
if (!isTransientStatus(error && typeof error === "object" && "status" in error ? Number(error.status) || 0 : 0)) return;
|
|
85
|
+
if (attempt >= maxRetries) return;
|
|
86
|
+
const delay = RETRY_BASE_DELAY_MS * 2 ** attempt;
|
|
87
|
+
timer.setTimeout(() => {
|
|
88
|
+
if (disposed) return;
|
|
89
|
+
sendBatch(batch, attempt + 1);
|
|
90
|
+
}, delay);
|
|
91
|
+
}
|
|
92
|
+
function flush() {
|
|
93
|
+
if (disposed || buffer.length === 0) return;
|
|
94
|
+
const batch = buffer;
|
|
95
|
+
buffer = [];
|
|
96
|
+
clearAgeTimer();
|
|
97
|
+
if (!authToken()) {
|
|
98
|
+
dropTokenless();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
sendBatch(batch, 0);
|
|
102
|
+
}
|
|
103
|
+
function handlePageHide() {
|
|
104
|
+
if (disposed || buffer.length === 0) return;
|
|
105
|
+
const batch = buffer;
|
|
106
|
+
buffer = [];
|
|
107
|
+
clearAgeTimer();
|
|
108
|
+
const token = authToken();
|
|
109
|
+
if (!token) {
|
|
110
|
+
dropTokenless();
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const url = `${apiBaseUrl().replace(/\/$/, "")}${endpoint}`;
|
|
114
|
+
const body = JSON.stringify({
|
|
115
|
+
token,
|
|
116
|
+
events: batch
|
|
117
|
+
});
|
|
118
|
+
pageLifecycle.sendBeacon(url, body);
|
|
119
|
+
}
|
|
120
|
+
function enqueue(entry) {
|
|
121
|
+
if (disposed) return;
|
|
122
|
+
buffer.push(entry);
|
|
123
|
+
if (!started) return;
|
|
124
|
+
if (buffer.length >= maxBatchSize) {
|
|
125
|
+
flush();
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
armAgeTimerIfNeeded();
|
|
129
|
+
}
|
|
130
|
+
function start() {
|
|
131
|
+
if (started || disposed) return;
|
|
132
|
+
started = true;
|
|
133
|
+
unsubscribeLifecycle = pageLifecycle.onPageHide(handlePageHide);
|
|
134
|
+
if (buffer.length > 0) flush();
|
|
135
|
+
}
|
|
136
|
+
function dispose() {
|
|
137
|
+
if (disposed) return;
|
|
138
|
+
disposed = true;
|
|
139
|
+
clearAgeTimer();
|
|
140
|
+
unsubscribeLifecycle?.();
|
|
141
|
+
unsubscribeLifecycle = null;
|
|
142
|
+
buffer = [];
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
enqueue,
|
|
146
|
+
start,
|
|
147
|
+
flush,
|
|
148
|
+
dispose
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region src/internal/recordings/videoSelfieUploadService.ts
|
|
153
|
+
/**
|
|
154
|
+
* Origin of the dedicated video-selfie-service (e.g.
|
|
155
|
+
* `https://video-selfie-service.stage.incodetest.com`), set from
|
|
156
|
+
* `setup({ videoSelfie: { apiURL } })`. Testing/special-env override: when
|
|
157
|
+
* unset (production), the upload endpoints resolve against the main `apiURL`
|
|
158
|
+
* and the service mesh (Istio) routes them to the service. The service
|
|
159
|
+
* accepts the same session token; the shared `api` client attaches it either
|
|
160
|
+
* way.
|
|
161
|
+
*/
|
|
162
|
+
let serviceBaseUrl = null;
|
|
163
|
+
function setVideoSelfieServiceUrl(url) {
|
|
164
|
+
let trimmed = url ?? "";
|
|
165
|
+
while (trimmed.endsWith("/")) trimmed = trimmed.slice(0, -1);
|
|
166
|
+
serviceBaseUrl = trimmed || null;
|
|
167
|
+
}
|
|
168
|
+
function uploadUrl(path) {
|
|
169
|
+
return serviceBaseUrl ? `${serviceBaseUrl}${path}` : path;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Opens a multipart video-selfie upload session. Idempotent server-side: if
|
|
173
|
+
* an upload is already in progress for the session, the same `uploadId`
|
|
174
|
+
* comes back along with the parts already stored (`parts` non-empty) — but
|
|
175
|
+
* always with a fresh `epoch` that locks out whoever held the previous one.
|
|
176
|
+
*/
|
|
177
|
+
async function initiateVideoSelfieUpload() {
|
|
178
|
+
const response = await api.post(uploadUrl(endpoints.videoSelfieUploadInitiate));
|
|
179
|
+
return {
|
|
180
|
+
uploadId: response.data.uploadId,
|
|
181
|
+
epoch: response.data.epoch,
|
|
182
|
+
parts: response.data.parts ?? []
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Uploads a single chunk as a multipart part. The body is the raw video bytes
|
|
187
|
+
* (no base64, no client-side encryption — encryption at rest is server-side
|
|
188
|
+
* S3 SSE). Every part except the last must be >= 5 MiB (enforced
|
|
189
|
+
* server-side). Returns the part number + `etag` needed to complete the
|
|
190
|
+
* upload. Rejects with a `409` status when a newer initiate fenced this
|
|
191
|
+
* session out.
|
|
192
|
+
*/
|
|
193
|
+
async function uploadVideoSelfiePart(session, partNumber, chunk) {
|
|
194
|
+
const response = await api.post(uploadUrl(endpoints.videoSelfieUploadPart), chunk, {
|
|
195
|
+
query: {
|
|
196
|
+
uploadId: session.uploadId,
|
|
197
|
+
epoch: session.epoch,
|
|
198
|
+
partNumber
|
|
199
|
+
},
|
|
200
|
+
headers: { "Content-Type": "application/octet-stream" }
|
|
201
|
+
});
|
|
202
|
+
return {
|
|
203
|
+
partNumber: response.data.partNumber,
|
|
204
|
+
etag: response.data.etag
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Finalizes the upload. The service assembles from the parts it stored; the
|
|
209
|
+
* optional `parts` list is deliberately NOT sent — chunks staged below the
|
|
210
|
+
* S3 minimum are combined and renumbered server-side, so a client-side list
|
|
211
|
+
* could contradict the authoritative one. Safe to repeat if the response
|
|
212
|
+
* was lost. Returns the server-reported status. Rejects with `400` naming a
|
|
213
|
+
* missing part when the sequence has a hole.
|
|
214
|
+
*/
|
|
215
|
+
async function completeVideoSelfieUpload(session) {
|
|
216
|
+
return (await api.post(uploadUrl(endpoints.videoSelfieUploadComplete), {
|
|
217
|
+
uploadId: session.uploadId,
|
|
218
|
+
epoch: session.epoch
|
|
219
|
+
})).data.status;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Discards an in-progress upload and everything already sent for it, so the
|
|
223
|
+
* backend fails the upload straight away instead of waiting for its expiry.
|
|
224
|
+
* Call when a recording is abandoned or its upload can no longer complete.
|
|
225
|
+
*/
|
|
226
|
+
async function abortVideoSelfieUpload(session) {
|
|
227
|
+
return (await api.post(uploadUrl(endpoints.videoSelfieUploadAbort), {
|
|
228
|
+
uploadId: session.uploadId,
|
|
229
|
+
epoch: session.epoch
|
|
230
|
+
})).data.status;
|
|
231
|
+
}
|
|
145
232
|
//#endregion
|
|
146
233
|
//#region ../infra/src/providers/browser/DevtoolsDetectorProvider.ts
|
|
147
234
|
var DevtoolsDetectorProvider = class {
|
|
@@ -229,7 +316,6 @@ onmessage = (ev) => { postMessage({isOpenBeat:true});
|
|
|
229
316
|
}
|
|
230
317
|
}
|
|
231
318
|
};
|
|
232
|
-
|
|
233
319
|
//#endregion
|
|
234
320
|
//#region src/internal/device/devtoolsDetectorBridge.ts
|
|
235
321
|
const devtoolsDetector = new DevtoolsDetectorProvider();
|
|
@@ -255,7 +341,6 @@ function startDevtoolsDetector() {
|
|
|
255
341
|
function stopDevtoolsDetector() {
|
|
256
342
|
devtoolsDetector.stop();
|
|
257
343
|
}
|
|
258
|
-
|
|
259
344
|
//#endregion
|
|
260
345
|
//#region src/setup.ts
|
|
261
346
|
let wasmConfig;
|
|
@@ -287,6 +372,44 @@ function normalizeEncryption(input) {
|
|
|
287
372
|
}
|
|
288
373
|
let configured = false;
|
|
289
374
|
/**
|
|
375
|
+
* One-line environment facts for TrueSight's snapshot-on-first-error entry
|
|
376
|
+
* (navigator facts read through the L0 provider — core never touches
|
|
377
|
+
* browser globals directly).
|
|
378
|
+
*/
|
|
379
|
+
function buildEnvironmentSnapshot() {
|
|
380
|
+
const environment = new BrowserEnvironmentProvider();
|
|
381
|
+
const read = (property) => {
|
|
382
|
+
try {
|
|
383
|
+
return environment.getNavigatorProperty(property);
|
|
384
|
+
} catch {
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
const connection = read("connection");
|
|
389
|
+
return [
|
|
390
|
+
`connection=${typeof connection?.effectiveType === "string" ? connection.effectiveType : "unknown"}`,
|
|
391
|
+
`saveData=${connection?.saveData === true}`,
|
|
392
|
+
`online=${read("onLine") !== false}`,
|
|
393
|
+
`language=${typeof read("language") === "string" ? String(read("language")) : "unknown"}`
|
|
394
|
+
].join(" ");
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* ENG-48677 event map row 23b: every Incode HTTP request, success or
|
|
398
|
+
* failure, becomes a self-health line (Android-dashboard parity). Lives here
|
|
399
|
+
* rather than in `api.ts` — `trueSightService` already imports from that
|
|
400
|
+
* module, so a direct `trueSightLog` import there would cycle; `setup()`
|
|
401
|
+
* wires this adapter in as the decoupled observer instead.
|
|
402
|
+
*/
|
|
403
|
+
function logHttpRequestTiming(entry) {
|
|
404
|
+
const category = categoryForEndpoint(entry.endpoint);
|
|
405
|
+
const status = entry.httpStatus ?? "unknown";
|
|
406
|
+
if (entry.outcome === "success") {
|
|
407
|
+
trueSightLog("debug", "http", category, `http request completed endpoint=${entry.endpoint} method=${entry.method} httpStatus=${status} durationMs=${entry.durationMs}`);
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
trueSightLog("error", "http", category, `http request failed endpoint=${entry.endpoint} method=${entry.method} httpStatus=${status} durationMs=${entry.durationMs}`);
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
290
413
|
* Initializes the SDK with the provided configuration.
|
|
291
414
|
* Must be called before using any SDK functionality.
|
|
292
415
|
*
|
|
@@ -423,11 +546,17 @@ let configured = false;
|
|
|
423
546
|
* ```
|
|
424
547
|
*/
|
|
425
548
|
async function setup(options) {
|
|
549
|
+
const standaloneFlowPolicy = resolveStandaloneFlowPolicy(options.flow);
|
|
550
|
+
const flowOptions = typeof options.flow === "object" ? options.flow : {};
|
|
551
|
+
const shouldPreloadFlow = options.flow !== false && flowOptions.preload === true;
|
|
552
|
+
setStandaloneFlowPolicy(standaloneFlowPolicy);
|
|
553
|
+
registerFlowPreloader(preloadDashboardFlow);
|
|
426
554
|
if (options.ipLookup !== void 0) setClientIpLookupEnabled(options.ipLookup);
|
|
427
555
|
if (options.fingerprint !== void 0) {
|
|
428
556
|
setClientFingerprintEnabled(options.fingerprint);
|
|
429
557
|
setWasmOnDeviceMode(options.fingerprint === false);
|
|
430
558
|
}
|
|
559
|
+
if (options.videoSelfie?.apiURL !== void 0) setVideoSelfieServiceUrl(options.videoSelfie.apiURL);
|
|
431
560
|
if (!getAnalyticsBatcher()) setAnalyticsBatcher(createAnalyticsBatchingService({
|
|
432
561
|
endpoint: endpoints.events,
|
|
433
562
|
authToken: () => getToken(),
|
|
@@ -436,6 +565,18 @@ async function setup(options) {
|
|
|
436
565
|
pageLifecycle: new BrowserPageLifecycleProvider(),
|
|
437
566
|
timer: BrowserTimerProvider.getInstance()
|
|
438
567
|
}));
|
|
568
|
+
initializeTrueSightDiagnostics({
|
|
569
|
+
enabled: options.trueSight?.enabled !== false,
|
|
570
|
+
pageLifecycle: new BrowserPageLifecycleProvider(),
|
|
571
|
+
timer: BrowserTimerProvider.getInstance(),
|
|
572
|
+
storage: new BrowserStorageProvider(),
|
|
573
|
+
getEnvironmentSnapshot: buildEnvironmentSnapshot
|
|
574
|
+
});
|
|
575
|
+
noteTestingSignals({
|
|
576
|
+
devMode: options.devMode,
|
|
577
|
+
apiUrl: options.apiURL
|
|
578
|
+
});
|
|
579
|
+
setHttpRequestObserver(logHttpRequestTiming);
|
|
439
580
|
const requestedEncryption = normalizeEncryption(options.encryption);
|
|
440
581
|
const stored = getStoredHttpConfig();
|
|
441
582
|
if (requestedEncryption && stored) {
|
|
@@ -447,20 +588,39 @@ async function setup(options) {
|
|
|
447
588
|
mgf1: "sha1"
|
|
448
589
|
};
|
|
449
590
|
const effectiveWasm = options.wasm || requestedEncryption?.enabled ? resolveWasmConfig(options.wasm || {}) : void 0;
|
|
450
|
-
if (options.apiURL)
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
591
|
+
if (options.apiURL) try {
|
|
592
|
+
await installFreshHttpClient(options.apiURL, options, effectiveWasm, effectiveEncryption);
|
|
593
|
+
} catch (error) {
|
|
594
|
+
trueSightLog("severe", "http", "other", `http client install failed error=${String(error)}`);
|
|
595
|
+
throw error;
|
|
596
|
+
}
|
|
597
|
+
if (options.token && isApiConfigured()) {
|
|
598
|
+
const sessionOptions = {
|
|
599
|
+
token: options.token,
|
|
600
|
+
hostingApp: options.hostingApp
|
|
601
|
+
};
|
|
602
|
+
if (shouldPreloadFlow) sessionOptions.preloadFlow = true;
|
|
603
|
+
const sessionPromise = initializeSession(sessionOptions);
|
|
604
|
+
if (shouldPreloadFlow) await sessionPromise;
|
|
605
|
+
else sessionPromise.catch((error) => {
|
|
606
|
+
console.warn("Session initialization failed:", error);
|
|
607
|
+
});
|
|
608
|
+
}
|
|
457
609
|
configured = true;
|
|
610
|
+
applyEnvironment(options.environment);
|
|
458
611
|
if (effectiveWasm) {
|
|
459
612
|
wasmConfig = {
|
|
460
613
|
...effectiveWasm,
|
|
461
614
|
pipelines: effectiveWasm.pipelines ? [...effectiveWasm.pipelines] : void 0
|
|
462
615
|
};
|
|
463
|
-
|
|
616
|
+
const warmupStartedAt = getTimestamp();
|
|
617
|
+
try {
|
|
618
|
+
await warmupWasm(effectiveWasm);
|
|
619
|
+
} catch (error) {
|
|
620
|
+
trueSightLog("severe", "wasm", "other", `wasm warmup failed error=${String(error)} durationMs=${getTimestamp() - warmupStartedAt}`);
|
|
621
|
+
throw error;
|
|
622
|
+
}
|
|
623
|
+
trueSightLog("debug", "wasm", "other", `wasm warmup completed durationMs=${getTimestamp() - warmupStartedAt}`);
|
|
464
624
|
const provider = await WasmUtilProvider.getInstance();
|
|
465
625
|
await provider.initialize({
|
|
466
626
|
...effectiveWasm,
|
|
@@ -470,6 +630,19 @@ async function setup(options) {
|
|
|
470
630
|
await provider.setProductionMode(!showWasmLogs);
|
|
471
631
|
if (!options.devMode) startDevtoolsDetector();
|
|
472
632
|
}
|
|
633
|
+
if (!getIsFeatureManagementLocked()) if (options.featureManagement === false) optOutFeatureManagement();
|
|
634
|
+
else {
|
|
635
|
+
const featureManagementSetupOptions = typeof options.featureManagement === "object" ? options.featureManagement : {};
|
|
636
|
+
await initializeFeatureManagement({
|
|
637
|
+
environment: getEnvironment(),
|
|
638
|
+
clientExperimentId: featureManagementSetupOptions.clientExperimentId,
|
|
639
|
+
disableStableId: featureManagementSetupOptions.disableStableId,
|
|
640
|
+
disablePersistence: featureManagementSetupOptions.disablePersistence,
|
|
641
|
+
custom: featureManagementSetupOptions.custom,
|
|
642
|
+
redactedUserInfo: featureManagementSetupOptions.redactedUserInfo
|
|
643
|
+
});
|
|
644
|
+
}
|
|
645
|
+
else if (options.featureManagement !== void 0) console.error("[FeatureManagement] Feature management is locked after the first setup() call and cannot be changed (re-enabled, disabled, or reconfigured). Ignoring this change. Call reset() before changing it.");
|
|
473
646
|
if (options.tri) await initializeTRI(options.tri, { sessionToken: options.token });
|
|
474
647
|
}
|
|
475
648
|
/**
|
|
@@ -531,10 +704,10 @@ async function ensureWasmPipelines(pipelines) {
|
|
|
531
704
|
*
|
|
532
705
|
* @param config - Optional WASM configuration. Defaults to the config stored via `setWasmConfig`.
|
|
533
706
|
*/
|
|
534
|
-
async function upgradeToWasmHttpClient
|
|
707
|
+
async function upgradeToWasmHttpClient(config) {
|
|
535
708
|
const configToUse = config ?? wasmConfig;
|
|
536
709
|
if (!configToUse) return;
|
|
537
|
-
await upgradeToWasmHttpClient(resolveWasmConfig(configToUse));
|
|
710
|
+
await upgradeToWasmHttpClient$1(resolveWasmConfig(configToUse));
|
|
538
711
|
}
|
|
539
712
|
/**
|
|
540
713
|
* Checks if the SDK has been configured.
|
|
@@ -548,21 +721,30 @@ function isConfigured() {
|
|
|
548
721
|
* Resets the SDK configuration. Useful for testing.
|
|
549
722
|
*/
|
|
550
723
|
function reset() {
|
|
724
|
+
finalizeTrueSight("failure", "sdk_reset");
|
|
551
725
|
stopDevtoolsDetector();
|
|
552
726
|
resetDeviceStatsQueue();
|
|
553
727
|
resetApi();
|
|
554
728
|
resetSessionInit();
|
|
729
|
+
resetDashboardFlowCache();
|
|
730
|
+
resetStandaloneFlowPolicy();
|
|
555
731
|
setClientIpLookupEnabled(true);
|
|
556
732
|
setClientFingerprintEnabled(true);
|
|
557
733
|
setWasmOnDeviceMode(false);
|
|
734
|
+
setVideoSelfieServiceUrl(null);
|
|
558
735
|
resetAnalyticsBatcher();
|
|
736
|
+
resetExperimentAssignments();
|
|
737
|
+
resetResolvedExperiments();
|
|
559
738
|
resetHttpClientState();
|
|
560
739
|
resetTRI();
|
|
561
740
|
configured = false;
|
|
562
741
|
wasmConfig = void 0;
|
|
563
742
|
WasmUtilProvider.resetInstance();
|
|
564
743
|
resetTRIProviderInstance();
|
|
744
|
+
resetFeatureManagement();
|
|
745
|
+
resetFeatureManagementProviderInstance();
|
|
746
|
+
resetEnvironment();
|
|
747
|
+
resetTrueSight();
|
|
565
748
|
}
|
|
566
|
-
|
|
567
749
|
//#endregion
|
|
568
|
-
export { setWasmConfig as a,
|
|
750
|
+
export { setWasmConfig as a, abortVideoSelfieUpload as c, uploadVideoSelfiePart as d, reset as i, completeVideoSelfieUpload as l, initializeWasmUtil as n, setup as o, isConfigured as r, upgradeToWasmHttpClient as s, ensureWasmPipelines as t, initiateVideoSelfieUpload as u };
|