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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/3dAvatarProvider-ChciZmjE.esm.js +28214 -0
  2. package/dist/{BrowserStorageProvider-BpJM-gIl.esm.js → BrowserStorageProvider-CrrN540a.esm.js} +1 -8
  3. package/dist/BrowserVisibilityObserverProvider-rim9Jrz-.esm.js +25 -0
  4. package/dist/Face2DProvider-BeLlYBbB.esm.js +824 -0
  5. package/dist/FaceDetectionProvider-B78455D4.d.ts +119 -0
  6. package/dist/IVisibilityObserverCapability-BbWjgpiF.d.ts +12 -0
  7. package/dist/IWasmUtilCapability-d2XvzaCk.d.ts +145 -0
  8. package/dist/IpifyProvider-BRW14_uo.esm.js +51 -0
  9. package/dist/{OpenViduRecordingProvider-O4GjBseO.esm.js → OpenViduRecordingProvider-B_0GKkzc.esm.js} +1 -1
  10. package/dist/PrivacyLensProvider-hDzaDzZ6.esm.js +339 -0
  11. package/dist/{StreamCanvasCapture-ImiDQdVA.esm.js → StreamCanvasCapture-Bz17q4FP.esm.js} +1 -1
  12. package/dist/StreamCanvasCapture-DS1TOoiH.d.ts +42 -0
  13. package/dist/{WasmUtilProvider-BKWm8rSA.esm.js → WasmUtilProvider-ADG54T6M.esm.js} +26 -2
  14. package/dist/{addressSearch-DvmWXKZg.esm.js → addressSearch-DJyNTg5S.esm.js} +4 -4
  15. package/dist/{ae-signature-BFZta3TZ.esm.js → ae-signature-DlElqFrZ.esm.js} +1 -1
  16. package/dist/ae-signature.d.ts +4 -3
  17. package/dist/ae-signature.esm.js +10 -7
  18. package/dist/antifraud.d.ts +4 -3
  19. package/dist/antifraud.esm.js +7 -6
  20. package/dist/antifraudManager-BKdQoMFf.esm.js +84 -0
  21. package/dist/{antifraudManager-CznnhyvD.d.ts → antifraudManager-DpIvbrZP.d.ts} +2 -2
  22. package/dist/{antifraudStateMachine-Ccrb-Jxc.esm.js → antifraudStateMachine-C0NGnP9W.esm.js} +3 -3
  23. package/dist/{api-CESGtpbH.esm.js → api-DsbUi7TO.esm.js} +21 -2
  24. package/dist/authentication.d.ts +19 -13
  25. package/dist/authentication.esm.js +33 -27
  26. package/dist/{authenticationManager-CaiQbp-q.d.ts → authenticationManager-CdPbNS2H.d.ts} +13 -3
  27. package/dist/{authenticationManager-BlR6mSaG.esm.js → authenticationManager-Dtl1vcET.esm.js} +17 -8
  28. package/dist/{authenticationStateMachine-DkcGUMw5.esm.js → authenticationStateMachine-D-hOlg8p.esm.js} +20 -23
  29. package/dist/avatar.d.ts +3 -0
  30. package/dist/avatar.esm.js +3 -0
  31. package/dist/{backCameraStream-D7Wo4Nbx.esm.js → backCameraStream-ZyqrFyjO.esm.js} +3 -3
  32. package/dist/browser-DlFgHpoC-qLKs75Qp.esm.js +1425 -0
  33. package/dist/{browserSimulation-B1dWiXp7.esm.js → browserSimulation-TsSoavQv.esm.js} +153 -1216
  34. package/dist/camera-DUkgmYMo.esm.js +79 -0
  35. package/dist/camera.d.ts +7 -1
  36. package/dist/camera.esm.js +4 -4
  37. package/dist/{StreamCanvasCapture-yyl20qd9.d.ts → canvas-CJUmoXSD.d.ts} +1 -41
  38. package/dist/certificate-issuance.d.ts +312 -0
  39. package/dist/certificate-issuance.esm.js +74 -0
  40. package/dist/certificateIssuanceStateMachine-C07m7qtP.esm.js +127 -0
  41. package/dist/clientLifecycle-Ct7h9uxx.esm.js +534 -0
  42. package/dist/consent.d.ts +4 -3
  43. package/dist/consent.esm.js +7 -6
  44. package/dist/{consentManager-BYo9Nu1r.esm.js → consentManager-BtnPZUW4.esm.js} +30 -5
  45. package/dist/{consentManager-Cg5Sk2tv.d.ts → consentManager-DufVo9D9.d.ts} +55 -55
  46. package/dist/{consentStateMachine-BG3yL8aC.esm.js → consentStateMachine-DO2JqoZW.esm.js} +3 -3
  47. package/dist/cpf-ocr.d.ts +4 -3
  48. package/dist/cpf-ocr.esm.js +7 -6
  49. package/dist/{cpfOcrManager-sSKegxox.esm.js → cpfOcrManager-C4rLgKsu.esm.js} +6 -5
  50. package/dist/{cpfOcrManager-Dg1s_TY5.d.ts → cpfOcrManager-DqZZ94Gt.d.ts} +19 -19
  51. package/dist/createFaceAvatar-B8pFpy6o.d.ts +401 -0
  52. package/dist/createFaceAvatar-BOHDKQRq.esm.js +46 -0
  53. package/dist/cross-document-data-match.d.ts +2 -1
  54. package/dist/cross-document-data-match.esm.js +6 -5
  55. package/dist/curp-validation.d.ts +10 -7
  56. package/dist/curp-validation.esm.js +7 -6
  57. package/dist/{curpValidationManager-CFem6zP9.esm.js → curpValidationManager-BafobPXC.esm.js} +52 -5
  58. package/dist/{curpValidationManager-RttixpIc.d.ts → curpValidationManager-Co6LZAHT.d.ts} +4 -3
  59. package/dist/{curpValidationStateMachine-B7V_qp66.esm.js → curpValidationStateMachine-DXTPK6vI.esm.js} +3 -3
  60. package/dist/custom-fields.d.ts +4 -2
  61. package/dist/custom-fields.esm.js +49 -6
  62. package/dist/custom-watchlist.d.ts +2 -1
  63. package/dist/custom-watchlist.esm.js +27 -6
  64. package/dist/{customWatchlistStateMachine-HmFybXLX.esm.js → customWatchlistStateMachine-B4G3Chkx.esm.js} +3 -3
  65. package/dist/{deepsightLoader-8tnddNx-.esm.js → deepsightLoader-DHSVD776.esm.js} +14 -13
  66. package/dist/{deepsightService-CrHmvx8X.esm.js → deepsightService-CDahSjGP.esm.js} +9 -38
  67. package/dist/deepsightService-CMB9XjES.d.ts +69 -0
  68. package/dist/device.d.ts +9 -1
  69. package/dist/device.esm.js +5 -5
  70. package/dist/document-capture.d.ts +178 -177
  71. package/dist/document-capture.esm.js +78 -14
  72. package/dist/document-upload.d.ts +51 -50
  73. package/dist/document-upload.esm.js +10 -9
  74. package/dist/{documentCaptureStateMachine-CUTUzUw_.esm.js → documentCaptureStateMachine-DSOX2epf.esm.js} +7 -7
  75. package/dist/dynamic-forms.d.ts +4 -192
  76. package/dist/dynamic-forms.esm.js +8 -410
  77. package/dist/dynamicFormsManager-BOefZbyF.esm.js +168 -0
  78. package/dist/dynamicFormsManager-CUYLOj9g.d.ts +239 -0
  79. package/dist/dynamicFormsStateMachine-BXHcaocI.esm.js +284 -0
  80. package/dist/ekyb.d.ts +10 -6
  81. package/dist/ekyb.esm.js +62 -17
  82. package/dist/{ekybStateMachine-klc-AImJ.esm.js → ekybStateMachine-CCSeqjCt.esm.js} +5 -5
  83. package/dist/ekyc.d.ts +5 -3
  84. package/dist/ekyc.esm.js +55 -9
  85. package/dist/{ekycStateMachine-CXbpaJJn.esm.js → ekycStateMachine-DkLVTOyA.esm.js} +5 -5
  86. package/dist/electronic-signature.d.ts +4 -3
  87. package/dist/electronic-signature.esm.js +9 -6
  88. package/dist/{electronicSignatureManager-BaECdJ1u.esm.js → electronicSignatureManager-DjzUzqZj.esm.js} +135 -92
  89. package/dist/email.d.ts +5 -4
  90. package/dist/email.esm.js +9 -8
  91. package/dist/{emailManager--D5G3ChB.esm.js → emailManager-B_XzEsXH.esm.js} +47 -6
  92. package/dist/{emailManager-lAzDoQOs.d.ts → emailManager-fHASH6uo.d.ts} +4 -3
  93. package/dist/{emailStateMachine-CxTOMAjC.esm.js → emailStateMachine-fqJ42b19.esm.js} +5 -5
  94. package/dist/{endpoints-BeTK0Mlt.esm.js → endpoints-BzMJFAPV.esm.js} +15 -0
  95. package/dist/{events-Dvvriq9l.esm.js → events-CqGY1yMq.esm.js} +87 -206
  96. package/dist/events.d.ts +23 -16
  97. package/dist/events.esm.js +3 -2
  98. package/dist/extensibility.d.ts +37 -27
  99. package/dist/extensibility.esm.js +74 -57
  100. package/dist/externalFetch-CyhBfD-n.esm.js +22 -0
  101. package/dist/face-match.d.ts +2 -2
  102. package/dist/face-match.esm.js +6 -5
  103. package/dist/{faceCaptureManagerFactory-ej2j1LMr.esm.js → faceCaptureManagerFactory-2brKTzMb.esm.js} +115 -25
  104. package/dist/faceCaptureManagerFactory-CGKbf7zt.d.ts +400 -0
  105. package/dist/{faceCaptureSetup-B9t6bYze.esm.js → faceCaptureSetup-CDUVU1nl.esm.js} +97 -13
  106. package/dist/{faceMatchStateMachine-DeXXzSuz.esm.js → faceMatchStateMachine-DUeUjEPx.esm.js} +3 -3
  107. package/dist/field-comparison.d.ts +4 -3
  108. package/dist/field-comparison.esm.js +6 -5
  109. package/dist/{fieldComparisonManager-COGI2ARD.esm.js → fieldComparisonManager-B9W0a9A5.esm.js} +5 -4
  110. package/dist/{fieldComparisonManager-Bu5TaSr3.d.ts → fieldComparisonManager-DdLqDeB2.d.ts} +2 -2
  111. package/dist/fiscal-qr.d.ts +5 -3
  112. package/dist/fiscal-qr.esm.js +13 -12
  113. package/dist/flow-events.d.ts +8 -6
  114. package/dist/flow.d.ts +34 -16
  115. package/dist/flow.esm.js +53 -30
  116. package/dist/flowCompletionService-BIqSTZcd.d.ts +28 -0
  117. package/dist/flowCompletionService-qEqh_g14.esm.js +42 -0
  118. package/dist/{flowServices-ChgTNggJ.esm.js → flowServices-C4piblgx.esm.js} +24 -9
  119. package/dist/geolocation.d.ts +4 -126
  120. package/dist/geolocation.esm.js +8 -87
  121. package/dist/geolocationManager-BP2Do9O-.esm.js +123 -0
  122. package/dist/geolocationManager-Cs50eRlC.d.ts +156 -0
  123. package/dist/{geolocationStateMachine-Dvh7X0wF.esm.js → geolocationStateMachine-BYfOOOG0.esm.js} +4 -4
  124. package/dist/{getDeviceClass-C8Do2qYu.esm.js → getDeviceClass-DGGzzfqm.esm.js} +1 -1
  125. package/dist/getDeviceData-TrKM8NPh.esm.js +101 -0
  126. package/dist/government-validation.d.ts +4 -3
  127. package/dist/government-validation.esm.js +43 -8
  128. package/dist/{governmentValidationStateMachine-DcJ-BfsC.esm.js → governmentValidationStateMachine-CwoPPO8b.esm.js} +5 -5
  129. package/dist/home.d.ts +18 -15
  130. package/dist/home.esm.js +5 -4
  131. package/dist/http.d.ts +1 -0
  132. package/dist/http.esm.js +2 -2
  133. package/dist/id-ocr.d.ts +4 -625
  134. package/dist/id-ocr.esm.js +8 -84
  135. package/dist/id-verification.d.ts +28 -27
  136. package/dist/id-verification.esm.js +6 -5
  137. package/dist/id.d.ts +24 -13
  138. package/dist/id.esm.js +48 -33
  139. package/dist/idCaptureDefaults-DNJON8Xo.esm.js +188 -0
  140. package/dist/{idCaptureManager-ChCNmgBj.d.ts → idCaptureManager-BVdvfJys.d.ts} +47 -12
  141. package/dist/{idCaptureManager-D3pwWutw.esm.js → idCaptureManager-Bo9DCQSU.esm.js} +100 -15
  142. package/dist/{idCaptureStateMachine-B3AiDIsT.esm.js → idCaptureStateMachine-BeDidMLU.esm.js} +525 -439
  143. package/dist/idOcrManager-BkRDrpZu.esm.js +92 -0
  144. package/dist/idOcrManager-CJzrmM91.d.ts +641 -0
  145. package/dist/{idOcrStateMachine-CDQ5d_VM.esm.js → idOcrStateMachine-DRZc4FBl.esm.js} +5 -5
  146. package/dist/{idVerificationStateMachine-kRxwImzO.esm.js → idVerificationStateMachine-oqiERKpg.esm.js} +3 -3
  147. package/dist/identity-reuse.d.ts +4 -3
  148. package/dist/identity-reuse.esm.js +7 -6
  149. package/dist/{identityReuseManager-C6n_97dw.esm.js → identityReuseManager-Bu62LToE.esm.js} +4 -3
  150. package/dist/{identityReuseManager-Cww-NDtd.d.ts → identityReuseManager-TWKbXuvY.d.ts} +33 -33
  151. package/dist/{identityReuseStateMachine-BfE5YiEr.esm.js → identityReuseStateMachine-BmONeF6B.esm.js} +3 -3
  152. package/dist/{index-B5hPA0Bg.d.ts → index-DtUlD-bz.d.ts} +2 -2
  153. package/dist/{index-B9NysVDB.d.ts → index-Icld-cKW.d.ts} +175 -295
  154. package/dist/index-XTtxaahe.d.ts +93 -0
  155. package/dist/index.d.ts +3 -2
  156. package/dist/index.esm.js +16 -12
  157. package/dist/{invokeOnCaptureCallback-ygByVdnn.esm.js → invokeOnCaptureCallback-v_PV_IJz.esm.js} +1 -1
  158. package/dist/{lib-BY67lgbq.esm.js → lib-B050WTth.esm.js} +1 -1
  159. package/dist/mandatory-consent.d.ts +10 -7
  160. package/dist/mandatory-consent.esm.js +7 -6
  161. package/dist/{mandatoryConsentManager-Dq6WiOZh.d.ts → mandatoryConsentManager-Bmdjo14S.d.ts} +50 -50
  162. package/dist/{mandatoryConsentManager-H6D18cZB.esm.js → mandatoryConsentManager-CQ3jirlZ.esm.js} +4 -3
  163. package/dist/{mandatoryConsentStateMachine-DtQNW1ji.esm.js → mandatoryConsentStateMachine-DkJJLHqC.esm.js} +3 -3
  164. package/dist/mediaRecorderOptions-C3NAkVgK.esm.js +42 -0
  165. package/dist/mediapipeShared-CRAKVElv.esm.js +67 -0
  166. package/dist/{recordingService-yRw7hfzU.esm.js → onDeviceFaceResults-DVBggeq8.esm.js} +71 -389
  167. package/dist/{openviduLazy-Dh14JNJc.esm.js → openviduLazy-BTOIauGP.esm.js} +2 -2
  168. package/dist/openviduLazy-Dov8oKfL.esm.js +3 -0
  169. package/dist/{permissionGuards-D0wGddy7.esm.js → permissionGuards-BR2oN573.esm.js} +1 -1
  170. package/dist/{permissionServices-Doec4X5L.esm.js → permissionServices-BJhGL13R.esm.js} +7 -4
  171. package/dist/personhood.d.ts +534 -0
  172. package/dist/personhood.esm.js +1494 -0
  173. package/dist/phone.d.ts +5 -4
  174. package/dist/phone.esm.js +9 -8
  175. package/dist/{phoneManager-fPmIBYQK.d.ts → phoneManager-BOTcjXgs.d.ts} +4 -3
  176. package/dist/{phoneManager-BmF-0Ez4.esm.js → phoneManager-BWlxqbyD.esm.js} +48 -6
  177. package/dist/{phoneStateMachine-BiV0yoEx.esm.js → phoneStateMachine-B_V9nODs.esm.js} +5 -5
  178. package/dist/{qe-signature-CUYPcHVo.esm.js → qe-signature-BhFnI9pT.esm.js} +1 -1
  179. package/dist/qe-signature.d.ts +4 -3
  180. package/dist/qe-signature.esm.js +10 -7
  181. package/dist/recordingService-m_1xCthr.esm.js +347 -0
  182. package/dist/redirect-to-mobile.d.ts +4 -3
  183. package/dist/redirect-to-mobile.esm.js +9 -7
  184. package/dist/{redirectToMobileManager-Dy3t7o0C.esm.js → redirectToMobileManager-BaAo9rgi.esm.js} +5 -4
  185. package/dist/{redirectToMobileManager-BNe3IzC_.d.ts → redirectToMobileManager-Br0KZK1G.d.ts} +2 -2
  186. package/dist/{redirectToMobileStateMachine-DyAdRxfP.esm.js → redirectToMobileStateMachine-DoAnf2ql.esm.js} +16 -28
  187. package/dist/{runChildModule-CuoHZ1cx.esm.js → runChildModule-0nQfjVVo.esm.js} +14 -24
  188. package/dist/selfie.d.ts +27 -14
  189. package/dist/selfie.esm.js +43 -30
  190. package/dist/{selfieManager-BNuTIGAz.esm.js → selfieManager-D_ZFERsE.esm.js} +17 -8
  191. package/dist/{selfieManager-C2y_t6DG.d.ts → selfieManager-R0Jw5sjb.d.ts} +13 -3
  192. package/dist/{selfieStateMachine-Bv99bZJE.esm.js → selfieStateMachine-CIgeeiN9.esm.js} +4 -4
  193. package/dist/{session-DoVb-OcB.esm.js → session-9jIfKFCc.esm.js} +3 -3
  194. package/dist/session.d.ts +11 -8
  195. package/dist/session.esm.js +16 -12
  196. package/dist/{sessionInitializer-DRB-hgbV.esm.js → sessionInitializer-C_TYIgyk.esm.js} +16 -109
  197. package/dist/{setup-BwCluiw3.d.ts → setup-CpRnXxn8.d.ts} +61 -2
  198. package/dist/setup-DHc6OaHm.esm.js +562 -0
  199. package/dist/signature.d.ts +4 -2
  200. package/dist/signature.esm.js +49 -6
  201. package/dist/{signatureStateMachine-C5qqYLRz.esm.js → signatureStateMachine-DtoiPzys.esm.js} +21 -39
  202. package/dist/{stats-BMNUG1AU.esm.js → stats-CYcScXcO.esm.js} +2 -2
  203. package/dist/stats.esm.js +3 -3
  204. package/dist/thumbmarkAdapter-fHBUDlAP.esm.js +1194 -0
  205. package/dist/tri-BG1iJsr4.esm.js +399 -0
  206. package/dist/tri.d.ts +2 -0
  207. package/dist/tri.esm-DUC01NgO.esm.js +2593 -0
  208. package/dist/tri.esm.js +4 -0
  209. package/dist/trust-graph.d.ts +4 -3
  210. package/dist/trust-graph.esm.js +4 -3
  211. package/dist/{types-NuT8ftBV.d.ts → types-BklZ_Wne.d.ts} +2 -1
  212. package/dist/{types-DOUhndhT.d.ts → types-BsYXnC5s.d.ts} +39 -3
  213. package/dist/{types-DsnEVMhr.esm.js → types-CMcxlSmH.esm.js} +2 -1
  214. package/dist/types-CxW2e0Ar.d.ts +132 -0
  215. package/dist/{types-Bj9hdFjU.d.ts → types-DgGlgyZT.d.ts} +1 -1
  216. package/dist/types-ElOJAGaM.esm.js +189 -0
  217. package/dist/urlUtils-BZqFU9rR.esm.js +16 -0
  218. package/dist/video-C2WIj6TS.esm.js +36 -0
  219. package/dist/video-selfie.d.ts +351 -0
  220. package/dist/video-selfie.esm.js +1509 -0
  221. package/dist/videoSelfieSteps-7M5vxKn-.esm.js +58 -0
  222. package/dist/{warmup-Dg8Lh-50.d.ts → warmup-BJZPQIiX.d.ts} +5 -1
  223. package/dist/wasm.d.ts +4 -3
  224. package/dist/wasm.esm.js +17 -13
  225. package/dist/watchlist-for-business.d.ts +2 -1
  226. package/dist/watchlist-for-business.esm.js +30 -7
  227. package/dist/watchlist.d.ts +2 -1
  228. package/dist/watchlist.esm.js +28 -6
  229. package/dist/{watchlistForBusinessStateMachine-DMl8j2Ov.esm.js → watchlistForBusinessStateMachine-DvEunDxs.esm.js} +3 -3
  230. package/dist/{watchlistStateMachine-DmQlqI6L.esm.js → watchlistStateMachine-AHXVf-TB.esm.js} +3 -3
  231. package/dist/workflow.d.ts +296 -103
  232. package/dist/workflow.esm.js +137 -74
  233. package/dist/{xstate.esm-C9wncMQa.esm.js → xstate.esm-Bomq1a0z.esm.js} +54 -5
  234. package/package.json +26 -1
  235. package/dist/IpifyProvider-D4LWD15E.esm.js +0 -167
  236. package/dist/antifraudManager-CkV4u-LE.esm.js +0 -55
  237. package/dist/camera-DJWm3V4g.esm.js +0 -22
  238. package/dist/deepsightService-Dh5P-hLf.d.ts +0 -265
  239. package/dist/faceCaptureManagerFactory-CjdBUS6s.d.ts +0 -721
  240. package/dist/flowCompletionService-BdR2cGgB.d.ts +0 -19
  241. package/dist/flowCompletionService-DdGojV9K.esm.js +0 -20
  242. package/dist/getBrowser-C8DP7oTB.esm.js +0 -8
  243. package/dist/openviduLazy-B8L--0oe.esm.js +0 -3
  244. package/dist/setup-CUO4mErT.esm.js +0 -1037
  245. /package/dist/{Actor-Y0_Fj-KL.d.ts → Actor-CGEelYtQ.d.ts} +0 -0
  246. /package/dist/{BrowserTimerProvider-DhNc_x02.esm.js → BrowserTimerProvider-CHloo0eQ.esm.js} +0 -0
  247. /package/dist/{ITimerCapability-CB0I1Uf2.esm.js → ITimerCapability-pltuG1E8.esm.js} +0 -0
  248. /package/dist/{Manager-BHn8wH8K.d.ts → Manager-CJ3G2zqi.d.ts} +0 -0
  249. /package/dist/{MotionSensorProvider-Bx7Mpzt0.esm.js → MotionSensorProvider-DCbId4De.esm.js} +0 -0
  250. /package/dist/{StateMachine-BC_nGvrc.d.ts → StateMachine-C_AY4cs7.d.ts} +0 -0
  251. /package/dist/{apiError-B-j-gyDx.esm.js → apiError-DNS2OCEX.esm.js} +0 -0
  252. /package/dist/{camera-SRBpPq2X.d.ts → camera-CNVUo-bC.d.ts} +0 -0
  253. /package/dist/{canvas-SKcRBxsk.esm.js → canvas-_I95hkPg.esm.js} +0 -0
  254. /package/dist/{chunk-CMUKZ2uL.esm.js → chunk-CIKcdghV.esm.js} +0 -0
  255. /package/dist/{cpf-BRzggV8G.esm.js → cpf-BKaho0j_.esm.js} +0 -0
  256. /package/dist/{dateUtils-AksLQmgV.esm.js → dateUtils-7-tQYRNN.esm.js} +0 -0
  257. /package/dist/{getDeviceClass-C0olyNFS.esm.js → getDeviceClass-DavNdcxh.esm.js} +0 -0
  258. /package/dist/{http-Cai3IoLS.esm.js → http-BkiUT7EB.esm.js} +0 -0
  259. /package/dist/{otp-CGMdUzBC.esm.js → otp-Bfnzf7I3.esm.js} +0 -0
  260. /package/dist/{otp-DF5A0sFx.d.ts → otp-M4iy57XY.d.ts} +0 -0
  261. /package/dist/{platform-SKvEfCBh.esm.js → platform-uIVQUnJP.esm.js} +0 -0
  262. /package/dist/{types-DvGZI7BF.d.ts → types-D_IceWxT.d.ts} +0 -0
  263. /package/dist/{types-ya0LN_MX.d.ts → types-Duy2rDxF.d.ts} +0 -0
@@ -0,0 +1,562 @@
1
+ import { f as deriveSiblingJsPath, r as warmupWasm, t as WasmUtilProvider } from "./WasmUtilProvider-ADG54T6M.esm.js";
2
+ import { t as BrowserTimerProvider } from "./BrowserTimerProvider-CHloo0eQ.esm.js";
3
+ import { a as resetApi, i as isApiConfigured, n as getApi, r as getToken, t as api } from "./api-DsbUi7TO.esm.js";
4
+ import { i as upgradeToWasmHttpClient, n as installFreshHttpClient, r as resetHttpClientState, t as getStoredHttpConfig } from "./clientLifecycle-Ct7h9uxx.esm.js";
5
+ import { f as getAnalyticsBatcher, m as setAnalyticsBatcher, p as resetAnalyticsBatcher, u as createAnalyticsBatchingService } from "./events-CqGY1yMq.esm.js";
6
+ import { t as endpoints } from "./endpoints-BzMJFAPV.esm.js";
7
+ import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-CYcScXcO.esm.js";
8
+ import { a as setClientIpLookupEnabled, i as resetSessionInit, r as initializeSession } from "./sessionInitializer-C_TYIgyk.esm.js";
9
+ import { a as resetTRI, n as initializeTRI, o as resetTRIProviderInstance } from "./tri-BG1iJsr4.esm.js";
10
+
11
+ //#region ../infra/src/wasm/wasmDefaults.ts
12
+ const WASM_CDN_BASE_URL = "https://cdn.incodesmile.com/ml-wasm-kit-release";
13
+ /** The WASM version bundled and tested with this SDK release. */
14
+ const DEFAULT_WASM_VERSION = "v2.14.07-post7";
15
+ const PATH_KEYS = [
16
+ "wasmPath",
17
+ "wasmSimdPath",
18
+ "glueCodePath",
19
+ "glueCodeSimdPath",
20
+ "modelsBasePath"
21
+ ];
22
+ function isBlank(value) {
23
+ return value.trim() === "";
24
+ }
25
+ function hasDisallowedControlChars(value) {
26
+ for (let i = 0; i < value.length; i += 1) {
27
+ const code = value.charCodeAt(i);
28
+ if (code < 32 || code === 127) return true;
29
+ }
30
+ return false;
31
+ }
32
+ function isMalformedPath(value) {
33
+ const trimmed = value.trim();
34
+ if (trimmed === "") return false;
35
+ if (hasDisallowedControlChars(trimmed)) return true;
36
+ if (/^https?:\/\//i.test(trimmed)) try {
37
+ new URL(trimmed);
38
+ return false;
39
+ } catch {
40
+ return true;
41
+ }
42
+ return false;
43
+ }
44
+ function warnInvalidWasmPath(field, reason) {
45
+ if (reason === "empty") {
46
+ console.warn(`[Incode SDK] wasm.${field} is empty. Falling back to CDN default.`);
47
+ return;
48
+ }
49
+ console.warn(`[Incode SDK] wasm.${field} appears malformed. Falling back to CDN default.`);
50
+ }
51
+ function warnMalformedWasmPath(field) {
52
+ console.warn(`[Incode SDK] wasm.${field} appears malformed. Check the URL or path.`);
53
+ }
54
+ /**
55
+ * Validates merged WASM path strings. When overrides contained blank path
56
+ * values, callers should have already fallen back to defaults before this runs.
57
+ */
58
+ function validateWasmPaths(config) {
59
+ for (const key of PATH_KEYS) {
60
+ const value = config[key];
61
+ if (typeof value === "string" && isMalformedPath(value)) warnMalformedWasmPath(key);
62
+ }
63
+ }
64
+ function pickPath(key, overrides, defaultValue) {
65
+ if (!overrides || !(key in overrides)) return defaultValue;
66
+ const raw = overrides[key];
67
+ if (raw === void 0) return defaultValue;
68
+ if (typeof raw !== "string") return defaultValue;
69
+ if (isBlank(raw)) {
70
+ warnInvalidWasmPath(key, "empty");
71
+ return defaultValue;
72
+ }
73
+ if (isMalformedPath(raw)) {
74
+ warnInvalidWasmPath(key, "malformed");
75
+ return defaultValue;
76
+ }
77
+ return raw.trim();
78
+ }
79
+ /** Builds a WarmupConfig from a directory that mirrors the ml-wasm-kit CDN layout. */
80
+ function buildWasmConfigFromBasePath(basePath) {
81
+ const base = basePath.endsWith("/") ? basePath.slice(0, -1) : basePath;
82
+ return {
83
+ wasmPath: `${base}/webLib.wasm`,
84
+ wasmSimdPath: `${base}/webLibSimd.wasm`,
85
+ glueCodePath: `${base}/webLib.js`,
86
+ glueCodeSimdPath: `${base}/webLibSimd.js`,
87
+ modelsBasePath: `${base}/models`
88
+ };
89
+ }
90
+ /** Builds the standard WarmupConfig from the Incode CDN. */
91
+ function buildDefaultWasmConfig() {
92
+ return buildWasmConfigFromBasePath(`${WASM_CDN_BASE_URL}/${DEFAULT_WASM_VERSION}`);
93
+ }
94
+ /**
95
+ * Merges optional WASM path overrides with CDN defaults. Explicit non-blank
96
+ * paths take precedence. Blank override strings log a warning and fall back to defaults.
97
+ */
98
+ function resolveWasmConfig(overrides) {
99
+ if (!overrides) return buildDefaultWasmConfig();
100
+ const defaults = buildWasmConfigFromBasePath(pickPath("basePath", overrides, `${WASM_CDN_BASE_URL}/${DEFAULT_WASM_VERSION}`));
101
+ const simdDefault = defaults.wasmSimdPath ?? defaults.wasmPath;
102
+ const modelsDefault = defaults.modelsBasePath ?? (() => {
103
+ const lastSlash = defaults.wasmPath.lastIndexOf("/");
104
+ return lastSlash === -1 ? "models" : `${defaults.wasmPath.substring(0, lastSlash)}/models`;
105
+ })();
106
+ const resolvedWasmSimdPath = pickPath("wasmSimdPath", overrides, simdDefault);
107
+ const glueCodeSimdDefault = deriveSiblingJsPath(resolvedWasmSimdPath);
108
+ const merged = {
109
+ wasmPath: pickPath("wasmPath", overrides, defaults.wasmPath),
110
+ wasmSimdPath: resolvedWasmSimdPath,
111
+ glueCodePath: pickPath("glueCodePath", overrides, defaults.glueCodePath),
112
+ glueCodeSimdPath: pickPath("glueCodeSimdPath", overrides, glueCodeSimdDefault),
113
+ modelsBasePath: pickPath("modelsBasePath", overrides, modelsDefault),
114
+ useSimd: overrides.useSimd,
115
+ pipelines: overrides.pipelines,
116
+ pipelineModels: overrides.pipelineModels
117
+ };
118
+ validateWasmPaths(merged);
119
+ return merged;
120
+ }
121
+
122
+ //#endregion
123
+ //#region ../infra/src/providers/browser/BrowserPageLifecycleProvider.ts
124
+ var BrowserPageLifecycleProvider = class {
125
+ sendBeacon(url, body, contentType = "application/json") {
126
+ if (typeof navigator === "undefined" || typeof navigator.sendBeacon !== "function") return false;
127
+ const blob = new Blob([body], { type: contentType });
128
+ return navigator.sendBeacon(url, blob);
129
+ }
130
+ onPageHide(listener) {
131
+ const onVisibilityChange = () => {
132
+ if (document.visibilityState === "hidden") listener();
133
+ };
134
+ document.addEventListener("visibilitychange", onVisibilityChange);
135
+ window.addEventListener("pagehide", listener);
136
+ window.addEventListener("beforeunload", listener);
137
+ return () => {
138
+ document.removeEventListener("visibilitychange", onVisibilityChange);
139
+ window.removeEventListener("pagehide", listener);
140
+ window.removeEventListener("beforeunload", listener);
141
+ };
142
+ }
143
+ };
144
+
145
+ //#endregion
146
+ //#region ../infra/src/providers/browser/DevtoolsDetectorProvider.ts
147
+ var DevtoolsDetectorProvider = class {
148
+ constructor() {
149
+ this.detectorPaused = true;
150
+ this.isDevtoolsOpen = false;
151
+ }
152
+ start(options) {
153
+ if (!this.canUseDevtoolsDetector() || this.heart) return;
154
+ this.startDetector({
155
+ pollingIntervalSeconds: .25,
156
+ maxMillisBeforeAckWhenClosed: 100,
157
+ moreAnnoyingDebuggerStatements: 1,
158
+ onDetectOpen: options.onInspectorOpened,
159
+ onDetectClose: void 0,
160
+ startup: "asap"
161
+ });
162
+ }
163
+ stop() {
164
+ this.clearNextPulse();
165
+ this.resolveVerdict?.(null);
166
+ this.resolveVerdict = void 0;
167
+ this.heart?.terminate();
168
+ this.heart = void 0;
169
+ this.detectorPaused = true;
170
+ this.isDevtoolsOpen = false;
171
+ }
172
+ canUseDevtoolsDetector() {
173
+ return typeof globalThis !== "undefined" && typeof Worker !== "undefined" && typeof URL !== "undefined" && typeof URL.createObjectURL === "function" && typeof Blob !== "undefined";
174
+ }
175
+ createDetectorWorker() {
176
+ return new Worker(URL.createObjectURL(new Blob([`"use strict";
177
+ onmessage = (ev) => { postMessage({isOpenBeat:true});
178
+ debugger; for (let i = 0; i < ev.data.moreDebugs; i++) { debugger; }
179
+ postMessage({isOpenBeat:false});
180
+ };`], { type: "text/javascript" })));
181
+ }
182
+ clearNextPulse() {
183
+ if (this.nextPulseTimeout !== void 0) {
184
+ clearTimeout(this.nextPulseTimeout);
185
+ this.nextPulseTimeout = void 0;
186
+ }
187
+ }
188
+ doOnePulse(moreDebugs) {
189
+ this.heart?.postMessage({ moreDebugs });
190
+ }
191
+ startDetector(config) {
192
+ this.heart = this.createDetectorWorker();
193
+ const onHeartMsg = (msg) => {
194
+ if (msg.data.isOpenBeat) new Promise((resolve) => {
195
+ this.resolveVerdict = resolve;
196
+ setTimeout(() => {
197
+ this.resolveVerdict?.(true);
198
+ }, config.maxMillisBeforeAckWhenClosed + 1);
199
+ }).then((verdict) => {
200
+ if (verdict === null) return;
201
+ if (verdict !== this.isDevtoolsOpen) {
202
+ this.isDevtoolsOpen = verdict;
203
+ if (verdict) config.onDetectOpen();
204
+ else if (config.onDetectClose) config.onDetectClose();
205
+ }
206
+ this.clearNextPulse();
207
+ this.nextPulseTimeout = setTimeout(() => {
208
+ this.nextPulseTimeout = void 0;
209
+ this.doOnePulse(config.moreAnnoyingDebuggerStatements);
210
+ }, config.pollingIntervalSeconds * 1e3);
211
+ });
212
+ else this.resolveVerdict?.(false);
213
+ };
214
+ this.heart.addEventListener("message", onHeartMsg);
215
+ const resume = () => {
216
+ if (!this.detectorPaused) return;
217
+ this.detectorPaused = false;
218
+ this.doOnePulse(config.moreAnnoyingDebuggerStatements);
219
+ };
220
+ switch (config.startup) {
221
+ case "manual": break;
222
+ case "asap":
223
+ resume();
224
+ break;
225
+ case "domContentLoaded":
226
+ if (typeof document !== "undefined" && document.readyState !== "loading") resume();
227
+ else if (typeof document !== "undefined") document.addEventListener("DOMContentLoaded", resume, { once: true });
228
+ break;
229
+ }
230
+ }
231
+ };
232
+
233
+ //#endregion
234
+ //#region src/internal/device/devtoolsDetectorBridge.ts
235
+ const devtoolsDetector = new DevtoolsDetectorProvider();
236
+ async function reportInspectorOpened() {
237
+ try {
238
+ (await WasmUtilProvider.getInstance()).setInspectorOpened(true);
239
+ } catch {
240
+ return;
241
+ }
242
+ addDeviceStats({ inspectorOpened: true });
243
+ }
244
+ /**
245
+ * Starts the devtools inspector detector (ported from legacy welcome `setupFiles`).
246
+ */
247
+ function startDevtoolsDetector() {
248
+ devtoolsDetector.start({ onInspectorOpened: () => {
249
+ reportInspectorOpened();
250
+ } });
251
+ }
252
+ /**
253
+ * Stops the devtools detector. Invoked from {@link reset}.
254
+ */
255
+ function stopDevtoolsDetector() {
256
+ devtoolsDetector.stop();
257
+ }
258
+
259
+ //#endregion
260
+ //#region src/setup.ts
261
+ let wasmConfig;
262
+ /**
263
+ * Legacy Java backend default for OAEP MGF1 padding compatibility.
264
+ * Most existing Incode E2EE environments expect this.
265
+ */
266
+ const DEFAULT_MGF1 = "sha1";
267
+ /**
268
+ * Normalizes the public `encryption` option into the internal shape used by
269
+ * the HTTP client lifecycle. Returns `undefined` when the caller did not
270
+ * specify `encryption` at all (so callers can distinguish "preserve stored
271
+ * value" from "explicitly off").
272
+ */
273
+ function normalizeEncryption(input) {
274
+ if (input === void 0) return void 0;
275
+ if (input === false) return {
276
+ enabled: false,
277
+ mgf1: DEFAULT_MGF1
278
+ };
279
+ if (input === true) return {
280
+ enabled: true,
281
+ mgf1: DEFAULT_MGF1
282
+ };
283
+ return {
284
+ enabled: true,
285
+ mgf1: input.mgf1 ?? DEFAULT_MGF1
286
+ };
287
+ }
288
+ let configured = false;
289
+ /**
290
+ * Initializes the SDK with the provided configuration.
291
+ * Must be called before using any SDK functionality.
292
+ *
293
+ * WASM loads only when `options.wasm` is provided as an object.
294
+ *
295
+ * `setup` is boot — it provisions the HTTP client, the optional E2EE
296
+ * handshake, WASM warmup, and the analytics batcher. The session token is a
297
+ * separate concern: hand it off via `initializeSession({ token })` from
298
+ * `@incodetech/core/session`, or pass it inline as `setup({ apiURL, token })`
299
+ * (a convenience that delegates to `initializeSession` for you).
300
+ *
301
+ * @param options - Configuration options for the SDK
302
+ *
303
+ * @example Boot first, activate the session later (preferred)
304
+ * ```ts
305
+ * import { setup } from '@incodetech/core';
306
+ * import { createSession, initializeSession } from '@incodetech/core/session';
307
+ *
308
+ * await setup({ apiURL: 'https://api.incode.com' });
309
+ * const session = await createSession(apiKey, { configurationId });
310
+ * await initializeSession({ token: session.token });
311
+ * ```
312
+ *
313
+ * @example One-shot convenience
314
+ * ```ts
315
+ * await setup({ apiURL: 'https://api.incode.com', token: 'session-token' });
316
+ * ```
317
+ *
318
+ * @example Explicitly disable WASM
319
+ * ```ts
320
+ * await setup({ apiURL: 'https://api.incode.com', wasm: false });
321
+ * ```
322
+ *
323
+ * @example Use CDN defaults for paths and preload only one pipeline
324
+ * ```ts
325
+ * await setup({
326
+ * apiURL: 'https://api.incode.com',
327
+ * wasm: { pipelines: ['selfie'] },
328
+ * });
329
+ * ```
330
+ *
331
+ * @example Self-hosted WASM (pin a version folder on your CDN)
332
+ * ```ts
333
+ * await setup({
334
+ * apiURL: 'https://api.incode.com',
335
+ * wasm: {
336
+ * basePath: 'https://my-cdn.example.com/ml-wasm-kit-release/v2.13.21',
337
+ * },
338
+ * });
339
+ * ```
340
+ *
341
+ * @example Partial override: only models path, rest from CDN
342
+ * ```ts
343
+ * await setup({
344
+ * apiURL: 'https://api.incode.com',
345
+ * wasm: { modelsBasePath: 'https://my-cdn/models' },
346
+ * });
347
+ * ```
348
+ *
349
+ * @example Sessionless setup (all API actors overridden via .provide())
350
+ * ```ts
351
+ * await setup({
352
+ * wasm: {
353
+ * wasmPath: '/wasm/ml-wasm.wasm',
354
+ * glueCodePath: '/wasm/ml-wasm.js',
355
+ * pipelines: ['selfie'],
356
+ * },
357
+ * });
358
+ * ```
359
+ *
360
+ * @example Enable end-to-end encryption at boot (defaults to MGF1 = SHA-1)
361
+ * ```ts
362
+ * // `/0` lets the server read the API key from the session JWT.
363
+ * await setup({
364
+ * apiURL: 'https://your-e2ee-api.incodesmile.com/0',
365
+ * encryption: true,
366
+ * });
367
+ * ```
368
+ *
369
+ * @example Enable encryption with the SHA-256 MGF1 padding
370
+ * ```ts
371
+ * await setup({
372
+ * apiURL: 'https://your-e2ee-api.incodesmile.com/0',
373
+ * encryption: { mgf1: 'sha256' },
374
+ * });
375
+ * ```
376
+ *
377
+ * @example E2EE without the `/0` suffix — pass the API key explicitly
378
+ * ```ts
379
+ * await setup({
380
+ * apiURL: 'https://your-e2ee-api.incodesmile.com',
381
+ * encryption: true,
382
+ * customHeaders: { 'x-api-key': process.env.INCODE_API_KEY },
383
+ * });
384
+ * ```
385
+ * @example Disable third-party IP lookup
386
+ * ```ts
387
+ * await setup({
388
+ * apiURL: 'https://api.incode.com',
389
+ * ipLookup: false,
390
+ * });
391
+ * ```
392
+ *
393
+ * @example Local development: silence the devtools detector and surface WASM logs
394
+ * ```ts
395
+ * await setup({
396
+ * apiURL: 'https://api.incode.com',
397
+ * wasm: { showLogs: true }, // WASM logs are off by default
398
+ * devMode: true, // skip the devtools detector (don't ship this in prod)
399
+ * });
400
+ * ```
401
+ * @example Enable TRI — exchange the API key for an SDK token first, then pass it to setup
402
+ * ```ts
403
+ * const session = await createTRISession(process.env.INCODE_API_KEY, {
404
+ * apiURL: process.env.INCODE_TRI_API_URL,
405
+ * });
406
+ *
407
+ * await setup({
408
+ * apiURL: 'https://api.incode.com',
409
+ * tri: { token: session.token, apiURL: process.env.INCODE_TRI_API_URL },
410
+ * });
411
+ * ```
412
+ *
413
+ * @example Defer TRI collection until after a consent gate
414
+ * ```ts
415
+ * // Boot without starting collectors:
416
+ * await setup({
417
+ * apiURL: 'https://api.incode.com',
418
+ * tri: { token: session.token, apiURL: process.env.INCODE_TRI_API_URL, autostart: false },
419
+ * });
420
+ *
421
+ * // somewhere else in the code
422
+ * await startTRI();
423
+ * ```
424
+ */
425
+ async function setup(options) {
426
+ if (options.ipLookup !== void 0) setClientIpLookupEnabled(options.ipLookup);
427
+ if (!getAnalyticsBatcher()) setAnalyticsBatcher(createAnalyticsBatchingService({
428
+ endpoint: endpoints.events,
429
+ authToken: () => getToken(),
430
+ apiBaseUrl: () => getApi().defaults.baseURL,
431
+ apiClient: api,
432
+ pageLifecycle: new BrowserPageLifecycleProvider(),
433
+ timer: BrowserTimerProvider.getInstance()
434
+ }));
435
+ const requestedEncryption = normalizeEncryption(options.encryption);
436
+ const stored = getStoredHttpConfig();
437
+ if (requestedEncryption && stored) {
438
+ if (requestedEncryption.enabled !== stored.encryption.enabled || requestedEncryption.enabled && requestedEncryption.mgf1 !== stored.encryption.mgf1) throw new Error("Encryption is locked at the first setup() call and cannot be changed at runtime. Call reset() to fully reinitialize the SDK if you need a different encryption configuration.");
439
+ }
440
+ if (requestedEncryption?.enabled && options.wasm === false) throw new Error("Encryption is incompatible with `wasm: false`. Either remove `wasm: false` or omit `encryption`.");
441
+ const effectiveEncryption = requestedEncryption ?? stored?.encryption ?? {
442
+ enabled: false,
443
+ mgf1: "sha1"
444
+ };
445
+ const effectiveWasm = options.wasm || requestedEncryption?.enabled ? resolveWasmConfig(options.wasm || {}) : void 0;
446
+ if (options.apiURL) await installFreshHttpClient(options.apiURL, options, effectiveWasm, effectiveEncryption);
447
+ if (options.token && isApiConfigured()) initializeSession({
448
+ token: options.token,
449
+ hostingApp: options.hostingApp
450
+ }).catch((error) => {
451
+ console.warn("Session initialization failed:", error);
452
+ });
453
+ configured = true;
454
+ if (effectiveWasm) {
455
+ wasmConfig = {
456
+ ...effectiveWasm,
457
+ pipelines: effectiveWasm.pipelines ? [...effectiveWasm.pipelines] : void 0
458
+ };
459
+ await warmupWasm(effectiveWasm);
460
+ const provider = await WasmUtilProvider.getInstance();
461
+ await provider.initialize({
462
+ ...effectiveWasm,
463
+ pipelines: effectiveWasm.pipelines ? [...effectiveWasm.pipelines] : void 0
464
+ });
465
+ const showWasmLogs = typeof options.wasm === "object" && options.wasm.showLogs === true;
466
+ await provider.setProductionMode(!showWasmLogs);
467
+ if (!options.devMode) startDevtoolsDetector();
468
+ }
469
+ if (options.tri) await initializeTRI(options.tri, { sessionToken: options.token });
470
+ }
471
+ /**
472
+ * Sets the WASM configuration without performing warmup.
473
+ * Useful when WASM warmup is handled separately (e.g., conditionally based on flow).
474
+ *
475
+ * @param config - WASM configuration to store
476
+ */
477
+ function setWasmConfig(config) {
478
+ wasmConfig = config;
479
+ }
480
+ /**
481
+ * Initializes WasmUtilProvider with the stored WASM configuration.
482
+ * Should be called after warmupWasm() completes when using conditional warmup.
483
+ * This ensures image encryption works properly.
484
+ *
485
+ * @param config - Optional WASM configuration. If not provided, uses the stored config from setWasmConfig().
486
+ * @throws Error if no config is provided and none is stored
487
+ */
488
+ async function initializeWasmUtil(config) {
489
+ const wasmConfigToUse = config ?? wasmConfig;
490
+ if (!wasmConfigToUse) throw new Error("WASM config is required. Provide config parameter or call setWasmConfig() first.");
491
+ const resolved = resolveWasmConfig(wasmConfigToUse);
492
+ await (await WasmUtilProvider.getInstance()).initialize({
493
+ ...resolved,
494
+ pipelines: resolved.pipelines ? [...resolved.pipelines] : void 0
495
+ });
496
+ }
497
+ /**
498
+ * Warms additional WASM pipelines on demand, reusing the WASM config stored by
499
+ * `setup({ wasm })` / `setWasmConfig`. Used for module-level lazy loading — e.g.
500
+ * the video-selfie tutorial preloads its `videoSelfie`/`videoSelfieId` pipelines
501
+ * while the user reads, so detection is ready the moment recording starts.
502
+ *
503
+ * `warmupWasm` is idempotent: already-loaded pipelines are skipped and missing
504
+ * ones are merged into the running instance. No-op when WASM was never
505
+ * configured or `pipelines` is empty.
506
+ *
507
+ * @param pipelines - The pipelines to ensure are loaded.
508
+ */
509
+ async function ensureWasmPipelines(pipelines) {
510
+ if (pipelines.length === 0 || !wasmConfig) return;
511
+ await warmupWasm({
512
+ ...resolveWasmConfig(wasmConfig),
513
+ pipelines: [...pipelines]
514
+ });
515
+ }
516
+ /**
517
+ * Replaces the active HTTP client with the WASM-backed one. Used internally
518
+ * by lazy-loading UI components (`<incode-flow>`, `<incode-workflow>`) when
519
+ * WASM finishes warming up.
520
+ *
521
+ * No-op when no apiURL was originally configured, or when the active client is
522
+ * already the WASM one.
523
+ *
524
+ * @internal NOT a public API. Application code should use
525
+ * `setup({ wasm: {...} })` instead — that path is the supported way to opt
526
+ * into the WASM HTTP client.
527
+ *
528
+ * @param config - Optional WASM configuration. Defaults to the config stored via `setWasmConfig`.
529
+ */
530
+ async function upgradeToWasmHttpClient$1(config) {
531
+ const configToUse = config ?? wasmConfig;
532
+ if (!configToUse) return;
533
+ await upgradeToWasmHttpClient(resolveWasmConfig(configToUse));
534
+ }
535
+ /**
536
+ * Checks if the SDK has been configured.
537
+ *
538
+ * @returns true if setup() has been called, false otherwise
539
+ */
540
+ function isConfigured() {
541
+ return configured;
542
+ }
543
+ /**
544
+ * Resets the SDK configuration. Useful for testing.
545
+ */
546
+ function reset() {
547
+ stopDevtoolsDetector();
548
+ resetDeviceStatsQueue();
549
+ resetApi();
550
+ resetSessionInit();
551
+ setClientIpLookupEnabled(true);
552
+ resetAnalyticsBatcher();
553
+ resetHttpClientState();
554
+ resetTRI();
555
+ configured = false;
556
+ wasmConfig = void 0;
557
+ WasmUtilProvider.resetInstance();
558
+ resetTRIProviderInstance();
559
+ }
560
+
561
+ //#endregion
562
+ export { setWasmConfig as a, DEFAULT_WASM_VERSION as c, resolveWasmConfig as d, reset as i, buildDefaultWasmConfig as l, initializeWasmUtil as n, setup as o, isConfigured as r, upgradeToWasmHttpClient$1 as s, ensureWasmPipelines as t, buildWasmConfigFromBasePath as u };
@@ -1,5 +1,6 @@
1
- import { t as Manager } from "./Manager-BHn8wH8K.js";
2
- import "./Actor-Y0_Fj-KL.js";
1
+ import "./StateMachine-C_AY4cs7.js";
2
+ import { t as Manager } from "./Manager-CJ3G2zqi.js";
3
+ import "./Actor-CGEelYtQ.js";
3
4
 
4
5
  //#region src/modules/signature/types.d.ts
5
6
  /**
@@ -59,6 +60,7 @@ type CreateSignatureActorOptions = {
59
60
  };
60
61
  //#endregion
61
62
  //#region src/modules/signature/signatureManager.d.ts
63
+
62
64
  type SignatureIdleState = {
63
65
  status: 'idle';
64
66
  };
@@ -1,8 +1,9 @@
1
- import "./api-CESGtpbH.esm.js";
2
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-Dvvriq9l.esm.js";
3
- import "./endpoints-BeTK0Mlt.esm.js";
4
- import { c as createManager, s as createActor } from "./xstate.esm-C9wncMQa.esm.js";
5
- import { t as signatureMachine } from "./signatureStateMachine-C5qqYLRz.esm.js";
1
+ import "./api-DsbUi7TO.esm.js";
2
+ import { n as createManagerInstrumentation, t as topLevelStateName } from "./events-CqGY1yMq.esm.js";
3
+ import { n as eventModuleNames } from "./types-ElOJAGaM.esm.js";
4
+ import "./endpoints-BzMJFAPV.esm.js";
5
+ import { l as createManager, s as createActor } from "./xstate.esm-Bomq1a0z.esm.js";
6
+ import { t as signatureMachine } from "./signatureStateMachine-DtoiPzys.esm.js";
6
7
 
7
8
  //#region src/modules/signature/signatureActor.ts
8
9
  function createSignatureActor(options) {
@@ -11,6 +12,48 @@ function createSignatureActor(options) {
11
12
 
12
13
  //#endregion
13
14
  //#region src/modules/signature/signatureManager.ts
15
+ /**
16
+ * Maps a signature state-machine snapshot to the exact Figma "Tracked
17
+ * Events" screen name. Returned strings are the Figma-verbatim absolute
18
+ * analytics path (module prefix included), emitted as-is on `event.screen`
19
+ * by `createManagerInstrumentation`'s `getEventScreenName` path. See
20
+ * `docs/patterns/INSTRUMENTATION.md`.
21
+ *
22
+ * Source of truth: Electronic Signature Figma file → Tracked Events canvas
23
+ * (`https://www.figma.com/design/kUsDigsC8Mq1WobTewF0R6/Electronic-Signature---Latest-Design?node-id=4268-3602`).
24
+ * Section names are taken as canonical — note the canvas mixes
25
+ * `eSign.writeSignature.*` for the `default`/`completed` screens with
26
+ * `eSign.writeYourSignature.success` (without the `Signature` collapse) for
27
+ * the success surface; both spellings are preserved verbatim.
28
+ *
29
+ * State → screen mapping rationale:
30
+ *
31
+ * - `idle`/`captureSignature` collapse to `eSign.writeSignature.default` —
32
+ * the state machine stays in `captureSignature` throughout drawing (stroke
33
+ * validity changes via `SIGNATURE_CHANGED` are context-only and don't fire
34
+ * a new `screenOpened`). The `eSign.writeSignature.completed` Figma surface
35
+ * is therefore the post-submit "signed canvas while we wait for the API"
36
+ * surface, mapped to `submittingSignature`.
37
+ * - `success`/`finished` both map to `eSign.writeYourSignature.success` so
38
+ * the terminal `finished` state stays on the visible success canvas rather
39
+ * than falling back to the generic `<module>.finished` default.
40
+ * - `error` is intentionally unmapped — the Figma canvas does not define a
41
+ * dedicated error screen yet. The adapter falls back to the generic
42
+ * `eSign.error` default, which `errorTriggered` consumers can still
43
+ * correlate against the error payload.
44
+ */
45
+ function getSignatureScreenName(snapshot) {
46
+ const stateName = topLevelStateName(snapshot.value);
47
+ if (stateName === void 0) return void 0;
48
+ switch (stateName) {
49
+ case "idle":
50
+ case "captureSignature": return "eSign.writeSignature.default";
51
+ case "submittingSignature": return "eSign.writeSignature.completed";
52
+ case "success":
53
+ case "finished": return "eSign.writeYourSignature.success";
54
+ default: return;
55
+ }
56
+ }
14
57
  function mapState(snapshot) {
15
58
  const typedSnapshot = snapshot;
16
59
  const { context } = typedSnapshot;
@@ -58,7 +101,7 @@ function createSignatureManager(options) {
58
101
  actor: createSignatureActor(options),
59
102
  mapState,
60
103
  createApi,
61
- instrumentation: createManagerInstrumentation(eventModuleNames.signature)
104
+ instrumentation: createManagerInstrumentation(eventModuleNames.signature, { getEventScreenName: getSignatureScreenName })
62
105
  });
63
106
  }
64
107