@incodetech/core 2.1.0-rc.0 → 2.1.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/{BrowserStorageProvider-BpJM-gIl.esm.js → BrowserStorageProvider-D5xc7Lqo.esm.js} +18 -1
  2. package/dist/{Manager-BHn8wH8K.d.ts → Manager-B2OEDYqf.d.ts} +4 -1
  3. package/dist/{OpenViduRecordingProvider-O4GjBseO.esm.js → OpenViduRecordingProvider-DF7A4ZNJ.esm.js} +1 -1
  4. package/dist/{StreamCanvasCapture-yyl20qd9.d.ts → StreamCanvasCapture-Ctgyx-oD.d.ts} +1 -1
  5. package/dist/{StreamCanvasCapture-ImiDQdVA.esm.js → StreamCanvasCapture-Dr5n_iK1.esm.js} +1 -1
  6. package/dist/{WasmUtilProvider-CiEN7Gjn.esm.js → WasmUtilProvider-CIu373BZ.esm.js} +29 -1
  7. package/dist/{addressSearch-DvmWXKZg.esm.js → addressSearch-BH96a3fq.esm.js} +4 -4
  8. package/dist/{ae-signature-BFZta3TZ.esm.js → ae-signature-CDEN8y-w.esm.js} +1 -1
  9. package/dist/ae-signature.d.ts +3 -3
  10. package/dist/ae-signature.esm.js +9 -7
  11. package/dist/antifraud.d.ts +3 -3
  12. package/dist/antifraud.esm.js +6 -6
  13. package/dist/{antifraudManager-CznnhyvD.d.ts → antifraudManager-B7WQTIdu.d.ts} +2 -2
  14. package/dist/antifraudManager-DZifA5zX.esm.js +83 -0
  15. package/dist/{antifraudStateMachine-Ccrb-Jxc.esm.js → antifraudStateMachine-DlKrK2hL.esm.js} +3 -3
  16. package/dist/authentication.d.ts +12 -13
  17. package/dist/authentication.esm.js +27 -27
  18. package/dist/{authenticationManager-ZNotsWnC.esm.js → authenticationManager-BM4LzyV7.esm.js} +17 -8
  19. package/dist/{authenticationManager-CIVY80H9.d.ts → authenticationManager-Dve7mGLe.d.ts} +13 -3
  20. package/dist/{authenticationStateMachine-DksVbF_H.esm.js → authenticationStateMachine-Chx3ySdT.esm.js} +20 -23
  21. package/dist/{backCameraStream-D7Wo4Nbx.esm.js → backCameraStream-iftkf3rd.esm.js} +3 -3
  22. package/dist/browser-DlFgHpoC-7tbRR1aR.esm.js +1425 -0
  23. package/dist/{browserSimulation-B1dWiXp7.esm.js → browserSimulation-CGjpdNA1.esm.js} +2 -2
  24. package/dist/camera.d.ts +1 -1
  25. package/dist/camera.esm.js +4 -4
  26. package/dist/certificate-issuance.d.ts +311 -0
  27. package/dist/certificate-issuance.esm.js +73 -0
  28. package/dist/certificateIssuanceStateMachine-CLNXtXaC.esm.js +127 -0
  29. package/dist/consent.d.ts +3 -3
  30. package/dist/consent.esm.js +6 -6
  31. package/dist/{consentManager-BLd51QiW.d.ts → consentManager-BqUGU_YD.d.ts} +52 -52
  32. package/dist/{consentManager-BYo9Nu1r.esm.js → consentManager-psDCeJ0E.esm.js} +29 -5
  33. package/dist/{consentStateMachine-BG3yL8aC.esm.js → consentStateMachine-DRsFFSHE.esm.js} +3 -3
  34. package/dist/cpf-ocr.d.ts +3 -3
  35. package/dist/cpf-ocr.esm.js +6 -6
  36. package/dist/{cpfOcrManager-BnieFXuG.d.ts → cpfOcrManager-B2u9hMzd.d.ts} +19 -19
  37. package/dist/{cpfOcrManager-sSKegxox.esm.js → cpfOcrManager-BxcgxvgO.esm.js} +5 -5
  38. package/dist/cross-document-data-match.d.ts +1 -1
  39. package/dist/cross-document-data-match.esm.js +5 -5
  40. package/dist/curp-validation.d.ts +7 -7
  41. package/dist/curp-validation.esm.js +6 -6
  42. package/dist/{curpValidationManager-CFem6zP9.esm.js → curpValidationManager-BgLDw0Ub.esm.js} +51 -5
  43. package/dist/{curpValidationManager-RttixpIc.d.ts → curpValidationManager-Bt6CVD8b.d.ts} +4 -3
  44. package/dist/{curpValidationStateMachine-B7V_qp66.esm.js → curpValidationStateMachine-BK_wJ48C.esm.js} +3 -3
  45. package/dist/custom-fields.d.ts +3 -2
  46. package/dist/custom-fields.esm.js +48 -6
  47. package/dist/custom-watchlist.d.ts +1 -1
  48. package/dist/custom-watchlist.esm.js +26 -6
  49. package/dist/{customWatchlistStateMachine-HmFybXLX.esm.js → customWatchlistStateMachine-Bi4P59HM.esm.js} +3 -3
  50. package/dist/{deepsightLoader-65k1Appi.esm.js → deepsightLoader-BMmvk0X6.esm.js} +13 -13
  51. package/dist/{deepsightService-B7ShOkWL.d.ts → deepsightService-ByNKY5Jv.d.ts} +18 -2
  52. package/dist/{deepsightService-CrHmvx8X.esm.js → deepsightService-CEZrdiW0.esm.js} +7 -7
  53. package/dist/device.esm.js +4 -4
  54. package/dist/document-capture.d.ts +228 -228
  55. package/dist/document-capture.esm.js +77 -14
  56. package/dist/document-upload.d.ts +50 -50
  57. package/dist/document-upload.esm.js +9 -9
  58. package/dist/{documentCaptureStateMachine-WYV1r9le.esm.js → documentCaptureStateMachine-MpwpJO7t.esm.js} +7 -7
  59. package/dist/dynamic-forms.d.ts +2 -2
  60. package/dist/dynamic-forms.esm.js +35 -285
  61. package/dist/dynamicFormsStateMachine-Do84A4uU.esm.js +284 -0
  62. package/dist/ekyb.d.ts +7 -6
  63. package/dist/ekyb.esm.js +59 -17
  64. package/dist/{ekybStateMachine-aYixw2sL.esm.js → ekybStateMachine-nsuPOw3f.esm.js} +5 -5
  65. package/dist/ekyc.d.ts +4 -3
  66. package/dist/ekyc.esm.js +54 -9
  67. package/dist/{ekycStateMachine-CXbpaJJn.esm.js → ekycStateMachine-DcynX0rj.esm.js} +5 -5
  68. package/dist/electronic-signature.d.ts +3 -3
  69. package/dist/electronic-signature.esm.js +8 -6
  70. package/dist/{electronicSignatureManager-BaECdJ1u.esm.js → electronicSignatureManager-B63aAuI5.esm.js} +103 -23
  71. package/dist/email.d.ts +4 -4
  72. package/dist/email.esm.js +8 -8
  73. package/dist/{emailManager-lAzDoQOs.d.ts → emailManager-C6D2u4mQ.d.ts} +4 -3
  74. package/dist/{emailManager--D5G3ChB.esm.js → emailManager-DxHjAe5u.esm.js} +46 -6
  75. package/dist/{emailStateMachine-CxTOMAjC.esm.js → emailStateMachine-758f34gg.esm.js} +5 -5
  76. package/dist/{endpoints-BeTK0Mlt.esm.js → endpoints-BM2_j_IE.esm.js} +2 -0
  77. package/dist/{events-Dvvriq9l.esm.js → events-DN-u67gb.esm.js} +110 -43
  78. package/dist/events.d.ts +21 -16
  79. package/dist/events.esm.js +2 -2
  80. package/dist/extensibility.d.ts +34 -26
  81. package/dist/extensibility.esm.js +58 -56
  82. package/dist/externalFetch-crimxkN9.esm.js +22 -0
  83. package/dist/face-match.d.ts +1 -12
  84. package/dist/face-match.esm.js +5 -5
  85. package/dist/{faceCaptureManagerFactory-kqbUqtrr.esm.js → faceCaptureManagerFactory-BNXZchWX.esm.js} +94 -13
  86. package/dist/{faceCaptureManagerFactory-C_hRHx8a.d.ts → faceCaptureManagerFactory-CL-7T_vH.d.ts} +33 -16
  87. package/dist/{faceCaptureSetup-CtvHWd3x.esm.js → faceCaptureSetup-Dqb09D24.esm.js} +7 -7
  88. package/dist/{faceMatchStateMachine-DdGXUBnx.esm.js → faceMatchStateMachine-FikRaUZH.esm.js} +9 -7
  89. package/dist/field-comparison.d.ts +3 -3
  90. package/dist/field-comparison.esm.js +5 -5
  91. package/dist/{fieldComparisonManager-Bu5TaSr3.d.ts → fieldComparisonManager-BXc6-DJv.d.ts} +2 -2
  92. package/dist/{fieldComparisonManager-COGI2ARD.esm.js → fieldComparisonManager-Dic0DVgl.esm.js} +4 -4
  93. package/dist/fiscal-qr.d.ts +3 -3
  94. package/dist/fiscal-qr.esm.js +12 -12
  95. package/dist/flow-events.d.ts +6 -6
  96. package/dist/flow.d.ts +25 -15
  97. package/dist/flow.esm.js +43 -36
  98. package/dist/{flowCompletionService-BdR2cGgB.d.ts → flowCompletionService-CdGDKv0z.d.ts} +9 -1
  99. package/dist/flowCompletionService-D_CsiDZM.esm.js +42 -0
  100. package/dist/{flowServices-BTuHLHVr.esm.js → flowServices-ar5DXv71.esm.js} +4 -4
  101. package/dist/geolocation.d.ts +3 -2
  102. package/dist/geolocation.esm.js +35 -7
  103. package/dist/{geolocationStateMachine-Dvh7X0wF.esm.js → geolocationStateMachine-BWjrMGS_.esm.js} +4 -4
  104. package/dist/{getDeviceClass-C8Do2qYu.esm.js → getDeviceClass-rXKlXywy.esm.js} +1 -1
  105. package/dist/government-validation.d.ts +3 -3
  106. package/dist/government-validation.esm.js +42 -8
  107. package/dist/{governmentValidationStateMachine-DcJ-BfsC.esm.js → governmentValidationStateMachine-BoF7U1of.esm.js} +5 -5
  108. package/dist/home.d.ts +15 -15
  109. package/dist/home.esm.js +4 -4
  110. package/dist/http.d.ts +1 -0
  111. package/dist/http.esm.js +2 -2
  112. package/dist/id-ocr.d.ts +57 -57
  113. package/dist/id-ocr.esm.js +6 -6
  114. package/dist/id-verification.d.ts +27 -27
  115. package/dist/id-verification.esm.js +5 -5
  116. package/dist/id.d.ts +19 -13
  117. package/dist/id.esm.js +75 -34
  118. package/dist/{idCaptureManager-DGVv5l1_.esm.js → idCaptureManager-Bm6Wm6Qv.esm.js} +91 -9
  119. package/dist/{idCaptureManager-D-QYESvF.d.ts → idCaptureManager-BvGUSN2e.d.ts} +26 -15
  120. package/dist/{idCaptureStateMachine-DHi7HydI.esm.js → idCaptureStateMachine-D1YhOj6n.esm.js} +155 -82
  121. package/dist/{idOcrStateMachine-CDQ5d_VM.esm.js → idOcrStateMachine-YMCDGplq.esm.js} +5 -5
  122. package/dist/{idVerificationStateMachine-kRxwImzO.esm.js → idVerificationStateMachine-Bo1IYuZH.esm.js} +3 -3
  123. package/dist/identity-reuse.d.ts +3 -3
  124. package/dist/identity-reuse.esm.js +6 -6
  125. package/dist/{identityReuseManager-C6n_97dw.esm.js → identityReuseManager-D0knIrOy.esm.js} +3 -3
  126. package/dist/{identityReuseManager-DwLtVzUn.d.ts → identityReuseManager-DcWSvC-A.d.ts} +36 -36
  127. package/dist/{identityReuseStateMachine-BfE5YiEr.esm.js → identityReuseStateMachine-CSQfZOqD.esm.js} +3 -3
  128. package/dist/index-52_qi4bd.d.ts +93 -0
  129. package/dist/{index-B5hPA0Bg.d.ts → index-BgxYUYuD.d.ts} +2 -2
  130. package/dist/{index-B9NysVDB.d.ts → index-DV134v62.d.ts} +169 -169
  131. package/dist/index.d.ts +3 -2
  132. package/dist/index.esm.js +13 -12
  133. package/dist/{invokeOnCaptureCallback-ygByVdnn.esm.js → invokeOnCaptureCallback-Dzemudhk.esm.js} +1 -1
  134. package/dist/{lib-BY67lgbq.esm.js → lib-7ZQ9BdKH.esm.js} +1 -1
  135. package/dist/mandatory-consent.d.ts +7 -7
  136. package/dist/mandatory-consent.esm.js +6 -6
  137. package/dist/{mandatoryConsentManager-H6D18cZB.esm.js → mandatoryConsentManager-Lon46nPQ.esm.js} +3 -3
  138. package/dist/{mandatoryConsentManager-KfIlURRY.d.ts → mandatoryConsentManager-Tzl5Qd35.d.ts} +53 -53
  139. package/dist/{mandatoryConsentStateMachine-DtQNW1ji.esm.js → mandatoryConsentStateMachine-D_dZ7IF6.esm.js} +3 -3
  140. package/dist/openviduLazy-B_s6jnEk.esm.js +3 -0
  141. package/dist/{openviduLazy-Dh14JNJc.esm.js → openviduLazy-oAXXI9w_.esm.js} +2 -2
  142. package/dist/{permissionGuards-C1ispV96.esm.js → permissionGuards-D-Z-lgNj.esm.js} +1 -1
  143. package/dist/{permissionServices-CG3bMSfG.esm.js → permissionServices-CPDboRoE.esm.js} +3 -3
  144. package/dist/phone.d.ts +4 -4
  145. package/dist/phone.esm.js +8 -8
  146. package/dist/{phoneManager-BmF-0Ez4.esm.js → phoneManager-Blt4Oc2P.esm.js} +47 -6
  147. package/dist/{phoneManager-fPmIBYQK.d.ts → phoneManager-TSq1Ief6.d.ts} +4 -3
  148. package/dist/{phoneStateMachine-BiV0yoEx.esm.js → phoneStateMachine-W3c6Z8sj.esm.js} +5 -5
  149. package/dist/{qe-signature-CUYPcHVo.esm.js → qe-signature-CQLK6LKE.esm.js} +1 -1
  150. package/dist/qe-signature.d.ts +3 -3
  151. package/dist/qe-signature.esm.js +9 -7
  152. package/dist/{recordingService-Bn9EdCmz.esm.js → recordingService-CxMJP4tQ.esm.js} +15 -15
  153. package/dist/redirect-to-mobile.d.ts +3 -3
  154. package/dist/redirect-to-mobile.esm.js +8 -7
  155. package/dist/{redirectToMobileManager-Dy3t7o0C.esm.js → redirectToMobileManager-DCvpKdkD.esm.js} +4 -4
  156. package/dist/{redirectToMobileManager-BNe3IzC_.d.ts → redirectToMobileManager-yOHAmwg-.d.ts} +2 -2
  157. package/dist/{redirectToMobileStateMachine-DyAdRxfP.esm.js → redirectToMobileStateMachine-DC9z4Vfu.esm.js} +11 -21
  158. package/dist/{runChildModule-CuoHZ1cx.esm.js → runChildModule-C9G0wfVC.esm.js} +14 -24
  159. package/dist/selfie.d.ts +20 -14
  160. package/dist/selfie.esm.js +63 -31
  161. package/dist/{selfieManager-BjCoKRy0.esm.js → selfieManager-BRL6c_Oc.esm.js} +17 -8
  162. package/dist/{selfieManager-dUbKRzOh.d.ts → selfieManager-imY2dAcH.d.ts} +13 -3
  163. package/dist/{selfieStateMachine-b4F2q9zw.esm.js → selfieStateMachine-D2Q0uwDK.esm.js} +4 -4
  164. package/dist/{session-DoVb-OcB.esm.js → session-Be_IA1e0.esm.js} +3 -3
  165. package/dist/session.d.ts +9 -8
  166. package/dist/session.esm.js +14 -12
  167. package/dist/{sessionInitializer-B8H5MsXM.esm.js → sessionInitializer-CaiGA8GP.esm.js} +13 -10
  168. package/dist/{setup-BbkprdVv.d.ts → setup-BJZAkajt.d.ts} +76 -1
  169. package/dist/{setup-BqEfrdja.esm.js → setup-C7tintPc.esm.js} +48 -9
  170. package/dist/signature.d.ts +3 -2
  171. package/dist/signature.esm.js +48 -6
  172. package/dist/{signatureStateMachine-C5qqYLRz.esm.js → signatureStateMachine-DAxXmMrk.esm.js} +21 -39
  173. package/dist/{stats-BMNUG1AU.esm.js → stats-DntyIiGr.esm.js} +2 -2
  174. package/dist/stats.esm.js +3 -3
  175. package/dist/tri-CtxWthxz.esm.js +389 -0
  176. package/dist/tri.d.ts +2 -0
  177. package/dist/tri.esm-CrWAulDi.esm.js +2589 -0
  178. package/dist/tri.esm.js +4 -0
  179. package/dist/trust-graph.d.ts +3 -3
  180. package/dist/trust-graph.esm.js +3 -3
  181. package/dist/{types-DsnEVMhr.esm.js → types-BdVOWGGW.esm.js} +2 -1
  182. package/dist/{types-NuT8ftBV.d.ts → types-DpTWgfKY.d.ts} +2 -1
  183. package/dist/{types-DOUhndhT.d.ts → types-Dv-9WPJX.d.ts} +2 -2
  184. package/dist/{types-Bj9hdFjU.d.ts → types-Z9wv19v2.d.ts} +1 -1
  185. package/dist/urlUtils-8RNHyW3x.esm.js +16 -0
  186. package/dist/wasm.d.ts +3 -2
  187. package/dist/wasm.esm.js +13 -12
  188. package/dist/watchlist-for-business.d.ts +1 -1
  189. package/dist/watchlist-for-business.esm.js +29 -7
  190. package/dist/watchlist.d.ts +1 -1
  191. package/dist/watchlist.esm.js +27 -6
  192. package/dist/{watchlistForBusinessStateMachine-DMl8j2Ov.esm.js → watchlistForBusinessStateMachine-DtefJb-D.esm.js} +3 -3
  193. package/dist/{watchlistStateMachine-DmQlqI6L.esm.js → watchlistStateMachine-B0aIS2_n.esm.js} +3 -3
  194. package/dist/workflow.d.ts +159 -105
  195. package/dist/workflow.esm.js +99 -106
  196. package/dist/{xstate.esm-C9wncMQa.esm.js → xstate.esm-Dkm1jy5u.esm.js} +13 -4
  197. package/package.json +11 -1
  198. package/dist/StateMachine-BC_nGvrc.d.ts +0 -2
  199. package/dist/antifraudManager-CkV4u-LE.esm.js +0 -55
  200. package/dist/flowCompletionService-DdGojV9K.esm.js +0 -20
  201. package/dist/openviduLazy-B8L--0oe.esm.js +0 -3
  202. /package/dist/{Actor-Y0_Fj-KL.d.ts → Actor-fIPLXfoi.d.ts} +0 -0
  203. /package/dist/{BrowserTimerProvider-DhNc_x02.esm.js → BrowserTimerProvider-BVgutW_b.esm.js} +0 -0
  204. /package/dist/{ITimerCapability-CB0I1Uf2.esm.js → ITimerCapability-BvH0pDwp.esm.js} +0 -0
  205. /package/dist/{IpifyProvider-D4LWD15E.esm.js → IpifyProvider-oZf7Ke1O.esm.js} +0 -0
  206. /package/dist/{MotionSensorProvider-Bx7Mpzt0.esm.js → MotionSensorProvider-C9fPAJdS.esm.js} +0 -0
  207. /package/dist/{api-CESGtpbH.esm.js → api-DUZwyz0o.esm.js} +0 -0
  208. /package/dist/{apiError-B-j-gyDx.esm.js → apiError-D-GTvFrH.esm.js} +0 -0
  209. /package/dist/{camera-SRBpPq2X.d.ts → camera-biGPWlmx.d.ts} +0 -0
  210. /package/dist/{camera-DJWm3V4g.esm.js → camera-x4LjGTjZ.esm.js} +0 -0
  211. /package/dist/{canvas-SKcRBxsk.esm.js → canvas-7uX2izHb.esm.js} +0 -0
  212. /package/dist/{chunk-CMUKZ2uL.esm.js → chunk-BK1xu56N.esm.js} +0 -0
  213. /package/dist/{cpf-BRzggV8G.esm.js → cpf-xBg-DFNn.esm.js} +0 -0
  214. /package/dist/{dateUtils-AksLQmgV.esm.js → dateUtils-8dCcuArE.esm.js} +0 -0
  215. /package/dist/{getBrowser-C8DP7oTB.esm.js → getBrowser-Dv8LZyHE.esm.js} +0 -0
  216. /package/dist/{getDeviceClass-C0olyNFS.esm.js → getDeviceClass-C0zrM97a.esm.js} +0 -0
  217. /package/dist/{http-Cai3IoLS.esm.js → http-CfVTgMfU.esm.js} +0 -0
  218. /package/dist/{otp-DF5A0sFx.d.ts → otp-BHJnjEEc.d.ts} +0 -0
  219. /package/dist/{otp-CGMdUzBC.esm.js → otp-D87RTwrx.esm.js} +0 -0
  220. /package/dist/{platform-SKvEfCBh.esm.js → platform-BfoqeM61.esm.js} +0 -0
  221. /package/dist/{types-DvGZI7BF.d.ts → types-DYZja-k9.d.ts} +0 -0
  222. /package/dist/{types-ya0LN_MX.d.ts → types-F0IXbaCB.d.ts} +0 -0
  223. /package/dist/{warmup-Dg8Lh-50.d.ts → warmup--6HA3yUR.d.ts} +0 -0
@@ -0,0 +1,389 @@
1
+ import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BVgutW_b.esm.js";
2
+
3
+ //#region ../infra/src/providers/browser/BrowserLazyImportProvider.ts
4
+ /**
5
+ * Per-module {@link LazyImport} handle.
6
+ *
7
+ * Encapsulates the caching, deduplication, and optional-timeout logic for a
8
+ * single lazily-imported module:
9
+ * - Caches the resolved module (via a dedicated `loaded` flag, so a module
10
+ * that legitimately resolves `undefined` is still cached) and returns it
11
+ * immediately on subsequent calls.
12
+ * - Deduplicates concurrent `load()` calls behind a single in-flight promise.
13
+ * - Optionally races the dynamic import against a configurable timeout (ms).
14
+ * - On timeout or import error: emits a `console.warn`, clears the in-flight
15
+ * promise so the next `load()` call retries, and resolves `undefined`.
16
+ *
17
+ * An attempt-generation token (`attempt`) guards against a stale import
18
+ * mutating state after it has been superseded: when a load times out (or the
19
+ * handle is `reset()`), the token is bumped so the still-pending import can no
20
+ * longer write to `cachedValue` / `loaded`.
21
+ */
22
+ var LazyImportHandle = class {
23
+ constructor(_loader, _options, _timer) {
24
+ this._loader = _loader;
25
+ this._options = _options;
26
+ this._timer = _timer;
27
+ this._loaded = false;
28
+ this._attempt = 0;
29
+ }
30
+ get() {
31
+ return this._cachedValue;
32
+ }
33
+ load() {
34
+ if (this._loaded) return Promise.resolve(this._cachedValue);
35
+ if (!this._inFlight) this._inFlight = this.startLoad();
36
+ return this._inFlight;
37
+ }
38
+ reset() {
39
+ this._cachedValue = void 0;
40
+ this._loaded = false;
41
+ this._inFlight = void 0;
42
+ this._attempt++;
43
+ }
44
+ startLoad() {
45
+ const attempt = ++this._attempt;
46
+ const { timeoutMs } = this._options;
47
+ let loaderResult;
48
+ try {
49
+ loaderResult = this._loader();
50
+ } catch (err) {
51
+ loaderResult = Promise.reject(err);
52
+ }
53
+ const loadPromise = loaderResult.then((value) => {
54
+ if (attempt === this._attempt) {
55
+ this._cachedValue = value;
56
+ this._loaded = true;
57
+ }
58
+ return value;
59
+ }, (err) => {
60
+ if (attempt === this._attempt) {
61
+ this.warnFailure(err);
62
+ this._inFlight = void 0;
63
+ }
64
+ });
65
+ if (timeoutMs === void 0) return loadPromise;
66
+ let timeoutHandle;
67
+ const timeoutPromise = new Promise((resolve) => {
68
+ timeoutHandle = this._timer.setTimeout(() => {
69
+ if (attempt === this._attempt) {
70
+ this.warnTimeout(timeoutMs);
71
+ this._inFlight = void 0;
72
+ this._attempt++;
73
+ }
74
+ resolve(void 0);
75
+ }, timeoutMs);
76
+ });
77
+ return Promise.race([loadPromise, timeoutPromise]).finally(() => {
78
+ if (timeoutHandle !== void 0) this._timer.clearTimeout(timeoutHandle);
79
+ });
80
+ }
81
+ warnFailure(err) {
82
+ const { label, moduleName } = this._options;
83
+ console.warn(`[${label}] Failed to load ${moduleName}; ${this.fallback()}`, err);
84
+ }
85
+ warnTimeout(timeoutMs) {
86
+ const { label, moduleName } = this._options;
87
+ console.warn(`[${label}] ${moduleName} failed to load within ${timeoutMs / 1e3}s; ${this.fallback()}`);
88
+ }
89
+ fallback() {
90
+ return this._options.disabledMessage ?? "module will be unavailable.";
91
+ }
92
+ };
93
+ /**
94
+ * Concrete implementation of {@link ILazyImportCapability}.
95
+ *
96
+ * `create()` returns a per-module {@link LazyImportHandle}. The
97
+ * {@link ITimerCapability} is injected so tests can replace the real
98
+ * `setTimeout`/`clearTimeout` with a controllable fake.
99
+ */
100
+ var BrowserLazyImportProvider = class BrowserLazyImportProvider {
101
+ constructor(timer) {
102
+ this._timer = timer ?? BrowserTimerProvider.getInstance();
103
+ }
104
+ static getInstance() {
105
+ return this._instance ??= new BrowserLazyImportProvider();
106
+ }
107
+ static resetInstance() {
108
+ this._instance = void 0;
109
+ }
110
+ create(loader, options) {
111
+ return new LazyImportHandle(loader, options, this._timer);
112
+ }
113
+ };
114
+
115
+ //#endregion
116
+ //#region ../infra/src/providers/browser/TransactionalRiskIntelligenceProvider.ts
117
+ const LAZY_IMPORT_OPTIONS = {
118
+ label: "TRI",
119
+ moduleName: "@incodetech/tri-sdk",
120
+ timeoutMs: 1e4,
121
+ disabledMessage: "TRI will be disabled for this session."
122
+ };
123
+ const importSdk = () => import("./tri.esm-CrWAulDi.esm.js");
124
+ /**
125
+ * Concrete implementation of {@link ITransactionalRiskIntelligenceCapability}.
126
+ *
127
+ * This is the **only** file in the repo that references `@incodetech/tri-sdk`.
128
+ * The third-party module is loaded via a dynamic `import()` the first time
129
+ * {@link setup} is called, so consumers that never opt into TRI (i.e. never
130
+ * pass `tri` to `setup()`) do not pay the bundle cost.
131
+ *
132
+ * `start()`, `stop()`, `reset()`, and `linkInterview()` require a prior
133
+ * successful `setup()` call. The SDK cannot start without the foundation,
134
+ * collection-status check, and managers that `setup()` establishes. Calling
135
+ * these methods before `setup()` is a no-op that returns `'init-failed'` or
136
+ * `false` respectively.
137
+ *
138
+ * The dynamic `import('@incodetech/tri-sdk')` is managed by
139
+ * {@link BrowserLazyImportProvider}, which races the import against a
140
+ * {@link LOAD_TIMEOUT_MS}-ms timeout. On timeout the provider warns, clears
141
+ * the cached promise (so a subsequent `setup()` can retry), and resolves
142
+ * `undefined`, gracefully disabling TRI for the session.
143
+ */
144
+ var TransactionalRiskIntelligenceProvider = class TransactionalRiskIntelligenceProvider {
145
+ constructor() {
146
+ this._isStarted = false;
147
+ this._lazySdk = BrowserLazyImportProvider.getInstance().create(importSdk, LAZY_IMPORT_OPTIONS);
148
+ }
149
+ static getInstance() {
150
+ return this._instance ??= new TransactionalRiskIntelligenceProvider();
151
+ }
152
+ static resetInstance() {
153
+ this._instance = void 0;
154
+ }
155
+ get isStarted() {
156
+ return this._isStarted;
157
+ }
158
+ /**
159
+ * Lazy-loads `@incodetech/tri-sdk` (shared lazy handle) and exchanges the
160
+ * organization API key for a short-lived SDK token via the module's
161
+ * `createSession`. On a load timeout/failure returns an error-shaped session
162
+ * rather than throwing, so the boot path is never blocked.
163
+ */
164
+ async createSession(apiKey, options) {
165
+ const module = await this._lazySdk.load();
166
+ if (!module) return {
167
+ token: null,
168
+ expiresAt: null,
169
+ tokenType: null,
170
+ eventsCollectionEnabled: false,
171
+ error: {
172
+ status: 0,
173
+ message: "TRI SDK failed to load"
174
+ }
175
+ };
176
+ return module.createSession(apiKey, options);
177
+ }
178
+ /**
179
+ * Lazy-loads `@incodetech/tri-sdk` on first call (with a {@link LOAD_TIMEOUT_MS}-ms
180
+ * timeout), then delegates to its `setup()`. Returns a promise that resolves
181
+ * once the SDK module has been fetched and the backend collection-status
182
+ * check has completed.
183
+ *
184
+ * When `config.autostart` is `true` (the default), the underlying `setup()`
185
+ * also calls `start()` and returns `'started'` on success. `_isStarted` is
186
+ * updated to reflect the resulting state so that `isTRIStarted()` is
187
+ * accurate immediately after `setup()` returns.
188
+ */
189
+ async setup(config) {
190
+ try {
191
+ const module = await this._lazySdk.load();
192
+ if (!module) return "init-failed";
193
+ const state = await module.default.setup(config);
194
+ if (state === "started") this._isStarted = true;
195
+ return state;
196
+ } catch {
197
+ return "init-failed";
198
+ }
199
+ }
200
+ /**
201
+ * Begins behavioral data collection. Requires a prior successful `setup()`.
202
+ * Returns `'init-failed'` without starting if called before `setup()`.
203
+ */
204
+ async start() {
205
+ const state = await (this._getSdk()?.start() ?? Promise.resolve("init-failed"));
206
+ this._isStarted = state === "started";
207
+ return state;
208
+ }
209
+ /**
210
+ * Stops all collectors and managers. No-op when called before `setup()`.
211
+ */
212
+ async stop() {
213
+ const state = await (this._getSdk()?.stop() ?? Promise.resolve("init-failed"));
214
+ this._isStarted = false;
215
+ return state;
216
+ }
217
+ /**
218
+ * Resets the TRI SDK to its initial state. No-op when called before `setup()`.
219
+ */
220
+ async reset() {
221
+ const state = await (this._getSdk()?.reset() ?? Promise.resolve("init-failed"));
222
+ this._isStarted = false;
223
+ return state;
224
+ }
225
+ /**
226
+ * Links an interview to the current TRI activity. Returns `false` when
227
+ * called before `setup()` or when the backend request fails. Never throws,
228
+ * so the boot/flow path is never blocked by a failed link.
229
+ *
230
+ * @param sessionToken - The Incode session token to link.
231
+ */
232
+ async linkInterview(sessionToken) {
233
+ try {
234
+ return await this._getSdk()?.linkInterview(sessionToken) ?? false;
235
+ } catch {
236
+ return false;
237
+ }
238
+ }
239
+ _getSdk() {
240
+ return this._lazySdk.get()?.default ?? null;
241
+ }
242
+ };
243
+
244
+ //#endregion
245
+ //#region src/integrations/tri/tri.ts
246
+ /**
247
+ * Returns the active TRI capability implementation.
248
+ *
249
+ * Core functions depend on {@link ITransactionalRiskIntelligenceCapability}
250
+ * (the interface) rather than the concrete provider class. The provider is
251
+ * referenced here only to supply the default singleton. This integration
252
+ * module is the single owner of the concrete provider reference — the rest of
253
+ * core goes through these functions ({@link isTRIStarted},
254
+ * {@link resetTRIProviderInstance}, etc.) instead of importing the provider.
255
+ */
256
+ function getProvider() {
257
+ return TransactionalRiskIntelligenceProvider.getInstance();
258
+ }
259
+ /**
260
+ * Returns `true` when TRI collectors are currently running (a successful
261
+ * `setupTRI()` autostart or explicit `startTRI()`, with no subsequent
262
+ * `stopTRI()`/`resetTRI()`). Returns `false` before setup or after teardown.
263
+ */
264
+ function isTRIStarted() {
265
+ return getProvider().isStarted;
266
+ }
267
+ /**
268
+ * Discards the cached TRI provider singleton so the next access constructs a
269
+ * fresh instance. Call from the SDK's `reset()` after `resetTRI()` to clear
270
+ * the `isStarted` flag and lazy-import state.
271
+ */
272
+ function resetTRIProviderInstance() {
273
+ TransactionalRiskIntelligenceProvider.resetInstance();
274
+ }
275
+ /**
276
+ * Exchanges an organization API key for a short-lived TRI SDK token. This is
277
+ * the entry point that triggers the lazy-load of `@incodetech/tri-sdk` (via the
278
+ * provider's dynamic `import()`); the cached lazy handle is reused by a
279
+ * subsequent `setupTRI()`.
280
+ *
281
+ * In production the exchange should happen server-side. On a load timeout or
282
+ * failure the returned session carries `token: null` and an `error`, rather
283
+ * than throwing.
284
+ *
285
+ * @param apiKey - Organization API key.
286
+ * @param options - Optional `apiURL`, `signal`, and `timeout` overrides.
287
+ */
288
+ async function createTRISession(apiKey, options) {
289
+ return getProvider().createSession(apiKey, options);
290
+ }
291
+ /**
292
+ * Initializes TRI in a single step: resolves the config, calls `setupTRI`
293
+ * (which autostarts unless `config.autostart` is `false`), and optionally
294
+ * links the current Incode session.
295
+ *
296
+ * Returns the resolved {@link TransactionalRiskIntelligenceState}. If the
297
+ * config cannot be resolved (e.g. missing `token` or `apiURL`), returns
298
+ * `'init-failed'` after emitting a `[TRI]` warning.
299
+ *
300
+ * When `config.autostart` is `false`, the underlying `setupTRI` returns
301
+ * `'ready'` without starting collection — call `startTRI()` explicitly when
302
+ * ready (e.g. after a consent gate). Linking is skipped in that case since
303
+ * TRI has not started.
304
+ *
305
+ * @param config - TRI setup config (must include `token` and `apiURL`).
306
+ * @param options - Optional session-linking hints (`sessionToken`).
307
+ */
308
+ async function initializeTRI(config, options = {}) {
309
+ const resolvedTriConfig = resolveTRIConfig(config);
310
+ if (!resolvedTriConfig) return "init-failed";
311
+ const state = await setupTRI(resolvedTriConfig);
312
+ if (isTRIStarted() && options.sessionToken) await linkSessionWithTRI(options.sessionToken);
313
+ return state;
314
+ }
315
+ /**
316
+ * Calls the provider's `setup()` with the given config. This is the step that
317
+ * lazy-loads `@incodetech/tri-sdk`, validates the config, and checks the
318
+ * backend collection-status endpoint. When `config.autostart` is `true` (the
319
+ * default), also calls `start()` internally and returns `'started'` on
320
+ * success. Pass `autostart: false` to receive `'ready'` and start explicitly.
321
+ *
322
+ * @param config - Resolved TRI config (`token` and `apiURL` required).
323
+ * @returns The resulting {@link TransactionalRiskIntelligenceState}.
324
+ */
325
+ async function setupTRI(config) {
326
+ return getProvider().setup(config);
327
+ }
328
+ /**
329
+ * Begins behavioral data collection. Requires a prior successful `setupTRI()`
330
+ * call with `autostart: false`. Returns `'init-failed'` without starting if
331
+ * called before setup, or is a no-op if already started.
332
+ *
333
+ * @returns The resulting {@link TransactionalRiskIntelligenceState}.
334
+ */
335
+ async function startTRI() {
336
+ return getProvider().start();
337
+ }
338
+ /**
339
+ * Stops all TRI collectors and managers. Idempotent. No-op if TRI was never
340
+ * set up.
341
+ */
342
+ async function stopTRI() {
343
+ return getProvider().stop();
344
+ }
345
+ /**
346
+ * Resets the TRI SDK to its initial state. Call this from the SDK's `reset()`
347
+ * so that a subsequent `setupTRI` / `startTRI` can begin fresh.
348
+ */
349
+ async function resetTRI() {
350
+ return getProvider().reset();
351
+ }
352
+ /**
353
+ * Links the current Incode interview session to the active TRI activity.
354
+ *
355
+ * Returns `false` when the session token is missing or TRI has not been set up.
356
+ *
357
+ * @param sessionToken - Incode session JWT.
358
+ */
359
+ async function linkSessionWithTRI(sessionToken) {
360
+ if (!sessionToken) return false;
361
+ return getProvider().linkInterview(sessionToken);
362
+ }
363
+ /**
364
+ * @private This function is not used outside of this file.
365
+ *
366
+ * Validates and narrows a {@link TransactionalRiskIntelligenceSetupConfig}
367
+ * into a {@link TransactionalRiskIntelligenceConfig} suitable for passing to
368
+ * the provider's `setup()`.
369
+ *
370
+ * Returns `null` (with a `[TRI]` warning) when a required field is missing.
371
+ * Returns `null` silently when `config` is `undefined` (intentional opt-out).
372
+ *
373
+ * @param config - Raw setup-time config from `SetupOptions.tri`.
374
+ */
375
+ function resolveTRIConfig(config) {
376
+ if (!config) return null;
377
+ if (!config.token) {
378
+ console.warn("[TRI] Not initialized: token is required.");
379
+ return null;
380
+ }
381
+ if (!config.apiURL) {
382
+ console.warn("[TRI] Not initialized: apiURL is required.");
383
+ return null;
384
+ }
385
+ return config;
386
+ }
387
+
388
+ //#endregion
389
+ export { resetTRI as a, startTRI as c, linkSessionWithTRI as i, stopTRI as l, initializeTRI as n, resetTRIProviderInstance as o, isTRIStarted as r, setupTRI as s, createTRISession as t };
package/dist/tri.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { a as startTRI, i as setupTRI, n as isTRIStarted, o as stopTRI, r as resetTRI, s as TransactionalRiskIntelligenceSetupConfig, t as createTRISession } from "./index-52_qi4bd.js";
2
+ export { TransactionalRiskIntelligenceSetupConfig, createTRISession, isTRIStarted, resetTRI, setupTRI, startTRI, stopTRI };