@incodetech/core 2.1.0-rc.1 → 2.1.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/3dAvatarProvider-ChciZmjE.esm.js +28214 -0
  2. package/dist/{BrowserStorageProvider-BpJM-gIl.esm.js → BrowserStorageProvider-CrrN540a.esm.js} +1 -8
  3. package/dist/BrowserVisibilityObserverProvider-rim9Jrz-.esm.js +25 -0
  4. package/dist/Face2DProvider-BeLlYBbB.esm.js +824 -0
  5. package/dist/FaceDetectionProvider-B78455D4.d.ts +119 -0
  6. package/dist/IVisibilityObserverCapability-BbWjgpiF.d.ts +12 -0
  7. package/dist/IWasmUtilCapability-d2XvzaCk.d.ts +145 -0
  8. package/dist/IpifyProvider-BRW14_uo.esm.js +51 -0
  9. package/dist/{OpenViduRecordingProvider-O4GjBseO.esm.js → OpenViduRecordingProvider-B_0GKkzc.esm.js} +1 -1
  10. package/dist/PrivacyLensProvider-hDzaDzZ6.esm.js +339 -0
  11. package/dist/{StreamCanvasCapture-ImiDQdVA.esm.js → StreamCanvasCapture-Bz17q4FP.esm.js} +1 -1
  12. package/dist/StreamCanvasCapture-DS1TOoiH.d.ts +42 -0
  13. package/dist/{WasmUtilProvider-BKWm8rSA.esm.js → WasmUtilProvider-ADG54T6M.esm.js} +26 -2
  14. package/dist/{addressSearch-DvmWXKZg.esm.js → addressSearch-DJyNTg5S.esm.js} +4 -4
  15. package/dist/{ae-signature-BFZta3TZ.esm.js → ae-signature-DlElqFrZ.esm.js} +1 -1
  16. package/dist/ae-signature.d.ts +4 -3
  17. package/dist/ae-signature.esm.js +10 -7
  18. package/dist/antifraud.d.ts +4 -3
  19. package/dist/antifraud.esm.js +7 -6
  20. package/dist/antifraudManager-BKdQoMFf.esm.js +84 -0
  21. package/dist/{antifraudManager-CznnhyvD.d.ts → antifraudManager-DpIvbrZP.d.ts} +2 -2
  22. package/dist/{antifraudStateMachine-Ccrb-Jxc.esm.js → antifraudStateMachine-C0NGnP9W.esm.js} +3 -3
  23. package/dist/{api-CESGtpbH.esm.js → api-DsbUi7TO.esm.js} +21 -2
  24. package/dist/authentication.d.ts +19 -13
  25. package/dist/authentication.esm.js +33 -27
  26. package/dist/{authenticationManager-CaiQbp-q.d.ts → authenticationManager-CdPbNS2H.d.ts} +13 -3
  27. package/dist/{authenticationManager-BlR6mSaG.esm.js → authenticationManager-Dtl1vcET.esm.js} +17 -8
  28. package/dist/{authenticationStateMachine-DkcGUMw5.esm.js → authenticationStateMachine-D-hOlg8p.esm.js} +20 -23
  29. package/dist/avatar.d.ts +3 -0
  30. package/dist/avatar.esm.js +3 -0
  31. package/dist/{backCameraStream-D7Wo4Nbx.esm.js → backCameraStream-ZyqrFyjO.esm.js} +3 -3
  32. package/dist/browser-DlFgHpoC-qLKs75Qp.esm.js +1425 -0
  33. package/dist/{browserSimulation-B1dWiXp7.esm.js → browserSimulation-TsSoavQv.esm.js} +153 -1216
  34. package/dist/camera-DUkgmYMo.esm.js +79 -0
  35. package/dist/camera.d.ts +7 -1
  36. package/dist/camera.esm.js +4 -4
  37. package/dist/{StreamCanvasCapture-yyl20qd9.d.ts → canvas-CJUmoXSD.d.ts} +1 -41
  38. package/dist/certificate-issuance.d.ts +312 -0
  39. package/dist/certificate-issuance.esm.js +74 -0
  40. package/dist/certificateIssuanceStateMachine-C07m7qtP.esm.js +127 -0
  41. package/dist/clientLifecycle-Ct7h9uxx.esm.js +534 -0
  42. package/dist/consent.d.ts +4 -3
  43. package/dist/consent.esm.js +7 -6
  44. package/dist/{consentManager-BYo9Nu1r.esm.js → consentManager-BtnPZUW4.esm.js} +30 -5
  45. package/dist/{consentManager-Cg5Sk2tv.d.ts → consentManager-DufVo9D9.d.ts} +55 -55
  46. package/dist/{consentStateMachine-BG3yL8aC.esm.js → consentStateMachine-DO2JqoZW.esm.js} +3 -3
  47. package/dist/cpf-ocr.d.ts +4 -3
  48. package/dist/cpf-ocr.esm.js +7 -6
  49. package/dist/{cpfOcrManager-sSKegxox.esm.js → cpfOcrManager-C4rLgKsu.esm.js} +6 -5
  50. package/dist/{cpfOcrManager-Dg1s_TY5.d.ts → cpfOcrManager-DqZZ94Gt.d.ts} +19 -19
  51. package/dist/createFaceAvatar-B8pFpy6o.d.ts +401 -0
  52. package/dist/createFaceAvatar-BOHDKQRq.esm.js +46 -0
  53. package/dist/cross-document-data-match.d.ts +2 -1
  54. package/dist/cross-document-data-match.esm.js +6 -5
  55. package/dist/curp-validation.d.ts +10 -7
  56. package/dist/curp-validation.esm.js +7 -6
  57. package/dist/{curpValidationManager-CFem6zP9.esm.js → curpValidationManager-BafobPXC.esm.js} +52 -5
  58. package/dist/{curpValidationManager-RttixpIc.d.ts → curpValidationManager-Co6LZAHT.d.ts} +4 -3
  59. package/dist/{curpValidationStateMachine-B7V_qp66.esm.js → curpValidationStateMachine-DXTPK6vI.esm.js} +3 -3
  60. package/dist/custom-fields.d.ts +4 -2
  61. package/dist/custom-fields.esm.js +49 -6
  62. package/dist/custom-watchlist.d.ts +2 -1
  63. package/dist/custom-watchlist.esm.js +27 -6
  64. package/dist/{customWatchlistStateMachine-HmFybXLX.esm.js → customWatchlistStateMachine-B4G3Chkx.esm.js} +3 -3
  65. package/dist/{deepsightLoader-8tnddNx-.esm.js → deepsightLoader-DHSVD776.esm.js} +14 -13
  66. package/dist/{deepsightService-CrHmvx8X.esm.js → deepsightService-CDahSjGP.esm.js} +9 -38
  67. package/dist/deepsightService-CMB9XjES.d.ts +69 -0
  68. package/dist/device.d.ts +9 -1
  69. package/dist/device.esm.js +5 -5
  70. package/dist/document-capture.d.ts +178 -177
  71. package/dist/document-capture.esm.js +78 -14
  72. package/dist/document-upload.d.ts +51 -50
  73. package/dist/document-upload.esm.js +10 -9
  74. package/dist/{documentCaptureStateMachine-CUTUzUw_.esm.js → documentCaptureStateMachine-DSOX2epf.esm.js} +7 -7
  75. package/dist/dynamic-forms.d.ts +4 -192
  76. package/dist/dynamic-forms.esm.js +8 -410
  77. package/dist/dynamicFormsManager-BOefZbyF.esm.js +168 -0
  78. package/dist/dynamicFormsManager-CUYLOj9g.d.ts +239 -0
  79. package/dist/dynamicFormsStateMachine-BXHcaocI.esm.js +284 -0
  80. package/dist/ekyb.d.ts +10 -6
  81. package/dist/ekyb.esm.js +62 -17
  82. package/dist/{ekybStateMachine-klc-AImJ.esm.js → ekybStateMachine-CCSeqjCt.esm.js} +5 -5
  83. package/dist/ekyc.d.ts +5 -3
  84. package/dist/ekyc.esm.js +55 -9
  85. package/dist/{ekycStateMachine-CXbpaJJn.esm.js → ekycStateMachine-DkLVTOyA.esm.js} +5 -5
  86. package/dist/electronic-signature.d.ts +4 -3
  87. package/dist/electronic-signature.esm.js +9 -6
  88. package/dist/{electronicSignatureManager-BaECdJ1u.esm.js → electronicSignatureManager-DjzUzqZj.esm.js} +135 -92
  89. package/dist/email.d.ts +5 -4
  90. package/dist/email.esm.js +9 -8
  91. package/dist/{emailManager--D5G3ChB.esm.js → emailManager-B_XzEsXH.esm.js} +47 -6
  92. package/dist/{emailManager-lAzDoQOs.d.ts → emailManager-fHASH6uo.d.ts} +4 -3
  93. package/dist/{emailStateMachine-CxTOMAjC.esm.js → emailStateMachine-fqJ42b19.esm.js} +5 -5
  94. package/dist/{endpoints-BeTK0Mlt.esm.js → endpoints-BzMJFAPV.esm.js} +15 -0
  95. package/dist/{events-Dvvriq9l.esm.js → events-CqGY1yMq.esm.js} +87 -206
  96. package/dist/events.d.ts +23 -16
  97. package/dist/events.esm.js +3 -2
  98. package/dist/extensibility.d.ts +37 -27
  99. package/dist/extensibility.esm.js +74 -57
  100. package/dist/externalFetch-CyhBfD-n.esm.js +22 -0
  101. package/dist/face-match.d.ts +2 -2
  102. package/dist/face-match.esm.js +6 -5
  103. package/dist/{faceCaptureManagerFactory-ej2j1LMr.esm.js → faceCaptureManagerFactory-2brKTzMb.esm.js} +115 -25
  104. package/dist/faceCaptureManagerFactory-CGKbf7zt.d.ts +400 -0
  105. package/dist/{faceCaptureSetup-B9t6bYze.esm.js → faceCaptureSetup-CDUVU1nl.esm.js} +97 -13
  106. package/dist/{faceMatchStateMachine-DeXXzSuz.esm.js → faceMatchStateMachine-DUeUjEPx.esm.js} +3 -3
  107. package/dist/field-comparison.d.ts +4 -3
  108. package/dist/field-comparison.esm.js +6 -5
  109. package/dist/{fieldComparisonManager-COGI2ARD.esm.js → fieldComparisonManager-B9W0a9A5.esm.js} +5 -4
  110. package/dist/{fieldComparisonManager-Bu5TaSr3.d.ts → fieldComparisonManager-DdLqDeB2.d.ts} +2 -2
  111. package/dist/fiscal-qr.d.ts +5 -3
  112. package/dist/fiscal-qr.esm.js +13 -12
  113. package/dist/flow-events.d.ts +8 -6
  114. package/dist/flow.d.ts +34 -16
  115. package/dist/flow.esm.js +53 -30
  116. package/dist/flowCompletionService-BIqSTZcd.d.ts +28 -0
  117. package/dist/flowCompletionService-qEqh_g14.esm.js +42 -0
  118. package/dist/{flowServices-ChgTNggJ.esm.js → flowServices-C4piblgx.esm.js} +24 -9
  119. package/dist/geolocation.d.ts +4 -126
  120. package/dist/geolocation.esm.js +8 -87
  121. package/dist/geolocationManager-BP2Do9O-.esm.js +123 -0
  122. package/dist/geolocationManager-Cs50eRlC.d.ts +156 -0
  123. package/dist/{geolocationStateMachine-Dvh7X0wF.esm.js → geolocationStateMachine-BYfOOOG0.esm.js} +4 -4
  124. package/dist/{getDeviceClass-C8Do2qYu.esm.js → getDeviceClass-DGGzzfqm.esm.js} +1 -1
  125. package/dist/getDeviceData-TrKM8NPh.esm.js +101 -0
  126. package/dist/government-validation.d.ts +4 -3
  127. package/dist/government-validation.esm.js +43 -8
  128. package/dist/{governmentValidationStateMachine-DcJ-BfsC.esm.js → governmentValidationStateMachine-CwoPPO8b.esm.js} +5 -5
  129. package/dist/home.d.ts +18 -15
  130. package/dist/home.esm.js +5 -4
  131. package/dist/http.d.ts +1 -0
  132. package/dist/http.esm.js +2 -2
  133. package/dist/id-ocr.d.ts +4 -625
  134. package/dist/id-ocr.esm.js +8 -84
  135. package/dist/id-verification.d.ts +28 -27
  136. package/dist/id-verification.esm.js +6 -5
  137. package/dist/id.d.ts +24 -13
  138. package/dist/id.esm.js +48 -33
  139. package/dist/idCaptureDefaults-DNJON8Xo.esm.js +188 -0
  140. package/dist/{idCaptureManager-ChCNmgBj.d.ts → idCaptureManager-BVdvfJys.d.ts} +47 -12
  141. package/dist/{idCaptureManager-D3pwWutw.esm.js → idCaptureManager-Bo9DCQSU.esm.js} +100 -15
  142. package/dist/{idCaptureStateMachine-B3AiDIsT.esm.js → idCaptureStateMachine-BeDidMLU.esm.js} +525 -439
  143. package/dist/idOcrManager-BkRDrpZu.esm.js +92 -0
  144. package/dist/idOcrManager-CJzrmM91.d.ts +641 -0
  145. package/dist/{idOcrStateMachine-CDQ5d_VM.esm.js → idOcrStateMachine-DRZc4FBl.esm.js} +5 -5
  146. package/dist/{idVerificationStateMachine-kRxwImzO.esm.js → idVerificationStateMachine-oqiERKpg.esm.js} +3 -3
  147. package/dist/identity-reuse.d.ts +4 -3
  148. package/dist/identity-reuse.esm.js +7 -6
  149. package/dist/{identityReuseManager-C6n_97dw.esm.js → identityReuseManager-Bu62LToE.esm.js} +4 -3
  150. package/dist/{identityReuseManager-Cww-NDtd.d.ts → identityReuseManager-TWKbXuvY.d.ts} +33 -33
  151. package/dist/{identityReuseStateMachine-BfE5YiEr.esm.js → identityReuseStateMachine-BmONeF6B.esm.js} +3 -3
  152. package/dist/{index-B5hPA0Bg.d.ts → index-DtUlD-bz.d.ts} +2 -2
  153. package/dist/{index-B9NysVDB.d.ts → index-Icld-cKW.d.ts} +175 -295
  154. package/dist/index-XTtxaahe.d.ts +93 -0
  155. package/dist/index.d.ts +3 -2
  156. package/dist/index.esm.js +16 -12
  157. package/dist/{invokeOnCaptureCallback-ygByVdnn.esm.js → invokeOnCaptureCallback-v_PV_IJz.esm.js} +1 -1
  158. package/dist/{lib-BY67lgbq.esm.js → lib-B050WTth.esm.js} +1 -1
  159. package/dist/mandatory-consent.d.ts +10 -7
  160. package/dist/mandatory-consent.esm.js +7 -6
  161. package/dist/{mandatoryConsentManager-Dq6WiOZh.d.ts → mandatoryConsentManager-Bmdjo14S.d.ts} +50 -50
  162. package/dist/{mandatoryConsentManager-H6D18cZB.esm.js → mandatoryConsentManager-CQ3jirlZ.esm.js} +4 -3
  163. package/dist/{mandatoryConsentStateMachine-DtQNW1ji.esm.js → mandatoryConsentStateMachine-DkJJLHqC.esm.js} +3 -3
  164. package/dist/mediaRecorderOptions-C3NAkVgK.esm.js +42 -0
  165. package/dist/mediapipeShared-CRAKVElv.esm.js +67 -0
  166. package/dist/{recordingService-yRw7hfzU.esm.js → onDeviceFaceResults-DVBggeq8.esm.js} +71 -389
  167. package/dist/{openviduLazy-Dh14JNJc.esm.js → openviduLazy-BTOIauGP.esm.js} +2 -2
  168. package/dist/openviduLazy-Dov8oKfL.esm.js +3 -0
  169. package/dist/{permissionGuards-D0wGddy7.esm.js → permissionGuards-BR2oN573.esm.js} +1 -1
  170. package/dist/{permissionServices-Doec4X5L.esm.js → permissionServices-BJhGL13R.esm.js} +7 -4
  171. package/dist/personhood.d.ts +534 -0
  172. package/dist/personhood.esm.js +1494 -0
  173. package/dist/phone.d.ts +5 -4
  174. package/dist/phone.esm.js +9 -8
  175. package/dist/{phoneManager-fPmIBYQK.d.ts → phoneManager-BOTcjXgs.d.ts} +4 -3
  176. package/dist/{phoneManager-BmF-0Ez4.esm.js → phoneManager-BWlxqbyD.esm.js} +48 -6
  177. package/dist/{phoneStateMachine-BiV0yoEx.esm.js → phoneStateMachine-B_V9nODs.esm.js} +5 -5
  178. package/dist/{qe-signature-CUYPcHVo.esm.js → qe-signature-BhFnI9pT.esm.js} +1 -1
  179. package/dist/qe-signature.d.ts +4 -3
  180. package/dist/qe-signature.esm.js +10 -7
  181. package/dist/recordingService-m_1xCthr.esm.js +347 -0
  182. package/dist/redirect-to-mobile.d.ts +4 -3
  183. package/dist/redirect-to-mobile.esm.js +9 -7
  184. package/dist/{redirectToMobileManager-Dy3t7o0C.esm.js → redirectToMobileManager-BaAo9rgi.esm.js} +5 -4
  185. package/dist/{redirectToMobileManager-BNe3IzC_.d.ts → redirectToMobileManager-Br0KZK1G.d.ts} +2 -2
  186. package/dist/{redirectToMobileStateMachine-DyAdRxfP.esm.js → redirectToMobileStateMachine-DoAnf2ql.esm.js} +16 -28
  187. package/dist/{runChildModule-CuoHZ1cx.esm.js → runChildModule-0nQfjVVo.esm.js} +14 -24
  188. package/dist/selfie.d.ts +27 -14
  189. package/dist/selfie.esm.js +43 -30
  190. package/dist/{selfieManager-BNuTIGAz.esm.js → selfieManager-D_ZFERsE.esm.js} +17 -8
  191. package/dist/{selfieManager-C2y_t6DG.d.ts → selfieManager-R0Jw5sjb.d.ts} +13 -3
  192. package/dist/{selfieStateMachine-Bv99bZJE.esm.js → selfieStateMachine-CIgeeiN9.esm.js} +4 -4
  193. package/dist/{session-DoVb-OcB.esm.js → session-9jIfKFCc.esm.js} +3 -3
  194. package/dist/session.d.ts +11 -8
  195. package/dist/session.esm.js +16 -12
  196. package/dist/{sessionInitializer-DRB-hgbV.esm.js → sessionInitializer-C_TYIgyk.esm.js} +16 -109
  197. package/dist/{setup-BwCluiw3.d.ts → setup-CpRnXxn8.d.ts} +61 -2
  198. package/dist/setup-DHc6OaHm.esm.js +562 -0
  199. package/dist/signature.d.ts +4 -2
  200. package/dist/signature.esm.js +49 -6
  201. package/dist/{signatureStateMachine-C5qqYLRz.esm.js → signatureStateMachine-DtoiPzys.esm.js} +21 -39
  202. package/dist/{stats-BMNUG1AU.esm.js → stats-CYcScXcO.esm.js} +2 -2
  203. package/dist/stats.esm.js +3 -3
  204. package/dist/thumbmarkAdapter-fHBUDlAP.esm.js +1194 -0
  205. package/dist/tri-BG1iJsr4.esm.js +399 -0
  206. package/dist/tri.d.ts +2 -0
  207. package/dist/tri.esm-DUC01NgO.esm.js +2593 -0
  208. package/dist/tri.esm.js +4 -0
  209. package/dist/trust-graph.d.ts +4 -3
  210. package/dist/trust-graph.esm.js +4 -3
  211. package/dist/{types-NuT8ftBV.d.ts → types-BklZ_Wne.d.ts} +2 -1
  212. package/dist/{types-DOUhndhT.d.ts → types-BsYXnC5s.d.ts} +39 -3
  213. package/dist/{types-DsnEVMhr.esm.js → types-CMcxlSmH.esm.js} +2 -1
  214. package/dist/types-CxW2e0Ar.d.ts +132 -0
  215. package/dist/{types-Bj9hdFjU.d.ts → types-DgGlgyZT.d.ts} +1 -1
  216. package/dist/types-ElOJAGaM.esm.js +189 -0
  217. package/dist/urlUtils-BZqFU9rR.esm.js +16 -0
  218. package/dist/video-C2WIj6TS.esm.js +36 -0
  219. package/dist/video-selfie.d.ts +351 -0
  220. package/dist/video-selfie.esm.js +1509 -0
  221. package/dist/videoSelfieSteps-7M5vxKn-.esm.js +58 -0
  222. package/dist/{warmup-Dg8Lh-50.d.ts → warmup-BJZPQIiX.d.ts} +5 -1
  223. package/dist/wasm.d.ts +4 -3
  224. package/dist/wasm.esm.js +17 -13
  225. package/dist/watchlist-for-business.d.ts +2 -1
  226. package/dist/watchlist-for-business.esm.js +30 -7
  227. package/dist/watchlist.d.ts +2 -1
  228. package/dist/watchlist.esm.js +28 -6
  229. package/dist/{watchlistForBusinessStateMachine-DMl8j2Ov.esm.js → watchlistForBusinessStateMachine-DvEunDxs.esm.js} +3 -3
  230. package/dist/{watchlistStateMachine-DmQlqI6L.esm.js → watchlistStateMachine-AHXVf-TB.esm.js} +3 -3
  231. package/dist/workflow.d.ts +296 -103
  232. package/dist/workflow.esm.js +137 -74
  233. package/dist/{xstate.esm-C9wncMQa.esm.js → xstate.esm-Bomq1a0z.esm.js} +54 -5
  234. package/package.json +26 -1
  235. package/dist/IpifyProvider-D4LWD15E.esm.js +0 -167
  236. package/dist/antifraudManager-CkV4u-LE.esm.js +0 -55
  237. package/dist/camera-DJWm3V4g.esm.js +0 -22
  238. package/dist/deepsightService-Dh5P-hLf.d.ts +0 -265
  239. package/dist/faceCaptureManagerFactory-CjdBUS6s.d.ts +0 -721
  240. package/dist/flowCompletionService-BdR2cGgB.d.ts +0 -19
  241. package/dist/flowCompletionService-DdGojV9K.esm.js +0 -20
  242. package/dist/getBrowser-C8DP7oTB.esm.js +0 -8
  243. package/dist/openviduLazy-B8L--0oe.esm.js +0 -3
  244. package/dist/setup-CUO4mErT.esm.js +0 -1037
  245. /package/dist/{Actor-Y0_Fj-KL.d.ts → Actor-CGEelYtQ.d.ts} +0 -0
  246. /package/dist/{BrowserTimerProvider-DhNc_x02.esm.js → BrowserTimerProvider-CHloo0eQ.esm.js} +0 -0
  247. /package/dist/{ITimerCapability-CB0I1Uf2.esm.js → ITimerCapability-pltuG1E8.esm.js} +0 -0
  248. /package/dist/{Manager-BHn8wH8K.d.ts → Manager-CJ3G2zqi.d.ts} +0 -0
  249. /package/dist/{MotionSensorProvider-Bx7Mpzt0.esm.js → MotionSensorProvider-DCbId4De.esm.js} +0 -0
  250. /package/dist/{StateMachine-BC_nGvrc.d.ts → StateMachine-C_AY4cs7.d.ts} +0 -0
  251. /package/dist/{apiError-B-j-gyDx.esm.js → apiError-DNS2OCEX.esm.js} +0 -0
  252. /package/dist/{camera-SRBpPq2X.d.ts → camera-CNVUo-bC.d.ts} +0 -0
  253. /package/dist/{canvas-SKcRBxsk.esm.js → canvas-_I95hkPg.esm.js} +0 -0
  254. /package/dist/{chunk-CMUKZ2uL.esm.js → chunk-CIKcdghV.esm.js} +0 -0
  255. /package/dist/{cpf-BRzggV8G.esm.js → cpf-BKaho0j_.esm.js} +0 -0
  256. /package/dist/{dateUtils-AksLQmgV.esm.js → dateUtils-7-tQYRNN.esm.js} +0 -0
  257. /package/dist/{getDeviceClass-C0olyNFS.esm.js → getDeviceClass-DavNdcxh.esm.js} +0 -0
  258. /package/dist/{http-Cai3IoLS.esm.js → http-BkiUT7EB.esm.js} +0 -0
  259. /package/dist/{otp-CGMdUzBC.esm.js → otp-Bfnzf7I3.esm.js} +0 -0
  260. /package/dist/{otp-DF5A0sFx.d.ts → otp-M4iy57XY.d.ts} +0 -0
  261. /package/dist/{platform-SKvEfCBh.esm.js → platform-uIVQUnJP.esm.js} +0 -0
  262. /package/dist/{types-DvGZI7BF.d.ts → types-D_IceWxT.d.ts} +0 -0
  263. /package/dist/{types-ya0LN_MX.d.ts → types-Duy2rDxF.d.ts} +0 -0
@@ -0,0 +1,119 @@
1
+ import { n as WasmPipeline } from "./warmup-BJZPQIiX.js";
2
+ import { c as FaceAttributesThresholds, d as FaceDetectionCallbacks, f as FaceDetectionConfig, h as IFaceDetectionCapability, l as FaceChecksConfig, m as FacePositionConstraints, p as FaceDetectionThresholds, v as WebApiHostRequestConfig } from "./createFaceAvatar-B8pFpy6o.js";
3
+
4
+ //#region ../infra/src/wasm/WasmPipelineType.d.ts
5
+ declare enum WasmPipelineType {
6
+ IdBlurGlarePipeline = 0,
7
+ IdBarcodeAndTextQualityPipeline = 1,
8
+ IdVideoSelfiePipeline = 2,
9
+ SelfieWithAggregationMetrics = 3,
10
+ SelfieWithQualityMetrics = 4,
11
+ OnDeviceSelfieWorkflow = 5,
12
+ }
13
+ //#endregion
14
+ //#region ../infra/src/providers/wasm/BaseWasmProvider.d.ts
15
+ /**
16
+ * Base configuration for WASM providers
17
+ */
18
+ interface BaseWasmConfig {
19
+ /** Path to the WASM binary */
20
+ wasmPath?: string;
21
+ /** Path to the SIMD-optimized WASM binary (optional) */
22
+ wasmSimdPath?: string;
23
+ /** Path to the WASM glue code (paired with `wasmPath`) */
24
+ glueCodePath?: string;
25
+ /**
26
+ * Path to the SIMD-optimized WASM glue code (paired with `wasmSimdPath`).
27
+ * If omitted, defaults to a sibling `.js` derived from `wasmSimdPath`.
28
+ */
29
+ glueCodeSimdPath?: string;
30
+ /** Whether to use SIMD optimizations (default: true) */
31
+ useSimd?: boolean;
32
+ /**
33
+ * Base path for ML model files. Models will be loaded from `${modelsBasePath}/${modelFileName}`.
34
+ * If not provided, models are expected in a 'models' subdirectory relative to the WASM binary.
35
+ */
36
+ modelsBasePath?: string;
37
+ }
38
+ /**
39
+ * Base provider class that abstracts common WASM functionality.
40
+ * This serves as a foundation for specific ML capability providers
41
+ * like FaceDetectionProvider and IdCaptureProvider.
42
+ */
43
+ declare abstract class BaseWasmProvider {
44
+ private _isInitialized;
45
+ protected pipelineType: WasmPipelineType | undefined;
46
+ /**
47
+ * Creates a new BaseWasmProvider
48
+ * @param pipelineType - The WASM pipeline type this provider uses
49
+ */
50
+ constructor(pipelineType?: WasmPipelineType);
51
+ /**
52
+ * Returns whether this provider has been initialized.
53
+ */
54
+ get initialized(): boolean;
55
+ protected getPipelineType(): WasmPipelineType;
56
+ /**
57
+ * Initializes the provider by ensuring WASM is loaded
58
+ * @param config - Provider configuration
59
+ * @param pipeline - The pipeline type to warm up ('selfie', 'idCapture', etc.)
60
+ */
61
+ protected initializeBase(config: BaseWasmConfig, pipeline: WasmPipeline): Promise<void>;
62
+ /**
63
+ * Ensures the provider is initialized before performing operations.
64
+ * @throws Error if not initialized
65
+ */
66
+ protected ensureInitialized(): void;
67
+ /**
68
+ * Processes a frame through the WASM pipeline
69
+ * @param image - Image data to process
70
+ * @returns The pipeline result (type depends on pipeline - WASM returns any)
71
+ */
72
+ protected processFrameWasm(image: ImageData): Promise<any>;
73
+ abstract processFrame(image: ImageData): Promise<void>;
74
+ /**
75
+ * Resets the pipeline to its initial state.
76
+ * Safe to call even if not initialized (no-op in that case).
77
+ */
78
+ reset(): void;
79
+ /**
80
+ * Disposes of resources and resets initialization state.
81
+ * Safe to call even if not initialized.
82
+ */
83
+ dispose(): Promise<void>;
84
+ }
85
+ //#endregion
86
+ //#region ../infra/src/providers/wasm/FaceDetectionProvider.d.ts
87
+ declare class FaceDetectionProvider extends BaseWasmProvider implements IFaceDetectionCapability {
88
+ private defaultThresholds;
89
+ private currentThresholds;
90
+ private currentFrame;
91
+ private onFaceDataCallback;
92
+ constructor();
93
+ processFrame(image: ImageData): Promise<void>;
94
+ initialize(config: FaceDetectionConfig): Promise<void>;
95
+ /**
96
+ * Last-registered onCapture callback — captured into a private
97
+ * field so `forceCapture()` (called from outside the WASM-callback
98
+ * lifecycle) can re-fire the same wrapper. `setCallbacks` rebinds
99
+ * this on each invocation, so the field always reflects the
100
+ * current consumer.
101
+ */
102
+ private currentOnCaptureWrapper;
103
+ processPhoto(canvas: HTMLCanvasElement): void;
104
+ postFaceResults(config?: WebApiHostRequestConfig): Promise<unknown>;
105
+ setCallbacks(callbacks: FaceDetectionCallbacks): void;
106
+ setPositionConstraints(constraints: FacePositionConstraints): void;
107
+ applyDefaults(autocaptureInterval?: number): void;
108
+ setAutocaptureInterval(interval: number): void;
109
+ setThresholds(thresholds: FaceDetectionThresholds): void;
110
+ setAttributesThresholds(thresholds: FaceAttributesThresholds): void;
111
+ setChecksEnabled(config: FaceChecksConfig): void;
112
+ setVideoSelfieMode(enabled: boolean): void;
113
+ forceCapture(): void;
114
+ reset(): void;
115
+ private createDefaultFaceCoordinates;
116
+ private formatFaceCoordinates;
117
+ }
118
+ //#endregion
119
+ export { BaseWasmProvider as n, FaceDetectionProvider as t };
@@ -0,0 +1,12 @@
1
+ //#region ../infra/src/capabilities/IVisibilityObserverCapability.d.ts
2
+ type IVisibilityObserverCapability = {
3
+ /**
4
+ * Whether the document is currently visible. Lets the orchestrator seed its
5
+ * dedupe state and emit an initial `background` when a session starts while
6
+ * the tab is already hidden (e.g. the SDK is opened in a background tab).
7
+ */
8
+ isVisible(): boolean;
9
+ onVisibilityChange(listener: (visible: boolean) => void): () => void;
10
+ };
11
+ //#endregion
12
+ export { IVisibilityObserverCapability as t };
@@ -0,0 +1,145 @@
1
+ import { n as WasmPipeline } from "./warmup-BJZPQIiX.js";
2
+ import { _ as MLProviderConfig } from "./createFaceAvatar-B8pFpy6o.js";
3
+
4
+ //#region ../infra/src/capabilities/IRecordingCapability.d.ts
5
+ type RecordingPublisher = {
6
+ getStreamId: () => string | undefined;
7
+ replaceVideoTrack: (track: MediaStreamTrack) => Promise<void>;
8
+ destroy: () => void;
9
+ };
10
+ type RecordingConnection = {
11
+ sessionId: string | undefined;
12
+ publisher: RecordingPublisher;
13
+ disconnect: () => Promise<void>;
14
+ };
15
+ type RecordingConnectionEvents = {
16
+ onSessionConnected?: (sessionId: string | undefined) => void;
17
+ onSessionDisconnected?: (sessionId: string | undefined) => void;
18
+ onSessionException?: (params: {
19
+ name?: string;
20
+ message?: string;
21
+ sessionId?: string;
22
+ }) => void;
23
+ onPublisherCreated?: (params: {
24
+ streamId?: string;
25
+ sessionId?: string;
26
+ }) => void;
27
+ onPublisherError?: (params: {
28
+ message?: string;
29
+ sessionId?: string;
30
+ streamId?: string;
31
+ }) => void;
32
+ };
33
+ type ConnectRecordingParams = {
34
+ sessionToken: string;
35
+ stream: MediaStream;
36
+ events?: RecordingConnectionEvents;
37
+ };
38
+ type IRecordingCapability = {
39
+ /**
40
+ * Connects to a recording session and publishes the provided media stream.
41
+ * Returns a connection handle that can be disconnected and used to manage the publisher.
42
+ */
43
+ connect: (params: ConnectRecordingParams) => Promise<RecordingConnection>;
44
+ };
45
+ //#endregion
46
+ //#region ../infra/src/capabilities/IStorageCapability.d.ts
47
+ /**
48
+ * Storage capability interface for abstracting storage operations.
49
+ * Enables swapping between browser localStorage and future WASM-based storage.
50
+ */
51
+ interface IStorageCapability {
52
+ /**
53
+ * Retrieves a value from storage.
54
+ * @param key - The storage key
55
+ * @returns The stored value or null if not found
56
+ */
57
+ get<T>(key: string): Promise<T | null>;
58
+ /**
59
+ * Stores a value in storage.
60
+ * @param key - The storage key
61
+ * @param value - The value to store (will be serialized)
62
+ */
63
+ set<T>(key: string, value: T): Promise<void>;
64
+ /**
65
+ * Removes a value from storage.
66
+ * @param key - The storage key to remove
67
+ */
68
+ remove(key: string): Promise<void>;
69
+ /**
70
+ * Clears all values from storage.
71
+ */
72
+ clear(): Promise<void>;
73
+ }
74
+ //#endregion
75
+ //#region ../infra/src/capabilities/IWasmUtilCapability.d.ts
76
+ type WasmUtilConfig = MLProviderConfig & {
77
+ pipelines?: WasmPipeline[];
78
+ };
79
+ type VirtualCameraCheckOutput = {
80
+ canvas: HTMLCanvasElement | null;
81
+ itr: boolean | null;
82
+ skipped: boolean | null;
83
+ };
84
+ type IWasmUtilCapability = {
85
+ /**
86
+ * Whether the provider has been initialized and is ready to be used.
87
+ */
88
+ readonly initialized: boolean;
89
+ /**
90
+ * Initializes the provider with the given configuration.
91
+ * If WASM was already warmed up via `warmupWasm()`, this returns almost instantly.
92
+ * @param config - Provider configuration including WASM paths
93
+ */
94
+ initialize(config: WasmUtilConfig): Promise<void>;
95
+ /**
96
+ * Encrypts a base64 image using the WASM utility API.
97
+ * @param image - Base64 image string (no data URL prefix)
98
+ * @returns Encrypted string
99
+ */
100
+ encryptImage(image: string): string;
101
+ setSdkVersion(version: string): void;
102
+ setSdkPlatform(platform: string): void;
103
+ setDeviceInfo(deviceInfo: object, overrideExisting?: boolean): void;
104
+ setBrowserInfo(browserInfo: object, overrideExisting?: boolean): void;
105
+ setCameraInfo(cameraInfo: object, overrideExisting?: boolean): void;
106
+ setMotionStatus(status: string): void;
107
+ setBackgroundMode(backgroundMode: boolean): void;
108
+ setZc(zc: string): void;
109
+ setInspectorOpened(opened: boolean): void;
110
+ /**
111
+ * Returns whether the DevTools inspector has been detected as open.
112
+ * Safe to call before WASM initialization (returns the in-memory flag).
113
+ */
114
+ getInspectorOpened(): boolean;
115
+ /**
116
+ * Toggles the WASM module's production mode. When `true`, the native module
117
+ * suppresses its verbose debug logging/console output.
118
+ */
119
+ setProductionMode(productionMode: boolean): Promise<void>;
120
+ getMetadata(): string;
121
+ analyzeFrame(image: ImageData): Promise<void>;
122
+ getCheck(): string;
123
+ /**
124
+ * Gets the current pipeline state. Must be called before setMotionStatus(),
125
+ * getCheck(), setBackgroundMode(), and getMetadata() for proper metadata generation.
126
+ */
127
+ getPipelineState(): string;
128
+ estimatePerformance(): string;
129
+ isVirtualCamera(label: string | null): boolean;
130
+ prc(): Promise<void>;
131
+ poc(output: VirtualCameraCheckOutput): Promise<void>;
132
+ rsp(): Promise<void>;
133
+ ssl(): void;
134
+ stl(): void;
135
+ osv(): void;
136
+ oev(): void;
137
+ ckvcks(data: ArrayBuffer): void;
138
+ getVersions(): Promise<unknown>;
139
+ /**
140
+ * Disposes of resources and resets initialization state.
141
+ */
142
+ dispose(): Promise<void>;
143
+ };
144
+ //#endregion
145
+ export { IRecordingCapability as a, IStorageCapability as i, VirtualCameraCheckOutput as n, RecordingConnection as o, WasmUtilConfig as r, IWasmUtilCapability as t };
@@ -0,0 +1,51 @@
1
+ //#region ../infra/src/providers/browser/IpifyProvider.ts
2
+ let cachedIp;
3
+ let inFlightLookup;
4
+ /**
5
+ * Resets the module-level IP cache. Intended for tests and full session resets.
6
+ */
7
+ function resetIpifyCache() {
8
+ cachedIp = void 0;
9
+ inFlightLookup = void 0;
10
+ }
11
+ async function fetchIpFromIpify() {
12
+ if (typeof fetch === "undefined") return "";
13
+ let timeoutId = 0;
14
+ const controller = new AbortController();
15
+ if (AbortSignal.timeout) {
16
+ const signal = AbortSignal.timeout(3e3);
17
+ return (await (await fetch("https://api.ipify.org?format=json", { signal })).json()).ip;
18
+ }
19
+ const timeoutPromise = new Promise((_, reject) => {
20
+ timeoutId = setTimeout(() => {
21
+ controller.abort();
22
+ reject(/* @__PURE__ */ new Error("Request timeout"));
23
+ }, 3e3);
24
+ });
25
+ const fetchPromise = fetch("https://api.ipify.org?format=json", { signal: controller.signal }).then((res) => res.json()).then((data) => data.ip);
26
+ const result = await Promise.race([fetchPromise, timeoutPromise]);
27
+ clearTimeout(timeoutId);
28
+ return result;
29
+ }
30
+ var IpifyProvider = class {
31
+ async getIp() {
32
+ if (cachedIp !== void 0) return cachedIp;
33
+ if (inFlightLookup) return inFlightLookup;
34
+ inFlightLookup = (async () => {
35
+ try {
36
+ const ip = await fetchIpFromIpify();
37
+ cachedIp = ip;
38
+ return ip;
39
+ } catch {
40
+ cachedIp = "";
41
+ return "";
42
+ } finally {
43
+ inFlightLookup = void 0;
44
+ }
45
+ })();
46
+ return inFlightLookup;
47
+ }
48
+ };
49
+
50
+ //#endregion
51
+ export { resetIpifyCache as n, IpifyProvider as t };
@@ -1,4 +1,4 @@
1
- import { t as loadOpenVidu } from "./openviduLazy-Dh14JNJc.esm.js";
1
+ import { t as loadOpenVidu } from "./openviduLazy-BTOIauGP.esm.js";
2
2
 
3
3
  //#region ../infra/src/providers/browser/OpenViduRecordingProvider.ts
4
4
  function createHiddenContainer() {
@@ -0,0 +1,339 @@
1
+ import { t as createHiddenVideoElement } from "./video-C2WIj6TS.esm.js";
2
+
3
+ //#region ../infra/src/avatar/privacy-lens/privacyLensShaders.ts
4
+ /** Starting point; tuned live via the privacy-lens demo sliders. */
5
+ const PRIVACY_LENS_DEFAULTS = {
6
+ frost: .55,
7
+ sandblast: .28,
8
+ grainSize: .5,
9
+ brightness: 1.12,
10
+ shadowLift: .12,
11
+ warmth: .5,
12
+ sun: .71,
13
+ sunSpeed: .26
14
+ };
15
+ const PRIVACY_LENS_VERT = `
16
+ attribute vec2 aPos;
17
+ varying vec2 vUv;
18
+ void main() {
19
+ vUv = aPos * 0.5 + 0.5;
20
+ gl_Position = vec4(aPos, 0.0, 1.0);
21
+ }`;
22
+ const PRIVACY_LENS_FRAG = `
23
+ // The grain hash (h21 below) feeds large gl_FragCoord-derived values through
24
+ // sin()*43758.5 — that overflows mediump's range on many mobile GPUs and
25
+ // collapses the grain to a flat artifact. Use highp where available (all WebGL2
26
+ // and most WebGL1 devices); fall back to mediump on the rare device without it.
27
+ #ifdef GL_FRAGMENT_PRECISION_HIGH
28
+ precision highp float;
29
+ #else
30
+ precision mediump float;
31
+ #endif
32
+ varying vec2 vUv;
33
+ uniform sampler2D uVideo;
34
+ uniform vec2 uRes; // canvas pixel size (square)
35
+ uniform vec2 uVideoRes; // decoded video pixel size
36
+ uniform float uTime; // seconds (sun drift only)
37
+ uniform float uFrost;
38
+ uniform float uSandblast;
39
+ uniform float uGrainSize;
40
+ uniform float uWarmth;
41
+ uniform float uBright;
42
+ uniform float uShadow;
43
+ uniform float uSun;
44
+ uniform float uSunSpeed;
45
+
46
+ // Static per-cell hash — NO time term, so the grain is a fixed matte surface.
47
+ float h21(vec2 p) {
48
+ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
49
+ }
50
+
51
+ // Cover-fit the (non-square) video into the square output, centre-cropped, so
52
+ // faces are never stretched.
53
+ vec2 coverUv(vec2 uv) {
54
+ float va = uVideoRes.x / max(uVideoRes.y, 1.0);
55
+ vec2 o = uv;
56
+ if (va > 1.0) o.x = (uv.x - 0.5) / va + 0.5; // landscape: crop sides
57
+ else o.y = (uv.y - 0.5) * va + 0.5; // portrait: crop top/bottom
58
+ return o;
59
+ }
60
+
61
+ const int N = 12;
62
+
63
+ void main() {
64
+ vec2 uv = vUv;
65
+ vec2 base = coverUv(uv);
66
+ float aspect = uRes.y / max(uRes.x, 1.0);
67
+
68
+ // Per-fragment static seed, clustered into grain cells. Small cells = ultra
69
+ // fine sandblast (effectively invisible pattern); larger = coarser frosting.
70
+ vec2 cell = floor(gl_FragCoord.xy / max(uGrainSize, 0.5));
71
+ float rnd = h21(cell);
72
+ float baseAngle = rnd * 6.2831853;
73
+
74
+ // Stochastic sandblasted scatter: an even golden-angle disk, but each pixel
75
+ // cell rotates + jitters the kernel differently → a fine matte grain rather
76
+ // than a smooth blur. The video moves UNDER this fixed glass grain.
77
+ vec3 col = vec3(0.0);
78
+ for (int i = 0; i < N; i++) {
79
+ float fi = float(i) + 0.5;
80
+ float ang = baseAngle + fi * 2.399963; // golden angle
81
+ float rad = sqrt(fi / float(N)); // even area coverage 0..1
82
+ float j = h21(cell + vec2(fi * 7.13, fi * 3.71));
83
+ float r = uFrost * 0.06 * rad + (j - 0.5) * uSandblast * 0.03;
84
+ vec2 off = vec2(cos(ang), sin(ang)) * r;
85
+ off.x *= aspect;
86
+ col += texture2D(uVideo, base + off).rgb;
87
+ }
88
+ col /= float(N);
89
+
90
+ // Airy + warm grade (luminous frosted glass, not murky).
91
+ col = col + uShadow * (1.0 - col);
92
+ col *= uBright;
93
+ vec3 warm = vec3(1.0, 0.92, 0.80);
94
+ col = mix(col, col * warm + vec3(0.03, 0.015, 0.0), uWarmth);
95
+
96
+ // Drifting sun: a broad soft glow + a fine STATIC sparkle (per-cell) that
97
+ // catches the ground-glass grain only where the light falls — not all-over.
98
+ vec2 sun = vec2(0.34 + 0.16 * sin(uTime * uSunSpeed),
99
+ 0.26 + 0.10 * cos(uTime * uSunSpeed * 0.8));
100
+ float glow = smoothstep(0.7, 0.0, distance(uv, sun));
101
+ vec3 sunCol = vec3(1.0, 0.96, 0.88);
102
+ col += sunCol * glow * (0.20 + (rnd - 0.5) * 0.18 * uSandblast) * uSun;
103
+
104
+ gl_FragColor = vec4(clamp(col, 0.0, 1.0), 1.0);
105
+ }`;
106
+
107
+ //#endregion
108
+ //#region ../infra/src/avatar/privacy-lens/PrivacyLensProvider.ts
109
+ /**
110
+ * Privacy-lens avatar — sandblasted-glass effect over the **real** selfie video.
111
+ * **Self-contained** (see FACE_AVATAR.md → Isolation and ownership). No MediaPipe, no landmarks, no
112
+ * three/VRM, no npm deps, no textures but the live video — just a raw-WebGL
113
+ * fragment shader run on the video each frame (see `privacyLensShaders.ts`).
114
+ *
115
+ * Implements `IFaceAvatarCapability` (the generic `start/getCanvas/stop`
116
+ * contract) so it rides the existing concealment seam
117
+ * (`selfieConcealmentOption: 'OPTION_SILHOUETTE'`). The UI swaps the live `<Video>` for this
118
+ * canvas exactly as it does for the other avatars. Cosmetic-only: the authoritative
119
+ * pipeline still runs on the real frames; this only changes what is *displayed*.
120
+ *
121
+ * Mirroring is the UI's job (CSS), like every other provider — the shader
122
+ * renders forward.
123
+ */
124
+ const DEFAULT_MAX_FPS = 30;
125
+ const RENDER_SIZE = 512;
126
+ const asRvfc = (video) => {
127
+ const v = video;
128
+ return typeof v.requestVideoFrameCallback === "function" && typeof v.cancelVideoFrameCallback === "function" ? v : null;
129
+ };
130
+ const readParams = () => {
131
+ if (typeof window === "undefined") return PRIVACY_LENS_DEFAULTS;
132
+ const override = window.__incodePrivacyLensParams;
133
+ return override ? {
134
+ ...PRIVACY_LENS_DEFAULTS,
135
+ ...override
136
+ } : PRIVACY_LENS_DEFAULTS;
137
+ };
138
+ var PrivacyLensProvider = class {
139
+ constructor() {
140
+ this.gl = null;
141
+ this.program = null;
142
+ this.quad = null;
143
+ this.videoTex = null;
144
+ this.uniforms = /* @__PURE__ */ new Map();
145
+ this.videoHandle = null;
146
+ this.rafId = null;
147
+ this.rvfcHandle = null;
148
+ this.usingRvfc = false;
149
+ this.stopped = false;
150
+ this.lastFrameAt = 0;
151
+ this.minFrameIntervalMs = 1e3 / DEFAULT_MAX_FPS;
152
+ this.startTime = 0;
153
+ this.loop = (now) => {
154
+ if (this.stopped) return;
155
+ this.scheduleNextFrame();
156
+ if (now - this.lastFrameAt < this.minFrameIntervalMs) return;
157
+ this.lastFrameAt = now;
158
+ const gl = this.gl;
159
+ const video = this.videoHandle?.element;
160
+ if (!gl || !this.program) return;
161
+ if (!video || video.readyState < 2 || !video.videoWidth) {
162
+ gl.clear(gl.COLOR_BUFFER_BIT);
163
+ return;
164
+ }
165
+ gl.activeTexture(gl.TEXTURE0);
166
+ gl.bindTexture(gl.TEXTURE_2D, this.videoTex);
167
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video);
168
+ const p = readParams();
169
+ const setF = (name, value) => {
170
+ const loc = this.uniforms.get(name);
171
+ if (loc) gl.uniform1f(loc, value);
172
+ };
173
+ const set2 = (name, x, y) => {
174
+ const loc = this.uniforms.get(name);
175
+ if (loc) gl.uniform2f(loc, x, y);
176
+ };
177
+ set2("uRes", RENDER_SIZE, RENDER_SIZE);
178
+ set2("uVideoRes", video.videoWidth, video.videoHeight);
179
+ setF("uTime", (now - this.startTime) / 1e3);
180
+ setF("uFrost", p.frost);
181
+ setF("uSandblast", p.sandblast);
182
+ setF("uGrainSize", p.grainSize);
183
+ setF("uWarmth", p.warmth);
184
+ setF("uBright", p.brightness);
185
+ setF("uShadow", p.shadowLift);
186
+ setF("uSun", p.sun);
187
+ setF("uSunSpeed", p.sunSpeed);
188
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
189
+ };
190
+ this.canvas = document.createElement("canvas");
191
+ this.canvas.width = RENDER_SIZE;
192
+ this.canvas.height = RENDER_SIZE;
193
+ }
194
+ getCanvas() {
195
+ return this.canvas;
196
+ }
197
+ async start(stream, options = {}) {
198
+ this.minFrameIntervalMs = 1e3 / (options.maxFps ?? DEFAULT_MAX_FPS);
199
+ this.videoHandle = createHiddenVideoElement(stream, { keepStreamAlive: true });
200
+ try {
201
+ this.initGl();
202
+ if (this.stopped) return;
203
+ this.startTime = performance.now();
204
+ const video = this.videoHandle.element;
205
+ this.usingRvfc = !!asRvfc(video);
206
+ this.scheduleNextFrame();
207
+ } catch (error) {
208
+ this.stop();
209
+ throw error;
210
+ }
211
+ return Promise.resolve();
212
+ }
213
+ stop() {
214
+ this.stopped = true;
215
+ if (this.rafId != null) {
216
+ cancelAnimationFrame(this.rafId);
217
+ this.rafId = null;
218
+ }
219
+ const video = this.videoHandle?.element;
220
+ if (video && this.rvfcHandle != null) {
221
+ asRvfc(video)?.cancelVideoFrameCallback(this.rvfcHandle);
222
+ this.rvfcHandle = null;
223
+ }
224
+ const gl = this.gl;
225
+ if (gl) {
226
+ if (this.program) gl.deleteProgram(this.program);
227
+ if (this.quad) gl.deleteBuffer(this.quad);
228
+ if (this.videoTex) gl.deleteTexture(this.videoTex);
229
+ gl.getExtension("WEBGL_lose_context")?.loseContext();
230
+ }
231
+ this.program = null;
232
+ this.quad = null;
233
+ this.videoTex = null;
234
+ this.gl = null;
235
+ this.videoHandle?.dispose();
236
+ this.videoHandle = null;
237
+ }
238
+ initGl() {
239
+ const gl = this.canvas.getContext("webgl", {
240
+ alpha: false,
241
+ antialias: false,
242
+ premultipliedAlpha: false,
243
+ preserveDrawingBuffer: false
244
+ }) ?? this.canvas.getContext("experimental-webgl");
245
+ if (!gl) throw new Error("PrivacyLensProvider: WebGL is not available");
246
+ this.gl = gl;
247
+ const program = this.buildProgram(gl, PRIVACY_LENS_VERT, PRIVACY_LENS_FRAG);
248
+ this.program = program;
249
+ gl.useProgram(program);
250
+ const quad = gl.createBuffer();
251
+ gl.bindBuffer(gl.ARRAY_BUFFER, quad);
252
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
253
+ -1,
254
+ -1,
255
+ 1,
256
+ -1,
257
+ -1,
258
+ 1,
259
+ 1,
260
+ 1
261
+ ]), gl.STATIC_DRAW);
262
+ const aPos = gl.getAttribLocation(program, "aPos");
263
+ gl.enableVertexAttribArray(aPos);
264
+ gl.vertexAttribPointer(aPos, 2, gl.FLOAT, false, 0, 0);
265
+ this.quad = quad;
266
+ this.videoTex = this.makeTexture(gl, gl.CLAMP_TO_EDGE);
267
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
268
+ for (const name of [
269
+ "uVideo",
270
+ "uRes",
271
+ "uVideoRes",
272
+ "uTime",
273
+ "uFrost",
274
+ "uSandblast",
275
+ "uGrainSize",
276
+ "uWarmth",
277
+ "uBright",
278
+ "uShadow",
279
+ "uSun",
280
+ "uSunSpeed"
281
+ ]) this.uniforms.set(name, gl.getUniformLocation(program, name));
282
+ gl.uniform1i(this.uniforms.get("uVideo") ?? null, 0);
283
+ gl.viewport(0, 0, RENDER_SIZE, RENDER_SIZE);
284
+ gl.clearColor(.88, .86, .83, 1);
285
+ }
286
+ buildProgram(gl, vertSrc, fragSrc) {
287
+ const compile = (type, src) => {
288
+ const shader = gl.createShader(type);
289
+ if (!shader) throw new Error("PrivacyLensProvider: createShader failed");
290
+ gl.shaderSource(shader, src);
291
+ gl.compileShader(shader);
292
+ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
293
+ const log = gl.getShaderInfoLog(shader);
294
+ gl.deleteShader(shader);
295
+ throw new Error(`PrivacyLensProvider: shader compile failed: ${log}`);
296
+ }
297
+ return shader;
298
+ };
299
+ const vs = compile(gl.VERTEX_SHADER, vertSrc);
300
+ const fs = compile(gl.FRAGMENT_SHADER, fragSrc);
301
+ const program = gl.createProgram();
302
+ if (!program) throw new Error("PrivacyLensProvider: createProgram failed");
303
+ gl.attachShader(program, vs);
304
+ gl.attachShader(program, fs);
305
+ gl.linkProgram(program);
306
+ gl.deleteShader(vs);
307
+ gl.deleteShader(fs);
308
+ if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
309
+ const log = gl.getProgramInfoLog(program);
310
+ gl.deleteProgram(program);
311
+ throw new Error(`PrivacyLensProvider: program link failed: ${log}`);
312
+ }
313
+ return program;
314
+ }
315
+ makeTexture(gl, wrap) {
316
+ const tex = gl.createTexture();
317
+ if (!tex) throw new Error("PrivacyLensProvider: createTexture failed");
318
+ gl.bindTexture(gl.TEXTURE_2D, tex);
319
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, wrap);
320
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, wrap);
321
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
322
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
323
+ return tex;
324
+ }
325
+ scheduleNextFrame() {
326
+ if (this.stopped) return;
327
+ const video = this.videoHandle?.element;
328
+ const rvfc = this.usingRvfc && video ? asRvfc(video) : null;
329
+ if (rvfc) this.rvfcHandle = rvfc.requestVideoFrameCallback(this.loop);
330
+ else this.rafId = requestAnimationFrame(this.loop);
331
+ }
332
+ };
333
+ /** Factory used by the avatar actor's provider selection (privacy-lens avatar). */
334
+ function createProvider() {
335
+ return new PrivacyLensProvider();
336
+ }
337
+
338
+ //#endregion
339
+ export { createProvider };
@@ -1,4 +1,4 @@
1
- import { t as IncodeCanvas } from "./canvas-SKcRBxsk.esm.js";
1
+ import { t as IncodeCanvas } from "./canvas-_I95hkPg.esm.js";
2
2
 
3
3
  //#region ../infra/src/media/StreamCanvasCapture.ts
4
4
  var StreamCanvasCapture = class {