@incodetech/core 2.1.0-rc.1 → 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.
- package/dist/{BrowserStorageProvider-BpJM-gIl.esm.js → BrowserStorageProvider-D5xc7Lqo.esm.js} +18 -1
- package/dist/{Manager-BHn8wH8K.d.ts → Manager-B2OEDYqf.d.ts} +4 -1
- package/dist/{OpenViduRecordingProvider-O4GjBseO.esm.js → OpenViduRecordingProvider-DF7A4ZNJ.esm.js} +1 -1
- package/dist/{StreamCanvasCapture-yyl20qd9.d.ts → StreamCanvasCapture-Ctgyx-oD.d.ts} +1 -1
- package/dist/{StreamCanvasCapture-ImiDQdVA.esm.js → StreamCanvasCapture-Dr5n_iK1.esm.js} +1 -1
- package/dist/{WasmUtilProvider-BKWm8rSA.esm.js → WasmUtilProvider-CIu373BZ.esm.js} +10 -1
- package/dist/{addressSearch-DvmWXKZg.esm.js → addressSearch-BH96a3fq.esm.js} +4 -4
- package/dist/{ae-signature-BFZta3TZ.esm.js → ae-signature-CDEN8y-w.esm.js} +1 -1
- package/dist/ae-signature.d.ts +3 -3
- package/dist/ae-signature.esm.js +9 -7
- package/dist/antifraud.d.ts +3 -3
- package/dist/antifraud.esm.js +6 -6
- package/dist/{antifraudManager-CznnhyvD.d.ts → antifraudManager-B7WQTIdu.d.ts} +2 -2
- package/dist/antifraudManager-DZifA5zX.esm.js +83 -0
- package/dist/{antifraudStateMachine-Ccrb-Jxc.esm.js → antifraudStateMachine-DlKrK2hL.esm.js} +3 -3
- package/dist/authentication.d.ts +12 -13
- package/dist/authentication.esm.js +27 -27
- package/dist/{authenticationManager-BlR6mSaG.esm.js → authenticationManager-BM4LzyV7.esm.js} +17 -8
- package/dist/{authenticationManager-CaiQbp-q.d.ts → authenticationManager-Dve7mGLe.d.ts} +13 -3
- package/dist/{authenticationStateMachine-DkcGUMw5.esm.js → authenticationStateMachine-Chx3ySdT.esm.js} +20 -23
- package/dist/{backCameraStream-D7Wo4Nbx.esm.js → backCameraStream-iftkf3rd.esm.js} +3 -3
- package/dist/browser-DlFgHpoC-7tbRR1aR.esm.js +1425 -0
- package/dist/{browserSimulation-B1dWiXp7.esm.js → browserSimulation-CGjpdNA1.esm.js} +2 -2
- package/dist/camera.d.ts +1 -1
- package/dist/camera.esm.js +4 -4
- package/dist/certificate-issuance.d.ts +311 -0
- package/dist/certificate-issuance.esm.js +73 -0
- package/dist/certificateIssuanceStateMachine-CLNXtXaC.esm.js +127 -0
- package/dist/consent.d.ts +3 -3
- package/dist/consent.esm.js +6 -6
- package/dist/{consentManager-Cg5Sk2tv.d.ts → consentManager-BqUGU_YD.d.ts} +52 -52
- package/dist/{consentManager-BYo9Nu1r.esm.js → consentManager-psDCeJ0E.esm.js} +29 -5
- package/dist/{consentStateMachine-BG3yL8aC.esm.js → consentStateMachine-DRsFFSHE.esm.js} +3 -3
- package/dist/cpf-ocr.d.ts +3 -3
- package/dist/cpf-ocr.esm.js +6 -6
- package/dist/{cpfOcrManager-Dg1s_TY5.d.ts → cpfOcrManager-B2u9hMzd.d.ts} +19 -19
- package/dist/{cpfOcrManager-sSKegxox.esm.js → cpfOcrManager-BxcgxvgO.esm.js} +5 -5
- package/dist/cross-document-data-match.d.ts +1 -1
- package/dist/cross-document-data-match.esm.js +5 -5
- package/dist/curp-validation.d.ts +7 -7
- package/dist/curp-validation.esm.js +6 -6
- package/dist/{curpValidationManager-CFem6zP9.esm.js → curpValidationManager-BgLDw0Ub.esm.js} +51 -5
- package/dist/{curpValidationManager-RttixpIc.d.ts → curpValidationManager-Bt6CVD8b.d.ts} +4 -3
- package/dist/{curpValidationStateMachine-B7V_qp66.esm.js → curpValidationStateMachine-BK_wJ48C.esm.js} +3 -3
- package/dist/custom-fields.d.ts +3 -2
- package/dist/custom-fields.esm.js +48 -6
- package/dist/custom-watchlist.d.ts +1 -1
- package/dist/custom-watchlist.esm.js +26 -6
- package/dist/{customWatchlistStateMachine-HmFybXLX.esm.js → customWatchlistStateMachine-Bi4P59HM.esm.js} +3 -3
- package/dist/{deepsightLoader-8tnddNx-.esm.js → deepsightLoader-BMmvk0X6.esm.js} +13 -13
- package/dist/{deepsightService-Dh5P-hLf.d.ts → deepsightService-ByNKY5Jv.d.ts} +13 -2
- package/dist/{deepsightService-CrHmvx8X.esm.js → deepsightService-CEZrdiW0.esm.js} +7 -7
- package/dist/device.esm.js +4 -4
- package/dist/document-capture.d.ts +177 -177
- package/dist/document-capture.esm.js +77 -14
- package/dist/document-upload.d.ts +47 -47
- package/dist/document-upload.esm.js +9 -9
- package/dist/{documentCaptureStateMachine-CUTUzUw_.esm.js → documentCaptureStateMachine-MpwpJO7t.esm.js} +7 -7
- package/dist/dynamic-forms.d.ts +2 -2
- package/dist/dynamic-forms.esm.js +35 -285
- package/dist/dynamicFormsStateMachine-Do84A4uU.esm.js +284 -0
- package/dist/ekyb.d.ts +7 -6
- package/dist/ekyb.esm.js +59 -17
- package/dist/{ekybStateMachine-klc-AImJ.esm.js → ekybStateMachine-nsuPOw3f.esm.js} +5 -5
- package/dist/ekyc.d.ts +4 -3
- package/dist/ekyc.esm.js +54 -9
- package/dist/{ekycStateMachine-CXbpaJJn.esm.js → ekycStateMachine-DcynX0rj.esm.js} +5 -5
- package/dist/electronic-signature.d.ts +3 -3
- package/dist/electronic-signature.esm.js +8 -6
- package/dist/{electronicSignatureManager-BaECdJ1u.esm.js → electronicSignatureManager-B63aAuI5.esm.js} +103 -23
- package/dist/email.d.ts +4 -4
- package/dist/email.esm.js +8 -8
- package/dist/{emailManager-lAzDoQOs.d.ts → emailManager-C6D2u4mQ.d.ts} +4 -3
- package/dist/{emailManager--D5G3ChB.esm.js → emailManager-DxHjAe5u.esm.js} +46 -6
- package/dist/{emailStateMachine-CxTOMAjC.esm.js → emailStateMachine-758f34gg.esm.js} +5 -5
- package/dist/{endpoints-BeTK0Mlt.esm.js → endpoints-BM2_j_IE.esm.js} +2 -0
- package/dist/{events-Dvvriq9l.esm.js → events-DN-u67gb.esm.js} +110 -43
- package/dist/events.d.ts +21 -16
- package/dist/events.esm.js +2 -2
- package/dist/extensibility.d.ts +25 -26
- package/dist/extensibility.esm.js +58 -56
- package/dist/externalFetch-crimxkN9.esm.js +22 -0
- package/dist/face-match.d.ts +1 -1
- package/dist/face-match.esm.js +5 -5
- package/dist/{faceCaptureManagerFactory-ej2j1LMr.esm.js → faceCaptureManagerFactory-BNXZchWX.esm.js} +94 -13
- package/dist/{faceCaptureManagerFactory-CjdBUS6s.d.ts → faceCaptureManagerFactory-CL-7T_vH.d.ts} +20 -10
- package/dist/{faceCaptureSetup-B9t6bYze.esm.js → faceCaptureSetup-Dqb09D24.esm.js} +7 -7
- package/dist/{faceMatchStateMachine-DeXXzSuz.esm.js → faceMatchStateMachine-FikRaUZH.esm.js} +3 -3
- package/dist/field-comparison.d.ts +3 -3
- package/dist/field-comparison.esm.js +5 -5
- package/dist/{fieldComparisonManager-Bu5TaSr3.d.ts → fieldComparisonManager-BXc6-DJv.d.ts} +2 -2
- package/dist/{fieldComparisonManager-COGI2ARD.esm.js → fieldComparisonManager-Dic0DVgl.esm.js} +4 -4
- package/dist/fiscal-qr.d.ts +3 -3
- package/dist/fiscal-qr.esm.js +12 -12
- package/dist/flow-events.d.ts +6 -6
- package/dist/flow.d.ts +25 -15
- package/dist/flow.esm.js +43 -29
- package/dist/{flowCompletionService-BdR2cGgB.d.ts → flowCompletionService-CdGDKv0z.d.ts} +9 -1
- package/dist/flowCompletionService-D_CsiDZM.esm.js +42 -0
- package/dist/{flowServices-ChgTNggJ.esm.js → flowServices-ar5DXv71.esm.js} +4 -4
- package/dist/geolocation.d.ts +3 -2
- package/dist/geolocation.esm.js +35 -7
- package/dist/{geolocationStateMachine-Dvh7X0wF.esm.js → geolocationStateMachine-BWjrMGS_.esm.js} +4 -4
- package/dist/{getDeviceClass-C8Do2qYu.esm.js → getDeviceClass-rXKlXywy.esm.js} +1 -1
- package/dist/government-validation.d.ts +3 -3
- package/dist/government-validation.esm.js +42 -8
- package/dist/{governmentValidationStateMachine-DcJ-BfsC.esm.js → governmentValidationStateMachine-BoF7U1of.esm.js} +5 -5
- package/dist/home.d.ts +15 -15
- package/dist/home.esm.js +4 -4
- package/dist/http.d.ts +1 -0
- package/dist/http.esm.js +2 -2
- package/dist/id-ocr.d.ts +57 -57
- package/dist/id-ocr.esm.js +6 -6
- package/dist/id-verification.d.ts +27 -27
- package/dist/id-verification.esm.js +5 -5
- package/dist/id.d.ts +19 -13
- package/dist/id.esm.js +41 -33
- package/dist/{idCaptureManager-D3pwWutw.esm.js → idCaptureManager-Bm6Wm6Qv.esm.js} +91 -9
- package/dist/{idCaptureManager-ChCNmgBj.d.ts → idCaptureManager-BvGUSN2e.d.ts} +14 -9
- package/dist/{idCaptureStateMachine-B3AiDIsT.esm.js → idCaptureStateMachine-D1YhOj6n.esm.js} +155 -82
- package/dist/{idOcrStateMachine-CDQ5d_VM.esm.js → idOcrStateMachine-YMCDGplq.esm.js} +5 -5
- package/dist/{idVerificationStateMachine-kRxwImzO.esm.js → idVerificationStateMachine-Bo1IYuZH.esm.js} +3 -3
- package/dist/identity-reuse.d.ts +3 -3
- package/dist/identity-reuse.esm.js +6 -6
- package/dist/{identityReuseManager-C6n_97dw.esm.js → identityReuseManager-D0knIrOy.esm.js} +3 -3
- package/dist/{identityReuseManager-Cww-NDtd.d.ts → identityReuseManager-DcWSvC-A.d.ts} +33 -33
- package/dist/{identityReuseStateMachine-BfE5YiEr.esm.js → identityReuseStateMachine-CSQfZOqD.esm.js} +3 -3
- package/dist/index-52_qi4bd.d.ts +93 -0
- package/dist/{index-B5hPA0Bg.d.ts → index-BgxYUYuD.d.ts} +2 -2
- package/dist/{index-B9NysVDB.d.ts → index-DV134v62.d.ts} +169 -169
- package/dist/index.d.ts +3 -2
- package/dist/index.esm.js +13 -12
- package/dist/{invokeOnCaptureCallback-ygByVdnn.esm.js → invokeOnCaptureCallback-Dzemudhk.esm.js} +1 -1
- package/dist/{lib-BY67lgbq.esm.js → lib-7ZQ9BdKH.esm.js} +1 -1
- package/dist/mandatory-consent.d.ts +7 -7
- package/dist/mandatory-consent.esm.js +6 -6
- package/dist/{mandatoryConsentManager-H6D18cZB.esm.js → mandatoryConsentManager-Lon46nPQ.esm.js} +3 -3
- package/dist/{mandatoryConsentManager-Dq6WiOZh.d.ts → mandatoryConsentManager-Tzl5Qd35.d.ts} +50 -50
- package/dist/{mandatoryConsentStateMachine-DtQNW1ji.esm.js → mandatoryConsentStateMachine-D_dZ7IF6.esm.js} +3 -3
- package/dist/openviduLazy-B_s6jnEk.esm.js +3 -0
- package/dist/{openviduLazy-Dh14JNJc.esm.js → openviduLazy-oAXXI9w_.esm.js} +2 -2
- package/dist/{permissionGuards-D0wGddy7.esm.js → permissionGuards-D-Z-lgNj.esm.js} +1 -1
- package/dist/{permissionServices-Doec4X5L.esm.js → permissionServices-CPDboRoE.esm.js} +3 -3
- package/dist/phone.d.ts +4 -4
- package/dist/phone.esm.js +8 -8
- package/dist/{phoneManager-BmF-0Ez4.esm.js → phoneManager-Blt4Oc2P.esm.js} +47 -6
- package/dist/{phoneManager-fPmIBYQK.d.ts → phoneManager-TSq1Ief6.d.ts} +4 -3
- package/dist/{phoneStateMachine-BiV0yoEx.esm.js → phoneStateMachine-W3c6Z8sj.esm.js} +5 -5
- package/dist/{qe-signature-CUYPcHVo.esm.js → qe-signature-CQLK6LKE.esm.js} +1 -1
- package/dist/qe-signature.d.ts +3 -3
- package/dist/qe-signature.esm.js +9 -7
- package/dist/{recordingService-yRw7hfzU.esm.js → recordingService-CxMJP4tQ.esm.js} +15 -15
- package/dist/redirect-to-mobile.d.ts +3 -3
- package/dist/redirect-to-mobile.esm.js +8 -7
- package/dist/{redirectToMobileManager-Dy3t7o0C.esm.js → redirectToMobileManager-DCvpKdkD.esm.js} +4 -4
- package/dist/{redirectToMobileManager-BNe3IzC_.d.ts → redirectToMobileManager-yOHAmwg-.d.ts} +2 -2
- package/dist/{redirectToMobileStateMachine-DyAdRxfP.esm.js → redirectToMobileStateMachine-DC9z4Vfu.esm.js} +11 -21
- package/dist/{runChildModule-CuoHZ1cx.esm.js → runChildModule-C9G0wfVC.esm.js} +14 -24
- package/dist/selfie.d.ts +20 -14
- package/dist/selfie.esm.js +37 -30
- package/dist/{selfieManager-BNuTIGAz.esm.js → selfieManager-BRL6c_Oc.esm.js} +17 -8
- package/dist/{selfieManager-C2y_t6DG.d.ts → selfieManager-imY2dAcH.d.ts} +13 -3
- package/dist/{selfieStateMachine-Bv99bZJE.esm.js → selfieStateMachine-D2Q0uwDK.esm.js} +4 -4
- package/dist/{session-DoVb-OcB.esm.js → session-Be_IA1e0.esm.js} +3 -3
- package/dist/session.d.ts +9 -8
- package/dist/session.esm.js +14 -12
- package/dist/{sessionInitializer-DRB-hgbV.esm.js → sessionInitializer-CaiGA8GP.esm.js} +13 -10
- package/dist/{setup-BwCluiw3.d.ts → setup-BJZAkajt.d.ts} +47 -1
- package/dist/{setup-CUO4mErT.esm.js → setup-C7tintPc.esm.js} +34 -7
- package/dist/signature.d.ts +3 -2
- package/dist/signature.esm.js +48 -6
- package/dist/{signatureStateMachine-C5qqYLRz.esm.js → signatureStateMachine-DAxXmMrk.esm.js} +21 -39
- package/dist/{stats-BMNUG1AU.esm.js → stats-DntyIiGr.esm.js} +2 -2
- package/dist/stats.esm.js +3 -3
- package/dist/tri-CtxWthxz.esm.js +389 -0
- package/dist/tri.d.ts +2 -0
- package/dist/tri.esm-CrWAulDi.esm.js +2589 -0
- package/dist/tri.esm.js +4 -0
- package/dist/trust-graph.d.ts +3 -3
- package/dist/trust-graph.esm.js +3 -3
- package/dist/{types-DsnEVMhr.esm.js → types-BdVOWGGW.esm.js} +2 -1
- package/dist/{types-NuT8ftBV.d.ts → types-DpTWgfKY.d.ts} +2 -1
- package/dist/{types-DOUhndhT.d.ts → types-Dv-9WPJX.d.ts} +2 -2
- package/dist/{types-Bj9hdFjU.d.ts → types-Z9wv19v2.d.ts} +1 -1
- package/dist/urlUtils-8RNHyW3x.esm.js +16 -0
- package/dist/wasm.d.ts +3 -2
- package/dist/wasm.esm.js +13 -12
- package/dist/watchlist-for-business.d.ts +1 -1
- package/dist/watchlist-for-business.esm.js +29 -7
- package/dist/watchlist.d.ts +1 -1
- package/dist/watchlist.esm.js +27 -6
- package/dist/{watchlistForBusinessStateMachine-DMl8j2Ov.esm.js → watchlistForBusinessStateMachine-DtefJb-D.esm.js} +3 -3
- package/dist/{watchlistStateMachine-DmQlqI6L.esm.js → watchlistStateMachine-B0aIS2_n.esm.js} +3 -3
- package/dist/workflow.d.ts +161 -100
- package/dist/workflow.esm.js +85 -66
- package/dist/{xstate.esm-C9wncMQa.esm.js → xstate.esm-Dkm1jy5u.esm.js} +13 -4
- package/package.json +11 -1
- package/dist/StateMachine-BC_nGvrc.d.ts +0 -2
- package/dist/antifraudManager-CkV4u-LE.esm.js +0 -55
- package/dist/flowCompletionService-DdGojV9K.esm.js +0 -20
- package/dist/openviduLazy-B8L--0oe.esm.js +0 -3
- /package/dist/{Actor-Y0_Fj-KL.d.ts → Actor-fIPLXfoi.d.ts} +0 -0
- /package/dist/{BrowserTimerProvider-DhNc_x02.esm.js → BrowserTimerProvider-BVgutW_b.esm.js} +0 -0
- /package/dist/{ITimerCapability-CB0I1Uf2.esm.js → ITimerCapability-BvH0pDwp.esm.js} +0 -0
- /package/dist/{IpifyProvider-D4LWD15E.esm.js → IpifyProvider-oZf7Ke1O.esm.js} +0 -0
- /package/dist/{MotionSensorProvider-Bx7Mpzt0.esm.js → MotionSensorProvider-C9fPAJdS.esm.js} +0 -0
- /package/dist/{api-CESGtpbH.esm.js → api-DUZwyz0o.esm.js} +0 -0
- /package/dist/{apiError-B-j-gyDx.esm.js → apiError-D-GTvFrH.esm.js} +0 -0
- /package/dist/{camera-SRBpPq2X.d.ts → camera-biGPWlmx.d.ts} +0 -0
- /package/dist/{camera-DJWm3V4g.esm.js → camera-x4LjGTjZ.esm.js} +0 -0
- /package/dist/{canvas-SKcRBxsk.esm.js → canvas-7uX2izHb.esm.js} +0 -0
- /package/dist/{chunk-CMUKZ2uL.esm.js → chunk-BK1xu56N.esm.js} +0 -0
- /package/dist/{cpf-BRzggV8G.esm.js → cpf-xBg-DFNn.esm.js} +0 -0
- /package/dist/{dateUtils-AksLQmgV.esm.js → dateUtils-8dCcuArE.esm.js} +0 -0
- /package/dist/{getBrowser-C8DP7oTB.esm.js → getBrowser-Dv8LZyHE.esm.js} +0 -0
- /package/dist/{getDeviceClass-C0olyNFS.esm.js → getDeviceClass-C0zrM97a.esm.js} +0 -0
- /package/dist/{http-Cai3IoLS.esm.js → http-CfVTgMfU.esm.js} +0 -0
- /package/dist/{otp-DF5A0sFx.d.ts → otp-BHJnjEEc.d.ts} +0 -0
- /package/dist/{otp-CGMdUzBC.esm.js → otp-D87RTwrx.esm.js} +0 -0
- /package/dist/{platform-SKvEfCBh.esm.js → platform-BfoqeM61.esm.js} +0 -0
- /package/dist/{types-DvGZI7BF.d.ts → types-DYZja-k9.d.ts} +0 -0
- /package/dist/{types-ya0LN_MX.d.ts → types-F0IXbaCB.d.ts} +0 -0
- /package/dist/{warmup-Dg8Lh-50.d.ts → warmup--6HA3yUR.d.ts} +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { a as WasmWebClientError, c as setWebApiHttpTransport, f as deriveSiblingJsPath, l as setupWasmConnection, o as executeWasmRequest, r as warmupWasm, s as initializeWasmWebClient, t as WasmUtilProvider } from "./WasmUtilProvider-
|
|
2
|
-
import { t as BrowserTimerProvider } from "./BrowserTimerProvider-
|
|
3
|
-
import { a as resetApi, i as isApiConfigured, n as getApi, o as setClient, r as getToken, t as api } from "./api-
|
|
4
|
-
import { _ as
|
|
5
|
-
import { t as endpoints } from "./endpoints-
|
|
6
|
-
import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-
|
|
7
|
-
import { a as setClientIpLookupEnabled, i as resetSessionInit, r as initializeSession } from "./sessionInitializer-
|
|
1
|
+
import { a as WasmWebClientError, c as setWebApiHttpTransport, f as deriveSiblingJsPath, l as setupWasmConnection, o as executeWasmRequest, r as warmupWasm, s as initializeWasmWebClient, t as WasmUtilProvider } from "./WasmUtilProvider-CIu373BZ.esm.js";
|
|
2
|
+
import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BVgutW_b.esm.js";
|
|
3
|
+
import { a as resetApi, i as isApiConfigured, n as getApi, o as setClient, r as getToken, t as api } from "./api-DUZwyz0o.esm.js";
|
|
4
|
+
import { _ as getAnalyticsBatcher, h as createAnalyticsBatchingService, v as resetAnalyticsBatcher, y as setAnalyticsBatcher } from "./events-DN-u67gb.esm.js";
|
|
5
|
+
import { t as endpoints } from "./endpoints-BM2_j_IE.esm.js";
|
|
6
|
+
import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-DntyIiGr.esm.js";
|
|
7
|
+
import { a as setClientIpLookupEnabled, i as resetSessionInit, r as initializeSession } from "./sessionInitializer-CaiGA8GP.esm.js";
|
|
8
|
+
import { a as resetTRI, n as initializeTRI, o as resetTRIProviderInstance } from "./tri-CtxWthxz.esm.js";
|
|
8
9
|
|
|
9
10
|
//#region ../infra/src/wasm/wasmDefaults.ts
|
|
10
11
|
const WASM_CDN_BASE_URL = "https://cdn.incodesmile.com/ml-wasm-kit-release";
|
|
@@ -922,6 +923,29 @@ let configured = false;
|
|
|
922
923
|
* devMode: true, // skip the devtools detector (don't ship this in prod)
|
|
923
924
|
* });
|
|
924
925
|
* ```
|
|
926
|
+
* @example Enable TRI — exchange the API key for an SDK token first, then pass it to setup
|
|
927
|
+
* ```ts
|
|
928
|
+
* const session = await createTRISession(process.env.INCODE_API_KEY, {
|
|
929
|
+
* apiURL: process.env.INCODE_TRI_API_URL,
|
|
930
|
+
* });
|
|
931
|
+
*
|
|
932
|
+
* await setup({
|
|
933
|
+
* apiURL: 'https://api.incode.com',
|
|
934
|
+
* tri: { token: session.token, apiURL: process.env.INCODE_TRI_API_URL },
|
|
935
|
+
* });
|
|
936
|
+
* ```
|
|
937
|
+
*
|
|
938
|
+
* @example Defer TRI collection until after a consent gate
|
|
939
|
+
* ```ts
|
|
940
|
+
* // Boot without starting collectors:
|
|
941
|
+
* await setup({
|
|
942
|
+
* apiURL: 'https://api.incode.com',
|
|
943
|
+
* tri: { token: session.token, apiURL: process.env.INCODE_TRI_API_URL, autostart: false },
|
|
944
|
+
* });
|
|
945
|
+
*
|
|
946
|
+
* // somewhere else in the code
|
|
947
|
+
* await startTRI();
|
|
948
|
+
* ```
|
|
925
949
|
*/
|
|
926
950
|
async function setup(options) {
|
|
927
951
|
if (options.ipLookup !== void 0) setClientIpLookupEnabled(options.ipLookup);
|
|
@@ -963,6 +987,7 @@ async function setup(options) {
|
|
|
963
987
|
await provider.setProductionMode(!showWasmLogs);
|
|
964
988
|
if (!options.devMode) startDevtoolsDetector();
|
|
965
989
|
}
|
|
990
|
+
if (options.tri) await initializeTRI(options.tri, { sessionToken: options.token });
|
|
966
991
|
}
|
|
967
992
|
/**
|
|
968
993
|
* Sets the WASM configuration without performing warmup.
|
|
@@ -1028,9 +1053,11 @@ function reset() {
|
|
|
1028
1053
|
setClientIpLookupEnabled(true);
|
|
1029
1054
|
resetAnalyticsBatcher();
|
|
1030
1055
|
resetHttpClientState();
|
|
1056
|
+
resetTRI();
|
|
1031
1057
|
configured = false;
|
|
1032
1058
|
wasmConfig = void 0;
|
|
1033
1059
|
WasmUtilProvider.resetInstance();
|
|
1060
|
+
resetTRIProviderInstance();
|
|
1034
1061
|
}
|
|
1035
1062
|
|
|
1036
1063
|
//#endregion
|
package/dist/signature.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as Manager } from "./Manager-
|
|
2
|
-
import "./Actor-
|
|
1
|
+
import { t as Manager } from "./Manager-B2OEDYqf.js";
|
|
2
|
+
import "./Actor-fIPLXfoi.js";
|
|
3
3
|
|
|
4
4
|
//#region src/modules/signature/types.d.ts
|
|
5
5
|
/**
|
|
@@ -59,6 +59,7 @@ type CreateSignatureActorOptions = {
|
|
|
59
59
|
};
|
|
60
60
|
//#endregion
|
|
61
61
|
//#region src/modules/signature/signatureManager.d.ts
|
|
62
|
+
|
|
62
63
|
type SignatureIdleState = {
|
|
63
64
|
status: 'idle';
|
|
64
65
|
};
|
package/dist/signature.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "./api-
|
|
2
|
-
import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-
|
|
3
|
-
import "./endpoints-
|
|
4
|
-
import { c as createManager, s as createActor } from "./xstate.esm-
|
|
5
|
-
import { t as signatureMachine } from "./signatureStateMachine-
|
|
1
|
+
import "./api-DUZwyz0o.esm.js";
|
|
2
|
+
import { n as eventModuleNames, o as topLevelStateName, s as createManagerInstrumentation } from "./events-DN-u67gb.esm.js";
|
|
3
|
+
import "./endpoints-BM2_j_IE.esm.js";
|
|
4
|
+
import { c as createManager, s as createActor } from "./xstate.esm-Dkm1jy5u.esm.js";
|
|
5
|
+
import { t as signatureMachine } from "./signatureStateMachine-DAxXmMrk.esm.js";
|
|
6
6
|
|
|
7
7
|
//#region src/modules/signature/signatureActor.ts
|
|
8
8
|
function createSignatureActor(options) {
|
|
@@ -11,6 +11,48 @@ function createSignatureActor(options) {
|
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
13
|
//#region src/modules/signature/signatureManager.ts
|
|
14
|
+
/**
|
|
15
|
+
* Maps a signature state-machine snapshot to the exact Figma "Tracked
|
|
16
|
+
* Events" screen name. Returned strings are the Figma-verbatim absolute
|
|
17
|
+
* analytics path (module prefix included), emitted as-is on `event.screen`
|
|
18
|
+
* by `createManagerInstrumentation`'s `getEventScreenName` path. See
|
|
19
|
+
* `docs/patterns/INSTRUMENTATION.md`.
|
|
20
|
+
*
|
|
21
|
+
* Source of truth: Electronic Signature Figma file → Tracked Events canvas
|
|
22
|
+
* (`https://www.figma.com/design/kUsDigsC8Mq1WobTewF0R6/Electronic-Signature---Latest-Design?node-id=4268-3602`).
|
|
23
|
+
* Section names are taken as canonical — note the canvas mixes
|
|
24
|
+
* `eSign.writeSignature.*` for the `default`/`completed` screens with
|
|
25
|
+
* `eSign.writeYourSignature.success` (without the `Signature` collapse) for
|
|
26
|
+
* the success surface; both spellings are preserved verbatim.
|
|
27
|
+
*
|
|
28
|
+
* State → screen mapping rationale:
|
|
29
|
+
*
|
|
30
|
+
* - `idle`/`captureSignature` collapse to `eSign.writeSignature.default` —
|
|
31
|
+
* the state machine stays in `captureSignature` throughout drawing (stroke
|
|
32
|
+
* validity changes via `SIGNATURE_CHANGED` are context-only and don't fire
|
|
33
|
+
* a new `screenOpened`). The `eSign.writeSignature.completed` Figma surface
|
|
34
|
+
* is therefore the post-submit "signed canvas while we wait for the API"
|
|
35
|
+
* surface, mapped to `submittingSignature`.
|
|
36
|
+
* - `success`/`finished` both map to `eSign.writeYourSignature.success` so
|
|
37
|
+
* the terminal `finished` state stays on the visible success canvas rather
|
|
38
|
+
* than falling back to the generic `<module>.finished` default.
|
|
39
|
+
* - `error` is intentionally unmapped — the Figma canvas does not define a
|
|
40
|
+
* dedicated error screen yet. The adapter falls back to the generic
|
|
41
|
+
* `eSign.error` default, which `errorTriggered` consumers can still
|
|
42
|
+
* correlate against the error payload.
|
|
43
|
+
*/
|
|
44
|
+
function getSignatureScreenName(snapshot) {
|
|
45
|
+
const stateName = topLevelStateName(snapshot.value);
|
|
46
|
+
if (stateName === void 0) return void 0;
|
|
47
|
+
switch (stateName) {
|
|
48
|
+
case "idle":
|
|
49
|
+
case "captureSignature": return "eSign.writeSignature.default";
|
|
50
|
+
case "submittingSignature": return "eSign.writeSignature.completed";
|
|
51
|
+
case "success":
|
|
52
|
+
case "finished": return "eSign.writeYourSignature.success";
|
|
53
|
+
default: return;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
14
56
|
function mapState(snapshot) {
|
|
15
57
|
const typedSnapshot = snapshot;
|
|
16
58
|
const { context } = typedSnapshot;
|
|
@@ -58,7 +100,7 @@ function createSignatureManager(options) {
|
|
|
58
100
|
actor: createSignatureActor(options),
|
|
59
101
|
mapState,
|
|
60
102
|
createApi,
|
|
61
|
-
instrumentation: createManagerInstrumentation(eventModuleNames.signature)
|
|
103
|
+
instrumentation: createManagerInstrumentation(eventModuleNames.signature, { getEventScreenName: getSignatureScreenName })
|
|
62
104
|
});
|
|
63
105
|
}
|
|
64
106
|
|
package/dist/{signatureStateMachine-C5qqYLRz.esm.js → signatureStateMachine-DAxXmMrk.esm.js}
RENAMED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { t as api } from "./api-
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import { a as fromPromise, r as assign, t as setup } from "./xstate.esm-C9wncMQa.esm.js";
|
|
1
|
+
import { t as api } from "./api-DUZwyz0o.esm.js";
|
|
2
|
+
import { t as endpoints } from "./endpoints-BM2_j_IE.esm.js";
|
|
3
|
+
import { a as fromPromise, r as assign, t as setup } from "./xstate.esm-Dkm1jy5u.esm.js";
|
|
5
4
|
|
|
6
5
|
//#region src/modules/signature/signatureServices.ts
|
|
7
6
|
/**
|
|
@@ -68,21 +67,7 @@ const signatureMachine = setup({
|
|
|
68
67
|
isValid: () => false,
|
|
69
68
|
image: () => void 0,
|
|
70
69
|
error: () => void 0
|
|
71
|
-
})
|
|
72
|
-
trackSubmitAttempt: () => {
|
|
73
|
-
addEvent({
|
|
74
|
-
code: "continue",
|
|
75
|
-
module: eventModuleNames.signature,
|
|
76
|
-
screen: eventScreenNames.signatureInput
|
|
77
|
-
});
|
|
78
|
-
},
|
|
79
|
-
trackError: ({ context }) => {
|
|
80
|
-
addEvent({
|
|
81
|
-
code: "verificationError",
|
|
82
|
-
module: eventModuleNames.signature,
|
|
83
|
-
payload: context.error ? { error: context.error } : void 0
|
|
84
|
-
});
|
|
85
|
-
}
|
|
70
|
+
})
|
|
86
71
|
},
|
|
87
72
|
guards: { canContinue: ({ context, event }) => context.isValid && event.type === "CONTINUE" && !!event.image }
|
|
88
73
|
}).createMachine({
|
|
@@ -102,29 +87,26 @@ const signatureMachine = setup({
|
|
|
102
87
|
actions: "assignImageForSubmit"
|
|
103
88
|
}
|
|
104
89
|
} },
|
|
105
|
-
submittingSignature: {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
target: "error",
|
|
121
|
-
actions: "setErrorFromInvoke"
|
|
122
|
-
}
|
|
90
|
+
submittingSignature: { invoke: {
|
|
91
|
+
id: "submitSignature",
|
|
92
|
+
src: "submitSignature",
|
|
93
|
+
input: ({ context }) => ({
|
|
94
|
+
image: context.image,
|
|
95
|
+
type: context.config.type,
|
|
96
|
+
sendBase64: context.config.sendBase64 ?? false
|
|
97
|
+
}),
|
|
98
|
+
onDone: {
|
|
99
|
+
target: "success",
|
|
100
|
+
actions: "setSignatureSubmitResult"
|
|
101
|
+
},
|
|
102
|
+
onError: {
|
|
103
|
+
target: "error",
|
|
104
|
+
actions: "setErrorFromInvoke"
|
|
123
105
|
}
|
|
124
|
-
},
|
|
106
|
+
} },
|
|
125
107
|
success: { after: { 3e3: "finished" } },
|
|
126
108
|
finished: { type: "final" },
|
|
127
|
-
error: {
|
|
109
|
+
error: {}
|
|
128
110
|
}
|
|
129
111
|
});
|
|
130
112
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as getToken, t as api } from "./api-
|
|
2
|
-
import { t as endpoints } from "./endpoints-
|
|
1
|
+
import { r as getToken, t as api } from "./api-DUZwyz0o.esm.js";
|
|
2
|
+
import { t as endpoints } from "./endpoints-BM2_j_IE.esm.js";
|
|
3
3
|
|
|
4
4
|
//#region src/modules/stats/statsServices.ts
|
|
5
5
|
const deviceStatsQueue = [];
|
package/dist/stats.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./api-
|
|
2
|
-
import "./endpoints-
|
|
3
|
-
import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-
|
|
1
|
+
import "./api-DUZwyz0o.esm.js";
|
|
2
|
+
import "./endpoints-BM2_j_IE.esm.js";
|
|
3
|
+
import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-DntyIiGr.esm.js";
|
|
4
4
|
|
|
5
5
|
export { addDeviceStats, flushDeviceStatsQueue, resetDeviceStatsQueue };
|
|
@@ -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 };
|