{"version":3,"file":"BrowserAuthError.js","sources":["../../src/error/BrowserAuthError.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError, StringUtils } from \"@azure/msal-common\";\n\n/**\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const BrowserAuthErrorMessage = {\n pkceNotGenerated: {\n code: \"pkce_not_created\",\n desc: \"The PKCE code challenge and verifier could not be generated.\"\n },\n cryptoDoesNotExist: {\n code: \"crypto_nonexistent\",\n desc: \"The crypto object or function is not available.\"\n },\n httpMethodNotImplementedError: {\n code: \"http_method_not_implemented\",\n desc: \"The HTTP method given has not been implemented in this library.\"\n },\n emptyNavigateUriError: {\n code: \"empty_navigate_uri\",\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\n },\n hashEmptyError: {\n code: \"hash_empty_error\",\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n hashDoesNotContainStateError: {\n code: \"no_state_in_hash\",\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\n },\n hashDoesNotContainKnownPropertiesError: {\n code: \"hash_does_not_contain_known_properties\",\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n unableToParseStateError: {\n code: \"unable_to_parse_state\",\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\n },\n stateInteractionTypeMismatchError: {\n code: \"state_interaction_type_mismatch\",\n desc: \"Hash contains state but the interaction type does not match the caller.\"\n },\n interactionInProgress: {\n code: \"interaction_in_progress\",\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.\"\n },\n popupWindowError: {\n code: \"popup_window_error\",\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\n },\n emptyWindowError: {\n code: \"empty_window_error\",\n desc: \"window.open returned null or undefined window object.\"\n },\n userCancelledError: {\n code: \"user_cancelled\",\n desc: \"User cancelled the flow.\"\n },\n monitorPopupTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n monitorIframeTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n redirectInIframeError: {\n code: \"redirect_in_iframe\",\n desc: \"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\n },\n blockTokenRequestsInHiddenIframeError: {\n code: \"block_iframe_reload\",\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\n },\n blockAcquireTokenInPopupsError: {\n code: \"block_nested_popups\",\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\n },\n iframeClosedPrematurelyError: {\n code: \"iframe_closed_prematurely\",\n desc: \"The iframe being monitored was closed prematurely.\"\n },\n silentLogoutUnsupportedError: {\n code: \"silent_logout_unsupported\",\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\n },\n noAccountError: {\n code: \"no_account_error\",\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.\"\n },\n silentPromptValueError: {\n code: \"silent_prompt_value_error\",\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.\"\n },\n noTokenRequestCacheError: {\n code: \"no_token_request_cache_error\",\n desc: \"No token request found in cache.\"\n },\n unableToParseTokenRequestCacheError: {\n code: \"unable_to_parse_token_request_cache_error\",\n desc: \"The cached token request could not be parsed.\"\n },\n noCachedAuthorityError: {\n code: \"no_cached_authority_error\",\n desc: \"No cached authority found.\"\n },\n authRequestNotSet: {\n code: \"auth_request_not_set_error\",\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n notInBrowserEnvironment: {\n code: \"non_browser_environment\",\n desc: \"Login and token requests are not supported in non-browser environments.\"\n },\n databaseNotOpen: {\n code: \"database_not_open\",\n desc: \"Database is not open!\"\n },\n noNetworkConnectivity: {\n code: \"no_network_connectivity\",\n desc: \"No network connectivity. Check your internet connection.\"\n },\n postRequestFailed: {\n code: \"post_request_failed\",\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'\"\n },\n getRequestFailed: {\n code: \"get_request_failed\",\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\n },\n failedToParseNetworkResponse: {\n code: \"failed_to_parse_response\",\n desc: \"Failed to parse network response. Check network trace.\"\n },\n unableToLoadTokenError: {\n code: \"unable_to_load_token\",\n desc: \"Error loading token to cache.\"\n },\n signingKeyNotFoundInStorage: {\n code: \"crypto_key_not_found\",\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\n },\n authCodeRequired: {\n code: \"auth_code_required\",\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\n },\n authCodeOrNativeAccountRequired: {\n code: \"auth_code_or_nativeAccountId_required\",\n desc: \"An authorization code or nativeAccountId must be provided to this flow.\"\n },\n databaseUnavailable: {\n code: \"database_unavailable\",\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\n },\n unableToAcquireTokenFromNativePlatform: {\n code: \"unable_to_acquire_token_from_native_platform\",\n desc: \"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors.\"\n },\n nativeHandshakeTimeout: {\n code: \"native_handshake_timeout\",\n desc: \"Timed out while attempting to establish connection to browser extension\"\n },\n nativeExtensionNotInstalled: {\n code: \"native_extension_not_installed\",\n desc: \"Native extension is not installed. If you think this is a mistake call the initialize function.\"\n },\n nativeConnectionNotEstablished: {\n code: \"native_connection_not_established\",\n desc: \"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors.\"\n },\n nativeBrokerCalledBeforeInitialize: {\n code: \"native_broker_called_before_initialize\",\n desc: \"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors.\"\n },\n nativePromptNotSupported: {\n code: \"native_prompt_not_supported\",\n desc: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\"\n }\n};\n\n/**\n * Browser library error class thrown by the MSAL.js library for SPAs\n */\nexport class BrowserAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n\n Object.setPrototypeOf(this, BrowserAuthError.prototype);\n this.name = \"BrowserAuthError\";\n }\n\n /**\n * Creates an error thrown when PKCE is not implemented.\n * @param errDetail\n */\n static createPkceNotGeneratedError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code,\n `${BrowserAuthErrorMessage.pkceNotGenerated.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the crypto object is unavailable.\n * @param errDetail\n */\n static createCryptoNotAvailableError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code,\n `${BrowserAuthErrorMessage.cryptoDoesNotExist.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\n * @param method\n */\n static createHttpMethodNotImplementedError(method: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code,\n `${BrowserAuthErrorMessage.httpMethodNotImplementedError.desc} Given Method: ${method}`);\n }\n\n /**\n * Creates an error thrown when the navigation URI is empty.\n */\n static createEmptyNavigationUriError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n * @param hashValue\n */\n static createEmptyHashError(hashValue: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, `${BrowserAuthErrorMessage.hashEmptyError.desc} Given Url: ${hashValue}`);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createHashDoesNotContainStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value does not contain known properties\n */\n static createHashDoesNotContainKnownPropertiesError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createUnableToParseStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\n }\n\n /**\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.\n */\n static createStateInteractionTypeMismatchError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\n */\n static createInteractionInProgressError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\n }\n\n /**\n * Creates an error thrown when the popup window could not be opened.\n * @param errDetail\n */\n static createPopupWindowError(errDetail?: string): BrowserAuthError {\n let errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\n errorMessage = !StringUtils.isEmpty(errDetail) ? `${errorMessage} Details: ${errDetail}` : errorMessage;\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\n }\n\n /**\n * Creates an error thrown when window.open returns an empty window object.\n * @param errDetail\n */\n static createEmptyWindowCreatedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\n }\n\n /**\n * Creates an error thrown when the user closes a popup.\n */\n static createUserCancelledError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code,\n BrowserAuthErrorMessage.userCancelledError.desc);\n }\n\n /**\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\n */\n static createMonitorPopupTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code,\n BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\n */\n static createMonitorIframeTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code,\n BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when navigateWindow is called inside an iframe or brokered applications.\n * @param windowParentCheck\n */\n static createRedirectInIframeError(windowParentCheck: boolean): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code,\n `${BrowserAuthErrorMessage.redirectInIframeError.desc} (window.parent !== window) => ${windowParentCheck}`);\n }\n\n /**\n * Creates an error thrown when an auth reload is done inside an iframe.\n */\n static createBlockReloadInHiddenIframeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code,\n BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\n }\n\n /**\n * Creates an error thrown when a popup attempts to call an acquireToken API\n * @returns\n */\n static createBlockAcquireTokenInPopupsError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code,\n BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\n }\n\n /**\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\n */\n static createIframeClosedPrematurelyError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\n }\n\n /**\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\n */\n static createSilentLogoutUnsupportedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\n }\n\n /**\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\n */\n static createNoAccountError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\n }\n\n /**\n * Creates an error thrown when a given prompt value is invalid for silent requests.\n */\n static createSilentPromptValueError(givenPrompt: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, `${BrowserAuthErrorMessage.silentPromptValueError.desc} Given value: ${givenPrompt}`);\n }\n\n /**\n * Creates an error thrown when the cached token request could not be retrieved from the cache\n */\n static createUnableToParseTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code,\n BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when the token request could not be retrieved from the cache\n */\n static createNoTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code,\n BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\n */\n static createAuthRequestNotSetError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code,\n BrowserAuthErrorMessage.authRequestNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the authority could not be retrieved from the cache\n */\n static createNoCachedAuthorityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code,\n BrowserAuthErrorMessage.noCachedAuthorityError.desc);\n }\n\n /**\n * Creates an error thrown if cache type is invalid.\n */\n static createInvalidCacheTypeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, `${BrowserAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Create an error thrown when login and token requests are made from a non-browser environment\n */\n static createNonBrowserEnvironmentError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\n }\n\n /**\n * Create an error thrown when indexDB database is not open\n */\n static createDatabaseNotOpenError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to no internet\n */\n static createNoNetworkConnectivityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\n */\n static createPostRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, `${BrowserAuthErrorMessage.postRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when get request fails due to reasons other than internet connectivity\n */\n static createGetRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, `${BrowserAuthErrorMessage.getRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when network client fails to parse network response\n */\n static createFailedToParseNetworkResponseError(endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, `${BrowserAuthErrorMessage.failedToParseNetworkResponse.desc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when the necessary information is not available to sideload tokens\n */\n static createUnableToLoadTokenError(errorDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, `${BrowserAuthErrorMessage.unableToLoadTokenError.desc} | ${errorDetail}`);\n }\n\n /**\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\n */\n static createSigningKeyNotFoundInStorageError(keyId: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, `${BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc} | No match found for KeyId: ${keyId}`);\n }\n\n /**\n * Create an error when an authorization code is required but not provided\n */\n static createAuthCodeRequiredError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\n }\n\n /**\n * Create an error when an authorization code or native account ID is required but not provided\n */\n static createAuthCodeOrNativeAccountIdRequiredError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.code, BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.desc);\n }\n\n /**\n * Create an error when IndexedDB is unavailable\n */\n static createDatabaseUnavailableError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\n }\n\n /**\n * Create an error when native token acquisition is not possible\n */\n static createUnableToAcquireTokenFromNativePlatformError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.code, BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.desc);\n }\n\n /**\n * Create an error thrown when Handshake with browser extension times out\n */\n static createNativeHandshakeTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeHandshakeTimeout.code, BrowserAuthErrorMessage.nativeHandshakeTimeout.desc);\n }\n\n /**\n * Create an error thrown when browser extension is not installed\n */\n static createNativeExtensionNotInstalledError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeExtensionNotInstalled.code, BrowserAuthErrorMessage.nativeExtensionNotInstalled.desc);\n }\n\n /**\n * Create an error when native connection has not been established\n * @returns\n */\n static createNativeConnectionNotEstablishedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeConnectionNotEstablished.code, BrowserAuthErrorMessage.nativeConnectionNotEstablished.desc);\n }\n\n /**\n * Create an error thrown when the initialize function hasn't been called\n */\n static createNativeBrokerCalledBeforeInitialize(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.code, BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.desc);\n }\n\n /**\n * Create an error thrown when requesting a token directly from the native platform with an unsupported prompt parameter e.g. select_account, login or create\n * These requests must go through eSTS to ensure eSTS is aware of the new account\n */\n static createNativePromptParameterNotSupportedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativePromptNotSupported.code, BrowserAuthErrorMessage.nativePromptNotSupported.desc);\n }\n}\n"],"names":[],"mappings":"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"}