@incodetech/core 2.1.1 → 2.2.0-rc.0

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.
Files changed (328) hide show
  1. package/dist/{3dAvatarProvider-BwOmTMOy.esm.js → 3dAvatarProvider-g02DTFqT.esm.js} +811 -880
  2. package/dist/Actor-iTq7YY48.d.ts +1 -0
  3. package/dist/BrowserDiagnosticsCryptoProvider-CriIh1Gt.esm.js +95 -0
  4. package/dist/BrowserLazyImportProvider-BhoA957O.esm.js +114 -0
  5. package/dist/{BrowserStorageProvider-CBHBhKQN.esm.js → BrowserStorageProvider-k-FDkC4W.esm.js} +2 -4
  6. package/dist/{BrowserTimerProvider-CHloo0eQ.esm.js → BrowserTimerProvider-BXhgNxLt.esm.js} +1 -2
  7. package/dist/{BrowserVisibilityObserverProvider-GBS6XSii.esm.js → BrowserVisibilityObserverProvider-BX1BiLDK.esm.js} +1 -2
  8. package/dist/Face2DProvider-UUQt_vRC.esm.js +437 -0
  9. package/dist/{createFaceAvatar-CpdYp9Iy.d.ts → FaceDetectionProvider-Mh6q3EbA.d.ts} +107 -159
  10. package/dist/IBrowserEnvironmentCapability-DEaRRk-R.esm.js +9 -0
  11. package/dist/IFaceAvatarCapability-BrL19G0s.d.ts +23 -0
  12. package/dist/IFeatureManagementCapability-DdEUp6tB.d.ts +1125 -0
  13. package/dist/IIdCaptureCapability-DHTT3FC2.d.ts +237 -0
  14. package/dist/IStorageCapability-ORkQfK3F.d.ts +242 -0
  15. package/dist/{ITimerCapability-DJ73P4RK.esm.js → ITimerCapability-DgdDzp8G.esm.js} +1 -2
  16. package/dist/{Manager-goNPc_h_.d.ts → Manager-CQQ99QOI.d.ts} +1 -0
  17. package/dist/{MotionSensorProvider-BHuHoYvJ.esm.js → MotionSensorProvider-DGiV77J_.esm.js} +2 -37
  18. package/dist/{OpenViduRecordingProvider-CK6A5kiU.esm.js → OpenViduRecordingProvider-Du98qevC.esm.js} +2 -4
  19. package/dist/PrivacyLensProvider-D8PS7AJa.esm.js +405 -0
  20. package/dist/StateMachine-EDpYWy0i.d.ts +6 -0
  21. package/dist/{StreamCanvasCapture-CAqUdVkM.esm.js → StreamCanvasCapture-D2XcXCZ4.esm.js} +2 -4
  22. package/dist/{addressSearch-D7msRieq.esm.js → addressSearch-DQyrvDQj.esm.js} +10 -21
  23. package/dist/ae-signature.d.ts +4 -6
  24. package/dist/ae-signature.esm.js +10 -11
  25. package/dist/antifraud.d.ts +1 -6
  26. package/dist/antifraud.esm.js +3 -8
  27. package/dist/{antifraudManager-5KA84wtF.esm.js → antifraudManager-B8Plzf7a.esm.js} +11 -8
  28. package/dist/{antifraudManager-DCiNI6np.d.ts → antifraudManager-BY36bS12.d.ts} +3 -3
  29. package/dist/{antifraudStateMachine-BQVw46N5.esm.js → antifraudStateMachine-r4VxSBS4.esm.js} +5 -7
  30. package/dist/api-Bx3gKW_y.esm.js +129 -0
  31. package/dist/{apiError-DkOXfFBu.esm.js → apiError-DZfAyExM.esm.js} +25 -3
  32. package/dist/authentication.d.ts +3 -19
  33. package/dist/authentication.esm.js +3 -35
  34. package/dist/{authenticationManager-BeT6tNZm.d.ts → authenticationManager-BBMGTcwW.d.ts} +3 -4
  35. package/dist/{authenticationManager-BryLnSaF.esm.js → authenticationManager-DscbQwIl.esm.js} +7 -10
  36. package/dist/{authenticationStateMachine-DbdxfGHx.esm.js → authenticationStateMachine-SyuM00Fa.esm.js} +11 -15
  37. package/dist/avatar.d.ts +2 -2
  38. package/dist/avatar.esm.js +2 -3
  39. package/dist/avatar2dWarm-DqucNFX4.esm.js +1330 -0
  40. package/dist/avatarStats-CdUOb3VD.esm.js +136 -0
  41. package/dist/{backCameraStream-ChrMTJv-.esm.js → backCameraStream-CUeYm5eu.esm.js} +20 -8
  42. package/dist/browser-DlFgHpoC-DnyrCR8r.esm.js +1513 -0
  43. package/dist/callback-645_omgz.d.ts +133 -0
  44. package/dist/camera-_2sXMXiF.esm.js +140 -0
  45. package/dist/camera.d.ts +19 -2
  46. package/dist/camera.esm.js +2 -6
  47. package/dist/{canvas-Pi10hG_l.esm.js → canvas-E1zGkel4.esm.js} +1 -2
  48. package/dist/certificate-issuance.d.ts +34 -39
  49. package/dist/certificate-issuance.esm.js +4 -11
  50. package/dist/{certificateIssuanceStateMachine-DlZQT1_u.esm.js → certificateIssuanceStateMachine-COd7_l2T.esm.js} +7 -11
  51. package/dist/consent.d.ts +1 -4
  52. package/dist/consent.esm.js +3 -8
  53. package/dist/{consentManager-BwNu-uC-.esm.js → consentManager-BApTlfA0.esm.js} +5 -7
  54. package/dist/{consentManager-B4PMGXW-.d.ts → consentManager-uhDPdU6i.d.ts} +55 -61
  55. package/dist/{consentStateMachine-BOkVFiU7.esm.js → consentStateMachine-WD-S-Yhs.esm.js} +5 -7
  56. package/dist/{cpf-16m_cGAM.esm.js → cpf-BIADjddF.esm.js} +1 -2
  57. package/dist/createFaceAvatar-BEj18KXi.d.ts +50 -0
  58. package/dist/createFaceAvatar-DQKaRise.esm.js +103 -0
  59. package/dist/cross-document-data-match.d.ts +2 -26
  60. package/dist/cross-document-data-match.esm.js +2 -71
  61. package/dist/crossDocumentDataMatchManager-Dq8Z3SOg.d.ts +41 -0
  62. package/dist/crossDocumentDataMatchManager-OmYvyung.esm.js +84 -0
  63. package/dist/curp-validation.d.ts +1 -11
  64. package/dist/curp-validation.esm.js +3 -8
  65. package/dist/{curpValidationManager-CoqODZx5.d.ts → curpValidationManager-DVGr7Fq7.d.ts} +4 -6
  66. package/dist/{curpValidationManager-Cbji2inV.esm.js → curpValidationManager-UZxcrsrz.esm.js} +11 -7
  67. package/dist/{curpValidationStateMachine-Dlw4qfFb.esm.js → curpValidationStateMachine-9KwnqeoB.esm.js} +22 -14
  68. package/dist/custom-fields.d.ts +2 -5
  69. package/dist/custom-fields.esm.js +24 -11
  70. package/dist/custom-watchlist.d.ts +1 -3
  71. package/dist/custom-watchlist.esm.js +11 -10
  72. package/dist/{customWatchlistStateMachine-D8w0mNxm.esm.js → customWatchlistStateMachine-B_ey3TFj.esm.js} +5 -7
  73. package/dist/{dateUtils-BW6mBV6p.esm.js → dateUtils-CvG0FvK8.esm.js} +1 -2
  74. package/dist/{deepsightService-CViys6T4.esm.js → deepsightLoader-DcWjMC6A.esm.js} +68 -14
  75. package/dist/{deepsightService-BuTOFTr8.d.ts → deepsightService-DLVQS_RH.d.ts} +41 -2
  76. package/dist/device.d.ts +10 -2
  77. package/dist/device.esm.js +21 -21
  78. package/dist/document-capture.d.ts +3 -1816
  79. package/dist/document-capture.esm.js +3 -245
  80. package/dist/document-upload.d.ts +48 -55
  81. package/dist/document-upload.esm.js +8 -14
  82. package/dist/documentCaptureManager-B4Kivr8_.d.ts +2062 -0
  83. package/dist/documentCaptureManager-DszmcU-l.esm.js +296 -0
  84. package/dist/{documentCaptureStateMachine-BkTvU3yq.esm.js → documentCaptureStateMachine-D2jBwwVb.esm.js} +66 -40
  85. package/dist/dynamic-forms.d.ts +2 -4
  86. package/dist/dynamic-forms.esm.js +3 -9
  87. package/dist/{dynamicFormsManager-CHXUBNs4.esm.js → dynamicFormsManager-BoZ2-OUI.esm.js} +48 -9
  88. package/dist/{dynamicFormsManager-CKZkE7Wo.d.ts → dynamicFormsManager-fhK0yINk.d.ts} +22 -46
  89. package/dist/{dynamicFormsStateMachine-DJ1HGZff.esm.js → dynamicFormsStateMachine-D0RzkoEV.esm.js} +161 -34
  90. package/dist/ekyb.d.ts +5 -137
  91. package/dist/ekyb.esm.js +4 -179
  92. package/dist/ekybManager-DTvfxAOZ.esm.js +178 -0
  93. package/dist/ekybManager-Dzswb_b8.d.ts +114 -0
  94. package/dist/{ekybStateMachine-D9GzA4MW.esm.js → ekybStateMachine-BlTIozb6.esm.js} +16 -193
  95. package/dist/ekyc.d.ts +2 -79
  96. package/dist/ekyc.esm.js +4 -154
  97. package/dist/ekycManager-BFpHbBoT.d.ts +97 -0
  98. package/dist/ekycManager-oTstTJuL.esm.js +156 -0
  99. package/dist/{ekycStateMachine-DnVRiu3s.esm.js → ekycStateMachine-DHvksnrr.esm.js} +141 -423
  100. package/dist/ekycUtils-Dew1rBG0.esm.js +223 -0
  101. package/dist/electronic-signature.d.ts +3 -5
  102. package/dist/electronic-signature.esm.js +2 -10
  103. package/dist/{index-36QX_21w.d.ts → electronicSignatureManager-CcUXQZS7.d.ts} +220 -251
  104. package/dist/{electronicSignatureManager-DESRgObX.esm.js → electronicSignatureManager-DRYlHPjT.esm.js} +47 -33
  105. package/dist/email.d.ts +1 -5
  106. package/dist/email.esm.js +3 -10
  107. package/dist/{emailManager-CMS4q_r6.d.ts → emailManager-CADXW_9X.d.ts} +4 -7
  108. package/dist/{emailManager-B9Vrv3Ma.esm.js → emailManager-tE-YvNtS.esm.js} +76 -12
  109. package/dist/{emailStateMachine-CbmKFVSi.esm.js → emailStateMachine-Bm894MHB.esm.js} +7 -9
  110. package/dist/{endpoints-CwrFQfW7.esm.js → endpoints-CCzL3XD_.esm.js} +55 -6
  111. package/dist/{events-1wxZ97yf.esm.js → events-CxfNJVZW.esm.js} +43 -176
  112. package/dist/events.d.ts +28 -10
  113. package/dist/events.esm.js +2 -4
  114. package/dist/extensibility.d.ts +37 -37
  115. package/dist/extensibility.esm.js +31 -80
  116. package/dist/{externalFetch-hvmz_npP.esm.js → externalFetch-BKBThAUC.esm.js} +2 -4
  117. package/dist/face-match.d.ts +2 -225
  118. package/dist/face-match.esm.js +3 -173
  119. package/dist/{faceCaptureManagerFactory-C9TiGbkA.esm.js → faceCaptureManagerFactory-BDAsBCkh.esm.js} +52 -31
  120. package/dist/{faceCaptureManagerFactory-DiJ64oem.d.ts → faceCaptureManagerFactory-BxWPpxyd.d.ts} +63 -24
  121. package/dist/{faceCaptureSetup-BqhqfFHL.esm.js → faceCaptureSetup-C7Qv79fA.esm.js} +57 -36
  122. package/dist/faceMatchManager-BXp2WUT-.esm.js +201 -0
  123. package/dist/faceMatchManager-BnvrZM2F.d.ts +268 -0
  124. package/dist/{faceMatchStateMachine-MDb30gCm.esm.js → faceMatchStateMachine-CJiO2yLO.esm.js} +14 -10
  125. package/dist/feature-management-DS_Nj5Gg.esm.js +615 -0
  126. package/dist/feature-management.d.ts +173 -0
  127. package/dist/feature-management.esm.js +2 -0
  128. package/dist/field-comparison.d.ts +1 -4
  129. package/dist/field-comparison.esm.js +2 -7
  130. package/dist/{fieldComparisonManager-OLKVsG2Z.d.ts → fieldComparisonManager-CBvEGxFx.d.ts} +3 -5
  131. package/dist/{fieldComparisonManager-Cw4uzD7S.esm.js → fieldComparisonManager-DhnYdYZ2.esm.js} +6 -11
  132. package/dist/fiscal-qr.d.ts +1 -6
  133. package/dist/fiscal-qr.esm.js +14 -29
  134. package/dist/flow-events.d.ts +2 -9
  135. package/dist/flow.d.ts +59 -21
  136. package/dist/flow.esm.js +132 -49
  137. package/dist/{flowCompletionService-B6P6_EF3.esm.js → flowCompletionService-BSe3p7pg.esm.js} +4 -6
  138. package/dist/flowServices-unhF9V9F.esm.js +620 -0
  139. package/dist/geolocation.d.ts +1 -4
  140. package/dist/geolocation.esm.js +3 -9
  141. package/dist/{geolocationManager-CF6-NizA.esm.js → geolocationManager-Bv9MSVNr.esm.js} +44 -16
  142. package/dist/geolocationManager-Cz744E5S.d.ts +506 -0
  143. package/dist/{geolocationStateMachine-CD2XJs1b.esm.js → geolocationStateMachine-BxD6JK1M.esm.js} +53 -28
  144. package/dist/{getBrowser-1yNcfFZR.esm.js → getBrowser-Cb8Zgrgp.esm.js} +1 -2
  145. package/dist/getBrowser-DNrQeL4T.esm.js +16 -0
  146. package/dist/getDeviceClass-9y-kbVDw.esm.js +19 -0
  147. package/dist/{getDeviceClass-C-Dg6IsJ.esm.js → getDeviceClass-CeBiEayS.esm.js} +1 -2
  148. package/dist/getParsedUserAgent-pJjATANs.esm.js +1622 -0
  149. package/dist/government-validation.d.ts +3 -6
  150. package/dist/government-validation.esm.js +7 -13
  151. package/dist/{governmentValidationStateMachine-BE5wiQ7Y.esm.js → governmentValidationStateMachine-BYKYUdza.esm.js} +8 -11
  152. package/dist/home.d.ts +14 -22
  153. package/dist/home.esm.js +3 -8
  154. package/dist/http.d.ts +0 -1
  155. package/dist/http.esm.js +2 -4
  156. package/dist/id-ocr.d.ts +8 -7
  157. package/dist/id-ocr.esm.js +20 -9
  158. package/dist/id-selfie-flow.d.ts +179 -0
  159. package/dist/id-selfie-flow.esm.js +917 -0
  160. package/dist/id-verification.d.ts +2 -191
  161. package/dist/id-verification.esm.js +3 -43
  162. package/dist/id.d.ts +7 -18
  163. package/dist/id.esm.js +47 -53
  164. package/dist/{idCaptureDefaults-CZajItdO.esm.js → idCaptureDefaults-WeHbQM7W.esm.js} +54 -17
  165. package/dist/idCaptureManager-BjU-Wyow.d.ts +429 -0
  166. package/dist/{idCaptureManager-DASPUMtC.esm.js → idCaptureManager-BjiBSrHm.esm.js} +173 -34
  167. package/dist/idCaptureServices-CFDwqTtQ.esm.js +396 -0
  168. package/dist/{idCaptureStateMachine-DZ2ZTSxu.esm.js → idCaptureStateMachine-CRwQh8jc.esm.js} +438 -585
  169. package/dist/{idOcrManager-Tm4LzKR0.esm.js → idOcrManager-CvJZhmBR.esm.js} +4 -7
  170. package/dist/{idOcrManager-DLfAjDZn.d.ts → idOcrManager-DXc_xRN7.d.ts} +62 -229
  171. package/dist/{idOcrStateMachine-BJxZCxwS.esm.js → idOcrStateMachine-Bq_e3l4E.esm.js} +15 -20
  172. package/dist/idVerificationManager-BB4Pj_N6.d.ts +197 -0
  173. package/dist/idVerificationManager-CduNXhWd.esm.js +51 -0
  174. package/dist/{idVerificationStateMachine-DXN9WcdM.esm.js → idVerificationStateMachine-GEQWUPU2.esm.js} +5 -7
  175. package/dist/identity-reuse.d.ts +1 -4
  176. package/dist/identity-reuse.esm.js +3 -8
  177. package/dist/{identityReuseManager-LjkPvSQN.esm.js → identityReuseManager-D5vXknnJ.esm.js} +24 -7
  178. package/dist/{identityReuseManager-CLVOYxcp.d.ts → identityReuseManager-v2TH5g7e.d.ts} +38 -43
  179. package/dist/{identityReuseStateMachine-Bp-zONoV.esm.js → identityReuseStateMachine-AubRPhIi.esm.js} +6 -8
  180. package/dist/index-B8weJxmL.d.ts +1 -0
  181. package/dist/index-BKOWUhxG.d.ts +258 -0
  182. package/dist/{index-DrpWp15Z.d.ts → index-CLMF0QLQ.d.ts} +3 -3
  183. package/dist/index.d.ts +1 -3
  184. package/dist/index.esm.js +2 -15
  185. package/dist/{invokeOnCaptureCallback-CCS2Ruzi.esm.js → invokeOnCaptureCallback-1m1VJ3Q4.esm.js} +2 -4
  186. package/dist/{lib-Bjd6nOLG.esm.js → lib-DAyUtOTj.esm.js} +1510 -1589
  187. package/dist/mandatory-consent.d.ts +2 -10
  188. package/dist/mandatory-consent.esm.js +3 -8
  189. package/dist/{mandatoryConsentManager-DeBmOHcQ.d.ts → mandatoryConsentManager-B29kR0XA.d.ts} +60 -85
  190. package/dist/{mandatoryConsentManager-DZ26sg4B.esm.js → mandatoryConsentManager-BeELm1zS.esm.js} +4 -7
  191. package/dist/{mandatoryConsentStateMachine-_44ZoDSh.esm.js → mandatoryConsentStateMachine-zroQGzwb.esm.js} +5 -7
  192. package/dist/manualReviewService-D4IkipnN.esm.js +15 -0
  193. package/dist/{mediaRecorderOptions-CClCKAiF.esm.js → mediaRecorderOptions-dALSV8af.esm.js} +2 -4
  194. package/dist/{mediapipeShared-Bcmkzs3x.esm.js → mediapipeShared-B6oNoXEQ.esm.js} +21 -9
  195. package/dist/{onDeviceFaceResults-DILtthks.esm.js → onDeviceFaceResults-f81FVdQs.esm.js} +30 -87
  196. package/dist/openviduLazy-CCDpFWg1.esm.js +10 -0
  197. package/dist/{otp-B1YeyRXu.d.ts → otp-CEWfTj9v.d.ts} +0 -1
  198. package/dist/{otp-uaXiKt_R.esm.js → otp-D2k3PeSL.esm.js} +3 -14
  199. package/dist/{permissionGuards-BNOe4Tnu.esm.js → permissionGuards-KINpmKtI.esm.js} +2 -4
  200. package/dist/{permissionServices-C_kxhNeo.esm.js → permissionServices-UvUcOSRb.esm.js} +35 -28
  201. package/dist/personhood.d.ts +13 -20
  202. package/dist/personhood.esm.js +153 -85
  203. package/dist/phone.d.ts +1 -5
  204. package/dist/phone.esm.js +3 -10
  205. package/dist/{phoneManager-_KtitbUA.d.ts → phoneManager-BBU8Lq0O.d.ts} +4 -7
  206. package/dist/{phoneManager-CRblfdcI.esm.js → phoneManager-Cpiai2IM.esm.js} +82 -12
  207. package/dist/{phoneStateMachine-DjFGWMjQ.esm.js → phoneStateMachine-E1fUUcNM.esm.js} +7 -9
  208. package/dist/{platform-0Ot-bF_a.esm.js → platform-BJrm5nzZ.esm.js} +31 -11
  209. package/dist/privacyLensWorker-DI-Rg83h.esm.js +355 -0
  210. package/dist/qe-signature.d.ts +4 -6
  211. package/dist/qe-signature.esm.js +10 -11
  212. package/dist/{recordingService-CxaYkITO.esm.js → recordingService-CFpfdXSS.esm.js} +13 -31
  213. package/dist/redirect-to-mobile.d.ts +2 -6
  214. package/dist/redirect-to-mobile.esm.js +3 -10
  215. package/dist/{redirectToMobileManager-dv29o_LS.d.ts → redirectToMobileManager-BD2PvT5B.d.ts} +8 -44
  216. package/dist/{redirectToMobileManager-DbuNUlru.esm.js → redirectToMobileManager-C0dfc7f6.esm.js} +28 -8
  217. package/dist/{redirectToMobileStateMachine-BRaIJWOM.esm.js → redirectToMobileStateMachine-C9SYCJcH.esm.js} +74 -18
  218. package/dist/rolldown-runtime-FZ4Itg2g.esm.js +42 -0
  219. package/dist/{runChildModule-kojSv3MH.esm.js → runChildModule-DpvgAGFA.esm.js} +10 -9
  220. package/dist/{WasmUtilProvider-BgzcXBdl.esm.js → safeStorage-Ep56I-f_.esm.js} +98 -473
  221. package/dist/selfie.d.ts +8 -21
  222. package/dist/selfie.esm.js +40 -47
  223. package/dist/selfieErrorUtils-C2PYBVsp.esm.js +90 -0
  224. package/dist/{selfieManager-B1Px3GGa.esm.js → selfieManager-Br4onIMy.esm.js} +7 -10
  225. package/dist/{selfieManager-4juKfrHG.d.ts → selfieManager-DwlCppg0.d.ts} +3 -4
  226. package/dist/{selfieStateMachine-D0TS93Tu.esm.js → selfieStateMachine-CNGs8vFK.esm.js} +14 -29
  227. package/dist/{session-CLsU2Jnb.esm.js → session-CX2H3tmI.esm.js} +16 -7
  228. package/dist/session.d.ts +12 -10
  229. package/dist/session.esm.js +5 -15
  230. package/dist/sessionInitializer-CV6Rj_dn.esm.js +1865 -0
  231. package/dist/{setup-CfNsYAeB.esm.js → setup-CYdVacqv.esm.js} +319 -137
  232. package/dist/{setup-CmA2apmN.d.ts → setup-DywQeePQ.d.ts} +186 -4
  233. package/dist/signature.d.ts +2 -96
  234. package/dist/signature.esm.js +3 -108
  235. package/dist/signatureManager-DGBSWz2_.d.ts +106 -0
  236. package/dist/signatureManager-DdPgcmou.esm.js +113 -0
  237. package/dist/{signatureStateMachine-CdhlMih-.esm.js → signatureStateMachine-Cf73DGWO.esm.js} +5 -7
  238. package/dist/spawn-D9jgw9pW.d.ts +1441 -0
  239. package/dist/src-0Jurt29N.esm.js +4482 -0
  240. package/dist/{stats-BVy52wLy.esm.js → stats-B0nFKawG.esm.js} +3 -5
  241. package/dist/stats.esm.js +2 -5
  242. package/dist/topLevelStateName-B5i2avbh.esm.js +41 -0
  243. package/dist/{tri-CFAPtAUM.esm.js → tri-4RsGrIt6.esm.js} +3 -119
  244. package/dist/tri.d.ts +2 -2
  245. package/dist/tri.esm-BIjHhBJ2.esm.js +2620 -0
  246. package/dist/tri.esm.js +2 -4
  247. package/dist/trueSight-B8G85W4z.esm.js +1 -0
  248. package/dist/trueSightService-6dTpiaTh.esm.js +1894 -0
  249. package/dist/trust-graph.d.ts +4 -5
  250. package/dist/trust-graph.esm.js +13 -9
  251. package/dist/types-BEwVKkLJ.d.ts +15 -0
  252. package/dist/{types-BKLb3C42.esm.js → types-BN5RPPIZ.esm.js} +1 -2
  253. package/dist/types-BSBzhHRH.d.ts +57 -0
  254. package/dist/types-BX_XkMsQ2.d.ts +21 -0
  255. package/dist/types-BfHiko5D.d.ts +48 -0
  256. package/dist/{types-D8Cl1N2Z.d.ts → types-BfgmV7s72.d.ts} +2 -2
  257. package/dist/types-CJ7Yl9K-2.d.ts +164 -0
  258. package/dist/types-DPIDuhut.d.ts +40 -0
  259. package/dist/types-DVmXIdzW.d.ts +82 -0
  260. package/dist/types-DelMqZLe.d.ts +105 -0
  261. package/dist/types-EELWyWpd.d.ts +6 -0
  262. package/dist/{types-fO6KIdol.d.ts → types-Hmd7U0JA.d.ts} +80 -6
  263. package/dist/{types-BUgeB2X6.d.ts → types-KPvmag_B.d.ts} +7 -7
  264. package/dist/types-M6eb82ra2.d.ts +589 -0
  265. package/dist/{types-DV3wkhQ4.d.ts → types-Vb4P9ovf.d.ts} +1 -3
  266. package/dist/{urlUtils-CpiYwn7w.esm.js → urlUtils-D6phjq1-.esm.js} +1 -2
  267. package/dist/{video-ZY92rkel.esm.js → video-BtSWtHy1.esm.js} +1 -2
  268. package/dist/video-selfie.d.ts +71 -117
  269. package/dist/video-selfie.esm.js +575 -643
  270. package/dist/videoSelfieCameraWarmer-h_VUk5Vu.esm.js +651 -0
  271. package/dist/videoSelfieStepDetector-D3oo2ofo.d.ts +123 -0
  272. package/dist/wasm.d.ts +2 -4
  273. package/dist/wasm.esm.js +4 -15
  274. package/dist/wasmDefaults-DTUrftxR.esm.js +125 -0
  275. package/dist/{wasmDsFlagSync-Ch0mFJNT.esm.js → wasmDsFlagSync-BqUCwLY8.esm.js} +2 -4
  276. package/dist/wasmWebClient-DM8lkb0z.esm.js +407 -0
  277. package/dist/watchlist-for-business.d.ts +1 -3
  278. package/dist/watchlist-for-business.esm.js +9 -9
  279. package/dist/watchlist.d.ts +1 -52
  280. package/dist/watchlist.esm.js +3 -70
  281. package/dist/{watchlistForBusinessStateMachine-R1Yp1g5A.esm.js → watchlistForBusinessStateMachine-BcBMkMvV.esm.js} +5 -7
  282. package/dist/watchlistManager-CjSMmbyq.esm.js +83 -0
  283. package/dist/watchlistManager-DLXef90v.d.ts +68 -0
  284. package/dist/{watchlistStateMachine-D07UVq1m.esm.js → watchlistStateMachine-Bl7Wy9Cm.esm.js} +5 -7
  285. package/dist/workflow.d.ts +239 -203
  286. package/dist/workflow.esm.js +156 -101
  287. package/dist/xstate-actors.esm-CtI5S0f4.esm.js +310 -0
  288. package/dist/{xstate.esm-nY3M5UYm.esm.js → xstate.esm-Cf4e0Cfd.esm.js} +136 -610
  289. package/package.json +14 -9
  290. package/dist/Actor-BwgmOPkb.d.ts +0 -2
  291. package/dist/Face2DProvider-CZU11g6r.esm.js +0 -824
  292. package/dist/FaceDetectionProvider-CPWg-PAH.d.ts +0 -119
  293. package/dist/IWasmUtilCapability-DaSNxgA8.d.ts +0 -150
  294. package/dist/PrivacyLensProvider-B_zrV25p.esm.js +0 -339
  295. package/dist/StateMachine-D5WO6lHS.d.ts +0 -2
  296. package/dist/StreamCanvasCapture-DHaWferF.d.ts +0 -42
  297. package/dist/ae-signature-Pp4oCAHD.esm.js +0 -12
  298. package/dist/api-DsbUi7TO.esm.js +0 -72
  299. package/dist/browser-DlFgHpoC-Br3G10gw.esm.js +0 -1425
  300. package/dist/browserSimulation-DZwEy9bu.esm.js +0 -2804
  301. package/dist/camera-CxxXV0VN.esm.js +0 -79
  302. package/dist/canvas-90BqS0NF.d.ts +0 -112
  303. package/dist/chunk-CIKcdghV.esm.js +0 -49
  304. package/dist/clientLifecycle-VyzRfALg.esm.js +0 -534
  305. package/dist/cpf-ocr.d.ts +0 -10
  306. package/dist/cpf-ocr.esm.js +0 -8
  307. package/dist/cpfOcrManager-9eM4z4o7.esm.js +0 -190
  308. package/dist/cpfOcrManager-C5U9E0hf.d.ts +0 -216
  309. package/dist/createFaceAvatar-BZSg2MNo.esm.js +0 -46
  310. package/dist/deepsightLoader-CU_tiLMx.esm.js +0 -62
  311. package/dist/flowServices-DkQmOkLV.esm.js +0 -208
  312. package/dist/geolocationManager-DaHYFkVO.d.ts +0 -156
  313. package/dist/getDeviceClass-DIjnTPjR.esm.js +0 -14
  314. package/dist/http-CnsKEaJY.esm.js +0 -0
  315. package/dist/idCaptureManager-CwuXtVu6.d.ts +0 -1013
  316. package/dist/index-BAyZ8_iI.d.ts +0 -93
  317. package/dist/openviduLazy-jPgABwrt.esm.js +0 -3
  318. package/dist/openviduLazy-wEojM41w.esm.js +0 -12
  319. package/dist/qe-signature-BnWIpR-O.esm.js +0 -12
  320. package/dist/sessionInitializer-Dj7-aJaP.esm.js +0 -547
  321. package/dist/tri.esm-DDJ1zOqG.esm.js +0 -2593
  322. package/dist/types-BcF-fii5.d.ts +0 -5
  323. package/dist/videoSelfieSteps-Djpv7cjb.esm.js +0 -58
  324. /package/dist/{IVisibilityObserverCapability-BZ1rE7ly.d.ts → IVisibilityObserverCapability-D4tvIB5v.d.ts} +0 -0
  325. /package/dist/{camera-CKU96nwJ.d.ts → camera-9wWD-pwg.d.ts} +0 -0
  326. /package/dist/{flowCompletionService-BOSTlAWo.d.ts → flowCompletionService-BlAHsKyv.d.ts} +0 -0
  327. /package/dist/{types-BgjMAEXl.d.ts → types-Bk_6dmDa.d.ts} +0 -0
  328. /package/dist/{warmup-Dd0iq6KF.d.ts → warmup-Dv2alr2-.d.ts} +0 -0
@@ -1,13 +1,10 @@
1
- import { n as eventModuleNames, s as createManagerInstrumentation } from "./events-1wxZ97yf.esm.js";
2
- import { l as createManager, s as createActor } from "./xstate.esm-nY3M5UYm.esm.js";
3
- import { t as OTP_CODE_LENGTH } from "./otp-uaXiKt_R.esm.js";
4
- import { t as phoneMachine } from "./phoneStateMachine-DjFGWMjQ.esm.js";
5
-
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 phoneMachine } from "./phoneStateMachine-E1fUUcNM.esm.js";
6
4
  //#region src/modules/phone/phoneActor.ts
7
5
  function createPhoneActor(options) {
8
6
  return createActor(phoneMachine, { input: { config: options.config } }).start();
9
7
  }
10
-
11
8
  //#endregion
12
9
  //#region src/modules/phone/phoneManager.ts
13
10
  /**
@@ -165,7 +162,7 @@ function mapState(snapshot) {
165
162
  if (typedSnapshot.matches("resendingOtp")) return {
166
163
  status: "resendingOtp",
167
164
  otpCode: context.otpCode,
168
- otpLength: OTP_CODE_LENGTH
165
+ otpLength: 6
169
166
  };
170
167
  if (typedSnapshot.matches("sendingInitialOtp")) return { status: "sendingInitialOtp" };
171
168
  if (typedSnapshot.matches("awaitingOtp")) return {
@@ -174,7 +171,7 @@ function mapState(snapshot) {
174
171
  canResend: !context.resendTimerActive,
175
172
  attemptsRemaining: context.attemptsRemaining,
176
173
  otpCode: context.otpCode,
177
- otpLength: OTP_CODE_LENGTH,
174
+ otpLength: 6,
178
175
  otpValidationErrors: context.otpValidationErrors,
179
176
  isOtpValid: Object.keys(context.otpValidationErrors ?? {}).length === 0
180
177
  };
@@ -183,7 +180,7 @@ function mapState(snapshot) {
183
180
  resendTimer: context.resendTimer,
184
181
  canResend: !context.resendTimerActive,
185
182
  otpCode: context.otpCode,
186
- otpLength: OTP_CODE_LENGTH
183
+ otpLength: 6
187
184
  };
188
185
  if (typedSnapshot.matches("otpError")) return {
189
186
  status: "otpError",
@@ -192,7 +189,7 @@ function mapState(snapshot) {
192
189
  resendTimer: context.resendTimer,
193
190
  canResend: !context.resendTimerActive,
194
191
  otpCode: context.otpCode,
195
- otpLength: OTP_CODE_LENGTH,
192
+ otpLength: 6,
196
193
  otpValidationErrors: context.otpValidationErrors,
197
194
  isOtpValid: Object.keys(context.otpValidationErrors ?? {}).length === 0
198
195
  };
@@ -205,9 +202,29 @@ function mapState(snapshot) {
205
202
  }
206
203
  function createApi({ actor, trackElementClicked }) {
207
204
  return {
205
+ /**
206
+ * Initializes the phone verification flow.
207
+ * Transitions from 'idle' to 'loadingPrefill' or 'inputting'.
208
+ * Must be called before any other method.
209
+ */
208
210
  load() {
209
211
  actor.send({ type: "LOAD" });
210
212
  },
213
+ /**
214
+ * Sets the phone number for verification.
215
+ * Should be called when state is 'inputting'.
216
+ *
217
+ * @param phone - Full phone number with country code (e.g., '+14155551234')
218
+ * @param isValid - Whether the phone number passes validation
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * // Using libphonenumber-js for validation
223
+ * import { isValidPhoneNumber } from 'libphonenumber-js';
224
+ * const phone = '+14155551234';
225
+ * phoneManager.setPhoneNumber(phone, isValidPhoneNumber(phone));
226
+ * ```
227
+ */
211
228
  setPhoneNumber(phone, isValid) {
212
229
  actor.send({
213
230
  type: "PHONE_CHANGED",
@@ -215,28 +232,67 @@ function createApi({ actor, trackElementClicked }) {
215
232
  isValid
216
233
  });
217
234
  },
235
+ /**
236
+ * Validates the current phone number (e.g., on blur).
237
+ * Populates or clears `validationErrors.phone` on the 'inputting' state.
238
+ */
218
239
  validatePhone() {
219
240
  actor.send({ type: "VALIDATE_PHONE" });
220
241
  },
242
+ /**
243
+ * Sets the marketing opt-in preference.
244
+ * Only relevant if `config.optinEnabled` is true.
245
+ *
246
+ * @param granted - Whether the user consented to receive marketing messages
247
+ */
221
248
  setOptInGranted(granted) {
222
249
  actor.send({
223
250
  type: "OPT_IN_CHANGED",
224
251
  granted
225
252
  });
226
253
  },
254
+ /**
255
+ * Submits the phone number for verification.
256
+ * Runs full validation first: if the phone is empty or invalid, populates
257
+ * `validationErrors` and stays on 'inputting'; otherwise transitions to
258
+ * 'submitting', then to 'sendingInitialOtp' or 'finished' (if no OTP).
259
+ */
227
260
  submit() {
228
261
  trackElementClicked?.("submit");
229
262
  actor.send({ type: "SUBMIT" });
230
263
  },
264
+ /**
265
+ * Sets the OTP code without submitting.
266
+ * Use this for controlled input components.
267
+ *
268
+ * @param code - The OTP code entered by the user
269
+ */
231
270
  setOtpCode(code) {
232
271
  actor.send({
233
272
  type: "OTP_CHANGED",
234
273
  code
235
274
  });
236
275
  },
276
+ /**
277
+ * Validates the current OTP code (e.g. on blur), without submitting.
278
+ * Populates or clears `otpValidationErrors.otp` on the 'awaitingOtp' /
279
+ * 'otpError' states (incomplete code → `isOtpValid` becomes false).
280
+ */
237
281
  validateOtp() {
238
282
  actor.send({ type: "VALIDATE_OTP" });
239
283
  },
284
+ /**
285
+ * Sets and submits the OTP code in one call.
286
+ * Should be called when state is 'awaitingOtp' or 'otpError'.
287
+ *
288
+ * @param code - The complete OTP code (typically 6 alphanumeric characters)
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * // Submit OTP when user completes entry
293
+ * phoneManager.submitOtp('HH36LP');
294
+ * ```
295
+ */
240
296
  submitOtp(code) {
241
297
  trackElementClicked?.("submitOtp");
242
298
  actor.send({
@@ -245,14 +301,29 @@ function createApi({ actor, trackElementClicked }) {
245
301
  });
246
302
  actor.send({ type: "VERIFY_OTP" });
247
303
  },
304
+ /**
305
+ * Requests a new OTP code to be sent.
306
+ * Only works when state is 'awaitingOtp' and `canResend` is true.
307
+ * Resets the resend timer.
308
+ */
248
309
  resendOtp() {
249
310
  trackElementClicked?.("resendOtp");
250
311
  actor.send({ type: "RESEND_OTP" });
251
312
  },
313
+ /**
314
+ * Returns to the phone input screen from OTP entry.
315
+ * Allows the user to change their phone number.
316
+ * Transitions from 'awaitingOtp' or 'otpError' back to 'inputting'.
317
+ */
252
318
  back() {
253
319
  trackElementClicked?.("back");
254
320
  actor.send({ type: "BACK" });
255
321
  },
322
+ /**
323
+ * Resets the manager to initial state.
324
+ * Can be called from 'success' or 'error' states to start over.
325
+ * Clears all stored data including phone number and OTP.
326
+ */
256
327
  reset() {
257
328
  actor.send({ type: "RESET" });
258
329
  }
@@ -315,6 +386,5 @@ function createPhoneManagerFromActor(actor) {
315
386
  instrumentation: createManagerInstrumentation(eventModuleNames.phone, { getEventScreenName: getPhoneScreenName })
316
387
  });
317
388
  }
318
-
319
389
  //#endregion
320
- export { createPhoneManagerFromActor as n, createPhoneManager as t };
390
+ export { createPhoneManagerFromActor as n, createPhoneManager as t };
@@ -1,9 +1,9 @@
1
- import { t as BrowserTimerProvider } from "./BrowserTimerProvider-CHloo0eQ.esm.js";
2
- import { t as api } from "./api-DsbUi7TO.esm.js";
3
- import { t as endpoints } from "./endpoints-CwrFQfW7.esm.js";
4
- import { a as fromPromise, i as fromCallback, r as assign, t as setup } from "./xstate.esm-nY3M5UYm.esm.js";
5
- import { n as computeOtpValidationErrors, r as isOtpComplete } from "./otp-uaXiKt_R.esm.js";
6
-
1
+ import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
2
+ import { t as api } from "./api-Bx3gKW_y.esm.js";
3
+ import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
4
+ import { r as assign, t as setup } from "./xstate.esm-Cf4e0Cfd.esm.js";
5
+ import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-CtI5S0f4.esm.js";
6
+ import { n as isOtpComplete, t as computeOtpValidationErrors } from "./otp-D2k3PeSL.esm.js";
7
7
  //#region src/modules/phone/phoneServices.ts
8
8
  function getPhoneServerFailureReason(error, invalidStatus) {
9
9
  if (error.status === invalidStatus) return "invalidPhone";
@@ -53,7 +53,6 @@ async function verifyOtp(code, signal) {
53
53
  throw new Error(getPhoneServerFailureReason(error));
54
54
  }
55
55
  }
56
-
57
56
  //#endregion
58
57
  //#region src/modules/phone/phoneStateMachine.ts
59
58
  const RESEND_TIMER_SECONDS = 30;
@@ -381,6 +380,5 @@ const phoneMachine = setup({
381
380
  } } }
382
381
  }
383
382
  });
384
-
385
383
  //#endregion
386
- export { phoneMachine as t };
384
+ export { phoneMachine as t };
@@ -1,16 +1,10 @@
1
- //#region ../infra/src/capabilities/platform.ts
2
- /**
3
- * Platform detection utilities for camera operations.
4
- * These are pure functions with no external dependencies and can be used by all layers.
5
- */
6
- let uxType = null;
7
1
  function isTouchDevice() {
8
2
  return (typeof navigator !== "undefined" ? navigator.maxTouchPoints > 0 : false) || "ontouchstart" in (typeof document !== "undefined" ? document.documentElement : {});
9
3
  }
10
- function isTabletWithoutAndroid(userAgent) {
4
+ function isTabletWithoutAndroid(userAgent, hasTouch = isTouchDevice()) {
11
5
  const isLinux = /Linux/i.test(userAgent);
12
6
  const isChrome = /Chrome/i.test(userAgent) && !/Edge/i.test(userAgent);
13
- return !/Mobile|Android/i.test(userAgent) && isLinux && isChrome && isTouchDevice();
7
+ return !/Mobile|Android/i.test(userAgent) && isLinux && isChrome && hasTouch;
14
8
  }
15
9
  function isIOS(userAgent) {
16
10
  const ua = userAgent || (typeof navigator !== "undefined" ? navigator.userAgent : "");
@@ -21,13 +15,40 @@ function isAndroid(userAgent) {
21
15
  const ua = userAgent || (typeof navigator !== "undefined" ? navigator.userAgent : "");
22
16
  return /Android/i.test(ua);
23
17
  }
18
+ /**
19
+ * True when the page runs inside an Android WebView — web content hosted by a
20
+ * native app — rather than a standalone Android browser.
21
+ *
22
+ * This distinction matters for camera permission. A WebView has no persistent
23
+ * permission store: the host app answers every `getUserMedia` through
24
+ * `WebChromeClient.onPermissionRequest`, so
25
+ * `navigator.permissions.query({ name: 'camera' })` never reports `'granted'`
26
+ * there, no matter how many times access was granted. Standalone Android
27
+ * browsers do not behave that way, which is why callers must gate on this and
28
+ * not on `isAndroid()`.
29
+ *
30
+ * Two signals, because hosts may rewrite the UA:
31
+ * 1. Chromium stamps a `wv` token into the WebView UA (Android 4.4+). Definitive
32
+ * when present, so it is checked before any browser exclusions.
33
+ * 2. Otherwise the `Version/<n>` + `Chrome/<n>` pair — a WebView emits both,
34
+ * standalone Chrome for Android emits only `Chrome/<n>`.
35
+ *
36
+ * A host that rewrites the UA past recognition is not detectable here; those
37
+ * integrations keep the pre-existing behaviour and simply see `'prompt'`.
38
+ */
39
+ function isAndroidWebView(userAgent) {
40
+ const ua = userAgent || (typeof navigator !== "undefined" ? navigator.userAgent : "");
41
+ if (!isAndroid(ua)) return false;
42
+ if (/;\s*wv\s*\)/i.test(ua)) return true;
43
+ if (/SamsungBrowser|Firefox|EdgA|OPR|OPT|YaBrowser|HuaweiBrowser/i.test(ua)) return false;
44
+ return /\bVersion\/[\d.]+/.test(ua) && /\bChrome\/[\d.]+/.test(ua);
45
+ }
24
46
  function isIPad(userAgent) {
25
47
  const ua = userAgent || (typeof navigator !== "undefined" ? navigator.userAgent : "");
26
48
  const hasTouchPoints = typeof navigator !== "undefined" ? navigator.maxTouchPoints > 0 : false;
27
49
  return /iPad/.test(ua) || /Mac OS/.test(ua) && hasTouchPoints && !/iPhone|iPod/.test(ua);
28
50
  }
29
51
  function isDesktop(userAgent) {
30
- if (uxType) return uxType === "desktop";
31
52
  const ua = userAgent || (typeof navigator !== "undefined" ? navigator.userAgent : "");
32
53
  return !(/Mobile|Android/i.test(ua) || isTabletWithoutAndroid(ua) || isIOS(ua));
33
54
  }
@@ -78,6 +99,5 @@ function isIPhone14OrHigher() {
78
99
  const { outerHeight, outerWidth, innerHeight, innerWidth } = window;
79
100
  return IPHONE_14_PLUS_DIMENSIONS.some((dims) => dims.outerHeight === outerHeight && dims.outerWidth === outerWidth || dims.innerHeight === innerHeight && dims.innerWidth === innerWidth);
80
101
  }
81
-
82
102
  //#endregion
83
- export { isIPhone14OrHigher as a, isIPad as i, isDesktop as n, isSafari as o, isIOS as r, isAndroid as t };
103
+ export { isIPad as a, isTabletWithoutAndroid as c, isIOS as i, isAndroidWebView as n, isIPhone14OrHigher as o, isDesktop as r, isSafari as s, isAndroid as t };
@@ -0,0 +1,355 @@
1
+ import { n as createStatsWindow } from "./avatarStats-CdUOb3VD.esm.js";
2
+ //#region ../infra/src/avatar/framePacing.ts
3
+ /**
4
+ * Creates a tolerance-based fps cap. The first frame is always accepted.
5
+ *
6
+ * The default is the literal `8` (= FRAME_PACER_TOLERANCE_MS), NOT the
7
+ * constant: this function is serialized into worker blobs via `toString()`,
8
+ * where a module-scope reference in a default parameter would ReferenceError
9
+ * at runtime on the first one-arg call — and no serialization test evaluates
10
+ * defaults, so it would ship silently.
11
+ */
12
+ function createFramePacer(maxFps, toleranceMs = 8) {
13
+ const intervalMs = 1e3 / Math.max(maxFps, 1);
14
+ const minGapMs = Math.max(intervalMs - toleranceMs, 0);
15
+ let lastAcceptedAt = Number.NEGATIVE_INFINITY;
16
+ let dropped = 0;
17
+ return {
18
+ shouldRender(nowMs) {
19
+ if (nowMs - lastAcceptedAt >= minGapMs) {
20
+ lastAcceptedAt = nowMs;
21
+ return true;
22
+ }
23
+ dropped += 1;
24
+ return false;
25
+ },
26
+ get droppedCount() {
27
+ return dropped;
28
+ }
29
+ };
30
+ }
31
+ //#endregion
32
+ //#region ../infra/src/avatar/privacy-lens/privacyLensGlCore.ts
33
+ /**
34
+ * Builds the lens GL pipeline on `canvas`. Throws if WebGL is unavailable or
35
+ * the program fails to compile/link (callers fall back / surface the error).
36
+ * SELF-CONTAINED — see the module doc before editing.
37
+ */
38
+ function createPrivacyLensGl(canvas, vertSrc, fragSrc, renderSize) {
39
+ canvas.width = renderSize;
40
+ canvas.height = renderSize;
41
+ const gl = canvas.getContext("webgl", {
42
+ alpha: false,
43
+ antialias: false,
44
+ premultipliedAlpha: false,
45
+ preserveDrawingBuffer: false
46
+ }) ?? canvas.getContext("experimental-webgl");
47
+ if (!gl) throw new Error("privacy-lens: WebGL is not available");
48
+ const compile = (type, src) => {
49
+ const shader = gl.createShader(type);
50
+ if (!shader) throw new Error("privacy-lens: createShader failed");
51
+ gl.shaderSource(shader, src);
52
+ gl.compileShader(shader);
53
+ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
54
+ const log = gl.getShaderInfoLog(shader);
55
+ gl.deleteShader(shader);
56
+ throw new Error(`privacy-lens: shader compile failed: ${log}`);
57
+ }
58
+ return shader;
59
+ };
60
+ const vs = compile(gl.VERTEX_SHADER, vertSrc);
61
+ const fs = compile(gl.FRAGMENT_SHADER, fragSrc);
62
+ const program = gl.createProgram();
63
+ if (!program) throw new Error("privacy-lens: createProgram failed");
64
+ gl.attachShader(program, vs);
65
+ gl.attachShader(program, fs);
66
+ gl.linkProgram(program);
67
+ gl.deleteShader(vs);
68
+ gl.deleteShader(fs);
69
+ if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
70
+ const log = gl.getProgramInfoLog(program);
71
+ gl.deleteProgram(program);
72
+ throw new Error(`privacy-lens: program link failed: ${log}`);
73
+ }
74
+ gl.useProgram(program);
75
+ const quad = gl.createBuffer();
76
+ gl.bindBuffer(gl.ARRAY_BUFFER, quad);
77
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
78
+ -1,
79
+ -1,
80
+ 1,
81
+ -1,
82
+ -1,
83
+ 1,
84
+ 1,
85
+ 1
86
+ ]), gl.STATIC_DRAW);
87
+ const aPos = gl.getAttribLocation(program, "aPos");
88
+ gl.enableVertexAttribArray(aPos);
89
+ gl.vertexAttribPointer(aPos, 2, gl.FLOAT, false, 0, 0);
90
+ const videoTex = gl.createTexture();
91
+ if (!videoTex) throw new Error("privacy-lens: createTexture failed");
92
+ gl.bindTexture(gl.TEXTURE_2D, videoTex);
93
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
94
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
95
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
96
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
97
+ const uniformNames = [
98
+ "uVideo",
99
+ "uRes",
100
+ "uVideoRes",
101
+ "uTime",
102
+ "uFrost",
103
+ "uSandblast",
104
+ "uGrainSize",
105
+ "uWarmth",
106
+ "uBright",
107
+ "uShadow",
108
+ "uSun",
109
+ "uSunSpeed"
110
+ ];
111
+ const uniforms = {};
112
+ for (let i = 0; i < uniformNames.length; i += 1) uniforms[uniformNames[i]] = gl.getUniformLocation(program, uniformNames[i]);
113
+ gl.uniform1i(uniforms.uVideo, 0);
114
+ if (uniforms.uRes) gl.uniform2f(uniforms.uRes, renderSize, renderSize);
115
+ gl.viewport(0, 0, renderSize, renderSize);
116
+ gl.clearColor(.88, .86, .83, 1);
117
+ let texWidth = 0;
118
+ let texHeight = 0;
119
+ let disposed = false;
120
+ const setF = (name, value) => {
121
+ const loc = uniforms[name];
122
+ if (loc) gl.uniform1f(loc, value);
123
+ };
124
+ return {
125
+ clear() {
126
+ if (disposed) return;
127
+ gl.clear(gl.COLOR_BUFFER_BIT);
128
+ },
129
+ render(source, srcWidth, srcHeight, timeSec, params, measure) {
130
+ if (disposed) return null;
131
+ const t0 = measure ? performance.now() : 0;
132
+ gl.activeTexture(gl.TEXTURE0);
133
+ gl.bindTexture(gl.TEXTURE_2D, videoTex);
134
+ if (srcWidth !== texWidth || srcHeight !== texHeight) {
135
+ texWidth = srcWidth;
136
+ texHeight = srcHeight;
137
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, texWidth, texHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
138
+ if (uniforms.uVideoRes) gl.uniform2f(uniforms.uVideoRes, texWidth, texHeight);
139
+ }
140
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, source);
141
+ const t1 = measure ? performance.now() : 0;
142
+ setF("uTime", timeSec);
143
+ setF("uFrost", params.frost);
144
+ setF("uSandblast", params.sandblast);
145
+ setF("uGrainSize", params.grainSize);
146
+ setF("uWarmth", params.warmth);
147
+ setF("uBright", params.brightness);
148
+ setF("uShadow", params.shadowLift);
149
+ setF("uSun", params.sun);
150
+ setF("uSunSpeed", params.sunSpeed);
151
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
152
+ if (!measure) return null;
153
+ const t2 = performance.now();
154
+ return {
155
+ uploadMs: t1 - t0,
156
+ drawMs: t2 - t1
157
+ };
158
+ },
159
+ dispose() {
160
+ if (disposed) return;
161
+ disposed = true;
162
+ gl.deleteProgram(program);
163
+ gl.deleteBuffer(quad);
164
+ gl.deleteTexture(videoTex);
165
+ gl.getExtension("WEBGL_lose_context")?.loseContext();
166
+ }
167
+ };
168
+ }
169
+ //#endregion
170
+ //#region ../infra/src/avatar/privacy-lens/privacyLensWorker.ts
171
+ /**
172
+ * Worker mode for the privacy lens (ENG-49806 Plan B).
173
+ *
174
+ * Under a saturated main thread (the synchronous WASM detection pipeline can
175
+ * occupy it back-to-back on throttled/low-tier devices) a main-thread lens is
176
+ * starved to single-digit fps regardless of how cheap its frame is — measured
177
+ * at 1.6-3 fps with 0ms upload/draw. The fix is to take the main thread out of
178
+ * the frame path entirely: camera track → `MediaStreamTrackProcessor` →
179
+ * `VideoFrame` stream → worker → OffscreenCanvas WebGL. The main thread only
180
+ * bridges dev-tuning params and stats at 4 Hz.
181
+ *
182
+ * Support: Chromium 94+ (Chrome/Edge/Android WebView/Samsung Internet) — the
183
+ * low-tier Android target segment. Safari/Firefox and strict-CSP hosts that
184
+ * block blob workers fail the probe or the Worker constructor and fall back to
185
+ * the main-thread path automatically (`PrivacyLensProvider`).
186
+ *
187
+ * Packaging: the worker script is assembled AT RUNTIME from
188
+ * `Function.prototype.toString()` of the shared, self-contained functions
189
+ * (`createPrivacyLensGl`, `createFramePacer`, `createStatsWindow`,
190
+ * `privacyLensWorkerMain`) plus JSON-injected shader sources and stats/pacer
191
+ * constants, and loaded via a Blob URL. No separate worker chunk to ship —
192
+ * bundler-agnostic for npm and CDN consumers alike. The serialized functions
193
+ * must therefore never close over module-level values.
194
+ */
195
+ /**
196
+ * Whether the worker path is available in this environment. All three probes
197
+ * must hold; anything missing (Safari's worker-only MSTP shape, Firefox, old
198
+ * WebView) routes to the main-thread fallback.
199
+ */
200
+ function canUsePrivacyLensWorker() {
201
+ const g = globalThis;
202
+ if (typeof g.MediaStreamTrackProcessor !== "function" || typeof g.Worker !== "function" || typeof g.HTMLCanvasElement !== "function") return false;
203
+ return "transferControlToOffscreen" in g.HTMLCanvasElement.prototype;
204
+ }
205
+ /** Constructs a MediaStreamTrackProcessor (Chromium main-thread shape). */
206
+ function createTrackProcessor(track) {
207
+ const Ctor = globalThis.MediaStreamTrackProcessor;
208
+ if (!Ctor) throw new Error("MediaStreamTrackProcessor unavailable");
209
+ return new Ctor({ track });
210
+ }
211
+ /**
212
+ * The worker's entire logic. SELF-CONTAINED (serialized via toString into the
213
+ * blob): everything it needs arrives via `deps` / messages; no module refs.
214
+ * Frame loop: sequential read → pace → render → close. MSTP buffers at most
215
+ * one frame internally, so reads always yield the freshest frame and closing
216
+ * every frame promptly keeps the camera's frame pool healthy — an unclosed
217
+ * VideoFrame can stall the CAPTURE pipeline, which the lens must never do.
218
+ */
219
+ function privacyLensWorkerMain(scope, deps) {
220
+ let gl = null;
221
+ let pacer = null;
222
+ let reader = null;
223
+ let params = null;
224
+ let statsEnabled = false;
225
+ let stopped = false;
226
+ let stats = null;
227
+ const pump = async () => {
228
+ const startTime = performance.now();
229
+ while (!stopped && reader && gl && pacer && params) {
230
+ let result;
231
+ try {
232
+ result = await reader.read();
233
+ } catch {
234
+ break;
235
+ }
236
+ if (result.done) break;
237
+ const frame = result.value;
238
+ try {
239
+ const now = performance.now();
240
+ if (!pacer.shouldRender(now)) {
241
+ if (statsEnabled) stats?.noteDropped();
242
+ continue;
243
+ }
244
+ const timing = gl.render(frame, frame.displayWidth, frame.displayHeight, (now - startTime) / 1e3, params, statsEnabled);
245
+ if (statsEnabled) stats?.noteRendered(now, timing?.uploadMs, timing?.drawMs);
246
+ } catch {} finally {
247
+ frame.close();
248
+ }
249
+ }
250
+ };
251
+ scope.onmessage = (event) => {
252
+ const msg = event.data;
253
+ if (msg.type === "start") {
254
+ try {
255
+ gl = deps.createGl(msg.canvas, deps.vertSrc, deps.fragSrc, deps.renderSize);
256
+ gl.clear();
257
+ } catch (error) {
258
+ scope.postMessage({
259
+ type: "fatal",
260
+ message: String(error)
261
+ });
262
+ return;
263
+ }
264
+ params = msg.params;
265
+ statsEnabled = msg.statsEnabled;
266
+ stats = deps.createStats({
267
+ variant: "privacy-lens",
268
+ mode: "worker",
269
+ publishIntervalMs: deps.publishIntervalMs,
270
+ gapWindow: deps.gapWindow,
271
+ publish: (snapshot) => scope.postMessage({
272
+ type: "stats",
273
+ snapshot
274
+ })
275
+ });
276
+ pacer = deps.createPacer(msg.maxFps, deps.frameToleranceMs);
277
+ reader = msg.readable.getReader();
278
+ scope.postMessage({ type: "started" });
279
+ pump();
280
+ } else if (msg.type === "params") params = msg.params;
281
+ else if (msg.type === "statsEnabled") statsEnabled = msg.value;
282
+ else if (msg.type === "stop") {
283
+ stopped = true;
284
+ try {
285
+ reader?.cancel();
286
+ } catch {}
287
+ gl?.dispose();
288
+ gl = null;
289
+ scope.postMessage({ type: "stopped" });
290
+ }
291
+ };
292
+ }
293
+ /**
294
+ * Dev/build transforms that inject module-level references into function bodies.
295
+ * These pass `new Function(src)` (syntactically valid) but throw a
296
+ * `ReferenceError` at worker boot because the injected identifier
297
+ * (`$RefreshSig$`, `cov_xxx()`, …) doesn't exist in the worker scope — silently
298
+ * downgrading everyone to the slow main-thread path via the fatal→fallback net.
299
+ * The vite config excludes `packages/infra` from prefresh for this reason; this
300
+ * list is the runtime backstop for any other instrumenter (coverage, SSR, a
301
+ * consumer's bundler) that the config can't reach.
302
+ */
303
+ const WORKER_SOURCE_SENTINELS = [
304
+ {
305
+ name: "prefresh / react-refresh",
306
+ pattern: /\$Refresh(Sig|Reg)\$/
307
+ },
308
+ {
309
+ name: "istanbul coverage",
310
+ pattern: /\bcov_[0-9a-zA-Z]+\(/
311
+ },
312
+ {
313
+ name: "vite SSR transform",
314
+ pattern: /__vite_ssr_/
315
+ }
316
+ ];
317
+ /**
318
+ * Returns the name of the instrumenter that corrupted the serialized worker
319
+ * source, or null if the source is clean. Callers log loudly and fall back to
320
+ * the main-thread lens rather than booting a worker that will `ReferenceError`.
321
+ */
322
+ function detectWorkerSourceInstrumentation(source) {
323
+ for (const sentinel of WORKER_SOURCE_SENTINELS) if (sentinel.pattern.test(source)) return sentinel.name;
324
+ return null;
325
+ }
326
+ /**
327
+ * Assembles the worker script from the serialized shared functions + injected
328
+ * shader sources and stats/pacer constants. Everything referenced must be
329
+ * self-contained (see module doc); the shaders and the numeric constants
330
+ * (`PUBLISH_INTERVAL_MS`, `GAP_WINDOW`, `FRAME_PACER_TOLERANCE_MS`) are injected
331
+ * as literals so the worker never depends on this module's scope.
332
+ */
333
+ function buildPrivacyLensWorkerSource(options) {
334
+ if (!Number.isFinite(options.renderSize)) throw new Error(`privacy-lens: renderSize must be finite, got ${String(options.renderSize)}`);
335
+ return [
336
+ "\"use strict\";",
337
+ `const createGl = ${createPrivacyLensGl.toString()};`,
338
+ `const createPacer = ${createFramePacer.toString()};`,
339
+ `const createStats = ${createStatsWindow.toString()};`,
340
+ `const workerMain = ${privacyLensWorkerMain.toString()};`,
341
+ `workerMain(self, {
342
+ createGl,
343
+ createPacer,
344
+ createStats,
345
+ vertSrc: ${JSON.stringify(options.vertSrc)},
346
+ fragSrc: ${JSON.stringify(options.fragSrc)},
347
+ renderSize: ${JSON.stringify(options.renderSize)},
348
+ publishIntervalMs: ${JSON.stringify(500)},
349
+ gapWindow: ${JSON.stringify(128)},
350
+ frameToleranceMs: ${JSON.stringify(8)},
351
+ });`
352
+ ].join("\n");
353
+ }
354
+ //#endregion
355
+ export { createPrivacyLensGl as a, detectWorkerSourceInstrumentation as i, canUsePrivacyLensWorker as n, createFramePacer as o, createTrackProcessor as r, buildPrivacyLensWorkerSource as t };
@@ -1,10 +1,8 @@
1
- import "./StateMachine-D5WO6lHS.js";
2
- import { t as Manager } from "./Manager-goNPc_h_.js";
3
- import "./Actor-BwgmOPkb.js";
4
- import { c as ConsentKey, f as QE_CONSENT_KEYS, g as getDefaultConsentChecks, i as electronicSignatureMachine, l as ElectronicSignatureConfig, m as areAllConsented, n as ElectronicSignatureState, s as ConsentChecks, u as ElectronicSignatureDocument } from "./index-36QX_21w.js";
5
-
1
+ import { t as Manager } from "./Manager-CQQ99QOI.js";
2
+ import { _ as getDefaultConsentChecks, a as ElectronicSignatureConfig, d as QE_CONSENT_KEYS, h as areAllConsented, i as ConsentKey, r as ConsentChecks, s as ElectronicSignatureDocument } from "./types-DVmXIdzW.js";
3
+ import { n as ElectronicSignatureState, o as electronicSignatureMachine } from "./electronicSignatureManager-CcUXQZS7.js";
4
+ import "./electronic-signature.js";
6
5
  //#region src/modules/qe-signature/index.d.ts
7
-
8
6
  type QeSignatureConfig = Omit<ElectronicSignatureConfig, 'variant'>;
9
7
  declare function createQeSignatureManager(options: {
10
8
  config: QeSignatureConfig;
@@ -1,11 +1,10 @@
1
- import "./api-DsbUi7TO.esm.js";
2
- import "./events-1wxZ97yf.esm.js";
3
- import "./endpoints-CwrFQfW7.esm.js";
4
- import "./xstate.esm-nY3M5UYm.esm.js";
5
- import "./urlUtils-CpiYwn7w.esm.js";
6
- import "./externalFetch-hvmz_npP.esm.js";
7
- import "./apiError-DkOXfFBu.esm.js";
8
- import { a as areAllConsented, i as QE_CONSENT_KEYS, n as electronicSignatureMachine, s as getDefaultConsentChecks } from "./electronicSignatureManager-DESRgObX.esm.js";
9
- import { t as createQeSignatureManager } from "./qe-signature-BnWIpR-O.esm.js";
10
-
11
- export { QE_CONSENT_KEYS, areAllConsented, createQeSignatureManager, getDefaultConsentChecks, electronicSignatureMachine as qeSignatureMachine };
1
+ import { a as QE_CONSENT_KEYS, c as getDefaultConsentChecks, o as areAllConsented, r as electronicSignatureMachine, t as createElectronicSignatureManager } from "./electronicSignatureManager-DRYlHPjT.esm.js";
2
+ //#region src/modules/qe-signature/index.ts
3
+ function createQeSignatureManager(options) {
4
+ return createElectronicSignatureManager({ config: {
5
+ ...options.config,
6
+ variant: "qe"
7
+ } });
8
+ }
9
+ //#endregion
10
+ export { QE_CONSENT_KEYS, areAllConsented, createQeSignatureManager, getDefaultConsentChecks, electronicSignatureMachine as qeSignatureMachine };