@azure/msal-browser 3.5.0 → 3.5.1-beta.1
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 +51 -51
- package/dist/app/IPublicClientApplication.mjs +102 -102
- package/dist/app/PublicClientApplication.d.ts +268 -268
- package/dist/app/PublicClientApplication.mjs +333 -333
- package/dist/app/PublicClientNext.d.ts +273 -273
- package/dist/app/PublicClientNext.mjs +351 -351
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
- package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
- package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
- package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
- package/dist/cache/AsyncMemoryStorage.mjs +132 -132
- package/dist/cache/BrowserCacheManager.d.ts +383 -383
- package/dist/cache/BrowserCacheManager.mjs +1262 -1262
- package/dist/cache/BrowserStorage.d.ts +11 -11
- package/dist/cache/BrowserStorage.mjs +32 -32
- package/dist/cache/CryptoKeyStore.d.ts +18 -18
- package/dist/cache/CryptoKeyStore.mjs +40 -40
- package/dist/cache/DatabaseStorage.d.ts +56 -56
- package/dist/cache/DatabaseStorage.mjs +190 -190
- package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
- package/dist/cache/ITokenCache.d.ts +11 -11
- package/dist/cache/IWindowStorage.d.ts +27 -27
- package/dist/cache/MemoryStorage.d.ts +11 -11
- package/dist/cache/MemoryStorage.mjs +31 -31
- package/dist/cache/TokenCache.d.ts +77 -77
- package/dist/cache/TokenCache.mjs +224 -224
- package/dist/config/Configuration.d.ts +206 -206
- package/dist/config/Configuration.mjs +128 -128
- package/dist/controllers/ControllerFactory.d.ts +4 -4
- package/dist/controllers/ControllerFactory.mjs +29 -29
- package/dist/controllers/IController.d.ts +61 -61
- package/dist/controllers/NestedAppAuthController.d.ts +95 -95
- package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
- package/dist/controllers/NestedAppAuthController.mjs +335 -333
- package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
- package/dist/controllers/StandardController.d.ts +407 -407
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +1293 -1291
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
- package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
- package/dist/crypto/BrowserCrypto.d.ts +44 -44
- package/dist/crypto/BrowserCrypto.mjs +93 -93
- package/dist/crypto/CryptoOps.d.ts +63 -63
- package/dist/crypto/CryptoOps.mjs +145 -145
- package/dist/crypto/PkceGenerator.d.ts +8 -8
- package/dist/crypto/PkceGenerator.mjs +54 -54
- package/dist/crypto/SignedHttpRequest.d.ts +30 -30
- package/dist/crypto/SignedHttpRequest.mjs +39 -39
- package/dist/encode/Base64Decode.d.ts +9 -9
- package/dist/encode/Base64Decode.mjs +36 -36
- package/dist/encode/Base64Encode.d.ts +19 -19
- package/dist/encode/Base64Encode.mjs +43 -43
- package/dist/error/BrowserAuthError.d.ts +250 -250
- package/dist/error/BrowserAuthError.mjs +258 -258
- package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
- package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
- package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
- package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
- package/dist/error/NativeAuthError.d.ts +29 -29
- package/dist/error/NativeAuthError.mjs +60 -60
- package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
- package/dist/error/NativeAuthErrorCodes.mjs +6 -6
- package/dist/error/NestedAppAuthError.d.ts +14 -14
- package/dist/error/NestedAppAuthError.mjs +23 -23
- package/dist/event/EventHandler.d.ts +41 -41
- package/dist/event/EventHandler.mjs +119 -119
- package/dist/event/EventMessage.d.ts +25 -25
- package/dist/event/EventMessage.mjs +68 -68
- package/dist/event/EventType.d.ts +28 -28
- package/dist/event/EventType.mjs +31 -31
- package/dist/index.d.ts +39 -39
- package/dist/index.mjs +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
- package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
- package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
- package/dist/interaction_client/NativeInteractionClient.mjs +548 -548
- package/dist/interaction_client/PopupClient.d.ts +105 -105
- package/dist/interaction_client/PopupClient.mjs +432 -432
- package/dist/interaction_client/RedirectClient.d.ts +49 -49
- package/dist/interaction_client/RedirectClient.mjs +311 -311
- package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
- package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
- package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
- package/dist/interaction_client/SilentCacheClient.mjs +61 -61
- package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
- package/dist/interaction_client/SilentIframeClient.mjs +96 -96
- package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
- package/dist/interaction_client/SilentRefreshClient.mjs +43 -43
- package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
- package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
- package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
- package/dist/interaction_handler/InteractionHandler.mjs +93 -93
- package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
- package/dist/interaction_handler/RedirectHandler.mjs +134 -134
- package/dist/interaction_handler/SilentHandler.d.ts +13 -13
- package/dist/interaction_handler/SilentHandler.mjs +133 -133
- package/dist/naa/AccountInfo.d.ts +11 -12
- package/dist/naa/AccountInfo.d.ts.map +1 -1
- package/dist/naa/AccountRequests.d.ts +9 -9
- package/dist/naa/AuthBridge.d.ts +5 -5
- package/dist/naa/BridgeCapabilities.d.ts +3 -3
- package/dist/naa/BridgeError.d.ts +9 -9
- package/dist/naa/BridgeError.d.ts.map +1 -1
- package/dist/naa/BridgeError.mjs +7 -7
- package/dist/naa/BridgeError.mjs.map +1 -1
- package/dist/naa/BridgeProxy.d.ts +72 -71
- package/dist/naa/BridgeProxy.d.ts.map +1 -1
- package/dist/naa/BridgeProxy.mjs +152 -149
- package/dist/naa/BridgeProxy.mjs.map +1 -1
- package/dist/naa/BridgeRequest.d.ts +6 -6
- package/dist/naa/BridgeRequestEnvelope.d.ts +13 -13
- package/dist/naa/BridgeResponseEnvelope.d.ts +10 -10
- package/dist/naa/BridgeStatusCode.d.ts +10 -10
- package/dist/naa/BridgeStatusCode.mjs +15 -15
- package/dist/naa/IBridgeProxy.d.ts +12 -10
- package/dist/naa/IBridgeProxy.d.ts.map +1 -1
- package/dist/naa/InitializeBridgeResponse.d.ts +6 -6
- package/dist/naa/InitializeBridgeResponse.d.ts.map +1 -1
- package/dist/naa/TokenRequest.d.ts +19 -21
- package/dist/naa/TokenRequest.d.ts.map +1 -1
- package/dist/naa/TokenResponse.d.ts +15 -16
- package/dist/naa/TokenResponse.d.ts.map +1 -1
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -25
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs +142 -170
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
- package/dist/navigation/INavigationClient.d.ts +16 -16
- package/dist/navigation/NavigationClient.d.ts +22 -22
- package/dist/navigation/NavigationClient.mjs +40 -40
- package/dist/navigation/NavigationOptions.d.ts +12 -12
- package/dist/network/FetchClient.d.ts +26 -26
- package/dist/network/FetchClient.mjs +99 -99
- package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
- package/dist/operatingcontext/BaseOperatingContext.mjs +44 -44
- package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -82
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +4 -4
- package/dist/packageMetadata.mjs.map +1 -1
- package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
- package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
- package/dist/request/ClearCacheRequest.d.ts +10 -10
- package/dist/request/EndSessionPopupRequest.d.ts +18 -18
- package/dist/request/EndSessionRequest.d.ts +15 -15
- package/dist/request/PopupRequest.d.ts +34 -34
- package/dist/request/PopupWindowAttributes.d.ts +15 -15
- package/dist/request/RedirectRequest.d.ts +35 -35
- package/dist/request/SilentRequest.d.ts +32 -32
- package/dist/request/SsoSilentRequest.d.ts +29 -29
- package/dist/response/AuthenticationResult.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +7 -7
- package/dist/response/ResponseHandler.mjs +36 -36
- package/dist/telemetry/BrowserPerformanceClient.d.ts +36 -36
- package/dist/telemetry/BrowserPerformanceClient.mjs +125 -125
- package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
- package/dist/utils/BrowserConstants.d.ts +176 -176
- package/dist/utils/BrowserConstants.mjs +204 -204
- package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
- package/dist/utils/BrowserProtocolUtils.mjs +21 -21
- package/dist/utils/BrowserUtils.d.ts +56 -56
- package/dist/utils/BrowserUtils.mjs +125 -125
- package/lib/msal-browser.cjs +17922 -17928
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +17922 -17928
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +59 -59
- package/package.json +102 -102
- package/src/controllers/NestedAppAuthController.ts +8 -3
- package/src/controllers/StandardController.ts +3 -1
- package/src/naa/AccountInfo.ts +3 -4
- package/src/naa/BridgeError.ts +4 -4
- package/src/naa/BridgeProxy.ts +6 -2
- package/src/naa/IBridgeProxy.ts +2 -0
- package/src/naa/InitializeBridgeResponse.ts +1 -1
- package/src/naa/TokenRequest.ts +0 -2
- package/src/naa/TokenResponse.ts +1 -2
- package/src/naa/mapping/NestedAppAuthAdapter.ts +72 -80
- package/src/operatingcontext/TeamsAppOperatingContext.ts +4 -1
- package/src/packageMetadata.ts +1 -1
package/lib/msal-browser.min.js
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.5.
|
|
1
|
+
/*! @azure/msal-browser v3.5.1-beta.1 2023-11-14 */
|
|
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.4.
|
|
3
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
4
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",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",h="Retry-After",l="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",I="active-account-filters",T="common",_="organizations",A="consumers",k="client_id",S="redirect_uri",E="response_type",R="response_mode",b="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",$="x-client-CPU",G="x-client-current-telemetry",j="x-client-last-telemetry",Q="x-ms-lib-capability",W="x-app-name",Y="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",he="access_token",le="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",Ie="ADFS",Te="Generic",_e={CACHE_KEY_SEPARATOR:"-",CLIENT_INFO_SEPARATOR:"."},Ae={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},ke="appmetadata",Se="1",Ee="authority-metadata",Re=86400,be="config",Pe="cache",Me="network",Ne="hardcoded_values",Oe={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"},qe={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},Le=60,Ue=3600,He="throttling",Be="retry-after, h429",De="invalid_grant",xe="client_mismatch",Ke="username",Fe="password",ze=200,$e=400,Ge="1",je="3",Qe="4",We="2",Ye="4",Ve="5",Je="0",Xe="1",Ze="2",et="3",tt="4",rt={Jwt:"JWT",Jwk:"JWK",Pop:"pop"},ot="unexpected_error",nt="post_request_failed";var it=Object.freeze({__proto__:null,postRequestFailed:nt,unexpectedError:ot});
|
|
5
|
-
/*! @azure/msal-common v14.4.
|
|
6
|
-
/*! @azure/msal-common v14.4.
|
|
7
|
-
/*! @azure/msal-common v14.4.
|
|
8
|
-
/*! @azure/msal-common v14.4.
|
|
9
|
-
/*! @azure/msal-common v14.4.
|
|
10
|
-
/*! @azure/msal-common v14.4.
|
|
11
|
-
/*! @azure/msal-common v14.4.
|
|
5
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const st={[ot]:"Unexpected error in authentication.",[nt]:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."},at={unexpectedError:{code:ot,desc:st[ot]},postRequestFailed:{code:nt,desc:st[nt]}};class ct extends Error{constructor(e,r,o){super(r?`${e}: ${r}`:e),Object.setPrototypeOf(this,ct.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 ht(e,t){return new ct(e,t?`${st[e]} ${t}`:st[e])}
|
|
6
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const lt="client_info_decoding_error",dt="client_info_empty_error",ut="token_parsing_error",gt="null_or_empty_token",pt="endpoints_resolution_error",mt="network_error",ft="openid_config_error",yt="hash_not_deserialized",Ct="invalid_state",vt="state_mismatch",wt="state_not_found",It="nonce_mismatch",Tt="auth_time_not_found",_t="max_age_transpired",At="multiple_matching_tokens",kt="multiple_matching_accounts",St="multiple_matching_appMetadata",Et="request_cannot_be_made",Rt="cannot_remove_empty_scope",bt="cannot_append_scopeset",Pt="empty_input_scopeset",Mt="device_code_polling_cancelled",Nt="device_code_expired",Ot="device_code_unknown_error",qt="no_account_in_silent_request",Lt="invalid_cache_record",Ut="invalid_cache_environment",Ht="no_account_found",Bt="no_crypto_object",Dt="unexpected_credential_type",xt="invalid_assertion",Kt="invalid_client_credential",Ft="token_refresh_required",zt="user_timeout_reached",$t="token_claims_cnf_required_for_signedjwt",Gt="authorization_code_missing_from_server_response",jt="binding_key_not_removed",Qt="end_session_endpoint_not_supported",Wt="key_id_missing",Yt="no_network_connectivity",Vt="user_canceled",Jt="missing_tenant_id_error",Xt="method_not_implemented",Zt="nested_app_auth_bridge_disabled";var er=Object.freeze({__proto__:null,authTimeNotFound:Tt,authorizationCodeMissingFromServerResponse:Gt,bindingKeyNotRemoved:jt,cannotAppendScopeSet:bt,cannotRemoveEmptyScope:Rt,clientInfoDecodingError:lt,clientInfoEmptyError:dt,deviceCodeExpired:Nt,deviceCodePollingCancelled:Mt,deviceCodeUnknownError:Ot,emptyInputScopeSet:Pt,endSessionEndpointNotSupported:Qt,endpointResolutionError:pt,hashNotDeserialized:yt,invalidAssertion:xt,invalidCacheEnvironment:Ut,invalidCacheRecord:Lt,invalidClientCredential:Kt,invalidState:Ct,keyIdMissing:Wt,maxAgeTranspired:_t,methodNotImplemented:Xt,missingTenantIdError:Jt,multipleMatchingAccounts:kt,multipleMatchingAppMetadata:St,multipleMatchingTokens:At,nestedAppAuthBridgeDisabled:Zt,networkError:mt,noAccountFound:Ht,noAccountInSilentRequest:qt,noCryptoObject:Bt,noNetworkConnectivity:Yt,nonceMismatch:It,nullOrEmptyToken:gt,openIdConfigError:ft,requestCannotBeMade:Et,stateMismatch:vt,stateNotFound:wt,tokenClaimsCnfRequiredForSignedJwt:$t,tokenParsingError:ut,tokenRefreshRequired:Ft,unexpectedCredentialType:Dt,userCanceled:Vt,userTimeoutReached:zt});
|
|
7
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const tr={[lt]:"The client info could not be parsed/decoded correctly",[dt]:"The client info was empty",[ut]:"Token cannot be parsed",[gt]:"The token is null or empty",[pt]:"Endpoints cannot be resolved",[mt]:"Network request failed",[ft]:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.",[yt]:"The hash parameters could not be deserialized",[Ct]:"State was not the expected format",[vt]:"State mismatch error",[wt]:"State not found",[It]:"Nonce mismatch error",[Tt]:"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.",[_t]:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.",[At]:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account.",[kt]:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account",[St]:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata",[Et]:"Token request cannot be made without authorization code or refresh token.",[Rt]:"Cannot remove null or empty scope from ScopeSet",[bt]:"Cannot append ScopeSet",[Pt]:"Empty input ScopeSet cannot be processed",[Mt]:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.",[Nt]:"Device code is expired.",[Ot]:"Device code stopped polling for unknown reasons.",[qt]:"Please pass an account object, silent flow is not supported without account information",[Lt]:"Cache record object was null or undefined.",[Ut]:"Invalid environment when attempting to create cache entry",[Ht]:"No account found in cache for given key.",[Bt]:"No crypto object detected.",[Dt]:"Unexpected credential type.",[xt]:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515",[Kt]:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential",[Ft]:"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.",[zt]:"User defined timeout for device code polling reached",[$t]:"Cannot generate a POP jwt if the token_claims are not populated",[Gt]:"Server response does not contain an authorization code to proceed",[jt]:"Could not remove the credential's binding key from storage.",[Qt]:"The provided authority does not support logout",[Wt]:"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.",[Yt]:"No network connectivity. Check your internet connection.",[Vt]:"User cancelled the flow.",[Jt]:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.",[Xt]:"This method has not been implemented",[Zt]:"The nested app auth bridge is disabled"},rr={clientInfoDecodingError:{code:lt,desc:tr[lt]},clientInfoEmptyError:{code:dt,desc:tr[dt]},tokenParsingError:{code:ut,desc:tr[ut]},nullOrEmptyToken:{code:gt,desc:tr[gt]},endpointResolutionError:{code:pt,desc:tr[pt]},networkError:{code:mt,desc:tr[mt]},unableToGetOpenidConfigError:{code:ft,desc:tr[ft]},hashNotDeserialized:{code:yt,desc:tr[yt]},invalidStateError:{code:Ct,desc:tr[Ct]},stateMismatchError:{code:vt,desc:tr[vt]},stateNotFoundError:{code:wt,desc:tr[wt]},nonceMismatchError:{code:It,desc:tr[It]},authTimeNotFoundError:{code:Tt,desc:tr[Tt]},maxAgeTranspired:{code:_t,desc:tr[_t]},multipleMatchingTokens:{code:At,desc:tr[At]},multipleMatchingAccounts:{code:kt,desc:tr[kt]},multipleMatchingAppMetadata:{code:St,desc:tr[St]},tokenRequestCannotBeMade:{code:Et,desc:tr[Et]},removeEmptyScopeError:{code:Rt,desc:tr[Rt]},appendScopeSetError:{code:bt,desc:tr[bt]},emptyInputScopeSetError:{code:Pt,desc:tr[Pt]},DeviceCodePollingCancelled:{code:Mt,desc:tr[Mt]},DeviceCodeExpired:{code:Nt,desc:tr[Nt]},DeviceCodeUnknownError:{code:Ot,desc:tr[Ot]},NoAccountInSilentRequest:{code:qt,desc:tr[qt]},invalidCacheRecord:{code:Lt,desc:tr[Lt]},invalidCacheEnvironment:{code:Ut,desc:tr[Ut]},noAccountFound:{code:Ht,desc:tr[Ht]},noCryptoObj:{code:Bt,desc:tr[Bt]},unexpectedCredentialType:{code:Dt,desc:tr[Dt]},invalidAssertion:{code:xt,desc:tr[xt]},invalidClientCredential:{code:Kt,desc:tr[Kt]},tokenRefreshRequired:{code:Ft,desc:tr[Ft]},userTimeoutReached:{code:zt,desc:tr[zt]},tokenClaimsRequired:{code:$t,desc:tr[$t]},noAuthorizationCodeFromServer:{code:Gt,desc:tr[Gt]},bindingKeyNotRemovedError:{code:jt,desc:tr[jt]},logoutNotSupported:{code:Qt,desc:tr[Qt]},keyIdMissing:{code:Wt,desc:tr[Wt]},noNetworkConnectivity:{code:Yt,desc:tr[Yt]},userCanceledError:{code:Vt,desc:tr[Vt]},missingTenantIdError:{code:Jt,desc:tr[Jt]},nestedAppAuthBridgeDisabled:{code:Zt,desc:tr[Zt]}};class or extends ct{constructor(e,t){super(e,t?`${tr[e]}: ${t}`:tr[e]),this.name="ClientAuthError",Object.setPrototypeOf(this,or.prototype)}}function nr(e,t){return new or(e,t)}
|
|
8
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const ir={createNewGuid:()=>{throw nr(Xt)},base64Decode:()=>{throw nr(Xt)},base64Encode:()=>{throw nr(Xt)},async getPublicKeyThumbprint(){throw nr(Xt)},async removeTokenBindingKey(){throw nr(Xt)},async clearKeystore(){throw nr(Xt)},async signJwt(){throw nr(Xt)},async hashString(){throw nr(Xt)}};
|
|
9
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */var sr;e.LogLevel=void 0,(sr=e.LogLevel||(e.LogLevel={}))[sr.Error=0]="Error",sr[sr.Warning=1]="Warning",sr[sr.Info=2]="Info",sr[sr.Verbose=3]="Verbose",sr[sr.Trace=4]="Trace";class ar{constructor(r,o,n){this.level=e.LogLevel.Info;const i=r||ar.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 ar({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.4.1-beta.1 2023-11-14 */const cr="@azure/msal-common",hr="14.4.1-beta.1",lr={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"};
|
|
11
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
12
12
|
function dr(e,t){const r=function(e){if(!e)throw nr(gt);const t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(e);if(!t||t.length<4)throw nr(ut);return t[2]}(e);try{const e=t(r);return JSON.parse(e)}catch(e){throw nr(ut)}}function ur(e,t){if(0===t||Date.now()-3e5>e+t)throw nr(_t)}
|
|
13
|
-
/*! @azure/msal-common v14.4.
|
|
14
|
-
/*! @azure/msal-common v14.4.
|
|
15
|
-
/*! @azure/msal-common v14.4.
|
|
13
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class gr{static nowSeconds(){return Math.round((new Date).getTime()/1e3)}static isTokenExpired(e,t){const r=Number(e)||0;return gr.nowSeconds()+t>r}static wasClockTurnedBack(e){return Number(e)>gr.nowSeconds()}static delay(e,t){return new Promise((r=>setTimeout((()=>r(t)),e)))}}
|
|
14
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */function pr(e){return[Tr(e),_r(e),Ar(e),kr(e),Sr(e)].join(_e.CACHE_KEY_SEPARATOR).toLowerCase()}function mr(e,t,r,o,n){return{credentialType:Ae.ID_TOKEN,homeAccountId:e,environment:t,clientId:o,secret:r,realm:n}}function fr(e,t,r,o,n,i,s,a,c,h,l,d,u,g,p){const m={homeAccountId:e,credentialType:Ae.ACCESS_TOKEN,secret:r,cachedAt:gr.nowSeconds().toString(),expiresOn:s.toString(),extendedExpiresOn:a.toString(),environment:t,clientId:o,realm:n,target:i,tokenType:l||qe.BEARER};if(d&&(m.userAssertionHash=d),h&&(m.refreshOn=h.toString()),g&&(m.requestedClaims=g,m.requestedClaimsHash=p),m.tokenType?.toLowerCase()!==qe.BEARER.toLowerCase())switch(m.credentialType=Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME,m.tokenType){case qe.POP:const e=dr(r,c);if(!e?.cnf?.kid)throw nr($t);m.keyId=e.cnf.kid;break;case qe.SSH:m.keyId=u}return m}function yr(e,t,r,o,n,i,s){const a={credentialType:Ae.REFRESH_TOKEN,homeAccountId:e,environment:t,clientId:o,secret:r};return i&&(a.userAssertionHash=i),n&&(a.familyId=n),s&&(a.expiresOn=s),a}function Cr(e){return e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")}function vr(e){return!!e&&(Cr(e)&&e.hasOwnProperty("realm")&&e.hasOwnProperty("target")&&(e.credentialType===Ae.ACCESS_TOKEN||e.credentialType===Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME))}function wr(e){return!!e&&(Cr(e)&&e.hasOwnProperty("realm")&&e.credentialType===Ae.ID_TOKEN)}function Ir(e){return!!e&&(Cr(e)&&e.credentialType===Ae.REFRESH_TOKEN)}function Tr(e){return[e.homeAccountId,e.environment].join(_e.CACHE_KEY_SEPARATOR).toLowerCase()}function _r(e){const t=e.credentialType===Ae.REFRESH_TOKEN&&e.familyId||e.clientId;return[e.credentialType,t,e.realm||""].join(_e.CACHE_KEY_SEPARATOR).toLowerCase()}function Ar(e){return(e.target||"").toLowerCase()}function kr(e){return(e.requestedClaimsHash||"").toLowerCase()}function Sr(e){return e.tokenType&&e.tokenType.toLowerCase()!==qe.BEARER.toLowerCase()?e.tokenType.toLowerCase():""}
|
|
15
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
16
16
|
const Er="redirect_uri_empty",Rr="claims_request_parsing_error",br="authority_uri_insecure",Pr="url_parse_error",Mr="empty_url_error",Nr="empty_input_scopes_error",Or="invalid_prompt_value",qr="invalid_claims",Lr="token_request_empty",Ur="logout_request_empty",Hr="invalid_code_challenge_method",Br="pkce_params_missing",Dr="invalid_cloud_discovery_metadata",xr="invalid_authority_metadata",Kr="untrusted_authority",Fr="missing_ssh_jwk",zr="missing_ssh_kid",$r="missing_nonce_authentication_header",Gr="invalid_authentication_header",jr="cannot_set_OIDCOptions",Qr="cannot_allow_native_broker",Wr="authority_mismatch";var Yr=Object.freeze({__proto__:null,authorityMismatch:Wr,authorityUriInsecure:br,cannotAllowNativeBroker:Qr,cannotSetOIDCOptions:jr,claimsRequestParsingError:Rr,emptyInputScopesError:Nr,invalidAuthenticationHeader:Gr,invalidAuthorityMetadata:xr,invalidClaims:qr,invalidCloudDiscoveryMetadata:Dr,invalidCodeChallengeMethod:Hr,invalidPromptValue:Or,logoutRequestEmpty:Ur,missingNonceAuthenticationHeader:$r,missingSshJwk:Fr,missingSshKid:zr,pkceParamsMissing:Br,redirectUriEmpty:Er,tokenRequestEmpty:Lr,untrustedAuthority:Kr,urlEmptyError:Mr,urlParseError:Pr});
|
|
17
|
-
/*! @azure/msal-common v14.4.
|
|
18
|
-
/*! @azure/msal-common v14.4.
|
|
19
|
-
/*! @azure/msal-common v14.4.
|
|
20
|
-
/*! @azure/msal-common v14.4.
|
|
21
|
-
/*! @azure/msal-common v14.4.
|
|
22
|
-
/*! @azure/msal-common v14.4.
|
|
23
|
-
/*! @azure/msal-common v14.4.
|
|
17
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const Vr={[Er]:"A redirect URI is required for all calls, and none has been set.",[Rr]:"Could not parse the given claims request object.",[br]:"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",[Pr]:"URL could not be parsed into appropriate segments.",[Mr]:"URL was empty or null.",[Nr]:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",[Or]:"Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest",[qr]:"Given claims parameter must be a stringified JSON object.",[Lr]:"Token request was empty and not found in cache.",[Ur]:"The logout request was null or undefined.",[Hr]:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',[Br]:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",[Dr]:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",[xr]:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",[Kr]:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",[Fr]:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",[zr]:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",[$r]:"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.",[Gr]:"Invalid authentication header provided",[jr]:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",[Qr]:"Cannot set allowNativeBroker parameter to true when not in AAD protocol mode.",[Wr]:"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."},Jr={redirectUriNotSet:{code:Er,desc:Vr[Er]},claimsRequestParsingError:{code:Rr,desc:Vr[Rr]},authorityUriInsecure:{code:br,desc:Vr[br]},urlParseError:{code:Pr,desc:Vr[Pr]},urlEmptyError:{code:Mr,desc:Vr[Mr]},emptyScopesError:{code:Nr,desc:Vr[Nr]},invalidPrompt:{code:Or,desc:Vr[Or]},invalidClaimsRequest:{code:qr,desc:Vr[qr]},tokenRequestEmptyError:{code:Lr,desc:Vr[Lr]},logoutRequestEmptyError:{code:Ur,desc:Vr[Ur]},invalidCodeChallengeMethod:{code:Hr,desc:Vr[Hr]},invalidCodeChallengeParams:{code:Br,desc:Vr[Br]},invalidCloudDiscoveryMetadata:{code:Dr,desc:Vr[Dr]},invalidAuthorityMetadata:{code:xr,desc:Vr[xr]},untrustedAuthority:{code:Kr,desc:Vr[Kr]},missingSshJwk:{code:Fr,desc:Vr[Fr]},missingSshKid:{code:zr,desc:Vr[zr]},missingNonceAuthenticationHeader:{code:$r,desc:Vr[$r]},invalidAuthenticationHeader:{code:Gr,desc:Vr[Gr]},cannotSetOIDCOptions:{code:jr,desc:Vr[jr]},cannotAllowNativeBroker:{code:Qr,desc:Vr[Qr]},authorityMismatch:{code:Wr,desc:Vr[Wr]}};class Xr extends ct{constructor(e){super(e,Vr[e]),this.name="ClientConfigurationError",Object.setPrototypeOf(this,Xr.prototype)}}function Zr(e){return new Xr(e)}
|
|
18
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class eo{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)}}
|
|
19
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class to{constructor(e){const t=e?eo.trimArrayEntries([...e]):[],r=t?eo.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 to(r)}static createSearchScopes(e){const r=new to(e);return r.containsOnlyOIDCScopes()?r.removeScope(t.OFFLINE_ACCESS_SCOPE):r.removeOIDCScopes(),r}validateInputScopes(e){if(!e||e.length<1)throw Zr(Nr)}containsScope(e){const t=this.printScopesLowerCase().split(" "),r=new to(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 nr(bt)}}removeScope(e){if(!e)throw nr(Rt);this.scopes.delete(e.trim())}removeOIDCScopes(){a.forEach((e=>{this.scopes.delete(e)}))}unionScopeSets(e){if(!e)throw nr(Pt);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 nr(Pt);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()}}
|
|
20
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */function ro(e,t){if(!e)throw nr(dt);try{const r=t.base64Decode(e);return JSON.parse(r)}catch(e){throw nr(lt)}}function oo(e){if(!e)throw nr(lt);const r=e.split(_e.CLIENT_INFO_SEPARATOR,2);return{uid:r[0],utid:r.length<2?t.EMPTY_STRING:r[1]}}
|
|
21
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const no=0,io=1,so=2,ao=3,co={AAD:"AAD",OIDC:"OIDC"};
|
|
22
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
23
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
24
24
|
class ho{generateAccountId(){return[this.homeAccountId,this.environment].join(_e.CACHE_KEY_SEPARATOR).toLowerCase()}generateAccountKey(){return ho.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.CACHE_KEY_SEPARATOR).toLowerCase()}static createAccount(e,r){const o=new ho;r.authorityType===io?o.authorityType=Ie:r.protocolMode===co.AAD?o.authorityType=we:o.authorityType=Te,o.clientInfo=e.clientInfo,o.homeAccountId=e.homeAccountId,o.nativeAccountId=e.nativeAccountId;const n=e.environment||r&&r.getPreferredCache();if(!n)throw nr(Ut);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 ho;return o.authorityType=e.authorityType||Te,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===io||r===so)return s;if(e)try{const t=ro(e,n);if(t.uid&&t.utid)return`${t.uid}${_e.CLIENT_INFO_SEPARATOR}${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}}
|
|
25
|
-
/*! @azure/msal-common v14.4.
|
|
26
|
-
/*! @azure/msal-common v14.4.
|
|
27
|
-
/*! @azure/msal-common v14.4.0 2023-11-07 */const po={"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"}},mo={tenant_discovery_endpoint:"https://{canonicalAuthority}/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"]}]},fo=new Set;function yo(e,t,r,o){if(o?.trace(`getAliasesFromMetadata called with source: ${r}`),e&&t){const n=Co(t,e);if(n)return o?.trace(`getAliasesFromMetadata: found cloud discovery metadata in ${r}, returning aliases`),n.aliases;o?.trace(`getAliasesFromMetadata: did not find cloud discovery metadata in ${r}`)}return null}function Co(e,t){for(let r=0;r<e.length;r++){const o=e[r];if(o.aliases.includes(t))return o}return null}
|
|
28
|
-
/*! @azure/msal-common v14.4.0 2023-11-07 */mo.metadata.forEach((e=>{e.aliases.forEach((e=>{fo.add(e)}))}));class vo{constructor(e,t,r,o){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(cr,hr),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>1?t.filter((e=>!!e.idTokenClaims))[0]:1===t.length?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=dr(o.secret,this.cryptoImpl.base64Decode);if(this.idTokenClaimsMatchAccountFilter(e,t))return r.idToken=o.secret,r.idTokenClaims=e,r}return r}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 nr(Lt);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=to.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)){to.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.CACHE_KEY_SEPARATOR).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(_e.CACHE_KEY_SEPARATOR).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(Ae.ID_TOKEN.toLowerCase())&&-1===t.indexOf(Ae.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(Ae.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(Ae.REFRESH_TOKEN.toLowerCase())>-1){const e=`${Ae.REFRESH_TOKEN}${_e.CACHE_KEY_SEPARATOR}${this.clientId}${_e.CACHE_KEY_SEPARATOR}`,r=`${Ae.REFRESH_TOKEN}${_e.CACHE_KEY_SEPARATOR}${Se}${_e.CACHE_KEY_SEPARATOR}`;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===Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===qe.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()===Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===qe.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw nr(jt)}}return this.removeItem(e)}}removeAppMetadata(){return this.getKeys().forEach((e=>{this.isAppMetadata(e)&&this.removeItem(e)})),!0}readCacheRecord(e,t,r,o,n){const i=this.getTokenKeys(),s=this.readAccountFromCache(e),a=this.getIdToken(e,i,o,n),c=this.getAccessToken(e,t,i,o,n),h=this.getRefreshToken(e,!1,i,o,n),l=this.readAppMetadataFromCache(r);return s&&a&&(s.idTokenClaims=dr(a.secret,this.cryptoImpl.base64Decode)),{account:s,idToken:a,accessToken:c,refreshToken:h,appMetadata:l}}readAccountFromCache(e){const t=ho.generateAccountCacheKey(e);return this.getAccount(t)}getIdToken(e,t,r,o){this.commonLogger.trace("CacheManager - getIdToken called");const n={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Ae.ID_TOKEN,clientId:this.clientId,realm:e.tenantId},i=this.getIdTokensByFilter(n,t),s=i.length;return s<1?(this.commonLogger.info("CacheManager:getIdToken - No token found"),null):s>1?(this.commonLogger.info("CacheManager:getIdToken - Multiple id tokens found, clearing them"),i.forEach((e=>{this.removeIdToken(pr(e))})),r&&o&&r.addFields({multiMatchedID:i.length},o),null):(this.commonLogger.info("CacheManager:getIdToken - Returning id token"),i[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,o,n){this.commonLogger.trace("CacheManager - getAccessToken called");const i=to.createSearchScopes(t.scopes),s=t.authenticationScheme||qe.BEARER,a=s&&s.toLowerCase()!==qe.BEARER.toLowerCase()?Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME:Ae.ACCESS_TOKEN,c={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:a,clientId:this.clientId,realm:e.tenantId,target:i,tokenType:s,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},h=r&&r.accessToken||this.getTokenKeys().accessToken,l=[];h.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,c,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,c)&&l.push(t)}}));const d=l.length;return d<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):d>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),l.forEach((e=>{this.removeAccessToken(pr(e))})),o&&n&&o.addFields({multiMatchedAT:l.length},n),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),l[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,o,n){this.commonLogger.trace("CacheManager - getRefreshToken called");const i=t?Se:void 0,s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Ae.REFRESH_TOKEN,clientId:this.clientId,familyId:i},a=r&&r.refreshToken||this.getTokenKeys().refreshToken,c=[];a.forEach((e=>{if(this.refreshTokenKeyMatchesFilter(e,s)){const t=this.getRefreshTokenCredential(e);t&&this.credentialMatchesFilter(t,s)&&c.push(t)}}));const h=c.length;return h<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(h>1&&o&&n&&o.addFields({multiMatchedRT:h},n),this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),c[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 nr(St);return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==Se)}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){let r;const o=e.canonicalAuthority;if(o){const n=new go(o).getUrlComponents().HostNameAndPort;r=yo(n,e.cloudDiscoveryMetadata?.metadata,be,t)||yo(n,mo.metadata,Ne,t)||e.knownAuthorities}return r||[]}(this.staticAuthorityOptions,this.commonLogger);if(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!==Ae.ACCESS_TOKEN&&e.credentialType!==Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return to.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(ke)}isAuthorityMetadata(e){return-1!==e.indexOf(Ee)}generateAuthorityMetadataCacheKey(e){return`${Ee}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class wo extends vo{setAccount(){throw nr(Xt)}getAccount(){throw nr(Xt)}setIdTokenCredential(){throw nr(Xt)}getIdTokenCredential(){throw nr(Xt)}setAccessTokenCredential(){throw nr(Xt)}getAccessTokenCredential(){throw nr(Xt)}setRefreshTokenCredential(){throw nr(Xt)}getRefreshTokenCredential(){throw nr(Xt)}setAppMetadata(){throw nr(Xt)}getAppMetadata(){throw nr(Xt)}setServerTelemetry(){throw nr(Xt)}getServerTelemetry(){throw nr(Xt)}setAuthorityMetadata(){throw nr(Xt)}getAuthorityMetadata(){throw nr(Xt)}getAuthorityMetadataKeys(){throw nr(Xt)}setThrottlingCache(){throw nr(Xt)}getThrottlingCache(){throw nr(Xt)}removeItem(){throw nr(Xt)}containsKey(){throw nr(Xt)}getKeys(){throw nr(Xt)}getAccountKeys(){throw nr(Xt)}getTokenKeys(){throw nr(Xt)}async clear(){throw nr(Xt)}updateCredentialCacheKey(){throw nr(Xt)}}
|
|
29
|
-
/*! @azure/msal-common v14.4.
|
|
30
|
-
/*! @azure/msal-common v14.4.
|
|
31
|
-
/*! @azure/msal-common v14.4.
|
|
32
|
-
/*! @azure/msal-common v14.4.
|
|
33
|
-
/*! @azure/msal-common v14.4.
|
|
34
|
-
/*! @azure/msal-common v14.4.
|
|
35
|
-
/*! @azure/msal-common v14.4.
|
|
36
|
-
/*! @azure/msal-common v14.4.
|
|
37
|
-
/*! @azure/msal-common v14.4.
|
|
25
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */function lo(e){return e.startsWith("#/")?e.substring(2):e.startsWith("#")||e.startsWith("?")?e.substring(1):e}function uo(e){if(!e||e.indexOf("=")<0)return null;try{const t=lo(e),r=Object.fromEntries(new URLSearchParams(t));if(r.code||r.error||r.error_description||r.state)return r}catch(e){throw nr(yt)}return null}
|
|
26
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class go{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,!this._urlString)throw Zr(Mr);e.includes("#")||(this._urlString=go.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return eo.endsWith(t,"?")?t=t.slice(0,-1):eo.endsWith(t,"?/")&&(t=t.slice(0,-2)),eo.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch(e){throw Zr(Pr)}if(!e.HostNameAndPort||!e.PathSegments)throw Zr(Pr);if(!e.Protocol||"https:"!==e.Protocol.toLowerCase())throw Zr(br)}static appendQueryString(e,t){return t?e.indexOf("?")<0?`${e}?${t}`:`${e}&${t}`:e}static removeHashFromUrl(e){return go.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const t=this.getUrlComponents(),r=t.PathSegments;return!e||0===r.length||r[0]!==T&&r[0]!==_||(r[0]=e),go.constructAuthorityUriFromObject(t)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw Zr(Pr);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 Zr(Pr);return r[2]}static getAbsoluteUrl(e,r){if(e[0]===t.FORWARD_SLASH){const t=new go(r).getUrlComponents();return t.Protocol+"//"+t.HostNameAndPort+e}return e}static constructAuthorityUriFromObject(e){return new go(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static hashContainsKnownProperties(e){return!!uo(e)}}
|
|
27
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const po={"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"}},mo={tenant_discovery_endpoint:"https://{canonicalAuthority}/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"]}]},fo=new Set;function yo(e,t,r,o){if(o?.trace(`getAliasesFromMetadata called with source: ${r}`),e&&t){const n=Co(t,e);if(n)return o?.trace(`getAliasesFromMetadata: found cloud discovery metadata in ${r}, returning aliases`),n.aliases;o?.trace(`getAliasesFromMetadata: did not find cloud discovery metadata in ${r}`)}return null}function Co(e,t){for(let r=0;r<e.length;r++){const o=e[r];if(o.aliases.includes(t))return o}return null}
|
|
28
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */mo.metadata.forEach((e=>{e.aliases.forEach((e=>{fo.add(e)}))}));class vo{constructor(e,t,r,o){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(cr,hr),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>1?t.filter((e=>!!e.idTokenClaims))[0]:1===t.length?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=dr(o.secret,this.cryptoImpl.base64Decode);if(this.idTokenClaimsMatchAccountFilter(e,t))return r.idToken=o.secret,r.idTokenClaims=e,r}return r}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 nr(Lt);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=to.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)){to.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.CACHE_KEY_SEPARATOR).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(_e.CACHE_KEY_SEPARATOR).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(Ae.ID_TOKEN.toLowerCase())&&-1===t.indexOf(Ae.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(Ae.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(Ae.REFRESH_TOKEN.toLowerCase())>-1){const e=`${Ae.REFRESH_TOKEN}${_e.CACHE_KEY_SEPARATOR}${this.clientId}${_e.CACHE_KEY_SEPARATOR}`,r=`${Ae.REFRESH_TOKEN}${_e.CACHE_KEY_SEPARATOR}${Se}${_e.CACHE_KEY_SEPARATOR}`;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===Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===qe.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()===Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===qe.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw nr(jt)}}return this.removeItem(e)}}removeAppMetadata(){return this.getKeys().forEach((e=>{this.isAppMetadata(e)&&this.removeItem(e)})),!0}readCacheRecord(e,t,r,o,n){const i=this.getTokenKeys(),s=this.readAccountFromCache(e),a=this.getIdToken(e,i,o,n),c=this.getAccessToken(e,t,i,o,n),h=this.getRefreshToken(e,!1,i,o,n),l=this.readAppMetadataFromCache(r);return s&&a&&(s.idTokenClaims=dr(a.secret,this.cryptoImpl.base64Decode)),{account:s,idToken:a,accessToken:c,refreshToken:h,appMetadata:l}}readAccountFromCache(e){const t=ho.generateAccountCacheKey(e);return this.getAccount(t)}getIdToken(e,t,r,o){this.commonLogger.trace("CacheManager - getIdToken called");const n={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Ae.ID_TOKEN,clientId:this.clientId,realm:e.tenantId},i=this.getIdTokensByFilter(n,t),s=i.length;return s<1?(this.commonLogger.info("CacheManager:getIdToken - No token found"),null):s>1?(this.commonLogger.info("CacheManager:getIdToken - Multiple id tokens found, clearing them"),i.forEach((e=>{this.removeIdToken(pr(e))})),r&&o&&r.addFields({multiMatchedID:i.length},o),null):(this.commonLogger.info("CacheManager:getIdToken - Returning id token"),i[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,o,n){this.commonLogger.trace("CacheManager - getAccessToken called");const i=to.createSearchScopes(t.scopes),s=t.authenticationScheme||qe.BEARER,a=s&&s.toLowerCase()!==qe.BEARER.toLowerCase()?Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME:Ae.ACCESS_TOKEN,c={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:a,clientId:this.clientId,realm:e.tenantId,target:i,tokenType:s,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},h=r&&r.accessToken||this.getTokenKeys().accessToken,l=[];h.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,c,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,c)&&l.push(t)}}));const d=l.length;return d<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):d>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),l.forEach((e=>{this.removeAccessToken(pr(e))})),o&&n&&o.addFields({multiMatchedAT:l.length},n),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),l[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,o,n){this.commonLogger.trace("CacheManager - getRefreshToken called");const i=t?Se:void 0,s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:Ae.REFRESH_TOKEN,clientId:this.clientId,familyId:i},a=r&&r.refreshToken||this.getTokenKeys().refreshToken,c=[];a.forEach((e=>{if(this.refreshTokenKeyMatchesFilter(e,s)){const t=this.getRefreshTokenCredential(e);t&&this.credentialMatchesFilter(t,s)&&c.push(t)}}));const h=c.length;return h<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(h>1&&o&&n&&o.addFields({multiMatchedRT:h},n),this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),c[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 nr(St);return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==Se)}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){let r;const o=e.canonicalAuthority;if(o){const n=new go(o).getUrlComponents().HostNameAndPort;r=yo(n,e.cloudDiscoveryMetadata?.metadata,be,t)||yo(n,mo.metadata,Ne,t)||e.knownAuthorities}return r||[]}(this.staticAuthorityOptions,this.commonLogger);if(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!==Ae.ACCESS_TOKEN&&e.credentialType!==Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return to.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(ke)}isAuthorityMetadata(e){return-1!==e.indexOf(Ee)}generateAuthorityMetadataCacheKey(e){return`${Ee}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class wo extends vo{setAccount(){throw nr(Xt)}getAccount(){throw nr(Xt)}setIdTokenCredential(){throw nr(Xt)}getIdTokenCredential(){throw nr(Xt)}setAccessTokenCredential(){throw nr(Xt)}getAccessTokenCredential(){throw nr(Xt)}setRefreshTokenCredential(){throw nr(Xt)}getRefreshTokenCredential(){throw nr(Xt)}setAppMetadata(){throw nr(Xt)}getAppMetadata(){throw nr(Xt)}setServerTelemetry(){throw nr(Xt)}getServerTelemetry(){throw nr(Xt)}setAuthorityMetadata(){throw nr(Xt)}getAuthorityMetadata(){throw nr(Xt)}getAuthorityMetadataKeys(){throw nr(Xt)}setThrottlingCache(){throw nr(Xt)}getThrottlingCache(){throw nr(Xt)}removeItem(){throw nr(Xt)}containsKey(){throw nr(Xt)}getKeys(){throw nr(Xt)}getAccountKeys(){throw nr(Xt)}getTokenKeys(){throw nr(Xt)}async clear(){throw nr(Xt)}updateCredentialCacheKey(){throw nr(Xt)}}
|
|
29
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const Io={tokenRenewalOffsetSeconds:300,preventCorsPreflight:!1},To={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info,correlationId:t.EMPTY_STRING},_o={claimsBasedCachingEnabled:!1},Ao={async sendGetRequestAsync(){throw nr(Xt)},async sendPostRequestAsync(){throw nr(Xt)}},ko={sku:t.SKU,version:hr,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},So={clientSecret:t.EMPTY_STRING,clientAssertion:void 0},Eo={azureCloudInstance:lr.None,tenant:`${t.DEFAULT_COMMON_TENANT}`},Ro={application:{appName:"",appVersion:""}};function bo(e){return e.authOptions.authority.options.protocolMode===co.OIDC}
|
|
30
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class Po extends ct{constructor(e,t,r){super(e,t,r),this.name="ServerError",Object.setPrototypeOf(this,Po.prototype)}}
|
|
31
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class Mo{static generateThrottlingStorageKey(e){return`${He}.${JSON.stringify(e)}`}static preProcess(e,r){const o=Mo.generateThrottlingStorageKey(r),n=e.getThrottlingCache(o);if(n){if(n.throttleTime<Date.now())return void e.removeItem(o);throw new Po(n.errorCodes?.join(" ")||t.EMPTY_STRING,n.errorMessage,n.subError)}}static postProcess(e,t,r){if(Mo.checkResponseStatus(r)||Mo.checkResponseForRetryAfter(r)){const o={throttleTime:Mo.calculateThrottleTime(parseInt(r.headers[h])),error:r.body.error,errorCodes:r.body.error_codes,errorMessage:r.body.error_description,subError:r.body.suberror};e.setThrottlingCache(Mo.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(h)&&(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||Le),r+Ue))}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)}}
|
|
32
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class No{constructor(e,t){this.networkClient=e,this.cacheManager=t}async sendPostRequest(e,t,r){let o;Mo.preProcess(this.cacheManager,e);try{o=await this.networkClient.sendPostRequestAsync(t,r)}catch(e){throw e instanceof ct?e:nr(mt)}return Mo.postProcess(this.cacheManager,e,o),o}}
|
|
33
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const Oo="home_account_id",qo="UPN";
|
|
34
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class Lo{static validateRedirectUri(e){if(!e)throw Zr(Er)}static validatePrompt(e){const t=[];for(const e in de)t.push(de[e]);if(t.indexOf(e)<0)throw Zr(Or)}static validateClaims(e){try{JSON.parse(e)}catch(e){throw Zr(qr)}}static validateCodeChallengeParams(e,t){if(!e||!t)throw Zr(Br);this.validateCodeChallengeMethod(t)}static validateCodeChallengeMethod(e){if([me.PLAIN,me.S256].indexOf(e)<0)throw Zr(Hr)}static sanitizeEQParams(e,t){return e?(t.forEach(((t,r)=>{e[r]&&delete e[r]})),Object.fromEntries(Object.entries(e).filter((e=>""!==e[1])))):{}}}
|
|
35
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class Uo{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(R,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 to(o);this.parameters.set(M,encodeURIComponent(n.printScopes()))}addClientId(e){this.parameters.set(k,encodeURIComponent(e))}addRedirectUri(e){Lo.validateRedirectUri(e),this.parameters.set(S,encodeURIComponent(e))}addPostLogoutRedirectUri(e){Lo.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(l,encodeURIComponent(`UPN:${e}`))}addCcsOid(e){this.parameters.set(l,encodeURIComponent(`Oid:${e.uid}@${e.utid}`))}addSid(e){this.parameters.set(ue,encodeURIComponent(e))}addClaims(e,t){const r=this.addClientCapabilitiesToClaims(e,t);Lo.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($,e.cpu)}addApplicationTelemetry(e){e?.appName&&this.parameters.set(W,e.appName),e?.appVersion&&this.parameters.set(Y,e.appVersion)}addPrompt(e){Lo.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(Lo.validateCodeChallengeParams(e,t),!e||!t)throw Zr(Br);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(b,encodeURIComponent(e))}addClientInfo(){this.parameters.set("client_info","1")}addExtraQueryParameters(e){const t=Lo.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 Zr(qr)}else r={};return t&&t.length>0&&(r.hasOwnProperty(he)||(r[he]={}),r[he][le]={values:t}),JSON.stringify(r)}addUsername(e){this.parameters.set(Ke,encodeURIComponent(e))}addPassword(e){this.parameters.set(Fe,encodeURIComponent(e))}addPopToken(e){e&&(this.parameters.set(re,qe.POP),this.parameters.set(oe,encodeURIComponent(e)))}addSshJwk(e){e&&(this.parameters.set(re,qe.SSH),this.parameters.set(oe,encodeURIComponent(e)))}addServerTelemetry(e){this.parameters.set(G,e.generateCurrentRequestHeaderValue()),this.parameters.set(j,e.generateLastRequestHeaderValue())}addThrottling(){this.parameters.set(Q,Be)}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("&")}}
|
|
36
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
37
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
38
38
|
class Ho{constructor(){this.expiresAt=gr.nowSeconds()+Re}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=gr.nowSeconds()+Re}isExpired(){return this.expiresAt<=gr.nowSeconds()}static isAuthorityMetadataEntity(e,t){return!!t&&(0===e.indexOf(Ee)&&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"))}}
|
|
39
|
-
/*! @azure/msal-common v14.4.
|
|
40
|
-
/*! @azure/msal-common v14.4.
|
|
39
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
40
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
41
41
|
const Bo={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",HandleCodeResponse:"handleCodeResponse",UpdateTokenEndpointAuthority:"updateTokenEndpointAuthority",AuthClientAcquireToken:"authClientAcquireToken",AuthClientExecuteTokenRequest:"authClientExecuteTokenRequest",AuthClientCreateTokenRequestBody:"authClientCreateTokenRequestBody",AuthClientCreateQueryString:"authClientCreateQueryString",PopTokenGenerateCnf:"popTokenGenerateCnf",PopTokenGenerateKid:"popTokenGenerateKid",HandleServerTokenResponse:"handleServerTokenResponse",DeserializeResponse:"deserializeResponse",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"},Do=1,xo=2,Ko=new Set(["accessTokenSize","durationMs","idTokenSize","matsSilentStatus","matsHttpStatus","refreshTokenSize","queuedTimeMs","startTimeMs","status","multiMatchedAT","multiMatchedID","multiMatchedRT"]),Fo=(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}},zo=(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}))};
|
|
42
|
-
/*! @azure/msal-common v14.4.
|
|
42
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
43
43
|
class $o{constructor(e,t,r,o){this.networkInterface=e,this.logger=t,this.performanceClient=r,this.correlationId=o}async detectRegion(e,r){this.performanceClient?.addQueueMeasurement(Bo.RegionDiscoveryDetectRegion,this.correlationId);let o=e;if(o)r.region_source=je;else{const e=$o.IMDS_OPTIONS;try{const n=await zo(this.getRegionFromIMDS.bind(this),Bo.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t.IMDS_VERSION,e);if(n.status===ze&&(o=n.body,r.region_source=Qe),n.status===$e){const t=await zo(this.getCurrentVersion.bind(this),Bo.RegionDiscoveryGetCurrentVersion,this.logger,this.performanceClient,this.correlationId)(e);if(!t)return r.region_source=Ge,null;const n=await zo(this.getRegionFromIMDS.bind(this),Bo.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t,e);n.status===ze&&(o=n.body,r.region_source=Qe)}}catch(e){return r.region_source=Ge,null}}return o||(r.region_source=Ge),o||null}async getRegionFromIMDS(e,r){return this.performanceClient?.addQueueMeasurement(Bo.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?api-version=${e}&format=text`,r,t.IMDS_TIMEOUT)}async getCurrentVersion(e){this.performanceClient?.addQueueMeasurement(Bo.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?format=json`,e);return r.status===$e&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch(e){return null}}}$o.IMDS_OPTIONS={headers:{Metadata:"true"}};
|
|
44
|
-
/*! @azure/msal-common v14.4.
|
|
44
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
45
45
|
class Go{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 $o(t,this.logger,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(t.CIAM_AUTH_URL))return ao;const r=e.PathSegments;if(r.length)switch(r[0].toLowerCase()){case t.ADFS:return io;case t.DSTS:return so}return no}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 go(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 nr(pt)}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw nr(pt)}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw nr(pt)}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw nr(Qt);return this.replacePath(this.metadata.end_session_endpoint)}throw nr(pt)}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw nr(pt)}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw nr(pt)}canReplaceTenant(e){return 1===e.PathSegments.length&&!Go.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===no&&this.protocolMode===co.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const r=new go(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 go(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===io||this.protocolMode!==co.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(Bo.AuthorityResolveEndpointsAsync,this.correlationId);const e=this.getCurrentMetadataEntity(),t=await zo(this.updateCloudDiscoveryMetadata.bind(this),Bo.AuthorityUpdateCloudDiscoveryMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network);const r=await zo(this.updateEndpointMetadata.bind(this),Bo.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 Ho,e.updateCanonicalAuthority(this.canonicalAuthority)),e}updateCachedMetadata(e,t,r){t!==Pe&&r?.source!==Pe&&(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(Bo.AuthorityUpdateEndpointMetadata,this.correlationId);const t=this.updateEndpointMetadataFromLocalSources(e);if(t){if(t.source===Ne&&this.authorityOptions.azureRegionConfiguration?.azureRegion&&t.metadata){const r=await zo(this.updateMetadataWithRegionalInformation.bind(this),Bo.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(t.metadata);e.updateEndpointMetadata(r,!1)}return t.source}let r=await zo(this.getEndpointMetadataFromNetwork.bind(this),Bo.AuthorityGetEndpointMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return this.authorityOptions.azureRegionConfiguration?.azureRegion&&(r=await zo(this.updateMetadataWithRegionalInformation.bind(this),Bo.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(r)),e.updateEndpointMetadata(r,!0),Me;throw nr(ft,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:be};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:Ne,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:Pe}):(r&&this.logger.verbose("The metadata entity is expired."),null)}isAuthoritySameType(e){return new go(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 Zr(xr)}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Bo.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 po?po[this.canonicalAuthority]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(Bo.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const r=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(r){if(r!==t.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=We,this.regionDiscoveryMetadata.region_used=r,Go.replaceWithRegionalInformation(e,r);const o=await zo(this.regionDiscovery.detectRegion.bind(this.regionDiscovery),Bo.RegionDiscoveryDetectRegion,this.logger,this.performanceClient,this.correlationId)(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(o)return this.regionDiscoveryMetadata.region_outcome=Ye,this.regionDiscoveryMetadata.region_used=o,Go.replaceWithRegionalInformation(e,o);this.regionDiscoveryMetadata.region_outcome=Ve}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(Bo.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=this.updateCloudDiscoveryMetadataFromLocalSources(e);if(t)return t;const r=await zo(this.getCloudDiscoveryMetadataFromNetwork.bind(this),Bo.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return e.updateCloudDiscoveryMetadata(r,!0),Me;throw Zr(Kr)}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),be;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=(o=this.hostnameAndPort,Co(mo.metadata,o));if(t)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),e.updateCloudDiscoveryMetadata(t,!1),Ne;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}var o;const n=e.isExpired();return this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!n?(this.logger.verbose("Found cloud discovery metadata in the cache."),Pe):(n&&this.logger.verbose("The metadata entity is expired."),null)}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===ao)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),Go.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=Co(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."),Zr(Dr)}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),Go.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Bo.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")}
|
|
46
|
-
/*! @azure/msal-common v14.4.
|
|
47
|
-
/*! @azure/msal-common v14.4.
|
|
46
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */(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=Co(s,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=Go.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),o}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter((e=>go.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort)).length>0}static generateAuthority(e,r){let o;if(r&&r.azureCloudInstance!==lr.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 nr(pt)}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return fo.has(e)}static isPublicCloudAuthority(e){return t.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,r,o){const n=new go(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=go.constructAuthorityUriFromObject({...n.getUrlComponents(),HostNameAndPort:s}).urlString;return o?`${a}?${o}`:a}static replaceWithRegionalInformation(e,t){const r={...e};return r.authorization_endpoint=Go.buildRegionalAuthorityString(r.authorization_endpoint,t),r.token_endpoint=Go.buildRegionalAuthorityString(r.token_endpoint,t),r.end_session_endpoint&&(r.end_session_endpoint=Go.buildRegionalAuthorityString(r.end_session_endpoint,t)),r}static transformCIAMAuthority(e){let r=e;const o=new go(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 jo(e){return e.endsWith(t.FORWARD_SLASH)?e:`${e}${t.FORWARD_SLASH}`}Go.reservedTenantDomains=new Set(["{tenant}","{tenantid}",T,A,_]);
|
|
47
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
48
48
|
class Qo{static async createDiscoveredInstance(e,t,r,o,n,i,s){i?.addQueueMeasurement(Bo.AuthorityFactoryCreateDiscoveredInstance,s);const a=Go.transformCIAMAuthority(jo(e)),c=Qo.createInstance(a,t,r,o,n,i,s);try{return await zo(c.resolveEndpointsAsync.bind(c),Bo.AuthorityResolveEndpointsAsync,n,i,s)(),c}catch(e){throw nr(pt)}}static createInstance(e,t,r,o,n,i,s){if(!e)throw Zr(Mr);return new Go(e,t,r,o,n,i,s)}}
|
|
49
|
-
/*! @azure/msal-common v14.4.
|
|
50
|
-
/*! @azure/msal-common v14.4.
|
|
51
|
-
/*! @azure/msal-common v14.4.
|
|
52
|
-
/*! @azure/msal-common v14.4.
|
|
53
|
-
/*! @azure/msal-common v14.4.
|
|
54
|
-
/*! @azure/msal-common v14.4.
|
|
55
|
-
/*! @azure/msal-common v14.4.
|
|
56
|
-
/*! @azure/msal-common v14.4.
|
|
57
|
-
/*! @azure/msal-common v14.4.
|
|
58
|
-
/*! @azure/msal-common v14.4.
|
|
59
|
-
/*! @azure/msal-common v14.4.
|
|
60
|
-
/*! @azure/msal-common v14.4.
|
|
61
|
-
/*! @azure/msal-common v14.4.
|
|
62
|
-
/*! @azure/msal-common v14.4.
|
|
63
|
-
/*! @azure/msal-common v14.4.
|
|
64
|
-
/*! @azure/msal-common v14.4.
|
|
65
|
-
/*! @azure/msal-common v14.4.
|
|
66
|
-
/*! @azure/msal-common v14.4.
|
|
67
|
-
class
|
|
68
|
-
/*! @azure/msal-common v14.4.
|
|
69
|
-
/*! @azure/msal-common v14.4.0 2023-11-07 */class bn{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class Pn{generateId(){return"callback-id"}startMeasurement(e,t){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:Do,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new bn}}startPerformanceMeasurement(){return new bn}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}const Mn="pkce_not_created",Nn="crypto_nonexistent",On="empty_navigate_uri",qn="hash_empty_error",Ln="no_state_in_hash",Un="hash_does_not_contain_known_properties",Hn="unable_to_parse_state",Bn="state_interaction_type_mismatch",Dn="interaction_in_progress",xn="popup_window_error",Kn="empty_window_error",Fn="user_cancelled",zn="monitor_popup_timeout",$n="monitor_window_timeout",Gn="redirect_in_iframe",jn="block_iframe_reload",Qn="block_nested_popups",Wn="iframe_closed_prematurely",Yn="silent_logout_unsupported",Vn="no_account_error",Jn="silent_prompt_value_error",Xn="no_token_request_cache_error",Zn="unable_to_parse_token_request_cache_error",ei="no_cached_authority_error",ti="auth_request_not_set_error",ri="invalid_cache_type",oi="non_browser_environment",ni="database_not_open",ii="no_network_connectivity",si="post_request_failed",ai="get_request_failed",ci="failed_to_parse_response",hi="unable_to_load_token",li="crypto_key_not_found",di="auth_code_required",ui="auth_code_or_nativeAccountId_required",gi="spa_code_and_nativeAccountId_present",pi="database_unavailable",mi="unable_to_acquire_token_from_native_platform",fi="native_handshake_timeout",yi="native_extension_not_installed",Ci="native_connection_not_established",vi="uninitialized_public_client_application",wi="native_prompt_not_supported",Ii="invalid_base64_string";var Ti=Object.freeze({__proto__:null,authCodeOrNativeAccountIdRequired:ui,authCodeRequired:di,authRequestNotSetError:ti,blockIframeReload:jn,blockNestedPopups:Qn,cryptoKeyNotFound:li,cryptoNonExistent:Nn,databaseNotOpen:ni,databaseUnavailable:pi,emptyNavigateUri:On,emptyWindowError:Kn,failedToParseResponse:ci,getRequestFailed:ai,hashDoesNotContainKnownProperties:Un,hashEmptyError:qn,iframeClosedPrematurely:Wn,interactionInProgress:Dn,invalidBase64String:Ii,invalidCacheType:ri,monitorPopupTimeout:zn,monitorWindowTimeout:$n,nativeConnectionNotEstablished:Ci,nativeExtensionNotInstalled:yi,nativeHandshakeTimeout:fi,nativePromptNotSupported:wi,noAccountError:Vn,noCachedAuthorityError:ei,noNetworkConnectivity:ii,noStateInHash:Ln,noTokenRequestCacheError:Xn,nonBrowserEnvironment:oi,pkceNotCreated:Mn,popupWindowError:xn,postRequestFailed:si,redirectInIframe:Gn,silentLogoutUnsupported:Yn,silentPromptValueError:Jn,spaCodeAndNativeAccountIdPresent:gi,stateInteractionTypeMismatch:Bn,unableToAcquireTokenFromNativePlatform:mi,unableToLoadToken:hi,unableToParseState:Hn,unableToParseTokenRequestCacheError:Zn,uninitializedPublicClientApplication:vi,userCancelled:Fn});const _i="For more visit: aka.ms/msaljs/browser-errors",Ai={[Mn]:"The PKCE code challenge and verifier could not be generated.",[Nn]:"The crypto object or function is not available.",[On]:"Navigation URI is empty. Please check stack trace for more info.",[qn]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${_i}`,[Ln]:"Hash does not contain state. Please verify that the request originated from msal.",[Un]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${_i}`,[Hn]:"Unable to parse state. Please verify that the request originated from msal.",[Bn]:"Hash contains state but the interaction type does not match the caller.",[Dn]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${_i}`,[xn]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[Kn]:"window.open returned null or undefined window object.",[Fn]:"User cancelled the flow.",[zn]:`Token acquisition in popup failed due to timeout. ${_i}`,[$n]:`Token acquisition in iframe failed due to timeout. ${_i}`,[Gn]:"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.",[jn]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${_i}`,[Qn]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[Wn]:"The iframe being monitored was closed prematurely.",[Yn]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[Vn]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[Jn]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[Xn]:"No token request found in cache.",[Zn]:"The cached token request could not be parsed.",[ei]:"No cached authority found.",[ti]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[ri]:"Invalid cache type",[oi]:"Login and token requests are not supported in non-browser environments.",[ni]:"Database is not open!",[ii]:"No network connectivity. Check your internet connection.",[si]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[ai]:"Network request failed. Please check the network trace to determine root cause.",[ci]:"Failed to parse network response. Check network trace.",[hi]:"Error loading token to cache.",[li]:"Cryptographic Key or Keypair not found in browser storage.",[di]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[ui]:"An authorization code or nativeAccountId must be provided to this flow.",[gi]:"Request cannot contain both spa code and native account id.",[pi]:"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.",[mi]:`Unable to acquire token from native platform. ${_i}`,[fi]:"Timed out while attempting to establish connection to browser extension",[yi]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[Ci]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${_i}`,[vi]:`You must call and await the initialize function before attempting to call any other MSAL API. ${_i}`,[wi]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[Ii]:"Invalid base64 encoded string."},ki={pkceNotGenerated:{code:Mn,desc:Ai[Mn]},cryptoDoesNotExist:{code:Nn,desc:Ai[Nn]},emptyNavigateUriError:{code:On,desc:Ai[On]},hashEmptyError:{code:qn,desc:Ai[qn]},hashDoesNotContainStateError:{code:Ln,desc:Ai[Ln]},hashDoesNotContainKnownPropertiesError:{code:Un,desc:Ai[Un]},unableToParseStateError:{code:Hn,desc:Ai[Hn]},stateInteractionTypeMismatchError:{code:Bn,desc:Ai[Bn]},interactionInProgress:{code:Dn,desc:Ai[Dn]},popupWindowError:{code:xn,desc:Ai[xn]},emptyWindowError:{code:Kn,desc:Ai[Kn]},userCancelledError:{code:Fn,desc:Ai[Fn]},monitorPopupTimeoutError:{code:zn,desc:Ai[zn]},monitorIframeTimeoutError:{code:$n,desc:Ai[$n]},redirectInIframeError:{code:Gn,desc:Ai[Gn]},blockTokenRequestsInHiddenIframeError:{code:jn,desc:Ai[jn]},blockAcquireTokenInPopupsError:{code:Qn,desc:Ai[Qn]},iframeClosedPrematurelyError:{code:Wn,desc:Ai[Wn]},silentLogoutUnsupportedError:{code:Yn,desc:Ai[Yn]},noAccountError:{code:Vn,desc:Ai[Vn]},silentPromptValueError:{code:Jn,desc:Ai[Jn]},noTokenRequestCacheError:{code:Xn,desc:Ai[Xn]},unableToParseTokenRequestCacheError:{code:Zn,desc:Ai[Zn]},noCachedAuthorityError:{code:ei,desc:Ai[ei]},authRequestNotSet:{code:ti,desc:Ai[ti]},invalidCacheType:{code:ri,desc:Ai[ri]},notInBrowserEnvironment:{code:oi,desc:Ai[oi]},databaseNotOpen:{code:ni,desc:Ai[ni]},noNetworkConnectivity:{code:ii,desc:Ai[ii]},postRequestFailed:{code:si,desc:Ai[si]},getRequestFailed:{code:ai,desc:Ai[ai]},failedToParseNetworkResponse:{code:ci,desc:Ai[ci]},unableToLoadTokenError:{code:hi,desc:Ai[hi]},signingKeyNotFoundInStorage:{code:li,desc:Ai[li]},authCodeRequired:{code:di,desc:Ai[di]},authCodeOrNativeAccountRequired:{code:ui,desc:Ai[ui]},spaCodeAndNativeAccountPresent:{code:gi,desc:Ai[gi]},databaseUnavailable:{code:pi,desc:Ai[pi]},unableToAcquireTokenFromNativePlatform:{code:mi,desc:Ai[mi]},nativeHandshakeTimeout:{code:fi,desc:Ai[fi]},nativeExtensionNotInstalled:{code:yi,desc:Ai[yi]},nativeConnectionNotEstablished:{code:Ci,desc:Ai[Ci]},uninitializedPublicClientApplication:{code:vi,desc:Ai[vi]},nativePromptNotSupported:{code:wi,desc:Ai[wi]},invalidBase64StringError:{code:Ii,desc:Ai[Ii]}};class Si extends ct{constructor(e){super(e,Ai[e]),Object.setPrototypeOf(this,Si.prototype),this.name="BrowserAuthError"}}function Ei(e){return new Si(e)}const Ri={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"},bi="53ee284d-920a-4b59-9d30-a60315b26836",Pi="ppnbnpeolgkicgegkbkbjmhlideopiji",Mi="MATS",Ni="Handshake",Oi="HandshakeResponse",qi="GetToken",Li="Response",Ui={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},Hi="GET",Bi="POST",Di="authority",xi="request.state",Ki="nonce.id_token",Fi="request.origin",zi="urlHash",$i="request.params",Gi="interaction.status",ji="ccs.credential",Qi="request.correlationId",Wi="request.native",Yi="request.redirect.context",Vi="msal.account.keys",Ji="msal.token.keys",Xi="wrapper.sku",Zi="wrapper.version",es={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var ts;e.InteractionType=void 0,(ts=e.InteractionType||(e.InteractionType={})).Redirect="redirect",ts.Popup="popup",ts.Silent="silent",ts.None="none";const rs={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},os={scopes:s},ns="msal.db",is=`${ns}.keys`,ss={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5};function as(e){e.location.hash="","function"==typeof e.history.replaceState&&e.history.replaceState(null,"",`${e.location.origin}${e.location.pathname}${e.location.search}`)}function cs(e){const t=e.split("#");t.shift(),window.location.hash=t.length>0?t.join("#"):""}function hs(){return window.parent!==window}function ls(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${Ri.POPUP_NAME_PREFIX}.`)}function ds(){return window.location.href.split("?")[0].split("#")[0]}function us(){const e=new go(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}function gs(){if(go.hashContainsKnownProperties(window.location.hash)&&hs())throw Ei(jn)}function ps(t,r){const o=hs();if(t===e.InteractionType.Redirect&&o&&!r)throw Ei(Gn)}function ms(){if(ls())throw Ei(Qn)}function fs(e){if(!e)throw Ei(oi)}function ys(e){if(!e)throw Ei(vi)}function Cs(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 vs=Object.freeze({__proto__:null,blockAPICallsBeforeInitialize:ys,blockAcquireTokenInPopups:ms,blockNonBrowserEnvironment:fs,blockRedirectInIframe:ps,blockReloadInHiddenIframes:gs,clearHash:as,getCurrentUri:ds,getHomepage:us,isInIframe:hs,isInPopup:ls,preconnect:Cs,replaceHash:cs});class ws{navigateInternal(e,t){return ws.defaultNavigateWindow(e,t)}navigateExternal(e,t){return ws.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 Is{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:Hi,headers:this.getFetchHeaders(t)})}catch(e){throw window.navigator.onLine?Ei(ai):Ei(ii)}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(e){throw Ei(ci)}}async sendPostRequestAsync(e,r){const o=r&&r.body||t.EMPTY_STRING;let n;try{n=await fetch(e,{method:Bi,headers:this.getFetchHeaders(r),body:o})}catch(e){throw window.navigator.onLine?Ei(si):Ei(ii)}try{return{headers:this.getHeaderDict(n.headers),body:await n.json(),status:n.status}}catch(e){throw Ei(ci)}}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 Ts=6e3;const _s="@azure/msal-browser",As="3.5.0";class ks{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:co.AAD,OIDCOptions:{serverResponseType:fe.FRAGMENT,defaultScopes:[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:lr.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1},c={cacheLocation:Ui.SessionStorage,temporaryCacheLocation:Ui.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!o||o.cacheLocation!==Ui.LocalStorage),claimsBasedCachingEnabled:!1},h={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},l={...{...Io,loggerOptions:h,networkClient:s?new Is:wn,navigationClient:new ws,loadFrameTimeout:0,windowHashTimeout:n?.loadFrameTimeout||6e4,iframeHashTimeout:n?.loadFrameTimeout||Ts,navigateFrameWait:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:n?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:Ri.DEFAULT_POLL_INTERVAL_MS},...n,loggerOptions:n?.loggerOptions||h},d={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING},client:new Pn};r?.protocolMode!==co.OIDC&&r?.OIDCOptions&&new ar(l.loggerOptions).warning(JSON.stringify(Zr(jr)));if(r?.protocolMode&&r.protocolMode!==co.AAD&&l?.allowNativeBroker)throw Zr(Qr);return{auth:{...a,...r,OIDCOptions:{...a.OIDCOptions,...r?.OIDCOptions}},cache:{...c,...o},system:l,telemetry:{...d,...i}}}(r,this.browserEnvironment),this.logger=new ar(this.config.system.loggerOptions,_s,As),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class Ss{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{Ss.crypto=window.crypto,window.nestedAppAuthBridge.addEventListener("message",(e=>{const t=JSON.parse(e),r=Ss.bridgeRequests.find((e=>e.requestId===t.requestId));void 0!==r&&(Ss.bridgeRequests.splice(Ss.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:Ss.getRandomId()},o={requestId:r.requestId,method:r.method,resolve:e,reject:t};Ss.bridgeRequests.push(o),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))}))}catch(e){throw window.console.log(e),e}}static getRandomId(){return Ss.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:Ss.getRandomId(),body:t},o=new Promise(((e,t)=>{const o={requestId:r.requestId,method:r.method,resolve:e,reject:t};Ss.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 Ss.initializeNestedAppAuthBridge();return new Ss(e.sdkName,e.sdkVersion,e.capabilities)}}Ss.bridgeRequests=[];class Es extends ks{constructor(){super(...arguments),this.bridgeProxy=void 0,this.activeAccount=void 0}getModuleName(){return Es.MODULE_NAME}getId(){return Es.ID}getBridgeProxy(){return this.bridgeProxy}getActiveAccount(){return this.activeAccount}setActiveAccount(e){this.activeAccount=e}async initialize(){try{if("undefined"!=typeof window){const e=await Ss.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}}}Es.MODULE_NAME="",Es.ID="TeamsAppOperatingContext";class Rs extends ks{getModuleName(){return Rs.MODULE_NAME}getId(){return Rs.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}async function bs(e){const t=new Rs(e),r=new Es(e),o=[t.initialize(),r.initialize()];if(await Promise.all(o),r.isAvailable()&&r.getConfig().auth.supportsNestedAppAuth){const e=await Promise.resolve().then((function(){return tc}));return await e.NestedAppAuthController.createController(r)}if(t.isAvailable()){const e=await Promise.resolve().then((function(){return za}));return await e.StandardController.createController(t)}return null}function Ps(e){return encodeURIComponent(Ns(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function Ms(e){return Os(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Ns(e){return Os((new TextEncoder).encode(e))}function Os(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}function qs(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 Ei(Ii)}const r=atob(t);return Uint8Array.from(r,(e=>e.codePointAt(0)||0))}(e))}Rs.MODULE_NAME="",Rs.ID="StandardOperatingContext";const Ls="SHA-256",Us=new Uint8Array([1,0,1]),Hs={name:"RSASSA-PKCS1-v1_5",hash:Ls,modulusLength:2048,publicExponent:Us};async function Bs(e,t,r){t?.addQueueMeasurement(Bo.Sha256Digest,r);const o=(new TextEncoder).encode(e);return window.crypto.subtle.digest(Ls,o)}function Ds(e){return window.crypto.getRandomValues(e)}function xs(){return window.crypto.randomUUID()}async function Ks(e){return window.crypto.subtle.exportKey("jwk",e)}class Fs{constructor(){this.dbName=ns,this.version=1,this.tableName=is,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(Ei(pi))))}))}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(Ei(ni));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(Ei(ni));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(Ei(ni));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(Ei(ni));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(Ei(ni));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(ns);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class zs{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 $s{constructor(e,t){this.inMemoryCache=new zs,this.indexedDBCache=new Fs,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof Si&&e.errorCode===pi))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 Gs="asymmetricKeys",js="symmetricKeys";class Qs{constructor(e){this.logger=e,this.asymmetricKeys=new $s(this.logger,Gs),this.symmetricKeys=new $s(this.logger,js)}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 Ws{constructor(e,t){this.logger=e,function(e){if(!("crypto"in window))throw e.error("BrowserCrypto: crypto interface is unavailable"),Ei(Nn);e.verbose("BrowserCrypto: modern crypto interface available")}(e),this.cache=new Qs(this.logger),this.performanceClient=t}createNewGuid(){return xs()}base64Encode(e){return Ns(e)}base64Decode(e){return qs(e)}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(Bo.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await async function(e,t){return window.crypto.subtle.generateKey(Hs,e,t)}(Ws.EXTRACTABLE,Ws.POP_KEY_USAGES),o=await Ks(r.publicKey),n=Ys({e:o.e,kty:o.kty,n:o.n}),i=await this.hashString(n),s=await Ks(r.privateKey),a=await async function(e,t,r){return window.crypto.subtle.importKey("jwk",e,Hs,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,o){const n=this.performanceClient?.startMeasurement(Bo.CryptoOptsSignJwt,o),i=await this.cache.asymmetricKeys.getItem(t);if(!i)throw Ei(li);const s=await Ks(i.publicKey),a=Ys(s),c=Ps(JSON.stringify({kid:t})),h=Ps(Sn.getShrHeaderString({...r?.header,alg:s.alg,kid:c}));e.cnf={jwk:JSON.parse(a)};const l=`${h}.${Ps(JSON.stringify(e))}`,d=(new TextEncoder).encode(l),u=await async function(e,t){return window.crypto.subtle.sign(Hs,e,t)}(i.privateKey,d),g=`${l}.${Ms(new Uint8Array(u))}`;return n&&n.end({success:!0}),g}async hashString(e){const t=await Bs(e);return Ms(new Uint8Array(t))}}function Ys(e){return JSON.stringify(e,Object.keys(e).sort())}Ws.POP_KEY_USAGES=["sign","verify"],Ws.EXTRACTABLE=!0;const Vs="storage_not_supported",Js="stubbed_public_client_application_called",Xs="in_mem_redirect_unavailable";var Zs=Object.freeze({__proto__:null,inMemRedirectUnavailable:Xs,storageNotSupported:Vs,stubbedPublicClientApplicationCalled:Js});const ea={[Vs]:"Given storage configuration option was not supported.",[Js]:"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",[Xs]:"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."},ta={storageNotSupportedError:{code:Vs,desc:ea[Vs]},stubPcaInstanceCalled:{code:Js,desc:ea[Js]},inMemRedirectUnavailable:{code:Xs,desc:ea[Xs]}};class ra extends ct{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,ra.prototype)}}function oa(e){return new ra(e,ea[e])}class na{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==Ui.LocalStorage&&e!==Ui.SessionStorage||!window[e])throw oa(Vs)}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)}}function ia(e,t){if(!t)return null;try{return ln.parseRequestState(e,t).libraryState.meta}catch(e){throw nr(Ct)}}class sa extends vo{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 zs,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 Ui.LocalStorage:case Ui.SessionStorage:try{return new na(e)}catch(e){this.logger.verbose(e);break}}return this.cacheConfig.cacheLocation=Ui.MemoryStorage,new zs}setupTemporaryCacheStorage(e,t){switch(t){case Ui.LocalStorage:case Ui.SessionStorage:try{return new na(e||Ui.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(Vi),t=this.getItem(`${Ji}.${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 Ae.ID_TOKEN:if(wr(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=r,o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Ae.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 Ae.ACCESS_TOKEN:case Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(vr(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=r,o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Ae.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 Ae.REFRESH_TOKEN:if(Ir(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=r,o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Ae.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&&ho.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&&ho.isAccountEntity(r)?vo.toObject(new ho,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(Vi);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(Vi,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(Vi,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,Ae.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,Ae.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,Ae.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${Ji}.${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 Ae.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case Ae.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case Ae.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}`),nr(Dt)}this.setItem(`${Ji}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case Ae.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 Ae.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 Ae.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}`),nr(Dt)}this.setItem(`${Ji}.${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,Ae.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&wr(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=pr(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Ae.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&vr(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=pr(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Ae.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Ir(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=pr(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Ae.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&&gn.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),vo.toObject(new gn,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&&function(e,t){const r=0===e.indexOf(Oe.CACHE_KEY);let o=!0;return t&&(o=t.hasOwnProperty("failedRequests")&&t.hasOwnProperty("errors")&&t.hasOwnProperty("cacheHits")),r&&o}(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),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&&Ho.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),vo.toObject(new Ho,r)):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(Xi,e),this.internalStorage.setItem(Zi,t)}getWrapperMetadata(){return[this.internalStorage.getItem(Xi)||t.EMPTY_STRING,this.internalStorage.getItem(Zi)||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.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(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)}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&&vn.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),vo.toObject(new vn,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===Ui.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(Bo.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):eo.startsWith(e,t.CACHE_PREFIX)||eo.startsWith(e,y)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=ln.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Di}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=ln.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Ki}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=ln.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${xi}.${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:Oo};this.setTemporaryCache(ji,JSON.stringify(e),!0)}else if(o){const e={credential:o,type:qo};this.setTemporaryCache(ji,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($i)),this.removeItem(this.generateCacheKey(Fi)),this.removeItem(this.generateCacheKey(zi)),this.removeItem(this.generateCacheKey(Qi)),this.removeItem(this.generateCacheKey(ji)),this.removeItem(this.generateCacheKey(Wi)),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(xi))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=ia(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=Ns(JSON.stringify(e));this.setTemporaryCache($i,t,!0)}getCachedRequest(e){this.logger.trace("BrowserCacheManager.getCachedRequest called");const t=this.getTemporaryCache($i,!0);if(!t)throw Ei(Xn);let r;try{r=JSON.parse(qs(t))}catch(e){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${e}`),Ei(Zn)}if(this.removeItem(this.generateCacheKey($i)),!r.authority){const t=this.generateAuthorityKey(e),o=this.getTemporaryCache(t);if(!o)throw Ei(ei);r.authority=o}return r}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(Wi,!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}.${Gi}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${Gi}`;if(e){if(this.getInteractionInProgress())throw Ei(Dn);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=dr(r,qs);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=pr(t);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(Yi,!0)}setRedirectRequestContext(e){this.setTemporaryCache(Yi,e,!0)}async hydrateCache(e,t){const r=mr(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=fr(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?.getTime()||0,e.extExpiresOn?.getTime()||0,qs,void 0,e.tokenType,void 0,t.sshKid,t.claims,o),i=new hn(void 0,r,n);return this.saveCacheRecord(i)}}const aa=(e,t)=>new sa(e,{cacheLocation:Ui.MemoryStorage,temporaryCacheLocation:Ui.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},ir,t),ca={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 ha{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=xs();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||!ho.isAccountEntity(r))return;const o=vo.toObject(new ho,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent(ca.ACCOUNT_ADDED,void 0,o)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent(ca.ACCOUNT_REMOVED,void 0,o))}catch(e){return}}}class la{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||xs(),this.logger=o.clone(Ri.MSAL_SKU,As,this.correlationId),this.performanceClient=s}async clearCacheOnLogout(e){if(e){ho.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(ho.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(Bo.InitializeBaseRequest,this.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===qe.SSH){if(!e.sshJwk)throw Zr(Fr);if(!e.sshKid)throw Zr(zr)}this.logger.verbose(`Authentication Scheme set to "${n.authenticationScheme}" as configured in Auth request`)}else n.authenticationScheme=qe.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!eo.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||ds();return go.getAbsoluteUrl(t,ds())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw Zr(Wr)}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 En(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 Qo.createDiscoveredInstance(e,this.config.system.networkClient,this.browserStorage,t,this.logger)):(this.logger.verbose("Creating discovered authority with configured authority"),await Qo.createDiscoveredInstance(this.config.auth.authority,this.config.system.networkClient,this.browserStorage,t,this.logger))}}const da=32;async function ua(e,t,r){e.addQueueMeasurement(Bo.GeneratePkceCodes,r);const o=Fo(ga,Bo.GenerateCodeVerifier,t,e,r)(e,t,r);return{verifier:o,challenge:await zo(pa,Bo.GenerateCodeChallengeFromVerifier,t,e,r)(o,e,t,r)}}function ga(e,t,r){try{const o=new Uint8Array(da);Fo(Ds,Bo.GetRandomValues,t,e,r)(o);return Ms(o)}catch(e){throw Ei(Mn)}}async function pa(e,t,r,o){t.addQueueMeasurement(Bo.GenerateCodeChallengeFromVerifier,o);try{const n=await zo(Bs,Bo.Sha256Digest,r,t,o)(e,t,o);return Ms(new Uint8Array(n))}catch(e){throw Ei(Mn)}}class ma extends la{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.correlationId);const r=await zo(ua,Bo.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||xs(),...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=go.getAbsoluteUrl(e.postLogoutRedirectUri,ds())):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=go.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,ds())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=go.getAbsoluteUrl(ds(),ds())),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(Bo.StandardInteractionClientCreateAuthCodeClient,this.correlationId);const o=await zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new fn(o,this.performanceClient)}async getClientConfiguration(e,r,o){this.performanceClient.addQueueMeasurement(Bo.StandardInteractionClientGetClientConfiguration,this.correlationId);const n=await zo(this.getDiscoveredAuthority.bind(this),Bo.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:Ri.MSAL_SKU,version:As,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(Bo.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=Go.generateAuthority(o,t||this.config.auth.azureCloudOptions);return await zo(Qo.createDiscoveredInstance.bind(Qo),Bo.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(Bo.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId);const o=this.getRedirectUri(e.redirectUri),n={interactionType:r},i=ln.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,n),s={...await zo(this.initializeBaseRequest.bind(this),Bo.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e),redirectUri:o,state:i,nonce:e.nonce||xs(),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 fa="user_switch",ya={[fa]:"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 Ca extends ct{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,Ca.prototype),this.name="NativeAuthError",this.ext=r}}function va(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 wa(e,t,r){if(r&&r.status)switch(r.status){case"ACCOUNT_UNAVAILABLE":return cn(Vo);case"USER_INTERACTION_REQUIRED":return new sn(e,t);case"USER_CANCEL":return Ei(Fn);case"NO_NETWORK":return Ei(ii)}return new Ca(e,ya[e]||t,r)}class Ia extends ma{async acquireToken(e){this.performanceClient.addQueueMeasurement(Bo.SilentCacheClientAcquireToken,e.correlationId);const t=this.initializeServerTelemetryManager(es.acquireTokenSilent_silentFlow),r=await this.createSilentFlowClient(t,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const t=(await zo(r.acquireCachedToken.bind(r),Bo.SilentFlowClientAcquireCachedToken,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),t}catch(e){throw e instanceof Si&&e.errorCode===li&&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 zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new Cn(o,this.performanceClient)}async initializeSilentRequest(e,t){this.performanceClient.addQueueMeasurement(Bo.InitializeSilentRequest,this.correlationId);const r=await zo(this.initializeBaseRequest.bind(this),Bo.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e,t);return{...e,...r,account:t,forceRefresh:e.forceRefresh||!1}}}const Ta="brk_client_id",_a="brk_redirect_uri";class Aa extends la{constructor(e,t,r,o,n,i,s,a,c,h,l,d){super(e,t,r,o,n,i,a,c,d),this.apiId=s,this.accountId=h,this.nativeMessageHandler=c,this.nativeStorageManager=l,this.silentCacheClient=new Ia(e,this.nativeStorageManager,r,o,n,i,a,c,d)}async acquireToken(e){this.performanceClient.addQueueMeasurement(Bo.NativeInteractionClientAcquireToken,e.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(Bo.NativeInteractionClientAcquireToken,e.correlationId),r=gr.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:qi,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:to.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),nr(Ht);const r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e});if(!r)throw nr(Ht);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:qi,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof Ca&&va(e))throw e}this.browserStorage.setTemporaryCache(Wi,JSON.stringify(t),!0);const o={apiId:es.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(Wi));const o={method:qi,request:r},n=gr.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 wa(fa);const o=await this.getDiscoveredAuthority(t.authority),n=dr(e.id_token,qs),i=this.createHomeAccountIdentifier(e,n),s=ho.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 ho.generateHomeAccountId(e.client_info||t.EMPTY_STRING,no,this.logger,this.browserCrypto,r)}generateScopes(e,t){return e.scope?to.fromString(e.scope):to.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===qe.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new un(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw nr(Wt);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?to.fromString(e.scope):to.fromString(r.scope),h=e.account.properties||{},l=h.UID||o.oid||o.sub||t.EMPTY_STRING,d=h.TenantId||o.tid||t.EMPTY_STRING,u=(o?Object.assign(new ho,{...n,idTokenClaims:o}):n).getAccountInfo(),g=await this.generatePopAccessToken(e,r),p=r.tokenType===qe.POP?qe.POP:qe.BEARER;return{authority:i,uniqueId:l,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=mr(o,r.authority,e.id_token||"",r.clientId,n.tid||""),h=a+(r.tokenType===qe.POP?t.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0),l=this.generateScopes(e,r),d=fr(o,r.authority,i,r.clientId,n.tid||s,l.printScopes(),h,0,qs),u=new hn(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 ht(ot,"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 go(t);r.validateAsUri();const{scopes:o,...n}=e,i=new to(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 es.ssoSilent:case es.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`),Ei(wi)}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=Mi,e.authenticationScheme===qe.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new un(this.browserCrypto),o=await zo(r.generateCnf.bind(r),Bo.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(Ta)&&e.extraParameters.hasOwnProperty(_a)&&e.extraParameters.hasOwnProperty(k)){const t=e.extraParameters[k],r=e.redirectUri,o=e.extraParameters[_a];e.extraParameters={child_client_id:t,child_redirect_uri:r},e.redirectUri=o}}}class ka{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(Bo.NativeMessageHandlerHandshake)}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:bi,extensionId:this.extensionId,responseId:xs(),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 ka(e,t,r,Pi);return await o.sendHandshakeRequest(),o}catch(o){const n=new ka(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:bi,extensionId:this.extensionId,responseId:xs(),body:{method:Ni}};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(Ei(fi)),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===bi&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===Ni){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(Ei(yi))}}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===Li){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(wa(e.code,e.description,e.ext));else{if(!e.result)throw ht(ot,"Event does not contain result.");e.result.code&&e.result.description?r.reject(wa(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===Oi){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 qe.BEARER:case qe.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 Sa{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=n}async handleCodeResponse(e,t){let r;this.performanceClient.addQueueMeasurement(Bo.HandleCodeResponse,t.correlationId);try{r=this.authModule.handleFragmentResponse(e,t.state)}catch(e){throw e instanceof Po&&e.subError===Fn?Ei(Fn):e}return zo(this.handleCodeResponseFromServer.bind(this),Bo.HandleCodeResponseFromServer,this.logger,this.performanceClient,t.correlationId)(r,t)}async handleCodeResponseFromServer(e,t,r=!0){if(this.performanceClient.addQueueMeasurement(Bo.HandleCodeResponseFromServer,t.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"),this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await zo(this.authModule.updateAuthority.bind(this.authModule),Bo.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,t.correlationId)(e.cloud_instance_host_name,t.correlationId),r&&(e.nonce=t.nonce||void 0),e.state=t.state,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const e=this.createCcsCredentials(t);e&&(this.authCodeRequest.ccsCredential=e)}return await zo(this.authModule.acquireToken.bind(this.authModule),Bo.AuthClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(this.authCodeRequest,e)}createCcsCredentials(e){return e.account?{credential:e.account.homeAccountId,type:Oo}:e.loginHint?{credential:e.loginHint,type:qo}:null}}function Ea(e,t,r){const o=uo(e);if(!o)throw lo(e)?(r.error(`A ${t} is present in the iframe but it does not contain known properties. It's likely that the ${t} has been replaced by code running on the redirectUri page.`),r.errorPii(`The ${t} detected is: ${e}`),Ei(Un)):(r.error(`The request has returned to the redirectUri but a ${t} is not present. It's likely that the ${t} has been removed or the page has been redirected by code running on the redirectUri page.`),Ei(qn));return o}class Ra extends ma{constructor(e,t,r,o,n,i,s,a,c,h){super(e,t,r,o,n,i,s,c,h),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(t,r,o,n){this.logger.verbose("acquireTokenPopupAsync called");const i=this.initializeServerTelemetryManager(es.acquireTokenPopup),s=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(t,e.InteractionType.Popup);Cs(s.authority);try{const a=await zo(this.initializeAuthorizationCodeRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(s),c=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(i,s.authority,s.azureCloudOptions),h=ka.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme);let l;h&&(l=this.performanceClient.startMeasurement(Bo.FetchAccountIdWithNativeBroker,t.correlationId));const d=await c.getAuthCodeUrl({...s,nativeBroker:h}),u=new Sa(c,this.browserStorage,a,this.logger,this.performanceClient),g={popup:n,popupName:r,popupWindowAttributes:o},p=this.initiateAuthRequest(d,g);this.eventHandler.emitEvent(ca.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=Fo(Ea,Bo.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(m,this.config.auth.OIDCOptions.serverResponseType,this.logger);if(Mo.removeThrottle(this.browserStorage,this.config.auth.clientId,a),f.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),l&&l.end({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw Ei(Ci);const e=new Aa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,es.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,s.correlationId),{userRequestState:t}=ln.parseRequestState(this.browserCrypto,s.state);return e.acquireToken({...s,state:t,prompt:void 0})}return await u.handleCodeResponse(f,s)}catch(e){throw n&&n.close(),e instanceof ct&&(e.setCorrelationId(this.correlationId),i.cacheFailedRequest(e)),e}}async logoutPopupAsync(t,r,o,n,i,s){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(ca.LOGOUT_START,e.InteractionType.Popup,t);const a=this.initializeServerTelemetryManager(es.logoutPopup);try{await this.clearCacheOnLogout(t.account);const c=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(a,n);try{c.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId&&t.postLogoutRedirectUri&&c.authority.protocolMode===co.OIDC){if(this.browserStorage.removeAccount(t.account?.homeAccountId),this.eventHandler.emitEvent(ca.LOGOUT_SUCCESS,e.InteractionType.Popup,t),s){const e={apiId:es.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=go.getAbsoluteUrl(s,ds());await this.navigationClient.navigateInternal(t,e)}return void(i&&i.close())}}const h=c.getLogoutUri(t);this.eventHandler.emitEvent(ca.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const l=this.openPopup(h,{popupName:r,popupWindowAttributes:o,popup:i});if(this.eventHandler.emitEvent(ca.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:l},null),await this.monitorPopupForHash(l).catch((()=>{})),s){const e={apiId:es.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=go.getAbsoluteUrl(s,ds());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),a.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(ca.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent(ca.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent(ca.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"),Ei(On)}monitorPopupForHash(e){return new Promise(((t,r)=>{this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const o=setInterval((()=>{if(e.closed)return this.logger.error("PopupHandler.monitorPopupForHash - window closed"),clearInterval(o),void r(Ei(Fn));let n="";try{n=e.location.href}catch(e){}if(!n||"about:blank"===n)return;clearInterval(o);let i="";const s=this.config.auth.OIDCOptions.serverResponseType;e&&(i=s===fe.QUERY?e.location.search:e.location.hash),this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),t(i)}),this.config.system.pollIntervalMilliseconds)})).finally((()=>{this.cleanPopup(e)}))}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 Ei(Kn);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),Ei(xn)}}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,h=r.popupPosition?.top,l=r.popupPosition?.left;return(!a||a<0||a>i)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),a=Ri.POPUP_WIDTH),(!c||c<0||c>s)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=Ri.POPUP_HEIGHT),(!h||h<0||h>s)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),h=Math.max(0,s/2-Ri.POPUP_HEIGHT/2+n)),(!l||l<0||l>i)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),l=Math.max(0,i/2-Ri.POPUP_WIDTH/2+o)),window.open(e,t,`width=${a}, height=${c}, top=${h}, left=${l}, 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`${Ri.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${Ri.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}}class ba{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=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(Fi,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(Qi,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:es.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"),Ei(On)}async handleCodeResponse(e,t){this.logger.verbose("RedirectHandler.handleCodeResponse called"),this.browserStorage.setInteractionInProgress(!1);const r=this.browserStorage.generateStateKey(t),o=this.browserStorage.getTemporaryCache(r);if(!o)throw nr(wt,"Cached State");let n;try{n=this.authModule.handleFragmentResponse(e,o)}catch(e){throw e instanceof Po&&e.subError===Fn?Ei(Fn):e}const i=this.browserStorage.generateNonceKey(o),s=this.browserStorage.getTemporaryCache(i);if(this.authCodeRequest.code=n.code,n.cloud_instance_host_name&&await zo(this.authModule.updateAuthority.bind(this.authModule),Bo.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(n.cloud_instance_host_name,this.authCodeRequest.correlationId),n.nonce=s||void 0,n.state=o,n.client_info)this.authCodeRequest.clientInfo=n.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const a=await this.authModule.acquireToken(this.authCodeRequest,n);return this.browserStorage.cleanRequestByState(t),a}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(ji,!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 Pa extends ma{constructor(e,t,r,o,n,i,s,a,c,h){super(e,t,r,o,n,i,s,c,h),this.nativeStorage=a}async acquireToken(t){const r=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(t,e.InteractionType.Redirect);this.browserStorage.updateCacheEntries(r.state,r.nonce,r.authority,r.loginHint||"",r.account||null);const o=this.initializeServerTelemetryManager(es.acquireTokenRedirect),n=t=>{t.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(r.state),this.eventHandler.emitEvent(ca.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{const e=await zo(this.initializeAuthorizationCodeRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(r),i=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(o,r.authority,r.azureCloudOptions),s=new ba(i,this.browserStorage,e,this.logger,this.performanceClient),a=await i.getAuthCodeUrl({...r,nativeBroker:ka.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme)}),c=this.getRedirectStartPage(t.redirectStartPage);return this.logger.verbosePii(`Redirect start page: ${c}`),window.addEventListener("pageshow",n),await s.initiateAuthRequest(a,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:c,onRedirectNavigate:t.onRedirectNavigate})}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),window.removeEventListener("pageshow",n),this.browserStorage.cleanRequestByState(r.state),e}}async handleRedirectPromise(r){const o=this.initializeServerTelemetryManager(es.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,i]=this.getRedirectResponse(r||"");if(!n)return this.logger.info("handleRedirectPromise did not detect a response as a result of a redirect. Cleaning temporary cache."),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null;const s=this.browserStorage.getTemporaryCache(Fi,!0)||t.EMPTY_STRING,a=go.removeHashFromUrl(s);if(a===go.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling response"),s.indexOf("#")>-1&&cs(s);return await this.handleResponse(n,o)}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling response"),this.handleResponse(n,o);if(!hs()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(zi,i,!0);const e={apiId:es.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=us();this.browserStorage.setTemporaryCache(Fi,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.handleResponse(n,o)}return null}catch(t){throw t instanceof ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),t}}getRedirectResponse(t){this.logger.verbose("getRedirectResponseHash called");let r=t;r||(r=this.config.auth.OIDCOptions.serverResponseType===fe.QUERY?window.location.search:window.location.hash);let o=uo(r);if(o){try{!function(e,t,r){if(!e.state)throw Ei(Ln);const o=ia(t,e.state);if(!o)throw Ei(Hn);if(o.interactionType!==r)throw Ei(Bn)}(o,this.browserCrypto,e.InteractionType.Redirect)}catch(e){return e instanceof ct&&this.logger.error(`Interaction type validation failed due to ${e.errorCode}: ${e.errorMessage}`),[null,""]}return as(window),this.logger.verbose("Hash contains known properties, returning response hash"),[o,r]}const n=this.browserStorage.getTemporaryCache(zi,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(zi)),n&&(o=uo(n),o)?(this.logger.verbose("Hash does not contain known properties, returning cached hash"),[o,n]):[null,""]}async handleResponse(e,t){const r=e.state;if(!r)throw Ei(Ln);const o=this.browserStorage.getCachedRequest(r);if(this.logger.verbose("handleResponse called, retrieved cached request"),e.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Ei(Ci);const t=new Aa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,es.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,e.accountId,this.nativeStorage,o.correlationId),{userRequestState:n}=ln.parseRequestState(this.browserCrypto,r);return t.acquireToken({...o,state:n,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(r)}))}const n=this.browserStorage.getCachedAuthority(r);if(!n)throw Ei(ei);const i=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(t,n);Mo.removeThrottle(this.browserStorage,this.config.auth.clientId,o);const s=new ba(i,this.browserStorage,o,this.logger,this.performanceClient);return await s.handleCodeResponse(e,r)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),o=this.initializeServerTelemetryManager(es.logout);try{this.eventHandler.emitEvent(ca.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const n={apiId:es.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},i=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(o,t&&t.authority);if(i.authority.protocolMode===co.OIDC)try{i.authority.endSessionEndpoint}catch{if(r.account?.homeAccountId)return this.browserStorage.removeAccount(r.account?.homeAccountId),void this.eventHandler.emitEvent(ca.LOGOUT_SUCCESS,e.InteractionType.Redirect,r)}const s=i.getLogoutUri(r);if(this.eventHandler.emitEvent(ca.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 ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.eventHandler.emitEvent(ca.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ca.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent(ca.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return go.getAbsoluteUrl(t,ds())}}async function Ma(e,t,r,o,n){if(t.addQueueMeasurement(Bo.SilentHandlerInitiateAuthRequest,o),!e)throw r.info("Navigate url is empty"),Ei(On);return n?await zo(Oa,Bo.SilentHandlerLoadFrame,r,t,o)(e,n,t,o):Fo(qa,Bo.SilentHandlerLoadFrameSync,r,t,o)(e)}async function Na(e,t,r,o,n,i,s){return o.addQueueMeasurement(Bo.SilentHandlerMonitorIframeForHash,i),new Promise(((o,i)=>{t<Ts&&n.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${t}ms) than the default (6000ms). This may result in timeouts.`);const a=window.setTimeout((()=>{window.clearInterval(c),i(Ei($n))}),t),c=window.setInterval((()=>{let t="";const r=e.contentWindow;try{t=r?r.location.href:""}catch(e){}if(!t||"about:blank"===t)return;let n="";r&&(n=s===fe.QUERY?r.location.search:r.location.hash),window.clearTimeout(a),window.clearInterval(c),o(n)}),r)})).finally((()=>{Fo(Ua,Bo.RemoveHiddenIframe,n,o,i)(e)}))}function Oa(e,t,r,o){return r.addQueueMeasurement(Bo.SilentHandlerLoadFrame,o),new Promise(((r,o)=>{const n=La();window.setTimeout((()=>{n?(n.src=e,r(n)):o("Unable to load iframe")}),t)}))}function qa(e){const t=La();return t.src=e,t}function La(){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 Ua(e){document.body===e.parentNode&&document.body.removeChild(e)}class Ha extends ma{constructor(e,t,r,o,n,i,s,a,c,h,l){super(e,t,r,o,n,i,a,h,l),this.apiId=s,this.nativeStorage=c}async acquireToken(t){if(this.performanceClient.addQueueMeasurement(Bo.SilentIframeClientAcquireToken,t.correlationId),t.loginHint||t.sid||t.account&&t.account.username||this.logger.warning("No user hint provided. The authorization server may need more information to complete this request."),t.prompt&&t.prompt!==de.NONE&&t.prompt!==de.NO_SESSION)throw Ei(Jn);const r=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,t.correlationId)({...t,prompt:t.prompt||de.NONE},e.InteractionType.Silent);Cs(r.authority);const o=this.initializeServerTelemetryManager(this.apiId);try{const e=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,t.correlationId)(o,r.authority,r.azureCloudOptions);return await zo(this.silentTokenHelper.bind(this),Bo.SilentIframeClientTokenHelper,this.logger,this.performanceClient,t.correlationId)(e,r)}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),e}}logout(){return Promise.reject(Ei(Yn))}async silentTokenHelper(e,t){const r=t.correlationId;this.performanceClient.addQueueMeasurement(Bo.SilentIframeClientTokenHelper,r);const o=await zo(this.initializeAuthorizationCodeRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,r)(t),n=await zo(e.getAuthCodeUrl.bind(e),Bo.GetAuthCodeUrl,this.logger,this.performanceClient,r)({...t,nativeBroker:ka.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme)}),i=new Sa(e,this.browserStorage,o,this.logger,this.performanceClient),s=await zo(Ma,Bo.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r)(n,this.performanceClient,this.logger,r,this.config.system.navigateFrameWait),a=this.config.auth.OIDCOptions.serverResponseType,c=await zo(Na,Bo.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,r)(s,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,r,a),h=Fo(Ea,Bo.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(c,a,this.logger);if(h.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Ei(Ci);const e=new Aa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,h.accountId,this.browserStorage,r),{userRequestState:o}=ln.parseRequestState(this.browserCrypto,t.state);return zo(e.acquireToken.bind(e),Bo.NativeInteractionClientAcquireToken,this.logger,this.performanceClient,r)({...t,state:o,prompt:t.prompt||de.NONE})}return zo(i.handleCodeResponse.bind(i),Bo.HandleCodeResponse,this.logger,this.performanceClient,r)(h,t)}}class Ba extends ma{async acquireToken(e){this.performanceClient.addQueueMeasurement(Bo.SilentRefreshClientAcquireToken,e.correlationId);const t=await zo(this.initializeBaseRequest.bind(this),Bo.InitializeBaseRequest,this.logger,this.performanceClient,e.correlationId)(e,e.account),r={...e,...t},o=this.initializeServerTelemetryManager(es.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient(o,r.authority,r.azureCloudOptions);return zo(n.acquireTokenByRefreshToken.bind(n),Bo.RefreshTokenClientAcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(r).catch((e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),e}))}logout(){return Promise.reject(Ei(Yn))}async createRefreshTokenClient(e,t,r){const o=await zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new yn(o,this.performanceClient)}}class Da{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 Ei(hi);const o=dr(t.id_token,qs);let n,i,s;if(e.account)s=ho.createFromAccountInfo(e.account),n=new hn(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 Ei(hi);{const a=Go.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 Go(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 hn(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 Ei(hi);this.logger.trace("TokenCache - homeAccountId from response"),s=this.loadAccount(o,i,t.client_info),n=new hn(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=ho.generateHomeAccountId(r,t.authorityType,this.logger,this.cryptoObj,e)),!n)throw Ei(hi);const i=ho.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 Ei(hi)}loadIdToken(e,t,r,o){const n=mr(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 Ei(hi)}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 Ei(hi);if(!i.extendedExpiresOn)throw Ei(hi);const s=new to(e.scopes).printScopes(),a=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,h=fr(r,o,t.access_token,this.config.auth.clientId,n,s,a,c,qs);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(h),h;throw Ei(hi)}loadRefreshToken(e,t,r,o){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const n=yr(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 Ei(hi)}generateAuthenticationResult(e,r,o,n,i){let s,a=t.EMPTY_STRING,c=[],h=null;o?.accessToken&&(a=o.accessToken.secret,c=to.fromString(o.accessToken.target).asArray(),h=new Date(1e3*Number(o.accessToken.expiresOn)),s=new Date(1e3*Number(o.accessToken.extendedExpiresOn)));const l=r.oid||r.sub||t.EMPTY_STRING,d=r.tid||t.EMPTY_STRING;return{authority:i?i.canonicalAuthority:t.EMPTY_STRING,uniqueId:l,tenantId:d,scopes:c,account:n.getAccountInfo(),idToken:o.idToken?.secret||"",idTokenClaims:r||{},accessToken:a,fromCache:!0,expiresOn:h,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 xa extends fn{constructor(e){super(e),this.includeRedirectUri=!1}}class Ka extends ma{constructor(e,t,r,o,n,i,s,a,c,h){super(e,t,r,o,n,i,a,c,h),this.apiId=s}async acquireToken(t){if(!t.code)throw Ei(di);const r=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,t.correlationId)(t,e.InteractionType.Silent),o=this.initializeServerTelemetryManager(this.apiId);try{const e={...r,code:t.code},n=await zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,t.correlationId)(o,r.authority),i=new xa(n);this.logger.verbose("Auth code client created");const s=new Sa(i,this.browserStorage,e,this.logger,this.performanceClient);return zo(s.handleCodeResponseFromServer.bind(s),Bo.HandleCodeResponseFromServer,this.logger,this.performanceClient,t.correlationId)({code:t.code,msgraph_host:t.msGraphHost,cloud_graph_host_name:t.cloudGraphHostName,cloud_instance_host_name:t.cloudInstanceHostName},r,!1)}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),e}}logout(){return Promise.reject(Ei(Yn))}}class Fa{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 Ws(this.logger,this.performanceClient):ir,this.eventHandler=new ha(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new sa(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)}catch(e){throw Zr(Dr)}return{canonicalAuthority:e.authority?jo(e.authority):void 0,knownAuthorities:e.knownAuthorities,cloudDiscoveryMetadata:r}}(this.config.auth)):aa(this.config.auth.clientId,this.logger);const t={cacheLocation:Ui.MemoryStorage,temporaryCacheLocation:Ui.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new sa(this.config.auth.clientId,t,this.browserCrypto,this.logger),this.tokenCache=new Da(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 Fa(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(Bo.InitializeClientApplication);if(this.eventHandler.emitEvent(ca.INITIALIZE_START),e)try{this.nativeExtensionProvider=await ka.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 zo(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),Bo.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient)(this.performanceClient)),this.initialized=!0,this.eventHandler.emitEvent(ca.INITIALIZE_END),t.end({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),ys(this.initialized);const o=this.getAllAccounts();if(this.isBrowserEnvironment){const n=r||"";let i=this.redirectResponse.get(n);if(void 0===i){this.eventHandler.emitEvent(ca.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&&ka.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!r){this.logger.trace("handleRedirectPromise - acquiring token from native platform");a=new Aa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,es.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(Qi,!0)||t.EMPTY_STRING;a=this.createRedirectClient(e).handleRedirectPromise(r)}i=a.then((t=>{if(t){o.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(ca.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(ca.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent(ca.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw o.length>0?this.eventHandler.emitEvent(ca.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ca.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ca.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})),this.redirectResponse.set(n,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(ca.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent(ca.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){n=new Aa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,es.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,r).acquireTokenRedirect(t).catch((e=>{if(e instanceof Ca&&va(e)){this.nativeExtensionProvider=void 0;return this.createRedirectClient(r).acquireToken(t)}if(e instanceof sn){this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createRedirectClient(r).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}))}else{n=this.createRedirectClient(r).acquireToken(t)}return n.catch((t=>{throw o?this.eventHandler.emitEvent(ca.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ca.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),o=this.performanceClient.startMeasurement(Bo.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(ca.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ca.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative({...t,correlationId:r},es.acquireTokenPopup).then((e=>(this.getBrowserStorage().setInteractionInProgress(!1),o.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof Ca&&va(e)){this.nativeExtensionProvider=void 0;return this.createPopupClient(r).acquireToken(t)}if(e instanceof sn){this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createPopupClient(r).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}));else{i=this.createPopupClient(r).acquireToken(t)}return i.then((t=>(n.length<this.getAllAccounts().length?this.eventHandler.emitEvent(ca.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ca.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(ca.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent(ca.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(Bo.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(ca.SSO_SILENT_START,e.InteractionType.Silent,o),this.canUseNative(o))n=this.acquireTokenNative(o,es.ssoSilent).catch((e=>{if(e instanceof Ca&&va(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(ca.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(ca.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(ca.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const o=this.performanceClient.startMeasurement(Bo.AcquireTokenByCode,r);try{if(t.code&&t.nativeAccountId)throw Ei(gi);if(t.code){const n=t.code;let i=this.hybridAuthCodeResponses.get(n);return i?(this.logger.verbose("Existing acquireTokenByCode request found",r),o.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",r),i=this.acquireTokenByCodeAsync({...t,correlationId:r}).then((t=>(this.eventHandler.emitEvent(ca.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(ca.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,correlationId:r},es.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof Ca&&va(e)&&(this.nativeExtensionProvider=void 0),e}));throw Ei(mi)}throw Ei(ui)}catch(t){throw this.eventHandler.emitEvent(ca.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(Bo.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(Bo.AcquireTokenFromCache,t.correlationId),r){case ss.Default:case ss.AccessToken:case ss.AccessTokenAndRefreshToken:return zo(e.acquireToken.bind(e),Bo.SilentCacheClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(t);default:throw nr(Ft)}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(Bo.AcquireTokenByRefreshToken,e.correlationId),t){case ss.Default:case ss.AccessTokenAndRefreshToken:case ss.RefreshToken:case ss.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return zo(t.acquireToken.bind(t),Bo.SilentRefreshClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw nr(Ft)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(Bo.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return zo(t.acquireToken.bind(t),Bo.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=ho.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"),fs(this.isBrowserEnvironment),ps(t,this.config.system.allowRedirectInIframe),gs(),ms(),ys(this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===Ui.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw oa(Xs);t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),gs(),e&&this.getBrowserStorage().setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw Ei(Ci);return new Aa(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"),!ka.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 Ra(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new Pa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new Ha(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,es.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new Ia(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new Ba(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new Ka(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,es.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?xs():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||os})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||os})}async acquireTokenSilent(r){const o=this.getRequestCorrelationId(r),n=this.performanceClient.startMeasurement(Bo.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 Ei(Vn);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,shrOptions:r.shrOptions},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=zo(this.acquireTokenSilentAsync.bind(this),Bo.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(Bo.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent(ca.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(Bo.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),ka.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,es.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof Ca&&va(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 zo(n.initializeSilentRequest.bind(n),Bo.InitializeSilentRequest,this.logger,this.performanceClient,t.correlationId)(t,r),s=t.cacheLookupPolicy||ss.Default;o=zo(this.acquireTokenFromCache.bind(this),Bo.AcquireTokenFromCache,this.logger,this.performanceClient,i.correlationId)(n,i,s).catch((r=>{if(t.cacheLookupPolicy===ss.AccessToken)throw r;return gs(),this.eventHandler.emitEvent(ca.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),zo(this.acquireTokenByRefreshToken.bind(this),Bo.AcquireTokenByRefreshToken,this.logger,this.performanceClient,i.correlationId)(i,s).catch((e=>{if((!(e instanceof sn)&&(e.errorCode===Ri.INVALID_GRANT_ERROR||e.errorCode===Ft)||e.errorCode===Yo)&&(s===ss.Default||s===ss.Skip||s===ss.RefreshTokenAndNetwork))return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",t.correlationId),zo(this.acquireTokenBySilentIframe.bind(this),Bo.AcquireTokenBySilentIframe,this.logger,this.performanceClient,i.correlationId)(i);throw e}))}))}return o.then((t=>(this.eventHandler.emitEvent(ca.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(ca.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 za=Object.freeze({__proto__:null,StandardController:Fa});class $a{static async createPublicClientApplication(e){const t=await async function(e){const t=new Rs(e);await t.initialize();const r=await Promise.resolve().then((function(){return za}));return await r.StandardController.createController(t)}(e);return new $a(e,t)}constructor(e,t){if(t)this.controller=t;else{const t=new Rs(e);this.controller=new Fa(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 Ga{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 Ws(this.logger,this.performanceClient):ir,this.browserStorage=this.isBrowserEnvironment?new sa(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):aa(this.config.auth.clientId,this.logger),this.eventHandler=new ha(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 ys(this.initialized),fs(this.isBrowserEnvironment),{}}acquireTokenRedirect(e){return ys(this.initialized),fs(this.isBrowserEnvironment),Promise.resolve()}acquireTokenSilent(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}acquireTokenByCode(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}acquireTokenNative(e,t,r){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}acquireTokenByRefreshToken(e,t){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return ys(this.initialized),fs(this.isBrowserEnvironment),""}removePerformanceCallback(e){return ys(this.initialized),fs(this.isBrowserEnvironment),!0}enableAccountStorageEvents(){ys(this.initialized),fs(this.isBrowserEnvironment)}disableAccountStorageEvents(){ys(this.initialized),fs(this.isBrowserEnvironment)}handleRedirectPromise(e){return ys(this.initialized),Promise.resolve(null)}loginPopup(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}loginRedirect(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}logout(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}logoutRedirect(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}logoutPopup(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}ssoSilent(e){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}getTokenCache(){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}getLogger(){return this.logger}setLogger(e){ys(this.initialized),fs(this.isBrowserEnvironment)}setActiveAccount(e){ys(this.initialized),fs(this.isBrowserEnvironment)}getActiveAccount(){return ys(this.initialized),fs(this.isBrowserEnvironment),null}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){ys(this.initialized),fs(this.isBrowserEnvironment)}getConfiguration(){return this.config}isBrowserEnv(){return ys(this.initialized),fs(this.isBrowserEnvironment),!0}getBrowserCrypto(){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}getPerformanceClient(){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}getRedirectResponse(){return ys(this.initialized),fs(this.isBrowserEnvironment),{}}preflightBrowserEnvironmentCheck(e,t){ys(this.initialized),fs(this.isBrowserEnvironment)}async clearCache(e){ys(this.initialized),fs(this.isBrowserEnvironment)}async hydrateCache(e,t){ys(this.initialized),fs(this.isBrowserEnvironment)}}class ja extends ks{getModuleName(){return ja.MODULE_NAME}getId(){return ja.ID}async initialize(){return!0}}ja.MODULE_NAME="",ja.ID="UnknownOperatingContext";class Qa{static async createPublicClientApplication(e){const t=await bs(e);let r;return r=null!==t?new Qa(e,t):new Qa(e),r}constructor(e,t){if(this.configuration=e,t)this.controller=t;else{const t=new ja(e);this.controller=new Ga(t)}}async initialize(){if(this.controller instanceof Ga){const e=await bs(this.configuration);return null!==e&&(this.controller=e),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 Wa={initialize:()=>Promise.reject(oa(Js)),acquireTokenPopup:()=>Promise.reject(oa(Js)),acquireTokenRedirect:()=>Promise.reject(oa(Js)),acquireTokenSilent:()=>Promise.reject(oa(Js)),acquireTokenByCode:()=>Promise.reject(oa(Js)),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(oa(Js)),loginPopup:()=>Promise.reject(oa(Js)),loginRedirect:()=>Promise.reject(oa(Js)),logout:()=>Promise.reject(oa(Js)),logoutRedirect:()=>Promise.reject(oa(Js)),logoutPopup:()=>Promise.reject(oa(Js)),ssoSilent:()=>Promise.reject(oa(Js)),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw oa(Js)},getLogger:()=>{throw oa(Js)},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw oa(Js)},hydrateCache:()=>Promise.reject(oa(Js)),clearCache:()=>Promise.reject(oa(Js))};class Ya{constructor(e,t){this.correlationId=t,this.measureName=Ya.makeMeasureName(e,t),this.startMark=Ya.makeStartMark(e,t),this.endMark=Ya.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(Ya.supportsBrowserPerformance())try{t.forEach((t=>{const r=Ya.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(Ya.makeStartMark(r,e)),window.performance.clearMarks(Ya.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(Ya.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(Ya.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(Ya.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 Va;!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"}(Va||(Va={}));class Ja{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(gr.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?dr(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 ct("unknown_error","An unknown error occurred");switch(e.status){case Va.USER_CANCEL:return new or(Vt);case Va.NO_NETWORK:return new or(Yt);case Va.ACCOUNT_UNAVAILABLE:return new or(Ht);case Va.DISABLED:return new or(Zt);case Va.NESTED_APP_AUTH_UNAVAILABLE:return new or(e.code,e.description);case Va.TRANSIENT_ERROR:case Va.PERSISTENT_ERROR:return new Po(e.code,e.description);case Va.USER_INTERACTION_REQUIRED:return new sn(e.code,e.description);default:return new ct(e.code,e.description)}}}const Xa={code:"unsupported_method",desc:"The PKCE code challenge and verifier could not be generated."};class Za extends ct{constructor(e,t){super(e,t),Object.setPrototypeOf(this,Za.prototype),this.name="NestedAppAuthError"}static createUnsupportedError(){return new Za(Xa.code,Xa.desc)}}class ec{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 Ws(this.logger,this.performanceClient):ir,this.eventHandler=new ha(this.logger,this.browserCrypto),this.nestedAppAuthAdapter=new Ja(this.config.auth.clientId,this.config.auth.clientCapabilities,this.browserCrypto,this.logger)}getBrowserStorage(){throw Za.createUnsupportedError()}getEventHandler(){return this.eventHandler}static async createController(e){const t=new ec(e);return Promise.resolve(t)}initialize(){return Promise.resolve()}async acquireTokenInteractive(t){this.eventHandler.emitEvent(ca.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t);const r=this.performanceClient.startMeasurement(Bo.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(ca.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(ca.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(ca.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t);const r=this.performanceClient.startMeasurement(Bo.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(ca.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(ca.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 Za.createUnsupportedError()}async acquireTokenSilent(e){return this.acquireTokenSilentInternal(e)}acquireTokenByCode(e){throw Za.createUnsupportedError()}acquireTokenNative(e,t,r){throw Za.createUnsupportedError()}acquireTokenByRefreshToken(e,t){throw Za.createUnsupportedError()}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){throw Za.createUnsupportedError()}removePerformanceCallback(e){throw Za.createUnsupportedError()}enableAccountStorageEvents(){throw Za.createUnsupportedError()}disableAccountStorageEvents(){throw Za.createUnsupportedError()}getAccount(e){throw Za.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 Za.createUnsupportedError()}loginPopup(e){if(void 0!==e)return this.acquireTokenInteractive(e);throw Za.createUnsupportedError()}loginRedirect(e){throw Za.createUnsupportedError()}logout(e){throw Za.createUnsupportedError()}logoutRedirect(e){throw Za.createUnsupportedError()}logoutPopup(e){throw Za.createUnsupportedError()}ssoSilent(e){return this.acquireTokenSilentInternal(e)}getTokenCache(){throw Za.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 Za.createUnsupportedError()}getRedirectResponse(){throw Za.createUnsupportedError()}preflightBrowserEnvironmentCheck(e,t){throw Za.createUnsupportedError()}async clearCache(e){throw Za.createUnsupportedError()}async hydrateCache(e,t){throw Za.createUnsupportedError()}}var tc=Object.freeze({__proto__:null,NestedAppAuthController:ec});e.AccountEntity=ho,e.ApiId=es,e.AuthError=ct,e.AuthErrorCodes=it,e.AuthErrorMessage=at,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 Zr(Gr)}const t=this.headers[d];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw Zr(Gr)}throw Zr($r)}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=qe,e.AzureCloudInstance=lr,e.BrowserAuthError=Si,e.BrowserAuthErrorCodes=Ti,e.BrowserAuthErrorMessage=ki,e.BrowserCacheLocation=Ui,e.BrowserConfigurationAuthError=ra,e.BrowserConfigurationAuthErrorCodes=Zs,e.BrowserConfigurationAuthErrorMessage=ta,e.BrowserPerformanceClient=class extends Rn{constructor(e,r){super(e.auth.clientId,e.auth.authority||`${t.DEFAULT_AUTHORITY}`,new ar(e.system?.loggerOptions||{},_s,As),_s,As,e.telemetry?.application||{appName:"",appVersion:""},r)}startPerformanceMeasurement(e,t){return new Ya(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&&Ya.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=Ya,e.BrowserStorage=na,e.BrowserUtils=vs,e.CacheLookupPolicy=ss,e.ClientAuthError=or,e.ClientAuthErrorCodes=er,e.ClientAuthErrorMessage=rr,e.ClientConfigurationError=Xr,e.ClientConfigurationErrorCodes=Yr,e.ClientConfigurationErrorMessage=Jr,e.DEFAULT_IFRAME_TIMEOUT_MS=Ts,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case ca.LOGIN_START:return rs.Login;case ca.SSO_SILENT_START:return rs.SsoSilent;case ca.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return rs.AcquireToken;break;case ca.HANDLE_REDIRECT_START:return rs.HandleRedirect;case ca.LOGOUT_START:return rs.Logout;case ca.SSO_SILENT_SUCCESS:case ca.SSO_SILENT_FAILURE:if(r&&r!==rs.SsoSilent)break;return rs.None;case ca.LOGOUT_END:if(r&&r!==rs.Logout)break;return rs.None;case ca.HANDLE_REDIRECT_END:if(r&&r!==rs.HandleRedirect)break;return rs.None;case ca.LOGIN_SUCCESS:case ca.LOGIN_FAILURE:case ca.ACQUIRE_TOKEN_SUCCESS:case ca.ACQUIRE_TOKEN_FAILURE:case ca.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==rs.Login&&r!==rs.AcquireToken)break;return rs.None}}return null}},e.EventType=ca,e.InteractionRequiredAuthError=sn,e.InteractionRequiredAuthErrorCodes=en,e.InteractionRequiredAuthErrorMessage=nn,e.InteractionStatus=rs,e.JsonWebTokenTypes=rt,e.Logger=ar,e.MemoryStorage=zs,e.NavigationClient=ws,e.OIDC_DEFAULT_SCOPES=s,e.PerformanceEvents=Bo,e.PromptValue=de,e.ProtocolMode=co,e.PublicClientApplication=$a,e.PublicClientNext=Qa,e.ServerError=Po,e.ServerResponseType=fe,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new ar(r,_s,As),this.cryptoOps=new Ws(this.logger),this.popTokenGenerator=new un(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=eo,e.UrlString=go,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.stubbedPublicClientApplication=Wa,e.version=As}));
|
|
49
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class Wo{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:h,serverTelemetryManager:l,persistencePlugin:d,serializableCache:u}){const g={...To,...r};return{authOptions:(p=e,{clientCapabilities:[],azureCloudOptions:Eo,skipAuthorityMetadataCache:!1,...p}),systemOptions:{...Io,...t},loggerOptions:g,cacheOptions:{..._o,...o},storageInterface:n||new wo(e.clientId,ir,new ar(g)),networkInterface:i||Ao,cryptoInterface:s||ir,clientCredentials:a||So,libraryInfo:{...ko,...c},telemetry:{...Ro,...h},serverTelemetryManager:l||null,persistencePlugin:d||null,serializableCache:u||null};var p}(e),this.logger=new ar(this.config.loggerOptions,cr,hr),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.networkManager=new No(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 Oo:try{const t=oo(e.credential);r[l]=`Oid:${t.uid}@${t.utid}`}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case qo:r[l]=`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}async updateAuthority(e,t){this.performanceClient?.addQueueMeasurement(Bo.UpdateTokenEndpointAuthority,t);const r=`https://${e}/${this.authority.tenant}/`,o=await Qo.createDiscoveredInstance(r,this.networkClient,this.cacheManager,this.authority.options,this.logger,this.performanceClient,t);this.authority=o}createTokenQueryParameters(e){const t=new Uo;return e.tokenQueryParameters&&t.addExtraQueryParameters(e.tokenQueryParameters),t.createQueryString()}}
|
|
50
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const Yo="no_tokens_found",Vo="native_account_unavailable",Jo="refresh_token_expired",Xo="interaction_required",Zo="consent_required",en="login_required";var tn=Object.freeze({__proto__:null,consentRequired:Zo,interactionRequired:Xo,loginRequired:en,nativeAccountUnavailable:Vo,noTokensFound:Yo,refreshTokenExpired:Jo});
|
|
51
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const rn=[Xo,Zo,en],on=["message_only","additional_action","basic_action","user_password_expired","consent_required"],nn={[Yo]:"No refresh token found in the cache. Please sign-in.",[Jo]:"Refresh token has expired.",[Vo]:"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."},sn={noTokensFoundError:{code:Yo,desc:nn[Yo]},native_account_unavailable:{code:Vo,desc:nn[Vo]}};class an extends ct{constructor(e,r,o,n,i,s,a){super(e,r,o),Object.setPrototypeOf(this,an.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 cn(e,t,r){const o=!!e&&rn.indexOf(e)>-1,n=!!r&&on.indexOf(r)>-1,i=!!t&&rn.some((e=>t.indexOf(e)>-1));return o||i||n}function hn(e){return new an(e,nn[e])}
|
|
52
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class ln{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}}
|
|
53
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class dn{static setRequestState(e,r,o){const n=dn.generateLibraryState(e,o);return r?`${n}${t.RESOURCE_DELIM}${r}`:n}static generateLibraryState(e,t){if(!e)throw nr(Bt);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 nr(Bt);if(!r)throw nr(Ct);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 nr(Ct)}}}
|
|
54
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const un="sw";class gn{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e,t){this.performanceClient?.addQueueMeasurement(Bo.PopTokenGenerateCnf,e.correlationId);const r=await zo(this.generateKid.bind(this),Bo.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(Bo.PopTokenGenerateKid,e.correlationId);return{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:un}}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,shrOptions:c}=r,h=i?new go(i):void 0,l=h?.getUrlComponents();return await this.cryptoUtils.signJwt({at:e,ts:gr.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,c,r.correlationId)}}
|
|
55
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class pn{generateAppMetadataKey(){return pn.generateAppMetadataCacheKey(this.environment,this.clientId)}static generateAppMetadataCacheKey(e,t){return[ke,e,t].join(_e.CACHE_KEY_SEPARATOR).toLowerCase()}static createAppMetadataEntity(e,t,r){const o=new pn;return o.clientId=e,o.environment=t,r&&(o.familyId=r),o}static isAppMetadataEntity(e,t){return!!t&&(0===e.indexOf(ke)&&t.hasOwnProperty("clientId")&&t.hasOwnProperty("environment"))}}
|
|
56
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class mn{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}
|
|
57
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class fn{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,t){if(!e.state||!t)throw e.state?nr(wt,"Cached State"):nr(wt,"Server State");let r,o;try{r=decodeURIComponent(e.state)}catch(t){throw nr(Ct,e.state)}try{o=decodeURIComponent(t)}catch(t){throw nr(Ct,e.state)}if(r!==o)throw nr(vt);if(e.error||e.error_description||e.suberror){if(cn(e.error,e.error_description,e.suberror))throw new an(e.error||"",e.error_description,e.suberror,e.timestamp||"",e.trace_id||"",e.correlation_id||"",e.claims||"");throw new Po(e.error||"",e.error_description,e.suberror)}}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 Po(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(cn(e.error,e.error_description,e.suberror))throw new an(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,h,l){let d,u;if(this.performanceClient?.addQueueMeasurement(Bo.HandleServerTokenResponse,e.correlation_id),e.id_token){if(d=dr(e.id_token||t.EMPTY_STRING,this.cryptoObj.base64Decode),i&&i.nonce&&d.nonce!==i.nonce)throw nr(It);if(n.maxAge||0===n.maxAge){const e=d.auth_time;if(!e)throw nr(Tt);ur(e,n.maxAge)}}this.homeAccountIdentifier=ho.generateHomeAccountId(e.client_info||t.EMPTY_STRING,r.authorityType,this.logger,this.cryptoObj,d),i&&i.state&&(u=dn.parseRequestState(this.cryptoObj,i.state)),e.key_id=e.key_id||n.sshKid||void 0;const g=this.generateCacheRecord(e,r,o,n,d,s,i,l);let p;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),p=new mn(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(p)),a&&!c&&g.account){const e=g.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"),fn.generateAuthenticationResult(this.cryptoObj,r,g,!1,n,d,u,void 0,h)}await this.cacheStorage.saveCacheRecord(g,n.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&p&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(p))}return fn.generateAuthenticationResult(this.cryptoObj,r,g,!1,n,d,u,e,h)}generateCacheRecord(e,t,r,o,n,i,s,a){const c=t.getPreferredCache();if(!c)throw nr(Ut);let h,l;e.id_token&&n&&(h=mr(this.homeAccountIdentifier,c,e.id_token,this.clientId,n.tid||""),l=ho.createAccount({homeAccountId:this.homeAccountIdentifier,idTokenClaims:n,clientInfo:e.client_info,cloudGraphHostName:s?.cloud_graph_host_name,msGraphHost:s?.msgraph_host},t));let d=null;if(e.access_token){const s=e.scope?to.fromString(e.scope):new to(o.scopes||[]),a=("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,l=("string"==typeof e.refresh_in?parseInt(e.refresh_in,10):e.refresh_in)||void 0,u=r+a,g=u+h,p=l&&l>0?r+l:void 0;d=fr(this.homeAccountIdentifier,c,e.access_token,this.clientId,n?.tid||t.tenant,s.printScopes(),u,g,this.cryptoObj.base64Decode,p,e.token_type,i,e.key_id,o.claims,o.requestedClaimsHash)}let u=null;e.refresh_token&&(u=yr(this.homeAccountIdentifier,c,e.refresh_token,this.clientId,e.foci,i,a));let g=null;return e.foci&&(g=pn.createAppMetadataEntity(this.clientId,c,e.foci)),new ln(l,h,d,u,g)}static async generateAuthenticationResult(e,r,o,n,i,s,a,c,h){let l,d,u=t.EMPTY_STRING,g=[],p=null,m=t.EMPTY_STRING;if(o.accessToken){if(o.accessToken.tokenType===qe.POP){const t=new gn(e),{secret:r,keyId:n}=o.accessToken;if(!n)throw nr(Wt);u=await t.signPopToken(r,n,i)}else u=o.accessToken.secret;g=to.fromString(o.accessToken.target).asArray(),p=new Date(1e3*Number(o.accessToken.expiresOn)),l=new Date(1e3*Number(o.accessToken.extendedExpiresOn)),o.accessToken.refreshOn&&(d=new Date(1e3*Number(o.accessToken.refreshOn)))}o.appMetadata&&(m=o.appMetadata.familyId===Se?Se:"");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:l,refreshOn:d,correlationId:i.correlationId,requestId:h||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}}}
|
|
58
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class yn extends Wo{constructor(e,t){super(e,t),this.includeRedirectUri=!0,this.oidcDefaultScopes=this.config.authOptions.authority.options.OIDCOptions?.defaultScopes}async getAuthCodeUrl(e){this.performanceClient?.addQueueMeasurement(Bo.GetAuthCodeUrl,e.correlationId);const t=await zo(this.createAuthCodeUrlQueryString.bind(this),Bo.AuthClientCreateQueryString,this.logger,this.performanceClient,e.correlationId)(e);return go.appendQueryString(this.authority.authorizationEndpoint,t)}async acquireToken(e,t){if(this.performanceClient?.addQueueMeasurement(Bo.AuthClientAcquireToken,e.correlationId),!e.code)throw nr(Et);const r=gr.nowSeconds(),o=await zo(this.executeTokenRequest.bind(this),Bo.AuthClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(this.authority,e),n=o.headers?.[g],i=new fn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return i.validateTokenResponse(o.body),zo(i.handleServerTokenResponse.bind(i),Bo.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(o.body,this.authority,r,e,t,void 0,void 0,void 0,n,(gr.nowSeconds()+86400).toString())}handleFragmentResponse(e,t){if(new fn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,null,null).validateServerAuthorizationCodeResponse(e,t),!e.code)throw nr(Gt);return e}getLogoutUri(e){if(!e)throw Zr(Ur);const t=this.createLogoutUrlQueryString(e);return go.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(Bo.AuthClientExecuteTokenRequest,t.correlationId);const r=this.createTokenQueryParameters(t),o=go.appendQueryString(e.tokenEndpoint,r),n=await zo(this.createTokenRequestBody.bind(this),Bo.AuthClientCreateTokenRequestBody,this.logger,this.performanceClient,t.correlationId)(t);let i;if(t.clientInfo)try{const e=ro(t.clientInfo,this.cryptoUtils);i={credential:`${e.uid}${_e.CLIENT_INFO_SEPARATOR}${e.utid}`,type:Oo}}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 zo(this.executePostToTokenEndpoint.bind(this),Bo.AuthorizationCodeClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,t.correlationId)(o,n,s,a,t.correlationId,Bo.AuthorizationCodeClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(Bo.AuthClientCreateTokenRequestBody,e.correlationId);const t=new Uo;if(t.addClientId(e.tokenBodyParameters?.[k]||this.config.authOptions.clientId),this.includeRedirectUri?t.addRedirectUri(e.redirectUri):Lo.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&&!bo(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===qe.POP){const r=new gn(this.cryptoUtils,this.performanceClient),o=await zo(r.generateCnf.bind(r),Bo.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===qe.SSH){if(!e.sshJwk)throw Zr(Fr);t.addSshJwk(e.sshJwk)}const r=e.correlationId||this.config.cryptoInterface.createNewGuid();let o;if(t.addCorrelationId(r),(!eo.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=ro(e.clientInfo,this.cryptoUtils);o={credential:`${t.uid}${_e.CLIENT_INFO_SEPARATOR}${t.utid}`,type:Oo}}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 Oo:try{const e=oo(o.credential);t.addCcsOid(e)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case qo: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(Bo.AuthClientCreateQueryString,e.correlationId);const t=new Uo;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),bo(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=oo(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=oo(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=oo(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===qe.POP)){const r=new gn(this.cryptoUtils),o=await zo(r.generateCnf.bind(r),Bo.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(o.reqCnfHash)}return t.createQueryString()}createLogoutUrlQueryString(e){const t=new Uo;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}}
|
|
59
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class Cn extends Wo{constructor(e,t){super(e,t)}async acquireToken(e){this.performanceClient?.addQueueMeasurement(Bo.RefreshTokenClientAcquireToken,e.correlationId);const t=gr.nowSeconds(),r=await zo(this.executeTokenRequest.bind(this),Bo.RefreshTokenClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(e,this.authority),o=r.headers?.[g],n=new fn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return n.validateTokenResponse(r.body),zo(n.handleServerTokenResponse.bind(n),Bo.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(r.body,this.authority,t,e,void 0,void 0,!0,e.forceCache,o,e.expiresOn)}async acquireTokenByRefreshToken(e){if(!e)throw Zr(Lr);if(this.performanceClient?.addQueueMeasurement(Bo.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw nr(qt);if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return zo(this.acquireTokenWithCachedRefreshToken.bind(this),Bo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!0)}catch(t){const r=t instanceof an&&t.errorCode===Yo,o=t instanceof Po&&t.errorCode===De&&t.subError===xe;if(r||o)return zo(this.acquireTokenWithCachedRefreshToken.bind(this),Bo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1);throw t}return zo(this.acquireTokenWithCachedRefreshToken.bind(this),Bo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){this.performanceClient?.addQueueMeasurement(Bo.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const r=Fo(this.cacheManager.getRefreshToken.bind(this.cacheManager),Bo.CacheManagerGetRefreshToken,this.logger,this.performanceClient,e.correlationId)(e.account,t,void 0,this.performanceClient,e.correlationId);if(!r)throw hn(Yo);if(e.enableRTExpiryCheck&&r.expiresOn&&Number(r.expiresOn)<gr.nowSeconds()+300)throw hn(Jo);const o={...e,refreshToken:r.secret,authenticationScheme:e.authenticationScheme||qe.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:Oo},expiresOn:r.expiresOn};return zo(this.acquireToken.bind(this),Bo.RefreshTokenClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(o)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(Bo.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.createTokenQueryParameters(e),o=go.appendQueryString(t.tokenEndpoint,r),n=await zo(this.createTokenRequestBody.bind(this),Bo.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 zo(this.executePostToTokenEndpoint.bind(this),Bo.RefreshTokenClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,e.correlationId)(o,n,i,s,e.correlationId,Bo.RefreshTokenClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(Bo.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const t=e.correlationId,r=new Uo;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&&!bo(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===qe.POP){const t=new gn(this.cryptoUtils,this.performanceClient),o=await zo(t.generateCnf.bind(t),Bo.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);r.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===qe.SSH){if(!e.sshJwk)throw Zr(Fr);r.addSshJwk(e.sshJwk)}if((!eo.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 Oo:try{const t=oo(e.ccsCredential.credential);r.addCcsOid(t)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case qo:r.addCcsUpn(e.ccsCredential.credential)}return e.tokenBodyParameters&&r.addExtraQueryParameters(e.tokenBodyParameters),r.createQueryString()}}
|
|
60
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class vn extends Wo{constructor(e,t){super(e,t)}async acquireToken(e){try{const[t,r]=await this.acquireCachedToken(e);if(r===tt){this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.");new Cn(this.config,this.performanceClient).acquireTokenByRefreshToken(e).catch((()=>{}))}return t}catch(t){if(t instanceof or&&t.errorCode===Ft){return new Cn(this.config,this.performanceClient).acquireTokenByRefreshToken(e)}throw t}}async acquireCachedToken(e){this.performanceClient?.addQueueMeasurement(Bo.SilentFlowClientAcquireCachedToken,e.correlationId);let t=Je;if(e.forceRefresh||!this.config.cacheOptions.claimsBasedCachingEnabled&&!eo.isEmptyObj(e.claims))throw this.setCacheOutcome(Xe,e.correlationId),nr(Ft);if(!e.account)throw nr(qt);const r=e.authority||this.authority.getPreferredCache(),o=this.cacheManager.readCacheRecord(e.account,e,r,this.performanceClient,e.correlationId);if(!o.accessToken)throw this.setCacheOutcome(Ze,e.correlationId),nr(Ft);if(gr.wasClockTurnedBack(o.accessToken.cachedAt)||gr.isTokenExpired(o.accessToken.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.setCacheOutcome(et,e.correlationId),nr(Ft);return o.accessToken.refreshOn&&gr.isTokenExpired(o.accessToken.refreshOn,0)&&(t=tt),this.setCacheOutcome(t,e.correlationId),this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),[await zo(this.generateResultFromCacheRecord.bind(this),Bo.SilentFlowClientGenerateResultFromCacheRecord,this.logger,this.performanceClient,e.correlationId)(o,e),t]}setCacheOutcome(e,t){this.serverTelemetryManager?.setCacheOutcome(e),this.performanceClient?.addFields({cacheOutcome:e},t),e!==Je&&this.logger.info(`Token refresh is required due to cache outcome: ${e}`)}async generateResultFromCacheRecord(e,t){let r;if(this.performanceClient?.addQueueMeasurement(Bo.SilentFlowClientGenerateResultFromCacheRecord,t.correlationId),e.idToken&&(r=dr(e.idToken.secret,this.config.cryptoInterface.base64Decode)),t.maxAge||0===t.maxAge){const e=r?.auth_time;if(!e)throw nr(Tt);ur(e,t.maxAge)}return await fn.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}
|
|
61
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class wn{static isThrottlingEntity(e,t){let r=!1;e&&(r=0===e.indexOf(He));let o=!0;return t&&(o=t.hasOwnProperty("throttleTime")),r&&o}}
|
|
62
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */const In={sendGetRequestAsync:()=>Promise.reject(nr(Xt)),sendPostRequestAsync:()=>Promise.reject(nr(Xt))},Tn="missing_kid_error",_n="missing_alg_error",An={[Tn]:"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.",[_n]:"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."};
|
|
63
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class kn extends ct{constructor(e,t){super(e,t),this.name="JoseHeaderError",Object.setPrototypeOf(this,kn.prototype)}}function Sn(e){return new kn(e,An[e])}
|
|
64
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class En{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw Sn(Tn);if(!e.alg)throw Sn(_n);const t=new En({typ:e.typ||rt.Pop,kid:e.kid,alg:e.alg});return JSON.stringify(t)}}
|
|
65
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
66
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
67
|
+
class Rn{constructor(e,r){this.cacheOutcome=Je,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=Oe.CACHE_KEY+_e.CACHE_KEY_SEPARATOR+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${Oe.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer].join(Oe.VALUE_SEPARATOR),r=[e,this.getRegionDiscoveryFields()].join(Oe.VALUE_SEPARATOR);return[Oe.SCHEMA_VERSION,r,t].join(Oe.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),t=Rn.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(Oe.VALUE_SEPARATOR),o=e.errors.slice(0,t).join(Oe.VALUE_SEPARATOR),n=e.errors.length,i=[n,t<n?Oe.OVERFLOW_TRUE:Oe.OVERFLOW_FALSE].join(Oe.VALUE_SEPARATOR);return[Oe.SCHEMA_VERSION,e.cacheHits,r,o,i].join(Oe.CATEGORY_SEPARATOR)}cacheFailedRequest(e){const t=this.getLastRequests();t.errors.length>=Oe.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 ct?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(Oe.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(){return this.cacheManager.getServerTelemetry(this.telemetryCacheKey)||{failedRequests:[],errors:[],cacheHits:0}}clearTelemetryCache(){const e=this.getLastRequests(),t=Rn.maxErrorsToSend(e);if(t===e.errors.length)this.cacheManager.removeItem(this.telemetryCacheKey);else{const r={failedRequests:e.failedRequests.slice(2*t),errors:e.errors.slice(t),cacheHits:0};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<Oe.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}}
|
|
68
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class bn{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 Ko)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:Do,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:xo,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]))}))}}
|
|
69
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */class Pn{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class Mn{generateId(){return"callback-id"}startMeasurement(e,t){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:Do,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new Pn}}startPerformanceMeasurement(){return new Pn}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}const Nn="pkce_not_created",On="crypto_nonexistent",qn="empty_navigate_uri",Ln="hash_empty_error",Un="no_state_in_hash",Hn="hash_does_not_contain_known_properties",Bn="unable_to_parse_state",Dn="state_interaction_type_mismatch",xn="interaction_in_progress",Kn="popup_window_error",Fn="empty_window_error",zn="user_cancelled",$n="monitor_popup_timeout",Gn="monitor_window_timeout",jn="redirect_in_iframe",Qn="block_iframe_reload",Wn="block_nested_popups",Yn="iframe_closed_prematurely",Vn="silent_logout_unsupported",Jn="no_account_error",Xn="silent_prompt_value_error",Zn="no_token_request_cache_error",ei="unable_to_parse_token_request_cache_error",ti="no_cached_authority_error",ri="auth_request_not_set_error",oi="invalid_cache_type",ni="non_browser_environment",ii="database_not_open",si="no_network_connectivity",ai="post_request_failed",ci="get_request_failed",hi="failed_to_parse_response",li="unable_to_load_token",di="crypto_key_not_found",ui="auth_code_required",gi="auth_code_or_nativeAccountId_required",pi="spa_code_and_nativeAccountId_present",mi="database_unavailable",fi="unable_to_acquire_token_from_native_platform",yi="native_handshake_timeout",Ci="native_extension_not_installed",vi="native_connection_not_established",wi="uninitialized_public_client_application",Ii="native_prompt_not_supported",Ti="invalid_base64_string";var _i=Object.freeze({__proto__:null,authCodeOrNativeAccountIdRequired:gi,authCodeRequired:ui,authRequestNotSetError:ri,blockIframeReload:Qn,blockNestedPopups:Wn,cryptoKeyNotFound:di,cryptoNonExistent:On,databaseNotOpen:ii,databaseUnavailable:mi,emptyNavigateUri:qn,emptyWindowError:Fn,failedToParseResponse:hi,getRequestFailed:ci,hashDoesNotContainKnownProperties:Hn,hashEmptyError:Ln,iframeClosedPrematurely:Yn,interactionInProgress:xn,invalidBase64String:Ti,invalidCacheType:oi,monitorPopupTimeout:$n,monitorWindowTimeout:Gn,nativeConnectionNotEstablished:vi,nativeExtensionNotInstalled:Ci,nativeHandshakeTimeout:yi,nativePromptNotSupported:Ii,noAccountError:Jn,noCachedAuthorityError:ti,noNetworkConnectivity:si,noStateInHash:Un,noTokenRequestCacheError:Zn,nonBrowserEnvironment:ni,pkceNotCreated:Nn,popupWindowError:Kn,postRequestFailed:ai,redirectInIframe:jn,silentLogoutUnsupported:Vn,silentPromptValueError:Xn,spaCodeAndNativeAccountIdPresent:pi,stateInteractionTypeMismatch:Dn,unableToAcquireTokenFromNativePlatform:fi,unableToLoadToken:li,unableToParseState:Bn,unableToParseTokenRequestCacheError:ei,uninitializedPublicClientApplication:wi,userCancelled:zn});const Ai="For more visit: aka.ms/msaljs/browser-errors",ki={[Nn]:"The PKCE code challenge and verifier could not be generated.",[On]:"The crypto object or function is not available.",[qn]:"Navigation URI is empty. Please check stack trace for more info.",[Ln]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${Ai}`,[Un]:"Hash does not contain state. Please verify that the request originated from msal.",[Hn]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${Ai}`,[Bn]:"Unable to parse state. Please verify that the request originated from msal.",[Dn]:"Hash contains state but the interaction type does not match the caller.",[xn]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${Ai}`,[Kn]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[Fn]:"window.open returned null or undefined window object.",[zn]:"User cancelled the flow.",[$n]:`Token acquisition in popup failed due to timeout. ${Ai}`,[Gn]:`Token acquisition in iframe failed due to timeout. ${Ai}`,[jn]:"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.",[Qn]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${Ai}`,[Wn]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[Yn]:"The iframe being monitored was closed prematurely.",[Vn]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[Jn]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[Xn]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[Zn]:"No token request found in cache.",[ei]:"The cached token request could not be parsed.",[ti]:"No cached authority found.",[ri]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[oi]:"Invalid cache type",[ni]:"Login and token requests are not supported in non-browser environments.",[ii]:"Database is not open!",[si]:"No network connectivity. Check your internet connection.",[ai]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[ci]:"Network request failed. Please check the network trace to determine root cause.",[hi]:"Failed to parse network response. Check network trace.",[li]:"Error loading token to cache.",[di]:"Cryptographic Key or Keypair not found in browser storage.",[ui]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[gi]:"An authorization code or nativeAccountId must be provided to this flow.",[pi]:"Request cannot contain both spa code and native account id.",[mi]:"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.",[fi]:`Unable to acquire token from native platform. ${Ai}`,[yi]:"Timed out while attempting to establish connection to browser extension",[Ci]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[vi]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${Ai}`,[wi]:`You must call and await the initialize function before attempting to call any other MSAL API. ${Ai}`,[Ii]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[Ti]:"Invalid base64 encoded string."},Si={pkceNotGenerated:{code:Nn,desc:ki[Nn]},cryptoDoesNotExist:{code:On,desc:ki[On]},emptyNavigateUriError:{code:qn,desc:ki[qn]},hashEmptyError:{code:Ln,desc:ki[Ln]},hashDoesNotContainStateError:{code:Un,desc:ki[Un]},hashDoesNotContainKnownPropertiesError:{code:Hn,desc:ki[Hn]},unableToParseStateError:{code:Bn,desc:ki[Bn]},stateInteractionTypeMismatchError:{code:Dn,desc:ki[Dn]},interactionInProgress:{code:xn,desc:ki[xn]},popupWindowError:{code:Kn,desc:ki[Kn]},emptyWindowError:{code:Fn,desc:ki[Fn]},userCancelledError:{code:zn,desc:ki[zn]},monitorPopupTimeoutError:{code:$n,desc:ki[$n]},monitorIframeTimeoutError:{code:Gn,desc:ki[Gn]},redirectInIframeError:{code:jn,desc:ki[jn]},blockTokenRequestsInHiddenIframeError:{code:Qn,desc:ki[Qn]},blockAcquireTokenInPopupsError:{code:Wn,desc:ki[Wn]},iframeClosedPrematurelyError:{code:Yn,desc:ki[Yn]},silentLogoutUnsupportedError:{code:Vn,desc:ki[Vn]},noAccountError:{code:Jn,desc:ki[Jn]},silentPromptValueError:{code:Xn,desc:ki[Xn]},noTokenRequestCacheError:{code:Zn,desc:ki[Zn]},unableToParseTokenRequestCacheError:{code:ei,desc:ki[ei]},noCachedAuthorityError:{code:ti,desc:ki[ti]},authRequestNotSet:{code:ri,desc:ki[ri]},invalidCacheType:{code:oi,desc:ki[oi]},notInBrowserEnvironment:{code:ni,desc:ki[ni]},databaseNotOpen:{code:ii,desc:ki[ii]},noNetworkConnectivity:{code:si,desc:ki[si]},postRequestFailed:{code:ai,desc:ki[ai]},getRequestFailed:{code:ci,desc:ki[ci]},failedToParseNetworkResponse:{code:hi,desc:ki[hi]},unableToLoadTokenError:{code:li,desc:ki[li]},signingKeyNotFoundInStorage:{code:di,desc:ki[di]},authCodeRequired:{code:ui,desc:ki[ui]},authCodeOrNativeAccountRequired:{code:gi,desc:ki[gi]},spaCodeAndNativeAccountPresent:{code:pi,desc:ki[pi]},databaseUnavailable:{code:mi,desc:ki[mi]},unableToAcquireTokenFromNativePlatform:{code:fi,desc:ki[fi]},nativeHandshakeTimeout:{code:yi,desc:ki[yi]},nativeExtensionNotInstalled:{code:Ci,desc:ki[Ci]},nativeConnectionNotEstablished:{code:vi,desc:ki[vi]},uninitializedPublicClientApplication:{code:wi,desc:ki[wi]},nativePromptNotSupported:{code:Ii,desc:ki[Ii]},invalidBase64StringError:{code:Ti,desc:ki[Ti]}};class Ei extends ct{constructor(e){super(e,ki[e]),Object.setPrototypeOf(this,Ei.prototype),this.name="BrowserAuthError"}}function Ri(e){return new Ei(e)}const bi={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"},Pi="53ee284d-920a-4b59-9d30-a60315b26836",Mi="ppnbnpeolgkicgegkbkbjmhlideopiji",Ni="MATS",Oi="Handshake",qi="HandshakeResponse",Li="GetToken",Ui="Response",Hi={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},Bi="GET",Di="POST",xi="authority",Ki="request.state",Fi="nonce.id_token",zi="request.origin",$i="urlHash",Gi="request.params",ji="interaction.status",Qi="ccs.credential",Wi="request.correlationId",Yi="request.native",Vi="request.redirect.context",Ji="msal.account.keys",Xi="msal.token.keys",Zi="wrapper.sku",es="wrapper.version",ts={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var rs;e.InteractionType=void 0,(rs=e.InteractionType||(e.InteractionType={})).Redirect="redirect",rs.Popup="popup",rs.Silent="silent",rs.None="none";const os={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},ns={scopes:s},is="msal.db",ss=`${is}.keys`,as={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5};function cs(e){e.location.hash="","function"==typeof e.history.replaceState&&e.history.replaceState(null,"",`${e.location.origin}${e.location.pathname}${e.location.search}`)}function hs(e){const t=e.split("#");t.shift(),window.location.hash=t.length>0?t.join("#"):""}function ls(){return window.parent!==window}function ds(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${bi.POPUP_NAME_PREFIX}.`)}function us(){return window.location.href.split("?")[0].split("#")[0]}function gs(){const e=new go(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}function ps(){if(go.hashContainsKnownProperties(window.location.hash)&&ls())throw Ri(Qn)}function ms(t,r){const o=ls();if(t===e.InteractionType.Redirect&&o&&!r)throw Ri(jn)}function fs(){if(ds())throw Ri(Wn)}function ys(e){if(!e)throw Ri(ni)}function Cs(e){if(!e)throw Ri(wi)}function vs(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 ws=Object.freeze({__proto__:null,blockAPICallsBeforeInitialize:Cs,blockAcquireTokenInPopups:fs,blockNonBrowserEnvironment:ys,blockRedirectInIframe:ms,blockReloadInHiddenIframes:ps,clearHash:cs,getCurrentUri:us,getHomepage:gs,isInIframe:ls,isInPopup:ds,preconnect:vs,replaceHash:hs});class Is{navigateInternal(e,t){return Is.defaultNavigateWindow(e,t)}navigateExternal(e,t){return Is.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 Ts{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:Bi,headers:this.getFetchHeaders(t)})}catch(e){throw window.navigator.onLine?Ri(ci):Ri(si)}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(e){throw Ri(hi)}}async sendPostRequestAsync(e,r){const o=r&&r.body||t.EMPTY_STRING;let n;try{n=await fetch(e,{method:Di,headers:this.getFetchHeaders(r),body:o})}catch(e){throw window.navigator.onLine?Ri(ai):Ri(si)}try{return{headers:this.getHeaderDict(n.headers),body:await n.json(),status:n.status}}catch(e){throw Ri(hi)}}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 _s=6e3;const As="@azure/msal-browser",ks="3.5.1-beta.1";class Ss{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:co.AAD,OIDCOptions:{serverResponseType:fe.FRAGMENT,defaultScopes:[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:lr.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1},c={cacheLocation:Hi.SessionStorage,temporaryCacheLocation:Hi.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!o||o.cacheLocation!==Hi.LocalStorage),claimsBasedCachingEnabled:!1},h={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},l={...{...Io,loggerOptions:h,networkClient:s?new Ts:In,navigationClient:new Is,loadFrameTimeout:0,windowHashTimeout:n?.loadFrameTimeout||6e4,iframeHashTimeout:n?.loadFrameTimeout||_s,navigateFrameWait:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:n?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:bi.DEFAULT_POLL_INTERVAL_MS},...n,loggerOptions:n?.loggerOptions||h},d={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING},client:new Mn};r?.protocolMode!==co.OIDC&&r?.OIDCOptions&&new ar(l.loggerOptions).warning(JSON.stringify(Zr(jr)));if(r?.protocolMode&&r.protocolMode!==co.AAD&&l?.allowNativeBroker)throw Zr(Qr);return{auth:{...a,...r,OIDCOptions:{...a.OIDCOptions,...r?.OIDCOptions}},cache:{...c,...o},system:l,telemetry:{...d,...i}}}(r,this.browserEnvironment),this.logger=new ar(this.config.system.loggerOptions,As,ks),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class Es{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{Es.crypto=window.crypto,window.nestedAppAuthBridge.addEventListener("message",(e=>{const t=JSON.parse(e),r=Es.bridgeRequests.find((e=>e.requestId===t.requestId));void 0!==r&&(Es.bridgeRequests.splice(Es.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:Es.getRandomId()},o={requestId:r.requestId,method:r.method,resolve:e,reject:t};Es.bridgeRequests.push(o),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))}))}catch(e){throw window.console.log(e),e}}static getRandomId(){return Es.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)}getHostCapabilities(){return this.capabilities??null}sendRequest(e,t){const r={messageType:"NestedAppAuthRequest",method:e,requestId:Es.getRandomId(),body:t},o=new Promise(((e,t)=>{const o={requestId:r.requestId,method:r.method,resolve:e,reject:t};Es.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 Es.initializeNestedAppAuthBridge();return new Es(e.sdkName,e.sdkVersion,e.capabilities)}}Es.bridgeRequests=[];class Rs extends Ss{constructor(){super(...arguments),this.bridgeProxy=void 0,this.activeAccount=void 0}getModuleName(){return Rs.MODULE_NAME}getId(){return Rs.ID}getBridgeProxy(){return this.bridgeProxy}getActiveAccount(){return this.activeAccount}setActiveAccount(e){this.activeAccount=e}async initialize(){try{if("undefined"!=typeof window){const e=await Es.create();try{e.getHostCapabilities()?.queryAccount&&(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}}}Rs.MODULE_NAME="",Rs.ID="TeamsAppOperatingContext";class bs extends Ss{getModuleName(){return bs.MODULE_NAME}getId(){return bs.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}async function Ps(e){const t=new bs(e),r=new Rs(e),o=[t.initialize(),r.initialize()];if(await Promise.all(o),r.isAvailable()&&r.getConfig().auth.supportsNestedAppAuth){const e=await Promise.resolve().then((function(){return rc}));return await e.NestedAppAuthController.createController(r)}if(t.isAvailable()){const e=await Promise.resolve().then((function(){return $a}));return await e.StandardController.createController(t)}return null}function Ms(e){return encodeURIComponent(Os(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function Ns(e){return qs(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Os(e){return qs((new TextEncoder).encode(e))}function qs(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}function Ls(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 Ri(Ti)}const r=atob(t);return Uint8Array.from(r,(e=>e.codePointAt(0)||0))}(e))}bs.MODULE_NAME="",bs.ID="StandardOperatingContext";const Us="SHA-256",Hs=new Uint8Array([1,0,1]),Bs={name:"RSASSA-PKCS1-v1_5",hash:Us,modulusLength:2048,publicExponent:Hs};async function Ds(e,t,r){t?.addQueueMeasurement(Bo.Sha256Digest,r);const o=(new TextEncoder).encode(e);return window.crypto.subtle.digest(Us,o)}function xs(e){return window.crypto.getRandomValues(e)}function Ks(){return window.crypto.randomUUID()}async function Fs(e){return window.crypto.subtle.exportKey("jwk",e)}class zs{constructor(){this.dbName=is,this.version=1,this.tableName=ss,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(Ri(mi))))}))}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(Ri(ii));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(Ri(ii));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(Ri(ii));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(Ri(ii));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(Ri(ii));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(is);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class $s{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 Gs{constructor(e,t){this.inMemoryCache=new $s,this.indexedDBCache=new zs,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof Ei&&e.errorCode===mi))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 js="asymmetricKeys",Qs="symmetricKeys";class Ws{constructor(e){this.logger=e,this.asymmetricKeys=new Gs(this.logger,js),this.symmetricKeys=new Gs(this.logger,Qs)}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 Ys{constructor(e,t){this.logger=e,function(e){if(!("crypto"in window))throw e.error("BrowserCrypto: crypto interface is unavailable"),Ri(On);e.verbose("BrowserCrypto: modern crypto interface available")}(e),this.cache=new Ws(this.logger),this.performanceClient=t}createNewGuid(){return Ks()}base64Encode(e){return Os(e)}base64Decode(e){return Ls(e)}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(Bo.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await async function(e,t){return window.crypto.subtle.generateKey(Bs,e,t)}(Ys.EXTRACTABLE,Ys.POP_KEY_USAGES),o=await Fs(r.publicKey),n=Vs({e:o.e,kty:o.kty,n:o.n}),i=await this.hashString(n),s=await Fs(r.privateKey),a=await async function(e,t,r){return window.crypto.subtle.importKey("jwk",e,Bs,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,o){const n=this.performanceClient?.startMeasurement(Bo.CryptoOptsSignJwt,o),i=await this.cache.asymmetricKeys.getItem(t);if(!i)throw Ri(di);const s=await Fs(i.publicKey),a=Vs(s),c=Ms(JSON.stringify({kid:t})),h=Ms(En.getShrHeaderString({...r?.header,alg:s.alg,kid:c}));e.cnf={jwk:JSON.parse(a)};const l=`${h}.${Ms(JSON.stringify(e))}`,d=(new TextEncoder).encode(l),u=await async function(e,t){return window.crypto.subtle.sign(Bs,e,t)}(i.privateKey,d),g=`${l}.${Ns(new Uint8Array(u))}`;return n&&n.end({success:!0}),g}async hashString(e){const t=await Ds(e);return Ns(new Uint8Array(t))}}function Vs(e){return JSON.stringify(e,Object.keys(e).sort())}Ys.POP_KEY_USAGES=["sign","verify"],Ys.EXTRACTABLE=!0;const Js="storage_not_supported",Xs="stubbed_public_client_application_called",Zs="in_mem_redirect_unavailable";var ea=Object.freeze({__proto__:null,inMemRedirectUnavailable:Zs,storageNotSupported:Js,stubbedPublicClientApplicationCalled:Xs});const ta={[Js]:"Given storage configuration option was not supported.",[Xs]:"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",[Zs]:"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."},ra={storageNotSupportedError:{code:Js,desc:ta[Js]},stubPcaInstanceCalled:{code:Xs,desc:ta[Xs]},inMemRedirectUnavailable:{code:Zs,desc:ta[Zs]}};class oa extends ct{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,oa.prototype)}}function na(e){return new oa(e,ta[e])}class ia{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==Hi.LocalStorage&&e!==Hi.SessionStorage||!window[e])throw na(Js)}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)}}function sa(e,t){if(!t)return null;try{return dn.parseRequestState(e,t).libraryState.meta}catch(e){throw nr(Ct)}}class aa extends vo{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 $s,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 Hi.LocalStorage:case Hi.SessionStorage:try{return new ia(e)}catch(e){this.logger.verbose(e);break}}return this.cacheConfig.cacheLocation=Hi.MemoryStorage,new $s}setupTemporaryCacheStorage(e,t){switch(t){case Hi.LocalStorage:case Hi.SessionStorage:try{return new ia(e||Hi.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(Ji),t=this.getItem(`${Xi}.${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 Ae.ID_TOKEN:if(wr(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=r,o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Ae.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 Ae.ACCESS_TOKEN:case Ae.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(vr(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=r,o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Ae.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 Ae.REFRESH_TOKEN:if(Ir(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=r,o=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(o,Ae.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&&ho.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&&ho.isAccountEntity(r)?vo.toObject(new ho,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(Ji);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(Ji,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(Ji,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,Ae.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,Ae.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,Ae.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${Xi}.${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 Ae.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case Ae.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case Ae.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}`),nr(Dt)}this.setItem(`${Xi}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case Ae.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 Ae.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 Ae.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}`),nr(Dt)}this.setItem(`${Xi}.${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,Ae.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&wr(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=pr(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Ae.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&vr(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=pr(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Ae.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Ir(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,Ae.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=pr(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,Ae.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&&pn.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),vo.toObject(new pn,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&&function(e,t){const r=0===e.indexOf(Oe.CACHE_KEY);let o=!0;return t&&(o=t.hasOwnProperty("failedRequests")&&t.hasOwnProperty("errors")&&t.hasOwnProperty("cacheHits")),r&&o}(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),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&&Ho.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),vo.toObject(new Ho,r)):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(Zi,e),this.internalStorage.setItem(es,t)}getWrapperMetadata(){return[this.internalStorage.getItem(Zi)||t.EMPTY_STRING,this.internalStorage.getItem(es)||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.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(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)}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&&wn.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),vo.toObject(new wn,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===Hi.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(Bo.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):eo.startsWith(e,t.CACHE_PREFIX)||eo.startsWith(e,y)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=dn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${xi}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=dn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Fi}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=dn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${Ki}.${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:Oo};this.setTemporaryCache(Qi,JSON.stringify(e),!0)}else if(o){const e={credential:o,type:qo};this.setTemporaryCache(Qi,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(Gi)),this.removeItem(this.generateCacheKey(zi)),this.removeItem(this.generateCacheKey($i)),this.removeItem(this.generateCacheKey(Wi)),this.removeItem(this.generateCacheKey(Qi)),this.removeItem(this.generateCacheKey(Yi)),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(Ki))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=sa(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=Os(JSON.stringify(e));this.setTemporaryCache(Gi,t,!0)}getCachedRequest(e){this.logger.trace("BrowserCacheManager.getCachedRequest called");const t=this.getTemporaryCache(Gi,!0);if(!t)throw Ri(Zn);let r;try{r=JSON.parse(Ls(t))}catch(e){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${e}`),Ri(ei)}if(this.removeItem(this.generateCacheKey(Gi)),!r.authority){const t=this.generateAuthorityKey(e),o=this.getTemporaryCache(t);if(!o)throw Ri(ti);r.authority=o}return r}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(Yi,!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}.${ji}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${ji}`;if(e){if(this.getInteractionInProgress())throw Ri(xn);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=dr(r,Ls);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=pr(t);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(Vi,!0)}setRedirectRequestContext(e){this.setTemporaryCache(Vi,e,!0)}async hydrateCache(e,t){const r=mr(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=fr(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?.getTime()||0,e.extExpiresOn?.getTime()||0,Ls,void 0,e.tokenType,void 0,t.sshKid,t.claims,o),i=new ln(void 0,r,n);return this.saveCacheRecord(i)}}const ca=(e,t)=>new aa(e,{cacheLocation:Hi.MemoryStorage,temporaryCacheLocation:Hi.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},ir,t),ha={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 la{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=Ks();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||!ho.isAccountEntity(r))return;const o=vo.toObject(new ho,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent(ha.ACCOUNT_ADDED,void 0,o)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent(ha.ACCOUNT_REMOVED,void 0,o))}catch(e){return}}}class da{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||Ks(),this.logger=o.clone(bi.MSAL_SKU,ks,this.correlationId),this.performanceClient=s}async clearCacheOnLogout(e){if(e){ho.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(ho.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(Bo.InitializeBaseRequest,this.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===qe.SSH){if(!e.sshJwk)throw Zr(Fr);if(!e.sshKid)throw Zr(zr)}this.logger.verbose(`Authentication Scheme set to "${n.authenticationScheme}" as configured in Auth request`)}else n.authenticationScheme=qe.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!eo.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||us();return go.getAbsoluteUrl(t,us())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw Zr(Wr)}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 Rn(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 Qo.createDiscoveredInstance(e,this.config.system.networkClient,this.browserStorage,t,this.logger)):(this.logger.verbose("Creating discovered authority with configured authority"),await Qo.createDiscoveredInstance(this.config.auth.authority,this.config.system.networkClient,this.browserStorage,t,this.logger))}}const ua=32;async function ga(e,t,r){e.addQueueMeasurement(Bo.GeneratePkceCodes,r);const o=Fo(pa,Bo.GenerateCodeVerifier,t,e,r)(e,t,r);return{verifier:o,challenge:await zo(ma,Bo.GenerateCodeChallengeFromVerifier,t,e,r)(o,e,t,r)}}function pa(e,t,r){try{const o=new Uint8Array(ua);Fo(xs,Bo.GetRandomValues,t,e,r)(o);return Ns(o)}catch(e){throw Ri(Nn)}}async function ma(e,t,r,o){t.addQueueMeasurement(Bo.GenerateCodeChallengeFromVerifier,o);try{const n=await zo(Ds,Bo.Sha256Digest,r,t,o)(e,t,o);return Ns(new Uint8Array(n))}catch(e){throw Ri(Nn)}}class fa extends da{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.correlationId);const r=await zo(ga,Bo.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||Ks(),...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=go.getAbsoluteUrl(e.postLogoutRedirectUri,us())):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=go.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,us())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=go.getAbsoluteUrl(us(),us())),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(Bo.StandardInteractionClientCreateAuthCodeClient,this.correlationId);const o=await zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new yn(o,this.performanceClient)}async getClientConfiguration(e,r,o){this.performanceClient.addQueueMeasurement(Bo.StandardInteractionClientGetClientConfiguration,this.correlationId);const n=await zo(this.getDiscoveredAuthority.bind(this),Bo.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:bi.MSAL_SKU,version:ks,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(Bo.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=Go.generateAuthority(o,t||this.config.auth.azureCloudOptions);return await zo(Qo.createDiscoveredInstance.bind(Qo),Bo.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(Bo.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId);const o=this.getRedirectUri(e.redirectUri),n={interactionType:r},i=dn.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,n),s={...await zo(this.initializeBaseRequest.bind(this),Bo.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e),redirectUri:o,state:i,nonce:e.nonce||Ks(),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 ya="user_switch",Ca={[ya]:"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 va extends ct{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,va.prototype),this.name="NativeAuthError",this.ext=r}}function wa(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 Ia(e,t,r){if(r&&r.status)switch(r.status){case"ACCOUNT_UNAVAILABLE":return hn(Vo);case"USER_INTERACTION_REQUIRED":return new an(e,t);case"USER_CANCEL":return Ri(zn);case"NO_NETWORK":return Ri(si)}return new va(e,Ca[e]||t,r)}class Ta extends fa{async acquireToken(e){this.performanceClient.addQueueMeasurement(Bo.SilentCacheClientAcquireToken,e.correlationId);const t=this.initializeServerTelemetryManager(ts.acquireTokenSilent_silentFlow),r=await this.createSilentFlowClient(t,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const t=(await zo(r.acquireCachedToken.bind(r),Bo.SilentFlowClientAcquireCachedToken,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),t}catch(e){throw e instanceof Ei&&e.errorCode===di&&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 zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new vn(o,this.performanceClient)}async initializeSilentRequest(e,t){this.performanceClient.addQueueMeasurement(Bo.InitializeSilentRequest,this.correlationId);const r=await zo(this.initializeBaseRequest.bind(this),Bo.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e,t);return{...e,...r,account:t,forceRefresh:e.forceRefresh||!1}}}const _a="brk_client_id",Aa="brk_redirect_uri";class ka extends da{constructor(e,t,r,o,n,i,s,a,c,h,l,d){super(e,t,r,o,n,i,a,c,d),this.apiId=s,this.accountId=h,this.nativeMessageHandler=c,this.nativeStorageManager=l,this.silentCacheClient=new Ta(e,this.nativeStorageManager,r,o,n,i,a,c,d)}async acquireToken(e){this.performanceClient.addQueueMeasurement(Bo.NativeInteractionClientAcquireToken,e.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(Bo.NativeInteractionClientAcquireToken,e.correlationId),r=gr.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:Li,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:to.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),nr(Ht);const r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e});if(!r)throw nr(Ht);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:Li,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof va&&wa(e))throw e}this.browserStorage.setTemporaryCache(Yi,JSON.stringify(t),!0);const o={apiId:ts.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(Yi));const o={method:Li,request:r},n=gr.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 Ia(ya);const o=await this.getDiscoveredAuthority(t.authority),n=dr(e.id_token,Ls),i=this.createHomeAccountIdentifier(e,n),s=ho.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 ho.generateHomeAccountId(e.client_info||t.EMPTY_STRING,no,this.logger,this.browserCrypto,r)}generateScopes(e,t){return e.scope?to.fromString(e.scope):to.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===qe.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new gn(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw nr(Wt);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?to.fromString(e.scope):to.fromString(r.scope),h=e.account.properties||{},l=h.UID||o.oid||o.sub||t.EMPTY_STRING,d=h.TenantId||o.tid||t.EMPTY_STRING,u=(o?Object.assign(new ho,{...n,idTokenClaims:o}):n).getAccountInfo(),g=await this.generatePopAccessToken(e,r),p=r.tokenType===qe.POP?qe.POP:qe.BEARER;return{authority:i,uniqueId:l,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=mr(o,r.authority,e.id_token||"",r.clientId,n.tid||""),h=a+(r.tokenType===qe.POP?t.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0),l=this.generateScopes(e,r),d=fr(o,r.authority,i,r.clientId,n.tid||s,l.printScopes(),h,0,Ls),u=new ln(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 ht(ot,"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 go(t);r.validateAsUri();const{scopes:o,...n}=e,i=new to(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 ts.ssoSilent:case ts.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`),Ri(Ii)}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=Ni,e.authenticationScheme===qe.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new gn(this.browserCrypto),o=await zo(r.generateCnf.bind(r),Bo.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(_a)&&e.extraParameters.hasOwnProperty(Aa)&&e.extraParameters.hasOwnProperty(k)){const t=e.extraParameters[k],r=e.redirectUri,o=e.extraParameters[Aa];e.extraParameters={child_client_id:t,child_redirect_uri:r},e.redirectUri=o}}}class Sa{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(Bo.NativeMessageHandlerHandshake)}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:Pi,extensionId:this.extensionId,responseId:Ks(),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 Sa(e,t,r,Mi);return await o.sendHandshakeRequest(),o}catch(o){const n=new Sa(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:Pi,extensionId:this.extensionId,responseId:Ks(),body:{method:Oi}};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(Ri(yi)),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===Pi&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===Oi){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(Ri(Ci))}}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===Ui){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(Ia(e.code,e.description,e.ext));else{if(!e.result)throw ht(ot,"Event does not contain result.");e.result.code&&e.result.description?r.reject(Ia(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===qi){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 qe.BEARER:case qe.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 Ea{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=n}async handleCodeResponse(e,t){let r;this.performanceClient.addQueueMeasurement(Bo.HandleCodeResponse,t.correlationId);try{r=this.authModule.handleFragmentResponse(e,t.state)}catch(e){throw e instanceof Po&&e.subError===zn?Ri(zn):e}return zo(this.handleCodeResponseFromServer.bind(this),Bo.HandleCodeResponseFromServer,this.logger,this.performanceClient,t.correlationId)(r,t)}async handleCodeResponseFromServer(e,t,r=!0){if(this.performanceClient.addQueueMeasurement(Bo.HandleCodeResponseFromServer,t.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"),this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await zo(this.authModule.updateAuthority.bind(this.authModule),Bo.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,t.correlationId)(e.cloud_instance_host_name,t.correlationId),r&&(e.nonce=t.nonce||void 0),e.state=t.state,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const e=this.createCcsCredentials(t);e&&(this.authCodeRequest.ccsCredential=e)}return await zo(this.authModule.acquireToken.bind(this.authModule),Bo.AuthClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(this.authCodeRequest,e)}createCcsCredentials(e){return e.account?{credential:e.account.homeAccountId,type:Oo}:e.loginHint?{credential:e.loginHint,type:qo}:null}}function Ra(e,t,r){const o=uo(e);if(!o)throw lo(e)?(r.error(`A ${t} is present in the iframe but it does not contain known properties. It's likely that the ${t} has been replaced by code running on the redirectUri page.`),r.errorPii(`The ${t} detected is: ${e}`),Ri(Hn)):(r.error(`The request has returned to the redirectUri but a ${t} is not present. It's likely that the ${t} has been removed or the page has been redirected by code running on the redirectUri page.`),Ri(Ln));return o}class ba extends fa{constructor(e,t,r,o,n,i,s,a,c,h){super(e,t,r,o,n,i,s,c,h),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(t,r,o,n){this.logger.verbose("acquireTokenPopupAsync called");const i=this.initializeServerTelemetryManager(ts.acquireTokenPopup),s=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(t,e.InteractionType.Popup);vs(s.authority);try{const a=await zo(this.initializeAuthorizationCodeRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(s),c=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(i,s.authority,s.azureCloudOptions),h=Sa.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme);let l;h&&(l=this.performanceClient.startMeasurement(Bo.FetchAccountIdWithNativeBroker,t.correlationId));const d=await c.getAuthCodeUrl({...s,nativeBroker:h}),u=new Ea(c,this.browserStorage,a,this.logger,this.performanceClient),g={popup:n,popupName:r,popupWindowAttributes:o},p=this.initiateAuthRequest(d,g);this.eventHandler.emitEvent(ha.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=Fo(Ra,Bo.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(m,this.config.auth.OIDCOptions.serverResponseType,this.logger);if(Mo.removeThrottle(this.browserStorage,this.config.auth.clientId,a),f.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),l&&l.end({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw Ri(vi);const e=new ka(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,ts.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,s.correlationId),{userRequestState:t}=dn.parseRequestState(this.browserCrypto,s.state);return e.acquireToken({...s,state:t,prompt:void 0})}return await u.handleCodeResponse(f,s)}catch(e){throw n&&n.close(),e instanceof ct&&(e.setCorrelationId(this.correlationId),i.cacheFailedRequest(e)),e}}async logoutPopupAsync(t,r,o,n,i,s){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(ha.LOGOUT_START,e.InteractionType.Popup,t);const a=this.initializeServerTelemetryManager(ts.logoutPopup);try{await this.clearCacheOnLogout(t.account);const c=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(a,n);try{c.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId&&t.postLogoutRedirectUri&&c.authority.protocolMode===co.OIDC){if(this.browserStorage.removeAccount(t.account?.homeAccountId),this.eventHandler.emitEvent(ha.LOGOUT_SUCCESS,e.InteractionType.Popup,t),s){const e={apiId:ts.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=go.getAbsoluteUrl(s,us());await this.navigationClient.navigateInternal(t,e)}return void(i&&i.close())}}const h=c.getLogoutUri(t);this.eventHandler.emitEvent(ha.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const l=this.openPopup(h,{popupName:r,popupWindowAttributes:o,popup:i});if(this.eventHandler.emitEvent(ha.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:l},null),await this.monitorPopupForHash(l).catch((()=>{})),s){const e={apiId:ts.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=go.getAbsoluteUrl(s,us());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),a.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(ha.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent(ha.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent(ha.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"),Ri(qn)}monitorPopupForHash(e){return new Promise(((t,r)=>{this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const o=setInterval((()=>{if(e.closed)return this.logger.error("PopupHandler.monitorPopupForHash - window closed"),clearInterval(o),void r(Ri(zn));let n="";try{n=e.location.href}catch(e){}if(!n||"about:blank"===n)return;clearInterval(o);let i="";const s=this.config.auth.OIDCOptions.serverResponseType;e&&(i=s===fe.QUERY?e.location.search:e.location.hash),this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),t(i)}),this.config.system.pollIntervalMilliseconds)})).finally((()=>{this.cleanPopup(e)}))}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 Ri(Fn);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),Ri(Kn)}}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,h=r.popupPosition?.top,l=r.popupPosition?.left;return(!a||a<0||a>i)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),a=bi.POPUP_WIDTH),(!c||c<0||c>s)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=bi.POPUP_HEIGHT),(!h||h<0||h>s)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),h=Math.max(0,s/2-bi.POPUP_HEIGHT/2+n)),(!l||l<0||l>i)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),l=Math.max(0,i/2-bi.POPUP_WIDTH/2+o)),window.open(e,t,`width=${a}, height=${c}, top=${h}, left=${l}, 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`${bi.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${bi.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}}class Pa{constructor(e,t,r,o,n){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=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(zi,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(Wi,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:ts.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"),Ri(qn)}async handleCodeResponse(e,t){this.logger.verbose("RedirectHandler.handleCodeResponse called"),this.browserStorage.setInteractionInProgress(!1);const r=this.browserStorage.generateStateKey(t),o=this.browserStorage.getTemporaryCache(r);if(!o)throw nr(wt,"Cached State");let n;try{n=this.authModule.handleFragmentResponse(e,o)}catch(e){throw e instanceof Po&&e.subError===zn?Ri(zn):e}const i=this.browserStorage.generateNonceKey(o),s=this.browserStorage.getTemporaryCache(i);if(this.authCodeRequest.code=n.code,n.cloud_instance_host_name&&await zo(this.authModule.updateAuthority.bind(this.authModule),Bo.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(n.cloud_instance_host_name,this.authCodeRequest.correlationId),n.nonce=s||void 0,n.state=o,n.client_info)this.authCodeRequest.clientInfo=n.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const a=await this.authModule.acquireToken(this.authCodeRequest,n);return this.browserStorage.cleanRequestByState(t),a}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(Qi,!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 Ma extends fa{constructor(e,t,r,o,n,i,s,a,c,h){super(e,t,r,o,n,i,s,c,h),this.nativeStorage=a}async acquireToken(t){const r=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(t,e.InteractionType.Redirect);this.browserStorage.updateCacheEntries(r.state,r.nonce,r.authority,r.loginHint||"",r.account||null);const o=this.initializeServerTelemetryManager(ts.acquireTokenRedirect),n=t=>{t.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(r.state),this.eventHandler.emitEvent(ha.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{const e=await zo(this.initializeAuthorizationCodeRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(r),i=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(o,r.authority,r.azureCloudOptions),s=new Pa(i,this.browserStorage,e,this.logger,this.performanceClient),a=await i.getAuthCodeUrl({...r,nativeBroker:Sa.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme)}),c=this.getRedirectStartPage(t.redirectStartPage);return this.logger.verbosePii(`Redirect start page: ${c}`),window.addEventListener("pageshow",n),await s.initiateAuthRequest(a,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:c,onRedirectNavigate:t.onRedirectNavigate})}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),window.removeEventListener("pageshow",n),this.browserStorage.cleanRequestByState(r.state),e}}async handleRedirectPromise(r){const o=this.initializeServerTelemetryManager(ts.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,i]=this.getRedirectResponse(r||"");if(!n)return this.logger.info("handleRedirectPromise did not detect a response as a result of a redirect. Cleaning temporary cache."),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),null;const s=this.browserStorage.getTemporaryCache(zi,!0)||t.EMPTY_STRING,a=go.removeHashFromUrl(s);if(a===go.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling response"),s.indexOf("#")>-1&&hs(s);return await this.handleResponse(n,o)}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling response"),this.handleResponse(n,o);if(!ls()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache($i,i,!0);const e={apiId:ts.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=gs();this.browserStorage.setTemporaryCache(zi,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.handleResponse(n,o)}return null}catch(t){throw t instanceof ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Redirect),t}}getRedirectResponse(t){this.logger.verbose("getRedirectResponseHash called");let r=t;r||(r=this.config.auth.OIDCOptions.serverResponseType===fe.QUERY?window.location.search:window.location.hash);let o=uo(r);if(o){try{!function(e,t,r){if(!e.state)throw Ri(Un);const o=sa(t,e.state);if(!o)throw Ri(Bn);if(o.interactionType!==r)throw Ri(Dn)}(o,this.browserCrypto,e.InteractionType.Redirect)}catch(e){return e instanceof ct&&this.logger.error(`Interaction type validation failed due to ${e.errorCode}: ${e.errorMessage}`),[null,""]}return cs(window),this.logger.verbose("Hash contains known properties, returning response hash"),[o,r]}const n=this.browserStorage.getTemporaryCache($i,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey($i)),n&&(o=uo(n),o)?(this.logger.verbose("Hash does not contain known properties, returning cached hash"),[o,n]):[null,""]}async handleResponse(e,t){const r=e.state;if(!r)throw Ri(Un);const o=this.browserStorage.getCachedRequest(r);if(this.logger.verbose("handleResponse called, retrieved cached request"),e.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Ri(vi);const t=new ka(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,ts.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,e.accountId,this.nativeStorage,o.correlationId),{userRequestState:n}=dn.parseRequestState(this.browserCrypto,r);return t.acquireToken({...o,state:n,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(r)}))}const n=this.browserStorage.getCachedAuthority(r);if(!n)throw Ri(ti);const i=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(t,n);Mo.removeThrottle(this.browserStorage,this.config.auth.clientId,o);const s=new Pa(i,this.browserStorage,o,this.logger,this.performanceClient);return await s.handleCodeResponse(e,r)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),o=this.initializeServerTelemetryManager(ts.logout);try{this.eventHandler.emitEvent(ha.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const n={apiId:ts.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},i=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(o,t&&t.authority);if(i.authority.protocolMode===co.OIDC)try{i.authority.endSessionEndpoint}catch{if(r.account?.homeAccountId)return this.browserStorage.removeAccount(r.account?.homeAccountId),void this.eventHandler.emitEvent(ha.LOGOUT_SUCCESS,e.InteractionType.Redirect,r)}const s=i.getLogoutUri(r);if(this.eventHandler.emitEvent(ha.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 ct&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.eventHandler.emitEvent(ha.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ha.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent(ha.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return go.getAbsoluteUrl(t,us())}}async function Na(e,t,r,o,n){if(t.addQueueMeasurement(Bo.SilentHandlerInitiateAuthRequest,o),!e)throw r.info("Navigate url is empty"),Ri(qn);return n?await zo(qa,Bo.SilentHandlerLoadFrame,r,t,o)(e,n,t,o):Fo(La,Bo.SilentHandlerLoadFrameSync,r,t,o)(e)}async function Oa(e,t,r,o,n,i,s){return o.addQueueMeasurement(Bo.SilentHandlerMonitorIframeForHash,i),new Promise(((o,i)=>{t<_s&&n.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${t}ms) than the default (6000ms). This may result in timeouts.`);const a=window.setTimeout((()=>{window.clearInterval(c),i(Ri(Gn))}),t),c=window.setInterval((()=>{let t="";const r=e.contentWindow;try{t=r?r.location.href:""}catch(e){}if(!t||"about:blank"===t)return;let n="";r&&(n=s===fe.QUERY?r.location.search:r.location.hash),window.clearTimeout(a),window.clearInterval(c),o(n)}),r)})).finally((()=>{Fo(Ha,Bo.RemoveHiddenIframe,n,o,i)(e)}))}function qa(e,t,r,o){return r.addQueueMeasurement(Bo.SilentHandlerLoadFrame,o),new Promise(((r,o)=>{const n=Ua();window.setTimeout((()=>{n?(n.src=e,r(n)):o("Unable to load iframe")}),t)}))}function La(e){const t=Ua();return t.src=e,t}function Ua(){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 Ha(e){document.body===e.parentNode&&document.body.removeChild(e)}class Ba extends fa{constructor(e,t,r,o,n,i,s,a,c,h,l){super(e,t,r,o,n,i,a,h,l),this.apiId=s,this.nativeStorage=c}async acquireToken(t){if(this.performanceClient.addQueueMeasurement(Bo.SilentIframeClientAcquireToken,t.correlationId),t.loginHint||t.sid||t.account&&t.account.username||this.logger.warning("No user hint provided. The authorization server may need more information to complete this request."),t.prompt&&t.prompt!==de.NONE&&t.prompt!==de.NO_SESSION)throw Ri(Xn);const r=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,t.correlationId)({...t,prompt:t.prompt||de.NONE},e.InteractionType.Silent);vs(r.authority);const o=this.initializeServerTelemetryManager(this.apiId);try{const e=await zo(this.createAuthCodeClient.bind(this),Bo.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,t.correlationId)(o,r.authority,r.azureCloudOptions);return await zo(this.silentTokenHelper.bind(this),Bo.SilentIframeClientTokenHelper,this.logger,this.performanceClient,t.correlationId)(e,r)}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),e}}logout(){return Promise.reject(Ri(Vn))}async silentTokenHelper(e,t){const r=t.correlationId;this.performanceClient.addQueueMeasurement(Bo.SilentIframeClientTokenHelper,r);const o=await zo(this.initializeAuthorizationCodeRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,r)(t),n=await zo(e.getAuthCodeUrl.bind(e),Bo.GetAuthCodeUrl,this.logger,this.performanceClient,r)({...t,nativeBroker:Sa.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme)}),i=new Ea(e,this.browserStorage,o,this.logger,this.performanceClient),s=await zo(Na,Bo.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r)(n,this.performanceClient,this.logger,r,this.config.system.navigateFrameWait),a=this.config.auth.OIDCOptions.serverResponseType,c=await zo(Oa,Bo.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,r)(s,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,r,a),h=Fo(Ra,Bo.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(c,a,this.logger);if(h.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw Ri(vi);const e=new ka(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,h.accountId,this.browserStorage,r),{userRequestState:o}=dn.parseRequestState(this.browserCrypto,t.state);return zo(e.acquireToken.bind(e),Bo.NativeInteractionClientAcquireToken,this.logger,this.performanceClient,r)({...t,state:o,prompt:t.prompt||de.NONE})}return zo(i.handleCodeResponse.bind(i),Bo.HandleCodeResponse,this.logger,this.performanceClient,r)(h,t)}}class Da extends fa{async acquireToken(e){this.performanceClient.addQueueMeasurement(Bo.SilentRefreshClientAcquireToken,e.correlationId);const t=await zo(this.initializeBaseRequest.bind(this),Bo.InitializeBaseRequest,this.logger,this.performanceClient,e.correlationId)(e,e.account),r={...e,...t},o=this.initializeServerTelemetryManager(ts.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient(o,r.authority,r.azureCloudOptions);return zo(n.acquireTokenByRefreshToken.bind(n),Bo.RefreshTokenClientAcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(r).catch((e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),e}))}logout(){return Promise.reject(Ri(Vn))}async createRefreshTokenClient(e,t,r){const o=await zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new Cn(o,this.performanceClient)}}class xa{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 Ri(li);const o=dr(t.id_token,Ls);let n,i,s;if(e.account)s=ho.createFromAccountInfo(e.account),n=new ln(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 Ri(li);{const a=Go.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 Go(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 ln(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 Ri(li);this.logger.trace("TokenCache - homeAccountId from response"),s=this.loadAccount(o,i,t.client_info),n=new ln(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=ho.generateHomeAccountId(r,t.authorityType,this.logger,this.cryptoObj,e)),!n)throw Ri(li);const i=ho.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 Ri(li)}loadIdToken(e,t,r,o){const n=mr(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 Ri(li)}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 Ri(li);if(!i.extendedExpiresOn)throw Ri(li);const s=new to(e.scopes).printScopes(),a=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,h=fr(r,o,t.access_token,this.config.auth.clientId,n,s,a,c,Ls);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(h),h;throw Ri(li)}loadRefreshToken(e,t,r,o){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const n=yr(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 Ri(li)}generateAuthenticationResult(e,r,o,n,i){let s,a=t.EMPTY_STRING,c=[],h=null;o?.accessToken&&(a=o.accessToken.secret,c=to.fromString(o.accessToken.target).asArray(),h=new Date(1e3*Number(o.accessToken.expiresOn)),s=new Date(1e3*Number(o.accessToken.extendedExpiresOn)));const l=r.oid||r.sub||t.EMPTY_STRING,d=r.tid||t.EMPTY_STRING;return{authority:i?i.canonicalAuthority:t.EMPTY_STRING,uniqueId:l,tenantId:d,scopes:c,account:n.getAccountInfo(),idToken:o.idToken?.secret||"",idTokenClaims:r||{},accessToken:a,fromCache:!0,expiresOn:h,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 Ka extends yn{constructor(e){super(e),this.includeRedirectUri=!1}}class Fa extends fa{constructor(e,t,r,o,n,i,s,a,c,h){super(e,t,r,o,n,i,a,c,h),this.apiId=s}async acquireToken(t){if(!t.code)throw Ri(ui);const r=await zo(this.initializeAuthorizationRequest.bind(this),Bo.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,t.correlationId)(t,e.InteractionType.Silent),o=this.initializeServerTelemetryManager(this.apiId);try{const e={...r,code:t.code},n=await zo(this.getClientConfiguration.bind(this),Bo.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,t.correlationId)(o,r.authority),i=new Ka(n);this.logger.verbose("Auth code client created");const s=new Ea(i,this.browserStorage,e,this.logger,this.performanceClient);return zo(s.handleCodeResponseFromServer.bind(s),Bo.HandleCodeResponseFromServer,this.logger,this.performanceClient,t.correlationId)({code:t.code,msgraph_host:t.msGraphHost,cloud_graph_host_name:t.cloudGraphHostName,cloud_instance_host_name:t.cloudInstanceHostName},r,!1)}catch(e){throw e instanceof ct&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),e}}logout(){return Promise.reject(Ri(Vn))}}class za{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 Ys(this.logger,this.performanceClient):ir,this.eventHandler=new la(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new aa(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)}catch(e){throw Zr(Dr)}return{canonicalAuthority:e.authority?jo(e.authority):void 0,knownAuthorities:e.knownAuthorities,cloudDiscoveryMetadata:r}}(this.config.auth)):ca(this.config.auth.clientId,this.logger);const t={cacheLocation:Hi.MemoryStorage,temporaryCacheLocation:Hi.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new aa(this.config.auth.clientId,t,this.browserCrypto,this.logger),this.tokenCache=new xa(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 za(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(Bo.InitializeClientApplication);if(this.eventHandler.emitEvent(ha.INITIALIZE_START),e)try{this.nativeExtensionProvider=await Sa.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 zo(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),Bo.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient)(this.performanceClient)),this.initialized=!0,this.eventHandler.emitEvent(ha.INITIALIZE_END),t.end({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),Cs(this.initialized);const o=this.getAllAccounts();if(this.isBrowserEnvironment){const n=r||"";let i=this.redirectResponse.get(n);if(void 0===i){this.eventHandler.emitEvent(ha.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&&Sa.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!r){this.logger.trace("handleRedirectPromise - acquiring token from native platform");a=new ka(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,ts.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(Wi,!0)||t.EMPTY_STRING;a=this.createRedirectClient(e).handleRedirectPromise(r)}i=a.then((t=>{if(t){o.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(ha.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent(ha.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw o.length>0?this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ha.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(ha.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})),this.redirectResponse.set(n,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(ha.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent(ha.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){n=new ka(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,ts.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,r).acquireTokenRedirect(t).catch((e=>{if(e instanceof va&&wa(e)){this.nativeExtensionProvider=void 0;return this.createRedirectClient(r).acquireToken(t)}if(e instanceof an){this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createRedirectClient(r).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}))}else{n=this.createRedirectClient(r).acquireToken(t)}return n.catch((t=>{throw o?this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(ha.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),o=this.performanceClient.startMeasurement(Bo.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(ha.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ha.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative({...t,correlationId:r},ts.acquireTokenPopup).then((e=>(this.getBrowserStorage().setInteractionInProgress(!1),o.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof va&&wa(e)){this.nativeExtensionProvider=void 0;return this.createPopupClient(r).acquireToken(t)}if(e instanceof an){this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow");return this.createPopupClient(r).acquireToken(t)}throw this.getBrowserStorage().setInteractionInProgress(!1),e}));else{i=this.createPopupClient(r).acquireToken(t)}return i.then((t=>(n.length<this.getAllAccounts().length?this.eventHandler.emitEvent(ha.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent(ha.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(ha.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent(ha.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(Bo.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(ha.SSO_SILENT_START,e.InteractionType.Silent,o),this.canUseNative(o))n=this.acquireTokenNative(o,ts.ssoSilent).catch((e=>{if(e instanceof va&&wa(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(ha.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(ha.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(ha.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const o=this.performanceClient.startMeasurement(Bo.AcquireTokenByCode,r);try{if(t.code&&t.nativeAccountId)throw Ri(pi);if(t.code){const n=t.code;let i=this.hybridAuthCodeResponses.get(n);return i?(this.logger.verbose("Existing acquireTokenByCode request found",r),o.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",r),i=this.acquireTokenByCodeAsync({...t,correlationId:r}).then((t=>(this.eventHandler.emitEvent(ha.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(ha.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,correlationId:r},ts.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof va&&wa(e)&&(this.nativeExtensionProvider=void 0),e}));throw Ri(fi)}throw Ri(gi)}catch(t){throw this.eventHandler.emitEvent(ha.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(Bo.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(Bo.AcquireTokenFromCache,t.correlationId),r){case as.Default:case as.AccessToken:case as.AccessTokenAndRefreshToken:return zo(e.acquireToken.bind(e),Bo.SilentCacheClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(t);default:throw nr(Ft)}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(Bo.AcquireTokenByRefreshToken,e.correlationId),t){case as.Default:case as.AccessTokenAndRefreshToken:case as.RefreshToken:case as.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return zo(t.acquireToken.bind(t),Bo.SilentRefreshClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw nr(Ft)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(Bo.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return zo(t.acquireToken.bind(t),Bo.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=ho.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"),ys(this.isBrowserEnvironment),ms(t,this.config.system.allowRedirectInIframe),ps(),fs(),Cs(this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===Hi.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw na(Zs);t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),ps(),e&&this.getBrowserStorage().setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw Ri(vi);return new ka(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"),!Sa.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 ba(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new Ma(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new Ba(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,ts.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new Ta(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new Da(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new Fa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,ts.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?Ks():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||ns})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||ns})}async acquireTokenSilent(r){const o=this.getRequestCorrelationId(r),n=this.performanceClient.startMeasurement(Bo.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 Ri(Jn);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,shrOptions:r.shrOptions},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=zo(this.acquireTokenSilentAsync.bind(this),Bo.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(Bo.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(Bo.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),Sa.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,ts.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof va&&wa(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 zo(n.initializeSilentRequest.bind(n),Bo.InitializeSilentRequest,this.logger,this.performanceClient,t.correlationId)(t,r),s=t.cacheLookupPolicy||as.Default;o=zo(this.acquireTokenFromCache.bind(this),Bo.AcquireTokenFromCache,this.logger,this.performanceClient,i.correlationId)(n,i,s).catch((r=>{if(t.cacheLookupPolicy===as.AccessToken)throw r;return ps(),this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),zo(this.acquireTokenByRefreshToken.bind(this),Bo.AcquireTokenByRefreshToken,this.logger,this.performanceClient,i.correlationId)(i,s).catch((e=>{if((!(e instanceof an)&&(e.errorCode===bi.INVALID_GRANT_ERROR||e.errorCode===Ft)||e.errorCode===Yo||e.errorCode===Jo)&&(s===as.Default||s===as.Skip||s===as.RefreshTokenAndNetwork))return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",t.correlationId),zo(this.acquireTokenBySilentIframe.bind(this),Bo.AcquireTokenBySilentIframe,this.logger,this.performanceClient,i.correlationId)(i);throw e}))}))}return o.then((t=>(this.eventHandler.emitEvent(ha.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(ha.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 $a=Object.freeze({__proto__:null,StandardController:za});class Ga{static async createPublicClientApplication(e){const t=await async function(e){const t=new bs(e);await t.initialize();const r=await Promise.resolve().then((function(){return $a}));return await r.StandardController.createController(t)}(e);return new Ga(e,t)}constructor(e,t){if(t)this.controller=t;else{const t=new bs(e);this.controller=new za(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 ja{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 Ys(this.logger,this.performanceClient):ir,this.browserStorage=this.isBrowserEnvironment?new aa(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):ca(this.config.auth.clientId,this.logger),this.eventHandler=new la(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 Cs(this.initialized),ys(this.isBrowserEnvironment),{}}acquireTokenRedirect(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),Promise.resolve()}acquireTokenSilent(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}acquireTokenByCode(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}acquireTokenNative(e,t,r){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}acquireTokenByRefreshToken(e,t){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),""}removePerformanceCallback(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),!0}enableAccountStorageEvents(){Cs(this.initialized),ys(this.isBrowserEnvironment)}disableAccountStorageEvents(){Cs(this.initialized),ys(this.isBrowserEnvironment)}handleRedirectPromise(e){return Cs(this.initialized),Promise.resolve(null)}loginPopup(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}loginRedirect(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}logout(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}logoutRedirect(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}logoutPopup(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}ssoSilent(e){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}getTokenCache(){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}getLogger(){return this.logger}setLogger(e){Cs(this.initialized),ys(this.isBrowserEnvironment)}setActiveAccount(e){Cs(this.initialized),ys(this.isBrowserEnvironment)}getActiveAccount(){return Cs(this.initialized),ys(this.isBrowserEnvironment),null}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){Cs(this.initialized),ys(this.isBrowserEnvironment)}getConfiguration(){return this.config}isBrowserEnv(){return Cs(this.initialized),ys(this.isBrowserEnvironment),!0}getBrowserCrypto(){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}getPerformanceClient(){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}getRedirectResponse(){return Cs(this.initialized),ys(this.isBrowserEnvironment),{}}preflightBrowserEnvironmentCheck(e,t){Cs(this.initialized),ys(this.isBrowserEnvironment)}async clearCache(e){Cs(this.initialized),ys(this.isBrowserEnvironment)}async hydrateCache(e,t){Cs(this.initialized),ys(this.isBrowserEnvironment)}}class Qa extends Ss{getModuleName(){return Qa.MODULE_NAME}getId(){return Qa.ID}async initialize(){return!0}}Qa.MODULE_NAME="",Qa.ID="UnknownOperatingContext";class Wa{static async createPublicClientApplication(e){const t=await Ps(e);let r;return r=null!==t?new Wa(e,t):new Wa(e),r}constructor(e,t){if(this.configuration=e,t)this.controller=t;else{const t=new Qa(e);this.controller=new ja(t)}}async initialize(){if(this.controller instanceof ja){const e=await Ps(this.configuration);return null!==e&&(this.controller=e),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 Ya={initialize:()=>Promise.reject(na(Xs)),acquireTokenPopup:()=>Promise.reject(na(Xs)),acquireTokenRedirect:()=>Promise.reject(na(Xs)),acquireTokenSilent:()=>Promise.reject(na(Xs)),acquireTokenByCode:()=>Promise.reject(na(Xs)),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(na(Xs)),loginPopup:()=>Promise.reject(na(Xs)),loginRedirect:()=>Promise.reject(na(Xs)),logout:()=>Promise.reject(na(Xs)),logoutRedirect:()=>Promise.reject(na(Xs)),logoutPopup:()=>Promise.reject(na(Xs)),ssoSilent:()=>Promise.reject(na(Xs)),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw na(Xs)},getLogger:()=>{throw na(Xs)},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw na(Xs)},hydrateCache:()=>Promise.reject(na(Xs)),clearCache:()=>Promise.reject(na(Xs))};class Va{constructor(e,t){this.correlationId=t,this.measureName=Va.makeMeasureName(e,t),this.startMark=Va.makeStartMark(e,t),this.endMark=Va.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(Va.supportsBrowserPerformance())try{t.forEach((t=>{const r=Va.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(Va.makeStartMark(r,e)),window.performance.clearMarks(Va.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(Va.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(Va.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(Va.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 Ja;!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"}(Ja||(Ja={}));class Xa{constructor(e,t,r,o){this.clientId=e,this.clientCapabilities=t,this.crypto=r,this.logger=o}toNaaTokenRequest(e){let t;t=void 0===e.extraQueryParameters?new Map:new Map(Object.entries(e.extraQueryParameters));const r=(new Uo).addClientCapabilitiesToClaims(e.claims,this.clientCapabilities);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(),nonce:e.nonce,claims:eo.isEmptyObj(r)?void 0:r,state:e.state,authenticationScheme:e.authenticationScheme||qe.BEARER,extraParameters:t}}fromNaaTokenResponse(e,t,r){if(!t.id_token||!t.access_token)throw nr(gt);const o=new Date(1e3*(r+(t.expires_in||0))),n=dr(t.id_token,this.crypto.base64Decode),i=this.fromNaaAccountInfo(t.account,n);return{authority:t.authority||i.environment,uniqueId:i.localAccountId,tenantId:i.tenantId,scopes:t.scope.split(" "),account:i,idToken:void 0!==t.id_token?t.id_token:"",idTokenClaims:n,accessToken:t.access_token,fromCache:!0,expiresOn:o,tokenType:e.authenticationScheme||qe.BEARER,correlationId:e.correlationId,extExpiresOn:o,state:e.state}}fromNaaAccountInfo(e,t){const r=t||e.idTokenClaims,o=e.localAccountId||r?.oid||r?.sub||"",n=e.tenantId||r?.tid||"",i=e.homeAccountId||`${o}.${n}`,s=e.username||r?.preferred_username||"",a=e.name||r?.name;return{homeAccountId:i,environment:e.environment,tenantId:n,username:s,localAccountId:o,name:a,idToken:e.idToken,idTokenClaims:r}}fromBridgeError(e){if(!function(e){return void 0!==e.status}(e))return new ct("unknown_error","An unknown error occurred");switch(e.status){case Ja.USER_CANCEL:return new or(Vt);case Ja.NO_NETWORK:return new or(Yt);case Ja.ACCOUNT_UNAVAILABLE:return new or(Ht);case Ja.DISABLED:return new or(Zt);case Ja.NESTED_APP_AUTH_UNAVAILABLE:return new or(e.code||Zt,e.description);case Ja.TRANSIENT_ERROR:case Ja.PERSISTENT_ERROR:return new Po(e.code,e.description);case Ja.USER_INTERACTION_REQUIRED:return new an(e.code,e.description);default:return new ct(e.code,e.description)}}}const Za={code:"unsupported_method",desc:"The PKCE code challenge and verifier could not be generated."};class ec extends ct{constructor(e,t){super(e,t),Object.setPrototypeOf(this,ec.prototype),this.name="NestedAppAuthError"}static createUnsupportedError(){return new ec(Za.code,Za.desc)}}class tc{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 Ys(this.logger,this.performanceClient):ir,this.eventHandler=new la(this.logger,this.browserCrypto),this.nestedAppAuthAdapter=new Xa(this.config.auth.clientId,this.config.auth.clientCapabilities,this.browserCrypto,this.logger)}getBrowserStorage(){throw ec.createUnsupportedError()}getEventHandler(){return this.eventHandler}static async createController(e){const t=new tc(e);return Promise.resolve(t)}initialize(){return Promise.resolve()}async acquireTokenInteractive(t){this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t);const r=this.performanceClient.startMeasurement(Bo.AcquireTokenPopup,t.correlationId);r?.add({nestedAppAuthRequest:!0});try{const o=this.nestedAppAuthAdapter.toNaaTokenRequest(t),n=gr.nowSeconds(),i=await this.bridgeProxy.getTokenInteractive(o),s=this.nestedAppAuthAdapter.fromNaaTokenResponse(o,i,n);return this.operatingContext.setActiveAccount(s.account),this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Popup,s),r.add({accessTokenSize:s.accessToken.length,idTokenSize:s.idToken.length}),r.end({success:!0,requestId:s.requestId}),s}catch(t){const o=this.nestedAppAuthAdapter.fromBridgeError(t);throw this.eventHandler.emitEvent(ha.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(ha.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t);const r=this.performanceClient.startMeasurement(Bo.SsoSilent,t.correlationId);r?.increment({visibilityChangeCount:0}),r?.add({nestedAppAuthRequest:!0});try{const o=this.nestedAppAuthAdapter.toNaaTokenRequest(t),n=gr.nowSeconds(),i=await this.bridgeProxy.getTokenSilent(o),s=this.nestedAppAuthAdapter.fromNaaTokenResponse(o,i,n);return this.operatingContext.setActiveAccount(s.account),this.eventHandler.emitEvent(ha.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Silent,s),r?.add({accessTokenSize:s.accessToken.length,idTokenSize:s.idToken.length}),r?.end({success:!0,requestId:s.requestId}),s}catch(t){const o=this.nestedAppAuthAdapter.fromBridgeError(t);throw this.eventHandler.emitEvent(ha.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 ec.createUnsupportedError()}async acquireTokenSilent(e){return this.acquireTokenSilentInternal(e)}acquireTokenByCode(e){throw ec.createUnsupportedError()}acquireTokenNative(e,t,r){throw ec.createUnsupportedError()}acquireTokenByRefreshToken(e,t){throw ec.createUnsupportedError()}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){throw ec.createUnsupportedError()}removePerformanceCallback(e){throw ec.createUnsupportedError()}enableAccountStorageEvents(){throw ec.createUnsupportedError()}disableAccountStorageEvents(){throw ec.createUnsupportedError()}getAccount(e){throw ec.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 ec.createUnsupportedError()}loginPopup(e){if(void 0!==e)return this.acquireTokenInteractive(e);throw ec.createUnsupportedError()}loginRedirect(e){throw ec.createUnsupportedError()}logout(e){throw ec.createUnsupportedError()}logoutRedirect(e){throw ec.createUnsupportedError()}logoutPopup(e){throw ec.createUnsupportedError()}ssoSilent(e){return this.acquireTokenSilentInternal(e)}getTokenCache(){throw ec.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 ec.createUnsupportedError()}getRedirectResponse(){throw ec.createUnsupportedError()}preflightBrowserEnvironmentCheck(e,t){throw ec.createUnsupportedError()}async clearCache(e){throw ec.createUnsupportedError()}async hydrateCache(e,t){throw ec.createUnsupportedError()}}var rc=Object.freeze({__proto__:null,NestedAppAuthController:tc});e.AccountEntity=ho,e.ApiId=ts,e.AuthError=ct,e.AuthErrorCodes=it,e.AuthErrorMessage=at,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 Zr(Gr)}const t=this.headers[d];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw Zr(Gr)}throw Zr($r)}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=qe,e.AzureCloudInstance=lr,e.BrowserAuthError=Ei,e.BrowserAuthErrorCodes=_i,e.BrowserAuthErrorMessage=Si,e.BrowserCacheLocation=Hi,e.BrowserConfigurationAuthError=oa,e.BrowserConfigurationAuthErrorCodes=ea,e.BrowserConfigurationAuthErrorMessage=ra,e.BrowserPerformanceClient=class extends bn{constructor(e,r){super(e.auth.clientId,e.auth.authority||`${t.DEFAULT_AUTHORITY}`,new ar(e.system?.loggerOptions||{},As,ks),As,ks,e.telemetry?.application||{appName:"",appVersion:""},r)}startPerformanceMeasurement(e,t){return new Va(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&&Va.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=Va,e.BrowserStorage=ia,e.BrowserUtils=ws,e.CacheLookupPolicy=as,e.ClientAuthError=or,e.ClientAuthErrorCodes=er,e.ClientAuthErrorMessage=rr,e.ClientConfigurationError=Xr,e.ClientConfigurationErrorCodes=Yr,e.ClientConfigurationErrorMessage=Jr,e.DEFAULT_IFRAME_TIMEOUT_MS=_s,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case ha.LOGIN_START:return os.Login;case ha.SSO_SILENT_START:return os.SsoSilent;case ha.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return os.AcquireToken;break;case ha.HANDLE_REDIRECT_START:return os.HandleRedirect;case ha.LOGOUT_START:return os.Logout;case ha.SSO_SILENT_SUCCESS:case ha.SSO_SILENT_FAILURE:if(r&&r!==os.SsoSilent)break;return os.None;case ha.LOGOUT_END:if(r&&r!==os.Logout)break;return os.None;case ha.HANDLE_REDIRECT_END:if(r&&r!==os.HandleRedirect)break;return os.None;case ha.LOGIN_SUCCESS:case ha.LOGIN_FAILURE:case ha.ACQUIRE_TOKEN_SUCCESS:case ha.ACQUIRE_TOKEN_FAILURE:case ha.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==os.Login&&r!==os.AcquireToken)break;return os.None}}return null}},e.EventType=ha,e.InteractionRequiredAuthError=an,e.InteractionRequiredAuthErrorCodes=tn,e.InteractionRequiredAuthErrorMessage=sn,e.InteractionStatus=os,e.JsonWebTokenTypes=rt,e.Logger=ar,e.MemoryStorage=$s,e.NavigationClient=Is,e.OIDC_DEFAULT_SCOPES=s,e.PerformanceEvents=Bo,e.PromptValue=de,e.ProtocolMode=co,e.PublicClientApplication=Ga,e.PublicClientNext=Wa,e.ServerError=Po,e.ServerResponseType=fe,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new ar(r,As,ks),this.cryptoOps=new Ys(this.logger),this.popTokenGenerator=new gn(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=eo,e.UrlString=go,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.stubbedPublicClientApplication=Ya,e.version=ks}));
|