@incodetech/core 2.4.1-agentic → 2.4.1-agentic.2

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 (211) hide show
  1. package/dist/BrowserNetworkStatusProvider-BrDXBEDd.esm.js +21 -0
  2. package/dist/{multipartRecordingService-DMBxHKS2.esm.js → CameraCompositor-DN7NkJzV.esm.js} +7 -734
  3. package/dist/{FaceDetectionProvider-B83VmClw.esm.js → FaceDetectionProvider-D9PlON49.esm.js} +11 -12
  4. package/dist/MultipartRecordingProvider-D9mauUdS.esm.js +146 -0
  5. package/dist/StreamCanvasProcessingSession-CBnbTnOr.esm.js +42 -0
  6. package/dist/{WasmUtilProvider-GTkoJyFY.esm.js → WasmUtilProvider-Dp2V-Uct.esm.js} +2 -2
  7. package/dist/WorkerEncoderRecordingProvider-B1ODYtgN.esm.js +80 -0
  8. package/dist/{addressSearch-41sMcnJk.esm.js → addressSearch-DzbE9Ogt.esm.js} +2 -352
  9. package/dist/ae-signature.esm.js +1 -1
  10. package/dist/antifraud.esm.js +2 -2
  11. package/dist/{antifraudManager-CQ08atTC.esm.js → antifraudManager-BObuHBjn.esm.js} +2 -2
  12. package/dist/{antifraudStateMachine-BcsUTTIr.esm.js → antifraudStateMachine-Dfrd2-26.esm.js} +1 -1
  13. package/dist/{api-BO8JA7Pf.esm.js → api-CpP4PS4S.esm.js} +2 -0
  14. package/dist/{apiError-CfuIvnUy.esm.js → apiError-gNfsp99I.esm.js} +1 -1
  15. package/dist/{attemptCarry-BjTJ6bMQ.esm.js → attemptCarry-WOkfvFMw.esm.js} +2 -2
  16. package/dist/authentication.d.ts +3 -3
  17. package/dist/authentication.esm.js +2 -2
  18. package/dist/{authenticationManager-DvmklBTE.esm.js → authenticationManager-BtN4CHOR.esm.js} +5 -5
  19. package/dist/{authenticationManager-C-cOki0Y.d.ts → authenticationManager-CWmh7aSY.d.ts} +1 -1
  20. package/dist/{authenticationStateMachine-BL2ptOA0.esm.js → authenticationStateMachine-DdcnWnBT.esm.js} +3 -3
  21. package/dist/backCameraLabel-yda5ugE4.esm.js +67 -0
  22. package/dist/{backCameraStream-C5_NNfUN.esm.js → backCameraStream-DS1oDiUq.esm.js} +10 -65
  23. package/dist/{browser-pQZA35G2-DtkAf6sn.esm.js → browser-pQZA35G2-C0fRj-ID.esm.js} +1 -1
  24. package/dist/camera.d.ts +2 -2
  25. package/dist/camera.esm.js +1 -1
  26. package/dist/certificate-issuance.esm.js +2 -2
  27. package/dist/{certificateIssuanceManager-CM0fuqDC.esm.js → certificateIssuanceManager-C1nETQos.esm.js} +2 -2
  28. package/dist/{certificateIssuanceStateMachine-kksIUOPD.esm.js → certificateIssuanceStateMachine-DThXMDqr.esm.js} +1 -1
  29. package/dist/{connectivity-HSl0diCx.esm.js → connectivity-BCuEoQ-n.esm.js} +2 -21
  30. package/dist/consent.d.ts +1 -1
  31. package/dist/consent.esm.js +2 -2
  32. package/dist/{consentManager-CBwFozhv.esm.js → consentManager-DMlSL6Ax.esm.js} +2 -2
  33. package/dist/{consentManager-_q9yJUku.d.ts → consentManager-bjfVXO7p.d.ts} +9 -9
  34. package/dist/{consentStateMachine-CpmRAcr2.esm.js → consentStateMachine-DIYSMxKQ.esm.js} +1 -1
  35. package/dist/cross-document-data-match.esm.js +1 -1
  36. package/dist/{crossDocumentDataMatchManager-64O8t10a.esm.js → crossDocumentDataMatchManager-BFTdiEDB.esm.js} +2 -2
  37. package/dist/curp-validation.d.ts +1 -1
  38. package/dist/curp-validation.esm.js +2 -2
  39. package/dist/{curpValidationManager-CLgJQcx0.esm.js → curpValidationManager-DNpC3wyf.esm.js} +2 -2
  40. package/dist/{curpValidationManager-CXpFE-Mv.d.ts → curpValidationManager-z8428oCM.d.ts} +1 -1
  41. package/dist/{curpValidationStateMachine-Bx9YhVkJ.esm.js → curpValidationStateMachine-B3iVsDyt.esm.js} +2 -2
  42. package/dist/custom-fields.esm.js +1 -1
  43. package/dist/custom-watchlist.esm.js +2 -2
  44. package/dist/{customFieldsManager-DWt_0YtJ.esm.js → customFieldsManager-CvI-pDT3.esm.js} +2 -2
  45. package/dist/{customWatchlistManager-D8o-2Nej.esm.js → customWatchlistManager-BuHtUb0y.esm.js} +2 -2
  46. package/dist/{customWatchlistStateMachine-Sbi6DIcK.esm.js → customWatchlistStateMachine-CiVD9wyF.esm.js} +1 -1
  47. package/dist/{deepsightService-twg3bXqY.esm.js → deepsightLoader-Crsj_u0c.esm.js} +34 -29
  48. package/dist/{desktopCameraElection-kHY2IDJi.esm.js → desktopCameraElection-BGMtYwk3.esm.js} +5 -5
  49. package/dist/document-capture.d.ts +3 -3
  50. package/dist/document-capture.esm.js +2 -2
  51. package/dist/{documentCaptureManager-6tnnDkMX.d.ts → documentCaptureManager-DDfviFg0.d.ts} +25 -4
  52. package/dist/{documentCaptureManager-CMSC_Mhd.esm.js → documentCaptureManager-DLPqruXJ.esm.js} +3 -2
  53. package/dist/{documentCaptureStateMachine-BCwD5Rto.esm.js → documentCaptureStateMachine-DCvWQhFG.esm.js} +67 -26
  54. package/dist/dynamic-forms.esm.js +2 -2
  55. package/dist/{dynamicFormsManager-DU6W1e20.esm.js → dynamicFormsManager-CwqgwLa5.esm.js} +2 -2
  56. package/dist/{dynamicFormsStateMachine-C8Z7k3vo.esm.js → dynamicFormsStateMachine-CBdnpD95.esm.js} +2 -2
  57. package/dist/ekyb.d.ts +4 -4
  58. package/dist/ekyb.esm.js +3 -3
  59. package/dist/{ekybManager-TB6ZG5lX.d.ts → ekybManager-BLOkwmWO.d.ts} +2 -2
  60. package/dist/{ekybManager-TGfqyjuu.esm.js → ekybManager-BVTqTHd3.esm.js} +2 -2
  61. package/dist/{ekybStateMachine-DBgFuEPK.esm.js → ekybStateMachine-BmZHuZE1.esm.js} +5 -3
  62. package/dist/ekybUtils-Cw8Ta9Qi.esm.js +140 -0
  63. package/dist/ekyc.d.ts +3 -2
  64. package/dist/ekyc.esm.js +3 -3
  65. package/dist/{ekycManager-BSQteIfC.d.ts → ekycManager-DlGIn9wA.d.ts} +2 -1
  66. package/dist/{ekycManager-C2cgG2Pl.esm.js → ekycManager-DymCvmVB.esm.js} +2 -2
  67. package/dist/{ekycStateMachine-CuNF7z4O.esm.js → ekycStateMachine-CoFCUJ2z.esm.js} +141 -68
  68. package/dist/{ekycUtils-BFncpC4F.esm.js → ekycUtils-GRuMELYr.esm.js} +80 -9
  69. package/dist/electronic-signature.esm.js +1 -1
  70. package/dist/{electronicSignatureManager-C7pqXsRm.esm.js → electronicSignatureManager-Bt_tCIdI.esm.js} +3 -3
  71. package/dist/email.esm.js +2 -2
  72. package/dist/{emailManager-FH_CP0cT.esm.js → emailManager-CGoE3CUe.esm.js} +2 -2
  73. package/dist/{emailStateMachine-Cx-uTaBV.esm.js → emailStateMachine-KgHfDNvM.esm.js} +2 -2
  74. package/dist/{events-CQteqXfy.esm.js → events-ggpBBaZ8.esm.js} +1 -1
  75. package/dist/events.esm.js +1 -1
  76. package/dist/extensibility.d.ts +15 -14
  77. package/dist/extensibility.esm.js +36 -35
  78. package/dist/face-match.esm.js +2 -2
  79. package/dist/{faceCaptureManagerFactory-CBm05KnT.esm.js → faceCaptureManagerFactory-BWOB3ZeZ.esm.js} +4 -4
  80. package/dist/{faceCaptureManagerFactory-C-xKdj-d.d.ts → faceCaptureManagerFactory-DV2ULUYS.d.ts} +3 -3
  81. package/dist/{faceCaptureSetup-BQjCbL51.esm.js → faceCaptureSetup-D0w1UBlO.esm.js} +12 -403
  82. package/dist/{faceMatchManager-B2zp7yP4.esm.js → faceMatchManager-D2xKPjjQ.esm.js} +2 -2
  83. package/dist/{faceMatchStateMachine-ByTMQCUC.esm.js → faceMatchStateMachine-CUvwiQi9.esm.js} +2 -2
  84. package/dist/{feature-management-DjAG5lsJ.esm.js → feature-management-DBh1nqp8.esm.js} +35 -21
  85. package/dist/feature-management.esm.js +1 -1
  86. package/dist/field-comparison.esm.js +1 -1
  87. package/dist/{fieldComparisonManager-CC0vKmpf.esm.js → fieldComparisonManager-DgDbEeFZ.esm.js} +2 -2
  88. package/dist/fiscal-qr.esm.js +1 -1
  89. package/dist/{fiscalQrManager-Be-r4oZj.esm.js → fiscalQrManager-BZeklojR.esm.js} +3 -3
  90. package/dist/flow-events.d.ts +1 -1
  91. package/dist/flow.d.ts +8 -8
  92. package/dist/flow.esm.js +10 -6
  93. package/dist/{flowCompletionService-ChMU2v79.esm.js → flowCompletionService-Dv7zoVWe.esm.js} +2 -2
  94. package/dist/{flowServices-g2tVWsJl.esm.js → flowServices-C5-oamoC.esm.js} +69 -143
  95. package/dist/geolocation.esm.js +2 -2
  96. package/dist/{geolocationManager-DLbvZwUB.esm.js → geolocationManager-BFTxgOZG.esm.js} +2 -2
  97. package/dist/{geolocationStateMachine-CAJVongM.esm.js → geolocationStateMachine-v729Lz_0.esm.js} +3 -3
  98. package/dist/government-validation.esm.js +2 -2
  99. package/dist/{governmentValidationManager-CkX9TEkh.esm.js → governmentValidationManager-CjChjZ3C.esm.js} +2 -2
  100. package/dist/{governmentValidationStateMachine-PTPCP26N.esm.js → governmentValidationStateMachine-AEbn3Afi.esm.js} +1 -1
  101. package/dist/home.d.ts +1 -1
  102. package/dist/home.esm.js +1 -1
  103. package/dist/http.esm.js +1 -1
  104. package/dist/id-ocr.d.ts +1 -1
  105. package/dist/id-ocr.esm.js +2 -2
  106. package/dist/id-selfie-flow.d.ts +1 -1
  107. package/dist/id-selfie-flow.esm.js +10 -9
  108. package/dist/id-verification.esm.js +2 -2
  109. package/dist/id.d.ts +3 -3
  110. package/dist/id.esm.js +4 -4
  111. package/dist/{idCaptureDefaults-MSQoqScU.esm.js → idCaptureDefaults-Dszuq9ng.esm.js} +3 -3
  112. package/dist/{idCaptureManager-zZdTcpG1.esm.js → idCaptureManager-BVfqpIjM.esm.js} +9 -8
  113. package/dist/{idCaptureManager-DzTfQ1Am.d.ts → idCaptureManager-CCA2D1Ah.d.ts} +5 -3
  114. package/dist/{idCaptureServices-8OHinO0N.esm.js → idCaptureServices-CwG9Xp_n.esm.js} +27 -196
  115. package/dist/{idCaptureStateMachine-B3G6XoDG.esm.js → idCaptureStateMachine-DUm3a_Mt.esm.js} +20 -20
  116. package/dist/{idOcrManager-DT3kPIB3.d.ts → idOcrManager-BTdHlJ9D.d.ts} +1 -1
  117. package/dist/{idOcrManager-B64-fjWg.esm.js → idOcrManager-xyEZNOBa.esm.js} +2 -2
  118. package/dist/{idOcrStateMachine-B1aZnobs.esm.js → idOcrStateMachine-DNKXh4Rn.esm.js} +1 -1
  119. package/dist/{idVerificationManager-_Kebv-Ue.esm.js → idVerificationManager-DdnvYfgN.esm.js} +2 -2
  120. package/dist/{idVerificationStateMachine-DQn6c84z.esm.js → idVerificationStateMachine-DtIBCa32.esm.js} +1 -1
  121. package/dist/identity-reuse.esm.js +2 -2
  122. package/dist/{identityReuseManager-DDXkNVZi.esm.js → identityReuseManager-CcpovlfD.esm.js} +2 -2
  123. package/dist/{identityReuseStateMachine-Bcnkbjf8.esm.js → identityReuseStateMachine-DxZFWy47.esm.js} +1 -1
  124. package/dist/{index-DEfwds5y.d.ts → index-BfSZvEHi.d.ts} +10 -2
  125. package/dist/{index-DMDAk85K.d.ts → index-DC0P2Vzw.d.ts} +1 -1
  126. package/dist/index.d.ts +1 -1
  127. package/dist/index.esm.js +1 -1
  128. package/dist/{invokeOnCaptureCallback-CXIBwBeE.esm.js → invokeOnCaptureCallback-BJ0GVHGr.esm.js} +1 -1
  129. package/dist/kyb-checks.d.ts +3 -0
  130. package/dist/kyb-checks.esm.js +3 -0
  131. package/dist/kybChecksManager-CblEL97E.d.ts +95 -0
  132. package/dist/kybChecksManager-D2BEaUzK.esm.js +89 -0
  133. package/dist/kybChecksStateMachine-Cy-MsmKZ.esm.js +718 -0
  134. package/dist/mandatory-consent.d.ts +2 -2
  135. package/dist/mandatory-consent.esm.js +2 -2
  136. package/dist/{mandatoryConsentManager-43W5d_8G.esm.js → mandatoryConsentManager-B4vCYslr.esm.js} +2 -2
  137. package/dist/{mandatoryConsentManager-xx3mY-xw.d.ts → mandatoryConsentManager-B88Sm5nd.d.ts} +6 -6
  138. package/dist/{mandatoryConsentStateMachine-CVlgdlnt.esm.js → mandatoryConsentStateMachine-DWslYPA3.esm.js} +1 -1
  139. package/dist/mediaRecorderOptions-B9-IEVtV.esm.js +70 -0
  140. package/dist/multipartRecordingService-BTqkHGG9.esm.js +407 -0
  141. package/dist/{permissionGuards-B3OPL8Si.esm.js → permissionGuards-DFV-Ws0a.esm.js} +1 -1
  142. package/dist/{permissionServices-DnBAN_hW.esm.js → permissionServices-D190ATGD.esm.js} +8 -6
  143. package/dist/phone.esm.js +2 -2
  144. package/dist/phoneFormat-JJNaWthV.esm.js +75 -0
  145. package/dist/{phoneManager-C6jut_pz.esm.js → phoneManager-Dy5tODCU.esm.js} +3 -3
  146. package/dist/phoneServices-DJgyOzU2.esm.js +77 -0
  147. package/dist/{phoneStateMachine-T1-drWfG.esm.js → phoneStateMachine-DnlPhnw7.esm.js} +20 -60
  148. package/dist/{processFaceMatch-BWme3kVV.esm.js → processFaceMatch-Bst83HaS.esm.js} +1 -1
  149. package/dist/qe-signature.esm.js +1 -1
  150. package/dist/recordingService-CTko6Cjn.esm.js +397 -0
  151. package/dist/redirect-to-mobile.esm.js +2 -2
  152. package/dist/{redirectToMobileManager-BJXC6Kx9.esm.js → redirectToMobileManager-CgGaT2NP.esm.js} +3 -3
  153. package/dist/{redirectToMobileStateMachine-BBMAc2Gb.esm.js → redirectToMobileStateMachine-CbhN8uVN.esm.js} +39 -21
  154. package/dist/resolveForm-O7-r79VA.esm.js +351 -0
  155. package/dist/{runChildModule-DPHTqSdF.esm.js → runChildModule-BG46reQE.esm.js} +2 -2
  156. package/dist/{sdkVersion-C3_P-Qbq.esm.js → sdkVersion-DJCo6uSb.esm.js} +1 -1
  157. package/dist/selfie.d.ts +3 -3
  158. package/dist/selfie.esm.js +10 -10
  159. package/dist/{selfieErrorUtils-BL0BLMnp.esm.js → selfieErrorUtils-DNbVqz2B.esm.js} +1 -1
  160. package/dist/{selfieManager-Cbliomv7.esm.js → selfieManager-1_TQP4-x.esm.js} +5 -5
  161. package/dist/{selfieManager-BMmpUii2.d.ts → selfieManager-DmZFzs1-.d.ts} +1 -1
  162. package/dist/{selfieStateMachine-B5m_Kn0O.esm.js → selfieStateMachine-BUnZmMRY.esm.js} +3 -3
  163. package/dist/{session-DAaAewMX.esm.js → session-DdnAM9fZ.esm.js} +4 -4
  164. package/dist/session.d.ts +1 -1
  165. package/dist/session.esm.js +6 -6
  166. package/dist/{sessionInitializer-CWFT4dfw.esm.js → sessionInitializer-CwJACl13.esm.js} +83 -24
  167. package/dist/{setup-D9qt8YVU.d.ts → setup-CmqnkqsR.d.ts} +1 -1
  168. package/dist/{setup-CDAKwTr7.esm.js → setup-D26WdmvA.esm.js} +28 -27
  169. package/dist/signature.esm.js +2 -2
  170. package/dist/{signatureManager-BeEVCcsC.esm.js → signatureManager-CwqjcxPg.esm.js} +2 -2
  171. package/dist/{signatureStateMachine-_1c1vSid.esm.js → signatureStateMachine-DBVDd1Eu.esm.js} +1 -1
  172. package/dist/{stats-BpMz-hTP.esm.js → stats-CatA2dea.esm.js} +1 -1
  173. package/dist/stats.esm.js +1 -1
  174. package/dist/textRules-D4NRinKY.d.ts +41 -0
  175. package/dist/{tri-BajQnjbf.esm.js → tri-C9SvtzuQ.esm.js} +24 -3
  176. package/dist/tri.d.ts +2 -2
  177. package/dist/{tri.esm-CzTNi5Q_.esm.js → tri.esm-DgTlfPhR.esm.js} +167 -155
  178. package/dist/tri.esm.js +2 -2
  179. package/dist/{trueSightService-BujtUIW6.esm.js → trueSightService-OZl8wQu7.esm.js} +4 -4
  180. package/dist/trust-graph.esm.js +1 -1
  181. package/dist/{types--3HDl2SF.d.ts → types-BEVHQbbC.d.ts} +1 -1
  182. package/dist/{types-xEEWCx1j.d.ts → types-BPm1JSu7.d.ts} +1 -1
  183. package/dist/{types-C397LhmN.d.ts → types-BgRHw-dR.d.ts} +1 -1
  184. package/dist/{types-DuD8TRJU.d.ts → types-CRaFu6wS.d.ts} +4 -2
  185. package/dist/types-CTaL0XJz.d.ts +80 -0
  186. package/dist/{types-PTZHRhGX.d.ts → types-Cd0J0F9D.d.ts} +1 -1
  187. package/dist/{types-e8fCsvvk.d.ts → types-Csh8vzPo.d.ts} +1 -1
  188. package/dist/{types-B2FK_wYb.d.ts → types-CuMJ2M7D.d.ts} +2 -41
  189. package/dist/{types-ZTZelfbM.d.ts → types-CyNndVAT.d.ts} +14 -6
  190. package/dist/types-J6g6iKe_.d.ts +6 -0
  191. package/dist/video-selfie.d.ts +1 -1
  192. package/dist/video-selfie.esm.js +9 -7
  193. package/dist/{videoSelfieCameraWarmer-DjkPpoj_.esm.js → videoSelfieCameraWarmer-Bhi70pSN.esm.js} +8 -8
  194. package/dist/{videoSelfieStepDetector-RfSmlFFW.d.ts → videoSelfieStepDetector-Dv3Mgws-.d.ts} +2 -2
  195. package/dist/virtualCameraCheck-eFOm2C9q.esm.js +27 -0
  196. package/dist/{warmup-BkfxQZsC.esm.js → warmup-DtB0DJpl.esm.js} +24 -17
  197. package/dist/wasm.d.ts +1 -1
  198. package/dist/wasm.esm.js +3 -3
  199. package/dist/{wasmDsFlagSync-BhU5H2oR.esm.js → wasmDsFlagSync-BtiR5pig.esm.js} +1 -1
  200. package/dist/{wasmWebClient-DTj9auyA.esm.js → wasmWebClient-BDrax6Eu.esm.js} +12 -9
  201. package/dist/watchlist-for-business.esm.js +2 -2
  202. package/dist/watchlist.esm.js +2 -2
  203. package/dist/{watchlistForBusinessManager-CVay6-9A.esm.js → watchlistForBusinessManager-DqUpAEj_.esm.js} +2 -2
  204. package/dist/{watchlistForBusinessStateMachine-DA6K5na4.esm.js → watchlistForBusinessStateMachine-DdaPl2PS.esm.js} +1 -1
  205. package/dist/{watchlistManager-B8gQ_rw3.esm.js → watchlistManager-CdpXzT4B.esm.js} +2 -2
  206. package/dist/{watchlistStateMachine-CSi_ZhtT.esm.js → watchlistStateMachine-ofHW_lPk.esm.js} +1 -1
  207. package/dist/workflow.d.ts +1 -1
  208. package/dist/workflow.esm.js +42 -42
  209. package/package.json +13 -7
  210. package/dist/deepsightLoader-DMxtowCm.esm.js +0 -33
  211. package/dist/types-D9r3zRfY.d.ts +0 -6
@@ -1,6 +1,6 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-CQteqXfy.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ggpBBaZ8.esm.js";
2
2
  import { s as createActor, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
3
- import { t as faceMatchMachine } from "./faceMatchStateMachine-ByTMQCUC.esm.js";
3
+ import { t as faceMatchMachine } from "./faceMatchStateMachine-CUvwiQi9.esm.js";
4
4
  //#region src/modules/face-match/faceMatchActor.ts
5
5
  function createFaceMatchActor(options) {
6
6
  return createActor(faceMatchMachine, { input: { config: options.config } }).start();
@@ -1,7 +1,7 @@
1
- import { t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
1
+ import { t as api, u as endpoints } from "./api-CpP4PS4S.esm.js";
2
2
  import { i as assign, t as setup } from "./xstate.esm-DSajW7CJ.esm.js";
3
3
  import { n as fromPromise } from "./xstate-actors.esm-8Gzepa_A.esm.js";
4
- import { t as getProcessFaceMatch } from "./processFaceMatch-BWme3kVV.esm.js";
4
+ import { t as getProcessFaceMatch } from "./processFaceMatch-Bst83HaS.esm.js";
5
5
  //#region src/modules/face-match/constants.ts
6
6
  /**
7
7
  * Backend error code returned by face-match endpoints (e.g. `/omni/process/face`,
@@ -1,5 +1,5 @@
1
1
  import { r as __toESM } from "./rolldown-runtime-B-1-B7_t.esm.js";
2
- import { t as SDK_VERSION } from "./sdkVersion-C3_P-Qbq.esm.js";
2
+ import { t as SDK_VERSION } from "./sdkVersion-DJCo6uSb.esm.js";
3
3
  import { t as BrowserLazyImportProvider } from "./BrowserLazyImportProvider-BhoA957O.esm.js";
4
4
  let currentEnvironment;
5
5
  /** Effective tier: the explicitly-set value, else the default (see note above). */
@@ -94,35 +94,50 @@ var FeatureManagementProvider = class FeatureManagementProvider {
94
94
  get initialized() {
95
95
  return this._client !== void 0;
96
96
  }
97
- async initialize(config) {
97
+ initialize(config) {
98
+ this._redactedUserInfo = {
99
+ ...DEFAULT_REDACTED_USER_INFO,
100
+ ...config.redactedUserInfo
101
+ };
102
+ this._user = this._getAdjustedUser({
103
+ customIDs: config.customIDs,
104
+ custom: config.custom,
105
+ appVersion: config.appVersion
106
+ });
107
+ this._initialization = this._initialize(config);
108
+ return this._initialization;
109
+ }
110
+ async _initialize(config) {
98
111
  try {
99
112
  const module = await this._lazySdk.load();
100
113
  if (!module) return;
101
- this._redactedUserInfo = {
102
- ...DEFAULT_REDACTED_USER_INFO,
103
- ...config.redactedUserInfo
104
- };
105
- this._user = this._getAdjustedUser({
106
- customIDs: config.customIDs,
107
- custom: config.custom,
108
- appVersion: config.appVersion
109
- });
110
- const client = new module.StatsigClient(CLIENT_SDK_KEY, this._user, {
114
+ const user = this._user;
115
+ const client = new module.StatsigClient(CLIENT_SDK_KEY, user, {
111
116
  environment: { tier: config.environment },
112
117
  disableStableID: config.disableStableId,
113
118
  disableStorage: config.disablePersistence
114
119
  });
115
120
  await client.initializeAsync({ timeoutMs: FEATURE_MANAGEMENT_REQUEST_TIMEOUT_MS });
116
121
  this._client = client;
122
+ this._clientUser = user;
117
123
  } catch (error) {
118
124
  console.warn("[FeatureManagement] initialize() failed; gates/experiments/layers will be disabled for this session.", error);
119
125
  }
120
126
  }
127
+ /**
128
+ * During `initialize()`, merges into the user the client starts with and
129
+ * resolves once it is initialized; sends a request only when the client's
130
+ * user lacks the update.
131
+ */
121
132
  async updateUser(user) {
122
- if (!this._client) return;
133
+ if (!this._client && !this._initialization) return;
123
134
  this._user = this._getAdjustedUser(user);
135
+ await this._initialization;
136
+ if (!this._client || this._clientUser === this._user) return;
137
+ const next = this._user;
124
138
  try {
125
- await this._client.updateUserAsync(this._user, { timeoutMs: FEATURE_MANAGEMENT_REQUEST_TIMEOUT_MS });
139
+ await this._client.updateUserAsync(next, { timeoutMs: FEATURE_MANAGEMENT_REQUEST_TIMEOUT_MS });
140
+ this._clientUser = next;
126
141
  } catch (error) {
127
142
  console.warn("[FeatureManagement] updateUser() failed.", error);
128
143
  }
@@ -201,6 +216,8 @@ var FeatureManagementProvider = class FeatureManagementProvider {
201
216
  async reset() {
202
217
  const client = this._client;
203
218
  this._client = void 0;
219
+ this._clientUser = void 0;
220
+ this._initialization = void 0;
204
221
  this._user = {};
205
222
  this._redactedUserInfo = { ...DEFAULT_REDACTED_USER_INFO };
206
223
  return client?.shutdown().catch(() => {});
@@ -403,13 +420,10 @@ async function updateFeatureManagementUser(update) {
403
420
  const previousCustomIDs = {};
404
421
  for (const key of Object.keys(adaptedCustomIDs)) previousCustomIDs[key] = appliedCustomIDs[key];
405
422
  Object.assign(appliedCustomIDs, adaptedCustomIDs);
406
- const providerUpdate = (async () => {
407
- if (isFeatureManagementLocked) await readyPromise;
408
- await getProvider().updateUser({
409
- customIDs: adaptedCustomIDs,
410
- custom
411
- });
412
- })();
423
+ const providerUpdate = getProvider().updateUser({
424
+ customIDs: adaptedCustomIDs,
425
+ custom
426
+ });
413
427
  inFlightUserUpdate = providerUpdate;
414
428
  try {
415
429
  await providerUpdate;
@@ -1,2 +1,2 @@
1
- import { E as updateFeatureManagementUser, T as subscribeFeatureManagement, _ as getIsFeatureManagementInitialized, a as stringParam, d as ONBOARDING_WEB_SDK_PARAMETER_STORE, f as getExperiment, g as getFeatureParameterStore, h as getFeatureManagementVersion, i as numberParam, l as resolveExperiment, m as getFeatureGate, n as defineExperimentParams, o as EXPERIMENT_UNAVAILABLE_SENTINEL, p as getFeatureDynamicConfig, r as enumParam, s as exposeExperimentOnce, t as booleanParam, u as resolveExperimentOnce, x as logEvent, y as getLayer } from "./feature-management-DjAG5lsJ.esm.js";
1
+ import { E as updateFeatureManagementUser, T as subscribeFeatureManagement, _ as getIsFeatureManagementInitialized, a as stringParam, d as ONBOARDING_WEB_SDK_PARAMETER_STORE, f as getExperiment, g as getFeatureParameterStore, h as getFeatureManagementVersion, i as numberParam, l as resolveExperiment, m as getFeatureGate, n as defineExperimentParams, o as EXPERIMENT_UNAVAILABLE_SENTINEL, p as getFeatureDynamicConfig, r as enumParam, s as exposeExperimentOnce, t as booleanParam, u as resolveExperimentOnce, x as logEvent, y as getLayer } from "./feature-management-DBh1nqp8.esm.js";
2
2
  export { EXPERIMENT_UNAVAILABLE_SENTINEL, ONBOARDING_WEB_SDK_PARAMETER_STORE, booleanParam, defineExperimentParams, enumParam, exposeExperimentOnce, getExperiment, getFeatureDynamicConfig, getFeatureGate, getFeatureManagementVersion, getFeatureParameterStore, getIsFeatureManagementInitialized, getLayer, logEvent, numberParam, resolveExperiment, resolveExperimentOnce, stringParam, subscribeFeatureManagement, updateFeatureManagementUser };
@@ -1,2 +1,2 @@
1
- import { n as createFieldComparisonManagerFromActor, r as fieldComparisonMachine, t as createFieldComparisonManager } from "./fieldComparisonManager-CC0vKmpf.esm.js";
1
+ import { n as createFieldComparisonManagerFromActor, r as fieldComparisonMachine, t as createFieldComparisonManager } from "./fieldComparisonManager-DgDbEeFZ.esm.js";
2
2
  export { createFieldComparisonManager, createFieldComparisonManagerFromActor, fieldComparisonMachine };
@@ -1,5 +1,5 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-CQteqXfy.esm.js";
2
- import { t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ggpBBaZ8.esm.js";
2
+ import { t as api, u as endpoints } from "./api-CpP4PS4S.esm.js";
3
3
  import { i as assign, s as createActor, t as setup, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
4
4
  import { n as fromPromise } from "./xstate-actors.esm-8Gzepa_A.esm.js";
5
5
  //#region src/modules/field-comparison/fieldComparisonServices.ts
@@ -1,2 +1,2 @@
1
- import { n as createFiscalQrManagerFromActor, r as fiscalQrMachine, t as createFiscalQrManager } from "./fiscalQrManager-Be-r4oZj.esm.js";
1
+ import { n as createFiscalQrManagerFromActor, r as fiscalQrMachine, t as createFiscalQrManager } from "./fiscalQrManager-BZeklojR.esm.js";
2
2
  export { createFiscalQrManager, createFiscalQrManagerFromActor, fiscalQrMachine };
@@ -1,10 +1,10 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation, y as addEvent } from "./events-CQteqXfy.esm.js";
2
- import { t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation, y as addEvent } from "./events-ggpBBaZ8.esm.js";
2
+ import { t as api, u as endpoints } from "./api-CpP4PS4S.esm.js";
3
3
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
4
4
  import { i as assign, s as createActor, t as setup, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
5
5
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-8Gzepa_A.esm.js";
6
6
  import { a as stopCameraStream } from "./camera-E_Kcre4O.esm.js";
7
- import { t as getBackCameraStream } from "./backCameraStream-C5_NNfUN.esm.js";
7
+ import { n as getBackCameraStream } from "./backCameraStream-DS1oDiUq.esm.js";
8
8
  import { t as StreamCanvasCapture } from "./StreamCanvasCapture-C9jtgBdT.esm.js";
9
9
  import "./http.esm.js";
10
10
  //#region src/modules/fiscal-qr/fiscalQrConstants.ts
@@ -1,2 +1,2 @@
1
- import { a as FlowEventListener, c as FlowModuleStartedEvent, i as FlowEvent, l as FlowReadyEvent, n as FlowCompletedEvent, o as FlowEventSubscribable, r as FlowErrorEvent, s as FlowModuleCompletedEvent, t as FlowClosedEvent, u as FlowStartedEvent } from "./index-DMDAk85K.js";
1
+ import { a as FlowEventListener, c as FlowModuleStartedEvent, i as FlowEvent, l as FlowReadyEvent, n as FlowCompletedEvent, o as FlowEventSubscribable, r as FlowErrorEvent, s as FlowModuleCompletedEvent, t as FlowClosedEvent, u as FlowStartedEvent } from "./index-DC0P2Vzw.js";
2
2
  export type { FlowClosedEvent, FlowCompletedEvent, FlowErrorEvent, FlowEvent, FlowEventListener, FlowEventSubscribable, FlowModuleCompletedEvent, FlowModuleStartedEvent, FlowReadyEvent, FlowStartedEvent };
package/dist/flow.d.ts CHANGED
@@ -2,18 +2,18 @@ import { c as WasmPipeline } from "./warmup-BO57syF6.js";
2
2
  import { A as StateMachine, _ as MachineContext, c as AnyEventObject, l as AnyStateMachine, p as EventObject, v as MetaObject, y as NonReducibleUnknown } from "./spawn-D9jgw9pW.js";
3
3
  import { t as Manager } from "./Manager-C9T5amUN.js";
4
4
  import { a as ElectronicSignatureConfig } from "./types-D0gekt4U.js";
5
- import { t as EkycConfig } from "./types-B2FK_wYb.js";
6
- import { i as FlowModuleConfig, n as Flow, r as FlowModule } from "./types-DuD8TRJU.js";
7
- import { t as AuthenticationConfig } from "./types-D9r3zRfY.js";
8
- import { r as DocumentCaptureConfig } from "./types-ZTZelfbM.js";
5
+ import { t as EkycConfig } from "./types-CuMJ2M7D.js";
6
+ import { i as FlowModuleConfig, n as Flow, r as FlowModule } from "./types-CRaFu6wS.js";
7
+ import { t as AuthenticationConfig } from "./types-J6g6iKe_.js";
8
+ import { r as DocumentCaptureConfig } from "./types-CyNndVAT.js";
9
9
  import { t as DynamicFormsConfig } from "./types-BSBzhHRH.js";
10
- import { t as EkybConfig } from "./types-C397LhmN.js";
11
- import { u as IdCaptureConfig } from "./types-xEEWCx1j.js";
12
- import { r as MandatoryConsentConfig } from "./types-PTZHRhGX.js";
10
+ import { t as EkybConfig } from "./types-BgRHw-dR.js";
11
+ import { u as IdCaptureConfig } from "./types-BPm1JSu7.js";
12
+ import { r as MandatoryConsentConfig } from "./types-Cd0J0F9D.js";
13
13
  import { t as IdOcrConfig } from "./types-CJ7Yl9K-.js";
14
14
  import { t as RedirectToMobileConfig } from "./types-DNVzoRvi.js";
15
15
  import { a as TotalScore, c as getTotalScoreStatus, n as FinishStatus, o as classifyScoreStatus, r as GetFinishStatusFn, t as FinishScreenVariant } from "./flowCompletionService-BlAHsKyv.js";
16
- import { o as FlowEventSubscribable } from "./index-DMDAk85K.js";
16
+ import { o as FlowEventSubscribable } from "./index-DC0P2Vzw.js";
17
17
  import { n as ModuleRegistry } from "./types-BQA7lRDV.js";
18
18
  //#region src/modules/flow/orchestratedFlowStateMachine.d.ts
19
19
  type GetFlowFn = (signal: AbortSignal) => Promise<Flow>;
package/dist/flow.esm.js CHANGED
@@ -1,10 +1,10 @@
1
- import { y as addEvent } from "./events-CQteqXfy.esm.js";
2
- import { i as retryAfterReconnect } from "./connectivity-HSl0diCx.esm.js";
3
- import { D as mergeDashboardConfig, a as resolveDashboardModuleConfig, c as getRequiredWasmPipelines, l as normalizeFlowModules, n as getFlow, o as enrichFlowModuleConfig, r as preloadDashboardFlow, s as getNextRequiredWasmPipelines, t as completeDeferredActivation, u as resolveFlowModuleConfig } from "./flowServices-g2tVWsJl.esm.js";
1
+ import { y as addEvent } from "./events-ggpBBaZ8.esm.js";
2
+ import { i as retryAfterReconnect } from "./connectivity-BCuEoQ-n.esm.js";
3
+ import { a as resolveDashboardModuleConfig, c as getRequiredWasmPipelines, d as resolveFlowModuleConfig, h as mergeDashboardConfig, l as loadFlowConfigConverters, n as getFlow, o as enrichFlowModuleConfig, r as preloadDashboardFlow, s as getNextRequiredWasmPipelines, t as completeDeferredActivation, u as normalizeFlowModules } from "./flowServices-C5-oamoC.esm.js";
4
4
  import { i as assign, s as createActor, t as setup, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
5
5
  import { n as fromPromise } from "./xstate-actors.esm-8Gzepa_A.esm.js";
6
- import { n as getFinishStatus, r as getTotalScoreStatus, t as classifyScoreStatus } from "./flowCompletionService-ChMU2v79.esm.js";
7
- import { n as attachFlowEventEmitter, t as runChildModule } from "./runChildModule-DPHTqSdF.esm.js";
6
+ import { n as getFinishStatus, r as getTotalScoreStatus, t as classifyScoreStatus } from "./flowCompletionService-Dv7zoVWe.esm.js";
7
+ import { n as attachFlowEventEmitter, t as runChildModule } from "./runChildModule-BG46reQE.esm.js";
8
8
  import { n as isAdvanceableError } from "./advanceableErrors-k-U-cL5m.esm.js";
9
9
  //#region src/modules/flow/noOpFlowModuleMachine.ts
10
10
  const noOpFlowModuleMachine = /* @__PURE__ */ (() => setup({}).createMachine({
@@ -412,7 +412,11 @@ const orchestratedFlowMachine = /* @__PURE__ */ (() => setup({
412
412
  input: {}
413
413
  },
414
414
  actors: {
415
- fetchFlow: fromPromise(({ input, signal }) => retryAfterReconnect(() => input.getFlow(signal), signal)),
415
+ fetchFlow: fromPromise(async ({ input, signal }) => {
416
+ const flow = await retryAfterReconnect(() => input.getFlow(signal), signal);
417
+ await loadFlowConfigConverters(flow);
418
+ return flow;
419
+ }),
416
420
  notifyBackend: fromPromise(({ input, signal }) => retryAfterReconnect(() => input.getFinishStatus(input.flowId, signal), signal)),
417
421
  runChildModule,
418
422
  resolveActivation: fromPromise(async ({ input, signal }) => {
@@ -1,5 +1,5 @@
1
- import { t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
2
- import { i as toIncodeApiError } from "./apiError-CfuIvnUy.esm.js";
1
+ import { t as api, u as endpoints } from "./api-CpP4PS4S.esm.js";
2
+ import { i as toIncodeApiError } from "./apiError-gNfsp99I.esm.js";
3
3
  //#region src/modules/flow/flowCompletionService.ts
4
4
  const getFinishStatus = async (flowId, signal) => {
5
5
  const url = `${endpoints.finishStatus}${flowId ? `?flowId=${flowId}` : ""}`;
@@ -1,10 +1,11 @@
1
- import { r as getWasmStatus } from "./warmup-BkfxQZsC.esm.js";
2
- import { r as getToken, t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
3
- import { d as whenSessionFingerprintSettled, f as getStandaloneFlowPolicy, i as initializeSession, r as getSessionFingerprintResult } from "./sessionInitializer-CWFT4dfw.esm.js";
4
- import { E as updateFeatureManagementUser } from "./feature-management-DjAG5lsJ.esm.js";
5
- import { i as toIncodeApiError } from "./apiError-CfuIvnUy.esm.js";
6
- import "./session-DAaAewMX.esm.js";
7
- import { c as toEkycConfig } from "./ekycUtils-BFncpC4F.esm.js";
1
+ import { r as getWasmStatus } from "./warmup-DtB0DJpl.esm.js";
2
+ import { r as getToken, t as api, u as endpoints } from "./api-CpP4PS4S.esm.js";
3
+ import { a as initializeSession, f as whenSessionFingerprintSettled, i as getSessionFingerprintResult, p as getStandaloneFlowPolicy, t as endDeviceHashWait } from "./sessionInitializer-CwJACl13.esm.js";
4
+ import { E as updateFeatureManagementUser } from "./feature-management-DBh1nqp8.esm.js";
5
+ import { i as toIncodeApiError } from "./apiError-gNfsp99I.esm.js";
6
+ import "./session-DdnAM9fZ.esm.js";
7
+ import { n as loadPhoneValidation } from "./phoneValidation-OggtfjRt.esm.js";
8
+ import { a as prefetchStartInfo } from "./phoneServices-DJgyOzU2.esm.js";
8
9
  //#region src/modules/flow/dashboardConfig.ts
9
10
  function isPlainObject(value) {
10
11
  if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
@@ -22,132 +23,6 @@ function mergeDashboardConfig(dashboardConfig, localConfig) {
22
23
  return result;
23
24
  }
24
25
  //#endregion
25
- //#region src/modules/ekyb/ekybConstants.ts
26
- /**
27
- * Countries available in all environments.
28
- * Sorted alphabetically by display name.
29
- */
30
- const SUPPORTED_COUNTRIES = [
31
- "BR",
32
- "CN",
33
- "FR",
34
- "DE",
35
- "IL",
36
- "IT",
37
- "MX",
38
- "ES",
39
- "GB",
40
- "US"
41
- ];
42
- /**
43
- * Additional countries available only in dev/staging environments.
44
- */
45
- const DEV_ONLY_COUNTRIES = [
46
- "CM",
47
- "KE",
48
- "NG"
49
- ];
50
- /**
51
- * Union of all recognized country codes (prod + dev).
52
- */
53
- const ALL_COUNTRIES = [...SUPPORTED_COUNTRIES, ...DEV_ONLY_COUNTRIES];
54
- const ALL_COUNTRIES_SET = new Set(ALL_COUNTRIES);
55
- function isSupportedCountry(code) {
56
- return ALL_COUNTRIES_SET.has(code);
57
- }
58
- const FIELD_ORDER = [
59
- "name-user_input",
60
- "taxId-user_input",
61
- "street-user_input",
62
- "houseNo-user_input",
63
- "address2-user_input",
64
- "city-user_input",
65
- "state-user_input",
66
- "postalCode-user_input"
67
- ];
68
- const FIELD_NAME_MAPPING = {
69
- "name-user_input": "businessName",
70
- "street-user_input": "street",
71
- "houseNo-user_input": "houseNo",
72
- "address2-user_input": "addressLine2",
73
- "city-user_input": "city",
74
- "state-user_input": "state",
75
- "postalCode-user_input": "postalCode",
76
- "taxId-user_input": "taxId"
77
- };
78
- const BUSINESS_NAME_OPTIONAL_COUNTRIES = [];
79
- const ADDRESS_FULLY_OPTIONAL_COUNTRIES = [
80
- "BR",
81
- "GB",
82
- "FR"
83
- ];
84
- const ADDRESS_FIELDS = [
85
- "street",
86
- "houseNo",
87
- "addressLine2",
88
- "city",
89
- "state",
90
- "postalCode"
91
- ];
92
- const ALL_COUNTRIES_OPTIONAL_FIELDS = ["ubo"];
93
- const UBO_FIELD_LABELS = {
94
- name: "ekyb.uboName",
95
- surname: "ekyb.uboSurname"
96
- };
97
- //#endregion
98
- //#region src/modules/ekyb/ekybUtils.ts
99
- /**
100
- * Normalizes any supported eKYB config input into a manager-ready `EkybConfig`.
101
- *
102
- * Accepts either:
103
- * - A manager-ready `EkybConfig` (with `flowId` or `verificationFields`) →
104
- * returned unchanged.
105
- * - A raw backend `EkybFlowConfig` (with `*Source` companions) → stripped to
106
- * the four `check*` fields the manager consumes.
107
- *
108
- * Idempotent: `toEkybConfig(toEkybConfig(x))` equals `toEkybConfig(x)`.
109
- */
110
- function toEkybConfig(config) {
111
- if (config.flowId || config.verificationFields) return config;
112
- return {
113
- checkBusinessName: config.checkBusinessName,
114
- checkAddress: config.checkAddress,
115
- checkTaxId: config.checkTaxId,
116
- checkUniqueBeneficialOwner: config.checkUniqueBeneficialOwner
117
- };
118
- }
119
- /** Sorts modules based on a custom order; items not in order maintain relative position */
120
- function sortModulesByOrder(modules, customOrder) {
121
- return [...modules].sort((a, b) => {
122
- const indexA = customOrder.indexOf(a);
123
- const indexB = customOrder.indexOf(b);
124
- if (indexA !== -1 && indexB !== -1) return indexA - indexB;
125
- if (indexA !== -1) return -1;
126
- if (indexB !== -1) return 1;
127
- return 0;
128
- });
129
- }
130
- /** Determines if a field is optional for the given country */
131
- function isFieldOptional(fieldName, countryCode) {
132
- if (ALL_COUNTRIES_OPTIONAL_FIELDS.includes(fieldName)) return true;
133
- if (fieldName === "businessName") return BUSINESS_NAME_OPTIONAL_COUNTRIES.includes(countryCode);
134
- if (fieldName === "addressLine2") return true;
135
- if (ADDRESS_FIELDS.includes(fieldName)) return false;
136
- if (fieldName === "taxId") return false;
137
- return false;
138
- }
139
- /** Checks if at least one address field has a non-empty value */
140
- function hasAtLeastOneAddressField(formData) {
141
- return ADDRESS_FIELDS.some((field) => {
142
- const value = formData[field];
143
- return value !== void 0 && value.trim() !== "";
144
- });
145
- }
146
- /** Returns false for countries where address is fully optional */
147
- function requiresAddressValidation(countryCode) {
148
- return !ADDRESS_FULLY_OPTIONAL_COUNTRIES.includes(countryCode);
149
- }
150
- //#endregion
151
26
  //#region src/modules/video-selfie/videoSelfieSteps.ts
152
27
  /** Steps that use the rear (environment) camera; everything else uses the front (user) camera. */
153
28
  const REAR_CAMERA_STEPS = [
@@ -211,10 +86,25 @@ function enrichFlowModuleConfig(module, flow) {
211
86
  };
212
87
  return config;
213
88
  }
89
+ let configConverters;
90
+ /**
91
+ * Loads the eKYC/eKYB config converters (the form-definitions catalog index)
92
+ * for a flow that has those steps, so other flows do not download them. The
93
+ * flow machine awaits it with the flow, before it reads any step config.
94
+ */
95
+ async function loadFlowConfigConverters(flow) {
96
+ const needed = flow.flowModules.some((module) => module.key === "EXTERNAL_VERIFICATION" || module.key === "EKYB");
97
+ if (configConverters || !needed) return;
98
+ const [ekyc, ekyb] = await Promise.all([import("./ekycUtils-GRuMELYr.esm.js").then((n) => n.n), import("./ekybUtils-Cw8Ta9Qi.esm.js").then((n) => n.t)]);
99
+ configConverters = {
100
+ toEkycConfig: ekyc.toEkycConfig,
101
+ toEkybConfig: ekyb.toEkybConfig
102
+ };
103
+ }
214
104
  function resolveFlowModuleConfig(module, flow) {
215
105
  const config = enrichFlowModuleConfig(module, flow);
216
- if (module.key === "EXTERNAL_VERIFICATION") return { ...toEkycConfig(module.configuration) };
217
- if (module.key === "EKYB") return { ...toEkybConfig(module.configuration) };
106
+ if (module.key === "EXTERNAL_VERIFICATION") return { ...configConverters?.toEkycConfig(module.configuration) ?? module.configuration };
107
+ if (module.key === "EKYB") return { ...configConverters?.toEkybConfig(module.configuration) ?? module.configuration };
218
108
  if (module.key === "FACE_MATCH" && (config.matchingType === void 0 || config.matchingType === "selfieVsId") && flow.flowModules.some((candidate) => candidate.key === "SECOND_ID")) return {
219
109
  ...config,
220
110
  matchingType: "secondId"
@@ -463,8 +353,18 @@ function toRegulationType(value) {
463
353
  const normalized = value.trim().toLowerCase().replace(/[\s-]+/g, "_");
464
354
  return REGULATION_TYPE_ALIASES[normalized] ?? "Other";
465
355
  }
356
+ /**
357
+ * The consent decision rides on the device-fingerprint response. A flow that
358
+ * never checks for consent doesn't read that response, so its first module
359
+ * doesn't wait for the post, and the post keeps waiting for the device hash in
360
+ * the background. A flow that checks waits for the post, so the post stops
361
+ * waiting for the hash (`endDeviceHashWait`).
362
+ */
363
+ function readsFingerprintResult(flow) {
364
+ return flow.mandatoryConsentCheck !== false;
365
+ }
466
366
  function prependMandatoryConsent(flow) {
467
- if (flow.mandatoryConsentCheck === false) return flow;
367
+ if (!readsFingerprintResult(flow)) return flow;
468
368
  const fingerprintResult = getSessionFingerprintResult();
469
369
  if (!fingerprintResult?.showMandatoryConsent) return flow;
470
370
  if (flow.flowModules.find((module) => module.key === "MANDATORY_CONSENT")) return flow;
@@ -486,12 +386,19 @@ function prependMandatoryConsent(flow) {
486
386
  * everything). Returns the same object when nothing is injected.
487
387
  */
488
388
  async function completeDeferredActivation(flow, signal) {
489
- await initializeSession({ signal }).catch(() => void 0);
389
+ const awaitFingerprint = readsFingerprintResult(flow);
390
+ if (awaitFingerprint) endDeviceHashWait();
391
+ await initializeSession({
392
+ signal,
393
+ awaitFingerprint
394
+ }).catch(() => void 0);
490
395
  throwIfAborted(signal);
491
396
  await updateFeatureManagementUser({ customIDs: { flow_id: flow.flowId } });
492
397
  throwIfAborted(signal);
493
- await whenSessionFingerprintSettled();
494
- throwIfAborted(signal);
398
+ if (awaitFingerprint) {
399
+ await whenSessionFingerprintSettled();
400
+ throwIfAborted(signal);
401
+ }
495
402
  const withConsent = prependMandatoryConsent(flow);
496
403
  if (withConsent === flow) return flow;
497
404
  const [consent, ...rest] = withConsent.flowModules;
@@ -567,6 +474,7 @@ function preloadDashboardFlow(signal) {
567
474
  const token = requireActiveToken();
568
475
  if (dashboardFlowCache?.token === token) return waitForSharedPromise(dashboardFlowCache.promise, signal);
569
476
  const request = fetchRawDashboardFlow();
477
+ request.then(warmFirstModule, () => void 0);
570
478
  const cache = {
571
479
  token,
572
480
  promise: request
@@ -586,12 +494,19 @@ async function normalizeDashboardFlow(rawFlow, options, signal) {
586
494
  throwIfAborted(signal);
587
495
  let flow = rawFlow;
588
496
  if (options.deferActivation !== true) {
589
- await initializeSession({ signal }).catch(() => void 0);
497
+ const awaitFingerprint = readsFingerprintResult(rawFlow);
498
+ if (awaitFingerprint) endDeviceHashWait();
499
+ await initializeSession({
500
+ signal,
501
+ awaitFingerprint
502
+ }).catch(() => void 0);
590
503
  throwIfAborted(signal);
591
504
  await updateFeatureManagementUser({ customIDs: { flow_id: rawFlow.flowId } });
592
505
  throwIfAborted(signal);
593
- await whenSessionFingerprintSettled();
594
- throwIfAborted(signal);
506
+ if (awaitFingerprint) {
507
+ await whenSessionFingerprintSettled();
508
+ throwIfAborted(signal);
509
+ }
595
510
  flow = prependMandatoryConsent(rawFlow);
596
511
  }
597
512
  const normalizedModules = normalizeFlowModules(flow, options);
@@ -601,6 +516,16 @@ async function normalizeDashboardFlow(rawFlow, options, signal) {
601
516
  flowModules: normalizedModules
602
517
  };
603
518
  }
519
+ /**
520
+ * Starts what the first module requests before its first screen, while
521
+ * activation still runs, so that screen skips a second round trip.
522
+ */
523
+ function warmFirstModule(flow) {
524
+ if (flow.flowModules[0]?.key === "PHONE") {
525
+ loadPhoneValidation();
526
+ prefetchStartInfo();
527
+ }
528
+ }
604
529
  const getFlow = async (signal, options = {}) => {
605
530
  throwIfAborted(signal);
606
531
  const rawFlowPromise = preloadDashboardFlow(signal);
@@ -638,9 +563,10 @@ async function resolveDashboardModuleConfig(options) {
638
563
  const occurrence = options.occurrence ?? 0;
639
564
  const module = flow.flowModules.filter((module) => moduleKeys.includes(module.key))[occurrence];
640
565
  if (!module) throw new Error(`Module "${options.moduleKey}" is not enabled in the active Flow`);
566
+ await loadFlowConfigConverters(flow);
641
567
  const flowConfig = resolveFlowModuleConfig(module, flow);
642
568
  if (flowPolicy.mergeConfig) return mergeDashboardConfig(flowConfig, options.config);
643
569
  return flowConfig;
644
570
  }
645
571
  //#endregion
646
- export { FIELD_ORDER as C, mergeDashboardConfig as D, isSupportedCountry as E, FIELD_NAME_MAPPING as S, UBO_FIELD_LABELS as T, sortModulesByOrder as _, resolveDashboardModuleConfig as a, ALL_COUNTRIES as b, getRequiredWasmPipelines as c, facingModeForStep as d, resolveVideoSelfieSteps as f, requiresAddressValidation as g, isFieldOptional as h, resetDashboardFlowCache as i, normalizeFlowModules as l, hasAtLeastOneAddressField as m, getFlow as n, enrichFlowModuleConfig as o, videoSelfieWasmPipelines as p, preloadDashboardFlow as r, getNextRequiredWasmPipelines as s, completeDeferredActivation as t, resolveFlowModuleConfig as u, toEkybConfig as v, SUPPORTED_COUNTRIES as w, DEV_ONLY_COUNTRIES as x, ADDRESS_FIELDS as y };
572
+ export { resolveDashboardModuleConfig as a, getRequiredWasmPipelines as c, resolveFlowModuleConfig as d, facingModeForStep as f, mergeDashboardConfig as h, resetDashboardFlowCache as i, loadFlowConfigConverters as l, videoSelfieWasmPipelines as m, getFlow as n, enrichFlowModuleConfig as o, resolveVideoSelfieSteps as p, preloadDashboardFlow as r, getNextRequiredWasmPipelines as s, completeDeferredActivation as t, normalizeFlowModules as u };
@@ -1,3 +1,3 @@
1
- import { t as createGeolocationManager } from "./geolocationManager-DLbvZwUB.esm.js";
2
- import { t as geolocationMachine } from "./geolocationStateMachine-CAJVongM.esm.js";
1
+ import { t as createGeolocationManager } from "./geolocationManager-BFTxgOZG.esm.js";
2
+ import { t as geolocationMachine } from "./geolocationStateMachine-v729Lz_0.esm.js";
3
3
  export { createGeolocationManager, geolocationMachine };
@@ -1,6 +1,6 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-CQteqXfy.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ggpBBaZ8.esm.js";
2
2
  import { s as createActor, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
3
- import { t as geolocationMachine } from "./geolocationStateMachine-CAJVongM.esm.js";
3
+ import { t as geolocationMachine } from "./geolocationStateMachine-v729Lz_0.esm.js";
4
4
  //#region ../infra/src/providers/browser/BrowserGeolocationProvider.ts
5
5
  var BrowserGeolocationProvider = class {
6
6
  getCurrentPosition() {
@@ -1,9 +1,9 @@
1
- import { t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
1
+ import { t as api, u as endpoints } from "./api-CpP4PS4S.esm.js";
2
2
  import { a as isIOS, t as isAndroid } from "./platform-aPh7gTWh.esm.js";
3
- import { n as isConnectivityError } from "./apiError-CfuIvnUy.esm.js";
3
+ import { n as isConnectivityError } from "./apiError-gNfsp99I.esm.js";
4
4
  import { i as assign, t as setup } from "./xstate.esm-DSajW7CJ.esm.js";
5
5
  import { n as fromPromise } from "./xstate-actors.esm-8Gzepa_A.esm.js";
6
- import { t as carryAttempts } from "./attemptCarry-BjTJ6bMQ.esm.js";
6
+ import { t as carryAttempts } from "./attemptCarry-WOkfvFMw.esm.js";
7
7
  //#region src/modules/geolocation/geolocationServices.ts
8
8
  async function addGeolocation(params, signal) {
9
9
  const res = await api.post(endpoints.addGeolocation, {
@@ -1,3 +1,3 @@
1
- import { t as governmentValidationMachine } from "./governmentValidationStateMachine-PTPCP26N.esm.js";
2
- import { n as createGovernmentValidationManagerFromActor, t as createGovernmentValidationManager } from "./governmentValidationManager-CkX9TEkh.esm.js";
1
+ import { t as governmentValidationMachine } from "./governmentValidationStateMachine-AEbn3Afi.esm.js";
2
+ import { n as createGovernmentValidationManagerFromActor, t as createGovernmentValidationManager } from "./governmentValidationManager-CjChjZ3C.esm.js";
3
3
  export { createGovernmentValidationManager, createGovernmentValidationManagerFromActor, governmentValidationMachine };
@@ -1,7 +1,7 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-CQteqXfy.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ggpBBaZ8.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-DSajW7CJ.esm.js";
4
- import { t as governmentValidationMachine } from "./governmentValidationStateMachine-PTPCP26N.esm.js";
4
+ import { t as governmentValidationMachine } from "./governmentValidationStateMachine-AEbn3Afi.esm.js";
5
5
  //#region src/modules/government-validation/governmentValidationActor.ts
6
6
  function createGovernmentValidationActor(options) {
7
7
  return createActor(governmentValidationMachine, { input: { config: options.config } }).start();
@@ -1,4 +1,4 @@
1
- import { t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
1
+ import { t as api, u as endpoints } from "./api-CpP4PS4S.esm.js";
2
2
  import { i as assign, t as setup } from "./xstate.esm-DSajW7CJ.esm.js";
3
3
  import { n as fromPromise } from "./xstate-actors.esm-8Gzepa_A.esm.js";
4
4
  //#region src/modules/government-validation/governmentValidationServices.ts
package/dist/home.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { A as StateMachine, p as EventObject, v as MetaObject, y as NonReducibleUnknown } from "./spawn-D9jgw9pW.js";
2
2
  import { t as Manager } from "./Manager-C9T5amUN.js";
3
- import { t as EmptyConfig } from "./types-DuD8TRJU.js";
3
+ import { t as EmptyConfig } from "./types-CRaFu6wS.js";
4
4
  //#region src/modules/home/types.d.ts
5
5
  type HomeConfig = EmptyConfig;
6
6
  //#endregion
package/dist/home.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-CQteqXfy.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ggpBBaZ8.esm.js";
2
2
  import { s as createActor, t as setup, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
3
3
  //#region src/modules/home/homeStateMachine.ts
4
4
  const homeMachine = setup({ types: {
package/dist/http.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as getApi, t as api } from "./api-BO8JA7Pf.esm.js";
1
+ import { n as getApi, t as api } from "./api-CpP4PS4S.esm.js";
2
2
  export { api, getApi };
package/dist/id-ocr.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { i as UpdateOcrDataParams, n as OcrData, o as ValidationRule, r as OcrFieldConfig, t as IdOcrConfig } from "./types-CJ7Yl9K-.js";
2
- import { a as IdOcrActor, i as createIdOcrManagerFromActor, n as IdOcrState, o as IdOcrOcrDocument, r as createIdOcrManager, s as idOcrStateMachine, t as IdOcrManager } from "./idOcrManager-DT3kPIB3.js";
2
+ import { a as IdOcrActor, i as createIdOcrManagerFromActor, n as IdOcrState, o as IdOcrOcrDocument, r as createIdOcrManager, s as idOcrStateMachine, t as IdOcrManager } from "./idOcrManager-BTdHlJ9D.js";
3
3
  //#region src/modules/id-ocr/idOcrFields.d.ts
4
4
  declare const OCR_FIELDS: OcrFieldConfig[];
5
5
  declare const getOcrFields: (config: Pick<IdOcrConfig, "cpfOnly" | "flowId">) => OcrFieldConfig[];
@@ -1,6 +1,6 @@
1
1
  import { t as validateCPF } from "./cpf-uAZTPUBy.esm.js";
2
- import { a as MIN_AGE, i as CPFFlowIds, n as OCR_FIELDS, r as getOcrFields, t as idOcrStateMachine } from "./idOcrStateMachine-B1aZnobs.esm.js";
3
- import { n as createIdOcrManagerFromActor, t as createIdOcrManager } from "./idOcrManager-B64-fjWg.esm.js";
2
+ import { a as MIN_AGE, i as CPFFlowIds, n as OCR_FIELDS, r as getOcrFields, t as idOcrStateMachine } from "./idOcrStateMachine-DNKXh4Rn.esm.js";
3
+ import { n as createIdOcrManagerFromActor, t as createIdOcrManager } from "./idOcrManager-xyEZNOBa.esm.js";
4
4
  //#region src/modules/id-ocr/idOcrCpfUtils.ts
5
5
  function formatCPF(value) {
6
6
  const digits = value.replace(/\D/g, "").slice(0, 11);
@@ -4,7 +4,7 @@ import "./Actor-DpTj5PFb.js";
4
4
  import { t as CameraStream } from "./camera-9wWD-pwg.js";
5
5
  import { t as DetectionOrientation } from "./IIdCaptureCapability-CGcEt2Cw.js";
6
6
  import { n as FinishStatus } from "./flowCompletionService-BlAHsKyv.js";
7
- import { a as FacingMode, c as VideoSelfieStep, i as CameraCompositor, n as VideoSelfieDetectionStatus, r as VideoSelfieValidationFailure, t as StepDetector } from "./videoSelfieStepDetector-RfSmlFFW.js";
7
+ import { a as FacingMode, c as VideoSelfieStep, i as CameraCompositor, n as VideoSelfieDetectionStatus, r as VideoSelfieValidationFailure, t as StepDetector } from "./videoSelfieStepDetector-Dv3Mgws-.js";
8
8
  //#region src/modules/id-selfie-flow/types.d.ts
9
9
  /**
10
10
  * The capture steps an ID + Selfie flow session can run, in flow order. A