@incodetech/core 2.1.1 → 2.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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-BwGL3Lmi.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-oiEnJIlk.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-Dq_tudSW.esm.js} +7 -10
  36. package/dist/{authenticationStateMachine-DbdxfGHx.esm.js → authenticationStateMachine-D4koAtP3.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-CWE0SvF1.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-B3t0ydtg.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-B-OmpJkU.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-D_3oLtOE.esm.js} +161 -34
  90. package/dist/ekyb.d.ts +5 -137
  91. package/dist/ekyb.esm.js +4 -179
  92. package/dist/ekybManager-BJVp2ahf.esm.js +178 -0
  93. package/dist/ekybManager-Dzswb_b8.d.ts +114 -0
  94. package/dist/{ekybStateMachine-D9GzA4MW.esm.js → ekybStateMachine-BYcc9VaR.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/{electronicSignatureManager-DESRgObX.esm.js → electronicSignatureManager-CApcBEQd.esm.js} +47 -33
  104. package/dist/{index-36QX_21w.d.ts → electronicSignatureManager-CcUXQZS7.d.ts} +220 -251
  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-4VejGOQX.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-BB5KEtbV.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-Bt3wD28k.esm.js} +4 -6
  138. package/dist/flowServices-b0Pd4F1K.esm.js +620 -0
  139. package/dist/geolocation.d.ts +1 -4
  140. package/dist/geolocation.esm.js +3 -9
  141. package/dist/geolocationManager-Cz744E5S.d.ts +506 -0
  142. package/dist/{geolocationManager-CF6-NizA.esm.js → geolocationManager-DGwnL5lg.esm.js} +44 -16
  143. package/dist/{geolocationStateMachine-CD2XJs1b.esm.js → geolocationStateMachine-il6jz5DZ.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-DgohUfUQ.esm.js} +173 -34
  167. package/dist/idCaptureServices-RDiDS9tg.esm.js +396 -0
  168. package/dist/{idCaptureStateMachine-DZ2ZTSxu.esm.js → idCaptureStateMachine-DWocZD_m.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-C6IRJHQB.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-N4RhdyiT.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-DpRmKWV0.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-CmoNiluM.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-L9pghTly.esm.js} +14 -29
  227. package/dist/{session-CLsU2Jnb.esm.js → session-DeR_I24J.esm.js} +16 -7
  228. package/dist/session.d.ts +12 -10
  229. package/dist/session.esm.js +5 -15
  230. package/dist/sessionInitializer-DNgRpf5Y.esm.js +1865 -0
  231. package/dist/{setup-CfNsYAeB.esm.js → setup-DuYKUt0r.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-BTl_vvd3.esm.js +1 -0
  248. package/dist/trueSightService-s3T95geD.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-DPx5Lm3d.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,7 +1,7 @@
1
- import { t as api } from "./api-DsbUi7TO.esm.js";
2
- import { t as endpoints } from "./endpoints-CwrFQfW7.esm.js";
3
- import { a as fromPromise, r as assign, t as setup } from "./xstate.esm-nY3M5UYm.esm.js";
4
-
1
+ import { t as api } from "./api-Bx3gKW_y.esm.js";
2
+ import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
3
+ import { r as assign, t as setup } from "./xstate.esm-Cf4e0Cfd.esm.js";
4
+ import { n as fromPromise } from "./xstate-actors.esm-CtI5S0f4.esm.js";
5
5
  //#region src/modules/face-match/constants.ts
6
6
  /**
7
7
  * Backend error code returned by face-match endpoints (e.g. `/omni/process/face`,
@@ -22,9 +22,8 @@ const ID_FACE_EXTRACTION_SKIPPED_CODE = 4084;
22
22
  function isFaceExtractionSkippedError(error) {
23
23
  if (!error || typeof error !== "object") return false;
24
24
  const err = error;
25
- return err.status === ID_FACE_EXTRACTION_SKIPPED_CODE || err.data?.status === ID_FACE_EXTRACTION_SKIPPED_CODE;
25
+ return err.status === 4084 || err.data?.status === 4084;
26
26
  }
27
-
28
27
  //#endregion
29
28
  //#region src/modules/face-match/faceMatchServices.ts
30
29
  /**
@@ -105,7 +104,6 @@ async function fetchFaceMatchData(config, signal) {
105
104
  result: resultRes
106
105
  };
107
106
  }
108
-
109
107
  //#endregion
110
108
  //#region src/modules/face-match/faceMatchStateMachine.ts
111
109
  const faceMatchMachine = setup({
@@ -136,6 +134,7 @@ const faceMatchMachine = setup({
136
134
  },
137
135
  guards: {
138
136
  isAnimationDisabled: ({ context }) => context.config.disableFaceMatchAnimation === true,
137
+ isFaceMatchSkipped: ({ context }) => context.config.skipFaceMatch === true,
139
138
  isFaceExtractionSkipped: ({ event }) => isFaceExtractionSkippedError(event.error)
140
139
  }
141
140
  }).createMachine({
@@ -148,7 +147,13 @@ const faceMatchMachine = setup({
148
147
  error: void 0
149
148
  }),
150
149
  states: {
151
- idle: { on: { LOAD: { target: "loading" } } },
150
+ idle: {
151
+ always: [{
152
+ target: "finished",
153
+ guard: "isFaceMatchSkipped"
154
+ }],
155
+ on: { LOAD: { target: "loading" } }
156
+ },
152
157
  loading: { invoke: {
153
158
  id: "fetchData",
154
159
  src: "fetchData",
@@ -178,6 +183,5 @@ const faceMatchMachine = setup({
178
183
  } } }
179
184
  }
180
185
  });
181
-
182
186
  //#endregion
183
- export { ID_FACE_EXTRACTION_SKIPPED_CODE as n, isFaceExtractionSkippedError as r, faceMatchMachine as t };
187
+ export { ID_FACE_EXTRACTION_SKIPPED_CODE as n, isFaceExtractionSkippedError as r, faceMatchMachine as t };
@@ -0,0 +1,615 @@
1
+ import { a as __toESM } from "./rolldown-runtime-FZ4Itg2g.esm.js";
2
+ import { t as BrowserLazyImportProvider } from "./BrowserLazyImportProvider-BhoA957O.esm.js";
3
+ let currentEnvironment;
4
+ /** Effective tier: the explicitly-set value, else the default (see note above). */
5
+ function getEnvironment() {
6
+ return currentEnvironment ?? "production";
7
+ }
8
+ /** Clears the stored tier. Called by the SDK's `reset()`. */
9
+ function resetEnvironment() {
10
+ currentEnvironment = void 0;
11
+ }
12
+ /**
13
+ * Applies a requested tier from a `setup()` call and reports the transition:
14
+ * - `'unchanged'` — omitted, same value as already stored, or first-set to
15
+ * the default.
16
+ * - `'changed'` — first-set (was defaulting) to a non-default value.
17
+ * Informational only: no consumer reconstructs on this today. Feature
18
+ * management reads the tier once at its own first initialization and never
19
+ * rebuilds, regardless of this status.
20
+ * - `'rejected'` — already locked to a different value; logs a
21
+ * `console.error` and keeps the locked value.
22
+ */
23
+ function applyEnvironment(next) {
24
+ if (next === void 0) return "unchanged";
25
+ if (currentEnvironment === void 0) {
26
+ currentEnvironment = next;
27
+ return next === "production" ? "unchanged" : "changed";
28
+ }
29
+ if (next === currentEnvironment) return "unchanged";
30
+ console.error(`[environment] \`environment\` cannot be changed after the initial setup() call. Keeping '${currentEnvironment}'; ignoring '${next}'. Call reset() to change it.`);
31
+ return "rejected";
32
+ }
33
+ //#endregion
34
+ //#region ../infra/src/providers/browser/FeatureManagementProvider.ts
35
+ /**
36
+ * A client SDK key is safe to ship in a public bundle — it only grants
37
+ * read-only evaluation, no console/admin access.
38
+ *
39
+ * Note: Proper improvement would be if backend creates specialized
40
+ * endpoint for returning these type of information, so we could have full decoupling.
41
+ */
42
+ const CLIENT_SDK_KEY = "client-GBTzsiJ99rvyZQdNXDFkftx3ZoMF1TED2rsB3m3IUqc";
43
+ const LOAD_TIMEOUT_MS = 1e4;
44
+ const FEATURE_MANAGEMENT_REQUEST_TIMEOUT_MS = 3e3;
45
+ const LAZY_IMPORT_OPTIONS = {
46
+ label: "FeatureManagement",
47
+ moduleName: "@statsig/js-client",
48
+ timeoutMs: LOAD_TIMEOUT_MS,
49
+ disabledMessage: "Feature gates/experiments/layers will be disabled for this session."
50
+ };
51
+ /**
52
+ * Resolved default for {@link FeatureManagementConfig.redactedUserInfo}:
53
+ * `ip` and `country` are redacted unless a caller explicitly opts out.
54
+ */
55
+ const DEFAULT_REDACTED_USER_INFO = {
56
+ ip: true,
57
+ country: true
58
+ };
59
+ const fallbackTypedGetter = (_paramName, fallback) => fallback;
60
+ function createFallback(status) {
61
+ return Object.freeze({
62
+ get: fallbackTypedGetter,
63
+ groupName: null,
64
+ status
65
+ });
66
+ }
67
+ /**
68
+ * Concrete {@link IFeatureManagementCapability} backed by Statsig
69
+ * (`@statsig/js-client`), lazy-loaded on first `initialize()` call so
70
+ * consumers that never read a gate/experiment/layer never pay its bundle cost.
71
+ *
72
+ * No `apiKey` is ever passed to Statsig — identity is built up purely from
73
+ * randomization-unit `customIDs` supplied at `initialize()`/`updateUser()`
74
+ * time, plus the client SDK's own auto-generated StableID.
75
+ *
76
+ * Mirrors {@link TransactionalRiskIntelligenceProvider}: every public method
77
+ * is graceful — a load failure, timeout, or evaluation error never throws
78
+ * and never rejects. Reads fall back to their documented defaults and
79
+ * mutating calls become no-ops.
80
+ */
81
+ var FeatureManagementProvider = class FeatureManagementProvider {
82
+ constructor() {
83
+ this._user = {};
84
+ this._redactedUserInfo = { ...DEFAULT_REDACTED_USER_INFO };
85
+ this._lazySdk = BrowserLazyImportProvider.getInstance().create(importStatsigJsClient, LAZY_IMPORT_OPTIONS);
86
+ }
87
+ static getInstance() {
88
+ return this._instance ??= new FeatureManagementProvider();
89
+ }
90
+ static resetInstance() {
91
+ this._instance = void 0;
92
+ }
93
+ get initialized() {
94
+ return this._client !== void 0;
95
+ }
96
+ async initialize(config) {
97
+ try {
98
+ const module = await this._lazySdk.load();
99
+ if (!module) return;
100
+ this._redactedUserInfo = {
101
+ ...DEFAULT_REDACTED_USER_INFO,
102
+ ...config.redactedUserInfo
103
+ };
104
+ this._user = this._getAdjustedUser({
105
+ customIDs: config.customIDs,
106
+ custom: config.custom
107
+ });
108
+ const client = new module.StatsigClient(CLIENT_SDK_KEY, this._user, {
109
+ environment: { tier: config.environment },
110
+ disableStableID: config.disableStableId,
111
+ disableStorage: config.disablePersistence
112
+ });
113
+ await client.initializeAsync({ timeoutMs: FEATURE_MANAGEMENT_REQUEST_TIMEOUT_MS });
114
+ this._client = client;
115
+ } catch (error) {
116
+ console.warn("[FeatureManagement] initialize() failed; gates/experiments/layers will be disabled for this session.", error);
117
+ }
118
+ }
119
+ async updateUser(user) {
120
+ if (!this._client) return;
121
+ this._user = this._getAdjustedUser(user);
122
+ try {
123
+ await this._client.updateUserAsync(this._user, { timeoutMs: FEATURE_MANAGEMENT_REQUEST_TIMEOUT_MS });
124
+ } catch (error) {
125
+ console.warn("[FeatureManagement] updateUser() failed.", error);
126
+ }
127
+ }
128
+ getFeatureGate(name) {
129
+ if (!this._client) return {
130
+ enabled: false,
131
+ status: "uninitialized"
132
+ };
133
+ try {
134
+ return {
135
+ enabled: this._client.checkGate(name),
136
+ status: "initialized"
137
+ };
138
+ } catch {
139
+ return {
140
+ enabled: false,
141
+ status: "error"
142
+ };
143
+ }
144
+ }
145
+ getExperiment(name) {
146
+ if (!this._client) return createFallback("uninitialized");
147
+ try {
148
+ const experiment = this._client.getExperiment(name);
149
+ return {
150
+ get: experiment.get,
151
+ groupName: experiment.groupName,
152
+ status: "initialized"
153
+ };
154
+ } catch {
155
+ return createFallback("error");
156
+ }
157
+ }
158
+ getLayer(name) {
159
+ if (!this._client) return createFallback("uninitialized");
160
+ try {
161
+ const layer = this._client.getLayer(name);
162
+ return {
163
+ get: layer.get,
164
+ groupName: layer.groupName,
165
+ status: "initialized"
166
+ };
167
+ } catch {
168
+ return createFallback("error");
169
+ }
170
+ }
171
+ getParameterStore(name, options) {
172
+ if (!this._client) return createFallback("uninitialized");
173
+ try {
174
+ const statsigOptions = options === void 0 ? void 0 : { disableExposureLog: options.disableExposureLog };
175
+ return {
176
+ get: this._client.getParameterStore(name, statsigOptions).get,
177
+ status: "initialized"
178
+ };
179
+ } catch {
180
+ return createFallback("error");
181
+ }
182
+ }
183
+ getDynamicConfig(name) {
184
+ if (!this._client) return null;
185
+ try {
186
+ return this._client.getDynamicConfig(name).value;
187
+ } catch {
188
+ return null;
189
+ }
190
+ }
191
+ logEvent(name, value, options) {
192
+ if (!this._client) return;
193
+ try {
194
+ const metadata = options?.metadata ? stringifyEventMetadata(options.metadata) : void 0;
195
+ this._client.logEvent(name, value, metadata);
196
+ if (options?.type === "immediate") this._client.flush().catch(() => {});
197
+ } catch {}
198
+ }
199
+ async reset() {
200
+ const client = this._client;
201
+ this._client = void 0;
202
+ this._user = {};
203
+ this._redactedUserInfo = { ...DEFAULT_REDACTED_USER_INFO };
204
+ return client?.shutdown().catch(() => {});
205
+ }
206
+ _getAdjustedUser(user) {
207
+ const persistedUserCustomIDs = this._user.customIDs ?? {};
208
+ const persistedUserCustom = this._user.custom ?? {};
209
+ return {
210
+ customIDs: {
211
+ ...persistedUserCustomIDs,
212
+ ...user.customIDs
213
+ },
214
+ custom: {
215
+ ...persistedUserCustom,
216
+ ...user.custom
217
+ },
218
+ ...this._getRedactedFields()
219
+ };
220
+ }
221
+ /** Blanks out every `StatsigUser` field flagged in {@link _redactedUserInfo}. */
222
+ _getRedactedFields() {
223
+ const fields = {};
224
+ for (const key in this._redactedUserInfo) if (this._redactedUserInfo[key]) fields[key] = "";
225
+ return fields;
226
+ }
227
+ };
228
+ /**
229
+ * Statsig's `logEvent` only accepts string metadata values. Non-string
230
+ * values (booleans, numbers, nested objects) are JSON-stringified so
231
+ * callers can pass richer metadata without needing to know that constraint.
232
+ */
233
+ const stringifyEventMetadata = (metadata) => {
234
+ const stringified = {};
235
+ for (const key in metadata) {
236
+ const value = metadata[key];
237
+ if (typeof value === "string") stringified[key] = value;
238
+ else stringified[key] = JSON.stringify(value);
239
+ }
240
+ return stringified;
241
+ };
242
+ const importStatsigJsClient = () => import("./src-0Jurt29N.esm.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
243
+ //#endregion
244
+ //#region src/integrations/feature-management/featureManagement.ts
245
+ /**
246
+ * Returns the active FeatureManagement capability implementation.
247
+ *
248
+ * Core functions depend on {@link IFeatureManagementCapability} (the
249
+ * interface) rather than the concrete provider class. The provider is
250
+ * referenced here only to supply the default singleton — this integration
251
+ * module is the single owner of the concrete provider reference.
252
+ */
253
+ function getProvider() {
254
+ return FeatureManagementProvider.getInstance();
255
+ }
256
+ /**
257
+ * Name of the shared Statsig parameter store fronting SDK-module
258
+ * experiments that need mutual exclusion. Callers read only this store via
259
+ * {@link getFeatureParameterStore} (or the UI's `useFeatureManagement`) —
260
+ * each param is wired, in the Statsig console, to a Layer's param, which in
261
+ * turn delegates to the individual Experiment; the Layer guarantees at most
262
+ * one experiment sharing it is ever allocated for a given user, so callers
263
+ * reading different experiments from different surfaces don't need to
264
+ * coordinate that themselves. See the ID module's `useIdExperiment`
265
+ * (`packages/ui/src/modules/id/experiments/`) for the reference
266
+ * integration.
267
+ */
268
+ const ONBOARDING_WEB_SDK_PARAMETER_STORE = "onboarding_web_sdk_ps";
269
+ let resolveReady;
270
+ const freshReady = () => new Promise((resolve) => {
271
+ resolveReady = resolve;
272
+ });
273
+ let readyPromise = freshReady();
274
+ let version = 0;
275
+ const listeners = /* @__PURE__ */ new Set();
276
+ /**
277
+ * Subscribes to changes in the FeatureManagement user identity (readiness
278
+ * settling, `updateFeatureManagementUser`, or `resetFeatureManagement`).
279
+ * Returns an unsubscribe function. Intended for UI to re-read
280
+ * gates/experiments/layers whenever the shared identity changes, no matter
281
+ * which caller triggered the change — see `getFeatureManagementVersion`.
282
+ */
283
+ function subscribeFeatureManagement(listener) {
284
+ listeners.add(listener);
285
+ return () => {
286
+ listeners.delete(listener);
287
+ };
288
+ }
289
+ /**
290
+ * Monotonically increasing revision of the FeatureManagement user identity.
291
+ * Pair with {@link subscribeFeatureManagement} (e.g. via
292
+ * `useSyncExternalStore`) to force a re-read after any identity change.
293
+ * The number itself carries no meaning beyond "has this changed since my
294
+ * last read".
295
+ */
296
+ function getFeatureManagementVersion() {
297
+ return version;
298
+ }
299
+ /**
300
+ * Bumps {@link getFeatureManagementVersion} and notifies every
301
+ * {@link subscribeFeatureManagement} listener. Called after readiness
302
+ * settles, a successful `updateFeatureManagementUser`, and `resetFeatureManagement` —
303
+ * never for no-ops, so listeners aren't notified spuriously (which would
304
+ * cause unnecessary re-reads and, for experiments/layers, re-logged exposures).
305
+ */
306
+ function notifyFeatureManagementChanged() {
307
+ version += 1;
308
+ for (const listener of listeners) listener();
309
+ }
310
+ let isFeatureManagementLocked = false;
311
+ /**
312
+ * Initializes feature management for the current (anonymous) user.
313
+ *
314
+ * Deliberately takes no `apiKey` — identity starts with only the client
315
+ * SDK's auto-generated StableID plus the deployment tier from
316
+ * `options.environment` (defaults to `'production'` when omitted), plus
317
+ * `client_experiment_id` when supplied. Additional randomization units
318
+ * (`hashed_onboarding_id`, `flow_id`, and `workflow_id`) are merged in later via
319
+ * {@link updateFeatureManagementUser} as they become known during the
320
+ * session lifecycle.
321
+ *
322
+ * May be called only once per SDK lifecycle. Every later call logs a
323
+ * `console.error` and is ignored; {@link resetFeatureManagement} starts a new
324
+ * lifecycle.
325
+ *
326
+ * Never throws — a failure here must never block SDK boot.
327
+ */
328
+ async function initializeFeatureManagement(options = {}) {
329
+ if (isFeatureManagementLocked) return;
330
+ isFeatureManagementLocked = true;
331
+ try {
332
+ const initializeOptions = buildInitializeOptions(options);
333
+ await getProvider().initialize(initializeOptions);
334
+ } catch (error) {
335
+ console.warn("Feature management initialization failed:", error);
336
+ } finally {
337
+ settleFeatureManagementReady(getProvider().initialized);
338
+ }
339
+ }
340
+ /**
341
+ * Records the opt-out decision for the current SDK lifecycle: locks feature
342
+ * management (so no later `setup()` call can enable it) and settles
343
+ * readiness to `false`.
344
+ *
345
+ * Like {@link initializeFeatureManagement}, this may only run once per SDK
346
+ * lifecycle — call from `setup()` only when the lock is not already held.
347
+ * {@link resetFeatureManagement} starts a new lifecycle.
348
+ */
349
+ function optOutFeatureManagement() {
350
+ isFeatureManagementLocked = true;
351
+ settleFeatureManagementReady(false);
352
+ }
353
+ /** Settles feature-management readiness for the current SDK lifecycle. */
354
+ function settleFeatureManagementReady(initialized) {
355
+ resolveReady(initialized);
356
+ notifyFeatureManagementChanged();
357
+ }
358
+ /**
359
+ * Resolves once feature-management boot for the current SDK lifecycle has
360
+ * settled.
361
+ */
362
+ function getIsFeatureManagementInitialized() {
363
+ return readyPromise;
364
+ }
365
+ /**
366
+ * Merges additional randomization-unit custom IDs (and, optionally,
367
+ * analytics/targeting-only `custom` attributes) into the active
368
+ * FeatureManagement user and re-evaluates.
369
+ *
370
+ * `flow_id` is populated from the flow response before `getFlow` resolves;
371
+ * `workflow_id` is populated from the workflow configuration before
372
+ * `loadWorkflow` resolves. `custom` lets callers enrich identity with
373
+ * attributes discovered later in the session (e.g. a backend-driven flag)
374
+ * without needing a randomization unit — unlike `customIDs`, `custom`
375
+ * values never bucket experiments, only affect targeting conditions and
376
+ * event annotation.
377
+ *
378
+ * `undefined` values in `customIDs` are dropped before merging — they mean
379
+ * "not yet known", never "clear this ID". No-op when every `customIDs`
380
+ * value is `undefined` and no `custom` is supplied, or when
381
+ * `initializeFeatureManagement` was never called (or failed).
382
+ */
383
+ async function updateFeatureManagementUser(update) {
384
+ const { customIDs = {}, custom } = update;
385
+ let hasAdaptedCustomIDs = false;
386
+ const adaptedCustomIDs = {};
387
+ for (const key in customIDs) if (customIDs[key] !== void 0) {
388
+ adaptedCustomIDs[key] = customIDs[key];
389
+ hasAdaptedCustomIDs = true;
390
+ }
391
+ if (!hasAdaptedCustomIDs && !custom) return;
392
+ await getProvider().updateUser({
393
+ customIDs: adaptedCustomIDs,
394
+ custom
395
+ });
396
+ notifyFeatureManagementChanged();
397
+ }
398
+ /** Evaluates a feature gate. Returns a fallback-only result before initialization. */
399
+ function getFeatureGate(name) {
400
+ return getProvider().getFeatureGate(name);
401
+ }
402
+ /** Evaluates an experiment. Returns a fallback-only result before initialization. */
403
+ function getExperiment(name) {
404
+ return getProvider().getExperiment(name);
405
+ }
406
+ /** Evaluates a layer. Returns a fallback-only result before initialization. Exposure is logged natively per-parameter on `.get()`. */
407
+ function getLayer(name) {
408
+ return getProvider().getLayer(name);
409
+ }
410
+ /** Evaluates a parameter store. Returns a fallback-only result before initialization. Exposure is logged natively for the mapped source on `.get()`. */
411
+ function getFeatureParameterStore(name, options) {
412
+ return getProvider().getParameterStore(name, options);
413
+ }
414
+ /** Evaluates a dynamic config. Returns `null` before initialization or if the config is unknown. */
415
+ function getFeatureDynamicConfig(name) {
416
+ return getProvider().getDynamicConfig(name);
417
+ }
418
+ /**
419
+ * Logs a custom analytics event to the FeatureManagement provider. No-op
420
+ * before initialization.
421
+ *
422
+ * `type: 'scheduled'` (default) batches the event with the underlying
423
+ * SDK's normal flush cadence. `type: 'immediate'` logs then flushes right
424
+ * away — use for events that must reach the backend even if the page is
425
+ * about to unload (e.g. a one-time experiment-assignment event).
426
+ */
427
+ function logEvent(name, value, options) {
428
+ getProvider().logEvent(name, value, options);
429
+ }
430
+ /**
431
+ * Tears down the active FeatureManagement client and clears the
432
+ * initialization-attempt flag, so a
433
+ * subsequent `setup()` call starts fresh instead of treating the SDK as
434
+ * already booted. Call from the SDK's `reset()`. Safe no-op when never
435
+ * initialized.
436
+ */
437
+ function resetFeatureManagement() {
438
+ isFeatureManagementLocked = false;
439
+ readyPromise = freshReady();
440
+ getProvider().reset();
441
+ notifyFeatureManagementChanged();
442
+ }
443
+ /**
444
+ * Discards the cached FeatureManagement provider singleton (including its
445
+ * lazy-import cache) so the next access constructs a fresh instance. Call
446
+ * from the SDK's `reset()` alongside {@link resetFeatureManagement}.
447
+ */
448
+ function resetFeatureManagementProviderInstance() {
449
+ FeatureManagementProvider.resetInstance();
450
+ }
451
+ function getIsFeatureManagementLocked() {
452
+ return isFeatureManagementLocked;
453
+ }
454
+ function buildInitializeOptions(options) {
455
+ const initializeOptions = { environment: options.environment ?? "production" };
456
+ if (options.clientExperimentId) initializeOptions.customIDs = { client_experiment_id: options.clientExperimentId };
457
+ if (options.custom) initializeOptions.custom = options.custom;
458
+ if (options.redactedUserInfo) initializeOptions.redactedUserInfo = options.redactedUserInfo;
459
+ initializeOptions.disableStableId = options.disableStableId ?? true;
460
+ initializeOptions.disablePersistence = options.disablePersistence ?? true;
461
+ return initializeOptions;
462
+ }
463
+ //#endregion
464
+ //#region src/integrations/feature-management/experiments.ts
465
+ const EXPERIMENT_ASSIGNED_ANALYTICS_EVENT_GATE = "experiment_assigned_analytics_event";
466
+ const resolvedExperiments = /* @__PURE__ */ new Map();
467
+ const exposedExperiments = /* @__PURE__ */ new Set();
468
+ /**
469
+ * Non-null fallback compared by reference. A `null` code fallback disables
470
+ * Statsig validation; this sentinel distinguishes `unavailable` from console
471
+ * `not_allocated`.
472
+ */
473
+ const EXPERIMENT_UNAVAILABLE_SENTINEL = Object.freeze({
474
+ schema: "v1",
475
+ status: "not_allocated",
476
+ arm: "",
477
+ flagKey: "",
478
+ experimentId: "",
479
+ experimentName: "",
480
+ params: {}
481
+ });
482
+ function isRecord(value) {
483
+ return typeof value === "object" && value !== null;
484
+ }
485
+ function defaultsResult(spec) {
486
+ return {
487
+ params: { ...spec.defaults },
488
+ assignment: null
489
+ };
490
+ }
491
+ function buildAssignment(payload) {
492
+ const flagKey = payload.flagKey;
493
+ const experimentId = payload.experimentId;
494
+ const experimentName = payload.experimentName;
495
+ const arm = payload.arm;
496
+ if (typeof flagKey !== "string" || typeof experimentId !== "string" || typeof experimentName !== "string" || typeof arm !== "string" || !flagKey || !experimentId || !experimentName || !arm) return null;
497
+ return {
498
+ flagKey,
499
+ experimentId,
500
+ experimentName,
501
+ variant: arm
502
+ };
503
+ }
504
+ function evaluateExperimentPayload(spec, raw) {
505
+ if (raw === EXPERIMENT_UNAVAILABLE_SENTINEL) return defaultsResult(spec);
506
+ if (!isRecord(raw) || raw.schema !== "v1") return defaultsResult(spec);
507
+ const status = raw.status;
508
+ if (status !== "ongoing" && status !== "completed" && status !== "not_allocated") return defaultsResult(spec);
509
+ if (status === "not_allocated") return defaultsResult(spec);
510
+ const rawParams = isRecord(raw.params) ? raw.params : {};
511
+ const parsedParams = spec.parseParams(rawParams);
512
+ if (parsedParams === null) return defaultsResult(spec);
513
+ const params = {
514
+ ...spec.defaults,
515
+ ...parsedParams
516
+ };
517
+ if (status === "completed") return {
518
+ params,
519
+ assignment: null
520
+ };
521
+ if (!getFeatureGate(EXPERIMENT_ASSIGNED_ANALYTICS_EVENT_GATE).enabled) return {
522
+ params,
523
+ assignment: null
524
+ };
525
+ return {
526
+ params,
527
+ assignment: buildAssignment(raw)
528
+ };
529
+ }
530
+ /**
531
+ * Resolves an object-shaped experiment param with exposure suppressed (phase 1).
532
+ * Pass `store` when the caller already holds a reactive parameter-store handle
533
+ * (UI hooks) so the read logs exposure through that handle instead.
534
+ */
535
+ function resolveExperiment(spec, options) {
536
+ return evaluateExperimentPayload(spec, (options?.store ?? getFeatureParameterStore("onboarding_web_sdk_ps", { disableExposureLog: true })).get(spec.storeParam, EXPERIMENT_UNAVAILABLE_SENTINEL));
537
+ }
538
+ /**
539
+ * Phase 1 (core). Memoized for the SDK session: the first resolution is the arm
540
+ * the user actually experiences, so later identity changes cannot retroactively
541
+ * rewrite it. Exposure suppressed.
542
+ */
543
+ function resolveExperimentOnce(spec) {
544
+ const memoized = resolvedExperiments.get(spec.storeParam);
545
+ if (memoized) return memoized;
546
+ const resolved = resolveExperiment(spec);
547
+ resolvedExperiments.set(spec.storeParam, resolved);
548
+ return resolved;
549
+ }
550
+ /**
551
+ * Phase 2 (core). Performs the exposing read for its Statsig side effect at
552
+ * most once per SDK session (keyed by `storeParam`), then returns the memoized
553
+ * phase-1 assignment so analytics reports what the user saw.
554
+ */
555
+ function exposeExperimentOnce(spec) {
556
+ const memoized = resolvedExperiments.get(spec.storeParam);
557
+ if (exposedExperiments.has(spec.storeParam)) return memoized?.assignment ?? null;
558
+ exposedExperiments.add(spec.storeParam);
559
+ const raw = getFeatureParameterStore(ONBOARDING_WEB_SDK_PARAMETER_STORE, { disableExposureLog: false }).get(spec.storeParam, EXPERIMENT_UNAVAILABLE_SENTINEL);
560
+ if (memoized) return memoized.assignment;
561
+ const resolved = evaluateExperimentPayload(spec, raw);
562
+ resolvedExperiments.set(spec.storeParam, resolved);
563
+ return resolved.assignment;
564
+ }
565
+ /** Clears phase-1 memoization and phase-2 exposure dedup. Called from SDK `reset()`. */
566
+ function resetResolvedExperiments() {
567
+ resolvedExperiments.clear();
568
+ exposedExperiments.clear();
569
+ }
570
+ //#endregion
571
+ //#region src/integrations/feature-management/experimentParams.ts
572
+ const booleanParam = (defaultValue) => ({
573
+ default: defaultValue,
574
+ isValid: (value) => typeof value === "boolean"
575
+ });
576
+ const numberParam = (defaultValue, bounds = {}) => ({
577
+ default: defaultValue,
578
+ isValid: (value) => typeof value === "number" && Number.isFinite(value) && (!bounds.integer || Number.isInteger(value)) && (bounds.min === void 0 || value >= bounds.min) && (bounds.max === void 0 || value <= bounds.max)
579
+ });
580
+ /** Empty strings are console mistakes, not values. */
581
+ const stringParam = (defaultValue) => ({
582
+ default: defaultValue,
583
+ isValid: (value) => typeof value === "string" && value.length > 0
584
+ });
585
+ const enumParam = (defaultValue, allowed) => ({
586
+ default: defaultValue,
587
+ isValid: (value) => typeof value === "string" && allowed.includes(value)
588
+ });
589
+ /**
590
+ * Derives the `defaults` / `parseParams` half of an `ExperimentSpec` from a
591
+ * schema. An omitted param keeps its code default (control users still get
592
+ * shipped behavior); a present-but-invalid param rejects the whole payload so
593
+ * a corrupt console edit can never produce a half-applied treatment.
594
+ */
595
+ function defineExperimentParams(schema) {
596
+ const keys = Object.keys(schema);
597
+ return {
598
+ defaults: Object.freeze(keys.reduce((acc, key) => {
599
+ acc[key] = schema[key].default;
600
+ return acc;
601
+ }, {})),
602
+ parseParams(raw) {
603
+ const parsed = {};
604
+ for (const key of keys) {
605
+ if (!(key in raw) || raw[key] === void 0) continue;
606
+ const value = raw[key];
607
+ if (!schema[key].isValid(value)) return null;
608
+ parsed[key] = value;
609
+ }
610
+ return parsed;
611
+ }
612
+ };
613
+ }
614
+ //#endregion
615
+ export { resetFeatureManagement as C, applyEnvironment as D, updateFeatureManagementUser as E, getEnvironment as O, optOutFeatureManagement as S, subscribeFeatureManagement as T, getIsFeatureManagementInitialized as _, stringParam as a, initializeFeatureManagement as b, resetResolvedExperiments as c, ONBOARDING_WEB_SDK_PARAMETER_STORE as d, getExperiment as f, getFeatureParameterStore as g, getFeatureManagementVersion as h, numberParam as i, resetEnvironment as k, resolveExperiment as l, getFeatureGate as m, defineExperimentParams as n, EXPERIMENT_UNAVAILABLE_SENTINEL as o, getFeatureDynamicConfig as p, enumParam as r, exposeExperimentOnce as s, booleanParam as t, resolveExperimentOnce as u, getIsFeatureManagementLocked as v, resetFeatureManagementProviderInstance as w, logEvent as x, getLayer as y };