@nibssplc/cams-sdk-react 0.0.1-beta.90 → 0.0.1-beta.91
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/components/MFAGate.d.ts +7 -2
- package/dist/index.cjs.js +12 -10
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +12 -10
- package/dist/index.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -2130,11 +2130,11 @@ var DefaultLoginPage = function () {
|
|
|
2130
2130
|
// variant="outline"
|
|
2131
2131
|
, {
|
|
2132
2132
|
// variant="outline"
|
|
2133
|
-
className: "w-full flex items-center justify-center cursor-pointer bg-[#506f4a] hover:bg-[#506f4a] rounded-lg border border-transparent px-5 py-8 text-base font-medium transition-colors duration-250", onClick:
|
|
2133
|
+
className: "w-full flex items-center justify-center cursor-pointer bg-[#506f4a] hover:bg-[#506f4a] rounded-lg border border-transparent px-5 py-8 text-base font-medium transition-colors duration-250", onClick: handleRegister, disabled: isLoading, children: [jsxRuntimeExports.jsx(KeyIcon, { className: "w-8 h-8 text-[#506f4a]" }), jsxRuntimeExports.jsx("span", { children: "Create a Passkey" })] }), jsxRuntimeExports.jsxs(Button
|
|
2134
2134
|
// variant="outline"
|
|
2135
2135
|
, {
|
|
2136
2136
|
// variant="outline"
|
|
2137
|
-
className: "w-full flex items-center justify-center cursor-pointer bg-[#506f4a] hover:bg-[#506f4a] rounded-lg border border-transparent px-5 py-8 text-base font-medium transition-colors duration-250", onClick:
|
|
2137
|
+
className: "w-full flex items-center justify-center cursor-pointer bg-[#506f4a] hover:bg-[#506f4a] rounded-lg border border-transparent px-5 py-8 text-base font-medium transition-colors duration-250", onClick: handleFIDOLogin, disabled: isLoading, children: [jsxRuntimeExports.jsx(KeyIcon, { className: "w-8 h-8 text-[#506f4a]" }), jsxRuntimeExports.jsx("span", { children: "Sign In with Passkey" })] })] }), jsxRuntimeExports.jsxs(CardFooter, { className: "flex items-center justify-center mt-6 space-x-2 text-gray-400 text-sm", children: [jsxRuntimeExports.jsx(ShieldCheck, { className: "w-4 h-4 text-[#506f4a] pulse-glow" }), jsxRuntimeExports.jsx("span", { children: "Powered By NIBSS" })] })] }) }) }, "landing"), jsxRuntimeExports.jsx(ADLoginModal, { open: showADModal, onOpenChange: setShowADModal, onLogin: function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
2138
2138
|
var username = _b.username, password = _b.password, MFACode = _b.MFACode;
|
|
2139
2139
|
return __generator(this, function (_c) {
|
|
2140
2140
|
// Implement your AD login logic here
|
|
@@ -2149,20 +2149,22 @@ var ErrorFallback = function (_a) {
|
|
|
2149
2149
|
return (jsxRuntimeExports.jsx("div", { className: "flex items-center justify-center min-h-screen bg-gray-50", children: jsxRuntimeExports.jsxs("div", { className: "bg-white p-6 rounded-lg shadow-lg border border-red-200 max-w-md", children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 mb-2", children: [jsxRuntimeExports.jsx("svg", { className: "w-6 h-6 text-red-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: jsxRuntimeExports.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }), jsxRuntimeExports.jsx("h2", { className: "text-lg font-semibold text-gray-900", children: "Configuration Error" })] }), jsxRuntimeExports.jsx("p", { className: "text-red-600", children: message })] }) }));
|
|
2150
2150
|
};
|
|
2151
2151
|
|
|
2152
|
-
var
|
|
2152
|
+
var MFAEndpointsSchema = z$1.object({
|
|
2153
|
+
ValidateMFA: z$1.url("MFAEndpoint must be a valid URL"),
|
|
2154
|
+
});
|
|
2153
2155
|
var MFAGate = function (_a) {
|
|
2154
2156
|
var children = _a.children, _b = _a.fallback, fallback = _b === void 0 ? jsxRuntimeExports.jsx(LoadingSpinner, {}) : _b,
|
|
2155
2157
|
// loginComponent: LoginComponent = DefaultLoginPage,
|
|
2156
|
-
|
|
2158
|
+
MFAEndpoints = _a.MFAEndpoints;
|
|
2157
2159
|
var context = useCAMSContext();
|
|
2158
|
-
var
|
|
2159
|
-
var parsed =
|
|
2160
|
+
var validatedMFAEndpoints = useMemo(function () {
|
|
2161
|
+
var parsed = MFAEndpointsSchema.safeParse(MFAEndpoints);
|
|
2160
2162
|
if (!parsed.success) {
|
|
2161
2163
|
Logger.error("Invalid MFAEndpoint", parsed.error);
|
|
2162
2164
|
return null;
|
|
2163
2165
|
}
|
|
2164
2166
|
return parsed.data;
|
|
2165
|
-
}, [
|
|
2167
|
+
}, [MFAEndpoints]);
|
|
2166
2168
|
var handleComplete = useCallback(function (success) {
|
|
2167
2169
|
if (!success)
|
|
2168
2170
|
Logger.error("MFA authentication failed");
|
|
@@ -2177,15 +2179,15 @@ var MFAGate = function (_a) {
|
|
|
2177
2179
|
}
|
|
2178
2180
|
});
|
|
2179
2181
|
}); }, [context.logout]);
|
|
2180
|
-
Logger.debug("MFA Endpoint >>>", {
|
|
2181
|
-
if (!
|
|
2182
|
+
Logger.debug("MFA Endpoint >>>", { MFAEndpoints: MFAEndpoints });
|
|
2183
|
+
if (!validatedMFAEndpoints)
|
|
2182
2184
|
return jsxRuntimeExports.jsx(ErrorFallback, { message: "Invalid MFA configuration." });
|
|
2183
2185
|
if (context.authMode !== "MSAL")
|
|
2184
2186
|
return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: children });
|
|
2185
2187
|
if (context.isLoading)
|
|
2186
2188
|
return fallback;
|
|
2187
2189
|
if (context.requiresMFA) {
|
|
2188
|
-
return (jsxRuntimeExports.jsx(MFAOptions, { MFAEndpoint:
|
|
2190
|
+
return (jsxRuntimeExports.jsx(MFAOptions, { MFAEndpoint: validatedMFAEndpoints.ValidateMFA, onComplete: handleComplete, onAuthFailed: handleAuthFailed }));
|
|
2189
2191
|
}
|
|
2190
2192
|
if (!context.isAuthenticated) {
|
|
2191
2193
|
return jsxRuntimeExports.jsx(DefaultLoginPage, {});
|