@incodetech/core 2.4.0 → 2.4.1-agentic

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 (228) hide show
  1. package/dist/{FaceDetectionProvider-DcPOC2gS.esm.js → FaceDetectionProvider-B83VmClw.esm.js} +29 -64
  2. package/dist/IBrowserEnvironmentCapability-D7JG7ML3.esm.js +16 -0
  3. package/dist/IGeolocationCapability-r49Qo7rR.d.ts +10 -0
  4. package/dist/{IWasmUtilCapability-GF2n7sfm.d.ts → IWasmUtilCapability-Cqiaxydi.d.ts} +31 -4
  5. package/dist/{PhoneValidationProvider-SZiOS0jB.esm.js → PhoneValidationProvider-Co4zk2en.esm.js} +7 -0
  6. package/dist/{StreamCanvasCapture-7JRf-2ck.d.ts → StreamCanvasCapture-C3xNfOsv.d.ts} +12 -3
  7. package/dist/{WasmUtilProvider-DtJuBdt-.esm.js → WasmUtilProvider-GTkoJyFY.esm.js} +75 -22
  8. package/dist/{addressSearch-DPjIKJrX.esm.js → addressSearch-41sMcnJk.esm.js} +72 -31
  9. package/dist/{advanceableErrors-q_pfU3Cn.esm.js → advanceableErrors-k-U-cL5m.esm.js} +1 -2
  10. package/dist/ae-signature.esm.js +1 -1
  11. package/dist/antifraud.esm.js +2 -2
  12. package/dist/{antifraudManager-CaweCYnY.esm.js → antifraudManager-CQ08atTC.esm.js} +2 -2
  13. package/dist/{antifraudStateMachine-DRl0UVyA.esm.js → antifraudStateMachine-BcsUTTIr.esm.js} +1 -1
  14. package/dist/{api-Cz90EHyu.esm.js → api-BO8JA7Pf.esm.js} +6 -5
  15. package/dist/{apiError-DPwFas2f.esm.js → apiError-CfuIvnUy.esm.js} +1 -1
  16. package/dist/attemptCarry-BjTJ6bMQ.esm.js +45 -0
  17. package/dist/authentication.d.ts +3 -3
  18. package/dist/authentication.esm.js +2 -2
  19. package/dist/{authenticationManager-BIZC55Bi.d.ts → authenticationManager-C-cOki0Y.d.ts} +1 -1
  20. package/dist/{authenticationManager-2Lr5V_7p.esm.js → authenticationManager-DvmklBTE.esm.js} +5 -5
  21. package/dist/{authenticationStateMachine-C99B0GFP.esm.js → authenticationStateMachine-BL2ptOA0.esm.js} +3 -3
  22. package/dist/{backCameraStream-CMvXj4X4.esm.js → backCameraStream-C5_NNfUN.esm.js} +3 -43
  23. package/dist/{browser-DlFgHpoC-DnyrCR8r.esm.js → browser-pQZA35G2-DtkAf6sn.esm.js} +161 -150
  24. package/dist/{camera-sIa9ceW2.esm.js → camera-E_Kcre4O.esm.js} +15 -23
  25. package/dist/camera.esm.js +1 -1
  26. package/dist/certificate-issuance.esm.js +2 -2
  27. package/dist/{certificateIssuanceManager-BfeMv2PU.esm.js → certificateIssuanceManager-CM0fuqDC.esm.js} +2 -2
  28. package/dist/{certificateIssuanceStateMachine-Frgjbjw8.esm.js → certificateIssuanceStateMachine-kksIUOPD.esm.js} +2 -2
  29. package/dist/cnpj-Co1ottYN.esm.js +77 -0
  30. package/dist/connectivity-HSl0diCx.esm.js +133 -0
  31. package/dist/consent.d.ts +1 -1
  32. package/dist/consent.esm.js +2 -2
  33. package/dist/{consentManager-CvEu8h_W.esm.js → consentManager-CBwFozhv.esm.js} +4 -3
  34. package/dist/{consentManager-Cv_0QKLD.d.ts → consentManager-_q9yJUku.d.ts} +14 -7
  35. package/dist/{consentStateMachine-DJTgN_-1.esm.js → consentStateMachine-CpmRAcr2.esm.js} +20 -7
  36. package/dist/cross-document-data-match.esm.js +1 -1
  37. package/dist/{crossDocumentDataMatchManager-Cu141CE8.esm.js → crossDocumentDataMatchManager-64O8t10a.esm.js} +2 -2
  38. package/dist/curp-validation.d.ts +1 -1
  39. package/dist/curp-validation.esm.js +2 -2
  40. package/dist/{curpValidationManager-B-z9q5V3.esm.js → curpValidationManager-CLgJQcx0.esm.js} +3 -2
  41. package/dist/{curpValidationManager-C9sqoh9n.d.ts → curpValidationManager-CXpFE-Mv.d.ts} +1 -1
  42. package/dist/{curpValidationStateMachine-vDEFLMPw.esm.js → curpValidationStateMachine-Bx9YhVkJ.esm.js} +28 -20
  43. package/dist/custom-fields.esm.js +1 -1
  44. package/dist/custom-watchlist.esm.js +2 -2
  45. package/dist/{customFieldsManager-D1ex2cFM.esm.js → customFieldsManager-DWt_0YtJ.esm.js} +2 -2
  46. package/dist/{customWatchlistManager-CTI-SGk0.esm.js → customWatchlistManager-D8o-2Nej.esm.js} +2 -2
  47. package/dist/{customWatchlistStateMachine-hmRd0f2I.esm.js → customWatchlistStateMachine-Sbi6DIcK.esm.js} +1 -1
  48. package/dist/{deepsightLoader-DeNvGU3c.esm.js → deepsightLoader-DMxtowCm.esm.js} +6 -28
  49. package/dist/{deepsightService-CKTYDIXD.esm.js → deepsightService-twg3bXqY.esm.js} +20 -59
  50. package/dist/{createCameraCycleOwnership-Dj_LHUvN.esm.js → desktopCameraElection-kHY2IDJi.esm.js} +177 -40
  51. package/dist/device.esm.js +2 -2
  52. package/dist/document-capture.d.ts +2 -2
  53. package/dist/document-capture.esm.js +2 -2
  54. package/dist/{documentCaptureManager-DkyDtm3Y.d.ts → documentCaptureManager-6tnnDkMX.d.ts} +14 -2
  55. package/dist/{documentCaptureManager-DUJwpKC5.esm.js → documentCaptureManager-CMSC_Mhd.esm.js} +26 -19
  56. package/dist/{documentCaptureStateMachine-B8i7GnLh.esm.js → documentCaptureStateMachine-BCwD5Rto.esm.js} +43 -35
  57. package/dist/dynamic-forms.d.ts +2 -2
  58. package/dist/dynamic-forms.esm.js +2 -2
  59. package/dist/{dynamicFormsManager-C0dHs1ty.d.ts → dynamicFormsManager-9kwY8Bf5.d.ts} +1 -1
  60. package/dist/{dynamicFormsManager-DiKYjcF3.esm.js → dynamicFormsManager-DU6W1e20.esm.js} +2 -2
  61. package/dist/{dynamicFormsStateMachine-DEI45xYW.esm.js → dynamicFormsStateMachine-C8Z7k3vo.esm.js} +2 -2
  62. package/dist/ekyb.d.ts +4 -4
  63. package/dist/ekyb.esm.js +3 -3
  64. package/dist/{ekybManager-BaZ_7CEu.d.ts → ekybManager-TB6ZG5lX.d.ts} +2 -2
  65. package/dist/{ekybManager-8WLkNcqg.esm.js → ekybManager-TGfqyjuu.esm.js} +2 -2
  66. package/dist/{ekybStateMachine-BLRT45Ex.esm.js → ekybStateMachine-DBgFuEPK.esm.js} +26 -44
  67. package/dist/ekyc.d.ts +3 -3
  68. package/dist/ekyc.esm.js +3 -3
  69. package/dist/{ekycManager-DW-ynodd.d.ts → ekycManager-BSQteIfC.d.ts} +1 -1
  70. package/dist/{ekycManager-BO-Lui3t.esm.js → ekycManager-C2cgG2Pl.esm.js} +2 -2
  71. package/dist/ekycStateMachine-CuNF7z4O.esm.js +7505 -0
  72. package/dist/ekycUtils-BFncpC4F.esm.js +1401 -0
  73. package/dist/electronic-signature.esm.js +1 -1
  74. package/dist/{electronicSignatureManager-CcIMOb_Y.esm.js → electronicSignatureManager-C7pqXsRm.esm.js} +4 -4
  75. package/dist/email.esm.js +2 -2
  76. package/dist/{emailManager-ButFktRm.esm.js → emailManager-FH_CP0cT.esm.js} +2 -2
  77. package/dist/{emailStateMachine-BXtlC0NV.esm.js → emailStateMachine-Cx-uTaBV.esm.js} +32 -20
  78. package/dist/{events-Du2A4-Qr.esm.js → events-CQteqXfy.esm.js} +2 -2
  79. package/dist/events.esm.js +1 -1
  80. package/dist/extensibility.d.ts +34 -20
  81. package/dist/extensibility.esm.js +34 -34
  82. package/dist/{externalFetch-DrR9xshk.esm.js → externalFetch-CQY41QT1.esm.js} +4 -1
  83. package/dist/face-match.d.ts +1 -1
  84. package/dist/face-match.esm.js +2 -2
  85. package/dist/{faceCaptureManagerFactory-1hzeS_rB.d.ts → faceCaptureManagerFactory-C-xKdj-d.d.ts} +71 -66
  86. package/dist/{faceCaptureManagerFactory-BlGvXzXA.esm.js → faceCaptureManagerFactory-CBm05KnT.esm.js} +4 -4
  87. package/dist/{faceCaptureSetup-TY8RXc2N.esm.js → faceCaptureSetup-BQjCbL51.esm.js} +82 -64
  88. package/dist/{faceMatchManager-DWFUQjMQ.esm.js → faceMatchManager-B2zp7yP4.esm.js} +2 -2
  89. package/dist/{faceMatchManager-DIgG-UFS.d.ts → faceMatchManager-Z4UDLwAv.d.ts} +16 -7
  90. package/dist/{faceMatchStateMachine-CUCvlydD.esm.js → faceMatchStateMachine-ByTMQCUC.esm.js} +40 -27
  91. package/dist/{feature-management-B5rR10uS.esm.js → feature-management-DjAG5lsJ.esm.js} +1 -1
  92. package/dist/feature-management.esm.js +1 -1
  93. package/dist/field-comparison.esm.js +1 -1
  94. package/dist/{fieldComparisonManager-v3knTYV_.esm.js → fieldComparisonManager-CC0vKmpf.esm.js} +2 -2
  95. package/dist/fiscal-qr.esm.js +1 -1
  96. package/dist/{fiscalQrManager-Dt9fHG7h.esm.js → fiscalQrManager-Be-r4oZj.esm.js} +4 -4
  97. package/dist/flow-events.d.ts +1 -1
  98. package/dist/flow.d.ts +10 -10
  99. package/dist/flow.esm.js +8 -11
  100. package/dist/{flowCompletionService-BDI5QpfR.esm.js → flowCompletionService-ChMU2v79.esm.js} +2 -2
  101. package/dist/{flowServices-roD0oIQL.esm.js → flowServices-g2tVWsJl.esm.js} +8 -50
  102. package/dist/geolocation.d.ts +1 -1
  103. package/dist/geolocation.esm.js +2 -2
  104. package/dist/{geolocationManager-Dn24g1fl.d.ts → geolocationManager-6e1i9UIR.d.ts} +15 -17
  105. package/dist/{geolocationManager-DnONzWL5.esm.js → geolocationManager-DLbvZwUB.esm.js} +6 -8
  106. package/dist/{geolocationStateMachine-eWy_G4Os.esm.js → geolocationStateMachine-CAJVongM.esm.js} +12 -8
  107. package/dist/{getDeviceClass-bsWdEDxP.esm.js → getDeviceClass-DoIWuKI8.esm.js} +1 -1
  108. package/dist/government-validation.esm.js +2 -2
  109. package/dist/{governmentValidationManager-BtXWHICu.esm.js → governmentValidationManager-CkX9TEkh.esm.js} +2 -2
  110. package/dist/{governmentValidationStateMachine-COL-Vs48.esm.js → governmentValidationStateMachine-PTPCP26N.esm.js} +1 -1
  111. package/dist/home.d.ts +1 -1
  112. package/dist/home.esm.js +1 -1
  113. package/dist/http.esm.js +1 -1
  114. package/dist/id-ocr.esm.js +2 -2
  115. package/dist/id-selfie-flow.d.ts +1 -1
  116. package/dist/id-selfie-flow.esm.js +9 -9
  117. package/dist/id-verification.esm.js +2 -2
  118. package/dist/id.d.ts +3 -16
  119. package/dist/id.esm.js +3 -3
  120. package/dist/{idCaptureDefaults-BGsG2OAs.esm.js → idCaptureDefaults-MSQoqScU.esm.js} +3 -3
  121. package/dist/{idCaptureManager-0M02hSuC.d.ts → idCaptureManager-DzTfQ1Am.d.ts} +66 -5
  122. package/dist/{idCaptureManager-BrfYjCm_.esm.js → idCaptureManager-zZdTcpG1.esm.js} +63 -17
  123. package/dist/{idCaptureServices-BSj6EH2l.esm.js → idCaptureServices-8OHinO0N.esm.js} +9 -9
  124. package/dist/{idCaptureStateMachine-dXKBYHQp.esm.js → idCaptureStateMachine-B3G6XoDG.esm.js} +914 -536
  125. package/dist/{idOcrManager-D3-HNMXP.esm.js → idOcrManager-B64-fjWg.esm.js} +2 -2
  126. package/dist/{idOcrStateMachine-DyENX6Ki.esm.js → idOcrStateMachine-B1aZnobs.esm.js} +2 -2
  127. package/dist/{idVerificationManager-iWz7Avkr.esm.js → idVerificationManager-_Kebv-Ue.esm.js} +2 -2
  128. package/dist/{idVerificationStateMachine-CL1kUdBe.esm.js → idVerificationStateMachine-DQn6c84z.esm.js} +1 -1
  129. package/dist/identity-reuse.esm.js +2 -2
  130. package/dist/{identityReuseManager-CD1ucp1d.esm.js → identityReuseManager-DDXkNVZi.esm.js} +2 -2
  131. package/dist/{identityReuseStateMachine-DfV81wQC.esm.js → identityReuseStateMachine-Bcnkbjf8.esm.js} +1 -1
  132. package/dist/{index-BKOWUhxG.d.ts → index-DEfwds5y.d.ts} +55 -8
  133. package/dist/{index-CKQ9QBZP.d.ts → index-DMDAk85K.d.ts} +1 -1
  134. package/dist/index.d.ts +1 -1
  135. package/dist/index.esm.js +1 -1
  136. package/dist/{invokeOnCaptureCallback-DYrkOXO6.esm.js → invokeOnCaptureCallback-CXIBwBeE.esm.js} +1 -1
  137. package/dist/mandatory-consent.d.ts +2 -2
  138. package/dist/mandatory-consent.esm.js +2 -2
  139. package/dist/{mandatoryConsentManager-Cwqx1nK7.esm.js → mandatoryConsentManager-43W5d_8G.esm.js} +4 -3
  140. package/dist/{mandatoryConsentManager-BQ43yndC.d.ts → mandatoryConsentManager-xx3mY-xw.d.ts} +11 -4
  141. package/dist/{mandatoryConsentStateMachine-pXWqAHo_.esm.js → mandatoryConsentStateMachine-CVlgdlnt.esm.js} +20 -7
  142. package/dist/{multipartRecordingService-CLwrF5wD.esm.js → multipartRecordingService-DMBxHKS2.esm.js} +3 -13
  143. package/dist/nationalIds-B91f_RuB.esm.js +99 -0
  144. package/dist/{permissionGuards-gcy3U0SL.esm.js → permissionGuards-B3OPL8Si.esm.js} +1 -1
  145. package/dist/{permissionServices-Ca-tSNhT.esm.js → permissionServices-DnBAN_hW.esm.js} +4 -4
  146. package/dist/phone-number.d.ts +7 -1
  147. package/dist/phone-number.esm.js +15 -2
  148. package/dist/phone.d.ts +1 -1
  149. package/dist/phone.esm.js +2 -2
  150. package/dist/{phoneManager-BO-LTih5.d.ts → phoneManager-6nrJkvkG.d.ts} +5 -0
  151. package/dist/{phoneManager-KKUq-Vgo.esm.js → phoneManager-C6jut_pz.esm.js} +3 -3
  152. package/dist/{phoneStateMachine-D2QWS2cu.esm.js → phoneStateMachine-T1-drWfG.esm.js} +37 -25
  153. package/dist/{phoneValidation-DnBcNUNh.esm.js → phoneValidation-OggtfjRt.esm.js} +1 -2
  154. package/dist/{platform-DkcRc9JV.esm.js → platform-aPh7gTWh.esm.js} +15 -1
  155. package/dist/processFaceMatch-BWme3kVV.esm.js +21 -0
  156. package/dist/qe-signature.esm.js +1 -1
  157. package/dist/redirect-to-mobile.d.ts +2 -2
  158. package/dist/redirect-to-mobile.esm.js +2 -2
  159. package/dist/{redirectToMobileManager-uHW3dyuQ.esm.js → redirectToMobileManager-BJXC6Kx9.esm.js} +4 -3
  160. package/dist/{redirectToMobileManager-CVsvpVbQ.d.ts → redirectToMobileManager-Dm9ctRCC.d.ts} +3 -1
  161. package/dist/{redirectToMobileStateMachine-b-H-ipGM.esm.js → redirectToMobileStateMachine-BBMAc2Gb.esm.js} +27 -6
  162. package/dist/{runChildModule-BF_atgNx.esm.js → runChildModule-DPHTqSdF.esm.js} +3 -3
  163. package/dist/{sdkVersion-CsIbltJF.esm.js → sdkVersion-C3_P-Qbq.esm.js} +1 -1
  164. package/dist/selfie.d.ts +4 -4
  165. package/dist/selfie.esm.js +10 -10
  166. package/dist/{selfieErrorUtils-BY0-YbPW.esm.js → selfieErrorUtils-BL0BLMnp.esm.js} +1 -1
  167. package/dist/{selfieManager-BJdNu_nd.d.ts → selfieManager-BMmpUii2.d.ts} +1 -1
  168. package/dist/{selfieManager-vAAwzsHk.esm.js → selfieManager-Cbliomv7.esm.js} +5 -5
  169. package/dist/{selfieStateMachine-BFVp3ElQ.esm.js → selfieStateMachine-B5m_Kn0O.esm.js} +3 -3
  170. package/dist/{session-CpwfoVdH.esm.js → session-DAaAewMX.esm.js} +77 -9
  171. package/dist/session.d.ts +96 -10
  172. package/dist/session.esm.js +7 -6
  173. package/dist/{sessionInitializer-BTjYgE-V.esm.js → sessionInitializer-CWFT4dfw.esm.js} +402 -202
  174. package/dist/{setup-BInNAvQw.esm.js → setup-CDAKwTr7.esm.js} +32 -19
  175. package/dist/{setup-YPKTUCY5.d.ts → setup-D9qt8YVU.d.ts} +2 -2
  176. package/dist/signature.esm.js +2 -2
  177. package/dist/{signatureManager-f_dPAGXn.esm.js → signatureManager-BeEVCcsC.esm.js} +2 -2
  178. package/dist/{signatureStateMachine-C-nUq_oq.esm.js → signatureStateMachine-_1c1vSid.esm.js} +1 -1
  179. package/dist/{stats-BEvexnKC.esm.js → stats-BpMz-hTP.esm.js} +1 -1
  180. package/dist/stats.esm.js +1 -1
  181. package/dist/{tri-xzRLIIMN.esm.js → tri-BajQnjbf.esm.js} +142 -8
  182. package/dist/tri.d.ts +1 -1
  183. package/dist/tri.esm-CzTNi5Q_.esm.js +3826 -0
  184. package/dist/tri.esm.js +1 -1
  185. package/dist/{trueSightService-BMT-TubT.esm.js → trueSightService-BujtUIW6.esm.js} +19 -10
  186. package/dist/trust-graph.esm.js +1 -1
  187. package/dist/{types-yPH8lAH-.d.ts → types--3HDl2SF.d.ts} +2 -2
  188. package/dist/types-B2FK_wYb.d.ts +249 -0
  189. package/dist/types-B9C8W01q.d.ts +34 -0
  190. package/dist/{types-0L-eFDmr.d.ts → types-C397LhmN.d.ts} +1 -1
  191. package/dist/types-D9r3zRfY.d.ts +6 -0
  192. package/dist/{types-DPIDuhut.d.ts → types-DNVzoRvi.d.ts} +2 -1
  193. package/dist/{types-B6HsSzpk.d.ts → types-DuD8TRJU.d.ts} +3 -2
  194. package/dist/{types-Ckir_BEs.d.ts → types-PTZHRhGX.d.ts} +1 -1
  195. package/dist/{types-DUnFZ08M.d.ts → types-ZTZelfbM.d.ts} +2 -2
  196. package/dist/{types-CK8Jbjkp.d.ts → types-e8fCsvvk.d.ts} +1 -1
  197. package/dist/{types-BAxn7MpY.d.ts → types-xEEWCx1j.d.ts} +123 -48
  198. package/dist/{urlUtils-6jsE6rKp.esm.js → urlUtils-eYiyWjh0.esm.js} +4 -1
  199. package/dist/video-selfie.d.ts +8 -8
  200. package/dist/video-selfie.esm.js +95 -22
  201. package/dist/{videoSelfieCameraWarmer-D1xA0u8y.esm.js → videoSelfieCameraWarmer-DjkPpoj_.esm.js} +18 -21
  202. package/dist/{videoSelfieStepDetector-CGsTltqB.d.ts → videoSelfieStepDetector-RfSmlFFW.d.ts} +9 -4
  203. package/dist/{warmup-BElYWRh7.esm.js → warmup-BkfxQZsC.esm.js} +175 -11
  204. package/dist/wasm.d.ts +2 -2
  205. package/dist/wasm.esm.js +3 -3
  206. package/dist/{wasmDsFlagSync-CYj5LL9z.esm.js → wasmDsFlagSync-BhU5H2oR.esm.js} +1 -1
  207. package/dist/wasmMetadataVersionSync-U8EFUr1T.esm.js +27 -0
  208. package/dist/{wasmWebClient-BjZw_7OB.esm.js → wasmWebClient-DTj9auyA.esm.js} +43 -17
  209. package/dist/watchlist-for-business.d.ts +2 -1
  210. package/dist/watchlist-for-business.esm.js +2 -2
  211. package/dist/watchlist.esm.js +2 -2
  212. package/dist/{watchlistForBusinessManager-CZZOFkGl.esm.js → watchlistForBusinessManager-CVay6-9A.esm.js} +37 -7
  213. package/dist/{watchlistForBusinessManager-B3GDPZrr.d.ts → watchlistForBusinessManager-DX2AyM4Y.d.ts} +54 -18
  214. package/dist/watchlistForBusinessStateMachine-DA6K5na4.esm.js +166 -0
  215. package/dist/{watchlistManager-DXtX94SN.esm.js → watchlistManager-B8gQ_rw3.esm.js} +2 -2
  216. package/dist/{watchlistStateMachine-McALifag.esm.js → watchlistStateMachine-CSi_ZhtT.esm.js} +1 -1
  217. package/dist/workflow.d.ts +5 -2
  218. package/dist/workflow.esm.js +57 -47
  219. package/package.json +2 -1
  220. package/dist/IBrowserEnvironmentCapability-DEaRRk-R.esm.js +0 -9
  221. package/dist/ekycStateMachine-CDnI_NRq.esm.js +0 -1443
  222. package/dist/ekycUtils-zY8CdKJL.esm.js +0 -300
  223. package/dist/thumbmark.esm-CRc0cYvz.esm.js +0 -1242
  224. package/dist/tri.esm-BIjHhBJ2.esm.js +0 -2620
  225. package/dist/types-BvLo3U4u.d.ts +0 -134
  226. package/dist/types-zOgZqMni.d.ts +0 -6
  227. package/dist/watchlistForBusinessStateMachine-B66E7jud.esm.js +0 -78
  228. /package/dist/{types-BSBzhHRH2.d.ts → types-BSBzhHRH.d.ts} +0 -0
@@ -1,19 +1,22 @@
1
- import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
2
- import { r as getToken, t as api, u as endpoints } from "./api-Cz90EHyu.esm.js";
3
- import { l as trueSightHintTransition, r as noteTrueSightCaptureActivity, u as trueSightLog, y as isTrueSightTesting } from "./trueSightService-BMT-TubT.esm.js";
4
- import "./sessionInitializer-BTjYgE-V.esm.js";
5
- import { t as addDeviceStats } from "./stats-BEvexnKC.esm.js";
1
+ import { n as getTimestamp } from "./IBrowserEnvironmentCapability-D7JG7ML3.esm.js";
2
+ import { r as getToken, t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
3
+ import { l as trueSightHintTransition, r as noteTrueSightCaptureActivity, u as trueSightLog, y as isTrueSightTesting } from "./trueSightService-BujtUIW6.esm.js";
4
+ import "./sessionInitializer-CWFT4dfw.esm.js";
5
+ import { t as addDeviceStats } from "./stats-BpMz-hTP.esm.js";
6
+ import { c as isIPhone14OrHigher } from "./platform-aPh7gTWh.esm.js";
6
7
  import { t as BrowserLazyImportProvider } from "./BrowserLazyImportProvider-BhoA957O.esm.js";
7
8
  import { i as assign, n as enqueueActions, r as sendTo, t as setup } from "./xstate.esm-DSajW7CJ.esm.js";
8
9
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-8Gzepa_A.esm.js";
9
- import { n as invokeRequestPermissionActor, t as checkPermission } from "./permissionServices-Ca-tSNhT.esm.js";
10
- import { a as sendLabelInspectionEvent, d as FACE_ERROR_CODES, i as initializeDeepsightSession, r as initializeCamera, s as stopStream, t as FaceDetectionProvider, u as getFaceUploadErrorCode } from "./FaceDetectionProvider-DcPOC2gS.esm.js";
11
- import { i as flagFaceManualReview, n as runProtectedAttempt, o as PROTECTED_CAPTURE_TARGET, r as cameraCycleProvider, t as createCameraCycleOwnership } from "./createCameraCycleOwnership-Dj_LHUvN.esm.js";
10
+ import { s as isCameraDenialErrorName } from "./camera-E_Kcre4O.esm.js";
11
+ import { n as invokeRequestPermissionActor, t as checkPermission } from "./permissionServices-DnBAN_hW.esm.js";
12
+ import { a as sendLabelInspectionEvent, i as probeFaceCamera, l as getFaceUploadErrorCode, r as initializeDeepsightSession, t as FaceDetectionProvider, u as FACE_ERROR_CODES } from "./FaceDetectionProvider-B83VmClw.esm.js";
13
+ import { a as flagFaceManualReview, i as cameraCycleProvider, n as createCameraCycleOwnership, r as runProtectedAttempt, s as PROTECTED_CAPTURE_TARGET, t as electDesktopCameraDevice } from "./desktopCameraElection-kHY2IDJi.esm.js";
12
14
  import { n as releaseFaceAvatarWarmup, r as warmFaceAvatar, t as createFaceAvatar } from "./createFaceAvatar-BNHdeFj8.esm.js";
13
15
  import { t as IncodeCanvas } from "./canvas-BxFzWTt-.esm.js";
14
- import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-gcy3U0SL.esm.js";
15
- import { a as getAdaptiveMediaRecorderOptions, i as createRecordingCompositor, n as WorkerEncoderRecordingProvider, t as MultipartRecordingService } from "./multipartRecordingService-CLwrF5wD.esm.js";
16
- import { t as getDeviceClass } from "./getDeviceClass-bsWdEDxP.esm.js";
16
+ import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-B3OPL8Si.esm.js";
17
+ import { t as carryAttempts } from "./attemptCarry-BjTJ6bMQ.esm.js";
18
+ import { a as getAdaptiveMediaRecorderOptions, i as createRecordingCompositor, n as WorkerEncoderRecordingProvider, t as MultipartRecordingService } from "./multipartRecordingService-DMBxHKS2.esm.js";
19
+ import { t as getDeviceClass } from "./getDeviceClass-DoIWuKI8.esm.js";
17
20
  //#region src/internal/avatar/concealment.ts
18
21
  /**
19
22
  * Maps a backend concealment option to the internal avatar flags. `OPTION_NONE`
@@ -552,16 +555,14 @@ var ProtectedFaceRecorderHooks = class {
552
555
  let nextAttemptNumber = 1;
553
556
  /**
554
557
  * Private composition object for one still-face attempt. It owns provider
555
- * callbacks and raw-stream handoff outside XState; the machine sees only the
556
- * presentation stream/canvas and allowlisted semantic results.
558
+ * callbacks and the camera-step options outside XState; the machine sees only
559
+ * the presentation stream/canvas and allowlisted semantic results.
557
560
  */
558
561
  var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
559
562
  constructor(options) {
560
563
  this.options = options;
561
564
  this.attemptId = `face-${nextAttemptNumber++}`;
562
- this.acquiredUsingBackCamera = false;
563
- this.rawHandedOff = false;
564
- this.rawStreamReleased = false;
565
+ this.probedUsingBackCamera = false;
565
566
  this.released = false;
566
567
  this.recorderTransferred = false;
567
568
  this.pendingSignals = [];
@@ -583,14 +584,15 @@ var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
583
584
  return this.options.delivery;
584
585
  }
585
586
  get usingBackCamera() {
586
- return this.acquiredUsingBackCamera;
587
+ return this.probedUsingBackCamera;
587
588
  }
588
589
  setDeepsightService(service) {
589
590
  if (this.released || this.deepsightService) return;
590
591
  this.deepsightService = service;
591
592
  }
593
+ /** Tutorial-time preparation; the camera itself opens at attempt start. */
592
594
  async preAcquire() {
593
- await this.acquireRawStream();
595
+ await this.probe();
594
596
  }
595
597
  subscribeSignals(listener) {
596
598
  if (this.released) return () => void 0;
@@ -608,23 +610,27 @@ var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
608
610
  attemptId: this.attemptId,
609
611
  target: this.options.target,
610
612
  workflow: this.options.config.onDeviceFaceResultsSubmissionEnabled === true ? 5 : 4,
611
- streamSource: {
612
- kind: "acquire",
613
- acquire: async () => {
614
- const result = await this.acquireRawStream();
615
- this.rawHandedOff = true;
616
- return {
617
- stream: result.stream,
618
- constraints: result.constraints
619
- };
620
- }
613
+ cameraStep: async () => {
614
+ const { usingBackCamera } = await this.probe();
615
+ const facing = usingBackCamera ? "environment" : "user";
616
+ const resolution = usingBackCamera ? void 0 : this.options.config.cameraResolution;
617
+ const width = resolution?.width ?? 0;
618
+ const height = resolution?.height ?? 0;
619
+ const hasResolution = width > 0 && height > 0;
620
+ return {
621
+ vs: facing,
622
+ di: await electDesktopCameraDevice(facing),
623
+ ew: hasResolution ? width : 0,
624
+ eh: hasResolution ? height : 0,
625
+ i14: isIPhone14OrHigher(),
626
+ pa: false
627
+ };
621
628
  },
622
629
  cycle: this.options.cycle,
623
630
  cycleOwnership: this.cycleOwnership,
624
631
  recorder: this.recorder,
625
- releaseUnadoptedStream: (stream) => stopStream(stream),
632
+ afterReady: this.options.delivery === "protected" ? (displayStream) => this.attachProtectedCameraMetadata(displayStream) : void 0,
626
633
  configureWorkflow: () => this.configureWorkflow(),
627
- runPrc: () => this.runPrc(),
628
634
  runPoc: () => this.runPoc(),
629
635
  onStartupTiming,
630
636
  faceResults: this.provider
@@ -704,16 +710,18 @@ var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
704
710
  Promise.resolve(this.provider.dispose()).catch(() => void 0);
705
711
  } catch {}
706
712
  this.cycleOwnership.releaseByController();
707
- if (!this.rawHandedOff) this.acquired?.then(({ stream }) => this.releaseRawStream(stream), () => void 0);
708
713
  }
709
- async acquireRawStream() {
710
- if (!this.acquired) this.acquired = this.options.acquireCamera(this.provider);
711
- const result = await this.acquired;
712
- this.acquiredUsingBackCamera = result.usingBackCamera;
713
- if (this.released) {
714
- this.releaseRawStream(result.stream);
715
- throw new Error("Protected face attempt was released");
716
- }
714
+ /**
715
+ * Runs the camera-free probe once per attempt, whether the tutorial
716
+ * pre-acquire or the camera step asks first. Every retry creates a fresh
717
+ * runtime, so the pipeline warm-up and the lens choice are re-checked per
718
+ * attempt.
719
+ */
720
+ async probe() {
721
+ this.probed ??= this.options.probeCamera();
722
+ const result = await this.probed;
723
+ this.probedUsingBackCamera = result.usingBackCamera;
724
+ if (this.released) throw new Error("Protected face attempt was released");
717
725
  return result;
718
726
  }
719
727
  async configureWorkflow() {
@@ -767,13 +775,6 @@ var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
767
775
  });
768
776
  this.emitDetection("detecting");
769
777
  }
770
- async runPrc() {
771
- if (this.options.delivery === "protected") await this.attachProtectedCameraMetadata();
772
- if (this.released) return;
773
- const wasmUtil = await this.options.dependencies.getWasmUtil();
774
- if (this.released) return;
775
- await wasmUtil.prc();
776
- }
777
778
  async runPoc() {
778
779
  if (this.options.delivery === "local") return;
779
780
  const deepsight = this.deepsightService;
@@ -797,12 +798,11 @@ var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
797
798
  const logs = deepsight.getPipelineState();
798
799
  this.options.dependencies.trackCaptureAttemptFinished?.({ logs });
799
800
  }
800
- async attachProtectedCameraMetadata() {
801
+ async attachProtectedCameraMetadata(displayStream) {
801
802
  const deepsight = this.deepsightService;
802
803
  if (!deepsight) return;
803
804
  try {
804
- const { stream } = await this.acquireRawStream();
805
- const [videoTrack] = stream.getVideoTracks();
805
+ const [videoTrack] = displayStream.getVideoTracks();
806
806
  if (videoTrack) await deepsight.checkVirtualCamera(videoTrack);
807
807
  } catch {
808
808
  trueSightLog("warning", "deepsight", "faceScan", "protected camera metadata attachment failed");
@@ -819,13 +819,6 @@ var ProtectedFaceAttemptRuntime = class ProtectedFaceAttemptRuntime {
819
819
  if (this.signalListener) this.signalListener(signal);
820
820
  else this.pendingSignals.push(signal);
821
821
  }
822
- releaseRawStream(stream) {
823
- if (this.rawHandedOff || this.rawStreamReleased) return;
824
- this.rawStreamReleased = true;
825
- try {
826
- stopStream(stream);
827
- } catch {}
828
- }
829
822
  };
830
823
  //#endregion
831
824
  //#region src/internal/faceCapture/protectedFaceController.ts
@@ -921,10 +914,7 @@ function createProtectedFaceControllerActor(options) {
921
914
  authHint: input.authHint,
922
915
  faceDetection: capabilities.faceDetection,
923
916
  cycle: capabilities.cycle,
924
- acquireCamera: (provider) => initializeCamera({
925
- config: input.config,
926
- provider
927
- }),
917
+ probeCamera: () => probeFaceCamera(input.config),
928
918
  getRecordingService: getStepRecordingService
929
919
  });
930
920
  if (deepsightService) runtime.setDeepsightService(deepsightService);
@@ -1068,7 +1058,8 @@ function createProtectedFaceControllerActor(options) {
1068
1058
  case "PROTECTED_ATTEMPT_FAILED":
1069
1059
  logDiagnostic("attempt-failed", {
1070
1060
  failureStage: event.failure.stage,
1071
- failureCode: event.failure.code
1061
+ failureCode: event.failure.code,
1062
+ errorName: event.failure.errorName
1072
1063
  });
1073
1064
  noteTrueSightCaptureActivity(false);
1074
1065
  sendBack(event);
@@ -1204,6 +1195,7 @@ function createDefaultProtectedFaceControllerActor(options) {
1204
1195
  }
1205
1196
  //#endregion
1206
1197
  //#region src/internal/faceCapture/faceCaptureSetup.ts
1198
+ const DEEPSIGHT_INITIALIZATION_FAILED_CODE = "DEEPSIGHT_INITIALIZATION_FAILED";
1207
1199
  const getAttemptsFromConfig = (config) => {
1208
1200
  return config.captureAttempts ?? config.numberOfAttempts ?? 3;
1209
1201
  };
@@ -1485,11 +1477,16 @@ const faceCaptureMachine = setup({
1485
1477
  hasStream: ({ context }) => context.stream !== void 0,
1486
1478
  isCameraAndDeepsightReady: ({ context }) => context.stream !== void 0 && context.deepsightReady,
1487
1479
  hasAttemptsRemaining: ({ context }) => context.attemptsRemaining > 0,
1480
+ isOutOfAttempts: ({ context }) => context.attemptsRemaining <= 0 && context.attemptsRemaining < getAttemptsFromConfig(context.config),
1488
1481
  hasCapturedImage: ({ context }) => context.capturedImage !== void 0,
1489
1482
  isAutoCaptureAllowed: ({ context }) => !context.retainManualMode,
1490
1483
  canCommitProtectedManual: ({ context }) => context.manualCaptureTriggered && context.config.onDeviceFaceResultsSubmissionEnabled !== true,
1491
1484
  isProtectedManualRefusal: ({ event }) => event.failure.stage === "manualCommit",
1492
1485
  isProtectedUploadFailure: ({ event }) => event.failure.stage === "upload",
1486
+ isProtectedAcquireDenied: ({ event }) => {
1487
+ const { failure } = event;
1488
+ return failure.stage === "acquire" && isCameraDenialErrorName(failure.errorName);
1489
+ },
1493
1490
  hasUploadValidationError: () => false,
1494
1491
  isTerminalUploadError: () => false,
1495
1492
  isNoAttemptsTerminal: () => false
@@ -1498,7 +1495,7 @@ const faceCaptureMachine = setup({
1498
1495
  id: "faceCapture",
1499
1496
  initial: "idle",
1500
1497
  entry: "bindProtectedFaceController",
1501
- context: ({ input }) => ({
1498
+ context: ({ input, self }) => ({
1502
1499
  config: input.config,
1503
1500
  dependencies: input.dependencies,
1504
1501
  authHint: input.authHint,
@@ -1510,7 +1507,7 @@ const faceCaptureMachine = setup({
1510
1507
  faceCoordinates: void 0,
1511
1508
  uploadResponse: void 0,
1512
1509
  processResponse: void 0,
1513
- attemptsRemaining: getAttemptsFromConfig(input.config),
1510
+ attemptsRemaining: carryAttempts("faceCapture", self, (s) => ({ attemptsRemaining: s.context.attemptsRemaining })).attemptsRemaining ?? getAttemptsFromConfig(input.config),
1514
1511
  uploadError: void 0,
1515
1512
  permissionResult: void 0,
1516
1513
  deepsightReady: false,
@@ -1535,6 +1532,10 @@ const faceCaptureMachine = setup({
1535
1532
  },
1536
1533
  states: {
1537
1534
  idle: { on: { LOAD: [
1535
+ {
1536
+ target: "outOfAttempts",
1537
+ guard: "isOutOfAttempts"
1538
+ },
1538
1539
  {
1539
1540
  target: "tutorial",
1540
1541
  guard: "hasShowTutorial"
@@ -1809,6 +1810,11 @@ const faceCaptureMachine = setup({
1809
1810
  guard: "isProtectedUploadFailure",
1810
1811
  actions: "setUploadFailureAndDecrement"
1811
1812
  },
1813
+ {
1814
+ target: "#faceCapture.permissions.denied",
1815
+ guard: "isProtectedAcquireDenied",
1816
+ actions: "setPermissionDenied"
1817
+ },
1812
1818
  {
1813
1819
  target: "#faceCapture.error",
1814
1820
  actions: "setProtectedFailure"
@@ -1832,7 +1838,11 @@ const faceCaptureMachine = setup({
1832
1838
  target: "#faceCapture.error",
1833
1839
  actions: assign({
1834
1840
  deepsightReady: () => false,
1835
- error: () => "Deepsight initialization failed"
1841
+ error: () => ({
1842
+ type: DEEPSIGHT_INITIALIZATION_FAILED_CODE,
1843
+ message: "Deepsight initialization failed",
1844
+ moduleErrorCode: DEEPSIGHT_INITIALIZATION_FAILED_CODE
1845
+ })
1836
1846
  })
1837
1847
  }
1838
1848
  }
@@ -1952,6 +1962,14 @@ const faceCaptureMachine = setup({
1952
1962
  },
1953
1963
  onError: { target: "finished" }
1954
1964
  } },
1965
+ outOfAttempts: { always: [{
1966
+ target: "error",
1967
+ guard: "isNoAttemptsTerminal",
1968
+ actions: "setTerminalError"
1969
+ }, {
1970
+ target: "terminalProcessing",
1971
+ actions: "flagFaceManualReview"
1972
+ }] },
1955
1973
  terminalProcessing: {
1956
1974
  entry: ["completeProtectedRecording", "cleanup"],
1957
1975
  invoke: {
@@ -1,6 +1,6 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-Du2A4-Qr.esm.js";
1
+ import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-CQteqXfy.esm.js";
2
2
  import { s as createActor, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
3
- import { t as faceMatchMachine } from "./faceMatchStateMachine-CUCvlydD.esm.js";
3
+ import { t as faceMatchMachine } from "./faceMatchStateMachine-ByTMQCUC.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();
@@ -48,6 +48,13 @@ type FaceMatchConfig = {
48
48
  * @default false
49
49
  */
50
50
  skipFaceMatch?: boolean;
51
+ /**
52
+ * A match result you already have. When set, the module shows it and does
53
+ * not run the match. Use it when the SDK cannot keep the selfie result
54
+ * across steps, for example after a full page load. Ignored for
55
+ * `matchingType: 'secondId'`.
56
+ */
57
+ matched?: boolean;
51
58
  };
52
59
  /**
53
60
  * Cropped face images fetched from the backend.
@@ -67,16 +74,16 @@ type FaceMatchImages = {
67
74
  secondIdFace?: string | null;
68
75
  };
69
76
  /**
70
- * Face match result parsed from score response.
77
+ * Face match result: the `success` field of `/omni/process/face`, or the
78
+ * `faceRecognition` status of `/omni/get/score` when that field is absent.
71
79
  */
72
80
  type FaceMatchResult = {
73
81
  /**
74
- * Whether faces matched (OK = true, FAIL = false, null = unknown).
82
+ * Whether faces matched (true, false, or null when unknown, for example a
83
+ * `WARN` score).
75
84
  */
76
85
  matched: boolean | null;
77
- /**
78
- * Whether liveness check passed.
79
- */
86
+ /** @deprecated Always `null`. */
80
87
  liveness: boolean | null;
81
88
  };
82
89
  //#endregion
@@ -92,14 +99,14 @@ type FaceMatchActor = ReturnType<typeof createFaceMatchActor>;
92
99
  type FaceMatchIdleState = {
93
100
  status: 'idle';
94
101
  };
95
- /** Fetching images and score from backend */
102
+ /** Fetching images and the match result from backend */
96
103
  type FaceMatchLoadingState = {
97
104
  status: 'loading';
98
105
  };
99
106
  /**
100
107
  * Animation is playing - images are animating.
101
108
  * @property images - Cropped face images fetched from backend
102
- * @property result - Face match result (matched, liveness)
109
+ * @property result - Face match result
103
110
  */
104
111
  type FaceMatchAnimatingState = {
105
112
  status: 'animating';
@@ -110,6 +117,7 @@ type FaceMatchAnimatingState = {
110
117
  };
111
118
  result: {
112
119
  matched: boolean | null;
120
+ /** @deprecated Always `null`. */
113
121
  liveness: boolean | null;
114
122
  };
115
123
  };
@@ -128,6 +136,7 @@ type FaceMatchResultState = {
128
136
  };
129
137
  result: {
130
138
  matched: boolean | null;
139
+ /** @deprecated Always `null`. */
131
140
  liveness: boolean | null;
132
141
  };
133
142
  matched: boolean | null;
@@ -1,6 +1,7 @@
1
- import { t as api, u as endpoints } from "./api-Cz90EHyu.esm.js";
1
+ import { t as api, u as endpoints } from "./api-BO8JA7Pf.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
5
  //#region src/modules/face-match/constants.ts
5
6
  /**
6
7
  * Backend error code returned by face-match endpoints (e.g. `/omni/process/face`,
@@ -43,18 +44,6 @@ async function fetchFaceMatchImages(signal) {
43
44
  };
44
45
  }
45
46
  /**
46
- * Fetches face recognition score from the backend.
47
- */
48
- async function fetchScore(signal) {
49
- const res = await api.get(endpoints.getScore, { signal });
50
- if (!res.ok) throw new Error(`GET ${endpoints.getScore} failed: ${res.status} ${res.statusText}`);
51
- const data = res.data;
52
- return {
53
- matched: data.faceRecognition?.overall?.status === "OK" ? true : data.faceRecognition?.overall?.status === "FAIL" ? false : null,
54
- liveness: data.deepsight ? data.deepsight.multimodalIntelligence?.overall?.status === "OK" : data.liveness?.overall?.status === "OK"
55
- };
56
- }
57
- /**
58
47
  * Fetches second ID face images from the backend.
59
48
  */
60
49
  async function fetchSecondIdImages(signal) {
@@ -65,16 +54,24 @@ async function fetchSecondIdImages(signal) {
65
54
  return { secondIdFace: /^(?:data:|https?:\/\/|blob:)/i.test(image) ? image : `data:image/png;base64,${image}` };
66
55
  }
67
56
  /**
68
- * Triggers server-side face processing/matching for the captured selfie.
57
+ * Reads the face recognition result from `/omni/get/score`. Used only when
58
+ * `/omni/process/face` sent no `success`, which means the API key allows
59
+ * score retrieval.
60
+ */
61
+ async function fetchScoreMatched(signal) {
62
+ const res = await api.get(endpoints.getScore, { signal });
63
+ if (!res.ok) throw new Error(`GET ${endpoints.getScore} failed: ${res.status} ${res.statusText}`);
64
+ const status = res.data.faceRecognition?.overall?.status;
65
+ return status === "OK" ? true : status === "FAIL" ? false : null;
66
+ }
67
+ /**
68
+ * Runs server-side face matching for the captured selfie and returns the match
69
+ * result (the response's `success` field, `null` when absent).
69
70
  *
70
- * Always run by face-match before reading the score, mirroring SDK 1's FaceMatch module.
71
- * Some capture steps skip server-side face processing (e.g. AUTHENTICATION and the
72
- * capture-only selfie variant), so the match must be (re)triggered here before
73
- * `GET /omni/get/score` can reflect it. When the selfie was already processed upstream
74
- * (e.g. the regular selfie module) this is a harmless reprocess.
71
+ * Face-match runs it when no earlier step did. Some capture steps skip it
72
+ * (Workflow SELFIE, AUTHENTICATION, the capture-only selfie variant).
75
73
  *
76
- * The response body is intentionally ignored — face-match re-reads the result via
77
- * `fetchScore`. A non-ok response throws an Error carrying the backend `status`/`data` so
74
+ * A non-ok response throws an Error carrying the backend `status`/`data` so
78
75
  * the state machine's `onError` can both produce a readable message and detect the
79
76
  * "ID face extraction skipped" case (status 4084) via `isFaceExtractionSkippedError`.
80
77
  */
@@ -88,21 +85,37 @@ async function processFaceForMatch(matchingType, signal) {
88
85
  status: res.status,
89
86
  data: res.data
90
87
  });
88
+ const success = res.data?.success;
89
+ return typeof success === "boolean" ? success : null;
91
90
  }
92
91
  /**
93
- * Fetches all face match data in parallel (images, score, and optionally second ID images).
92
+ * Fetches the face match images and result.
93
+ *
94
+ * The result is the `success` field of `/omni/process/face`. The backend sends
95
+ * it only when the API key blocks score retrieval with the session token, and
96
+ * then `/omni/get/score` returns 403. Without `success`, the result comes from
97
+ * `/omni/get/score`. `config.matched`, or else the saved result of a selfie
98
+ * capture in this session, skips the call. The second ID
99
+ * always runs its own call, because the selfie matches only against the
100
+ * primary ID.
94
101
  */
95
102
  async function fetchFaceMatchData(config, signal) {
96
- await processFaceForMatch(config.matchingType, signal);
97
- const promises = [fetchFaceMatchImages(signal), fetchScore(signal)];
98
- if (config.matchingType === "secondId") promises.push(fetchSecondIdImages(signal));
99
- const [imagesRes, resultRes, secondIdRes] = await Promise.all(promises);
103
+ const isSecondId = config.matchingType === "secondId";
104
+ const fromProcessFace = (isSecondId ? null : config.matched ?? getProcessFaceMatch()) ?? await processFaceForMatch(config.matchingType, signal);
105
+ const [imagesRes, secondIdRes, matched] = await Promise.all([
106
+ fetchFaceMatchImages(signal),
107
+ isSecondId ? fetchSecondIdImages(signal) : void 0,
108
+ fromProcessFace ?? fetchScoreMatched(signal)
109
+ ]);
100
110
  return {
101
111
  images: {
102
112
  ...imagesRes,
103
113
  secondIdFace: secondIdRes?.secondIdFace ?? null
104
114
  },
105
- result: resultRes
115
+ result: {
116
+ matched,
117
+ liveness: null
118
+ }
106
119
  };
107
120
  }
108
121
  //#endregion
@@ -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-CsIbltJF.esm.js";
2
+ import { t as SDK_VERSION } from "./sdkVersion-C3_P-Qbq.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). */
@@ -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-B5rR10uS.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-DjAG5lsJ.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-v3knTYV_.esm.js";
1
+ import { n as createFieldComparisonManagerFromActor, r as fieldComparisonMachine, t as createFieldComparisonManager } from "./fieldComparisonManager-CC0vKmpf.esm.js";
2
2
  export { createFieldComparisonManager, createFieldComparisonManagerFromActor, fieldComparisonMachine };
@@ -1,5 +1,5 @@
1
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-Du2A4-Qr.esm.js";
2
- import { t as api, u as endpoints } from "./api-Cz90EHyu.esm.js";
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";
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-Dt9fHG7h.esm.js";
1
+ import { n as createFiscalQrManagerFromActor, r as fiscalQrMachine, t as createFiscalQrManager } from "./fiscalQrManager-Be-r4oZj.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-Du2A4-Qr.esm.js";
2
- import { t as api, u as endpoints } from "./api-Cz90EHyu.esm.js";
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";
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
- import { o as stopCameraStream } from "./camera-sIa9ceW2.esm.js";
7
- import { n as getBackCameraStream } from "./backCameraStream-CMvXj4X4.esm.js";
6
+ import { a as stopCameraStream } from "./camera-E_Kcre4O.esm.js";
7
+ import { t as getBackCameraStream } from "./backCameraStream-C5_NNfUN.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-CKQ9QBZP.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-DMDAk85K.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-BvLo3U4u.js";
6
- import { i as FlowModuleConfig, n as Flow, r as FlowModule } from "./types-B6HsSzpk.js";
7
- import { t as AuthenticationConfig } from "./types-zOgZqMni.js";
8
- import { r as DocumentCaptureConfig } from "./types-DUnFZ08M.js";
9
- import { t as DynamicFormsConfig } from "./types-BSBzhHRH2.js";
10
- import { t as EkybConfig } from "./types-0L-eFDmr.js";
11
- import { u as IdCaptureConfig } from "./types-BAxn7MpY.js";
12
- import { r as MandatoryConsentConfig } from "./types-Ckir_BEs.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";
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";
13
13
  import { t as IdOcrConfig } from "./types-CJ7Yl9K-.js";
14
- import { t as RedirectToMobileConfig } from "./types-DPIDuhut.js";
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-CKQ9QBZP.js";
16
+ import { o as FlowEventSubscribable } from "./index-DMDAk85K.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,11 @@
1
- import { y as addEvent } from "./events-Du2A4-Qr.esm.js";
2
- import { a as resolveDashboardModuleConfig, c as getRequiredWasmPipelines, j as mergeDashboardConfig, l as normalizeFlowModules, n as getFlow, o as enrichFlowModuleConfig, r as preloadDashboardFlow, s as getNextRequiredWasmPipelines, t as completeDeferredActivation, u as resolveFlowModuleConfig } from "./flowServices-roD0oIQL.esm.js";
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";
3
4
  import { i as assign, s as createActor, t as setup, u as createManager } from "./xstate.esm-DSajW7CJ.esm.js";
4
5
  import { n as fromPromise } from "./xstate-actors.esm-8Gzepa_A.esm.js";
5
- import { n as getFinishStatus, r as getTotalScoreStatus, t as classifyScoreStatus } from "./flowCompletionService-BDI5QpfR.esm.js";
6
- import { n as attachFlowEventEmitter, t as runChildModule } from "./runChildModule-BF_atgNx.esm.js";
7
- import { n as isAdvanceableError } from "./advanceableErrors-q_pfU3Cn.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";
8
+ import { n as isAdvanceableError } from "./advanceableErrors-k-U-cL5m.esm.js";
8
9
  //#region src/modules/flow/noOpFlowModuleMachine.ts
9
10
  const noOpFlowModuleMachine = /* @__PURE__ */ (() => setup({}).createMachine({
10
11
  id: "noOpFlowModule",
@@ -411,12 +412,8 @@ const orchestratedFlowMachine = /* @__PURE__ */ (() => setup({
411
412
  input: {}
412
413
  },
413
414
  actors: {
414
- fetchFlow: fromPromise(async ({ input, signal }) => {
415
- return input.getFlow(signal);
416
- }),
417
- notifyBackend: fromPromise(async ({ input, signal }) => {
418
- return await input.getFinishStatus(input.flowId, signal);
419
- }),
415
+ fetchFlow: fromPromise(({ input, signal }) => retryAfterReconnect(() => input.getFlow(signal), signal)),
416
+ notifyBackend: fromPromise(({ input, signal }) => retryAfterReconnect(() => input.getFinishStatus(input.flowId, signal), signal)),
420
417
  runChildModule,
421
418
  resolveActivation: fromPromise(async ({ input, signal }) => {
422
419
  if (!input.flow) throw new Error("No flow loaded");
@@ -1,5 +1,5 @@
1
- import { t as api, u as endpoints } from "./api-Cz90EHyu.esm.js";
2
- import { i as toIncodeApiError } from "./apiError-DPwFas2f.esm.js";
1
+ import { t as api, u as endpoints } from "./api-BO8JA7Pf.esm.js";
2
+ import { i as toIncodeApiError } from "./apiError-CfuIvnUy.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}` : ""}`;