{"version":3,"sources":["webpack:///./node_modules/@azure/msal-browser/dist/interaction_client/BaseInteractionClient.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_client/StandardInteractionClient.js","webpack:///./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","webpack:///./node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_client/SilentRefreshClient.js","webpack:///./node_modules/@azure/msal-browser/dist/event/EventHandler.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_client/RedirectClient.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_client/SilentIframeClient.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_handler/PopupHandler.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_client/PopupClient.js","webpack:///./node_modules/@azure/msal-browser/dist/interaction_client/SilentCacheClient.js","webpack:///./node_modules/@azure/msal-browser/dist/event/EventType.js","webpack:///./node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","webpack:///./node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","webpack:///./node_modules/@azure/msal-browser/dist/encode/Base64Encode.js"],"names":["BaseInteractionClient","config","storageImpl","browserCrypto","logger","eventHandler","correlationId","this","browserStorage","networkClient","system","createNewGuid","clone","BrowserConstants","MSAL_SKU","prototype","clearCacheOnLogout","account","_a","label","AccountEntity","accountInfoIsEqual","getActiveAccount","verbose","setActiveAccount","trys","push","removeAccount","generateAccountCacheKey","sent","error","clear","clearKeystore","_super","StandardInteractionClient","navigationClient","_this","call","initializeAuthorizationCodeRequest","request","generatedPkceParams","authCodeRequest","generatePkceCodes","redirectUri","code","codeVerifier","verifier","codeChallenge","challenge","codeChallengeMethod","Constants","S256_CODE_CHALLENGE_METHOD","initializeLogoutRequest","logoutRequest","isInteractionInProgress","BrowserAuthError","createInteractionInProgressError","validLogoutRequest","postLogoutRedirectUri","UrlString","getAbsoluteUrl","BrowserUtils","getCurrentUri","auth","createAuthCodeClient","serverTelemetryManager","authorityUrl","clientConfig","getClientConfiguration","AuthorizationCodeClient","requestAuthority","discoveredAuthority","getDiscoveredAuthority","authOptions","clientId","authority","clientCapabilities","systemOptions","tokenRenewalOffsetSeconds","preventCorsPreflight","loggerOptions","loggerCallback","piiLoggingEnabled","logLevel","cryptoInterface","networkInterface","storageInterface","libraryInfo","sku","version","cpu","os","validateAndExtractStateFromHash","hash","interactionType","requestCorrelationId","serverParams","getDeserializedHash","state","createHashDoesNotContainStateError","platformStateObj","BrowserProtocolUtils","extractBrowserRequestState","createUnableToParseStateError","createStateInteractionTypeMismatchError","authorityOptions","protocolMode","knownAuthorities","cloudDiscoveryMetadata","authorityMetadata","AuthorityFactory","createDiscoveredInstance","initializeServerTelemetryManager","apiId","forceRefresh","telemetryPayload","wrapperSKU","getWrapperMetadata","wrapperVer","ServerTelemetryManager","preflightInteractiveRequest","blockReloadInHiddenIframes","initializeAuthorizationRequest","getRedirectUri","browserState","ProtocolUtils","setRequestState","validatedRequest","initializeBaseRequest","nonce","responseMode","FRAGMENT","verbosePii","StringUtils","isEmpty","loginHint","adalIdTokenString","getTemporaryCache","ADAL_ID_TOKEN","removeItem","msalIdTokenString","ID_TOKEN","generateCacheKey","cachedIdTokenString","cachedIdToken","claims","preferred_username","upn","updateCacheEntries","scopes","authenticationScheme","BEARER","requestRedirectUri","BrowserConfigurationAuthErrorMessage","redirectUriNotSet","desc","postLogoutUriNotSet","storageNotSupportedError","noRedirectCallbacksSet","invalidCallbackObject","stubPcaInstanceCalled","inMemRedirectUnavailable","BrowserConfigurationAuthError","errorCode","errorMessage","name","Object","setPrototypeOf","createRedirectUriEmptyError","createPostLogoutRedirectUriEmptyError","createStorageNotSupportedError","givenStorageLocation","createRedirectCallbacksNotSetError","createStubPcaInstanceCalledError","createInMemoryRedirectUnavailableError","Base64Decode","decode","input","encodedString","replace","length","Error","inputUtf8Arr","base64DecToArr","utf8ArrToString","base64String","nBlockSize","sB64Enc","nInLen","nOutLen","Math","ceil","aBytes","Uint8Array","nMod3","nMod4","nUint24","nOutIdx","nInIdx","b64ToUint6","charCodeAt","charNum","SilentRefreshClient","apply","arguments","acquireToken","silentRequest","refreshTokenClient","acquireTokenSilent_silentFlow","createRefreshTokenClient","acquireTokenByRefreshToken","catch","e","setCorrelationId","cacheFailedRequest","logout","Promise","reject","createSilentLogoutUnsupportedError","EventHandler","eventCallbacks","Map","addEventCallback","callback","window","callbackId","set","removeEventCallback","delete","emitEvent","eventType","payload","message_1","timestamp","Date","now","info","forEach","RedirectHandler","authCodeModule","browserRequestLogger","initiateAuthRequest","requestUrl","params","navigationOptions","navigate","redirectStartPage","setTemporaryCache","ORIGIN_URI","setInteractionInProgress","CORRELATION_ID","cacheCodeRequest","infoPii","acquireTokenRedirect","timeout","redirectTimeout","noHistory","onRedirectNavigate","navigateExternal","createEmptyNavigationUriError","handleCodeResponse","locationHash","networkModule","stateKey","requestState","authCodeResponse","nonceKey","cachedNonce","cachedCcsCred","tokenResponse","createEmptyHashError","generateStateKey","ClientAuthError","createStateNotFoundError","authModule","handleFragmentResponse","generateNonceKey","cloud_instance_host_name","updateTokenEndpointAuthority","undefined","client_info","clientInfo","checkCcsCredentials","ccsCredential","ThrottlingUtils","removeThrottle","cleanRequestByState","InteractionHandler","RedirectClient","validRequest","authClient","interactionHandler","navigateUrl","e_1","Redirect","getAuthCodeUrl","getRedirectStartPage","redirectNavigationTimeout","AuthError","handleRedirectPromise","responseHash","loginRequestUrl","loginRequestUrlNormalized","currentUrlNormalized","handleHashResult","processHashOnRedirect","homepage","e_2","getRedirectResponseHash","location","cleanRequestByInteractionType","clearHash","removeHashFromUrl","href","navigateToLoginRequestUrl","handleHash","indexOf","replaceHash","isInIframe","URL_HASH","getHomepage","warning","navigateInternal","isResponseHash","hashContainsKnownProperties","cachedHash","cachedRequest","currentAuthority","getCachedRequest","getCachedAuthority","createNoCachedAuthorityError","logoutUri","e_3","EventType","LOGOUT_START","getLogoutUri","LOGOUT_SUCCESS","LOGOUT_FAILURE","LOGOUT_END","requestStartPage","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","tenant","options","updateAuthority","CCS_CREDENTIAL","JSON","parse","errorPii","SilentHandler","navigateFrameWait","_b","loadFrame","loadFrameSync","monitorIframeForHash","iframe","resolve","nowMark","performance","timeoutMark","intervalId","setInterval","removeHiddenIframe","clearInterval","createMonitorIframeTimeoutError","EMPTY_STRING","contentWindow","contentHash","POLL_INTERVAL_MS","urlNavigate","frameHandle","createHiddenIframe","setTimeout","src","authFrame","document","createElement","style","visibility","position","width","height","border","setAttribute","getElementsByTagName","appendChild","body","parentNode","removeChild","SilentIframeClient","sid","username","createSilentSSOInsufficientInfoError","prompt","NONE","createSilentPromptValueError","Silent","silentTokenHelper","silentHandler","msalFrame","iframeHashTimeout","PopupHandler","popupUtils","PopupUtils","openPopup","monitorPopupForHash","popupWindow","monitorPopupForSameOrigin","then","cleanPopup","createHashDoesNotContainKnownPropertiesError","PopupClient","Popup","popupName","generatePopupName","popupWindowAttributes","asyncPopups","acquireTokenPopupAsync","popup","openSizedPopup","generateLogoutPopupName","mainWindowRedirectUri","logoutPopupAsync","popupParameters","result","acquireTokenPopup","POPUP_OPENED","close","absoluteUrl","logoutPopup","SilentCacheClient","silentAuthClient","cachedToken","error_1","createSilentFlowClient","acquireCachedToken","ACQUIRE_TOKEN_SUCCESS","signingKeyNotFoundInStorage","initializeSilentRequest","BrowserAuthErrorMessage","pkceNotGenerated","cryptoDoesNotExist","httpMethodNotImplementedError","emptyNavigateUriError","hashEmptyError","hashDoesNotContainStateError","hashDoesNotContainKnownPropertiesError","unableToParseStateError","stateInteractionTypeMismatchError","interactionInProgress","popupWindowError","emptyWindowError","userCancelledError","monitorPopupTimeoutError","monitorIframeTimeoutError","redirectInIframeError","blockTokenRequestsInHiddenIframeError","blockAcquireTokenInPopupsError","iframeClosedPrematurelyError","silentSSOInsufficientInfoError","silentLogoutUnsupportedError","noAccountError","silentPromptValueError","noTokenRequestCacheError","unableToParseTokenRequestCacheError","noCachedAuthorityError","authRequestNotSet","invalidCacheType","notInBrowserEnvironment","databaseNotOpen","noNetworkConnectivity","postRequestFailed","getRequestFailed","failedToParseNetworkResponse","unableToLoadTokenError","createPkceNotGeneratedError","errDetail","createCryptoNotAvailableError","createHttpMethodNotImplementedError","method","hashValue","createPopupWindowError","createEmptyWindowCreatedError","createUserCancelledError","createMonitorPopupTimeoutError","createRedirectInIframeError","windowParentCheck","createBlockReloadInHiddenIframeError","createBlockAcquireTokenInPopupsError","createIframeClosedPrematurelyError","createNoAccountError","givenPrompt","createUnableToParseTokenRequestCacheError","createNoTokenRequestCacheError","createAuthRequestNotSetError","createInvalidCacheTypeError","createNonBrowserEnvironmentError","createDatabaseNotOpenError","createNoNetworkConnectivityError","createPostRequestFailedError","errorDesc","endpoint","split","createGetRequestFailedError","createFailedToParseNetworkResponseError","createUnableToLoadTokenError","errorDetail","createSigningKeyNotFoundInStorageError","keyId","NavigationClient","url","defaultNavigateWindow","assign","Base64Encode","urlEncode","encodeURIComponent","encode","urlEncodeArr","inputArr","base64EncArr","stringToUtf8Arr","eqLen","nLen","nIdx","String","fromCharCode","uint6ToB64","substring","nUint6"],"mappings":"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","file":"js/chunk-vendors~a954e904.cb726a0a.js","sourcesContent":["/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AccountEntity } from '@azure/msal-common';\nimport { version } from '../packageMetadata.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BaseInteractionClient = /** @class */ (function () {\r\n function BaseInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, correlationId) {\r\n this.config = config;\r\n this.browserStorage = storageImpl;\r\n this.browserCrypto = browserCrypto;\r\n this.networkClient = this.config.system.networkClient;\r\n this.eventHandler = eventHandler;\r\n this.correlationId = correlationId || this.browserCrypto.createNewGuid();\r\n this.logger = logger.clone(BrowserConstants.MSAL_SKU, version, this.correlationId);\r\n }\r\n BaseInteractionClient.prototype.clearCacheOnLogout = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!account) return [3 /*break*/, 5];\r\n if (AccountEntity.accountInfoIsEqual(account, this.browserStorage.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.browserStorage.setActiveAccount(null);\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.browserStorage.removeAccount(AccountEntity.generateAccountCacheKey(account))];\r\n case 2:\r\n _a.sent();\r\n this.logger.verbose(\"Cleared cache items belonging to the account provided in the logout request.\");\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n this.logger.error(\"Account provided in logout request was not found. Local cache unchanged.\");\r\n return [3 /*break*/, 4];\r\n case 4: return [3 /*break*/, 9];\r\n case 5:\r\n _a.trys.push([5, 8, , 9]);\r\n // Clear all accounts and tokens\r\n return [4 /*yield*/, this.browserStorage.clear()];\r\n case 6:\r\n // Clear all accounts and tokens\r\n _a.sent();\r\n // Clear any stray keys from IndexedDB\r\n return [4 /*yield*/, this.browserCrypto.clearKeystore()];\r\n case 7:\r\n // Clear any stray keys from IndexedDB\r\n _a.sent();\r\n this.logger.verbose(\"No account provided in logout request, clearing all cache items.\");\r\n return [3 /*break*/, 9];\r\n case 8:\r\n _a.sent();\r\n this.logger.error(\"Attempted to clear all MSAL cache items and failed. Local cache unchanged.\");\r\n return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return BaseInteractionClient;\r\n}());\n\nexport { BaseInteractionClient };\n//# sourceMappingURL=BaseInteractionClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spread } from '../_virtual/_tslib.js';\nimport { Constants, UrlString, AuthorizationCodeClient, AuthorityFactory, ServerTelemetryManager, ProtocolUtils, ResponseMode, StringUtils, PersistentCacheKeys, IdToken, AuthenticationScheme } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { version } from '../packageMetadata.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\r\n */\r\nvar StandardInteractionClient = /** @class */ (function (_super) {\r\n __extends(StandardInteractionClient, _super);\r\n function StandardInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, correlationId) || this;\r\n _this.navigationClient = navigationClient;\r\n return _this;\r\n }\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: \"\", codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n StandardInteractionClient.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n // Check if interaction is in progress. Throw error if true.\r\n if (this.browserStorage.isInteractionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n var validLogoutRequest = __assign({ correlationId: this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getClientConfiguration called\");\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\r\n preventCorsPreflight: true\r\n },\r\n loggerOptions: {\r\n loggerCallback: this.config.system.loggerOptions.loggerCallback,\r\n piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled,\r\n logLevel: this.config.system.loggerOptions.logLevel,\r\n correlationId: this.correlationId\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: \"\",\r\n os: \"\"\r\n }\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.validateAndExtractStateFromHash = function (hash, interactionType, requestCorrelationId) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hash);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\r\n return serverParams.state;\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata\r\n };\r\n if (!requestAuthority) return [3 /*break*/, 2];\r\n this.logger.verbose(\"Creating discovered authority with request authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n StandardInteractionClient.prototype.initializeServerTelemetryManager = function (apiId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: this.correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.browserStorage.getWrapperMetadata()[0],\r\n wrapperVer: this.browserStorage.getWrapperMetadata()[1]\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n /**\r\n * Helper to validate app environment before making a request.\r\n * @param request\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.preflightInteractiveRequest = function (request, interactionType) {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\", request === null || request === void 0 ? void 0 : request.correlationId);\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Check if interaction is in progress. Throw error if true.\r\n if (this.browserStorage.isInteractionInProgress(false)) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n return this.initializeAuthorizationRequest(request, interactionType);\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n this.logger.verbose(\"initializeAuthorizationRequest called\");\r\n var redirectUri = this.getRedirectUri(request.redirectUri);\r\n var browserState = {\r\n interactionType: interactionType\r\n };\r\n var state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || \"\", browserState);\r\n var validatedRequest = __assign(__assign({}, this.initializeBaseRequest(request)), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT });\r\n var account = request.account || this.browserStorage.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\");\r\n this.logger.verbosePii(\"Setting validated request account: \" + account);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL/MSAL v1 SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\r\n // Only check for adal/msal token if no SSO params are being used\r\n var adalIdTokenString = this.browserStorage.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n this.logger.verbose(\"Cached ADAL id token retrieved.\");\r\n }\r\n // Check for cached MSAL v1 id token\r\n var msalIdTokenString = this.browserStorage.getTemporaryCache(PersistentCacheKeys.ID_TOKEN, true);\r\n if (msalIdTokenString) {\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(PersistentCacheKeys.ID_TOKEN));\r\n this.logger.verbose(\"Cached MSAL.js v1 id token retrieved\");\r\n }\r\n var cachedIdTokenString = msalIdTokenString || adalIdTokenString;\r\n if (cachedIdTokenString) {\r\n var cachedIdToken = new IdToken(cachedIdTokenString, this.browserCrypto);\r\n if (cachedIdToken.claims && cachedIdToken.claims.preferred_username) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint\");\r\n validatedRequest.loginHint = cachedIdToken.claims.preferred_username;\r\n }\r\n else if (cachedIdToken.claims && cachedIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint\");\r\n validatedRequest.loginHint = cachedIdToken.claims.upn;\r\n }\r\n else {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.\");\r\n }\r\n }\r\n }\r\n this.browserStorage.updateCacheEntries(validatedRequest.state, validatedRequest.nonce, validatedRequest.authority, validatedRequest.loginHint || \"\", validatedRequest.account || null);\r\n return validatedRequest;\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n StandardInteractionClient.prototype.initializeBaseRequest = function (request) {\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n var authority = request.authority || this.config.auth.authority;\r\n var scopes = __spread(((request && request.scopes) || []));\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!request.authenticationScheme) {\r\n request.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + request.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n var validatedRequest = __assign(__assign({}, request), { correlationId: this.correlationId, authority: authority,\r\n scopes: scopes });\r\n return validatedRequest;\r\n };\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n StandardInteractionClient.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n return StandardInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { StandardInteractionClient };\n//# sourceMappingURL=StandardInteractionClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n//# sourceMappingURL=BrowserConfigurationAuthError.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, \"\");\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n//# sourceMappingURL=Base64Decode.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { AuthError, RefreshTokenClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentRefreshClient = /** @class */ (function (_super) {\r\n __extends(SilentRefreshClient, _super);\r\n function SilentRefreshClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Exchanges the refresh token for new tokens\r\n * @param request\r\n */\r\n SilentRefreshClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, refreshTokenClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n silentRequest = __assign(__assign({}, request), this.initializeBaseRequest(request));\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority)];\r\n case 1:\r\n refreshTokenClient = _a.sent();\r\n this.logger.verbose(\"Refresh token client created\");\r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest).catch(function (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(_this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n throw e;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentRefreshClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentRefreshClient;\r\n}(StandardInteractionClient));\n\nexport { SilentRefreshClient };\n//# sourceMappingURL=SilentRefreshClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler(logger, browserCrypto) {\r\n this.eventCallbacks = new Map();\r\n this.logger = logger;\r\n this.browserCrypto = browserCrypto;\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n EventHandler.prototype.addEventCallback = function (callback) {\r\n if (typeof window !== \"undefined\") {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n EventHandler.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n EventHandler.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (typeof window !== \"undefined\") {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n return EventHandler;\r\n}());\n\nexport { EventHandler };\n//# sourceMappingURL=EventHandler.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ThrottlingUtils, ClientAuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, browserCrypto) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setInteractionInProgress(true);\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.browserRequestLogger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to: \" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule, clientId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.browserRequestLogger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n // Remove throttle if it exists\r\n if (clientId) {\r\n ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest);\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n//# sourceMappingURL=RedirectHandler.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError, UrlString } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { InteractionType, ApiId, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectClient = /** @class */ (function (_super) {\r\n __extends(RedirectClient, _super);\r\n function RedirectClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Redirects the page to the /authorize endpoint of the IDP\r\n * @param request\r\n */\r\n RedirectClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validRequest, serverTelemetryManager, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n validRequest = this.preflightInteractiveRequest(request, InteractionType.Redirect);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 6, , 7]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.browserCrypto);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n this.logger.verbosePii(\"Redirect start page: \" + redirectStartPage);\r\n return [4 /*yield*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 5: \r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, _a.sent()];\r\n case 6:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n RedirectClient.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, responseHash, state, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n state = void 0;\r\n try {\r\n state = this.validateAndExtractStateFromHash(responseHash, InteractionType.Redirect);\r\n BrowserUtils.clearHash(window);\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || \"\";\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 3];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 2:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 3:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 4];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 4:\r\n if (!!BrowserUtils.isInIframe()) return [3 /*break*/, 9];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 6];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 5:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 8];\r\n case 6:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 7:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 8;\r\n case 8:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n }\r\n _a.label = 9;\r\n case 9: return [2 /*return*/, null];\r\n case 10:\r\n e_2 = _a.sent();\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_2;\r\n case 11: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n RedirectClient.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n if (isResponseHash) {\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n RedirectClient.prototype.handleHash = function (hash, state, serverTelemetryManager) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, currentAuthority, authClient, interactionHandler;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n this.logger.verbose(\"handleHash called, retrieved cached request\");\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 1:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.browserCrypto);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient, this.config.auth.clientId)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n RedirectClient.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, navigationOptions, authClient, logoutUri, navigate, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validLogoutRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 7];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 5];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 5:\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 9];\r\n case 7: return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 8:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 9: return [3 /*break*/, 11];\r\n case 10:\r\n e_3 = _a.sent();\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n throw e_3;\r\n case 11:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n RedirectClient.prototype.getRedirectStartPage = function (requestStartPage) {\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n return RedirectClient;\r\n}(StandardInteractionClient));\n\nexport { RedirectClient };\n//# sourceMappingURL=RedirectClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.browserRequestLogger = browserRequestLogger;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.browserRequestLogger.verbose(\"InteractionHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates authority based on cloudInstanceHostname\r\n * @param cloudInstanceHostname\r\n * @param authority\r\n * @param networkModule\r\n */\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n InteractionHandler.prototype.checkCcsCredentials = function () {\r\n // Look up ccs credential in temp cache\r\n var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred);\r\n }\r\n catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(\"Cache credential could not be parsed: \" + cachedCcsCred);\r\n }\r\n }\r\n return null;\r\n };\r\n return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n//# sourceMappingURL=InteractionHandler.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, navigateFrameWait) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;\r\n _this.navigateFrameWait = navigateFrameWait;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n _a = this.loadFrameSync(requestUrl);\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, _a];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.browserRequestLogger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, BrowserConstants.POLL_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n//# sourceMappingURL=SilentHandler.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, StringUtils, PromptValue } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentIframeClient = /** @class */ (function (_super) {\r\n __extends(SilentIframeClient, _super);\r\n function SilentIframeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, correlationId) || this;\r\n _this.apiId = apiId;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none\r\n * @param request\r\n */\r\n SilentIframeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n throw BrowserAuthError.createSilentSSOInsufficientInfoError();\r\n }\r\n // Check that prompt is set to none, throw error if it is set to anything else.\r\n if (request.prompt && request.prompt !== PromptValue.NONE) {\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n silentRequest = this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: PromptValue.NONE }), InteractionType.Silent);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 6, , 7]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(silentRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n return [4 /*yield*/, this.silentTokenHelper(navigateUrl, authCodeRequest, authClient, this.logger)];\r\n case 5: return [2 /*return*/, _a.sent()];\r\n case 6:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_1;\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentIframeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n SilentIframeClient.prototype.silentTokenHelper = function (navigateUrl, authCodeRequest, authClient, browserRequestLogger) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentHandler, msalFrame, hash, state;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, browserRequestLogger, this.config.system.navigateFrameWait);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 1:\r\n msalFrame = _a.sent();\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 2:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Silent, authCodeRequest.correlationId);\r\n // Handle response from hash string\r\n return [2 /*return*/, silentHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentIframeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentIframeClient };\n//# sourceMappingURL=SilentIframeClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\r\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\r\n */\r\nvar PopupHandler = /** @class */ (function (_super) {\r\n __extends(PopupHandler, _super);\r\n function PopupHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);\r\n return _this;\r\n }\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n // Set interaction status in the library.\r\n this.browserStorage.setInteractionInProgress(true);\r\n this.browserRequestLogger.infoPii(\"Navigate to: \" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.popupUtils.openPopup(requestUrl, params);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - milliseconds until timeout\r\n */\r\n PopupHandler.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(function () {\r\n var contentHash = popupWindow.location.hash;\r\n BrowserUtils.clearHash(popupWindow);\r\n _this.popupUtils.cleanPopup(popupWindow);\r\n if (!contentHash) {\r\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\r\n }\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n return contentHash;\r\n }\r\n else {\r\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\r\n }\r\n });\r\n };\r\n return PopupHandler;\r\n}(InteractionHandler));\n\nexport { PopupHandler };\n//# sourceMappingURL=PopupHandler.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError, ThrottlingUtils, UrlString } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { PopupHandler } from '../interaction_handler/PopupHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupClient = /** @class */ (function (_super) {\r\n __extends(PopupClient, _super);\r\n function PopupClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Acquires tokens by opening a popup window to the /authorize endpoint of the authority\r\n * @param request\r\n */\r\n PopupClient.prototype.acquireToken = function (request) {\r\n try {\r\n var validRequest = this.preflightInteractiveRequest(request, InteractionType.Popup);\r\n var popupName = PopupUtils.generatePopupName(this.config.auth.clientId, validRequest);\r\n var popupWindowAttributes = request.popupWindowAttributes || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n // Passes on popup position and dimensions if in request\r\n return this.acquireTokenPopupAsync(validRequest, popupName, popupWindowAttributes);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = PopupUtils.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes, this.logger);\r\n return this.acquireTokenPopupAsync(validRequest, popupName, popupWindowAttributes, popup);\r\n }\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n PopupClient.prototype.logout = function (logoutRequest) {\r\n try {\r\n this.logger.verbose(\"logoutPopup called\");\r\n var validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n var popupName = PopupUtils.generateLogoutPopupName(this.config.auth.clientId, validLogoutRequest);\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n var popupWindowAttributes = (logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.popupWindowAttributes) || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n // Passes on popup position and dimensions if in request\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, undefined, mainWindowRedirectUri);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n var popup = PopupUtils.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes, this.logger);\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, popup, mainWindowRedirectUri);\r\n }\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n * @param popupWindowAttributes\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PopupClient.prototype.acquireTokenPopupAsync = function (validRequest, popupName, popupWindowAttributes, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authCodeRequest, authClient, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, state, result, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 7, , 8]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new PopupHandler(authClient, this.browserStorage, authCodeRequest, this.logger);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName,\r\n popupWindowAttributes: popupWindowAttributes\r\n };\r\n popupWindow = interactionHandler.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, interactionHandler.monitorPopupForHash(popupWindow)];\r\n case 5:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Popup, validRequest.correlationId);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n case 6:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 7:\r\n e_1 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param validRequest\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n * @param mainWindowRedirectUri\r\n * @param popupWindowAttributes\r\n */\r\n PopupClient.prototype.logoutPopupAsync = function (validRequest, popupName, popupWindowAttributes, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupUtils, popupWindow, e_2, navigationOptions, absoluteUrl, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 8, , 9]);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n this.browserStorage.setInteractionInProgress(true);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupUtils = new PopupUtils(this.browserStorage, this.logger);\r\n popupWindow = popupUtils.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup });\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n _a.label = 4;\r\n case 4:\r\n _a.trys.push([4, 6, , 7]);\r\n // Don't care if this throws an error (User Cancelled)\r\n return [4 /*yield*/, popupUtils.monitorPopupForSameOrigin(popupWindow)];\r\n case 5:\r\n // Don't care if this throws an error (User Cancelled)\r\n _a.sent();\r\n this.logger.verbose(\"Popup successfully redirected to postLogoutRedirectUri\");\r\n return [3 /*break*/, 7];\r\n case 6:\r\n e_2 = _a.sent();\r\n this.logger.verbose(\"Error occurred while monitoring popup for same origin. Session on server may remain active. Error: \" + e_2);\r\n return [3 /*break*/, 7];\r\n case 7:\r\n popupUtils.cleanPopup(popupWindow);\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecing main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 9];\r\n case 8:\r\n e_3 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n throw e_3;\r\n case 9:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PopupClient;\r\n}(StandardInteractionClient));\n\nexport { PopupClient };\n//# sourceMappingURL=PopupClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { SilentFlowClient } from '@azure/msal-common';\nimport { EventType } from '../event/EventType.js';\nimport { InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentCacheClient = /** @class */ (function (_super) {\r\n __extends(SilentCacheClient, _super);\r\n function SilentCacheClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Returns unexpired tokens from the cache, if available\r\n * @param silentRequest\r\n */\r\n SilentCacheClient.prototype.acquireToken = function (silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, silentAuthClient, cachedToken, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority)];\r\n case 1:\r\n silentAuthClient = _a.sent();\r\n this.logger.verbose(\"Silent auth client created\");\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n error_1 = _a.sent();\r\n if (error_1 instanceof BrowserAuthError && error_1.errorCode === BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {\r\n this.logger.verbose(\"Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.\");\r\n }\r\n throw error_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentCacheClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentCacheClient.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n SilentCacheClient.prototype.initializeSilentRequest = function (request, account) {\r\n return __assign(__assign(__assign({}, request), this.initializeBaseRequest(request)), { account: account, forceRefresh: request.forceRefresh || false });\r\n };\r\n return SilentCacheClient;\r\n}(StandardInteractionClient));\n\nexport { SilentCacheClient };\n//# sourceMappingURL=SilentCacheClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n//# sourceMappingURL=EventType.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n popupWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentSSOInsufficientInfoError: {\r\n code: \"silent_sso_error\",\r\n desc: \"Silent SSO could not be completed - insufficient information was provided. Please provide either a loginHint or sid.\"\r\n },\r\n silentLogoutUnsupportedError: {\r\n code: \"silent_logout_unsupported\",\r\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request in found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n },\r\n unableToLoadTokenError: {\r\n code: \"unable_to_load_token\",\r\n desc: \"Error loading token to cache.\"\r\n },\r\n signingKeyNotFoundInStorage: {\r\n code: \"crypto_key_not_found\",\r\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the login_hint, sid or account object is not provided in the ssoSilent API.\r\n */\r\n BrowserAuthError.createSilentSSOInsufficientInfoError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentSSOInsufficientInfoError.code, BrowserAuthErrorMessage.silentSSOInsufficientInfoError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\r\n */\r\n BrowserAuthError.createSilentLogoutUnsupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when the necessary information is not available to sideload tokens\r\n */\r\n BrowserAuthError.createUnableToLoadTokenError = function (errorDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, BrowserAuthErrorMessage.unableToLoadTokenError.desc + \" | \" + errorDetail);\r\n };\r\n /**\r\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\r\n */\r\n BrowserAuthError.createSigningKeyNotFoundInStorageError = function (keyId) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc + \" | No match found for KeyId: \" + keyId);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n//# sourceMappingURL=BrowserAuthError.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n//# sourceMappingURL=NavigationClient.js.map\n","/*! @azure/msal-browser v2.17.0 2021-09-08 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = \"\";\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n//# sourceMappingURL=Base64Encode.js.map\n"],"sourceRoot":""}