@incodetech/core 2.3.2 → 2.4.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/THIRD_PARTY_NOTICES.txt +1243 -3
  2. package/dist/Actor-DpTj5PFb.d.ts +1 -0
  3. package/dist/{BaseWasmProvider-Dyi6dKp1.d.ts → BaseWasmProvider-Bq3OHo7P.d.ts} +2 -2
  4. package/dist/BrowserDiagnosticsEnvelopeProvider-BQca6KPG.esm.js +43 -0
  5. package/dist/{FaceDetectionProvider-DtmtCKa9.esm.js → FaceDetectionProvider-BIImDZrc.esm.js} +125 -10
  6. package/dist/HttpRequestError-Bh0pNGSC.esm.js +35 -0
  7. package/dist/{IIdCaptureCapability-RNiFhvXR.d.ts → IIdCaptureCapability-CGcEt2Cw.d.ts} +2 -2
  8. package/dist/{IWasmUtilCapability-CNWRl7jr.d.ts → IWasmUtilCapability-GF2n7sfm.d.ts} +28 -5
  9. package/dist/{Manager-CQQ99QOI.d.ts → Manager-C9T5amUN.d.ts} +7 -1
  10. package/dist/{MotionSensorProvider-DyhbM4Si.esm.js → MotionSensorProvider-DYxh8TjR.esm.js} +1 -1
  11. package/dist/{ekycStateMachine-UeJRO8_p.esm.js → PhoneValidationProvider-SZiOS0jB.esm.js} +232 -827
  12. package/dist/{StreamCanvasCapture-_8gdW5Lk.d.ts → StreamCanvasCapture-7JRf-2ck.d.ts} +2 -2
  13. package/dist/{safeStorage-BdU9_m2E.esm.js → WasmUtilProvider-DtJuBdt-.esm.js} +111 -49
  14. package/dist/{addressSearch-DyHGgeX8.esm.js → addressSearch-DPjIKJrX.esm.js} +142 -4
  15. package/dist/{advanceableErrors-CpF2cBy6.esm.js → advanceableErrors-q_pfU3Cn.esm.js} +5 -4
  16. package/dist/ae-signature.d.ts +2 -2
  17. package/dist/ae-signature.esm.js +1 -1
  18. package/dist/antifraud.d.ts +1 -1
  19. package/dist/antifraud.esm.js +2 -2
  20. package/dist/{antifraudManager-DNkw66oW.esm.js → antifraudManager-CaweCYnY.esm.js} +3 -3
  21. package/dist/{antifraudManager-BY36bS12.d.ts → antifraudManager-DbGCvlJs.d.ts} +2 -2
  22. package/dist/{antifraudStateMachine-DBeq47D2.esm.js → antifraudStateMachine-DRl0UVyA.esm.js} +3 -4
  23. package/dist/{endpoints-B-3Q-LUw.esm.js → api-Cz90EHyu.esm.js} +151 -1
  24. package/dist/{apiError-CmGEmaGU.esm.js → apiError-D5u6HIDG.esm.js} +2 -1
  25. package/dist/authentication.d.ts +3 -3
  26. package/dist/authentication.esm.js +2 -2
  27. package/dist/{authenticationManager-CboRCl_N.d.ts → authenticationManager-BIZC55Bi.d.ts} +2 -8
  28. package/dist/{authenticationManager-BFjSjtQ_.esm.js → authenticationManager-CB3YW6EK.esm.js} +6 -6
  29. package/dist/{authenticationStateMachine-Dfo34ZiI.esm.js → authenticationStateMachine-BJJhLmdH.esm.js} +5 -6
  30. package/dist/avatar.d.ts +1 -1
  31. package/dist/{backCameraStream-B0-YgP_y.esm.js → backCameraStream-CMvXj4X4.esm.js} +1 -1
  32. package/dist/camera.esm.js +1 -1
  33. package/dist/certificate-issuance.d.ts +1 -1
  34. package/dist/certificate-issuance.esm.js +2 -2
  35. package/dist/{certificateIssuanceManager-C3-CI0_s.esm.js → certificateIssuanceManager-BfeMv2PU.esm.js} +3 -3
  36. package/dist/{certificateIssuanceManager-DCgEidHz.d.ts → certificateIssuanceManager-Dr8A4Lgr.d.ts} +2 -3
  37. package/dist/{certificateIssuanceStateMachine-CxqS_nD-.esm.js → certificateIssuanceStateMachine-Frgjbjw8.esm.js} +4 -5
  38. package/dist/consent.d.ts +1 -1
  39. package/dist/consent.esm.js +2 -2
  40. package/dist/{consentManager-B6E1XJDw.esm.js → consentManager-CvEu8h_W.esm.js} +3 -3
  41. package/dist/{consentManager-2h_w6wFc.d.ts → consentManager-Cv_0QKLD.d.ts} +7 -8
  42. package/dist/{consentStateMachine-DTSfdGiW.esm.js → consentStateMachine-DJTgN_-1.esm.js} +3 -4
  43. package/dist/{createCameraCycleOwnership-DnwTl1ad.esm.js → createCameraCycleOwnership-Dj_LHUvN.esm.js} +71 -66
  44. package/dist/{createFaceAvatar-BlcTYgJv.d.ts → createFaceAvatar-lYX0VTYs.d.ts} +1 -1
  45. package/dist/cross-document-data-match.d.ts +1 -1
  46. package/dist/cross-document-data-match.esm.js +1 -1
  47. package/dist/{crossDocumentDataMatchManager-9XhFVZ5S.esm.js → crossDocumentDataMatchManager-Cu141CE8.esm.js} +4 -5
  48. package/dist/{crossDocumentDataMatchManager-Dq8Z3SOg.d.ts → crossDocumentDataMatchManager-yCWCOzcU.d.ts} +2 -2
  49. package/dist/curp-validation.d.ts +1 -1
  50. package/dist/curp-validation.esm.js +2 -2
  51. package/dist/{curpValidationManager-DbIMYFcJ.esm.js → curpValidationManager-B-z9q5V3.esm.js} +15 -22
  52. package/dist/{curpValidationManager-DNuZn9fn.d.ts → curpValidationManager-C9sqoh9n.d.ts} +3 -3
  53. package/dist/{curpValidationStateMachine-g5kMfuLj.esm.js → curpValidationStateMachine-vDEFLMPw.esm.js} +4 -5
  54. package/dist/custom-fields.d.ts +1 -1
  55. package/dist/custom-fields.esm.js +1 -1
  56. package/dist/custom-watchlist.d.ts +1 -1
  57. package/dist/custom-watchlist.esm.js +2 -2
  58. package/dist/{customFieldsManager-8-W2KY4n.d.ts → customFieldsManager-CF-cO8ap.d.ts} +2 -2
  59. package/dist/{customFieldsManager-CzWZTkW-.esm.js → customFieldsManager-D1ex2cFM.esm.js} +4 -5
  60. package/dist/{customWatchlistManager-DWTED5Ur.esm.js → customWatchlistManager-CTI-SGk0.esm.js} +3 -3
  61. package/dist/{customWatchlistManager-PBWHr_oM.d.ts → customWatchlistManager-DolUswyR.d.ts} +2 -2
  62. package/dist/{customWatchlistStateMachine-DOQou6TW.esm.js → customWatchlistStateMachine-hmRd0f2I.esm.js} +3 -4
  63. package/dist/deepsightLoader-DZMdYSl-.esm.js +55 -0
  64. package/dist/{deepsightLoader-v-dLejS-.esm.js → deepsightService-tGP53cSS.esm.js} +51 -56
  65. package/dist/device.esm.js +1 -1
  66. package/dist/document-capture.d.ts +2 -2
  67. package/dist/document-capture.esm.js +2 -2
  68. package/dist/{documentCaptureManager-BRPxqYD2.esm.js → documentCaptureManager-DUJwpKC5.esm.js} +17 -18
  69. package/dist/{documentCaptureManager-lEtCM320.d.ts → documentCaptureManager-DkyDtm3Y.d.ts} +11 -34
  70. package/dist/{documentCaptureStateMachine-D312sSIu.esm.js → documentCaptureStateMachine-B8i7GnLh.esm.js} +55 -59
  71. package/dist/dynamic-forms.d.ts +2 -2
  72. package/dist/dynamic-forms.esm.js +2 -2
  73. package/dist/{dynamicFormsManager-C-9Jhnd3.esm.js → dynamicFormsManager-Bxmv_9PB.esm.js} +3 -3
  74. package/dist/{dynamicFormsManager-D5R_uxLQ.d.ts → dynamicFormsManager-C0dHs1ty.d.ts} +3 -3
  75. package/dist/{dynamicFormsStateMachine-DGI_F2PP.esm.js → dynamicFormsStateMachine-CoOWTzyM.esm.js} +4 -5
  76. package/dist/ekyb.d.ts +5 -5
  77. package/dist/ekyb.esm.js +3 -3
  78. package/dist/{ekybManager-DeoMcZEz.esm.js → ekybManager-BBkdPxUY.esm.js} +23 -27
  79. package/dist/{ekybManager-BwRuGAwt.d.ts → ekybManager-BaZ_7CEu.d.ts} +4 -4
  80. package/dist/{ekybStateMachine-D1IJ1Z72.esm.js → ekybStateMachine-n4Iz9iLc.esm.js} +338 -14
  81. package/dist/ekyc.d.ts +2 -2
  82. package/dist/ekyc.esm.js +3 -3
  83. package/dist/{ekycManager-BX2d46FY.esm.js → ekycManager-BO-Lui3t.esm.js} +29 -36
  84. package/dist/{ekycManager-DLzDuBzI.d.ts → ekycManager-DW-ynodd.d.ts} +3 -3
  85. package/dist/ekycStateMachine-CDnI_NRq.esm.js +1443 -0
  86. package/dist/{ekycUtils-D6wfSpPN.esm.js → ekycUtils-zY8CdKJL.esm.js} +53 -3
  87. package/dist/electronic-signature.d.ts +1 -1
  88. package/dist/electronic-signature.esm.js +1 -1
  89. package/dist/{electronicSignatureManager-yYUc30na.esm.js → electronicSignatureManager-BtWCrz5_.esm.js} +10 -11
  90. package/dist/{electronicSignatureManager-Ds-KEVTq.d.ts → electronicSignatureManager-DTSLOvKR.d.ts} +2 -3
  91. package/dist/email.d.ts +1 -1
  92. package/dist/email.esm.js +2 -2
  93. package/dist/{emailManager-bR1N5rV_.esm.js → emailManager-ButFktRm.esm.js} +20 -26
  94. package/dist/{emailManager-CADXW_9X.d.ts → emailManager-Dy6omJVp.d.ts} +2 -2
  95. package/dist/{emailStateMachine-Bc_6oIYw.esm.js → emailStateMachine-BXtlC0NV.esm.js} +3 -4
  96. package/dist/{events-ijlbX_Wx.esm.js → events-Du2A4-Qr.esm.js} +203 -8
  97. package/dist/events.d.ts +3 -2
  98. package/dist/events.esm.js +1 -1
  99. package/dist/extensibility.d.ts +38 -38
  100. package/dist/extensibility.esm.js +36 -36
  101. package/dist/{externalFetch-BKBThAUC.esm.js → externalFetch-DrR9xshk.esm.js} +3 -2
  102. package/dist/face-match.d.ts +1 -1
  103. package/dist/face-match.esm.js +2 -2
  104. package/dist/{faceCaptureManagerFactory-m-7ae67q.d.ts → faceCaptureManagerFactory-1hzeS_rB.d.ts} +11 -51
  105. package/dist/{faceCaptureManagerFactory-B6i9QcAk.esm.js → faceCaptureManagerFactory-CwZUeYfq.esm.js} +19 -54
  106. package/dist/{faceCaptureSetup-DU1mjRr6.esm.js → faceCaptureSetup-CYbdKNlI.esm.js} +104 -396
  107. package/dist/{faceMatchManager-BnvrZM2F.d.ts → faceMatchManager-DIgG-UFS.d.ts} +1 -2
  108. package/dist/{faceMatchManager-Bmv0HzuY.esm.js → faceMatchManager-DWFUQjMQ.esm.js} +3 -3
  109. package/dist/{faceMatchStateMachine-mRIHQ3dA.esm.js → faceMatchStateMachine-CUCvlydD.esm.js} +6 -5
  110. package/dist/{feature-management-C8CuN0os.esm.js → feature-management-rTfjzdDa.esm.js} +3 -3
  111. package/dist/feature-management.esm.js +1 -1
  112. package/dist/field-comparison.d.ts +2 -2
  113. package/dist/field-comparison.esm.js +1 -1
  114. package/dist/{fieldComparisonManager-CBvEGxFx.d.ts → fieldComparisonManager-CUX4gza2.d.ts} +6 -3
  115. package/dist/{fieldComparisonManager-CC-klG0h.esm.js → fieldComparisonManager-v3knTYV_.esm.js} +35 -18
  116. package/dist/fiscal-qr.d.ts +1 -1
  117. package/dist/fiscal-qr.esm.js +1 -1
  118. package/dist/{fiscalQrManager-B1STmT6z.d.ts → fiscalQrManager-D0Iy7EKR.d.ts} +2 -2
  119. package/dist/fiscalQrManager-Dt9fHG7h.esm.js +6798 -0
  120. package/dist/flow-events.d.ts +1 -1
  121. package/dist/flow.d.ts +14 -13
  122. package/dist/flow.esm.js +14 -14
  123. package/dist/{flowCompletionService-DccgtDnm.esm.js → flowCompletionService-oiK1PjPr.esm.js} +2 -3
  124. package/dist/{flowServices-CdsWsppG.esm.js → flowServices-CTc-zqfN.esm.js} +11 -8
  125. package/dist/geolocation.d.ts +1 -1
  126. package/dist/geolocation.esm.js +2 -2
  127. package/dist/{geolocationManager-CGHBxtMb.esm.js → geolocationManager-BOdtVuR8.esm.js} +6 -7
  128. package/dist/{geolocationManager-Cz744E5S.d.ts → geolocationManager-Dn24g1fl.d.ts} +2 -3
  129. package/dist/{geolocationStateMachine-CdEb1Gn0.esm.js → geolocationStateMachine-BnGuZ3hn.esm.js} +4 -5
  130. package/dist/{getDeviceClass-5NYZg9s6.esm.js → getDeviceClass-bsWdEDxP.esm.js} +1 -1
  131. package/dist/{getParsedUserAgent-B2iFDql1.esm.js → getParsedUserAgent-DhQPeKqw.esm.js} +1 -1
  132. package/dist/government-validation.d.ts +1 -1
  133. package/dist/government-validation.esm.js +2 -2
  134. package/dist/{governmentValidationManager-D02vT4yY.d.ts → governmentValidationManager-B82zOut8.d.ts} +3 -3
  135. package/dist/{governmentValidationManager-CacFOtKO.esm.js → governmentValidationManager-BtXWHICu.esm.js} +3 -3
  136. package/dist/{governmentValidationStateMachine-CoaZOSTP.esm.js → governmentValidationStateMachine-COL-Vs48.esm.js} +3 -4
  137. package/dist/home.d.ts +3 -26
  138. package/dist/home.esm.js +2 -2
  139. package/dist/http.esm.js +1 -1
  140. package/dist/id-ocr.d.ts +1 -1
  141. package/dist/id-ocr.esm.js +2 -2
  142. package/dist/id-selfie-flow.d.ts +6 -9
  143. package/dist/id-selfie-flow.esm.js +23 -28
  144. package/dist/id-verification.d.ts +1 -1
  145. package/dist/id-verification.esm.js +2 -2
  146. package/dist/id.d.ts +4 -4
  147. package/dist/id.esm.js +4 -205
  148. package/dist/{idCaptureDefaults-Dl64Trv5.esm.js → idCaptureDefaults-BGsG2OAs.esm.js} +7 -5
  149. package/dist/{idCaptureManager-BHwL2Z0V.d.ts → idCaptureManager-0M02hSuC.d.ts} +242 -98
  150. package/dist/{idCaptureManager-BNmVJQkd.esm.js → idCaptureManager-BKedt48Y.esm.js} +276 -210
  151. package/dist/{idCaptureServices-dtDG2HXS.esm.js → idCaptureServices-D0p_RFqk.esm.js} +21 -40
  152. package/dist/{idCaptureStateMachine-BbiZD3uf.esm.js → idCaptureStateMachine-CxwoN5ff.esm.js} +992 -872
  153. package/dist/{idOcrManager-ByWuQ4ej.esm.js → idOcrManager-D3-HNMXP.esm.js} +3 -3
  154. package/dist/{idOcrManager-CFlDwUvN.d.ts → idOcrManager-DT3kPIB3.d.ts} +3 -4
  155. package/dist/{idOcrStateMachine-Bt_abXQQ.esm.js → idOcrStateMachine-DyENX6Ki.esm.js} +3 -4
  156. package/dist/{idVerificationManager-BB4Pj_N6.d.ts → idVerificationManager-BJapZfpy.d.ts} +2 -3
  157. package/dist/{idVerificationManager-DT42c77H.esm.js → idVerificationManager-iWz7Avkr.esm.js} +3 -3
  158. package/dist/{idVerificationStateMachine-DbDVIh9t.esm.js → idVerificationStateMachine-CL1kUdBe.esm.js} +3 -4
  159. package/dist/identity-reuse.d.ts +2 -2
  160. package/dist/identity-reuse.esm.js +2 -2
  161. package/dist/{identityReuseManager-BXEBBI3N.d.ts → identityReuseManager-B1birg5X.d.ts} +162 -44
  162. package/dist/{identityReuseManager-yG3acUrQ.esm.js → identityReuseManager-CD1ucp1d.esm.js} +26 -13
  163. package/dist/{identityReuseStateMachine-BhAkuIra.esm.js → identityReuseStateMachine-DfV81wQC.esm.js} +89 -24
  164. package/dist/{index-CeaC32qI.d.ts → index-CKQ9QBZP.d.ts} +2 -2
  165. package/dist/index-DpTj5PFb.d.ts +1 -0
  166. package/dist/index.d.ts +1 -1
  167. package/dist/index.esm.js +1 -1
  168. package/dist/{invokeOnCaptureCallback-BjzPjJ_p.esm.js → invokeOnCaptureCallback-DYrkOXO6.esm.js} +1 -1
  169. package/dist/lamejs-B6TzhU5q.esm.js +10 -0
  170. package/dist/mandatory-consent.d.ts +2 -2
  171. package/dist/mandatory-consent.esm.js +2 -2
  172. package/dist/{mandatoryConsentManager-7dI0D08q.esm.js → mandatoryConsentManager-Cwqx1nK7.esm.js} +3 -3
  173. package/dist/{mandatoryConsentManager-DFVm_i2B.d.ts → mandatoryConsentManager-okPILEru.d.ts} +8 -9
  174. package/dist/{mandatoryConsentStateMachine-DC5Mo6M1.esm.js → mandatoryConsentStateMachine-pXWqAHo_.esm.js} +3 -4
  175. package/dist/{multipartRecordingService-mwKFTlhR.esm.js → multipartRecordingService-CLwrF5wD.esm.js} +1 -2
  176. package/dist/{permissionGuards-D6TfVop2.esm.js → permissionGuards-gcy3U0SL.esm.js} +1 -1
  177. package/dist/{permissionServices-EY3_Vx6c.esm.js → permissionServices-Ca-tSNhT.esm.js} +34 -3
  178. package/dist/phone-number.d.ts +24 -0
  179. package/dist/phone-number.esm.js +1922 -0
  180. package/dist/phone.d.ts +1 -1
  181. package/dist/phone.esm.js +2 -2
  182. package/dist/{phoneManager-BBU8Lq0O.d.ts → phoneManager-BO-LTih5.d.ts} +16 -3
  183. package/dist/{phoneManager-IjhSv5XS.esm.js → phoneManager-KKUq-Vgo.esm.js} +31 -22
  184. package/dist/{phoneStateMachine-CXdXufKg.esm.js → phoneStateMachine-D2QWS2cu.esm.js} +38 -20
  185. package/dist/phoneValidation-DnBcNUNh.esm.js +48 -0
  186. package/dist/qe-signature.d.ts +2 -2
  187. package/dist/qe-signature.esm.js +1 -1
  188. package/dist/redirect-to-mobile.d.ts +1 -1
  189. package/dist/redirect-to-mobile.esm.js +2 -2
  190. package/dist/{redirectToMobileManager-BD2PvT5B.d.ts → redirectToMobileManager-CVsvpVbQ.d.ts} +2 -2
  191. package/dist/{redirectToMobileManager-FLEWJtv8.esm.js → redirectToMobileManager-uHW3dyuQ.esm.js} +4 -4
  192. package/dist/{redirectToMobileStateMachine-CSWWgUTO.esm.js → redirectToMobileStateMachine-b-H-ipGM.esm.js} +4 -5
  193. package/dist/{rolldown-runtime-FDOR9p9I.esm.js → rolldown-runtime-B-1-B7_t.esm.js} +10 -1
  194. package/dist/{runChildModule-B2Y_hlix.esm.js → runChildModule-CPa0i2_C.esm.js} +13 -12
  195. package/dist/safeStorage-UxDrnjwa.esm.js +35 -0
  196. package/dist/{sdkVersion-N1UiyFiY.esm.js → sdkVersion-BtROs6OA.esm.js} +1 -1
  197. package/dist/selfie.d.ts +4 -4
  198. package/dist/selfie.esm.js +12 -12
  199. package/dist/selfieErrorUtils-sMc0MaNh.esm.js +21 -0
  200. package/dist/{selfieManager-BSZG891S.d.ts → selfieManager-BJdNu_nd.d.ts} +2 -8
  201. package/dist/{selfieManager-AS6wfUvZ.esm.js → selfieManager-Ch9xJbWJ.esm.js} +6 -6
  202. package/dist/selfieStateMachine-DT8QCfKR.esm.js +41 -0
  203. package/dist/{session-BESZc05k.esm.js → session-CNNTckUS.esm.js} +5 -6
  204. package/dist/session.d.ts +15 -3
  205. package/dist/session.esm.js +30 -5
  206. package/dist/sessionInitializer-DVWMJh25.esm.js +973 -0
  207. package/dist/{setup-BuPbxpwF.esm.js → setup-B7ehQ-lf.esm.js} +155 -140
  208. package/dist/{setup-Cyko6cAn.d.ts → setup-YPKTUCY5.d.ts} +42 -15
  209. package/dist/signature.d.ts +1 -1
  210. package/dist/signature.esm.js +2 -2
  211. package/dist/{signatureManager-DGBSWz2_.d.ts → signatureManager-BpVt_Jv7.d.ts} +2 -2
  212. package/dist/{signatureManager-B72np4ZO.esm.js → signatureManager-f_dPAGXn.esm.js} +7 -11
  213. package/dist/{signatureStateMachine-ce_XMA3l.esm.js → signatureStateMachine-C-nUq_oq.esm.js} +3 -4
  214. package/dist/splitTrackedName-3zJRd2RD.esm.js +19 -0
  215. package/dist/{src-35ekGRzK.esm.js → src-DJAJjRYQ.esm.js} +1 -1
  216. package/dist/{stats-CZcy2J53.esm.js → stats-BEvexnKC.esm.js} +1 -2
  217. package/dist/stats.esm.js +1 -1
  218. package/dist/{sessionInitializer-CnhAkMUN.esm.js → thumbmark.esm-CRc0cYvz.esm.js} +33 -776
  219. package/dist/{trueSightService-M5VpCo96.esm.js → trueSightService-BzLdXpmJ.esm.js} +1391 -709
  220. package/dist/trust-graph.d.ts +1 -2
  221. package/dist/trust-graph.esm.js +2 -2
  222. package/dist/{types-C0oWGUzg.d.ts → types-0L-eFDmr.d.ts} +1 -1
  223. package/dist/{types-C1g9itHE.d.ts → types-B6HsSzpk.d.ts} +6 -7
  224. package/dist/{types-DEGVXwsk2.d.ts → types-BAxn7MpY.d.ts} +110 -62
  225. package/dist/{types-BfgmV7s7.d.ts → types-BQA7lRDV.d.ts} +1 -1
  226. package/dist/{types-Cx-1zo-i.d.ts → types-BvLo3U4u.d.ts} +1 -1
  227. package/dist/{types-Bx-BWveD.d.ts → types-CK8Jbjkp.d.ts} +1 -1
  228. package/dist/{types-CxGdmzxa.d.ts → types-Ckir_BEs.d.ts} +1 -1
  229. package/dist/{types-BjSly8cp.d.ts → types-DUnFZ08M.d.ts} +1 -1
  230. package/dist/{types-ESdtnHtg.d.ts → types-yPH8lAH-.d.ts} +3 -4
  231. package/dist/types-zOgZqMni.d.ts +6 -0
  232. package/dist/{urlUtils-D6phjq1-.esm.js → urlUtils-6jsE6rKp.esm.js} +9 -1
  233. package/dist/video-selfie.d.ts +6 -9
  234. package/dist/video-selfie.esm.js +1390 -1349
  235. package/dist/{videoSelfieCameraWarmer-q9ZjvXu9.esm.js → videoSelfieCameraWarmer-DWoFBJAn.esm.js} +10 -11
  236. package/dist/{videoSelfieFlowModuleMachine-BUe2uACW.esm.js → videoSelfieFlowModuleMachine-BCFVHBQ1.esm.js} +1 -1
  237. package/dist/{videoSelfieStepDetector-ChYgFM15.d.ts → videoSelfieStepDetector-CGsTltqB.d.ts} +4 -4
  238. package/dist/videoTrimByCopy-BFfAiNpv.esm.js +15901 -0
  239. package/dist/{warmup-ChDwHSel.esm.js → warmup-BElYWRh7.esm.js} +348 -11
  240. package/dist/{warmup-Cis2p6O0.d.ts → warmup-BO57syF6.d.ts} +8 -0
  241. package/dist/wasm.d.ts +2 -2
  242. package/dist/wasm.esm.js +3 -4
  243. package/dist/{wasmDsFlagSync-DYrLUEII.esm.js → wasmDsFlagSync-CYj5LL9z.esm.js} +1 -1
  244. package/dist/{wasmWebClient-B7baE-Wf.esm.js → wasmWebClient-BjZw_7OB.esm.js} +570 -33
  245. package/dist/watchlist-for-business.d.ts +1 -1
  246. package/dist/watchlist-for-business.esm.js +2 -2
  247. package/dist/watchlist.d.ts +1 -1
  248. package/dist/watchlist.esm.js +2 -2
  249. package/dist/{watchlistForBusinessManager-CsnJnG-C.d.ts → watchlistForBusinessManager-B3GDPZrr.d.ts} +2 -2
  250. package/dist/{watchlistForBusinessManager-CIMkpEhu.esm.js → watchlistForBusinessManager-CZZOFkGl.esm.js} +7 -5
  251. package/dist/{watchlistForBusinessStateMachine-CJ-MvUre.esm.js → watchlistForBusinessStateMachine-B66E7jud.esm.js} +3 -4
  252. package/dist/{watchlistManager-DLXef90v.d.ts → watchlistManager-DJQOd8Pw.d.ts} +2 -2
  253. package/dist/{watchlistManager-CixcLNDT.esm.js → watchlistManager-DXtX94SN.esm.js} +3 -3
  254. package/dist/{watchlistStateMachine-CBqk2w-h.esm.js → watchlistStateMachine-McALifag.esm.js} +3 -4
  255. package/dist/workflow.d.ts +34 -5
  256. package/dist/workflow.esm.js +64 -47
  257. package/dist/{xstate-actors.esm-BXeQ-Ucz.esm.js → xstate-actors.esm-8Gzepa_A.esm.js} +1 -1
  258. package/dist/{xstate.esm-BuFLFuzz.esm.js → xstate.esm-DSajW7CJ.esm.js} +24 -10
  259. package/package.json +13 -5
  260. package/dist/Actor-iTq7YY48.d.ts +0 -1
  261. package/dist/BrowserDiagnosticsCryptoProvider-BuzqvbhN.esm.js +0 -77
  262. package/dist/StateMachine-EDpYWy0i.d.ts +0 -6
  263. package/dist/api-Bx3gKW_y.esm.js +0 -129
  264. package/dist/fiscalQrManager-DbCVMIBx.esm.js +0 -34143
  265. package/dist/index-B8weJxmL.d.ts +0 -1
  266. package/dist/selfieErrorUtils-UiQ46EBa.esm.js +0 -116
  267. package/dist/selfieStateMachine-DY7vJVNY.esm.js +0 -71
  268. package/dist/types-BN5RPPIZ.esm.js +0 -34
  269. package/dist/types-Bt9RuRqt.d.ts +0 -6
  270. package/dist/virtualCameraCheck-Cjab7FTI.esm.js +0 -48
  271. /package/dist/{types-BSBzhHRH.d.ts → types-BSBzhHRH2.d.ts} +0 -0
@@ -1,4 +1,5 @@
1
- import { _ as WASM_PIPELINE_OPTIONAL_MODEL_NAMES, b as resolveWasmSource, d as SemaphoreProvider, h as WASM_PIPELINE_MODELS, l as loadWasmModule, n as createWebApiHostAdapter, p as WASM_MODEL_FILES, u as acquireWasmStorageFallback, v as buildModelVariantSources, y as missingWasmModelError } from "./wasmWebClient-B7baE-Wf.esm.js";
1
+ import { A as buildModelVariantSources, C as isDefaultCdnWasmConfig, D as WASM_PIPELINE_MODELS, M as resolveWasmSource, N as reportWasmIntegritySummary, T as WASM_MODEL_FILES, f as rearmWasmCallDiagnostics, g as emitWasmDiagnostic, h as acquireWasmStorageFallback, j as missingWasmModelError, k as WASM_PIPELINE_OPTIONAL_MODEL_NAMES, l as notePipelineStatePulled, m as loadWasmModule, n as createWebApiHostAdapter, p as resetWasmCallDiagnostics, v as SemaphoreProvider, y as DEFAULT_WASM_VERSION } from "./wasmWebClient-BjZw_7OB.esm.js";
2
+ import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
2
3
  //#region ../infra/src/wasm/wasmEnumMaps.ts
3
4
  function pipelineTypeToWasmEnum(wasmModule, type) {
4
5
  switch (type) {
@@ -45,6 +46,280 @@ function idCaptureModelTypeFromWasmEnum(wasmModule, type) {
45
46
  }
46
47
  }
47
48
  //#endregion
49
+ //#region ../infra/src/wasm/diagnosticsSink.ts
50
+ /**
51
+ * Receiver for the in-binary TrueSight diagnostics sensor (ENG-48677 WS2,
52
+ * ml-wasm-kit #569, shipped in v2.14.52).
53
+ *
54
+ * Seam contract v1: the kit calls the sink SYNCHRONOUSLY from C++ call sites
55
+ * with a JSON string
56
+ * `{"v":1,"tLast":<elapsedMs>,"entries":[{t,l,c,sub,msg,n}]}`
57
+ * where `t`/`tLast` share the kit logger's start-time anchor, `l` is
58
+ * `"E"|"W"|"I"`, and the tag is split into `c`/`sub` on its first dot. The
59
+ * handler is enqueue-only: it never calls back into WASM and never throws
60
+ * into the kit (the SDK registers on the raw embind handle, so the kit's own
61
+ * JS wrapper guard does not apply).
62
+ *
63
+ * The mode is a property of the binary, detected at install:
64
+ * - `sink` — `setDiagnosticsSink` exists (v2.14.52+): batches are pushed,
65
+ * and finalize drains the unsent tail via `drainDiagnostics`.
66
+ * - `fallback` — only `getAppLogs` exists (the pinned v2.14.50-post1): the
67
+ * plain-text `ClientLogger::render()` grammar (optional leading
68
+ * `... <k> dropped`, then `+<elapsedMs> <E|W|I> <tag>: <msg>[ (xN)]`) is
69
+ * parsed at finalize. Nothing in v2.14.50-post1 writes that logger, so in
70
+ * practice it is empty until the bump.
71
+ * - `none` — neither binding.
72
+ * No TrueSight change is needed when `DEFAULT_WASM_VERSION` moves past the
73
+ * sensor release: the next install simply detects `sink`.
74
+ */
75
+ const SUBSYSTEM_MAX_CHARS = 40;
76
+ const LAST_ERROR_CLAMP_CHARS = 300;
77
+ /** Below this parsed/candidate ratio the fallback degrades to count + last error. */
78
+ const FALLBACK_MIN_PARSE_RATIO = .7;
79
+ /** Anchor sanity bound: computed times further out than this use receipt time. */
80
+ const MAX_CLOCK_SKEW_MS = 1440 * 60 * 1e3;
81
+ const APP_LOGS_DROPPED_RE = /^\.\.\. (\d+) dropped$/;
82
+ const APP_LOGS_LINE_RE = /^\+(\d+) ([EWI]) (.+?): (.*)$/;
83
+ const DEDUP_SUFFIX_RE = / \(x(\d+)\)$/;
84
+ /**
85
+ * Kit tag (`c.sub`) → TrueSight category. The kit's tag vocabulary is its
86
+ * own (`camera.cycle`, `pipeline.core`, `bridge`, …), so only the
87
+ * capture-pipeline tags map to a scan category; everything else is `other`.
88
+ */
89
+ const KIT_TAG_CATEGORIES = {
90
+ "pipeline.id": "idScan",
91
+ "pipeline.barcode": "idScan",
92
+ "pipeline.face": "faceScan",
93
+ "pipeline.selfie": "faceScan",
94
+ "pipeline.liveness": "faceScan"
95
+ };
96
+ /** The kit's eviction marker: `{c:"diag",sub:"logger",msg:"dropped",n:k}`. */
97
+ const DROPPED_SUBSYSTEM = "diag.logger";
98
+ let mode = null;
99
+ let boundApi = null;
100
+ let sessionEpochMs = null;
101
+ let lastSeenRelativeMs = 0;
102
+ /** Fallback: `getAppLogs` re-renders the whole ring, so emit only newer lines. */
103
+ let fallbackWatermarkMs = -1;
104
+ let unsupportedVersionNoted = false;
105
+ let batchParseFailureNoted = false;
106
+ /** Drains run at every snapshot rebuild, so the degraded note is per session. */
107
+ let fallbackDegradedNoted = false;
108
+ function toCategory(category, sub) {
109
+ return KIT_TAG_CATEGORIES[`${category}.${sub}`] ?? "other";
110
+ }
111
+ function toLevel(value) {
112
+ switch (value) {
113
+ case "E": return "error";
114
+ case "W": return "warning";
115
+ case "I": return "info";
116
+ default: return "debug";
117
+ }
118
+ }
119
+ /** The `wasm.` prefix comes from the core handler; this builds the dotted tail. */
120
+ function toSubsystem(category, sub) {
121
+ const cleaned = `${category}${sub !== "" ? `.${sub}` : ""}`.replace(/[^\w.-]/g, "").slice(0, SUBSYSTEM_MAX_CHARS);
122
+ return cleaned === "" ? "kit" : cleaned;
123
+ }
124
+ function absoluteTimestampMs(relativeMs, receivedAtMs) {
125
+ if (sessionEpochMs === null || !Number.isFinite(relativeMs)) return receivedAtMs;
126
+ const computed = sessionEpochMs + relativeMs;
127
+ if (computed > receivedAtMs || receivedAtMs - computed > MAX_CLOCK_SKEW_MS) return receivedAtMs;
128
+ return computed;
129
+ }
130
+ function emitKitEntry(level, category, sub, message, count, timestampMs) {
131
+ const subsystem = toSubsystem(category, sub);
132
+ const dropped = subsystem === DROPPED_SUBSYSTEM && message === "dropped";
133
+ emitWasmDiagnostic({
134
+ level,
135
+ subsystem,
136
+ category: toCategory(category, sub),
137
+ message: dropped ? `dropped entries=${count}` : count > 1 ? `${message} (x${count})` : message,
138
+ timestampMs
139
+ });
140
+ }
141
+ function processBatch(batch, receivedAtMs) {
142
+ if (typeof batch !== "string" || batch === "") return;
143
+ let decoded;
144
+ try {
145
+ decoded = JSON.parse(batch);
146
+ } catch {
147
+ if (!batchParseFailureNoted) {
148
+ batchParseFailureNoted = true;
149
+ emitWasmDiagnostic({
150
+ level: "warning",
151
+ subsystem: "sink",
152
+ category: "other",
153
+ message: `batch parse failed len=${batch.length}`
154
+ });
155
+ }
156
+ return;
157
+ }
158
+ if (decoded === null || typeof decoded !== "object") return;
159
+ const record = decoded;
160
+ if (record.v !== 1) {
161
+ if (!unsupportedVersionNoted) {
162
+ unsupportedVersionNoted = true;
163
+ emitWasmDiagnostic({
164
+ level: "warning",
165
+ subsystem: "sink",
166
+ category: "other",
167
+ message: `unsupported batch v=${String(record.v)}`
168
+ });
169
+ }
170
+ return;
171
+ }
172
+ const tLast = typeof record.tLast === "number" ? record.tLast : 0;
173
+ if (sessionEpochMs === null) sessionEpochMs = receivedAtMs - tLast;
174
+ else if (tLast < lastSeenRelativeMs) {
175
+ sessionEpochMs = receivedAtMs - tLast;
176
+ emitWasmDiagnostic({
177
+ level: "info",
178
+ subsystem: "sink",
179
+ category: "other",
180
+ message: "re-anchored"
181
+ });
182
+ }
183
+ lastSeenRelativeMs = tLast;
184
+ if (!Array.isArray(record.entries)) return;
185
+ for (const raw of record.entries) {
186
+ if (raw === null || typeof raw !== "object") continue;
187
+ const entry = raw;
188
+ const message = typeof entry.msg === "string" ? entry.msg : "";
189
+ if (message === "") continue;
190
+ emitKitEntry(toLevel(entry.l), typeof entry.c === "string" ? entry.c : "", typeof entry.sub === "string" ? entry.sub : "", message, typeof entry.n === "number" && entry.n > 1 ? entry.n : 1, absoluteTimestampMs(typeof entry.t === "number" ? entry.t : NaN, receivedAtMs));
191
+ }
192
+ }
193
+ /** The value handed to the kit's `setDiagnosticsSink` — never throws. */
194
+ function receiveBatch(batch) {
195
+ try {
196
+ processBatch(batch, getTimestamp());
197
+ } catch {}
198
+ }
199
+ function parseAppLogsText(text, receivedAtMs) {
200
+ if (text === "") return;
201
+ const lines = text.split("\n");
202
+ const dropped = lines[0]?.match(APP_LOGS_DROPPED_RE);
203
+ if (dropped) lines.shift();
204
+ const candidates = lines.filter((line) => line !== "");
205
+ const parsed = [];
206
+ for (const line of candidates) {
207
+ const match = line.match(APP_LOGS_LINE_RE);
208
+ if (!match) continue;
209
+ const dedup = match[4].match(DEDUP_SUFFIX_RE);
210
+ parsed.push({
211
+ elapsedMs: Number(match[1]),
212
+ level: toLevel(match[2]),
213
+ tag: match[3],
214
+ message: dedup ? match[4].slice(0, -dedup[0].length) : match[4],
215
+ count: dedup ? Number(dedup[1]) : 1
216
+ });
217
+ }
218
+ const maxElapsedMs = parsed.reduce((max, line) => Math.max(max, line.elapsedMs), 0);
219
+ if (maxElapsedMs < fallbackWatermarkMs) fallbackWatermarkMs = -1;
220
+ const fresh = parsed.filter((line) => line.elapsedMs > fallbackWatermarkMs);
221
+ if (dropped && fresh.length > 0) emitKitEntry("warning", "diag", "logger", "dropped", Number(dropped[1]), receivedAtMs);
222
+ if (candidates.length > 0 && parsed.length / candidates.length < FALLBACK_MIN_PARSE_RATIO) {
223
+ if (fallbackDegradedNoted) return;
224
+ fallbackDegradedNoted = true;
225
+ emitWasmDiagnostic({
226
+ level: "warning",
227
+ subsystem: "sink",
228
+ category: "other",
229
+ message: `fallback drain unparsed lines=${candidates.length} parsed=${parsed.length}`
230
+ });
231
+ const lastError = candidates.filter((line) => /^\+\d+ E /.test(line)).pop();
232
+ if (lastError !== void 0) emitWasmDiagnostic({
233
+ level: "error",
234
+ subsystem: "sink",
235
+ category: "other",
236
+ message: `last error: ${lastError.slice(0, LAST_ERROR_CLAMP_CHARS)}`
237
+ });
238
+ return;
239
+ }
240
+ const drainT0 = receivedAtMs - maxElapsedMs;
241
+ for (const line of fresh) {
242
+ const dotIndex = line.tag.indexOf(".");
243
+ emitKitEntry(line.level, dotIndex === -1 ? line.tag : line.tag.slice(0, dotIndex), dotIndex === -1 ? "" : line.tag.slice(dotIndex + 1), line.message, line.count, drainT0 + line.elapsedMs);
244
+ }
245
+ fallbackWatermarkMs = Math.max(fallbackWatermarkMs, maxElapsedMs);
246
+ }
247
+ function emitModeLine() {
248
+ emitWasmDiagnostic({
249
+ level: "info",
250
+ subsystem: "sink",
251
+ category: "other",
252
+ message: `diagnostics mode=${mode ?? "none"} pinnedVersion=${DEFAULT_WASM_VERSION}`
253
+ });
254
+ }
255
+ /**
256
+ * Feature-detects the binary's diagnostics surface and, in sink mode,
257
+ * registers the push callback. Called from `WasmRuntime.initialize()` right
258
+ * after the UtilityApi exists, so even startup errors are pushed.
259
+ * Re-registering is idempotent on the kit side (a process-wide bridge).
260
+ */
261
+ function installWasmDiagnosticsSink(utilityApi) {
262
+ boundApi = utilityApi;
263
+ if (typeof utilityApi.setDiagnosticsSink === "function") {
264
+ mode = "sink";
265
+ try {
266
+ utilityApi.setDiagnosticsSink(receiveBatch);
267
+ } catch {}
268
+ } else if (typeof utilityApi.getAppLogs === "function") mode = "fallback";
269
+ else mode = "none";
270
+ emitModeLine();
271
+ return mode;
272
+ }
273
+ /**
274
+ * Pulls whatever the kit has not delivered yet into the record. Invoked
275
+ * synchronously by TrueSight before it builds any record — the terminal and
276
+ * every interrupted snapshot — so it runs many times per session and stays
277
+ * idempotent: a drain with nothing new emits nothing. The runtime outlives
278
+ * `reset()`, so it keeps running for every later session on the page.
279
+ *
280
+ * Delivery is at most once. The kit marks entries sent as it hands them
281
+ * over, so nothing is ever duplicated, but a batch the kit pushes while no
282
+ * session collects (between `reset()` and the next `setup()`) is lost, and
283
+ * kit lines logged after a session finalized ride the next session's record.
284
+ */
285
+ function drainWasmDiagnostics() {
286
+ if (boundApi === null) return;
287
+ try {
288
+ if (mode === "sink" && typeof boundApi.drainDiagnostics === "function") processBatch(boundApi.drainDiagnostics(), getTimestamp());
289
+ else if (mode === "fallback" && typeof boundApi.getAppLogs === "function") parseAppLogsText(boundApi.getAppLogs(), getTimestamp());
290
+ } catch {}
291
+ }
292
+ /**
293
+ * Starts a new SDK session's view of an already-running runtime: per-session
294
+ * budgets re-arm, and the mode line is repeated so each record states it.
295
+ * Called from `setup()`; a no-op for the mode line before the first install.
296
+ */
297
+ function rearmWasmDiagnostics() {
298
+ rearmWasmCallDiagnostics();
299
+ unsupportedVersionNoted = false;
300
+ batchParseFailureNoted = false;
301
+ fallbackDegradedNoted = false;
302
+ if (mode !== null) emitModeLine();
303
+ }
304
+ /**
305
+ * Runtime teardown (`WasmRuntime.freeResources()`). The kit's sink stays
306
+ * registered in its process-wide bridge; the next install re-registers it.
307
+ */
308
+ function resetWasmDiagnosticsSink() {
309
+ mode = null;
310
+ boundApi = null;
311
+ sessionEpochMs = null;
312
+ lastSeenRelativeMs = 0;
313
+ fallbackWatermarkMs = -1;
314
+ unsupportedVersionNoted = false;
315
+ batchParseFailureNoted = false;
316
+ fallbackDegradedNoted = false;
317
+ }
318
+ /** The detected mode, or `null` before the runtime installed the receiver. */
319
+ function getWasmDiagnosticsMode() {
320
+ return mode;
321
+ }
322
+ //#endregion
48
323
  //#region ../infra/src/wasm/CameraCycleOwnershipDomain.ts
49
324
  const CAMERA_CYCLE_OWNERSHIP_DOMAIN = Symbol("cameraCycleOwnershipDomain");
50
325
  var CameraCycleOwnershipDomain = class {
@@ -120,6 +395,9 @@ function deleteWasmHandle(firstFailure, handle) {
120
395
  function releaseCameraCycleResources(stream, cameraCycleApi) {
121
396
  return attemptCleanup(stopStreamTracks(stream), () => cameraCycleApi?.rcc());
122
397
  }
398
+ function isWasmModelEntry(source) {
399
+ return typeof source === "object" && !(source instanceof ArrayBuffer) && !(source instanceof Uint8Array) && "file" in source;
400
+ }
123
401
  var WasmRuntime = class WasmRuntime {
124
402
  constructor(loadModule = loadWasmModule) {
125
403
  this.loadModule = loadModule;
@@ -153,6 +431,8 @@ var WasmRuntime = class WasmRuntime {
153
431
  this.usedSimd_ = simdUsed;
154
432
  this.workflowApiUtilities = new this.wasmModule.WorkflowApiUtilities();
155
433
  this.utilityApi = new this.wasmModule.UtilityApi();
434
+ this.utilityApi.setProductionMode(module.showLogs !== true);
435
+ installWasmDiagnosticsSink(this.utilityApi);
156
436
  this.idCaptureWasmApi = new this.wasmModule.IdCaptureApi();
157
437
  this.faceProcessingWasmApi = new this.wasmModule.FaceProcessingApi();
158
438
  this.cameraCycleApi = new this.wasmModule.CameraCycleApi();
@@ -237,6 +517,8 @@ var WasmRuntime = class WasmRuntime {
237
517
  this.pipelines_ = null;
238
518
  this.isInitialized_ = false;
239
519
  if (typeof window !== "undefined") window.wasmArrayBuffer = null;
520
+ resetWasmCallDiagnostics();
521
+ resetWasmDiagnosticsSink();
240
522
  let firstFailure = releaseCameraCycleResources(stream, cameraCycleApi);
241
523
  firstFailure = deleteWasmHandle(firstFailure, modelsBuffers);
242
524
  firstFailure = deleteWasmHandle(firstFailure, workflowApiUtilities);
@@ -301,10 +583,14 @@ var WasmRuntime = class WasmRuntime {
301
583
  const sizes = new (this.requireWasmModule(message)).VectorInt();
302
584
  sizeVectors.push(sizes);
303
585
  for (const path of modelsPaths) {
304
- const resolvedSource = this.resolveModelSource(path);
586
+ const file = isWasmModelEntry(path) ? path.file : void 0;
587
+ const resolvedSource = this.resolveModelSource(isWasmModelEntry(path) ? path.source : path);
305
588
  let model = this.loadedModels.get(resolvedSource);
306
589
  if (!model) {
307
- model = await resolveWasmSource(resolvedSource, "model");
590
+ model = await resolveWasmSource(resolvedSource, {
591
+ kind: "model",
592
+ file
593
+ });
308
594
  this.loadedModels.set(resolvedSource, model);
309
595
  }
310
596
  sizes.push_back(model.byteLength);
@@ -346,7 +632,9 @@ var WasmRuntime = class WasmRuntime {
346
632
  this.requireWorkflowApiUtilities(message).initializeWorkflows();
347
633
  }
348
634
  getPipelineState() {
349
- return this.requireWorkflowApiUtilities("Unable to get pipeline state, cpp API hasn't been initialized").getWorkflowState();
635
+ const state = this.requireWorkflowApiUtilities("Unable to get pipeline state, cpp API hasn't been initialized").getWorkflowState();
636
+ notePipelineStatePulled();
637
+ return state;
350
638
  }
351
639
  getCurrentPipeline() {
352
640
  const workflowApiUtilities = this.requireWorkflowApiUtilities("Unable to get current pipeline, cpp API hasn't been initialized");
@@ -477,6 +765,7 @@ let wasmError = null;
477
765
  let loadedPipelines = [];
478
766
  let lastConfig = null;
479
767
  let lastModelVariant = null;
768
+ let warmupFacts = null;
480
769
  let pipelinesInFlight = [];
481
770
  function mapPipelineToWasmType(pipeline) {
482
771
  switch (pipeline) {
@@ -526,16 +815,22 @@ function resolveConfiguredModelSource(config, modelFile, pipeline, modelsBasePat
526
815
  if (current === void 0) {
527
816
  if (config.selfHosted) throw missingWasmModelError(modelFile, pipeline);
528
817
  if (!modelsBasePath) throw new Error("[Incode SDK] modelsBasePath is required when wasmPath is a byte source.");
529
- return buildModelVariantSources(modelsBasePath, modelFile);
818
+ return {
819
+ file: modelFile,
820
+ source: buildModelVariantSources(modelsBasePath, modelFile)
821
+ };
530
822
  }
531
823
  const legacy = config.legacyModelUrls?.[modelFile];
532
- return legacy === void 0 ? current : {
533
- current,
534
- legacy
824
+ return {
825
+ file: modelFile,
826
+ source: legacy === void 0 ? current : {
827
+ current,
828
+ legacy
829
+ }
535
830
  };
536
831
  }
537
832
  /**
538
- * Warns once per warmup that an optional model listed in
833
+ * When logging is enabled, warns once per warmup that an optional model listed in
539
834
  * {@link WASM_PIPELINE_OPTIONAL_MODEL_NAMES} was not supplied, so the Core
540
835
  * profile that needs it is skipped instead of failing the whole warmup.
541
836
  */
@@ -565,13 +860,31 @@ function buildPipelinesMap(pipelines, config) {
565
860
  WASM_MODEL_FILES.idFiqa,
566
861
  WASM_MODEL_FILES.idFaceDetector
567
862
  ]));
568
- else warnMissingOptionalModel(pipeline, missingOptional);
863
+ else if (config.showLogs) warnMissingOptionalModel(pipeline, missingOptional);
569
864
  }
570
865
  }
571
866
  }
572
867
  return pipelinesMap;
573
868
  }
574
869
  /**
870
+ * Row 31 taps (ENG-48677 WS2): every warmup origin — `setup()` pre-warm and
871
+ * the lazy UI init paths — funnels through `warmupWasm`, so start / complete /
872
+ * fail lines here also surface the UI-side `.catch(console.error)` swallows.
873
+ * The pinned version rides in the message: the record has no wire field for
874
+ * it outside `webProfile.wasm`.
875
+ */
876
+ function describeWarmupTarget(pipelines, config) {
877
+ return `pipelines=[${pipelines.join(",")}] basePathPinned=${!isDefaultCdnWasmConfig(config)} pinnedVersion=${DEFAULT_WASM_VERSION}`;
878
+ }
879
+ function emitWarmupLine(level, message) {
880
+ emitWasmDiagnostic({
881
+ level,
882
+ subsystem: "warmup",
883
+ category: "other",
884
+ message
885
+ });
886
+ }
887
+ /**
575
888
  * Preloads WASM binary and ML models at app startup.
576
889
  * Runs asynchronously - app can continue while WASM loads in background.
577
890
  *
@@ -616,6 +929,9 @@ async function warmupWasm(config) {
616
929
  state = "loading";
617
930
  pipelinesInFlight = combinedPipelines;
618
931
  wasmError = null;
932
+ const addTarget = describeWarmupTarget(missingPipelines, lastConfig);
933
+ const addStartedAtMs = getTimestamp();
934
+ emitWarmupLine("debug", `warmup started ${addTarget} mode=add`);
619
935
  loadingPromise = (async () => {
620
936
  try {
621
937
  const pipelinesMap = buildPipelinesMap(missingPipelines, lastConfig);
@@ -628,12 +944,16 @@ async function warmupWasm(config) {
628
944
  pipelines: combinedPipelines
629
945
  };
630
946
  loadingPromise = null;
947
+ emitWarmupLine("debug", `warmup completed ${addTarget} mode=add durationMs=${getTimestamp() - addStartedAtMs}`);
631
948
  } catch (error) {
632
949
  state = "ready";
633
950
  wasmError = error instanceof Error ? error : new Error(String(error));
634
951
  loadingPromise = null;
635
952
  pipelinesInFlight = [];
953
+ emitWarmupLine("error", `warmup failed ${addTarget} mode=add durationMs=${getTimestamp() - addStartedAtMs} error=${String(error)}`);
636
954
  throw wasmError;
955
+ } finally {
956
+ reportWasmIntegritySummary();
637
957
  }
638
958
  })();
639
959
  return loadingPromise;
@@ -641,6 +961,9 @@ async function warmupWasm(config) {
641
961
  state = "loading";
642
962
  pipelinesInFlight = [...pipelines];
643
963
  wasmError = null;
964
+ const target = describeWarmupTarget(pipelines, config);
965
+ const startedAtMs = getTimestamp();
966
+ emitWarmupLine("debug", `warmup started ${target}`);
644
967
  loadingPromise = (async () => {
645
968
  try {
646
969
  const pipelinesMap = buildPipelinesMap(pipelines, config);
@@ -659,17 +982,31 @@ async function warmupWasm(config) {
659
982
  pipelines
660
983
  };
661
984
  loadingPromise = null;
985
+ const durationMs = getTimestamp() - startedAtMs;
986
+ warmupFacts = {
987
+ basePathPinned: !isDefaultCdnWasmConfig(config),
988
+ simd: simdUsed,
989
+ durationMs
990
+ };
991
+ emitWarmupLine("debug", `warmup completed ${target} simd=${simdUsed} durationMs=${durationMs}`);
662
992
  } catch (error) {
663
993
  state = "error";
664
994
  lastModelVariant = null;
665
995
  wasmError = error instanceof Error ? error : new Error(String(error));
666
996
  loadingPromise = null;
667
997
  pipelinesInFlight = [];
998
+ emitWarmupLine("severe", `warmup failed ${target} durationMs=${getTimestamp() - startedAtMs} error=${String(error)}`);
668
999
  throw wasmError;
1000
+ } finally {
1001
+ reportWasmIntegritySummary();
669
1002
  }
670
1003
  })();
671
1004
  return loadingPromise;
672
1005
  }
1006
+ /** The last successful fresh warmup, or `null` before one completed. */
1007
+ function getWarmupFacts() {
1008
+ return warmupFacts;
1009
+ }
673
1010
  /**
674
1011
  * Returns the current warmup status.
675
1012
  * Useful for showing loading indicators.
@@ -716,4 +1053,4 @@ function setWasmOnDeviceMode(enabled) {
716
1053
  wasmRuntime.setOnDeviceMode(enabled);
717
1054
  }
718
1055
  //#endregion
719
- export { waitForWasm as a, CAMERA_CYCLE_OWNERSHIP_DOMAIN as c, setWasmOnDeviceMode as i, getCameraCycleOwnershipDomain as l, getWasmStatus as n, warmupWasm as o, isWasmReady as r, wasmRuntime as s, getResolvedModelSource as t };
1056
+ export { setWasmOnDeviceMode as a, wasmRuntime as c, drainWasmDiagnostics as d, getWasmDiagnosticsMode as f, isWasmReady as i, CAMERA_CYCLE_OWNERSHIP_DOMAIN as l, getWarmupFacts as n, waitForWasm as o, rearmWasmDiagnostics as p, getWasmStatus as r, warmupWasm as s, getResolvedModelSource as t, getCameraCycleOwnershipDomain as u };
@@ -30,6 +30,9 @@ declare global {
30
30
  type WasmModule = Record<string, unknown>;
31
31
  type WasmGlueFactory = (options?: Readonly<{
32
32
  wasmBinary?: Uint8Array;
33
+ print?: (text: string) => void;
34
+ printErr?: (text: string) => void;
35
+ onAbort?: (what: unknown) => void;
33
36
  }>) => Promise<WasmModule>;
34
37
  /**
35
38
  * Binary and glue configuration for one WASM module instance.
@@ -38,6 +41,11 @@ type WasmGlueFactory = (options?: Readonly<{
38
41
  * use the same memoized module.
39
42
  */
40
43
  type WasmModuleConfig = {
44
+ /**
45
+ * Enables WASM console output, including native errors. Default: false.
46
+ * Set before the first load; shared instances retain their output sinks.
47
+ */
48
+ showLogs?: boolean;
41
49
  /** URL or bytes for the standard WASM binary. */
42
50
  wasmPath: WasmSource;
43
51
  /**
package/dist/wasm.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as WASM_MODEL_FILES, c as WasmPipeline, l as WasmSource, o as WasmGlueLoader, r as warmupWasm, s as WasmModelName, t as WarmupConfig } from "./warmup-Cis2p6O0.js";
2
- import { c as setWasmConfig, i as initializeWasmUtil, n as WasmConfig, r as ensureWasmPipelines, s as resolveWasmConfigForPipelines, u as upgradeToWasmHttpClient } from "./setup-Cyko6cAn.js";
1
+ import { a as WASM_MODEL_FILES, c as WasmPipeline, l as WasmSource, o as WasmGlueLoader, r as warmupWasm, s as WasmModelName, t as WarmupConfig } from "./warmup-BO57syF6.js";
2
+ import { c as setWasmConfig, i as initializeWasmUtil, n as WasmConfig, r as ensureWasmPipelines, s as resolveWasmConfigForPipelines, u as upgradeToWasmHttpClient } from "./setup-YPKTUCY5.js";
3
3
  //#region ../infra/src/wasm/wasmDefaults.d.ts
4
4
  /** The WASM version bundled and tested with this SDK release. */
5
5
  declare const DEFAULT_WASM_VERSION = "v2.14.50-post1";
package/dist/wasm.esm.js CHANGED
@@ -1,7 +1,6 @@
1
- import { g as WASM_PIPELINE_MODEL_NAMES, m as WASM_PIPELINE_LAZY_MODEL_NAMES, p as WASM_MODEL_FILES } from "./wasmWebClient-B7baE-Wf.esm.js";
2
- import { C as DEFAULT_WASM_VERSION, D as resolveWasmConfig, T as buildWasmConfigFromBasePath, w as buildDefaultWasmConfig } from "./trueSightService-M5VpCo96.esm.js";
3
- import { o as warmupWasm } from "./warmup-ChDwHSel.esm.js";
4
- import { a as resolveWasmConfigForPipelines, c as upgradeToWasmHttpClient, n as initializeWasmUtil, o as setWasmConfig, t as ensureWasmPipelines } from "./setup-BuPbxpwF.esm.js";
1
+ import { E as WASM_PIPELINE_LAZY_MODEL_NAMES, O as WASM_PIPELINE_MODEL_NAMES, T as WASM_MODEL_FILES, b as buildDefaultWasmConfig, w as resolveWasmConfig, x as buildWasmConfigFromBasePath, y as DEFAULT_WASM_VERSION } from "./wasmWebClient-BjZw_7OB.esm.js";
2
+ import { s as warmupWasm } from "./warmup-BElYWRh7.esm.js";
3
+ import { a as resolveWasmConfigForPipelines, c as upgradeToWasmHttpClient, n as initializeWasmUtil, o as setWasmConfig, t as ensureWasmPipelines } from "./setup-B7ehQ-lf.esm.js";
5
4
  //#region src/defineWasm.ts
6
5
  function requiredModels(pipelines) {
7
6
  const models = /* @__PURE__ */ new Set();
@@ -1,4 +1,4 @@
1
- import { a as utilityWasmApi } from "./safeStorage-BdU9_m2E.esm.js";
1
+ import { i as utilityWasmApi } from "./WasmUtilProvider-DtJuBdt-.esm.js";
2
2
  //#region ../infra/src/wasm/wasmDsFlagSync.ts
3
3
  /**
4
4
  * Sets the Deepsight (ds) flag that the WASM utility API receives on every