@azure/msal-browser 3.1.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/IPublicClientApplication.d.ts.map +1 -1
- package/dist/app/IPublicClientApplication.mjs +20 -19
- package/dist/app/IPublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientApplication.d.ts +14 -6
- package/dist/app/PublicClientApplication.d.ts.map +1 -1
- package/dist/app/PublicClientApplication.mjs +18 -8
- package/dist/app/PublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientNext.d.ts +274 -0
- package/dist/app/PublicClientNext.d.ts.map +1 -0
- package/dist/app/PublicClientNext.mjs +362 -0
- package/dist/app/PublicClientNext.mjs.map +1 -0
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +3 -4
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -1
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs +13 -13
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +8 -0
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts.map +1 -0
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +16 -0
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -0
- package/dist/cache/AsyncMemoryStorage.mjs +1 -1
- package/dist/cache/BrowserCacheManager.d.ts +4 -15
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.mjs +13 -69
- package/dist/cache/BrowserCacheManager.mjs.map +1 -1
- package/dist/cache/BrowserStorage.d.ts.map +1 -1
- package/dist/cache/BrowserStorage.mjs +7 -9
- package/dist/cache/BrowserStorage.mjs.map +1 -1
- package/dist/cache/CryptoKeyStore.mjs +1 -1
- package/dist/cache/DatabaseStorage.mjs +1 -1
- package/dist/cache/MemoryStorage.mjs +1 -1
- package/dist/cache/TokenCache.mjs +1 -1
- package/dist/config/Configuration.d.ts +4 -0
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.mjs +8 -7
- package/dist/config/Configuration.mjs.map +1 -1
- package/dist/controllers/ControllerFactory.d.ts +2 -1
- package/dist/controllers/ControllerFactory.d.ts.map +1 -1
- package/dist/controllers/ControllerFactory.mjs +26 -19
- package/dist/controllers/ControllerFactory.mjs.map +1 -1
- package/dist/controllers/IController.d.ts +3 -2
- package/dist/controllers/IController.d.ts.map +1 -1
- package/dist/controllers/NestedAppAuthController.d.ts +96 -0
- package/dist/controllers/NestedAppAuthController.d.ts.map +1 -0
- package/dist/controllers/NestedAppAuthController.mjs +345 -0
- package/dist/controllers/NestedAppAuthController.mjs.map +1 -0
- package/dist/controllers/StandardController.d.ts +11 -6
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +67 -45
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.d.ts +88 -0
- package/dist/controllers/UnknownOperatingContextController.d.ts.map +1 -0
- package/dist/controllers/UnknownOperatingContextController.mjs +275 -0
- package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -0
- package/dist/crypto/BrowserCrypto.d.ts +44 -49
- package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
- package/dist/crypto/BrowserCrypto.mjs +77 -77
- package/dist/crypto/BrowserCrypto.mjs.map +1 -1
- package/dist/crypto/CryptoOps.d.ts +1 -7
- package/dist/crypto/CryptoOps.d.ts.map +1 -1
- package/dist/crypto/CryptoOps.mjs +18 -23
- package/dist/crypto/CryptoOps.mjs.map +1 -1
- package/dist/crypto/PkceGenerator.d.ts +6 -21
- package/dist/crypto/PkceGenerator.d.ts.map +1 -1
- package/dist/crypto/PkceGenerator.mjs +45 -46
- package/dist/crypto/PkceGenerator.mjs.map +1 -1
- package/dist/crypto/SignedHttpRequest.mjs +1 -1
- package/dist/encode/Base64Decode.d.ts.map +1 -1
- package/dist/encode/Base64Decode.mjs +18 -2
- package/dist/encode/Base64Decode.mjs.map +1 -1
- package/dist/encode/Base64Encode.mjs +1 -1
- package/dist/error/BrowserAuthError.d.ts +10 -1
- package/dist/error/BrowserAuthError.d.ts.map +1 -1
- package/dist/error/BrowserAuthError.mjs +12 -3
- package/dist/error/BrowserAuthError.mjs.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.d.ts +1 -0
- package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.mjs +3 -2
- package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.d.ts +9 -46
- package/dist/error/BrowserConfigurationAuthError.d.ts.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.mjs +20 -73
- package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +4 -0
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts.map +1 -0
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +12 -0
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -0
- package/dist/error/NativeAuthError.d.ts +17 -45
- package/dist/error/NativeAuthError.d.ts.map +1 -1
- package/dist/error/NativeAuthError.mjs +47 -78
- package/dist/error/NativeAuthError.mjs.map +1 -1
- package/dist/error/NativeAuthErrorCodes.d.ts +3 -0
- package/dist/error/NativeAuthErrorCodes.d.ts.map +1 -0
- package/dist/error/NativeAuthErrorCodes.mjs +11 -0
- package/dist/error/NativeAuthErrorCodes.mjs.map +1 -0
- package/dist/error/NestedAppAuthError.d.ts +15 -0
- package/dist/error/NestedAppAuthError.d.ts.map +1 -0
- package/dist/error/NestedAppAuthError.mjs +30 -0
- package/dist/error/NestedAppAuthError.mjs.map +1 -0
- package/dist/event/EventHandler.d.ts.map +1 -1
- package/dist/event/EventHandler.mjs +3 -2
- package/dist/event/EventHandler.mjs.map +1 -1
- package/dist/event/EventMessage.mjs +1 -1
- package/dist/event/EventType.mjs +1 -1
- package/dist/index.d.ts +5 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +7 -3
- package/dist/index.mjs.map +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/BaseInteractionClient.mjs +10 -11
- package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
- package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.mjs +26 -13
- package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/interaction_client/PopupClient.mjs +5 -4
- package/dist/interaction_client/PopupClient.mjs.map +1 -1
- package/dist/interaction_client/RedirectClient.mjs +7 -7
- package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.mjs +7 -10
- package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentCacheClient.mjs +11 -18
- package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
- package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentIframeClient.mjs +27 -13
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.mjs +8 -18
- package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.mjs +16 -37
- package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
- package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
- package/dist/interaction_handler/InteractionHandler.mjs +6 -9
- package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
- package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
- package/dist/interaction_handler/RedirectHandler.mjs +3 -3
- package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
- package/dist/interaction_handler/SilentHandler.d.ts +13 -47
- package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
- package/dist/interaction_handler/SilentHandler.mjs +120 -156
- package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
- package/dist/naa/AccountInfo.d.ts +13 -0
- package/dist/naa/AccountInfo.d.ts.map +1 -0
- package/dist/naa/AccountRequests.d.ts +10 -0
- package/dist/naa/AccountRequests.d.ts.map +1 -0
- package/dist/naa/AuthBridge.d.ts +6 -0
- package/dist/naa/AuthBridge.d.ts.map +1 -0
- package/dist/naa/BridgeCapabilities.d.ts +4 -0
- package/dist/naa/BridgeCapabilities.d.ts.map +1 -0
- package/dist/naa/BridgeError.d.ts +10 -0
- package/dist/naa/BridgeError.d.ts.map +1 -0
- package/dist/naa/BridgeError.mjs +12 -0
- package/dist/naa/BridgeError.mjs.map +1 -0
- package/dist/naa/BridgeProxy.d.ts +72 -0
- package/dist/naa/BridgeProxy.d.ts.map +1 -0
- package/dist/naa/BridgeProxy.mjs +154 -0
- package/dist/naa/BridgeProxy.mjs.map +1 -0
- package/dist/naa/BridgeRequest.d.ts +7 -0
- package/dist/naa/BridgeRequest.d.ts.map +1 -0
- package/dist/naa/BridgeRequestEnvelope.d.ts +14 -0
- package/dist/naa/BridgeRequestEnvelope.d.ts.map +1 -0
- package/dist/naa/BridgeResponseEnvelope.d.ts +11 -0
- package/dist/naa/BridgeResponseEnvelope.d.ts.map +1 -0
- package/dist/naa/BridgeStatusCode.d.ts +11 -0
- package/dist/naa/BridgeStatusCode.d.ts.map +1 -0
- package/dist/naa/BridgeStatusCode.mjs +20 -0
- package/dist/naa/BridgeStatusCode.mjs.map +1 -0
- package/dist/naa/IBridgeProxy.d.ts +11 -0
- package/dist/naa/IBridgeProxy.d.ts.map +1 -0
- package/dist/naa/InitializeBridgeResponse.d.ts +7 -0
- package/dist/naa/InitializeBridgeResponse.d.ts.map +1 -0
- package/dist/naa/TokenRequest.d.ts +22 -0
- package/dist/naa/TokenRequest.d.ts.map +1 -0
- package/dist/naa/TokenResponse.d.ts +17 -0
- package/dist/naa/TokenResponse.d.ts.map +1 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +26 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs +178 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -0
- package/dist/navigation/NavigationClient.mjs +1 -1
- package/dist/network/FetchClient.mjs +1 -1
- package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
- package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +7 -0
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs +45 -4
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/UnknownOperatingContext.d.ts +26 -0
- package/dist/operatingcontext/UnknownOperatingContext.d.ts.map +1 -0
- package/dist/operatingcontext/UnknownOperatingContext.mjs +49 -0
- package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -0
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/telemetry/BrowserPerformanceClient.mjs +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
- package/dist/utils/BrowserConstants.mjs +1 -1
- package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
- package/dist/utils/BrowserProtocolUtils.mjs +3 -3
- package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +54 -53
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.mjs +114 -102
- package/dist/utils/BrowserUtils.mjs.map +1 -1
- package/lib/msal-browser.cjs +61 -18042
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +13593 -12505
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +66 -65
- package/package.json +2 -2
- package/src/app/IPublicClientApplication.ts +55 -18
- package/src/app/PublicClientApplication.ts +19 -7
- package/src/app/PublicClientNext.ts +442 -0
- package/src/broker/nativeBroker/NativeMessageHandler.ts +12 -15
- package/src/broker/nativeBroker/NativeStatusCodes.ts +13 -0
- package/src/cache/BrowserCacheManager.ts +29 -103
- package/src/cache/BrowserStorage.ts +9 -11
- package/src/config/Configuration.ts +21 -8
- package/src/controllers/ControllerFactory.ts +36 -25
- package/src/controllers/IController.ts +4 -1
- package/src/controllers/NestedAppAuthController.ts +525 -0
- package/src/controllers/StandardController.ts +163 -98
- package/src/controllers/UnknownOperatingContextController.ts +383 -0
- package/src/crypto/BrowserCrypto.ts +119 -103
- package/src/crypto/CryptoOps.ts +18 -27
- package/src/crypto/PkceGenerator.ts +93 -54
- package/src/encode/Base64Decode.ts +21 -1
- package/src/error/BrowserAuthError.ts +13 -1
- package/src/error/BrowserAuthErrorCodes.ts +1 -0
- package/src/error/BrowserConfigurationAuthError.ts +33 -102
- package/src/error/BrowserConfigurationAuthErrorCodes.ts +9 -0
- package/src/error/NativeAuthError.ts +73 -101
- package/src/error/NativeAuthErrorCodes.ts +7 -0
- package/src/error/NestedAppAuthError.ts +32 -0
- package/src/event/EventHandler.ts +2 -1
- package/src/index.ts +8 -10
- package/src/interaction_client/BaseInteractionClient.ts +14 -8
- package/src/interaction_client/NativeInteractionClient.ts +48 -14
- package/src/interaction_client/PopupClient.ts +2 -1
- package/src/interaction_client/RedirectClient.ts +1 -1
- package/src/interaction_client/SilentAuthCodeClient.ts +22 -19
- package/src/interaction_client/SilentCacheClient.ts +28 -28
- package/src/interaction_client/SilentIframeClient.ts +54 -18
- package/src/interaction_client/SilentRefreshClient.ts +26 -28
- package/src/interaction_client/StandardInteractionClient.ts +37 -68
- package/src/interaction_handler/InteractionHandler.ts +20 -15
- package/src/interaction_handler/RedirectHandler.ts +6 -2
- package/src/interaction_handler/SilentHandler.ts +177 -230
- package/src/naa/AccountInfo.ts +17 -0
- package/src/naa/AccountRequests.ts +16 -0
- package/src/naa/AuthBridge.ts +16 -0
- package/src/naa/BridgeCapabilities.ts +8 -0
- package/src/naa/BridgeError.ts +18 -0
- package/src/naa/BridgeProxy.ts +230 -0
- package/src/naa/BridgeRequest.ts +12 -0
- package/src/naa/BridgeRequestEnvelope.ts +46 -0
- package/src/naa/BridgeResponseEnvelope.ts +21 -0
- package/src/naa/BridgeStatusCode.ts +15 -0
- package/src/naa/IBridgeProxy.ts +25 -0
- package/src/naa/InitializeBridgeResponse.ts +12 -0
- package/src/naa/TokenRequest.ts +26 -0
- package/src/naa/TokenResponse.ts +61 -0
- package/src/naa/mapping/NestedAppAuthAdapter.ts +252 -0
- package/src/operatingcontext/TeamsAppOperatingContext.ts +43 -3
- package/src/operatingcontext/UnknownOperatingContext.ts +48 -0
- package/src/packageMetadata.ts +1 -1
- package/src/utils/BrowserProtocolUtils.ts +3 -2
- package/src/utils/BrowserUtils.ts +133 -125
- package/dist/crypto/ISubtleCrypto.d.ts +0 -10
- package/dist/crypto/ISubtleCrypto.d.ts.map +0 -1
- package/dist/crypto/ModernBrowserCrypto.d.ts +0 -10
- package/dist/crypto/ModernBrowserCrypto.d.ts.map +0 -1
- package/dist/crypto/ModernBrowserCrypto.mjs +0 -31
- package/dist/crypto/ModernBrowserCrypto.mjs.map +0 -1
- package/dist/utils/BrowserStringUtils.d.ts +0 -22
- package/dist/utils/BrowserStringUtils.d.ts.map +0 -1
- package/dist/utils/BrowserStringUtils.mjs +0 -144
- package/dist/utils/BrowserStringUtils.mjs.map +0 -1
- package/src/crypto/ISubtleCrypto.ts +0 -30
- package/src/crypto/ModernBrowserCrypto.ts +0 -69
- package/src/utils/BrowserStringUtils.ts +0 -143
package/lib/msal-browser.min.js
CHANGED
|
@@ -1,66 +1,67 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.3.0 2023-10-20 */
|
|
2
2
|
"use strict";!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).msal={})}(this,(function(e){
|
|
3
|
-
/*! @azure/msal-common v14.0
|
|
4
|
-
const t={LIBRARY_NAME:"MSAL.JS",SKU:"msal.js.common",CACHE_PREFIX:"msal",DEFAULT_AUTHORITY:"https://login.microsoftonline.com/common/",DEFAULT_AUTHORITY_HOST:"login.microsoftonline.com",DEFAULT_COMMON_TENANT:"common",ADFS:"adfs",DSTS:"dstsv2",AAD_INSTANCE_DISCOVERY_ENDPT:"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=",CIAM_AUTH_URL:".ciamlogin.com",AAD_TENANT_DOMAIN_SUFFIX:".onmicrosoft.com",RESOURCE_DELIM:"|",NO_ACCOUNT:"NO_ACCOUNT",CLAIMS:"claims",CONSUMER_UTID:"9188040d-6c67-4c5b-b112-36a304b66dad",OPENID_SCOPE:"openid",PROFILE_SCOPE:"profile",OFFLINE_ACCESS_SCOPE:"offline_access",EMAIL_SCOPE:"email",CODE_RESPONSE_TYPE:"code",CODE_GRANT_TYPE:"authorization_code",RT_GRANT_TYPE:"refresh_token",FRAGMENT_RESPONSE_MODE:"fragment",S256_CODE_CHALLENGE_METHOD:"S256",URL_FORM_CONTENT_TYPE:"application/x-www-form-urlencoded;charset=utf-8",AUTHORIZATION_PENDING:"authorization_pending",NOT_DEFINED:"not_defined",EMPTY_STRING:"",NOT_APPLICABLE:"N/A",FORWARD_SLASH:"/",IMDS_ENDPOINT:"http://169.254.169.254/metadata/instance/compute/location",IMDS_VERSION:"2020-06-01",IMDS_TIMEOUT:2e3,AZURE_REGION_AUTO_DISCOVER_FLAG:"TryAutoDetect",REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX:"login.microsoft.com",REGIONAL_AUTH_NON_MSI_QUERY_STRING:"allowestsrnonmsi=true",KNOWN_PUBLIC_CLOUDS:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"],TOKEN_RESPONSE_TYPE:"token",ID_TOKEN_RESPONSE_TYPE:"id_token",SHR_NONCE_VALIDITY:240,INVALID_INSTANCE:"invalid_instance"},r=400,o=499,n=500,i=599,
|
|
5
|
-
/*! @azure/msal-common v14.0
|
|
6
|
-
/*! @azure/msal-common v14.0
|
|
7
|
-
/*! @azure/msal-common v14.0.3 2023-09-05 */const ut="@azure/msal-common",gt="14.0.3",pt={None:"none",AzurePublic:"https://login.microsoftonline.com",AzurePpe:"https://login.windows-ppe.net",AzureChina:"https://login.chinacloudapi.cn",AzureGermany:"https://login.microsoftonline.de",AzureUsGovernment:"https://login.microsoftonline.us"},mt={clientInfoDecodingError:{code:"client_info_decoding_error",desc:"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause."},clientInfoEmptyError:{code:"client_info_empty_error",desc:"The client info was empty. Please review the trace to determine the root cause."},tokenParsingError:{code:"token_parsing_error",desc:"Token cannot be parsed. Please review stack trace to determine root cause."},nullOrEmptyToken:{code:"null_or_empty_token",desc:"The token is null or empty. Please review the trace to determine the root cause."},endpointResolutionError:{code:"endpoints_resolution_error",desc:"Error: could not resolve endpoints. Please check network and try again."},networkError:{code:"network_error",desc:"Network request failed. Please check network trace to determine root cause."},unableToGetOpenidConfigError:{code:"openid_config_error",desc:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints."},hashNotDeserialized:{code:"hash_not_deserialized",desc:"The hash parameters could not be deserialized. Please review the trace to determine the root cause."},blankGuidGenerated:{code:"blank_guid_generated",desc:"The guid generated was blank. Please review the trace to determine the root cause."},invalidStateError:{code:"invalid_state",desc:"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState()."},stateMismatchError:{code:"state_mismatch",desc:"State mismatch error. Please check your network. Continued requests may cause cache overflow."},stateNotFoundError:{code:"state_not_found",desc:"State not found"},nonceMismatchError:{code:"nonce_mismatch",desc:"Nonce mismatch error. This may be caused by a race condition in concurrent requests."},nonceNotFoundError:{code:"nonce_not_found",desc:"nonce not found"},authTimeNotFoundError:{code:"auth_time_not_found",desc:"Max Age was requested and the ID token is missing the auth_time variable. auth_time is an optional claim and is not enabled by default - it must be enabled. See https://aka.ms/msaljs/optional-claims for more information."},maxAgeTranspiredError:{code:"max_age_transpired",desc:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication."},noTokensFoundError:{code:"no_tokens_found",desc:"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken()."},multipleMatchingTokens:{code:"multiple_matching_tokens",desc:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account."},multipleMatchingAccounts:{code:"multiple_matching_accounts",desc:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account"},multipleMatchingAppMetadata:{code:"multiple_matching_appMetadata",desc:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata"},tokenRequestCannotBeMade:{code:"request_cannot_be_made",desc:"Token request cannot be made without authorization code or refresh token."},appendEmptyScopeError:{code:"cannot_append_empty_scope",desc:"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info."},removeEmptyScopeError:{code:"cannot_remove_empty_scope",desc:"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info."},appendScopeSetError:{code:"cannot_append_scopeset",desc:"Cannot append ScopeSet due to error."},emptyInputScopeSetError:{code:"empty_input_scopeset",desc:"Empty input ScopeSet cannot be processed."},DeviceCodePollingCancelled:{code:"device_code_polling_cancelled",desc:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true."},DeviceCodeExpired:{code:"device_code_expired",desc:"Device code is expired."},DeviceCodeUnknownError:{code:"device_code_unknown_error",desc:"Device code stopped polling for unknown reasons."},NoAccountInSilentRequest:{code:"no_account_in_silent_request",desc:"Please pass an account object, silent flow is not supported without account information"},invalidCacheRecord:{code:"invalid_cache_record",desc:"Cache record object was null or undefined."},invalidCacheEnvironment:{code:"invalid_cache_environment",desc:"Invalid environment when attempting to create cache entry"},noAccountFound:{code:"no_account_found",desc:"No account found in cache for given key."},CachePluginError:{code:"no cache plugin set on CacheManager",desc:"ICachePlugin needs to be set before using readFromStorage or writeFromStorage"},noCryptoObj:{code:"no_crypto_object",desc:"No crypto object detected. This is required for the following operation: "},invalidCacheType:{code:"invalid_cache_type",desc:"Invalid cache type"},unexpectedAccountType:{code:"unexpected_account_type",desc:"Unexpected account type."},unexpectedCredentialType:{code:"unexpected_credential_type",desc:"Unexpected credential type."},invalidAssertion:{code:"invalid_assertion",desc:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515"},invalidClientCredential:{code:"invalid_client_credential",desc:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential"},tokenRefreshRequired:{code:"token_refresh_required",desc:"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired."},userTimeoutReached:{code:"user_timeout_reached",desc:"User defined timeout for device code polling reached"},tokenClaimsRequired:{code:"token_claims_cnf_required_for_signedjwt",desc:"Cannot generate a POP jwt if the token_claims are not populated"},noAuthorizationCodeFromServer:{code:"authorization_code_missing_from_server_response",desc:"Server response does not contain an authorization code to proceed"},noAzureRegionDetected:{code:"no_azure_region_detected",desc:"No azure region was detected and no fallback was made available"},accessTokenEntityNullError:{code:"access_token_entity_null",desc:"Access token entity is null, please check logs and cache to ensure a valid access token is present."},bindingKeyNotRemovedError:{code:"binding_key_not_removed",desc:"Could not remove the credential's binding key from storage."},logoutNotSupported:{code:"end_session_endpoint_not_supported",desc:"Provided authority does not support logout."},keyIdMissing:{code:"key_id_missing",desc:"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key."},noNetworkConnectivity:{code:"no_network_connectivity",desc:"No network connectivity. Check your internet connection."},userCanceledError:{code:"user_canceled",desc:"User canceled the flow."},missingTenantIdError:{code:"missing_tenant_id_error",desc:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow."}};class ft extends ct{constructor(e,t){super(e,t),this.name="ClientAuthError",Object.setPrototypeOf(this,ft.prototype)}static createClientInfoDecodingError(e){return new ft(mt.clientInfoDecodingError.code,`${mt.clientInfoDecodingError.desc} Failed with error: ${e}`)}static createClientInfoEmptyError(){return new ft(mt.clientInfoEmptyError.code,`${mt.clientInfoEmptyError.desc}`)}static createTokenParsingError(e){return new ft(mt.tokenParsingError.code,`${mt.tokenParsingError.desc} Failed with error: ${e}`)}static createTokenNullOrEmptyError(e){return new ft(mt.nullOrEmptyToken.code,`${mt.nullOrEmptyToken.desc} Raw Token Value: ${e}`)}static createEndpointDiscoveryIncompleteError(e){return new ft(mt.endpointResolutionError.code,`${mt.endpointResolutionError.desc} Detail: ${e}`)}static createNetworkError(e,t){return new ft(mt.networkError.code,`${mt.networkError.desc} | Fetch client threw: ${t} | Attempted to reach: ${e.split("?")[0]}`)}static createUnableToGetOpenidConfigError(e){return new ft(mt.unableToGetOpenidConfigError.code,`${mt.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${e}`)}static createHashNotDeserializedError(e){return new ft(mt.hashNotDeserialized.code,`${mt.hashNotDeserialized.desc} Given Object: ${e}`)}static createInvalidStateError(e,t){return new ft(mt.invalidStateError.code,`${mt.invalidStateError.desc} Invalid State: ${e}, Root Err: ${t}`)}static createStateMismatchError(){return new ft(mt.stateMismatchError.code,mt.stateMismatchError.desc)}static createStateNotFoundError(e){return new ft(mt.stateNotFoundError.code,`${mt.stateNotFoundError.desc}: ${e}`)}static createNonceMismatchError(){return new ft(mt.nonceMismatchError.code,mt.nonceMismatchError.desc)}static createAuthTimeNotFoundError(){return new ft(mt.authTimeNotFoundError.code,mt.authTimeNotFoundError.desc)}static createMaxAgeTranspiredError(){return new ft(mt.maxAgeTranspiredError.code,mt.maxAgeTranspiredError.desc)}static createNonceNotFoundError(e){return new ft(mt.nonceNotFoundError.code,`${mt.nonceNotFoundError.desc}: ${e}`)}static createMultipleMatchingTokensInCacheError(){return new ft(mt.multipleMatchingTokens.code,`${mt.multipleMatchingTokens.desc}.`)}static createMultipleMatchingAccountsInCacheError(){return new ft(mt.multipleMatchingAccounts.code,mt.multipleMatchingAccounts.desc)}static createMultipleMatchingAppMetadataInCacheError(){return new ft(mt.multipleMatchingAppMetadata.code,mt.multipleMatchingAppMetadata.desc)}static createTokenRequestCannotBeMadeError(){return new ft(mt.tokenRequestCannotBeMade.code,mt.tokenRequestCannotBeMade.desc)}static createAppendEmptyScopeToSetError(e){return new ft(mt.appendEmptyScopeError.code,`${mt.appendEmptyScopeError.desc} Given Scope: ${e}`)}static createRemoveEmptyScopeFromSetError(e){return new ft(mt.removeEmptyScopeError.code,`${mt.removeEmptyScopeError.desc} Given Scope: ${e}`)}static createAppendScopeSetError(e){return new ft(mt.appendScopeSetError.code,`${mt.appendScopeSetError.desc} Detail Error: ${e}`)}static createEmptyInputScopeSetError(){return new ft(mt.emptyInputScopeSetError.code,`${mt.emptyInputScopeSetError.desc}`)}static createDeviceCodeCancelledError(){return new ft(mt.DeviceCodePollingCancelled.code,`${mt.DeviceCodePollingCancelled.desc}`)}static createDeviceCodeExpiredError(){return new ft(mt.DeviceCodeExpired.code,`${mt.DeviceCodeExpired.desc}`)}static createDeviceCodeUnknownError(){return new ft(mt.DeviceCodeUnknownError.code,`${mt.DeviceCodeUnknownError.desc}`)}static createNoAccountInSilentRequestError(){return new ft(mt.NoAccountInSilentRequest.code,`${mt.NoAccountInSilentRequest.desc}`)}static createNullOrUndefinedCacheRecord(){return new ft(mt.invalidCacheRecord.code,mt.invalidCacheRecord.desc)}static createInvalidCacheEnvironmentError(){return new ft(mt.invalidCacheEnvironment.code,mt.invalidCacheEnvironment.desc)}static createNoAccountFoundError(){return new ft(mt.noAccountFound.code,mt.noAccountFound.desc)}static createCachePluginError(){return new ft(mt.CachePluginError.code,`${mt.CachePluginError.desc}`)}static createNoCryptoObjectError(e){return new ft(mt.noCryptoObj.code,`${mt.noCryptoObj.desc}${e}`)}static createInvalidCacheTypeError(){return new ft(mt.invalidCacheType.code,`${mt.invalidCacheType.desc}`)}static createUnexpectedAccountTypeError(){return new ft(mt.unexpectedAccountType.code,`${mt.unexpectedAccountType.desc}`)}static createUnexpectedCredentialTypeError(){return new ft(mt.unexpectedCredentialType.code,`${mt.unexpectedCredentialType.desc}`)}static createInvalidAssertionError(){return new ft(mt.invalidAssertion.code,`${mt.invalidAssertion.desc}`)}static createInvalidCredentialError(){return new ft(mt.invalidClientCredential.code,`${mt.invalidClientCredential.desc}`)}static createRefreshRequiredError(){return new ft(mt.tokenRefreshRequired.code,mt.tokenRefreshRequired.desc)}static createUserTimeoutReachedError(){return new ft(mt.userTimeoutReached.code,mt.userTimeoutReached.desc)}static createTokenClaimsRequiredError(){return new ft(mt.tokenClaimsRequired.code,mt.tokenClaimsRequired.desc)}static createNoAuthCodeInServerResponseError(){return new ft(mt.noAuthorizationCodeFromServer.code,mt.noAuthorizationCodeFromServer.desc)}static createBindingKeyNotRemovedError(){return new ft(mt.bindingKeyNotRemovedError.code,mt.bindingKeyNotRemovedError.desc)}static createLogoutNotSupportedError(){return new ft(mt.logoutNotSupported.code,mt.logoutNotSupported.desc)}static createKeyIdMissingError(){return new ft(mt.keyIdMissing.code,mt.keyIdMissing.desc)}static createNoNetworkConnectivityError(){return new ft(mt.noNetworkConnectivity.code,mt.noNetworkConnectivity.desc)}static createUserCanceledError(){return new ft(mt.userCanceledError.code,mt.userCanceledError.desc)}static createMissingTenantIdError(){return new ct(mt.missingTenantIdError.code,mt.missingTenantIdError.desc)}}
|
|
8
|
-
/*! @azure/msal-common v14.0
|
|
9
|
-
/*! @azure/msal-common v14.0
|
|
10
|
-
/*! @azure/msal-common v14.0
|
|
11
|
-
/*! @azure/msal-common v14.0
|
|
12
|
-
/*! @azure/msal-common v14.0
|
|
13
|
-
/*! @azure/msal-common v14.0
|
|
14
|
-
/*! @azure/msal-common v14.0
|
|
15
|
-
|
|
16
|
-
/*! @azure/msal-common v14.0
|
|
17
|
-
/*! @azure/msal-common v14.0.3 2023-09-05 */class Mt{constructor(e,t,r){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(ut,gt)}getAllAccounts(){const e=this.getAccountKeys();if(e.length<1)return[];const t=e.reduce(((e,t)=>{const r=this.getAccount(t);return r?(e.push(r),e):e}),[]);if(t.length<1)return[];return t.map((e=>this.getAccountInfoFromEntity(e)))}getAccountInfoFilteredBy(e){const t=this.getAccountsFilteredBy(e);return t.length>0?this.getAccountInfoFromEntity(t[0]):null}getAccountInfoFromEntity(e){const t=e.getAccountInfo(),r=this.getIdToken(t);return r&&(t.idToken=r.secret,t.idTokenClaims=Rt(r.secret,this.cryptoImpl.base64Decode)),t}async saveCacheRecord(e,t){if(!e)throw ft.createNullOrUndefinedCacheRecord();e.account&&this.setAccount(e.account),e.idToken&&!1!==t?.idToken&&this.setIdTokenCredential(e.idToken),e.accessToken&&!1!==t?.accessToken&&await this.saveAccessToken(e.accessToken),e.refreshToken&&!1!==t?.refreshToken&&this.setRefreshTokenCredential(e.refreshToken),e.appMetadata&&this.setAppMetadata(e.appMetadata)}async saveAccessToken(e){const t={clientId:e.clientId,credentialType:e.credentialType,environment:e.environment,homeAccountId:e.homeAccountId,realm:e.realm,tokenType:e.tokenType,requestedClaimsHash:e.requestedClaimsHash},r=this.getTokenKeys(),o=wt.fromString(e.target),n=[];r.accessToken.forEach((e=>{if(!this.accessTokenKeyMatchesFilter(e,t,!1))return;const r=this.getAccessTokenCredential(e);if(r&&this.credentialMatchesFilter(r,t)){wt.fromString(r.target).intersectingScopeSets(o)&&n.push(this.removeAccessToken(e))}})),await Promise.all(n),this.setAccessTokenCredential(e)}getAccountsFilteredBy(e){const t=this.getAccountKeys(),r=[];return t.forEach((t=>{if(!this.isAccountKey(t,e.homeAccountId,e.realm))return;const o=this.getAccount(t);o&&(e.homeAccountId&&!this.matchHomeAccountId(o,e.homeAccountId)||e.localAccountId&&!this.matchLocalAccountId(o,e.localAccountId)||e.username&&!this.matchUsername(o,e.username)||e.environment&&!this.matchEnvironment(o,e.environment)||e.realm&&!this.matchRealm(o,e.realm)||e.nativeAccountId&&!this.matchNativeAccountId(o,e.nativeAccountId)||r.push(o))})),r}isAccountKey(e,t,r){return!(e.split(_e).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(_e).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(Se.ID_TOKEN.toLowerCase())&&-1===t.indexOf(Se.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(Se.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(Se.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(Se.REFRESH_TOKEN.toLowerCase())>-1){const e=`${Se.REFRESH_TOKEN}${_e}${this.clientId}${_e}`,r=`${Se.REFRESH_TOKEN}${_e}${Pe}${_e}`;if(-1===t.indexOf(e.toLowerCase())&&-1===t.indexOf(r.toLowerCase()))return!1}else if(-1===t.indexOf(this.clientId.toLowerCase()))return!1;return!0}credentialMatchesFilter(e,t){if(t.clientId&&!this.matchClientId(e,t.clientId))return!1;if(t.userAssertionHash&&!this.matchUserAssertionHash(e,t.userAssertionHash))return!1;if("string"==typeof t.homeAccountId&&!this.matchHomeAccountId(e,t.homeAccountId))return!1;if(t.environment&&!this.matchEnvironment(e,t.environment))return!1;if(t.realm&&!this.matchRealm(e,t.realm))return!1;if(t.credentialType&&!this.matchCredentialType(e,t.credentialType))return!1;if(t.familyId&&!this.matchFamilyId(e,t.familyId))return!1;if(t.target&&!this.matchTarget(e,t.target))return!1;if((t.requestedClaimsHash||e.requestedClaimsHash)&&e.requestedClaimsHash!==t.requestedClaimsHash)return!1;if(e.credentialType===Se.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===De.SSH&&t.keyId&&!this.matchKeyId(e,t.keyId))return!1}return!0}getAppMetadataFilteredBy(e){return this.getAppMetadataFilteredByInternal(e.environment,e.clientId)}getAppMetadataFilteredByInternal(e,t){const r=this.getKeys(),o={};return r.forEach((r=>{if(!this.isAppMetadata(r))return;const n=this.getAppMetadata(r);n&&(e&&!this.matchEnvironment(n,e)||t&&!this.matchClientId(n,t)||(o[r]=n))})),o}getAuthorityMetadataByAlias(e){const t=this.getAuthorityMetadataKeys();let r=null;return t.forEach((t=>{if(!this.isAuthorityMetadata(t)||-1===t.indexOf(this.clientId))return;const o=this.getAuthorityMetadata(t);o&&-1!==o.aliases.indexOf(e)&&(r=o)})),r}async removeAllAccounts(){const e=this.getAccountKeys(),t=[];e.forEach((e=>{t.push(this.removeAccount(e))})),await Promise.all(t)}async removeAccount(e){const t=this.getAccount(e);t&&(await this.removeAccountContext(t),this.removeItem(e))}async removeAccountContext(e){const t=this.getTokenKeys(),r=e.generateAccountId(),o=[];t.idToken.forEach((e=>{0===e.indexOf(r)&&this.removeIdToken(e)})),t.accessToken.forEach((e=>{0===e.indexOf(r)&&o.push(this.removeAccessToken(e))})),t.refreshToken.forEach((e=>{0===e.indexOf(r)&&this.removeRefreshToken(e)})),await Promise.all(o)}async removeAccessToken(e){const t=this.getAccessTokenCredential(e);if(t){if(t.credentialType.toLowerCase()===Se.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===De.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw ft.createBindingKeyNotRemovedError()}}return this.removeItem(e)}}removeAppMetadata(){return this.getKeys().forEach((e=>{this.isAppMetadata(e)&&this.removeItem(e)})),!0}readCacheRecord(e,t,r){const o=this.getTokenKeys(),n=this.readAccountFromCache(e),i=this.getIdToken(e,o),a=this.getAccessToken(e,t,o),s=this.getRefreshToken(e,!1,o),c=this.readAppMetadataFromCache(r);return n&&i&&(n.idTokenClaims=Rt(i.secret,this.cryptoImpl.base64Decode)),{account:n,idToken:i,accessToken:a,refreshToken:s,appMetadata:c}}readAccountFromCache(e){const t=bt.generateAccountCacheKey(e);return this.getAccount(t)}getIdToken(e,t){this.commonLogger.trace("CacheManager - getIdToken called");const r={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Se.ID_TOKEN,clientId:this.clientId,realm:e.tenantId},o=this.getIdTokensByFilter(r,t),n=o.length;return n<1?(this.commonLogger.info("CacheManager:getIdToken - No token found"),null):n>1?(this.commonLogger.info("CacheManager:getIdToken - Multiple id tokens found, clearing them"),o.forEach((e=>{this.removeIdToken(e.generateCredentialKey())})),null):(this.commonLogger.info("CacheManager:getIdToken - Returning id token"),o[0])}getIdTokensByFilter(e,t){const r=t&&t.idToken||this.getTokenKeys().idToken,o=[];return r.forEach((t=>{if(!this.idTokenKeyMatchesFilter(t,{clientId:this.clientId,...e}))return;const r=this.getIdTokenCredential(t);r&&this.credentialMatchesFilter(r,e)&&o.push(r)})),o}idTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.clientId||-1!==r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase()))}removeIdToken(e){this.removeItem(e)}removeRefreshToken(e){this.removeItem(e)}getAccessToken(e,t,r){this.commonLogger.trace("CacheManager - getAccessToken called");const o=wt.createSearchScopes(t.scopes),n=t.authenticationScheme||De.BEARER,i=n&&n.toLowerCase()!==De.BEARER.toLowerCase()?Se.ACCESS_TOKEN_WITH_AUTH_SCHEME:Se.ACCESS_TOKEN,a={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:i,clientId:this.clientId,realm:e.tenantId,target:o,tokenType:n,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},s=r&&r.accessToken||this.getTokenKeys().accessToken,c=[];s.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,a,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,a)&&c.push(t)}}));const l=c.length;return l<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):l>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),c.forEach((e=>{this.removeAccessToken(e.generateCredentialKey())})),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),c[0])}accessTokenKeyMatchesFilter(e,t,r){const o=e.toLowerCase();if(t.clientId&&-1===o.indexOf(t.clientId.toLowerCase()))return!1;if(t.homeAccountId&&-1===o.indexOf(t.homeAccountId.toLowerCase()))return!1;if(t.realm&&-1===o.indexOf(t.realm.toLowerCase()))return!1;if(t.requestedClaimsHash&&-1===o.indexOf(t.requestedClaimsHash.toLowerCase()))return!1;if(t.target){const e=t.target.asArray();for(let t=0;t<e.length;t++){if(r&&!o.includes(e[t].toLowerCase()))return!1;if(!r&&o.includes(e[t].toLowerCase()))return!0}}return!0}getAccessTokensByFilter(e){const t=this.getTokenKeys(),r=[];return t.accessToken.forEach((t=>{if(!this.accessTokenKeyMatchesFilter(t,e,!0))return;const o=this.getAccessTokenCredential(t);o&&this.credentialMatchesFilter(o,e)&&r.push(o)})),r}getRefreshToken(e,t,r){this.commonLogger.trace("CacheManager - getRefreshToken called");const o=t?Pe:void 0,n={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Se.REFRESH_TOKEN,clientId:this.clientId,familyId:o},i=r&&r.refreshToken||this.getTokenKeys().refreshToken,a=[];i.forEach((e=>{if(this.refreshTokenKeyMatchesFilter(e,n)){const t=this.getRefreshTokenCredential(e);t&&this.credentialMatchesFilter(t,n)&&a.push(t)}}));return a.length<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),a[0])}refreshTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.familyId||-1!==r.indexOf(t.familyId.toLowerCase()))&&(!(!t.familyId&&t.clientId&&-1===r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase())))}readAppMetadataFromCache(e){const t={environment:e,clientId:this.clientId},r=this.getAppMetadataFilteredBy(t),o=Object.keys(r).map((e=>r[e])),n=o.length;if(n<1)return null;if(n>1)throw ft.createMultipleMatchingAppMetadataInCacheError();return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==Pe)}matchHomeAccountId(e,t){return!("string"!=typeof e.homeAccountId||t!==e.homeAccountId)}matchLocalAccountId(e,t){return!("string"!=typeof e.localAccountId||t!==e.localAccountId)}matchUsername(e,t){return!("string"!=typeof e.username||t.toLowerCase()!==e.username.toLowerCase())}matchUserAssertionHash(e,t){return!(!e.userAssertionHash||t!==e.userAssertionHash)}matchEnvironment(e,t){const r=this.getAuthorityMetadataByAlias(t);return!!(r&&r.aliases.indexOf(e.environment)>-1)}matchCredentialType(e,t){return e.credentialType&&t.toLowerCase()===e.credentialType.toLowerCase()}matchClientId(e,t){return!(!e.clientId||t!==e.clientId)}matchFamilyId(e,t){return!(!e.familyId||t!==e.familyId)}matchRealm(e,t){return!(!e.realm||t!==e.realm)}matchNativeAccountId(e,t){return!(!e.nativeAccountId||t!==e.nativeAccountId)}matchTarget(e,t){if(e.credentialType!==Se.ACCESS_TOKEN&&e.credentialType!==Se.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return wt.fromString(e.target).containsScopeSet(t)}matchTokenType(e,t){return!(!e.tokenType||e.tokenType!==t)}matchKeyId(e,t){return!(!e.keyId||e.keyId!==t)}isAppMetadata(e){return-1!==e.indexOf(Re)}isAuthorityMetadata(e){return-1!==e.indexOf(Me)}generateAuthorityMetadataCacheKey(e){return`${Me}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class Nt extends Mt{setAccount(){throw ct.createUnexpectedError("Storage interface - setAccount() has not been implemented for the cacheStorage interface.")}getAccount(){throw ct.createUnexpectedError("Storage interface - getAccount() has not been implemented for the cacheStorage interface.")}setIdTokenCredential(){throw ct.createUnexpectedError("Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.")}getIdTokenCredential(){throw ct.createUnexpectedError("Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.")}setAccessTokenCredential(){throw ct.createUnexpectedError("Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.")}getAccessTokenCredential(){throw ct.createUnexpectedError("Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.")}setRefreshTokenCredential(){throw ct.createUnexpectedError("Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.")}getRefreshTokenCredential(){throw ct.createUnexpectedError("Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.")}setAppMetadata(){throw ct.createUnexpectedError("Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.")}getAppMetadata(){throw ct.createUnexpectedError("Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.")}setServerTelemetry(){throw ct.createUnexpectedError("Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.")}getServerTelemetry(){throw ct.createUnexpectedError("Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.")}setAuthorityMetadata(){throw ct.createUnexpectedError("Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.")}getAuthorityMetadata(){throw ct.createUnexpectedError("Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.")}getAuthorityMetadataKeys(){throw ct.createUnexpectedError("Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.")}setThrottlingCache(){throw ct.createUnexpectedError("Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.")}getThrottlingCache(){throw ct.createUnexpectedError("Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.")}removeItem(){throw ct.createUnexpectedError("Storage interface - removeItem() has not been implemented for the cacheStorage interface.")}containsKey(){throw ct.createUnexpectedError("Storage interface - containsKey() has not been implemented for the cacheStorage interface.")}getKeys(){throw ct.createUnexpectedError("Storage interface - getKeys() has not been implemented for the cacheStorage interface.")}getAccountKeys(){throw ct.createUnexpectedError("Storage interface - getAccountKeys() has not been implemented for the cacheStorage interface.")}getTokenKeys(){throw ct.createUnexpectedError("Storage interface - getTokenKeys() has not been implemented for the cacheStorage interface.")}async clear(){throw ct.createUnexpectedError("Storage interface - clear() has not been implemented for the cacheStorage interface.")}updateCredentialCacheKey(){throw ct.createUnexpectedError("Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.")}}
|
|
18
|
-
|
|
19
|
-
/*! @azure/msal-common v14.0
|
|
20
|
-
/*! @azure/msal-common v14.0
|
|
21
|
-
/*! @azure/msal-common v14.0.3 2023-09-05 */class zt{constructor(e,t){this.networkClient=e,this.cacheManager=t}async sendPostRequest(e,t,r){let o;$t.preProcess(this.cacheManager,e);try{o=await this.networkClient.sendPostRequestAsync(t,r)}catch(e){throw e instanceof ct?e:ft.createNetworkError(t,e)}return $t.postProcess(this.cacheManager,e,o),o}}
|
|
22
|
-
/*! @azure/msal-common v14.0.3 2023-09-05 */const Gt="home_account_id",Qt="UPN";
|
|
23
|
-
/*! @azure/msal-common v14.0
|
|
24
|
-
/*! @azure/msal-common v14.0
|
|
25
|
-
/*! @azure/msal-common v14.0
|
|
26
|
-
/*! @azure/msal-common v14.0
|
|
27
|
-
|
|
28
|
-
/*! @azure/msal-common v14.0
|
|
29
|
-
/*! @azure/msal-common v14.0
|
|
30
|
-
/*! @azure/msal-common v14.0
|
|
31
|
-
/*! @azure/msal-common v14.0
|
|
32
|
-
/*! @azure/msal-common v14.0
|
|
33
|
-
/*! @azure/msal-common v14.0
|
|
34
|
-
/*! @azure/msal-common v14.0
|
|
35
|
-
/*! @azure/msal-common v14.0
|
|
36
|
-
/*! @azure/msal-common v14.0
|
|
37
|
-
/*! @azure/msal-common v14.0
|
|
38
|
-
/*! @azure/msal-common v14.0
|
|
39
|
-
/*! @azure/msal-common v14.0
|
|
40
|
-
/*! @azure/msal-common v14.0
|
|
41
|
-
/*! @azure/msal-common v14.0
|
|
42
|
-
/*! @azure/msal-common v14.0
|
|
43
|
-
/*! @azure/msal-common v14.0
|
|
44
|
-
/*! @azure/msal-common v14.0
|
|
45
|
-
/*! @azure/msal-common v14.0
|
|
46
|
-
/*! @azure/msal-common v14.0
|
|
47
|
-
const Ir={"https://login.microsoftonline.com/common/":{token_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/common/":{token_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/common/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/common/":{token_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/consumers/":{token_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/consumers/":{token_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/consumers/":{token_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/organizations/":{token_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/organizations/":{token_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/organizations/":{token_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"}},Tr={"https://login.microsoftonline.com/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/common/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/consumers/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/organizations/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]}},_r=new Set;for(const e in Tr)for(const t of Tr[e].metadata)for(const e of t.aliases)_r.add(e);
|
|
48
|
-
/*! @azure/msal-common v14.0
|
|
49
|
-
|
|
50
|
-
/*! @azure/msal-common v14.0
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
class Er{constructor(e,t,r,o,n,i,a){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=t,this.cacheManager=r,this.authorityOptions=o,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=n,this.performanceClient=i,this.correlationId=a,this.regionDiscovery=new Sr(t,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(t.CIAM_AUTH_URL))return Et;const r=e.PathSegments;if(r.length)switch(r[0].toLowerCase()){case t.ADFS:return kt;case t.DSTS:return St}return _t}get authorityType(){return this.getAuthorityType(this.canonicalAuthorityUrlComponents)}get protocolMode(){return this.authorityOptions.protocolMode}get options(){return this.authorityOptions}get canonicalAuthority(){return this._canonicalAuthority.urlString}set canonicalAuthority(e){this._canonicalAuthority=new hr(e),this._canonicalAuthority.validateAsUri(),this._canonicalAuthorityUrlComponents=null}get canonicalAuthorityUrlComponents(){return this._canonicalAuthorityUrlComponents||(this._canonicalAuthorityUrlComponents=this._canonicalAuthority.getUrlComponents()),this._canonicalAuthorityUrlComponents}get hostnameAndPort(){return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase()}get tenant(){return this.canonicalAuthorityUrlComponents.PathSegments[0]}get authorizationEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.authorization_endpoint);throw ft.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw ft.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw ft.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw ft.createLogoutNotSupportedError();return this.replacePath(this.metadata.end_session_endpoint)}throw ft.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw ft.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw ft.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}canReplaceTenant(e){return 1===e.PathSegments.length&&!Er.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===_t&&this.protocolMode===At.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const r=new hr(this.metadata.canonical_authority).getUrlComponents(),o=r.PathSegments;return this.canonicalAuthorityUrlComponents.PathSegments.forEach(((e,n)=>{let i=o[n];if(0===n&&this.canReplaceTenant(r)){const e=new hr(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];i!==e&&(this.logger.verbose(`Replacing tenant domain name ${i} with id ${e}`),i=e)}e!==i&&(t=t.replace(`/${i}/`,`/${e}/`))})),this.replaceTenant(t)}get defaultOpenIdConfigurationEndpoint(){const e=this.hostnameAndPort;return this.authorityType===kt||this.protocolMode!==At.AAD&&!this.isAliasOfKnownMicrosoftAuthority(e)?`${this.canonicalAuthority}.well-known/openid-configuration`:`${this.canonicalAuthority}v2.0/.well-known/openid-configuration`}discoveryComplete(){return!!this.metadata}async resolveEndpointsAsync(){this.performanceClient?.addQueueMeasurement(Wt.AuthorityResolveEndpointsAsync,this.correlationId);let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);e||(e=new kr,e.updateCanonicalAuthority(this.canonicalAuthority)),this.performanceClient?.setPreQueueTime(Wt.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=await this.updateCloudDiscoveryMetadata(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network),this.performanceClient?.setPreQueueTime(Wt.AuthorityUpdateEndpointMetadata,this.correlationId);const r=await this.updateEndpointMetadata(e);t!==qe&&r!==qe&&(e.resetExpiresAt(),e.updateCanonicalAuthority(this.canonicalAuthority));const o=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(o,e),this.metadata=e}async updateEndpointMetadata(e){this.performanceClient?.addQueueMeasurement(Wt.AuthorityUpdateEndpointMetadata,this.correlationId),this.logger.verbose("Attempting to get endpoint metadata from authority configuration");let t=this.getEndpointMetadataFromConfig();if(t)return this.logger.verbose("Found endpoint metadata in authority configuration"),e.updateEndpointMetadata(t,!1),Oe;if(this.logger.verbose("Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values."),this.authorityOptions.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get endpoint metadata from the network metadata cache.");else{let t=this.getEndpointMetadataFromHardcodedValues();if(t)return this.logger.verbose("Found endpoint metadata from hardcoded values."),this.authorityOptions.azureRegionConfiguration?.azureRegion&&(this.performanceClient?.setPreQueueTime(Wt.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId),this.logger.verbose("Found azure region configuration. Updating endpoints with regional information."),t=await this.updateMetadataWithRegionalInformation(t)),e.updateEndpointMetadata(t,!1),He;this.logger.verbose("Did not find endpoint metadata in hardcoded values... Attempting to get endpoint metadata from the network metadata cache.")}const r=e.isExpired();if(this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!r)return this.logger.verbose("Found endpoint metadata in the cache."),qe;if(r&&this.logger.verbose("The metadata entity is expired."),this.logger.verbose("Did not find cached endpoint metadata... Attempting to get endpoint metadata from the network."),this.performanceClient?.setPreQueueTime(Wt.AuthorityGetEndpointMetadataFromNetwork,this.correlationId),t=await this.getEndpointMetadataFromNetwork(),t)return this.logger.verbose("Endpoint metadata was successfully returned from getEndpointMetadataFromNetwork()"),this.authorityOptions.azureRegionConfiguration?.azureRegion&&(this.performanceClient?.setPreQueueTime(Wt.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId),this.logger.verbose("Found azure region configuration. Updating endpoints with regional information."),t=await this.updateMetadataWithRegionalInformation(t)),e.updateEndpointMetadata(t,!0),Ue;throw this.logger.error("Did not find endpoint metadata from network... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error."),ft.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint)}isAuthoritySameType(e){return new hr(e.canonical_authority).getUrlComponents().PathSegments.length===this.canonicalAuthorityUrlComponents.PathSegments.length}getEndpointMetadataFromConfig(){if(this.authorityOptions.authorityMetadata)try{return JSON.parse(this.authorityOptions.authorityMetadata)}catch(e){throw Ct.createInvalidAuthorityMetadataError()}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Wt.AuthorityGetEndpointMetadataFromNetwork,this.correlationId);const e=this.performanceClient?.startMeasurement(Wt.AuthorityGetEndpointMetadataFromNetwork,this.correlationId),t={},r=this.defaultOpenIdConfigurationEndpoint;this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${r}`);try{const o=await this.networkInterface.sendGetRequestAsync(r,t),n=function(e){return e.hasOwnProperty("authorization_endpoint")&&e.hasOwnProperty("token_endpoint")&&e.hasOwnProperty("issuer")&&e.hasOwnProperty("jwks_uri")}(o.body);return n?(e?.end({success:!0}),o.body):(e?.end({success:!1,errorCode:"invalid_response"}),this.logger.verbose("Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration"),null)}catch(t){return e?.end({success:!1,errorCode:"request_failure"}),this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${t}`),null}}getEndpointMetadataFromHardcodedValues(){return this.canonicalAuthority in Ir?Ir[this.canonicalAuthority]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(Wt.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const r=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(r){if(r!==t.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=Xe,this.regionDiscoveryMetadata.region_used=r,Er.replaceWithRegionalInformation(e,r);this.performanceClient?.setPreQueueTime(Wt.RegionDiscoveryDetectRegion,this.correlationId);const o=await this.regionDiscovery.detectRegion(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(o)return this.regionDiscoveryMetadata.region_outcome=Ze,this.regionDiscoveryMetadata.region_used=o,Er.replaceWithRegionalInformation(e,o);this.regionDiscoveryMetadata.region_outcome=et}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(Wt.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId),this.logger.verbose("Attempting to get cloud discovery metadata from authority configuration"),this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Canonical Authority: ${e.canonical_authority||t.NOT_APPLICABLE}`);let r=this.getCloudDiscoveryMetadataFromConfig();if(r)return this.logger.verbose("Found cloud discovery metadata in authority configuration"),e.updateCloudDiscoveryMetadata(r,!1),Oe;if(this.logger.verbose("Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values."),this.options.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded cloud discovery metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get cloud discovery metadata from the network metadata cache.");else{const t=this.getCloudDiscoveryMetadataFromHardcodedValues();if(t)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),e.updateCloudDiscoveryMetadata(t,!1),He;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}const o=e.isExpired();if(this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!o)return this.logger.verbose("Found cloud discovery metadata in the cache."),qe;if(o&&this.logger.verbose("The metadata entity is expired."),this.logger.verbose("Did not find cloud discovery metadata in the cache... Attempting to get cloud discovery metadata from the network."),this.performanceClient?.setPreQueueTime(Wt.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId),r=await this.getCloudDiscoveryMetadataFromNetwork(),r)return this.logger.verbose("cloud discovery metadata was successfully returned from getCloudDiscoveryMetadataFromNetwork()"),e.updateCloudDiscoveryMetadata(r,!0),Ue;throw this.logger.error("Did not find cloud discovery metadata from network... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error."),Ct.createUntrustedAuthorityError()}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===Et)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),Er.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);if(this.authorityOptions.cloudDiscoveryMetadata){this.logger.verbose("The cloud discovery metadata has been provided as a network response, in the config.");try{this.logger.verbose("Attempting to parse the cloud discovery metadata.");const e=JSON.parse(this.authorityOptions.cloudDiscoveryMetadata),t=Er.getCloudDiscoveryMetadataFromNetworkResponse(e.metadata,this.hostnameAndPort);if(this.logger.verbose("Parsed the cloud discovery metadata."),t)return this.logger.verbose("There is returnable metadata attached to the parsed cloud discovery metadata."),t;this.logger.verbose("There is no metadata attached to the parsed cloud discovery metadata.")}catch(e){throw this.logger.verbose("Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error."),Ct.createInvalidCloudDiscoveryMetadataError()}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),Er.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Wt.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId);const e=`${t.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,r={};let o=null;try{const n=await this.networkInterface.sendGetRequestAsync(e,r);let i,a;if(function(e){return e.hasOwnProperty("tenant_discovery_endpoint")&&e.hasOwnProperty("metadata")}
|
|
54
|
-
/*! @azure/msal-common v14.0.3 2023-09-05 */(n.body))i=n.body,a=i.metadata,this.logger.verbosePii(`tenant_discovery_endpoint is: ${i.tenant_discovery_endpoint}`);else{if(!function(e){return e.hasOwnProperty("error")&&e.hasOwnProperty("error_description")}(n.body))return this.logger.error("AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse"),null;if(this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${n.status}`),i=n.body,i.error===t.INVALID_INSTANCE)return this.logger.error("The CloudInstanceDiscoveryErrorResponse error is invalid_instance."),null;this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${i.error}`),this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${i.error_description}`),this.logger.warning("Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []"),a=[]}this.logger.verbose("Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request."),o=Er.getCloudDiscoveryMetadataFromNetworkResponse(a,this.hostnameAndPort)}catch(e){if(e instanceof ct)this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata.\nError: ${e.errorCode}\nError Description: ${e.errorMessage}`);else{const t=e;this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\nError: ${t.name}\nError Description: ${t.message}`)}return null}return o||(this.logger.warning("The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request."),this.logger.verbose("Creating custom Authority for custom domain scenario."),o=Er.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),o}getCloudDiscoveryMetadataFromHardcodedValues(){if(this.canonicalAuthority in Tr){const e=Tr[this.canonicalAuthority];return Er.getCloudDiscoveryMetadataFromNetworkResponse(e.metadata,this.hostnameAndPort)}return null}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter((e=>hr.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort)).length>0}static generateAuthority(e,r){let o;if(r&&r.azureCloudInstance!==pt.None){const e=r.tenant?r.tenant:t.DEFAULT_COMMON_TENANT;o=`${r.azureCloudInstance}/${e}/`}return o||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}static getCloudDiscoveryMetadataFromNetworkResponse(e,t){for(let r=0;r<e.length;r++){const o=e[r];if(o.aliases.indexOf(t)>-1)return o}return null}getPreferredCache(){if(this.discoveryComplete())return this.metadata.preferred_cache;throw ft.createEndpointDiscoveryIncompleteError("Discovery incomplete.")}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return _r.has(e)}static isPublicCloudAuthority(e){return t.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,r,o){const n=new hr(e);n.validateAsUri();const i=n.getUrlComponents();let a=`${r}.${i.HostNameAndPort}`;this.isPublicCloudAuthority(i.HostNameAndPort)&&(a=`${r}.${t.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);const s=hr.constructAuthorityUriFromObject({...n.getUrlComponents(),HostNameAndPort:a}).urlString;return o?`${s}?${o}`:s}static replaceWithRegionalInformation(e,r){const o={...e};return o.authorization_endpoint=Er.buildRegionalAuthorityString(o.authorization_endpoint,r),o.token_endpoint=Er.buildRegionalAuthorityString(o.token_endpoint,r,t.REGIONAL_AUTH_NON_MSI_QUERY_STRING),o.end_session_endpoint&&(o.end_session_endpoint=Er.buildRegionalAuthorityString(o.end_session_endpoint,r)),o}static transformCIAMAuthority(e){let r=e.endsWith(t.FORWARD_SLASH)?e:`${e}${t.FORWARD_SLASH}`;const o=new hr(e).getUrlComponents();if(0===o.PathSegments.length&&o.HostNameAndPort.endsWith(t.CIAM_AUTH_URL)){r=`${r}${o.HostNameAndPort.split(".")[0]}${t.AAD_TENANT_DOMAIN_SUFFIX}`}return r}}Er.reservedTenantDomains=new Set(["{tenant}","{tenantid}",T,k,_]);
|
|
55
|
-
/*! @azure/msal-common v14.0
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
/*! @azure/msal-common v14.0
|
|
59
|
-
/*! @azure/msal-common v14.0
|
|
60
|
-
/*! @azure/msal-common v14.0
|
|
61
|
-
/*! @azure/msal-common v14.0
|
|
62
|
-
/*! @azure/msal-common v14.0
|
|
63
|
-
/*! @azure/msal-common v14.0
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
/*! @azure/msal-common v14.0.3 2023-09-05 */class Lr{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class Dr{generateId(){return"callback-id"}startMeasurement(e,t){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:Vt,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new Lr}}startPerformanceMeasurement(){return new Lr}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}const xr="invalid_grant",Br=483,Fr=600,Kr="msal",$r=30,zr="msal.js.browser",Gr="53ee284d-920a-4b59-9d30-a60315b26836",Qr="ppnbnpeolgkicgegkbkbjmhlideopiji",jr="MATS",Yr="Handshake",Wr="HandshakeResponse",Vr="GetToken",Jr="Response",Xr={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},Zr="GET",eo="POST",to="authority",ro="request.state",oo="nonce.id_token",no="request.origin",io="urlHash",ao="request.params",so="interaction.status",co="ccs.credential",lo="request.correlationId",ho="request.native",uo="request.redirect.context",go="msal.account.keys",po="msal.token.keys",mo="wrapper.sku",fo="wrapper.version",yo={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var Co;e.InteractionType=void 0,(Co=e.InteractionType||(e.InteractionType={})).Redirect="redirect",Co.Popup="popup",Co.Silent="silent",Co.None="none";const vo={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},wo={scopes:a},Io="msal.db",To=`${Io}.keys`,_o={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5};class ko{navigateInternal(e,t){return ko.defaultNavigateWindow(e,t)}navigateExternal(e,t){return ko.defaultNavigateWindow(e,t)}static defaultNavigateWindow(e,t){return t.noHistory?window.location.replace(e):window.location.assign(e),new Promise((e=>{setTimeout((()=>{e(!0)}),t.timeout)}))}}const So="pkce_not_created",Eo="crypto_nonexistent",Ao="empty_navigate_uri",bo="hash_empty_error",Ro="no_state_in_hash",Po="hash_does_not_contain_known_properties",Mo="unable_to_parse_state",No="state_interaction_type_mismatch",Oo="interaction_in_progress",qo="popup_window_error",Uo="empty_window_error",Ho="user_cancelled",Lo="monitor_popup_timeout",Do="monitor_window_timeout",xo="redirect_in_iframe",Bo="block_iframe_reload",Fo="block_nested_popups",Ko="iframe_closed_prematurely",$o="silent_logout_unsupported",zo="no_account_error",Go="silent_prompt_value_error",Qo="no_token_request_cache_error",jo="unable_to_parse_token_request_cache_error",Yo="no_cached_authority_error",Wo="auth_request_not_set_error",Vo="invalid_cache_type",Jo="non_browser_environment",Xo="database_not_open",Zo="no_network_connectivity",en="post_request_failed",tn="get_request_failed",rn="failed_to_parse_response",on="unable_to_load_token",nn="crypto_key_not_found",an="auth_code_required",sn="auth_code_or_nativeAccountId_required",cn="spa_code_and_nativeAccountId_present",ln="database_unavailable",dn="unable_to_acquire_token_from_native_platform",hn="native_handshake_timeout",un="native_extension_not_installed",gn="native_connection_not_established",pn="uninitialized_public_client_application",mn="native_prompt_not_supported";var fn=Object.freeze({__proto__:null,authCodeOrNativeAccountIdRequired:sn,authCodeRequired:an,authRequestNotSetError:Wo,blockIframeReload:Bo,blockNestedPopups:Fo,cryptoKeyNotFound:nn,cryptoNonExistent:Eo,databaseNotOpen:Xo,databaseUnavailable:ln,emptyNavigateUri:Ao,emptyWindowError:Uo,failedToParseResponse:rn,getRequestFailed:tn,hashDoesNotContainKnownProperties:Po,hashEmptyError:bo,iframeClosedPrematurely:Ko,interactionInProgress:Oo,invalidCacheType:Vo,monitorPopupTimeout:Lo,monitorWindowTimeout:Do,nativeConnectionNotEstablished:gn,nativeExtensionNotInstalled:un,nativeHandshakeTimeout:hn,nativePromptNotSupported:mn,noAccountError:zo,noCachedAuthorityError:Yo,noNetworkConnectivity:Zo,noStateInHash:Ro,noTokenRequestCacheError:Qo,nonBrowserEnvironment:Jo,pkceNotCreated:So,popupWindowError:qo,postRequestFailed:en,redirectInIframe:xo,silentLogoutUnsupported:$o,silentPromptValueError:Go,spaCodeAndNativeAccountIdPresent:cn,stateInteractionTypeMismatch:No,unableToAcquireTokenFromNativePlatform:dn,unableToLoadToken:on,unableToParseState:Mo,unableToParseTokenRequestCacheError:jo,uninitializedPublicClientApplication:pn,userCancelled:Ho});const yn="For more visit: aka.ms/msaljs/browser-errors",Cn={[So]:"The PKCE code challenge and verifier could not be generated.",[Eo]:"The crypto object or function is not available.",[Ao]:"Navigation URI is empty. Please check stack trace for more info.",[bo]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${yn}`,[Ro]:"Hash does not contain state. Please verify that the request originated from msal.",[Po]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${yn}`,[Mo]:"Unable to parse state. Please verify that the request originated from msal.",[No]:"Hash contains state but the interaction type does not match the caller.",[Oo]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${yn}`,[qo]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[Uo]:"window.open returned null or undefined window object.",[Ho]:"User cancelled the flow.",[Lo]:`Token acquisition in popup failed due to timeout. ${yn}`,[Do]:`Token acquisition in iframe failed due to timeout. ${yn}`,[xo]:"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.",[Bo]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${yn}`,[Fo]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[Ko]:"The iframe being monitored was closed prematurely.",[$o]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[zo]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[Go]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[Qo]:"No token request found in cache.",[jo]:"The cached token request could not be parsed.",[Yo]:"No cached authority found.",[Wo]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[Vo]:"Invalid cache type",[Jo]:"Login and token requests are not supported in non-browser environments.",[Xo]:"Database is not open!",[Zo]:"No network connectivity. Check your internet connection.",[en]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[tn]:"Network request failed. Please check the network trace to determine root cause.",[rn]:"Failed to parse network response. Check network trace.",[on]:"Error loading token to cache.",[nn]:"Cryptographic Key or Keypair not found in browser storage.",[an]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[sn]:"An authorization code or nativeAccountId must be provided to this flow.",[cn]:"Request cannot contain both spa code and native account id.",[ln]:"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.",[dn]:`Unable to acquire token from native platform. ${yn}`,[hn]:"Timed out while attempting to establish connection to browser extension",[un]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[gn]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${yn}`,[pn]:`You must call and await the initialize function before attempting to call any other MSAL API. ${yn}`,[mn]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow."},vn={pkceNotGenerated:{code:So,desc:Cn[So]},cryptoDoesNotExist:{code:Eo,desc:Cn[Eo]},emptyNavigateUriError:{code:Ao,desc:Cn[Ao]},hashEmptyError:{code:bo,desc:Cn[bo]},hashDoesNotContainStateError:{code:Ro,desc:Cn[Ro]},hashDoesNotContainKnownPropertiesError:{code:Po,desc:Cn[Po]},unableToParseStateError:{code:Mo,desc:Cn[Mo]},stateInteractionTypeMismatchError:{code:No,desc:Cn[No]},interactionInProgress:{code:Oo,desc:Cn[Oo]},popupWindowError:{code:qo,desc:Cn[qo]},emptyWindowError:{code:Uo,desc:Cn[Uo]},userCancelledError:{code:Ho,desc:Cn[Ho]},monitorPopupTimeoutError:{code:Lo,desc:Cn[Lo]},monitorIframeTimeoutError:{code:Do,desc:Cn[Do]},redirectInIframeError:{code:xo,desc:Cn[xo]},blockTokenRequestsInHiddenIframeError:{code:Bo,desc:Cn[Bo]},blockAcquireTokenInPopupsError:{code:Fo,desc:Cn[Fo]},iframeClosedPrematurelyError:{code:Ko,desc:Cn[Ko]},silentLogoutUnsupportedError:{code:$o,desc:Cn[$o]},noAccountError:{code:zo,desc:Cn[zo]},silentPromptValueError:{code:Go,desc:Cn[Go]},noTokenRequestCacheError:{code:Qo,desc:Cn[Qo]},unableToParseTokenRequestCacheError:{code:jo,desc:Cn[jo]},noCachedAuthorityError:{code:Yo,desc:Cn[Yo]},authRequestNotSet:{code:Wo,desc:Cn[Wo]},invalidCacheType:{code:Vo,desc:Cn[Vo]},notInBrowserEnvironment:{code:Jo,desc:Cn[Jo]},databaseNotOpen:{code:Xo,desc:Cn[Xo]},noNetworkConnectivity:{code:Zo,desc:Cn[Zo]},postRequestFailed:{code:en,desc:Cn[en]},getRequestFailed:{code:tn,desc:Cn[tn]},failedToParseNetworkResponse:{code:rn,desc:Cn[rn]},unableToLoadTokenError:{code:on,desc:Cn[on]},signingKeyNotFoundInStorage:{code:nn,desc:Cn[nn]},authCodeRequired:{code:an,desc:Cn[an]},authCodeOrNativeAccountRequired:{code:sn,desc:Cn[sn]},spaCodeAndNativeAccountPresent:{code:cn,desc:Cn[cn]},databaseUnavailable:{code:ln,desc:Cn[ln]},unableToAcquireTokenFromNativePlatform:{code:dn,desc:Cn[dn]},nativeHandshakeTimeout:{code:hn,desc:Cn[hn]},nativeExtensionNotInstalled:{code:un,desc:Cn[un]},nativeConnectionNotEstablished:{code:gn,desc:Cn[gn]},uninitializedPublicClientApplication:{code:pn,desc:Cn[pn]},nativePromptNotSupported:{code:mn,desc:Cn[mn]}};class wn extends ct{constructor(e){super(e,Cn[e]),Object.setPrototypeOf(this,wn.prototype),this.name="BrowserAuthError"}}function In(e){return new wn(e)}class Tn{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:Zr,headers:this.getFetchHeaders(t)})}catch(e){throw window.navigator.onLine?In(tn):In(Zo)}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(e){throw In(rn)}}async sendPostRequestAsync(e,r){const o=r&&r.body||t.EMPTY_STRING;let n;try{n=await fetch(e,{method:eo,headers:this.getFetchHeaders(r),body:o})}catch(e){throw window.navigator.onLine?In(en):In(Zo)}try{return{headers:this.getHeaderDict(n.headers),body:await n.json(),status:n.status}}catch(e){throw In(rn)}}getFetchHeaders(e){const t=new Headers;if(!e||!e.headers)return t;const r=e.headers;return Object.keys(r).forEach((e=>{t.append(e,r[e])})),t}getHeaderDict(e){const t={};return e.forEach(((e,r)=>{t[r]=e})),t}}const _n=6e3;const kn="@azure/msal-browser",Sn="3.1.0";class En{constructor(r){this.browserEnvironment="undefined"!=typeof window,this.config=function({auth:r,cache:o,system:n,telemetry:i},a){const s={clientId:t.EMPTY_STRING,authority:`${t.DEFAULT_AUTHORITY}`,knownAuthorities:[],cloudDiscoveryMetadata:t.EMPTY_STRING,authorityMetadata:t.EMPTY_STRING,redirectUri:t.EMPTY_STRING,postLogoutRedirectUri:t.EMPTY_STRING,navigateToLoginRequestUrl:!0,clientCapabilities:[],protocolMode:At.AAD,OIDCOptions:{serverResponseType:fe.FRAGMENT,defaultScopes:[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:pt.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1},c={cacheLocation:Xr.SessionStorage,temporaryCacheLocation:Xr.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!o||o.cacheLocation!==Xr.LocalStorage),claimsBasedCachingEnabled:!1},l={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},d={...Ot,loggerOptions:l,networkClient:a?new Tn:Pr,navigationClient:new ko,loadFrameTimeout:0,windowHashTimeout:n?.loadFrameTimeout||6e4,iframeHashTimeout:n?.loadFrameTimeout||_n,navigateFrameWait:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:n?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:$r},h={...n,loggerOptions:n?.loggerOptions||l},u={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING},client:new Dr};if(r?.protocolMode!==At.OIDC&&r?.OIDCOptions&&console.warn(Ct.createCannotSetOIDCOptionsError()),r?.protocolMode&&r.protocolMode!==At.AAD&&h?.allowNativeBroker)throw Ct.createCannotAllowNativeBrokerError();return{auth:{...s,...r,OIDCOptions:{...s.OIDCOptions,...r?.OIDCOptions}},cache:{...c,...o},system:{...d,...h},telemetry:{...u,...i}}}(r,this.browserEnvironment),this.logger=new ht(this.config.system.loggerOptions,kn,Sn),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class An extends En{getModuleName(){return An.MODULE_NAME}getId(){return An.ID}async initialize(){return!1}}An.MODULE_NAME="",An.ID="TeamsAppOperatingContext";class bn extends En{getModuleName(){return bn.MODULE_NAME}getId(){return bn.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}bn.MODULE_NAME="",bn.ID="StandardOperatingContext";class Rn{constructor(e){this.config=e;const t={loggerCallback:void 0,piiLoggingEnabled:!1,logLevel:void 0,correlationId:void 0};this.logger=new ht(t,kn,Sn)}async createController(){const e=new bn(this.config),t=new An(this.config),r=[e.initialize(),t.initialize()];return Promise.all(r).then((async()=>{if(t.isAvailable()){const t=await Promise.resolve().then((function(){return Pi}));return await t.StandardController.createController(e)}if(e.isAvailable()){const t=await Promise.resolve().then((function(){return Pi}));return await t.StandardController.createController(e)}throw new Error("No controller found.")}))}}function Pn(e){return encodeURIComponent(Nn(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function Mn(e){return On(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Nn(e){return On((new TextEncoder).encode(e))}function On(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}function qn(e){return(new TextDecoder).decode(function(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)||0))}(e))}class Un{constructor(e){this.cryptoObj=e}async generateCodes(){const e=this.generateCodeVerifier();return{verifier:e,challenge:await this.generateCodeChallengeFromVerifier(e)}}generateCodeVerifier(){try{const e=new Uint8Array(32);this.cryptoObj.getRandomValues(e);return Mn(e)}catch(e){throw In(So)}}async generateCodeChallengeFromVerifier(e){try{const t=await this.cryptoObj.sha256Digest(e);return Mn(new Uint8Array(t))}catch(e){throw In(So)}}}class Hn{static stringToUtf8Arr(e){let t,r=0;const o=e.length;for(let n=0;n<o;n++)t=e.charCodeAt(n),r+=t<128?1:t<2048?2:t<65536?3:t<2097152?4:t<67108864?5:6;const n=new Uint8Array(r);for(let o=0,i=0;o<r;i++)t=e.charCodeAt(i),t<128?n[o++]=t:t<2048?(n[o++]=192+(t>>>6),n[o++]=128+(63&t)):t<65536?(n[o++]=224+(t>>>12),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):t<2097152?(n[o++]=240+(t>>>18),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):t<67108864?(n[o++]=248+(t>>>24),n[o++]=128+(t>>>18&63),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t)):(n[o++]=252+(t>>>30),n[o++]=128+(t>>>24&63),n[o++]=128+(t>>>18&63),n[o++]=128+(t>>>12&63),n[o++]=128+(t>>>6&63),n[o++]=128+(63&t));return n}static utf8ArrToString(e){let r=t.EMPTY_STRING;for(let t,o=e.length,n=0;n<o;n++)t=e[n],r+=String.fromCharCode(t>251&&t<254&&n+5<o?1073741824*(t-252)+(e[++n]-128<<24)+(e[++n]-128<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>247&&t<252&&n+4<o?(t-248<<24)+(e[++n]-128<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>239&&t<248&&n+3<o?(t-240<<18)+(e[++n]-128<<12)+(e[++n]-128<<6)+e[++n]-128:t>223&&t<240&&n+2<o?(t-224<<12)+(e[++n]-128<<6)+e[++n]-128:t>191&&t<224&&n+1<o?(t-192<<6)+e[++n]-128:t);return r}static getSortedObjectString(e){return JSON.stringify(e,Object.keys(e).sort())}}class Ln{getRandomValues(e){return window.crypto.getRandomValues(e)}async generateKey(e,t,r){return window.crypto.subtle.generateKey(e,t,r)}async exportKey(e){return window.crypto.subtle.exportKey("jwk",e)}async importKey(e,t,r,o){return window.crypto.subtle.importKey("jwk",e,t,r,o)}async sign(e,t,r){return window.crypto.subtle.sign(e,t,r)}async digest(e,t){return window.crypto.subtle.digest(e,t)}}const Dn="SHA-256",xn=new Uint8Array([1,0,1]);class Bn{constructor(e){if(this.logger=e,!this.hasBrowserCrypto())throw this.logger.error("BrowserCrypto: crypto interface is unavailable"),In(Eo);this.logger.verbose("BrowserCrypto: modern crypto interface available"),this.subtleCrypto=new Ln,this.keygenAlgorithmOptions={name:"RSASSA-PKCS1-v1_5",hash:Dn,modulusLength:2048,publicExponent:xn}}hasBrowserCrypto(){return"crypto"in window}async sha256Digest(e){const t=Hn.stringToUtf8Arr(e);return this.subtleCrypto.digest({name:Dn},t)}getRandomValues(e){return this.subtleCrypto.getRandomValues(e)}async generateKeyPair(e,t){return this.subtleCrypto.generateKey(this.keygenAlgorithmOptions,e,t)}async exportJwk(e){return this.subtleCrypto.exportKey(e)}async importJwk(e,t,r){return this.subtleCrypto.importKey(e,this.keygenAlgorithmOptions,t,r)}async sign(e,t){return this.subtleCrypto.sign(this.keygenAlgorithmOptions,e,t)}}class Fn{constructor(){this.dbName=Io,this.version=1,this.tableName=To,this.dbOpen=!1}async open(){return new Promise(((e,t)=>{const r=window.indexedDB.open(this.dbName,this.version);r.addEventListener("upgradeneeded",(e=>{e.target.result.createObjectStore(this.tableName)})),r.addEventListener("success",(t=>{const r=t;this.db=r.target.result,this.dbOpen=!0,e()})),r.addEventListener("error",(()=>t(In(ln))))}))}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return await this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(In(Xo));const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async setItem(e,t){return await this.validateDbIsOpen(),new Promise(((r,o)=>{if(!this.db)return o(In(Xo));const n=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(t,e);n.addEventListener("success",(()=>{this.closeConnection(),r()})),n.addEventListener("error",(e=>{this.closeConnection(),o(e)}))}))}async removeItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(In(Xo));const o=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);o.addEventListener("success",(()=>{this.closeConnection(),t()})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async getKeys(){return await this.validateDbIsOpen(),new Promise(((e,t)=>{if(!this.db)return t(In(Xo));const r=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAllKeys();r.addEventListener("success",(t=>{const r=t;this.closeConnection(),e(r.target.result)})),r.addEventListener("error",(e=>{this.closeConnection(),t(e)}))}))}async containsKey(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(In(Xo));const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(1===r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async deleteDatabase(){return this.db&&this.dbOpen&&this.closeConnection(),new Promise(((e,t)=>{const r=window.indexedDB.deleteDatabase(Io);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class Kn{constructor(){this.cache=new Map}getItem(e){return this.cache.get(e)||null}setItem(e,t){this.cache.set(e,t)}removeItem(e){this.cache.delete(e)}getKeys(){const e=[];return this.cache.forEach(((t,r)=>{e.push(r)})),e}containsKey(e){return this.cache.has(e)}clear(){this.cache.clear()}}class $n{constructor(e,t){this.inMemoryCache=new Kn,this.indexedDBCache=new Fn,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof wn&&e.errorCode===ln))throw e;this.logger.error("Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.")}async getItem(e){const t=this.inMemoryCache.getItem(e);if(!t)try{return this.logger.verbose("Queried item not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.getItem(e)}catch(e){this.handleDatabaseAccessError(e)}return t}async setItem(e,t){this.inMemoryCache.setItem(e,t);try{await this.indexedDBCache.setItem(e,t)}catch(e){this.handleDatabaseAccessError(e)}}async removeItem(e){this.inMemoryCache.removeItem(e);try{await this.indexedDBCache.removeItem(e)}catch(e){this.handleDatabaseAccessError(e)}}async getKeys(){const e=this.inMemoryCache.getKeys();if(0===e.length)try{return this.logger.verbose("In-memory cache is empty, now querying persistent storage."),await this.indexedDBCache.getKeys()}catch(e){this.handleDatabaseAccessError(e)}return e}async containsKey(e){const t=this.inMemoryCache.containsKey(e);if(!t)try{return this.logger.verbose("Key not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.containsKey(e)}catch(e){this.handleDatabaseAccessError(e)}return t}clearInMemory(){this.logger.verbose(`Deleting in-memory keystore ${this.storeName}`),this.inMemoryCache.clear(),this.logger.verbose(`In-memory keystore ${this.storeName} deleted`)}async clearPersistent(){try{this.logger.verbose("Deleting persistent keystore");const e=await this.indexedDBCache.deleteDatabase();return e&&this.logger.verbose("Persistent keystore deleted"),e}catch(e){return this.handleDatabaseAccessError(e),!1}}}const zn="asymmetricKeys",Gn="symmetricKeys";class Qn{constructor(e){this.logger=e,this.asymmetricKeys=new $n(this.logger,zn),this.symmetricKeys=new $n(this.logger,Gn)}async clear(){this.asymmetricKeys.clearInMemory(),this.symmetricKeys.clearInMemory();try{return await this.asymmetricKeys.clearPersistent(),!0}catch(e){return e instanceof Error?this.logger.error(`Clearing keystore failed with error: ${e.message}`):this.logger.error("Clearing keystore failed with unknown error"),!1}}}class jn{constructor(e,t){this.logger=e,this.browserCrypto=new Bn(this.logger),this.pkceGenerator=new Un(this.browserCrypto),this.cache=new Qn(this.logger),this.performanceClient=t}createNewGuid(){return window.crypto.randomUUID()}base64Encode(e){return Nn(e)}base64Decode(e){return qn(e)}async generatePkceCodes(){return this.pkceGenerator.generateCodes()}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(Wt.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await this.browserCrypto.generateKeyPair(jn.EXTRACTABLE,jn.POP_KEY_USAGES),o=await this.browserCrypto.exportJwk(r.publicKey),n={e:o.e,kty:o.kty,n:o.n},i=Hn.getSortedObjectString(n),a=await this.hashString(i),s=await this.browserCrypto.exportJwk(r.privateKey),c=await this.browserCrypto.importJwk(s,!1,["sign"]);return await this.cache.asymmetricKeys.setItem(a,{privateKey:c,publicKey:r.publicKey,requestMethod:e.resourceRequestMethod,requestUri:e.resourceRequestUri}),t&&t.end({success:!0}),a}async removeTokenBindingKey(e){await this.cache.asymmetricKeys.removeItem(e);return!await this.cache.asymmetricKeys.containsKey(e)}async clearKeystore(){return await this.cache.clear()}async signJwt(e,t,r){const o=this.performanceClient?.startMeasurement(Wt.CryptoOptsSignJwt,r),n=await this.cache.asymmetricKeys.getItem(t);if(!n)throw In(nn);const i=await this.browserCrypto.exportJwk(n.publicKey),a=Hn.getSortedObjectString(i),s=Pn(JSON.stringify({kid:t})),c=Pn(qr.getShrHeaderString({kid:s,alg:i.alg}));e.cnf={jwk:JSON.parse(a)};const l=`${c}.${Pn(JSON.stringify(e))}`,d=Hn.stringToUtf8Arr(l),h=await this.browserCrypto.sign(n.privateKey,d),u=`${l}.${Mn(new Uint8Array(h))}`;return o&&o.end({success:!0}),u}async hashString(e){const t=await this.browserCrypto.sha256Digest(e);return Mn(new Uint8Array(t))}}jn.POP_KEY_USAGES=["sign","verify"],jn.EXTRACTABLE=!0;const Yn={redirectUriNotSet:{code:"redirect_uri_empty",desc:"A redirect URI is required for all calls, and none has been set."},postLogoutUriNotSet:{code:"post_logout_uri_empty",desc:"A post logout redirect has not been set."},storageNotSupportedError:{code:"storage_not_supported",desc:"Given storage configuration option was not supported."},noRedirectCallbacksSet:{code:"no_redirect_callbacks",desc:"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics."},invalidCallbackObject:{code:"invalid_callback_object",desc:"The object passed for the callback was invalid. More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics."},stubPcaInstanceCalled:{code:"stubbed_public_client_application_called",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"},inMemRedirectUnavailable:{code:"in_mem_redirect_unavailable",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."},entropyNotProvided:{code:"entropy_not_provided",desc:"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option."}};class Wn extends ct{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,Wn.prototype)}static createRedirectUriEmptyError(){return new Wn(Yn.redirectUriNotSet.code,Yn.redirectUriNotSet.desc)}static createPostLogoutRedirectUriEmptyError(){return new Wn(Yn.postLogoutUriNotSet.code,Yn.postLogoutUriNotSet.desc)}static createStorageNotSupportedError(e){return new Wn(Yn.storageNotSupportedError.code,`${Yn.storageNotSupportedError.desc} Given Location: ${e}`)}static createRedirectCallbacksNotSetError(){return new Wn(Yn.noRedirectCallbacksSet.code,Yn.noRedirectCallbacksSet.desc)}static createStubPcaInstanceCalledError(){return new Wn(Yn.stubPcaInstanceCalled.code,Yn.stubPcaInstanceCalled.desc)}static createInMemoryRedirectUnavailableError(){return new Wn(Yn.inMemRedirectUnavailable.code,Yn.inMemRedirectUnavailable.desc)}static createEntropyNotProvided(){return new Wn(Yn.entropyNotProvided.code,Yn.entropyNotProvided.desc)}}class Vn{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==Xr.LocalStorage&&e!==Xr.SessionStorage)throw Wn.createStorageNotSupportedError(e);if(!!!window[e])throw Wn.createStorageNotSupportedError(e)}getItem(e){return this.windowStorage.getItem(e)}setItem(e,t){this.windowStorage.setItem(e,t)}removeItem(e){this.windowStorage.removeItem(e)}getKeys(){return Object.keys(this.windowStorage)}containsKey(e){return this.windowStorage.hasOwnProperty(e)}}class Jn{static extractBrowserRequestState(e,t){if(!t)return null;try{return dr.parseRequestState(e,t).libraryState.meta}catch(e){throw ft.createInvalidStateError(t,e)}}static parseServerResponseFromHash(e){if(!e)return{};const t=new hr(e);return hr.getDeserializedHash(t.getHash())}}class Xn extends Mt{constructor(e,t,r,o){super(e,r,o),this.COOKIE_LIFE_MULTIPLIER=864e5,this.cacheConfig=t,this.logger=o,this.internalStorage=new Kn,this.browserStorage=this.setupBrowserStorage(this.cacheConfig.cacheLocation),this.temporaryCacheStorage=this.setupTemporaryCacheStorage(this.cacheConfig.temporaryCacheLocation,this.cacheConfig.cacheLocation),t.cacheMigrationEnabled&&(this.migrateCacheEntries(),this.createKeyMaps())}setupBrowserStorage(e){switch(e){case Xr.LocalStorage:case Xr.SessionStorage:try{return new Vn(e)}catch(e){this.logger.verbose(e);break}}return this.cacheConfig.cacheLocation=Xr.MemoryStorage,new Kn}setupTemporaryCacheStorage(e,t){switch(t){case Xr.LocalStorage:case Xr.SessionStorage:try{return new Vn(e||Xr.SessionStorage)}catch(e){return this.logger.verbose(e),this.internalStorage}default:return this.internalStorage}}migrateCacheEntries(){const e=`${t.CACHE_PREFIX}.${m}`,r=`${t.CACHE_PREFIX}.${f}`,o=`${t.CACHE_PREFIX}.${C}`,n=`${t.CACHE_PREFIX}.${v}`,i=[this.browserStorage.getItem(e),this.browserStorage.getItem(r),this.browserStorage.getItem(o),this.browserStorage.getItem(n)];[m,f,C,v].forEach(((e,t)=>this.migrateCacheEntry(e,i[t])))}migrateCacheEntry(e,t){t&&this.setTemporaryCache(e,t,!0)}createKeyMaps(){this.logger.trace("BrowserCacheManager - createKeyMaps called.");const e=this.getItem(go),t=this.getItem(`${po}.${this.clientId}`);if(e&&t)return void this.logger.verbose("BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.");this.browserStorage.getKeys().forEach((e=>{if(this.isCredentialKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);if(r&&r.hasOwnProperty("credentialType"))switch(r.credentialType){case Se.ID_TOKEN:if(tr.isIdTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - idToken with key: ${e} found, saving key to token key map`);const t=Mt.toObject(new tr,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Se.ID_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed idToken validation on key: ${e}`);break;case Se.ACCESS_TOKEN:case Se.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(or.isAccessTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - accessToken with key: ${e} found, saving key to token key map`);const t=Mt.toObject(new or,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Se.ACCESS_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed accessToken validation on key: ${e}`);break;case Se.REFRESH_TOKEN:if(nr.isRefreshTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - refreshToken with key: ${e} found, saving key to token key map`);const t=Mt.toObject(new nr,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Se.REFRESH_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: ${e}`)}}}if(this.isAccountKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);r&&bt.isAccountEntity(r)&&(this.logger.trace("BrowserCacheManager:createKeyMaps - account found, saving key to account key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - account with key: ${e} found, saving key to account key map`),this.addAccountKeyToMap(e))}}}))}validateAndParseJson(e){try{const t=JSON.parse(e);return t&&"object"==typeof t?t:null}catch(e){return null}}getItem(e){return this.browserStorage.getItem(e)}setItem(e,t){this.browserStorage.setItem(e,t)}getAccount(e){this.logger.trace("BrowserCacheManager.getAccount called");const t=this.getItem(e);if(!t)return this.removeAccountKeyFromMap(e),null;const r=this.validateAndParseJson(t);return r&&bt.isAccountEntity(r)?Mt.toObject(new bt,r):(this.removeAccountKeyFromMap(e),null)}setAccount(e){this.logger.trace("BrowserCacheManager.setAccount called");const t=e.generateAccountKey();this.setItem(t,JSON.stringify(e)),this.addAccountKeyToMap(t)}getAccountKeys(){this.logger.trace("BrowserCacheManager.getAccountKeys called");const e=this.getItem(go);return e?JSON.parse(e):(this.logger.verbose("BrowserCacheManager.getAccountKeys - No account keys found"),[])}addAccountKeyToMap(e){this.logger.trace("BrowserCacheManager.addAccountKeyToMap called"),this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${e}`);const t=this.getAccountKeys();-1===t.indexOf(e)?(t.push(e),this.setItem(go,JSON.stringify(t)),this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key added")):this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key already exists in map")}removeAccountKeyFromMap(e){this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap called"),this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${e}`);const t=this.getAccountKeys(),r=t.indexOf(e);r>-1?(t.splice(r,1),this.setItem(go,JSON.stringify(t)),this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap account key removed")):this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap key not found in existing map")}async removeAccount(e){super.removeAccount(e),this.removeAccountKeyFromMap(e)}removeIdToken(e){super.removeIdToken(e),this.removeTokenKey(e,Se.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,Se.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,Se.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${po}.${this.clientId}`);if(e){const t=this.validateAndParseJson(e);if(t&&t.hasOwnProperty("idToken")&&t.hasOwnProperty("accessToken")&&t.hasOwnProperty("refreshToken"))return t;this.logger.error("BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.")}else this.logger.verbose("BrowserCacheManager.getTokenKeys - No token keys found");return{idToken:[],accessToken:[],refreshToken:[]}}addTokenKey(e,t){this.logger.trace("BrowserCacheManager addTokenKey called");const r=this.getTokenKeys();switch(t){case Se.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case Se.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case Se.REFRESH_TOKEN:-1===r.refreshToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - refreshToken added to map"),r.refreshToken.push(e));break;default:this.logger.error(`BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: ${t}`),ft.createUnexpectedCredentialTypeError()}this.setItem(`${po}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case Se.ID_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: ${e} from map`);const o=r.idToken.indexOf(e);o>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - idToken removed from map"),r.idToken.splice(o,1)):this.logger.info("BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.");break;case Se.ACCESS_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: ${e} from map`);const n=r.accessToken.indexOf(e);n>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - accessToken removed from map"),r.accessToken.splice(n,1)):this.logger.info("BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.");break;case Se.REFRESH_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: ${e} from map`);const i=r.refreshToken.indexOf(e);i>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken removed from map"),r.refreshToken.splice(i,1)):this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.");break;default:this.logger.error(`BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: ${t}`),ft.createUnexpectedCredentialTypeError()}this.setItem(`${po}.${this.clientId}`,JSON.stringify(r))}getIdTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Se.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&tr.isIdTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),Mt.toObject(new tr,r)):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Se.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Se.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Se.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&or.isAccessTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),Mt.toObject(new or,r)):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Se.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Se.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Se.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&nr.isRefreshTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),Mt.toObject(new nr,r)):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Se.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Se.REFRESH_TOKEN)}getAppMetadata(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&pr.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),Mt.toObject(new pr,r)):(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null)}setAppMetadata(e){this.logger.trace("BrowserCacheManager.setAppMetadata called");const t=e.generateAppMetadataKey();this.setItem(t,JSON.stringify(e))}getServerTelemetry(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&br.isServerTelemetryEntity(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),Mt.toObject(new br,r)):(this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null)}setServerTelemetry(e,t){this.logger.trace("BrowserCacheManager.setServerTelemetry called"),this.setItem(e,JSON.stringify(t))}getAuthorityMetadata(e){const t=this.internalStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAuthorityMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&kr.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),Mt.toObject(new kr,r)):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(mo,e),this.internalStorage.setItem(fo,t)}getWrapperMetadata(){return[this.internalStorage.getItem(mo)||t.EMPTY_STRING,this.internalStorage.getItem(fo)||t.EMPTY_STRING]}setAuthorityMetadata(e,t){this.logger.trace("BrowserCacheManager.setAuthorityMetadata called"),this.internalStorage.setItem(e,JSON.stringify(t))}getActiveAccount(){const e=this.generateCacheKey(I),t=this.getItem(e);if(!t){this.logger.trace("BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema");const e=this.generateCacheKey(w),t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null;const r=this.getAccountInfoByFilter({localAccountId:t})[0]||null;return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Legacy active account cache schema found"),this.logger.trace("BrowserCacheManager.getActiveAccount: Adding active account filters cache schema"),this.setActiveAccount(r),r):null}const r=this.validateAndParseJson(t);return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Active account filters schema found"),this.getAccountInfoByFilter({homeAccountId:r.homeAccountId,localAccountId:r.localAccountId})[0]||null):(this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null)}setActiveAccount(e){const t=this.generateCacheKey(I),r=this.generateCacheKey(w);if(e){this.logger.verbose("setActiveAccount: Active account set");const o={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId};this.browserStorage.setItem(t,JSON.stringify(o)),this.browserStorage.setItem(r,e.localAccountId)}else this.logger.verbose("setActiveAccount: No account passed, active account not set"),this.browserStorage.removeItem(t),this.browserStorage.removeItem(r)}getAccountInfoByFilter(e){const t=this.getAllAccounts();return this.logger.trace(`BrowserCacheManager.getAccountInfoByFilter: total ${t.length} accounts found`),t.filter((t=>(!e.username||e.username.toLowerCase()===t.username.toLowerCase())&&((!e.homeAccountId||e.homeAccountId===t.homeAccountId)&&((!e.localAccountId||e.localAccountId===t.localAccountId)&&((!e.tenantId||e.tenantId===t.tenantId)&&(!e.environment||e.environment===t.environment))))))}getAccountInfoByHints(e,t){const r=this.getAllAccounts().filter((r=>{if(t){const e=r.idTokenClaims&&r.idTokenClaims.sid;return t===e}return!!e&&e===r.username}));if(1===r.length)return r[0];if(r.length>1)throw ft.createMultipleMatchingAccountsInCacheError();return null}getThrottlingCache(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&Rr.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),Mt.toObject(new Rr,r)):(this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null)}setThrottlingCache(e,t){this.logger.trace("BrowserCacheManager.setThrottlingCache called"),this.setItem(e,JSON.stringify(t))}getTemporaryCache(e,t){const r=t?this.generateCacheKey(e):e;if(this.cacheConfig.storeAuthStateInCookie){const e=this.getItemCookie(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies"),e}const o=this.temporaryCacheStorage.getItem(r);if(!o){if(this.cacheConfig.cacheLocation===Xr.LocalStorage){const e=this.browserStorage.getItem(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage"),e}return this.logger.trace("BrowserCacheManager.getTemporaryCache: No cache item found in local storage"),null}return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item returned"),o}setTemporaryCache(e,t,r){const o=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(o,t),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.setItemCookie(o,t))}removeItem(e){this.browserStorage.removeItem(e),this.temporaryCacheStorage.removeItem(e),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie"),this.clearItemCookie(e))}containsKey(e){return this.browserStorage.containsKey(e)||this.temporaryCacheStorage.containsKey(e)}getKeys(){return[...this.browserStorage.getKeys(),...this.temporaryCacheStorage.getKeys()]}async clear(){await this.removeAllAccounts(),this.removeAppMetadata(),this.getKeys().forEach((e=>{!this.browserStorage.containsKey(e)&&!this.temporaryCacheStorage.containsKey(e)||-1===e.indexOf(t.CACHE_PREFIX)&&-1===e.indexOf(this.clientId)||this.removeItem(e)})),this.internalStorage.clear()}async clearTokensAndKeysWithClaims(){const e=this.getTokenKeys(),t=[];e.accessToken.forEach((e=>{const r=this.getAccessTokenCredential(e);r?.requestedClaimsHash&&e.includes(r.requestedClaimsHash.toLowerCase())&&t.push(this.removeAccessToken(e))})),await Promise.all(t),t.length>0&&this.logger.warning(`${t.length} access tokens with claims in the cache keys have been removed from the cache.`)}setItemCookie(e,t,r){let o=`${encodeURIComponent(e)}=${encodeURIComponent(t)};path=/;SameSite=Lax;`;if(r){o+=`expires=${this.getCookieExpirationTime(r)};`}this.cacheConfig.secureCookies&&(o+="Secure;"),document.cookie=o}getItemCookie(e){const r=`${encodeURIComponent(e)}=`,o=document.cookie.split(";");for(let e=0;e<o.length;e++){let t=o[e];for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(r))return decodeURIComponent(t.substring(r.length,t.length))}return t.EMPTY_STRING}clearMsalCookies(){const e=`${t.CACHE_PREFIX}.${this.clientId}`;document.cookie.split(";").forEach((t=>{for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(e)){const e=t.split("=")[0];this.clearItemCookie(e)}}))}clearItemCookie(e){this.setItemCookie(e,t.EMPTY_STRING,-1)}getCookieExpirationTime(e){const t=new Date;return new Date(t.getTime()+e*this.COOKIE_LIFE_MULTIPLIER).toUTCString()}getCache(){return this.browserStorage}setCache(){}generateCacheKey(e){return this.validateAndParseJson(e)?JSON.stringify(e):vt.startsWith(e,t.CACHE_PREFIX)||vt.startsWith(e,y)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=dr.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${to}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=dr.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${oo}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=dr.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${ro}.${t}`)}getCachedAuthority(e){const t=this.generateStateKey(e),r=this.getTemporaryCache(t);if(!r)return null;const o=this.generateAuthorityKey(r);return this.getTemporaryCache(o)}updateCacheEntries(e,t,r,o,n){this.logger.trace("BrowserCacheManager.updateCacheEntries called");const i=this.generateStateKey(e);this.setTemporaryCache(i,e,!1);const a=this.generateNonceKey(e);this.setTemporaryCache(a,t,!1);const s=this.generateAuthorityKey(e);if(this.setTemporaryCache(s,r,!1),n){const e={credential:n.homeAccountId,type:Gt};this.setTemporaryCache(co,JSON.stringify(e),!0)}else if(o){const e={credential:o,type:Qt};this.setTemporaryCache(co,JSON.stringify(e),!0)}}resetRequestCache(e){this.logger.trace("BrowserCacheManager.resetRequestCache called"),e&&(this.getKeys().forEach((t=>{-1!==t.indexOf(e)&&this.removeItem(t)})),this.removeItem(this.generateStateKey(e)),this.removeItem(this.generateNonceKey(e)),this.removeItem(this.generateAuthorityKey(e))),this.removeItem(this.generateCacheKey(ao)),this.removeItem(this.generateCacheKey(no)),this.removeItem(this.generateCacheKey(io)),this.removeItem(this.generateCacheKey(lo)),this.removeItem(this.generateCacheKey(co)),this.removeItem(this.generateCacheKey(ho)),this.setInteractionInProgress(!1)}cleanRequestByState(e){if(this.logger.trace("BrowserCacheManager.cleanRequestByState called"),e){const r=this.generateStateKey(e),o=this.temporaryCacheStorage.getItem(r);this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${o}`),this.resetRequestCache(o||t.EMPTY_STRING)}this.clearMsalCookies()}cleanRequestByInteractionType(e){this.logger.trace("BrowserCacheManager.cleanRequestByInteractionType called"),this.getKeys().forEach((t=>{if(-1===t.indexOf(ro))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=Jn.extractBrowserRequestState(this.cryptoImpl,r);o&&o.interactionType===e&&(this.logger.infoPii(`BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: ${r}`),this.resetRequestCache(r))})),this.clearMsalCookies(),this.setInteractionInProgress(!1)}cacheCodeRequest(e){this.logger.trace("BrowserCacheManager.cacheCodeRequest called");const t=Nn(JSON.stringify(e));this.setTemporaryCache(ao,t,!0)}getCachedRequest(e){this.logger.trace("BrowserCacheManager.getCachedRequest called");const t=this.getTemporaryCache(ao,!0);if(!t)throw In(Qo);let r;try{r=JSON.parse(qn(t))}catch(e){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${e}`),In(jo)}if(this.removeItem(this.generateCacheKey(ao)),!r.authority){const t=this.generateAuthorityKey(e),o=this.getTemporaryCache(t);if(!o)throw In(Yo);r.authority=o}return r}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(ho,!0);if(!e)return this.logger.trace("BrowserCacheManager.getCachedNativeRequest: No cached native request found"),null;const t=this.validateAndParseJson(e);return t||(this.logger.error("BrowserCacheManager.getCachedNativeRequest: Unable to parse native request"),null)}isInteractionInProgress(e){const t=this.getInteractionInProgress();return e?t===this.clientId:!!t}getInteractionInProgress(){const e=`${t.CACHE_PREFIX}.${so}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${so}`;if(e){if(this.getInteractionInProgress())throw In(Oo);this.setTemporaryCache(r,this.clientId,!1)}else e||this.getInteractionInProgress()!==this.clientId||this.removeItem(r)}getLegacyLoginHint(){const e=this.getTemporaryCache(y);e&&(this.browserStorage.removeItem(y),this.logger.verbose("Cached ADAL id token retrieved."));const t=this.getTemporaryCache(m,!0);t&&(this.removeItem(this.generateCacheKey(m)),this.logger.verbose("Cached MSAL.js v1 id token retrieved"));const r=t||e;if(r){const e=Rt(r,qn);if(e.preferred_username)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint"),e.preferred_username;if(e.upn)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint"),e.upn;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.")}return null}updateCredentialCacheKey(e,t){const r=t.generateCredentialKey();if(e!==r){const o=this.getItem(e);if(o)return this.removeItem(e),this.setItem(r,o),this.logger.verbose(`Updated an outdated ${t.credentialType} cache key`),r;this.logger.error(`Attempted to update an outdated ${t.credentialType} cache key but no item matching the outdated key was found in storage`)}return e}getRedirectRequestContext(){return this.getTemporaryCache(uo,!0)}setRedirectRequestContext(e){this.setTemporaryCache(uo,e,!0)}async hydrateCache(e,t){const r=tr.createIdTokenEntity(e.account?.homeAccountId,e.account?.environment,e.idToken,this.clientId,e.tenantId);let o;t.claims&&(o=await this.cryptoImpl.hashString(t.claims));const n=or.createAccessTokenEntity(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?.getTime()||0,e.extExpiresOn?.getTime()||0,this.cryptoImpl,void 0,e.tokenType,void 0,t.sshKid,t.claims,o),i=new lr(void 0,r,n);return this.saveCacheRecord(i)}}class Zn{static clearHash(e){e.location.hash=t.EMPTY_STRING,"function"==typeof e.history.replaceState&&e.history.replaceState(null,t.EMPTY_STRING,`${e.location.origin}${e.location.pathname}${e.location.search}`)}static replaceHash(e){const r=e.split("#");r.shift(),window.location.hash=r.length>0?r.join("#"):t.EMPTY_STRING}static isInIframe(){return window.parent!==window}static isInPopup(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${Kr}.`)}static getCurrentUri(){return window.location.href.split("?")[0].split("#")[0]}static getHomepage(){const e=new hr(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}static blockReloadInHiddenIframes(){if(hr.hashContainsKnownProperties(window.location.hash)&&Zn.isInIframe())throw In(Bo)}static blockRedirectInIframe(t,r){const o=Zn.isInIframe();if(t===e.InteractionType.Redirect&&o&&!r)throw In(xo)}static blockAcquireTokenInPopups(){if(Zn.isInPopup())throw In(Fo)}static blockNonBrowserEnvironment(e){if(!e)throw In(Jo)}static blockAPICallsBeforeInitialize(e){if(!e)throw In(pn)}}const ei={INITIALIZE_START:"msal:initializeStart",INITIALIZE_END:"msal:initializeEnd",ACCOUNT_ADDED:"msal:accountAdded",ACCOUNT_REMOVED:"msal:accountRemoved",LOGIN_START:"msal:loginStart",LOGIN_SUCCESS:"msal:loginSuccess",LOGIN_FAILURE:"msal:loginFailure",ACQUIRE_TOKEN_START:"msal:acquireTokenStart",ACQUIRE_TOKEN_SUCCESS:"msal:acquireTokenSuccess",ACQUIRE_TOKEN_FAILURE:"msal:acquireTokenFailure",ACQUIRE_TOKEN_NETWORK_START:"msal:acquireTokenFromNetworkStart",SSO_SILENT_START:"msal:ssoSilentStart",SSO_SILENT_SUCCESS:"msal:ssoSilentSuccess",SSO_SILENT_FAILURE:"msal:ssoSilentFailure",ACQUIRE_TOKEN_BY_CODE_START:"msal:acquireTokenByCodeStart",ACQUIRE_TOKEN_BY_CODE_SUCCESS:"msal:acquireTokenByCodeSuccess",ACQUIRE_TOKEN_BY_CODE_FAILURE:"msal:acquireTokenByCodeFailure",HANDLE_REDIRECT_START:"msal:handleRedirectStart",HANDLE_REDIRECT_END:"msal:handleRedirectEnd",POPUP_OPENED:"msal:popupOpened",LOGOUT_START:"msal:logoutStart",LOGOUT_SUCCESS:"msal:logoutSuccess",LOGOUT_FAILURE:"msal:logoutFailure",LOGOUT_END:"msal:logoutEnd",RESTORE_FROM_BFCACHE:"msal:restoreFromBFCache"};class ti{constructor(e,t){this.eventCallbacks=new Map,this.logger=e,this.browserCrypto=t,this.listeningToStorageEvents=!1,this.handleAccountCacheChange=this.handleAccountCacheChange.bind(this)}addEventCallback(e){if("undefined"!=typeof window){const t=this.browserCrypto.createNewGuid();return this.eventCallbacks.set(t,e),this.logger.verbose(`Event callback registered with id: ${t}`),t}return null}removeEventCallback(e){this.eventCallbacks.delete(e),this.logger.verbose(`Event callback ${e} removed.`)}enableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?this.logger.verbose("Account storage listener already registered."):(this.logger.verbose("Adding account storage listener."),this.listeningToStorageEvents=!0,window.addEventListener("storage",this.handleAccountCacheChange)))}disableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?(this.logger.verbose("Removing account storage listener."),window.removeEventListener("storage",this.handleAccountCacheChange),this.listeningToStorageEvents=!1):this.logger.verbose("No account storage listener registered."))}emitEvent(e,t,r,o){if("undefined"!=typeof window){const n={eventType:e,interactionType:t||null,payload:r||null,error:o||null,timestamp:Date.now()};this.logger.info(`Emitting event: ${e}`),this.eventCallbacks.forEach(((t,r)=>{this.logger.verbose(`Emitting event to callback ${r}: ${e}`),t.apply(null,[n])}))}}handleAccountCacheChange(e){try{const t=e.newValue||e.oldValue;if(!t)return;const r=JSON.parse(t);if("object"!=typeof r||!bt.isAccountEntity(r))return;const o=Mt.toObject(new bt,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent(ei.ACCOUNT_ADDED,void 0,o)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent(ei.ACCOUNT_REMOVED,void 0,o))}catch(e){return}}}class ri{constructor(e,t,r,o,n,i,a,s,c){this.config=e,this.browserStorage=t,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=n,this.navigationClient=i,this.nativeMessageHandler=s,this.correlationId=c||this.browserCrypto.createNewGuid(),this.logger=o.clone(zr,Sn,this.correlationId),this.performanceClient=a}async clearCacheOnLogout(e){if(e){bt.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(bt.generateAccountCacheKey(e)),this.logger.verbose("Cleared cache items belonging to the account provided in the logout request.")}catch(e){this.logger.error("Account provided in logout request was not found. Local cache unchanged.")}}else try{this.logger.verbose("No account provided in logout request, clearing all cache items.",this.correlationId),await this.browserStorage.clear(),await this.browserCrypto.clearKeystore()}catch(e){this.logger.error("Attempted to clear all MSAL cache items and failed. Local cache unchanged.")}}async initializeBaseRequest(e,t){this.performanceClient.addQueueMeasurement(Wt.InitializeBaseRequest,e.correlationId),this.logger.verbose("Initializing BaseAuthRequest");const r=e.authority||this.config.auth.authority;t&&await this.validateRequestAuthority(r,t);const o=[...e&&e.scopes||[]],n={...e,correlationId:this.correlationId,authority:r,scopes:o};if(n.authenticationScheme){if(n.authenticationScheme===De.SSH){if(!e.sshJwk)throw Ct.createMissingSshJwkError();if(!e.sshKid)throw Ct.createMissingSshKidError()}this.logger.verbose(`Authentication Scheme set to "${n.authenticationScheme}" as configured in Auth request`)}else n.authenticationScheme=De.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!vt.isEmptyObj(e.claims)&&(n.requestedClaimsHash=await this.browserCrypto.hashString(e.claims)),n}getRedirectUri(e){this.logger.verbose("getRedirectUri called");const t=e||this.config.auth.redirectUri||Zn.getCurrentUri();return hr.getAbsoluteUrl(t,Zn.getCurrentUri())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw Ct.createAuthorityMismatchError()}initializeServerTelemetryManager(e,t){this.logger.verbose("initializeServerTelemetryManager called");const r={clientId:this.config.auth.clientId,correlationId:this.correlationId,apiId:e,forceRefresh:t||!1,wrapperSKU:this.browserStorage.getWrapperMetadata()[0],wrapperVer:this.browserStorage.getWrapperMetadata()[1]};return new Ur(r,this.browserStorage)}async getDiscoveredAuthority(e){this.logger.verbose("getDiscoveredAuthority called");const t={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata};return e?(this.logger.verbose("Creating discovered authority with request authority"),await Ar.createDiscoveredInstance(e,this.config.system.networkClient,this.browserStorage,t,this.logger)):(this.logger.verbose("Creating discovered authority with configured authority"),await Ar.createDiscoveredInstance(this.config.auth.authority,this.config.system.networkClient,this.browserStorage,t,this.logger))}}class oi extends ri{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(Wt.StandardInteractionClientInitializeAuthorizationCodeRequest,e.correlationId),this.logger.verbose("initializeAuthorizationRequest called",e.correlationId);const r=await this.browserCrypto.generatePkceCodes(),o={...e,redirectUri:e.redirectUri,code:t.EMPTY_STRING,codeVerifier:r.verifier};return e.codeChallenge=r.challenge,e.codeChallengeMethod=t.S256_CODE_CHALLENGE_METHOD,o}initializeLogoutRequest(e){this.logger.verbose("initializeLogoutRequest called",e?.correlationId);const t={correlationId:this.correlationId||this.browserCrypto.createNewGuid(),...e};if(e)if(e.logoutHint)this.logger.verbose("logoutHint has already been set in logoutRequest");else if(e.account){const r=this.getLogoutHintFromIdTokenClaims(e.account);r&&(this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided"),t.logoutHint=r)}else this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");else this.logger.verbose("logoutHint will not be set since no logout request was configured");return e&&null===e.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri passed as null, not setting post logout redirect uri",t.correlationId):e&&e.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to uri set on logout request",t.correlationId),t.postLogoutRedirectUri=hr.getAbsoluteUrl(e.postLogoutRedirectUri,Zn.getCurrentUri())):null===this.config.auth.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect",t.correlationId):this.config.auth.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to configured uri",t.correlationId),t.postLogoutRedirectUri=hr.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,Zn.getCurrentUri())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=hr.getAbsoluteUrl(Zn.getCurrentUri(),Zn.getCurrentUri())),t}getLogoutHintFromIdTokenClaims(e){const t=e.idTokenClaims;if(t){if(t.login_hint)return t.login_hint;this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request")}else this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");return null}async createAuthCodeClient(e,t,r){this.performanceClient.addQueueMeasurement(Wt.StandardInteractionClientCreateAuthCodeClient,this.correlationId),this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new Cr(o,this.performanceClient)}async getClientConfiguration(e,r,o){this.performanceClient.addQueueMeasurement(Wt.StandardInteractionClientGetClientConfiguration,this.correlationId),this.logger.verbose("getClientConfiguration called",this.correlationId),this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientGetDiscoveredAuthority,this.correlationId);const n=await this.getDiscoveredAuthority(r,o),i=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:n,clientCapabilities:this.config.auth.clientCapabilities},systemOptions:{tokenRenewalOffsetSeconds:this.config.system.tokenRenewalOffsetSeconds,preventCorsPreflight:!0},loggerOptions:{loggerCallback:i.loggerCallback,piiLoggingEnabled:i.piiLoggingEnabled,logLevel:i.logLevel,correlationId:this.correlationId},cacheOptions:{claimsBasedCachingEnabled:this.config.cache.claimsBasedCachingEnabled},cryptoInterface:this.browserCrypto,networkInterface:this.networkClient,storageInterface:this.browserStorage,serverTelemetryManager:e,libraryInfo:{sku:zr,version:Sn,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}validateAndExtractStateFromHash(e,t,r){if(this.logger.verbose("validateAndExtractStateFromHash called",r),!e.state)throw In(Ro);const o=Jn.extractBrowserRequestState(this.browserCrypto,e.state);if(!o)throw In(Mo);if(o.interactionType!==t)throw In(No);return this.logger.verbose("Returning state from hash",r),e.state}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(Wt.StandardInteractionClientGetDiscoveredAuthority,this.correlationId),this.logger.verbose("getDiscoveredAuthority called",this.correlationId);const r=this.performanceClient?.startMeasurement(Wt.StandardInteractionClientGetDiscoveredAuthority,this.correlationId),o={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},n=e||this.config.auth.authority,i=Er.generateAuthority(n,t||this.config.auth.azureCloudOptions);return this.logger.verbose("Creating discovered authority with configured authority",this.correlationId),this.performanceClient.setPreQueueTime(Wt.AuthorityFactoryCreateDiscoveredInstance,this.correlationId),await Ar.createDiscoveredInstance(i,this.config.system.networkClient,this.browserStorage,o,this.logger,this.performanceClient,this.correlationId).then((e=>(r.end({success:!0}),e))).catch((e=>{throw r.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}))}async initializeAuthorizationRequest(e,r){this.performanceClient.addQueueMeasurement(Wt.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId),this.logger.verbose("initializeAuthorizationRequest called",this.correlationId);const o=this.getRedirectUri(e.redirectUri),n={interactionType:r},i=dr.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,n);this.performanceClient.setPreQueueTime(Wt.InitializeBaseRequest,this.correlationId);const a={...await this.initializeBaseRequest(e),redirectUri:o,state:i,nonce:e.nonce||this.browserCrypto.createNewGuid(),responseMode:this.config.auth.OIDCOptions.serverResponseType},s=e.account||this.browserStorage.getActiveAccount();if(s&&(this.logger.verbose("Setting validated request account",this.correlationId),this.logger.verbosePii(`Setting validated request account: ${s.homeAccountId}`,this.correlationId),a.account=s),!a.loginHint&&!s){const e=this.browserStorage.getLegacyLoginHint();e&&(a.loginHint=e)}return a}}const ni="USER_INTERACTION_REQUIRED",ii="USER_CANCEL",ai="NO_NETWORK",si="PERSISTENT_ERROR",ci="DISABLED",li="ACCOUNT_UNAVAILABLE",di={code:"ContentError"},hi={code:"user_switch",desc:"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again."},ui={code:"tokens_not_found_in_internal_memory_cache",desc:"Tokens not cached in MSAL JS internal memory, please make the WAM request"};class gi extends ct{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,gi.prototype),this.name="NativeAuthError",this.ext=r}isFatal(){return!(!this.ext||!this.ext.status||this.ext.status!==si&&this.ext.status!==ci)||(!(!this.ext||!this.ext.error||-2147186943!==this.ext.error)||this.errorCode===di.code)}static createError(e,t,r){if(r&&r.status)switch(r.status){case li:return cr.createNativeAccountUnavailableError();case ni:return new cr(e,t);case ii:return In(Ho);case ai:return In(Zo)}return new gi(e,t,r)}static createUserSwitchError(){return new gi(hi.code,hi.desc)}static createTokensNotFoundInCacheError(){return new gi(ui.code,ui.desc)}}class pi extends oi{async acquireToken(e){const t=this.performanceClient.startMeasurement(Wt.SilentCacheClientAcquireToken,e.correlationId),r=this.initializeServerTelemetryManager(yo.acquireTokenSilent_silentFlow),o=await this.createSilentFlowClient(r,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const r=await o.acquireCachedToken(e);return t.end({success:!0,fromCache:!0}),r}catch(e){throw e instanceof wn&&e.errorCode===nn&&this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair."),t.end({errorCode:e instanceof ct&&e.errorCode||void 0,subErrorCode:e instanceof ct&&e.subError||void 0,success:!1}),e}}logout(e){this.logger.verbose("logoutRedirect called");const t=this.initializeLogoutRequest(e);return this.clearCacheOnLogout(t?.account)}async createSilentFlowClient(e,t,r){this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new wr(o,this.performanceClient)}async initializeSilentRequest(e,t){return this.performanceClient.addQueueMeasurement(Wt.InitializeSilentRequest,this.correlationId),this.performanceClient.setPreQueueTime(Wt.InitializeBaseRequest,this.correlationId),{...e,...await this.initializeBaseRequest(e,t),account:t,forceRefresh:e.forceRefresh||!1}}}const mi="brk_client_id",fi="brk_redirect_uri";class yi extends ri{constructor(e,t,r,o,n,i,a,s,c,l,d,h){super(e,t,r,o,n,i,s,c,h),this.apiId=a,this.accountId=l,this.nativeMessageHandler=c,this.nativeStorageManager=d,this.silentCacheClient=new pi(e,this.nativeStorageManager,r,o,n,i,s,c,h)}async acquireToken(e){this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(Wt.NativeInteractionClientAcquireToken,e.correlationId),r=rr.nowSeconds(),o=await this.initializeNativeRequest(e);try{const e=await this.acquireTokensFromCache(this.accountId,o);return t.end({success:!0,isNativeBroker:!1,fromCache:!0}),e}catch(e){this.logger.info("MSAL internal Cache does not contain tokens, proceed to make a native call")}const n={method:Vr,request:o},i=await this.nativeMessageHandler.sendMessage(n),a=this.validateNativeResponse(i);return this.handleNativeResponse(a,o,r).then((e=>(t.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{throw t.end({success:!1,errorCode:e.errorCode,subErrorCode:e.subError,isNativeBroker:!0}),e}))}createSilentCacheRequest(e,t){return{authority:e.authority,correlationId:this.correlationId,scopes:wt.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),ft.createNoAccountFoundError();const r=this.browserStorage.getAccountInfoFilteredBy({nativeAccountId:e});if(!r)throw ft.createNoAccountFoundError();try{const e=this.createSilentCacheRequest(t,r);return{...await this.silentCacheClient.acquireToken(e),account:r}}catch(e){throw e}}async acquireTokenRedirect(e){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");const t=await this.initializeNativeRequest(e),r={method:Vr,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof gi&&e.isFatal())throw e}this.browserStorage.setTemporaryCache(ho,JSON.stringify(t),!0);const o={apiId:yo.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},n=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);await this.navigationClient.navigateExternal(n,o)}async handleRedirectPromise(){if(this.logger.trace("NativeInteractionClient - handleRedirectPromise called."),!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const e=this.browserStorage.getCachedNativeRequest();if(!e)return this.logger.verbose("NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null."),null;const{prompt:t,...r}=e;t&&this.logger.verbose("NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window."),this.browserStorage.removeItem(this.browserStorage.generateCacheKey(ho));const o={method:Vr,request:r},n=rr.nowSeconds();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");const e=await this.nativeMessageHandler.sendMessage(o);this.validateNativeResponse(e);const t=this.handleNativeResponse(e,r,n);return this.browserStorage.setInteractionInProgress(!1),t}catch(e){throw this.browserStorage.setInteractionInProgress(!1),e}}logout(){return this.logger.trace("NativeInteractionClient - logout called."),Promise.reject("Logout not implemented yet")}async handleNativeResponse(e,t,r){if(this.logger.trace("NativeInteractionClient - handleNativeResponse called."),e.account.id!==t.accountId)throw gi.createUserSwitchError();const o=await this.getDiscoveredAuthority(t.authority),n=Rt(e.id_token,qn),i=this.createHomeAccountIdentifier(e,n),a=bt.createAccount({homeAccountId:i,idTokenClaims:n,clientInfo:e.client_info,nativeAccountId:e.account.id},o),s=await this.generateAuthenticationResult(e,t,n,a,o.canonicalAuthority,r);return this.cacheAccount(a),this.cacheNativeTokens(e,t,i,n,s.accessToken,s.tenantId,r),s}createHomeAccountIdentifier(e,r){return bt.generateHomeAccountId(e.client_info||t.EMPTY_STRING,_t,this.logger,this.browserCrypto,r)}generateScopes(e,t){return e.scope?wt.fromString(e.scope):wt.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===De.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new gr(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw ft.createKeyIdMissingError();return await r.signPopToken(e.access_token,t.keyId,o)}return e.access_token}async generateAuthenticationResult(e,r,o,n,i,a){const s=this.addTelemetryFromNativeResponse(e),c=e.scope?wt.fromString(e.scope):wt.fromString(r.scope),l=e.account.properties||{},d=l.UID||o.oid||o.sub||t.EMPTY_STRING,h=l.TenantId||o.tid||t.EMPTY_STRING,u=await this.generatePopAccessToken(e,r),g=r.tokenType===De.POP?De.POP:De.BEARER;return{authority:i,uniqueId:d,tenantId:h,scopes:c.asArray(),account:n.getAccountInfo(),idToken:e.id_token,idTokenClaims:o,accessToken:u,fromCache:!!s&&this.isResponseFromCache(s),expiresOn:new Date(1e3*Number(a+e.expires_in)),tokenType:g,correlationId:this.correlationId,state:e.state,fromNativeBroker:!0}}cacheAccount(e){this.browserStorage.setAccount(e),this.browserStorage.removeAccountContext(e).catch((e=>{this.logger.error(`Error occurred while removing account context from browser storage. ${e}`)}))}cacheNativeTokens(e,r,o,n,i,a,s){const c=tr.createIdTokenEntity(o,r.authority,e.id_token||"",r.clientId,n.tid||""),l=s+(r.tokenType===De.POP?t.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0),d=this.generateScopes(e,r),h=or.createAccessTokenEntity(o,r.authority,i,r.clientId,n.tid||a,d.printScopes(),l,0,this.browserCrypto),u=new lr(void 0,c,h);this.nativeStorageManager.saveCacheRecord(u,r.storeInCache)}addTelemetryFromNativeResponse(e){const t=this.getMATSFromResponse(e);return t?(this.performanceClient.addFields({extensionId:this.nativeMessageHandler.getExtensionId(),extensionVersion:this.nativeMessageHandler.getExtensionVersion(),matsBrokerVersion:t.broker_version,matsAccountJoinOnStart:t.account_join_on_start,matsAccountJoinOnEnd:t.account_join_on_end,matsDeviceJoin:t.device_join,matsPromptBehavior:t.prompt_behavior,matsApiErrorCode:t.api_error_code,matsUiVisible:t.ui_visible,matsSilentCode:t.silent_code,matsSilentBiSubCode:t.silent_bi_sub_code,matsSilentMessage:t.silent_message,matsSilentStatus:t.silent_status,matsHttpStatus:t.http_status,matsHttpEventCount:t.http_event_count},this.correlationId),t):null}validateNativeResponse(e){if(e.hasOwnProperty("access_token")&&e.hasOwnProperty("id_token")&&e.hasOwnProperty("client_info")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scope")&&e.hasOwnProperty("expires_in"))return e;throw gi.createUnexpectedError("Response missing expected properties.")}getMATSFromResponse(e){if(e.properties.MATS)try{return JSON.parse(e.properties.MATS)}catch(e){this.logger.error("NativeInteractionClient - Error parsing MATS telemetry, returning null instead")}return null}isResponseFromCache(e){return void 0===e.is_cached?(this.logger.verbose("NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false."),!1):!!e.is_cached}async initializeNativeRequest(e){this.logger.trace("NativeInteractionClient - initializeNativeRequest called");const t=e.authority||this.config.auth.authority;e.account&&await this.validateRequestAuthority(t,e.account);const r=new hr(t);r.validateAsUri();const{scopes:o,...n}=e,i=new wt(o||[]);i.appendScopes(a);const s={...n,accountId:this.accountId,clientId:this.config.auth.clientId,authority:r.urlString,scope:i.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:(()=>{switch(this.apiId){case yo.ssoSilent:case yo.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),he.NONE}if(e.prompt)switch(e.prompt){case he.NONE:case he.CONSENT:case he.LOGIN:return this.logger.trace("initializeNativeRequest: prompt is compatible with native flow"),e.prompt;default:throw this.logger.trace(`initializeNativeRequest: prompt = ${e.prompt} is not compatible with native flow`),In(mn)}else this.logger.trace("initializeNativeRequest: prompt was not provided")})(),correlationId:this.correlationId,tokenType:e.authenticationScheme,windowTitleSubstring:document.title,extraParameters:{...e.extraQueryParameters,...e.tokenQueryParameters},extendedExpiryToken:!1};if(this.handleExtraBrokerParams(s),s.extraParameters=s.extraParameters||{},s.extraParameters.telemetry=jr,e.authenticationScheme===De.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new gr(this.browserCrypto),o=await r.generateCnf(t);s.reqCnf=o.reqCnfHash,s.keyId=o.kid}return s}handleExtraBrokerParams(e){if(e.extraParameters&&e.extraParameters.hasOwnProperty(mi)&&e.extraParameters.hasOwnProperty(fi)&&e.extraParameters.hasOwnProperty(S)){const t=e.extraParameters[S],r=e.redirectUri,o=e.extraParameters[fi];e.extraParameters={child_client_id:t,child_redirect_uri:r},e.redirectUri=o}}}class Ci{constructor(e,t,r,o,n){this.logger=e,this.handshakeTimeoutMs=t,this.extensionId=n,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement(Wt.NativeMessageHandlerHandshake),this.crypto=o}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:Gr,extensionId:this.extensionId,responseId:this.crypto.createNewGuid(),body:e};return this.logger.trace("NativeMessageHandler - Sending request to browser extension"),this.logger.tracePii(`NativeMessageHandler - Sending request to browser extension: ${JSON.stringify(t)}`),this.messageChannel.port1.postMessage(t),new Promise(((e,r)=>{this.resolvers.set(t.responseId,{resolve:e,reject:r})}))}static async createProvider(e,t,r,o){e.trace("NativeMessageHandler - createProvider called.");try{const n=new Ci(e,t,r,o,Qr);return await n.sendHandshakeRequest(),n}catch(n){const i=new Ci(e,t,r,o);return await i.sendHandshakeRequest(),i}}async sendHandshakeRequest(){this.logger.trace("NativeMessageHandler - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);const e={channel:Gr,extensionId:this.extensionId,responseId:this.crypto.createNewGuid(),body:{method:Yr}};return this.handshakeEvent.add({extensionId:this.extensionId,extensionHandshakeTimeoutMs:this.handshakeTimeoutMs}),this.messageChannel.port1.onmessage=e=>{this.onChannelMessage(e)},window.postMessage(e,window.origin,[this.messageChannel.port2]),new Promise(((t,r)=>{this.handshakeResolvers.set(e.responseId,{resolve:t,reject:r}),this.timeoutId=window.setTimeout((()=>{window.removeEventListener("message",this.windowListener,!1),this.messageChannel.port1.close(),this.messageChannel.port2.close(),this.handshakeEvent.end({extensionHandshakeTimedOut:!0,success:!1}),r(In(hn)),this.handshakeResolvers.delete(e.responseId)}),this.handshakeTimeoutMs)}))}onWindowMessage(e){if(this.logger.trace("NativeMessageHandler - onWindowMessage called"),e.source!==window)return;const t=e.data;if(t.channel&&t.channel===Gr&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===Yr){const e=this.handshakeResolvers.get(t.responseId);if(!e)return void this.logger.trace(`NativeMessageHandler.onWindowMessage - resolver can't be found for request ${t.responseId}`);this.logger.verbose(t.extensionId?`Extension with id: ${t.extensionId} not installed`:"No extension installed"),clearTimeout(this.timeoutId),this.messageChannel.port1.close(),this.messageChannel.port2.close(),window.removeEventListener("message",this.windowListener,!1),this.handshakeEvent.end({success:!1,extensionInstalled:!1}),e.reject(In(un))}}onChannelMessage(e){this.logger.trace("NativeMessageHandler - onChannelMessage called.");const t=e.data,r=this.resolvers.get(t.responseId),o=this.handshakeResolvers.get(t.responseId);try{const e=t.body.method;if(e===Jr){if(!r)return;const e=t.body.response;if(this.logger.trace("NativeMessageHandler - Received response from browser extension"),this.logger.tracePii(`NativeMessageHandler - Received response from browser extension: ${JSON.stringify(e)}`),"Success"!==e.status)r.reject(gi.createError(e.code,e.description,e.ext));else{if(!e.result)throw ct.createUnexpectedError("Event does not contain result.");e.result.code&&e.result.description?r.reject(gi.createError(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===Wr){if(!o)return void this.logger.trace(`NativeMessageHandler.onChannelMessage - resolver can't be found for request ${t.responseId}`);clearTimeout(this.timeoutId),window.removeEventListener("message",this.windowListener,!1),this.extensionId=t.extensionId,this.extensionVersion=t.body.version,this.logger.verbose(`NativeMessageHandler - Received HandshakeResponse from extension: ${this.extensionId}`),this.handshakeEvent.end({extensionInstalled:!0,success:!0}),o.resolve(),this.handshakeResolvers.delete(t.responseId)}}catch(t){this.logger.error("Error parsing response from WAM Extension"),this.logger.errorPii(`Error parsing response from WAM Extension: ${t}`),this.logger.errorPii(`Unable to parse ${e}`),r?r.reject(t):o&&o.reject(t)}}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}static isNativeAvailable(e,t,r,o){if(t.trace("isNativeAvailable called"),!e.system.allowNativeBroker)return t.trace("isNativeAvailable: allowNativeBroker is not enabled, returning false"),!1;if(!r)return t.trace("isNativeAvailable: WAM extension provider is not initialized, returning false"),!1;if(o)switch(o){case De.BEARER:case De.POP:return t.trace("isNativeAvailable: authenticationScheme is supported, returning true"),!0;default:return t.trace("isNativeAvailable: authenticationScheme is not supported, returning false"),!1}return!0}}class vi{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=n}async handleCodeResponseFromHash(e,t,r,o){if(this.performanceClient.addQueueMeasurement(Wt.HandleCodeResponseFromHash,this.authCodeRequest.correlationId),this.logger.verbose("InteractionHandler.handleCodeResponse called"),!e)throw In(bo);const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw ft.createStateNotFoundError("Cached State");let a;try{a=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Kt&&e.subError===Ho?In(Ho):e}return this.performanceClient.setPreQueueTime(Wt.HandleCodeResponseFromServer,this.authCodeRequest.correlationId),this.handleCodeResponseFromServer(a,t,r,o)}async handleCodeResponseFromServer(e,t,r,o,n=!0){this.performanceClient.addQueueMeasurement(Wt.HandleCodeResponseFromServer,this.authCodeRequest.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");const i=this.browserStorage.generateStateKey(t),a=this.browserStorage.getTemporaryCache(i);if(!a)throw ft.createStateNotFoundError("Cached State");const s=this.browserStorage.generateNonceKey(a),c=this.browserStorage.getTemporaryCache(s);if(this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&(this.performanceClient.setPreQueueTime(Wt.UpdateTokenEndpointAuthority,this.authCodeRequest.correlationId),await this.updateTokenEndpointAuthority(e.cloud_instance_host_name,r,o)),n&&(e.nonce=c||void 0),e.state=a,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const l=await yr(this.authModule.acquireToken.bind(this.authModule),Wt.AuthClientAcquireToken,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(this.authCodeRequest,e);return this.browserStorage.cleanRequestByState(t),l}async updateTokenEndpointAuthority(e,t,r){this.performanceClient.addQueueMeasurement(Wt.UpdateTokenEndpointAuthority,this.authCodeRequest.correlationId);const o=`https://${e}/${t.tenant}/`,n=await Ar.createDiscoveredInstance(o,r,this.browserStorage,t.options,this.logger,this.performanceClient,this.authCodeRequest.correlationId);this.authModule.updateAuthority(n)}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(co,!0);if(e)try{return JSON.parse(e)}catch(t){this.authModule.logger.error("Cache credential could not be parsed"),this.authModule.logger.errorPii(`Cache credential could not be parsed: ${e}`)}return null}}class wi extends oi{constructor(e,t,r,o,n,i,a,s,c,l){super(e,t,r,o,n,i,a,c,l),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=s}acquireToken(e){try{const t=this.generatePopupName(e.scopes||a,e.authority||this.config.auth.authority),r=e.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,t,r);{this.logger.verbose("asyncPopup set to false, opening popup before acquiring token");const o=this.openSizedPopup("about:blank",t,r);return this.acquireTokenPopupAsync(e,t,r,o)}}catch(e){return Promise.reject(e)}}logout(e){try{this.logger.verbose("logoutPopup called");const t=this.initializeLogoutRequest(e),r=this.generateLogoutPopupName(t),o=e&&e.authority,n=e&&e.mainWindowRedirectUri,i=e?.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(t,r,i,o,void 0,n);{this.logger.verbose("asyncPopup set to false, opening popup");const e=this.openSizedPopup("about:blank",r,i);return this.logoutPopupAsync(t,r,i,o,e,n)}}catch(e){return Promise.reject(e)}}async acquireTokenPopupAsync(r,o,n,i){this.logger.verbose("acquireTokenPopupAsync called");const a=this.initializeServerTelemetryManager(yo.acquireTokenPopup);this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const s=await this.initializeAuthorizationRequest(r,e.InteractionType.Popup);this.browserStorage.updateCacheEntries(s.state,s.nonce,s.authority,s.loginHint||t.EMPTY_STRING,s.account||null);try{this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const t=await this.initializeAuthorizationCodeRequest(s);this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const c=await this.createAuthCodeClient(a,s.authority,s.azureCloudOptions);this.logger.verbose("Auth code client created");const l=Ci.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme);let d;l&&(d=this.performanceClient.startMeasurement(Wt.FetchAccountIdWithNativeBroker,r.correlationId));const h=await c.getAuthCodeUrl({...s,nativeBroker:l}),u=new vi(c,this.browserStorage,t,this.logger,this.performanceClient),g={popup:i,popupName:o,popupWindowAttributes:n},p=this.initiateAuthRequest(h,g);this.eventHandler.emitEvent(ei.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=hr.getDeserializedHash(m),y=this.validateAndExtractStateFromHash(f,e.InteractionType.Popup,s.correlationId);if($t.removeThrottle(this.browserStorage,this.config.auth.clientId,t),f.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),d&&d.end({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw In(gn);const e=new yi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,yo.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,s.correlationId),{userRequestState:t}=dr.parseRequestState(this.browserCrypto,y);return e.acquireToken({...s,state:t,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(y)}))}return await u.handleCodeResponseFromHash(m,y,c.authority,this.networkClient)}catch(e){throw i&&i.close(),e instanceof ct&&(e.setCorrelationId(this.correlationId),a.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(s.state),e}}async logoutPopupAsync(t,r,o,n,i,a){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(ei.LOGOUT_START,e.InteractionType.Popup,t);const s=this.initializeServerTelemetryManager(yo.logoutPopup);try{await this.clearCacheOnLogout(t.account),this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientCreateAuthCodeClient,t.correlationId);const c=await this.createAuthCodeClient(s,n);this.logger.verbose("Auth code client created");try{c.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId&&t.postLogoutRedirectUri&&c.authority.protocolMode===At.OIDC){if(this.browserStorage.removeAccount(t.account?.homeAccountId),this.eventHandler.emitEvent(ei.LOGOUT_SUCCESS,e.InteractionType.Popup,t),a){const e={apiId:yo.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=hr.getAbsoluteUrl(a,Zn.getCurrentUri());await this.navigationClient.navigateInternal(t,e)}return void(i&&i.close())}}const l=c.getLogoutUri(t);this.eventHandler.emitEvent(ei.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const d=this.openPopup(l,{popupName:r,popupWindowAttributes:o,popup:i});if(this.eventHandler.emitEvent(ei.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:d},null),await this.waitForLogoutPopup(d),a){const e={apiId:yo.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=hr.getAbsoluteUrl(a,Zn.getCurrentUri());this.logger.verbose("Redirecting main window to url specified in the request"),this.logger.verbosePii(`Redirecting main window to: ${t}`),await this.navigationClient.navigateInternal(t,e)}else this.logger.verbose("No main window navigation requested")}catch(t){throw i&&i.close(),t instanceof ct&&(t.setCorrelationId(this.correlationId),s.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(ei.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent(ei.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent(ei.LOGOUT_END,e.InteractionType.Popup)}initiateAuthRequest(e,t){if(e)return this.logger.infoPii(`Navigate to: ${e}`),this.openPopup(e,t);throw this.logger.error("Navigate url is empty"),In(Ao)}monitorPopupForHash(e){return new Promise(((r,o)=>{const n=this.config.system.windowHashTimeout/this.config.system.pollIntervalMilliseconds;let i=0;this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const a=setInterval((()=>{if(e.closed)return this.logger.error("PopupHandler.monitorPopupForHash - window closed"),this.cleanPopup(),clearInterval(a),void o(In(Ho));let s=t.EMPTY_STRING,c=t.EMPTY_STRING;try{s=e.location.href,c=this.extractServerResponseStringFromPopup(e,s)}catch(e){}s&&"about:blank"!==s&&(this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),i++,c?(this.logger.verbose("PopupHandler.monitorPopupForHash - found hash in url"),clearInterval(a),this.cleanPopup(e),hr.hashContainsKnownProperties(c)?(this.logger.verbose("PopupHandler.monitorPopupForHash - hash contains known properties, returning."),r(c)):(this.logger.error("PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely."),this.logger.errorPii(`PopupHandler.monitorPopupForHash - hash found: ${c}`),o(In(Po)))):i>n&&(this.logger.error("PopupHandler.monitorPopupForHash - unable to find hash in url, timing out"),clearInterval(a),o(In(Lo))))}),this.config.system.pollIntervalMilliseconds)}))}waitForLogoutPopup(e){return new Promise((r=>{this.logger.verbose("PopupHandler.waitForLogoutPopup - polling started");const o=setInterval((()=>{e.closed&&(this.logger.error("PopupHandler.waitForLogoutPopup - window closed"),this.cleanPopup(),clearInterval(o),r());let n=t.EMPTY_STRING;try{n=e.location.href}catch(e){}n&&"about:blank"!==n&&(this.logger.verbose("PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing."),clearInterval(o),this.cleanPopup(e),r())}),this.config.system.pollIntervalMilliseconds)}))}openPopup(e,t){try{let r;if(t.popup?(r=t.popup,this.logger.verbosePii(`Navigating popup window to: ${e}`),r.location.assign(e)):void 0===t.popup&&(this.logger.verbosePii(`Opening popup window to: ${e}`),r=this.openSizedPopup(e,t.popupName,t.popupWindowAttributes)),!r)throw In(Uo);return r.focus&&r.focus(),this.currentWindow=r,window.addEventListener("beforeunload",this.unloadWindow),r}catch(e){throw this.logger.error("error opening popup "+e.message),this.browserStorage.setInteractionInProgress(!1),In(qo)}}openSizedPopup(e,t,r){const o=window.screenLeft?window.screenLeft:window.screenX,n=window.screenTop?window.screenTop:window.screenY,i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;let s=r.popupSize?.width,c=r.popupSize?.height,l=r.popupPosition?.top,d=r.popupPosition?.left;return(!s||s<0||s>i)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),s=Br),(!c||c<0||c>a)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=Fr),(!l||l<0||l>a)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),l=Math.max(0,a/2-Fr/2+n)),(!d||d<0||d>i)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),d=Math.max(0,i/2-Br/2+o)),window.open(e,t,`width=${s}, height=${c}, top=${l}, left=${d}, scrollbars=yes`)}unloadWindow(t){this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Popup),this.currentWindow&&this.currentWindow.close(),t.preventDefault()}cleanPopup(e){e&&e.close(),window.removeEventListener("beforeunload",this.unloadWindow),this.browserStorage.setInteractionInProgress(!1)}generatePopupName(e,t){return`${Kr}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${Kr}.${this.config.auth.clientId}.${t}.${this.correlationId}`}extractServerResponseStringFromPopup(e,t){let r;return r=this.config.auth.OIDCOptions?.serverResponseType===fe.QUERY?hr.parseQueryServerResponse(t):e.location.hash,r}}class Ii extends vi{constructor(e,t,r,o,n,i){super(e,t,r,o,i),this.browserCrypto=n}async initiateAuthRequest(e,t){if(this.logger.verbose("RedirectHandler.initiateAuthRequest called"),e){t.redirectStartPage&&(this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"),this.browserStorage.setTemporaryCache(no,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(lo,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:yo.acquireTokenRedirect,timeout:t.redirectTimeout,noHistory:!1};if("function"==typeof t.onRedirectNavigate){this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");return!1!==t.onRedirectNavigate(e)?(this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"),void await t.navigationClient.navigateExternal(e,r)):void this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation")}return this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"),void await t.navigationClient.navigateExternal(e,r)}throw this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"),In(Ao)}async handleCodeResponseFromHash(e,t,r,o){if(this.logger.verbose("RedirectHandler.handleCodeResponse called"),!e)throw In(bo);this.browserStorage.setInteractionInProgress(!1);const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw ft.createStateNotFoundError("Cached State");let a;try{a=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Kt&&e.subError===Ho?In(Ho):e}const s=this.browserStorage.generateNonceKey(i),c=this.browserStorage.getTemporaryCache(s);if(this.authCodeRequest.code=a.code,a.cloud_instance_host_name&&await this.updateTokenEndpointAuthority(a.cloud_instance_host_name,r,o),a.nonce=c||void 0,a.state=i,a.client_info)this.authCodeRequest.clientInfo=a.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const l=await this.authModule.acquireToken(this.authCodeRequest,a);return this.browserStorage.cleanRequestByState(t),l}}class Ti extends oi{constructor(e,t,r,o,n,i,a,s,c,l){super(e,t,r,o,n,i,a,c,l),this.nativeStorage=s}async acquireToken(r){this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const o=await this.initializeAuthorizationRequest(r,e.InteractionType.Redirect);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(yo.acquireTokenRedirect),i=t=>{t.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(o.state),this.eventHandler.emitEvent(ei.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const e=await this.initializeAuthorizationCodeRequest(o);this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const t=await this.createAuthCodeClient(n,o.authority,o.azureCloudOptions);this.logger.verbose("Auth code client created");const a=new Ii(t,this.browserStorage,e,this.logger,this.browserCrypto,this.performanceClient),s=await t.getAuthCodeUrl({...o,nativeBroker:Ci.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),c=this.getRedirectStartPage(r.redirectStartPage);return this.logger.verbosePii(`Redirect start page: ${c}`),window.addEventListener("pageshow",i),await a.initiateAuthRequest(s,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:c,onRedirectNavigate:r.onRedirectNavigate})}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),window.removeEventListener("pageshow",i),this.browserStorage.cleanRequestByState(o.state),e}}async handleRedirectPromise(r){const o=this.initializeServerTelemetryManager(yo.handleRedirectPromise);try{if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const n=this.getRedirectResponseHash(r||window.location.hash);if(!n)return this.logger.info("handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache."),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null;let i;try{const t=hr.getDeserializedHash(n);i=this.validateAndExtractStateFromHash(t,e.InteractionType.Redirect),this.logger.verbose("State extracted from hash")}catch(t){return this.logger.info(`handleRedirectPromise was unable to extract state due to: ${t}`),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null}const a=this.browserStorage.getTemporaryCache(no,!0)||t.EMPTY_STRING,s=hr.removeHashFromUrl(a);if(s===hr.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling hash");const e=await this.handleHash(n,i,o);return a.indexOf("#")>-1&&Zn.replaceHash(a),e}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling hash"),this.handleHash(n,i,o);if(!Zn.isInIframe()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(io,n,!0);const e={apiId:yo.handleRedirectPromise,timeout:this.config.system.redirectNavigationTimeout,noHistory:!0};let t=!0;if(a&&"null"!==a)this.logger.verbose(`Navigating to loginRequestUrl: ${a}`),t=await this.navigationClient.navigateInternal(a,e);else{const r=Zn.getHomepage();this.browserStorage.setTemporaryCache(no,r,!0),this.logger.warning("Unable to get valid login request url from cache, redirecting to home page"),t=await this.navigationClient.navigateInternal(r,e)}if(!t)return this.handleHash(n,i,o)}return null}catch(t){throw t instanceof ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),t}}getRedirectResponseHash(e){this.logger.verbose("getRedirectResponseHash called");if(hr.hashContainsKnownProperties(e))return Zn.clearHash(window),this.logger.verbose("Hash contains known properties, returning response hash"),e;const t=this.browserStorage.getTemporaryCache(io,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(io)),this.logger.verbose("Hash does not contain known properties, returning cached hash"),t}async handleHash(e,t,r){const o=this.browserStorage.getCachedRequest(t);this.logger.verbose("handleHash called, retrieved cached request");const n=hr.getDeserializedHash(e);if(n.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw In(gn);const e=new yi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,yo.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,n.accountId,this.nativeStorage,o.correlationId),{userRequestState:r}=dr.parseRequestState(this.browserCrypto,t);return e.acquireToken({...o,state:r,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(t)}))}const i=this.browserStorage.getCachedAuthority(t);if(!i)throw In(Yo);this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientCreateAuthCodeClient,o.correlationId);const a=await this.createAuthCodeClient(r,i);this.logger.verbose("Auth code client created"),$t.removeThrottle(this.browserStorage,this.config.auth.clientId,o);const s=new Ii(a,this.browserStorage,o,this.logger,this.browserCrypto,this.performanceClient);return await s.handleCodeResponseFromHash(e,t,a.authority,this.networkClient)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),o=this.initializeServerTelemetryManager(yo.logout);try{this.eventHandler.emitEvent(ei.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const n={apiId:yo.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1};this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const i=await this.createAuthCodeClient(o,t&&t.authority);if(this.logger.verbose("Auth code client created"),i.authority.protocolMode===At.OIDC)try{i.authority.endSessionEndpoint}catch{if(r.account?.homeAccountId)return this.browserStorage.removeAccount(r.account?.homeAccountId),void this.eventHandler.emitEvent(ei.LOGOUT_SUCCESS,e.InteractionType.Redirect,r)}const a=i.getLogoutUri(r);if(this.eventHandler.emitEvent(ei.LOGOUT_SUCCESS,e.InteractionType.Redirect,r),!t||"function"!=typeof t.onRedirectNavigate)return this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(a,n);if(!1!==t.onRedirectNavigate(a))return this.logger.verbose("Logout onRedirectNavigate did not return false, navigating"),this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(a,n);this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation")}catch(t){throw t instanceof ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.eventHandler.emitEvent(ei.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ei.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent(ei.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return hr.getAbsoluteUrl(t,Zn.getCurrentUri())}}class _i extends vi{constructor(e,t,r,o,n,i){super(e,t,r,o,i),this.navigateFrameWait=n.navigateFrameWait,this.pollIntervalMilliseconds=n.pollIntervalMilliseconds}async initiateAuthRequest(e){if(this.performanceClient.addQueueMeasurement(Wt.SilentHandlerInitiateAuthRequest,this.authCodeRequest.correlationId),!e)throw this.logger.info("Navigate url is empty"),In(Ao);return this.navigateFrameWait?(this.performanceClient.setPreQueueTime(Wt.SilentHandlerLoadFrame,this.authCodeRequest.correlationId),await this.loadFrame(e)):this.loadFrameSync(e)}monitorIframeForHash(e,r){return this.performanceClient.addQueueMeasurement(Wt.SilentHandlerMonitorIframeForHash,this.authCodeRequest.correlationId),new Promise(((o,n)=>{r<_n&&this.logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${r}ms) than the default (6000ms). This may result in timeouts.`);const i=window.performance.now()+r,a=setInterval((()=>{if(window.performance.now()>i)return this.removeHiddenIframe(e),clearInterval(a),void n(In(Do));let r=t.EMPTY_STRING;const s=e.contentWindow;try{r=s?s.location.href:t.EMPTY_STRING}catch(e){}if(!r||"about:blank"===r)return;const c=s?s.location.hash:t.EMPTY_STRING;return c?hr.hashContainsKnownProperties(c)?(this.removeHiddenIframe(e),clearInterval(a),void o(c)):(this.logger.error("SilentHandler:monitorIFrameForHash - a hash is present in the iframe but it does not contain known properties. It's likely that the hash has been replaced by code running on the redirectUri page."),this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${r}`),this.removeHiddenIframe(e),clearInterval(a),void n(In(Po))):(this.logger.error("SilentHandler:monitorIFrameForHash - the request has returned to the redirectUri but a hash is not present in the iframe. It's likely that the hash has been removed or the page has been redirected by code running on the redirectUri page."),this.logger.errorPii(`SilentHandler:monitorIFrameForHash - the url detected in the iframe is: ${r}`),this.removeHiddenIframe(e),clearInterval(a),void n(In(bo)))}),this.pollIntervalMilliseconds)}))}loadFrame(e){return this.performanceClient.addQueueMeasurement(Wt.SilentHandlerLoadFrame,this.authCodeRequest.correlationId),new Promise(((t,r)=>{const o=this.createHiddenIframe();setTimeout((()=>{o?(o.src=e,t(o)):r("Unable to load iframe")}),this.navigateFrameWait)}))}loadFrameSync(e){const t=this.createHiddenIframe();return t.src=e,t}createHiddenIframe(){const e=document.createElement("iframe");return e.style.visibility="hidden",e.style.position="absolute",e.style.width=e.style.height="0",e.style.border="0",e.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),document.getElementsByTagName("body")[0].appendChild(e),e}removeHiddenIframe(e){document.body===e.parentNode&&document.body.removeChild(e)}}class ki extends oi{constructor(e,t,r,o,n,i,a,s,c,l,d){super(e,t,r,o,n,i,s,l,d),this.apiId=a,this.nativeStorage=c}async acquireToken(r){if(this.performanceClient.addQueueMeasurement(Wt.SilentIframeClientAcquireToken,r.correlationId),r.loginHint||r.sid||r.account&&r.account.username||this.logger.warning("No user hint provided. The authorization server may need more information to complete this request."),r.prompt&&r.prompt!==he.NONE&&r.prompt!==he.NO_SESSION)throw In(Go);const o=await yr(this.initializeAuthorizationRequest.bind(this),Wt.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,r.correlationId)({...r,prompt:r.prompt||he.NONE},e.InteractionType.Silent);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(this.apiId);try{const e=await yr(this.createAuthCodeClient.bind(this),Wt.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,r.correlationId)(n,o.authority,o.azureCloudOptions);return await yr(this.silentTokenHelper.bind(this),Wt.SilentIframeClientTokenHelper,this.logger,this.performanceClient,r.correlationId)(e,o)}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(o.state),e}}logout(){return Promise.reject(In($o))}async silentTokenHelper(t,r){this.performanceClient.addQueueMeasurement(Wt.SilentIframeClientTokenHelper,r.correlationId);const o=await yr(this.initializeAuthorizationCodeRequest.bind(this),Wt.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,r.correlationId)(r),n=await yr(t.getAuthCodeUrl.bind(t),Wt.GetAuthCodeUrl,this.logger,this.performanceClient,r.correlationId)({...r,nativeBroker:Ci.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),i=new _i(t,this.browserStorage,o,this.logger,this.config.system,this.performanceClient),a=await yr(i.initiateAuthRequest.bind(i),Wt.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r.correlationId)(n),s=await yr(i.monitorIframeForHash.bind(i),Wt.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r.correlationId)(a,this.config.system.iframeHashTimeout),c=hr.getDeserializedHash(s),l=this.validateAndExtractStateFromHash(c,e.InteractionType.Silent,o.correlationId);if(c.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw In(gn);const e=new yi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,c.accountId,this.browserStorage,this.correlationId),{userRequestState:t}=dr.parseRequestState(this.browserCrypto,l);return yr(e.acquireToken.bind(e),Wt.NativeInteractionClientAcquireToken,this.logger,this.performanceClient,r.correlationId)({...r,state:t,prompt:r.prompt||he.NONE}).finally((()=>{this.browserStorage.cleanRequestByState(l)}))}return yr(i.handleCodeResponseFromHash.bind(i),Wt.HandleCodeResponseFromHash,this.logger,this.performanceClient,r.correlationId)(s,l,t.authority,this.networkClient)}}class Si extends oi{async acquireToken(e){this.performanceClient.addQueueMeasurement(Wt.SilentRefreshClientAcquireToken,e.correlationId),this.performanceClient.setPreQueueTime(Wt.InitializeBaseRequest,e.correlationId);const t={...e,...await this.initializeBaseRequest(e,e.account)},r=this.performanceClient.startMeasurement(Wt.SilentRefreshClientAcquireToken,t.correlationId),o=this.initializeServerTelemetryManager(yo.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient(o,t.authority,t.azureCloudOptions);return this.logger.verbose("Refresh token client created"),this.performanceClient.setPreQueueTime(Wt.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),n.acquireTokenByRefreshToken(t).then((e=>e)).then((e=>(r.end({success:!0,fromCache:e.fromCache,requestId:e.requestId}),e))).catch((e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),r.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}))}logout(){return Promise.reject(In($o))}async createRefreshTokenClient(e,t,r){this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await this.getClientConfiguration(e,t,r);return new vr(o,this.performanceClient)}}class Ei{constructor(e,t,r,o){this.isBrowserEnvironment="undefined"!=typeof window,this.config=e,this.storage=t,this.logger=r,this.cryptoObj=o}loadExternalTokens(e,t,r){if(this.logger.info("TokenCache - loadExternalTokens called"),!t.id_token)throw In(on);const o=Rt(t.id_token,qn);let n,i,a;if(e.account)a=bt.createFromAccountInfo(e.account),n=new lr(a,this.loadIdToken(t.id_token,a.homeAccountId,e.account.environment,e.account.tenantId),this.loadAccessToken(e,t,a.homeAccountId,e.account.environment,e.account.tenantId,r),this.loadRefreshToken(e,t,a.homeAccountId,e.account.environment));else{if(!e.authority)throw In(on);{const s=Er.generateAuthority(e.authority,e.azureCloudOptions),c={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache};if(i=new Er(s,this.config.system.networkClient,this.storage,c,this.logger),r.clientInfo)this.logger.trace("TokenCache - homeAccountId from options"),a=this.loadAccount(o,i,r.clientInfo),n=new lr(a,this.loadIdToken(t.id_token,a.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,a.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,a.homeAccountId,i.hostnameAndPort));else{if(!t.client_info)throw In(on);this.logger.trace("TokenCache - homeAccountId from response"),a=this.loadAccount(o,i,t.client_info),n=new lr(a,this.loadIdToken(t.id_token,a.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,a.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,a.homeAccountId,i.hostnameAndPort))}}}return this.generateAuthenticationResult(e,o,n,a,i)}loadAccount(e,t,r,o){let n;if(o?n=o:void 0!==t.authorityType&&r&&(n=bt.generateHomeAccountId(r,t.authorityType,this.logger,this.cryptoObj,e)),!n)throw In(on);const i=bt.createAccount({homeAccountId:n,idTokenClaims:e,clientInfo:r,environment:t.hostnameAndPort},t);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading account"),this.storage.setAccount(i),i;throw In(on)}loadIdToken(e,t,r,o){const n=tr.createIdTokenEntity(t,r,e,this.config.auth.clientId,o);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading id token"),this.storage.setIdTokenCredential(n),n;throw In(on)}loadAccessToken(e,t,r,o,n,i){if(!t.access_token)return this.logger.verbose("TokenCache - No access token provided for caching"),null;if(!t.expires_in)throw In(on);if(!i.extendedExpiresOn)throw In(on);const a=new wt(e.scopes).printScopes(),s=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,l=or.createAccessTokenEntity(r,o,t.access_token,this.config.auth.clientId,n,a,s,c,this.cryptoObj);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(l),l;throw In(on)}loadRefreshToken(e,t,r,o){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const n=nr.createRefreshTokenEntity(r,o,t.refresh_token,this.config.auth.clientId);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading refresh token"),this.storage.setRefreshTokenCredential(n),n;throw In(on)}generateAuthenticationResult(e,r,o,n,i){let a,s=t.EMPTY_STRING,c=[],l=null;o?.accessToken&&(s=o.accessToken.secret,c=wt.fromString(o.accessToken.target).asArray(),l=new Date(1e3*Number(o.accessToken.expiresOn)),a=new Date(1e3*Number(o.accessToken.extendedExpiresOn)));const d=r.oid||r.sub||t.EMPTY_STRING,h=r.tid||t.EMPTY_STRING;return{authority:i?i.canonicalAuthority:t.EMPTY_STRING,uniqueId:d,tenantId:h,scopes:c,account:n.getAccountInfo(),idToken:o.idToken?.secret||"",idTokenClaims:r||{},accessToken:s,fromCache:!0,expiresOn:l,correlationId:e.correlationId||t.EMPTY_STRING,requestId:t.EMPTY_STRING,extExpiresOn:a,familyId:t.EMPTY_STRING,tokenType:o?.accessToken?.tokenType||t.EMPTY_STRING,state:t.EMPTY_STRING,cloudGraphHostName:n.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:n.msGraphHost||t.EMPTY_STRING,code:void 0,fromNativeBroker:!1}}}class Ai extends Cr{constructor(e){super(e),this.includeRedirectUri=!1}}class bi extends oi{constructor(e,t,r,o,n,i,a,s,c,l){super(e,t,r,o,n,i,s,c,l),this.apiId=a}async acquireToken(r){if(this.logger.trace("SilentAuthCodeClient.acquireToken called"),!r.code)throw In(an);this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const o=await this.initializeAuthorizationRequest(r,e.InteractionType.Silent);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(this.apiId);try{const e={...o,code:r.code};this.performanceClient.setPreQueueTime(Wt.StandardInteractionClientGetClientConfiguration,r.correlationId);const t=await this.getClientConfiguration(n,o.authority),i=new Ai(t);this.logger.verbose("Auth code client created");return new _i(i,this.browserStorage,e,this.logger,this.config.system,this.performanceClient).handleCodeResponseFromServer({code:r.code,msgraph_host:r.msGraphHost,cloud_graph_host_name:r.cloudGraphHostName,cloud_instance_host_name:r.cloudInstanceHostName},o.state,i.authority,this.networkClient,!1)}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(o.state),e}}logout(){return Promise.reject(In($o))}}class Ri{constructor(e){var t,r;this.atsAsyncMeasurement=void 0,this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.isBrowserEnvironment(),this.config=e.getConfig(),this.initialized=!1,this.logger=this.operatingContext.getLogger(),this.networkClient=this.config.system.networkClient,this.navigationClient=this.config.system.navigationClient,this.redirectResponse=new Map,this.hybridAuthCodeResponses=new Map,this.performanceClient=this.config.telemetry.client,this.browserCrypto=this.isBrowserEnvironment?new jn(this.logger,this.performanceClient):lt,this.eventHandler=new ti(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new Xn(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):(t=this.config.auth.clientId,r=this.logger,new Xn(t,{cacheLocation:Xr.MemoryStorage,temporaryCacheLocation:Xr.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},lt,r));const o={cacheLocation:Xr.MemoryStorage,temporaryCacheLocation:Xr.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new Xn(this.config.auth.clientId,o,this.browserCrypto,this.logger),this.tokenCache=new Ei(this.config,this.browserStorage,this.logger,this.browserCrypto),this.activeSilentTokenRequests=new Map,this.trackPageVisibility=this.trackPageVisibility.bind(this),this.trackPageVisibilityWithMeasurement=this.trackPageVisibilityWithMeasurement.bind(this)}static async createController(e){const t=new Ri(e);return await t.initialize(),t}trackPageVisibility(){this.atsAsyncMeasurement&&(this.logger.info("Perf: Visibility change detected"),this.atsAsyncMeasurement.increment({visibilityChangeCount:1}))}async initialize(){if(this.logger.trace("initialize called"),this.initialized)return void this.logger.info("initialize has already been called, exiting early.");const e=this.config.system.allowNativeBroker,t=this.performanceClient.startMeasurement(Wt.InitializeClientApplication);if(this.eventHandler.emitEvent(ei.INITIALIZE_START),e)try{this.nativeExtensionProvider=await Ci.createProvider(this.logger,this.config.system.nativeBrokerHandshakeTimeout,this.performanceClient,this.browserCrypto)}catch(e){this.logger.verbose(e)}this.config.cache.claimsBasedCachingEnabled||(this.logger.verbose("Claims-based caching is disabled. Clearing the previous cache with claims"),await yr(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),Wt.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient)()),this.initialized=!0,this.eventHandler.emitEvent(ei.INITIALIZE_END),t.end({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),Zn.blockAPICallsBeforeInitialize(this.initialized);let o=r;if(this.config.auth.OIDCOptions?.serverResponseType===fe.QUERY){const e=window.location.href;o=hr.parseQueryServerResponse(e)}const n=this.getAllAccounts();if(this.isBrowserEnvironment){const r=o||t.EMPTY_STRING;let i=this.redirectResponse.get(r);if(void 0===i){this.eventHandler.emitEvent(ei.HANDLE_REDIRECT_START,e.InteractionType.Redirect),this.logger.verbose("handleRedirectPromise has been called for the first time, storing the promise");const a=this.browserStorage.getCachedNativeRequest();let s;if(a&&Ci.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!o){this.logger.trace("handleRedirectPromise - acquiring token from native platform");s=new yi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,yo.handleRedirectPromise,this.performanceClient,this.nativeExtensionProvider,a.accountId,this.nativeInternalStorage,a.correlationId).handleRedirectPromise()}else{this.logger.trace("handleRedirectPromise - acquiring token from web flow");const e=this.browserStorage.getTemporaryCache(lo,!0)||t.EMPTY_STRING;s=this.createRedirectClient(e).handleRedirectPromise(o)}i=s.then((t=>{if(t){n.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(ei.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent(ei.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw n.length>0?this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ei.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ei.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})),this.redirectResponse.set(r,i)}else this.logger.verbose("handleRedirectPromise has been called previously, returning the result from the first call");return i}return this.logger.verbose("handleRedirectPromise returns null, not browser environment"),null}async acquireTokenRedirect(t){const r=this.getRequestCorrelationId(t);this.logger.verbose("acquireTokenRedirect called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);const o=this.getAllAccounts().length>0;let n;if(o?this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent(ei.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){n=new yi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,yo.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,t.correlationId).acquireTokenRedirect(t).catch((e=>{if(e instanceof gi&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createRedirectClient(t.correlationId).acquireToken(t)}if(e instanceof cr){this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createRedirectClient(t.correlationId).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}))}else{n=this.createRedirectClient(t.correlationId).acquireToken(t)}return n.catch((t=>{throw o?this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ei.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),o=this.performanceClient.startMeasurement(Wt.AcquireTokenPopup,r);try{this.logger.verbose("acquireTokenPopup called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup)}catch(e){return Promise.reject(e)}const n=this.getAllAccounts();let i;if(n.length>0?this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ei.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative(t,yo.acquireTokenPopup).then((e=>(this.getBrowserStorage().setInteractionInProgress(!1),o.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof gi&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createPopupClient(t.correlationId).acquireToken(t)}if(e instanceof cr){this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createPopupClient(t.correlationId).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}));else{i=this.createPopupClient(t.correlationId).acquireToken(t)}return i.then((t=>(n.length<this.getAllAccounts().length?this.eventHandler.emitEvent(ei.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Popup,t),o.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.end({success:!0,requestId:t.requestId}),t))).catch((t=>(n.length>0?this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent(ei.LOGIN_FAILURE,e.InteractionType.Popup,null,t),o.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),Promise.reject(t))))}trackPageVisibilityWithMeasurement(){const e=this.ssoSilentMeasurement||this.acquireTokenByCodeAsyncMeasurement;e&&(this.logger.info("Perf: Visibility change detected in ",e.event.name),e.increment({visibilityChangeCount:1}))}async ssoSilent(t){const r=this.getRequestCorrelationId(t),o={...t,prompt:t.prompt,correlationId:r};let n;if(this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.ssoSilentMeasurement=this.performanceClient.startMeasurement(Wt.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(ei.SSO_SILENT_START,e.InteractionType.Silent,o),this.canUseNative(o))n=this.acquireTokenNative(o,yo.ssoSilent).catch((e=>{if(e instanceof gi&&e.isFatal()){this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(o.correlationId).acquireToken(o)}throw e}));else{n=this.createSilentIframeClient(o.correlationId).acquireToken(o)}return n.then((t=>(this.eventHandler.emitEvent(ei.SSO_SILENT_SUCCESS,e.InteractionType.Silent,t),this.ssoSilentMeasurement?.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),this.ssoSilentMeasurement?.end({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(ei.SSO_SILENT_FAILURE,e.InteractionType.Silent,null,t),this.ssoSilentMeasurement?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenByCode(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.trace("acquireTokenByCode called",r),this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const o=this.performanceClient.startMeasurement(Wt.AcquireTokenByCode,t.correlationId);try{if(t.code&&t.nativeAccountId)throw In(cn);if(t.code){const n=t.code;let i=this.hybridAuthCodeResponses.get(n);return i?(this.logger.verbose("Existing acquireTokenByCode request found",t.correlationId),o.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",r),i=this.acquireTokenByCodeAsync({...t,correlationId:r}).then((t=>(this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_BY_CODE_SUCCESS,e.InteractionType.Silent,t),this.hybridAuthCodeResponses.delete(n),o.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.end({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.hybridAuthCodeResponses.delete(n),this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})),this.hybridAuthCodeResponses.set(n,i)),i}if(t.nativeAccountId){if(this.canUseNative(t,t.nativeAccountId))return this.acquireTokenNative(t,yo.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof gi&&e.isFatal()&&(this.nativeExtensionProvider=void 0),e}));throw In(dn)}throw In(sn)}catch(t){throw this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.end({errorCode:t instanceof ct&&t.errorCode||void 0,subErrorCode:t instanceof ct&&t.subError||void 0,success:!1}),t}}async acquireTokenByCodeAsync(e){this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(Wt.AcquireTokenByCodeAsync,e.correlationId),this.acquireTokenByCodeAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement);const t=this.createSilentAuthCodeClient(e.correlationId);return await t.acquireToken(e).then((e=>(this.acquireTokenByCodeAsyncMeasurement?.end({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,requestId:e.requestId}),e))).catch((e=>{throw this.acquireTokenByCodeAsyncMeasurement?.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenFromCache(e,t,r){switch(this.performanceClient.addQueueMeasurement(Wt.AcquireTokenFromCache,t.correlationId),r.cacheLookupPolicy){case _o.Default:case _o.AccessToken:case _o.AccessTokenAndRefreshToken:return e.acquireToken(t);default:throw ft.createRefreshRequiredError()}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(Wt.AcquireTokenByRefreshToken,e.correlationId),t.cacheLookupPolicy){case _o.Default:case _o.AccessTokenAndRefreshToken:case _o.RefreshToken:case _o.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return this.performanceClient.setPreQueueTime(Wt.SilentRefreshClientAcquireToken,e.correlationId),t.acquireToken(e);default:throw ft.createRefreshRequiredError()}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(Wt.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return yr(t.acquireToken.bind(t),Wt.SilentIframeClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e)}async logout(e){const t=this.getRequestCorrelationId(e);return this.logger.warning("logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.",t),this.logoutRedirect({correlationId:t,...e})}async logoutRedirect(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);return this.createRedirectClient(r).logout(t)}logoutPopup(t){try{const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup);return this.createPopupClient(r).logout(t)}catch(e){return Promise.reject(e)}}async clearCache(e){const t=this.getRequestCorrelationId(e);return this.createSilentCacheClient(t).logout(e)}getAllAccounts(){return this.logger.verbose("getAllAccounts called"),this.isBrowserEnvironment?this.browserStorage.getAllAccounts():[]}getAccountByUsername(e){if(this.logger.trace("getAccountByUsername called"),!e)return this.logger.warning("getAccountByUsername: No username provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({username:e});return t?(this.logger.verbose("getAccountByUsername: Account matching username found, returning"),this.logger.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${e}`),t):(this.logger.verbose("getAccountByUsername: No matching account found, returning null"),null)}getAccountByHomeId(e){if(this.logger.trace("getAccountByHomeId called"),!e)return this.logger.warning("getAccountByHomeId: No homeAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({homeAccountId:e});return t?(this.logger.verbose("getAccountByHomeId: Account matching homeAccountId found, returning"),this.logger.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${e}`),t):(this.logger.verbose("getAccountByHomeId: No matching account found, returning null"),null)}getAccountByLocalId(e){if(this.logger.trace("getAccountByLocalId called"),!e)return this.logger.warning("getAccountByLocalId: No localAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({localAccountId:e});return t?(this.logger.verbose("getAccountByLocalId: Account matching localAccountId found, returning"),this.logger.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${e}`),t):(this.logger.verbose("getAccountByLocalId: No matching account found, returning null"),null)}setActiveAccount(e){this.browserStorage.setActiveAccount(e)}getActiveAccount(){return this.browserStorage.getActiveAccount()}async hydrateCache(e,t){this.logger.verbose("hydrateCache called");const r=bt.createFromAccountInfo(e.account,e.cloudGraphHostName,e.msGraphHost);return this.browserStorage.setAccount(r),e.fromNativeBroker?(this.logger.verbose("Response was from native broker, storing in-memory"),this.nativeInternalStorage.hydrateCache(e,t)):this.browserStorage.hydrateCache(e,t)}preflightBrowserEnvironmentCheck(t,r=!1){if(this.logger.verbose("preflightBrowserEnvironmentCheck started"),Zn.blockNonBrowserEnvironment(this.isBrowserEnvironment),Zn.blockRedirectInIframe(t,this.config.system.allowRedirectInIframe),Zn.blockReloadInHiddenIframes(),Zn.blockAcquireTokenInPopups(),Zn.blockAPICallsBeforeInitialize(this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===Xr.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw Wn.createInMemoryRedirectUnavailableError();t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),Zn.blockReloadInHiddenIframes(),e&&this.getBrowserStorage().setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw In(gn);return new yi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,t,this.performanceClient,this.nativeExtensionProvider,r||this.getNativeAccountId(e),this.nativeInternalStorage,e.correlationId).acquireToken(e)}canUseNative(e,t){if(this.logger.trace("canUseNative called"),!Ci.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,e.authenticationScheme))return this.logger.trace("canUseNative: isNativeAvailable returned false, returning false"),!1;if(e.prompt)switch(e.prompt){case he.NONE:case he.CONSENT:case he.LOGIN:this.logger.trace("canUseNative: prompt is compatible with native flow");break;default:return this.logger.trace(`canUseNative: prompt = ${e.prompt} is not compatible with native flow, returning false`),!1}return!(!t&&!this.getNativeAccountId(e))||(this.logger.trace("canUseNative: nativeAccountId is not available, returning false"),!1)}getNativeAccountId(e){const t=e.account||this.browserStorage.getAccountInfoByHints(e.loginHint,e.sid)||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new wi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new Ti(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new ki(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,yo.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new pi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new Si(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new bi(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,yo.acquireTokenByCode,this.performanceClient,this.nativeExtensionProvider,e)}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return this.performanceClient.addPerformanceCallback(e)}removePerformanceCallback(e){return this.performanceClient.removePerformanceCallback(e)}enableAccountStorageEvents(){this.eventHandler.enableAccountStorageEvents()}disableAccountStorageEvents(){this.eventHandler.disableAccountStorageEvents()}getTokenCache(){return this.tokenCache}getLogger(){return this.logger}setLogger(e){this.logger=e}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){this.navigationClient=e}getConfiguration(){return this.config}getPerformanceClient(){return this.performanceClient}getBrowserStorage(){return this.browserStorage}isBrowserEnv(){return this.isBrowserEnvironment}getEventHandler(){return this.eventHandler}getRequestCorrelationId(e){return e?.correlationId?e.correlationId:this.isBrowserEnvironment?this.browserCrypto.createNewGuid():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||wo})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||wo})}async acquireTokenSilent(r){const o=this.getRequestCorrelationId(r),n=this.performanceClient.startMeasurement(Wt.AcquireTokenSilent,o);n.add({cacheLookupPolicy:r.cacheLookupPolicy}),this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.verbose("acquireTokenSilent called",o);const i=r.account||this.getActiveAccount();if(!i)throw In(zo);const a={clientId:this.config.auth.clientId,authority:r.authority||t.EMPTY_STRING,scopes:r.scopes,homeAccountIdentifier:i.homeAccountId,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},s=JSON.stringify(a),c=this.activeSilentTokenRequests.get(s);if(void 0===c){this.logger.verbose("acquireTokenSilent called for the first time, storing active request",o),this.performanceClient.setPreQueueTime(Wt.AcquireTokenSilentAsync,o);const e=this.acquireTokenSilentAsync({...r,correlationId:o},i).then((e=>(this.activeSilentTokenRequests.delete(s),n.add({accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length}),n.end({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,cacheLookupPolicy:r.cacheLookupPolicy,requestId:e.requestId}),e))).catch((e=>{throw this.activeSilentTokenRequests.delete(s),n.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}));return this.activeSilentTokenRequests.set(s,e),e}return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",o),n.discard(),c}async acquireTokenSilentAsync(t,r){let o;if(this.performanceClient.addQueueMeasurement(Wt.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(Wt.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),Ci.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,t.authenticationScheme)&&r.nativeAccountId){this.logger.verbose("acquireTokenSilent - attempting to acquire token from native platform");const e={...t,account:r};o=this.acquireTokenNative(e,yo.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof gi&&e.isFatal()){this.logger.verbose("acquireTokenSilent - native platform unavailable, falling back to web flow"),this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(t.correlationId).acquireToken(t)}throw e}))}else{this.logger.verbose("acquireTokenSilent - attempting to acquire token from web flow");const n=this.createSilentCacheClient(t.correlationId);this.performanceClient.setPreQueueTime(Wt.InitializeSilentRequest,t.correlationId);const i=await n.initializeSilentRequest(t,r),a={...t,cacheLookupPolicy:t.cacheLookupPolicy||_o.Default};this.performanceClient.setPreQueueTime(Wt.AcquireTokenFromCache,i.correlationId),o=this.acquireTokenFromCache(n,i,a).catch((r=>{if(a.cacheLookupPolicy===_o.AccessToken)throw r;return Zn.blockReloadInHiddenIframes(),this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),this.performanceClient.setPreQueueTime(Wt.AcquireTokenByRefreshToken,i.correlationId),this.acquireTokenByRefreshToken(i,a).catch((e=>{const r=e instanceof Kt,o=e instanceof cr,n=e.errorCode===xr;if((!r||!n||o||a.cacheLookupPolicy===_o.AccessTokenAndRefreshToken||a.cacheLookupPolicy===_o.RefreshToken)&&a.cacheLookupPolicy!==_o.Skip)throw e;return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",t.correlationId),this.performanceClient.setPreQueueTime(Wt.AcquireTokenBySilentIframe,i.correlationId),this.acquireTokenBySilentIframe(i)}))}))}return o.then((t=>(this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Silent,t),this.atsAsyncMeasurement?.end({success:!0,fromCache:t.fromCache,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(ei.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Silent,null,t),this.atsAsyncMeasurement?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibility)}))}}var Pi=Object.freeze({__proto__:null,StandardController:Ri});class Mi{static async createPublicClientApplication(e){const t=new Rn(e),r=await t.createController();return new Mi(e,r)}constructor(e,t){if(t)this.controller=t;else{const t=new bn(e);this.controller=new Ri(t)}}async initialize(){return this.controller.initialize()}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e){return this.controller.addEventCallback(e)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(){return this.controller.getAllAccounts()}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,t){return this.controller.initializeWrapperLibrary(e,t)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}async hydrateCache(e,t){return this.controller.hydrateCache(e,t)}clearCache(e){return this.controller.clearCache(e)}}const Ni={initialize:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),acquireTokenPopup:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),acquireTokenRedirect:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),acquireTokenSilent:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),acquireTokenByCode:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),loginPopup:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),loginRedirect:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),logout:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),logoutRedirect:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),logoutPopup:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),ssoSilent:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw Wn.createStubPcaInstanceCalledError()},getLogger:()=>{throw Wn.createStubPcaInstanceCalledError()},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw Wn.createStubPcaInstanceCalledError()},hydrateCache:()=>Promise.reject(Wn.createStubPcaInstanceCalledError()),clearCache:()=>Promise.reject(Wn.createStubPcaInstanceCalledError())};class Oi{constructor(e,t){this.correlationId=t,this.measureName=Oi.makeMeasureName(e,t),this.startMark=Oi.makeStartMark(e,t),this.endMark=Oi.makeEndMark(e,t)}static makeMeasureName(e,t){return`msal.measure.${e}.${t}`}static makeStartMark(e,t){return`msal.start.${e}.${t}`}static makeEndMark(e,t){return`msal.end.${e}.${t}`}static supportsBrowserPerformance(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.mark&&"function"==typeof window.performance.measure&&"function"==typeof window.performance.clearMarks&&"function"==typeof window.performance.clearMeasures&&"function"==typeof window.performance.getEntriesByName}static flushMeasurements(e,t){if(Oi.supportsBrowserPerformance())try{t.forEach((t=>{const r=Oi.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(Oi.makeStartMark(r,e)),window.performance.clearMarks(Oi.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(Oi.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(Oi.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(Oi.supportsBrowserPerformance())try{const e=window.performance.getEntriesByName(this.measureName,"measure");if(e.length>0){const t=e[0].duration;return window.performance.clearMeasures(this.measureName),window.performance.clearMarks(this.startMark),window.performance.clearMarks(this.endMark),t}}catch(e){}return null}}e.AccountEntity=bt,e.ApiId=yo,e.AuthError=ct,e.AuthErrorMessage=st,e.AuthenticationHeaderParser=class{constructor(e){this.headers=e}getShrNonce(){const e=this.headers[u];if(e){const t=this.parseChallenges(e);if(t.nextnonce)return t.nextnonce;throw Ct.createInvalidAuthenticationHeaderError(u,"nextnonce challenge is missing.")}const t=this.headers[h];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw Ct.createInvalidAuthenticationHeaderError(h,"nonce challenge is missing.")}throw Ct.createMissingNonceAuthenticationHeadersError()}parseChallenges(e){const r=e.indexOf(" "),o=e.substr(r+1).split(","),n={};return o.forEach((e=>{const[r,o]=e.split("=");n[r]=unescape(o.replace(/['"]+/g,t.EMPTY_STRING))})),n}},e.AuthenticationScheme=De,e.AzureCloudInstance=pt,e.BrowserAuthError=wn,e.BrowserAuthErrorCodes=fn,e.BrowserAuthErrorMessage=vn,e.BrowserCacheLocation=Xr,e.BrowserConfigurationAuthError=Wn,e.BrowserConfigurationAuthErrorMessage=Yn,e.BrowserPerformanceClient=class extends Hr{constructor(e,r){super(e.auth.clientId,e.auth.authority||`${t.DEFAULT_AUTHORITY}`,new ht(e.system?.loggerOptions||{},kn,Sn),kn,Sn,e.telemetry?.application||{appName:"",appVersion:""},r)}startPerformanceMeasurement(e,t){return new Oi(e,t)}generateId(){return window.crypto.randomUUID()}getPageVisibility(){return document.visibilityState?.toString()||null}deleteIncompleteSubMeasurements(e){const t=this.eventsByCorrelationId.get(e.event.correlationId),r=t&&t.eventId===e.event.eventId,o=[];r&&t?.incompleteSubMeasurements&&t.incompleteSubMeasurements.forEach((e=>{o.push({...e})})),o.length>0&&Oi.flushMeasurements(e.event.correlationId,o)}supportsBrowserPerformanceNow(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.now}startMeasurement(e,t){const r=this.getPageVisibility(),o=super.startMeasurement(e,t);return{...o,end:e=>{const t=o.end({startPageVisibility:r,endPageVisibility:this.getPageVisibility(),...e});return this.deleteIncompleteSubMeasurements(o),t},discard:()=>{o.discard(),this.deleteIncompleteSubMeasurements(o),o.measurement.flushMeasurement()}}}setPreQueueTime(e,t){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to set telemetry queue time`);const r=this.preQueueTimeByCorrelationId.get(t);r&&(this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${r.name} found`,t),this.addQueueMeasurement(r.name,t,void 0,!0)),this.preQueueTimeByCorrelationId.set(t,{name:e,time:window.performance.now()})}addQueueMeasurement(e,t,r,o){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to add queue measurement`);const n=super.getPreQueueTime(e,t);if(!n)return;const i=window.performance.now(),a=r||super.calculateQueuedTime(n,i);return super.addQueueMeasurement(e,t,a,o)}},e.BrowserPerformanceMeasurement=Oi,e.BrowserStorage=Vn,e.BrowserUtils=Zn,e.CacheLookupPolicy=_o,e.ClientAuthError=ft,e.ClientAuthErrorMessage=mt,e.ClientConfigurationError=Ct,e.ClientConfigurationErrorMessage=yt,e.DEFAULT_IFRAME_TIMEOUT_MS=_n,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case ei.LOGIN_START:return vo.Login;case ei.SSO_SILENT_START:return vo.SsoSilent;case ei.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return vo.AcquireToken;break;case ei.HANDLE_REDIRECT_START:return vo.HandleRedirect;case ei.LOGOUT_START:return vo.Logout;case ei.SSO_SILENT_SUCCESS:case ei.SSO_SILENT_FAILURE:if(r&&r!==vo.SsoSilent)break;return vo.None;case ei.LOGOUT_END:if(r&&r!==vo.Logout)break;return vo.None;case ei.HANDLE_REDIRECT_END:if(r&&r!==vo.HandleRedirect)break;return vo.None;case ei.LOGIN_SUCCESS:case ei.LOGIN_FAILURE:case ei.ACQUIRE_TOKEN_SUCCESS:case ei.ACQUIRE_TOKEN_FAILURE:case ei.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==vo.Login&&r!==vo.AcquireToken)break;return vo.None}}return null}},e.EventType=ei,e.InteractionRequiredAuthError=cr,e.InteractionRequiredAuthErrorMessage=sr,e.InteractionStatus=vo,e.Logger=ht,e.MemoryStorage=Kn,e.NavigationClient=ko,e.OIDC_DEFAULT_SCOPES=a,e.PerformanceEvents=Wt,e.PromptValue=he,e.ProtocolMode=At,e.PublicClientApplication=Mi,e.ServerError=Kt,e.ServerResponseType=fe,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new ht(r,kn,Sn),this.cryptoOps=new jn(this.logger),this.popTokenGenerator=new gr(this.cryptoOps),this.shrParameters=e}async generatePublicKeyThumbprint(){const{kid:e}=await this.popTokenGenerator.generateKid(this.shrParameters);return e}async signRequest(e,t,r){return this.popTokenGenerator.signPayload(e,t,this.shrParameters,r)}async removeKeys(e){return await this.cryptoOps.removeTokenBindingKey(e)}},e.StringUtils=vt,e.UrlString=hr,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.stubbedPublicClientApplication=Ni,e.version=Sn}));
|
|
3
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
4
|
+
const t={LIBRARY_NAME:"MSAL.JS",SKU:"msal.js.common",CACHE_PREFIX:"msal",DEFAULT_AUTHORITY:"https://login.microsoftonline.com/common/",DEFAULT_AUTHORITY_HOST:"login.microsoftonline.com",DEFAULT_COMMON_TENANT:"common",ADFS:"adfs",DSTS:"dstsv2",AAD_INSTANCE_DISCOVERY_ENDPT:"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=",CIAM_AUTH_URL:".ciamlogin.com",AAD_TENANT_DOMAIN_SUFFIX:".onmicrosoft.com",RESOURCE_DELIM:"|",NO_ACCOUNT:"NO_ACCOUNT",CLAIMS:"claims",CONSUMER_UTID:"9188040d-6c67-4c5b-b112-36a304b66dad",OPENID_SCOPE:"openid",PROFILE_SCOPE:"profile",OFFLINE_ACCESS_SCOPE:"offline_access",EMAIL_SCOPE:"email",CODE_RESPONSE_TYPE:"code",CODE_GRANT_TYPE:"authorization_code",RT_GRANT_TYPE:"refresh_token",FRAGMENT_RESPONSE_MODE:"fragment",S256_CODE_CHALLENGE_METHOD:"S256",URL_FORM_CONTENT_TYPE:"application/x-www-form-urlencoded;charset=utf-8",AUTHORIZATION_PENDING:"authorization_pending",NOT_DEFINED:"not_defined",EMPTY_STRING:"",NOT_APPLICABLE:"N/A",FORWARD_SLASH:"/",IMDS_ENDPOINT:"http://169.254.169.254/metadata/instance/compute/location",IMDS_VERSION:"2020-06-01",IMDS_TIMEOUT:2e3,AZURE_REGION_AUTO_DISCOVER_FLAG:"TryAutoDetect",REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX:"login.microsoft.com",REGIONAL_AUTH_NON_MSI_QUERY_STRING:"allowestsrnonmsi=true",KNOWN_PUBLIC_CLOUDS:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"],TOKEN_RESPONSE_TYPE:"token",ID_TOKEN_RESPONSE_TYPE:"id_token",SHR_NONCE_VALIDITY:240,INVALID_INSTANCE:"invalid_instance"},r=400,o=499,n=500,i=599,s=[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE],a=[...s,t.EMAIL_SCOPE],c="Content-Type",l="Retry-After",h="X-AnchorMailbox",d="WWW-Authenticate",u="Authentication-Info",g="x-ms-request-id",p="x-ms-httpver",m="idtoken",f="client.info",y="adal.idtoken",C="error",v="error.description",w="active-account",T="active-account-filters",I="common",_="organizations",A="consumers",k="client_id",S="redirect_uri",E="response_type",b="response_mode",R="grant_type",P="claims",M="scope",N="refresh_token",O="state",q="nonce",L="prompt",U="code",H="code_challenge",B="code_challenge_method",D="code_verifier",x="client-request-id",K="x-client-SKU",F="x-client-VER",z="x-client-OS",G="x-client-CPU",$="x-client-current-telemetry",Q="x-client-last-telemetry",j="x-ms-lib-capability",Y="x-app-name",W="x-app-ver",V="post_logout_redirect_uri",J="id_token_hint",X="device_code",Z="client_secret",ee="client_assertion",te="client_assertion_type",re="token_type",oe="req_cnf",ne="assertion",ie="requested_token_use",se="return_spa_code",ae="nativebroker",ce="logout_hint",le="access_token",he="xms_cc",de={LOGIN:"login",SELECT_ACCOUNT:"select_account",CONSENT:"consent",NONE:"none",CREATE:"create",NO_SESSION:"no_session"},ue="sid",ge="login_hint",pe="domain_hint",me={PLAIN:"plain",S256:"S256"},fe={QUERY:"query",FRAGMENT:"fragment"},ye={...fe,FORM_POST:"form_post"},Ce="authorization_code",ve="refresh_token",we="MSSTS",Te="ADFS",Ie="Generic",_e="-",Ae=".",ke={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},Se=2001,Ee=2002,be=2003,Re="appmetadata",Pe="1",Me="authority-metadata",Ne=86400,Oe="config",qe="cache",Le="network",Ue="hardcoded_values",He={SCHEMA_VERSION:5,MAX_CUR_HEADER_BYTES:80,MAX_LAST_HEADER_BYTES:330,MAX_CACHED_ERRORS:50,CACHE_KEY:"server-telemetry",CATEGORY_SEPARATOR:"|",VALUE_SEPARATOR:",",OVERFLOW_TRUE:"1",OVERFLOW_FALSE:"0",UNKNOWN_ERROR:"unknown_error"},Be={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},De=60,xe=3600,Ke="throttling",Fe="retry-after, h429",ze="invalid_grant",Ge="client_mismatch",$e="username",Qe="password",je=200,Ye=400,We="1",Ve="3",Je="4",Xe="2",Ze="4",et="5",tt="0",rt="1",ot="2",nt="3",it="4",st="pop",at="unexpected_error",ct="post_request_failed";var lt=Object.freeze({__proto__:null,postRequestFailed:ct,unexpectedError:at});
|
|
5
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const ht={[at]:"Unexpected error in authentication.",[ct]:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."},dt={unexpectedError:{code:at,desc:ht[at]},postRequestFailed:{code:ct,desc:ht[ct]}};class ut extends Error{constructor(e,r,o){super(r?`${e}: ${r}`:e),Object.setPrototypeOf(this,ut.prototype),this.errorCode=e||t.EMPTY_STRING,this.errorMessage=r||t.EMPTY_STRING,this.subError=o||t.EMPTY_STRING,this.name="AuthError"}setCorrelationId(e){this.correlationId=e}}function gt(e,t){return new ut(e,t?`${ht[e]} ${t}`:ht[e])}
|
|
6
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const pt="client_info_decoding_error",mt="client_info_empty_error",ft="token_parsing_error",yt="null_or_empty_token",Ct="endpoints_resolution_error",vt="network_error",wt="openid_config_error",Tt="hash_not_deserialized",It="invalid_state",_t="state_mismatch",At="state_not_found",kt="nonce_mismatch",St="auth_time_not_found",Et="max_age_transpired",bt="multiple_matching_tokens",Rt="multiple_matching_accounts",Pt="multiple_matching_appMetadata",Mt="request_cannot_be_made",Nt="cannot_remove_empty_scope",Ot="cannot_append_scopeset",qt="empty_input_scopeset",Lt="device_code_polling_cancelled",Ut="device_code_expired",Ht="device_code_unknown_error",Bt="no_account_in_silent_request",Dt="invalid_cache_record",xt="invalid_cache_environment",Kt="no_account_found",Ft="no_crypto_object",zt="unexpected_credential_type",Gt="invalid_assertion",$t="invalid_client_credential",Qt="token_refresh_required",jt="user_timeout_reached",Yt="token_claims_cnf_required_for_signedjwt",Wt="authorization_code_missing_from_server_response",Vt="binding_key_not_removed",Jt="end_session_endpoint_not_supported",Xt="key_id_missing",Zt="no_network_connectivity",er="user_canceled",tr="missing_tenant_id_error",rr="method_not_implemented",or="nested_app_auth_bridge_disabled";var nr=Object.freeze({__proto__:null,authTimeNotFound:St,authorizationCodeMissingFromServerResponse:Wt,bindingKeyNotRemoved:Vt,cannotAppendScopeSet:Ot,cannotRemoveEmptyScope:Nt,clientInfoDecodingError:pt,clientInfoEmptyError:mt,deviceCodeExpired:Ut,deviceCodePollingCancelled:Lt,deviceCodeUnknownError:Ht,emptyInputScopeSet:qt,endSessionEndpointNotSupported:Jt,endpointResolutionError:Ct,hashNotDeserialized:Tt,invalidAssertion:Gt,invalidCacheEnvironment:xt,invalidCacheRecord:Dt,invalidClientCredential:$t,invalidState:It,keyIdMissing:Xt,maxAgeTranspired:Et,methodNotImplemented:rr,missingTenantIdError:tr,multipleMatchingAccounts:Rt,multipleMatchingAppMetadata:Pt,multipleMatchingTokens:bt,nestedAppAuthBridgeDisabled:or,networkError:vt,noAccountFound:Kt,noAccountInSilentRequest:Bt,noCryptoObject:Ft,noNetworkConnectivity:Zt,nonceMismatch:kt,nullOrEmptyToken:yt,openIdConfigError:wt,requestCannotBeMade:Mt,stateMismatch:_t,stateNotFound:At,tokenClaimsCnfRequiredForSignedJwt:Yt,tokenParsingError:ft,tokenRefreshRequired:Qt,unexpectedCredentialType:zt,userCanceled:er,userTimeoutReached:jt});
|
|
7
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const ir={[pt]:"The client info could not be parsed/decoded correctly",[mt]:"The client info was empty",[ft]:"Token cannot be parsed",[yt]:"The token is null or empty",[Ct]:"Endpoints cannot be resolved",[vt]:"Network request failed",[wt]:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.",[Tt]:"The hash parameters could not be deserialized",[It]:"State was not the expected format",[_t]:"State mismatch error",[At]:"State not found",[kt]:"Nonce mismatch error",[St]:"Max Age was requested and the ID token is missing the auth_time variable. auth_time is an optional claim and is not enabled by default - it must be enabled. See https://aka.ms/msaljs/optional-claims for more information.",[Et]:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.",[bt]:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account.",[Rt]:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account",[Pt]:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata",[Mt]:"Token request cannot be made without authorization code or refresh token.",[Nt]:"Cannot remove null or empty scope from ScopeSet",[Ot]:"Cannot append ScopeSet",[qt]:"Empty input ScopeSet cannot be processed",[Lt]:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.",[Ut]:"Device code is expired.",[Ht]:"Device code stopped polling for unknown reasons.",[Bt]:"Please pass an account object, silent flow is not supported without account information",[Dt]:"Cache record object was null or undefined.",[xt]:"Invalid environment when attempting to create cache entry",[Kt]:"No account found in cache for given key.",[Ft]:"No crypto object detected.",[zt]:"Unexpected credential type.",[Gt]:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515",[$t]:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential",[Qt]:"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.",[jt]:"User defined timeout for device code polling reached",[Yt]:"Cannot generate a POP jwt if the token_claims are not populated",[Wt]:"Server response does not contain an authorization code to proceed",[Vt]:"Could not remove the credential's binding key from storage.",[Jt]:"The provided authority does not support logout",[Xt]:"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.",[Zt]:"No network connectivity. Check your internet connection.",[er]:"User cancelled the flow.",[tr]:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.",[rr]:"This method has not been implemented",[or]:"The nested app auth bridge is disabled"},sr={clientInfoDecodingError:{code:pt,desc:ir[pt]},clientInfoEmptyError:{code:mt,desc:ir[mt]},tokenParsingError:{code:ft,desc:ir[ft]},nullOrEmptyToken:{code:yt,desc:ir[yt]},endpointResolutionError:{code:Ct,desc:ir[Ct]},networkError:{code:vt,desc:ir[vt]},unableToGetOpenidConfigError:{code:wt,desc:ir[wt]},hashNotDeserialized:{code:Tt,desc:ir[Tt]},invalidStateError:{code:It,desc:ir[It]},stateMismatchError:{code:_t,desc:ir[_t]},stateNotFoundError:{code:At,desc:ir[At]},nonceMismatchError:{code:kt,desc:ir[kt]},authTimeNotFoundError:{code:St,desc:ir[St]},maxAgeTranspired:{code:Et,desc:ir[Et]},multipleMatchingTokens:{code:bt,desc:ir[bt]},multipleMatchingAccounts:{code:Rt,desc:ir[Rt]},multipleMatchingAppMetadata:{code:Pt,desc:ir[Pt]},tokenRequestCannotBeMade:{code:Mt,desc:ir[Mt]},removeEmptyScopeError:{code:Nt,desc:ir[Nt]},appendScopeSetError:{code:Ot,desc:ir[Ot]},emptyInputScopeSetError:{code:qt,desc:ir[qt]},DeviceCodePollingCancelled:{code:Lt,desc:ir[Lt]},DeviceCodeExpired:{code:Ut,desc:ir[Ut]},DeviceCodeUnknownError:{code:Ht,desc:ir[Ht]},NoAccountInSilentRequest:{code:Bt,desc:ir[Bt]},invalidCacheRecord:{code:Dt,desc:ir[Dt]},invalidCacheEnvironment:{code:xt,desc:ir[xt]},noAccountFound:{code:Kt,desc:ir[Kt]},noCryptoObj:{code:Ft,desc:ir[Ft]},unexpectedCredentialType:{code:zt,desc:ir[zt]},invalidAssertion:{code:Gt,desc:ir[Gt]},invalidClientCredential:{code:$t,desc:ir[$t]},tokenRefreshRequired:{code:Qt,desc:ir[Qt]},userTimeoutReached:{code:jt,desc:ir[jt]},tokenClaimsRequired:{code:Yt,desc:ir[Yt]},noAuthorizationCodeFromServer:{code:Wt,desc:ir[Wt]},bindingKeyNotRemovedError:{code:Vt,desc:ir[Vt]},logoutNotSupported:{code:Jt,desc:ir[Jt]},keyIdMissing:{code:Xt,desc:ir[Xt]},noNetworkConnectivity:{code:Zt,desc:ir[Zt]},userCanceledError:{code:er,desc:ir[er]},missingTenantIdError:{code:tr,desc:ir[tr]},nestedAppAuthBridgeDisabled:{code:or,desc:ir[or]}};class ar extends ut{constructor(e,t){super(e,t?`${ir[e]}: ${t}`:ir[e]),this.name="ClientAuthError",Object.setPrototypeOf(this,ar.prototype)}}function cr(e,t){return new ar(e,t)}
|
|
8
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const lr={createNewGuid:()=>{throw cr(rr)},base64Decode:()=>{throw cr(rr)},base64Encode:()=>{throw cr(rr)},async getPublicKeyThumbprint(){throw cr(rr)},async removeTokenBindingKey(){throw cr(rr)},async clearKeystore(){throw cr(rr)},async signJwt(){throw cr(rr)},async hashString(){throw cr(rr)}};
|
|
9
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */var hr;e.LogLevel=void 0,(hr=e.LogLevel||(e.LogLevel={}))[hr.Error=0]="Error",hr[hr.Warning=1]="Warning",hr[hr.Info=2]="Info",hr[hr.Verbose=3]="Verbose",hr[hr.Trace=4]="Trace";class dr{constructor(r,o,n){this.level=e.LogLevel.Info;const i=r||dr.createDefaultLoggerOptions();this.localCallback=i.loggerCallback||(()=>{}),this.piiLoggingEnabled=i.piiLoggingEnabled||!1,this.level="number"==typeof i.logLevel?i.logLevel:e.LogLevel.Info,this.correlationId=i.correlationId||t.EMPTY_STRING,this.packageName=o||t.EMPTY_STRING,this.packageVersion=n||t.EMPTY_STRING}static createDefaultLoggerOptions(){return{loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info}}clone(e,t,r){return new dr({loggerCallback:this.localCallback,piiLoggingEnabled:this.piiLoggingEnabled,logLevel:this.level,correlationId:r||this.correlationId},e,t)}logMessage(t,r){if(r.logLevel>this.level||!this.piiLoggingEnabled&&r.containsPii)return;const o=`${`[${(new Date).toUTCString()}] : [${r.correlationId||this.correlationId||""}]`} : ${this.packageName}@${this.packageVersion} : ${e.LogLevel[r.logLevel]} - ${t}`;this.executeCallback(r.logLevel,o,r.containsPii||!1)}executeCallback(e,t,r){this.localCallback&&this.localCallback(e,t,r)}error(r,o){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!1,correlationId:o||t.EMPTY_STRING})}errorPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!0,correlationId:o||t.EMPTY_STRING})}warning(r,o){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!1,correlationId:o||t.EMPTY_STRING})}warningPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!0,correlationId:o||t.EMPTY_STRING})}info(r,o){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!1,correlationId:o||t.EMPTY_STRING})}infoPii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!0,correlationId:o||t.EMPTY_STRING})}verbose(r,o){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!1,correlationId:o||t.EMPTY_STRING})}verbosePii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!0,correlationId:o||t.EMPTY_STRING})}trace(r,o){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!1,correlationId:o||t.EMPTY_STRING})}tracePii(r,o){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!0,correlationId:o||t.EMPTY_STRING})}isPiiLoggingEnabled(){return this.piiLoggingEnabled||!1}}
|
|
10
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const ur="@azure/msal-common",gr="14.2.0",pr={None:"none",AzurePublic:"https://login.microsoftonline.com",AzurePpe:"https://login.windows-ppe.net",AzureChina:"https://login.chinacloudapi.cn",AzureGermany:"https://login.microsoftonline.de",AzureUsGovernment:"https://login.microsoftonline.us"},mr="redirect_uri_empty",fr="claims_request_parsing_error",yr="authority_uri_insecure",Cr="url_parse_error",vr="empty_url_error",wr="empty_input_scopes_error",Tr="invalid_prompt_value",Ir="invalid_claims",_r="token_request_empty",Ar="logout_request_empty",kr="invalid_code_challenge_method",Sr="pkce_params_missing",Er="invalid_cloud_discovery_metadata",br="invalid_authority_metadata",Rr="untrusted_authority",Pr="missing_ssh_jwk",Mr="missing_ssh_kid",Nr="missing_nonce_authentication_header",Or="invalid_authentication_header",qr="cannot_set_OIDCOptions",Lr="cannot_allow_native_broker",Ur="authority_mismatch";var Hr=Object.freeze({__proto__:null,authorityMismatch:Ur,authorityUriInsecure:yr,cannotAllowNativeBroker:Lr,cannotSetOIDCOptions:qr,claimsRequestParsingError:fr,emptyInputScopesError:wr,invalidAuthenticationHeader:Or,invalidAuthorityMetadata:br,invalidClaims:Ir,invalidCloudDiscoveryMetadata:Er,invalidCodeChallengeMethod:kr,invalidPromptValue:Tr,logoutRequestEmpty:Ar,missingNonceAuthenticationHeader:Nr,missingSshJwk:Pr,missingSshKid:Mr,pkceParamsMissing:Sr,redirectUriEmpty:mr,tokenRequestEmpty:_r,untrustedAuthority:Rr,urlEmptyError:vr,urlParseError:Cr});
|
|
11
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const Br={[mr]:"A redirect URI is required for all calls, and none has been set.",[fr]:"Could not parse the given claims request object.",[yr]:"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options",[Cr]:"URL could not be parsed into appropriate segments.",[vr]:"URL was empty or null.",[wr]:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",[Tr]:"Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest",[Ir]:"Given claims parameter must be a stringified JSON object.",[_r]:"Token request was empty and not found in cache.",[Ar]:"The logout request was null or undefined.",[kr]:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',[Sr]:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",[Er]:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",[br]:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",[Rr]:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",[Pr]:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",[Mr]:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",[Nr]:"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.",[Or]:"Invalid authentication header provided",[qr]:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",[Lr]:"Cannot set allowNativeBroker parameter to true when not in AAD protocol mode.",[Ur]:"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority."},Dr={redirectUriNotSet:{code:mr,desc:Br[mr]},claimsRequestParsingError:{code:fr,desc:Br[fr]},authorityUriInsecure:{code:yr,desc:Br[yr]},urlParseError:{code:Cr,desc:Br[Cr]},urlEmptyError:{code:vr,desc:Br[vr]},emptyScopesError:{code:wr,desc:Br[wr]},invalidPrompt:{code:Tr,desc:Br[Tr]},invalidClaimsRequest:{code:Ir,desc:Br[Ir]},tokenRequestEmptyError:{code:_r,desc:Br[_r]},logoutRequestEmptyError:{code:Ar,desc:Br[Ar]},invalidCodeChallengeMethod:{code:kr,desc:Br[kr]},invalidCodeChallengeParams:{code:Sr,desc:Br[Sr]},invalidCloudDiscoveryMetadata:{code:Er,desc:Br[Er]},invalidAuthorityMetadata:{code:br,desc:Br[br]},untrustedAuthority:{code:Rr,desc:Br[Rr]},missingSshJwk:{code:Pr,desc:Br[Pr]},missingSshKid:{code:Mr,desc:Br[Mr]},missingNonceAuthenticationHeader:{code:Nr,desc:Br[Nr]},invalidAuthenticationHeader:{code:Or,desc:Br[Or]},cannotSetOIDCOptions:{code:qr,desc:Br[qr]},cannotAllowNativeBroker:{code:Lr,desc:Br[Lr]},authorityMismatch:{code:Ur,desc:Br[Ur]}};class xr extends ut{constructor(e){super(e,Br[e]),this.name="ClientConfigurationError",Object.setPrototypeOf(this,xr.prototype)}}function Kr(e){return new xr(e)}
|
|
12
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Fr{static isEmptyObj(e){if(e)try{const t=JSON.parse(e);return 0===Object.keys(t).length}catch(e){}return!0}static startsWith(e,t){return 0===e.indexOf(t)}static endsWith(e,t){return e.length>=t.length&&e.lastIndexOf(t)===e.length-t.length}static queryStringToObject(e){const t={},r=e.split("&"),o=e=>decodeURIComponent(e.replace(/\+/g," "));return r.forEach((e=>{if(e.trim()){const[r,n]=e.split(/=(.+)/g,2);r&&n&&(t[o(r)]=o(n))}})),t}static trimArrayEntries(e){return e.map((e=>e.trim()))}static removeEmptyStringsFromArray(e){return e.filter((e=>!!e))}static jsonParseHelper(e){try{return JSON.parse(e)}catch(e){return null}}static matchPattern(e,t){return new RegExp(e.replace(/\\/g,"\\\\").replace(/\*/g,"[^ ]*").replace(/\?/g,"\\?")).test(t)}}
|
|
13
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class zr{constructor(e){const t=e?Fr.trimArrayEntries([...e]):[],r=t?Fr.removeEmptyStringsFromArray(t):[];this.validateInputScopes(r),this.scopes=new Set,r.forEach((e=>this.scopes.add(e)))}static fromString(e){const r=(e||t.EMPTY_STRING).split(" ");return new zr(r)}static createSearchScopes(e){const r=new zr(e);return r.containsOnlyOIDCScopes()?r.removeScope(t.OFFLINE_ACCESS_SCOPE):r.removeOIDCScopes(),r}validateInputScopes(e){if(!e||e.length<1)throw Kr(wr)}containsScope(e){const t=this.printScopesLowerCase().split(" "),r=new zr(t);return!!e&&r.scopes.has(e.toLowerCase())}containsScopeSet(e){return!(!e||e.scopes.size<=0)&&(this.scopes.size>=e.scopes.size&&e.asArray().every((e=>this.containsScope(e))))}containsOnlyOIDCScopes(){let e=0;return a.forEach((t=>{this.containsScope(t)&&(e+=1)})),this.scopes.size===e}appendScope(e){e&&this.scopes.add(e.trim())}appendScopes(e){try{e.forEach((e=>this.appendScope(e)))}catch(e){throw cr(Ot)}}removeScope(e){if(!e)throw cr(Nt);this.scopes.delete(e.trim())}removeOIDCScopes(){a.forEach((e=>{this.scopes.delete(e)}))}unionScopeSets(e){if(!e)throw cr(qt);const t=new Set;return e.scopes.forEach((e=>t.add(e.toLowerCase()))),this.scopes.forEach((e=>t.add(e.toLowerCase()))),t}intersectingScopeSets(e){if(!e)throw cr(qt);e.containsOnlyOIDCScopes()||e.removeOIDCScopes();const t=this.unionScopeSets(e),r=e.getScopeCount(),o=this.getScopeCount();return t.size<o+r}getScopeCount(){return this.scopes.size}asArray(){const e=[];return this.scopes.forEach((t=>e.push(t))),e}printScopes(){if(this.scopes){return this.asArray().join(" ")}return t.EMPTY_STRING}printScopesLowerCase(){return this.printScopes().toLowerCase()}}
|
|
14
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */function Gr(e,t){if(!e)throw cr(mt);try{const r=t.base64Decode(e);return JSON.parse(r)}catch(e){throw cr(pt)}}function $r(e){if(!e)throw cr(pt);const r=e.split(Ae,2);return{uid:r[0],utid:r.length<2?t.EMPTY_STRING:r[1]}}
|
|
15
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const Qr=0,jr=1,Yr=2,Wr=3,Vr={AAD:"AAD",OIDC:"OIDC"};
|
|
16
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
17
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
18
|
+
class Jr{generateAccountId(){return[this.homeAccountId,this.environment].join(_e).toLowerCase()}generateAccountKey(){return Jr.generateAccountCacheKey({homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId})}getAccountInfo(){return{homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId,name:this.name,idTokenClaims:this.idTokenClaims,nativeAccountId:this.nativeAccountId,authorityType:this.authorityType}}static generateAccountCacheKey(e){return[e.homeAccountId,e.environment||t.EMPTY_STRING,e.tenantId||t.EMPTY_STRING].join(_e).toLowerCase()}static createAccount(e,r){const o=new Jr;r.authorityType===jr?o.authorityType=Te:r.protocolMode===Vr.AAD?o.authorityType=we:o.authorityType=Ie,o.clientInfo=e.clientInfo,o.homeAccountId=e.homeAccountId,o.nativeAccountId=e.nativeAccountId;const n=e.environment||r&&r.getPreferredCache();if(!n)throw cr(xt);o.environment=n,o.realm=e.idTokenClaims.tid||t.EMPTY_STRING,o.localAccountId=e.idTokenClaims.oid||e.idTokenClaims.sub||t.EMPTY_STRING;const i=e.idTokenClaims.preferred_username||e.idTokenClaims.upn,s=e.idTokenClaims.emails?e.idTokenClaims.emails[0]:null;return o.username=i||s||t.EMPTY_STRING,o.name=e.idTokenClaims.name,o.cloudGraphHostName=e.cloudGraphHostName,o.msGraphHost=e.msGraphHost,o}static createFromAccountInfo(e,t,r){const o=new Jr;return o.authorityType=e.authorityType||Ie,o.homeAccountId=e.homeAccountId,o.localAccountId=e.localAccountId,o.nativeAccountId=e.nativeAccountId,o.realm=e.tenantId,o.environment=e.environment,o.username=e.username,o.name=e.name,o.cloudGraphHostName=t,o.msGraphHost=r,o}static generateHomeAccountId(e,r,o,n,i){const s=i?.sub?i.sub:t.EMPTY_STRING;if(r===jr||r===Yr)return s;if(e)try{const t=Gr(e,n);if(t.uid&&t.utid)return`${t.uid}${Ae}${t.utid}`}catch(e){}return o.verbose("No client info in response"),s}static isAccountEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("localAccountId")&&e.hasOwnProperty("username")&&e.hasOwnProperty("authorityType"))}static accountInfoIsEqual(e,t,r){if(!e||!t)return!1;let o=!0;if(r){const r=e.idTokenClaims||{},n=t.idTokenClaims||{};o=r.iat===n.iat&&r.nonce===n.nonce}return e.homeAccountId===t.homeAccountId&&e.localAccountId===t.localAccountId&&e.username===t.username&&e.tenantId===t.tenantId&&e.environment===t.environment&&e.nativeAccountId===t.nativeAccountId&&o}}
|
|
19
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */function Xr(e,t){const r=function(e){if(!e)throw cr(yt);const t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(e);if(!t||t.length<4)throw cr(ft);return t[2]}(e);try{const e=t(r);return JSON.parse(e)}catch(e){throw cr(ft)}}function Zr(e,t){if(0===t||Date.now()-3e5>e+t)throw cr(Et)}
|
|
20
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class eo{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,!this._urlString)throw Kr(vr);this.getHash()||(this._urlString=eo.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return Fr.endsWith(t,"?")?t=t.slice(0,-1):Fr.endsWith(t,"?/")&&(t=t.slice(0,-2)),Fr.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch(e){throw Kr(Cr)}if(!e.HostNameAndPort||!e.PathSegments)throw Kr(Cr);if(!e.Protocol||"https:"!==e.Protocol.toLowerCase())throw Kr(yr)}static appendQueryString(e,t){return t?e.indexOf("?")<0?`${e}?${t}`:`${e}&${t}`:e}static removeHashFromUrl(e){return eo.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const t=this.getUrlComponents(),r=t.PathSegments;return!e||0===r.length||r[0]!==I&&r[0]!==_||(r[0]=e),eo.constructAuthorityUriFromObject(t)}getHash(){return eo.parseHash(this.urlString)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw Kr(Cr);const r={Protocol:t[1],HostNameAndPort:t[4],AbsolutePath:t[5],QueryString:t[7]};let o=r.AbsolutePath.split("/");return o=o.filter((e=>e&&e.length>0)),r.PathSegments=o,r.QueryString&&r.QueryString.endsWith("/")&&(r.QueryString=r.QueryString.substring(0,r.QueryString.length-1)),r}static getDomainFromUrl(e){const t=RegExp("^([^:/?#]+://)?([^/?#]*)"),r=e.match(t);if(!r)throw Kr(Cr);return r[2]}static getAbsoluteUrl(e,r){if(e[0]===t.FORWARD_SLASH){const t=new eo(r).getUrlComponents();return t.Protocol+"//"+t.HostNameAndPort+e}return e}static parseHash(e){const r=e.indexOf("#"),o=e.indexOf("#/");return o>-1?e.substring(o+2):r>-1?e.substring(r+1):t.EMPTY_STRING}static parseQueryString(e){const r=e.indexOf("?"),o=e.indexOf("/?");return o>-1?e.substring(o+2):r>-1?e.substring(r+1):t.EMPTY_STRING}static parseQueryServerResponse(e){const r=e.indexOf("?code"),o=e.indexOf("/?code"),n=e.indexOf("#");return o>-1&&n>-1?e.substring(o+2,n):o>-1?e.substring(o+2):r>-1&&n>-1?e.substring(r+1,n):r>-1?e.substring(r+1):t.EMPTY_STRING}static constructAuthorityUriFromObject(e){return new eo(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static getDeserializedHash(e){if(!e)return{};const t=eo.parseHash(e),r=Fr.queryStringToObject(t||e);if(!r)throw cr(Tt);return r}static getDeserializedQueryString(e){if(!e)return{};const t=eo.parseQueryString(e),r=Fr.queryStringToObject(t||e);if(!r)throw cr(Tt);return r}static getDeserializedCodeResponse(e,t){const r=new eo(t);let o;return o=e===fe.QUERY?eo.getDeserializedQueryString(t):eo.getDeserializedHash(r.getHash()),o}static hashContainsKnownProperties(e){if(!e||e.indexOf("=")<0)return!1;const t=eo.getDeserializedHash(e);return!!(t.code||t.error_description||t.error||t.state)}}
|
|
21
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const to={"https://login.microsoftonline.com/common/":{token_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/common/":{token_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/common/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/common/":{token_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/common/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/common/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/common/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/consumers/":{token_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/consumers/":{token_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/consumers/":{token_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/consumers/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/consumers/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"},"https://login.microsoftonline.com/organizations/":{token_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.com/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.com/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.com",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pas.windows.net"},"https://login.chinacloudapi.cn/organizations/":{token_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo",authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.chinacloudapi.cn/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"partner.microsoftonline.cn",cloud_graph_host_name:"graph.chinacloudapi.cn",msgraph_host:"microsoftgraph.chinacloudapi.cn",rbac_url:"https://pas.chinacloudapi.cn"},"https://login.microsoftonline.us/organizations/":{token_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/token",token_endpoint_auth_methods_supported:["client_secret_post","private_key_jwt","client_secret_basic"],jwks_uri:"https://login.microsoftonline.us/organizations/discovery/v2.0/keys",response_modes_supported:["query","fragment","form_post"],subject_types_supported:["pairwise"],id_token_signing_alg_values_supported:["RS256"],response_types_supported:["code","id_token","code id_token","id_token token"],scopes_supported:["openid","profile","email","offline_access"],issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",request_uri_parameter_supported:!1,userinfo_endpoint:"https://graph.microsoft.com/oidc/userinfo",authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize",device_authorization_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode",http_logout_supported:!0,frontchannel_logout_supported:!0,end_session_endpoint:"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout",claims_supported:["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],kerberos_endpoint:"https://login.microsoftonline.us/organizations/kerberos",tenant_region_scope:null,cloud_instance_name:"microsoftonline.us",cloud_graph_host_name:"graph.windows.net",msgraph_host:"graph.microsoft.com",rbac_url:"https://pasff.usgovcloudapi.net"}},ro={"https://login.microsoftonline.com/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/common/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/common/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/consumers/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/consumers/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.com/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.chinacloudapi.cn/organizations/":{tenant_discovery_endpoint:"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]},"https://login.microsoftonline.us/organizations/":{tenant_discovery_endpoint:"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration","api-version":"1.1",metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]}},oo=new Set;for(const e in ro)for(const t of ro[e].metadata)for(const e of t.aliases)oo.add(e);function no(e,t){for(let r=0;r<e.length;r++){const o=e[r];if(o.aliases.includes(t))return o}return null}function io(e){const t=new eo(e).getUrlComponents();if(e in ro){return no(ro[e].metadata,t.HostNameAndPort)}return null}
|
|
22
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class so{constructor(e,t,r,o){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(ur,gr),this.staticAuthorityOptions=o}getAllAccounts(e){const t=[];return this.getAccountsFilteredBy(e||{}).forEach((r=>{const o=this.getAccountInfoFromEntity(r,e);o&&t.push(o)})),t}getAccountInfoFilteredBy(e){const t=this.getAllAccounts(e);return t.length>0?t[0]:null}getBaseAccountInfo(e){const t=this.getAccountsFilteredBy(e);return t.length>0?t[0].getAccountInfo():null}getAccountInfoFromEntity(e,t){const r=e.getAccountInfo(),o=this.getIdToken(r);if(o){const e=Xr(o.secret,this.cryptoImpl.base64Decode);if(this.idTokenClaimsMatchAccountFilter(e,t))return r.idToken=o.secret,r.idTokenClaims=e,r}return null}idTokenClaimsMatchAccountFilter(e,t){if(t){if(t.loginHint&&!this.matchLoginHint(e,t.loginHint))return!1;if(t.sid&&!this.matchSid(e,t.sid))return!1}return!0}async saveCacheRecord(e,t){if(!e)throw cr(Dt);e.account&&this.setAccount(e.account),e.idToken&&!1!==t?.idToken&&this.setIdTokenCredential(e.idToken),e.accessToken&&!1!==t?.accessToken&&await this.saveAccessToken(e.accessToken),e.refreshToken&&!1!==t?.refreshToken&&this.setRefreshTokenCredential(e.refreshToken),e.appMetadata&&this.setAppMetadata(e.appMetadata)}async saveAccessToken(e){const t={clientId:e.clientId,credentialType:e.credentialType,environment:e.environment,homeAccountId:e.homeAccountId,realm:e.realm,tokenType:e.tokenType,requestedClaimsHash:e.requestedClaimsHash},r=this.getTokenKeys(),o=zr.fromString(e.target),n=[];r.accessToken.forEach((e=>{if(!this.accessTokenKeyMatchesFilter(e,t,!1))return;const r=this.getAccessTokenCredential(e);if(r&&this.credentialMatchesFilter(r,t)){zr.fromString(r.target).intersectingScopeSets(o)&&n.push(this.removeAccessToken(e))}})),await Promise.all(n),this.setAccessTokenCredential(e)}getAccountsFilteredBy(e){const t=this.getAccountKeys(),r=[];return t.forEach((t=>{if(!this.isAccountKey(t,e.homeAccountId,e.tenantId))return;const o=this.getAccount(t);o&&(e.homeAccountId&&!this.matchHomeAccountId(o,e.homeAccountId)||e.localAccountId&&!this.matchLocalAccountId(o,e.localAccountId)||e.username&&!this.matchUsername(o,e.username)||e.environment&&!this.matchEnvironment(o,e.environment)||e.realm&&!this.matchRealm(o,e.realm)||e.tenantId&&!this.matchRealm(o,e.tenantId)||e.nativeAccountId&&!this.matchNativeAccountId(o,e.nativeAccountId)||e.authorityType&&!this.matchAuthorityType(o,e.authorityType)||e.name&&!this.matchName(o,e.name)||r.push(o))})),r}isAccountKey(e,t,r){return!(e.split(_e).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(_e).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(ke.ID_TOKEN.toLowerCase())&&-1===t.indexOf(ke.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(ke.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(ke.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(ke.REFRESH_TOKEN.toLowerCase())>-1){const e=`${ke.REFRESH_TOKEN}${_e}${this.clientId}${_e}`,r=`${ke.REFRESH_TOKEN}${_e}${Pe}${_e}`;if(-1===t.indexOf(e.toLowerCase())&&-1===t.indexOf(r.toLowerCase()))return!1}else if(-1===t.indexOf(this.clientId.toLowerCase()))return!1;return!0}credentialMatchesFilter(e,t){if(t.clientId&&!this.matchClientId(e,t.clientId))return!1;if(t.userAssertionHash&&!this.matchUserAssertionHash(e,t.userAssertionHash))return!1;if("string"==typeof t.homeAccountId&&!this.matchHomeAccountId(e,t.homeAccountId))return!1;if(t.environment&&!this.matchEnvironment(e,t.environment))return!1;if(t.realm&&!this.matchRealm(e,t.realm))return!1;if(t.credentialType&&!this.matchCredentialType(e,t.credentialType))return!1;if(t.familyId&&!this.matchFamilyId(e,t.familyId))return!1;if(t.target&&!this.matchTarget(e,t.target))return!1;if((t.requestedClaimsHash||e.requestedClaimsHash)&&e.requestedClaimsHash!==t.requestedClaimsHash)return!1;if(e.credentialType===ke.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===Be.SSH&&t.keyId&&!this.matchKeyId(e,t.keyId))return!1}return!0}getAppMetadataFilteredBy(e){return this.getAppMetadataFilteredByInternal(e.environment,e.clientId)}getAppMetadataFilteredByInternal(e,t){const r=this.getKeys(),o={};return r.forEach((r=>{if(!this.isAppMetadata(r))return;const n=this.getAppMetadata(r);n&&(e&&!this.matchEnvironment(n,e)||t&&!this.matchClientId(n,t)||(o[r]=n))})),o}getAuthorityMetadataByAlias(e){const t=this.getAuthorityMetadataKeys();let r=null;return t.forEach((t=>{if(!this.isAuthorityMetadata(t)||-1===t.indexOf(this.clientId))return;const o=this.getAuthorityMetadata(t);o&&-1!==o.aliases.indexOf(e)&&(r=o)})),r}async removeAllAccounts(){const e=this.getAccountKeys(),t=[];e.forEach((e=>{t.push(this.removeAccount(e))})),await Promise.all(t)}async removeAccount(e){const t=this.getAccount(e);t&&(await this.removeAccountContext(t),this.removeItem(e))}async removeAccountContext(e){const t=this.getTokenKeys(),r=e.generateAccountId(),o=[];t.idToken.forEach((e=>{0===e.indexOf(r)&&this.removeIdToken(e)})),t.accessToken.forEach((e=>{0===e.indexOf(r)&&o.push(this.removeAccessToken(e))})),t.refreshToken.forEach((e=>{0===e.indexOf(r)&&this.removeRefreshToken(e)})),await Promise.all(o)}async removeAccessToken(e){const t=this.getAccessTokenCredential(e);if(t){if(t.credentialType.toLowerCase()===ke.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===Be.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw cr(Vt)}}return this.removeItem(e)}}removeAppMetadata(){return this.getKeys().forEach((e=>{this.isAppMetadata(e)&&this.removeItem(e)})),!0}readCacheRecord(e,t,r){const o=this.getTokenKeys(),n=this.readAccountFromCache(e),i=this.getIdToken(e,o),s=this.getAccessToken(e,t,o),a=this.getRefreshToken(e,!1,o),c=this.readAppMetadataFromCache(r);return n&&i&&(n.idTokenClaims=Xr(i.secret,this.cryptoImpl.base64Decode)),{account:n,idToken:i,accessToken:s,refreshToken:a,appMetadata:c}}readAccountFromCache(e){const t=Jr.generateAccountCacheKey(e);return this.getAccount(t)}getIdToken(e,t){this.commonLogger.trace("CacheManager - getIdToken called");const r={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:ke.ID_TOKEN,clientId:this.clientId,realm:e.tenantId},o=this.getIdTokensByFilter(r,t),n=o.length;return n<1?(this.commonLogger.info("CacheManager:getIdToken - No token found"),null):n>1?(this.commonLogger.info("CacheManager:getIdToken - Multiple id tokens found, clearing them"),o.forEach((e=>{this.removeIdToken(e.generateCredentialKey())})),null):(this.commonLogger.info("CacheManager:getIdToken - Returning id token"),o[0])}getIdTokensByFilter(e,t){const r=t&&t.idToken||this.getTokenKeys().idToken,o=[];return r.forEach((t=>{if(!this.idTokenKeyMatchesFilter(t,{clientId:this.clientId,...e}))return;const r=this.getIdTokenCredential(t);r&&this.credentialMatchesFilter(r,e)&&o.push(r)})),o}idTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.clientId||-1!==r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase()))}removeIdToken(e){this.removeItem(e)}removeRefreshToken(e){this.removeItem(e)}getAccessToken(e,t,r){this.commonLogger.trace("CacheManager - getAccessToken called");const o=zr.createSearchScopes(t.scopes),n=t.authenticationScheme||Be.BEARER,i=n&&n.toLowerCase()!==Be.BEARER.toLowerCase()?ke.ACCESS_TOKEN_WITH_AUTH_SCHEME:ke.ACCESS_TOKEN,s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:i,clientId:this.clientId,realm:e.tenantId,target:o,tokenType:n,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},a=r&&r.accessToken||this.getTokenKeys().accessToken,c=[];a.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,s,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,s)&&c.push(t)}}));const l=c.length;return l<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):l>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),c.forEach((e=>{this.removeAccessToken(e.generateCredentialKey())})),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),c[0])}accessTokenKeyMatchesFilter(e,t,r){const o=e.toLowerCase();if(t.clientId&&-1===o.indexOf(t.clientId.toLowerCase()))return!1;if(t.homeAccountId&&-1===o.indexOf(t.homeAccountId.toLowerCase()))return!1;if(t.realm&&-1===o.indexOf(t.realm.toLowerCase()))return!1;if(t.requestedClaimsHash&&-1===o.indexOf(t.requestedClaimsHash.toLowerCase()))return!1;if(t.target){const e=t.target.asArray();for(let t=0;t<e.length;t++){if(r&&!o.includes(e[t].toLowerCase()))return!1;if(!r&&o.includes(e[t].toLowerCase()))return!0}}return!0}getAccessTokensByFilter(e){const t=this.getTokenKeys(),r=[];return t.accessToken.forEach((t=>{if(!this.accessTokenKeyMatchesFilter(t,e,!0))return;const o=this.getAccessTokenCredential(t);o&&this.credentialMatchesFilter(o,e)&&r.push(o)})),r}getRefreshToken(e,t,r){this.commonLogger.trace("CacheManager - getRefreshToken called");const o=t?Pe:void 0,n={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:ke.REFRESH_TOKEN,clientId:this.clientId,familyId:o},i=r&&r.refreshToken||this.getTokenKeys().refreshToken,s=[];i.forEach((e=>{if(this.refreshTokenKeyMatchesFilter(e,n)){const t=this.getRefreshTokenCredential(e);t&&this.credentialMatchesFilter(t,n)&&s.push(t)}}));return s.length<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),s[0])}refreshTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return(!t.familyId||-1!==r.indexOf(t.familyId.toLowerCase()))&&(!(!t.familyId&&t.clientId&&-1===r.indexOf(t.clientId.toLowerCase()))&&(!t.homeAccountId||-1!==r.indexOf(t.homeAccountId.toLowerCase())))}readAppMetadataFromCache(e){const t={environment:e,clientId:this.clientId},r=this.getAppMetadataFilteredBy(t),o=Object.keys(r).map((e=>r[e])),n=o.length;if(n<1)return null;if(n>1)throw cr(Pt);return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==Pe)}matchHomeAccountId(e,t){return!("string"!=typeof e.homeAccountId||t!==e.homeAccountId)}matchLocalAccountId(e,t){return!("string"!=typeof e.localAccountId||t!==e.localAccountId)}matchUsername(e,t){return!("string"!=typeof e.username||t.toLowerCase()!==e.username.toLowerCase())}matchName(e,t){return!(t.toLowerCase()!==e.name?.toLowerCase())}matchUserAssertionHash(e,t){return!(!e.userAssertionHash||t!==e.userAssertionHash)}matchEnvironment(e,t){if(this.staticAuthorityOptions){const r=function(e,t){if(e&&t){const r=no(t,new eo(e).getUrlComponents().HostNameAndPort);if(r)return r.aliases}return null}(this.staticAuthorityOptions.canonicalAuthority,this.staticAuthorityOptions.cloudDiscoveryMetadata)||function(e){if(e){const t=io(e);if(t)return t.aliases}return null}(this.staticAuthorityOptions.canonicalAuthority)||this.staticAuthorityOptions.knownAuthorities;if(r&&r.includes(t)&&r.includes(e.environment))return!0}const r=this.getAuthorityMetadataByAlias(t);return!!(r&&r.aliases.indexOf(e.environment)>-1)}matchCredentialType(e,t){return e.credentialType&&t.toLowerCase()===e.credentialType.toLowerCase()}matchClientId(e,t){return!(!e.clientId||t!==e.clientId)}matchFamilyId(e,t){return!(!e.familyId||t!==e.familyId)}matchRealm(e,t){return!(!e.realm||t!==e.realm)}matchNativeAccountId(e,t){return!(!e.nativeAccountId||t!==e.nativeAccountId)}matchLoginHint(e,t){return e?.login_hint===t||(e.preferred_username===t||e?.upn===t)}matchSid(e,t){return!(!e?.sid||e.sid!==t)}matchAuthorityType(e,t){return!(!e.authorityType||t.toLowerCase()!==e.authorityType.toLowerCase())}matchTarget(e,t){if(e.credentialType!==ke.ACCESS_TOKEN&&e.credentialType!==ke.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return zr.fromString(e.target).containsScopeSet(t)}matchTokenType(e,t){return!(!e.tokenType||e.tokenType!==t)}matchKeyId(e,t){return!(!e.keyId||e.keyId!==t)}isAppMetadata(e){return-1!==e.indexOf(Re)}isAuthorityMetadata(e){return-1!==e.indexOf(Me)}generateAuthorityMetadataCacheKey(e){return`${Me}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class ao extends so{setAccount(){throw cr(rr)}getAccount(){throw cr(rr)}setIdTokenCredential(){throw cr(rr)}getIdTokenCredential(){throw cr(rr)}setAccessTokenCredential(){throw cr(rr)}getAccessTokenCredential(){throw cr(rr)}setRefreshTokenCredential(){throw cr(rr)}getRefreshTokenCredential(){throw cr(rr)}setAppMetadata(){throw cr(rr)}getAppMetadata(){throw cr(rr)}setServerTelemetry(){throw cr(rr)}getServerTelemetry(){throw cr(rr)}setAuthorityMetadata(){throw cr(rr)}getAuthorityMetadata(){throw cr(rr)}getAuthorityMetadataKeys(){throw cr(rr)}setThrottlingCache(){throw cr(rr)}getThrottlingCache(){throw cr(rr)}removeItem(){throw cr(rr)}containsKey(){throw cr(rr)}getKeys(){throw cr(rr)}getAccountKeys(){throw cr(rr)}getTokenKeys(){throw cr(rr)}async clear(){throw cr(rr)}updateCredentialCacheKey(){throw cr(rr)}}
|
|
23
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const co={tokenRenewalOffsetSeconds:300,preventCorsPreflight:!1},lo={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info,correlationId:t.EMPTY_STRING},ho={claimsBasedCachingEnabled:!1},uo={async sendGetRequestAsync(){throw cr(rr)},async sendPostRequestAsync(){throw cr(rr)}},go={sku:t.SKU,version:gr,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},po={clientSecret:t.EMPTY_STRING,clientAssertion:void 0},mo={azureCloudInstance:pr.None,tenant:`${t.DEFAULT_COMMON_TENANT}`},fo={application:{appName:"",appVersion:""}};function yo(e){return e.authOptions.authority.options.protocolMode===Vr.OIDC}
|
|
24
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Co extends ut{constructor(e,t,r){super(e,t,r),this.name="ServerError",Object.setPrototypeOf(this,Co.prototype)}}
|
|
25
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class vo{static generateThrottlingStorageKey(e){return`${Ke}.${JSON.stringify(e)}`}static preProcess(e,r){const o=vo.generateThrottlingStorageKey(r),n=e.getThrottlingCache(o);if(n){if(n.throttleTime<Date.now())return void e.removeItem(o);throw new Co(n.errorCodes?.join(" ")||t.EMPTY_STRING,n.errorMessage,n.subError)}}static postProcess(e,t,r){if(vo.checkResponseStatus(r)||vo.checkResponseForRetryAfter(r)){const o={throttleTime:vo.calculateThrottleTime(parseInt(r.headers[l])),error:r.body.error,errorCodes:r.body.error_codes,errorMessage:r.body.error_description,subError:r.body.suberror};e.setThrottlingCache(vo.generateThrottlingStorageKey(t),o)}}static checkResponseStatus(e){return 429===e.status||e.status>=500&&e.status<600}static checkResponseForRetryAfter(e){return!!e.headers&&(e.headers.hasOwnProperty(l)&&(e.status<200||e.status>=300))}static calculateThrottleTime(e){const t=e<=0?0:e,r=Date.now()/1e3;return Math.floor(1e3*Math.min(r+(t||De),r+xe))}static removeThrottle(e,t,r,o){const n={clientId:t,authority:r.authority,scopes:r.scopes,homeAccountIdentifier:o,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},i=this.generateThrottlingStorageKey(n);e.removeItem(i)}}
|
|
26
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class wo{constructor(e,t){this.networkClient=e,this.cacheManager=t}async sendPostRequest(e,t,r){let o;vo.preProcess(this.cacheManager,e);try{o=await this.networkClient.sendPostRequestAsync(t,r)}catch(e){throw e instanceof ut?e:cr(vt)}return vo.postProcess(this.cacheManager,e,o),o}}
|
|
27
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const To="home_account_id",Io="UPN";
|
|
28
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class _o{static validateRedirectUri(e){if(!e)throw Kr(mr)}static validatePrompt(e){const t=[];for(const e in de)t.push(de[e]);if(t.indexOf(e)<0)throw Kr(Tr)}static validateClaims(e){try{JSON.parse(e)}catch(e){throw Kr(Ir)}}static validateCodeChallengeParams(e,t){if(!e||!t)throw Kr(Sr);this.validateCodeChallengeMethod(t)}static validateCodeChallengeMethod(e){if([me.PLAIN,me.S256].indexOf(e)<0)throw Kr(kr)}static sanitizeEQParams(e,t){return e?(t.forEach(((t,r)=>{e[r]&&delete e[r]})),Object.fromEntries(Object.entries(e).filter((e=>""!==e[1])))):{}}}
|
|
29
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Ao{constructor(){this.parameters=new Map}addResponseTypeCode(){this.parameters.set(E,encodeURIComponent(t.CODE_RESPONSE_TYPE))}addResponseTypeForTokenAndIdToken(){this.parameters.set(E,encodeURIComponent(`${t.TOKEN_RESPONSE_TYPE} ${t.ID_TOKEN_RESPONSE_TYPE}`))}addResponseMode(e){this.parameters.set(b,encodeURIComponent(e||ye.QUERY))}addNativeBroker(){this.parameters.set(ae,encodeURIComponent("1"))}addScopes(e,t=!0,r=s){!t||r.includes("openid")||e.includes("openid")||r.push("openid");const o=t?[...e||[],...r]:e||[],n=new zr(o);this.parameters.set(M,encodeURIComponent(n.printScopes()))}addClientId(e){this.parameters.set(k,encodeURIComponent(e))}addRedirectUri(e){_o.validateRedirectUri(e),this.parameters.set(S,encodeURIComponent(e))}addPostLogoutRedirectUri(e){_o.validateRedirectUri(e),this.parameters.set(V,encodeURIComponent(e))}addIdTokenHint(e){this.parameters.set(J,encodeURIComponent(e))}addDomainHint(e){this.parameters.set(pe,encodeURIComponent(e))}addLoginHint(e){this.parameters.set(ge,encodeURIComponent(e))}addCcsUpn(e){this.parameters.set(h,encodeURIComponent(`UPN:${e}`))}addCcsOid(e){this.parameters.set(h,encodeURIComponent(`Oid:${e.uid}@${e.utid}`))}addSid(e){this.parameters.set(ue,encodeURIComponent(e))}addClaims(e,t){const r=this.addClientCapabilitiesToClaims(e,t);_o.validateClaims(r),this.parameters.set(P,encodeURIComponent(r))}addCorrelationId(e){this.parameters.set(x,encodeURIComponent(e))}addLibraryInfo(e){this.parameters.set(K,e.sku),this.parameters.set(F,e.version),e.os&&this.parameters.set(z,e.os),e.cpu&&this.parameters.set(G,e.cpu)}addApplicationTelemetry(e){e?.appName&&this.parameters.set(Y,e.appName),e?.appVersion&&this.parameters.set(W,e.appVersion)}addPrompt(e){_o.validatePrompt(e),this.parameters.set(`${L}`,encodeURIComponent(e))}addState(e){e&&this.parameters.set(O,encodeURIComponent(e))}addNonce(e){this.parameters.set(q,encodeURIComponent(e))}addCodeChallengeParams(e,t){if(_o.validateCodeChallengeParams(e,t),!e||!t)throw Kr(Sr);this.parameters.set(H,encodeURIComponent(e)),this.parameters.set(B,encodeURIComponent(t))}addAuthorizationCode(e){this.parameters.set(U,encodeURIComponent(e))}addDeviceCode(e){this.parameters.set(X,encodeURIComponent(e))}addRefreshToken(e){this.parameters.set(N,encodeURIComponent(e))}addCodeVerifier(e){this.parameters.set(D,encodeURIComponent(e))}addClientSecret(e){this.parameters.set(Z,encodeURIComponent(e))}addClientAssertion(e){e&&this.parameters.set(ee,encodeURIComponent(e))}addClientAssertionType(e){e&&this.parameters.set(te,encodeURIComponent(e))}addOboAssertion(e){this.parameters.set(ne,encodeURIComponent(e))}addRequestTokenUse(e){this.parameters.set(ie,encodeURIComponent(e))}addGrantType(e){this.parameters.set(R,encodeURIComponent(e))}addClientInfo(){this.parameters.set("client_info","1")}addExtraQueryParameters(e){const t=_o.sanitizeEQParams(e,this.parameters);Object.keys(t).forEach((t=>{this.parameters.set(t,e[t])}))}addClientCapabilitiesToClaims(e,t){let r;if(e)try{r=JSON.parse(e)}catch(e){throw Kr(Ir)}else r={};return t&&t.length>0&&(r.hasOwnProperty(le)||(r[le]={}),r[le][he]={values:t}),JSON.stringify(r)}addUsername(e){this.parameters.set($e,encodeURIComponent(e))}addPassword(e){this.parameters.set(Qe,encodeURIComponent(e))}addPopToken(e){e&&(this.parameters.set(re,Be.POP),this.parameters.set(oe,encodeURIComponent(e)))}addSshJwk(e){e&&(this.parameters.set(re,Be.SSH),this.parameters.set(oe,encodeURIComponent(e)))}addServerTelemetry(e){this.parameters.set($,e.generateCurrentRequestHeaderValue()),this.parameters.set(Q,e.generateLastRequestHeaderValue())}addThrottling(){this.parameters.set(j,Fe)}addLogoutHint(e){this.parameters.set(ce,encodeURIComponent(e))}createQueryString(){const e=new Array;return this.parameters.forEach(((t,r)=>{e.push(`${r}=${t}`)})),e.join("&")}}
|
|
30
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class ko{constructor(e,t){this.config=function({authOptions:e,systemOptions:t,loggerOptions:r,cacheOptions:o,storageInterface:n,networkInterface:i,cryptoInterface:s,clientCredentials:a,libraryInfo:c,telemetry:l,serverTelemetryManager:h,persistencePlugin:d,serializableCache:u}){const g={...lo,...r};return{authOptions:(p=e,{clientCapabilities:[],azureCloudOptions:mo,skipAuthorityMetadataCache:!1,...p}),systemOptions:{...co,...t},loggerOptions:g,cacheOptions:{...ho,...o},storageInterface:n||new ao(e.clientId,lr,new dr(g)),networkInterface:i||uo,cryptoInterface:s||lr,clientCredentials:a||po,libraryInfo:{...go,...c},telemetry:{...fo,...l},serverTelemetryManager:h||null,persistencePlugin:d||null,serializableCache:u||null};var p}(e),this.logger=new dr(this.config.loggerOptions,ur,gr),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.networkManager=new wo(this.networkClient,this.cacheManager),this.serverTelemetryManager=this.config.serverTelemetryManager,this.authority=this.config.authOptions.authority,this.performanceClient=t}createTokenRequestHeaders(e){const r={};if(r[c]=t.URL_FORM_CONTENT_TYPE,!this.config.systemOptions.preventCorsPreflight&&e)switch(e.type){case To:try{const t=$r(e.credential);r[h]=`Oid:${t.uid}@${t.utid}`}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Io:r[h]=`UPN: ${e.credential}`}return r}async executePostToTokenEndpoint(e,t,r,o,n,i){i&&this.performanceClient?.addQueueMeasurement(i,n);const s=await this.networkManager.sendPostRequest(o,e,{body:t,headers:r});return this.performanceClient?.addFields({refreshTokenSize:s.body.refresh_token?.length||0,httpVerToken:s.headers?.[p]||""},n),this.config.serverTelemetryManager&&s.status<500&&429!==s.status&&this.config.serverTelemetryManager.clearTelemetryCache(),s}updateAuthority(e){if(!e.discoveryComplete())throw cr(Ct);this.authority=e}createTokenQueryParameters(e){const t=new Ao;return e.tokenQueryParameters&&t.addExtraQueryParameters(e.tokenQueryParameters),t.createQueryString()}}
|
|
31
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class So{generateAccountId(){return So.generateAccountIdForCacheKey(this.homeAccountId,this.environment)}generateCredentialId(){return So.generateCredentialIdForCacheKey(this.credentialType,this.clientId,this.realm,this.familyId)}generateTarget(){return So.generateTargetForCacheKey(this.target)}generateCredentialKey(){return So.generateCredentialCacheKey(this.homeAccountId,this.environment,this.credentialType,this.clientId,this.realm,this.target,this.familyId,this.tokenType,this.requestedClaimsHash)}generateType(){switch(this.credentialType){case ke.ID_TOKEN:return be;case ke.ACCESS_TOKEN:case ke.ACCESS_TOKEN_WITH_AUTH_SCHEME:return Se;case ke.REFRESH_TOKEN:return Ee;default:throw cr(zt)}}static generateCredentialCacheKey(e,t,r,o,n,i,s,a,c){return[this.generateAccountIdForCacheKey(e,t),this.generateCredentialIdForCacheKey(r,o,n,s),this.generateTargetForCacheKey(i),this.generateClaimsHashForCacheKey(c),this.generateSchemeForCacheKey(a)].join(_e).toLowerCase()}static generateAccountIdForCacheKey(e,t){return[e,t].join(_e).toLowerCase()}static generateCredentialIdForCacheKey(e,r,o,n){return[e,e===ke.REFRESH_TOKEN&&n||r,o||t.EMPTY_STRING].join(_e).toLowerCase()}static generateTargetForCacheKey(e){return(e||t.EMPTY_STRING).toLowerCase()}static generateClaimsHashForCacheKey(e){return(e||t.EMPTY_STRING).toLowerCase()}static generateSchemeForCacheKey(e){return e&&e.toLowerCase()!==Be.BEARER.toLowerCase()?e.toLowerCase():t.EMPTY_STRING}}
|
|
32
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Eo extends So{static createIdTokenEntity(e,t,r,o,n){const i=new Eo;return i.credentialType=ke.ID_TOKEN,i.homeAccountId=e,i.environment=t,i.clientId=o,i.secret=r,i.realm=n,i}static isIdTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.credentialType===ke.ID_TOKEN)}}
|
|
33
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class bo{static nowSeconds(){return Math.round((new Date).getTime()/1e3)}static isTokenExpired(e,t){const r=Number(e)||0;return bo.nowSeconds()+t>r}static wasClockTurnedBack(e){return Number(e)>bo.nowSeconds()}static delay(e,t){return new Promise((r=>setTimeout((()=>r(t)),e)))}}
|
|
34
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Ro extends So{static createAccessTokenEntity(e,t,r,o,n,i,s,a,c,l,h,d,u,g,p){const m=new Ro;m.homeAccountId=e,m.credentialType=ke.ACCESS_TOKEN,m.secret=r;const f=bo.nowSeconds();if(m.cachedAt=f.toString(),m.expiresOn=s.toString(),m.extendedExpiresOn=a.toString(),l&&(m.refreshOn=l.toString()),m.environment=t,m.clientId=o,m.realm=n,m.target=i,m.userAssertionHash=d,m.tokenType=h||Be.BEARER,g&&(m.requestedClaims=g,m.requestedClaimsHash=p),m.tokenType?.toLowerCase()!==Be.BEARER.toLowerCase())switch(m.credentialType=ke.ACCESS_TOKEN_WITH_AUTH_SCHEME,m.tokenType){case Be.POP:const e=Xr(r,c.base64Decode);if(!e?.cnf?.kid)throw cr(Yt);m.keyId=e.cnf.kid;break;case Be.SSH:m.keyId=u}return m}static isAccessTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.hasOwnProperty("target")&&(e.credentialType===ke.ACCESS_TOKEN||e.credentialType===ke.ACCESS_TOKEN_WITH_AUTH_SCHEME))}}
|
|
35
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Po extends So{static createRefreshTokenEntity(e,t,r,o,n,i){const s=new Po;return s.clientId=o,s.credentialType=ke.REFRESH_TOKEN,s.environment=t,s.homeAccountId=e,s.secret=r,s.userAssertionHash=i,n&&(s.familyId=n),s}static isRefreshTokenEntity(e){return!!e&&(e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")&&e.credentialType===ke.REFRESH_TOKEN)}}
|
|
36
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const Mo="no_tokens_found",No="native_account_unavailable",Oo="interaction_required",qo="consent_required",Lo="login_required";var Uo=Object.freeze({__proto__:null,consentRequired:qo,interactionRequired:Oo,loginRequired:Lo,nativeAccountUnavailable:No,noTokensFound:Mo});
|
|
37
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const Ho=[Oo,qo,Lo],Bo=["message_only","additional_action","basic_action","user_password_expired","consent_required"],Do={[Mo]:"No refresh token found in the cache. Please sign-in.",[No]:"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API."},xo={noTokensFoundError:{code:Mo,desc:Do[Mo]},native_account_unavailable:{code:No,desc:Do[No]}};class Ko extends ut{constructor(e,r,o,n,i,s,a){super(e,r,o),Object.setPrototypeOf(this,Ko.prototype),this.timestamp=n||t.EMPTY_STRING,this.traceId=i||t.EMPTY_STRING,this.correlationId=s||t.EMPTY_STRING,this.claims=a||t.EMPTY_STRING,this.name="InteractionRequiredAuthError"}}function Fo(e,t,r){const o=!!e&&Ho.indexOf(e)>-1,n=!!r&&Bo.indexOf(r)>-1,i=!!t&&Ho.some((e=>t.indexOf(e)>-1));return o||i||n}function zo(e){return new Ko(e,Do[e])}
|
|
38
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Go{constructor(e,t,r,o,n){this.account=e||null,this.idToken=t||null,this.accessToken=r||null,this.refreshToken=o||null,this.appMetadata=n||null}}
|
|
39
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class $o{static setRequestState(e,r,o){const n=$o.generateLibraryState(e,o);return r?`${n}${t.RESOURCE_DELIM}${r}`:n}static generateLibraryState(e,t){if(!e)throw cr(Ft);const r={id:e.createNewGuid()};t&&(r.meta=t);const o=JSON.stringify(r);return e.base64Encode(o)}static parseRequestState(e,r){if(!e)throw cr(Ft);if(!r)throw cr(It);try{const o=r.split(t.RESOURCE_DELIM),n=o[0],i=o.length>1?o.slice(1).join(t.RESOURCE_DELIM):t.EMPTY_STRING,s=e.base64Decode(n),a=JSON.parse(s);return{userRequestState:i||t.EMPTY_STRING,libraryState:a}}catch(e){throw cr(It)}}}
|
|
40
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const Qo={AcquireTokenByCode:"acquireTokenByCode",AcquireTokenByRefreshToken:"acquireTokenByRefreshToken",AcquireTokenSilent:"acquireTokenSilent",AcquireTokenSilentAsync:"acquireTokenSilentAsync",AcquireTokenPopup:"acquireTokenPopup",CryptoOptsGetPublicKeyThumbprint:"cryptoOptsGetPublicKeyThumbprint",CryptoOptsSignJwt:"cryptoOptsSignJwt",SilentCacheClientAcquireToken:"silentCacheClientAcquireToken",SilentIframeClientAcquireToken:"silentIframeClientAcquireToken",SilentRefreshClientAcquireToken:"silentRefreshClientAcquireToken",SsoSilent:"ssoSilent",StandardInteractionClientGetDiscoveredAuthority:"standardInteractionClientGetDiscoveredAuthority",FetchAccountIdWithNativeBroker:"fetchAccountIdWithNativeBroker",NativeInteractionClientAcquireToken:"nativeInteractionClientAcquireToken",BaseClientCreateTokenRequestHeaders:"baseClientCreateTokenRequestHeaders",RefreshTokenClientExecutePostToTokenEndpoint:"refreshTokenClientExecutePostToTokenEndpoint",AuthorizationCodeClientExecutePostToTokenEndpoint:"authorizationCodeClientExecutePostToTokenEndpoint",BrokerHandhshake:"brokerHandshake",AcquireTokenByRefreshTokenInBroker:"acquireTokenByRefreshTokenInBroker",AcquireTokenByBroker:"acquireTokenByBroker",RefreshTokenClientExecuteTokenRequest:"refreshTokenClientExecuteTokenRequest",RefreshTokenClientAcquireToken:"refreshTokenClientAcquireToken",RefreshTokenClientAcquireTokenWithCachedRefreshToken:"refreshTokenClientAcquireTokenWithCachedRefreshToken",RefreshTokenClientAcquireTokenByRefreshToken:"refreshTokenClientAcquireTokenByRefreshToken",RefreshTokenClientCreateTokenRequestBody:"refreshTokenClientCreateTokenRequestBody",AcquireTokenFromCache:"acquireTokenFromCache",SilentFlowClientAcquireCachedToken:"silentFlowClientAcquireCachedToken",SilentFlowClientGenerateResultFromCacheRecord:"silentFlowClientGenerateResultFromCacheRecord",AcquireTokenBySilentIframe:"acquireTokenBySilentIframe",InitializeBaseRequest:"initializeBaseRequest",InitializeSilentRequest:"initializeSilentRequest",InitializeClientApplication:"initializeClientApplication",SilentIframeClientTokenHelper:"silentIframeClientTokenHelper",SilentHandlerInitiateAuthRequest:"silentHandlerInitiateAuthRequest",SilentHandlerMonitorIframeForHash:"silentHandlerMonitorIframeForHash",SilentHandlerLoadFrame:"silentHandlerLoadFrame",SilentHandlerLoadFrameSync:"silentHandlerLoadFrameSync",StandardInteractionClientCreateAuthCodeClient:"standardInteractionClientCreateAuthCodeClient",StandardInteractionClientGetClientConfiguration:"standardInteractionClientGetClientConfiguration",StandardInteractionClientInitializeAuthorizationRequest:"standardInteractionClientInitializeAuthorizationRequest",StandardInteractionClientInitializeAuthorizationCodeRequest:"standardInteractionClientInitializeAuthorizationCodeRequest",GetAuthCodeUrl:"getAuthCodeUrl",HandleCodeResponseFromServer:"handleCodeResponseFromServer",HandleCodeResponseFromHash:"handleCodeResponseFromHash",UpdateTokenEndpointAuthority:"updateTokenEndpointAuthority",AuthClientAcquireToken:"authClientAcquireToken",AuthClientExecuteTokenRequest:"authClientExecuteTokenRequest",AuthClientCreateTokenRequestBody:"authClientCreateTokenRequestBody",AuthClientCreateQueryString:"authClientCreateQueryString",PopTokenGenerateCnf:"popTokenGenerateCnf",PopTokenGenerateKid:"popTokenGenerateKid",HandleServerTokenResponse:"handleServerTokenResponse",AuthorityFactoryCreateDiscoveredInstance:"authorityFactoryCreateDiscoveredInstance",AuthorityResolveEndpointsAsync:"authorityResolveEndpointsAsync",AuthorityResolveEndpointsFromLocalSources:"authorityResolveEndpointsFromLocalSources",AuthorityGetCloudDiscoveryMetadataFromNetwork:"authorityGetCloudDiscoveryMetadataFromNetwork",AuthorityUpdateCloudDiscoveryMetadata:"authorityUpdateCloudDiscoveryMetadata",AuthorityGetEndpointMetadataFromNetwork:"authorityGetEndpointMetadataFromNetwork",AuthorityUpdateEndpointMetadata:"authorityUpdateEndpointMetadata",AuthorityUpdateMetadataWithRegionalInformation:"authorityUpdateMetadataWithRegionalInformation",RegionDiscoveryDetectRegion:"regionDiscoveryDetectRegion",RegionDiscoveryGetRegionFromIMDS:"regionDiscoveryGetRegionFromIMDS",RegionDiscoveryGetCurrentVersion:"regionDiscoveryGetCurrentVersion",AcquireTokenByCodeAsync:"acquireTokenByCodeAsync",GetEndpointMetadataFromNetwork:"getEndpointMetadataFromNetwork",GetCloudDiscoveryMetadataFromNetworkMeasurement:"getCloudDiscoveryMetadataFromNetworkMeasurement",HandleRedirectPromiseMeasurement:"handleRedirectPromiseMeasurement",UpdateCloudDiscoveryMetadataMeasurement:"updateCloudDiscoveryMetadataMeasurement",UsernamePasswordClientAcquireToken:"usernamePasswordClientAcquireToken",NativeMessageHandlerHandshake:"nativeMessageHandlerHandshake",NativeGenerateAuthResult:"nativeGenerateAuthResult",RemoveHiddenIframe:"removeHiddenIframe",ClearTokensAndKeysWithClaims:"clearTokensAndKeysWithClaims",CacheManagerGetRefreshToken:"cacheManagerGetRefreshToken",GeneratePkceCodes:"generatePkceCodes",GenerateCodeVerifier:"generateCodeVerifier",GenerateCodeChallengeFromVerifier:"generateCodeChallengeFromVerifier",Sha256Digest:"sha256Digest",GetRandomValues:"getRandomValues"},jo=1,Yo=2,Wo=new Set(["accessTokenSize","durationMs","idTokenSize","matsSilentStatus","matsHttpStatus","refreshTokenSize","queuedTimeMs","startTimeMs","status"]),Vo=(e,t,r,o,n)=>(...i)=>{r.trace(`Executing function ${t}`);const s=o?.startMeasurement(t,n);try{const o=e(...i);return s?.end({success:!0}),r.trace(`Returning result from ${t}`),o}catch(e){r.trace(`Error occurred in ${t}`);try{r.trace(JSON.stringify(e))}catch(e){r.trace("Unable to print error message.")}throw s?.end({success:!1}),e}},Jo=(e,t,r,o,n)=>(...i)=>{r.trace(`Executing function ${t}`);const s=o?.startMeasurement(t,n);return o?.setPreQueueTime(t,n),e(...i).then((e=>(r.trace(`Returning result from ${t}`),s?.end({success:!0}),e))).catch((e=>{r.trace(`Error occurred in ${t}`);try{r.trace(JSON.stringify(e))}catch(e){r.trace("Unable to print error message.")}throw s?.end({success:!1}),e}))},Xo="sw";class Zo{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e,t){this.performanceClient?.addQueueMeasurement(Qo.PopTokenGenerateCnf,e.correlationId);const r=await Jo(this.generateKid.bind(this),Qo.PopTokenGenerateCnf,t,this.performanceClient,e.correlationId)(e),o=this.cryptoUtils.base64Encode(JSON.stringify(r));return{kid:r.kid,reqCnfString:o,reqCnfHash:await this.cryptoUtils.hashString(o)}}async generateKid(e){this.performanceClient?.addQueueMeasurement(Qo.PopTokenGenerateKid,e.correlationId);return{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:Xo}}async signPopToken(e,t,r){return this.signPayload(e,t,r)}async signPayload(e,t,r,o){const{resourceRequestMethod:n,resourceRequestUri:i,shrClaims:s,shrNonce:a}=r,c=i?new eo(i):void 0,l=c?.getUrlComponents();return await this.cryptoUtils.signJwt({at:e,ts:bo.nowSeconds(),m:n?.toUpperCase(),u:l?.HostNameAndPort,nonce:a||this.cryptoUtils.createNewGuid(),p:l?.AbsolutePath,q:l?.QueryString?[[],l.QueryString]:void 0,client_claims:s||void 0,...o},t,r.correlationId)}}
|
|
41
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class en{generateAppMetadataKey(){return en.generateAppMetadataCacheKey(this.environment,this.clientId)}static generateAppMetadataCacheKey(e,t){return[Re,e,t].join(_e).toLowerCase()}static createAppMetadataEntity(e,t,r){const o=new en;return o.clientId=e,o.environment=t,r&&(o.familyId=r),o}static isAppMetadataEntity(e,t){return!!t&&(0===e.indexOf(Re)&&t.hasOwnProperty("clientId")&&t.hasOwnProperty("environment"))}}
|
|
42
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class tn{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}
|
|
43
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class rn{constructor(e,t,r,o,n,i,s){this.clientId=e,this.cacheStorage=t,this.cryptoObj=r,this.logger=o,this.serializableCache=n,this.persistencePlugin=i,this.performanceClient=s}validateServerAuthorizationCodeResponse(e,r,o){if(!e.state||!r)throw e.state?cr(At,"Cached State"):cr(At,"Server State");let n,i;try{n=decodeURIComponent(e.state)}catch(t){throw cr(It,e.state)}try{i=decodeURIComponent(r)}catch(t){throw cr(It,e.state)}if(n!==i)throw cr(_t);if(e.error||e.error_description||e.suberror){if(Fo(e.error,e.error_description,e.suberror))throw new Ko(e.error||t.EMPTY_STRING,e.error_description,e.suberror,e.timestamp||t.EMPTY_STRING,e.trace_id||t.EMPTY_STRING,e.correlation_id||t.EMPTY_STRING,e.claims||t.EMPTY_STRING);throw new Co(e.error||t.EMPTY_STRING,e.error_description,e.suberror)}e.client_info&&Gr(e.client_info,o)}validateTokenResponse(e,s){if(e.error||e.error_description||e.suberror){const a=`${e.error_codes} - [${e.timestamp}]: ${e.error_description} - Correlation ID: ${e.correlation_id} - Trace ID: ${e.trace_id}`,c=new Co(e.error,a,e.suberror);if(s&&e.status&&e.status>=n&&e.status<=i)return void this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently unavailable and the access token is unable to be refreshed.\n${c}`);if(s&&e.status&&e.status>=r&&e.status<=o)return void this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently available but is unable to refresh the access token.\n${c}`);if(Fo(e.error,e.error_description,e.suberror))throw new Ko(e.error,e.error_description,e.suberror,e.timestamp||t.EMPTY_STRING,e.trace_id||t.EMPTY_STRING,e.correlation_id||t.EMPTY_STRING,e.claims||t.EMPTY_STRING);throw c}}async handleServerTokenResponse(e,r,o,n,i,s,a,c,l){let h,d;if(this.performanceClient?.addQueueMeasurement(Qo.HandleServerTokenResponse,e.correlation_id),e.id_token){if(h=Xr(e.id_token||t.EMPTY_STRING,this.cryptoObj.base64Decode),i&&i.nonce&&h.nonce!==i.nonce)throw cr(kt);if(n.maxAge||0===n.maxAge){const e=h.auth_time;if(!e)throw cr(St);Zr(e,n.maxAge)}}this.homeAccountIdentifier=Jr.generateHomeAccountId(e.client_info||t.EMPTY_STRING,r.authorityType,this.logger,this.cryptoObj,h),i&&i.state&&(d=$o.parseRequestState(this.cryptoObj,i.state)),e.key_id=e.key_id||n.sshKid||void 0;const u=this.generateCacheRecord(e,r,o,n,h,s,i);let g;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),g=new tn(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(g)),a&&!c&&u.account){const e=u.account.generateAccountKey();if(!this.cacheStorage.getAccount(e))return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),rn.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,h,d,void 0,l)}await this.cacheStorage.saveCacheRecord(u,n.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&g&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(g))}return rn.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,h,d,e,l)}generateCacheRecord(e,r,o,n,i,s,a){const c=r.getPreferredCache();if(!c)throw cr(xt);let l,h;e.id_token&&i&&(l=Eo.createIdTokenEntity(this.homeAccountIdentifier,c,e.id_token,this.clientId,i.tid||""),h=Jr.createAccount({homeAccountId:this.homeAccountIdentifier,idTokenClaims:i,clientInfo:e.client_info,cloudGraphHostName:a?.cloud_graph_host_name,msGraphHost:a?.msgraph_host},r));let d=null;if(e.access_token){const a=e.scope?zr.fromString(e.scope):new zr(n.scopes||[]),l=("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0,h=("string"==typeof e.ext_expires_in?parseInt(e.ext_expires_in,10):e.ext_expires_in)||0,u=("string"==typeof e.refresh_in?parseInt(e.refresh_in,10):e.refresh_in)||void 0,g=o+l,p=g+h,m=u&&u>0?o+u:void 0;d=Ro.createAccessTokenEntity(this.homeAccountIdentifier,c,e.access_token||t.EMPTY_STRING,this.clientId,i?.tid||r.tenant,a.printScopes(),g,p,this.cryptoObj,m,e.token_type,s,e.key_id,n.claims,n.requestedClaimsHash)}let u=null;e.refresh_token&&(u=Po.createRefreshTokenEntity(this.homeAccountIdentifier,c,e.refresh_token||t.EMPTY_STRING,this.clientId,e.foci,s));let g=null;return e.foci&&(g=en.createAppMetadataEntity(this.clientId,c,e.foci)),new Go(h,l,d,u,g)}static async generateAuthenticationResult(e,r,o,n,i,s,a,c,l){let h,d,u=t.EMPTY_STRING,g=[],p=null,m=t.EMPTY_STRING;if(o.accessToken){if(o.accessToken.tokenType===Be.POP){const t=new Zo(e),{secret:r,keyId:n}=o.accessToken;if(!n)throw cr(Xt);u=await t.signPopToken(r,n,i)}else u=o.accessToken.secret;g=zr.fromString(o.accessToken.target).asArray(),p=new Date(1e3*Number(o.accessToken.expiresOn)),h=new Date(1e3*Number(o.accessToken.extendedExpiresOn)),o.accessToken.refreshOn&&(d=new Date(1e3*Number(o.accessToken.refreshOn)))}o.appMetadata&&(m=o.appMetadata.familyId===Pe?Pe:"");const f=s?.oid||s?.sub||"",y=s?.tid||"";c?.spa_accountid&&o.account&&(o.account.nativeAccountId=c?.spa_accountid);const C=o.account?{...o.account.getAccountInfo(),idTokenClaims:s}:null;return{authority:r.canonicalAuthority,uniqueId:f,tenantId:y,scopes:g,account:C,idToken:o?.idToken?.secret||"",idTokenClaims:s||{},accessToken:u,fromCache:n,expiresOn:p,extExpiresOn:h,refreshOn:d,correlationId:i.correlationId,requestId:l||t.EMPTY_STRING,familyId:m,tokenType:o.accessToken?.tokenType||t.EMPTY_STRING,state:a?a.userRequestState:t.EMPTY_STRING,cloudGraphHostName:o.account?.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:o.account?.msGraphHost||t.EMPTY_STRING,code:c?.spa_code,fromNativeBroker:!1}}}
|
|
44
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class on extends ko{constructor(e,t){super(e,t),this.includeRedirectUri=!0,this.oidcDefaultScopes=this.config.authOptions.authority.options.OIDCOptions?.defaultScopes}async getAuthCodeUrl(e){this.performanceClient?.addQueueMeasurement(Qo.GetAuthCodeUrl,e.correlationId);const t=await Jo(this.createAuthCodeUrlQueryString.bind(this),Qo.AuthClientCreateQueryString,this.logger,this.performanceClient,e.correlationId)(e);return eo.appendQueryString(this.authority.authorizationEndpoint,t)}async acquireToken(e,t){if(this.performanceClient?.addQueueMeasurement(Qo.AuthClientAcquireToken,e.correlationId),!e.code)throw cr(Mt);const r=bo.nowSeconds(),o=await Jo(this.executeTokenRequest.bind(this),Qo.AuthClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(this.authority,e),n=o.headers?.[g],i=new rn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return i.validateTokenResponse(o.body),Jo(i.handleServerTokenResponse.bind(i),Qo.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(o.body,this.authority,r,e,t,void 0,void 0,void 0,n)}handleFragmentResponse(e,t){const r=new rn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,null,null),o=eo.getDeserializedCodeResponse(this.config.authOptions.authority.options.OIDCOptions?.serverResponseType,e);if(r.validateServerAuthorizationCodeResponse(o,t,this.cryptoUtils),!o.code)throw cr(Wt);return{...o,code:o.code}}getLogoutUri(e){if(!e)throw Kr(Ar);const t=this.createLogoutUrlQueryString(e);return eo.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(Qo.AuthClientExecuteTokenRequest,t.correlationId);const r=this.createTokenQueryParameters(t),o=eo.appendQueryString(e.tokenEndpoint,r),n=await Jo(this.createTokenRequestBody.bind(this),Qo.AuthClientCreateTokenRequestBody,this.logger,this.performanceClient,t.correlationId)(t);let i;if(t.clientInfo)try{const e=Gr(t.clientInfo,this.cryptoUtils);i={credential:`${e.uid}${Ae}${e.utid}`,type:To}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}const s=this.createTokenRequestHeaders(i||t.ccsCredential),a={clientId:t.tokenBodyParameters?.clientId||this.config.authOptions.clientId,authority:e.canonicalAuthority,scopes:t.scopes,claims:t.claims,authenticationScheme:t.authenticationScheme,resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,sshKid:t.sshKid};return Jo(this.executePostToTokenEndpoint.bind(this),Qo.AuthorizationCodeClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,t.correlationId)(o,n,s,a,t.correlationId,Qo.AuthorizationCodeClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(Qo.AuthClientCreateTokenRequestBody,e.correlationId);const t=new Ao;if(t.addClientId(e.tokenBodyParameters?.[k]||this.config.authOptions.clientId),this.includeRedirectUri?t.addRedirectUri(e.redirectUri):_o.validateRedirectUri(e.redirectUri),t.addScopes(e.scopes,!0,this.oidcDefaultScopes),t.addAuthorizationCode(e.code),t.addLibraryInfo(this.config.libraryInfo),t.addApplicationTelemetry(this.config.telemetry.application),t.addThrottling(),this.serverTelemetryManager&&!yo(this.config)&&t.addServerTelemetry(this.serverTelemetryManager),e.codeVerifier&&t.addCodeVerifier(e.codeVerifier),this.config.clientCredentials.clientSecret&&t.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const e=this.config.clientCredentials.clientAssertion;t.addClientAssertion(e.assertion),t.addClientAssertionType(e.assertionType)}if(t.addGrantType(Ce),t.addClientInfo(),e.authenticationScheme===Be.POP){const r=new Zo(this.cryptoUtils,this.performanceClient),o=await Jo(r.generateCnf.bind(r),Qo.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===Be.SSH){if(!e.sshJwk)throw Kr(Pr);t.addSshJwk(e.sshJwk)}const r=e.correlationId||this.config.cryptoInterface.createNewGuid();let o;if(t.addCorrelationId(r),(!Fr.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&t.addClaims(e.claims,this.config.authOptions.clientCapabilities),e.clientInfo)try{const t=Gr(e.clientInfo,this.cryptoUtils);o={credential:`${t.uid}${Ae}${t.utid}`,type:To}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}else o=e.ccsCredential;if(this.config.systemOptions.preventCorsPreflight&&o)switch(o.type){case To:try{const e=$r(o.credential);t.addCcsOid(e)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Io:t.addCcsUpn(o.credential)}return e.tokenBodyParameters&&t.addExtraQueryParameters(e.tokenBodyParameters),!e.enableSpaAuthorizationCode||e.tokenBodyParameters&&e.tokenBodyParameters[se]||t.addExtraQueryParameters({[se]:"1"}),t.createQueryString()}async createAuthCodeUrlQueryString(e){this.performanceClient?.addQueueMeasurement(Qo.AuthClientCreateQueryString,e.correlationId);const t=new Ao;t.addClientId(e.extraQueryParameters?.[k]||this.config.authOptions.clientId);const r=[...e.scopes||[],...e.extraScopesToConsent||[]];t.addScopes(r,!0,this.oidcDefaultScopes),t.addRedirectUri(e.redirectUri);const o=e.correlationId||this.config.cryptoInterface.createNewGuid();if(t.addCorrelationId(o),t.addResponseMode(e.responseMode),t.addResponseTypeCode(),t.addLibraryInfo(this.config.libraryInfo),yo(this.config)||t.addApplicationTelemetry(this.config.telemetry.application),t.addClientInfo(),e.codeChallenge&&e.codeChallengeMethod&&t.addCodeChallengeParams(e.codeChallenge,e.codeChallengeMethod),e.prompt&&t.addPrompt(e.prompt),e.domainHint&&t.addDomainHint(e.domainHint),e.prompt!==de.SELECT_ACCOUNT)if(e.sid&&e.prompt===de.NONE)this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request"),t.addSid(e.sid);else if(e.account){const r=this.extractAccountSid(e.account),o=this.extractLoginHint(e.account);if(o){this.logger.verbose("createAuthCodeUrlQueryString: login_hint claim present on account"),t.addLoginHint(o);try{const r=$r(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(r&&e.prompt===de.NONE){this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),t.addSid(r);try{const r=$r(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(e.loginHint)this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from request"),t.addLoginHint(e.loginHint),t.addCcsUpn(e.loginHint);else if(e.account.username){this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from account"),t.addLoginHint(e.account.username);try{const r=$r(e.account.homeAccountId);t.addCcsOid(r)}catch(e){this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}}else e.loginHint&&(this.logger.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request"),t.addLoginHint(e.loginHint),t.addCcsUpn(e.loginHint));else this.logger.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");if(e.nonce&&t.addNonce(e.nonce),e.state&&t.addState(e.state),(e.claims||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&t.addClaims(e.claims,this.config.authOptions.clientCapabilities),e.extraQueryParameters&&t.addExtraQueryParameters(e.extraQueryParameters),e.nativeBroker&&(t.addNativeBroker(),e.authenticationScheme===Be.POP)){const r=new Zo(this.cryptoUtils),o=await Jo(r.generateCnf.bind(r),Qo.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(o.reqCnfHash)}return t.createQueryString()}createLogoutUrlQueryString(e){const t=new Ao;return e.postLogoutRedirectUri&&t.addPostLogoutRedirectUri(e.postLogoutRedirectUri),e.correlationId&&t.addCorrelationId(e.correlationId),e.idTokenHint&&t.addIdTokenHint(e.idTokenHint),e.state&&t.addState(e.state),e.logoutHint&&t.addLogoutHint(e.logoutHint),e.extraQueryParameters&&t.addExtraQueryParameters(e.extraQueryParameters),t.createQueryString()}extractAccountSid(e){return e.idTokenClaims?.sid||null}extractLoginHint(e){return e.idTokenClaims?.login_hint||null}}
|
|
45
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class nn extends ko{constructor(e,t){super(e,t)}async acquireToken(e){this.performanceClient?.addQueueMeasurement(Qo.RefreshTokenClientAcquireToken,e.correlationId);const t=bo.nowSeconds(),r=await Jo(this.executeTokenRequest.bind(this),Qo.RefreshTokenClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(e,this.authority),o=r.headers?.[g],n=new rn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return n.validateTokenResponse(r.body),Jo(n.handleServerTokenResponse.bind(n),Qo.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(r.body,this.authority,t,e,void 0,void 0,!0,e.forceCache,o)}async acquireTokenByRefreshToken(e){if(!e)throw Kr(_r);if(this.performanceClient?.addQueueMeasurement(Qo.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw cr(Bt);if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return Jo(this.acquireTokenWithCachedRefreshToken.bind(this),Qo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!0)}catch(t){const r=t instanceof Ko&&t.errorCode===Mo,o=t instanceof Co&&t.errorCode===ze&&t.subError===Ge;if(r||o)return Jo(this.acquireTokenWithCachedRefreshToken.bind(this),Qo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1);throw t}return Jo(this.acquireTokenWithCachedRefreshToken.bind(this),Qo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){this.performanceClient?.addQueueMeasurement(Qo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const r=Vo(this.cacheManager.getRefreshToken.bind(this.cacheManager),Qo.CacheManagerGetRefreshToken,this.logger,this.performanceClient,e.correlationId)(e.account,t);if(!r)throw zo(Mo);const o={...e,refreshToken:r.secret,authenticationScheme:e.authenticationScheme||Be.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:To}};return Jo(this.acquireToken.bind(this),Qo.RefreshTokenClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(o)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(Qo.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.createTokenQueryParameters(e),o=eo.appendQueryString(t.tokenEndpoint,r),n=await Jo(this.createTokenRequestBody.bind(this),Qo.RefreshTokenClientCreateTokenRequestBody,this.logger,this.performanceClient,e.correlationId)(e),i=this.createTokenRequestHeaders(e.ccsCredential),s={clientId:e.tokenBodyParameters?.clientId||this.config.authOptions.clientId,authority:t.canonicalAuthority,scopes:e.scopes,claims:e.claims,authenticationScheme:e.authenticationScheme,resourceRequestMethod:e.resourceRequestMethod,resourceRequestUri:e.resourceRequestUri,shrClaims:e.shrClaims,sshKid:e.sshKid};return Jo(this.executePostToTokenEndpoint.bind(this),Qo.RefreshTokenClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,e.correlationId)(o,n,i,s,e.correlationId,Qo.RefreshTokenClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(Qo.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const t=e.correlationId,r=new Ao;if(r.addClientId(e.tokenBodyParameters?.[k]||this.config.authOptions.clientId),e.redirectUri&&r.addRedirectUri(e.redirectUri),r.addScopes(e.scopes,!0,this.config.authOptions.authority.options.OIDCOptions?.defaultScopes),r.addGrantType(ve),r.addClientInfo(),r.addLibraryInfo(this.config.libraryInfo),r.addApplicationTelemetry(this.config.telemetry.application),r.addThrottling(),this.serverTelemetryManager&&!yo(this.config)&&r.addServerTelemetry(this.serverTelemetryManager),r.addCorrelationId(t),r.addRefreshToken(e.refreshToken),this.config.clientCredentials.clientSecret&&r.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const e=this.config.clientCredentials.clientAssertion;r.addClientAssertion(e.assertion),r.addClientAssertionType(e.assertionType)}if(e.authenticationScheme===Be.POP){const t=new Zo(this.cryptoUtils,this.performanceClient),o=await Jo(t.generateCnf.bind(t),Qo.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);r.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===Be.SSH){if(!e.sshJwk)throw Kr(Pr);r.addSshJwk(e.sshJwk)}if((!Fr.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&r.addClaims(e.claims,this.config.authOptions.clientCapabilities),this.config.systemOptions.preventCorsPreflight&&e.ccsCredential)switch(e.ccsCredential.type){case To:try{const t=$r(e.ccsCredential.credential);r.addCcsOid(t)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case Io:r.addCcsUpn(e.ccsCredential.credential)}return e.tokenBodyParameters&&r.addExtraQueryParameters(e.tokenBodyParameters),r.createQueryString()}}
|
|
46
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class sn extends ko{constructor(e,t){super(e,t)}async acquireToken(e){try{const[t,r]=await this.acquireCachedToken(e);if(r===it){this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.");new nn(this.config,this.performanceClient).acquireTokenByRefreshToken(e).catch((()=>{}))}return t}catch(t){if(t instanceof ar&&t.errorCode===Qt){return new nn(this.config,this.performanceClient).acquireTokenByRefreshToken(e)}throw t}}async acquireCachedToken(e){this.performanceClient?.addQueueMeasurement(Qo.SilentFlowClientAcquireCachedToken,e.correlationId);let t=tt;if(e.forceRefresh||!this.config.cacheOptions.claimsBasedCachingEnabled&&!Fr.isEmptyObj(e.claims))throw this.setCacheOutcome(rt,e.correlationId),cr(Qt);if(!e.account)throw cr(Bt);const r=e.authority||this.authority.getPreferredCache(),o=this.cacheManager.readCacheRecord(e.account,e,r);if(!o.accessToken)throw this.setCacheOutcome(ot,e.correlationId),cr(Qt);if(bo.wasClockTurnedBack(o.accessToken.cachedAt)||bo.isTokenExpired(o.accessToken.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.setCacheOutcome(nt,e.correlationId),cr(Qt);return o.accessToken.refreshOn&&bo.isTokenExpired(o.accessToken.refreshOn,0)&&(t=it),this.setCacheOutcome(t,e.correlationId),this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),[await Jo(this.generateResultFromCacheRecord.bind(this),Qo.SilentFlowClientGenerateResultFromCacheRecord,this.logger,this.performanceClient,e.correlationId)(o,e),t]}setCacheOutcome(e,t){this.serverTelemetryManager?.setCacheOutcome(e),this.performanceClient?.addFields({cacheOutcome:e},t),this.logger.info(`Token refresh is required due to cache outcome: ${e}`)}async generateResultFromCacheRecord(e,t){let r;if(this.performanceClient?.addQueueMeasurement(Qo.SilentFlowClientGenerateResultFromCacheRecord,t.correlationId),e.idToken&&(r=Xr(e.idToken.secret,this.config.cryptoInterface.base64Decode)),t.maxAge||0===t.maxAge){const e=r?.auth_time;if(!e)throw cr(St);Zr(e,t.maxAge)}return await rn.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}
|
|
47
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
48
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
49
|
+
class an{constructor(){this.expiresAt=bo.nowSeconds()+Ne}updateCloudDiscoveryMetadata(e,t){this.aliases=e.aliases,this.preferred_cache=e.preferred_cache,this.preferred_network=e.preferred_network,this.aliasesFromNetwork=t}updateEndpointMetadata(e,t){this.authorization_endpoint=e.authorization_endpoint,this.token_endpoint=e.token_endpoint,this.end_session_endpoint=e.end_session_endpoint,this.issuer=e.issuer,this.endpointsFromNetwork=t,this.jwks_uri=e.jwks_uri}updateCanonicalAuthority(e){this.canonical_authority=e}resetExpiresAt(){this.expiresAt=bo.nowSeconds()+Ne}isExpired(){return this.expiresAt<=bo.nowSeconds()}static isAuthorityMetadataEntity(e,t){return!!t&&(0===e.indexOf(Me)&&t.hasOwnProperty("aliases")&&t.hasOwnProperty("preferred_cache")&&t.hasOwnProperty("preferred_network")&&t.hasOwnProperty("canonical_authority")&&t.hasOwnProperty("authorization_endpoint")&&t.hasOwnProperty("token_endpoint")&&t.hasOwnProperty("issuer")&&t.hasOwnProperty("aliasesFromNetwork")&&t.hasOwnProperty("endpointsFromNetwork")&&t.hasOwnProperty("expiresAt")&&t.hasOwnProperty("jwks_uri"))}}
|
|
50
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
51
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
52
|
+
class cn{constructor(e,t,r,o){this.networkInterface=e,this.logger=t,this.performanceClient=r,this.correlationId=o}async detectRegion(e,r){this.performanceClient?.addQueueMeasurement(Qo.RegionDiscoveryDetectRegion,this.correlationId);let o=e;if(o)r.region_source=Ve;else{const e=cn.IMDS_OPTIONS;try{const n=await Jo(this.getRegionFromIMDS.bind(this),Qo.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t.IMDS_VERSION,e);if(n.status===je&&(o=n.body,r.region_source=Je),n.status===Ye){const t=await Jo(this.getCurrentVersion.bind(this),Qo.RegionDiscoveryGetCurrentVersion,this.logger,this.performanceClient,this.correlationId)(e);if(!t)return r.region_source=We,null;const n=await Jo(this.getRegionFromIMDS.bind(this),Qo.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t,e);n.status===je&&(o=n.body,r.region_source=Je)}}catch(e){return r.region_source=We,null}}return o||(r.region_source=We),o||null}async getRegionFromIMDS(e,r){return this.performanceClient?.addQueueMeasurement(Qo.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?api-version=${e}&format=text`,r,t.IMDS_TIMEOUT)}async getCurrentVersion(e){this.performanceClient?.addQueueMeasurement(Qo.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?format=json`,e);return r.status===Ye&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch(e){return null}}}cn.IMDS_OPTIONS={headers:{Metadata:"true"}};
|
|
53
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
54
|
+
class ln{constructor(e,t,r,o,n,i,s){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=t,this.cacheManager=r,this.authorityOptions=o,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=n,this.performanceClient=i,this.correlationId=s,this.regionDiscovery=new cn(t,this.logger,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(t.CIAM_AUTH_URL))return Wr;const r=e.PathSegments;if(r.length)switch(r[0].toLowerCase()){case t.ADFS:return jr;case t.DSTS:return Yr}return Qr}get authorityType(){return this.getAuthorityType(this.canonicalAuthorityUrlComponents)}get protocolMode(){return this.authorityOptions.protocolMode}get options(){return this.authorityOptions}get canonicalAuthority(){return this._canonicalAuthority.urlString}set canonicalAuthority(e){this._canonicalAuthority=new eo(e),this._canonicalAuthority.validateAsUri(),this._canonicalAuthorityUrlComponents=null}get canonicalAuthorityUrlComponents(){return this._canonicalAuthorityUrlComponents||(this._canonicalAuthorityUrlComponents=this._canonicalAuthority.getUrlComponents()),this._canonicalAuthorityUrlComponents}get hostnameAndPort(){return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase()}get tenant(){return this.canonicalAuthorityUrlComponents.PathSegments[0]}get authorizationEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.authorization_endpoint);throw cr(Ct)}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw cr(Ct)}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw cr(Ct)}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw cr(Jt);return this.replacePath(this.metadata.end_session_endpoint)}throw cr(Ct)}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw cr(Ct)}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw cr(Ct)}canReplaceTenant(e){return 1===e.PathSegments.length&&!ln.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===Qr&&this.protocolMode===Vr.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const r=new eo(this.metadata.canonical_authority).getUrlComponents(),o=r.PathSegments;return this.canonicalAuthorityUrlComponents.PathSegments.forEach(((e,n)=>{let i=o[n];if(0===n&&this.canReplaceTenant(r)){const e=new eo(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];i!==e&&(this.logger.verbose(`Replacing tenant domain name ${i} with id ${e}`),i=e)}e!==i&&(t=t.replace(`/${i}/`,`/${e}/`))})),this.replaceTenant(t)}get defaultOpenIdConfigurationEndpoint(){const e=this.hostnameAndPort;return this.canonicalAuthority.endsWith("v2.0/")||this.authorityType===jr||this.protocolMode!==Vr.AAD&&!this.isAliasOfKnownMicrosoftAuthority(e)?`${this.canonicalAuthority}.well-known/openid-configuration`:`${this.canonicalAuthority}v2.0/.well-known/openid-configuration`}discoveryComplete(){return!!this.metadata}async resolveEndpointsAsync(){this.performanceClient?.addQueueMeasurement(Qo.AuthorityResolveEndpointsAsync,this.correlationId);const e=this.getCurrentMetadataEntity(),t=await Jo(this.updateCloudDiscoveryMetadata.bind(this),Qo.AuthorityUpdateCloudDiscoveryMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network);const r=await Jo(this.updateEndpointMetadata.bind(this),Qo.AuthorityUpdateEndpointMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.updateCachedMetadata(e,t,{source:r})}getCurrentMetadataEntity(){let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);return e||(e=new an,e.updateCanonicalAuthority(this.canonicalAuthority)),e}updateCachedMetadata(e,t,r){t!==qe&&r?.source!==qe&&(e.resetExpiresAt(),e.updateCanonicalAuthority(this.canonicalAuthority));const o=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(o,e),this.metadata=e}async updateEndpointMetadata(e){this.performanceClient?.addQueueMeasurement(Qo.AuthorityUpdateEndpointMetadata,this.correlationId);const t=this.updateEndpointMetadataFromLocalSources(e);if(t){if(t.source===Ue&&this.authorityOptions.azureRegionConfiguration?.azureRegion&&t.metadata){const r=await Jo(this.updateMetadataWithRegionalInformation.bind(this),Qo.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(t.metadata);e.updateEndpointMetadata(r,!1)}return t.source}let r=await Jo(this.getEndpointMetadataFromNetwork.bind(this),Qo.AuthorityGetEndpointMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return this.authorityOptions.azureRegionConfiguration?.azureRegion&&(r=await Jo(this.updateMetadataWithRegionalInformation.bind(this),Qo.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(r)),e.updateEndpointMetadata(r,!0),Le;throw cr(wt,this.defaultOpenIdConfigurationEndpoint)}updateEndpointMetadataFromLocalSources(e){this.logger.verbose("Attempting to get endpoint metadata from authority configuration");const t=this.getEndpointMetadataFromConfig();if(t)return this.logger.verbose("Found endpoint metadata in authority configuration"),e.updateEndpointMetadata(t,!1),{source:Oe};if(this.logger.verbose("Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values."),this.authorityOptions.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get endpoint metadata from the network metadata cache.");else{const t=this.getEndpointMetadataFromHardcodedValues();if(t)return e.updateEndpointMetadata(t,!1),{source:Ue,metadata:t};this.logger.verbose("Did not find endpoint metadata in hardcoded values... Attempting to get endpoint metadata from the network metadata cache.")}const r=e.isExpired();return this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!r?(this.logger.verbose("Found endpoint metadata in the cache."),{source:qe}):(r&&this.logger.verbose("The metadata entity is expired."),null)}isAuthoritySameType(e){return new eo(e.canonical_authority).getUrlComponents().PathSegments.length===this.canonicalAuthorityUrlComponents.PathSegments.length}getEndpointMetadataFromConfig(){if(this.authorityOptions.authorityMetadata)try{return JSON.parse(this.authorityOptions.authorityMetadata)}catch(e){throw Kr(br)}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Qo.AuthorityGetEndpointMetadataFromNetwork,this.correlationId);const e={},t=this.defaultOpenIdConfigurationEndpoint;this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${t}`);try{const r=await this.networkInterface.sendGetRequestAsync(t,e),o=function(e){return e.hasOwnProperty("authorization_endpoint")&&e.hasOwnProperty("token_endpoint")&&e.hasOwnProperty("issuer")&&e.hasOwnProperty("jwks_uri")}(r.body);return o?r.body:(this.logger.verbose("Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration"),null)}catch(e){return this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${e}`),null}}getEndpointMetadataFromHardcodedValues(){return this.canonicalAuthority in to?to[this.canonicalAuthority]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(Qo.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const r=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(r){if(r!==t.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=Xe,this.regionDiscoveryMetadata.region_used=r,ln.replaceWithRegionalInformation(e,r);const o=await Jo(this.regionDiscovery.detectRegion.bind(this.regionDiscovery),Qo.RegionDiscoveryDetectRegion,this.logger,this.performanceClient,this.correlationId)(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(o)return this.regionDiscoveryMetadata.region_outcome=Ze,this.regionDiscoveryMetadata.region_used=o,ln.replaceWithRegionalInformation(e,o);this.regionDiscoveryMetadata.region_outcome=et}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(Qo.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=this.updateCloudDiscoveryMetadataFromLocalSources(e);if(t)return t;const r=await Jo(this.getCloudDiscoveryMetadataFromNetwork.bind(this),Qo.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return e.updateCloudDiscoveryMetadata(r,!0),Le;throw Kr(Rr)}updateCloudDiscoveryMetadataFromLocalSources(e){this.logger.verbose("Attempting to get cloud discovery metadata from authority configuration"),this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata||t.NOT_APPLICABLE}`),this.logger.verbosePii(`Canonical Authority: ${e.canonical_authority||t.NOT_APPLICABLE}`);const r=this.getCloudDiscoveryMetadataFromConfig();if(r)return this.logger.verbose("Found cloud discovery metadata in authority configuration"),e.updateCloudDiscoveryMetadata(r,!1),Oe;if(this.logger.verbose("Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values."),this.options.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded cloud discovery metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get cloud discovery metadata from the network metadata cache.");else{const t=io(this.canonicalAuthority);if(t)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),e.updateCloudDiscoveryMetadata(t,!1),Ue;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}const o=e.isExpired();return this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!o?(this.logger.verbose("Found cloud discovery metadata in the cache."),qe):(o&&this.logger.verbose("The metadata entity is expired."),null)}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===Wr)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),ln.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);if(this.authorityOptions.cloudDiscoveryMetadata){this.logger.verbose("The cloud discovery metadata has been provided as a network response, in the config.");try{this.logger.verbose("Attempting to parse the cloud discovery metadata.");const e=no(JSON.parse(this.authorityOptions.cloudDiscoveryMetadata).metadata,this.hostnameAndPort);if(this.logger.verbose("Parsed the cloud discovery metadata."),e)return this.logger.verbose("There is returnable metadata attached to the parsed cloud discovery metadata."),e;this.logger.verbose("There is no metadata attached to the parsed cloud discovery metadata.")}catch(e){throw this.logger.verbose("Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error."),Kr(Er)}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),ln.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Qo.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId);const e=`${t.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,r={};let o=null;try{const n=await this.networkInterface.sendGetRequestAsync(e,r);let i,s;if(function(e){return e.hasOwnProperty("tenant_discovery_endpoint")&&e.hasOwnProperty("metadata")}
|
|
55
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */(n.body))i=n.body,s=i.metadata,this.logger.verbosePii(`tenant_discovery_endpoint is: ${i.tenant_discovery_endpoint}`);else{if(!function(e){return e.hasOwnProperty("error")&&e.hasOwnProperty("error_description")}(n.body))return this.logger.error("AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse"),null;if(this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${n.status}`),i=n.body,i.error===t.INVALID_INSTANCE)return this.logger.error("The CloudInstanceDiscoveryErrorResponse error is invalid_instance."),null;this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${i.error}`),this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${i.error_description}`),this.logger.warning("Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []"),s=[]}this.logger.verbose("Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request."),o=no(s,this.hostnameAndPort)}catch(e){if(e instanceof ut)this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata.\nError: ${e.errorCode}\nError Description: ${e.errorMessage}`);else{const t=e;this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\nError: ${t.name}\nError Description: ${t.message}`)}return null}return o||(this.logger.warning("The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request."),this.logger.verbose("Creating custom Authority for custom domain scenario."),o=ln.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),o}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter((e=>eo.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort)).length>0}static generateAuthority(e,r){let o;if(r&&r.azureCloudInstance!==pr.None){const e=r.tenant?r.tenant:t.DEFAULT_COMMON_TENANT;o=`${r.azureCloudInstance}/${e}/`}return o||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}getPreferredCache(){if(this.discoveryComplete())return this.metadata.preferred_cache;throw cr(Ct)}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return oo.has(e)}static isPublicCloudAuthority(e){return t.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,r,o){const n=new eo(e);n.validateAsUri();const i=n.getUrlComponents();let s=`${r}.${i.HostNameAndPort}`;this.isPublicCloudAuthority(i.HostNameAndPort)&&(s=`${r}.${t.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);const a=eo.constructAuthorityUriFromObject({...n.getUrlComponents(),HostNameAndPort:s}).urlString;return o?`${a}?${o}`:a}static replaceWithRegionalInformation(e,r){const o={...e};return o.authorization_endpoint=ln.buildRegionalAuthorityString(o.authorization_endpoint,r),o.token_endpoint=ln.buildRegionalAuthorityString(o.token_endpoint,r,t.REGIONAL_AUTH_NON_MSI_QUERY_STRING),o.end_session_endpoint&&(o.end_session_endpoint=ln.buildRegionalAuthorityString(o.end_session_endpoint,r)),o}static transformCIAMAuthority(e){let r=e;const o=new eo(e).getUrlComponents();if(0===o.PathSegments.length&&o.HostNameAndPort.endsWith(t.CIAM_AUTH_URL)){r=`${r}${o.HostNameAndPort.split(".")[0]}${t.AAD_TENANT_DOMAIN_SUFFIX}`}return r}}function hn(e){return e.endsWith(t.FORWARD_SLASH)?e:`${e}${t.FORWARD_SLASH}`}ln.reservedTenantDomains=new Set(["{tenant}","{tenantid}",I,A,_]);
|
|
56
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
57
|
+
class dn{static async createDiscoveredInstance(e,t,r,o,n,i,s){i?.addQueueMeasurement(Qo.AuthorityFactoryCreateDiscoveredInstance,s);const a=ln.transformCIAMAuthority(hn(e)),c=dn.createInstance(a,t,r,o,n,i,s);try{return await Jo(c.resolveEndpointsAsync.bind(c),Qo.AuthorityResolveEndpointsAsync,n,i,s)(),c}catch(e){throw cr(Ct)}}static createInstance(e,t,r,o,n,i,s){if(!e)throw Kr(vr);return new ln(e,t,r,o,n,i,s)}}
|
|
58
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class un{constructor(){this.failedRequests=[],this.errors=[],this.cacheHits=0}static isServerTelemetryEntity(e,t){const r=0===e.indexOf(He.CACHE_KEY);let o=!0;return t&&(o=t.hasOwnProperty("failedRequests")&&t.hasOwnProperty("errors")&&t.hasOwnProperty("cacheHits")),r&&o}}
|
|
59
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class gn{static isThrottlingEntity(e,t){let r=!1;e&&(r=0===e.indexOf(Ke));let o=!0;return t&&(o=t.hasOwnProperty("throttleTime")),r&&o}}
|
|
60
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */const pn={sendGetRequestAsync:()=>Promise.reject(cr(rr)),sendPostRequestAsync:()=>Promise.reject(cr(rr))},mn="missing_kid_error",fn="missing_alg_error",yn={[mn]:"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.",[fn]:"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided."};
|
|
61
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class Cn extends ut{constructor(e,t){super(e,t),this.name="JoseHeaderError",Object.setPrototypeOf(this,Cn.prototype)}}function vn(e){return new Cn(e,yn[e])}
|
|
62
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class wn{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw vn(mn);if(!e.alg)throw vn(fn);const t=new wn({typ:e.typ||st,kid:e.kid,alg:e.alg});return JSON.stringify(t)}}
|
|
63
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
64
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */
|
|
65
|
+
class Tn{constructor(e,r){this.cacheOutcome=tt,this.cacheManager=r,this.apiId=e.apiId,this.correlationId=e.correlationId,this.wrapperSKU=e.wrapperSKU||t.EMPTY_STRING,this.wrapperVer=e.wrapperVer||t.EMPTY_STRING,this.telemetryCacheKey=He.CACHE_KEY+_e+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${He.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer].join(He.VALUE_SEPARATOR),r=[e,this.getRegionDiscoveryFields()].join(He.VALUE_SEPARATOR);return[He.SCHEMA_VERSION,r,t].join(He.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),t=Tn.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(He.VALUE_SEPARATOR),o=e.errors.slice(0,t).join(He.VALUE_SEPARATOR),n=e.errors.length,i=[n,t<n?He.OVERFLOW_TRUE:He.OVERFLOW_FALSE].join(He.VALUE_SEPARATOR);return[He.SCHEMA_VERSION,e.cacheHits,r,o,i].join(He.CATEGORY_SEPARATOR)}cacheFailedRequest(e){const t=this.getLastRequests();t.errors.length>=He.MAX_CACHED_ERRORS&&(t.failedRequests.shift(),t.failedRequests.shift(),t.errors.shift()),t.failedRequests.push(this.apiId,this.correlationId),e instanceof Error&&e&&e.toString()?e instanceof ut?e.subError?t.errors.push(e.subError):e.errorCode?t.errors.push(e.errorCode):t.errors.push(e.toString()):t.errors.push(e.toString()):t.errors.push(He.UNKNOWN_ERROR),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,t)}incrementCacheHits(){const e=this.getLastRequests();return e.cacheHits+=1,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e),e.cacheHits}getLastRequests(){const e=new un;return this.cacheManager.getServerTelemetry(this.telemetryCacheKey)||e}clearTelemetryCache(){const e=this.getLastRequests(),t=Tn.maxErrorsToSend(e);if(t===e.errors.length)this.cacheManager.removeItem(this.telemetryCacheKey);else{const r=new un;r.failedRequests=e.failedRequests.slice(2*t),r.errors=e.errors.slice(t),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,r)}}static maxErrorsToSend(e){let r,o=0,n=0;const i=e.errors.length;for(r=0;r<i;r++){const i=e.failedRequests[2*r]||t.EMPTY_STRING,s=e.failedRequests[2*r+1]||t.EMPTY_STRING,a=e.errors[r]||t.EMPTY_STRING;if(n+=i.toString().length+s.toString().length+a.length+3,!(n<He.MAX_LAST_HEADER_BYTES))break;o+=1}return o}getRegionDiscoveryFields(){const e=[];return e.push(this.regionUsed||t.EMPTY_STRING),e.push(this.regionSource||t.EMPTY_STRING),e.push(this.regionOutcome||t.EMPTY_STRING),e.join(",")}updateRegionDiscoveryMetadata(e){this.regionUsed=e.region_used,this.regionSource=e.region_source,this.regionOutcome=e.region_outcome}setCacheOutcome(e){this.cacheOutcome=e}}
|
|
66
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class In{constructor(e,t,r,o,n,i,s){this.authority=t,this.libraryName=o,this.libraryVersion=n,this.applicationTelemetry=i,this.clientId=e,this.logger=r,this.callbacks=new Map,this.eventsByCorrelationId=new Map,this.queueMeasurements=new Map,this.preQueueTimeByCorrelationId=new Map,this.intFields=s||new Set;for(const e of Wo)this.intFields.add(e)}startPerformanceMeasurement(e,t){return{}}getPreQueueTime(e,t){const r=this.preQueueTimeByCorrelationId.get(t);if(r){if(r.name===e)return r.time;this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue time found for ${e}, unable to add queue measurement`)}else this.logger.trace(`PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: ${t}, unable to add queue measurement`)}calculateQueuedTime(e,t){return e<1?(this.logger.trace(`PerformanceClient: preQueueTime should be a positive integer and not ${e}`),0):t<1?(this.logger.trace(`PerformanceClient: currentTime should be a positive integer and not ${t}`),0):t<e?(this.logger.trace("PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved"),0):t-e}addQueueMeasurement(e,t,r,o){if(!t)return void this.logger.trace(`PerformanceClient.addQueueMeasurement: correlationId not provided for ${e}, cannot add queue measurement`);if(0===r)this.logger.trace(`PerformanceClient.addQueueMeasurement: queue time provided for ${e} is ${r}`);else if(!r)return void this.logger.trace(`PerformanceClient.addQueueMeasurement: no queue time provided for ${e}`);const n={eventName:e,queueTime:o?0:r,manuallyCompleted:o},i=this.queueMeasurements.get(t);if(i)i.push(n),this.queueMeasurements.set(t,i);else{this.logger.trace(`PerformanceClient.addQueueMeasurement: adding correlationId ${t} to queue measurements`);const e=[n];this.queueMeasurements.set(t,e)}this.preQueueTimeByCorrelationId.delete(t)}startMeasurement(e,t){const r=t||this.generateId();t||this.logger.info(`PerformanceClient: No correlation id provided for ${e}, generating`,r),this.logger.trace(`PerformanceClient: Performance measurement started for ${e}`,r);const o=this.startPerformanceMeasurement(e,r);o.startMeasurement();const n={eventId:this.generateId(),status:jo,authority:this.authority,libraryName:this.libraryName,libraryVersion:this.libraryVersion,clientId:this.clientId,name:e,startTimeMs:Date.now(),correlationId:r,appName:this.applicationTelemetry?.appName,appVersion:this.applicationTelemetry?.appVersion};return this.cacheEventByCorrelationId(n),{end:e=>this.endMeasurement({...n,...e},o),discard:()=>this.discardMeasurements(n.correlationId),add:e=>this.addFields(e,n.correlationId),increment:e=>this.incrementFields(e,n.correlationId),measurement:o,event:n}}endMeasurement(e,t){const r=this.eventsByCorrelationId.get(e.correlationId);if(!r)return this.logger.trace(`PerformanceClient: Measurement not found for ${e.eventId}`,e.correlationId),null;const o=e.eventId===r.eventId;let n={totalQueueTime:0,totalQueueCount:0,manuallyCompletedCount:0};o?(n=this.getQueueInfo(e.correlationId),this.discardCache(r.correlationId)):r.incompleteSubMeasurements?.delete(e.eventId),t?.endMeasurement();const i=t?.flushMeasurement();if(!i)return this.logger.trace("PerformanceClient: Performance measurement not taken",r.correlationId),null;if(this.logger.trace(`PerformanceClient: Performance measurement ended for ${e.name}: ${i} ms`,e.correlationId),!o)return r[e.name+"DurationMs"]=Math.floor(i),{...r};let s={...r,...e},a=0;return s.incompleteSubMeasurements?.forEach((t=>{this.logger.trace(`PerformanceClient: Incomplete submeasurement ${t.name} found for ${e.name}`,s.correlationId),a++})),s.incompleteSubMeasurements=void 0,s={...s,durationMs:Math.round(i),queuedTimeMs:n.totalQueueTime,queuedCount:n.totalQueueCount,queuedManuallyCompletedCount:n.manuallyCompletedCount,status:Yo,incompleteSubsCount:a},this.truncateIntegralFields(s),this.emitEvents([s],e.correlationId),s}addFields(e,t){this.logger.trace("PerformanceClient: Updating static fields");const r=this.eventsByCorrelationId.get(t);r?this.eventsByCorrelationId.set(t,{...r,...e}):this.logger.trace("PerformanceClient: Event not found for",t)}incrementFields(e,t){this.logger.trace("PerformanceClient: Updating counters");const r=this.eventsByCorrelationId.get(t);if(r)for(const t in e){if(r.hasOwnProperty(t)){if(isNaN(Number(r[t])))return}else r[t]=0;r[t]+=e[t]}else this.logger.trace("PerformanceClient: Event not found for",t)}cacheEventByCorrelationId(e){const t=this.eventsByCorrelationId.get(e.correlationId);t?(this.logger.trace(`PerformanceClient: Performance measurement for ${e.name} added/updated`,e.correlationId),t.incompleteSubMeasurements=t.incompleteSubMeasurements||new Map,t.incompleteSubMeasurements.set(e.eventId,{name:e.name,startTimeMs:e.startTimeMs})):(this.logger.trace(`PerformanceClient: Performance measurement for ${e.name} started`,e.correlationId),this.eventsByCorrelationId.set(e.correlationId,{...e}))}getQueueInfo(e){const t=this.queueMeasurements.get(e);t||this.logger.trace(`PerformanceClient: no queue measurements found for for correlationId: ${e}`);let r=0,o=0,n=0;return t?.forEach((e=>{r+=e.queueTime,o++,n+=e.manuallyCompleted?1:0})),{totalQueueTime:r,totalQueueCount:o,manuallyCompletedCount:n}}discardMeasurements(e){this.logger.trace("PerformanceClient: Performance measurements discarded",e),this.eventsByCorrelationId.delete(e)}discardCache(e){this.discardMeasurements(e),this.logger.trace("PerformanceClient: QueueMeasurements discarded",e),this.queueMeasurements.delete(e),this.logger.trace("PerformanceClient: Pre-queue times discarded",e),this.preQueueTimeByCorrelationId.delete(e)}addPerformanceCallback(e){const t=this.generateId();return this.callbacks.set(t,e),this.logger.verbose(`PerformanceClient: Performance callback registered with id: ${t}`),t}removePerformanceCallback(e){const t=this.callbacks.delete(e);return t?this.logger.verbose(`PerformanceClient: Performance callback ${e} removed.`):this.logger.verbose(`PerformanceClient: Performance callback ${e} not removed.`),t}emitEvents(e,t){this.logger.verbose("PerformanceClient: Emitting performance events",t),this.callbacks.forEach(((r,o)=>{this.logger.trace(`PerformanceClient: Emitting event to callback ${o}`,t),r.apply(null,[e])}))}truncateIntegralFields(e){this.intFields.forEach((t=>{t in e&&"number"==typeof e[t]&&(e[t]=Math.floor(e[t]))}))}}
|
|
67
|
+
/*! @azure/msal-common v14.2.0 2023-10-20 */class _n{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class An{generateId(){return"callback-id"}startMeasurement(e,t){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:jo,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new _n}}startPerformanceMeasurement(){return new _n}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}const kn="pkce_not_created",Sn="crypto_nonexistent",En="empty_navigate_uri",bn="hash_empty_error",Rn="no_state_in_hash",Pn="hash_does_not_contain_known_properties",Mn="unable_to_parse_state",Nn="state_interaction_type_mismatch",On="interaction_in_progress",qn="popup_window_error",Ln="empty_window_error",Un="user_cancelled",Hn="monitor_popup_timeout",Bn="monitor_window_timeout",Dn="redirect_in_iframe",xn="block_iframe_reload",Kn="block_nested_popups",Fn="iframe_closed_prematurely",zn="silent_logout_unsupported",Gn="no_account_error",$n="silent_prompt_value_error",Qn="no_token_request_cache_error",jn="unable_to_parse_token_request_cache_error",Yn="no_cached_authority_error",Wn="auth_request_not_set_error",Vn="invalid_cache_type",Jn="non_browser_environment",Xn="database_not_open",Zn="no_network_connectivity",ei="post_request_failed",ti="get_request_failed",ri="failed_to_parse_response",oi="unable_to_load_token",ni="crypto_key_not_found",ii="auth_code_required",si="auth_code_or_nativeAccountId_required",ai="spa_code_and_nativeAccountId_present",ci="database_unavailable",li="unable_to_acquire_token_from_native_platform",hi="native_handshake_timeout",di="native_extension_not_installed",ui="native_connection_not_established",gi="uninitialized_public_client_application",pi="native_prompt_not_supported",mi="invalid_base64_string";var fi=Object.freeze({__proto__:null,authCodeOrNativeAccountIdRequired:si,authCodeRequired:ii,authRequestNotSetError:Wn,blockIframeReload:xn,blockNestedPopups:Kn,cryptoKeyNotFound:ni,cryptoNonExistent:Sn,databaseNotOpen:Xn,databaseUnavailable:ci,emptyNavigateUri:En,emptyWindowError:Ln,failedToParseResponse:ri,getRequestFailed:ti,hashDoesNotContainKnownProperties:Pn,hashEmptyError:bn,iframeClosedPrematurely:Fn,interactionInProgress:On,invalidBase64String:mi,invalidCacheType:Vn,monitorPopupTimeout:Hn,monitorWindowTimeout:Bn,nativeConnectionNotEstablished:ui,nativeExtensionNotInstalled:di,nativeHandshakeTimeout:hi,nativePromptNotSupported:pi,noAccountError:Gn,noCachedAuthorityError:Yn,noNetworkConnectivity:Zn,noStateInHash:Rn,noTokenRequestCacheError:Qn,nonBrowserEnvironment:Jn,pkceNotCreated:kn,popupWindowError:qn,postRequestFailed:ei,redirectInIframe:Dn,silentLogoutUnsupported:zn,silentPromptValueError:$n,spaCodeAndNativeAccountIdPresent:ai,stateInteractionTypeMismatch:Nn,unableToAcquireTokenFromNativePlatform:li,unableToLoadToken:oi,unableToParseState:Mn,unableToParseTokenRequestCacheError:jn,uninitializedPublicClientApplication:gi,userCancelled:Un});const yi="For more visit: aka.ms/msaljs/browser-errors",Ci={[kn]:"The PKCE code challenge and verifier could not be generated.",[Sn]:"The crypto object or function is not available.",[En]:"Navigation URI is empty. Please check stack trace for more info.",[bn]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${yi}`,[Rn]:"Hash does not contain state. Please verify that the request originated from msal.",[Pn]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${yi}`,[Mn]:"Unable to parse state. Please verify that the request originated from msal.",[Nn]:"Hash contains state but the interaction type does not match the caller.",[On]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${yi}`,[qn]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[Ln]:"window.open returned null or undefined window object.",[Un]:"User cancelled the flow.",[Hn]:`Token acquisition in popup failed due to timeout. ${yi}`,[Bn]:`Token acquisition in iframe failed due to timeout. ${yi}`,[Dn]:"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.",[xn]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${yi}`,[Kn]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[Fn]:"The iframe being monitored was closed prematurely.",[zn]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[Gn]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[$n]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[Qn]:"No token request found in cache.",[jn]:"The cached token request could not be parsed.",[Yn]:"No cached authority found.",[Wn]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[Vn]:"Invalid cache type",[Jn]:"Login and token requests are not supported in non-browser environments.",[Xn]:"Database is not open!",[Zn]:"No network connectivity. Check your internet connection.",[ei]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[ti]:"Network request failed. Please check the network trace to determine root cause.",[ri]:"Failed to parse network response. Check network trace.",[oi]:"Error loading token to cache.",[ni]:"Cryptographic Key or Keypair not found in browser storage.",[ii]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[si]:"An authorization code or nativeAccountId must be provided to this flow.",[ai]:"Request cannot contain both spa code and native account id.",[ci]:"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.",[li]:`Unable to acquire token from native platform. ${yi}`,[hi]:"Timed out while attempting to establish connection to browser extension",[di]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[ui]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${yi}`,[gi]:`You must call and await the initialize function before attempting to call any other MSAL API. ${yi}`,[pi]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[mi]:"Invalid base64 encoded string."},vi={pkceNotGenerated:{code:kn,desc:Ci[kn]},cryptoDoesNotExist:{code:Sn,desc:Ci[Sn]},emptyNavigateUriError:{code:En,desc:Ci[En]},hashEmptyError:{code:bn,desc:Ci[bn]},hashDoesNotContainStateError:{code:Rn,desc:Ci[Rn]},hashDoesNotContainKnownPropertiesError:{code:Pn,desc:Ci[Pn]},unableToParseStateError:{code:Mn,desc:Ci[Mn]},stateInteractionTypeMismatchError:{code:Nn,desc:Ci[Nn]},interactionInProgress:{code:On,desc:Ci[On]},popupWindowError:{code:qn,desc:Ci[qn]},emptyWindowError:{code:Ln,desc:Ci[Ln]},userCancelledError:{code:Un,desc:Ci[Un]},monitorPopupTimeoutError:{code:Hn,desc:Ci[Hn]},monitorIframeTimeoutError:{code:Bn,desc:Ci[Bn]},redirectInIframeError:{code:Dn,desc:Ci[Dn]},blockTokenRequestsInHiddenIframeError:{code:xn,desc:Ci[xn]},blockAcquireTokenInPopupsError:{code:Kn,desc:Ci[Kn]},iframeClosedPrematurelyError:{code:Fn,desc:Ci[Fn]},silentLogoutUnsupportedError:{code:zn,desc:Ci[zn]},noAccountError:{code:Gn,desc:Ci[Gn]},silentPromptValueError:{code:$n,desc:Ci[$n]},noTokenRequestCacheError:{code:Qn,desc:Ci[Qn]},unableToParseTokenRequestCacheError:{code:jn,desc:Ci[jn]},noCachedAuthorityError:{code:Yn,desc:Ci[Yn]},authRequestNotSet:{code:Wn,desc:Ci[Wn]},invalidCacheType:{code:Vn,desc:Ci[Vn]},notInBrowserEnvironment:{code:Jn,desc:Ci[Jn]},databaseNotOpen:{code:Xn,desc:Ci[Xn]},noNetworkConnectivity:{code:Zn,desc:Ci[Zn]},postRequestFailed:{code:ei,desc:Ci[ei]},getRequestFailed:{code:ti,desc:Ci[ti]},failedToParseNetworkResponse:{code:ri,desc:Ci[ri]},unableToLoadTokenError:{code:oi,desc:Ci[oi]},signingKeyNotFoundInStorage:{code:ni,desc:Ci[ni]},authCodeRequired:{code:ii,desc:Ci[ii]},authCodeOrNativeAccountRequired:{code:si,desc:Ci[si]},spaCodeAndNativeAccountPresent:{code:ai,desc:Ci[ai]},databaseUnavailable:{code:ci,desc:Ci[ci]},unableToAcquireTokenFromNativePlatform:{code:li,desc:Ci[li]},nativeHandshakeTimeout:{code:hi,desc:Ci[hi]},nativeExtensionNotInstalled:{code:di,desc:Ci[di]},nativeConnectionNotEstablished:{code:ui,desc:Ci[ui]},uninitializedPublicClientApplication:{code:gi,desc:Ci[gi]},nativePromptNotSupported:{code:pi,desc:Ci[pi]},invalidBase64StringError:{code:mi,desc:Ci[mi]}};class wi extends ut{constructor(e){super(e,Ci[e]),Object.setPrototypeOf(this,wi.prototype),this.name="BrowserAuthError"}}function Ti(e){return new wi(e)}const Ii={INTERACTION_IN_PROGRESS_VALUE:"interaction_in_progress",INVALID_GRANT_ERROR:"invalid_grant",POPUP_WIDTH:483,POPUP_HEIGHT:600,POPUP_NAME_PREFIX:"msal",DEFAULT_POLL_INTERVAL_MS:30,MSAL_SKU:"msal.js.browser"},_i="53ee284d-920a-4b59-9d30-a60315b26836",Ai="ppnbnpeolgkicgegkbkbjmhlideopiji",ki="MATS",Si="Handshake",Ei="HandshakeResponse",bi="GetToken",Ri="Response",Pi={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},Mi="GET",Ni="POST",Oi="authority",qi="request.state",Li="nonce.id_token",Ui="request.origin",Hi="urlHash",Bi="request.params",Di="interaction.status",xi="ccs.credential",Ki="request.correlationId",Fi="request.native",zi="request.redirect.context",Gi="msal.account.keys",$i="msal.token.keys",Qi="wrapper.sku",ji="wrapper.version",Yi={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var Wi;e.InteractionType=void 0,(Wi=e.InteractionType||(e.InteractionType={})).Redirect="redirect",Wi.Popup="popup",Wi.Silent="silent",Wi.None="none";const Vi={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},Ji={scopes:s},Xi="msal.db",Zi=`${Xi}.keys`,es={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5};function ts(e){e.location.hash="","function"==typeof e.history.replaceState&&e.history.replaceState(null,"",`${e.location.origin}${e.location.pathname}${e.location.search}`)}function rs(e){const t=e.split("#");t.shift(),window.location.hash=t.length>0?t.join("#"):""}function os(){return window.parent!==window}function ns(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${Ii.POPUP_NAME_PREFIX}.`)}function is(){return window.location.href.split("?")[0].split("#")[0]}function ss(){const e=new eo(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}function as(){if(eo.hashContainsKnownProperties(window.location.hash)&&os())throw Ti(xn)}function cs(t,r){const o=os();if(t===e.InteractionType.Redirect&&o&&!r)throw Ti(Dn)}function ls(){if(ns())throw Ti(Kn)}function hs(e){if(!e)throw Ti(Jn)}function ds(e){if(!e)throw Ti(gi)}function us(e){const t=document.createElement("link");t.rel="preconnect",t.href=new URL(e).origin,t.crossOrigin="anonymous",document.head.appendChild(t),window.setTimeout((()=>{try{document.head.removeChild(t)}catch{}}),1e4)}var gs=Object.freeze({__proto__:null,blockAPICallsBeforeInitialize:ds,blockAcquireTokenInPopups:ls,blockNonBrowserEnvironment:hs,blockRedirectInIframe:cs,blockReloadInHiddenIframes:as,clearHash:ts,getCurrentUri:is,getHomepage:ss,isInIframe:os,isInPopup:ns,preconnect:us,replaceHash:rs});class ps{navigateInternal(e,t){return ps.defaultNavigateWindow(e,t)}navigateExternal(e,t){return ps.defaultNavigateWindow(e,t)}static defaultNavigateWindow(e,t){return t.noHistory?window.location.replace(e):window.location.assign(e),new Promise((e=>{setTimeout((()=>{e(!0)}),t.timeout)}))}}class ms{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:Mi,headers:this.getFetchHeaders(t)})}catch(e){throw window.navigator.onLine?Ti(ti):Ti(Zn)}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(e){throw Ti(ri)}}async sendPostRequestAsync(e,r){const o=r&&r.body||t.EMPTY_STRING;let n;try{n=await fetch(e,{method:Ni,headers:this.getFetchHeaders(r),body:o})}catch(e){throw window.navigator.onLine?Ti(ei):Ti(Zn)}try{return{headers:this.getHeaderDict(n.headers),body:await n.json(),status:n.status}}catch(e){throw Ti(ri)}}getFetchHeaders(e){const t=new Headers;if(!e||!e.headers)return t;const r=e.headers;return Object.keys(r).forEach((e=>{t.append(e,r[e])})),t}getHeaderDict(e){const t={};return e.forEach(((e,r)=>{t[r]=e})),t}}const fs=6e3;const ys="@azure/msal-browser",Cs="3.3.0";class vs{constructor(r){this.browserEnvironment="undefined"!=typeof window,this.config=function({auth:r,cache:o,system:n,telemetry:i},s){const a={clientId:t.EMPTY_STRING,authority:`${t.DEFAULT_AUTHORITY}`,knownAuthorities:[],cloudDiscoveryMetadata:t.EMPTY_STRING,authorityMetadata:t.EMPTY_STRING,redirectUri:t.EMPTY_STRING,postLogoutRedirectUri:t.EMPTY_STRING,navigateToLoginRequestUrl:!0,clientCapabilities:[],protocolMode:Vr.AAD,OIDCOptions:{serverResponseType:fe.FRAGMENT,defaultScopes:[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:pr.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1},c={cacheLocation:Pi.SessionStorage,temporaryCacheLocation:Pi.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!o||o.cacheLocation!==Pi.LocalStorage),claimsBasedCachingEnabled:!1},l={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},h={...{...co,loggerOptions:l,networkClient:s?new ms:pn,navigationClient:new ps,loadFrameTimeout:0,windowHashTimeout:n?.loadFrameTimeout||6e4,iframeHashTimeout:n?.loadFrameTimeout||fs,navigateFrameWait:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:n?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:Ii.DEFAULT_POLL_INTERVAL_MS},...n,loggerOptions:n?.loggerOptions||l},d={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING},client:new An};r?.protocolMode!==Vr.OIDC&&r?.OIDCOptions&&new dr(h.loggerOptions).warning(JSON.stringify(Kr(qr)));if(r?.protocolMode&&r.protocolMode!==Vr.AAD&&h?.allowNativeBroker)throw Kr(Lr);return{auth:{...a,...r,OIDCOptions:{...a.OIDCOptions,...r?.OIDCOptions}},cache:{...c,...o},system:h,telemetry:{...d,...i}}}(r,this.browserEnvironment),this.logger=new dr(this.config.system.loggerOptions,ys,Cs),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class ws{static async initializeNestedAppAuthBridge(){if(void 0===window)throw new Error("window is undefined");if(void 0===window.nestedAppAuthBridge)throw new Error("window.nestedAppAuthBridge is undefined");if(void 0===window.crypto)throw new Error("window.crypto is undefined");try{ws.crypto=window.crypto,window.nestedAppAuthBridge.addEventListener("message",(e=>{const t=JSON.parse(e),r=ws.bridgeRequests.find((e=>e.requestId===t.requestId));void 0!==r&&(ws.bridgeRequests.splice(ws.bridgeRequests.indexOf(r),1),t.success?r.resolve(t.body):r.reject(t.body))}));return new Promise(((e,t)=>{const r={messageType:"NestedAppAuthRequest",method:"GetInitContext",requestId:ws.getRandomId()},o={requestId:r.requestId,method:r.method,resolve:e,reject:t};ws.bridgeRequests.push(o),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))}))}catch(e){throw window.console.log(e),e}}static getRandomId(){return ws.crypto.randomUUID()}getTokenInteractive(e){return this.sendRequest("GetTokenPopup",e)}getTokenSilent(e){return this.sendRequest("GetToken",e)}getAccountInfo(e){let t="GetAccountByHomeId";return void 0!==e.homeAccountId&&(t="GetAccountByHomeId"),void 0!==e.localAccountId&&(t="GetAccountByLocalId"),void 0!==e.username&&(t="GetAccountByUsername"),this.sendRequest(t,e)}getActiveAccount(){return this.sendRequest("GetActiveAccount",void 0)}sendRequest(e,t){const r={messageType:"NestedAppAuthRequest",method:e,requestId:ws.getRandomId(),body:t},o=new Promise(((e,t)=>{const o={requestId:r.requestId,method:r.method,resolve:e,reject:t};ws.bridgeRequests.push(o),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))}));return o}constructor(e,t,r){this.sdkName=e,this.sdkVersion=t,this.capabilities=r}static async create(){const e=await ws.initializeNestedAppAuthBridge();return new ws(e.sdkName,e.sdkVersion,e.capabilities)}}ws.bridgeRequests=[];class Ts extends vs{constructor(){super(...arguments),this.bridgeProxy=void 0,this.activeAccount=void 0}getModuleName(){return Ts.MODULE_NAME}getId(){return Ts.ID}getBridgeProxy(){return this.bridgeProxy}getActiveAccount(){return this.activeAccount}setActiveAccount(e){this.activeAccount=e}async initialize(){try{if("undefined"!=typeof window){const e=await ws.create();try{this.activeAccount=await e.getActiveAccount()}catch(e){this.activeAccount=void 0}this.bridgeProxy=e,this.available=void 0!==e}else this.available=!1}catch(e){this.available=!1}finally{return this.available}}}Ts.MODULE_NAME="",Ts.ID="TeamsAppOperatingContext";class Is extends vs{getModuleName(){return Is.MODULE_NAME}getId(){return Is.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}Is.MODULE_NAME="",Is.ID="StandardOperatingContext";class _s{constructor(e){this.config=e;const t={loggerCallback:void 0,piiLoggingEnabled:!1,logLevel:void 0,correlationId:void 0};this.logger=new dr(t,ys,Cs)}async createV3Controller(){const e=new Is(this.config);await e.initialize();const t=await Promise.resolve().then((function(){return Ua}));return await t.StandardController.createController(e)}async createController(){const e=new Is(this.config),t=new Ts(this.config),r=[e.initialize(),t.initialize()];if(await Promise.all(r),t.isAvailable()&&t.getConfig().auth.supportsNestedAppAuth){const e=await Promise.resolve().then((function(){return Ya}));return await e.NestedAppAuthController.createController(t)}if(e.isAvailable()){const t=await Promise.resolve().then((function(){return Ua}));return await t.StandardController.createController(e)}return null}}function As(e){return encodeURIComponent(Ss(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function ks(e){return Es(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Ss(e){return Es((new TextEncoder).encode(e))}function Es(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}function bs(e){return(new TextDecoder).decode(function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Ti(mi)}const r=atob(t);return Uint8Array.from(r,(e=>e.codePointAt(0)||0))}(e))}const Rs="SHA-256",Ps=new Uint8Array([1,0,1]),Ms={name:"RSASSA-PKCS1-v1_5",hash:Rs,modulusLength:2048,publicExponent:Ps};async function Ns(e,t,r){t?.addQueueMeasurement(Qo.Sha256Digest,r);const o=(new TextEncoder).encode(e);return window.crypto.subtle.digest(Rs,o)}function Os(e){return window.crypto.getRandomValues(e)}function qs(){return window.crypto.randomUUID()}async function Ls(e){return window.crypto.subtle.exportKey("jwk",e)}class Us{constructor(){this.dbName=Xi,this.version=1,this.tableName=Zi,this.dbOpen=!1}async open(){return new Promise(((e,t)=>{const r=window.indexedDB.open(this.dbName,this.version);r.addEventListener("upgradeneeded",(e=>{e.target.result.createObjectStore(this.tableName)})),r.addEventListener("success",(t=>{const r=t;this.db=r.target.result,this.dbOpen=!0,e()})),r.addEventListener("error",(()=>t(Ti(ci))))}))}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return await this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(Ti(Xn));const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async setItem(e,t){return await this.validateDbIsOpen(),new Promise(((r,o)=>{if(!this.db)return o(Ti(Xn));const n=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(t,e);n.addEventListener("success",(()=>{this.closeConnection(),r()})),n.addEventListener("error",(e=>{this.closeConnection(),o(e)}))}))}async removeItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(Ti(Xn));const o=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);o.addEventListener("success",(()=>{this.closeConnection(),t()})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async getKeys(){return await this.validateDbIsOpen(),new Promise(((e,t)=>{if(!this.db)return t(Ti(Xn));const r=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAllKeys();r.addEventListener("success",(t=>{const r=t;this.closeConnection(),e(r.target.result)})),r.addEventListener("error",(e=>{this.closeConnection(),t(e)}))}))}async containsKey(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(Ti(Xn));const o=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);o.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(1===r.target.result)})),o.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async deleteDatabase(){return this.db&&this.dbOpen&&this.closeConnection(),new Promise(((e,t)=>{const r=window.indexedDB.deleteDatabase(Xi);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class Hs{constructor(){this.cache=new Map}getItem(e){return this.cache.get(e)||null}setItem(e,t){this.cache.set(e,t)}removeItem(e){this.cache.delete(e)}getKeys(){const e=[];return this.cache.forEach(((t,r)=>{e.push(r)})),e}containsKey(e){return this.cache.has(e)}clear(){this.cache.clear()}}class Bs{constructor(e,t){this.inMemoryCache=new Hs,this.indexedDBCache=new Us,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof wi&&e.errorCode===ci))throw e;this.logger.error("Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.")}async getItem(e){const t=this.inMemoryCache.getItem(e);if(!t)try{return this.logger.verbose("Queried item not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.getItem(e)}catch(e){this.handleDatabaseAccessError(e)}return t}async setItem(e,t){this.inMemoryCache.setItem(e,t);try{await this.indexedDBCache.setItem(e,t)}catch(e){this.handleDatabaseAccessError(e)}}async removeItem(e){this.inMemoryCache.removeItem(e);try{await this.indexedDBCache.removeItem(e)}catch(e){this.handleDatabaseAccessError(e)}}async getKeys(){const e=this.inMemoryCache.getKeys();if(0===e.length)try{return this.logger.verbose("In-memory cache is empty, now querying persistent storage."),await this.indexedDBCache.getKeys()}catch(e){this.handleDatabaseAccessError(e)}return e}async containsKey(e){const t=this.inMemoryCache.containsKey(e);if(!t)try{return this.logger.verbose("Key not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.containsKey(e)}catch(e){this.handleDatabaseAccessError(e)}return t}clearInMemory(){this.logger.verbose(`Deleting in-memory keystore ${this.storeName}`),this.inMemoryCache.clear(),this.logger.verbose(`In-memory keystore ${this.storeName} deleted`)}async clearPersistent(){try{this.logger.verbose("Deleting persistent keystore");const e=await this.indexedDBCache.deleteDatabase();return e&&this.logger.verbose("Persistent keystore deleted"),e}catch(e){return this.handleDatabaseAccessError(e),!1}}}const Ds="asymmetricKeys",xs="symmetricKeys";class Ks{constructor(e){this.logger=e,this.asymmetricKeys=new Bs(this.logger,Ds),this.symmetricKeys=new Bs(this.logger,xs)}async clear(){this.asymmetricKeys.clearInMemory(),this.symmetricKeys.clearInMemory();try{return await this.asymmetricKeys.clearPersistent(),!0}catch(e){return e instanceof Error?this.logger.error(`Clearing keystore failed with error: ${e.message}`):this.logger.error("Clearing keystore failed with unknown error"),!1}}}class Fs{constructor(e,t){this.logger=e,function(e){if(!("crypto"in window))throw e.error("BrowserCrypto: crypto interface is unavailable"),Ti(Sn);e.verbose("BrowserCrypto: modern crypto interface available")}(e),this.cache=new Ks(this.logger),this.performanceClient=t}createNewGuid(){return qs()}base64Encode(e){return Ss(e)}base64Decode(e){return bs(e)}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(Qo.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await async function(e,t){return window.crypto.subtle.generateKey(Ms,e,t)}(Fs.EXTRACTABLE,Fs.POP_KEY_USAGES),o=await Ls(r.publicKey),n=zs({e:o.e,kty:o.kty,n:o.n}),i=await this.hashString(n),s=await Ls(r.privateKey),a=await async function(e,t,r){return window.crypto.subtle.importKey("jwk",e,Ms,t,r)}(s,!1,["sign"]);return await this.cache.asymmetricKeys.setItem(i,{privateKey:a,publicKey:r.publicKey,requestMethod:e.resourceRequestMethod,requestUri:e.resourceRequestUri}),t&&t.end({success:!0}),i}async removeTokenBindingKey(e){await this.cache.asymmetricKeys.removeItem(e);return!await this.cache.asymmetricKeys.containsKey(e)}async clearKeystore(){return await this.cache.clear()}async signJwt(e,t,r){const o=this.performanceClient?.startMeasurement(Qo.CryptoOptsSignJwt,r),n=await this.cache.asymmetricKeys.getItem(t);if(!n)throw Ti(ni);const i=await Ls(n.publicKey),s=zs(i),a=As(JSON.stringify({kid:t})),c=As(wn.getShrHeaderString({kid:a,alg:i.alg}));e.cnf={jwk:JSON.parse(s)};const l=`${c}.${As(JSON.stringify(e))}`,h=(new TextEncoder).encode(l),d=await async function(e,t){return window.crypto.subtle.sign(Ms,e,t)}(n.privateKey,h),u=`${l}.${ks(new Uint8Array(d))}`;return o&&o.end({success:!0}),u}async hashString(e){const t=await Ns(e);return ks(new Uint8Array(t))}}function zs(e){return JSON.stringify(e,Object.keys(e).sort())}Fs.POP_KEY_USAGES=["sign","verify"],Fs.EXTRACTABLE=!0;const Gs="storage_not_supported",$s="stubbed_public_client_application_called",Qs="in_mem_redirect_unavailable";var js=Object.freeze({__proto__:null,inMemRedirectUnavailable:Qs,storageNotSupported:Gs,stubbedPublicClientApplicationCalled:$s});const Ys={[Gs]:"Given storage configuration option was not supported.",[$s]:"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",[Qs]:"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."},Ws={storageNotSupportedError:{code:Gs,desc:Ys[Gs]},stubPcaInstanceCalled:{code:$s,desc:Ys[$s]},inMemRedirectUnavailable:{code:Qs,desc:Ys[Qs]}};class Vs extends ut{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,Vs.prototype)}}function Js(e){return new Vs(e,Ys[e])}class Xs{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==Pi.LocalStorage&&e!==Pi.SessionStorage||!window[e])throw Js(Gs)}getItem(e){return this.windowStorage.getItem(e)}setItem(e,t){this.windowStorage.setItem(e,t)}removeItem(e){this.windowStorage.removeItem(e)}getKeys(){return Object.keys(this.windowStorage)}containsKey(e){return this.windowStorage.hasOwnProperty(e)}}class Zs{static extractBrowserRequestState(e,t){if(!t)return null;try{return $o.parseRequestState(e,t).libraryState.meta}catch(e){throw cr(It)}}static parseServerResponseFromHash(e){if(!e)return{};const t=new eo(e);return eo.getDeserializedHash(t.getHash())}}class ea extends so{constructor(e,t,r,o,n){super(e,r,o,n),this.COOKIE_LIFE_MULTIPLIER=864e5,this.cacheConfig=t,this.logger=o,this.internalStorage=new Hs,this.browserStorage=this.setupBrowserStorage(this.cacheConfig.cacheLocation),this.temporaryCacheStorage=this.setupTemporaryCacheStorage(this.cacheConfig.temporaryCacheLocation,this.cacheConfig.cacheLocation),t.cacheMigrationEnabled&&(this.migrateCacheEntries(),this.createKeyMaps())}setupBrowserStorage(e){switch(e){case Pi.LocalStorage:case Pi.SessionStorage:try{return new Xs(e)}catch(e){this.logger.verbose(e);break}}return this.cacheConfig.cacheLocation=Pi.MemoryStorage,new Hs}setupTemporaryCacheStorage(e,t){switch(t){case Pi.LocalStorage:case Pi.SessionStorage:try{return new Xs(e||Pi.SessionStorage)}catch(e){return this.logger.verbose(e),this.internalStorage}default:return this.internalStorage}}migrateCacheEntries(){const e=`${t.CACHE_PREFIX}.${m}`,r=`${t.CACHE_PREFIX}.${f}`,o=`${t.CACHE_PREFIX}.${C}`,n=`${t.CACHE_PREFIX}.${v}`,i=[this.browserStorage.getItem(e),this.browserStorage.getItem(r),this.browserStorage.getItem(o),this.browserStorage.getItem(n)];[m,f,C,v].forEach(((e,t)=>this.migrateCacheEntry(e,i[t])))}migrateCacheEntry(e,t){t&&this.setTemporaryCache(e,t,!0)}createKeyMaps(){this.logger.trace("BrowserCacheManager - createKeyMaps called.");const e=this.getItem(Gi),t=this.getItem(`${$i}.${this.clientId}`);if(e&&t)return void this.logger.verbose("BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.");this.browserStorage.getKeys().forEach((e=>{if(this.isCredentialKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);if(r&&r.hasOwnProperty("credentialType"))switch(r.credentialType){case ke.ID_TOKEN:if(Eo.isIdTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - idToken with key: ${e} found, saving key to token key map`);const t=so.toObject(new Eo,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,ke.ID_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed idToken validation on key: ${e}`);break;case ke.ACCESS_TOKEN:case ke.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(Ro.isAccessTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - accessToken with key: ${e} found, saving key to token key map`);const t=so.toObject(new Ro,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,ke.ACCESS_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed accessToken validation on key: ${e}`);break;case ke.REFRESH_TOKEN:if(Po.isRefreshTokenEntity(r)){this.logger.trace("BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - refreshToken with key: ${e} found, saving key to token key map`);const t=so.toObject(new Po,r),o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,ke.REFRESH_TOKEN)}this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: ${e}`)}}}if(this.isAccountKey(e)){const t=this.getItem(e);if(t){const r=this.validateAndParseJson(t);r&&Jr.isAccountEntity(r)&&(this.logger.trace("BrowserCacheManager:createKeyMaps - account found, saving key to account key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - account with key: ${e} found, saving key to account key map`),this.addAccountKeyToMap(e))}}}))}validateAndParseJson(e){try{const t=JSON.parse(e);return t&&"object"==typeof t?t:null}catch(e){return null}}getItem(e){return this.browserStorage.getItem(e)}setItem(e,t){this.browserStorage.setItem(e,t)}getAccount(e){this.logger.trace("BrowserCacheManager.getAccount called");const t=this.getItem(e);if(!t)return this.removeAccountKeyFromMap(e),null;const r=this.validateAndParseJson(t);return r&&Jr.isAccountEntity(r)?so.toObject(new Jr,r):(this.removeAccountKeyFromMap(e),null)}setAccount(e){this.logger.trace("BrowserCacheManager.setAccount called");const t=e.generateAccountKey();this.setItem(t,JSON.stringify(e)),this.addAccountKeyToMap(t)}getAccountKeys(){this.logger.trace("BrowserCacheManager.getAccountKeys called");const e=this.getItem(Gi);return e?JSON.parse(e):(this.logger.verbose("BrowserCacheManager.getAccountKeys - No account keys found"),[])}addAccountKeyToMap(e){this.logger.trace("BrowserCacheManager.addAccountKeyToMap called"),this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${e}`);const t=this.getAccountKeys();-1===t.indexOf(e)?(t.push(e),this.setItem(Gi,JSON.stringify(t)),this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key added")):this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key already exists in map")}removeAccountKeyFromMap(e){this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap called"),this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${e}`);const t=this.getAccountKeys(),r=t.indexOf(e);r>-1?(t.splice(r,1),this.setItem(Gi,JSON.stringify(t)),this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap account key removed")):this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap key not found in existing map")}async removeAccount(e){super.removeAccount(e),this.removeAccountKeyFromMap(e)}removeIdToken(e){super.removeIdToken(e),this.removeTokenKey(e,ke.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,ke.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,ke.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${$i}.${this.clientId}`);if(e){const t=this.validateAndParseJson(e);if(t&&t.hasOwnProperty("idToken")&&t.hasOwnProperty("accessToken")&&t.hasOwnProperty("refreshToken"))return t;this.logger.error("BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.")}else this.logger.verbose("BrowserCacheManager.getTokenKeys - No token keys found");return{idToken:[],accessToken:[],refreshToken:[]}}addTokenKey(e,t){this.logger.trace("BrowserCacheManager addTokenKey called");const r=this.getTokenKeys();switch(t){case ke.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case ke.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case ke.REFRESH_TOKEN:-1===r.refreshToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - refreshToken added to map"),r.refreshToken.push(e));break;default:throw this.logger.error(`BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: ${t}`),cr(zt)}this.setItem(`${$i}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case ke.ID_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: ${e} from map`);const o=r.idToken.indexOf(e);o>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - idToken removed from map"),r.idToken.splice(o,1)):this.logger.info("BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.");break;case ke.ACCESS_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: ${e} from map`);const n=r.accessToken.indexOf(e);n>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - accessToken removed from map"),r.accessToken.splice(n,1)):this.logger.info("BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.");break;case ke.REFRESH_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: ${e} from map`);const i=r.refreshToken.indexOf(e);i>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken removed from map"),r.refreshToken.splice(i,1)):this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.");break;default:throw this.logger.error(`BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: ${t}`),cr(zt)}this.setItem(`${$i}.${this.clientId}`,JSON.stringify(r))}getIdTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,ke.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Eo.isIdTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),so.toObject(new Eo,r)):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,ke.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,ke.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,ke.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Ro.isAccessTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),so.toObject(new Ro,r)):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,ke.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,ke.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,ke.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Po.isRefreshTokenEntity(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),so.toObject(new Po,r)):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,ke.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=e.generateCredentialKey();this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,ke.REFRESH_TOKEN)}getAppMetadata(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&en.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),so.toObject(new en,r)):(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null)}setAppMetadata(e){this.logger.trace("BrowserCacheManager.setAppMetadata called");const t=e.generateAppMetadataKey();this.setItem(t,JSON.stringify(e))}getServerTelemetry(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&un.isServerTelemetryEntity(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),so.toObject(new un,r)):(this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null)}setServerTelemetry(e,t){this.logger.trace("BrowserCacheManager.setServerTelemetry called"),this.setItem(e,JSON.stringify(t))}getAuthorityMetadata(e){const t=this.internalStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAuthorityMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&an.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),so.toObject(new an,r)):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(Qi,e),this.internalStorage.setItem(ji,t)}getWrapperMetadata(){return[this.internalStorage.getItem(Qi)||t.EMPTY_STRING,this.internalStorage.getItem(ji)||t.EMPTY_STRING]}setAuthorityMetadata(e,t){this.logger.trace("BrowserCacheManager.setAuthorityMetadata called"),this.internalStorage.setItem(e,JSON.stringify(t))}getActiveAccount(){const e=this.generateCacheKey(T),t=this.getItem(e);if(!t){this.logger.trace("BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema");const e=this.generateCacheKey(w),t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null;const r=this.getAccountInfoFilteredBy({localAccountId:t});return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Legacy active account cache schema found"),this.logger.trace("BrowserCacheManager.getActiveAccount: Adding active account filters cache schema"),this.setActiveAccount(r),r):null}const r=this.validateAndParseJson(t);return r?(this.logger.trace("BrowserCacheManager.getActiveAccount: Active account filters schema found"),this.getAccountInfoFilteredBy({homeAccountId:r.homeAccountId,localAccountId:r.localAccountId})):(this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null)}setActiveAccount(e){const t=this.generateCacheKey(T),r=this.generateCacheKey(w);if(e){this.logger.verbose("setActiveAccount: Active account set");const o={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId};this.browserStorage.setItem(t,JSON.stringify(o)),this.browserStorage.setItem(r,e.localAccountId)}else this.logger.verbose("setActiveAccount: No account passed, active account not set"),this.browserStorage.removeItem(t),this.browserStorage.removeItem(r)}getThrottlingCache(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&gn.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),so.toObject(new gn,r)):(this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null)}setThrottlingCache(e,t){this.logger.trace("BrowserCacheManager.setThrottlingCache called"),this.setItem(e,JSON.stringify(t))}getTemporaryCache(e,t){const r=t?this.generateCacheKey(e):e;if(this.cacheConfig.storeAuthStateInCookie){const e=this.getItemCookie(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies"),e}const o=this.temporaryCacheStorage.getItem(r);if(!o){if(this.cacheConfig.cacheLocation===Pi.LocalStorage){const e=this.browserStorage.getItem(r);if(e)return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage"),e}return this.logger.trace("BrowserCacheManager.getTemporaryCache: No cache item found in local storage"),null}return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item returned"),o}setTemporaryCache(e,t,r){const o=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(o,t),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.setItemCookie(o,t))}removeItem(e){this.browserStorage.removeItem(e),this.temporaryCacheStorage.removeItem(e),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie"),this.clearItemCookie(e))}containsKey(e){return this.browserStorage.containsKey(e)||this.temporaryCacheStorage.containsKey(e)}getKeys(){return[...this.browserStorage.getKeys(),...this.temporaryCacheStorage.getKeys()]}async clear(){await this.removeAllAccounts(),this.removeAppMetadata(),this.getKeys().forEach((e=>{!this.browserStorage.containsKey(e)&&!this.temporaryCacheStorage.containsKey(e)||-1===e.indexOf(t.CACHE_PREFIX)&&-1===e.indexOf(this.clientId)||this.removeItem(e)})),this.internalStorage.clear()}async clearTokensAndKeysWithClaims(e){e.addQueueMeasurement(Qo.ClearTokensAndKeysWithClaims);const t=this.getTokenKeys(),r=[];t.accessToken.forEach((e=>{const t=this.getAccessTokenCredential(e);t?.requestedClaimsHash&&e.includes(t.requestedClaimsHash.toLowerCase())&&r.push(this.removeAccessToken(e))})),await Promise.all(r),r.length>0&&this.logger.warning(`${r.length} access tokens with claims in the cache keys have been removed from the cache.`)}setItemCookie(e,t,r){let o=`${encodeURIComponent(e)}=${encodeURIComponent(t)};path=/;SameSite=Lax;`;if(r){o+=`expires=${this.getCookieExpirationTime(r)};`}this.cacheConfig.secureCookies&&(o+="Secure;"),document.cookie=o}getItemCookie(e){const r=`${encodeURIComponent(e)}=`,o=document.cookie.split(";");for(let e=0;e<o.length;e++){let t=o[e];for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(r))return decodeURIComponent(t.substring(r.length,t.length))}return t.EMPTY_STRING}clearMsalCookies(){const e=`${t.CACHE_PREFIX}.${this.clientId}`;document.cookie.split(";").forEach((t=>{for(;" "===t.charAt(0);)t=t.substring(1);if(0===t.indexOf(e)){const e=t.split("=")[0];this.clearItemCookie(e)}}))}clearItemCookie(e){this.setItemCookie(e,t.EMPTY_STRING,-1)}getCookieExpirationTime(e){const t=new Date;return new Date(t.getTime()+e*this.COOKIE_LIFE_MULTIPLIER).toUTCString()}getCache(){return this.browserStorage}setCache(){}generateCacheKey(e){return this.validateAndParseJson(e)?JSON.stringify(e):Fr.startsWith(e,t.CACHE_PREFIX)||Fr.startsWith(e,y)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=$o.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Oi}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=$o.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Li}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=$o.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${qi}.${t}`)}getCachedAuthority(e){const t=this.generateStateKey(e),r=this.getTemporaryCache(t);if(!r)return null;const o=this.generateAuthorityKey(r);return this.getTemporaryCache(o)}updateCacheEntries(e,t,r,o,n){this.logger.trace("BrowserCacheManager.updateCacheEntries called");const i=this.generateStateKey(e);this.setTemporaryCache(i,e,!1);const s=this.generateNonceKey(e);this.setTemporaryCache(s,t,!1);const a=this.generateAuthorityKey(e);if(this.setTemporaryCache(a,r,!1),n){const e={credential:n.homeAccountId,type:To};this.setTemporaryCache(xi,JSON.stringify(e),!0)}else if(o){const e={credential:o,type:Io};this.setTemporaryCache(xi,JSON.stringify(e),!0)}}resetRequestCache(e){this.logger.trace("BrowserCacheManager.resetRequestCache called"),e&&(this.getKeys().forEach((t=>{-1!==t.indexOf(e)&&this.removeItem(t)})),this.removeItem(this.generateStateKey(e)),this.removeItem(this.generateNonceKey(e)),this.removeItem(this.generateAuthorityKey(e))),this.removeItem(this.generateCacheKey(Bi)),this.removeItem(this.generateCacheKey(Ui)),this.removeItem(this.generateCacheKey(Hi)),this.removeItem(this.generateCacheKey(Ki)),this.removeItem(this.generateCacheKey(xi)),this.removeItem(this.generateCacheKey(Fi)),this.setInteractionInProgress(!1)}cleanRequestByState(e){if(this.logger.trace("BrowserCacheManager.cleanRequestByState called"),e){const r=this.generateStateKey(e),o=this.temporaryCacheStorage.getItem(r);this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${o}`),this.resetRequestCache(o||t.EMPTY_STRING)}this.clearMsalCookies()}cleanRequestByInteractionType(e){this.logger.trace("BrowserCacheManager.cleanRequestByInteractionType called"),this.getKeys().forEach((t=>{if(-1===t.indexOf(qi))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=Zs.extractBrowserRequestState(this.cryptoImpl,r);o&&o.interactionType===e&&(this.logger.infoPii(`BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: ${r}`),this.resetRequestCache(r))})),this.clearMsalCookies(),this.setInteractionInProgress(!1)}cacheCodeRequest(e){this.logger.trace("BrowserCacheManager.cacheCodeRequest called");const t=Ss(JSON.stringify(e));this.setTemporaryCache(Bi,t,!0)}getCachedRequest(e){this.logger.trace("BrowserCacheManager.getCachedRequest called");const t=this.getTemporaryCache(Bi,!0);if(!t)throw Ti(Qn);let r;try{r=JSON.parse(bs(t))}catch(e){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${e}`),Ti(jn)}if(this.removeItem(this.generateCacheKey(Bi)),!r.authority){const t=this.generateAuthorityKey(e),o=this.getTemporaryCache(t);if(!o)throw Ti(Yn);r.authority=o}return r}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(Fi,!0);if(!e)return this.logger.trace("BrowserCacheManager.getCachedNativeRequest: No cached native request found"),null;const t=this.validateAndParseJson(e);return t||(this.logger.error("BrowserCacheManager.getCachedNativeRequest: Unable to parse native request"),null)}isInteractionInProgress(e){const t=this.getInteractionInProgress();return e?t===this.clientId:!!t}getInteractionInProgress(){const e=`${t.CACHE_PREFIX}.${Di}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${Di}`;if(e){if(this.getInteractionInProgress())throw Ti(On);this.setTemporaryCache(r,this.clientId,!1)}else e||this.getInteractionInProgress()!==this.clientId||this.removeItem(r)}getLegacyLoginHint(){const e=this.getTemporaryCache(y);e&&(this.browserStorage.removeItem(y),this.logger.verbose("Cached ADAL id token retrieved."));const t=this.getTemporaryCache(m,!0);t&&(this.removeItem(this.generateCacheKey(m)),this.logger.verbose("Cached MSAL.js v1 id token retrieved"));const r=t||e;if(r){const e=Xr(r,bs);if(e.preferred_username)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint"),e.preferred_username;if(e.upn)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint"),e.upn;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.")}return null}updateCredentialCacheKey(e,t){const r=t.generateCredentialKey();if(e!==r){const o=this.getItem(e);if(o)return this.removeItem(e),this.setItem(r,o),this.logger.verbose(`Updated an outdated ${t.credentialType} cache key`),r;this.logger.error(`Attempted to update an outdated ${t.credentialType} cache key but no item matching the outdated key was found in storage`)}return e}getRedirectRequestContext(){return this.getTemporaryCache(zi,!0)}setRedirectRequestContext(e){this.setTemporaryCache(zi,e,!0)}async hydrateCache(e,t){const r=Eo.createIdTokenEntity(e.account?.homeAccountId,e.account?.environment,e.idToken,this.clientId,e.tenantId);let o;t.claims&&(o=await this.cryptoImpl.hashString(t.claims));const n=Ro.createAccessTokenEntity(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?.getTime()||0,e.extExpiresOn?.getTime()||0,this.cryptoImpl,void 0,e.tokenType,void 0,t.sshKid,t.claims,o),i=new Go(void 0,r,n);return this.saveCacheRecord(i)}}const ta=(e,t)=>new ea(e,{cacheLocation:Pi.MemoryStorage,temporaryCacheLocation:Pi.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},lr,t),ra={INITIALIZE_START:"msal:initializeStart",INITIALIZE_END:"msal:initializeEnd",ACCOUNT_ADDED:"msal:accountAdded",ACCOUNT_REMOVED:"msal:accountRemoved",LOGIN_START:"msal:loginStart",LOGIN_SUCCESS:"msal:loginSuccess",LOGIN_FAILURE:"msal:loginFailure",ACQUIRE_TOKEN_START:"msal:acquireTokenStart",ACQUIRE_TOKEN_SUCCESS:"msal:acquireTokenSuccess",ACQUIRE_TOKEN_FAILURE:"msal:acquireTokenFailure",ACQUIRE_TOKEN_NETWORK_START:"msal:acquireTokenFromNetworkStart",SSO_SILENT_START:"msal:ssoSilentStart",SSO_SILENT_SUCCESS:"msal:ssoSilentSuccess",SSO_SILENT_FAILURE:"msal:ssoSilentFailure",ACQUIRE_TOKEN_BY_CODE_START:"msal:acquireTokenByCodeStart",ACQUIRE_TOKEN_BY_CODE_SUCCESS:"msal:acquireTokenByCodeSuccess",ACQUIRE_TOKEN_BY_CODE_FAILURE:"msal:acquireTokenByCodeFailure",HANDLE_REDIRECT_START:"msal:handleRedirectStart",HANDLE_REDIRECT_END:"msal:handleRedirectEnd",POPUP_OPENED:"msal:popupOpened",LOGOUT_START:"msal:logoutStart",LOGOUT_SUCCESS:"msal:logoutSuccess",LOGOUT_FAILURE:"msal:logoutFailure",LOGOUT_END:"msal:logoutEnd",RESTORE_FROM_BFCACHE:"msal:restoreFromBFCache"};class oa{constructor(e,t){this.eventCallbacks=new Map,this.logger=e,this.browserCrypto=t,this.listeningToStorageEvents=!1,this.handleAccountCacheChange=this.handleAccountCacheChange.bind(this)}addEventCallback(e){if("undefined"!=typeof window){const t=qs();return this.eventCallbacks.set(t,e),this.logger.verbose(`Event callback registered with id: ${t}`),t}return null}removeEventCallback(e){this.eventCallbacks.delete(e),this.logger.verbose(`Event callback ${e} removed.`)}enableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?this.logger.verbose("Account storage listener already registered."):(this.logger.verbose("Adding account storage listener."),this.listeningToStorageEvents=!0,window.addEventListener("storage",this.handleAccountCacheChange)))}disableAccountStorageEvents(){"undefined"!=typeof window&&(this.listeningToStorageEvents?(this.logger.verbose("Removing account storage listener."),window.removeEventListener("storage",this.handleAccountCacheChange),this.listeningToStorageEvents=!1):this.logger.verbose("No account storage listener registered."))}emitEvent(e,t,r,o){if("undefined"!=typeof window){const n={eventType:e,interactionType:t||null,payload:r||null,error:o||null,timestamp:Date.now()};this.logger.info(`Emitting event: ${e}`),this.eventCallbacks.forEach(((t,r)=>{this.logger.verbose(`Emitting event to callback ${r}: ${e}`),t.apply(null,[n])}))}}handleAccountCacheChange(e){try{const t=e.newValue||e.oldValue;if(!t)return;const r=JSON.parse(t);if("object"!=typeof r||!Jr.isAccountEntity(r))return;const o=so.toObject(new Jr,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent(ra.ACCOUNT_ADDED,void 0,o)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent(ra.ACCOUNT_REMOVED,void 0,o))}catch(e){return}}}class na{constructor(e,t,r,o,n,i,s,a,c){this.config=e,this.browserStorage=t,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=n,this.navigationClient=i,this.nativeMessageHandler=a,this.correlationId=c||qs(),this.logger=o.clone(Ii.MSAL_SKU,Cs,this.correlationId),this.performanceClient=s}async clearCacheOnLogout(e){if(e){Jr.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(Jr.generateAccountCacheKey(e)),this.logger.verbose("Cleared cache items belonging to the account provided in the logout request.")}catch(e){this.logger.error("Account provided in logout request was not found. Local cache unchanged.")}}else try{this.logger.verbose("No account provided in logout request, clearing all cache items.",this.correlationId),await this.browserStorage.clear(),await this.browserCrypto.clearKeystore()}catch(e){this.logger.error("Attempted to clear all MSAL cache items and failed. Local cache unchanged.")}}async initializeBaseRequest(e,t){this.performanceClient.addQueueMeasurement(Qo.InitializeBaseRequest,e.correlationId);const r=e.authority||this.config.auth.authority;t&&await this.validateRequestAuthority(r,t);const o=[...e&&e.scopes||[]],n={...e,correlationId:this.correlationId,authority:r,scopes:o};if(n.authenticationScheme){if(n.authenticationScheme===Be.SSH){if(!e.sshJwk)throw Kr(Pr);if(!e.sshKid)throw Kr(Mr)}this.logger.verbose(`Authentication Scheme set to "${n.authenticationScheme}" as configured in Auth request`)}else n.authenticationScheme=Be.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!Fr.isEmptyObj(e.claims)&&(n.requestedClaimsHash=await this.browserCrypto.hashString(e.claims)),n}getRedirectUri(e){this.logger.verbose("getRedirectUri called");const t=e||this.config.auth.redirectUri||is();return eo.getAbsoluteUrl(t,is())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw Kr(Ur)}initializeServerTelemetryManager(e,t){this.logger.verbose("initializeServerTelemetryManager called");const r={clientId:this.config.auth.clientId,correlationId:this.correlationId,apiId:e,forceRefresh:t||!1,wrapperSKU:this.browserStorage.getWrapperMetadata()[0],wrapperVer:this.browserStorage.getWrapperMetadata()[1]};return new Tn(r,this.browserStorage)}async getDiscoveredAuthority(e){this.logger.verbose("getDiscoveredAuthority called");const t={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata};return e?(this.logger.verbose("Creating discovered authority with request authority"),await dn.createDiscoveredInstance(e,this.config.system.networkClient,this.browserStorage,t,this.logger)):(this.logger.verbose("Creating discovered authority with configured authority"),await dn.createDiscoveredInstance(this.config.auth.authority,this.config.system.networkClient,this.browserStorage,t,this.logger))}}const ia=32;async function sa(e,t,r){e.addQueueMeasurement(Qo.GeneratePkceCodes,r);const o=Vo(aa,Qo.GenerateCodeVerifier,t,e,r)(e,t,r);return{verifier:o,challenge:await Jo(ca,Qo.GenerateCodeChallengeFromVerifier,t,e,r)(o,e,t,r)}}function aa(e,t,r){try{const o=new Uint8Array(ia);Vo(Os,Qo.GetRandomValues,t,e,r)(o);return ks(o)}catch(e){throw Ti(kn)}}async function ca(e,t,r,o){t.addQueueMeasurement(Qo.GenerateCodeChallengeFromVerifier,o);try{const n=await Jo(Ns,Qo.Sha256Digest,r,t,o)(e,t,o);return ks(new Uint8Array(n))}catch(e){throw Ti(kn)}}class la extends na{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(Qo.StandardInteractionClientInitializeAuthorizationCodeRequest,e.correlationId);const r=await Jo(sa,Qo.GeneratePkceCodes,this.logger,this.performanceClient,this.correlationId)(this.performanceClient,this.logger,this.correlationId),o={...e,redirectUri:e.redirectUri,code:t.EMPTY_STRING,codeVerifier:r.verifier};return e.codeChallenge=r.challenge,e.codeChallengeMethod=t.S256_CODE_CHALLENGE_METHOD,o}initializeLogoutRequest(e){this.logger.verbose("initializeLogoutRequest called",e?.correlationId);const t={correlationId:this.correlationId||qs(),...e};if(e)if(e.logoutHint)this.logger.verbose("logoutHint has already been set in logoutRequest");else if(e.account){const r=this.getLogoutHintFromIdTokenClaims(e.account);r&&(this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided"),t.logoutHint=r)}else this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");else this.logger.verbose("logoutHint will not be set since no logout request was configured");return e&&null===e.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri passed as null, not setting post logout redirect uri",t.correlationId):e&&e.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to uri set on logout request",t.correlationId),t.postLogoutRedirectUri=eo.getAbsoluteUrl(e.postLogoutRedirectUri,is())):null===this.config.auth.postLogoutRedirectUri?this.logger.verbose("postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect",t.correlationId):this.config.auth.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to configured uri",t.correlationId),t.postLogoutRedirectUri=eo.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,is())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=eo.getAbsoluteUrl(is(),is())),t}getLogoutHintFromIdTokenClaims(e){const t=e.idTokenClaims;if(t){if(t.login_hint)return t.login_hint;this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request")}else this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");return null}async createAuthCodeClient(e,t,r){this.performanceClient.addQueueMeasurement(Qo.StandardInteractionClientCreateAuthCodeClient,this.correlationId);const o=await Jo(this.getClientConfiguration.bind(this),Qo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new on(o,this.performanceClient)}async getClientConfiguration(e,r,o){this.performanceClient.addQueueMeasurement(Qo.StandardInteractionClientGetClientConfiguration,this.correlationId);const n=await Jo(this.getDiscoveredAuthority.bind(this),Qo.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,this.correlationId)(r,o),i=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:n,clientCapabilities:this.config.auth.clientCapabilities},systemOptions:{tokenRenewalOffsetSeconds:this.config.system.tokenRenewalOffsetSeconds,preventCorsPreflight:!0},loggerOptions:{loggerCallback:i.loggerCallback,piiLoggingEnabled:i.piiLoggingEnabled,logLevel:i.logLevel,correlationId:this.correlationId},cacheOptions:{claimsBasedCachingEnabled:this.config.cache.claimsBasedCachingEnabled},cryptoInterface:this.browserCrypto,networkInterface:this.networkClient,storageInterface:this.browserStorage,serverTelemetryManager:e,libraryInfo:{sku:Ii.MSAL_SKU,version:Cs,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}validateAndExtractStateFromHash(e,t,r){if(this.logger.verbose("validateAndExtractStateFromHash called",r),!e.state)throw Ti(Rn);const o=Zs.extractBrowserRequestState(this.browserCrypto,e.state);if(!o)throw Ti(Mn);if(o.interactionType!==t)throw Ti(Nn);return this.logger.verbose("Returning state from hash",r),e.state}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(Qo.StandardInteractionClientGetDiscoveredAuthority,this.correlationId);const r={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},o=e||this.config.auth.authority,n=ln.generateAuthority(o,t||this.config.auth.azureCloudOptions);return await Jo(dn.createDiscoveredInstance.bind(dn),Qo.AuthorityFactoryCreateDiscoveredInstance,this.logger,this.performanceClient,this.correlationId)(n,this.config.system.networkClient,this.browserStorage,r,this.logger,this.performanceClient,this.correlationId)}async initializeAuthorizationRequest(e,r){this.performanceClient.addQueueMeasurement(Qo.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId);const o=this.getRedirectUri(e.redirectUri),n={interactionType:r},i=$o.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,n),s={...await Jo(this.initializeBaseRequest.bind(this),Qo.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e),redirectUri:o,state:i,nonce:e.nonce||qs(),responseMode:this.config.auth.OIDCOptions.serverResponseType},a=e.account||this.browserStorage.getActiveAccount();if(a&&(this.logger.verbose("Setting validated request account",this.correlationId),this.logger.verbosePii(`Setting validated request account: ${a.homeAccountId}`,this.correlationId),s.account=a),!s.loginHint&&!a){const e=this.browserStorage.getLegacyLoginHint();e&&(s.loginHint=e)}return s}}const ha="user_switch",da={[ha]:"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again."};class ua extends ut{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,ua.prototype),this.name="NativeAuthError",this.ext=r}}function ga(e){return!(!e.ext||!e.ext.status||"PERSISTENT_ERROR"!==e.ext.status&&"DISABLED"!==e.ext.status)||(!(!e.ext||!e.ext.error||-2147186943!==e.ext.error)||"ContentError"===e.errorCode)}function pa(e,t,r){if(r&&r.status)switch(r.status){case"ACCOUNT_UNAVAILABLE":return zo(No);case"USER_INTERACTION_REQUIRED":return new Ko(e,t);case"USER_CANCEL":return Ti(Un);case"NO_NETWORK":return Ti(Zn)}return new ua(e,da[e]||t,r)}class ma extends la{async acquireToken(e){this.performanceClient.addQueueMeasurement(Qo.SilentCacheClientAcquireToken,e.correlationId);const t=this.initializeServerTelemetryManager(Yi.acquireTokenSilent_silentFlow),r=await this.createSilentFlowClient(t,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const t=(await Jo(r.acquireCachedToken.bind(r),Qo.SilentFlowClientAcquireCachedToken,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),t}catch(e){throw e instanceof wi&&e.errorCode===ni&&this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair."),e}}logout(e){this.logger.verbose("logoutRedirect called");const t=this.initializeLogoutRequest(e);return this.clearCacheOnLogout(t?.account)}async createSilentFlowClient(e,t,r){const o=await Jo(this.getClientConfiguration.bind(this),Qo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new sn(o,this.performanceClient)}async initializeSilentRequest(e,t){this.performanceClient.addQueueMeasurement(Qo.InitializeSilentRequest,this.correlationId);const r=await Jo(this.initializeBaseRequest.bind(this),Qo.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e,t);return{...e,...r,account:t,forceRefresh:e.forceRefresh||!1}}}const fa="brk_client_id",ya="brk_redirect_uri";class Ca extends na{constructor(e,t,r,o,n,i,s,a,c,l,h,d){super(e,t,r,o,n,i,a,c,d),this.apiId=s,this.accountId=l,this.nativeMessageHandler=c,this.nativeStorageManager=h,this.silentCacheClient=new ma(e,this.nativeStorageManager,r,o,n,i,a,c,d)}async acquireToken(e){this.performanceClient.addQueueMeasurement(Qo.NativeInteractionClientAcquireToken,e.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(Qo.NativeInteractionClientAcquireToken,e.correlationId),r=bo.nowSeconds(),o=await this.initializeNativeRequest(e);try{const e=await this.acquireTokensFromCache(this.accountId,o);return t.end({success:!0,isNativeBroker:!1,fromCache:!0}),e}catch(e){this.logger.info("MSAL internal Cache does not contain tokens, proceed to make a native call")}const n={method:bi,request:o},i=await this.nativeMessageHandler.sendMessage(n),s=this.validateNativeResponse(i);return this.handleNativeResponse(s,o,r).then((e=>(t.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{throw t.end({success:!1,errorCode:e.errorCode,subErrorCode:e.subError,isNativeBroker:!0}),e}))}createSilentCacheRequest(e,t){return{authority:e.authority,correlationId:this.correlationId,scopes:zr.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),cr(Kt);const r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e});if(!r)throw cr(Kt);try{const e=this.createSilentCacheRequest(t,r),o=await this.silentCacheClient.acquireToken(e),n={...r,idTokenClaims:o?.idTokenClaims};return{...o,account:n}}catch(e){throw e}}async acquireTokenRedirect(e){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");const t=await this.initializeNativeRequest(e),r={method:bi,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof ua&&ga(e))throw e}this.browserStorage.setTemporaryCache(Fi,JSON.stringify(t),!0);const o={apiId:Yi.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},n=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);await this.navigationClient.navigateExternal(n,o)}async handleRedirectPromise(){if(this.logger.trace("NativeInteractionClient - handleRedirectPromise called."),!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const e=this.browserStorage.getCachedNativeRequest();if(!e)return this.logger.verbose("NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null."),null;const{prompt:t,...r}=e;t&&this.logger.verbose("NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window."),this.browserStorage.removeItem(this.browserStorage.generateCacheKey(Fi));const o={method:bi,request:r},n=bo.nowSeconds();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");const e=await this.nativeMessageHandler.sendMessage(o);this.validateNativeResponse(e);const t=this.handleNativeResponse(e,r,n);return this.browserStorage.setInteractionInProgress(!1),t}catch(e){throw this.browserStorage.setInteractionInProgress(!1),e}}logout(){return this.logger.trace("NativeInteractionClient - logout called."),Promise.reject("Logout not implemented yet")}async handleNativeResponse(e,t,r){if(this.logger.trace("NativeInteractionClient - handleNativeResponse called."),e.account.id!==t.accountId)throw pa(ha);const o=await this.getDiscoveredAuthority(t.authority),n=Xr(e.id_token,bs),i=this.createHomeAccountIdentifier(e,n),s=Jr.createAccount({homeAccountId:i,idTokenClaims:n,clientInfo:e.client_info,nativeAccountId:e.account.id},o),a=await this.generateAuthenticationResult(e,t,n,s,o.canonicalAuthority,r);return this.cacheAccount(s),this.cacheNativeTokens(e,t,i,n,a.accessToken,a.tenantId,r),a}createHomeAccountIdentifier(e,r){return Jr.generateHomeAccountId(e.client_info||t.EMPTY_STRING,Qr,this.logger,this.browserCrypto,r)}generateScopes(e,t){return e.scope?zr.fromString(e.scope):zr.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===Be.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new Zo(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw cr(Xt);return await r.signPopToken(e.access_token,t.keyId,o)}return e.access_token}async generateAuthenticationResult(e,r,o,n,i,s){const a=this.addTelemetryFromNativeResponse(e),c=e.scope?zr.fromString(e.scope):zr.fromString(r.scope),l=e.account.properties||{},h=l.UID||o.oid||o.sub||t.EMPTY_STRING,d=l.TenantId||o.tid||t.EMPTY_STRING,u=(o?Object.assign(new Jr,{...n,idTokenClaims:o}):n).getAccountInfo(),g=await this.generatePopAccessToken(e,r),p=r.tokenType===Be.POP?Be.POP:Be.BEARER;return{authority:i,uniqueId:h,tenantId:d,scopes:c.asArray(),account:u,idToken:e.id_token,idTokenClaims:o,accessToken:g,fromCache:!!a&&this.isResponseFromCache(a),expiresOn:new Date(1e3*Number(s+e.expires_in)),tokenType:p,correlationId:this.correlationId,state:e.state,fromNativeBroker:!0}}cacheAccount(e){this.browserStorage.setAccount(e),this.browserStorage.removeAccountContext(e).catch((e=>{this.logger.error(`Error occurred while removing account context from browser storage. ${e}`)}))}cacheNativeTokens(e,r,o,n,i,s,a){const c=Eo.createIdTokenEntity(o,r.authority,e.id_token||"",r.clientId,n.tid||""),l=a+(r.tokenType===Be.POP?t.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0),h=this.generateScopes(e,r),d=Ro.createAccessTokenEntity(o,r.authority,i,r.clientId,n.tid||s,h.printScopes(),l,0,this.browserCrypto),u=new Go(void 0,c,d);this.nativeStorageManager.saveCacheRecord(u,r.storeInCache)}addTelemetryFromNativeResponse(e){const t=this.getMATSFromResponse(e);return t?(this.performanceClient.addFields({extensionId:this.nativeMessageHandler.getExtensionId(),extensionVersion:this.nativeMessageHandler.getExtensionVersion(),matsBrokerVersion:t.broker_version,matsAccountJoinOnStart:t.account_join_on_start,matsAccountJoinOnEnd:t.account_join_on_end,matsDeviceJoin:t.device_join,matsPromptBehavior:t.prompt_behavior,matsApiErrorCode:t.api_error_code,matsUiVisible:t.ui_visible,matsSilentCode:t.silent_code,matsSilentBiSubCode:t.silent_bi_sub_code,matsSilentMessage:t.silent_message,matsSilentStatus:t.silent_status,matsHttpStatus:t.http_status,matsHttpEventCount:t.http_event_count},this.correlationId),t):null}validateNativeResponse(e){if(e.hasOwnProperty("access_token")&&e.hasOwnProperty("id_token")&&e.hasOwnProperty("client_info")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scope")&&e.hasOwnProperty("expires_in"))return e;throw gt(at,"Response missing expected properties.")}getMATSFromResponse(e){if(e.properties.MATS)try{return JSON.parse(e.properties.MATS)}catch(e){this.logger.error("NativeInteractionClient - Error parsing MATS telemetry, returning null instead")}return null}isResponseFromCache(e){return void 0===e.is_cached?(this.logger.verbose("NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false."),!1):!!e.is_cached}async initializeNativeRequest(e){this.logger.trace("NativeInteractionClient - initializeNativeRequest called");const t=e.authority||this.config.auth.authority;e.account&&await this.validateRequestAuthority(t,e.account);const r=new eo(t);r.validateAsUri();const{scopes:o,...n}=e,i=new zr(o||[]);i.appendScopes(s);const a={...n,accountId:this.accountId,clientId:this.config.auth.clientId,authority:r.urlString,scope:i.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:(()=>{switch(this.apiId){case Yi.ssoSilent:case Yi.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),de.NONE}if(e.prompt)switch(e.prompt){case de.NONE:case de.CONSENT:case de.LOGIN:return this.logger.trace("initializeNativeRequest: prompt is compatible with native flow"),e.prompt;default:throw this.logger.trace(`initializeNativeRequest: prompt = ${e.prompt} is not compatible with native flow`),Ti(pi)}else this.logger.trace("initializeNativeRequest: prompt was not provided")})(),correlationId:this.correlationId,tokenType:e.authenticationScheme,windowTitleSubstring:document.title,extraParameters:{...e.extraQueryParameters,...e.tokenQueryParameters},extendedExpiryToken:!1};if(this.handleExtraBrokerParams(a),a.extraParameters=a.extraParameters||{},a.extraParameters.telemetry=ki,e.authenticationScheme===Be.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new Zo(this.browserCrypto),o=await Jo(r.generateCnf.bind(r),Qo.PopTokenGenerateCnf,this.logger,this.performanceClient,this.correlationId)(t,this.logger);a.reqCnf=o.reqCnfHash,a.keyId=o.kid}return a}handleExtraBrokerParams(e){if(e.extraParameters&&e.extraParameters.hasOwnProperty(fa)&&e.extraParameters.hasOwnProperty(ya)&&e.extraParameters.hasOwnProperty(k)){const t=e.extraParameters[k],r=e.redirectUri,o=e.extraParameters[ya];e.extraParameters={child_client_id:t,child_redirect_uri:r},e.redirectUri=o}}}class va{constructor(e,t,r,o){this.logger=e,this.handshakeTimeoutMs=t,this.extensionId=o,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement(Qo.NativeMessageHandlerHandshake)}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:_i,extensionId:this.extensionId,responseId:qs(),body:e};return this.logger.trace("NativeMessageHandler - Sending request to browser extension"),this.logger.tracePii(`NativeMessageHandler - Sending request to browser extension: ${JSON.stringify(t)}`),this.messageChannel.port1.postMessage(t),new Promise(((e,r)=>{this.resolvers.set(t.responseId,{resolve:e,reject:r})}))}static async createProvider(e,t,r){e.trace("NativeMessageHandler - createProvider called.");try{const o=new va(e,t,r,Ai);return await o.sendHandshakeRequest(),o}catch(o){const n=new va(e,t,r);return await n.sendHandshakeRequest(),n}}async sendHandshakeRequest(){this.logger.trace("NativeMessageHandler - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);const e={channel:_i,extensionId:this.extensionId,responseId:qs(),body:{method:Si}};return this.handshakeEvent.add({extensionId:this.extensionId,extensionHandshakeTimeoutMs:this.handshakeTimeoutMs}),this.messageChannel.port1.onmessage=e=>{this.onChannelMessage(e)},window.postMessage(e,window.origin,[this.messageChannel.port2]),new Promise(((t,r)=>{this.handshakeResolvers.set(e.responseId,{resolve:t,reject:r}),this.timeoutId=window.setTimeout((()=>{window.removeEventListener("message",this.windowListener,!1),this.messageChannel.port1.close(),this.messageChannel.port2.close(),this.handshakeEvent.end({extensionHandshakeTimedOut:!0,success:!1}),r(Ti(hi)),this.handshakeResolvers.delete(e.responseId)}),this.handshakeTimeoutMs)}))}onWindowMessage(e){if(this.logger.trace("NativeMessageHandler - onWindowMessage called"),e.source!==window)return;const t=e.data;if(t.channel&&t.channel===_i&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===Si){const e=this.handshakeResolvers.get(t.responseId);if(!e)return void this.logger.trace(`NativeMessageHandler.onWindowMessage - resolver can't be found for request ${t.responseId}`);this.logger.verbose(t.extensionId?`Extension with id: ${t.extensionId} not installed`:"No extension installed"),clearTimeout(this.timeoutId),this.messageChannel.port1.close(),this.messageChannel.port2.close(),window.removeEventListener("message",this.windowListener,!1),this.handshakeEvent.end({success:!1,extensionInstalled:!1}),e.reject(Ti(di))}}onChannelMessage(e){this.logger.trace("NativeMessageHandler - onChannelMessage called.");const t=e.data,r=this.resolvers.get(t.responseId),o=this.handshakeResolvers.get(t.responseId);try{const e=t.body.method;if(e===Ri){if(!r)return;const e=t.body.response;if(this.logger.trace("NativeMessageHandler - Received response from browser extension"),this.logger.tracePii(`NativeMessageHandler - Received response from browser extension: ${JSON.stringify(e)}`),"Success"!==e.status)r.reject(pa(e.code,e.description,e.ext));else{if(!e.result)throw gt(at,"Event does not contain result.");e.result.code&&e.result.description?r.reject(pa(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===Ei){if(!o)return void this.logger.trace(`NativeMessageHandler.onChannelMessage - resolver can't be found for request ${t.responseId}`);clearTimeout(this.timeoutId),window.removeEventListener("message",this.windowListener,!1),this.extensionId=t.extensionId,this.extensionVersion=t.body.version,this.logger.verbose(`NativeMessageHandler - Received HandshakeResponse from extension: ${this.extensionId}`),this.handshakeEvent.end({extensionInstalled:!0,success:!0}),o.resolve(),this.handshakeResolvers.delete(t.responseId)}}catch(t){this.logger.error("Error parsing response from WAM Extension"),this.logger.errorPii(`Error parsing response from WAM Extension: ${t}`),this.logger.errorPii(`Unable to parse ${e}`),r?r.reject(t):o&&o.reject(t)}}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}static isNativeAvailable(e,t,r,o){if(t.trace("isNativeAvailable called"),!e.system.allowNativeBroker)return t.trace("isNativeAvailable: allowNativeBroker is not enabled, returning false"),!1;if(!r)return t.trace("isNativeAvailable: WAM extension provider is not initialized, returning false"),!1;if(o)switch(o){case Be.BEARER:case Be.POP:return t.trace("isNativeAvailable: authenticationScheme is supported, returning true"),!0;default:return t.trace("isNativeAvailable: authenticationScheme is not supported, returning false"),!1}return!0}}class wa{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=n}async handleCodeResponseFromHash(e,t,r,o){if(this.performanceClient.addQueueMeasurement(Qo.HandleCodeResponseFromHash,this.authCodeRequest.correlationId),!e)throw Ti(bn);const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw cr(At,"Cached State");let s;try{s=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Co&&e.subError===Un?Ti(Un):e}return Jo(this.handleCodeResponseFromServer.bind(this),Qo.HandleCodeResponseFromServer,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(s,t,r,o)}async handleCodeResponseFromServer(e,t,r,o,n=!0){this.performanceClient.addQueueMeasurement(Qo.HandleCodeResponseFromServer,this.authCodeRequest.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");const i=this.browserStorage.generateStateKey(t),s=this.browserStorage.getTemporaryCache(i);if(!s)throw cr(At,"Cached State");const a=this.browserStorage.generateNonceKey(s),c=this.browserStorage.getTemporaryCache(a);if(this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await Jo(this.updateTokenEndpointAuthority.bind(this),Qo.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(e.cloud_instance_host_name,r,o),n&&(e.nonce=c||void 0),e.state=s,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const l=await Jo(this.authModule.acquireToken.bind(this.authModule),Qo.AuthClientAcquireToken,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(this.authCodeRequest,e);return this.browserStorage.cleanRequestByState(t),l}async updateTokenEndpointAuthority(e,t,r){this.performanceClient.addQueueMeasurement(Qo.UpdateTokenEndpointAuthority,this.authCodeRequest.correlationId);const o=`https://${e}/${t.tenant}/`,n=await dn.createDiscoveredInstance(o,r,this.browserStorage,t.options,this.logger,this.performanceClient,this.authCodeRequest.correlationId);this.authModule.updateAuthority(n)}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(xi,!0);if(e)try{return JSON.parse(e)}catch(t){this.authModule.logger.error("Cache credential could not be parsed"),this.authModule.logger.errorPii(`Cache credential could not be parsed: ${e}`)}return null}}class Ta extends la{constructor(e,t,r,o,n,i,s,a,c,l){super(e,t,r,o,n,i,s,c,l),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=a}acquireToken(e){try{const t=this.generatePopupName(e.scopes||s,e.authority||this.config.auth.authority),r=e.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,t,r);{this.logger.verbose("asyncPopup set to false, opening popup before acquiring token");const o=this.openSizedPopup("about:blank",t,r);return this.acquireTokenPopupAsync(e,t,r,o)}}catch(e){return Promise.reject(e)}}logout(e){try{this.logger.verbose("logoutPopup called");const t=this.initializeLogoutRequest(e),r=this.generateLogoutPopupName(t),o=e&&e.authority,n=e&&e.mainWindowRedirectUri,i=e?.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(t,r,i,o,void 0,n);{this.logger.verbose("asyncPopup set to false, opening popup");const e=this.openSizedPopup("about:blank",r,i);return this.logoutPopupAsync(t,r,i,o,e,n)}}catch(e){return Promise.reject(e)}}async acquireTokenPopupAsync(r,o,n,i){this.logger.verbose("acquireTokenPopupAsync called");const s=this.initializeServerTelemetryManager(Yi.acquireTokenPopup);this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const a=await this.initializeAuthorizationRequest(r,e.InteractionType.Popup);us(a.authority),this.browserStorage.updateCacheEntries(a.state,a.nonce,a.authority,a.loginHint||t.EMPTY_STRING,a.account||null);try{this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const t=await this.initializeAuthorizationCodeRequest(a);this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const c=await this.createAuthCodeClient(s,a.authority,a.azureCloudOptions);this.logger.verbose("Auth code client created");const l=va.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme);let h;l&&(h=this.performanceClient.startMeasurement(Qo.FetchAccountIdWithNativeBroker,r.correlationId));const d=await c.getAuthCodeUrl({...a,nativeBroker:l}),u=new wa(c,this.browserStorage,t,this.logger,this.performanceClient),g={popup:i,popupName:o,popupWindowAttributes:n},p=this.initiateAuthRequest(d,g);this.eventHandler.emitEvent(ra.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=eo.getDeserializedHash(m),y=this.validateAndExtractStateFromHash(f,e.InteractionType.Popup,a.correlationId);if(vo.removeThrottle(this.browserStorage,this.config.auth.clientId,t),f.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),h&&h.end({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw Ti(ui);const e=new Ca(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Yi.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,a.correlationId),{userRequestState:t}=$o.parseRequestState(this.browserCrypto,y);return e.acquireToken({...a,state:t,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(y)}))}return await u.handleCodeResponseFromHash(m,y,c.authority,this.networkClient)}catch(e){throw i&&i.close(),e instanceof ut&&(e.setCorrelationId(this.correlationId),s.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(a.state),e}}async logoutPopupAsync(t,r,o,n,i,s){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(ra.LOGOUT_START,e.InteractionType.Popup,t);const a=this.initializeServerTelemetryManager(Yi.logoutPopup);try{await this.clearCacheOnLogout(t.account),this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientCreateAuthCodeClient,t.correlationId);const c=await this.createAuthCodeClient(a,n);this.logger.verbose("Auth code client created");try{c.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId&&t.postLogoutRedirectUri&&c.authority.protocolMode===Vr.OIDC){if(this.browserStorage.removeAccount(t.account?.homeAccountId),this.eventHandler.emitEvent(ra.LOGOUT_SUCCESS,e.InteractionType.Popup,t),s){const e={apiId:Yi.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=eo.getAbsoluteUrl(s,is());await this.navigationClient.navigateInternal(t,e)}return void(i&&i.close())}}const l=c.getLogoutUri(t);this.eventHandler.emitEvent(ra.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const h=this.openPopup(l,{popupName:r,popupWindowAttributes:o,popup:i});if(this.eventHandler.emitEvent(ra.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:h},null),await this.waitForLogoutPopup(h),s){const e={apiId:Yi.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=eo.getAbsoluteUrl(s,is());this.logger.verbose("Redirecting main window to url specified in the request"),this.logger.verbosePii(`Redirecting main window to: ${t}`),await this.navigationClient.navigateInternal(t,e)}else this.logger.verbose("No main window navigation requested")}catch(t){throw i&&i.close(),t instanceof ut&&(t.setCorrelationId(this.correlationId),a.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(ra.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent(ra.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent(ra.LOGOUT_END,e.InteractionType.Popup)}initiateAuthRequest(e,t){if(e)return this.logger.infoPii(`Navigate to: ${e}`),this.openPopup(e,t);throw this.logger.error("Navigate url is empty"),Ti(En)}monitorPopupForHash(e){return new Promise(((r,o)=>{const n=this.config.system.windowHashTimeout/this.config.system.pollIntervalMilliseconds;let i=0;this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const s=setInterval((()=>{if(e.closed)return this.logger.error("PopupHandler.monitorPopupForHash - window closed"),this.cleanPopup(),clearInterval(s),void o(Ti(Un));let a=t.EMPTY_STRING,c=t.EMPTY_STRING;try{a=e.location.href,c=this.extractServerResponseStringFromPopup(e,a)}catch(e){}a&&"about:blank"!==a&&(this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),i++,c?(this.logger.verbose("PopupHandler.monitorPopupForHash - found hash in url"),clearInterval(s),this.cleanPopup(e),eo.hashContainsKnownProperties(c)?(this.logger.verbose("PopupHandler.monitorPopupForHash - hash contains known properties, returning."),r(c)):(this.logger.error("PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely."),this.logger.errorPii(`PopupHandler.monitorPopupForHash - hash found: ${c}`),o(Ti(Pn)))):i>n&&(this.logger.error("PopupHandler.monitorPopupForHash - unable to find hash in url, timing out"),clearInterval(s),o(Ti(Hn))))}),this.config.system.pollIntervalMilliseconds)}))}waitForLogoutPopup(e){return new Promise((r=>{this.logger.verbose("PopupHandler.waitForLogoutPopup - polling started");const o=setInterval((()=>{e.closed&&(this.logger.error("PopupHandler.waitForLogoutPopup - window closed"),this.cleanPopup(),clearInterval(o),r());let n=t.EMPTY_STRING;try{n=e.location.href}catch(e){}n&&"about:blank"!==n&&(this.logger.verbose("PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing."),clearInterval(o),this.cleanPopup(e),r())}),this.config.system.pollIntervalMilliseconds)}))}openPopup(e,t){try{let r;if(t.popup?(r=t.popup,this.logger.verbosePii(`Navigating popup window to: ${e}`),r.location.assign(e)):void 0===t.popup&&(this.logger.verbosePii(`Opening popup window to: ${e}`),r=this.openSizedPopup(e,t.popupName,t.popupWindowAttributes)),!r)throw Ti(Ln);return r.focus&&r.focus(),this.currentWindow=r,window.addEventListener("beforeunload",this.unloadWindow),r}catch(e){throw this.logger.error("error opening popup "+e.message),this.browserStorage.setInteractionInProgress(!1),Ti(qn)}}openSizedPopup(e,t,r){const o=window.screenLeft?window.screenLeft:window.screenX,n=window.screenTop?window.screenTop:window.screenY,i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,s=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;let a=r.popupSize?.width,c=r.popupSize?.height,l=r.popupPosition?.top,h=r.popupPosition?.left;return(!a||a<0||a>i)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),a=Ii.POPUP_WIDTH),(!c||c<0||c>s)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=Ii.POPUP_HEIGHT),(!l||l<0||l>s)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),l=Math.max(0,s/2-Ii.POPUP_HEIGHT/2+n)),(!h||h<0||h>i)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),h=Math.max(0,i/2-Ii.POPUP_WIDTH/2+o)),window.open(e,t,`width=${a}, height=${c}, top=${l}, left=${h}, scrollbars=yes`)}unloadWindow(t){this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Popup),this.currentWindow&&this.currentWindow.close(),t.preventDefault()}cleanPopup(e){e&&e.close(),window.removeEventListener("beforeunload",this.unloadWindow),this.browserStorage.setInteractionInProgress(!1)}generatePopupName(e,t){return`${Ii.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${Ii.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}extractServerResponseStringFromPopup(e,t){let r;return r=this.config.auth.OIDCOptions?.serverResponseType===fe.QUERY?eo.parseQueryServerResponse(t):e.location.hash,r}}class Ia extends wa{constructor(e,t,r,o,n,i){super(e,t,r,o,i),this.browserCrypto=n}async initiateAuthRequest(e,t){if(this.logger.verbose("RedirectHandler.initiateAuthRequest called"),e){t.redirectStartPage&&(this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"),this.browserStorage.setTemporaryCache(Ui,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(Ki,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:Yi.acquireTokenRedirect,timeout:t.redirectTimeout,noHistory:!1};if("function"==typeof t.onRedirectNavigate){this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");return!1!==t.onRedirectNavigate(e)?(this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"),void await t.navigationClient.navigateExternal(e,r)):void this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation")}return this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"),void await t.navigationClient.navigateExternal(e,r)}throw this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"),Ti(En)}async handleCodeResponseFromHash(e,t,r,o){if(this.logger.verbose("RedirectHandler.handleCodeResponse called"),!e)throw Ti(bn);this.browserStorage.setInteractionInProgress(!1);const n=this.browserStorage.generateStateKey(t),i=this.browserStorage.getTemporaryCache(n);if(!i)throw cr(At,"Cached State");let s;try{s=this.authModule.handleFragmentResponse(e,i)}catch(e){throw e instanceof Co&&e.subError===Un?Ti(Un):e}const a=this.browserStorage.generateNonceKey(i),c=this.browserStorage.getTemporaryCache(a);if(this.authCodeRequest.code=s.code,s.cloud_instance_host_name&&await this.updateTokenEndpointAuthority(s.cloud_instance_host_name,r,o),s.nonce=c||void 0,s.state=i,s.client_info)this.authCodeRequest.clientInfo=s.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const l=await this.authModule.acquireToken(this.authCodeRequest,s);return this.browserStorage.cleanRequestByState(t),l}}class _a extends la{constructor(e,t,r,o,n,i,s,a,c,l){super(e,t,r,o,n,i,s,c,l),this.nativeStorage=a}async acquireToken(r){this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientInitializeAuthorizationRequest,r.correlationId);const o=await this.initializeAuthorizationRequest(r,e.InteractionType.Redirect);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(Yi.acquireTokenRedirect),i=t=>{t.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(o.state),this.eventHandler.emitEvent(ra.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientInitializeAuthorizationCodeRequest,r.correlationId);const e=await this.initializeAuthorizationCodeRequest(o);this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const t=await this.createAuthCodeClient(n,o.authority,o.azureCloudOptions);this.logger.verbose("Auth code client created");const s=new Ia(t,this.browserStorage,e,this.logger,this.browserCrypto,this.performanceClient),a=await t.getAuthCodeUrl({...o,nativeBroker:va.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),c=this.getRedirectStartPage(r.redirectStartPage);return this.logger.verbosePii(`Redirect start page: ${c}`),window.addEventListener("pageshow",i),await s.initiateAuthRequest(a,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:c,onRedirectNavigate:r.onRedirectNavigate})}catch(e){throw e instanceof ut&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),window.removeEventListener("pageshow",i),this.browserStorage.cleanRequestByState(o.state),e}}async handleRedirectPromise(r){const o=this.initializeServerTelemetryManager(Yi.handleRedirectPromise);try{if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const n=this.getRedirectResponseHash(r||window.location.hash);if(!n)return this.logger.info("handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache."),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null;let i;try{const t=eo.getDeserializedHash(n);i=this.validateAndExtractStateFromHash(t,e.InteractionType.Redirect),this.logger.verbose("State extracted from hash")}catch(t){return this.logger.info(`handleRedirectPromise was unable to extract state due to: ${t}`),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null}const s=this.browserStorage.getTemporaryCache(Ui,!0)||t.EMPTY_STRING,a=eo.removeHashFromUrl(s);if(a===eo.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling hash");const e=await this.handleHash(n,i,o);return s.indexOf("#")>-1&&rs(s),e}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling hash"),this.handleHash(n,i,o);if(!os()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(Hi,n,!0);const e={apiId:Yi.handleRedirectPromise,timeout:this.config.system.redirectNavigationTimeout,noHistory:!0};let t=!0;if(s&&"null"!==s)this.logger.verbose(`Navigating to loginRequestUrl: ${s}`),t=await this.navigationClient.navigateInternal(s,e);else{const r=ss();this.browserStorage.setTemporaryCache(Ui,r,!0),this.logger.warning("Unable to get valid login request url from cache, redirecting to home page"),t=await this.navigationClient.navigateInternal(r,e)}if(!t)return this.handleHash(n,i,o)}return null}catch(t){throw t instanceof ut&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),t}}getRedirectResponseHash(e){this.logger.verbose("getRedirectResponseHash called");if(eo.hashContainsKnownProperties(e))return ts(window),this.logger.verbose("Hash contains known properties, returning response hash"),e;const t=this.browserStorage.getTemporaryCache(Hi,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(Hi)),this.logger.verbose("Hash does not contain known properties, returning cached hash"),t}async handleHash(e,t,r){const o=this.browserStorage.getCachedRequest(t);this.logger.verbose("handleHash called, retrieved cached request");const n=eo.getDeserializedHash(e);if(n.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Ti(ui);const e=new Ca(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Yi.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,n.accountId,this.nativeStorage,o.correlationId),{userRequestState:r}=$o.parseRequestState(this.browserCrypto,t);return e.acquireToken({...o,state:r,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(t)}))}const i=this.browserStorage.getCachedAuthority(t);if(!i)throw Ti(Yn);this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientCreateAuthCodeClient,o.correlationId);const s=await this.createAuthCodeClient(r,i);this.logger.verbose("Auth code client created"),vo.removeThrottle(this.browserStorage,this.config.auth.clientId,o);const a=new Ia(s,this.browserStorage,o,this.logger,this.browserCrypto,this.performanceClient);return await a.handleCodeResponseFromHash(e,t,s.authority,this.networkClient)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),o=this.initializeServerTelemetryManager(Yi.logout);try{this.eventHandler.emitEvent(ra.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const n={apiId:Yi.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1};this.performanceClient.setPreQueueTime(Qo.StandardInteractionClientCreateAuthCodeClient,r.correlationId);const i=await this.createAuthCodeClient(o,t&&t.authority);if(this.logger.verbose("Auth code client created"),i.authority.protocolMode===Vr.OIDC)try{i.authority.endSessionEndpoint}catch{if(r.account?.homeAccountId)return this.browserStorage.removeAccount(r.account?.homeAccountId),void this.eventHandler.emitEvent(ra.LOGOUT_SUCCESS,e.InteractionType.Redirect,r)}const s=i.getLogoutUri(r);if(this.eventHandler.emitEvent(ra.LOGOUT_SUCCESS,e.InteractionType.Redirect,r),!t||"function"!=typeof t.onRedirectNavigate)return this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(s,n);if(!1!==t.onRedirectNavigate(s))return this.logger.verbose("Logout onRedirectNavigate did not return false, navigating"),this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),void await this.navigationClient.navigateExternal(s,n);this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation")}catch(t){throw t instanceof ut&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.eventHandler.emitEvent(ra.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ra.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent(ra.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return eo.getAbsoluteUrl(t,is())}}async function Aa(e,t,r,o,n){if(t.addQueueMeasurement(Qo.SilentHandlerInitiateAuthRequest,o),!e)throw r.info("Navigate url is empty"),Ti(En);return n?await Jo(Sa,Qo.SilentHandlerLoadFrame,r,t,o)(e,n,t,o):Vo(Ea,Qo.SilentHandlerLoadFrameSync,r,t,o)(e)}async function ka(e,t,r,o,n,i){return o.addQueueMeasurement(Qo.SilentHandlerMonitorIframeForHash,i),new Promise(((o,i)=>{t<fs&&n.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${t}ms) than the default (6000ms). This may result in timeouts.`);const s=window.setTimeout((()=>{window.clearInterval(a),i(Ti(Bn))}),t),a=window.setInterval((()=>{let t="";const r=e.contentWindow;try{t=r?r.location.href:""}catch(e){}if(!t||"about:blank"===t)return;const n=r?r.location.hash:"";window.clearTimeout(s),window.clearInterval(a),o(n)}),r)})).finally((()=>{Vo(Ra,Qo.RemoveHiddenIframe,n,o,i)(e)}))}function Sa(e,t,r,o){return r.addQueueMeasurement(Qo.SilentHandlerLoadFrame,o),new Promise(((r,o)=>{const n=ba();window.setTimeout((()=>{n?(n.src=e,r(n)):o("Unable to load iframe")}),t)}))}function Ea(e){const t=ba();return t.src=e,t}function ba(){const e=document.createElement("iframe");return e.style.visibility="hidden",e.style.position="absolute",e.style.width=e.style.height="0",e.style.border="0",e.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),document.getElementsByTagName("body")[0].appendChild(e),e}function Ra(e){document.body===e.parentNode&&document.body.removeChild(e)}class Pa extends la{constructor(e,t,r,o,n,i,s,a,c,l,h){super(e,t,r,o,n,i,a,l,h),this.apiId=s,this.nativeStorage=c}async acquireToken(r){if(this.performanceClient.addQueueMeasurement(Qo.SilentIframeClientAcquireToken,r.correlationId),r.loginHint||r.sid||r.account&&r.account.username||this.logger.warning("No user hint provided. The authorization server may need more information to complete this request."),r.prompt&&r.prompt!==de.NONE&&r.prompt!==de.NO_SESSION)throw Ti($n);const o=await Jo(this.initializeAuthorizationRequest.bind(this),Qo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,r.correlationId)({...r,prompt:r.prompt||de.NONE},e.InteractionType.Silent);us(o.authority),this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(this.apiId);try{const e=await Jo(this.createAuthCodeClient.bind(this),Qo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,r.correlationId)(n,o.authority,o.azureCloudOptions);return await Jo(this.silentTokenHelper.bind(this),Qo.SilentIframeClientTokenHelper,this.logger,this.performanceClient,r.correlationId)(e,o)}catch(e){throw e instanceof ut&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(o.state),e}}logout(){return Promise.reject(Ti(zn))}async silentTokenHelper(t,r){const o=r.correlationId;this.performanceClient.addQueueMeasurement(Qo.SilentIframeClientTokenHelper,o);const n=await Jo(this.initializeAuthorizationCodeRequest.bind(this),Qo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,o)(r),i=await Jo(t.getAuthCodeUrl.bind(t),Qo.GetAuthCodeUrl,this.logger,this.performanceClient,o)({...r,nativeBroker:va.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,r.authenticationScheme)}),s=new wa(t,this.browserStorage,n,this.logger,this.performanceClient),a=await Jo(Aa,Qo.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,o)(i,this.performanceClient,this.logger,o,this.config.system.navigateFrameWait),c=await Jo(ka,Qo.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,o)(a,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,o);if(!c)throw this.logger.error("The request has returned to the redirectUri but a hash is not present in the iframe. It's likely that the hash has been removed or the page has been redirected by code running on the redirectUri page."),Ti(bn);if(!eo.hashContainsKnownProperties(c))throw this.logger.error("A hash is present in the iframe but it does not contain known properties. It's likely that the hash has been replaced by code running on the redirectUri page."),this.logger.errorPii(`The hash detected in the iframe is: ${c}`),Ti(Pn);const l=eo.getDeserializedHash(c),h=this.validateAndExtractStateFromHash(l,e.InteractionType.Silent,o);if(l.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Ti(ui);const e=new Ca(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,l.accountId,this.browserStorage,o),{userRequestState:t}=$o.parseRequestState(this.browserCrypto,h);return Jo(e.acquireToken.bind(e),Qo.NativeInteractionClientAcquireToken,this.logger,this.performanceClient,o)({...r,state:t,prompt:r.prompt||de.NONE}).finally((()=>{this.browserStorage.cleanRequestByState(h)}))}return Jo(s.handleCodeResponseFromHash.bind(s),Qo.HandleCodeResponseFromHash,this.logger,this.performanceClient,o)(c,h,t.authority,this.networkClient)}}class Ma extends la{async acquireToken(e){this.performanceClient.addQueueMeasurement(Qo.SilentRefreshClientAcquireToken,e.correlationId);const t=await Jo(this.initializeBaseRequest.bind(this),Qo.InitializeBaseRequest,this.logger,this.performanceClient,e.correlationId)(e,e.account),r={...e,...t},o=this.initializeServerTelemetryManager(Yi.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient(o,r.authority,r.azureCloudOptions);return this.logger.verbose("Refresh token client created"),Jo(n.acquireTokenByRefreshToken.bind(n),Qo.RefreshTokenClientAcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(r).then((e=>e)).then((t=>(this.performanceClient.addFields({fromCache:t.fromCache,requestId:t.requestId},e.correlationId),t))).catch((e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),e}))}logout(){return Promise.reject(Ti(zn))}async createRefreshTokenClient(e,t,r){const o=await Jo(this.getClientConfiguration.bind(this),Qo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new nn(o,this.performanceClient)}}class Na{constructor(e,t,r,o){this.isBrowserEnvironment="undefined"!=typeof window,this.config=e,this.storage=t,this.logger=r,this.cryptoObj=o}loadExternalTokens(e,t,r){if(this.logger.info("TokenCache - loadExternalTokens called"),!t.id_token)throw Ti(oi);const o=Xr(t.id_token,bs);let n,i,s;if(e.account)s=Jr.createFromAccountInfo(e.account),n=new Go(s,this.loadIdToken(t.id_token,s.homeAccountId,e.account.environment,e.account.tenantId),this.loadAccessToken(e,t,s.homeAccountId,e.account.environment,e.account.tenantId,r),this.loadRefreshToken(e,t,s.homeAccountId,e.account.environment));else{if(!e.authority)throw Ti(oi);{const a=ln.generateAuthority(e.authority,e.azureCloudOptions),c={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache};if(i=new ln(a,this.config.system.networkClient,this.storage,c,this.logger),r.clientInfo)this.logger.trace("TokenCache - homeAccountId from options"),s=this.loadAccount(o,i,r.clientInfo),n=new Go(s,this.loadIdToken(t.id_token,s.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,s.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,s.homeAccountId,i.hostnameAndPort));else{if(!t.client_info)throw Ti(oi);this.logger.trace("TokenCache - homeAccountId from response"),s=this.loadAccount(o,i,t.client_info),n=new Go(s,this.loadIdToken(t.id_token,s.homeAccountId,i.hostnameAndPort,i.tenant),this.loadAccessToken(e,t,s.homeAccountId,i.hostnameAndPort,i.tenant,r),this.loadRefreshToken(e,t,s.homeAccountId,i.hostnameAndPort))}}}return this.generateAuthenticationResult(e,o,n,s,i)}loadAccount(e,t,r,o){let n;if(o?n=o:void 0!==t.authorityType&&r&&(n=Jr.generateHomeAccountId(r,t.authorityType,this.logger,this.cryptoObj,e)),!n)throw Ti(oi);const i=Jr.createAccount({homeAccountId:n,idTokenClaims:e,clientInfo:r,environment:t.hostnameAndPort},t);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading account"),this.storage.setAccount(i),i;throw Ti(oi)}loadIdToken(e,t,r,o){const n=Eo.createIdTokenEntity(t,r,e,this.config.auth.clientId,o);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading id token"),this.storage.setIdTokenCredential(n),n;throw Ti(oi)}loadAccessToken(e,t,r,o,n,i){if(!t.access_token)return this.logger.verbose("TokenCache - No access token provided for caching"),null;if(!t.expires_in)throw Ti(oi);if(!i.extendedExpiresOn)throw Ti(oi);const s=new zr(e.scopes).printScopes(),a=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,l=Ro.createAccessTokenEntity(r,o,t.access_token,this.config.auth.clientId,n,s,a,c,this.cryptoObj);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(l),l;throw Ti(oi)}loadRefreshToken(e,t,r,o){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const n=Po.createRefreshTokenEntity(r,o,t.refresh_token,this.config.auth.clientId);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading refresh token"),this.storage.setRefreshTokenCredential(n),n;throw Ti(oi)}generateAuthenticationResult(e,r,o,n,i){let s,a=t.EMPTY_STRING,c=[],l=null;o?.accessToken&&(a=o.accessToken.secret,c=zr.fromString(o.accessToken.target).asArray(),l=new Date(1e3*Number(o.accessToken.expiresOn)),s=new Date(1e3*Number(o.accessToken.extendedExpiresOn)));const h=r.oid||r.sub||t.EMPTY_STRING,d=r.tid||t.EMPTY_STRING;return{authority:i?i.canonicalAuthority:t.EMPTY_STRING,uniqueId:h,tenantId:d,scopes:c,account:n.getAccountInfo(),idToken:o.idToken?.secret||"",idTokenClaims:r||{},accessToken:a,fromCache:!0,expiresOn:l,correlationId:e.correlationId||t.EMPTY_STRING,requestId:t.EMPTY_STRING,extExpiresOn:s,familyId:t.EMPTY_STRING,tokenType:o?.accessToken?.tokenType||t.EMPTY_STRING,state:t.EMPTY_STRING,cloudGraphHostName:n.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:n.msGraphHost||t.EMPTY_STRING,code:void 0,fromNativeBroker:!1}}}class Oa extends on{constructor(e){super(e),this.includeRedirectUri=!1}}class qa extends la{constructor(e,t,r,o,n,i,s,a,c,l){super(e,t,r,o,n,i,a,c,l),this.apiId=s}async acquireToken(r){if(!r.code)throw Ti(ii);const o=await Jo(this.initializeAuthorizationRequest.bind(this),Qo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,r.correlationId)(r,e.InteractionType.Silent);this.browserStorage.updateCacheEntries(o.state,o.nonce,o.authority,o.loginHint||t.EMPTY_STRING,o.account||null);const n=this.initializeServerTelemetryManager(this.apiId);try{const e={...o,code:r.code},t=await Jo(this.getClientConfiguration.bind(this),Qo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,r.correlationId)(n,o.authority),i=new Oa(t);this.logger.verbose("Auth code client created");const s=new wa(i,this.browserStorage,e,this.logger,this.performanceClient);return Jo(s.handleCodeResponseFromServer.bind(s),Qo.HandleCodeResponseFromServer,this.logger,this.performanceClient,r.correlationId)({code:r.code,msgraph_host:r.msGraphHost,cloud_graph_host_name:r.cloudGraphHostName,cloud_instance_host_name:r.cloudInstanceHostName},o.state,i.authority,this.networkClient,!1)}catch(e){throw e instanceof ut&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),this.browserStorage.cleanRequestByState(o.state),e}}logout(){return Promise.reject(Ti(zn))}}class La{constructor(e){this.atsAsyncMeasurement=void 0,this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.isBrowserEnvironment(),this.config=e.getConfig(),this.initialized=!1,this.logger=this.operatingContext.getLogger(),this.networkClient=this.config.system.networkClient,this.navigationClient=this.config.system.navigationClient,this.redirectResponse=new Map,this.hybridAuthCodeResponses=new Map,this.performanceClient=this.config.telemetry.client,this.browserCrypto=this.isBrowserEnvironment?new Fs(this.logger,this.performanceClient):lr,this.eventHandler=new oa(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new ea(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger,function(e){const t=e.cloudDiscoveryMetadata;let r;if(t)try{r=JSON.parse(t).metadata}catch(e){throw Kr(Er)}return{canonicalAuthority:e.authority?hn(e.authority):void 0,knownAuthorities:e.knownAuthorities,cloudDiscoveryMetadata:r}}(this.config.auth)):ta(this.config.auth.clientId,this.logger);const t={cacheLocation:Pi.MemoryStorage,temporaryCacheLocation:Pi.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new ea(this.config.auth.clientId,t,this.browserCrypto,this.logger),this.tokenCache=new Na(this.config,this.browserStorage,this.logger,this.browserCrypto),this.activeSilentTokenRequests=new Map,this.trackPageVisibility=this.trackPageVisibility.bind(this),this.trackPageVisibilityWithMeasurement=this.trackPageVisibilityWithMeasurement.bind(this)}static async createController(e){const t=new La(e);return await t.initialize(),t}trackPageVisibility(){this.atsAsyncMeasurement&&(this.logger.info("Perf: Visibility change detected"),this.atsAsyncMeasurement.increment({visibilityChangeCount:1}))}async initialize(){if(this.logger.trace("initialize called"),this.initialized)return void this.logger.info("initialize has already been called, exiting early.");const e=this.config.system.allowNativeBroker,t=this.performanceClient.startMeasurement(Qo.InitializeClientApplication);if(this.eventHandler.emitEvent(ra.INITIALIZE_START),e)try{this.nativeExtensionProvider=await va.createProvider(this.logger,this.config.system.nativeBrokerHandshakeTimeout,this.performanceClient)}catch(e){this.logger.verbose(e)}this.config.cache.claimsBasedCachingEnabled||(this.logger.verbose("Claims-based caching is disabled. Clearing the previous cache with claims"),await Jo(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),Qo.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient)(this.performanceClient)),this.initialized=!0,this.eventHandler.emitEvent(ra.INITIALIZE_END),t.end({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),ds(this.initialized);let o=r;if(this.config.auth.OIDCOptions?.serverResponseType===fe.QUERY){const e=window.location.href;o=eo.parseQueryServerResponse(e)}const n=this.getAllAccounts();if(this.isBrowserEnvironment){const r=o||t.EMPTY_STRING;let i=this.redirectResponse.get(r);if(void 0===i){this.eventHandler.emitEvent(ra.HANDLE_REDIRECT_START,e.InteractionType.Redirect),this.logger.verbose("handleRedirectPromise has been called for the first time, storing the promise");const s=this.browserStorage.getCachedNativeRequest();let a;if(s&&va.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!o){this.logger.trace("handleRedirectPromise - acquiring token from native platform");a=new Ca(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Yi.handleRedirectPromise,this.performanceClient,this.nativeExtensionProvider,s.accountId,this.nativeInternalStorage,s.correlationId).handleRedirectPromise()}else{this.logger.trace("handleRedirectPromise - acquiring token from web flow");const e=this.browserStorage.getTemporaryCache(Ki,!0)||t.EMPTY_STRING;a=this.createRedirectClient(e).handleRedirectPromise(o)}i=a.then((t=>{if(t){n.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(ra.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent(ra.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw n.length>0?this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ra.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ra.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})),this.redirectResponse.set(r,i)}else this.logger.verbose("handleRedirectPromise has been called previously, returning the result from the first call");return i}return this.logger.verbose("handleRedirectPromise returns null, not browser environment"),null}async acquireTokenRedirect(t){const r=this.getRequestCorrelationId(t);this.logger.verbose("acquireTokenRedirect called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);const o=this.getAllAccounts().length>0;let n;if(o?this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent(ra.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){n=new Ca(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Yi.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,t.correlationId).acquireTokenRedirect(t).catch((e=>{if(e instanceof ua&&ga(e)){this.nativeExtensionProvider=void 0;return this.createRedirectClient(t.correlationId).acquireToken(t)}if(e instanceof Ko){this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createRedirectClient(t.correlationId).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}))}else{n=this.createRedirectClient(t.correlationId).acquireToken(t)}return n.catch((t=>{throw o?this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ra.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),o=this.performanceClient.startMeasurement(Qo.AcquireTokenPopup,r);try{this.logger.verbose("acquireTokenPopup called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup)}catch(e){return Promise.reject(e)}const n=this.getAllAccounts();let i;if(n.length>0?this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ra.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative(t,Yi.acquireTokenPopup).then((e=>(this.getBrowserStorage().setInteractionInProgress(!1),o.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof ua&&ga(e)){this.nativeExtensionProvider=void 0;return this.createPopupClient(t.correlationId).acquireToken(t)}if(e instanceof Ko){this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createPopupClient(t.correlationId).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}));else{i=this.createPopupClient(t.correlationId).acquireToken(t)}return i.then((t=>(n.length<this.getAllAccounts().length?this.eventHandler.emitEvent(ra.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Popup,t),o.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.end({success:!0,requestId:t.requestId}),t))).catch((t=>(n.length>0?this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent(ra.LOGIN_FAILURE,e.InteractionType.Popup,null,t),o.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),Promise.reject(t))))}trackPageVisibilityWithMeasurement(){const e=this.ssoSilentMeasurement||this.acquireTokenByCodeAsyncMeasurement;e&&(this.logger.info("Perf: Visibility change detected in ",e.event.name),e.increment({visibilityChangeCount:1}))}async ssoSilent(t){const r=this.getRequestCorrelationId(t),o={...t,prompt:t.prompt,correlationId:r};let n;if(this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.ssoSilentMeasurement=this.performanceClient.startMeasurement(Qo.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(ra.SSO_SILENT_START,e.InteractionType.Silent,o),this.canUseNative(o))n=this.acquireTokenNative(o,Yi.ssoSilent).catch((e=>{if(e instanceof ua&&ga(e)){this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(o.correlationId).acquireToken(o)}throw e}));else{n=this.createSilentIframeClient(o.correlationId).acquireToken(o)}return n.then((t=>(this.eventHandler.emitEvent(ra.SSO_SILENT_SUCCESS,e.InteractionType.Silent,t),this.ssoSilentMeasurement?.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),this.ssoSilentMeasurement?.end({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(ra.SSO_SILENT_FAILURE,e.InteractionType.Silent,null,t),this.ssoSilentMeasurement?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenByCode(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.trace("acquireTokenByCode called",r),this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const o=this.performanceClient.startMeasurement(Qo.AcquireTokenByCode,t.correlationId);try{if(t.code&&t.nativeAccountId)throw Ti(ai);if(t.code){const n=t.code;let i=this.hybridAuthCodeResponses.get(n);return i?(this.logger.verbose("Existing acquireTokenByCode request found",t.correlationId),o.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",r),i=this.acquireTokenByCodeAsync({...t,correlationId:r}).then((t=>(this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_BY_CODE_SUCCESS,e.InteractionType.Silent,t),this.hybridAuthCodeResponses.delete(n),o.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),o.end({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.hybridAuthCodeResponses.delete(n),this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})),this.hybridAuthCodeResponses.set(n,i)),i}if(t.nativeAccountId){if(this.canUseNative(t,t.nativeAccountId))return this.acquireTokenNative(t,Yi.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof ua&&ga(e)&&(this.nativeExtensionProvider=void 0),e}));throw Ti(li)}throw Ti(si)}catch(t){throw this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.end({errorCode:t instanceof ut&&t.errorCode||void 0,subErrorCode:t instanceof ut&&t.subError||void 0,success:!1}),t}}async acquireTokenByCodeAsync(e){this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(Qo.AcquireTokenByCodeAsync,e.correlationId),this.acquireTokenByCodeAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement);const t=this.createSilentAuthCodeClient(e.correlationId);return await t.acquireToken(e).then((e=>(this.acquireTokenByCodeAsyncMeasurement?.end({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,requestId:e.requestId}),e))).catch((e=>{throw this.acquireTokenByCodeAsyncMeasurement?.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)}))}async acquireTokenFromCache(e,t,r){switch(this.performanceClient.addQueueMeasurement(Qo.AcquireTokenFromCache,t.correlationId),r.cacheLookupPolicy){case es.Default:case es.AccessToken:case es.AccessTokenAndRefreshToken:return Jo(e.acquireToken.bind(e),Qo.SilentCacheClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(t);default:throw cr(Qt)}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(Qo.AcquireTokenByRefreshToken,e.correlationId),t.cacheLookupPolicy){case es.Default:case es.AccessTokenAndRefreshToken:case es.RefreshToken:case es.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return Jo(t.acquireToken.bind(t),Qo.SilentRefreshClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw cr(Qt)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(Qo.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return Jo(t.acquireToken.bind(t),Qo.SilentIframeClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e)}async logout(e){const t=this.getRequestCorrelationId(e);return this.logger.warning("logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.",t),this.logoutRedirect({correlationId:t,...e})}async logoutRedirect(t){const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Redirect);return this.createRedirectClient(r).logout(t)}logoutPopup(t){try{const r=this.getRequestCorrelationId(t);this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup);return this.createPopupClient(r).logout(t)}catch(e){return Promise.reject(e)}}async clearCache(e){const t=this.getRequestCorrelationId(e);return this.createSilentCacheClient(t).logout(e)}getAllAccounts(e){return this.logger.verbose("getAllAccounts called"),this.isBrowserEnvironment?this.browserStorage.getAllAccounts(e):[]}getAccount(e){if(this.logger.trace("getAccount called"),0===Object.keys(e).length)return this.logger.warning("getAccount: No accountFilter provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy(e);return t?(this.logger.verbose("getAccount: Account matching provided filter found, returning"),t):(this.logger.verbose("getAccount: No matching account found, returning null"),null)}getAccountByUsername(e){if(this.logger.trace("getAccountByUsername called"),!e)return this.logger.warning("getAccountByUsername: No username provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({username:e});return t?(this.logger.verbose("getAccountByUsername: Account matching username found, returning"),this.logger.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${e}`),t):(this.logger.verbose("getAccountByUsername: No matching account found, returning null"),null)}getAccountByHomeId(e){if(this.logger.trace("getAccountByHomeId called"),!e)return this.logger.warning("getAccountByHomeId: No homeAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({homeAccountId:e});return t?(this.logger.verbose("getAccountByHomeId: Account matching homeAccountId found, returning"),this.logger.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${e}`),t):(this.logger.verbose("getAccountByHomeId: No matching account found, returning null"),null)}getAccountByLocalId(e){if(this.logger.trace("getAccountByLocalId called"),!e)return this.logger.warning("getAccountByLocalId: No localAccountId provided"),null;const t=this.browserStorage.getAccountInfoFilteredBy({localAccountId:e});return t?(this.logger.verbose("getAccountByLocalId: Account matching localAccountId found, returning"),this.logger.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${e}`),t):(this.logger.verbose("getAccountByLocalId: No matching account found, returning null"),null)}setActiveAccount(e){this.browserStorage.setActiveAccount(e)}getActiveAccount(){return this.browserStorage.getActiveAccount()}async hydrateCache(e,t){this.logger.verbose("hydrateCache called");const r=Jr.createFromAccountInfo(e.account,e.cloudGraphHostName,e.msGraphHost);return this.browserStorage.setAccount(r),e.fromNativeBroker?(this.logger.verbose("Response was from native broker, storing in-memory"),this.nativeInternalStorage.hydrateCache(e,t)):this.browserStorage.hydrateCache(e,t)}preflightBrowserEnvironmentCheck(t,r=!1){if(this.logger.verbose("preflightBrowserEnvironmentCheck started"),hs(this.isBrowserEnvironment),cs(t,this.config.system.allowRedirectInIframe),as(),ls(),ds(this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===Pi.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw Js(Qs);t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),as(),e&&this.getBrowserStorage().setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw Ti(ui);return new Ca(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,t,this.performanceClient,this.nativeExtensionProvider,r||this.getNativeAccountId(e),this.nativeInternalStorage,e.correlationId).acquireToken(e)}canUseNative(e,t){if(this.logger.trace("canUseNative called"),!va.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,e.authenticationScheme))return this.logger.trace("canUseNative: isNativeAvailable returned false, returning false"),!1;if(e.prompt)switch(e.prompt){case de.NONE:case de.CONSENT:case de.LOGIN:this.logger.trace("canUseNative: prompt is compatible with native flow");break;default:return this.logger.trace(`canUseNative: prompt = ${e.prompt} is not compatible with native flow, returning false`),!1}return!(!t&&!this.getNativeAccountId(e))||(this.logger.trace("canUseNative: nativeAccountId is not available, returning false"),!1)}getNativeAccountId(e){const t=e.account||this.browserStorage.getAccountInfoFilteredBy({loginHint:e.loginHint,sid:e.sid})||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new Ta(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new _a(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new Pa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Yi.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new ma(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new Ma(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new qa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Yi.acquireTokenByCode,this.performanceClient,this.nativeExtensionProvider,e)}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return this.performanceClient.addPerformanceCallback(e)}removePerformanceCallback(e){return this.performanceClient.removePerformanceCallback(e)}enableAccountStorageEvents(){this.eventHandler.enableAccountStorageEvents()}disableAccountStorageEvents(){this.eventHandler.disableAccountStorageEvents()}getTokenCache(){return this.tokenCache}getLogger(){return this.logger}setLogger(e){this.logger=e}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){this.navigationClient=e}getConfiguration(){return this.config}getPerformanceClient(){return this.performanceClient}getBrowserStorage(){return this.browserStorage}isBrowserEnv(){return this.isBrowserEnvironment}getEventHandler(){return this.eventHandler}getRequestCorrelationId(e){return e?.correlationId?e.correlationId:this.isBrowserEnvironment?qs():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||Ji})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||Ji})}async acquireTokenSilent(r){const o=this.getRequestCorrelationId(r),n=this.performanceClient.startMeasurement(Qo.AcquireTokenSilent,o);n.add({cacheLookupPolicy:r.cacheLookupPolicy}),this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.verbose("acquireTokenSilent called",o);const i=r.account||this.getActiveAccount();if(!i)throw Ti(Gn);const s={clientId:this.config.auth.clientId,authority:r.authority||t.EMPTY_STRING,scopes:r.scopes,homeAccountIdentifier:i.homeAccountId,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},a=JSON.stringify(s),c=this.activeSilentTokenRequests.get(a);if(void 0===c){this.logger.verbose("acquireTokenSilent called for the first time, storing active request",o);const e=Jo(this.acquireTokenSilentAsync.bind(this),Qo.AcquireTokenSilentAsync,this.logger,this.performanceClient,o)({...r,correlationId:o},i).then((e=>(this.activeSilentTokenRequests.delete(a),n.add({accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length}),n.end({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,cacheLookupPolicy:r.cacheLookupPolicy,requestId:e.requestId}),e))).catch((e=>{throw this.activeSilentTokenRequests.delete(a),n.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}));return this.activeSilentTokenRequests.set(a,e),e}return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",o),n.discard(),c}async acquireTokenSilentAsync(t,r){let o;if(this.performanceClient.addQueueMeasurement(Qo.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(Qo.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),va.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,t.authenticationScheme)&&r.nativeAccountId){this.logger.verbose("acquireTokenSilent - attempting to acquire token from native platform");const e={...t,account:r};o=this.acquireTokenNative(e,Yi.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof ua&&ga(e)){this.logger.verbose("acquireTokenSilent - native platform unavailable, falling back to web flow"),this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(t.correlationId).acquireToken(t)}throw e}))}else{this.logger.verbose("acquireTokenSilent - attempting to acquire token from web flow");const n=this.createSilentCacheClient(t.correlationId),i=await Jo(n.initializeSilentRequest.bind(n),Qo.InitializeSilentRequest,this.logger,this.performanceClient,t.correlationId)(t,r),s={...t,cacheLookupPolicy:t.cacheLookupPolicy||es.Default};o=Jo(this.acquireTokenFromCache.bind(this),Qo.AcquireTokenFromCache,this.logger,this.performanceClient,i.correlationId)(n,i,s).catch((r=>{if(s.cacheLookupPolicy===es.AccessToken)throw r;return as(),this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),Jo(this.acquireTokenByRefreshToken.bind(this),Qo.AcquireTokenByRefreshToken,this.logger,this.performanceClient,i.correlationId)(i,s).catch((e=>{const r=e instanceof Co,o=e instanceof Ko,n=e.errorCode===Ii.INVALID_GRANT_ERROR;if((!r||!n||o||s.cacheLookupPolicy===es.AccessTokenAndRefreshToken||s.cacheLookupPolicy===es.RefreshToken)&&s.cacheLookupPolicy!==es.Skip)throw e;return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",t.correlationId),Jo(this.acquireTokenBySilentIframe.bind(this),Qo.AcquireTokenBySilentIframe,this.logger,this.performanceClient,i.correlationId)(i)}))}))}return o.then((t=>(this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Silent,t),this.atsAsyncMeasurement?.end({success:!0,fromCache:t.fromCache,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Silent,null,t),this.atsAsyncMeasurement?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibility)}))}}var Ua=Object.freeze({__proto__:null,StandardController:La});class Ha{static async createPublicClientApplication(e){const t=new _s(e),r=await t.createV3Controller();return new Ha(e,r)}constructor(e,t){if(t)this.controller=t;else{const t=new Is(e);this.controller=new La(t)}}async initialize(){return this.controller.initialize()}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e){return this.controller.addEventCallback(e)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccount(e){return this.controller.getAccount(e)}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(e){return this.controller.getAllAccounts(e)}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,t){return this.controller.initializeWrapperLibrary(e,t)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}async hydrateCache(e,t){return this.controller.hydrateCache(e,t)}clearCache(e){return this.controller.clearCache(e)}}class Ba{constructor(e){this.initialized=!1,this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.isBrowserEnvironment(),this.config=e.getConfig(),this.logger=e.getLogger(),this.performanceClient=this.config.telemetry.client,this.browserCrypto=this.isBrowserEnvironment?new Fs(this.logger,this.performanceClient):lr,this.browserStorage=this.isBrowserEnvironment?new ea(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):ta(this.config.auth.clientId,this.logger),this.eventHandler=new oa(this.logger,this.browserCrypto)}getBrowserStorage(){return this.browserStorage}getEventHandler(){return this.eventHandler}getAccount(e){return null}getAccountByHomeId(e){return null}getAccountByLocalId(e){return null}getAccountByUsername(e){return null}getAllAccounts(){return[]}initialize(){return this.initialized=!0,Promise.resolve()}acquireTokenPopup(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}acquireTokenRedirect(e){return ds(this.initialized),hs(this.isBrowserEnvironment),Promise.resolve()}acquireTokenSilent(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}acquireTokenByCode(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}acquireTokenNative(e,t,r){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}acquireTokenByRefreshToken(e,t){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return ds(this.initialized),hs(this.isBrowserEnvironment),""}removePerformanceCallback(e){return ds(this.initialized),hs(this.isBrowserEnvironment),!0}enableAccountStorageEvents(){ds(this.initialized),hs(this.isBrowserEnvironment)}disableAccountStorageEvents(){ds(this.initialized),hs(this.isBrowserEnvironment)}handleRedirectPromise(e){return ds(this.initialized),Promise.resolve(null)}loginPopup(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}loginRedirect(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}logout(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}logoutRedirect(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}logoutPopup(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}ssoSilent(e){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}getTokenCache(){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}getLogger(){return this.logger}setLogger(e){ds(this.initialized),hs(this.isBrowserEnvironment)}setActiveAccount(e){ds(this.initialized),hs(this.isBrowserEnvironment)}getActiveAccount(){return ds(this.initialized),hs(this.isBrowserEnvironment),null}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){ds(this.initialized),hs(this.isBrowserEnvironment)}getConfiguration(){return this.config}isBrowserEnv(){return ds(this.initialized),hs(this.isBrowserEnvironment),!0}getBrowserCrypto(){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}getPerformanceClient(){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}getRedirectResponse(){return ds(this.initialized),hs(this.isBrowserEnvironment),{}}preflightBrowserEnvironmentCheck(e,t){ds(this.initialized),hs(this.isBrowserEnvironment)}async clearCache(e){ds(this.initialized),hs(this.isBrowserEnvironment)}async hydrateCache(e,t){ds(this.initialized),hs(this.isBrowserEnvironment)}}class Da extends vs{getModuleName(){return Da.MODULE_NAME}getId(){return Da.ID}async initialize(){return!0}}Da.MODULE_NAME="",Da.ID="UnknownOperatingContext";class xa{static async createPublicClientApplication(e){const t=new _s(e),r=await t.createController();let o;return o=null!==r?new xa(e,r):new xa(e),o}constructor(e,t){if(this.configuration=e,t)this.controller=t;else{const t=new Da(e);this.controller=new Ba(t)}}async initialize(){if(this.controller instanceof Ba){const e=new _s(this.configuration),t=await e.createController();return null!==t&&(this.controller=t),this.controller.initialize()}return Promise.resolve()}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e){return this.controller.addEventCallback(e)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccount(e){return this.controller.getAccount(e)}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(e){return this.controller.getAllAccounts(e)}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,t){return this.controller.initializeWrapperLibrary(e,t)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}async hydrateCache(e,t){return this.controller.hydrateCache(e,t)}clearCache(e){return this.controller.clearCache(e)}}const Ka={initialize:()=>Promise.reject(Js($s)),acquireTokenPopup:()=>Promise.reject(Js($s)),acquireTokenRedirect:()=>Promise.reject(Js($s)),acquireTokenSilent:()=>Promise.reject(Js($s)),acquireTokenByCode:()=>Promise.reject(Js($s)),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(Js($s)),loginPopup:()=>Promise.reject(Js($s)),loginRedirect:()=>Promise.reject(Js($s)),logout:()=>Promise.reject(Js($s)),logoutRedirect:()=>Promise.reject(Js($s)),logoutPopup:()=>Promise.reject(Js($s)),ssoSilent:()=>Promise.reject(Js($s)),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw Js($s)},getLogger:()=>{throw Js($s)},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw Js($s)},hydrateCache:()=>Promise.reject(Js($s)),clearCache:()=>Promise.reject(Js($s))};class Fa{constructor(e,t){this.correlationId=t,this.measureName=Fa.makeMeasureName(e,t),this.startMark=Fa.makeStartMark(e,t),this.endMark=Fa.makeEndMark(e,t)}static makeMeasureName(e,t){return`msal.measure.${e}.${t}`}static makeStartMark(e,t){return`msal.start.${e}.${t}`}static makeEndMark(e,t){return`msal.end.${e}.${t}`}static supportsBrowserPerformance(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.mark&&"function"==typeof window.performance.measure&&"function"==typeof window.performance.clearMarks&&"function"==typeof window.performance.clearMeasures&&"function"==typeof window.performance.getEntriesByName}static flushMeasurements(e,t){if(Fa.supportsBrowserPerformance())try{t.forEach((t=>{const r=Fa.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(Fa.makeStartMark(r,e)),window.performance.clearMarks(Fa.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(Fa.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(Fa.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(Fa.supportsBrowserPerformance())try{const e=window.performance.getEntriesByName(this.measureName,"measure");if(e.length>0){const t=e[0].duration;return window.performance.clearMeasures(this.measureName),window.performance.clearMarks(this.startMark),window.performance.clearMarks(this.endMark),t}}catch(e){}return null}}var za;!function(e){e.USER_INTERACTION_REQUIRED="USER_INTERACTION_REQUIRED",e.USER_CANCEL="USER_CANCEL",e.NO_NETWORK="NO_NETWORK",e.TRANSIENT_ERROR="TRANSIENT_ERROR",e.PERSISTENT_ERROR="PERSISTENT_ERROR",e.DISABLED="DISABLED",e.ACCOUNT_UNAVAILABLE="ACCOUNT_UNAVAILABLE",e.NESTED_APP_AUTH_UNAVAILABLE="NESTED_APP_AUTH_UNAVAILABLE"}(za||(za={}));class Ga{constructor(e,t,r,o){this.clientId=e,this.clientCapabilities=t,this.crypto=r,this.logger=o}toNaaSilentTokenRequest(e){let t;t=void 0===e.extraQueryParameters?new Map:new Map(Object.entries(e.extraQueryParameters));return{userObjectId:e.account?.homeAccountId,clientId:this.clientId,authority:e.authority,scope:e.scopes.join(" "),correlationId:void 0!==e.correlationId?e.correlationId:this.crypto.createNewGuid(),prompt:void 0!==e.prompt?e.prompt:"",claims:void 0!==e.claims?e.claims:"",authenticationScheme:void 0!==e.authenticationScheme?e.authenticationScheme:"",clientCapabilities:this.clientCapabilities,extraParameters:t}}toNaaTokenRequest(e){let t;t=void 0===e.extraQueryParameters?new Map:new Map(Object.entries(e.extraQueryParameters));return{userObjectId:e.account?.homeAccountId,clientId:this.clientId,authority:e.authority,scope:e.scopes.join(" "),correlationId:void 0!==e.correlationId?e.correlationId:"",prompt:void 0!==e.prompt?e.prompt:"",nonce:void 0!==e.nonce?e.nonce:"",claims:void 0!==e.claims?e.claims:"",state:void 0!==e.state?e.state:"",authenticationScheme:void 0!==e.authenticationScheme?e.authenticationScheme:"",clientCapabilities:void 0,extraParameters:t}}fromNaaTokenResponse(e,t){const r=new Date(bo.nowSeconds()+1e3*(t.expires_in||0)),o=this.fromNaaAccountInfo(t.account);return{authority:t.account.environment,uniqueId:t.account.homeAccountId,tenantId:t.account.tenantId,scopes:t.scope.split(" "),account:this.fromNaaAccountInfo(t.account),idToken:void 0!==t.id_token?t.id_token:"",idTokenClaims:void 0!==o.idTokenClaims?o.idTokenClaims:{},accessToken:t.access_token,fromCache:!0,expiresOn:r,tokenType:void 0!==e.authenticationScheme?e.authenticationScheme:"Bearer",correlationId:e.correlationId,requestId:"",extExpiresOn:r,state:t.state}}fromNaaAccountInfo(e){let t;t=void 0!==e.idToken?Xr(e.idToken,this.crypto.base64Decode):void 0;return{homeAccountId:e.homeAccountId,environment:e.environment,tenantId:e.tenantId,username:e.username,localAccountId:e.localAccountId,name:e.name,idToken:e.idToken,idTokenClaims:t}}fromBridgeError(e){if(!function(e){return void 0!==e.status}(e))return new ut("unknown_error","An unknown error occurred");switch(e.status){case za.USER_CANCEL:return new ar(er);case za.NO_NETWORK:return new ar(Zt);case za.ACCOUNT_UNAVAILABLE:return new ar(Kt);case za.DISABLED:return new ar(or);case za.NESTED_APP_AUTH_UNAVAILABLE:return new ar(e.code,e.description);case za.TRANSIENT_ERROR:case za.PERSISTENT_ERROR:return new Co(e.code,e.description);case za.USER_INTERACTION_REQUIRED:return new Ko(e.code,e.description);default:return new ut(e.code,e.description)}}}const $a={code:"unsupported_method",desc:"The PKCE code challenge and verifier could not be generated."};class Qa extends ut{constructor(e,t){super(e,t),Object.setPrototypeOf(this,Qa.prototype),this.name="NestedAppAuthError"}static createUnsupportedError(){return new Qa($a.code,$a.desc)}}class ja{constructor(e){this.operatingContext=e;const t=this.operatingContext.getBridgeProxy();if(void 0===t)throw new Error("unexpected: bridgeProxy is undefined");this.bridgeProxy=t,this.config=e.getConfig(),this.logger=this.operatingContext.getLogger(),this.performanceClient=this.config.telemetry.client,this.browserCrypto=e.isBrowserEnvironment()?new Fs(this.logger,this.performanceClient):lr,this.eventHandler=new oa(this.logger,this.browserCrypto),this.nestedAppAuthAdapter=new Ga(this.config.auth.clientId,this.config.auth.clientCapabilities,this.browserCrypto,this.logger)}getBrowserStorage(){throw Qa.createUnsupportedError()}getEventHandler(){return this.eventHandler}static async createController(e){const t=new ja(e);return Promise.resolve(t)}initialize(){return Promise.resolve()}async acquireTokenInteractive(t){this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t);const r=this.performanceClient.startMeasurement(Qo.AcquireTokenPopup,t.correlationId);r?.add({nestedAppAuthRequest:!0});try{const o=this.nestedAppAuthAdapter.toNaaTokenRequest(t),n=await this.bridgeProxy.getTokenInteractive(o),i=this.nestedAppAuthAdapter.fromNaaTokenResponse(o,n);return this.operatingContext.setActiveAccount(i.account),this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Popup,i),r.add({accessTokenSize:i.accessToken.length,idTokenSize:i.idToken.length}),r.end({success:!0,requestId:i.requestId}),i}catch(t){const o=this.nestedAppAuthAdapter.fromBridgeError(t);throw this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t),r.end({errorCode:o.errorCode,subErrorCode:o.subError,success:!1}),o}}async acquireTokenSilentInternal(t){this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t);const r=this.performanceClient.startMeasurement(Qo.SsoSilent,t.correlationId);r?.increment({visibilityChangeCount:0}),r?.add({nestedAppAuthRequest:!0});try{const o=this.nestedAppAuthAdapter.toNaaSilentTokenRequest(t),n=await this.bridgeProxy.getTokenSilent(o),i=this.nestedAppAuthAdapter.fromNaaTokenResponse(o,n);return this.operatingContext.setActiveAccount(i.account),this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Silent,i),r?.add({accessTokenSize:i.accessToken.length,idTokenSize:i.idToken.length}),r?.end({success:!0,requestId:i.requestId}),i}catch(t){const o=this.nestedAppAuthAdapter.fromBridgeError(t);throw this.eventHandler.emitEvent(ra.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Silent,null,t),r?.end({errorCode:o.errorCode,subErrorCode:o.subError,success:!1}),o}}async acquireTokenPopup(e){return this.acquireTokenInteractive(e)}acquireTokenRedirect(e){throw Qa.createUnsupportedError()}async acquireTokenSilent(e){return this.acquireTokenSilentInternal(e)}acquireTokenByCode(e){throw Qa.createUnsupportedError()}acquireTokenNative(e,t,r){throw Qa.createUnsupportedError()}acquireTokenByRefreshToken(e,t){throw Qa.createUnsupportedError()}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){throw Qa.createUnsupportedError()}removePerformanceCallback(e){throw Qa.createUnsupportedError()}enableAccountStorageEvents(){throw Qa.createUnsupportedError()}disableAccountStorageEvents(){throw Qa.createUnsupportedError()}getAccount(e){throw Qa.createUnsupportedError()}getAccountByHomeId(e){const t=this.operatingContext.getActiveAccount();return void 0!==t&&t.homeAccountId===e?this.nestedAppAuthAdapter.fromNaaAccountInfo(t):null}getAccountByLocalId(e){const t=this.operatingContext.getActiveAccount();return void 0!==t&&t.localAccountId===e?this.nestedAppAuthAdapter.fromNaaAccountInfo(t):null}getAccountByUsername(e){const t=this.operatingContext.getActiveAccount();return void 0!==t&&t.username===e?this.nestedAppAuthAdapter.fromNaaAccountInfo(t):null}getAllAccounts(){const e=this.operatingContext.getActiveAccount();return void 0!==e?[this.nestedAppAuthAdapter.fromNaaAccountInfo(e)]:[]}handleRedirectPromise(e){throw Qa.createUnsupportedError()}loginPopup(e){if(void 0!==e)return this.acquireTokenInteractive(e);throw Qa.createUnsupportedError()}loginRedirect(e){throw Qa.createUnsupportedError()}logout(e){throw Qa.createUnsupportedError()}logoutRedirect(e){throw Qa.createUnsupportedError()}logoutPopup(e){throw Qa.createUnsupportedError()}ssoSilent(e){return this.acquireTokenSilentInternal(e)}getTokenCache(){throw Qa.createUnsupportedError()}getLogger(){return this.logger}setLogger(e){this.logger=e}setActiveAccount(e){this.logger.warning("nestedAppAuth does not support setActiveAccount")}getActiveAccount(){const e=this.operatingContext.getActiveAccount();return void 0!==e?this.nestedAppAuthAdapter.fromNaaAccountInfo(e):null}initializeWrapperLibrary(e,t){}setNavigationClient(e){this.logger.warning("setNavigationClient is not supported in nested app auth")}getConfiguration(){return this.config}isBrowserEnv(){return this.operatingContext.isBrowserEnvironment()}getBrowserCrypto(){return this.browserCrypto}getPerformanceClient(){throw Qa.createUnsupportedError()}getRedirectResponse(){throw Qa.createUnsupportedError()}preflightBrowserEnvironmentCheck(e,t){throw Qa.createUnsupportedError()}async clearCache(e){throw Qa.createUnsupportedError()}async hydrateCache(e,t){throw Qa.createUnsupportedError()}}var Ya=Object.freeze({__proto__:null,NestedAppAuthController:ja});e.AccountEntity=Jr,e.ApiId=Yi,e.AuthError=ut,e.AuthErrorCodes=lt,e.AuthErrorMessage=dt,e.AuthenticationHeaderParser=class{constructor(e){this.headers=e}getShrNonce(){const e=this.headers[u];if(e){const t=this.parseChallenges(e);if(t.nextnonce)return t.nextnonce;throw Kr(Or)}const t=this.headers[d];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw Kr(Or)}throw Kr(Nr)}parseChallenges(e){const r=e.indexOf(" "),o=e.substr(r+1).split(","),n={};return o.forEach((e=>{const[r,o]=e.split("=");n[r]=unescape(o.replace(/['"]+/g,t.EMPTY_STRING))})),n}},e.AuthenticationScheme=Be,e.AzureCloudInstance=pr,e.BrowserAuthError=wi,e.BrowserAuthErrorCodes=fi,e.BrowserAuthErrorMessage=vi,e.BrowserCacheLocation=Pi,e.BrowserConfigurationAuthError=Vs,e.BrowserConfigurationAuthErrorCodes=js,e.BrowserConfigurationAuthErrorMessage=Ws,e.BrowserPerformanceClient=class extends In{constructor(e,r){super(e.auth.clientId,e.auth.authority||`${t.DEFAULT_AUTHORITY}`,new dr(e.system?.loggerOptions||{},ys,Cs),ys,Cs,e.telemetry?.application||{appName:"",appVersion:""},r)}startPerformanceMeasurement(e,t){return new Fa(e,t)}generateId(){return window.crypto.randomUUID()}getPageVisibility(){return document.visibilityState?.toString()||null}deleteIncompleteSubMeasurements(e){const t=this.eventsByCorrelationId.get(e.event.correlationId),r=t&&t.eventId===e.event.eventId,o=[];r&&t?.incompleteSubMeasurements&&t.incompleteSubMeasurements.forEach((e=>{o.push({...e})})),o.length>0&&Fa.flushMeasurements(e.event.correlationId,o)}supportsBrowserPerformanceNow(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.now}startMeasurement(e,t){const r=this.getPageVisibility(),o=super.startMeasurement(e,t);return{...o,end:e=>{const t=o.end({startPageVisibility:r,endPageVisibility:this.getPageVisibility(),...e});return this.deleteIncompleteSubMeasurements(o),t},discard:()=>{o.discard(),this.deleteIncompleteSubMeasurements(o),o.measurement.flushMeasurement()}}}setPreQueueTime(e,t){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to set telemetry queue time`);const r=this.preQueueTimeByCorrelationId.get(t);r&&(this.logger.trace(`BrowserPerformanceClient: Incomplete pre-queue ${r.name} found`,t),this.addQueueMeasurement(r.name,t,void 0,!0)),this.preQueueTimeByCorrelationId.set(t,{name:e,time:window.performance.now()})}addQueueMeasurement(e,t,r,o){if(!this.supportsBrowserPerformanceNow())return void this.logger.trace(`BrowserPerformanceClient: window performance API not available, unable to add queue measurement for ${e}`);if(!t)return void this.logger.trace(`BrowserPerformanceClient: correlationId for ${e} not provided, unable to add queue measurement`);const n=super.getPreQueueTime(e,t);if(!n)return;const i=window.performance.now(),s=r||super.calculateQueuedTime(n,i);return super.addQueueMeasurement(e,t,s,o)}},e.BrowserPerformanceMeasurement=Fa,e.BrowserStorage=Xs,e.BrowserUtils=gs,e.CacheLookupPolicy=es,e.ClientAuthError=ar,e.ClientAuthErrorCodes=nr,e.ClientAuthErrorMessage=sr,e.ClientConfigurationError=xr,e.ClientConfigurationErrorCodes=Hr,e.ClientConfigurationErrorMessage=Dr,e.DEFAULT_IFRAME_TIMEOUT_MS=fs,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case ra.LOGIN_START:return Vi.Login;case ra.SSO_SILENT_START:return Vi.SsoSilent;case ra.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return Vi.AcquireToken;break;case ra.HANDLE_REDIRECT_START:return Vi.HandleRedirect;case ra.LOGOUT_START:return Vi.Logout;case ra.SSO_SILENT_SUCCESS:case ra.SSO_SILENT_FAILURE:if(r&&r!==Vi.SsoSilent)break;return Vi.None;case ra.LOGOUT_END:if(r&&r!==Vi.Logout)break;return Vi.None;case ra.HANDLE_REDIRECT_END:if(r&&r!==Vi.HandleRedirect)break;return Vi.None;case ra.LOGIN_SUCCESS:case ra.LOGIN_FAILURE:case ra.ACQUIRE_TOKEN_SUCCESS:case ra.ACQUIRE_TOKEN_FAILURE:case ra.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==Vi.Login&&r!==Vi.AcquireToken)break;return Vi.None}}return null}},e.EventType=ra,e.InteractionRequiredAuthError=Ko,e.InteractionRequiredAuthErrorCodes=Uo,e.InteractionRequiredAuthErrorMessage=xo,e.InteractionStatus=Vi,e.Logger=dr,e.MemoryStorage=Hs,e.NavigationClient=ps,e.OIDC_DEFAULT_SCOPES=s,e.PerformanceEvents=Qo,e.PromptValue=de,e.ProtocolMode=Vr,e.PublicClientApplication=Ha,e.PublicClientNext=xa,e.ServerError=Co,e.ServerResponseType=fe,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new dr(r,ys,Cs),this.cryptoOps=new Fs(this.logger),this.popTokenGenerator=new Zo(this.cryptoOps),this.shrParameters=e}async generatePublicKeyThumbprint(){const{kid:e}=await this.popTokenGenerator.generateKid(this.shrParameters);return e}async signRequest(e,t,r){return this.popTokenGenerator.signPayload(e,t,this.shrParameters,r)}async removeKeys(e){return await this.cryptoOps.removeTokenBindingKey(e)}},e.StringUtils=Fr,e.UrlString=eo,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.stubbedPublicClientApplication=Ka,e.version=Cs}));
|