import { AccountEntity, AuthError, EventMessageUtils, EventType, InteractionRequiredAuthError, InteractionStatus, InteractionType, Logger, OIDC_DEFAULT_SCOPES, WrapperSKU, stubbedPublicClientApplication } from "./chunk-Z3MJAI5R.js"; import "./chunk-6NKFQNRI.js"; import { require_react } from "./chunk-3TFVT2CW.js"; import { __toESM } from "./chunk-4MBMRILA.js"; // node_modules/@azure/msal-react/dist/MsalContext.js var React = __toESM(require_react(), 1); var defaultMsalContext = { instance: stubbedPublicClientApplication, inProgress: InteractionStatus.None, accounts: [], logger: new Logger({}) }; var MsalContext = React.createContext(defaultMsalContext); var MsalConsumer = MsalContext.Consumer; // node_modules/@azure/msal-react/dist/MsalProvider.js var import_react = __toESM(require_react(), 1); // node_modules/@azure/msal-react/dist/utils/utilities.js function getChildrenOrFunction(children, args) { if (typeof children === "function") { return children(args); } return children; } function accountArraysAreEqual(arrayA, arrayB) { if (arrayA.length !== arrayB.length) { return false; } const comparisonArray = [...arrayB]; return arrayA.every((elementA) => { const elementB = comparisonArray.shift(); if (!elementA || !elementB) { return false; } return elementA.homeAccountId === elementB.homeAccountId && elementA.localAccountId === elementB.localAccountId && elementA.username === elementB.username; }); } function getAccountByIdentifiers(allAccounts, accountIdentifiers) { if (allAccounts.length > 0 && (accountIdentifiers.homeAccountId || accountIdentifiers.localAccountId || accountIdentifiers.username)) { const matchedAccounts = allAccounts.filter((accountObj) => { if (accountIdentifiers.username && accountIdentifiers.username.toLowerCase() !== accountObj.username.toLowerCase()) { return false; } if (accountIdentifiers.homeAccountId && accountIdentifiers.homeAccountId.toLowerCase() !== accountObj.homeAccountId.toLowerCase()) { return false; } if (accountIdentifiers.localAccountId && accountIdentifiers.localAccountId.toLowerCase() !== accountObj.localAccountId.toLowerCase()) { return false; } return true; }); return matchedAccounts[0] || null; } else { return null; } } // node_modules/@azure/msal-react/dist/packageMetadata.js var name = "@azure/msal-react"; var version = "3.0.17"; // node_modules/@azure/msal-react/dist/MsalProvider.js var MsalProviderActionType = { UNBLOCK_INPROGRESS: "UNBLOCK_INPROGRESS", EVENT: "EVENT" }; var reducer = (previousState, action) => { const { type, payload } = action; let newInProgress = previousState.inProgress; switch (type) { case MsalProviderActionType.UNBLOCK_INPROGRESS: if (previousState.inProgress === InteractionStatus.Startup) { newInProgress = InteractionStatus.None; payload.logger.info("MsalProvider - handleRedirectPromise resolved, setting inProgress to 'none'"); } break; case MsalProviderActionType.EVENT: const message = payload.message; const status = EventMessageUtils.getInteractionStatusFromEvent(message, previousState.inProgress); if (status) { payload.logger.info(`MsalProvider - ${message.eventType} results in setting inProgress from ${previousState.inProgress} to ${status}`); newInProgress = status; } break; default: throw new Error(`Unknown action type: ${type}`); } if (newInProgress === InteractionStatus.Startup) { return previousState; } const currentAccounts = payload.instance.getAllAccounts(); if (newInProgress !== previousState.inProgress && !accountArraysAreEqual(currentAccounts, previousState.accounts)) { return { ...previousState, inProgress: newInProgress, accounts: currentAccounts }; } else if (newInProgress !== previousState.inProgress) { return { ...previousState, inProgress: newInProgress }; } else if (!accountArraysAreEqual(currentAccounts, previousState.accounts)) { return { ...previousState, accounts: currentAccounts }; } else { return previousState; } }; function MsalProvider({ instance, children }) { (0, import_react.useEffect)(() => { instance.initializeWrapperLibrary(WrapperSKU.React, version); }, [instance]); const logger = (0, import_react.useMemo)(() => { return instance.getLogger().clone(name, version); }, [instance]); const [state, updateState] = (0, import_react.useReducer)(reducer, void 0, () => { return { inProgress: InteractionStatus.Startup, accounts: [] }; }); (0, import_react.useEffect)(() => { const callbackId = instance.addEventCallback((message) => { updateState({ payload: { instance, logger, message }, type: MsalProviderActionType.EVENT }); }); logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`); instance.initialize().then(() => { instance.handleRedirectPromise().catch(() => { return; }).finally(() => { updateState({ payload: { instance, logger }, type: MsalProviderActionType.UNBLOCK_INPROGRESS }); }); }).catch(() => { return; }); return () => { if (callbackId) { logger.verbose(`MsalProvider - Removing event callback ${callbackId}`); instance.removeEventCallback(callbackId); } }; }, [instance, logger]); const contextValue = { instance, inProgress: state.inProgress, accounts: state.accounts, logger }; return import_react.default.createElement(MsalContext.Provider, { value: contextValue }, children); } // node_modules/@azure/msal-react/dist/components/AuthenticatedTemplate.js var import_react4 = __toESM(require_react(), 1); // node_modules/@azure/msal-react/dist/hooks/useMsal.js var import_react2 = __toESM(require_react(), 1); var useMsal = () => (0, import_react2.useContext)(MsalContext); // node_modules/@azure/msal-react/dist/hooks/useIsAuthenticated.js var import_react3 = __toESM(require_react(), 1); function isAuthenticated(allAccounts, matchAccount) { if (matchAccount && (matchAccount.username || matchAccount.homeAccountId || matchAccount.localAccountId)) { return !!getAccountByIdentifiers(allAccounts, matchAccount); } return allAccounts.length > 0; } function useIsAuthenticated(matchAccount) { const { accounts: allAccounts, inProgress } = useMsal(); const isUserAuthenticated = (0, import_react3.useMemo)(() => { if (inProgress === InteractionStatus.Startup) { return false; } return isAuthenticated(allAccounts, matchAccount); }, [allAccounts, inProgress, matchAccount]); return isUserAuthenticated; } // node_modules/@azure/msal-react/dist/components/AuthenticatedTemplate.js function AuthenticatedTemplate({ username, homeAccountId, localAccountId, children }) { const context = useMsal(); const accountIdentifier = (0, import_react4.useMemo)(() => { return { username, homeAccountId, localAccountId }; }, [username, homeAccountId, localAccountId]); const isAuthenticated2 = useIsAuthenticated(accountIdentifier); if (isAuthenticated2 && context.inProgress !== InteractionStatus.Startup) { return import_react4.default.createElement(import_react4.default.Fragment, null, getChildrenOrFunction(children, context)); } return null; } // node_modules/@azure/msal-react/dist/components/UnauthenticatedTemplate.js var import_react5 = __toESM(require_react(), 1); function UnauthenticatedTemplate({ username, homeAccountId, localAccountId, children }) { const context = useMsal(); const accountIdentifier = (0, import_react5.useMemo)(() => { return { username, homeAccountId, localAccountId }; }, [username, homeAccountId, localAccountId]); const isAuthenticated2 = useIsAuthenticated(accountIdentifier); if (!isAuthenticated2 && context.inProgress !== InteractionStatus.Startup && context.inProgress !== InteractionStatus.HandleRedirect) { return import_react5.default.createElement(import_react5.default.Fragment, null, getChildrenOrFunction(children, context)); } return null; } // node_modules/@azure/msal-react/dist/components/MsalAuthenticationTemplate.js var import_react8 = __toESM(require_react(), 1); // node_modules/@azure/msal-react/dist/hooks/useMsalAuthentication.js var import_react7 = __toESM(require_react(), 1); // node_modules/@azure/msal-react/dist/hooks/useAccount.js var import_react6 = __toESM(require_react(), 1); function getAccount(instance, accountIdentifiers) { if (!accountIdentifiers || !accountIdentifiers.homeAccountId && !accountIdentifiers.localAccountId && !accountIdentifiers.username) { return instance.getActiveAccount(); } return getAccountByIdentifiers(instance.getAllAccounts(), accountIdentifiers); } function useAccount(accountIdentifiers) { const { instance, inProgress, logger } = useMsal(); const [account, setAccount] = (0, import_react6.useState)(() => { if (inProgress === InteractionStatus.Startup) { return null; } else { return getAccount(instance, accountIdentifiers); } }); (0, import_react6.useEffect)(() => { if (inProgress !== InteractionStatus.Startup) { setAccount((currentAccount) => { const nextAccount = getAccount(instance, accountIdentifiers); if (!AccountEntity.accountInfoIsEqual(currentAccount, nextAccount, true)) { logger.info("useAccount - Updating account"); return nextAccount; } return currentAccount; }); } }, [inProgress, accountIdentifiers, instance, logger]); return account; } // node_modules/@azure/msal-react/dist/error/ReactAuthError.js var ReactAuthErrorMessage = { invalidInteractionType: { code: "invalid_interaction_type", desc: "The provided interaction type is invalid." }, unableToFallbackToInteraction: { code: "unable_to_fallback_to_interaction", desc: "Interaction is required but another interaction is already in progress. Please try again when the current interaction is complete." } }; var ReactAuthError = class _ReactAuthError extends AuthError { constructor(errorCode, errorMessage) { super(errorCode, errorMessage); Object.setPrototypeOf(this, _ReactAuthError.prototype); this.name = "ReactAuthError"; } static createInvalidInteractionTypeError() { return new _ReactAuthError(ReactAuthErrorMessage.invalidInteractionType.code, ReactAuthErrorMessage.invalidInteractionType.desc); } static createUnableToFallbackToInteractionError() { return new _ReactAuthError(ReactAuthErrorMessage.unableToFallbackToInteraction.code, ReactAuthErrorMessage.unableToFallbackToInteraction.desc); } }; // node_modules/@azure/msal-react/dist/hooks/useMsalAuthentication.js function useMsalAuthentication(interactionType, authenticationRequest, accountIdentifiers) { const { instance, inProgress, logger } = useMsal(); const isAuthenticated2 = useIsAuthenticated(accountIdentifiers); const account = useAccount(accountIdentifiers); const [[result, error], setResponse] = (0, import_react7.useState)([null, null]); const mounted = (0, import_react7.useRef)(true); (0, import_react7.useEffect)(() => { return () => { mounted.current = false; }; }, []); const interactionInProgress = (0, import_react7.useRef)(inProgress !== InteractionStatus.None); (0, import_react7.useEffect)(() => { interactionInProgress.current = inProgress !== InteractionStatus.None; }, [inProgress]); const shouldAcquireToken = (0, import_react7.useRef)(true); (0, import_react7.useEffect)(() => { if (!!error) { shouldAcquireToken.current = false; return; } if (!!result) { shouldAcquireToken.current = false; return; } }, [error, result]); const login = (0, import_react7.useCallback)(async (callbackInteractionType, callbackRequest) => { const loginType = callbackInteractionType || interactionType; const loginRequest = callbackRequest || authenticationRequest; switch (loginType) { case InteractionType.Popup: logger.verbose("useMsalAuthentication - Calling loginPopup"); return instance.loginPopup(loginRequest); case InteractionType.Redirect: logger.verbose("useMsalAuthentication - Calling loginRedirect"); return instance.loginRedirect(loginRequest).then(null); case InteractionType.Silent: logger.verbose("useMsalAuthentication - Calling ssoSilent"); return instance.ssoSilent(loginRequest); default: throw ReactAuthError.createInvalidInteractionTypeError(); } }, [instance, interactionType, authenticationRequest, logger]); const acquireToken = (0, import_react7.useCallback)(async (callbackInteractionType, callbackRequest) => { const fallbackInteractionType = callbackInteractionType || interactionType; let tokenRequest; if (callbackRequest) { logger.trace("useMsalAuthentication - acquireToken - Using request provided in the callback"); tokenRequest = { ...callbackRequest }; } else if (authenticationRequest) { logger.trace("useMsalAuthentication - acquireToken - Using request provided in the hook"); tokenRequest = { ...authenticationRequest, scopes: authenticationRequest.scopes || OIDC_DEFAULT_SCOPES }; } else { logger.trace("useMsalAuthentication - acquireToken - No request object provided, using default request."); tokenRequest = { scopes: OIDC_DEFAULT_SCOPES }; } if (!tokenRequest.account && account) { logger.trace("useMsalAuthentication - acquireToken - Attaching account to request"); tokenRequest.account = account; } const getToken = async () => { logger.verbose("useMsalAuthentication - Calling acquireTokenSilent"); return instance.acquireTokenSilent(tokenRequest).catch(async (e) => { if (e instanceof InteractionRequiredAuthError) { if (!interactionInProgress.current) { logger.error("useMsalAuthentication - Interaction required, falling back to interaction"); return login(fallbackInteractionType, tokenRequest); } else { logger.error("useMsalAuthentication - Interaction required but is already in progress. Please try again, if needed, after interaction completes."); throw ReactAuthError.createUnableToFallbackToInteractionError(); } } throw e; }); }; return getToken().then((response) => { if (mounted.current) { setResponse([response, null]); } return response; }).catch((e) => { if (mounted.current) { setResponse([null, e]); } throw e; }); }, [ instance, interactionType, authenticationRequest, logger, account, login ]); (0, import_react7.useEffect)(() => { const callbackId = instance.addEventCallback((message) => { switch (message.eventType) { case EventType.LOGIN_SUCCESS: case EventType.SSO_SILENT_SUCCESS: if (message.payload) { setResponse([ message.payload, null ]); } break; case EventType.LOGIN_FAILURE: case EventType.SSO_SILENT_FAILURE: if (message.error) { setResponse([null, message.error]); } break; } }); logger.verbose(`useMsalAuthentication - Registered event callback with id: ${callbackId}`); return () => { if (callbackId) { logger.verbose(`useMsalAuthentication - Removing event callback ${callbackId}`); instance.removeEventCallback(callbackId); } }; }, [instance, logger]); (0, import_react7.useEffect)(() => { if (shouldAcquireToken.current && inProgress === InteractionStatus.None) { if (!isAuthenticated2) { shouldAcquireToken.current = false; logger.info("useMsalAuthentication - No user is authenticated, attempting to login"); login().catch(() => { return; }); } else if (account) { shouldAcquireToken.current = false; logger.info("useMsalAuthentication - User is authenticated, attempting to acquire token"); acquireToken().catch(() => { return; }); } } }, [isAuthenticated2, account, inProgress, login, acquireToken, logger]); return { login, acquireToken, result, error }; } // node_modules/@azure/msal-react/dist/components/MsalAuthenticationTemplate.js function MsalAuthenticationTemplate({ interactionType, username, homeAccountId, localAccountId, authenticationRequest, loadingComponent: LoadingComponent, errorComponent: ErrorComponent, children }) { const accountIdentifier = (0, import_react8.useMemo)(() => { return { username, homeAccountId, localAccountId }; }, [username, homeAccountId, localAccountId]); const context = useMsal(); const msalAuthResult = useMsalAuthentication(interactionType, authenticationRequest, accountIdentifier); const isAuthenticated2 = useIsAuthenticated(accountIdentifier); if (msalAuthResult.error && context.inProgress === InteractionStatus.None) { if (!!ErrorComponent) { return import_react8.default.createElement(ErrorComponent, { ...msalAuthResult }); } throw msalAuthResult.error; } if (isAuthenticated2) { return import_react8.default.createElement(import_react8.default.Fragment, null, getChildrenOrFunction(children, msalAuthResult)); } if (!!LoadingComponent && context.inProgress !== InteractionStatus.None) { return import_react8.default.createElement(LoadingComponent, { ...context }); } return null; } // node_modules/@azure/msal-react/dist/components/withMsal.js var import_react9 = __toESM(require_react(), 1); var withMsal = (Component) => { const ComponentWithMsal = (props) => { const msal = useMsal(); return import_react9.default.createElement(Component, { ...props, msalContext: msal }); }; const componentName = Component.displayName || Component.name || "Component"; ComponentWithMsal.displayName = `withMsal(${componentName})`; return ComponentWithMsal; }; export { AuthenticatedTemplate, MsalAuthenticationTemplate, MsalConsumer, MsalContext, MsalProvider, UnauthenticatedTemplate, useAccount, useIsAuthenticated, useMsal, useMsalAuthentication, version, withMsal }; /*! Bundled license information: @azure/msal-react/dist/MsalContext.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/utils/utilities.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/packageMetadata.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/MsalProvider.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/hooks/useMsal.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/hooks/useIsAuthenticated.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/components/AuthenticatedTemplate.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/components/UnauthenticatedTemplate.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/hooks/useAccount.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/error/ReactAuthError.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/hooks/useMsalAuthentication.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/components/MsalAuthenticationTemplate.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/components/withMsal.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) @azure/msal-react/dist/index.js: (*! @azure/msal-react v3.0.17 2025-08-05 *) */ //# sourceMappingURL=@azure_msal-react.js.map