@incodetech/core 0.0.0-dev-20260909-14ef44cf → 0.0.0-dev-20260910-30fb659a
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/{BrowserDiagnosticsCryptoProvider-BqvOagjI.esm.js → BrowserDiagnosticsCryptoProvider-BCbOmuXk.esm.js} +1 -1
- package/dist/ae-signature.esm.js +1 -1
- package/dist/{apiError-CE5YD5T0.esm.js → apiError-CaZfzHR5.esm.js} +1 -1
- package/dist/authentication.esm.js +2 -2
- package/dist/{authenticationManager-BMqAIjH1.esm.js → authenticationManager-DGbFYQEa.esm.js} +3 -3
- package/dist/{authenticationStateMachine-BKMxS3yH.esm.js → authenticationStateMachine-ChM9tVwT.esm.js} +2 -2
- package/dist/consent.d.ts +1 -1
- package/dist/{consentManager-DLOyIZzt.d.ts → consentManager-uhDPdU6i.d.ts} +1 -1
- package/dist/{deepsightLoader-nTArZgT2.esm.js → deepsightLoader-CgAY2Xik.esm.js} +2 -2
- package/dist/device.esm.js +5 -2
- package/dist/dynamic-forms.esm.js +2 -2
- package/dist/{dynamicFormsManager-HVbJKaF8.esm.js → dynamicFormsManager-DbJ2sx60.esm.js} +1 -1
- package/dist/{dynamicFormsStateMachine-BGYqEGcO.esm.js → dynamicFormsStateMachine-DdOXUivK.esm.js} +1 -1
- package/dist/ekyb.esm.js +3 -3
- package/dist/{ekybManager-D080qI3d.esm.js → ekybManager-DQb_i9cC.esm.js} +1 -1
- package/dist/{ekybStateMachine-4Ac_gP-0.esm.js → ekybStateMachine-CbK8tAgd.esm.js} +1 -1
- package/dist/electronic-signature.esm.js +1 -1
- package/dist/{electronicSignatureManager-CuZp9R8p.esm.js → electronicSignatureManager-BO07Vfiv.esm.js} +1 -1
- package/dist/extensibility.d.ts +4 -4
- package/dist/extensibility.esm.js +10 -10
- package/dist/{faceCaptureManagerFactory-waLeHRj_.esm.js → faceCaptureManagerFactory-DgAdH1KT.esm.js} +1 -1
- package/dist/{faceCaptureSetup-JxQbmDt_.esm.js → faceCaptureSetup-DdCkYn9V.esm.js} +1 -1
- package/dist/{feature-management-DkbzJPHi.esm.js → feature-management-B1auhoHt.esm.js} +30 -5
- package/dist/feature-management.esm.js +1 -1
- package/dist/flow.d.ts +19 -0
- package/dist/flow.esm.js +106 -23
- package/dist/{flowCompletionService-1HFgv9BU.esm.js → flowCompletionService-DJNQBnYX.esm.js} +1 -1
- package/dist/{flowServices-C2pUbFWe.esm.js → flowServices-B6Dn_OP0.esm.js} +58 -14
- package/dist/geolocation.esm.js +2 -2
- package/dist/{geolocationManager-CeDChUNS.esm.js → geolocationManager-B9Fpz7LU.esm.js} +1 -1
- package/dist/{geolocationStateMachine-C1fxKLJP.esm.js → geolocationStateMachine-iLoEsywE.esm.js} +1 -1
- package/dist/id-ocr.d.ts +1 -1
- package/dist/id-selfie-flow.esm.js +7 -7
- package/dist/id.esm.js +4 -4
- package/dist/{idCaptureDefaults-CbCpNaoY.esm.js → idCaptureDefaults-R53rpPfW.esm.js} +1 -1
- package/dist/{idCaptureManager-Cpd9uT8z.esm.js → idCaptureManager-CvDHZ2YE.esm.js} +3 -3
- package/dist/{idCaptureServices-X5poMwbu.esm.js → idCaptureServices-D_mcjCtz.esm.js} +3 -3
- package/dist/{idCaptureStateMachine-BZPAUJzI.esm.js → idCaptureStateMachine-CL_f4BrG.esm.js} +7 -7
- package/dist/{idOcrManager-CFlDwUvN.d.ts → idOcrManager-BF_cXZq8.d.ts} +1 -1
- package/dist/identity-reuse.d.ts +1 -1
- package/dist/{identityReuseManager-BXEBBI3N.d.ts → identityReuseManager-BFDI7iFK.d.ts} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/mandatory-consent.d.ts +1 -1
- package/dist/{mandatoryConsentManager-eFC-htLS.d.ts → mandatoryConsentManager-CSh8HjSF.d.ts} +1 -1
- package/dist/{onDeviceFaceResults-BgIPrRr2.esm.js → onDeviceFaceResults-BtD_Dij3.esm.js} +4 -4
- package/dist/personhood.esm.js +4 -4
- package/dist/qe-signature.esm.js +1 -1
- package/dist/{runChildModule-Bq791c2t.esm.js → runChildModule-DL_BwJt5.esm.js} +1 -1
- package/dist/{sdkVersion-Bc55H50S.esm.js → sdkVersion-CeUGP0Pv.esm.js} +1 -1
- package/dist/selfie.esm.js +5 -5
- package/dist/{selfieManager-I_h3YE2X.esm.js → selfieManager-CiVA7398.esm.js} +3 -3
- package/dist/{selfieStateMachine-DJwDxPAT.esm.js → selfieStateMachine-BCbLR8OJ.esm.js} +2 -2
- package/dist/{session-CoY3St8F.esm.js → session-B-b1IjuR.esm.js} +3 -3
- package/dist/session.d.ts +16 -1
- package/dist/session.esm.js +5 -5
- package/dist/{sessionInitializer-BEjB0UVH.esm.js → sessionInitializer-Gw37lpQ_.esm.js} +92 -33
- package/dist/{setup-DLn1eHU9.esm.js → setup-CxO2a0J_.esm.js} +6 -5
- package/dist/{setup-B9s2jaZK.d.ts → setup-D6yz9se2.d.ts} +14 -0
- package/dist/{trueSightService-VUN8WK4N.esm.js → trueSightService-BTf2KSpq.esm.js} +2 -2
- package/dist/video-selfie.esm.js +4 -4
- package/dist/{videoSelfieCameraWarmer-Dkey7P7h.esm.js → videoSelfieCameraWarmer-C0GHxpmK.esm.js} +3 -3
- package/dist/wasm.d.ts +1 -1
- package/dist/wasm.esm.js +1 -1
- package/dist/workflow.esm.js +14 -14
- package/package.json +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { E as updateFeatureManagementUser } from "./feature-management-
|
|
1
|
+
import { E as updateFeatureManagementUser } from "./feature-management-B1auhoHt.esm.js";
|
|
2
2
|
import { c as setToken, r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
|
|
3
|
-
import { _ as noteTokenActivated, d as fetchFeatureConfig, f as isFeatureEnabled, l as trueSightLog, m as noteEnvironment, p as resetFeatureConfigCache, s as startTrueSightCollection } from "./trueSightService-
|
|
3
|
+
import { _ as noteTokenActivated, d as fetchFeatureConfig, f as isFeatureEnabled, l as trueSightLog, m as noteEnvironment, p as resetFeatureConfigCache, s as startTrueSightCollection } from "./trueSightService-BTf2KSpq.esm.js";
|
|
4
4
|
import { v as addEvent, y as getAnalyticsBatcher } from "./events-ijlbX_Wx.esm.js";
|
|
5
|
-
import { t as SDK_VERSION } from "./sdkVersion-
|
|
5
|
+
import { t as SDK_VERSION } from "./sdkVersion-CeUGP0Pv.esm.js";
|
|
6
6
|
import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
|
|
7
7
|
import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue } from "./stats-DkK-f8JT.esm.js";
|
|
8
8
|
import { t as getParsedUserAgent } from "./getParsedUserAgent-B2iFDql1.esm.js";
|
|
@@ -1466,8 +1466,18 @@ var FingerprintProvider = class {
|
|
|
1466
1466
|
constructor(ipLookup) {
|
|
1467
1467
|
this.ipLookup = ipLookup;
|
|
1468
1468
|
}
|
|
1469
|
+
prime() {
|
|
1470
|
+
this.startVisitorId();
|
|
1471
|
+
}
|
|
1472
|
+
startVisitorId() {
|
|
1473
|
+
if (!this.visitorIdPromise) {
|
|
1474
|
+
this.visitorIdPromise = getThumbmarkId();
|
|
1475
|
+
this.visitorIdPromise.catch(() => void 0);
|
|
1476
|
+
}
|
|
1477
|
+
return this.visitorIdPromise;
|
|
1478
|
+
}
|
|
1469
1479
|
async getFingerprint(disableIpify = false) {
|
|
1470
|
-
const visitorId = await
|
|
1480
|
+
const visitorId = await this.startVisitorId();
|
|
1471
1481
|
const [deviceInfo, ip] = await Promise.all([getDeviceFingerprintInfo(), disableIpify ? Promise.resolve("") : this.ipLookup.getIp()]);
|
|
1472
1482
|
return {
|
|
1473
1483
|
visitorId,
|
|
@@ -1680,6 +1690,25 @@ function preloadOptionalFlow() {
|
|
|
1680
1690
|
let cachedFingerprintSuccess = false;
|
|
1681
1691
|
let cachedFingerprintResult;
|
|
1682
1692
|
let sessionInitPromise = null;
|
|
1693
|
+
let fingerprintSettled = null;
|
|
1694
|
+
function createFingerprintSettled() {
|
|
1695
|
+
let resolve = () => void 0;
|
|
1696
|
+
return {
|
|
1697
|
+
promise: new Promise((r) => {
|
|
1698
|
+
resolve = r;
|
|
1699
|
+
}),
|
|
1700
|
+
resolve
|
|
1701
|
+
};
|
|
1702
|
+
}
|
|
1703
|
+
/**
|
|
1704
|
+
* Resolves once the device-fingerprint step of the current session
|
|
1705
|
+
* activation has settled (submitted, failed, or skipped) — with the backend's
|
|
1706
|
+
* result when there is one. Resolves immediately when no activation is in
|
|
1707
|
+
* flight. Pairs with `initializeSession({ awaitFingerprint: false })`.
|
|
1708
|
+
*/
|
|
1709
|
+
function whenSessionFingerprintSettled() {
|
|
1710
|
+
return fingerprintSettled?.promise ?? Promise.resolve(cachedFingerprintResult);
|
|
1711
|
+
}
|
|
1683
1712
|
/**
|
|
1684
1713
|
* Activates a session by setting the auth token on the HTTP client and
|
|
1685
1714
|
* preloading session-scoped state.
|
|
@@ -1710,7 +1739,7 @@ let sessionInitPromise = null;
|
|
|
1710
1739
|
* ```
|
|
1711
1740
|
*/
|
|
1712
1741
|
async function initializeSession(options = {}) {
|
|
1713
|
-
const { token, hostingApp, signal, preloadFlow } = options;
|
|
1742
|
+
const { token, hostingApp, signal, preloadFlow, awaitFingerprint = true } = options;
|
|
1714
1743
|
let triLinkPromise = Promise.resolve();
|
|
1715
1744
|
if (token !== void 0 && token !== getToken()) {
|
|
1716
1745
|
setToken(token);
|
|
@@ -1721,6 +1750,7 @@ async function initializeSession(options = {}) {
|
|
|
1721
1750
|
const flowPreloadPromise = getToken() && preloadFlow === true ? preloadOptionalFlow() : Promise.resolve();
|
|
1722
1751
|
await triLinkPromise;
|
|
1723
1752
|
if (sessionInitialized && cachedFeatures) {
|
|
1753
|
+
if (awaitFingerprint) await whenSessionFingerprintSettled();
|
|
1724
1754
|
await flowPreloadPromise;
|
|
1725
1755
|
return {
|
|
1726
1756
|
features: cachedFeatures,
|
|
@@ -1731,9 +1761,19 @@ async function initializeSession(options = {}) {
|
|
|
1731
1761
|
}
|
|
1732
1762
|
if (sessionInitPromise) {
|
|
1733
1763
|
const result = await sessionInitPromise;
|
|
1764
|
+
if (awaitFingerprint) await whenSessionFingerprintSettled();
|
|
1734
1765
|
await flowPreloadPromise;
|
|
1735
|
-
return
|
|
1766
|
+
return {
|
|
1767
|
+
...result,
|
|
1768
|
+
fingerprintSuccess: cachedFingerprintSuccess,
|
|
1769
|
+
fingerprintResult: cachedFingerprintResult
|
|
1770
|
+
};
|
|
1736
1771
|
}
|
|
1772
|
+
const settled = createFingerprintSettled();
|
|
1773
|
+
fingerprintSettled = settled;
|
|
1774
|
+
const fingerprintProvider = clientFingerprintEnabled ? new FingerprintProvider(new IpifyProvider()) : void 0;
|
|
1775
|
+
fingerprintProvider?.prime?.();
|
|
1776
|
+
let fingerprintPromise;
|
|
1737
1777
|
sessionInitPromise = (async () => {
|
|
1738
1778
|
let features;
|
|
1739
1779
|
let serverDisableIpify = false;
|
|
@@ -1747,27 +1787,16 @@ async function initializeSession(options = {}) {
|
|
|
1747
1787
|
startTrueSightCollection();
|
|
1748
1788
|
}
|
|
1749
1789
|
const disableIpify = resolveDisableIpify(serverDisableIpify);
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
}, {
|
|
1761
|
-
fingerprintProvider,
|
|
1762
|
-
browserEnv
|
|
1763
|
-
});
|
|
1764
|
-
fingerprintSuccess = true;
|
|
1765
|
-
flushDeviceStatsQueue();
|
|
1766
|
-
} catch (error) {
|
|
1767
|
-
console.warn("Failed to submit device fingerprint:", error);
|
|
1768
|
-
trueSightLog("warning", "session", "other", "device fingerprint submit failed");
|
|
1769
|
-
}
|
|
1770
|
-
else flushDeviceStatsQueue();
|
|
1790
|
+
const preloadedFlow = await flowPreloadPromise;
|
|
1791
|
+
await updateFeatureManagementUser({ customIDs: {
|
|
1792
|
+
hashed_onboarding_id: features.sessionIdentifier || void 0,
|
|
1793
|
+
flow_id: preloadedFlow?.flowId
|
|
1794
|
+
} });
|
|
1795
|
+
fingerprintPromise = submitSessionFingerprint(fingerprintProvider, {
|
|
1796
|
+
disableIpify,
|
|
1797
|
+
hostingApp,
|
|
1798
|
+
signal
|
|
1799
|
+
}, settled);
|
|
1771
1800
|
try {
|
|
1772
1801
|
const browserInfo = new BrowserInfoProvider().getBrowserInfo();
|
|
1773
1802
|
const language = new BrowserEnvironmentProvider().getNavigatorProperty("language");
|
|
@@ -1791,25 +1820,54 @@ async function initializeSession(options = {}) {
|
|
|
1791
1820
|
} catch (error) {
|
|
1792
1821
|
console.warn("Failed to send browser info event:", error);
|
|
1793
1822
|
}
|
|
1823
|
+
if (awaitFingerprint) await fingerprintPromise;
|
|
1794
1824
|
sessionInitialized = true;
|
|
1795
1825
|
cachedFeatures = features;
|
|
1796
1826
|
cachedDisableIpify = disableIpify;
|
|
1797
|
-
cachedFingerprintSuccess = fingerprintSuccess;
|
|
1798
|
-
cachedFingerprintResult = fingerprintResult;
|
|
1799
1827
|
await flowPreloadPromise;
|
|
1800
1828
|
return {
|
|
1801
1829
|
features,
|
|
1802
1830
|
disableIpify,
|
|
1803
|
-
fingerprintSuccess,
|
|
1804
|
-
fingerprintResult
|
|
1831
|
+
fingerprintSuccess: cachedFingerprintSuccess,
|
|
1832
|
+
fingerprintResult: cachedFingerprintResult
|
|
1805
1833
|
};
|
|
1806
1834
|
})().finally(() => {
|
|
1807
1835
|
sessionInitPromise = null;
|
|
1808
|
-
|
|
1836
|
+
if (!fingerprintPromise) settled.resolve(void 0);
|
|
1837
|
+
(fingerprintPromise ?? Promise.resolve()).finally(() => {
|
|
1838
|
+
if (fingerprintSettled === settled) getAnalyticsBatcher()?.start();
|
|
1839
|
+
});
|
|
1809
1840
|
});
|
|
1810
1841
|
return sessionInitPromise;
|
|
1811
1842
|
}
|
|
1812
1843
|
/**
|
|
1844
|
+
* Device-fingerprint step of session activation. Writes the cached result only
|
|
1845
|
+
* while it still belongs to the current activation (a token change resets
|
|
1846
|
+
* `fingerprintSettled`) and always settles the waiter.
|
|
1847
|
+
*/
|
|
1848
|
+
async function submitSessionFingerprint(fingerprintProvider, options, settled) {
|
|
1849
|
+
const isCurrent = () => fingerprintSettled === settled;
|
|
1850
|
+
try {
|
|
1851
|
+
if (fingerprintProvider) try {
|
|
1852
|
+
const result = await submitDeviceFingerprint(options, {
|
|
1853
|
+
fingerprintProvider,
|
|
1854
|
+
browserEnv: new BrowserEnvironmentProvider()
|
|
1855
|
+
});
|
|
1856
|
+
if (isCurrent()) {
|
|
1857
|
+
cachedFingerprintResult = result;
|
|
1858
|
+
cachedFingerprintSuccess = true;
|
|
1859
|
+
flushDeviceStatsQueue();
|
|
1860
|
+
}
|
|
1861
|
+
} catch (error) {
|
|
1862
|
+
console.warn("Failed to submit device fingerprint:", error);
|
|
1863
|
+
trueSightLog("warning", "session", "other", "device fingerprint submit failed");
|
|
1864
|
+
}
|
|
1865
|
+
else if (isCurrent()) flushDeviceStatsQueue();
|
|
1866
|
+
} finally {
|
|
1867
|
+
settled.resolve(isCurrent() ? cachedFingerprintResult : void 0);
|
|
1868
|
+
}
|
|
1869
|
+
}
|
|
1870
|
+
/**
|
|
1813
1871
|
* Gets the cached disableIpify flag.
|
|
1814
1872
|
* Returns false if session hasn't been initialized.
|
|
1815
1873
|
*/
|
|
@@ -1839,9 +1897,10 @@ function resetSessionInit() {
|
|
|
1839
1897
|
cachedFingerprintSuccess = false;
|
|
1840
1898
|
cachedFingerprintResult = void 0;
|
|
1841
1899
|
sessionInitPromise = null;
|
|
1900
|
+
fingerprintSettled = null;
|
|
1842
1901
|
resetFeatureConfigCache();
|
|
1843
1902
|
resetIpifyCache();
|
|
1844
1903
|
resetDeviceStatsQueue();
|
|
1845
1904
|
}
|
|
1846
1905
|
//#endregion
|
|
1847
|
-
export {
|
|
1906
|
+
export { getThumbmarkId as _, resetSessionInit as a, whenSessionFingerprintSettled as c, resetStandaloneFlowPolicy as d, resolveStandaloneFlowPolicy as f, IpifyProvider as g, getFingerprint as h, initializeSession as i, getStandaloneFlowPolicy as l, isBrowserSimulation as m, getFingerprintEnabled as n, setClientFingerprintEnabled as o, setStandaloneFlowPolicy as p, getSessionFingerprintResult as r, setClientIpLookupEnabled as s, getDisableIpify as t, registerFlowPreloader as u, getDeviceFingerprintInfo as v, BrowserEnvironmentProvider as y };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { d as deriveSiblingJsPath, f as WASM_MODEL_FILES } from "./wasmWebClient-BJCaFeBL.esm.js";
|
|
2
2
|
import { c as warmupWasm, r as WasmUtilProvider, s as setWasmOnDeviceMode, t as resolveLocalStorage } from "./safeStorage-0bZuUtSP.esm.js";
|
|
3
3
|
import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
|
|
4
|
-
import { C as resetFeatureManagement, D as applyEnvironment, O as getEnvironment, S as optOutFeatureManagement, b as initializeFeatureManagement, c as resetResolvedExperiments, k as resetEnvironment, v as getIsFeatureManagementLocked, w as resetFeatureManagementProviderInstance } from "./feature-management-
|
|
4
|
+
import { C as resetFeatureManagement, D as applyEnvironment, O as getEnvironment, S as optOutFeatureManagement, b as initializeFeatureManagement, c as resetResolvedExperiments, k as resetEnvironment, v as getIsFeatureManagementLocked, w as resetFeatureManagementProviderInstance } from "./feature-management-B1auhoHt.esm.js";
|
|
5
5
|
import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
|
|
6
6
|
import { a as resetApi, i as isApiConfigured, n as getApi, r as getToken, s as setHttpRequestObserver, t as api } from "./api-Bx3gKW_y.esm.js";
|
|
7
|
-
import { S as upgradeToWasmHttpClient$1, b as installFreshHttpClient, g as noteTestingSignals, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as resetHttpClientState, y as getStoredHttpConfig } from "./trueSightService-
|
|
7
|
+
import { S as upgradeToWasmHttpClient$1, b as installFreshHttpClient, g as noteTestingSignals, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as resetHttpClientState, y as getStoredHttpConfig } from "./trueSightService-BTf2KSpq.esm.js";
|
|
8
8
|
import { b as resetAnalyticsBatcher, c as resetExperimentAssignments, x as setAnalyticsBatcher, y as getAnalyticsBatcher } from "./events-ijlbX_Wx.esm.js";
|
|
9
|
-
import { a as resetSessionInit, d as
|
|
9
|
+
import { a as resetSessionInit, d as resetStandaloneFlowPolicy, f as resolveStandaloneFlowPolicy, i as initializeSession, o as setClientFingerprintEnabled, p as setStandaloneFlowPolicy, s as setClientIpLookupEnabled, u as registerFlowPreloader, y as BrowserEnvironmentProvider } from "./sessionInitializer-Gw37lpQ_.esm.js";
|
|
10
10
|
import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
|
|
11
11
|
import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-DkK-f8JT.esm.js";
|
|
12
12
|
import { a as resetTRI, n as initializeTRI, o as resetTRIProviderInstance } from "./tri-4RsGrIt6.esm.js";
|
|
13
|
-
import {
|
|
13
|
+
import { i as resetDashboardFlowCache, r as preloadDashboardFlow } from "./flowServices-B6Dn_OP0.esm.js";
|
|
14
14
|
//#region ../infra/src/wasm/wasmDefaults.ts
|
|
15
15
|
const WASM_CDN_BASE_URL = "https://cdn.incodesmile.com/ml-wasm-kit-release";
|
|
16
16
|
/** The WASM version bundled and tested with this SDK release. */
|
|
@@ -752,7 +752,7 @@ async function setup(options) {
|
|
|
752
752
|
if (!getIsFeatureManagementLocked()) if (options.featureManagement === false) optOutFeatureManagement();
|
|
753
753
|
else {
|
|
754
754
|
const featureManagementSetupOptions = typeof options.featureManagement === "object" ? options.featureManagement : {};
|
|
755
|
-
|
|
755
|
+
const featureManagementReady = initializeFeatureManagement({
|
|
756
756
|
environment: getEnvironment(),
|
|
757
757
|
clientExperimentId: featureManagementSetupOptions.clientExperimentId,
|
|
758
758
|
disableStableId: featureManagementSetupOptions.disableStableId,
|
|
@@ -761,6 +761,7 @@ async function setup(options) {
|
|
|
761
761
|
appVersion: featureManagementSetupOptions.appVersion,
|
|
762
762
|
redactedUserInfo: featureManagementSetupOptions.redactedUserInfo
|
|
763
763
|
});
|
|
764
|
+
if (featureManagementSetupOptions.awaitInitialization === true) await featureManagementReady;
|
|
764
765
|
}
|
|
765
766
|
else if (options.featureManagement !== void 0) console.error("[FeatureManagement] Feature management is locked after the first setup() call and cannot be changed (re-enabled, disabled, or reconfigured). Ignoring this change. Call reset() before changing it.");
|
|
766
767
|
if (options.tri) await initializeTRI(options.tri, { sessionToken: options.token });
|
|
@@ -309,6 +309,20 @@ type SetupOptions = {
|
|
|
309
309
|
* The boolean shorthand (`featureManagement: true`) is equivalent to `{}`.
|
|
310
310
|
*/
|
|
311
311
|
type FeatureManagementSetupOptions = {
|
|
312
|
+
/**
|
|
313
|
+
* Whether `setup()` waits for feature management to finish loading gate and
|
|
314
|
+
* experiment values before it resolves. Default `false`: `setup()` resolves
|
|
315
|
+
* as soon as the HTTP client is ready and the values load in the background
|
|
316
|
+
* (typically 150–250 ms sooner, which a host spends on `createSession` /
|
|
317
|
+
* mounting `<incode-flow>` instead). Reads made before loading settles
|
|
318
|
+
* return their documented defaults (`status: 'uninitialized'`); await
|
|
319
|
+
* `getIsFeatureManagementInitialized()` from
|
|
320
|
+
* `@incodetech/core/feature-management` when you need a value that early,
|
|
321
|
+
* or set `true` to restore the blocking behaviour. `<incode-flow>` /
|
|
322
|
+
* `<incode-workflow>` and the SDK's own modules are unaffected: the identity
|
|
323
|
+
* update they depend on waits for readiness itself.
|
|
324
|
+
*/
|
|
325
|
+
awaitInitialization?: boolean;
|
|
312
326
|
/**
|
|
313
327
|
* Integrator-scoped randomization/targeting unit, registered as
|
|
314
328
|
* the `client_experiment_id` custom ID during initialization.
|
|
@@ -2,7 +2,7 @@ import { a as setWebApiHttpTransport, i as initializeWasmWebClient, o as setupWa
|
|
|
2
2
|
import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
|
|
3
3
|
import { i as isApiConfigured, n as getApi, o as setClient, r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
|
|
4
4
|
import { S as subscribeEvent, n as eventModuleNames } from "./events-ijlbX_Wx.esm.js";
|
|
5
|
-
import { t as SDK_VERSION } from "./sdkVersion-
|
|
5
|
+
import { t as SDK_VERSION } from "./sdkVersion-CeUGP0Pv.esm.js";
|
|
6
6
|
import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
|
|
7
7
|
//#region ../infra/src/http/createApi.ts
|
|
8
8
|
var FetchHttpError = class extends Error {
|
|
@@ -1320,7 +1320,7 @@ let cryptoProviderPromise = null;
|
|
|
1320
1320
|
* the service's prewarm).
|
|
1321
1321
|
*/
|
|
1322
1322
|
function loadDiagnosticsCryptoProvider() {
|
|
1323
|
-
cryptoProviderPromise ??= import("./BrowserDiagnosticsCryptoProvider-
|
|
1323
|
+
cryptoProviderPromise ??= import("./BrowserDiagnosticsCryptoProvider-BCbOmuXk.esm.js").then((module) => new module.BrowserDiagnosticsCryptoProvider());
|
|
1324
1324
|
return cryptoProviderPromise;
|
|
1325
1325
|
}
|
|
1326
1326
|
/**
|
package/dist/video-selfie.esm.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { t as ensureWasmPipelines } from "./setup-
|
|
1
|
+
import { t as ensureWasmPipelines } from "./setup-CxO2a0J_.esm.js";
|
|
2
2
|
import { r as WasmUtilProvider } from "./safeStorage-0bZuUtSP.esm.js";
|
|
3
3
|
import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
|
|
4
4
|
import { t as api } from "./api-Bx3gKW_y.esm.js";
|
|
5
5
|
import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
|
|
6
|
-
import { d as
|
|
6
|
+
import { d as resolveVideoSelfieSteps, f as videoSelfieWasmPipelines, u as facingModeForStep } from "./flowServices-B6Dn_OP0.esm.js";
|
|
7
7
|
import { i as assign, r as sendTo, s as createActor, t as setup, u as createManager } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
8
8
|
import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
|
|
9
9
|
import { t as BrowserVisibilityObserverProvider } from "./BrowserVisibilityObserverProvider-BrJN1B8A.esm.js";
|
|
10
10
|
import { t as MultipartRecordingService } from "./multipartRecordingService-B3C_zlev.esm.js";
|
|
11
|
-
import { i as CameraCompositor } from "./idCaptureDefaults-
|
|
11
|
+
import { i as CameraCompositor } from "./idCaptureDefaults-R53rpPfW.esm.js";
|
|
12
12
|
import { t as VIDEO_SELFIE_VALIDATION_ATTEMPTS_EXHAUSTED_CODE } from "./advanceableErrors-CpF2cBy6.esm.js";
|
|
13
|
-
import { a as isConnectionError, n as defaultAcquireCamera, r as createDefaultStepDetector, t as createVideoSelfieCameraWarmer } from "./videoSelfieCameraWarmer-
|
|
13
|
+
import { a as isConnectionError, n as defaultAcquireCamera, r as createDefaultStepDetector, t as createVideoSelfieCameraWarmer } from "./videoSelfieCameraWarmer-C0GHxpmK.esm.js";
|
|
14
14
|
import { t as videoSelfieFlowModuleMachine } from "./videoSelfieFlowModuleMachine-BUe2uACW.esm.js";
|
|
15
15
|
//#region src/modules/video-selfie/videoSelfieWasm.ts
|
|
16
16
|
function warmupVideoSelfieWasm(config, steps = resolveVideoSelfieSteps(config)) {
|
package/dist/{videoSelfieCameraWarmer-Dkey7P7h.esm.js → videoSelfieCameraWarmer-C0GHxpmK.esm.js}
RENAMED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
|
|
2
2
|
import { t as api } from "./api-Bx3gKW_y.esm.js";
|
|
3
3
|
import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
|
|
4
|
-
import {
|
|
4
|
+
import { d as resolveVideoSelfieSteps, u as facingModeForStep } from "./flowServices-B6Dn_OP0.esm.js";
|
|
5
5
|
import { i as requestCameraWithFallback, r as requestCameraAccess } from "./camera-_2sXMXiF.esm.js";
|
|
6
6
|
import { t as checkPermission } from "./permissionServices-J5S1dEIf.esm.js";
|
|
7
|
-
import { a as encryptSelfieImage, l as startDetection, p as FaceDetectionProvider } from "./onDeviceFaceResults-
|
|
7
|
+
import { a as encryptSelfieImage, l as startDetection, p as FaceDetectionProvider } from "./onDeviceFaceResults-BtD_Dij3.esm.js";
|
|
8
8
|
import { a as StreamCanvasProcessingSession } from "./recordingsRepository-CCWy13M-.esm.js";
|
|
9
9
|
import { n as getBackCameraStream } from "./backCameraStream-DE_5qY04.esm.js";
|
|
10
10
|
import { n as getWindowDimensions } from "./getDeviceClass-CeBiEayS.esm.js";
|
|
11
11
|
import { t as FACE_ERROR_CODES } from "./types-BN5RPPIZ.esm.js";
|
|
12
12
|
import { a as uploadSelfie, r as processFace, t as getFaceErrorCodeFromUnknown } from "./selfieErrorUtils-C6gC06J7.esm.js";
|
|
13
13
|
import { t as StreamCanvasCapture } from "./StreamCanvasCapture-D2XcXCZ4.esm.js";
|
|
14
|
-
import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider, t as DEFAULT_ID_CAPTURE_GEOMETRY } from "./idCaptureDefaults-
|
|
14
|
+
import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider, t as DEFAULT_ID_CAPTURE_GEOMETRY } from "./idCaptureDefaults-R53rpPfW.esm.js";
|
|
15
15
|
//#region src/modules/video-selfie/videoSelfieCompareService.ts
|
|
16
16
|
async function postVideoSelfieCompare(endpoint, base64Image) {
|
|
17
17
|
return (await api.post(endpoint, { base64Image })).data;
|
package/dist/wasm.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
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-CXHBgvFC.js";
|
|
2
|
-
import { c as setWasmConfig, i as initializeWasmUtil, n as WasmConfig, r as ensureWasmPipelines, s as resolveWasmConfigForPipelines, u as upgradeToWasmHttpClient } from "./setup-
|
|
2
|
+
import { c as setWasmConfig, i as initializeWasmUtil, n as WasmConfig, r as ensureWasmPipelines, s as resolveWasmConfigForPipelines, u as upgradeToWasmHttpClient } from "./setup-D6yz9se2.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.07-post7-post3";
|
package/dist/wasm.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { f as WASM_MODEL_FILES, h as WASM_PIPELINE_MODEL_NAMES, p as WASM_PIPELINE_LAZY_MODEL_NAMES } from "./wasmWebClient-BJCaFeBL.esm.js";
|
|
2
|
-
import { a as resolveWasmConfigForPipelines, c as upgradeToWasmHttpClient, d as buildDefaultWasmConfig, f as buildWasmConfigFromBasePath, m as resolveWasmConfig, n as initializeWasmUtil, o as setWasmConfig, t as ensureWasmPipelines, u as DEFAULT_WASM_VERSION } from "./setup-
|
|
2
|
+
import { a as resolveWasmConfigForPipelines, c as upgradeToWasmHttpClient, d as buildDefaultWasmConfig, f as buildWasmConfigFromBasePath, m as resolveWasmConfig, n as initializeWasmUtil, o as setWasmConfig, t as ensureWasmPipelines, u as DEFAULT_WASM_VERSION } from "./setup-CxO2a0J_.esm.js";
|
|
3
3
|
import { c as warmupWasm } from "./safeStorage-0bZuUtSP.esm.js";
|
|
4
4
|
//#region src/defineWasm.ts
|
|
5
5
|
function requiredModels(pipelines) {
|
package/dist/workflow.esm.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { E as updateFeatureManagementUser } from "./feature-management-
|
|
1
|
+
import { E as updateFeatureManagementUser } from "./feature-management-B1auhoHt.esm.js";
|
|
2
2
|
import { t as api } from "./api-Bx3gKW_y.esm.js";
|
|
3
|
-
import { l as trueSightLog } from "./trueSightService-
|
|
3
|
+
import { l as trueSightLog } from "./trueSightService-BTf2KSpq.esm.js";
|
|
4
4
|
import { n as eventModuleNames, o as createManagerInstrumentation, v as addEvent } from "./events-ijlbX_Wx.esm.js";
|
|
5
|
-
import { i as initializeSession, r as getSessionFingerprintResult } from "./sessionInitializer-
|
|
5
|
+
import { i as initializeSession, r as getSessionFingerprintResult } from "./sessionInitializer-Gw37lpQ_.esm.js";
|
|
6
6
|
import { t as endpoints } from "./endpoints-D3B9mUHh.esm.js";
|
|
7
|
-
import { i as toIncodeApiError } from "./apiError-
|
|
8
|
-
import {
|
|
7
|
+
import { i as toIncodeApiError } from "./apiError-CaZfzHR5.esm.js";
|
|
8
|
+
import { _ as toEkybConfig } from "./flowServices-B6Dn_OP0.esm.js";
|
|
9
9
|
import { i as toEkycConfig } from "./ekycUtils-Dew1rBG0.esm.js";
|
|
10
10
|
import { i as assign, s as createActor, t as setup, u as createManager } from "./xstate.esm-BuFLFuzz.esm.js";
|
|
11
11
|
import { n as fromPromise } from "./xstate-actors.esm-BXeQ-Ucz.esm.js";
|
|
12
|
-
import { r as electronicSignatureMachine } from "./electronicSignatureManager-
|
|
12
|
+
import { r as electronicSignatureMachine } from "./electronicSignatureManager-BO07Vfiv.esm.js";
|
|
13
13
|
import "./ae-signature.esm.js";
|
|
14
14
|
import { t as antifraudMachine } from "./antifraudStateMachine-BHxehiJZ.esm.js";
|
|
15
|
-
import { t as authenticationMachine } from "./authenticationStateMachine-
|
|
15
|
+
import { t as authenticationMachine } from "./authenticationStateMachine-ChM9tVwT.esm.js";
|
|
16
16
|
import { t as certificateIssuanceMachine } from "./certificateIssuanceStateMachine-BBD5h8c4.esm.js";
|
|
17
17
|
import { t as consentMachine } from "./consentStateMachine-DbUmqWgV.esm.js";
|
|
18
18
|
import { t as curpValidationMachine } from "./curpValidationStateMachine-DvUPC_8S.esm.js";
|
|
19
19
|
import { t as customWatchlistMachine } from "./customWatchlistStateMachine-qZVgkKgP.esm.js";
|
|
20
20
|
import { t as documentCaptureMachine } from "./documentCaptureStateMachine-D_9dw5b1.esm.js";
|
|
21
|
-
import { t as dynamicFormsMachine } from "./dynamicFormsStateMachine-
|
|
22
|
-
import { t as ekybMachine } from "./ekybStateMachine-
|
|
21
|
+
import { t as dynamicFormsMachine } from "./dynamicFormsStateMachine-DdOXUivK.esm.js";
|
|
22
|
+
import { t as ekybMachine } from "./ekybStateMachine-CbK8tAgd.esm.js";
|
|
23
23
|
import { t as ekycMachine } from "./ekycStateMachine-CmdW2gVm.esm.js";
|
|
24
24
|
import { t as emailMachine } from "./emailStateMachine-CyPFZ7dW.esm.js";
|
|
25
|
-
import { t as selfieMachine } from "./selfieStateMachine-
|
|
26
|
-
import { t as idCaptureMachine } from "./idCaptureStateMachine-
|
|
25
|
+
import { t as selfieMachine } from "./selfieStateMachine-BCbLR8OJ.esm.js";
|
|
26
|
+
import { t as idCaptureMachine } from "./idCaptureStateMachine-CL_f4BrG.esm.js";
|
|
27
27
|
import { t as phoneMachine } from "./phoneStateMachine-jl8LJKCo.esm.js";
|
|
28
28
|
import { t as watchlistMachine } from "./watchlistStateMachine-DvOby3a-.esm.js";
|
|
29
29
|
import { t as watchlistForBusinessMachine } from "./watchlistForBusinessStateMachine-DEzgjz7C.esm.js";
|
|
@@ -32,12 +32,12 @@ import { t as mandatoryConsentMachine } from "./mandatoryConsentStateMachine-DSD
|
|
|
32
32
|
import { t as idOcrStateMachine } from "./idOcrStateMachine-33UvRAHE.esm.js";
|
|
33
33
|
import { n as redirectToMobileMachine } from "./redirectToMobileStateMachine-v3otpT-L.esm.js";
|
|
34
34
|
import { t as signatureMachine } from "./signatureStateMachine-BHPwkJZS.esm.js";
|
|
35
|
-
import { t as geolocationMachine } from "./geolocationStateMachine-
|
|
35
|
+
import { t as geolocationMachine } from "./geolocationStateMachine-iLoEsywE.esm.js";
|
|
36
36
|
import { t as governmentValidationMachine } from "./governmentValidationStateMachine-D1ZnEqdd.esm.js";
|
|
37
37
|
import { t as idVerificationMachine } from "./idVerificationStateMachine-BPGrQZEm.esm.js";
|
|
38
38
|
import { t as faceMatchMachine } from "./faceMatchStateMachine-BUc5FXYy.esm.js";
|
|
39
|
-
import { n as getFinishStatus, r as getTotalScoreStatus } from "./flowCompletionService-
|
|
40
|
-
import { n as attachFlowEventEmitter, t as runChildModule } from "./runChildModule-
|
|
39
|
+
import { n as getFinishStatus, r as getTotalScoreStatus } from "./flowCompletionService-DJNQBnYX.esm.js";
|
|
40
|
+
import { n as attachFlowEventEmitter, t as runChildModule } from "./runChildModule-DL_BwJt5.esm.js";
|
|
41
41
|
import { n as isAdvanceableError } from "./advanceableErrors-CpF2cBy6.esm.js";
|
|
42
42
|
import "./qe-signature.esm.js";
|
|
43
43
|
import { t as videoSelfieFlowModuleMachine } from "./videoSelfieFlowModuleMachine-BUe2uACW.esm.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@incodetech/core",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-20260910-30fb659a",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -276,8 +276,8 @@
|
|
|
276
276
|
"tsdown": "^0.22.8",
|
|
277
277
|
"typescript": "^5.9.3",
|
|
278
278
|
"vitest": "4.1.10",
|
|
279
|
-
"@incodetech/
|
|
280
|
-
"@incodetech/
|
|
279
|
+
"@incodetech/config": "1.0.2",
|
|
280
|
+
"@incodetech/infra": "1.3.0"
|
|
281
281
|
},
|
|
282
282
|
"scripts": {
|
|
283
283
|
"build": "tsdown -c tsdown.config.ts",
|