@nibssplc/cams-sdk-react 0.0.1-beta.30 → 0.0.1-beta.31

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.
@@ -1,8 +1,16 @@
1
1
  import React from 'react';
2
2
  import { PublicClientApplication, Configuration } from '@azure/msal-browser';
3
- export interface CAMSMSALProviderProps {
3
+ import { UseCAMSMSALAuthReturn, UseCAMSMSALAuthOptions } from '../hooks/useCAMSMSALAuth';
4
+ interface CAMSMSALContextValue extends UseCAMSMSALAuthReturn {
5
+ isAuthenticated: boolean;
6
+ idToken: string | null;
7
+ accessToken: string | null;
8
+ }
9
+ export interface CAMSMSALProviderProps extends UseCAMSMSALAuthOptions {
4
10
  children: React.ReactNode;
5
11
  msalConfig: Configuration;
6
12
  msalInstance?: PublicClientApplication;
7
13
  }
8
- export declare function CAMSMSALProvider({ children, msalConfig, msalInstance }: CAMSMSALProviderProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function CAMSMSALProvider(props: CAMSMSALProviderProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function useCAMSMSALContext(): CAMSMSALContextValue;
16
+ export {};
@@ -4,7 +4,7 @@ export interface UseCAMSMSALAuthOptions {
4
4
  onAuthError?: (error: CAMSError) => void;
5
5
  onTokenExpired?: () => void;
6
6
  scopes?: string[];
7
- mfaUrl: string;
7
+ mfaUrl?: string;
8
8
  prompt?: string;
9
9
  }
10
10
  export interface UseCAMSMSALAuthReturn {
package/dist/index.cjs.js CHANGED
@@ -16737,7 +16737,7 @@ function useCAMSMSALAuth(options) {
16737
16737
  setAccessToken(response.accessToken);
16738
16738
  setIdToken(response.idToken);
16739
16739
  setIsMFAPending(true);
16740
- if (typeof window !== "undefined") {
16740
+ if (typeof window !== "undefined" && process.env.NODE_ENV !== 'test') {
16741
16741
  window.location.href = options.mfaUrl;
16742
16742
  }
16743
16743
  (_a = options.onAuthSuccess) === null || _a === void 0 ? void 0 : _a.call(options, response.accessToken);
@@ -17253,16 +17253,9 @@ var jsxRuntimeExports = jsxRuntime.exports;
17253
17253
  var CAMSContext = React__default.createContext(null);
17254
17254
  function CAMSProvider(_a) {
17255
17255
  var children = _a.children, defaultConfig = _a.defaultConfig, msalOptions = _a.msalOptions, authOptions = __rest(_a, ["children", "defaultConfig", "msalOptions"]);
17256
- var _b = React__default.useState(false), mounted = _b[0], setMounted = _b[1];
17257
17256
  var auth = useCAMSAuth(authOptions);
17258
17257
  var msalAuth = useCAMSMSALAuth(msalOptions || { mfaUrl: '/auth/multi-factor' });
17259
- React__default.useEffect(function () {
17260
- setMounted(true);
17261
- }, []);
17262
17258
  var value = React__default.useMemo(function () { return (__assign(__assign({}, auth), { defaultConfig: defaultConfig, isAuthenticated: msalAuth.isAuthenticated, idToken: msalAuth.idToken, accessToken: msalAuth.accessToken })); }, [auth, defaultConfig, msalAuth.isAuthenticated, msalAuth.idToken, msalAuth.accessToken]);
17263
- if (!mounted) {
17264
- return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: children });
17265
- }
17266
17259
  return (jsxRuntimeExports.jsx(CAMSContext.Provider, { value: value, children: children }));
17267
17260
  }
17268
17261
  function useCAMSContext() {
@@ -17289,10 +17282,48 @@ function ProtectedRoute(_a) {
17289
17282
  return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: children });
17290
17283
  }
17291
17284
 
17292
- function CAMSMSALProvider(_a) {
17293
- var children = _a.children, msalConfig = _a.msalConfig, msalInstance = _a.msalInstance;
17285
+ var CAMSMSALContext = React__default.createContext(null);
17286
+ function CAMSMSALProviderInner(_a) {
17287
+ var children = _a.children, authOptions = __rest(_a, ["children"]);
17288
+ var auth = useCAMSMSALAuth(authOptions);
17289
+ var _b = React__default.useState({
17290
+ isAuthenticated: false,
17291
+ idToken: null,
17292
+ accessToken: null
17293
+ }), persistedAuth = _b[0], setPersistedAuth = _b[1];
17294
+ React__default.useEffect(function () {
17295
+ if (typeof window !== 'undefined') {
17296
+ var stored = localStorage.getItem('cams-msal-auth');
17297
+ if (stored) {
17298
+ setPersistedAuth(JSON.parse(stored));
17299
+ }
17300
+ }
17301
+ }, []);
17302
+ React__default.useEffect(function () {
17303
+ var authState = {
17304
+ isAuthenticated: auth.isAuthenticated,
17305
+ idToken: auth.idToken,
17306
+ accessToken: auth.accessToken
17307
+ };
17308
+ setPersistedAuth(authState);
17309
+ if (typeof window !== 'undefined') {
17310
+ localStorage.setItem('cams-msal-auth', JSON.stringify(authState));
17311
+ }
17312
+ }, [auth.isAuthenticated, auth.idToken, auth.accessToken]);
17313
+ var value = React__default.useMemo(function () { return (__assign(__assign({}, auth), { isAuthenticated: persistedAuth.isAuthenticated, idToken: persistedAuth.idToken, accessToken: persistedAuth.accessToken })); }, [auth, persistedAuth]);
17314
+ return (jsxRuntimeExports.jsx(CAMSMSALContext.Provider, { value: value, children: children }));
17315
+ }
17316
+ function CAMSMSALProvider(props) {
17317
+ var msalConfig = props.msalConfig, msalInstance = props.msalInstance;
17294
17318
  var instance = msalInstance || new PublicClientApplication(msalConfig);
17295
- return (jsxRuntimeExports.jsx(MsalProvider, { instance: instance, children: children }));
17319
+ return (jsxRuntimeExports.jsx(MsalProvider, { instance: instance, children: jsxRuntimeExports.jsx(CAMSMSALProviderInner, __assign({}, props)) }));
17320
+ }
17321
+ function useCAMSMSALContext() {
17322
+ var context = React__default.useContext(CAMSMSALContext);
17323
+ if (!context) {
17324
+ throw new Error('useCAMSMSALContext must be used within a CAMSMSALProvider');
17325
+ }
17326
+ return context;
17296
17327
  }
17297
17328
 
17298
17329
  function ClientOnly(_a) {
@@ -17314,6 +17345,7 @@ exports.ProtectedRoute = ProtectedRoute;
17314
17345
  exports.useCAMSAuth = useCAMSAuth;
17315
17346
  exports.useCAMSContext = useCAMSContext;
17316
17347
  exports.useCAMSMSALAuth = useCAMSMSALAuth;
17348
+ exports.useCAMSMSALContext = useCAMSMSALContext;
17317
17349
  Object.keys(camsSdk).forEach(function (k) {
17318
17350
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
17319
17351
  enumerable: true,