@nibssplc/cams-sdk-react 1.0.0-rc.131 → 1.0.0-rc.133
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/index.cjs.js +62 -23
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +62 -23
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1777,27 +1777,44 @@ var MFAGate = function (_a) {
|
|
|
1777
1777
|
}
|
|
1778
1778
|
return parsed.data;
|
|
1779
1779
|
}, [MFAEndpoints]);
|
|
1780
|
-
// Extract
|
|
1780
|
+
// Extract primitives from context to avoid object reference churn in deps
|
|
1781
1781
|
var contextRequiresMFA = "requiresMFA" in context ? context.requiresMFA : false;
|
|
1782
1782
|
var contextAccessToken = "accessToken" in context ? context.accessToken : "";
|
|
1783
|
-
var
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1783
|
+
var contextIdToken = "idToken" in context ? context.idToken : "";
|
|
1784
|
+
var contextHasUser = !!context.user;
|
|
1785
|
+
var contextIsLoading = context.isLoading;
|
|
1786
|
+
// Use refs so callbacks never cause effect/useCallback to re-run
|
|
1787
|
+
var onAuthSuccessRef = React.useRef(onAuthSuccess);
|
|
1788
|
+
var contextOnAuthSuccessRef = React.useRef("onAuthSuccess" in context ? context.onAuthSuccess : undefined);
|
|
1789
|
+
React.useEffect(function () { onAuthSuccessRef.current = onAuthSuccess; }, [onAuthSuccess]);
|
|
1790
|
+
React.useEffect(function () { contextOnAuthSuccessRef.current = "onAuthSuccess" in context ? context.onAuthSuccess : undefined; });
|
|
1791
|
+
var fireOnAuthSuccess = React.useCallback(function (tokens) { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
1792
|
+
var _a, _b;
|
|
1793
|
+
return __generator$1(this, function (_c) {
|
|
1794
|
+
switch (_c.label) {
|
|
1795
|
+
case 0: return [4 /*yield*/, Promise.all([
|
|
1796
|
+
(_a = onAuthSuccessRef.current) === null || _a === void 0 ? void 0 : _a.call(onAuthSuccessRef, tokens),
|
|
1797
|
+
(_b = contextOnAuthSuccessRef.current) === null || _b === void 0 ? void 0 : _b.call(contextOnAuthSuccessRef, tokens),
|
|
1798
|
+
])];
|
|
1799
|
+
case 1:
|
|
1800
|
+
_c.sent();
|
|
1801
|
+
return [2 /*return*/];
|
|
1795
1802
|
}
|
|
1796
|
-
}
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1803
|
+
});
|
|
1804
|
+
}); }, [] // stable — reads from refs
|
|
1805
|
+
);
|
|
1806
|
+
var handleComplete = React.useCallback(function (success) { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
1807
|
+
return __generator$1(this, function (_a) {
|
|
1808
|
+
if (success) {
|
|
1809
|
+
camsSdk.Logger.info("MFA Authentication Successful");
|
|
1810
|
+
setAuthState("Completing");
|
|
1811
|
+
}
|
|
1812
|
+
else {
|
|
1813
|
+
camsSdk.Logger.error("MFA Authentication Failed");
|
|
1814
|
+
}
|
|
1815
|
+
return [2 /*return*/];
|
|
1816
|
+
});
|
|
1817
|
+
}); }, []);
|
|
1801
1818
|
var handleAuthFailed = React.useCallback(function () { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
1802
1819
|
var _a;
|
|
1803
1820
|
return __generator$1(this, function (_b) {
|
|
@@ -1817,11 +1834,11 @@ var MFAGate = function (_a) {
|
|
|
1817
1834
|
});
|
|
1818
1835
|
}); }, [context, onAuthError]);
|
|
1819
1836
|
React.useEffect(function () {
|
|
1820
|
-
if (
|
|
1837
|
+
if (contextIsLoading) {
|
|
1821
1838
|
setAuthState("Loading");
|
|
1822
1839
|
return;
|
|
1823
1840
|
}
|
|
1824
|
-
if (
|
|
1841
|
+
if (contextHasUser) {
|
|
1825
1842
|
setAuthState("Authenticated");
|
|
1826
1843
|
return;
|
|
1827
1844
|
}
|
|
@@ -1830,14 +1847,34 @@ var MFAGate = function (_a) {
|
|
|
1830
1847
|
return;
|
|
1831
1848
|
}
|
|
1832
1849
|
var shouldRequireMFA = requiresMFA !== null && requiresMFA !== void 0 ? requiresMFA : contextRequiresMFA;
|
|
1833
|
-
|
|
1850
|
+
if (shouldRequireMFA) {
|
|
1851
|
+
setAuthState("MFA_Required");
|
|
1852
|
+
return;
|
|
1853
|
+
}
|
|
1854
|
+
// Only fire once — guard against re-running while already completing/authenticated
|
|
1855
|
+
setAuthState(function (prev) {
|
|
1856
|
+
if (prev === "Completing" || prev === "Authenticated")
|
|
1857
|
+
return prev;
|
|
1858
|
+
return "Completing";
|
|
1859
|
+
});
|
|
1834
1860
|
}, [
|
|
1835
|
-
|
|
1836
|
-
|
|
1861
|
+
contextIsLoading,
|
|
1862
|
+
contextHasUser,
|
|
1837
1863
|
contextRequiresMFA,
|
|
1838
1864
|
contextAccessToken,
|
|
1839
1865
|
requiresMFA,
|
|
1840
1866
|
]);
|
|
1867
|
+
// Separate effect: fire callback and advance to Authenticated only when Completing
|
|
1868
|
+
React.useEffect(function () {
|
|
1869
|
+
if (authState !== "Completing")
|
|
1870
|
+
return;
|
|
1871
|
+
var cancelled = false;
|
|
1872
|
+
fireOnAuthSuccess({ accessToken: contextAccessToken, idToken: contextIdToken }).then(function () {
|
|
1873
|
+
if (!cancelled)
|
|
1874
|
+
setAuthState("Authenticated");
|
|
1875
|
+
});
|
|
1876
|
+
return function () { cancelled = true; };
|
|
1877
|
+
}, [authState, contextAccessToken, contextIdToken, fireOnAuthSuccess]);
|
|
1841
1878
|
if (useADLogin && !CredentialsAuthEndpoint)
|
|
1842
1879
|
return jsxRuntime.jsx(ErrorFallback, { message: "Invalid AD Login Configuration." });
|
|
1843
1880
|
if (!ValidatedMFAEndpoints)
|
|
@@ -1853,6 +1890,8 @@ var MFAGate = function (_a) {
|
|
|
1853
1890
|
return fallback;
|
|
1854
1891
|
case "MFA_Required":
|
|
1855
1892
|
return (jsxRuntime.jsx(MFAOptions, { MFAEndpoints: ValidatedMFAEndpoints, onComplete: handleComplete, onAuthFailed: handleAuthFailed }));
|
|
1893
|
+
case "Completing":
|
|
1894
|
+
return fallback;
|
|
1856
1895
|
case "Authenticated":
|
|
1857
1896
|
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: children });
|
|
1858
1897
|
case "Unauthenticated":
|