@azure/msal-react
Advanced tools
Comparing version 1.3.2 to 1.4.0
@@ -88,3 +88,3 @@ 'use strict'; | ||
const name = "@azure/msal-react"; | ||
const version = "1.3.2"; | ||
const version = "1.4.0"; | ||
@@ -113,3 +113,2 @@ /* | ||
} = action; | ||
let newAccounts = previousState.accounts; | ||
let newInProgress = previousState.inProgress; | ||
@@ -143,13 +142,22 @@ | ||
if (!accountArraysAreEqual(currentAccounts, previousState.accounts)) { | ||
payload.logger.info("MsalProvider - updating account state"); | ||
newAccounts = currentAccounts; | ||
if (newInProgress !== previousState.inProgress && !accountArraysAreEqual(currentAccounts, previousState.accounts)) { | ||
// Both inProgress and accounts changed | ||
return { ...previousState, | ||
inProgress: newInProgress, | ||
accounts: currentAccounts | ||
}; | ||
} else if (newInProgress !== previousState.inProgress) { | ||
// Only only inProgress changed | ||
return { ...previousState, | ||
inProgress: newInProgress | ||
}; | ||
} else if (!accountArraysAreEqual(currentAccounts, previousState.accounts)) { | ||
// Only accounts changed | ||
return { ...previousState, | ||
accounts: currentAccounts | ||
}; | ||
} else { | ||
payload.logger.verbose("MsalProvider - no account changes"); | ||
// Nothing changed | ||
return previousState; | ||
} | ||
return { ...previousState, | ||
inProgress: newInProgress, | ||
accounts: newAccounts | ||
}; | ||
}; | ||
@@ -192,16 +200,18 @@ /** | ||
logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`); | ||
instance.handleRedirectPromise().catch(() => { | ||
// Errors should be handled by listening to the LOGIN_FAILURE event | ||
return; | ||
}).finally(() => { | ||
/* | ||
* If handleRedirectPromise returns a cached promise the necessary events may not be fired | ||
* This is a fallback to prevent inProgress from getting stuck in 'startup' | ||
*/ | ||
updateState({ | ||
payload: { | ||
instance, | ||
logger | ||
}, | ||
type: MsalProviderActionType.UNBLOCK_INPROGRESS | ||
instance.initialize().then(() => { | ||
instance.handleRedirectPromise().catch(() => { | ||
// Errors should be handled by listening to the LOGIN_FAILURE event | ||
return; | ||
}).finally(() => { | ||
/* | ||
* If handleRedirectPromise returns a cached promise the necessary events may not be fired | ||
* This is a fallback to prevent inProgress from getting stuck in 'startup' | ||
*/ | ||
updateState({ | ||
payload: { | ||
instance, | ||
logger | ||
}, | ||
type: MsalProviderActionType.UNBLOCK_INPROGRESS | ||
}); | ||
}); | ||
@@ -208,0 +218,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@azure/msal-browser");const o=t.createContext({instance:r.stubbedPublicClientApplication,inProgress:r.InteractionStatus.None,accounts:[],logger:new r.Logger({})}),c=o.Consumer;function a(e,t){return"function"==typeof e?e(t):e}function s(e,t){return e.length>0&&(t.homeAccountId||t.localAccountId||t.username)&&e.filter(e=>!(t.username&&t.username.toLowerCase()!==e.username.toLowerCase()||t.homeAccountId&&t.homeAccountId.toLowerCase()!==e.homeAccountId.toLowerCase()||t.localAccountId&&t.localAccountId.toLowerCase()!==e.localAccountId.toLowerCase()))[0]||null}var i;!function(e){e.UNBLOCK_INPROGRESS="UNBLOCK_INPROGRESS",e.EVENT="EVENT"}(i||(i={}));const u=(e,t)=>{const{type:n,payload:o}=t;let c=e.accounts,a=e.inProgress;switch(n){case i.UNBLOCK_INPROGRESS:e.inProgress===r.InteractionStatus.Startup&&(a=r.InteractionStatus.None,o.logger.info("MsalProvider - handleRedirectPromise resolved, setting inProgress to 'none'"));break;case i.EVENT:const t=o.message,c=r.EventMessageUtils.getInteractionStatusFromEvent(t,e.inProgress);c&&(o.logger.info(`MsalProvider - ${t.eventType} results in setting inProgress from ${e.inProgress} to ${c}`),a=c);break;default:throw new Error("Unknown action type: "+n)}const s=o.instance.getAllAccounts();return function(e,t){if(e.length!==t.length)return!1;const n=[...t];return e.every(e=>{const t=n.shift();return!(!e||!t)&&e.homeAccountId===t.homeAccountId&&e.localAccountId===t.localAccountId&&e.username===t.username})}(s,e.accounts)?o.logger.verbose("MsalProvider - no account changes"):(o.logger.info("MsalProvider - updating account state"),c=s),{...e,inProgress:a,accounts:c}},l=()=>t.useContext(o);function d(e,t){return t&&(t.username||t.homeAccountId||t.localAccountId)?!!s(e,t):e.length>0}function g(e){const{accounts:n}=l(),[r,o]=t.useState(()=>d(n,e));return t.useEffect(()=>{o(d(n,e))},[n,e]),r}function p(e,t){return t&&(t.homeAccountId||t.localAccountId||t.username)?s(e.getAllAccounts(),t):e.getActiveAccount()}function h(e){const{instance:n,inProgress:o,logger:c}=l(),[a,s]=t.useState(()=>p(n,e));return t.useEffect(()=>{s(t=>{const o=p(n,e);return r.AccountEntity.accountInfoIsEqual(t,o,!0)?t:(c.info("useAccount - Updating account"),o)})},[o,e,n,c]),a}class m extends r.AuthError{constructor(e,t){super(e,t),Object.setPrototypeOf(this,m.prototype),this.name="ReactAuthError"}static createInvalidInteractionTypeError(){return new m("invalid_interaction_type","The provided interaction type is invalid.")}static createUnableToFallbackToInteractionError(){return new m("unable_to_fallback_to_interaction","Interaction is required but another interaction is already in progress. Please try again when the current interaction is complete.")}}function I(e,n,o){const{instance:c,inProgress:a,logger:s}=l(),i=g(o),u=h(o),[[d,p],I]=t.useState([null,null]),A=t.useRef(a!==r.InteractionStatus.None);t.useEffect(()=>{A.current=a!==r.InteractionStatus.None},[a]);const f=t.useRef(!0);t.useEffect(()=>{(p||d)&&(f.current=!1)},[p,d]);const E=t.useCallback(async(t,o)=>{const a=o||n;switch(t||e){case r.InteractionType.Popup:return s.verbose("useMsalAuthentication - Calling loginPopup"),c.loginPopup(a);case r.InteractionType.Redirect:return s.verbose("useMsalAuthentication - Calling loginRedirect"),c.loginRedirect(a).then(null);case r.InteractionType.Silent:return s.verbose("useMsalAuthentication - Calling ssoSilent"),c.ssoSilent(a);default:throw m.createInvalidInteractionTypeError()}},[c,e,n,s]),v=t.useCallback(async(t,o)=>{const a=t||e;let i;return o?(s.trace("useMsalAuthentication - acquireToken - Using request provided in the callback"),i={...o}):n?(s.trace("useMsalAuthentication - acquireToken - Using request provided in the hook"),i={...n,scopes:n.scopes||r.OIDC_DEFAULT_SCOPES}):(s.trace("useMsalAuthentication - acquireToken - No request object provided, using default request."),i={scopes:r.OIDC_DEFAULT_SCOPES}),!i.account&&u&&(s.trace("useMsalAuthentication - acquireToken - Attaching account to request"),i.account=u),(async()=>(s.verbose("useMsalAuthentication - Calling acquireTokenSilent"),c.acquireTokenSilent(i).catch(async e=>{if(e instanceof r.InteractionRequiredAuthError){if(A.current)throw s.error("useMsalAuthentication - Interaction required but is already in progress. Please try again, if needed, after interaction completes."),m.createUnableToFallbackToInteractionError();return s.error("useMsalAuthentication - Interaction required, falling back to interaction"),E(a,i)}throw e})))().then(e=>(I([e,null]),e)).catch(e=>{throw I([null,e]),e})},[c,e,n,s,u,E]);return t.useEffect(()=>{const e=c.addEventCallback(e=>{switch(e.eventType){case r.EventType.LOGIN_SUCCESS:case r.EventType.SSO_SILENT_SUCCESS:e.payload&&I([e.payload,null]);break;case r.EventType.LOGIN_FAILURE:case r.EventType.SSO_SILENT_FAILURE:e.error&&I([null,e.error])}});return s.verbose("useMsalAuthentication - Registered event callback with id: "+e),()=>{e&&(s.verbose("useMsalAuthentication - Removing event callback "+e),c.removeEventCallback(e))}},[c,s]),t.useEffect(()=>{f.current&&a===r.InteractionStatus.None&&(f.current=!1,i?u&&(s.info("useMsalAuthentication - User is authenticated, attempting to acquire token"),v().catch(()=>{})):(s.info("useMsalAuthentication - No user is authenticated, attempting to login"),E().catch(()=>{})))},[i,u,a,E,v,s]),{login:E,acquireToken:v,result:d,error:p}}exports.AuthenticatedTemplate=function(e){let{username:o,homeAccountId:c,localAccountId:s,children:i}=e;const u=l();return g(t.useMemo(()=>({username:o,homeAccountId:c,localAccountId:s}),[o,c,s]))&&u.inProgress!==r.InteractionStatus.Startup?n.createElement(n.Fragment,null,a(i,u)):null},exports.MsalAuthenticationTemplate=function(e){let{interactionType:o,username:c,homeAccountId:s,localAccountId:i,authenticationRequest:u,loadingComponent:d,errorComponent:p,children:h}=e;const m=t.useMemo(()=>({username:c,homeAccountId:s,localAccountId:i}),[c,s,i]),A=l(),f=I(o,u,m),E=g(m);if(f.error&&A.inProgress===r.InteractionStatus.None){if(p)return n.createElement(p,Object.assign({},f));throw f.error}return E?n.createElement(n.Fragment,null,a(h,f)):d&&A.inProgress!==r.InteractionStatus.None?n.createElement(d,Object.assign({},A)):null},exports.MsalConsumer=c,exports.MsalContext=o,exports.MsalProvider=function(e){let{instance:c,children:a}=e;t.useEffect(()=>{c.initializeWrapperLibrary(r.WrapperSKU.React,"1.3.2")},[c]);const s=t.useMemo(()=>c.getLogger().clone("@azure/msal-react","1.3.2"),[c]),[l,d]=t.useReducer(u,void 0,()=>({inProgress:r.InteractionStatus.Startup,accounts:c.getAllAccounts()}));return t.useEffect(()=>{const e=c.addEventCallback(e=>{d({payload:{instance:c,logger:s,message:e},type:i.EVENT})});return s.verbose("MsalProvider - Registered event callback with id: "+e),c.handleRedirectPromise().catch(()=>{}).finally(()=>{d({payload:{instance:c,logger:s},type:i.UNBLOCK_INPROGRESS})}),()=>{e&&(s.verbose("MsalProvider - Removing event callback "+e),c.removeEventCallback(e))}},[c,s]),n.createElement(o.Provider,{value:{instance:c,inProgress:l.inProgress,accounts:l.accounts,logger:s}},a)},exports.UnauthenticatedTemplate=function(e){let{username:o,homeAccountId:c,localAccountId:s,children:i}=e;const u=l();return g(t.useMemo(()=>({username:o,homeAccountId:c,localAccountId:s}),[o,c,s]))||u.inProgress===r.InteractionStatus.Startup||u.inProgress===r.InteractionStatus.HandleRedirect?null:n.createElement(n.Fragment,null,a(i,u))},exports.useAccount=h,exports.useIsAuthenticated=g,exports.useMsal=l,exports.useMsalAuthentication=I,exports.version="1.3.2",exports.withMsal=e=>{const t=t=>{const r=l();return n.createElement(e,Object.assign({},t,{msalContext:r}))};return t.displayName=`withMsal(${e.displayName||e.name||"Component"})`,t}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@azure/msal-browser");const o=t.createContext({instance:r.stubbedPublicClientApplication,inProgress:r.InteractionStatus.None,accounts:[],logger:new r.Logger({})}),c=o.Consumer;function a(e,t){return"function"==typeof e?e(t):e}function s(e,t){if(e.length!==t.length)return!1;const n=[...t];return e.every(e=>{const t=n.shift();return!(!e||!t)&&e.homeAccountId===t.homeAccountId&&e.localAccountId===t.localAccountId&&e.username===t.username})}function i(e,t){return e.length>0&&(t.homeAccountId||t.localAccountId||t.username)&&e.filter(e=>!(t.username&&t.username.toLowerCase()!==e.username.toLowerCase()||t.homeAccountId&&t.homeAccountId.toLowerCase()!==e.homeAccountId.toLowerCase()||t.localAccountId&&t.localAccountId.toLowerCase()!==e.localAccountId.toLowerCase()))[0]||null}var u;!function(e){e.UNBLOCK_INPROGRESS="UNBLOCK_INPROGRESS",e.EVENT="EVENT"}(u||(u={}));const l=(e,t)=>{const{type:n,payload:o}=t;let c=e.inProgress;switch(n){case u.UNBLOCK_INPROGRESS:e.inProgress===r.InteractionStatus.Startup&&(c=r.InteractionStatus.None,o.logger.info("MsalProvider - handleRedirectPromise resolved, setting inProgress to 'none'"));break;case u.EVENT:const t=o.message,a=r.EventMessageUtils.getInteractionStatusFromEvent(t,e.inProgress);a&&(o.logger.info(`MsalProvider - ${t.eventType} results in setting inProgress from ${e.inProgress} to ${a}`),c=a);break;default:throw new Error("Unknown action type: "+n)}const a=o.instance.getAllAccounts();return c===e.inProgress||s(a,e.accounts)?c!==e.inProgress?{...e,inProgress:c}:s(a,e.accounts)?e:{...e,accounts:a}:{...e,inProgress:c,accounts:a}},d=()=>t.useContext(o);function g(e,t){return t&&(t.username||t.homeAccountId||t.localAccountId)?!!i(e,t):e.length>0}function h(e){const{accounts:n}=d(),[r,o]=t.useState(()=>g(n,e));return t.useEffect(()=>{o(g(n,e))},[n,e]),r}function p(e,t){return t&&(t.homeAccountId||t.localAccountId||t.username)?i(e.getAllAccounts(),t):e.getActiveAccount()}function m(e){const{instance:n,inProgress:o,logger:c}=d(),[a,s]=t.useState(()=>p(n,e));return t.useEffect(()=>{s(t=>{const o=p(n,e);return r.AccountEntity.accountInfoIsEqual(t,o,!0)?t:(c.info("useAccount - Updating account"),o)})},[o,e,n,c]),a}class I extends r.AuthError{constructor(e,t){super(e,t),Object.setPrototypeOf(this,I.prototype),this.name="ReactAuthError"}static createInvalidInteractionTypeError(){return new I("invalid_interaction_type","The provided interaction type is invalid.")}static createUnableToFallbackToInteractionError(){return new I("unable_to_fallback_to_interaction","Interaction is required but another interaction is already in progress. Please try again when the current interaction is complete.")}}function A(e,n,o){const{instance:c,inProgress:a,logger:s}=d(),i=h(o),u=m(o),[[l,g],p]=t.useState([null,null]),A=t.useRef(a!==r.InteractionStatus.None);t.useEffect(()=>{A.current=a!==r.InteractionStatus.None},[a]);const f=t.useRef(!0);t.useEffect(()=>{(g||l)&&(f.current=!1)},[g,l]);const E=t.useCallback(async(t,o)=>{const a=o||n;switch(t||e){case r.InteractionType.Popup:return s.verbose("useMsalAuthentication - Calling loginPopup"),c.loginPopup(a);case r.InteractionType.Redirect:return s.verbose("useMsalAuthentication - Calling loginRedirect"),c.loginRedirect(a).then(null);case r.InteractionType.Silent:return s.verbose("useMsalAuthentication - Calling ssoSilent"),c.ssoSilent(a);default:throw I.createInvalidInteractionTypeError()}},[c,e,n,s]),v=t.useCallback(async(t,o)=>{const a=t||e;let i;return o?(s.trace("useMsalAuthentication - acquireToken - Using request provided in the callback"),i={...o}):n?(s.trace("useMsalAuthentication - acquireToken - Using request provided in the hook"),i={...n,scopes:n.scopes||r.OIDC_DEFAULT_SCOPES}):(s.trace("useMsalAuthentication - acquireToken - No request object provided, using default request."),i={scopes:r.OIDC_DEFAULT_SCOPES}),!i.account&&u&&(s.trace("useMsalAuthentication - acquireToken - Attaching account to request"),i.account=u),(async()=>(s.verbose("useMsalAuthentication - Calling acquireTokenSilent"),c.acquireTokenSilent(i).catch(async e=>{if(e instanceof r.InteractionRequiredAuthError){if(A.current)throw s.error("useMsalAuthentication - Interaction required but is already in progress. Please try again, if needed, after interaction completes."),I.createUnableToFallbackToInteractionError();return s.error("useMsalAuthentication - Interaction required, falling back to interaction"),E(a,i)}throw e})))().then(e=>(p([e,null]),e)).catch(e=>{throw p([null,e]),e})},[c,e,n,s,u,E]);return t.useEffect(()=>{const e=c.addEventCallback(e=>{switch(e.eventType){case r.EventType.LOGIN_SUCCESS:case r.EventType.SSO_SILENT_SUCCESS:e.payload&&p([e.payload,null]);break;case r.EventType.LOGIN_FAILURE:case r.EventType.SSO_SILENT_FAILURE:e.error&&p([null,e.error])}});return s.verbose("useMsalAuthentication - Registered event callback with id: "+e),()=>{e&&(s.verbose("useMsalAuthentication - Removing event callback "+e),c.removeEventCallback(e))}},[c,s]),t.useEffect(()=>{f.current&&a===r.InteractionStatus.None&&(f.current=!1,i?u&&(s.info("useMsalAuthentication - User is authenticated, attempting to acquire token"),v().catch(()=>{})):(s.info("useMsalAuthentication - No user is authenticated, attempting to login"),E().catch(()=>{})))},[i,u,a,E,v,s]),{login:E,acquireToken:v,result:l,error:g}}exports.AuthenticatedTemplate=function(e){let{username:o,homeAccountId:c,localAccountId:s,children:i}=e;const u=d();return h(t.useMemo(()=>({username:o,homeAccountId:c,localAccountId:s}),[o,c,s]))&&u.inProgress!==r.InteractionStatus.Startup?n.createElement(n.Fragment,null,a(i,u)):null},exports.MsalAuthenticationTemplate=function(e){let{interactionType:o,username:c,homeAccountId:s,localAccountId:i,authenticationRequest:u,loadingComponent:l,errorComponent:g,children:p}=e;const m=t.useMemo(()=>({username:c,homeAccountId:s,localAccountId:i}),[c,s,i]),I=d(),f=A(o,u,m),E=h(m);if(f.error&&I.inProgress===r.InteractionStatus.None){if(g)return n.createElement(g,Object.assign({},f));throw f.error}return E?n.createElement(n.Fragment,null,a(p,f)):l&&I.inProgress!==r.InteractionStatus.None?n.createElement(l,Object.assign({},I)):null},exports.MsalConsumer=c,exports.MsalContext=o,exports.MsalProvider=function(e){let{instance:c,children:a}=e;t.useEffect(()=>{c.initializeWrapperLibrary(r.WrapperSKU.React,"1.4.0")},[c]);const s=t.useMemo(()=>c.getLogger().clone("@azure/msal-react","1.4.0"),[c]),[i,d]=t.useReducer(l,void 0,()=>({inProgress:r.InteractionStatus.Startup,accounts:c.getAllAccounts()}));return t.useEffect(()=>{const e=c.addEventCallback(e=>{d({payload:{instance:c,logger:s,message:e},type:u.EVENT})});return s.verbose("MsalProvider - Registered event callback with id: "+e),c.initialize().then(()=>{c.handleRedirectPromise().catch(()=>{}).finally(()=>{d({payload:{instance:c,logger:s},type:u.UNBLOCK_INPROGRESS})})}),()=>{e&&(s.verbose("MsalProvider - Removing event callback "+e),c.removeEventCallback(e))}},[c,s]),n.createElement(o.Provider,{value:{instance:c,inProgress:i.inProgress,accounts:i.accounts,logger:s}},a)},exports.UnauthenticatedTemplate=function(e){let{username:o,homeAccountId:c,localAccountId:s,children:i}=e;const u=d();return h(t.useMemo(()=>({username:o,homeAccountId:c,localAccountId:s}),[o,c,s]))||u.inProgress===r.InteractionStatus.Startup||u.inProgress===r.InteractionStatus.HandleRedirect?null:n.createElement(n.Fragment,null,a(i,u))},exports.useAccount=m,exports.useIsAuthenticated=h,exports.useMsal=d,exports.useMsalAuthentication=A,exports.version="1.4.0",exports.withMsal=e=>{const t=t=>{const r=d();return n.createElement(e,Object.assign({},t,{msalContext:r}))};return t.displayName=`withMsal(${e.displayName||e.name||"Component"})`,t}; | ||
//# sourceMappingURL=msal-react.cjs.production.min.js.map |
@@ -81,3 +81,3 @@ import React__default, { createContext, useEffect, useMemo, useReducer, useContext, useState, useRef, useCallback } from 'react'; | ||
const name = "@azure/msal-react"; | ||
const version = "1.3.2"; | ||
const version = "1.4.0"; | ||
@@ -106,3 +106,2 @@ /* | ||
} = action; | ||
let newAccounts = previousState.accounts; | ||
let newInProgress = previousState.inProgress; | ||
@@ -136,13 +135,22 @@ | ||
if (!accountArraysAreEqual(currentAccounts, previousState.accounts)) { | ||
payload.logger.info("MsalProvider - updating account state"); | ||
newAccounts = currentAccounts; | ||
if (newInProgress !== previousState.inProgress && !accountArraysAreEqual(currentAccounts, previousState.accounts)) { | ||
// Both inProgress and accounts changed | ||
return { ...previousState, | ||
inProgress: newInProgress, | ||
accounts: currentAccounts | ||
}; | ||
} else if (newInProgress !== previousState.inProgress) { | ||
// Only only inProgress changed | ||
return { ...previousState, | ||
inProgress: newInProgress | ||
}; | ||
} else if (!accountArraysAreEqual(currentAccounts, previousState.accounts)) { | ||
// Only accounts changed | ||
return { ...previousState, | ||
accounts: currentAccounts | ||
}; | ||
} else { | ||
payload.logger.verbose("MsalProvider - no account changes"); | ||
// Nothing changed | ||
return previousState; | ||
} | ||
return { ...previousState, | ||
inProgress: newInProgress, | ||
accounts: newAccounts | ||
}; | ||
}; | ||
@@ -185,16 +193,18 @@ /** | ||
logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`); | ||
instance.handleRedirectPromise().catch(() => { | ||
// Errors should be handled by listening to the LOGIN_FAILURE event | ||
return; | ||
}).finally(() => { | ||
/* | ||
* If handleRedirectPromise returns a cached promise the necessary events may not be fired | ||
* This is a fallback to prevent inProgress from getting stuck in 'startup' | ||
*/ | ||
updateState({ | ||
payload: { | ||
instance, | ||
logger | ||
}, | ||
type: MsalProviderActionType.UNBLOCK_INPROGRESS | ||
instance.initialize().then(() => { | ||
instance.handleRedirectPromise().catch(() => { | ||
// Errors should be handled by listening to the LOGIN_FAILURE event | ||
return; | ||
}).finally(() => { | ||
/* | ||
* If handleRedirectPromise returns a cached promise the necessary events may not be fired | ||
* This is a fallback to prevent inProgress from getting stuck in 'startup' | ||
*/ | ||
updateState({ | ||
payload: { | ||
instance, | ||
logger | ||
}, | ||
type: MsalProviderActionType.UNBLOCK_INPROGRESS | ||
}); | ||
}); | ||
@@ -201,0 +211,0 @@ }); |
export declare const name = "@azure/msal-react"; | ||
export declare const version = "1.3.2"; | ||
export declare const version = "1.4.0"; |
{ | ||
"name": "@azure/msal-react", | ||
"version": "1.3.2", | ||
"version": "1.4.0", | ||
"author": { | ||
@@ -44,3 +44,3 @@ "name": "Microsoft", | ||
"peerDependencies": { | ||
"@azure/msal-browser": "^2.23.0", | ||
"@azure/msal-browser": "^2.24.0", | ||
"react": "^16.8.0 || ^17 || ^18" | ||
@@ -50,3 +50,3 @@ }, | ||
"devDependencies": { | ||
"@azure/msal-browser": "^2.23.0", | ||
"@azure/msal-browser": "^2.24.0", | ||
"@testing-library/jest-dom": "^5.11.5", | ||
@@ -53,0 +53,0 @@ "@testing-library/react": "^11.2.3", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
204831
1340