{"version":3,"file":"authActions.mjs","names":["getSignInAuthProvider","getTokenRequest","getLoginRequest","whitelistedPaths","clearCachedTranslations","LoginFunction","LogoutFunction","useLoginAction","loginRedirect","signInAuthProvider","useLogoutAction","sessionStorage","removeItem","logoutRedirect","account","getActiveAccount","acquireAccessToken","Promise","undefined","acquireTokenSilent","then","response","accessToken","catch","currentPathIsWhitelisted","includes","window","location","pathname"],"sources":["../../../src/utilities/auth/authActions.ts"],"sourcesContent":["import {\n  getSignInAuthProvider,\n  getTokenRequest,\n  getLoginRequest,\n} from './signInAuthProvider';\nimport { whitelistedPaths } from './whitelistedPaths.internal';\nimport { clearCachedTranslations } from '../i18n/translationCache';\nexport type LoginFunction = () => void;\nexport type LogoutFunction = () => void;\n/**\n * Hook providing auth \"actions\" such as login/logout\n */\n\nexport const useLoginAction: LoginFunction = () => loginRedirect;\nexport const loginRedirect: () => void = () => {\n  const signInAuthProvider = getSignInAuthProvider();\n  void signInAuthProvider.loginRedirect(getLoginRequest());\n};\n\nexport function useLogoutAction(): LogoutFunction {\n  return () => {\n    // Drop the user-scoped translation bundles (and the user-id hint they\n    // hydrate from) so a shared machine never paints another user's personal\n    // overrides. The anonymous system bundles are kept.\n    clearCachedTranslations();\n    try {\n      sessionStorage.removeItem('user-id');\n    } catch {\n      // storage unavailable - nothing to clear\n    }\n    const signInAuthProvider = getSignInAuthProvider();\n    void signInAuthProvider.logoutRedirect({\n      account: signInAuthProvider.getActiveAccount(),\n    });\n  };\n}\n\nexport async function acquireAccessToken(): Promise<string | void> {\n  const signInAuthProvider = getSignInAuthProvider();\n  const account = signInAuthProvider.getActiveAccount() ?? undefined;\n\n  if (account) {\n    return signInAuthProvider\n      .acquireTokenSilent({ ...getTokenRequest(), account })\n      .then((response) => {\n        return response.accessToken;\n      })\n      .catch(() => {\n        const currentPathIsWhitelisted = whitelistedPaths.includes(\n          window.location.pathname\n        );\n        if (!currentPathIsWhitelisted) {\n          void signInAuthProvider.loginRedirect(getLoginRequest());\n        }\n      });\n  }\n}\n"],"mappings":";;;;;;;AAaA,MAAaO,uBAAsCC;AACnD,MAAaA,sBAAkC;AAClBR,wBAAuB,CAC1BQ,cAAcN,iBAAiB,CAAC;;AAG1D,SAAgBQ,kBAAkC;AAChD,cAAa;AAIXN,2BAAyB;AACzB,MAAI;AACFO,kBAAeC,WAAW,UAAU;UAC9B;EAGR,MAAMH,qBAAqBT,uBAAuB;AAC7CS,qBAAmBI,eAAe,EACrCC,SAASL,mBAAmBM,kBAAiB,EAC9C,CAAC;;;AAIN,eAAsBC,qBAA6C;CACjE,MAAMP,qBAAqBT,uBAAuB;CAClD,MAAMc,UAAUL,mBAAmBM,kBAAkB,IAAIG,KAAAA;AAEzD,KAAIJ,QACF,QAAOL,mBACJU,mBAAmB;EAAE,GAAGlB,iBAAiB;EAAEa;EAAS,CAAC,CACrDM,MAAMC,aAAa;AAClB,SAAOA,SAASC;GAChB,CACDC,YAAY;AAIX,MAAI,CAH6BpB,iBAAiBsB,SAChDC,OAAOC,SAASC,SACjB,CAEMnB,oBAAmBD,cAAcN,iBAAiB,CAAC;GAE1D"}