@incodetech/core 2.2.0 → 2.3.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/THIRD_PARTY_NOTICES.txt +281 -0
  2. package/dist/BaseWasmProvider-Dyi6dKp1.d.ts +65 -0
  3. package/dist/{BrowserDiagnosticsCryptoProvider-B8vorxN5.esm.js → BrowserDiagnosticsCryptoProvider-C_9o3L2L.esm.js} +1 -1
  4. package/dist/{BrowserVisibilityObserverProvider-BX1BiLDK.esm.js → BrowserVisibilityObserverProvider-BrJN1B8A.esm.js} +2 -0
  5. package/dist/FaceDetectionProvider-DTetAE8H.esm.js +476 -0
  6. package/dist/FaceDetectionProvider-LdZ47bWy.d.ts +36 -0
  7. package/dist/{IIdCaptureCapability-DHTT3FC2.d.ts → IIdCaptureCapability-RNiFhvXR.d.ts} +7 -33
  8. package/dist/IWasmUtilCapability-CXXDA5l1.d.ts +159 -0
  9. package/dist/{MotionSensorProvider-DGiV77J_.esm.js → MotionSensorProvider-BgTYwg9L.esm.js} +1 -1
  10. package/dist/{deepsightService-DLVQS_RH.d.ts → StreamCanvasCapture-B3YT2Bt6.d.ts} +54 -41
  11. package/dist/{StreamCanvasCapture-D2XcXCZ4.esm.js → StreamCanvasCapture-C9jtgBdT.esm.js} +2 -2
  12. package/dist/{addressSearch-D1XpBdUS.esm.js → addressSearch-BRSu_aGA.esm.js} +1 -1
  13. package/dist/advanceableErrors-CpF2cBy6.esm.js +21 -0
  14. package/dist/ae-signature.d.ts +4 -2
  15. package/dist/ae-signature.esm.js +1 -1
  16. package/dist/antifraud.esm.js +2 -2
  17. package/dist/{antifraudManager-CQFNgSPt.esm.js → antifraudManager-Bg9ynGum.esm.js} +2 -2
  18. package/dist/{antifraudStateMachine-Bf_JVNwn.esm.js → antifraudStateMachine-BHxehiJZ.esm.js} +1 -1
  19. package/dist/{apiError-BA1d_au0.esm.js → apiError-D0v5hFyN.esm.js} +14 -2
  20. package/dist/authentication.d.ts +3 -3
  21. package/dist/authentication.esm.js +2 -2
  22. package/dist/{authenticationManager-zh9TC62P.esm.js → authenticationManager-C4B4-29g.esm.js} +5 -5
  23. package/dist/{authenticationManager-BBMGTcwW.d.ts → authenticationManager-DXTIUcma.d.ts} +7 -1
  24. package/dist/{authenticationStateMachine-xzi-vnvE.esm.js → authenticationStateMachine-DJ0zUm-A.esm.js} +6 -62
  25. package/dist/avatar.d.ts +1 -2
  26. package/dist/avatar.esm.js +1 -1
  27. package/dist/{backCameraStream-CUeYm5eu.esm.js → backCameraStream-BOtyQowf.esm.js} +83 -22
  28. package/dist/{camera-_2sXMXiF.esm.js → camera-sIa9ceW2.esm.js} +19 -1
  29. package/dist/camera.esm.js +1 -1
  30. package/dist/{canvas-E1zGkel4.esm.js → canvas-BxFzWTt-.esm.js} +19 -0
  31. package/dist/certificate-issuance.d.ts +2 -302
  32. package/dist/certificate-issuance.esm.js +3 -66
  33. package/dist/certificateIssuanceManager-Bfvkq7Cy.esm.js +69 -0
  34. package/dist/certificateIssuanceManager-DCgEidHz.d.ts +312 -0
  35. package/dist/{certificateIssuanceStateMachine-D_R92TYu.esm.js → certificateIssuanceStateMachine-BBD5h8c4.esm.js} +1 -1
  36. package/dist/consent.d.ts +1 -1
  37. package/dist/consent.esm.js +2 -2
  38. package/dist/{consentManager-BxjpLZAG.esm.js → consentManager-B5Vqdez-.esm.js} +2 -2
  39. package/dist/{consentManager-3Pbtj-RV.d.ts → consentManager-uhDPdU6i.d.ts} +4 -4
  40. package/dist/{consentStateMachine-D9D4ON8Z.esm.js → consentStateMachine-DbUmqWgV.esm.js} +1 -1
  41. package/dist/createCameraCycleOwnership-DQ5-F2oW.esm.js +826 -0
  42. package/dist/{createFaceAvatar-DQKaRise.esm.js → createFaceAvatar-BNHdeFj8.esm.js} +2 -2
  43. package/dist/createFaceAvatar-BlcTYgJv.d.ts +497 -0
  44. package/dist/cross-document-data-match.esm.js +1 -1
  45. package/dist/{crossDocumentDataMatchManager-CGT0V6RV.esm.js → crossDocumentDataMatchManager-QMOGwHXR.esm.js} +2 -2
  46. package/dist/curp-validation.d.ts +1 -1
  47. package/dist/curp-validation.esm.js +2 -2
  48. package/dist/{curpValidationManager-6Nmkn5u1.esm.js → curpValidationManager-D1ppROcF.esm.js} +2 -2
  49. package/dist/{curpValidationManager-DVGr7Fq7.d.ts → curpValidationManager-SSKNrm5Z.d.ts} +1 -1
  50. package/dist/{curpValidationStateMachine-Ds7KMacK.esm.js → curpValidationStateMachine-DvUPC_8S.esm.js} +1 -1
  51. package/dist/custom-fields.d.ts +2 -114
  52. package/dist/custom-fields.esm.js +2 -232
  53. package/dist/custom-watchlist.d.ts +2 -51
  54. package/dist/custom-watchlist.esm.js +3 -70
  55. package/dist/customFieldsManager-2j_PBq4U.esm.js +264 -0
  56. package/dist/customFieldsManager-8-W2KY4n.d.ts +141 -0
  57. package/dist/customWatchlistManager-DUVrEdw9.esm.js +73 -0
  58. package/dist/customWatchlistManager-PBWHr_oM.d.ts +64 -0
  59. package/dist/{customWatchlistStateMachine-YWSgKLbF.esm.js → customWatchlistStateMachine-qZVgkKgP.esm.js} +1 -1
  60. package/dist/{deepsightLoader--wMKWECS.esm.js → deepsightLoader-Dm7ejW4v.esm.js} +27 -71
  61. package/dist/device.d.ts +25 -2
  62. package/dist/device.esm.js +69 -7
  63. package/dist/document-capture.d.ts +2 -2
  64. package/dist/document-capture.esm.js +2 -2
  65. package/dist/{documentCaptureManager-DsQQhWry.esm.js → documentCaptureManager-DR_Wv-3H.esm.js} +2 -2
  66. package/dist/{documentCaptureManager-B3t0ydtg.d.ts → documentCaptureManager-DensIj5F.d.ts} +83 -83
  67. package/dist/{documentCaptureStateMachine-BM4Ex_5x.esm.js → documentCaptureStateMachine-CWOATHfE.esm.js} +5 -5
  68. package/dist/dynamic-forms.d.ts +1 -1
  69. package/dist/dynamic-forms.esm.js +2 -2
  70. package/dist/{dynamicFormsManager-fhK0yINk.d.ts → dynamicFormsManager-D5R_uxLQ.d.ts} +25 -3
  71. package/dist/{dynamicFormsManager-fFVIRBNv.esm.js → dynamicFormsManager-Dt98SDfV.esm.js} +16 -5
  72. package/dist/{dynamicFormsStateMachine-D6D7oEYk.esm.js → dynamicFormsStateMachine-obKr4IIp.esm.js} +35 -3
  73. package/dist/ekyb.d.ts +1 -1
  74. package/dist/ekyb.esm.js +3 -3
  75. package/dist/{ekybManager-Y3MkoXpC.esm.js → ekybManager-DNZKrKF3.esm.js} +2 -2
  76. package/dist/{ekybStateMachine-3nlnqdlr.esm.js → ekybStateMachine-DjhHQXZ8.esm.js} +3 -3
  77. package/dist/ekyc.esm.js +2 -2
  78. package/dist/{ekycManager-DgT48ky6.esm.js → ekycManager-CmQBpeiI.esm.js} +2 -2
  79. package/dist/{ekycStateMachine-CQwqiR-R.esm.js → ekycStateMachine-CmdW2gVm.esm.js} +2 -2
  80. package/dist/electronic-signature.d.ts +3 -3
  81. package/dist/electronic-signature.esm.js +2 -2
  82. package/dist/electronicSignatureManager-Ds-KEVTq.d.ts +2786 -0
  83. package/dist/{electronicSignatureManager-DGbAJ00W.esm.js → electronicSignatureManager-DzulxM4_.esm.js} +357 -51
  84. package/dist/email.esm.js +2 -2
  85. package/dist/{emailManager-BY0jeYwR.esm.js → emailManager-B5ek_UfM.esm.js} +2 -2
  86. package/dist/{emailStateMachine-Crw8QVmc.esm.js → emailStateMachine-CyPFZ7dW.esm.js} +1 -1
  87. package/dist/{endpoints-CCzL3XD_.esm.js → endpoints-D3B9mUHh.esm.js} +24 -7
  88. package/dist/{events-DYiyoSlx.esm.js → events-ijlbX_Wx.esm.js} +2 -2
  89. package/dist/events.d.ts +1 -1
  90. package/dist/events.esm.js +1 -1
  91. package/dist/extensibility.d.ts +24 -64
  92. package/dist/extensibility.esm.js +35 -29
  93. package/dist/face-match.esm.js +2 -2
  94. package/dist/{faceCaptureManagerFactory-BxWPpxyd.d.ts → faceCaptureManagerFactory-CvtqcLxs.d.ts} +87 -54
  95. package/dist/{faceCaptureManagerFactory-CVnZ0fa5.esm.js → faceCaptureManagerFactory-pCmG4MeF.esm.js} +68 -7
  96. package/dist/faceCaptureSetup-BSextack.esm.js +2106 -0
  97. package/dist/{faceMatchManager-Ri4UbNz0.esm.js → faceMatchManager-Caal2zyV.esm.js} +2 -2
  98. package/dist/{faceMatchStateMachine-20DdZ3jg.esm.js → faceMatchStateMachine-BUc5FXYy.esm.js} +1 -1
  99. package/dist/{feature-management-CPQ4qv3F.esm.js → feature-management-B0sGlozZ.esm.js} +32 -7
  100. package/dist/feature-management.d.ts +1 -1
  101. package/dist/feature-management.esm.js +1 -1
  102. package/dist/field-comparison.esm.js +1 -1
  103. package/dist/{fieldComparisonManager-Cg6kPQQx.esm.js → fieldComparisonManager-BIs6HPJG.esm.js} +2 -2
  104. package/dist/fiscal-qr.d.ts +2 -56
  105. package/dist/fiscal-qr.esm.js +2 -308
  106. package/dist/fiscalQrManager-Bp_-3LJr.esm.js +34131 -0
  107. package/dist/fiscalQrManager-CHcBJwUM.d.ts +68 -0
  108. package/dist/flow-events.d.ts +1 -1
  109. package/dist/flow.d.ts +212 -185
  110. package/dist/flow.esm.js +119 -30
  111. package/dist/{flowCompletionService-tfeoGre9.esm.js → flowCompletionService-CLtbWhSK.esm.js} +2 -2
  112. package/dist/{flowServices-f5Ruz7R9.esm.js → flowServices-B5FwukTQ.esm.js} +91 -26
  113. package/dist/geolocation.esm.js +2 -2
  114. package/dist/{geolocationManager-CH6RfqFH.esm.js → geolocationManager-DIw-xq9a.esm.js} +2 -2
  115. package/dist/{geolocationStateMachine-DmbWFely.esm.js → geolocationStateMachine-DpG0TFOU.esm.js} +3 -3
  116. package/dist/getBrowser-CBiibsL-.esm.js +19 -0
  117. package/dist/{getBrowser-DNrQeL4T.esm.js → getBrowser-Cbe1C4Tn.esm.js} +2 -1
  118. package/dist/{getDeviceClass-9y-kbVDw.esm.js → getDeviceClass-5NYZg9s6.esm.js} +2 -2
  119. package/dist/getParsedUserAgent-B2iFDql1.esm.js +1278 -0
  120. package/dist/government-validation.d.ts +2 -85
  121. package/dist/government-validation.esm.js +3 -120
  122. package/dist/governmentValidationManager-D02vT4yY.d.ts +63 -0
  123. package/dist/governmentValidationManager-TjC9iVjH.esm.js +79 -0
  124. package/dist/governmentValidationStateMachine-D1ZnEqdd.esm.js +54 -0
  125. package/dist/home.d.ts +1 -1
  126. package/dist/home.esm.js +1 -1
  127. package/dist/id-ocr.d.ts +2 -2
  128. package/dist/id-ocr.esm.js +2 -2
  129. package/dist/id-selfie-flow.d.ts +3 -2
  130. package/dist/id-selfie-flow.esm.js +11 -10
  131. package/dist/id-verification.esm.js +2 -2
  132. package/dist/id.d.ts +29 -5
  133. package/dist/id.esm.js +48 -46
  134. package/dist/idCaptureDefaults-BcxjQDI3.esm.js +484 -0
  135. package/dist/{idCaptureManager-CqrqSjJV.d.ts → idCaptureManager-CvmHOWWd.d.ts} +227 -39
  136. package/dist/{idCaptureManager-BYwTZ2H8.esm.js → idCaptureManager-Vby8oYqh.esm.js} +259 -46
  137. package/dist/{idCaptureServices-44kwQItl.esm.js → idCaptureServices-CJIxD9ep.esm.js} +342 -31
  138. package/dist/idCaptureStateMachine-CmqihkUy.esm.js +5343 -0
  139. package/dist/{idOcrManager-DXc_xRN7.d.ts → idOcrManager-BF_cXZq8.d.ts} +1 -1
  140. package/dist/{idOcrManager-BIQYQXXj.esm.js → idOcrManager-DHU22hVn.esm.js} +2 -2
  141. package/dist/{idOcrStateMachine-cSxzHpHt.esm.js → idOcrStateMachine-33UvRAHE.esm.js} +1 -1
  142. package/dist/{idVerificationManager-JpV_SAsl.esm.js → idVerificationManager-CyaixD0D.esm.js} +2 -2
  143. package/dist/{idVerificationStateMachine-nPeUNyFq.esm.js → idVerificationStateMachine-BPGrQZEm.esm.js} +1 -1
  144. package/dist/identity-reuse.esm.js +2 -2
  145. package/dist/{identityReuseManager-kNCg9AbD.esm.js → identityReuseManager-CWaNHBO3.esm.js} +2 -2
  146. package/dist/{identityReuseStateMachine-DyulxDjP.esm.js → identityReuseStateMachine-CQgnATo5.esm.js} +1 -1
  147. package/dist/{index-CLMF0QLQ.d.ts → index-DLcJT5YP.d.ts} +1 -1
  148. package/dist/index.d.ts +1 -1
  149. package/dist/index.esm.js +1 -1
  150. package/dist/{invokeOnCaptureCallback-GpvMuz9o.esm.js → invokeOnCaptureCallback-BjzPjJ_p.esm.js} +1 -1
  151. package/dist/mandatory-consent.d.ts +2 -2
  152. package/dist/mandatory-consent.esm.js +2 -2
  153. package/dist/{mandatoryConsentManager-DyPzUmsZ.d.ts → mandatoryConsentManager-CJSyhTpi.d.ts} +5 -5
  154. package/dist/{mandatoryConsentManager-B4Niyg_u.esm.js → mandatoryConsentManager-Du-m-tZ_.esm.js} +2 -2
  155. package/dist/{mandatoryConsentStateMachine-B4-1u-L8.esm.js → mandatoryConsentStateMachine-DSDAk7WZ.esm.js} +1 -1
  156. package/dist/multipartRecordingService-B3C_zlev.esm.js +594 -0
  157. package/dist/{permissionGuards-KINpmKtI.esm.js → permissionGuards-uYZYFu4J.esm.js} +1 -1
  158. package/dist/{permissionServices-UvUcOSRb.esm.js → permissionServices-Bj_fyWtv.esm.js} +5 -5
  159. package/dist/personhood.d.ts +6 -5
  160. package/dist/personhood.esm.js +10 -10
  161. package/dist/phone.esm.js +2 -2
  162. package/dist/{phoneManager-FsJ0W2Ei.esm.js → phoneManager-N1-sbrY4.esm.js} +2 -2
  163. package/dist/{phoneStateMachine-Ba0wKHyX.esm.js → phoneStateMachine-jl8LJKCo.esm.js} +1 -1
  164. package/dist/{platform-BJrm5nzZ.esm.js → platform-DkcRc9JV.esm.js} +29 -1
  165. package/dist/qe-signature.d.ts +5 -3
  166. package/dist/qe-signature.esm.js +2 -2
  167. package/dist/recordingsRepository-CCWy13M-.esm.js +72 -0
  168. package/dist/redirect-to-mobile.esm.js +2 -2
  169. package/dist/{redirectToMobileManager-y4VQB11M.esm.js → redirectToMobileManager-DsFzdTwA.esm.js} +2 -2
  170. package/dist/{redirectToMobileStateMachine-Cyv2x0PP.esm.js → redirectToMobileStateMachine-v3otpT-L.esm.js} +1 -1
  171. package/dist/{rolldown-runtime-FZ4Itg2g.esm.js → rolldown-runtime-FDOR9p9I.esm.js} +1 -19
  172. package/dist/{runChildModule-Dukuw23X.esm.js → runChildModule-TuyGE00X.esm.js} +3 -21
  173. package/dist/safeStorage-B-trhxg6.esm.js +423 -0
  174. package/dist/{sdkVersion-D1Bm59g6.esm.js → sdkVersion-CLxKvdyz.esm.js} +1 -1
  175. package/dist/selfie.d.ts +5 -5
  176. package/dist/selfie.esm.js +14 -76
  177. package/dist/{selfieErrorUtils-C2PYBVsp.esm.js → selfieErrorUtils-C77GXJH6.esm.js} +30 -4
  178. package/dist/{selfieManager-Bj6B2ZVy.esm.js → selfieManager-CihVnODO.esm.js} +5 -5
  179. package/dist/{selfieManager-DwlCppg0.d.ts → selfieManager-D1KRJ39M.d.ts} +8 -11
  180. package/dist/selfieStateMachine-fwMmNtOi.esm.js +69 -0
  181. package/dist/{session-BFdLgN4i.esm.js → session-BHIeAamR.esm.js} +4 -5
  182. package/dist/session.d.ts +21 -11
  183. package/dist/session.esm.js +5 -5
  184. package/dist/{sessionInitializer-dlfDehHk.esm.js → sessionInitializer-BLoK7SP9.esm.js} +187 -68
  185. package/dist/{setup-BgoWtvIS.d.ts → setup-Cv-JM9QC.d.ts} +63 -69
  186. package/dist/{setup-BIAtLa8k.esm.js → setup-msLybMbC.esm.js} +226 -100
  187. package/dist/signature.esm.js +2 -2
  188. package/dist/{signatureManager-Ca43yhwk.esm.js → signatureManager-ChsB-nMD.esm.js} +2 -2
  189. package/dist/{signatureStateMachine-K1LMRrxG.esm.js → signatureStateMachine-BHPwkJZS.esm.js} +1 -1
  190. package/dist/{src-0Jurt29N.esm.js → src-35ekGRzK.esm.js} +1 -1
  191. package/dist/{stats-B0nFKawG.esm.js → stats-DkK-f8JT.esm.js} +1 -1
  192. package/dist/stats.esm.js +1 -1
  193. package/dist/{trueSightService---iW2KKJ.esm.js → trueSightService-CKrrfV0Q.esm.js} +7 -7
  194. package/dist/trust-graph.esm.js +1 -1
  195. package/dist/{types-BX_XkMsQ2.d.ts → types-9_esGTPj.d.ts} +1 -1
  196. package/dist/types-BT_Oalip.d.ts +1 -0
  197. package/dist/{types-DelMqZLe.d.ts → types-BjSly8cp.d.ts} +1 -1
  198. package/dist/{types-Hmd7U0JA.d.ts → types-CM-jtjJ2.d.ts} +6 -81
  199. package/dist/{types-Bdf8_LYB2.d.ts → types-CjKBS37a2.d.ts} +303 -13
  200. package/dist/{types-DVmXIdzW.d.ts → types-D0gekt4U.d.ts} +38 -5
  201. package/dist/types-DgDvvzg0.d.ts +10 -0
  202. package/dist/{types-KPvmag_B.d.ts → types-Do5rEXij.d.ts} +7 -4
  203. package/dist/types-ZT1XFIJ8.d.ts +6 -0
  204. package/dist/video-selfie.d.ts +59 -35
  205. package/dist/video-selfie.esm.js +510 -601
  206. package/dist/{videoSelfieCameraWarmer-NEhFZvWx.esm.js → videoSelfieCameraWarmer-CB1IzZkt.esm.js} +14 -153
  207. package/dist/videoSelfieFlowModuleMachine-BUe2uACW.esm.js +32 -0
  208. package/dist/{videoSelfieStepDetector-D3oo2ofo.d.ts → videoSelfieStepDetector-5YHFe0Mq.d.ts} +21 -5
  209. package/dist/virtualCameraCheck-WOloJ-do.esm.js +48 -0
  210. package/dist/warmup-CUUnwYxe.esm.js +714 -0
  211. package/dist/warmup-Cis2p6O0.d.ts +128 -0
  212. package/dist/wasm.d.ts +30 -6
  213. package/dist/wasm.esm.js +36 -4
  214. package/dist/{wasmDsFlagSync-BqUCwLY8.esm.js → wasmDsFlagSync-B2e8p268.esm.js} +2 -2
  215. package/dist/{wasmWebClient-DM8lkb0z.esm.js → wasmWebClient-B7baE-Wf.esm.js} +358 -28
  216. package/dist/watchlist-for-business.d.ts +2 -78
  217. package/dist/watchlist-for-business.esm.js +3 -102
  218. package/dist/watchlist.esm.js +2 -2
  219. package/dist/watchlistForBusinessManager-CpuuB1J2.esm.js +107 -0
  220. package/dist/watchlistForBusinessManager-CsnJnG-C.d.ts +99 -0
  221. package/dist/{watchlistForBusinessStateMachine-CxFnlshm.esm.js → watchlistForBusinessStateMachine-DEzgjz7C.esm.js} +13 -6
  222. package/dist/{watchlistManager-LoNZH9qm.esm.js → watchlistManager-CI8BHFob.esm.js} +2 -2
  223. package/dist/{watchlistStateMachine-DIKQDoUT.esm.js → watchlistStateMachine-DvOby3a-.esm.js} +1 -1
  224. package/dist/workflow.d.ts +12 -8
  225. package/dist/workflow.esm.js +48 -39
  226. package/package.json +4 -10
  227. package/dist/BrowserStorageProvider-k-FDkC4W.esm.js +0 -67
  228. package/dist/FaceDetectionProvider-Mh6q3EbA.d.ts +0 -349
  229. package/dist/IFaceAvatarCapability-BrL19G0s.d.ts +0 -23
  230. package/dist/IStorageCapability-ORkQfK3F.d.ts +0 -242
  231. package/dist/OpenViduRecordingProvider-Du98qevC.esm.js +0 -85
  232. package/dist/createFaceAvatar-BEj18KXi.d.ts +0 -50
  233. package/dist/document-upload.d.ts +0 -325
  234. package/dist/document-upload.esm.js +0 -197
  235. package/dist/electronicSignatureManager-CcUXQZS7.d.ts +0 -1300
  236. package/dist/faceCaptureSetup-Cd-04W_X.esm.js +0 -863
  237. package/dist/getBrowser-Cb8Zgrgp.esm.js +0 -7
  238. package/dist/getParsedUserAgent-pJjATANs.esm.js +0 -1622
  239. package/dist/governmentValidationStateMachine-CK9DrZXX.esm.js +0 -226
  240. package/dist/idCaptureDefaults-WeHbQM7W.esm.js +0 -225
  241. package/dist/idCaptureStateMachine-kZ5OpdfM.esm.js +0 -3342
  242. package/dist/lib-DAyUtOTj.esm.js +0 -12420
  243. package/dist/manualReviewService-D4IkipnN.esm.js +0 -15
  244. package/dist/mediaRecorderOptions-dALSV8af.esm.js +0 -40
  245. package/dist/onDeviceFaceResults-CUHwyZT4.esm.js +0 -646
  246. package/dist/openviduLazy-CCDpFWg1.esm.js +0 -10
  247. package/dist/recordingService-3NSENVwp.esm.js +0 -329
  248. package/dist/safeStorage-Ep56I-f_.esm.js +0 -982
  249. package/dist/selfieStateMachine-CHV_WNst.esm.js +0 -55
  250. package/dist/trueSight-B_icM8r2.esm.js +0 -1
  251. package/dist/types-EELWyWpd.d.ts +0 -6
  252. package/dist/types-Vb4P9ovf.d.ts +0 -22
  253. package/dist/warmup-Dv2alr2-.d.ts +0 -82
  254. package/dist/wasmDefaults-DTUrftxR.esm.js +0 -125
  255. package/dist/{Face2DProvider-UUQt_vRC.esm.js → Face2DProvider-BF48sz5c.esm.js} +1 -1
  256. package/dist/{PrivacyLensProvider-D8PS7AJa.esm.js → PrivacyLensProvider-EwnC_C5n.esm.js} +1 -1
  257. /package/dist/{types-BfgmV7s72.d.ts → types-BfgmV7s7.d.ts} +0 -0
  258. /package/dist/{types-CJ7Yl9K-2.d.ts → types-CJ7Yl9K-.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { n as WasmPipeline } from "./warmup-Dv2alr2-.js";
1
+ import { c as WasmPipeline, i as WasmModuleConfig, n as WasmModelsConfig, t as WarmupConfig } from "./warmup-Cis2p6O0.js";
2
2
  import { s as TransactionalRiskIntelligenceSetupConfig } from "./index-BKOWUhxG.js";
3
3
  import { c as FeatureManagementRedactedUserInfo } from "./IFeatureManagementCapability-De8wpbGh.js";
4
4
  //#region src/internal/environment/environment.d.ts
@@ -11,46 +11,33 @@ type EnvironmentTier = 'development' | 'staging' | 'production';
11
11
  //#endregion
12
12
  //#region src/setup.d.ts
13
13
  /**
14
- * WASM warmup configuration. Path fields are optional; omitted values resolve to the Incode CDN defaults.
14
+ * WASM setup and warmup configuration.
15
+ *
16
+ * Binary and glue fields are optional here. Omitted fields resolve to the
17
+ * pinned Incode CDN release.
15
18
  */
16
- type WasmConfig = {
19
+ type WasmConfig = Partial<WasmModuleConfig> & WasmModelsConfig & {
17
20
  /**
18
- * Self-hosted WASM root directory. Resolves standard ml-wasm-kit filenames
19
- * under this path (`webLib.wasm`, `webLib.js`, `models/`, etc.). Pin a
20
- * specific version folder when self-hosting so SDK updates do not change
21
- * which binaries your app loads until you update this path.
21
+ * Root URL of a self-hosted directory that mirrors the ml-wasm-kit layout.
22
22
  *
23
- * Example: `https://my-cdn.example.com/ml-wasm-kit-release/v2.13.21`
23
+ * The SDK resolves both binaries, both glue files, and the `models`
24
+ * directory under this URL. Individual paths override derived values.
24
25
  *
25
- * Individual path fields override values derived from `basePath`.
26
+ * Use a versioned directory when the hosting system retains old releases.
26
27
  */
27
28
  basePath?: string;
28
- /** Path to the WASM binary */
29
- wasmPath?: string;
30
- /** Path to the SIMD-optimized WASM binary (optional) */
31
- wasmSimdPath?: string;
32
- /** Path to the WASM glue code (paired with `wasmPath`) */
33
- glueCodePath?: string;
34
29
  /**
35
- * Path to the SIMD-optimized WASM glue code (paired with `wasmSimdPath`).
36
- * If omitted, defaults to a sibling `.js` derived from `wasmSimdPath`.
30
+ * Pipelines to preload during `setup()`.
31
+ *
32
+ * The default preloads the standard selfie and ID capture pipelines.
33
+ * Pipelines that are not listed can still load later when a module needs
34
+ * them.
37
35
  */
38
- glueCodeSimdPath?: string;
39
- /** Whether to use SIMD optimizations (default: true) */
40
- useSimd?: boolean;
41
- /** Which pipelines to preload models for */
42
36
  pipelines?: WasmPipeline[];
43
37
  /**
44
- * Base path for ML model files. Models will be loaded from `${modelsBasePath}/${modelFileName}`.
45
- * If not provided, models are expected in a 'models' subdirectory relative to the WASM binary.
46
- */
47
- modelsBasePath?: string;
48
- /**
49
- * Enables the WASM module's verbose debug logging/console output.
38
+ * Enables verbose output from the native WASM module.
50
39
  *
51
- * Defaults to `false` — the SDK forces WASM into production mode, so the
52
- * native module stays quiet. Set to `true` only when you need the WASM
53
- * diagnostics while debugging.
40
+ * Defaults to `false`. Enable it only while diagnosing WASM behavior.
54
41
  */
55
42
  showLogs?: boolean;
56
43
  };
@@ -99,19 +86,6 @@ type SetupOptions = {
99
86
  * mounting `<incode-flow>`).
100
87
  */
101
88
  token?: string;
102
- /**
103
- * Video Selfie module configuration — see {@link VideoSelfieSetupOptions}.
104
- *
105
- * `videoSelfie.apiURL` points the module's multipart video upload at the
106
- * dedicated video-selfie-service (e.g.
107
- * `https://video-selfie-service.stage.incodetest.com`).
108
- *
109
- * **Testing/special-env override only — omit it in production.** When
110
- * omitted, the upload endpoints (`/v1/video-upload/*`) resolve against the
111
- * main `apiURL` like every other endpoint, and the production service mesh
112
- * (Istio) routes them to the video-selfie-service.
113
- */
114
- videoSelfie?: VideoSelfieSetupOptions;
115
89
  /** Custom headers to include in all requests */
116
90
  customHeaders?: Record<string, string>;
117
91
  /** Request timeout in milliseconds */
@@ -176,7 +150,26 @@ type SetupOptions = {
176
150
  * `setup()` call.
177
151
  */
178
152
  encryption?: boolean | EncryptionOptions;
179
- /** Optional hosting app identifier for fingerprint tracking */
153
+ /**
154
+ * Identifies the hosting application in the device-fingerprint record.
155
+ * Defaults to `'Web SDK'`. The payload has no separate field for the host's
156
+ * own version, so put your build in this string if you need to report it.
157
+ *
158
+ * Intended for Incode-owned host applications, and deliberately left out of
159
+ * the published integration docs: the field is what separates our own apps
160
+ * from third-party embeds in that record, so integrators should leave it
161
+ * unset and let it default.
162
+ *
163
+ * Registered client-side rather than consumed once: it becomes the default
164
+ * `hostingApp` for every later activation, including the internal
165
+ * `initializeSession` calls made by `<incode-flow>`, `<incode-workflow>` and
166
+ * standalone modules — those carry a token but no host identity, so without
167
+ * this they would report the default. An explicit
168
+ * `initializeSession({ hostingApp })` still wins.
169
+ *
170
+ * Sticky across `setup()` calls: a follow-up call that omits it keeps the
171
+ * value registered by an earlier one. `reset()` clears it.
172
+ */
180
173
  hostingApp?: string;
181
174
  /**
182
175
  * Disables the third-party public-IP lookup (`api.ipify.org`) used to
@@ -199,11 +192,16 @@ type SetupOptions = {
199
192
  * collected during face capture (selfie/authentication/id/personhood) — the
200
193
  * descriptive device fields and `webglFingerprint` are unaffected.
201
194
  *
202
- * When `false`, also enables WASM on-device mode: the native WASM module
203
- * skips its own full fingerprint collection and keeps only the
204
- * device-detection DTO. Applied immediately and honored by every
205
- * subsequent WASM warmup (setup-time or lazy, e.g. triggered later by
206
- * `<incode-flow>`/`<incode-workflow>`).
195
+ * This option controls only the client-side JavaScript collection and
196
+ * submission path. It does **not** suppress native fingerprint collection:
197
+ * against the pinned `v2.14.50-post1` runtime, WASM starts collecting during
198
+ * initialization regardless of this flag, and the full fingerprint bucket is
199
+ * serialized into the metadata bundle.
200
+ *
201
+ * This is a behaviour change from `v2.14.07-post7-post3`, where
202
+ * `fingerprint: false` additionally disabled native collection through
203
+ * ml-wasm-kit's `setOnDeviceMode`. That kill switch was never ported to the
204
+ * v2.14.4x line; restoring it is tracked as ENG-55971.
207
205
  *
208
206
  * Default: `true` (fingerprint submission enabled).
209
207
  */
@@ -330,30 +328,25 @@ type SetupOptions = {
330
328
  */
331
329
  environment?: EnvironmentTier;
332
330
  };
333
- /**
334
- * The `videoSelfie` option for {@link SetupOptions}.
335
- */
336
- type VideoSelfieSetupOptions = {
337
- /**
338
- * Base URL (origin) of the dedicated video-selfie-service that handles the
339
- * Video Selfie module's multipart video upload. The service authenticates
340
- * with the same session token as the main API — no extra credentials
341
- * needed. Only the Video Selfie module's recording upload uses this;
342
- * nothing else is affected.
343
- *
344
- * Testing/special-env override: in production the main `apiURL` serves the
345
- * upload paths too (the service mesh routes `/v1/video-upload/*` to the
346
- * video-selfie-service), so this should normally stay unset. Set it only
347
- * where that routing doesn't exist — e.g. stage, or a self-hosted
348
- * environment that exposes the service on its own origin.
349
- */
350
- apiURL?: string;
351
- };
352
331
  /**
353
332
  * Object form of the `featureManagement` option for {@link SetupOptions}.
354
333
  * The boolean shorthand (`featureManagement: true`) is equivalent to `{}`.
355
334
  */
356
335
  type FeatureManagementSetupOptions = {
336
+ /**
337
+ * Whether `setup()` waits for feature management to finish loading gate and
338
+ * experiment values before it resolves. Default `false`: `setup()` resolves
339
+ * as soon as the HTTP client is ready and the values load in the background
340
+ * (typically 150–250 ms sooner, which a host spends on `createSession` /
341
+ * mounting `<incode-flow>` instead). Reads made before loading settles
342
+ * return their documented defaults (`status: 'uninitialized'`); await
343
+ * `getIsFeatureManagementInitialized()` from
344
+ * `@incodetech/core/feature-management` when you need a value that early,
345
+ * or set `true` to restore the blocking behaviour. `<incode-flow>` /
346
+ * `<incode-workflow>` and the SDK's own modules are unaffected: the identity
347
+ * update they depend on waits for readiness itself.
348
+ */
349
+ awaitInitialization?: boolean;
357
350
  /**
358
351
  * Integrator-scoped randomization/targeting unit, registered as
359
352
  * the `client_experiment_id` custom ID during initialization.
@@ -579,6 +572,7 @@ declare function initializeWasmUtil(config?: WasmConfig): Promise<void>;
579
572
  * @param pipelines - The pipelines to ensure are loaded.
580
573
  */
581
574
  declare function ensureWasmPipelines(pipelines: readonly WasmPipeline[]): Promise<void>;
575
+ declare function resolveWasmConfigForPipelines(pipelines: readonly WasmPipeline[], override?: WasmConfig): WarmupConfig;
582
576
  /**
583
577
  * Replaces the active HTTP client with the WASM-backed one. Used internally
584
578
  * by lazy-loading UI components (`<incode-flow>`, `<incode-workflow>`) when
@@ -605,4 +599,4 @@ declare function isConfigured(): boolean;
605
599
  */
606
600
  declare function reset(): void;
607
601
  //#endregion
608
- export { isConfigured as a, setup as c, initializeWasmUtil as i, upgradeToWasmHttpClient as l, WasmConfig as n, reset as o, ensureWasmPipelines as r, setWasmConfig as s, SetupOptions as t };
602
+ export { isConfigured as a, setWasmConfig as c, initializeWasmUtil as i, setup as l, WasmConfig as n, reset as o, ensureWasmPipelines as r, resolveWasmConfigForPipelines as s, SetupOptions as t, upgradeToWasmHttpClient as u };
@@ -1,18 +1,156 @@
1
- import { a as resolveWasmConfig } from "./wasmDefaults-DTUrftxR.esm.js";
2
- import { o as setWasmOnDeviceMode, r as WasmUtilProvider, s as warmupWasm } from "./safeStorage-Ep56I-f_.esm.js";
3
- import { t as BrowserStorageProvider } from "./BrowserStorageProvider-k-FDkC4W.esm.js";
1
+ import { f as deriveSiblingJsPath, p as WASM_MODEL_FILES, v as buildModelVariantSources } from "./wasmWebClient-B7baE-Wf.esm.js";
2
+ import { i as setWasmOnDeviceMode, o as warmupWasm } from "./warmup-CUUnwYxe.esm.js";
3
+ import { r as WasmUtilProvider, t as resolveLocalStorage } from "./safeStorage-B-trhxg6.esm.js";
4
4
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
5
- import { C as resetFeatureManagement, D as applyEnvironment, O as getEnvironment, S as optOutFeatureManagement, b as initializeFeatureManagement, c as resetResolvedExperiments, k as resetEnvironment, v as getIsFeatureManagementLocked, w as resetFeatureManagementProviderInstance } from "./feature-management-CPQ4qv3F.esm.js";
5
+ import { C as resetFeatureManagement, D as applyEnvironment, O as getEnvironment, S as optOutFeatureManagement, b as initializeFeatureManagement, c as resetResolvedExperiments, k as resetEnvironment, v as getIsFeatureManagementLocked, w as resetFeatureManagementProviderInstance } from "./feature-management-B0sGlozZ.esm.js";
6
6
  import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
7
7
  import { a as resetApi, i as isApiConfigured, n as getApi, r as getToken, s as setHttpRequestObserver, t as api } from "./api-Bx3gKW_y.esm.js";
8
- import { S as upgradeToWasmHttpClient$1, b as installFreshHttpClient, g as noteTestingSignals, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as resetHttpClientState, y as getStoredHttpConfig } from "./trueSightService---iW2KKJ.esm.js";
9
- import { b as resetAnalyticsBatcher, c as resetExperimentAssignments, x as setAnalyticsBatcher, y as getAnalyticsBatcher } from "./events-DYiyoSlx.esm.js";
10
- import { a as resetSessionInit, d as resolveStandaloneFlowPolicy, f as setStandaloneFlowPolicy, i as initializeSession, l as registerFlowPreloader, o as setClientFingerprintEnabled, s as setClientIpLookupEnabled, u as resetStandaloneFlowPolicy, v as BrowserEnvironmentProvider } from "./sessionInitializer-dlfDehHk.esm.js";
11
- import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
12
- import "./trueSight-B_icM8r2.esm.js";
13
- import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-B0nFKawG.esm.js";
8
+ import { C as upgradeToWasmHttpClient$1, S as resetHttpClientState, _ as noteTestingSignals, b as getStoredHttpConfig, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as installFreshHttpClient } from "./trueSightService-CKrrfV0Q.esm.js";
9
+ import { b as resetAnalyticsBatcher, c as resetExperimentAssignments, x as setAnalyticsBatcher, y as getAnalyticsBatcher } from "./events-ijlbX_Wx.esm.js";
10
+ import { a as resetSessionInit, b as BrowserEnvironmentProvider, c as setClientIpLookupEnabled, d as registerFlowPreloader, f as resetStandaloneFlowPolicy, i as initializeSession, m as setStandaloneFlowPolicy, o as setClientFingerprintEnabled, p as resolveStandaloneFlowPolicy, s as setClientHostingApp } from "./sessionInitializer-BLoK7SP9.esm.js";
11
+ import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
12
+ import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-DkK-f8JT.esm.js";
14
13
  import { a as resetTRI, n as initializeTRI, o as resetTRIProviderInstance } from "./tri-4RsGrIt6.esm.js";
15
- import { n as preloadDashboardFlow, r as resetDashboardFlowCache } from "./flowServices-f5Ruz7R9.esm.js";
14
+ import { i as resetDashboardFlowCache, r as preloadDashboardFlow } from "./flowServices-B5FwukTQ.esm.js";
15
+ //#region ../infra/src/wasm/wasmDefaults.ts
16
+ const WASM_CDN_BASE_URL = "https://cdn.incodesmile.com/ml-wasm-kit-release";
17
+ /** The WASM version bundled and tested with this SDK release. */
18
+ const DEFAULT_WASM_VERSION = "v2.14.50-post1";
19
+ const PATH_KEYS = [
20
+ "wasmPath",
21
+ "wasmSimdPath",
22
+ "glueCodePath",
23
+ "glueCodeSimdPath",
24
+ "modelsBasePath"
25
+ ];
26
+ function isBlank(value) {
27
+ return value.trim() === "";
28
+ }
29
+ function hasDisallowedControlChars(value) {
30
+ for (let i = 0; i < value.length; i += 1) {
31
+ const code = value.charCodeAt(i);
32
+ if (code < 32 || code === 127) return true;
33
+ }
34
+ return false;
35
+ }
36
+ function isMalformedPath(value) {
37
+ const trimmed = value.trim();
38
+ if (trimmed === "") return false;
39
+ if (hasDisallowedControlChars(trimmed)) return true;
40
+ if (/^https?:\/\//i.test(trimmed)) try {
41
+ new URL(trimmed);
42
+ return false;
43
+ } catch {
44
+ return true;
45
+ }
46
+ return false;
47
+ }
48
+ function warnInvalidWasmPath(field, reason) {
49
+ if (reason === "empty") {
50
+ console.warn(`[Incode SDK] wasm.${field} is empty. Falling back to CDN default.`);
51
+ return;
52
+ }
53
+ console.warn(`[Incode SDK] wasm.${field} appears malformed. Falling back to CDN default.`);
54
+ }
55
+ function warnMalformedWasmPath(field) {
56
+ console.warn(`[Incode SDK] wasm.${field} appears malformed. Check the URL or path.`);
57
+ }
58
+ /**
59
+ * Validates merged WASM path strings. When overrides contained blank path
60
+ * values, callers should have already fallen back to defaults before this runs.
61
+ */
62
+ function validateWasmPaths(config) {
63
+ for (const key of PATH_KEYS) {
64
+ const value = config[key];
65
+ if (typeof value === "string" && isMalformedPath(value)) warnMalformedWasmPath(key);
66
+ }
67
+ }
68
+ function pickPath(key, overrides, defaultValue) {
69
+ if (!overrides || !(key in overrides)) return defaultValue;
70
+ const raw = overrides[key];
71
+ if (raw === void 0) return defaultValue;
72
+ if (typeof raw !== "string") return defaultValue;
73
+ if (isBlank(raw)) {
74
+ warnInvalidWasmPath(key, "empty");
75
+ return defaultValue;
76
+ }
77
+ if (isMalformedPath(raw)) {
78
+ warnInvalidWasmPath(key, "malformed");
79
+ return defaultValue;
80
+ }
81
+ return raw.trim();
82
+ }
83
+ function pickSource(key, overrides, defaultValue) {
84
+ if (!(key in overrides) || overrides[key] === void 0) return defaultValue;
85
+ const source = overrides[key];
86
+ if (typeof source !== "string") return source;
87
+ return pickPath(key, overrides, String(defaultValue));
88
+ }
89
+ function resolveBasePath(overrides) {
90
+ const defaultValue = `${WASM_CDN_BASE_URL}/${DEFAULT_WASM_VERSION}`;
91
+ if (!("basePath" in overrides) || overrides.basePath === void 0) return defaultValue;
92
+ const basePath = overrides.basePath;
93
+ if (typeof basePath !== "string" || isBlank(basePath) || isMalformedPath(basePath)) throw new Error("[Incode SDK] wasm.basePath is invalid.");
94
+ return basePath.trim();
95
+ }
96
+ /** Builds a WarmupConfig from a directory that mirrors the ml-wasm-kit CDN layout. */
97
+ function buildWasmConfigFromBasePath(basePath) {
98
+ const base = basePath.endsWith("/") ? basePath.slice(0, -1) : basePath;
99
+ return {
100
+ wasmPath: `${base}/webLib.wasm`,
101
+ wasmSimdPath: `${base}/webLibSimd.wasm`,
102
+ glueCodePath: `${base}/webLib.js`,
103
+ glueCodeSimdPath: `${base}/webLibSimd.js`,
104
+ modelsBasePath: `${base}/models`
105
+ };
106
+ }
107
+ /** Builds the standard WarmupConfig from the Incode CDN. */
108
+ function buildDefaultWasmConfig() {
109
+ return buildWasmConfigFromBasePath(`${WASM_CDN_BASE_URL}/${DEFAULT_WASM_VERSION}`);
110
+ }
111
+ const BARCODE_ENHANCE_MODEL_FILE = WASM_MODEL_FILES.barcode;
112
+ /**
113
+ * URL of the lazily-loaded PDF417 barcode enhancement model (US Smart Capture).
114
+ * Derived from the resolved `modelsBasePath` so self-hosted / air-gapped
115
+ * deployments resolve it correctly, falling back to the CDN default. Loaded on
116
+ * demand via `IIdCaptureCapability.setBarcodeEnhancementModel` — deliberately
117
+ * NOT part of any warmup model bundle.
118
+ */
119
+ function getBarcodeEnhanceModelUrl(modelsBasePath, variant = "current") {
120
+ const source = buildModelVariantSources(modelsBasePath ?? `${WASM_CDN_BASE_URL}/v2.14.50-post1/models`, BARCODE_ENHANCE_MODEL_FILE);
121
+ return typeof source === "string" ? source : source[variant];
122
+ }
123
+ /**
124
+ * Merges optional WASM path overrides with CDN defaults. Explicit non-blank
125
+ * paths take precedence. Blank override strings log a warning and fall back to defaults.
126
+ */
127
+ function resolveWasmConfig(overrides) {
128
+ if (!overrides) return buildDefaultWasmConfig();
129
+ const defaults = buildWasmConfigFromBasePath(resolveBasePath(overrides));
130
+ const resolvedWasmPath = pickSource("wasmPath", overrides, defaults.wasmPath);
131
+ const simdDefault = overrides.selfHosted ? resolvedWasmPath : defaults.wasmSimdPath;
132
+ const modelsDefault = defaults.modelsBasePath;
133
+ const resolvedWasmSimdPath = pickSource("wasmSimdPath", overrides, simdDefault);
134
+ const glueCodeSimdDefault = typeof resolvedWasmSimdPath === "string" ? deriveSiblingJsPath(resolvedWasmSimdPath) : defaults.glueCodeSimdPath;
135
+ const merged = {
136
+ wasmPath: resolvedWasmPath,
137
+ wasmSimdPath: resolvedWasmSimdPath,
138
+ glueCodePath: pickPath("glueCodePath", overrides, defaults.glueCodePath),
139
+ glueCodeSimdPath: pickPath("glueCodeSimdPath", overrides, glueCodeSimdDefault),
140
+ modelsBasePath: pickPath("modelsBasePath", overrides, modelsDefault),
141
+ useSimd: overrides.useSimd,
142
+ pipelines: overrides.pipelines,
143
+ pipelineModels: overrides.pipelineModels,
144
+ modelUrls: overrides.modelUrls,
145
+ legacyModelUrls: overrides.legacyModelUrls,
146
+ loadGlue: overrides.loadGlue,
147
+ loadGlueSimd: overrides.loadGlueSimd,
148
+ selfHosted: overrides.selfHosted
149
+ };
150
+ validateWasmPaths(merged);
151
+ return merged;
152
+ }
153
+ //#endregion
16
154
  //#region ../infra/src/providers/browser/BrowserPageLifecycleProvider.ts
17
155
  var BrowserPageLifecycleProvider = class {
18
156
  sendBeacon(url, body, contentType = "application/json") {
@@ -35,6 +173,71 @@ var BrowserPageLifecycleProvider = class {
35
173
  }
36
174
  };
37
175
  //#endregion
176
+ //#region ../infra/src/providers/browser/BrowserStorageProvider.ts
177
+ /**
178
+ * Browser-based storage provider wrapping localStorage.
179
+ * Handles JSON serialization/deserialization automatically.
180
+ *
181
+ * Degrades silently when the host makes localStorage unreachable: reads return
182
+ * `null` and writes are no-ops. Deliberately quiet — hosts that harden against
183
+ * self-XSS by deleting the global would otherwise see a warning on every call.
184
+ */
185
+ var BrowserStorageProvider = class {
186
+ /**
187
+ * Retrieves a value from localStorage.
188
+ * @param key - The storage key
189
+ * @returns The stored value, or null if not found or storage is unavailable
190
+ * @throws Error if stored value is invalid JSON
191
+ */
192
+ async get(key) {
193
+ const storage = resolveLocalStorage();
194
+ if (!storage) return null;
195
+ try {
196
+ const item = storage.getItem(key);
197
+ if (item === null) return null;
198
+ return JSON.parse(item);
199
+ } catch (error) {
200
+ if (error instanceof SyntaxError) throw new Error(`Invalid JSON stored at key "${key}": ${error.message}`);
201
+ throw error;
202
+ }
203
+ }
204
+ /**
205
+ * Stores a value in localStorage. No-op when storage is unavailable.
206
+ * @param key - The storage key
207
+ * @param value - The value to store (will be serialized as JSON)
208
+ * @throws Error if value cannot be serialized or quota is exceeded
209
+ */
210
+ async set(key, value) {
211
+ const storage = resolveLocalStorage();
212
+ if (!storage) return;
213
+ try {
214
+ const serialized = JSON.stringify(value);
215
+ storage.setItem(key, serialized);
216
+ } catch (error) {
217
+ if ((error instanceof DOMException || error.name === "QuotaExceededError") && error.name === "QuotaExceededError") throw new Error(`Storage quota exceeded for key "${key}"`);
218
+ if (error instanceof TypeError) throw new Error(`Failed to serialize value for key "${key}": ${error.message}`);
219
+ throw error;
220
+ }
221
+ }
222
+ /**
223
+ * Removes a value from localStorage. No-op when storage is unavailable.
224
+ * @param key - The storage key to remove
225
+ */
226
+ async remove(key) {
227
+ const storage = resolveLocalStorage();
228
+ if (!storage) return;
229
+ storage.removeItem(key);
230
+ }
231
+ /**
232
+ * Clears all values from localStorage. No-op when storage is unavailable.
233
+ */
234
+ async clear() {
235
+ const storage = resolveLocalStorage();
236
+ if (!storage) return;
237
+ storage.clear();
238
+ }
239
+ };
240
+ //#endregion
38
241
  //#region src/internal/events/AnalyticsBatchingService.ts
39
242
  const DEFAULT_MAX_BATCH_SIZE = 50;
40
243
  const DEFAULT_MAX_BATCH_AGE_MS = 1e3;
@@ -149,87 +352,6 @@ function createAnalyticsBatchingService(options) {
149
352
  };
150
353
  }
151
354
  //#endregion
152
- //#region src/internal/recordings/videoSelfieUploadService.ts
153
- /**
154
- * Origin of the dedicated video-selfie-service (e.g.
155
- * `https://video-selfie-service.stage.incodetest.com`), set from
156
- * `setup({ videoSelfie: { apiURL } })`. Testing/special-env override: when
157
- * unset (production), the upload endpoints resolve against the main `apiURL`
158
- * and the service mesh (Istio) routes them to the service. The service
159
- * accepts the same session token; the shared `api` client attaches it either
160
- * way.
161
- */
162
- let serviceBaseUrl = null;
163
- function setVideoSelfieServiceUrl(url) {
164
- let trimmed = url ?? "";
165
- while (trimmed.endsWith("/")) trimmed = trimmed.slice(0, -1);
166
- serviceBaseUrl = trimmed || null;
167
- }
168
- function uploadUrl(path) {
169
- return serviceBaseUrl ? `${serviceBaseUrl}${path}` : path;
170
- }
171
- /**
172
- * Opens a multipart video-selfie upload session. Idempotent server-side: if
173
- * an upload is already in progress for the session, the same `uploadId`
174
- * comes back along with the parts already stored (`parts` non-empty) — but
175
- * always with a fresh `epoch` that locks out whoever held the previous one.
176
- */
177
- async function initiateVideoSelfieUpload() {
178
- const response = await api.post(uploadUrl(endpoints.videoSelfieUploadInitiate));
179
- return {
180
- uploadId: response.data.uploadId,
181
- epoch: response.data.epoch,
182
- parts: response.data.parts ?? []
183
- };
184
- }
185
- /**
186
- * Uploads a single chunk as a multipart part. The body is the raw video bytes
187
- * (no base64, no client-side encryption — encryption at rest is server-side
188
- * S3 SSE). Every part except the last must be >= 5 MiB (enforced
189
- * server-side). Returns the part number + `etag` needed to complete the
190
- * upload. Rejects with a `409` status when a newer initiate fenced this
191
- * session out.
192
- */
193
- async function uploadVideoSelfiePart(session, partNumber, chunk) {
194
- const response = await api.post(uploadUrl(endpoints.videoSelfieUploadPart), chunk, {
195
- query: {
196
- uploadId: session.uploadId,
197
- epoch: session.epoch,
198
- partNumber
199
- },
200
- headers: { "Content-Type": "application/octet-stream" }
201
- });
202
- return {
203
- partNumber: response.data.partNumber,
204
- etag: response.data.etag
205
- };
206
- }
207
- /**
208
- * Finalizes the upload. The service assembles from the parts it stored; the
209
- * optional `parts` list is deliberately NOT sent — chunks staged below the
210
- * S3 minimum are combined and renumbered server-side, so a client-side list
211
- * could contradict the authoritative one. Safe to repeat if the response
212
- * was lost. Returns the server-reported status. Rejects with `400` naming a
213
- * missing part when the sequence has a hole.
214
- */
215
- async function completeVideoSelfieUpload(session) {
216
- return (await api.post(uploadUrl(endpoints.videoSelfieUploadComplete), {
217
- uploadId: session.uploadId,
218
- epoch: session.epoch
219
- })).data.status;
220
- }
221
- /**
222
- * Discards an in-progress upload and everything already sent for it, so the
223
- * backend fails the upload straight away instead of waiting for its expiry.
224
- * Call when a recording is abandoned or its upload can no longer complete.
225
- */
226
- async function abortVideoSelfieUpload(session) {
227
- return (await api.post(uploadUrl(endpoints.videoSelfieUploadAbort), {
228
- uploadId: session.uploadId,
229
- epoch: session.epoch
230
- })).data.status;
231
- }
232
- //#endregion
233
355
  //#region ../infra/src/providers/browser/DevtoolsDetectorProvider.ts
234
356
  var DevtoolsDetectorProvider = class {
235
357
  constructor() {
@@ -552,11 +674,11 @@ async function setup(options) {
552
674
  setStandaloneFlowPolicy(standaloneFlowPolicy);
553
675
  registerFlowPreloader(preloadDashboardFlow);
554
676
  if (options.ipLookup !== void 0) setClientIpLookupEnabled(options.ipLookup);
677
+ if (options.hostingApp !== void 0) setClientHostingApp(options.hostingApp);
555
678
  if (options.fingerprint !== void 0) {
556
679
  setClientFingerprintEnabled(options.fingerprint);
557
680
  setWasmOnDeviceMode(options.fingerprint === false);
558
681
  }
559
- if (options.videoSelfie?.apiURL !== void 0) setVideoSelfieServiceUrl(options.videoSelfie.apiURL);
560
682
  if (!getAnalyticsBatcher()) setAnalyticsBatcher(createAnalyticsBatchingService({
561
683
  endpoint: endpoints.events,
562
684
  authToken: () => getToken(),
@@ -595,10 +717,7 @@ async function setup(options) {
595
717
  throw error;
596
718
  }
597
719
  if (options.token && isApiConfigured()) {
598
- const sessionOptions = {
599
- token: options.token,
600
- hostingApp: options.hostingApp
601
- };
720
+ const sessionOptions = { token: options.token };
602
721
  if (shouldPreloadFlow) sessionOptions.preloadFlow = true;
603
722
  const sessionPromise = initializeSession(sessionOptions);
604
723
  if (shouldPreloadFlow) await sessionPromise;
@@ -633,7 +752,7 @@ async function setup(options) {
633
752
  if (!getIsFeatureManagementLocked()) if (options.featureManagement === false) optOutFeatureManagement();
634
753
  else {
635
754
  const featureManagementSetupOptions = typeof options.featureManagement === "object" ? options.featureManagement : {};
636
- await initializeFeatureManagement({
755
+ const featureManagementReady = initializeFeatureManagement({
637
756
  environment: getEnvironment(),
638
757
  clientExperimentId: featureManagementSetupOptions.clientExperimentId,
639
758
  disableStableId: featureManagementSetupOptions.disableStableId,
@@ -642,6 +761,7 @@ async function setup(options) {
642
761
  appVersion: featureManagementSetupOptions.appVersion,
643
762
  redactedUserInfo: featureManagementSetupOptions.redactedUserInfo
644
763
  });
764
+ if (featureManagementSetupOptions.awaitInitialization === true) await featureManagementReady;
645
765
  }
646
766
  else if (options.featureManagement !== void 0) console.error("[FeatureManagement] Feature management is locked after the first setup() call and cannot be changed (re-enabled, disabled, or reconfigured). Ignoring this change. Call reset() before changing it.");
647
767
  if (options.tri) await initializeTRI(options.tri, { sessionToken: options.token });
@@ -691,6 +811,12 @@ async function ensureWasmPipelines(pipelines) {
691
811
  pipelines: [...pipelines]
692
812
  });
693
813
  }
814
+ function resolveWasmConfigForPipelines(pipelines, override) {
815
+ return resolveWasmConfig({
816
+ ...override ?? wasmConfig ?? {},
817
+ pipelines: [...pipelines]
818
+ });
819
+ }
694
820
  /**
695
821
  * Replaces the active HTTP client with the WASM-backed one. Used internally
696
822
  * by lazy-loading UI components (`<incode-flow>`, `<incode-workflow>`) when
@@ -731,8 +857,8 @@ function reset() {
731
857
  resetStandaloneFlowPolicy();
732
858
  setClientIpLookupEnabled(true);
733
859
  setClientFingerprintEnabled(true);
860
+ setClientHostingApp(void 0);
734
861
  setWasmOnDeviceMode(false);
735
- setVideoSelfieServiceUrl(null);
736
862
  resetAnalyticsBatcher();
737
863
  resetExperimentAssignments();
738
864
  resetResolvedExperiments();
@@ -748,4 +874,4 @@ function reset() {
748
874
  resetTrueSight();
749
875
  }
750
876
  //#endregion
751
- export { setWasmConfig as a, abortVideoSelfieUpload as c, uploadVideoSelfiePart as d, reset as i, completeVideoSelfieUpload as l, initializeWasmUtil as n, setup as o, isConfigured as r, upgradeToWasmHttpClient as s, ensureWasmPipelines as t, initiateVideoSelfieUpload as u };
877
+ export { resolveWasmConfigForPipelines as a, upgradeToWasmHttpClient as c, buildDefaultWasmConfig as d, buildWasmConfigFromBasePath as f, reset as i, BrowserStorageProvider as l, resolveWasmConfig as m, initializeWasmUtil as n, setWasmConfig as o, getBarcodeEnhanceModelUrl as p, isConfigured as r, setup as s, ensureWasmPipelines as t, DEFAULT_WASM_VERSION as u };
@@ -1,3 +1,3 @@
1
- import { t as signatureMachine } from "./signatureStateMachine-K1LMRrxG.esm.js";
2
- import { n as createSignatureManagerFromActor, t as createSignatureManager } from "./signatureManager-Ca43yhwk.esm.js";
1
+ import { t as signatureMachine } from "./signatureStateMachine-BHPwkJZS.esm.js";
2
+ import { n as createSignatureManagerFromActor, t as createSignatureManager } from "./signatureManager-ChsB-nMD.esm.js";
3
3
  export { createSignatureManager, createSignatureManagerFromActor, signatureMachine };
@@ -1,7 +1,7 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-DYiyoSlx.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ijlbX_Wx.esm.js";
2
2
  import { t as topLevelStateName } from "./topLevelStateName-B5i2avbh.esm.js";
3
3
  import { s as createActor, u as createManager } from "./xstate.esm-BuFLFuzz.esm.js";
4
- import { t as signatureMachine } from "./signatureStateMachine-K1LMRrxG.esm.js";
4
+ import { t as signatureMachine } from "./signatureStateMachine-BHPwkJZS.esm.js";
5
5
  //#region src/modules/signature/signatureActor.ts
6
6
  function createSignatureActor(options) {
7
7
  return createActor(signatureMachine, { input: { config: options.config } }).start();
@@ -1,5 +1,5 @@
1
1
  import { t as api } from "./api-Bx3gKW_y.esm.js";
2
- import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
2
+ import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
3
3
  import { i as assign, t as setup } from "./xstate.esm-BuFLFuzz.esm.js";
4
4
  import { n as fromPromise } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
5
5
  //#region src/modules/signature/signatureServices.ts
@@ -1,4 +1,4 @@
1
- import { t as __commonJSMin } from "./rolldown-runtime-FZ4Itg2g.esm.js";
1
+ import { t as __commonJSMin } from "./rolldown-runtime-FDOR9p9I.esm.js";
2
2
  //#region ../../node_modules/.pnpm/@statsig+client-core@3.33.3/node_modules/@statsig/client-core/src/Log.js
3
3
  var require_Log = /* @__PURE__ */ __commonJSMin(((exports) => {
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
1
  import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
2
- import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
2
+ import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
3
3
  //#region src/modules/stats/statsServices.ts
4
4
  const deviceStatsQueue = [];
5
5
  async function postDeviceStatsNow(stats) {
package/dist/stats.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-B0nFKawG.esm.js";
1
+ import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-DkK-f8JT.esm.js";
2
2
  export { addDeviceStats, flushDeviceStatsQueue, resetDeviceStatsQueue };