@azure/msal-browser 3.6.0 → 3.7.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.
Files changed (147) hide show
  1. package/dist/app/IPublicClientApplication.mjs +1 -1
  2. package/dist/app/PublicClientApplication.mjs +1 -1
  3. package/dist/app/PublicClientNext.mjs +1 -1
  4. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +1 -1
  5. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  6. package/dist/cache/AsyncMemoryStorage.mjs +1 -1
  7. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  8. package/dist/cache/BrowserCacheManager.mjs +9 -9
  9. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  10. package/dist/cache/BrowserStorage.mjs +1 -1
  11. package/dist/cache/CryptoKeyStore.mjs +1 -1
  12. package/dist/cache/DatabaseStorage.mjs +1 -1
  13. package/dist/cache/MemoryStorage.mjs +1 -1
  14. package/dist/cache/TokenCache.d.ts.map +1 -1
  15. package/dist/cache/TokenCache.mjs +6 -3
  16. package/dist/cache/TokenCache.mjs.map +1 -1
  17. package/dist/config/Configuration.mjs +1 -1
  18. package/dist/controllers/ControllerFactory.mjs +1 -1
  19. package/dist/controllers/NestedAppAuthController.mjs +1 -1
  20. package/dist/controllers/StandardController.d.ts.map +1 -1
  21. package/dist/controllers/StandardController.mjs +40 -19
  22. package/dist/controllers/StandardController.mjs.map +1 -1
  23. package/dist/controllers/UnknownOperatingContextController.mjs +1 -1
  24. package/dist/crypto/BrowserCrypto.mjs +1 -1
  25. package/dist/crypto/CryptoOps.mjs +1 -1
  26. package/dist/crypto/PkceGenerator.mjs +1 -1
  27. package/dist/crypto/SignedHttpRequest.mjs +1 -1
  28. package/dist/encode/Base64Decode.mjs +1 -1
  29. package/dist/encode/Base64Encode.mjs +1 -1
  30. package/dist/error/BrowserAuthError.mjs +1 -1
  31. package/dist/error/BrowserAuthErrorCodes.mjs +1 -1
  32. package/dist/error/BrowserConfigurationAuthError.mjs +1 -1
  33. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  34. package/dist/error/NativeAuthError.mjs +1 -1
  35. package/dist/error/NativeAuthErrorCodes.mjs +1 -1
  36. package/dist/error/NestedAppAuthError.mjs +1 -1
  37. package/dist/event/EventHandler.mjs +1 -1
  38. package/dist/event/EventMessage.mjs +1 -1
  39. package/dist/event/EventType.mjs +1 -1
  40. package/dist/index.mjs +1 -1
  41. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  42. package/dist/interaction_client/BaseInteractionClient.mjs +4 -7
  43. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  44. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  45. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  46. package/dist/interaction_client/NativeInteractionClient.mjs +4 -2
  47. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  48. package/dist/interaction_client/PopupClient.mjs +1 -1
  49. package/dist/interaction_client/RedirectClient.mjs +1 -1
  50. package/dist/interaction_client/SilentAuthCodeClient.mjs +1 -1
  51. package/dist/interaction_client/SilentCacheClient.mjs +1 -1
  52. package/dist/interaction_client/SilentIframeClient.mjs +1 -1
  53. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  54. package/dist/interaction_client/SilentRefreshClient.mjs +5 -1
  55. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
  56. package/dist/interaction_client/StandardInteractionClient.mjs +2 -2
  57. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  58. package/dist/interaction_handler/InteractionHandler.mjs +1 -1
  59. package/dist/interaction_handler/RedirectHandler.mjs +1 -1
  60. package/dist/interaction_handler/SilentHandler.mjs +1 -1
  61. package/dist/naa/AuthResult.d.ts +7 -0
  62. package/dist/naa/AuthResult.d.ts.map +1 -0
  63. package/dist/naa/BridgeError.mjs +1 -1
  64. package/dist/naa/BridgeProxy.d.ts +11 -15
  65. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  66. package/dist/naa/BridgeProxy.mjs +33 -31
  67. package/dist/naa/BridgeProxy.mjs.map +1 -1
  68. package/dist/naa/BridgeRequest.d.ts +3 -2
  69. package/dist/naa/BridgeRequest.d.ts.map +1 -1
  70. package/dist/naa/BridgeRequestEnvelope.d.ts +2 -3
  71. package/dist/naa/BridgeRequestEnvelope.d.ts.map +1 -1
  72. package/dist/naa/BridgeResponseEnvelope.d.ts +5 -2
  73. package/dist/naa/BridgeResponseEnvelope.d.ts.map +1 -1
  74. package/dist/naa/BridgeStatusCode.d.ts +11 -10
  75. package/dist/naa/BridgeStatusCode.d.ts.map +1 -1
  76. package/dist/naa/BridgeStatusCode.mjs +11 -12
  77. package/dist/naa/BridgeStatusCode.mjs.map +1 -1
  78. package/dist/naa/IBridgeProxy.d.ts +3 -5
  79. package/dist/naa/IBridgeProxy.d.ts.map +1 -1
  80. package/dist/naa/{InitializeBridgeResponse.d.ts → InitContext.d.ts} +2 -2
  81. package/dist/naa/InitContext.d.ts.map +1 -0
  82. package/dist/naa/TokenRequest.d.ts +1 -2
  83. package/dist/naa/TokenRequest.d.ts.map +1 -1
  84. package/dist/naa/TokenResponse.d.ts +1 -3
  85. package/dist/naa/TokenResponse.d.ts.map +1 -1
  86. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +2 -2
  87. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  88. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +18 -18
  89. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  90. package/dist/navigation/NavigationClient.mjs +1 -1
  91. package/dist/network/FetchClient.mjs +1 -1
  92. package/dist/operatingcontext/BaseOperatingContext.d.ts +2 -1
  93. package/dist/operatingcontext/BaseOperatingContext.d.ts.map +1 -1
  94. package/dist/operatingcontext/BaseOperatingContext.mjs +54 -3
  95. package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -1
  96. package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
  97. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +1 -1
  98. package/dist/operatingcontext/UnknownOperatingContext.mjs +1 -1
  99. package/dist/packageMetadata.d.ts +1 -1
  100. package/dist/packageMetadata.mjs +2 -2
  101. package/dist/request/SilentRequest.d.ts +1 -0
  102. package/dist/request/SilentRequest.d.ts.map +1 -1
  103. package/dist/response/ResponseHandler.mjs +1 -1
  104. package/dist/telemetry/BrowserPerformanceClient.d.ts +1 -3
  105. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  106. package/dist/telemetry/BrowserPerformanceClient.mjs +63 -26
  107. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  108. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
  109. package/dist/utils/BrowserConstants.d.ts +4 -0
  110. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  111. package/dist/utils/BrowserConstants.mjs +10 -2
  112. package/dist/utils/BrowserConstants.mjs.map +1 -1
  113. package/dist/utils/BrowserProtocolUtils.mjs +1 -1
  114. package/dist/utils/BrowserUtils.mjs +1 -1
  115. package/lib/msal-browser.cjs +3470 -3857
  116. package/lib/msal-browser.cjs.map +1 -1
  117. package/lib/msal-browser.js +3470 -3857
  118. package/lib/msal-browser.js.map +1 -1
  119. package/lib/msal-browser.min.js +66 -71
  120. package/package.json +2 -2
  121. package/src/cache/BrowserCacheManager.ts +7 -19
  122. package/src/cache/TokenCache.ts +6 -3
  123. package/src/controllers/StandardController.ts +58 -23
  124. package/src/interaction_client/BaseInteractionClient.ts +6 -18
  125. package/src/interaction_client/NativeInteractionClient.ts +2 -1
  126. package/src/interaction_client/SilentRefreshClient.ts +8 -0
  127. package/src/interaction_client/StandardInteractionClient.ts +2 -2
  128. package/src/naa/AuthResult.ts +12 -0
  129. package/src/naa/BridgeProxy.ts +59 -68
  130. package/src/naa/BridgeRequest.ts +6 -2
  131. package/src/naa/BridgeRequestEnvelope.ts +1 -13
  132. package/src/naa/BridgeResponseEnvelope.ts +5 -7
  133. package/src/naa/BridgeStatusCode.ts +12 -10
  134. package/src/naa/IBridgeProxy.ts +3 -14
  135. package/src/naa/{InitializeBridgeResponse.ts → InitContext.ts} +1 -1
  136. package/src/naa/TokenRequest.ts +1 -2
  137. package/src/naa/TokenResponse.ts +1 -4
  138. package/src/naa/mapping/NestedAppAuthAdapter.ts +19 -19
  139. package/src/operatingcontext/BaseOperatingContext.ts +64 -7
  140. package/src/packageMetadata.ts +1 -1
  141. package/src/request/SilentRequest.ts +1 -0
  142. package/src/telemetry/BrowserPerformanceClient.ts +95 -42
  143. package/src/utils/BrowserConstants.ts +11 -0
  144. package/dist/naa/AccountRequests.d.ts +0 -10
  145. package/dist/naa/AccountRequests.d.ts.map +0 -1
  146. package/dist/naa/InitializeBridgeResponse.d.ts.map +0 -1
  147. package/src/naa/AccountRequests.ts +0 -16
@@ -1,72 +1,67 @@
1
- /*! @azure/msal-browser v3.6.0 2023-12-01 */
1
+ /*! @azure/msal-browser v3.7.1 2024-01-23 */
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.5.0 2023-12-01 */
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",A="organizations",_="consumers",k="access_token",S="xms_cc",E={LOGIN:"login",SELECT_ACCOUNT:"select_account",CONSENT:"consent",NONE:"none",CREATE:"create",NO_SESSION:"no_session"},b={PLAIN:"plain",S256:"S256"},R={QUERY:"query",FRAGMENT:"fragment"},P={...R,FORM_POST:"form_post"},M="authorization_code",N="refresh_token",O="MSSTS",q="ADFS",L="Generic",U={CACHE_KEY_SEPARATOR:"-",CLIENT_INFO_SEPARATOR:"."},H={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},B="appmetadata",D="1",x="authority-metadata",K=86400,F="config",z="cache",$="network",G="hardcoded_values",j={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"},Q={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},W=60,Y=3600,V="throttling",J="retry-after, h429",X="invalid_grant",Z="client_mismatch",ee="username",te="password",re=200,oe=400,ne="1",ie="3",se="4",ae="2",ce="4",he="5",le="0",de="1",ue="2",ge="3",pe="4",me={Jwt:"JWT",Jwk:"JWK",Pop:"pop"},fe="unexpected_error",ye="post_request_failed";var Ce=Object.freeze({__proto__:null,postRequestFailed:ye,unexpectedError:fe});
5
- /*! @azure/msal-common v14.5.0 2023-12-01 */const ve={[fe]:"Unexpected error in authentication.",[ye]:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."},we={unexpectedError:{code:fe,desc:ve[fe]},postRequestFailed:{code:ye,desc:ve[ye]}};class Ie extends Error{constructor(e,r,o){super(r?`${e}: ${r}`:e),Object.setPrototypeOf(this,Ie.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 Te(e,t){return new Ie(e,t?`${ve[e]} ${t}`:ve[e])}
6
- /*! @azure/msal-common v14.5.0 2023-12-01 */const Ae="client_info_decoding_error",_e="client_info_empty_error",ke="token_parsing_error",Se="null_or_empty_token",Ee="endpoints_resolution_error",be="network_error",Re="openid_config_error",Pe="hash_not_deserialized",Me="invalid_state",Ne="state_mismatch",Oe="state_not_found",qe="nonce_mismatch",Le="auth_time_not_found",Ue="max_age_transpired",He="multiple_matching_tokens",Be="multiple_matching_accounts",De="multiple_matching_appMetadata",xe="request_cannot_be_made",Ke="cannot_remove_empty_scope",Fe="cannot_append_scopeset",ze="empty_input_scopeset",$e="device_code_polling_cancelled",Ge="device_code_expired",je="device_code_unknown_error",Qe="no_account_in_silent_request",We="invalid_cache_record",Ye="invalid_cache_environment",Ve="no_account_found",Je="no_crypto_object",Xe="unexpected_credential_type",Ze="invalid_assertion",et="invalid_client_credential",tt="token_refresh_required",rt="user_timeout_reached",ot="token_claims_cnf_required_for_signedjwt",nt="authorization_code_missing_from_server_response",it="binding_key_not_removed",st="end_session_endpoint_not_supported",at="key_id_missing",ct="no_network_connectivity",ht="user_canceled",lt="missing_tenant_id_error",dt="method_not_implemented",ut="nested_app_auth_bridge_disabled";var gt=Object.freeze({__proto__:null,authTimeNotFound:Le,authorizationCodeMissingFromServerResponse:nt,bindingKeyNotRemoved:it,cannotAppendScopeSet:Fe,cannotRemoveEmptyScope:Ke,clientInfoDecodingError:Ae,clientInfoEmptyError:_e,deviceCodeExpired:Ge,deviceCodePollingCancelled:$e,deviceCodeUnknownError:je,emptyInputScopeSet:ze,endSessionEndpointNotSupported:st,endpointResolutionError:Ee,hashNotDeserialized:Pe,invalidAssertion:Ze,invalidCacheEnvironment:Ye,invalidCacheRecord:We,invalidClientCredential:et,invalidState:Me,keyIdMissing:at,maxAgeTranspired:Ue,methodNotImplemented:dt,missingTenantIdError:lt,multipleMatchingAccounts:Be,multipleMatchingAppMetadata:De,multipleMatchingTokens:He,nestedAppAuthBridgeDisabled:ut,networkError:be,noAccountFound:Ve,noAccountInSilentRequest:Qe,noCryptoObject:Je,noNetworkConnectivity:ct,nonceMismatch:qe,nullOrEmptyToken:Se,openIdConfigError:Re,requestCannotBeMade:xe,stateMismatch:Ne,stateNotFound:Oe,tokenClaimsCnfRequiredForSignedJwt:ot,tokenParsingError:ke,tokenRefreshRequired:tt,unexpectedCredentialType:Xe,userCanceled:ht,userTimeoutReached:rt});
7
- /*! @azure/msal-common v14.5.0 2023-12-01 */const pt={[Ae]:"The client info could not be parsed/decoded correctly",[_e]:"The client info was empty",[ke]:"Token cannot be parsed",[Se]:"The token is null or empty",[Ee]:"Endpoints cannot be resolved",[be]:"Network request failed",[Re]:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.",[Pe]:"The hash parameters could not be deserialized",[Me]:"State was not the expected format",[Ne]:"State mismatch error",[Oe]:"State not found",[qe]:"Nonce mismatch error",[Le]:"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.",[Ue]:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.",[He]:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account.",[Be]:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account",[De]:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata",[xe]:"Token request cannot be made without authorization code or refresh token.",[Ke]:"Cannot remove null or empty scope from ScopeSet",[Fe]:"Cannot append ScopeSet",[ze]:"Empty input ScopeSet cannot be processed",[$e]:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.",[Ge]:"Device code is expired.",[je]:"Device code stopped polling for unknown reasons.",[Qe]:"Please pass an account object, silent flow is not supported without account information",[We]:"Cache record object was null or undefined.",[Ye]:"Invalid environment when attempting to create cache entry",[Ve]:"No account found in cache for given key.",[Je]:"No crypto object detected.",[Xe]:"Unexpected credential type.",[Ze]:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515",[et]:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential",[tt]:"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.",[rt]:"User defined timeout for device code polling reached",[ot]:"Cannot generate a POP jwt if the token_claims are not populated",[nt]:"Server response does not contain an authorization code to proceed",[it]:"Could not remove the credential's binding key from storage.",[st]:"The provided authority does not support logout",[at]:"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.",[ct]:"No network connectivity. Check your internet connection.",[ht]:"User cancelled the flow.",[lt]:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.",[dt]:"This method has not been implemented",[ut]:"The nested app auth bridge is disabled"},mt={clientInfoDecodingError:{code:Ae,desc:pt[Ae]},clientInfoEmptyError:{code:_e,desc:pt[_e]},tokenParsingError:{code:ke,desc:pt[ke]},nullOrEmptyToken:{code:Se,desc:pt[Se]},endpointResolutionError:{code:Ee,desc:pt[Ee]},networkError:{code:be,desc:pt[be]},unableToGetOpenidConfigError:{code:Re,desc:pt[Re]},hashNotDeserialized:{code:Pe,desc:pt[Pe]},invalidStateError:{code:Me,desc:pt[Me]},stateMismatchError:{code:Ne,desc:pt[Ne]},stateNotFoundError:{code:Oe,desc:pt[Oe]},nonceMismatchError:{code:qe,desc:pt[qe]},authTimeNotFoundError:{code:Le,desc:pt[Le]},maxAgeTranspired:{code:Ue,desc:pt[Ue]},multipleMatchingTokens:{code:He,desc:pt[He]},multipleMatchingAccounts:{code:Be,desc:pt[Be]},multipleMatchingAppMetadata:{code:De,desc:pt[De]},tokenRequestCannotBeMade:{code:xe,desc:pt[xe]},removeEmptyScopeError:{code:Ke,desc:pt[Ke]},appendScopeSetError:{code:Fe,desc:pt[Fe]},emptyInputScopeSetError:{code:ze,desc:pt[ze]},DeviceCodePollingCancelled:{code:$e,desc:pt[$e]},DeviceCodeExpired:{code:Ge,desc:pt[Ge]},DeviceCodeUnknownError:{code:je,desc:pt[je]},NoAccountInSilentRequest:{code:Qe,desc:pt[Qe]},invalidCacheRecord:{code:We,desc:pt[We]},invalidCacheEnvironment:{code:Ye,desc:pt[Ye]},noAccountFound:{code:Ve,desc:pt[Ve]},noCryptoObj:{code:Je,desc:pt[Je]},unexpectedCredentialType:{code:Xe,desc:pt[Xe]},invalidAssertion:{code:Ze,desc:pt[Ze]},invalidClientCredential:{code:et,desc:pt[et]},tokenRefreshRequired:{code:tt,desc:pt[tt]},userTimeoutReached:{code:rt,desc:pt[rt]},tokenClaimsRequired:{code:ot,desc:pt[ot]},noAuthorizationCodeFromServer:{code:nt,desc:pt[nt]},bindingKeyNotRemovedError:{code:it,desc:pt[it]},logoutNotSupported:{code:st,desc:pt[st]},keyIdMissing:{code:at,desc:pt[at]},noNetworkConnectivity:{code:ct,desc:pt[ct]},userCanceledError:{code:ht,desc:pt[ht]},missingTenantIdError:{code:lt,desc:pt[lt]},nestedAppAuthBridgeDisabled:{code:ut,desc:pt[ut]}};class ft extends Ie{constructor(e,t){super(e,t?`${pt[e]}: ${t}`:pt[e]),this.name="ClientAuthError",Object.setPrototypeOf(this,ft.prototype)}}function yt(e,t){return new ft(e,t)}
8
- /*! @azure/msal-common v14.5.0 2023-12-01 */const Ct={createNewGuid:()=>{throw yt(dt)},base64Decode:()=>{throw yt(dt)},base64Encode:()=>{throw yt(dt)},async getPublicKeyThumbprint(){throw yt(dt)},async removeTokenBindingKey(){throw yt(dt)},async clearKeystore(){throw yt(dt)},async signJwt(){throw yt(dt)},async hashString(){throw yt(dt)}};
9
- /*! @azure/msal-common v14.5.0 2023-12-01 */var vt;e.LogLevel=void 0,(vt=e.LogLevel||(e.LogLevel={}))[vt.Error=0]="Error",vt[vt.Warning=1]="Warning",vt[vt.Info=2]="Info",vt[vt.Verbose=3]="Verbose",vt[vt.Trace=4]="Trace";class wt{constructor(r,o,n){this.level=e.LogLevel.Info;const i=r||wt.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 wt({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.5.0 2023-12-01 */const It="@azure/msal-common",Tt="14.5.0",At={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.5.0 2023-12-01 */
12
- function _t(e,t){const r=function(e){if(!e)throw yt(Se);const t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(e);if(!t||t.length<4)throw yt(ke);return t[2]}(e);try{const e=t(r);return JSON.parse(e)}catch(e){throw yt(ke)}}function kt(e,t){if(0===t||Date.now()-3e5>e+t)throw yt(Ue)}
13
- /*! @azure/msal-common v14.5.0 2023-12-01 */class St{static nowSeconds(){return Math.round((new Date).getTime()/1e3)}static isTokenExpired(e,t){const r=Number(e)||0;return St.nowSeconds()+t>r}static wasClockTurnedBack(e){return Number(e)>St.nowSeconds()}static delay(e,t){return new Promise((r=>setTimeout((()=>r(t)),e)))}}
14
- /*! @azure/msal-common v14.5.0 2023-12-01 */function Et(e){return[Lt(e),Ut(e),Ht(e),Bt(e),Dt(e)].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}function bt(e,t,r,o,n){return{credentialType:H.ID_TOKEN,homeAccountId:e,environment:t,clientId:o,secret:r,realm:n}}function Rt(e,t,r,o,n,i,s,a,c,h,l,d,u,g,p){const m={homeAccountId:e,credentialType:H.ACCESS_TOKEN,secret:r,cachedAt:St.nowSeconds().toString(),expiresOn:s.toString(),extendedExpiresOn:a.toString(),environment:t,clientId:o,realm:n,target:i,tokenType:l||Q.BEARER};if(d&&(m.userAssertionHash=d),h&&(m.refreshOn=h.toString()),g&&(m.requestedClaims=g,m.requestedClaimsHash=p),m.tokenType?.toLowerCase()!==Q.BEARER.toLowerCase())switch(m.credentialType=H.ACCESS_TOKEN_WITH_AUTH_SCHEME,m.tokenType){case Q.POP:const e=_t(r,c);if(!e?.cnf?.kid)throw yt(ot);m.keyId=e.cnf.kid;break;case Q.SSH:m.keyId=u}return m}function Pt(e,t,r,o,n,i){const s={credentialType:H.REFRESH_TOKEN,homeAccountId:e,environment:t,clientId:o,secret:r};return i&&(s.userAssertionHash=i),n&&(s.familyId=n),s}function Mt(e){return e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")}function Nt(e){return!!e&&(Mt(e)&&e.hasOwnProperty("realm")&&e.hasOwnProperty("target")&&(e.credentialType===H.ACCESS_TOKEN||e.credentialType===H.ACCESS_TOKEN_WITH_AUTH_SCHEME))}function Ot(e){return!!e&&(Mt(e)&&e.hasOwnProperty("realm")&&e.credentialType===H.ID_TOKEN)}function qt(e){return!!e&&(Mt(e)&&e.credentialType===H.REFRESH_TOKEN)}function Lt(e){return[e.homeAccountId,e.environment].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}function Ut(e){const t=e.credentialType===H.REFRESH_TOKEN&&e.familyId||e.clientId;return[e.credentialType,t,e.realm||""].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}function Ht(e){return(e.target||"").toLowerCase()}function Bt(e){return(e.requestedClaimsHash||"").toLowerCase()}function Dt(e){return e.tokenType&&e.tokenType.toLowerCase()!==Q.BEARER.toLowerCase()?e.tokenType.toLowerCase():""}
15
- /*! @azure/msal-common v14.5.0 2023-12-01 */
16
- const xt="redirect_uri_empty",Kt="claims_request_parsing_error",Ft="authority_uri_insecure",zt="url_parse_error",$t="empty_url_error",Gt="empty_input_scopes_error",jt="invalid_prompt_value",Qt="invalid_claims",Wt="token_request_empty",Yt="logout_request_empty",Vt="invalid_code_challenge_method",Jt="pkce_params_missing",Xt="invalid_cloud_discovery_metadata",Zt="invalid_authority_metadata",er="untrusted_authority",tr="missing_ssh_jwk",rr="missing_ssh_kid",or="missing_nonce_authentication_header",nr="invalid_authentication_header",ir="cannot_set_OIDCOptions",sr="cannot_allow_native_broker",ar="authority_mismatch";var cr=Object.freeze({__proto__:null,authorityMismatch:ar,authorityUriInsecure:Ft,cannotAllowNativeBroker:sr,cannotSetOIDCOptions:ir,claimsRequestParsingError:Kt,emptyInputScopesError:Gt,invalidAuthenticationHeader:nr,invalidAuthorityMetadata:Zt,invalidClaims:Qt,invalidCloudDiscoveryMetadata:Xt,invalidCodeChallengeMethod:Vt,invalidPromptValue:jt,logoutRequestEmpty:Yt,missingNonceAuthenticationHeader:or,missingSshJwk:tr,missingSshKid:rr,pkceParamsMissing:Jt,redirectUriEmpty:xt,tokenRequestEmpty:Wt,untrustedAuthority:er,urlEmptyError:$t,urlParseError:zt});
17
- /*! @azure/msal-common v14.5.0 2023-12-01 */const hr={[xt]:"A redirect URI is required for all calls, and none has been set.",[Kt]:"Could not parse the given claims request object.",[Ft]:"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",[zt]:"URL could not be parsed into appropriate segments.",[$t]:"URL was empty or null.",[Gt]:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",[jt]:"Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest",[Qt]:"Given claims parameter must be a stringified JSON object.",[Wt]:"Token request was empty and not found in cache.",[Yt]:"The logout request was null or undefined.",[Vt]:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',[Jt]:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",[Xt]:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",[Zt]:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",[er]:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",[tr]:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",[rr]:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",[or]:"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.",[nr]:"Invalid authentication header provided",[ir]:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",[sr]:"Cannot set allowNativeBroker parameter to true when not in AAD protocol mode.",[ar]:"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."},lr={redirectUriNotSet:{code:xt,desc:hr[xt]},claimsRequestParsingError:{code:Kt,desc:hr[Kt]},authorityUriInsecure:{code:Ft,desc:hr[Ft]},urlParseError:{code:zt,desc:hr[zt]},urlEmptyError:{code:$t,desc:hr[$t]},emptyScopesError:{code:Gt,desc:hr[Gt]},invalidPrompt:{code:jt,desc:hr[jt]},invalidClaimsRequest:{code:Qt,desc:hr[Qt]},tokenRequestEmptyError:{code:Wt,desc:hr[Wt]},logoutRequestEmptyError:{code:Yt,desc:hr[Yt]},invalidCodeChallengeMethod:{code:Vt,desc:hr[Vt]},invalidCodeChallengeParams:{code:Jt,desc:hr[Jt]},invalidCloudDiscoveryMetadata:{code:Xt,desc:hr[Xt]},invalidAuthorityMetadata:{code:Zt,desc:hr[Zt]},untrustedAuthority:{code:er,desc:hr[er]},missingSshJwk:{code:tr,desc:hr[tr]},missingSshKid:{code:rr,desc:hr[rr]},missingNonceAuthenticationHeader:{code:or,desc:hr[or]},invalidAuthenticationHeader:{code:nr,desc:hr[nr]},cannotSetOIDCOptions:{code:ir,desc:hr[ir]},cannotAllowNativeBroker:{code:sr,desc:hr[sr]},authorityMismatch:{code:ar,desc:hr[ar]}};class dr extends Ie{constructor(e){super(e,hr[e]),this.name="ClientConfigurationError",Object.setPrototypeOf(this,dr.prototype)}}function ur(e){return new dr(e)}
18
- /*! @azure/msal-common v14.5.0 2023-12-01 */class gr{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.5.0 2023-12-01 */class pr{constructor(e){const t=e?gr.trimArrayEntries([...e]):[],r=t?gr.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 pr(r)}static createSearchScopes(e){const r=new pr(e);return r.containsOnlyOIDCScopes()?r.removeScope(t.OFFLINE_ACCESS_SCOPE):r.removeOIDCScopes(),r}validateInputScopes(e){if(!e||e.length<1)throw ur(Gt)}containsScope(e){const t=this.printScopesLowerCase().split(" "),r=new pr(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 yt(Fe)}}removeScope(e){if(!e)throw yt(Ke);this.scopes.delete(e.trim())}removeOIDCScopes(){a.forEach((e=>{this.scopes.delete(e)}))}unionScopeSets(e){if(!e)throw yt(ze);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 yt(ze);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.5.0 2023-12-01 */function mr(e,t){if(!e)throw yt(_e);try{const r=t(e);return JSON.parse(r)}catch(e){throw yt(Ae)}}function fr(e){if(!e)throw yt(Ae);const r=e.split(U.CLIENT_INFO_SEPARATOR,2);return{uid:r[0],utid:r.length<2?t.EMPTY_STRING:r[1]}}
21
- /*! @azure/msal-common v14.5.0 2023-12-01 */function yr(e,t){return!!e&&!!t&&e===t.split(".")[1]}function Cr(e,t){const{oid:r,sub:o,tid:n,name:i,tfp:s,acr:a}=t,c=n||s||a||"";return{tenantId:c,localAccountId:r||o||"",name:i,isHomeTenant:yr(c,e)}}function vr(e,t,r){let o=e;if(t){const{isHomeTenant:r,...n}=t;o={...e,...n}}if(r){const{isHomeTenant:t,...n}=Cr(e.homeAccountId,r);return o={...o,...n,idTokenClaims:r},o}return o}
22
- /*! @azure/msal-common v14.5.0 2023-12-01 */const wr=0,Ir=1,Tr=2,Ar=3;
23
- /*! @azure/msal-common v14.5.0 2023-12-01 */function _r(e){if(e){return e.tid||e.tfp||e.acr||null}return null}
24
- /*! @azure/msal-common v14.5.0 2023-12-01 */const kr={AAD:"AAD",OIDC:"OIDC"};
25
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Sr{generateAccountId(){return[this.homeAccountId,this.environment].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}generateAccountKey(){return Sr.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,nativeAccountId:this.nativeAccountId,authorityType:this.authorityType,tenantProfiles:new Map((this.tenantProfiles||[]).map((e=>[e.tenantId,e])))}}isSingleTenant(){return!this.tenantProfiles}static generateAccountCacheKey(e){const t=e.homeAccountId.split(".")[1];return[e.homeAccountId,e.environment||"",t||e.tenantId||""].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}static createAccount(e,t,r){const o=new Sr;let n;t.authorityType===Ir?o.authorityType=q:t.protocolMode===kr.AAD?o.authorityType=O:o.authorityType=L,e.clientInfo&&r&&(n=mr(e.clientInfo,r)),o.clientInfo=e.clientInfo,o.homeAccountId=e.homeAccountId,o.nativeAccountId=e.nativeAccountId;const i=e.environment||t&&t.getPreferredCache();if(!i)throw yt(Ye);o.environment=i,o.realm=n?.utid||_r(e.idTokenClaims)||"",o.localAccountId=n?.uid||e.idTokenClaims.oid||e.idTokenClaims.sub||"";const s=e.idTokenClaims.preferred_username||e.idTokenClaims.upn,a=e.idTokenClaims.emails?e.idTokenClaims.emails[0]:null;if(o.username=s||a||"",o.name=e.idTokenClaims.name,o.cloudGraphHostName=e.cloudGraphHostName,o.msGraphHost=e.msGraphHost,e.tenantProfiles)o.tenantProfiles=e.tenantProfiles;else{const t=[];if(e.idTokenClaims){const r=Cr(e.homeAccountId,e.idTokenClaims);t.push(r)}o.tenantProfiles=t}return o}static createFromAccountInfo(e,t,r){const o=new Sr;return o.authorityType=e.authorityType||L,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.tenantProfiles=Array.from(e.tenantProfiles?.values()||[]),o}static generateHomeAccountId(e,t,r,o,n){if(t!==Ir&&t!==Tr){if(e)try{const t=mr(e,o.base64Decode);if(t.uid&&t.utid)return`${t.uid}.${t.utid}`}catch(e){}r.warning("No client info in response")}return n?.sub||""}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}}
26
- /*! @azure/msal-common v14.5.0 2023-12-01 */
27
- /*! @azure/msal-common v14.5.0 2023-12-01 */
28
- function Er(e){return e.startsWith("#/")?e.substring(2):e.startsWith("#")||e.startsWith("?")?e.substring(1):e}function br(e){if(!e||e.indexOf("=")<0)return null;try{const t=Er(e),r=Object.fromEntries(new URLSearchParams(t));if(r.code||r.error||r.error_description||r.state)return r}catch(e){throw yt(Pe)}return null}
29
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Rr{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,!this._urlString)throw ur($t);e.includes("#")||(this._urlString=Rr.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return gr.endsWith(t,"?")?t=t.slice(0,-1):gr.endsWith(t,"?/")&&(t=t.slice(0,-2)),gr.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch(e){throw ur(zt)}if(!e.HostNameAndPort||!e.PathSegments)throw ur(zt);if(!e.Protocol||"https:"!==e.Protocol.toLowerCase())throw ur(Ft)}static appendQueryString(e,t){return t?e.indexOf("?")<0?`${e}?${t}`:`${e}&${t}`:e}static removeHashFromUrl(e){return Rr.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const t=this.getUrlComponents(),r=t.PathSegments;return!e||0===r.length||r[0]!==T&&r[0]!==A||(r[0]=e),Rr.constructAuthorityUriFromObject(t)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw ur(zt);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 ur(zt);return r[2]}static getAbsoluteUrl(e,r){if(e[0]===t.FORWARD_SLASH){const t=new Rr(r).getUrlComponents();return t.Protocol+"//"+t.HostNameAndPort+e}return e}static constructAuthorityUriFromObject(e){return new Rr(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static hashContainsKnownProperties(e){return!!br(e)}}
30
- /*! @azure/msal-common v14.5.0 2023-12-01 */const Pr={"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"}},Mr={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"]}]},Nr=new Set;function Or(e,t,r,o){if(o?.trace(`getAliasesFromMetadata called with source: ${r}`),e&&t){const n=qr(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 qr(e,t){for(let r=0;r<e.length;r++){const o=e[r];if(o.aliases.includes(t))return o}return null}
31
- /*! @azure/msal-common v14.5.0 2023-12-01 */Mr.metadata.forEach((e=>{e.aliases.forEach((e=>{Nr.add(e)}))}));class Lr{constructor(){this.expiresAt=St.nowSeconds()+K}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=St.nowSeconds()+K}isExpired(){return this.expiresAt<=St.nowSeconds()}static isAuthorityMetadataEntity(e,t){return!!t&&(0===e.indexOf(x)&&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"))}}
32
- /*! @azure/msal-common v14.5.0 2023-12-01 */
33
- /*! @azure/msal-common v14.5.0 2023-12-01 */
34
- const Ur={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"},Hr=1,Br=2,Dr=new Set(["accessTokenSize","durationMs","idTokenSize","matsSilentStatus","matsHttpStatus","refreshTokenSize","queuedTimeMs","startTimeMs","status","multiMatchedAT","multiMatchedID","multiMatchedRT"]),xr=(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}},Kr=(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}))};
35
- /*! @azure/msal-common v14.5.0 2023-12-01 */
36
- class Fr{constructor(e,t,r,o){this.networkInterface=e,this.logger=t,this.performanceClient=r,this.correlationId=o}async detectRegion(e,r){this.performanceClient?.addQueueMeasurement(Ur.RegionDiscoveryDetectRegion,this.correlationId);let o=e;if(o)r.region_source=ie;else{const e=Fr.IMDS_OPTIONS;try{const n=await Kr(this.getRegionFromIMDS.bind(this),Ur.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t.IMDS_VERSION,e);if(n.status===re&&(o=n.body,r.region_source=se),n.status===oe){const t=await Kr(this.getCurrentVersion.bind(this),Ur.RegionDiscoveryGetCurrentVersion,this.logger,this.performanceClient,this.correlationId)(e);if(!t)return r.region_source=ne,null;const n=await Kr(this.getRegionFromIMDS.bind(this),Ur.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t,e);n.status===re&&(o=n.body,r.region_source=se)}}catch(e){return r.region_source=ne,null}}return o||(r.region_source=ne),o||null}async getRegionFromIMDS(e,r){return this.performanceClient?.addQueueMeasurement(Ur.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?api-version=${e}&format=text`,r,t.IMDS_TIMEOUT)}async getCurrentVersion(e){this.performanceClient?.addQueueMeasurement(Ur.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?format=json`,e);return r.status===oe&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch(e){return null}}}Fr.IMDS_OPTIONS={headers:{Metadata:"true"}};
37
- /*! @azure/msal-common v14.5.0 2023-12-01 */
38
- class zr{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 Fr(t,this.logger,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(t.CIAM_AUTH_URL))return Ar;const r=e.PathSegments;if(r.length)switch(r[0].toLowerCase()){case t.ADFS:return Ir;case t.DSTS:return Tr}return wr}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 Rr(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 yt(Ee)}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw yt(Ee)}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw yt(Ee)}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw yt(st);return this.replacePath(this.metadata.end_session_endpoint)}throw yt(Ee)}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw yt(Ee)}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw yt(Ee)}canReplaceTenant(e){return 1===e.PathSegments.length&&!zr.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===wr&&this.protocolMode===kr.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const r=new Rr(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 Rr(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===Ir||this.protocolMode!==kr.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(Ur.AuthorityResolveEndpointsAsync,this.correlationId);const e=this.getCurrentMetadataEntity(),t=await Kr(this.updateCloudDiscoveryMetadata.bind(this),Ur.AuthorityUpdateCloudDiscoveryMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network);const r=await Kr(this.updateEndpointMetadata.bind(this),Ur.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 Lr,e.updateCanonicalAuthority(this.canonicalAuthority)),e}updateCachedMetadata(e,t,r){t!==z&&r?.source!==z&&(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(Ur.AuthorityUpdateEndpointMetadata,this.correlationId);const t=this.updateEndpointMetadataFromLocalSources(e);if(t){if(t.source===G&&this.authorityOptions.azureRegionConfiguration?.azureRegion&&t.metadata){const r=await Kr(this.updateMetadataWithRegionalInformation.bind(this),Ur.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(t.metadata);e.updateEndpointMetadata(r,!1)}return t.source}let r=await Kr(this.getEndpointMetadataFromNetwork.bind(this),Ur.AuthorityGetEndpointMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return this.authorityOptions.azureRegionConfiguration?.azureRegion&&(r=await Kr(this.updateMetadataWithRegionalInformation.bind(this),Ur.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(r)),e.updateEndpointMetadata(r,!0),$;throw yt(Re,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:F};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:G,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:z}):(r&&this.logger.verbose("The metadata entity is expired."),null)}isAuthoritySameType(e){return new Rr(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 ur(Zt)}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Ur.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 Pr?Pr[this.canonicalAuthority]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(Ur.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const r=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(r){if(r!==t.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=ae,this.regionDiscoveryMetadata.region_used=r,zr.replaceWithRegionalInformation(e,r);const o=await Kr(this.regionDiscovery.detectRegion.bind(this.regionDiscovery),Ur.RegionDiscoveryDetectRegion,this.logger,this.performanceClient,this.correlationId)(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(o)return this.regionDiscoveryMetadata.region_outcome=ce,this.regionDiscoveryMetadata.region_used=o,zr.replaceWithRegionalInformation(e,o);this.regionDiscoveryMetadata.region_outcome=he}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(Ur.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=this.updateCloudDiscoveryMetadataFromLocalSources(e);if(t)return t;const r=await Kr(this.getCloudDiscoveryMetadataFromNetwork.bind(this),Ur.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return e.updateCloudDiscoveryMetadata(r,!0),$;throw ur(er)}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),F;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,qr(Mr.metadata,o));if(t)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),e.updateCloudDiscoveryMetadata(t,!1),G;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."),z):(n&&this.logger.verbose("The metadata entity is expired."),null)}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===Ar)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),zr.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=qr(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."),ur(Xt)}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),zr.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(Ur.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")}
39
- /*! @azure/msal-common v14.5.0 2023-12-01 */(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=qr(s,this.hostnameAndPort)}catch(e){if(e instanceof Ie)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=zr.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),o}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter((e=>e&&Rr.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort)).length>0}static generateAuthority(e,r){let o;if(r&&r.azureCloudInstance!==At.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 yt(Ee)}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return Nr.has(e)}static isPublicCloudAuthority(e){return t.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,r,o){const n=new Rr(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=Rr.constructAuthorityUriFromObject({...n.getUrlComponents(),HostNameAndPort:s}).urlString;return o?`${a}?${o}`:a}static replaceWithRegionalInformation(e,t){const r={...e};return r.authorization_endpoint=zr.buildRegionalAuthorityString(r.authorization_endpoint,t),r.token_endpoint=zr.buildRegionalAuthorityString(r.token_endpoint,t),r.end_session_endpoint&&(r.end_session_endpoint=zr.buildRegionalAuthorityString(r.end_session_endpoint,t)),r}static transformCIAMAuthority(e){let r=e;const o=new Rr(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 $r(e){return e.endsWith(t.FORWARD_SLASH)?e:`${e}${t.FORWARD_SLASH}`}zr.reservedTenantDomains=new Set(["{tenant}","{tenantid}",T,_,A]);
40
- /*! @azure/msal-common v14.5.0 2023-12-01 */
41
- class Gr{constructor(e,t,r,o){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(It,Tt),this.staticAuthorityOptions=o}getAllAccounts(e){return this.buildTenantProfiles(this.getAccountsFilteredBy(e||{}),e)}getAccountInfoFilteredBy(e){const t=this.getAllAccounts(e);if(t.length>1){return t.sort((e=>e.idTokenClaims?-1:1))[0]}return 1===t.length?t[0]:null}getBaseAccountInfo(e){const t=this.getAccountsFilteredBy(e);return t.length>0?t[0].getAccountInfo():null}buildTenantProfiles(e,t){return e.flatMap((e=>this.getAccountInfoForTenantProfiles(e,t)))}getAccountInfoForTenantProfiles(e,t){return this.getTenantProfilesFromAccountEntity(e,t?.tenantId,t)}getTenantedAccountInfoByFilter(e,t,r,o){let n,i=null;if(o&&!this.tenantProfileMatchesFilter(r,o))return null;const s=this.getIdToken(e,t,r.tenantId);return s&&(n=_t(s.secret,this.cryptoImpl.base64Decode),!this.idTokenClaimsMatchTenantProfileFilter(n,o))?null:(i=vr(e,r,n),i)}getTenantProfilesFromAccountEntity(e,t,r){const o=e.getAccountInfo();let n=o.tenantProfiles||new Map;const i=this.getTokenKeys();if(t){const e=n.get(t);if(!e)return[];n=new Map([[t,e]])}const s=[];return n.forEach((e=>{const t=this.getTenantedAccountInfoByFilter(o,i,e,r);t&&s.push(t)})),s}tenantProfileMatchesFilter(e,t){return!(t.localAccountId&&!this.matchLocalAccountIdFromTenantProfile(e,t.localAccountId))&&((!t.name||e.name===t.name)&&(void 0===t.isHomeTenant||e.isHomeTenant===t.isHomeTenant))}idTokenClaimsMatchTenantProfileFilter(e,t){if(t){if(t.localAccountId&&!this.matchLocalAccountIdFromTokenClaims(e,t.localAccountId))return!1;if(t.loginHint&&!this.matchLoginHintFromTokenClaims(e,t.loginHint))return!1;if(t.username&&!this.matchUsername(e.preferred_username,t.username))return!1;if(t.name&&!this.matchName(e,t.name))return!1;if(t.sid&&!this.matchSid(e,t.sid))return!1}return!0}async saveCacheRecord(e,t){if(!e)throw yt(We);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=pr.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)){pr.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))return;const o=this.getAccount(t,this.commonLogger);if(!o)return;if(e.homeAccountId&&!this.matchHomeAccountId(o,e.homeAccountId))return;if(e.username&&!this.matchUsername(o.username,e.username))return;if(e.environment&&!this.matchEnvironment(o,e.environment))return;if(e.realm&&!this.matchRealm(o,e.realm))return;if(e.nativeAccountId&&!this.matchNativeAccountId(o,e.nativeAccountId))return;if(e.authorityType&&!this.matchAuthorityType(o,e.authorityType))return;const n={localAccountId:e?.localAccountId,name:e?.name},i=o.tenantProfiles?.filter((e=>this.tenantProfileMatchesFilter(e,n)));i&&0===i.length||r.push(o)})),r}isAccountKey(e,t,r){return!(e.split(U.CACHE_KEY_SEPARATOR).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(U.CACHE_KEY_SEPARATOR).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(H.ID_TOKEN.toLowerCase())&&-1===t.indexOf(H.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(H.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(H.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(H.REFRESH_TOKEN.toLowerCase())>-1){const e=`${H.REFRESH_TOKEN}${U.CACHE_KEY_SEPARATOR}${this.clientId}${U.CACHE_KEY_SEPARATOR}`,r=`${H.REFRESH_TOKEN}${U.CACHE_KEY_SEPARATOR}${D}${U.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===H.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===Q.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,this.commonLogger);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)}updateOutdatedCachedAccount(e,t,r){if(t&&t.isSingleTenant()){this.commonLogger?.verbose("updateOutdatedCachedAccount: Found a single-tenant (outdated) account entity in the cache, migrating to multi-tenant account entity");const o=this.getAccountKeys().filter((e=>e.startsWith(t.homeAccountId))),n=[];o.forEach((e=>{const t=this.getCachedAccountEntity(e);t&&n.push(t)}));const i=n.find((e=>yr(e.realm,e.homeAccountId)))||n[0];i.tenantProfiles=n.map((e=>({tenantId:e.realm,localAccountId:e.localAccountId,name:e.name,isHomeTenant:yr(e.realm,e.homeAccountId)})));const s=Gr.toObject(new Sr,{...i}),a=s.generateAccountKey();return o.forEach((t=>{t!==a&&this.removeOutdatedAccount(e)})),this.setAccount(s),r?.verbose("Updated an outdated account entity in the cache"),s}return t}async removeAccessToken(e){const t=this.getAccessTokenCredential(e);if(t){if(t.credentialType.toLowerCase()===H.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===Q.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw yt(it)}}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=e.tenantId||function(e){const t=new Rr(e).getUrlComponents().PathSegments.slice(-1)[0].toLowerCase();switch(t){case T:case A:case _:return;default:return t}}(t.authority),s=this.getTokenKeys();return{account:this.readAccountFromCache(e),idToken:this.getIdToken(e,s,i,o,n),accessToken:this.getAccessToken(e,t,s,i,o,n),refreshToken:this.getRefreshToken(e,!1,s,o,n),appMetadata:this.readAppMetadataFromCache(r)}}readAccountFromCache(e){const t=Sr.generateAccountCacheKey(e);return this.getAccount(t,this.commonLogger)}getIdToken(e,t,r,o,n){this.commonLogger.trace("CacheManager - getIdToken called");const i={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:H.ID_TOKEN,clientId:this.clientId,realm:r},s=this.getIdTokensByFilter(i,t),a=s.size;if(a<1)return this.commonLogger.info("CacheManager:getIdToken - No token found"),null;if(a>1){let t=s;if(!r){const r=new Map;s.forEach(((t,o)=>{t.realm===e.tenantId&&r.set(o,t)}));const o=r.size;if(o<1)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result"),s.values().next().value;if(1===o)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile"),r.values().next().value;t=r}return this.commonLogger.info("CacheManager:getIdToken - Multiple matching ID tokens found, clearing them"),t.forEach(((e,t)=>{this.removeIdToken(t)})),o&&n&&o.addFields({multiMatchedID:s.size},n),null}return this.commonLogger.info("CacheManager:getIdToken - Returning ID token"),s.values().next().value}getIdTokensByFilter(e,t){const r=t&&t.idToken||this.getTokenKeys().idToken,o=new Map;return r.forEach((t=>{if(!this.idTokenKeyMatchesFilter(t,{clientId:this.clientId,...e}))return;const r=this.getIdTokenCredential(t);r&&this.credentialMatchesFilter(r,e)&&o.set(t,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,i){this.commonLogger.trace("CacheManager - getAccessToken called");const s=pr.createSearchScopes(t.scopes),a=t.authenticationScheme||Q.BEARER,c=a&&a.toLowerCase()!==Q.BEARER.toLowerCase()?H.ACCESS_TOKEN_WITH_AUTH_SCHEME:H.ACCESS_TOKEN,h={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:c,clientId:this.clientId,realm:o||e.tenantId,target:s,tokenType:a,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},l=r&&r.accessToken||this.getTokenKeys().accessToken,d=[];l.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,h,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,h)&&d.push(t)}}));const u=d.length;return u<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):u>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),d.forEach((e=>{this.removeAccessToken(Et(e))})),n&&i&&n.addFields({multiMatchedAT:d.length},i),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),d[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?D:void 0,s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:H.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 yt(De);return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==D)}matchHomeAccountId(e,t){return!("string"!=typeof e.homeAccountId||t!==e.homeAccountId)}matchLocalAccountIdFromTokenClaims(e,t){return t===(e.oid||e.sub)}matchLocalAccountIdFromTenantProfile(e,t){return e.localAccountId===t}matchName(e,t){return!(t.toLowerCase()!==e.name?.toLowerCase())}matchUsername(e,t){return!(!e||"string"!=typeof e||t?.toLowerCase()!==e.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 Rr(o).getUrlComponents().HostNameAndPort;r=Or(n,e.cloudDiscoveryMetadata?.metadata,F,t)||Or(n,Mr.metadata,G,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?.toLowerCase()!==t.toLowerCase())}matchNativeAccountId(e,t){return!(!e.nativeAccountId||t!==e.nativeAccountId)}matchLoginHintFromTokenClaims(e,t){return e.login_hint===t||(e.preferred_username===t||e.upn===t)}matchSid(e,t){return e.sid===t}matchAuthorityType(e,t){return!(!e.authorityType||t.toLowerCase()!==e.authorityType.toLowerCase())}matchTarget(e,t){if(e.credentialType!==H.ACCESS_TOKEN&&e.credentialType!==H.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return pr.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(B)}isAuthorityMetadata(e){return-1!==e.indexOf(x)}generateAuthorityMetadataCacheKey(e){return`${x}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class jr extends Gr{setAccount(){throw yt(dt)}getAccount(){throw yt(dt)}getCachedAccountEntity(){throw yt(dt)}setIdTokenCredential(){throw yt(dt)}getIdTokenCredential(){throw yt(dt)}setAccessTokenCredential(){throw yt(dt)}getAccessTokenCredential(){throw yt(dt)}setRefreshTokenCredential(){throw yt(dt)}getRefreshTokenCredential(){throw yt(dt)}setAppMetadata(){throw yt(dt)}getAppMetadata(){throw yt(dt)}setServerTelemetry(){throw yt(dt)}getServerTelemetry(){throw yt(dt)}setAuthorityMetadata(){throw yt(dt)}getAuthorityMetadata(){throw yt(dt)}getAuthorityMetadataKeys(){throw yt(dt)}setThrottlingCache(){throw yt(dt)}getThrottlingCache(){throw yt(dt)}removeItem(){throw yt(dt)}containsKey(){throw yt(dt)}getKeys(){throw yt(dt)}getAccountKeys(){throw yt(dt)}getTokenKeys(){throw yt(dt)}async clear(){throw yt(dt)}updateCredentialCacheKey(){throw yt(dt)}removeOutdatedAccount(){throw yt(dt)}}
42
- /*! @azure/msal-common v14.5.0 2023-12-01 */const Qr={tokenRenewalOffsetSeconds:300,preventCorsPreflight:!1},Wr={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info,correlationId:t.EMPTY_STRING},Yr={claimsBasedCachingEnabled:!1},Vr={async sendGetRequestAsync(){throw yt(dt)},async sendPostRequestAsync(){throw yt(dt)}},Jr={sku:t.SKU,version:Tt,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},Xr={clientSecret:t.EMPTY_STRING,clientAssertion:void 0},Zr={azureCloudInstance:At.None,tenant:`${t.DEFAULT_COMMON_TENANT}`},eo={application:{appName:"",appVersion:""}};function to(e){return e.authOptions.authority.options.protocolMode===kr.OIDC}
43
- /*! @azure/msal-common v14.5.0 2023-12-01 */class ro extends Ie{constructor(e,t,r){super(e,t,r),this.name="ServerError",Object.setPrototypeOf(this,ro.prototype)}}
44
- /*! @azure/msal-common v14.5.0 2023-12-01 */class oo{static generateThrottlingStorageKey(e){return`${V}.${JSON.stringify(e)}`}static preProcess(e,r){const o=oo.generateThrottlingStorageKey(r),n=e.getThrottlingCache(o);if(n){if(n.throttleTime<Date.now())return void e.removeItem(o);throw new ro(n.errorCodes?.join(" ")||t.EMPTY_STRING,n.errorMessage,n.subError)}}static postProcess(e,t,r){if(oo.checkResponseStatus(r)||oo.checkResponseForRetryAfter(r)){const o={throttleTime:oo.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(oo.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||W),r+Y))}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)}}
45
- /*! @azure/msal-common v14.5.0 2023-12-01 */class no{constructor(e,t){this.networkClient=e,this.cacheManager=t}async sendPostRequest(e,t,r){let o;oo.preProcess(this.cacheManager,e);try{o=await this.networkClient.sendPostRequestAsync(t,r)}catch(e){throw e instanceof Ie?e:yt(be)}return oo.postProcess(this.cacheManager,e,o),o}}
46
- /*! @azure/msal-common v14.5.0 2023-12-01 */const io="home_account_id",so="UPN",ao="client_id",co="response_type",ho="token_type",lo="req_cnf",uo="return_spa_code";
47
- /*! @azure/msal-common v14.5.0 2023-12-01 */
48
- /*! @azure/msal-common v14.5.0 2023-12-01 */
49
- class go{static validateRedirectUri(e){if(!e)throw ur(xt)}static validatePrompt(e){const t=[];for(const e in E)t.push(E[e]);if(t.indexOf(e)<0)throw ur(jt)}static validateClaims(e){try{JSON.parse(e)}catch(e){throw ur(Qt)}}static validateCodeChallengeParams(e,t){if(!e||!t)throw ur(Jt);this.validateCodeChallengeMethod(t)}static validateCodeChallengeMethod(e){if([b.PLAIN,b.S256].indexOf(e)<0)throw ur(Vt)}static sanitizeEQParams(e,t){return e?(t.forEach(((t,r)=>{e[r]&&delete e[r]})),Object.fromEntries(Object.entries(e).filter((e=>""!==e[1])))):{}}}
50
- /*! @azure/msal-common v14.5.0 2023-12-01 */class po{constructor(){this.parameters=new Map}addResponseTypeCode(){this.parameters.set(co,encodeURIComponent(t.CODE_RESPONSE_TYPE))}addResponseTypeForTokenAndIdToken(){this.parameters.set(co,encodeURIComponent(`${t.TOKEN_RESPONSE_TYPE} ${t.ID_TOKEN_RESPONSE_TYPE}`))}addResponseMode(e){this.parameters.set("response_mode",encodeURIComponent(e||P.QUERY))}addNativeBroker(){this.parameters.set("nativebroker",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 pr(o);this.parameters.set("scope",encodeURIComponent(n.printScopes()))}addClientId(e){this.parameters.set(ao,encodeURIComponent(e))}addRedirectUri(e){go.validateRedirectUri(e),this.parameters.set("redirect_uri",encodeURIComponent(e))}addPostLogoutRedirectUri(e){go.validateRedirectUri(e),this.parameters.set("post_logout_redirect_uri",encodeURIComponent(e))}addIdTokenHint(e){this.parameters.set("id_token_hint",encodeURIComponent(e))}addDomainHint(e){this.parameters.set("domain_hint",encodeURIComponent(e))}addLoginHint(e){this.parameters.set("login_hint",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("sid",encodeURIComponent(e))}addClaims(e,t){const r=this.addClientCapabilitiesToClaims(e,t);go.validateClaims(r),this.parameters.set("claims",encodeURIComponent(r))}addCorrelationId(e){this.parameters.set("client-request-id",encodeURIComponent(e))}addLibraryInfo(e){this.parameters.set("x-client-SKU",e.sku),this.parameters.set("x-client-VER",e.version),e.os&&this.parameters.set("x-client-OS",e.os),e.cpu&&this.parameters.set("x-client-CPU",e.cpu)}addApplicationTelemetry(e){e?.appName&&this.parameters.set("x-app-name",e.appName),e?.appVersion&&this.parameters.set("x-app-ver",e.appVersion)}addPrompt(e){go.validatePrompt(e),this.parameters.set("prompt",encodeURIComponent(e))}addState(e){e&&this.parameters.set("state",encodeURIComponent(e))}addNonce(e){this.parameters.set("nonce",encodeURIComponent(e))}addCodeChallengeParams(e,t){if(go.validateCodeChallengeParams(e,t),!e||!t)throw ur(Jt);this.parameters.set("code_challenge",encodeURIComponent(e)),this.parameters.set("code_challenge_method",encodeURIComponent(t))}addAuthorizationCode(e){this.parameters.set("code",encodeURIComponent(e))}addDeviceCode(e){this.parameters.set("device_code",encodeURIComponent(e))}addRefreshToken(e){this.parameters.set("refresh_token",encodeURIComponent(e))}addCodeVerifier(e){this.parameters.set("code_verifier",encodeURIComponent(e))}addClientSecret(e){this.parameters.set("client_secret",encodeURIComponent(e))}addClientAssertion(e){e&&this.parameters.set("client_assertion",encodeURIComponent(e))}addClientAssertionType(e){e&&this.parameters.set("client_assertion_type",encodeURIComponent(e))}addOboAssertion(e){this.parameters.set("assertion",encodeURIComponent(e))}addRequestTokenUse(e){this.parameters.set("requested_token_use",encodeURIComponent(e))}addGrantType(e){this.parameters.set("grant_type",encodeURIComponent(e))}addClientInfo(){this.parameters.set("client_info","1")}addExtraQueryParameters(e){const t=go.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 ur(Qt)}else r={};return t&&t.length>0&&(r.hasOwnProperty(k)||(r[k]={}),r[k][S]={values:t}),JSON.stringify(r)}addUsername(e){this.parameters.set(ee,encodeURIComponent(e))}addPassword(e){this.parameters.set(te,encodeURIComponent(e))}addPopToken(e){e&&(this.parameters.set(ho,Q.POP),this.parameters.set(lo,encodeURIComponent(e)))}addSshJwk(e){e&&(this.parameters.set(ho,Q.SSH),this.parameters.set(lo,encodeURIComponent(e)))}addServerTelemetry(e){this.parameters.set("x-client-current-telemetry",e.generateCurrentRequestHeaderValue()),this.parameters.set("x-client-last-telemetry",e.generateLastRequestHeaderValue())}addThrottling(){this.parameters.set("x-ms-lib-capability",J)}addLogoutHint(e){this.parameters.set("logout_hint",encodeURIComponent(e))}createQueryString(){const e=new Array;return this.parameters.forEach(((t,r)=>{e.push(`${r}=${t}`)})),e.join("&")}}
51
- /*! @azure/msal-common v14.5.0 2023-12-01 */class mo{static async createDiscoveredInstance(e,t,r,o,n,i,s){i?.addQueueMeasurement(Ur.AuthorityFactoryCreateDiscoveredInstance,s);const a=zr.transformCIAMAuthority($r(e)),c=mo.createInstance(a,t,r,o,n,i,s);try{return await Kr(c.resolveEndpointsAsync.bind(c),Ur.AuthorityResolveEndpointsAsync,n,i,s)(),c}catch(e){throw yt(Ee)}}static createInstance(e,t,r,o,n,i,s){if(!e)throw ur($t);return new zr(e,t,r,o,n,i,s)}}
52
- /*! @azure/msal-common v14.5.0 2023-12-01 */class fo{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={...Wr,...r};return{authOptions:(p=e,{clientCapabilities:[],azureCloudOptions:Zr,skipAuthorityMetadataCache:!1,...p}),systemOptions:{...Qr,...t},loggerOptions:g,cacheOptions:{...Yr,...o},storageInterface:n||new jr(e.clientId,Ct,new wt(g)),networkInterface:i||Vr,cryptoInterface:s||Ct,clientCredentials:a||Xr,libraryInfo:{...Jr,...c},telemetry:{...eo,...h},serverTelemetryManager:l||null,persistencePlugin:d||null,serializableCache:u||null};var p}(e),this.logger=new wt(this.config.loggerOptions,It,Tt),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 io:try{const t=fr(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 so: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(Ur.UpdateTokenEndpointAuthority,t);const r=`https://${e}/${this.authority.tenant}/`,o=await mo.createDiscoveredInstance(r,this.networkClient,this.cacheManager,this.authority.options,this.logger,this.performanceClient,t);this.authority=o}createTokenQueryParameters(e){const t=new po;return e.tokenQueryParameters&&t.addExtraQueryParameters(e.tokenQueryParameters),t.createQueryString()}}
53
- /*! @azure/msal-common v14.5.0 2023-12-01 */const yo="no_tokens_found",Co="native_account_unavailable",vo="interaction_required",wo="consent_required",Io="login_required";var To=Object.freeze({__proto__:null,consentRequired:wo,interactionRequired:vo,loginRequired:Io,nativeAccountUnavailable:Co,noTokensFound:yo});
54
- /*! @azure/msal-common v14.5.0 2023-12-01 */const Ao=[vo,wo,Io],_o=["message_only","additional_action","basic_action","user_password_expired","consent_required"],ko={[yo]:"No refresh token found in the cache. Please sign-in.",[Co]:"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."},So={noTokensFoundError:{code:yo,desc:ko[yo]},native_account_unavailable:{code:Co,desc:ko[Co]}};class Eo extends Ie{constructor(e,r,o,n,i,s,a){super(e,r,o),Object.setPrototypeOf(this,Eo.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 bo(e,t,r){const o=!!e&&Ao.indexOf(e)>-1,n=!!r&&_o.indexOf(r)>-1,i=!!t&&Ao.some((e=>t.indexOf(e)>-1));return o||i||n}function Ro(e){return new Eo(e,ko[e])}
55
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Po{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}}
56
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Mo{static setRequestState(e,r,o){const n=Mo.generateLibraryState(e,o);return r?`${n}${t.RESOURCE_DELIM}${r}`:n}static generateLibraryState(e,t){if(!e)throw yt(Je);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 yt(Je);if(!r)throw yt(Me);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 yt(Me)}}}
57
- /*! @azure/msal-common v14.5.0 2023-12-01 */const No="sw";class Oo{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e,t){this.performanceClient?.addQueueMeasurement(Ur.PopTokenGenerateCnf,e.correlationId);const r=await Kr(this.generateKid.bind(this),Ur.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(Ur.PopTokenGenerateKid,e.correlationId);return{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:No}}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 Rr(i):void 0,l=h?.getUrlComponents();return this.cryptoUtils.signJwt({at:e,ts:St.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)}}
58
- /*! @azure/msal-common v14.5.0 2023-12-01 */class qo{generateAppMetadataKey(){return qo.generateAppMetadataCacheKey(this.environment,this.clientId)}static generateAppMetadataCacheKey(e,t){return[B,e,t].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}static createAppMetadataEntity(e,t,r){const o=new qo;return o.clientId=e,o.environment=t,r&&(o.familyId=r),o}static isAppMetadataEntity(e,t){return!!t&&(0===e.indexOf(B)&&t.hasOwnProperty("clientId")&&t.hasOwnProperty("environment"))}}
59
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Lo{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}
60
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Uo{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?yt(Oe,"Cached State"):yt(Oe,"Server State");let r,o;try{r=decodeURIComponent(e.state)}catch(t){throw yt(Me,e.state)}try{o=decodeURIComponent(t)}catch(t){throw yt(Me,e.state)}if(r!==o)throw yt(Ne);if(e.error||e.error_description||e.suberror){if(bo(e.error,e.error_description,e.suberror))throw new Eo(e.error||"",e.error_description,e.suberror,e.timestamp||"",e.trace_id||"",e.correlation_id||"",e.claims||"");throw new ro(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 ro(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(bo(e.error,e.error_description,e.suberror))throw new Eo(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){let l,d;if(this.performanceClient?.addQueueMeasurement(Ur.HandleServerTokenResponse,e.correlation_id),e.id_token){if(l=_t(e.id_token||t.EMPTY_STRING,this.cryptoObj.base64Decode),i&&i.nonce&&l.nonce!==i.nonce)throw yt(qe);if(n.maxAge||0===n.maxAge){const e=l.auth_time;if(!e)throw yt(Le);kt(e,n.maxAge)}}this.homeAccountIdentifier=Sr.generateHomeAccountId(e.client_info||t.EMPTY_STRING,r.authorityType,this.logger,this.cryptoObj,l),i&&i.state&&(d=Mo.parseRequestState(this.cryptoObj,i.state)),e.key_id=e.key_id||n.sshKid||void 0;const u=this.generateCacheRecord(e,r,o,n,l,s,i);let g;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),g=new Lo(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(g)),a&&!c&&u.account){const e=u.account.generateAccountKey();if(!this.cacheStorage.getAccount(e,this.logger))return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),await Uo.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,l,d,void 0,h)}await this.cacheStorage.saveCacheRecord(u,n.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&g&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(g))}return Uo.generateAuthenticationResult(this.cryptoObj,r,u,!1,n,l,d,e,h)}generateCacheRecord(e,t,r,o,n,i,s){const a=t.getPreferredCache();if(!a)throw yt(Ye);const c=_r(n);let h,l;e.id_token&&n&&(h=bt(this.homeAccountIdentifier,a,e.id_token,this.clientId,c||""),l=Ho(this.cacheStorage,t,this.homeAccountIdentifier,n,this.cryptoObj.base64Decode,e.client_info,c,s,void 0,this.logger));let d=null;if(e.access_token){const n=e.scope?pr.fromString(e.scope):new pr(o.scopes||[]),s=("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+s,g=u+h,p=l&&l>0?r+l:void 0;d=Rt(this.homeAccountIdentifier,a,e.access_token,this.clientId,c||t.tenant,n.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=Pt(this.homeAccountIdentifier,a,e.refresh_token,this.clientId,e.foci,i));let g=null;return e.foci&&(g=qo.createAppMetadataEntity(this.clientId,a,e.foci)),new Po(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===Q.POP){const t=new Oo(e),{secret:r,keyId:n}=o.accessToken;if(!n)throw yt(at);u=await t.signPopToken(r,n,i)}else u=o.accessToken.secret;g=pr.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===D?D:"");const f=s?.oid||s?.sub||"",y=s?.tid||"";c?.spa_accountid&&o.account&&(o.account.nativeAccountId=c?.spa_accountid);const C=o.account?vr(o.account.getAccountInfo(),void 0,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}}}function Ho(e,t,r,o,n,i,s,a,c,h){h?.verbose("setCachedAccount called");const l=e.getAccountKeys().find((e=>e.startsWith(r)));let d=null;l&&(d=e.getAccount(l,h));const u=d||Sr.createAccount({homeAccountId:r,idTokenClaims:o,clientInfo:i,cloudGraphHostName:a?.cloud_graph_host_name,msGraphHost:a?.msgraph_host,nativeAccountId:c},t,n),g=u.tenantProfiles||[];if(s&&!g.find((e=>e.tenantId===s))){const e=Cr(r,o);g.push(e)}return u.tenantProfiles=g,u}
61
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Bo extends fo{constructor(e,t){super(e,t),this.includeRedirectUri=!0,this.oidcDefaultScopes=this.config.authOptions.authority.options.OIDCOptions?.defaultScopes}async getAuthCodeUrl(e){this.performanceClient?.addQueueMeasurement(Ur.GetAuthCodeUrl,e.correlationId);const t=await Kr(this.createAuthCodeUrlQueryString.bind(this),Ur.AuthClientCreateQueryString,this.logger,this.performanceClient,e.correlationId)(e);return Rr.appendQueryString(this.authority.authorizationEndpoint,t)}async acquireToken(e,t){if(this.performanceClient?.addQueueMeasurement(Ur.AuthClientAcquireToken,e.correlationId),!e.code)throw yt(xe);const r=St.nowSeconds(),o=await Kr(this.executeTokenRequest.bind(this),Ur.AuthClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(this.authority,e),n=o.headers?.[g],i=new Uo(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return i.validateTokenResponse(o.body),Kr(i.handleServerTokenResponse.bind(i),Ur.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(o.body,this.authority,r,e,t,void 0,void 0,void 0,n)}handleFragmentResponse(e,t){if(new Uo(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,null,null).validateServerAuthorizationCodeResponse(e,t),!e.code)throw yt(nt);return e}getLogoutUri(e){if(!e)throw ur(Yt);const t=this.createLogoutUrlQueryString(e);return Rr.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(Ur.AuthClientExecuteTokenRequest,t.correlationId);const r=this.createTokenQueryParameters(t),o=Rr.appendQueryString(e.tokenEndpoint,r),n=await Kr(this.createTokenRequestBody.bind(this),Ur.AuthClientCreateTokenRequestBody,this.logger,this.performanceClient,t.correlationId)(t);let i;if(t.clientInfo)try{const e=mr(t.clientInfo,this.cryptoUtils.base64Decode);i={credential:`${e.uid}${U.CLIENT_INFO_SEPARATOR}${e.utid}`,type:io}}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 Kr(this.executePostToTokenEndpoint.bind(this),Ur.AuthorizationCodeClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,t.correlationId)(o,n,s,a,t.correlationId,Ur.AuthorizationCodeClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(Ur.AuthClientCreateTokenRequestBody,e.correlationId);const t=new po;if(t.addClientId(e.tokenBodyParameters?.[ao]||this.config.authOptions.clientId),this.includeRedirectUri?t.addRedirectUri(e.redirectUri):go.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&&!to(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(M),t.addClientInfo(),e.authenticationScheme===Q.POP){const r=new Oo(this.cryptoUtils,this.performanceClient),o=await Kr(r.generateCnf.bind(r),Ur.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===Q.SSH){if(!e.sshJwk)throw ur(tr);t.addSshJwk(e.sshJwk)}const r=e.correlationId||this.config.cryptoInterface.createNewGuid();let o;if(t.addCorrelationId(r),(!gr.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=mr(e.clientInfo,this.cryptoUtils.base64Decode);o={credential:`${t.uid}${U.CLIENT_INFO_SEPARATOR}${t.utid}`,type:io}}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 io:try{const e=fr(o.credential);t.addCcsOid(e)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case so:t.addCcsUpn(o.credential)}return e.tokenBodyParameters&&t.addExtraQueryParameters(e.tokenBodyParameters),!e.enableSpaAuthorizationCode||e.tokenBodyParameters&&e.tokenBodyParameters[uo]||t.addExtraQueryParameters({[uo]:"1"}),t.createQueryString()}async createAuthCodeUrlQueryString(e){this.performanceClient?.addQueueMeasurement(Ur.AuthClientCreateQueryString,e.correlationId);const t=new po;t.addClientId(e.extraQueryParameters?.[ao]||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),to(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!==E.SELECT_ACCOUNT)if(e.sid&&e.prompt===E.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=fr(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===E.NONE){this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),t.addSid(r);try{const r=fr(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=fr(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===Q.POP)){const r=new Oo(this.cryptoUtils),o=await Kr(r.generateCnf.bind(r),Ur.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(o.reqCnfHash)}return t.createQueryString()}createLogoutUrlQueryString(e){const t=new po;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}}
62
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Do extends fo{constructor(e,t){super(e,t)}async acquireToken(e){this.performanceClient?.addQueueMeasurement(Ur.RefreshTokenClientAcquireToken,e.correlationId);const t=St.nowSeconds(),r=await Kr(this.executeTokenRequest.bind(this),Ur.RefreshTokenClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(e,this.authority),o=r.headers?.[g],n=new Uo(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return n.validateTokenResponse(r.body),Kr(n.handleServerTokenResponse.bind(n),Ur.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(r.body,this.authority,t,e,void 0,void 0,!0,e.forceCache,o)}async acquireTokenByRefreshToken(e){if(!e)throw ur(Wt);if(this.performanceClient?.addQueueMeasurement(Ur.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw yt(Qe);if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return await Kr(this.acquireTokenWithCachedRefreshToken.bind(this),Ur.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!0)}catch(t){const r=t instanceof Eo&&t.errorCode===yo,o=t instanceof ro&&t.errorCode===X&&t.subError===Z;if(r||o)return Kr(this.acquireTokenWithCachedRefreshToken.bind(this),Ur.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1);throw t}return Kr(this.acquireTokenWithCachedRefreshToken.bind(this),Ur.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){this.performanceClient?.addQueueMeasurement(Ur.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const r=xr(this.cacheManager.getRefreshToken.bind(this.cacheManager),Ur.CacheManagerGetRefreshToken,this.logger,this.performanceClient,e.correlationId)(e.account,t,void 0,this.performanceClient,e.correlationId);if(!r)throw Ro(yo);const o={...e,refreshToken:r.secret,authenticationScheme:e.authenticationScheme||Q.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:io}};return Kr(this.acquireToken.bind(this),Ur.RefreshTokenClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(o)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(Ur.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.createTokenQueryParameters(e),o=Rr.appendQueryString(t.tokenEndpoint,r),n=await Kr(this.createTokenRequestBody.bind(this),Ur.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 Kr(this.executePostToTokenEndpoint.bind(this),Ur.RefreshTokenClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,e.correlationId)(o,n,i,s,e.correlationId,Ur.RefreshTokenClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(Ur.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const t=e.correlationId,r=new po;if(r.addClientId(e.tokenBodyParameters?.[ao]||this.config.authOptions.clientId),e.redirectUri&&r.addRedirectUri(e.redirectUri),r.addScopes(e.scopes,!0,this.config.authOptions.authority.options.OIDCOptions?.defaultScopes),r.addGrantType(N),r.addClientInfo(),r.addLibraryInfo(this.config.libraryInfo),r.addApplicationTelemetry(this.config.telemetry.application),r.addThrottling(),this.serverTelemetryManager&&!to(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===Q.POP){const t=new Oo(this.cryptoUtils,this.performanceClient),o=await Kr(t.generateCnf.bind(t),Ur.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);r.addPopToken(o.reqCnfString)}else if(e.authenticationScheme===Q.SSH){if(!e.sshJwk)throw ur(tr);r.addSshJwk(e.sshJwk)}if((!gr.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 io:try{const t=fr(e.ccsCredential.credential);r.addCcsOid(t)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case so:r.addCcsUpn(e.ccsCredential.credential)}return e.tokenBodyParameters&&r.addExtraQueryParameters(e.tokenBodyParameters),r.createQueryString()}}
63
- /*! @azure/msal-common v14.5.0 2023-12-01 */class xo extends fo{constructor(e,t){super(e,t)}async acquireToken(e){try{const[t,r]=await this.acquireCachedToken(e);if(r===pe){this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.");new Do(this.config,this.performanceClient).acquireTokenByRefreshToken(e).catch((()=>{}))}return t}catch(t){if(t instanceof ft&&t.errorCode===tt){return new Do(this.config,this.performanceClient).acquireTokenByRefreshToken(e)}throw t}}async acquireCachedToken(e){this.performanceClient?.addQueueMeasurement(Ur.SilentFlowClientAcquireCachedToken,e.correlationId);let t=le;if(e.forceRefresh||!this.config.cacheOptions.claimsBasedCachingEnabled&&!gr.isEmptyObj(e.claims))throw this.setCacheOutcome(de,e.correlationId),yt(tt);if(!e.account)throw yt(Qe);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(ue,e.correlationId),yt(tt);if(St.wasClockTurnedBack(o.accessToken.cachedAt)||St.isTokenExpired(o.accessToken.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.setCacheOutcome(ge,e.correlationId),yt(tt);return o.accessToken.refreshOn&&St.isTokenExpired(o.accessToken.refreshOn,0)&&(t=pe),this.setCacheOutcome(t,e.correlationId),this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),[await Kr(this.generateResultFromCacheRecord.bind(this),Ur.SilentFlowClientGenerateResultFromCacheRecord,this.logger,this.performanceClient,e.correlationId)(o,e),t]}setCacheOutcome(e,t){this.serverTelemetryManager?.setCacheOutcome(e),this.performanceClient?.addFields({cacheOutcome:e},t),e!==le&&this.logger.info(`Token refresh is required due to cache outcome: ${e}`)}async generateResultFromCacheRecord(e,t){let r;if(this.performanceClient?.addQueueMeasurement(Ur.SilentFlowClientGenerateResultFromCacheRecord,t.correlationId),e.idToken&&(r=_t(e.idToken.secret,this.config.cryptoInterface.base64Decode)),t.maxAge||0===t.maxAge){const e=r?.auth_time;if(!e)throw yt(Le);kt(e,t.maxAge)}return Uo.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}
64
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Ko{static isThrottlingEntity(e,t){let r=!1;e&&(r=0===e.indexOf(V));let o=!0;return t&&(o=t.hasOwnProperty("throttleTime")),r&&o}}
65
- /*! @azure/msal-common v14.5.0 2023-12-01 */const Fo={sendGetRequestAsync:()=>Promise.reject(yt(dt)),sendPostRequestAsync:()=>Promise.reject(yt(dt))},zo="missing_kid_error",$o="missing_alg_error",Go={[zo]:"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.",[$o]:"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."};
66
- /*! @azure/msal-common v14.5.0 2023-12-01 */class jo extends Ie{constructor(e,t){super(e,t),this.name="JoseHeaderError",Object.setPrototypeOf(this,jo.prototype)}}function Qo(e){return new jo(e,Go[e])}
67
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Wo{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw Qo(zo);if(!e.alg)throw Qo($o);const t=new Wo({typ:e.typ||me.Pop,kid:e.kid,alg:e.alg});return JSON.stringify(t)}}
68
- /*! @azure/msal-common v14.5.0 2023-12-01 */
69
- /*! @azure/msal-common v14.5.0 2023-12-01 */
70
- class Yo{constructor(e,r){this.cacheOutcome=le,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=j.CACHE_KEY+U.CACHE_KEY_SEPARATOR+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${j.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer].join(j.VALUE_SEPARATOR),r=[e,this.getRegionDiscoveryFields()].join(j.VALUE_SEPARATOR);return[j.SCHEMA_VERSION,r,t].join(j.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),t=Yo.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(j.VALUE_SEPARATOR),o=e.errors.slice(0,t).join(j.VALUE_SEPARATOR),n=e.errors.length,i=[n,t<n?j.OVERFLOW_TRUE:j.OVERFLOW_FALSE].join(j.VALUE_SEPARATOR);return[j.SCHEMA_VERSION,e.cacheHits,r,o,i].join(j.CATEGORY_SEPARATOR)}cacheFailedRequest(e){const t=this.getLastRequests();t.errors.length>=j.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 Ie?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(j.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=Yo.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<j.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}}
71
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Vo{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 Dr)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:Hr,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:Br,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]))}))}}
72
- /*! @azure/msal-common v14.5.0 2023-12-01 */class Jo{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class Xo{generateId(){return"callback-id"}startMeasurement(e,t){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:Hr,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new Jo}}startPerformanceMeasurement(){return new Jo}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}const Zo="pkce_not_created",en="crypto_nonexistent",tn="empty_navigate_uri",rn="hash_empty_error",on="no_state_in_hash",nn="hash_does_not_contain_known_properties",sn="unable_to_parse_state",an="state_interaction_type_mismatch",cn="interaction_in_progress",hn="popup_window_error",ln="empty_window_error",dn="user_cancelled",un="monitor_popup_timeout",gn="monitor_window_timeout",pn="redirect_in_iframe",mn="block_iframe_reload",fn="block_nested_popups",yn="iframe_closed_prematurely",Cn="silent_logout_unsupported",vn="no_account_error",wn="silent_prompt_value_error",In="no_token_request_cache_error",Tn="unable_to_parse_token_request_cache_error",An="no_cached_authority_error",_n="auth_request_not_set_error",kn="invalid_cache_type",Sn="non_browser_environment",En="database_not_open",bn="no_network_connectivity",Rn="post_request_failed",Pn="get_request_failed",Mn="failed_to_parse_response",Nn="unable_to_load_token",On="crypto_key_not_found",qn="auth_code_required",Ln="auth_code_or_nativeAccountId_required",Un="spa_code_and_nativeAccountId_present",Hn="database_unavailable",Bn="unable_to_acquire_token_from_native_platform",Dn="native_handshake_timeout",xn="native_extension_not_installed",Kn="native_connection_not_established",Fn="uninitialized_public_client_application",zn="native_prompt_not_supported",$n="invalid_base64_string";var Gn=Object.freeze({__proto__:null,authCodeOrNativeAccountIdRequired:Ln,authCodeRequired:qn,authRequestNotSetError:_n,blockIframeReload:mn,blockNestedPopups:fn,cryptoKeyNotFound:On,cryptoNonExistent:en,databaseNotOpen:En,databaseUnavailable:Hn,emptyNavigateUri:tn,emptyWindowError:ln,failedToParseResponse:Mn,getRequestFailed:Pn,hashDoesNotContainKnownProperties:nn,hashEmptyError:rn,iframeClosedPrematurely:yn,interactionInProgress:cn,invalidBase64String:$n,invalidCacheType:kn,monitorPopupTimeout:un,monitorWindowTimeout:gn,nativeConnectionNotEstablished:Kn,nativeExtensionNotInstalled:xn,nativeHandshakeTimeout:Dn,nativePromptNotSupported:zn,noAccountError:vn,noCachedAuthorityError:An,noNetworkConnectivity:bn,noStateInHash:on,noTokenRequestCacheError:In,nonBrowserEnvironment:Sn,pkceNotCreated:Zo,popupWindowError:hn,postRequestFailed:Rn,redirectInIframe:pn,silentLogoutUnsupported:Cn,silentPromptValueError:wn,spaCodeAndNativeAccountIdPresent:Un,stateInteractionTypeMismatch:an,unableToAcquireTokenFromNativePlatform:Bn,unableToLoadToken:Nn,unableToParseState:sn,unableToParseTokenRequestCacheError:Tn,uninitializedPublicClientApplication:Fn,userCancelled:dn});const jn="For more visit: aka.ms/msaljs/browser-errors",Qn={[Zo]:"The PKCE code challenge and verifier could not be generated.",[en]:"The crypto object or function is not available.",[tn]:"Navigation URI is empty. Please check stack trace for more info.",[rn]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${jn}`,[on]:"Hash does not contain state. Please verify that the request originated from msal.",[nn]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${jn}`,[sn]:"Unable to parse state. Please verify that the request originated from msal.",[an]:"Hash contains state but the interaction type does not match the caller.",[cn]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${jn}`,[hn]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[ln]:"window.open returned null or undefined window object.",[dn]:"User cancelled the flow.",[un]:`Token acquisition in popup failed due to timeout. ${jn}`,[gn]:`Token acquisition in iframe failed due to timeout. ${jn}`,[pn]:"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.",[mn]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${jn}`,[fn]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[yn]:"The iframe being monitored was closed prematurely.",[Cn]:"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.",[wn]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[In]:"No token request found in cache.",[Tn]:"The cached token request could not be parsed.",[An]:"No cached authority found.",[_n]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[kn]:"Invalid cache type",[Sn]:"Login and token requests are not supported in non-browser environments.",[En]:"Database is not open!",[bn]:"No network connectivity. Check your internet connection.",[Rn]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[Pn]:"Network request failed. Please check the network trace to determine root cause.",[Mn]:"Failed to parse network response. Check network trace.",[Nn]:"Error loading token to cache.",[On]:"Cryptographic Key or Keypair not found in browser storage.",[qn]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[Ln]:"An authorization code or nativeAccountId must be provided to this flow.",[Un]:"Request cannot contain both spa code and native account id.",[Hn]:"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.",[Bn]:`Unable to acquire token from native platform. ${jn}`,[Dn]:"Timed out while attempting to establish connection to browser extension",[xn]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[Kn]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${jn}`,[Fn]:`You must call and await the initialize function before attempting to call any other MSAL API. ${jn}`,[zn]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[$n]:"Invalid base64 encoded string."},Wn={pkceNotGenerated:{code:Zo,desc:Qn[Zo]},cryptoDoesNotExist:{code:en,desc:Qn[en]},emptyNavigateUriError:{code:tn,desc:Qn[tn]},hashEmptyError:{code:rn,desc:Qn[rn]},hashDoesNotContainStateError:{code:on,desc:Qn[on]},hashDoesNotContainKnownPropertiesError:{code:nn,desc:Qn[nn]},unableToParseStateError:{code:sn,desc:Qn[sn]},stateInteractionTypeMismatchError:{code:an,desc:Qn[an]},interactionInProgress:{code:cn,desc:Qn[cn]},popupWindowError:{code:hn,desc:Qn[hn]},emptyWindowError:{code:ln,desc:Qn[ln]},userCancelledError:{code:dn,desc:Qn[dn]},monitorPopupTimeoutError:{code:un,desc:Qn[un]},monitorIframeTimeoutError:{code:gn,desc:Qn[gn]},redirectInIframeError:{code:pn,desc:Qn[pn]},blockTokenRequestsInHiddenIframeError:{code:mn,desc:Qn[mn]},blockAcquireTokenInPopupsError:{code:fn,desc:Qn[fn]},iframeClosedPrematurelyError:{code:yn,desc:Qn[yn]},silentLogoutUnsupportedError:{code:Cn,desc:Qn[Cn]},noAccountError:{code:vn,desc:Qn[vn]},silentPromptValueError:{code:wn,desc:Qn[wn]},noTokenRequestCacheError:{code:In,desc:Qn[In]},unableToParseTokenRequestCacheError:{code:Tn,desc:Qn[Tn]},noCachedAuthorityError:{code:An,desc:Qn[An]},authRequestNotSet:{code:_n,desc:Qn[_n]},invalidCacheType:{code:kn,desc:Qn[kn]},notInBrowserEnvironment:{code:Sn,desc:Qn[Sn]},databaseNotOpen:{code:En,desc:Qn[En]},noNetworkConnectivity:{code:bn,desc:Qn[bn]},postRequestFailed:{code:Rn,desc:Qn[Rn]},getRequestFailed:{code:Pn,desc:Qn[Pn]},failedToParseNetworkResponse:{code:Mn,desc:Qn[Mn]},unableToLoadTokenError:{code:Nn,desc:Qn[Nn]},signingKeyNotFoundInStorage:{code:On,desc:Qn[On]},authCodeRequired:{code:qn,desc:Qn[qn]},authCodeOrNativeAccountRequired:{code:Ln,desc:Qn[Ln]},spaCodeAndNativeAccountPresent:{code:Un,desc:Qn[Un]},databaseUnavailable:{code:Hn,desc:Qn[Hn]},unableToAcquireTokenFromNativePlatform:{code:Bn,desc:Qn[Bn]},nativeHandshakeTimeout:{code:Dn,desc:Qn[Dn]},nativeExtensionNotInstalled:{code:xn,desc:Qn[xn]},nativeConnectionNotEstablished:{code:Kn,desc:Qn[Kn]},uninitializedPublicClientApplication:{code:Fn,desc:Qn[Fn]},nativePromptNotSupported:{code:zn,desc:Qn[zn]},invalidBase64StringError:{code:$n,desc:Qn[$n]}};class Yn extends Ie{constructor(e){super(e,Qn[e]),Object.setPrototypeOf(this,Yn.prototype),this.name="BrowserAuthError"}}function Vn(e){return new Yn(e)}const Jn={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"},Xn="53ee284d-920a-4b59-9d30-a60315b26836",Zn="ppnbnpeolgkicgegkbkbjmhlideopiji",ei="MATS",ti="Handshake",ri="HandshakeResponse",oi="GetToken",ni="Response",ii={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},si="GET",ai="POST",ci="authority",hi="request.state",li="nonce.id_token",di="request.origin",ui="urlHash",gi="request.params",pi="interaction.status",mi="ccs.credential",fi="request.correlationId",yi="request.native",Ci="request.redirect.context",vi="msal.account.keys",wi="msal.token.keys",Ii="wrapper.sku",Ti="wrapper.version",Ai={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var _i;e.InteractionType=void 0,(_i=e.InteractionType||(e.InteractionType={})).Redirect="redirect",_i.Popup="popup",_i.Silent="silent",_i.None="none";const ki={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},Si={scopes:s},Ei="msal.db",bi=`${Ei}.keys`,Ri={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5};function Pi(e){e.location.hash="","function"==typeof e.history.replaceState&&e.history.replaceState(null,"",`${e.location.origin}${e.location.pathname}${e.location.search}`)}function Mi(e){const t=e.split("#");t.shift(),window.location.hash=t.length>0?t.join("#"):""}function Ni(){return window.parent!==window}function Oi(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${Jn.POPUP_NAME_PREFIX}.`)}function qi(){return window.location.href.split("?")[0].split("#")[0]}function Li(){const e=new Rr(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}function Ui(){if(Rr.hashContainsKnownProperties(window.location.hash)&&Ni())throw Vn(mn)}function Hi(t,r){const o=Ni();if(t===e.InteractionType.Redirect&&o&&!r)throw Vn(pn)}function Bi(){if(Oi())throw Vn(fn)}function Di(e){if(!e)throw Vn(Sn)}function xi(e){if(!e)throw Vn(Fn)}function Ki(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 Fi=Object.freeze({__proto__:null,blockAPICallsBeforeInitialize:xi,blockAcquireTokenInPopups:Bi,blockNonBrowserEnvironment:Di,blockRedirectInIframe:Hi,blockReloadInHiddenIframes:Ui,clearHash:Pi,getCurrentUri:qi,getHomepage:Li,isInIframe:Ni,isInPopup:Oi,preconnect:Ki,replaceHash:Mi});class zi{navigateInternal(e,t){return zi.defaultNavigateWindow(e,t)}navigateExternal(e,t){return zi.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 $i{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:si,headers:this.getFetchHeaders(t)})}catch(e){throw window.navigator.onLine?Vn(Pn):Vn(bn)}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(e){throw Vn(Mn)}}async sendPostRequestAsync(e,r){const o=r&&r.body||t.EMPTY_STRING;let n;try{n=await fetch(e,{method:ai,headers:this.getFetchHeaders(r),body:o})}catch(e){throw window.navigator.onLine?Vn(Rn):Vn(bn)}try{return{headers:this.getHeaderDict(n.headers),body:await n.json(),status:n.status}}catch(e){throw Vn(Mn)}}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 Gi=1e4;const ji="@azure/msal-browser",Qi="3.6.0";class Wi{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:kr.AAD,OIDCOptions:{serverResponseType:R.FRAGMENT,defaultScopes:[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:At.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1},c={cacheLocation:ii.SessionStorage,temporaryCacheLocation:ii.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!o||o.cacheLocation!==ii.LocalStorage),claimsBasedCachingEnabled:!1},h={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},l={...{...Qr,loggerOptions:h,networkClient:s?new $i:Fo,navigationClient:new zi,loadFrameTimeout:0,windowHashTimeout:n?.loadFrameTimeout||6e4,iframeHashTimeout:n?.loadFrameTimeout||Gi,navigateFrameWait:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:n?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:Jn.DEFAULT_POLL_INTERVAL_MS},...n,loggerOptions:n?.loggerOptions||h},d={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING},client:new Xo};r?.protocolMode!==kr.OIDC&&r?.OIDCOptions&&new wt(l.loggerOptions).warning(JSON.stringify(ur(ir)));if(r?.protocolMode&&r.protocolMode!==kr.AAD&&l?.allowNativeBroker)throw ur(sr);return{auth:{...a,...r,OIDCOptions:{...a.OIDCOptions,...r?.OIDCOptions}},cache:{...c,...o},system:l,telemetry:{...d,...i}}}(r,this.browserEnvironment),this.logger=new wt(this.config.system.loggerOptions,ji,Qi),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}class Yi{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{Yi.crypto=window.crypto,window.nestedAppAuthBridge.addEventListener("message",(e=>{const t="string"==typeof e?e:e.data,r=JSON.parse(t),o=Yi.bridgeRequests.find((e=>e.requestId===r.requestId));void 0!==o&&(Yi.bridgeRequests.splice(Yi.bridgeRequests.indexOf(o),1),r.success?o.resolve(r.body):o.reject(r.body))}));const e=new Promise(((e,t)=>{const r={messageType:"NestedAppAuthRequest",method:"GetInitContext",requestId:Yi.getRandomId()},o={requestId:r.requestId,method:r.method,resolve:e,reject:t};Yi.bridgeRequests.push(o),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))}));return await e}catch(e){throw window.console.log(e),e}}static getRandomId(){return Yi.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:Yi.getRandomId(),body:t},o=new Promise(((e,t)=>{const o={requestId:r.requestId,method:r.method,resolve:e,reject:t};Yi.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 Yi.initializeNestedAppAuthBridge();return new Yi(e.sdkName,e.sdkVersion,e.capabilities)}}Yi.bridgeRequests=[];class Vi extends Wi{constructor(){super(...arguments),this.bridgeProxy=void 0,this.activeAccount=void 0}getModuleName(){return Vi.MODULE_NAME}getId(){return Vi.ID}getBridgeProxy(){return this.bridgeProxy}getActiveAccount(){return this.activeAccount}setActiveAccount(e){this.activeAccount=e}async initialize(){try{if("undefined"!=typeof window){const e=await Yi.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}}}Vi.MODULE_NAME="",Vi.ID="TeamsAppOperatingContext";class Ji extends Wi{getModuleName(){return Ji.MODULE_NAME}getId(){return Ji.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}async function Xi(e){const t=new Ji(e),r=new Vi(e),o=[t.initialize(),r.initialize()];if(await Promise.all(o),r.isAvailable()&&r.getConfig().auth.supportsNestedAppAuth){return(await Promise.resolve().then((function(){return _a}))).NestedAppAuthController.createController(r)}if(t.isAvailable()){return(await Promise.resolve().then((function(){return ua}))).StandardController.createController(t)}return null}function Zi(e){return encodeURIComponent(ts(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function es(e){return rs(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function ts(e){return rs((new TextEncoder).encode(e))}function rs(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}function os(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 Vn($n)}const r=atob(t);return Uint8Array.from(r,(e=>e.codePointAt(0)||0))}(e))}Ji.MODULE_NAME="",Ji.ID="StandardOperatingContext";const ns="SHA-256",is=new Uint8Array([1,0,1]),ss={name:"RSASSA-PKCS1-v1_5",hash:ns,modulusLength:2048,publicExponent:is};async function as(e,t,r){t?.addQueueMeasurement(Ur.Sha256Digest,r);const o=(new TextEncoder).encode(e);return window.crypto.subtle.digest(ns,o)}function cs(e){return window.crypto.getRandomValues(e)}function hs(){return window.crypto.randomUUID()}async function ls(e){return window.crypto.subtle.exportKey("jwk",e)}class ds{constructor(){this.dbName=Ei,this.version=1,this.tableName=bi,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(Vn(Hn))))}))}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(Vn(En));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(Vn(En));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(Vn(En));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(Vn(En));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(Vn(En));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(Ei);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class us{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 us,this.indexedDBCache=new ds,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof Yn&&e.errorCode===Hn))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 ps="asymmetricKeys",ms="symmetricKeys";class fs{constructor(e){this.logger=e,this.asymmetricKeys=new gs(this.logger,ps),this.symmetricKeys=new gs(this.logger,ms)}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"),Vn(en);e.verbose("BrowserCrypto: modern crypto interface available")}(e),this.cache=new fs(this.logger),this.performanceClient=t}createNewGuid(){return hs()}base64Encode(e){return ts(e)}base64Decode(e){return os(e)}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(Ur.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await async function(e,t){return window.crypto.subtle.generateKey(ss,e,t)}(ys.EXTRACTABLE,ys.POP_KEY_USAGES),o=await ls(r.publicKey),n=Cs({e:o.e,kty:o.kty,n:o.n}),i=await this.hashString(n),s=await ls(r.privateKey),a=await async function(e,t,r){return window.crypto.subtle.importKey("jwk",e,ss,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 this.cache.clear()}async signJwt(e,t,r,o){const n=this.performanceClient?.startMeasurement(Ur.CryptoOptsSignJwt,o),i=await this.cache.asymmetricKeys.getItem(t);if(!i)throw Vn(On);const s=await ls(i.publicKey),a=Cs(s),c=Zi(JSON.stringify({kid:t})),h=Zi(Wo.getShrHeaderString({...r?.header,alg:s.alg,kid:c}));e.cnf={jwk:JSON.parse(a)};const l=`${h}.${Zi(JSON.stringify(e))}`,d=(new TextEncoder).encode(l),u=await async function(e,t){return window.crypto.subtle.sign(ss,e,t)}(i.privateKey,d),g=`${l}.${es(new Uint8Array(u))}`;return n&&n.end({success:!0}),g}async hashString(e){const t=await as(e);return es(new Uint8Array(t))}}function Cs(e){return JSON.stringify(e,Object.keys(e).sort())}ys.POP_KEY_USAGES=["sign","verify"],ys.EXTRACTABLE=!0;const vs="storage_not_supported",ws="stubbed_public_client_application_called",Is="in_mem_redirect_unavailable";var Ts=Object.freeze({__proto__:null,inMemRedirectUnavailable:Is,storageNotSupported:vs,stubbedPublicClientApplicationCalled:ws});const As={[vs]:"Given storage configuration option was not supported.",[ws]:"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",[Is]:"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."},_s={storageNotSupportedError:{code:vs,desc:As[vs]},stubPcaInstanceCalled:{code:ws,desc:As[ws]},inMemRedirectUnavailable:{code:Is,desc:As[Is]}};class ks extends Ie{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,ks.prototype)}}function Ss(e){return new ks(e,As[e])}class Es{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==ii.LocalStorage&&e!==ii.SessionStorage||!window[e])throw Ss(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 bs(e,t){if(!t)return null;try{return Mo.parseRequestState(e,t).libraryState.meta}catch(e){throw yt(Me)}}class Rs extends Gr{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 us,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 ii.LocalStorage:case ii.SessionStorage:try{return new Es(e)}catch(e){this.logger.verbose(e);break}}return this.cacheConfig.cacheLocation=ii.MemoryStorage,new us}setupTemporaryCacheStorage(e,t){switch(t){case ii.LocalStorage:case ii.SessionStorage:try{return new Es(e||ii.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(`${wi}.${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 H.ID_TOKEN:if(Ot(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,H.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 H.ACCESS_TOKEN:case H.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(Nt(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,H.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 H.REFRESH_TOKEN:if(qt(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,H.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&&Sr.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,t){this.logger.trace("BrowserCacheManager.getAccount called");const r=this.getCachedAccountEntity(e);return this.updateOutdatedCachedAccount(e,r,t)}getCachedAccountEntity(e){const t=this.getItem(e);if(!t)return this.removeAccountKeyFromMap(e),null;const r=this.validateAndParseJson(t);return r&&Sr.isAccountEntity(r)?Gr.toObject(new Sr,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)}removeOutdatedAccount(e){this.removeItem(e),this.removeAccountKeyFromMap(e)}removeIdToken(e){super.removeIdToken(e),this.removeTokenKey(e,H.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,H.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,H.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${wi}.${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 H.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case H.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case H.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}`),yt(Xe)}this.setItem(`${wi}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case H.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 H.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 H.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}`),yt(Xe)}this.setItem(`${wi}.${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,H.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Ot(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=Et(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,H.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Nt(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=Et(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,H.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&qt(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=Et(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,H.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&&qo.isAppMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),Gr.toObject(new qo,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(j.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&&Lr.isAuthorityMetadataEntity(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),Gr.toObject(new Lr,r)):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(Ii,e),this.internalStorage.setItem(Ti,t)}getWrapperMetadata(){return[this.internalStorage.getItem(Ii)||t.EMPTY_STRING,this.internalStorage.getItem(Ti)||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,tenantId:r.tenantId})):(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,tenantId:e.tenantId};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&&Ko.isThrottlingEntity(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),Gr.toObject(new Ko,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===ii.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(Ur.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):gr.startsWith(e,t.CACHE_PREFIX)||gr.startsWith(e,y)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=Mo.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${ci}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=Mo.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${li}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=Mo.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${hi}.${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:io};this.setTemporaryCache(mi,JSON.stringify(e),!0)}else if(o){const e={credential:o,type:so};this.setTemporaryCache(mi,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(di)),this.removeItem(this.generateCacheKey(ui)),this.removeItem(this.generateCacheKey(fi)),this.removeItem(this.generateCacheKey(mi)),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(hi))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=bs(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=ts(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 Vn(In);let r;try{r=JSON.parse(os(t))}catch(e){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${e}`),Vn(Tn)}if(this.removeItem(this.generateCacheKey(gi)),!r.authority){const t=this.generateAuthorityKey(e),o=this.getTemporaryCache(t);if(!o)throw Vn(An);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}.${pi}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${pi}`;if(e){if(this.getInteractionInProgress())throw Vn(cn);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=_t(r,os);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=Et(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(Ci,!0)}setRedirectRequestContext(e){this.setTemporaryCache(Ci,e,!0)}async hydrateCache(e,t){const r=bt(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=Rt(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?.getTime()||0,e.extExpiresOn?.getTime()||0,os,void 0,e.tokenType,void 0,t.sshKid,t.claims,o),i=new Po(void 0,r,n);return this.saveCacheRecord(i)}}const Ps=(e,t)=>new Rs(e,{cacheLocation:ii.MemoryStorage,temporaryCacheLocation:ii.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},Ct,t),Ms={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 Ns{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=hs();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||!Sr.isAccountEntity(r))return;const o=Gr.toObject(new Sr,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent(Ms.ACCOUNT_ADDED,void 0,o)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent(Ms.ACCOUNT_REMOVED,void 0,o))}catch(e){return}}}class Os{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||hs(),this.logger=o.clone(Jn.MSAL_SKU,Qi,this.correlationId),this.performanceClient=s}async clearCacheOnLogout(e){if(e){Sr.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(Sr.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(Ur.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===Q.SSH){if(!e.sshJwk)throw ur(tr);if(!e.sshKid)throw ur(rr)}this.logger.verbose(`Authentication Scheme set to "${n.authenticationScheme}" as configured in Auth request`)}else n.authenticationScheme=Q.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!gr.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||qi();return Rr.getAbsoluteUrl(t,qi())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw ur(ar)}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 Yo(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"),mo.createDiscoveredInstance(e,this.config.system.networkClient,this.browserStorage,t,this.logger)):(this.logger.verbose("Creating discovered authority with configured authority"),mo.createDiscoveredInstance(this.config.auth.authority,this.config.system.networkClient,this.browserStorage,t,this.logger))}}const qs=32;async function Ls(e,t,r){e.addQueueMeasurement(Ur.GeneratePkceCodes,r);const o=xr(Us,Ur.GenerateCodeVerifier,t,e,r)(e,t,r);return{verifier:o,challenge:await Kr(Hs,Ur.GenerateCodeChallengeFromVerifier,t,e,r)(o,e,t,r)}}function Us(e,t,r){try{const o=new Uint8Array(qs);xr(cs,Ur.GetRandomValues,t,e,r)(o);return es(o)}catch(e){throw Vn(Zo)}}async function Hs(e,t,r,o){t.addQueueMeasurement(Ur.GenerateCodeChallengeFromVerifier,o);try{const n=await Kr(as,Ur.Sha256Digest,r,t,o)(e,t,o);return es(new Uint8Array(n))}catch(e){throw Vn(Zo)}}class Bs extends Os{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(Ur.StandardInteractionClientInitializeAuthorizationCodeRequest,this.correlationId);const r=await Kr(Ls,Ur.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||hs(),...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=Rr.getAbsoluteUrl(e.postLogoutRedirectUri,qi())):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=Rr.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,qi())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=Rr.getAbsoluteUrl(qi(),qi())),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(Ur.StandardInteractionClientCreateAuthCodeClient,this.correlationId);const o=await Kr(this.getClientConfiguration.bind(this),Ur.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new Bo(o,this.performanceClient)}async getClientConfiguration(e,r,o){this.performanceClient.addQueueMeasurement(Ur.StandardInteractionClientGetClientConfiguration,this.correlationId);const n=await Kr(this.getDiscoveredAuthority.bind(this),Ur.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:Jn.MSAL_SKU,version:Qi,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(Ur.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=zr.generateAuthority(o,t||this.config.auth.azureCloudOptions);return Kr(mo.createDiscoveredInstance.bind(mo),Ur.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(Ur.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId);const o=this.getRedirectUri(e.redirectUri),n={interactionType:r},i=Mo.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,n),s={...await Kr(this.initializeBaseRequest.bind(this),Ur.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e),redirectUri:o,state:i,nonce:e.nonce||hs(),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 Ds="user_switch",xs={[Ds]:"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 Ks extends Ie{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,Ks.prototype),this.name="NativeAuthError",this.ext=r}}function Fs(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 zs(e,t,r){if(r&&r.status)switch(r.status){case"ACCOUNT_UNAVAILABLE":return Ro(Co);case"USER_INTERACTION_REQUIRED":return new Eo(e,t);case"USER_CANCEL":return Vn(dn);case"NO_NETWORK":return Vn(bn)}return new Ks(e,xs[e]||t,r)}class $s extends Bs{async acquireToken(e){this.performanceClient.addQueueMeasurement(Ur.SilentCacheClientAcquireToken,e.correlationId);const t=this.initializeServerTelemetryManager(Ai.acquireTokenSilent_silentFlow),r=await this.createSilentFlowClient(t,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const t=(await Kr(r.acquireCachedToken.bind(r),Ur.SilentFlowClientAcquireCachedToken,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),t}catch(e){throw e instanceof Yn&&e.errorCode===On&&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 Kr(this.getClientConfiguration.bind(this),Ur.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new xo(o,this.performanceClient)}async initializeSilentRequest(e,t){this.performanceClient.addQueueMeasurement(Ur.InitializeSilentRequest,this.correlationId);const r=await Kr(this.initializeBaseRequest.bind(this),Ur.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e,t);return{...e,...r,account:t,forceRefresh:e.forceRefresh||!1}}}const Gs="brk_client_id",js="brk_redirect_uri";class Qs extends Os{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 $s(e,this.nativeStorageManager,r,o,n,i,a,c,d)}async acquireToken(e){this.performanceClient.addQueueMeasurement(Ur.NativeInteractionClientAcquireToken,e.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(Ur.NativeInteractionClientAcquireToken,e.correlationId),r=St.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:oi,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:pr.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),yt(Ve);const r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e});if(!r)throw yt(Ve);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:oi,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof Ks&&Fs(e))throw e}this.browserStorage.setTemporaryCache(yi,JSON.stringify(t),!0);const o={apiId:Ai.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:oi,request:r},n=St.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),await 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 zs(Ds);const o=await this.getDiscoveredAuthority(t.authority),n=_t(e.id_token,os),i=this.createHomeAccountIdentifier(e,n),s=Ho(this.browserStorage,o,i,n,os,e.client_info,n.tid,void 0,e.account.id,this.logger),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 Sr.generateHomeAccountId(e.client_info||t.EMPTY_STRING,wr,this.logger,this.browserCrypto,r)}generateScopes(e,t){return e.scope?pr.fromString(e.scope):pr.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===Q.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new Oo(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw yt(at);return 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?pr.fromString(e.scope):pr.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=vr(n.getAccountInfo(),void 0,o),g=await this.generatePopAccessToken(e,r),p=r.tokenType===Q.POP?Q.POP:Q.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=bt(o,r.authority,e.id_token||"",r.clientId,n.tid||""),h=a+(r.tokenType===Q.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=Rt(o,r.authority,i,r.clientId,n.tid||s,l.printScopes(),h,0,os),u=new Po(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 Te(fe,"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 Rr(t);r.validateAsUri();const{scopes:o,...n}=e,i=new pr(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 Ai.ssoSilent:case Ai.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),E.NONE}if(e.prompt)switch(e.prompt){case E.NONE:case E.CONSENT:case E.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`),Vn(zn)}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=ei,e.authenticationScheme===Q.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new Oo(this.browserCrypto),o=await Kr(r.generateCnf.bind(r),Ur.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(Gs)&&e.extraParameters.hasOwnProperty(js)&&e.extraParameters.hasOwnProperty(ao)){const t=e.extraParameters[ao],r=e.redirectUri,o=e.extraParameters[js];e.extraParameters={child_client_id:t,child_redirect_uri:r},e.redirectUri=o}}}class Ws{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(Ur.NativeMessageHandlerHandshake)}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:Xn,extensionId:this.extensionId,responseId:hs(),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 Ws(e,t,r,Zn);return await o.sendHandshakeRequest(),o}catch(o){const n=new Ws(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:Xn,extensionId:this.extensionId,responseId:hs(),body:{method:ti}};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(Vn(Dn)),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===Xn&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===ti){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(Vn(xn))}}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===ni){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(zs(e.code,e.description,e.ext));else{if(!e.result)throw Te(fe,"Event does not contain result.");e.result.code&&e.result.description?r.reject(zs(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===ri){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 Q.BEARER:case Q.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 Ys{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(Ur.HandleCodeResponse,t.correlationId);try{r=this.authModule.handleFragmentResponse(e,t.state)}catch(e){throw e instanceof ro&&e.subError===dn?Vn(dn):e}return Kr(this.handleCodeResponseFromServer.bind(this),Ur.HandleCodeResponseFromServer,this.logger,this.performanceClient,t.correlationId)(r,t)}async handleCodeResponseFromServer(e,t,r=!0){if(this.performanceClient.addQueueMeasurement(Ur.HandleCodeResponseFromServer,t.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"),this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await Kr(this.authModule.updateAuthority.bind(this.authModule),Ur.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 Kr(this.authModule.acquireToken.bind(this.authModule),Ur.AuthClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(this.authCodeRequest,e)}createCcsCredentials(e){return e.account?{credential:e.account.homeAccountId,type:io}:e.loginHint?{credential:e.loginHint,type:so}:null}}function Vs(e,t,r){const o=br(e);if(!o)throw Er(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}`),Vn(nn)):(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.`),Vn(rn));return o}class Js extends Bs{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(Ai.acquireTokenPopup),s=await Kr(this.initializeAuthorizationRequest.bind(this),Ur.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(t,e.InteractionType.Popup);Ki(s.authority);try{const a=await Kr(this.initializeAuthorizationCodeRequest.bind(this),Ur.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(s),c=await Kr(this.createAuthCodeClient.bind(this),Ur.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(i,s.authority,s.azureCloudOptions),h=Ws.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme);let l;h&&(l=this.performanceClient.startMeasurement(Ur.FetchAccountIdWithNativeBroker,t.correlationId));const d=await c.getAuthCodeUrl({...s,nativeBroker:h}),u=new Ys(c,this.browserStorage,a,this.logger,this.performanceClient),g={popup:n,popupName:r,popupWindowAttributes:o},p=this.initiateAuthRequest(d,g);this.eventHandler.emitEvent(Ms.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=xr(Vs,Ur.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(m,this.config.auth.OIDCOptions.serverResponseType,this.logger);if(oo.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 Vn(Kn);const e=new Qs(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ai.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,s.correlationId),{userRequestState:t}=Mo.parseRequestState(this.browserCrypto,s.state);return await e.acquireToken({...s,state:t,prompt:void 0})}return await u.handleCodeResponse(f,s)}catch(e){throw n&&n.close(),e instanceof Ie&&(e.setCorrelationId(this.correlationId),i.cacheFailedRequest(e)),e}}async logoutPopupAsync(t,r,o,n,i,s){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(Ms.LOGOUT_START,e.InteractionType.Popup,t);const a=this.initializeServerTelemetryManager(Ai.logoutPopup);try{await this.clearCacheOnLogout(t.account);const c=await Kr(this.createAuthCodeClient.bind(this),Ur.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(a,n);try{c.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId&&t.postLogoutRedirectUri&&c.authority.protocolMode===kr.OIDC){if(this.browserStorage.removeAccount(t.account?.homeAccountId),this.eventHandler.emitEvent(Ms.LOGOUT_SUCCESS,e.InteractionType.Popup,t),s){const e={apiId:Ai.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=Rr.getAbsoluteUrl(s,qi());await this.navigationClient.navigateInternal(t,e)}return void(i&&i.close())}}const h=c.getLogoutUri(t);this.eventHandler.emitEvent(Ms.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const l=this.openPopup(h,{popupName:r,popupWindowAttributes:o,popup:i});if(this.eventHandler.emitEvent(Ms.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:l},null),await this.monitorPopupForHash(l).catch((()=>{})),s){const e={apiId:Ai.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=Rr.getAbsoluteUrl(s,qi());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 Ie&&(t.setCorrelationId(this.correlationId),a.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(Ms.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent(Ms.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent(Ms.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"),Vn(tn)}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(Vn(dn));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===R.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 Vn(ln);return r.focus&&r.focus(),this.currentWindow=r,window.addEventListener("beforeunload",this.unloadWindow),r}catch(e){throw this.logger.error("error opening popup "+e.message),this.browserStorage.setInteractionInProgress(!1),Vn(hn)}}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=Jn.POPUP_WIDTH),(!c||c<0||c>s)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=Jn.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-Jn.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-Jn.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`${Jn.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${Jn.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}}class Xs{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(di,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(fi,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:Ai.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"),Vn(tn)}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 yt(Oe,"Cached State");let n;try{n=this.authModule.handleFragmentResponse(e,o)}catch(e){throw e instanceof ro&&e.subError===dn?Vn(dn):e}const i=this.browserStorage.generateNonceKey(o),s=this.browserStorage.getTemporaryCache(i);if(this.authCodeRequest.code=n.code,n.cloud_instance_host_name&&await Kr(this.authModule.updateAuthority.bind(this.authModule),Ur.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(mi,!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 Zs extends Bs{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 Kr(this.initializeAuthorizationRequest.bind(this),Ur.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(Ai.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(Ms.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{const e=await Kr(this.initializeAuthorizationCodeRequest.bind(this),Ur.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(r),i=await Kr(this.createAuthCodeClient.bind(this),Ur.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(o,r.authority,r.azureCloudOptions),s=new Xs(i,this.browserStorage,e,this.logger,this.performanceClient),a=await i.getAuthCodeUrl({...r,nativeBroker:Ws.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 Ie&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),window.removeEventListener("pageshow",n),this.browserStorage.cleanRequestByState(r.state),e}}async handleRedirectPromise(r){const o=this.initializeServerTelemetryManager(Ai.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(di,!0)||t.EMPTY_STRING,a=Rr.removeHashFromUrl(s);if(a===Rr.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling response"),s.indexOf("#")>-1&&Mi(s);return await this.handleResponse(n,o)}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling response"),await this.handleResponse(n,o);if(!Ni()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(ui,i,!0);const e={apiId:Ai.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=Li();this.browserStorage.setTemporaryCache(di,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 await this.handleResponse(n,o)}return null}catch(t){throw t instanceof Ie&&(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===R.QUERY?window.location.search:window.location.hash);let o=br(r);if(o){try{!function(e,t,r){if(!e.state)throw Vn(on);const o=bs(t,e.state);if(!o)throw Vn(sn);if(o.interactionType!==r)throw Vn(an)}(o,this.browserCrypto,e.InteractionType.Redirect)}catch(e){return e instanceof Ie&&this.logger.error(`Interaction type validation failed due to ${e.errorCode}: ${e.errorMessage}`),[null,""]}return Pi(window),this.logger.verbose("Hash contains known properties, returning response hash"),[o,r]}const n=this.browserStorage.getTemporaryCache(ui,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(ui)),n&&(o=br(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 Vn(on);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 Vn(Kn);const t=new Qs(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ai.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,e.accountId,this.nativeStorage,o.correlationId),{userRequestState:n}=Mo.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 Vn(An);const i=await Kr(this.createAuthCodeClient.bind(this),Ur.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(t,n);oo.removeThrottle(this.browserStorage,this.config.auth.clientId,o);return new Xs(i,this.browserStorage,o,this.logger,this.performanceClient).handleCodeResponse(e,r)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),o=this.initializeServerTelemetryManager(Ai.logout);try{this.eventHandler.emitEvent(Ms.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const n={apiId:Ai.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},i=await Kr(this.createAuthCodeClient.bind(this),Ur.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(o,t&&t.authority);if(i.authority.protocolMode===kr.OIDC)try{i.authority.endSessionEndpoint}catch{if(r.account?.homeAccountId)return this.browserStorage.removeAccount(r.account?.homeAccountId),void this.eventHandler.emitEvent(Ms.LOGOUT_SUCCESS,e.InteractionType.Redirect,r)}const s=i.getLogoutUri(r);if(this.eventHandler.emitEvent(Ms.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 Ie&&(t.setCorrelationId(this.correlationId),o.cacheFailedRequest(t)),this.eventHandler.emitEvent(Ms.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(Ms.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent(Ms.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return Rr.getAbsoluteUrl(t,qi())}}async function ea(e,t,r,o,n){if(t.addQueueMeasurement(Ur.SilentHandlerInitiateAuthRequest,o),!e)throw r.info("Navigate url is empty"),Vn(tn);return n?Kr(ra,Ur.SilentHandlerLoadFrame,r,t,o)(e,n,t,o):xr(oa,Ur.SilentHandlerLoadFrameSync,r,t,o)(e)}async function ta(e,t,r,o,n,i,s){return o.addQueueMeasurement(Ur.SilentHandlerMonitorIframeForHash,i),new Promise(((o,i)=>{t<Gi&&n.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${t}ms) than the default (10000ms). This may result in timeouts.`);const a=window.setTimeout((()=>{window.clearInterval(c),i(Vn(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===R.QUERY?r.location.search:r.location.hash),window.clearTimeout(a),window.clearInterval(c),o(n)}),r)})).finally((()=>{xr(ia,Ur.RemoveHiddenIframe,n,o,i)(e)}))}function ra(e,t,r,o){return r.addQueueMeasurement(Ur.SilentHandlerLoadFrame,o),new Promise(((r,o)=>{const n=na();window.setTimeout((()=>{n?(n.src=e,r(n)):o("Unable to load iframe")}),t)}))}function oa(e){const t=na();return t.src=e,t}function na(){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.body.appendChild(e),e}function ia(e){document.body===e.parentNode&&document.body.removeChild(e)}class sa extends Bs{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(Ur.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!==E.NONE&&t.prompt!==E.NO_SESSION)throw Vn(wn);const r=await Kr(this.initializeAuthorizationRequest.bind(this),Ur.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,t.correlationId)({...t,prompt:t.prompt||E.NONE},e.InteractionType.Silent);Ki(r.authority);const o=this.initializeServerTelemetryManager(this.apiId);try{const e=await Kr(this.createAuthCodeClient.bind(this),Ur.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,t.correlationId)(o,r.authority,r.azureCloudOptions);return await Kr(this.silentTokenHelper.bind(this),Ur.SilentIframeClientTokenHelper,this.logger,this.performanceClient,t.correlationId)(e,r)}catch(e){throw e instanceof Ie&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),e}}logout(){return Promise.reject(Vn(Cn))}async silentTokenHelper(e,t){const r=t.correlationId;this.performanceClient.addQueueMeasurement(Ur.SilentIframeClientTokenHelper,r);const o=await Kr(this.initializeAuthorizationCodeRequest.bind(this),Ur.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,r)(t),n=await Kr(e.getAuthCodeUrl.bind(e),Ur.GetAuthCodeUrl,this.logger,this.performanceClient,r)({...t,nativeBroker:Ws.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme)}),i=new Ys(e,this.browserStorage,o,this.logger,this.performanceClient),s=await Kr(ea,Ur.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r)(n,this.performanceClient,this.logger,r,this.config.system.navigateFrameWait),a=this.config.auth.OIDCOptions.serverResponseType,c=await Kr(ta,Ur.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,r)(s,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,r,a),h=xr(Vs,Ur.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 Vn(Kn);const e=new Qs(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}=Mo.parseRequestState(this.browserCrypto,t.state);return Kr(e.acquireToken.bind(e),Ur.NativeInteractionClientAcquireToken,this.logger,this.performanceClient,r)({...t,state:o,prompt:t.prompt||E.NONE})}return Kr(i.handleCodeResponse.bind(i),Ur.HandleCodeResponse,this.logger,this.performanceClient,r)(h,t)}}class aa extends Bs{async acquireToken(e){this.performanceClient.addQueueMeasurement(Ur.SilentRefreshClientAcquireToken,e.correlationId);const t=await Kr(this.initializeBaseRequest.bind(this),Ur.InitializeBaseRequest,this.logger,this.performanceClient,e.correlationId)(e,e.account),r={...e,...t},o=this.initializeServerTelemetryManager(Ai.acquireTokenSilent_silentFlow),n=await this.createRefreshTokenClient(o,r.authority,r.azureCloudOptions);return Kr(n.acquireTokenByRefreshToken.bind(n),Ur.RefreshTokenClientAcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(r).catch((e=>{throw e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e),e}))}logout(){return Promise.reject(Vn(Cn))}async createRefreshTokenClient(e,t,r){const o=await Kr(this.getClientConfiguration.bind(this),Ur.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new Do(o,this.performanceClient)}}class ca{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 Vn(Nn);const o=_t(t.id_token,os);let n,i,s;if(e.account)s=Sr.createFromAccountInfo(e.account),n=new Po(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 Vn(Nn);{const a=zr.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 zr(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 Po(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 Vn(Nn);this.logger.trace("TokenCache - homeAccountId from response"),s=this.loadAccount(o,i,t.client_info),n=new Po(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){if(this.isBrowserEnvironment){let n;if(this.logger.verbose("TokenCache - loading account"),o?n=o:void 0!==t.authorityType&&r&&(n=Sr.generateHomeAccountId(r,t.authorityType,this.logger,this.cryptoObj,e)),!n)throw Vn(Nn);const i=e.tid,s=Ho(this.storage,t,n,e,os,r,i,void 0,void 0,this.logger);return this.storage.setAccount(s),s}throw Vn(Nn)}loadIdToken(e,t,r,o){const n=bt(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 Vn(Nn)}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 Vn(Nn);if(!i.extendedExpiresOn)throw Vn(Nn);const s=new pr(e.scopes).printScopes(),a=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,h=Rt(r,o,t.access_token,this.config.auth.clientId,n,s,a,c,os);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(h),h;throw Vn(Nn)}loadRefreshToken(e,t,r,o){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const n=Pt(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 Vn(Nn)}generateAuthenticationResult(e,r,o,n,i){let s,a=t.EMPTY_STRING,c=[],h=null;o?.accessToken&&(a=o.accessToken.secret,c=pr.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 ha extends Bo{constructor(e){super(e),this.includeRedirectUri=!1}}class la extends Bs{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 Vn(qn);const r=await Kr(this.initializeAuthorizationRequest.bind(this),Ur.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 Kr(this.getClientConfiguration.bind(this),Ur.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,t.correlationId)(o,r.authority),i=new ha(n);this.logger.verbose("Auth code client created");const s=new Ys(i,this.browserStorage,e,this.logger,this.performanceClient);return await Kr(s.handleCodeResponseFromServer.bind(s),Ur.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 Ie&&(e.setCorrelationId(this.correlationId),o.cacheFailedRequest(e)),e}}logout(){return Promise.reject(Vn(Cn))}}class da{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):Ct,this.eventHandler=new Ns(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new Rs(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 ur(Xt)}return{canonicalAuthority:e.authority?$r(e.authority):void 0,knownAuthorities:e.knownAuthorities,cloudDiscoveryMetadata:r}}(this.config.auth)):Ps(this.config.auth.clientId,this.logger);const t={cacheLocation:ii.MemoryStorage,temporaryCacheLocation:ii.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new Rs(this.config.auth.clientId,t,this.browserCrypto,this.logger),this.tokenCache=new ca(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 da(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(Ur.InitializeClientApplication);if(this.eventHandler.emitEvent(Ms.INITIALIZE_START),e)try{this.nativeExtensionProvider=await Ws.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 Kr(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),Ur.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient)(this.performanceClient)),this.initialized=!0,this.eventHandler.emitEvent(Ms.INITIALIZE_END),t.end({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),xi(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(Ms.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&&Ws.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!r){this.logger.trace("handleRedirectPromise - acquiring token from native platform");a=new Qs(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ai.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(fi,!0)||t.EMPTY_STRING;a=this.createRedirectClient(e).handleRedirectPromise(r)}i=a.then((t=>{if(t){o.length<this.getAllAccounts().length?(this.eventHandler.emitEvent(Ms.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent(Ms.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent(Ms.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw o.length>0?this.eventHandler.emitEvent(Ms.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(Ms.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent(Ms.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(Ms.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent(Ms.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){n=new Qs(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ai.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,r).acquireTokenRedirect(t).catch((e=>{if(e instanceof Ks&&Fs(e)){this.nativeExtensionProvider=void 0;return this.createRedirectClient(r).acquireToken(t)}if(e instanceof Eo){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(Ms.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent(Ms.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),o=this.performanceClient.startMeasurement(Ur.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(Ms.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent(Ms.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative({...t,correlationId:r},Ai.acquireTokenPopup).then((e=>(this.getBrowserStorage().setInteractionInProgress(!1),o.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof Ks&&Fs(e)){this.nativeExtensionProvider=void 0;return this.createPopupClient(r).acquireToken(t)}if(e instanceof Eo){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(Ms.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent(Ms.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(Ms.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent(Ms.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(Ur.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent(Ms.SSO_SILENT_START,e.InteractionType.Silent,o),this.canUseNative(o))n=this.acquireTokenNative(o,Ai.ssoSilent).catch((e=>{if(e instanceof Ks&&Fs(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(Ms.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(Ms.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(Ms.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const o=this.performanceClient.startMeasurement(Ur.AcquireTokenByCode,r);try{if(t.code&&t.nativeAccountId)throw Vn(Un);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(Ms.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(Ms.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)),await i}if(t.nativeAccountId){if(this.canUseNative(t,t.nativeAccountId))return await this.acquireTokenNative({...t,correlationId:r},Ai.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof Ks&&Fs(e)&&(this.nativeExtensionProvider=void 0),e}));throw Vn(Bn)}throw Vn(Ln)}catch(t){throw this.eventHandler.emitEvent(Ms.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),o.end({errorCode:t instanceof Ie&&t.errorCode||void 0,subErrorCode:t instanceof Ie&&t.subError||void 0,success:!1}),t}}async acquireTokenByCodeAsync(e){this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(Ur.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(Ur.AcquireTokenFromCache,t.correlationId),r){case Ri.Default:case Ri.AccessToken:case Ri.AccessTokenAndRefreshToken:return Kr(e.acquireToken.bind(e),Ur.SilentCacheClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(t);default:throw yt(tt)}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(Ur.AcquireTokenByRefreshToken,e.correlationId),t){case Ri.Default:case Ri.AccessTokenAndRefreshToken:case Ri.RefreshToken:case Ri.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return Kr(t.acquireToken.bind(t),Ur.SilentRefreshClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw yt(tt)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(Ur.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return Kr(t.acquireToken.bind(t),Ur.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=Sr.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"),Di(this.isBrowserEnvironment),Hi(t,this.config.system.allowRedirectInIframe),Ui(),Bi(),xi(this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===ii.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw Ss(Is);t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),Ui(),e&&this.getBrowserStorage().setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw Vn(Kn);return new Qs(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"),!Ws.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 E.NONE:case E.CONSENT:case E.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.getAccount({loginHint:e.loginHint,sid:e.sid})||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new Js(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new Zs(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new sa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ai.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new $s(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new aa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new la(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ai.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?hs():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||Si})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||Si})}async acquireTokenSilent(r){const o=this.getRequestCorrelationId(r),n=this.performanceClient.startMeasurement(Ur.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 Vn(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=Kr(this.acquireTokenSilentAsync.bind(this),Ur.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(Ur.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent(Ms.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(Ur.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),Ws.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,Ai.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof Ks&&Fs(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 Kr(n.initializeSilentRequest.bind(n),Ur.InitializeSilentRequest,this.logger,this.performanceClient,t.correlationId)(t,r),s=t.cacheLookupPolicy||Ri.Default;o=Kr(this.acquireTokenFromCache.bind(this),Ur.AcquireTokenFromCache,this.logger,this.performanceClient,i.correlationId)(n,i,s).catch((r=>{if(t.cacheLookupPolicy===Ri.AccessToken)throw r;return Ui(),this.eventHandler.emitEvent(Ms.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),Kr(this.acquireTokenByRefreshToken.bind(this),Ur.AcquireTokenByRefreshToken,this.logger,this.performanceClient,i.correlationId)(i,s).catch((e=>{if((!(e instanceof Eo)&&(e.errorCode===Jn.INVALID_GRANT_ERROR||e.errorCode===tt)||e.errorCode===yo)&&(s===Ri.Default||s===Ri.Skip||s===Ri.RefreshTokenAndNetwork))return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",t.correlationId),Kr(this.acquireTokenBySilentIframe.bind(this),Ur.AcquireTokenBySilentIframe,this.logger,this.performanceClient,i.correlationId)(i);throw e}))}))}return o.then((t=>(this.eventHandler.emitEvent(Ms.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(Ms.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Silent,null,t),this.atsAsyncMeasurement?.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})).finally((()=>{document.removeEventListener("visibilitychange",this.trackPageVisibility)}))}}var ua=Object.freeze({__proto__:null,StandardController:da});class ga{static async createPublicClientApplication(e){const t=await async function(e){const t=new Ji(e);return await t.initialize(),(await Promise.resolve().then((function(){return ua}))).StandardController.createController(t)}(e);return new ga(e,t)}constructor(e,t){if(t)this.controller=t;else{const t=new Ji(e);this.controller=new da(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 pa{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):Ct,this.browserStorage=this.isBrowserEnvironment?new Rs(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):Ps(this.config.auth.clientId,this.logger),this.eventHandler=new Ns(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 xi(this.initialized),Di(this.isBrowserEnvironment),{}}acquireTokenRedirect(e){return xi(this.initialized),Di(this.isBrowserEnvironment),Promise.resolve()}acquireTokenSilent(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}acquireTokenByCode(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}acquireTokenNative(e,t,r){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}acquireTokenByRefreshToken(e,t){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return xi(this.initialized),Di(this.isBrowserEnvironment),""}removePerformanceCallback(e){return xi(this.initialized),Di(this.isBrowserEnvironment),!0}enableAccountStorageEvents(){xi(this.initialized),Di(this.isBrowserEnvironment)}disableAccountStorageEvents(){xi(this.initialized),Di(this.isBrowserEnvironment)}handleRedirectPromise(e){return xi(this.initialized),Promise.resolve(null)}loginPopup(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}loginRedirect(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}logout(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}logoutRedirect(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}logoutPopup(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}ssoSilent(e){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}getTokenCache(){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}getLogger(){return this.logger}setLogger(e){xi(this.initialized),Di(this.isBrowserEnvironment)}setActiveAccount(e){xi(this.initialized),Di(this.isBrowserEnvironment)}getActiveAccount(){return xi(this.initialized),Di(this.isBrowserEnvironment),null}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){xi(this.initialized),Di(this.isBrowserEnvironment)}getConfiguration(){return this.config}isBrowserEnv(){return xi(this.initialized),Di(this.isBrowserEnvironment),!0}getBrowserCrypto(){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}getPerformanceClient(){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}getRedirectResponse(){return xi(this.initialized),Di(this.isBrowserEnvironment),{}}preflightBrowserEnvironmentCheck(e,t){xi(this.initialized),Di(this.isBrowserEnvironment)}async clearCache(e){xi(this.initialized),Di(this.isBrowserEnvironment)}async hydrateCache(e,t){xi(this.initialized),Di(this.isBrowserEnvironment)}}class ma extends Wi{getModuleName(){return ma.MODULE_NAME}getId(){return ma.ID}async initialize(){return!0}}ma.MODULE_NAME="",ma.ID="UnknownOperatingContext";class fa{static async createPublicClientApplication(e){const t=await Xi(e);let r;return r=null!==t?new fa(e,t):new fa(e),r}constructor(e,t){if(this.configuration=e,t)this.controller=t;else{const t=new ma(e);this.controller=new pa(t)}}async initialize(){if(this.controller instanceof pa){const e=await Xi(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(Ss(ws)),acquireTokenPopup:()=>Promise.reject(Ss(ws)),acquireTokenRedirect:()=>Promise.reject(Ss(ws)),acquireTokenSilent:()=>Promise.reject(Ss(ws)),acquireTokenByCode:()=>Promise.reject(Ss(ws)),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(Ss(ws)),loginPopup:()=>Promise.reject(Ss(ws)),loginRedirect:()=>Promise.reject(Ss(ws)),logout:()=>Promise.reject(Ss(ws)),logoutRedirect:()=>Promise.reject(Ss(ws)),logoutPopup:()=>Promise.reject(Ss(ws)),ssoSilent:()=>Promise.reject(Ss(ws)),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw Ss(ws)},getLogger:()=>{throw Ss(ws)},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw Ss(ws)},hydrateCache:()=>Promise.reject(Ss(ws)),clearCache:()=>Promise.reject(Ss(ws))};class Ca{constructor(e,t){this.correlationId=t,this.measureName=Ca.makeMeasureName(e,t),this.startMark=Ca.makeStartMark(e,t),this.endMark=Ca.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(Ca.supportsBrowserPerformance())try{t.forEach((t=>{const r=Ca.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(Ca.makeStartMark(r,e)),window.performance.clearMarks(Ca.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(Ca.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(Ca.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(Ca.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 wa{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 po).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:gr.isEmptyObj(r)?void 0:r,state:e.state,authenticationScheme:e.authenticationScheme||Q.BEARER,extraParameters:t}}fromNaaTokenResponse(e,t,r){if(!t.id_token||!t.access_token)throw yt(Se);const o=new Date(1e3*(r+(t.expires_in||0))),n=_t(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||Q.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 Ie("unknown_error","An unknown error occurred");switch(e.status){case va.USER_CANCEL:return new ft(ht);case va.NO_NETWORK:return new ft(ct);case va.ACCOUNT_UNAVAILABLE:return new ft(Ve);case va.DISABLED:return new ft(ut);case va.NESTED_APP_AUTH_UNAVAILABLE:return new ft(e.code||ut,e.description);case va.TRANSIENT_ERROR:case va.PERSISTENT_ERROR:return new ro(e.code,e.description);case va.USER_INTERACTION_REQUIRED:return new Eo(e.code,e.description);default:return new Ie(e.code,e.description)}}}const Ia={code:"unsupported_method",desc:"The PKCE code challenge and verifier could not be generated."};class Ta extends Ie{constructor(e,t){super(e,t),Object.setPrototypeOf(this,Ta.prototype),this.name="NestedAppAuthError"}static createUnsupportedError(){return new Ta(Ia.code,Ia.desc)}}class Aa{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):Ct,this.eventHandler=new Ns(this.logger,this.browserCrypto),this.nestedAppAuthAdapter=new wa(this.config.auth.clientId,this.config.auth.clientCapabilities,this.browserCrypto,this.logger)}getBrowserStorage(){throw Ta.createUnsupportedError()}getEventHandler(){return this.eventHandler}static async createController(e){const t=new Aa(e);return Promise.resolve(t)}initialize(){return Promise.resolve()}async acquireTokenInteractive(t){this.eventHandler.emitEvent(Ms.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t);const r=this.performanceClient.startMeasurement(Ur.AcquireTokenPopup,t.correlationId);r?.add({nestedAppAuthRequest:!0});try{const o=this.nestedAppAuthAdapter.toNaaTokenRequest(t),n=St.nowSeconds(),i=await this.bridgeProxy.getTokenInteractive(o),s=this.nestedAppAuthAdapter.fromNaaTokenResponse(o,i,n);return this.operatingContext.setActiveAccount(s.account),this.eventHandler.emitEvent(Ms.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(Ms.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(Ms.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t);const r=this.performanceClient.startMeasurement(Ur.SsoSilent,t.correlationId);r?.increment({visibilityChangeCount:0}),r?.add({nestedAppAuthRequest:!0});try{const o=this.nestedAppAuthAdapter.toNaaTokenRequest(t),n=St.nowSeconds(),i=await this.bridgeProxy.getTokenSilent(o),s=this.nestedAppAuthAdapter.fromNaaTokenResponse(o,i,n);return this.operatingContext.setActiveAccount(s.account),this.eventHandler.emitEvent(Ms.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(Ms.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 Ta.createUnsupportedError()}async acquireTokenSilent(e){return this.acquireTokenSilentInternal(e)}acquireTokenByCode(e){throw Ta.createUnsupportedError()}acquireTokenNative(e,t,r){throw Ta.createUnsupportedError()}acquireTokenByRefreshToken(e,t){throw Ta.createUnsupportedError()}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){throw Ta.createUnsupportedError()}removePerformanceCallback(e){throw Ta.createUnsupportedError()}enableAccountStorageEvents(){throw Ta.createUnsupportedError()}disableAccountStorageEvents(){throw Ta.createUnsupportedError()}getAccount(e){throw Ta.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 Ta.createUnsupportedError()}loginPopup(e){if(void 0!==e)return this.acquireTokenInteractive(e);throw Ta.createUnsupportedError()}loginRedirect(e){throw Ta.createUnsupportedError()}logout(e){throw Ta.createUnsupportedError()}logoutRedirect(e){throw Ta.createUnsupportedError()}logoutPopup(e){throw Ta.createUnsupportedError()}ssoSilent(e){return this.acquireTokenSilentInternal(e)}getTokenCache(){throw Ta.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 Ta.createUnsupportedError()}getRedirectResponse(){throw Ta.createUnsupportedError()}preflightBrowserEnvironmentCheck(e,t){throw Ta.createUnsupportedError()}async clearCache(e){throw Ta.createUnsupportedError()}async hydrateCache(e,t){throw Ta.createUnsupportedError()}}var _a=Object.freeze({__proto__:null,NestedAppAuthController:Aa});e.AccountEntity=Sr,e.ApiId=Ai,e.AuthError=Ie,e.AuthErrorCodes=Ce,e.AuthErrorMessage=we,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 ur(nr)}const t=this.headers[d];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw ur(nr)}throw ur(or)}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=Q,e.AzureCloudInstance=At,e.BrowserAuthError=Yn,e.BrowserAuthErrorCodes=Gn,e.BrowserAuthErrorMessage=Wn,e.BrowserCacheLocation=ii,e.BrowserConfigurationAuthError=ks,e.BrowserConfigurationAuthErrorCodes=Ts,e.BrowserConfigurationAuthErrorMessage=_s,e.BrowserPerformanceClient=class extends Vo{constructor(e,r){super(e.auth.clientId,e.auth.authority||`${t.DEFAULT_AUTHORITY}`,new wt(e.system?.loggerOptions||{},ji,Qi),ji,Qi,e.telemetry?.application||{appName:"",appVersion:""},r)}startPerformanceMeasurement(e,t){return new Ca(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&&Ca.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=Ca,e.BrowserStorage=Es,e.BrowserUtils=Fi,e.CacheLookupPolicy=Ri,e.ClientAuthError=ft,e.ClientAuthErrorCodes=gt,e.ClientAuthErrorMessage=mt,e.ClientConfigurationError=dr,e.ClientConfigurationErrorCodes=cr,e.ClientConfigurationErrorMessage=lr,e.DEFAULT_IFRAME_TIMEOUT_MS=Gi,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case Ms.LOGIN_START:return ki.Login;case Ms.SSO_SILENT_START:return ki.SsoSilent;case Ms.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return ki.AcquireToken;break;case Ms.HANDLE_REDIRECT_START:return ki.HandleRedirect;case Ms.LOGOUT_START:return ki.Logout;case Ms.SSO_SILENT_SUCCESS:case Ms.SSO_SILENT_FAILURE:if(r&&r!==ki.SsoSilent)break;return ki.None;case Ms.LOGOUT_END:if(r&&r!==ki.Logout)break;return ki.None;case Ms.HANDLE_REDIRECT_END:if(r&&r!==ki.HandleRedirect)break;return ki.None;case Ms.LOGIN_SUCCESS:case Ms.LOGIN_FAILURE:case Ms.ACQUIRE_TOKEN_SUCCESS:case Ms.ACQUIRE_TOKEN_FAILURE:case Ms.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==ki.Login&&r!==ki.AcquireToken)break;return ki.None}}return null}},e.EventType=Ms,e.InteractionRequiredAuthError=Eo,e.InteractionRequiredAuthErrorCodes=To,e.InteractionRequiredAuthErrorMessage=So,e.InteractionStatus=ki,e.JsonWebTokenTypes=me,e.Logger=wt,e.MemoryStorage=us,e.NavigationClient=zi,e.OIDC_DEFAULT_SCOPES=s,e.PerformanceEvents=Ur,e.PromptValue=E,e.ProtocolMode=kr,e.PublicClientApplication=ga,e.PublicClientNext=fa,e.ServerError=ro,e.ServerResponseType=R,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new wt(r,ji,Qi),this.cryptoOps=new ys(this.logger),this.popTokenGenerator=new Oo(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 this.cryptoOps.removeTokenBindingKey(e)}},e.StringUtils=gr,e.UrlString=Rr,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.stubbedPublicClientApplication=ya,e.version=Qi}));
3
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
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,n=499,o=500,i=599,s=[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE],a=[...s,t.EMAIL_SCOPE],c="Content-Type",l="Retry-After",h="X-AnchorMailbox",d="WWW-Authenticate",u="Authentication-Info",g="x-ms-request-id",p="x-ms-httpver",m="idtoken",f="client.info",C="adal.idtoken",y="error",v="error.description",w="active-account",I="active-account-filters",T="common",A="organizations",k="consumers",S="access_token",E="xms_cc",R={LOGIN:"login",SELECT_ACCOUNT:"select_account",CONSENT:"consent",NONE:"none",CREATE:"create",NO_SESSION:"no_session"},b={PLAIN:"plain",S256:"S256"},_={QUERY:"query",FRAGMENT:"fragment"},P={..._,FORM_POST:"form_post"},M="authorization_code",N="refresh_token",O="MSSTS",q="ADFS",L="Generic",U={CACHE_KEY_SEPARATOR:"-",CLIENT_INFO_SEPARATOR:"."},H={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},B="appmetadata",D="1",x="authority-metadata",K=86400,F="config",z="cache",$="network",G="hardcoded_values",Q={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"},j={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},W=60,Y=3600,V="throttling",J="retry-after, h429",X="invalid_grant",Z="client_mismatch",ee="username",te="password",re=200,ne=400,oe="1",ie="3",se="4",ae="2",ce="4",le="5",he="0",de="1",ue="2",ge="3",pe="4",me={Jwt:"JWT",Jwk:"JWK",Pop:"pop"},fe="unexpected_error",Ce="post_request_failed";var ye=Object.freeze({__proto__:null,postRequestFailed:Ce,unexpectedError:fe});
5
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const ve={[fe]:"Unexpected error in authentication.",[Ce]:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."},we={unexpectedError:{code:fe,desc:ve[fe]},postRequestFailed:{code:Ce,desc:ve[Ce]}};class Ie extends Error{constructor(e,r,n){super(r?`${e}: ${r}`:e),Object.setPrototypeOf(this,Ie.prototype),this.errorCode=e||t.EMPTY_STRING,this.errorMessage=r||t.EMPTY_STRING,this.subError=n||t.EMPTY_STRING,this.name="AuthError"}setCorrelationId(e){this.correlationId=e}}function Te(e,t){return new Ie(e,t?`${ve[e]} ${t}`:ve[e])}
6
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const Ae="client_info_decoding_error",ke="client_info_empty_error",Se="token_parsing_error",Ee="null_or_empty_token",Re="endpoints_resolution_error",be="network_error",_e="openid_config_error",Pe="hash_not_deserialized",Me="invalid_state",Ne="state_mismatch",Oe="state_not_found",qe="nonce_mismatch",Le="auth_time_not_found",Ue="max_age_transpired",He="multiple_matching_tokens",Be="multiple_matching_accounts",De="multiple_matching_appMetadata",xe="request_cannot_be_made",Ke="cannot_remove_empty_scope",Fe="cannot_append_scopeset",ze="empty_input_scopeset",$e="device_code_polling_cancelled",Ge="device_code_expired",Qe="device_code_unknown_error",je="no_account_in_silent_request",We="invalid_cache_record",Ye="invalid_cache_environment",Ve="no_account_found",Je="no_crypto_object",Xe="unexpected_credential_type",Ze="invalid_assertion",et="invalid_client_credential",tt="token_refresh_required",rt="user_timeout_reached",nt="token_claims_cnf_required_for_signedjwt",ot="authorization_code_missing_from_server_response",it="binding_key_not_removed",st="end_session_endpoint_not_supported",at="key_id_missing",ct="no_network_connectivity",lt="user_canceled",ht="missing_tenant_id_error",dt="method_not_implemented",ut="nested_app_auth_bridge_disabled";var gt=Object.freeze({__proto__:null,authTimeNotFound:Le,authorizationCodeMissingFromServerResponse:ot,bindingKeyNotRemoved:it,cannotAppendScopeSet:Fe,cannotRemoveEmptyScope:Ke,clientInfoDecodingError:Ae,clientInfoEmptyError:ke,deviceCodeExpired:Ge,deviceCodePollingCancelled:$e,deviceCodeUnknownError:Qe,emptyInputScopeSet:ze,endSessionEndpointNotSupported:st,endpointResolutionError:Re,hashNotDeserialized:Pe,invalidAssertion:Ze,invalidCacheEnvironment:Ye,invalidCacheRecord:We,invalidClientCredential:et,invalidState:Me,keyIdMissing:at,maxAgeTranspired:Ue,methodNotImplemented:dt,missingTenantIdError:ht,multipleMatchingAccounts:Be,multipleMatchingAppMetadata:De,multipleMatchingTokens:He,nestedAppAuthBridgeDisabled:ut,networkError:be,noAccountFound:Ve,noAccountInSilentRequest:je,noCryptoObject:Je,noNetworkConnectivity:ct,nonceMismatch:qe,nullOrEmptyToken:Ee,openIdConfigError:_e,requestCannotBeMade:xe,stateMismatch:Ne,stateNotFound:Oe,tokenClaimsCnfRequiredForSignedJwt:nt,tokenParsingError:Se,tokenRefreshRequired:tt,unexpectedCredentialType:Xe,userCanceled:lt,userTimeoutReached:rt});
7
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const pt={[Ae]:"The client info could not be parsed/decoded correctly",[ke]:"The client info was empty",[Se]:"Token cannot be parsed",[Ee]:"The token is null or empty",[Re]:"Endpoints cannot be resolved",[be]:"Network request failed",[_e]:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.",[Pe]:"The hash parameters could not be deserialized",[Me]:"State was not the expected format",[Ne]:"State mismatch error",[Oe]:"State not found",[qe]:"Nonce mismatch error",[Le]:"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.",[Ue]:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.",[He]:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account.",[Be]:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account",[De]:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata",[xe]:"Token request cannot be made without authorization code or refresh token.",[Ke]:"Cannot remove null or empty scope from ScopeSet",[Fe]:"Cannot append ScopeSet",[ze]:"Empty input ScopeSet cannot be processed",[$e]:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.",[Ge]:"Device code is expired.",[Qe]:"Device code stopped polling for unknown reasons.",[je]:"Please pass an account object, silent flow is not supported without account information",[We]:"Cache record object was null or undefined.",[Ye]:"Invalid environment when attempting to create cache entry",[Ve]:"No account found in cache for given key.",[Je]:"No crypto object detected.",[Xe]:"Unexpected credential type.",[Ze]:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515",[et]:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential",[tt]:"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.",[rt]:"User defined timeout for device code polling reached",[nt]:"Cannot generate a POP jwt if the token_claims are not populated",[ot]:"Server response does not contain an authorization code to proceed",[it]:"Could not remove the credential's binding key from storage.",[st]:"The provided authority does not support logout",[at]:"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.",[ct]:"No network connectivity. Check your internet connection.",[lt]:"User cancelled the flow.",[ht]:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.",[dt]:"This method has not been implemented",[ut]:"The nested app auth bridge is disabled"},mt={clientInfoDecodingError:{code:Ae,desc:pt[Ae]},clientInfoEmptyError:{code:ke,desc:pt[ke]},tokenParsingError:{code:Se,desc:pt[Se]},nullOrEmptyToken:{code:Ee,desc:pt[Ee]},endpointResolutionError:{code:Re,desc:pt[Re]},networkError:{code:be,desc:pt[be]},unableToGetOpenidConfigError:{code:_e,desc:pt[_e]},hashNotDeserialized:{code:Pe,desc:pt[Pe]},invalidStateError:{code:Me,desc:pt[Me]},stateMismatchError:{code:Ne,desc:pt[Ne]},stateNotFoundError:{code:Oe,desc:pt[Oe]},nonceMismatchError:{code:qe,desc:pt[qe]},authTimeNotFoundError:{code:Le,desc:pt[Le]},maxAgeTranspired:{code:Ue,desc:pt[Ue]},multipleMatchingTokens:{code:He,desc:pt[He]},multipleMatchingAccounts:{code:Be,desc:pt[Be]},multipleMatchingAppMetadata:{code:De,desc:pt[De]},tokenRequestCannotBeMade:{code:xe,desc:pt[xe]},removeEmptyScopeError:{code:Ke,desc:pt[Ke]},appendScopeSetError:{code:Fe,desc:pt[Fe]},emptyInputScopeSetError:{code:ze,desc:pt[ze]},DeviceCodePollingCancelled:{code:$e,desc:pt[$e]},DeviceCodeExpired:{code:Ge,desc:pt[Ge]},DeviceCodeUnknownError:{code:Qe,desc:pt[Qe]},NoAccountInSilentRequest:{code:je,desc:pt[je]},invalidCacheRecord:{code:We,desc:pt[We]},invalidCacheEnvironment:{code:Ye,desc:pt[Ye]},noAccountFound:{code:Ve,desc:pt[Ve]},noCryptoObj:{code:Je,desc:pt[Je]},unexpectedCredentialType:{code:Xe,desc:pt[Xe]},invalidAssertion:{code:Ze,desc:pt[Ze]},invalidClientCredential:{code:et,desc:pt[et]},tokenRefreshRequired:{code:tt,desc:pt[tt]},userTimeoutReached:{code:rt,desc:pt[rt]},tokenClaimsRequired:{code:nt,desc:pt[nt]},noAuthorizationCodeFromServer:{code:ot,desc:pt[ot]},bindingKeyNotRemovedError:{code:it,desc:pt[it]},logoutNotSupported:{code:st,desc:pt[st]},keyIdMissing:{code:at,desc:pt[at]},noNetworkConnectivity:{code:ct,desc:pt[ct]},userCanceledError:{code:lt,desc:pt[lt]},missingTenantIdError:{code:ht,desc:pt[ht]},nestedAppAuthBridgeDisabled:{code:ut,desc:pt[ut]}};class ft extends Ie{constructor(e,t){super(e,t?`${pt[e]}: ${t}`:pt[e]),this.name="ClientAuthError",Object.setPrototypeOf(this,ft.prototype)}}function Ct(e,t){return new ft(e,t)}
8
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const yt={createNewGuid:()=>{throw Ct(dt)},base64Decode:()=>{throw Ct(dt)},base64Encode:()=>{throw Ct(dt)},async getPublicKeyThumbprint(){throw Ct(dt)},async removeTokenBindingKey(){throw Ct(dt)},async clearKeystore(){throw Ct(dt)},async signJwt(){throw Ct(dt)},async hashString(){throw Ct(dt)}};
9
+ /*! @azure/msal-common v14.6.1 2024-01-23 */var vt;e.LogLevel=void 0,(vt=e.LogLevel||(e.LogLevel={}))[vt.Error=0]="Error",vt[vt.Warning=1]="Warning",vt[vt.Info=2]="Info",vt[vt.Verbose=3]="Verbose",vt[vt.Trace=4]="Trace";class wt{constructor(r,n,o){this.level=e.LogLevel.Info;const i=r||wt.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=n||t.EMPTY_STRING,this.packageVersion=o||t.EMPTY_STRING}static createDefaultLoggerOptions(){return{loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info}}clone(e,t,r){return new wt({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 n=`${`[${(new Date).toUTCString()}] : [${r.correlationId||this.correlationId||""}]`} : ${this.packageName}@${this.packageVersion} : ${e.LogLevel[r.logLevel]} - ${t}`;this.executeCallback(r.logLevel,n,r.containsPii||!1)}executeCallback(e,t,r){this.localCallback&&this.localCallback(e,t,r)}error(r,n){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!1,correlationId:n||t.EMPTY_STRING})}errorPii(r,n){this.logMessage(r,{logLevel:e.LogLevel.Error,containsPii:!0,correlationId:n||t.EMPTY_STRING})}warning(r,n){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!1,correlationId:n||t.EMPTY_STRING})}warningPii(r,n){this.logMessage(r,{logLevel:e.LogLevel.Warning,containsPii:!0,correlationId:n||t.EMPTY_STRING})}info(r,n){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!1,correlationId:n||t.EMPTY_STRING})}infoPii(r,n){this.logMessage(r,{logLevel:e.LogLevel.Info,containsPii:!0,correlationId:n||t.EMPTY_STRING})}verbose(r,n){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!1,correlationId:n||t.EMPTY_STRING})}verbosePii(r,n){this.logMessage(r,{logLevel:e.LogLevel.Verbose,containsPii:!0,correlationId:n||t.EMPTY_STRING})}trace(r,n){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!1,correlationId:n||t.EMPTY_STRING})}tracePii(r,n){this.logMessage(r,{logLevel:e.LogLevel.Trace,containsPii:!0,correlationId:n||t.EMPTY_STRING})}isPiiLoggingEnabled(){return this.piiLoggingEnabled||!1}}
10
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const It="@azure/msal-common",Tt="14.6.1",At={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.6.1 2024-01-23 */
12
+ function kt(e,t){const r=function(e){if(!e)throw Ct(Ee);const t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(e);if(!t||t.length<4)throw Ct(Se);return t[2]}(e);try{const e=t(r);return JSON.parse(e)}catch(e){throw Ct(Se)}}function St(e,t){if(0===t||Date.now()-3e5>e+t)throw Ct(Ue)}
13
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Et{static nowSeconds(){return Math.round((new Date).getTime()/1e3)}static isTokenExpired(e,t){const r=Number(e)||0;return Et.nowSeconds()+t>r}static wasClockTurnedBack(e){return Number(e)>Et.nowSeconds()}static delay(e,t){return new Promise((r=>setTimeout((()=>r(t)),e)))}}
14
+ /*! @azure/msal-common v14.6.1 2024-01-23 */function Rt(e){return[Lt(e),Ut(e),Ht(e),Bt(e),Dt(e)].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}function bt(e,t,r,n,o){return{credentialType:H.ID_TOKEN,homeAccountId:e,environment:t,clientId:n,secret:r,realm:o}}function _t(e,t,r,n,o,i,s,a,c,l,h,d,u,g,p){const m={homeAccountId:e,credentialType:H.ACCESS_TOKEN,secret:r,cachedAt:Et.nowSeconds().toString(),expiresOn:s.toString(),extendedExpiresOn:a.toString(),environment:t,clientId:n,realm:o,target:i,tokenType:h||j.BEARER};if(d&&(m.userAssertionHash=d),l&&(m.refreshOn=l.toString()),g&&(m.requestedClaims=g,m.requestedClaimsHash=p),m.tokenType?.toLowerCase()!==j.BEARER.toLowerCase())switch(m.credentialType=H.ACCESS_TOKEN_WITH_AUTH_SCHEME,m.tokenType){case j.POP:const e=kt(r,c);if(!e?.cnf?.kid)throw Ct(nt);m.keyId=e.cnf.kid;break;case j.SSH:m.keyId=u}return m}function Pt(e,t,r,n,o,i,s){const a={credentialType:H.REFRESH_TOKEN,homeAccountId:e,environment:t,clientId:n,secret:r};return i&&(a.userAssertionHash=i),o&&(a.familyId=o),s&&(a.expiresOn=s.toString()),a}function Mt(e){return e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("credentialType")&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("secret")}function Nt(e){return!!e&&(Mt(e)&&e.hasOwnProperty("realm")&&e.hasOwnProperty("target")&&(e.credentialType===H.ACCESS_TOKEN||e.credentialType===H.ACCESS_TOKEN_WITH_AUTH_SCHEME))}function Ot(e){return!!e&&(Mt(e)&&e.hasOwnProperty("realm")&&e.credentialType===H.ID_TOKEN)}function qt(e){return!!e&&(Mt(e)&&e.credentialType===H.REFRESH_TOKEN)}function Lt(e){return[e.homeAccountId,e.environment].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}function Ut(e){const t=e.credentialType===H.REFRESH_TOKEN&&e.familyId||e.clientId;return[e.credentialType,t,e.realm||""].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}function Ht(e){return(e.target||"").toLowerCase()}function Bt(e){return(e.requestedClaimsHash||"").toLowerCase()}function Dt(e){return e.tokenType&&e.tokenType.toLowerCase()!==j.BEARER.toLowerCase()?e.tokenType.toLowerCase():""}function xt(){return Et.nowSeconds()+K}function Kt(e,t,r){e.authorization_endpoint=t.authorization_endpoint,e.token_endpoint=t.token_endpoint,e.end_session_endpoint=t.end_session_endpoint,e.issuer=t.issuer,e.endpointsFromNetwork=r,e.jwks_uri=t.jwks_uri}function Ft(e,t,r){e.aliases=t.aliases,e.preferred_cache=t.preferred_cache,e.preferred_network=t.preferred_network,e.aliasesFromNetwork=r}function zt(e){return e.expiresAt<=Et.nowSeconds()}
15
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const $t="redirect_uri_empty",Gt="claims_request_parsing_error",Qt="authority_uri_insecure",jt="url_parse_error",Wt="empty_url_error",Yt="empty_input_scopes_error",Vt="invalid_prompt_value",Jt="invalid_claims",Xt="token_request_empty",Zt="logout_request_empty",er="invalid_code_challenge_method",tr="pkce_params_missing",rr="invalid_cloud_discovery_metadata",nr="invalid_authority_metadata",or="untrusted_authority",ir="missing_ssh_jwk",sr="missing_ssh_kid",ar="missing_nonce_authentication_header",cr="invalid_authentication_header",lr="cannot_set_OIDCOptions",hr="cannot_allow_native_broker",dr="authority_mismatch";var ur=Object.freeze({__proto__:null,authorityMismatch:dr,authorityUriInsecure:Qt,cannotAllowNativeBroker:hr,cannotSetOIDCOptions:lr,claimsRequestParsingError:Gt,emptyInputScopesError:Yt,invalidAuthenticationHeader:cr,invalidAuthorityMetadata:nr,invalidClaims:Jt,invalidCloudDiscoveryMetadata:rr,invalidCodeChallengeMethod:er,invalidPromptValue:Vt,logoutRequestEmpty:Zt,missingNonceAuthenticationHeader:ar,missingSshJwk:ir,missingSshKid:sr,pkceParamsMissing:tr,redirectUriEmpty:$t,tokenRequestEmpty:Xt,untrustedAuthority:or,urlEmptyError:Wt,urlParseError:jt});
16
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const gr={[$t]:"A redirect URI is required for all calls, and none has been set.",[Gt]:"Could not parse the given claims request object.",[Qt]:"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",[jt]:"URL could not be parsed into appropriate segments.",[Wt]:"URL was empty or null.",[Yt]:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",[Vt]:"Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest",[Jt]:"Given claims parameter must be a stringified JSON object.",[Xt]:"Token request was empty and not found in cache.",[Zt]:"The logout request was null or undefined.",[er]:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',[tr]:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",[rr]:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",[nr]:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",[or]:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",[ir]:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",[sr]:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",[ar]:"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.",[cr]:"Invalid authentication header provided",[lr]:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",[hr]:"Cannot set allowNativeBroker parameter to true when not in AAD protocol mode.",[dr]:"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."},pr={redirectUriNotSet:{code:$t,desc:gr[$t]},claimsRequestParsingError:{code:Gt,desc:gr[Gt]},authorityUriInsecure:{code:Qt,desc:gr[Qt]},urlParseError:{code:jt,desc:gr[jt]},urlEmptyError:{code:Wt,desc:gr[Wt]},emptyScopesError:{code:Yt,desc:gr[Yt]},invalidPrompt:{code:Vt,desc:gr[Vt]},invalidClaimsRequest:{code:Jt,desc:gr[Jt]},tokenRequestEmptyError:{code:Xt,desc:gr[Xt]},logoutRequestEmptyError:{code:Zt,desc:gr[Zt]},invalidCodeChallengeMethod:{code:er,desc:gr[er]},invalidCodeChallengeParams:{code:tr,desc:gr[tr]},invalidCloudDiscoveryMetadata:{code:rr,desc:gr[rr]},invalidAuthorityMetadata:{code:nr,desc:gr[nr]},untrustedAuthority:{code:or,desc:gr[or]},missingSshJwk:{code:ir,desc:gr[ir]},missingSshKid:{code:sr,desc:gr[sr]},missingNonceAuthenticationHeader:{code:ar,desc:gr[ar]},invalidAuthenticationHeader:{code:cr,desc:gr[cr]},cannotSetOIDCOptions:{code:lr,desc:gr[lr]},cannotAllowNativeBroker:{code:hr,desc:gr[hr]},authorityMismatch:{code:dr,desc:gr[dr]}};class mr extends Ie{constructor(e){super(e,gr[e]),this.name="ClientConfigurationError",Object.setPrototypeOf(this,mr.prototype)}}function fr(e){return new mr(e)}
17
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Cr{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("&"),n=e=>decodeURIComponent(e.replace(/\+/g," "));return r.forEach((e=>{if(e.trim()){const[r,o]=e.split(/=(.+)/g,2);r&&o&&(t[n(r)]=n(o))}})),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)}}
18
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class yr{constructor(e){const t=e?Cr.trimArrayEntries([...e]):[],r=t?Cr.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 yr(r)}static createSearchScopes(e){const r=new yr(e);return r.containsOnlyOIDCScopes()?r.removeScope(t.OFFLINE_ACCESS_SCOPE):r.removeOIDCScopes(),r}validateInputScopes(e){if(!e||e.length<1)throw fr(Yt)}containsScope(e){const t=this.printScopesLowerCase().split(" "),r=new yr(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 Ct(Fe)}}removeScope(e){if(!e)throw Ct(Ke);this.scopes.delete(e.trim())}removeOIDCScopes(){a.forEach((e=>{this.scopes.delete(e)}))}unionScopeSets(e){if(!e)throw Ct(ze);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 Ct(ze);e.containsOnlyOIDCScopes()||e.removeOIDCScopes();const t=this.unionScopeSets(e),r=e.getScopeCount(),n=this.getScopeCount();return t.size<n+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()}}
19
+ /*! @azure/msal-common v14.6.1 2024-01-23 */function vr(e,t){if(!e)throw Ct(ke);try{const r=t(e);return JSON.parse(r)}catch(e){throw Ct(Ae)}}function wr(e){if(!e)throw Ct(Ae);const r=e.split(U.CLIENT_INFO_SEPARATOR,2);return{uid:r[0],utid:r.length<2?t.EMPTY_STRING:r[1]}}
20
+ /*! @azure/msal-common v14.6.1 2024-01-23 */function Ir(e,t){return!!e&&!!t&&e===t.split(".")[1]}function Tr(e,t){const{oid:r,sub:n,tid:o,name:i,tfp:s,acr:a}=t,c=o||s||a||"";return{tenantId:c,localAccountId:r||n||"",name:i,isHomeTenant:Ir(c,e)}}function Ar(e,t,r){let n=e;if(t){const{isHomeTenant:r,...o}=t;n={...e,...o}}if(r){const{isHomeTenant:t,...o}=Tr(e.homeAccountId,r);return n={...n,...o,idTokenClaims:r},n}return n}
21
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const kr=0,Sr=1,Er=2,Rr=3;
22
+ /*! @azure/msal-common v14.6.1 2024-01-23 */function br(e){if(e){return e.tid||e.tfp||e.acr||null}return null}
23
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const _r={AAD:"AAD",OIDC:"OIDC"};
24
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Pr{generateAccountId(){return[this.homeAccountId,this.environment].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}generateAccountKey(){return Pr.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,nativeAccountId:this.nativeAccountId,authorityType:this.authorityType,tenantProfiles:new Map((this.tenantProfiles||[]).map((e=>[e.tenantId,e])))}}isSingleTenant(){return!this.tenantProfiles}static generateAccountCacheKey(e){const t=e.homeAccountId.split(".")[1];return[e.homeAccountId,e.environment||"",t||e.tenantId||""].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}static createAccount(e,t,r){const n=new Pr;let o;t.authorityType===Sr?n.authorityType=q:t.protocolMode===_r.AAD?n.authorityType=O:n.authorityType=L,e.clientInfo&&r&&(o=vr(e.clientInfo,r)),n.clientInfo=e.clientInfo,n.homeAccountId=e.homeAccountId,n.nativeAccountId=e.nativeAccountId;const i=e.environment||t&&t.getPreferredCache();if(!i)throw Ct(Ye);n.environment=i,n.realm=o?.utid||br(e.idTokenClaims)||"",n.localAccountId=o?.uid||e.idTokenClaims.oid||e.idTokenClaims.sub||"";const s=e.idTokenClaims.preferred_username||e.idTokenClaims.upn,a=e.idTokenClaims.emails?e.idTokenClaims.emails[0]:null;if(n.username=s||a||"",n.name=e.idTokenClaims.name,n.cloudGraphHostName=e.cloudGraphHostName,n.msGraphHost=e.msGraphHost,e.tenantProfiles)n.tenantProfiles=e.tenantProfiles;else{const t=[];if(e.idTokenClaims){const r=Tr(e.homeAccountId,e.idTokenClaims);t.push(r)}n.tenantProfiles=t}return n}static createFromAccountInfo(e,t,r){const n=new Pr;return n.authorityType=e.authorityType||L,n.homeAccountId=e.homeAccountId,n.localAccountId=e.localAccountId,n.nativeAccountId=e.nativeAccountId,n.realm=e.tenantId,n.environment=e.environment,n.username=e.username,n.name=e.name,n.cloudGraphHostName=t,n.msGraphHost=r,n.tenantProfiles=Array.from(e.tenantProfiles?.values()||[]),n}static generateHomeAccountId(e,t,r,n,o){if(t!==Sr&&t!==Er){if(e)try{const t=vr(e,n.base64Decode);if(t.uid&&t.utid)return`${t.uid}.${t.utid}`}catch(e){}r.warning("No client info in response")}return o?.sub||""}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 n=!0;if(r){const r=e.idTokenClaims||{},o=t.idTokenClaims||{};n=r.iat===o.iat&&r.nonce===o.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&&n}}
25
+ /*! @azure/msal-common v14.6.1 2024-01-23 */function Mr(e){return e.startsWith("#/")?e.substring(2):e.startsWith("#")||e.startsWith("?")?e.substring(1):e}function Nr(e){if(!e||e.indexOf("=")<0)return null;try{const t=Mr(e),r=Object.fromEntries(new URLSearchParams(t));if(r.code||r.error||r.error_description||r.state)return r}catch(e){throw Ct(Pe)}return null}
26
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Or{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,!this._urlString)throw fr(Wt);e.includes("#")||(this._urlString=Or.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return Cr.endsWith(t,"?")?t=t.slice(0,-1):Cr.endsWith(t,"?/")&&(t=t.slice(0,-2)),Cr.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch(e){throw fr(jt)}if(!e.HostNameAndPort||!e.PathSegments)throw fr(jt);if(!e.Protocol||"https:"!==e.Protocol.toLowerCase())throw fr(Qt)}static appendQueryString(e,t){return t?e.indexOf("?")<0?`${e}?${t}`:`${e}&${t}`:e}static removeHashFromUrl(e){return Or.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const t=this.getUrlComponents(),r=t.PathSegments;return!e||0===r.length||r[0]!==T&&r[0]!==A||(r[0]=e),Or.constructAuthorityUriFromObject(t)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw fr(jt);const r={Protocol:t[1],HostNameAndPort:t[4],AbsolutePath:t[5],QueryString:t[7]};let n=r.AbsolutePath.split("/");return n=n.filter((e=>e&&e.length>0)),r.PathSegments=n,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 fr(jt);return r[2]}static getAbsoluteUrl(e,r){if(e[0]===t.FORWARD_SLASH){const t=new Or(r).getUrlComponents();return t.Protocol+"//"+t.HostNameAndPort+e}return e}static constructAuthorityUriFromObject(e){return new Or(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static hashContainsKnownProperties(e){return!!Nr(e)}}
27
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const qr={"login.microsoftonline.com":{token_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.com/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/logout"},"login.chinacloudapi.cn":{token_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.chinacloudapi.cn/{tenantid}/discovery/v2.0/keys",issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",authorization_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/logout"},"login.microsoftonline.us":{token_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.us/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout"}},Lr={tenant_discovery_endpoint:"https://{canonicalAuthority}/v2.0/.well-known/openid-configuration",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"]}]},Ur=new Set;function Hr(e,t,r,n){if(n?.trace(`getAliasesFromMetadata called with source: ${r}`),e&&t){const o=Br(t,e);if(o)return n?.trace(`getAliasesFromMetadata: found cloud discovery metadata in ${r}, returning aliases`),o.aliases;n?.trace(`getAliasesFromMetadata: did not find cloud discovery metadata in ${r}`)}return null}function Br(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n.aliases.includes(t))return n}return null}
28
+ /*! @azure/msal-common v14.6.1 2024-01-23 */Lr.metadata.forEach((e=>{e.aliases.forEach((e=>{Ur.add(e)}))}));class Dr{constructor(e,t,r,n){this.clientId=e,this.cryptoImpl=t,this.commonLogger=r.clone(It,Tt),this.staticAuthorityOptions=n}getAllAccounts(e){return this.buildTenantProfiles(this.getAccountsFilteredBy(e||{}),e)}getAccountInfoFilteredBy(e){const t=this.getAllAccounts(e);if(t.length>1){return t.sort((e=>e.idTokenClaims?-1:1))[0]}return 1===t.length?t[0]:null}getBaseAccountInfo(e){const t=this.getAccountsFilteredBy(e);return t.length>0?t[0].getAccountInfo():null}buildTenantProfiles(e,t){return e.flatMap((e=>this.getAccountInfoForTenantProfiles(e,t)))}getAccountInfoForTenantProfiles(e,t){return this.getTenantProfilesFromAccountEntity(e,t?.tenantId,t)}getTenantedAccountInfoByFilter(e,t,r,n){let o,i=null;if(n&&!this.tenantProfileMatchesFilter(r,n))return null;const s=this.getIdToken(e,t,r.tenantId);return s&&(o=kt(s.secret,this.cryptoImpl.base64Decode),!this.idTokenClaimsMatchTenantProfileFilter(o,n))?null:(i=Ar(e,r,o),i)}getTenantProfilesFromAccountEntity(e,t,r){const n=e.getAccountInfo();let o=n.tenantProfiles||new Map;const i=this.getTokenKeys();if(t){const e=o.get(t);if(!e)return[];o=new Map([[t,e]])}const s=[];return o.forEach((e=>{const t=this.getTenantedAccountInfoByFilter(n,i,e,r);t&&s.push(t)})),s}tenantProfileMatchesFilter(e,t){return!(t.localAccountId&&!this.matchLocalAccountIdFromTenantProfile(e,t.localAccountId))&&((!t.name||e.name===t.name)&&(void 0===t.isHomeTenant||e.isHomeTenant===t.isHomeTenant))}idTokenClaimsMatchTenantProfileFilter(e,t){if(t){if(t.localAccountId&&!this.matchLocalAccountIdFromTokenClaims(e,t.localAccountId))return!1;if(t.loginHint&&!this.matchLoginHintFromTokenClaims(e,t.loginHint))return!1;if(t.username&&!this.matchUsername(e.preferred_username,t.username))return!1;if(t.name&&!this.matchName(e,t.name))return!1;if(t.sid&&!this.matchSid(e,t.sid))return!1}return!0}async saveCacheRecord(e,t){if(!e)throw Ct(We);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(),n=yr.fromString(e.target),o=[];r.accessToken.forEach((e=>{if(!this.accessTokenKeyMatchesFilter(e,t,!1))return;const r=this.getAccessTokenCredential(e);if(r&&this.credentialMatchesFilter(r,t)){yr.fromString(r.target).intersectingScopeSets(n)&&o.push(this.removeAccessToken(e))}})),await Promise.all(o),this.setAccessTokenCredential(e)}getAccountsFilteredBy(e){const t=this.getAccountKeys(),r=[];return t.forEach((t=>{if(!this.isAccountKey(t,e.homeAccountId))return;const n=this.getAccount(t,this.commonLogger);if(!n)return;if(e.homeAccountId&&!this.matchHomeAccountId(n,e.homeAccountId))return;if(e.username&&!this.matchUsername(n.username,e.username))return;if(e.environment&&!this.matchEnvironment(n,e.environment))return;if(e.realm&&!this.matchRealm(n,e.realm))return;if(e.nativeAccountId&&!this.matchNativeAccountId(n,e.nativeAccountId))return;if(e.authorityType&&!this.matchAuthorityType(n,e.authorityType))return;const o={localAccountId:e?.localAccountId,name:e?.name},i=n.tenantProfiles?.filter((e=>this.tenantProfileMatchesFilter(e,o)));i&&0===i.length||r.push(n)})),r}isAccountKey(e,t,r){return!(e.split(U.CACHE_KEY_SEPARATOR).length<3)&&(!(t&&!e.toLowerCase().includes(t.toLowerCase()))&&!(r&&!e.toLowerCase().includes(r.toLowerCase())))}isCredentialKey(e){if(e.split(U.CACHE_KEY_SEPARATOR).length<6)return!1;const t=e.toLowerCase();if(-1===t.indexOf(H.ID_TOKEN.toLowerCase())&&-1===t.indexOf(H.ACCESS_TOKEN.toLowerCase())&&-1===t.indexOf(H.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())&&-1===t.indexOf(H.REFRESH_TOKEN.toLowerCase()))return!1;if(t.indexOf(H.REFRESH_TOKEN.toLowerCase())>-1){const e=`${H.REFRESH_TOKEN}${U.CACHE_KEY_SEPARATOR}${this.clientId}${U.CACHE_KEY_SEPARATOR}`,r=`${H.REFRESH_TOKEN}${U.CACHE_KEY_SEPARATOR}${D}${U.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===H.ACCESS_TOKEN_WITH_AUTH_SCHEME){if(t.tokenType&&!this.matchTokenType(e,t.tokenType))return!1;if(t.tokenType===j.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(),n={};return r.forEach((r=>{if(!this.isAppMetadata(r))return;const o=this.getAppMetadata(r);o&&(e&&!this.matchEnvironment(o,e)||t&&!this.matchClientId(o,t)||(n[r]=o))})),n}getAuthorityMetadataByAlias(e){const t=this.getAuthorityMetadataKeys();let r=null;return t.forEach((t=>{if(!this.isAuthorityMetadata(t)||-1===t.indexOf(this.clientId))return;const n=this.getAuthorityMetadata(t);n&&-1!==n.aliases.indexOf(e)&&(r=n)})),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,this.commonLogger);t&&(await this.removeAccountContext(t),this.removeItem(e))}async removeAccountContext(e){const t=this.getTokenKeys(),r=e.generateAccountId(),n=[];t.idToken.forEach((e=>{0===e.indexOf(r)&&this.removeIdToken(e)})),t.accessToken.forEach((e=>{0===e.indexOf(r)&&n.push(this.removeAccessToken(e))})),t.refreshToken.forEach((e=>{0===e.indexOf(r)&&this.removeRefreshToken(e)})),await Promise.all(n)}updateOutdatedCachedAccount(e,t,r){if(t&&t.isSingleTenant()){this.commonLogger?.verbose("updateOutdatedCachedAccount: Found a single-tenant (outdated) account entity in the cache, migrating to multi-tenant account entity");const n=this.getAccountKeys().filter((e=>e.startsWith(t.homeAccountId))),o=[];n.forEach((e=>{const t=this.getCachedAccountEntity(e);t&&o.push(t)}));const i=o.find((e=>Ir(e.realm,e.homeAccountId)))||o[0];i.tenantProfiles=o.map((e=>({tenantId:e.realm,localAccountId:e.localAccountId,name:e.name,isHomeTenant:Ir(e.realm,e.homeAccountId)})));const s=Dr.toObject(new Pr,{...i}),a=s.generateAccountKey();return n.forEach((t=>{t!==a&&this.removeOutdatedAccount(e)})),this.setAccount(s),r?.verbose("Updated an outdated account entity in the cache"),s}return t}async removeAccessToken(e){const t=this.getAccessTokenCredential(e);if(t){if(t.credentialType.toLowerCase()===H.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()&&t.tokenType===j.POP){const e=t.keyId;if(e)try{await this.cryptoImpl.removeTokenBindingKey(e)}catch(e){throw Ct(it)}}return this.removeItem(e)}}removeAppMetadata(){return this.getKeys().forEach((e=>{this.isAppMetadata(e)&&this.removeItem(e)})),!0}readAccountFromCache(e){const t=Pr.generateAccountCacheKey(e);return this.getAccount(t,this.commonLogger)}getIdToken(e,t,r,n,o){this.commonLogger.trace("CacheManager - getIdToken called");const i={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:H.ID_TOKEN,clientId:this.clientId,realm:r},s=this.getIdTokensByFilter(i,t),a=s.size;if(a<1)return this.commonLogger.info("CacheManager:getIdToken - No token found"),null;if(a>1){let t=s;if(!r){const r=new Map;s.forEach(((t,n)=>{t.realm===e.tenantId&&r.set(n,t)}));const n=r.size;if(n<1)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result"),s.values().next().value;if(1===n)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile"),r.values().next().value;t=r}return this.commonLogger.info("CacheManager:getIdToken - Multiple matching ID tokens found, clearing them"),t.forEach(((e,t)=>{this.removeIdToken(t)})),n&&o&&n.addFields({multiMatchedID:s.size},o),null}return this.commonLogger.info("CacheManager:getIdToken - Returning ID token"),s.values().next().value}getIdTokensByFilter(e,t){const r=t&&t.idToken||this.getTokenKeys().idToken,n=new Map;return r.forEach((t=>{if(!this.idTokenKeyMatchesFilter(t,{clientId:this.clientId,...e}))return;const r=this.getIdTokenCredential(t);r&&this.credentialMatchesFilter(r,e)&&n.set(t,r)})),n}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,n,o,i){this.commonLogger.trace("CacheManager - getAccessToken called");const s=yr.createSearchScopes(t.scopes),a=t.authenticationScheme||j.BEARER,c=a&&a.toLowerCase()!==j.BEARER.toLowerCase()?H.ACCESS_TOKEN_WITH_AUTH_SCHEME:H.ACCESS_TOKEN,l={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:c,clientId:this.clientId,realm:n||e.tenantId,target:s,tokenType:a,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},h=r&&r.accessToken||this.getTokenKeys().accessToken,d=[];h.forEach((e=>{if(this.accessTokenKeyMatchesFilter(e,l,!0)){const t=this.getAccessTokenCredential(e);t&&this.credentialMatchesFilter(t,l)&&d.push(t)}}));const u=d.length;return u<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):u>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),d.forEach((e=>{this.removeAccessToken(Rt(e))})),o&&i&&o.addFields({multiMatchedAT:d.length},i),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),d[0])}accessTokenKeyMatchesFilter(e,t,r){const n=e.toLowerCase();if(t.clientId&&-1===n.indexOf(t.clientId.toLowerCase()))return!1;if(t.homeAccountId&&-1===n.indexOf(t.homeAccountId.toLowerCase()))return!1;if(t.realm&&-1===n.indexOf(t.realm.toLowerCase()))return!1;if(t.requestedClaimsHash&&-1===n.indexOf(t.requestedClaimsHash.toLowerCase()))return!1;if(t.target){const e=t.target.asArray();for(let t=0;t<e.length;t++){if(r&&!n.includes(e[t].toLowerCase()))return!1;if(!r&&n.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 n=this.getAccessTokenCredential(t);n&&this.credentialMatchesFilter(n,e)&&r.push(n)})),r}getRefreshToken(e,t,r,n,o){this.commonLogger.trace("CacheManager - getRefreshToken called");const i=t?D:void 0,s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:H.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 l=c.length;return l<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(l>1&&n&&o&&n.addFields({multiMatchedRT:l},o),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),n=Object.keys(r).map((e=>r[e])),o=n.length;if(o<1)return null;if(o>1)throw Ct(De);return n[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!(!t||t.familyId!==D)}matchHomeAccountId(e,t){return!("string"!=typeof e.homeAccountId||t!==e.homeAccountId)}matchLocalAccountIdFromTokenClaims(e,t){return t===(e.oid||e.sub)}matchLocalAccountIdFromTenantProfile(e,t){return e.localAccountId===t}matchName(e,t){return!(t.toLowerCase()!==e.name?.toLowerCase())}matchUsername(e,t){return!(!e||"string"!=typeof e||t?.toLowerCase()!==e.toLowerCase())}matchUserAssertionHash(e,t){return!(!e.userAssertionHash||t!==e.userAssertionHash)}matchEnvironment(e,t){if(this.staticAuthorityOptions){const r=function(e,t){let r;const n=e.canonicalAuthority;if(n){const o=new Or(n).getUrlComponents().HostNameAndPort;r=Hr(o,e.cloudDiscoveryMetadata?.metadata,F,t)||Hr(o,Lr.metadata,G,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?.toLowerCase()!==t.toLowerCase())}matchNativeAccountId(e,t){return!(!e.nativeAccountId||t!==e.nativeAccountId)}matchLoginHintFromTokenClaims(e,t){return e.login_hint===t||(e.preferred_username===t||e.upn===t)}matchSid(e,t){return e.sid===t}matchAuthorityType(e,t){return!(!e.authorityType||t.toLowerCase()!==e.authorityType.toLowerCase())}matchTarget(e,t){if(e.credentialType!==H.ACCESS_TOKEN&&e.credentialType!==H.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target)return!1;return yr.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(B)}isAuthorityMetadata(e){return-1!==e.indexOf(x)}generateAuthorityMetadataCacheKey(e){return`${x}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class xr extends Dr{setAccount(){throw Ct(dt)}getAccount(){throw Ct(dt)}getCachedAccountEntity(){throw Ct(dt)}setIdTokenCredential(){throw Ct(dt)}getIdTokenCredential(){throw Ct(dt)}setAccessTokenCredential(){throw Ct(dt)}getAccessTokenCredential(){throw Ct(dt)}setRefreshTokenCredential(){throw Ct(dt)}getRefreshTokenCredential(){throw Ct(dt)}setAppMetadata(){throw Ct(dt)}getAppMetadata(){throw Ct(dt)}setServerTelemetry(){throw Ct(dt)}getServerTelemetry(){throw Ct(dt)}setAuthorityMetadata(){throw Ct(dt)}getAuthorityMetadata(){throw Ct(dt)}getAuthorityMetadataKeys(){throw Ct(dt)}setThrottlingCache(){throw Ct(dt)}getThrottlingCache(){throw Ct(dt)}removeItem(){throw Ct(dt)}containsKey(){throw Ct(dt)}getKeys(){throw Ct(dt)}getAccountKeys(){throw Ct(dt)}getTokenKeys(){throw Ct(dt)}async clear(){throw Ct(dt)}updateCredentialCacheKey(){throw Ct(dt)}removeOutdatedAccount(){throw Ct(dt)}}
29
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const Kr={tokenRenewalOffsetSeconds:300,preventCorsPreflight:!1},Fr={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:e.LogLevel.Info,correlationId:t.EMPTY_STRING},zr={claimsBasedCachingEnabled:!1},$r={async sendGetRequestAsync(){throw Ct(dt)},async sendPostRequestAsync(){throw Ct(dt)}},Gr={sku:t.SKU,version:Tt,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},Qr={clientSecret:t.EMPTY_STRING,clientAssertion:void 0},jr={azureCloudInstance:At.None,tenant:`${t.DEFAULT_COMMON_TENANT}`},Wr={application:{appName:"",appVersion:""}};function Yr(e){return e.authOptions.authority.options.protocolMode===_r.OIDC}
30
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Vr extends Ie{constructor(e,t,r){super(e,t,r),this.name="ServerError",Object.setPrototypeOf(this,Vr.prototype)}}
31
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Jr{static generateThrottlingStorageKey(e){return`${V}.${JSON.stringify(e)}`}static preProcess(e,r){const n=Jr.generateThrottlingStorageKey(r),o=e.getThrottlingCache(n);if(o){if(o.throttleTime<Date.now())return void e.removeItem(n);throw new Vr(o.errorCodes?.join(" ")||t.EMPTY_STRING,o.errorMessage,o.subError)}}static postProcess(e,t,r){if(Jr.checkResponseStatus(r)||Jr.checkResponseForRetryAfter(r)){const n={throttleTime:Jr.calculateThrottleTime(parseInt(r.headers[l])),error:r.body.error,errorCodes:r.body.error_codes,errorMessage:r.body.error_description,subError:r.body.suberror};e.setThrottlingCache(Jr.generateThrottlingStorageKey(t),n)}}static checkResponseStatus(e){return 429===e.status||e.status>=500&&e.status<600}static checkResponseForRetryAfter(e){return!!e.headers&&(e.headers.hasOwnProperty(l)&&(e.status<200||e.status>=300))}static calculateThrottleTime(e){const t=e<=0?0:e,r=Date.now()/1e3;return Math.floor(1e3*Math.min(r+(t||W),r+Y))}static removeThrottle(e,t,r,n){const o={clientId:t,authority:r.authority,scopes:r.scopes,homeAccountIdentifier:n,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},i=this.generateThrottlingStorageKey(o);e.removeItem(i)}}
32
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Xr{constructor(e,t){this.networkClient=e,this.cacheManager=t}async sendPostRequest(e,t,r){let n;Jr.preProcess(this.cacheManager,e);try{n=await this.networkClient.sendPostRequestAsync(t,r)}catch(e){throw e instanceof Ie?e:Ct(be)}return Jr.postProcess(this.cacheManager,e,n),n}}
33
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const Zr="home_account_id",en="UPN",tn="client_id",rn="response_type",nn="token_type",on="req_cnf",sn="return_spa_code";
34
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
35
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
36
+ class an{static validateRedirectUri(e){if(!e)throw fr($t)}static validatePrompt(e){const t=[];for(const e in R)t.push(R[e]);if(t.indexOf(e)<0)throw fr(Vt)}static validateClaims(e){try{JSON.parse(e)}catch(e){throw fr(Jt)}}static validateCodeChallengeParams(e,t){if(!e||!t)throw fr(tr);this.validateCodeChallengeMethod(t)}static validateCodeChallengeMethod(e){if([b.PLAIN,b.S256].indexOf(e)<0)throw fr(er)}static sanitizeEQParams(e,t){return e?(t.forEach(((t,r)=>{e[r]&&delete e[r]})),Object.fromEntries(Object.entries(e).filter((e=>""!==e[1])))):{}}}
37
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class cn{constructor(){this.parameters=new Map}addResponseTypeCode(){this.parameters.set(rn,encodeURIComponent(t.CODE_RESPONSE_TYPE))}addResponseTypeForTokenAndIdToken(){this.parameters.set(rn,encodeURIComponent(`${t.TOKEN_RESPONSE_TYPE} ${t.ID_TOKEN_RESPONSE_TYPE}`))}addResponseMode(e){this.parameters.set("response_mode",encodeURIComponent(e||P.QUERY))}addNativeBroker(){this.parameters.set("nativebroker",encodeURIComponent("1"))}addScopes(e,t=!0,r=s){!t||r.includes("openid")||e.includes("openid")||r.push("openid");const n=t?[...e||[],...r]:e||[],o=new yr(n);this.parameters.set("scope",encodeURIComponent(o.printScopes()))}addClientId(e){this.parameters.set(tn,encodeURIComponent(e))}addRedirectUri(e){an.validateRedirectUri(e),this.parameters.set("redirect_uri",encodeURIComponent(e))}addPostLogoutRedirectUri(e){an.validateRedirectUri(e),this.parameters.set("post_logout_redirect_uri",encodeURIComponent(e))}addIdTokenHint(e){this.parameters.set("id_token_hint",encodeURIComponent(e))}addDomainHint(e){this.parameters.set("domain_hint",encodeURIComponent(e))}addLoginHint(e){this.parameters.set("login_hint",encodeURIComponent(e))}addCcsUpn(e){this.parameters.set(h,encodeURIComponent(`UPN:${e}`))}addCcsOid(e){this.parameters.set(h,encodeURIComponent(`Oid:${e.uid}@${e.utid}`))}addSid(e){this.parameters.set("sid",encodeURIComponent(e))}addClaims(e,t){const r=this.addClientCapabilitiesToClaims(e,t);an.validateClaims(r),this.parameters.set("claims",encodeURIComponent(r))}addCorrelationId(e){this.parameters.set("client-request-id",encodeURIComponent(e))}addLibraryInfo(e){this.parameters.set("x-client-SKU",e.sku),this.parameters.set("x-client-VER",e.version),e.os&&this.parameters.set("x-client-OS",e.os),e.cpu&&this.parameters.set("x-client-CPU",e.cpu)}addApplicationTelemetry(e){e?.appName&&this.parameters.set("x-app-name",e.appName),e?.appVersion&&this.parameters.set("x-app-ver",e.appVersion)}addPrompt(e){an.validatePrompt(e),this.parameters.set("prompt",encodeURIComponent(e))}addState(e){e&&this.parameters.set("state",encodeURIComponent(e))}addNonce(e){this.parameters.set("nonce",encodeURIComponent(e))}addCodeChallengeParams(e,t){if(an.validateCodeChallengeParams(e,t),!e||!t)throw fr(tr);this.parameters.set("code_challenge",encodeURIComponent(e)),this.parameters.set("code_challenge_method",encodeURIComponent(t))}addAuthorizationCode(e){this.parameters.set("code",encodeURIComponent(e))}addDeviceCode(e){this.parameters.set("device_code",encodeURIComponent(e))}addRefreshToken(e){this.parameters.set("refresh_token",encodeURIComponent(e))}addCodeVerifier(e){this.parameters.set("code_verifier",encodeURIComponent(e))}addClientSecret(e){this.parameters.set("client_secret",encodeURIComponent(e))}addClientAssertion(e){e&&this.parameters.set("client_assertion",encodeURIComponent(e))}addClientAssertionType(e){e&&this.parameters.set("client_assertion_type",encodeURIComponent(e))}addOboAssertion(e){this.parameters.set("assertion",encodeURIComponent(e))}addRequestTokenUse(e){this.parameters.set("requested_token_use",encodeURIComponent(e))}addGrantType(e){this.parameters.set("grant_type",encodeURIComponent(e))}addClientInfo(){this.parameters.set("client_info","1")}addExtraQueryParameters(e){const t=an.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 fr(Jt)}else r={};return t&&t.length>0&&(r.hasOwnProperty(S)||(r[S]={}),r[S][E]={values:t}),JSON.stringify(r)}addUsername(e){this.parameters.set(ee,encodeURIComponent(e))}addPassword(e){this.parameters.set(te,encodeURIComponent(e))}addPopToken(e){e&&(this.parameters.set(nn,j.POP),this.parameters.set(on,encodeURIComponent(e)))}addSshJwk(e){e&&(this.parameters.set(nn,j.SSH),this.parameters.set(on,encodeURIComponent(e)))}addServerTelemetry(e){this.parameters.set("x-client-current-telemetry",e.generateCurrentRequestHeaderValue()),this.parameters.set("x-client-last-telemetry",e.generateLastRequestHeaderValue())}addThrottling(){this.parameters.set("x-ms-lib-capability",J)}addLogoutHint(e){this.parameters.set("logout_hint",encodeURIComponent(e))}createQueryString(){const e=new Array;return this.parameters.forEach(((t,r)=>{e.push(`${r}=${t}`)})),e.join("&")}}
38
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
39
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
40
+ const ln={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"},hn=1,dn=2,un=new Set(["accessTokenSize","durationMs","idTokenSize","matsSilentStatus","matsHttpStatus","refreshTokenSize","queuedTimeMs","startTimeMs","status","multiMatchedAT","multiMatchedID","multiMatchedRT"]),gn=(e,t,r,n,o)=>(...i)=>{r.trace(`Executing function ${t}`);const s=n?.startMeasurement(t,o);try{const n=e(...i);return s?.end({success:!0}),r.trace(`Returning result from ${t}`),n}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}},pn=(e,t,r,n,o)=>(...i)=>{r.trace(`Executing function ${t}`);const s=n?.startMeasurement(t,o);return n?.setPreQueueTime(t,o),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}))};
41
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
42
+ class mn{constructor(e,t,r,n){this.networkInterface=e,this.logger=t,this.performanceClient=r,this.correlationId=n}async detectRegion(e,r){this.performanceClient?.addQueueMeasurement(ln.RegionDiscoveryDetectRegion,this.correlationId);let n=e;if(n)r.region_source=ie;else{const e=mn.IMDS_OPTIONS;try{const o=await pn(this.getRegionFromIMDS.bind(this),ln.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t.IMDS_VERSION,e);if(o.status===re&&(n=o.body,r.region_source=se),o.status===ne){const t=await pn(this.getCurrentVersion.bind(this),ln.RegionDiscoveryGetCurrentVersion,this.logger,this.performanceClient,this.correlationId)(e);if(!t)return r.region_source=oe,null;const o=await pn(this.getRegionFromIMDS.bind(this),ln.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(t,e);o.status===re&&(n=o.body,r.region_source=se)}}catch(e){return r.region_source=oe,null}}return n||(r.region_source=oe),n||null}async getRegionFromIMDS(e,r){return this.performanceClient?.addQueueMeasurement(ln.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?api-version=${e}&format=text`,r,t.IMDS_TIMEOUT)}async getCurrentVersion(e){this.performanceClient?.addQueueMeasurement(ln.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${t.IMDS_ENDPOINT}?format=json`,e);return r.status===ne&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch(e){return null}}}mn.IMDS_OPTIONS={headers:{Metadata:"true"}};
43
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
44
+ class fn{constructor(e,t,r,n,o,i,s){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=t,this.cacheManager=r,this.authorityOptions=n,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=o,this.performanceClient=s,this.correlationId=i,this.regionDiscovery=new mn(t,this.logger,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(t.CIAM_AUTH_URL))return Rr;const r=e.PathSegments;if(r.length)switch(r[0].toLowerCase()){case t.ADFS:return Sr;case t.DSTS:return Er}return kr}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 Or(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 Ct(Re)}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw Ct(Re)}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw Ct(Re)}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw Ct(st);return this.replacePath(this.metadata.end_session_endpoint)}throw Ct(Re)}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw Ct(Re)}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw Ct(Re)}canReplaceTenant(e){return 1===e.PathSegments.length&&!fn.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===kr&&this.protocolMode===_r.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const r=new Or(this.metadata.canonical_authority).getUrlComponents(),n=r.PathSegments;return this.canonicalAuthorityUrlComponents.PathSegments.forEach(((e,o)=>{let i=n[o];if(0===o&&this.canReplaceTenant(r)){const e=new Or(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===Sr||this.protocolMode!==_r.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(ln.AuthorityResolveEndpointsAsync,this.correlationId);const e=this.getCurrentMetadataEntity(),t=await pn(this.updateCloudDiscoveryMetadata.bind(this),ln.AuthorityUpdateCloudDiscoveryMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network);const r=await pn(this.updateEndpointMetadata.bind(this),ln.AuthorityUpdateEndpointMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.updateCachedMetadata(e,t,{source:r}),this.performanceClient?.addFields({cloudDiscoverySource:t,authorityEndpointSource:r},this.correlationId)}getCurrentMetadataEntity(){let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);return e||(e={aliases:[],preferred_cache:this.hostnameAndPort,preferred_network:this.hostnameAndPort,canonical_authority:this.canonicalAuthority,authorization_endpoint:"",token_endpoint:"",end_session_endpoint:"",issuer:"",aliasesFromNetwork:!1,endpointsFromNetwork:!1,expiresAt:xt(),jwks_uri:""}),e}updateCachedMetadata(e,t,r){t!==z&&r?.source!==z&&(e.expiresAt=xt(),e.canonical_authority=this.canonicalAuthority);const n=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(n,e),this.metadata=e}async updateEndpointMetadata(e){this.performanceClient?.addQueueMeasurement(ln.AuthorityUpdateEndpointMetadata,this.correlationId);const t=this.updateEndpointMetadataFromLocalSources(e);if(t){if(t.source===G&&this.authorityOptions.azureRegionConfiguration?.azureRegion&&t.metadata){Kt(e,await pn(this.updateMetadataWithRegionalInformation.bind(this),ln.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(t.metadata),!1),e.canonical_authority=this.canonicalAuthority}return t.source}let r=await pn(this.getEndpointMetadataFromNetwork.bind(this),ln.AuthorityGetEndpointMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return this.authorityOptions.azureRegionConfiguration?.azureRegion&&(r=await pn(this.updateMetadataWithRegionalInformation.bind(this),ln.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(r)),Kt(e,r,!0),$;throw Ct(_e,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"),Kt(e,t,!1),{source:F};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 Kt(e,t,!1),{source:G,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=zt(e);return this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!r?(this.logger.verbose("Found endpoint metadata in the cache."),{source:z}):(r&&this.logger.verbose("The metadata entity is expired."),null)}isAuthoritySameType(e){return new Or(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 fr(nr)}return null}async getEndpointMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(ln.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),n=function(e){return e.hasOwnProperty("authorization_endpoint")&&e.hasOwnProperty("token_endpoint")&&e.hasOwnProperty("issuer")&&e.hasOwnProperty("jwks_uri")}
45
+ /*! @azure/msal-common v14.6.1 2024-01-23 */(r.body);return n?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.hostnameAndPort in qr?qr[this.hostnameAndPort]:null}async updateMetadataWithRegionalInformation(e){this.performanceClient?.addQueueMeasurement(ln.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const r=this.authorityOptions.azureRegionConfiguration?.azureRegion;if(r){if(r!==t.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=ae,this.regionDiscoveryMetadata.region_used=r,fn.replaceWithRegionalInformation(e,r);const n=await pn(this.regionDiscovery.detectRegion.bind(this.regionDiscovery),ln.RegionDiscoveryDetectRegion,this.logger,this.performanceClient,this.correlationId)(this.authorityOptions.azureRegionConfiguration?.environmentRegion,this.regionDiscoveryMetadata);if(n)return this.regionDiscoveryMetadata.region_outcome=ce,this.regionDiscoveryMetadata.region_used=n,fn.replaceWithRegionalInformation(e,n);this.regionDiscoveryMetadata.region_outcome=le}return e}async updateCloudDiscoveryMetadata(e){this.performanceClient?.addQueueMeasurement(ln.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=this.updateCloudDiscoveryMetadataFromLocalSources(e);if(t)return t;const r=await pn(this.getCloudDiscoveryMetadataFromNetwork.bind(this),ln.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return Ft(e,r,!0),$;throw fr(or)}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"),Ft(e,r,!1),F;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=(n=this.hostnameAndPort,Br(Lr.metadata,n));if(t)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),Ft(e,t,!1),G;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}var n;const o=zt(e);return this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!o?(this.logger.verbose("Found cloud discovery metadata in the cache."),z):(o&&this.logger.verbose("The metadata entity is expired."),null)}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===Rr)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),fn.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=Br(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."),fr(rr)}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),fn.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){this.performanceClient?.addQueueMeasurement(ln.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId);const e=`${t.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,r={};let n=null;try{const o=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.6.1 2024-01-23 */(o.body))i=o.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")}(o.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: ${o.status}`),i=o.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."),n=Br(s,this.hostnameAndPort)}catch(e){if(e instanceof Ie)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 n||(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."),n=fn.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),n}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter((e=>e&&Or.getDomainFromUrl(e).toLowerCase()===this.hostnameAndPort)).length>0}static generateAuthority(e,r){let n;if(r&&r.azureCloudInstance!==At.None){const e=r.tenant?r.tenant:t.DEFAULT_COMMON_TENANT;n=`${r.azureCloudInstance}/${e}/`}return n||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}getPreferredCache(){if(this.discoveryComplete())return this.metadata.preferred_cache;throw Ct(Re)}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return Ur.has(e)}static isPublicCloudAuthority(e){return t.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,r,n){const o=new Or(e);o.validateAsUri();const i=o.getUrlComponents();let s=`${r}.${i.HostNameAndPort}`;this.isPublicCloudAuthority(i.HostNameAndPort)&&(s=`${r}.${t.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);const a=Or.constructAuthorityUriFromObject({...o.getUrlComponents(),HostNameAndPort:s}).urlString;return n?`${a}?${n}`:a}static replaceWithRegionalInformation(e,t){const r={...e};return r.authorization_endpoint=fn.buildRegionalAuthorityString(r.authorization_endpoint,t),r.token_endpoint=fn.buildRegionalAuthorityString(r.token_endpoint,t),r.end_session_endpoint&&(r.end_session_endpoint=fn.buildRegionalAuthorityString(r.end_session_endpoint,t)),r}static transformCIAMAuthority(e){let r=e;const n=new Or(e).getUrlComponents();if(0===n.PathSegments.length&&n.HostNameAndPort.endsWith(t.CIAM_AUTH_URL)){r=`${r}${n.HostNameAndPort.split(".")[0]}${t.AAD_TENANT_DOMAIN_SUFFIX}`}return r}}function Cn(e){return e.endsWith(t.FORWARD_SLASH)?e:`${e}${t.FORWARD_SLASH}`}
47
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
48
+ async function yn(e,t,r,n,o,i,s){s?.addQueueMeasurement(ln.AuthorityFactoryCreateDiscoveredInstance,i);const a=fn.transformCIAMAuthority(Cn(e)),c=new fn(a,t,r,n,o,i,s);try{return await pn(c.resolveEndpointsAsync.bind(c),ln.AuthorityResolveEndpointsAsync,o,s,i)(),c}catch(e){throw Ct(Re)}}fn.reservedTenantDomains=new Set(["{tenant}","{tenantid}",T,k,A]);var vn=Object.freeze({__proto__:null,createDiscoveredInstance:yn});
49
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class wn{constructor(e,t){this.config=function({authOptions:e,systemOptions:t,loggerOptions:r,cacheOptions:n,storageInterface:o,networkInterface:i,cryptoInterface:s,clientCredentials:a,libraryInfo:c,telemetry:l,serverTelemetryManager:h,persistencePlugin:d,serializableCache:u}){const g={...Fr,...r};return{authOptions:(p=e,{clientCapabilities:[],azureCloudOptions:jr,skipAuthorityMetadataCache:!1,...p}),systemOptions:{...Kr,...t},loggerOptions:g,cacheOptions:{...zr,...n},storageInterface:o||new xr(e.clientId,yt,new wt(g)),networkInterface:i||$r,cryptoInterface:s||yt,clientCredentials:a||Qr,libraryInfo:{...Gr,...c},telemetry:{...Wr,...l},serverTelemetryManager:h||null,persistencePlugin:d||null,serializableCache:u||null};var p}(e),this.logger=new wt(this.config.loggerOptions,It,Tt),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.networkManager=new Xr(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 Zr:try{const t=wr(e.credential);r[h]=`Oid:${t.uid}@${t.utid}`}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case en:r[h]=`UPN: ${e.credential}`}return r}async executePostToTokenEndpoint(e,t,r,n,o,i){i&&this.performanceClient?.addQueueMeasurement(i,o);const s=await this.networkManager.sendPostRequest(n,e,{body:t,headers:r});return this.performanceClient?.addFields({refreshTokenSize:s.body.refresh_token?.length||0,httpVerToken:s.headers?.[p]||""},o),this.config.serverTelemetryManager&&s.status<500&&429!==s.status&&this.config.serverTelemetryManager.clearTelemetryCache(),s}async updateAuthority(e,t){this.performanceClient?.addQueueMeasurement(ln.UpdateTokenEndpointAuthority,t);const r=`https://${e}/${this.authority.tenant}/`,n=await yn(r,this.networkClient,this.cacheManager,this.authority.options,this.logger,t,this.performanceClient);this.authority=n}createTokenQueryParameters(e){const t=new cn;return e.tokenQueryParameters&&t.addExtraQueryParameters(e.tokenQueryParameters),t.createQueryString()}}
50
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const In="no_tokens_found",Tn="native_account_unavailable",An="refresh_token_expired",kn="interaction_required",Sn="consent_required",En="login_required",Rn="bad_token";var bn=Object.freeze({__proto__:null,badToken:Rn,consentRequired:Sn,interactionRequired:kn,loginRequired:En,nativeAccountUnavailable:Tn,noTokensFound:In,refreshTokenExpired:An});
51
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const _n=[kn,Sn,En,Rn],Pn=["message_only","additional_action","basic_action","user_password_expired","consent_required","bad_token"],Mn={[In]:"No refresh token found in the cache. Please sign-in.",[Tn]:"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.",[An]:"Refresh token has expired.",[Rn]:"Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve."},Nn={noTokensFoundError:{code:In,desc:Mn[In]},native_account_unavailable:{code:Tn,desc:Mn[Tn]},bad_token:{code:Rn,desc:Mn[Rn]}};class On extends Ie{constructor(e,r,n,o,i,s,a){super(e,r,n),Object.setPrototypeOf(this,On.prototype),this.timestamp=o||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 qn(e,t,r){const n=!!e&&_n.indexOf(e)>-1,o=!!r&&Pn.indexOf(r)>-1,i=!!t&&_n.some((e=>t.indexOf(e)>-1));return n||i||o}function Ln(e){return new On(e,Mn[e])}
52
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Un{constructor(e,t,r,n,o){this.account=e||null,this.idToken=t||null,this.accessToken=r||null,this.refreshToken=n||null,this.appMetadata=o||null}}
53
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Hn{static setRequestState(e,r,n){const o=Hn.generateLibraryState(e,n);return r?`${o}${t.RESOURCE_DELIM}${r}`:o}static generateLibraryState(e,t){if(!e)throw Ct(Je);const r={id:e.createNewGuid()};t&&(r.meta=t);const n=JSON.stringify(r);return e.base64Encode(n)}static parseRequestState(e,r){if(!e)throw Ct(Je);if(!r)throw Ct(Me);try{const n=r.split(t.RESOURCE_DELIM),o=n[0],i=n.length>1?n.slice(1).join(t.RESOURCE_DELIM):t.EMPTY_STRING,s=e.base64Decode(o),a=JSON.parse(s);return{userRequestState:i||t.EMPTY_STRING,libraryState:a}}catch(e){throw Ct(Me)}}}
54
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const Bn="sw";class Dn{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e,t){this.performanceClient?.addQueueMeasurement(ln.PopTokenGenerateCnf,e.correlationId);const r=await pn(this.generateKid.bind(this),ln.PopTokenGenerateCnf,t,this.performanceClient,e.correlationId)(e),n=this.cryptoUtils.base64Encode(JSON.stringify(r));return{kid:r.kid,reqCnfString:n,reqCnfHash:await this.cryptoUtils.hashString(n)}}async generateKid(e){this.performanceClient?.addQueueMeasurement(ln.PopTokenGenerateKid,e.correlationId);return{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:Bn}}async signPopToken(e,t,r){return this.signPayload(e,t,r)}async signPayload(e,t,r,n){const{resourceRequestMethod:o,resourceRequestUri:i,shrClaims:s,shrNonce:a,shrOptions:c}=r,l=i?new Or(i):void 0,h=l?.getUrlComponents();return this.cryptoUtils.signJwt({at:e,ts:Et.nowSeconds(),m:o?.toUpperCase(),u:h?.HostNameAndPort,nonce:a||this.cryptoUtils.createNewGuid(),p:h?.AbsolutePath,q:h?.QueryString?[[],h.QueryString]:void 0,client_claims:s||void 0,...n},t,c,r.correlationId)}}
55
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class xn{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}
56
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Kn{constructor(e,t,r,n,o,i,s){this.clientId=e,this.cacheStorage=t,this.cryptoObj=r,this.logger=n,this.serializableCache=o,this.persistencePlugin=i,this.performanceClient=s}validateServerAuthorizationCodeResponse(e,t){if(!e.state||!t)throw e.state?Ct(Oe,"Cached State"):Ct(Oe,"Server State");let r,n;try{r=decodeURIComponent(e.state)}catch(t){throw Ct(Me,e.state)}try{n=decodeURIComponent(t)}catch(t){throw Ct(Me,e.state)}if(r!==n)throw Ct(Ne);if(e.error||e.error_description||e.suberror){if(qn(e.error,e.error_description,e.suberror))throw new On(e.error||"",e.error_description,e.suberror,e.timestamp||"",e.trace_id||"",e.correlation_id||"",e.claims||"");throw new Vr(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 Vr(e.error,a,e.suberror);if(s&&e.status&&e.status>=o&&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<=n)return void this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently available but is unable to refresh the access token.\n${c}`);if(qn(e.error,e.error_description,e.suberror))throw new On(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,n,o,i,s,a,c,l){let h,d;if(this.performanceClient?.addQueueMeasurement(ln.HandleServerTokenResponse,e.correlation_id),e.id_token){if(h=kt(e.id_token||t.EMPTY_STRING,this.cryptoObj.base64Decode),i&&i.nonce&&h.nonce!==i.nonce)throw Ct(qe);if(o.maxAge||0===o.maxAge){const e=h.auth_time;if(!e)throw Ct(Le);St(e,o.maxAge)}}this.homeAccountIdentifier=Pr.generateHomeAccountId(e.client_info||t.EMPTY_STRING,r.authorityType,this.logger,this.cryptoObj,h),i&&i.state&&(d=Hn.parseRequestState(this.cryptoObj,i.state)),e.key_id=e.key_id||o.sshKid||void 0;const u=this.generateCacheRecord(e,r,n,o,h,s,i);let g;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),g=new xn(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(g)),a&&!c&&u.account){const e=u.account.generateAccountKey();if(!this.cacheStorage.getAccount(e,this.logger))return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),await Kn.generateAuthenticationResult(this.cryptoObj,r,u,!1,o,h,d,void 0,l)}await this.cacheStorage.saveCacheRecord(u,o.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&g&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(g))}return Kn.generateAuthenticationResult(this.cryptoObj,r,u,!1,o,h,d,e,l)}generateCacheRecord(e,t,r,n,o,i,s){const a=t.getPreferredCache();if(!a)throw Ct(Ye);const c=br(o);let l,h;e.id_token&&o&&(l=bt(this.homeAccountIdentifier,a,e.id_token,this.clientId,c||""),h=Fn(this.cacheStorage,t,this.homeAccountIdentifier,o,this.cryptoObj.base64Decode,e.client_info,a,c,s,void 0,this.logger));let d=null;if(e.access_token){const o=e.scope?yr.fromString(e.scope):new yr(n.scopes||[]),s=("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0,l=("string"==typeof e.ext_expires_in?parseInt(e.ext_expires_in,10):e.ext_expires_in)||0,h=("string"==typeof e.refresh_in?parseInt(e.refresh_in,10):e.refresh_in)||void 0,u=r+s,g=u+l,p=h&&h>0?r+h:void 0;d=_t(this.homeAccountIdentifier,a,e.access_token,this.clientId,c||t.tenant,o.printScopes(),u,g,this.cryptoObj.base64Decode,p,e.token_type,i,e.key_id,n.claims,n.requestedClaimsHash)}let u=null;if(e.refresh_token){let t;if(e.refresh_token_expires_in){t=r+("string"==typeof e.refresh_token_expires_in?parseInt(e.refresh_token_expires_in,10):e.refresh_token_expires_in)}u=Pt(this.homeAccountIdentifier,a,e.refresh_token,this.clientId,e.foci,i,t)}let g=null;return e.foci&&(g={clientId:this.clientId,environment:a,familyId:e.foci}),new Un(h,l,d,u,g)}static async generateAuthenticationResult(e,r,n,o,i,s,a,c,l){let h,d,u=t.EMPTY_STRING,g=[],p=null,m=t.EMPTY_STRING;if(n.accessToken){if(n.accessToken.tokenType===j.POP){const t=new Dn(e),{secret:r,keyId:o}=n.accessToken;if(!o)throw Ct(at);u=await t.signPopToken(r,o,i)}else u=n.accessToken.secret;g=yr.fromString(n.accessToken.target).asArray(),p=new Date(1e3*Number(n.accessToken.expiresOn)),h=new Date(1e3*Number(n.accessToken.extendedExpiresOn)),n.accessToken.refreshOn&&(d=new Date(1e3*Number(n.accessToken.refreshOn)))}n.appMetadata&&(m=n.appMetadata.familyId===D?D:"");const f=s?.oid||s?.sub||"",C=s?.tid||"";c?.spa_accountid&&n.account&&(n.account.nativeAccountId=c?.spa_accountid);const y=n.account?Ar(n.account.getAccountInfo(),void 0,s):null;return{authority:r.canonicalAuthority,uniqueId:f,tenantId:C,scopes:g,account:y,idToken:n?.idToken?.secret||"",idTokenClaims:s||{},accessToken:u,fromCache:o,expiresOn:p,extExpiresOn:h,refreshOn:d,correlationId:i.correlationId,requestId:l||t.EMPTY_STRING,familyId:m,tokenType:n.accessToken?.tokenType||t.EMPTY_STRING,state:a?a.userRequestState:t.EMPTY_STRING,cloudGraphHostName:n.account?.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:n.account?.msGraphHost||t.EMPTY_STRING,code:c?.spa_code,fromNativeBroker:!1}}}function Fn(e,t,r,n,o,i,s,a,c,l,h){h?.verbose("setCachedAccount called");const d=e.getAccountKeys().find((e=>e.startsWith(r)));let u=null;d&&(u=e.getAccount(d,h));const g=u||Pr.createAccount({homeAccountId:r,idTokenClaims:n,clientInfo:i,environment:s,cloudGraphHostName:c?.cloud_graph_host_name,msGraphHost:c?.msgraph_host,nativeAccountId:l},t,o),p=g.tenantProfiles||[];if(a&&!p.find((e=>e.tenantId===a))){const e=Tr(r,n);p.push(e)}return g.tenantProfiles=p,g}
57
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class zn extends wn{constructor(e,t){super(e,t),this.includeRedirectUri=!0,this.oidcDefaultScopes=this.config.authOptions.authority.options.OIDCOptions?.defaultScopes}async getAuthCodeUrl(e){this.performanceClient?.addQueueMeasurement(ln.GetAuthCodeUrl,e.correlationId);const t=await pn(this.createAuthCodeUrlQueryString.bind(this),ln.AuthClientCreateQueryString,this.logger,this.performanceClient,e.correlationId)(e);return Or.appendQueryString(this.authority.authorizationEndpoint,t)}async acquireToken(e,t){if(this.performanceClient?.addQueueMeasurement(ln.AuthClientAcquireToken,e.correlationId),!e.code)throw Ct(xe);const r=Et.nowSeconds(),n=await pn(this.executeTokenRequest.bind(this),ln.AuthClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(this.authority,e),o=n.headers?.[g],i=new Kn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return i.validateTokenResponse(n.body),pn(i.handleServerTokenResponse.bind(i),ln.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(n.body,this.authority,r,e,t,void 0,void 0,void 0,o)}handleFragmentResponse(e,t){if(new Kn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,null,null).validateServerAuthorizationCodeResponse(e,t),!e.code)throw Ct(ot);return e}getLogoutUri(e){if(!e)throw fr(Zt);const t=this.createLogoutUrlQueryString(e);return Or.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(ln.AuthClientExecuteTokenRequest,t.correlationId);const r=this.createTokenQueryParameters(t),n=Or.appendQueryString(e.tokenEndpoint,r),o=await pn(this.createTokenRequestBody.bind(this),ln.AuthClientCreateTokenRequestBody,this.logger,this.performanceClient,t.correlationId)(t);let i;if(t.clientInfo)try{const e=vr(t.clientInfo,this.cryptoUtils.base64Decode);i={credential:`${e.uid}${U.CLIENT_INFO_SEPARATOR}${e.utid}`,type:Zr}}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 pn(this.executePostToTokenEndpoint.bind(this),ln.AuthorizationCodeClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,t.correlationId)(n,o,s,a,t.correlationId,ln.AuthorizationCodeClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(ln.AuthClientCreateTokenRequestBody,e.correlationId);const t=new cn;if(t.addClientId(e.tokenBodyParameters?.[tn]||this.config.authOptions.clientId),this.includeRedirectUri?t.addRedirectUri(e.redirectUri):an.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&&!Yr(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(M),t.addClientInfo(),e.authenticationScheme===j.POP){const r=new Dn(this.cryptoUtils,this.performanceClient),n=await pn(r.generateCnf.bind(r),ln.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(n.reqCnfString)}else if(e.authenticationScheme===j.SSH){if(!e.sshJwk)throw fr(ir);t.addSshJwk(e.sshJwk)}const r=e.correlationId||this.config.cryptoInterface.createNewGuid();let n;if(t.addCorrelationId(r),(!Cr.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=vr(e.clientInfo,this.cryptoUtils.base64Decode);n={credential:`${t.uid}${U.CLIENT_INFO_SEPARATOR}${t.utid}`,type:Zr}}catch(e){this.logger.verbose("Could not parse client info for CCS Header: "+e)}else n=e.ccsCredential;if(this.config.systemOptions.preventCorsPreflight&&n)switch(n.type){case Zr:try{const e=wr(n.credential);t.addCcsOid(e)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case en:t.addCcsUpn(n.credential)}return e.tokenBodyParameters&&t.addExtraQueryParameters(e.tokenBodyParameters),!e.enableSpaAuthorizationCode||e.tokenBodyParameters&&e.tokenBodyParameters[sn]||t.addExtraQueryParameters({[sn]:"1"}),t.createQueryString()}async createAuthCodeUrlQueryString(e){this.performanceClient?.addQueueMeasurement(ln.AuthClientCreateQueryString,e.correlationId);const t=new cn;t.addClientId(e.extraQueryParameters?.[tn]||this.config.authOptions.clientId);const r=[...e.scopes||[],...e.extraScopesToConsent||[]];t.addScopes(r,!0,this.oidcDefaultScopes),t.addRedirectUri(e.redirectUri);const n=e.correlationId||this.config.cryptoInterface.createNewGuid();if(t.addCorrelationId(n),t.addResponseMode(e.responseMode),t.addResponseTypeCode(),t.addLibraryInfo(this.config.libraryInfo),Yr(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!==R.SELECT_ACCOUNT)if(e.sid&&e.prompt===R.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),n=this.extractLoginHint(e.account);if(n){this.logger.verbose("createAuthCodeUrlQueryString: login_hint claim present on account"),t.addLoginHint(n);try{const r=wr(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===R.NONE){this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),t.addSid(r);try{const r=wr(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=wr(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===j.POP)){const r=new Dn(this.cryptoUtils),n=await pn(r.generateCnf.bind(r),ln.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);t.addPopToken(n.reqCnfHash)}return t.createQueryString()}createLogoutUrlQueryString(e){const t=new cn;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}}
58
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class $n extends wn{constructor(e,t){super(e,t)}async acquireToken(e){this.performanceClient?.addQueueMeasurement(ln.RefreshTokenClientAcquireToken,e.correlationId);const t=Et.nowSeconds(),r=await pn(this.executeTokenRequest.bind(this),ln.RefreshTokenClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(e,this.authority),n=r.headers?.[g],o=new Kn(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return o.validateTokenResponse(r.body),pn(o.handleServerTokenResponse.bind(o),ln.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(r.body,this.authority,t,e,void 0,void 0,!0,e.forceCache,n)}async acquireTokenByRefreshToken(e){if(!e)throw fr(Xt);if(this.performanceClient?.addQueueMeasurement(ln.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw Ct(je);if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return await pn(this.acquireTokenWithCachedRefreshToken.bind(this),ln.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!0)}catch(t){const r=t instanceof On&&t.errorCode===In,n=t instanceof Vr&&t.errorCode===X&&t.subError===Z;if(r||n)return pn(this.acquireTokenWithCachedRefreshToken.bind(this),ln.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1);throw t}return pn(this.acquireTokenWithCachedRefreshToken.bind(this),ln.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){this.performanceClient?.addQueueMeasurement(ln.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const r=gn(this.cacheManager.getRefreshToken.bind(this.cacheManager),ln.CacheManagerGetRefreshToken,this.logger,this.performanceClient,e.correlationId)(e.account,t,void 0,this.performanceClient,e.correlationId);if(!r)throw Ln(In);if(r.expiresOn&&Et.isTokenExpired(r.expiresOn,e.refreshTokenExpirationOffsetSeconds||300))throw Ln(An);const n={...e,refreshToken:r.secret,authenticationScheme:e.authenticationScheme||j.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:Zr}};try{return await pn(this.acquireToken.bind(this),ln.RefreshTokenClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(n)}catch(e){if(e instanceof On&&e.subError===Rn){this.logger.verbose("acquireTokenWithRefreshToken: bad refresh token, removing from cache");const e=Rt(r);this.cacheManager.removeRefreshToken(e)}throw e}}async executeTokenRequest(e,t){this.performanceClient?.addQueueMeasurement(ln.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.createTokenQueryParameters(e),n=Or.appendQueryString(t.tokenEndpoint,r),o=await pn(this.createTokenRequestBody.bind(this),ln.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 pn(this.executePostToTokenEndpoint.bind(this),ln.RefreshTokenClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,e.correlationId)(n,o,i,s,e.correlationId,ln.RefreshTokenClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){this.performanceClient?.addQueueMeasurement(ln.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const t=e.correlationId,r=new cn;if(r.addClientId(e.tokenBodyParameters?.[tn]||this.config.authOptions.clientId),e.redirectUri&&r.addRedirectUri(e.redirectUri),r.addScopes(e.scopes,!0,this.config.authOptions.authority.options.OIDCOptions?.defaultScopes),r.addGrantType(N),r.addClientInfo(),r.addLibraryInfo(this.config.libraryInfo),r.addApplicationTelemetry(this.config.telemetry.application),r.addThrottling(),this.serverTelemetryManager&&!Yr(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===j.POP){const t=new Dn(this.cryptoUtils,this.performanceClient),n=await pn(t.generateCnf.bind(t),ln.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger);r.addPopToken(n.reqCnfString)}else if(e.authenticationScheme===j.SSH){if(!e.sshJwk)throw fr(ir);r.addSshJwk(e.sshJwk)}if((!Cr.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 Zr:try{const t=wr(e.ccsCredential.credential);r.addCcsOid(t)}catch(e){this.logger.verbose("Could not parse home account ID for CCS Header: "+e)}break;case en:r.addCcsUpn(e.ccsCredential.credential)}return e.tokenBodyParameters&&r.addExtraQueryParameters(e.tokenBodyParameters),r.createQueryString()}}
59
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Gn extends wn{constructor(e,t){super(e,t)}async acquireToken(e){try{const[t,r]=await this.acquireCachedToken(e);if(r===pe){this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.");new $n(this.config,this.performanceClient).acquireTokenByRefreshToken(e).catch((()=>{}))}return t}catch(t){if(t instanceof ft&&t.errorCode===tt){return new $n(this.config,this.performanceClient).acquireTokenByRefreshToken(e)}throw t}}async acquireCachedToken(e){this.performanceClient?.addQueueMeasurement(ln.SilentFlowClientAcquireCachedToken,e.correlationId);let t=he;if(e.forceRefresh||!this.config.cacheOptions.claimsBasedCachingEnabled&&!Cr.isEmptyObj(e.claims))throw this.setCacheOutcome(de,e.correlationId),Ct(tt);if(!e.account)throw Ct(je);const r=e.account.tenantId||function(e){const t=new Or(e).getUrlComponents().PathSegments.slice(-1)[0].toLowerCase();switch(t){case T:case A:case k:return;default:return t}}(e.authority),n=this.cacheManager.getTokenKeys(),o=this.cacheManager.getAccessToken(e.account,e,n,r,this.performanceClient,e.correlationId);if(!o)throw this.setCacheOutcome(ue,e.correlationId),Ct(tt);if(Et.wasClockTurnedBack(o.cachedAt)||Et.isTokenExpired(o.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.setCacheOutcome(ge,e.correlationId),Ct(tt);o.refreshOn&&Et.isTokenExpired(o.refreshOn,0)&&(t=pe);const i=e.authority||this.authority.getPreferredCache(),s={account:this.cacheManager.readAccountFromCache(e.account),accessToken:o,idToken:this.cacheManager.getIdToken(e.account,n,r,this.performanceClient,e.correlationId),refreshToken:null,appMetadata:this.cacheManager.readAppMetadataFromCache(i)};return this.setCacheOutcome(t,e.correlationId),this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),[await pn(this.generateResultFromCacheRecord.bind(this),ln.SilentFlowClientGenerateResultFromCacheRecord,this.logger,this.performanceClient,e.correlationId)(s,e),t]}setCacheOutcome(e,t){this.serverTelemetryManager?.setCacheOutcome(e),this.performanceClient?.addFields({cacheOutcome:e},t),e!==he&&this.logger.info(`Token refresh is required due to cache outcome: ${e}`)}async generateResultFromCacheRecord(e,t){let r;if(this.performanceClient?.addQueueMeasurement(ln.SilentFlowClientGenerateResultFromCacheRecord,t.correlationId),e.idToken&&(r=kt(e.idToken.secret,this.config.cryptoInterface.base64Decode)),t.maxAge||0===t.maxAge){const e=r?.auth_time;if(!e)throw Ct(Le);St(e,t.maxAge)}return Kn.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}
60
+ /*! @azure/msal-common v14.6.1 2024-01-23 */const Qn={sendGetRequestAsync:()=>Promise.reject(Ct(dt)),sendPostRequestAsync:()=>Promise.reject(Ct(dt))},jn="missing_kid_error",Wn="missing_alg_error",Yn={[jn]:"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.",[Wn]:"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided."};
61
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Vn extends Ie{constructor(e,t){super(e,t),this.name="JoseHeaderError",Object.setPrototypeOf(this,Vn.prototype)}}function Jn(e){return new Vn(e,Yn[e])}
62
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class Xn{constructor(e){this.typ=e.typ,this.alg=e.alg,this.kid=e.kid}static getShrHeaderString(e){if(!e.kid)throw Jn(jn);if(!e.alg)throw Jn(Wn);const t=new Xn({typ:e.typ||me.Pop,kid:e.kid,alg:e.alg});return JSON.stringify(t)}}
63
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
64
+ /*! @azure/msal-common v14.6.1 2024-01-23 */
65
+ class Zn{constructor(e,r){this.cacheOutcome=he,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=Q.CACHE_KEY+U.CACHE_KEY_SEPARATOR+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${Q.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer].join(Q.VALUE_SEPARATOR),r=[e,this.getRegionDiscoveryFields()].join(Q.VALUE_SEPARATOR);return[Q.SCHEMA_VERSION,r,t].join(Q.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),t=Zn.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(Q.VALUE_SEPARATOR),n=e.errors.slice(0,t).join(Q.VALUE_SEPARATOR),o=e.errors.length,i=[o,t<o?Q.OVERFLOW_TRUE:Q.OVERFLOW_FALSE].join(Q.VALUE_SEPARATOR);return[Q.SCHEMA_VERSION,e.cacheHits,r,n,i].join(Q.CATEGORY_SEPARATOR)}cacheFailedRequest(e){const t=this.getLastRequests();t.errors.length>=Q.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 Ie?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(Q.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=Zn.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,n=0,o=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(o+=i.toString().length+s.toString().length+a.length+3,!(o<Q.MAX_LAST_HEADER_BYTES))break;n+=1}return n}getRegionDiscoveryFields(){const e=[];return e.push(this.regionUsed||t.EMPTY_STRING),e.push(this.regionSource||t.EMPTY_STRING),e.push(this.regionOutcome||t.EMPTY_STRING),e.join(",")}updateRegionDiscoveryMetadata(e){this.regionUsed=e.region_used,this.regionSource=e.region_source,this.regionOutcome=e.region_outcome}setCacheOutcome(e){this.cacheOutcome=e}}
66
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class eo{startMeasurement(){}endMeasurement(){}flushMeasurement(){return null}}class to{generateId(){return"callback-id"}startMeasurement(e,t){return{end:()=>null,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:hn,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new eo}}startPerformanceMeasurement(){return new eo}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}
67
+ /*! @azure/msal-common v14.6.1 2024-01-23 */class ro{constructor(e,t,r,n,o,i,s){this.authority=t,this.libraryName=n,this.libraryVersion=o,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 un)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,n){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 o={eventName:e,queueTime:n?0:r,manuallyCompleted:n},i=this.queueMeasurements.get(t);if(i)i.push(o),this.queueMeasurements.set(t,i);else{this.logger.trace(`PerformanceClient.addQueueMeasurement: adding correlationId ${t} to queue measurements`);const e=[o];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 n={eventId:this.generateId(),status:hn,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}),discard:()=>this.discardMeasurements(n.correlationId),add:e=>this.addFields(e,n.correlationId),increment:e=>this.incrementFields(e,n.correlationId),event:n,measurement:new eo}}endMeasurement(e){const t=this.eventsByCorrelationId.get(e.correlationId);if(!t)return this.logger.trace(`PerformanceClient: Measurement not found for ${e.eventId}`,e.correlationId),null;const r=e.eventId===t.eventId;let n={totalQueueTime:0,totalQueueCount:0,manuallyCompletedCount:0};r?(n=this.getQueueInfo(e.correlationId),this.discardCache(t.correlationId)):t.incompleteSubMeasurements?.delete(e.eventId);const o=e.durationMs||this.getDurationMs(e.startTimeMs);if(this.logger.trace(`PerformanceClient: Performance measurement ended for ${e.name}: ${o} ms`,e.correlationId),!r)return t[e.name+"DurationMs"]=Math.floor(o),{...t};let i={...t,...e},s=0;return i.incompleteSubMeasurements?.forEach((t=>{this.logger.trace(`PerformanceClient: Incomplete submeasurement ${t.name} found for ${e.name}`,i.correlationId),s++})),i.incompleteSubMeasurements=void 0,i={...i,durationMs:Math.round(o),queuedTimeMs:n.totalQueueTime,queuedCount:n.totalQueueCount,queuedManuallyCompletedCount:n.manuallyCompletedCount,status:dn,incompleteSubsCount:s},this.truncateIntegralFields(i),this.emitEvents([i],e.correlationId),i}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,n=0,o=0;return t?.forEach((e=>{r+=e.queueTime,n++,o+=e.manuallyCompleted?1:0})),{totalQueueTime:r,totalQueueCount:n,manuallyCompletedCount:o}}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,n)=>{this.logger.trace(`PerformanceClient: Emitting event to callback ${n}`,t),r.apply(null,[e])}))}truncateIntegralFields(e){this.intFields.forEach((t=>{t in e&&"number"==typeof e[t]&&(e[t]=Math.floor(e[t]))}))}getDurationMs(e){const t=Date.now()-e;return t<0?t:0}}const no="pkce_not_created",oo="crypto_nonexistent",io="empty_navigate_uri",so="hash_empty_error",ao="no_state_in_hash",co="hash_does_not_contain_known_properties",lo="unable_to_parse_state",ho="state_interaction_type_mismatch",uo="interaction_in_progress",go="popup_window_error",po="empty_window_error",mo="user_cancelled",fo="monitor_popup_timeout",Co="monitor_window_timeout",yo="redirect_in_iframe",vo="block_iframe_reload",wo="block_nested_popups",Io="iframe_closed_prematurely",To="silent_logout_unsupported",Ao="no_account_error",ko="silent_prompt_value_error",So="no_token_request_cache_error",Eo="unable_to_parse_token_request_cache_error",Ro="no_cached_authority_error",bo="auth_request_not_set_error",_o="invalid_cache_type",Po="non_browser_environment",Mo="database_not_open",No="no_network_connectivity",Oo="post_request_failed",qo="get_request_failed",Lo="failed_to_parse_response",Uo="unable_to_load_token",Ho="crypto_key_not_found",Bo="auth_code_required",Do="auth_code_or_nativeAccountId_required",xo="spa_code_and_nativeAccountId_present",Ko="database_unavailable",Fo="unable_to_acquire_token_from_native_platform",zo="native_handshake_timeout",$o="native_extension_not_installed",Go="native_connection_not_established",Qo="uninitialized_public_client_application",jo="native_prompt_not_supported",Wo="invalid_base64_string";var Yo=Object.freeze({__proto__:null,authCodeOrNativeAccountIdRequired:Do,authCodeRequired:Bo,authRequestNotSetError:bo,blockIframeReload:vo,blockNestedPopups:wo,cryptoKeyNotFound:Ho,cryptoNonExistent:oo,databaseNotOpen:Mo,databaseUnavailable:Ko,emptyNavigateUri:io,emptyWindowError:po,failedToParseResponse:Lo,getRequestFailed:qo,hashDoesNotContainKnownProperties:co,hashEmptyError:so,iframeClosedPrematurely:Io,interactionInProgress:uo,invalidBase64String:Wo,invalidCacheType:_o,monitorPopupTimeout:fo,monitorWindowTimeout:Co,nativeConnectionNotEstablished:Go,nativeExtensionNotInstalled:$o,nativeHandshakeTimeout:zo,nativePromptNotSupported:jo,noAccountError:Ao,noCachedAuthorityError:Ro,noNetworkConnectivity:No,noStateInHash:ao,noTokenRequestCacheError:So,nonBrowserEnvironment:Po,pkceNotCreated:no,popupWindowError:go,postRequestFailed:Oo,redirectInIframe:yo,silentLogoutUnsupported:To,silentPromptValueError:ko,spaCodeAndNativeAccountIdPresent:xo,stateInteractionTypeMismatch:ho,unableToAcquireTokenFromNativePlatform:Fo,unableToLoadToken:Uo,unableToParseState:lo,unableToParseTokenRequestCacheError:Eo,uninitializedPublicClientApplication:Qo,userCancelled:mo});const Vo="For more visit: aka.ms/msaljs/browser-errors",Jo={[no]:"The PKCE code challenge and verifier could not be generated.",[oo]:"The crypto object or function is not available.",[io]:"Navigation URI is empty. Please check stack trace for more info.",[so]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${Vo}`,[ao]:"Hash does not contain state. Please verify that the request originated from msal.",[co]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${Vo}`,[lo]:"Unable to parse state. Please verify that the request originated from msal.",[ho]:"Hash contains state but the interaction type does not match the caller.",[uo]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${Vo}`,[go]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[po]:"window.open returned null or undefined window object.",[mo]:"User cancelled the flow.",[fo]:`Token acquisition in popup failed due to timeout. ${Vo}`,[Co]:`Token acquisition in iframe failed due to timeout. ${Vo}`,[yo]:"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.",[vo]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${Vo}`,[wo]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[Io]:"The iframe being monitored was closed prematurely.",[To]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[Ao]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[ko]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[So]:"No token request found in cache.",[Eo]:"The cached token request could not be parsed.",[Ro]:"No cached authority found.",[bo]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[_o]:"Invalid cache type",[Po]:"Login and token requests are not supported in non-browser environments.",[Mo]:"Database is not open!",[No]:"No network connectivity. Check your internet connection.",[Oo]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[qo]:"Network request failed. Please check the network trace to determine root cause.",[Lo]:"Failed to parse network response. Check network trace.",[Uo]:"Error loading token to cache.",[Ho]:"Cryptographic Key or Keypair not found in browser storage.",[Bo]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[Do]:"An authorization code or nativeAccountId must be provided to this flow.",[xo]:"Request cannot contain both spa code and native account id.",[Ko]:"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.",[Fo]:`Unable to acquire token from native platform. ${Vo}`,[zo]:"Timed out while attempting to establish connection to browser extension",[$o]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[Go]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${Vo}`,[Qo]:`You must call and await the initialize function before attempting to call any other MSAL API. ${Vo}`,[jo]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[Wo]:"Invalid base64 encoded string."},Xo={pkceNotGenerated:{code:no,desc:Jo[no]},cryptoDoesNotExist:{code:oo,desc:Jo[oo]},emptyNavigateUriError:{code:io,desc:Jo[io]},hashEmptyError:{code:so,desc:Jo[so]},hashDoesNotContainStateError:{code:ao,desc:Jo[ao]},hashDoesNotContainKnownPropertiesError:{code:co,desc:Jo[co]},unableToParseStateError:{code:lo,desc:Jo[lo]},stateInteractionTypeMismatchError:{code:ho,desc:Jo[ho]},interactionInProgress:{code:uo,desc:Jo[uo]},popupWindowError:{code:go,desc:Jo[go]},emptyWindowError:{code:po,desc:Jo[po]},userCancelledError:{code:mo,desc:Jo[mo]},monitorPopupTimeoutError:{code:fo,desc:Jo[fo]},monitorIframeTimeoutError:{code:Co,desc:Jo[Co]},redirectInIframeError:{code:yo,desc:Jo[yo]},blockTokenRequestsInHiddenIframeError:{code:vo,desc:Jo[vo]},blockAcquireTokenInPopupsError:{code:wo,desc:Jo[wo]},iframeClosedPrematurelyError:{code:Io,desc:Jo[Io]},silentLogoutUnsupportedError:{code:To,desc:Jo[To]},noAccountError:{code:Ao,desc:Jo[Ao]},silentPromptValueError:{code:ko,desc:Jo[ko]},noTokenRequestCacheError:{code:So,desc:Jo[So]},unableToParseTokenRequestCacheError:{code:Eo,desc:Jo[Eo]},noCachedAuthorityError:{code:Ro,desc:Jo[Ro]},authRequestNotSet:{code:bo,desc:Jo[bo]},invalidCacheType:{code:_o,desc:Jo[_o]},notInBrowserEnvironment:{code:Po,desc:Jo[Po]},databaseNotOpen:{code:Mo,desc:Jo[Mo]},noNetworkConnectivity:{code:No,desc:Jo[No]},postRequestFailed:{code:Oo,desc:Jo[Oo]},getRequestFailed:{code:qo,desc:Jo[qo]},failedToParseNetworkResponse:{code:Lo,desc:Jo[Lo]},unableToLoadTokenError:{code:Uo,desc:Jo[Uo]},signingKeyNotFoundInStorage:{code:Ho,desc:Jo[Ho]},authCodeRequired:{code:Bo,desc:Jo[Bo]},authCodeOrNativeAccountRequired:{code:Do,desc:Jo[Do]},spaCodeAndNativeAccountPresent:{code:xo,desc:Jo[xo]},databaseUnavailable:{code:Ko,desc:Jo[Ko]},unableToAcquireTokenFromNativePlatform:{code:Fo,desc:Jo[Fo]},nativeHandshakeTimeout:{code:zo,desc:Jo[zo]},nativeExtensionNotInstalled:{code:$o,desc:Jo[$o]},nativeConnectionNotEstablished:{code:Go,desc:Jo[Go]},uninitializedPublicClientApplication:{code:Qo,desc:Jo[Qo]},nativePromptNotSupported:{code:jo,desc:Jo[jo]},invalidBase64StringError:{code:Wo,desc:Jo[Wo]}};class Zo extends Ie{constructor(e){super(e,Jo[e]),Object.setPrototypeOf(this,Zo.prototype),this.name="BrowserAuthError"}}function ei(e){return new Zo(e)}const ti={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"},ri="53ee284d-920a-4b59-9d30-a60315b26836",ni="ppnbnpeolgkicgegkbkbjmhlideopiji",oi="MATS",ii="Handshake",si="HandshakeResponse",ai="GetToken",ci="Response",li={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},hi="GET",di="POST",ui="authority",gi="request.state",pi="nonce.id_token",mi="request.origin",fi="urlHash",Ci="request.params",yi="interaction.status",vi="ccs.credential",wi="request.correlationId",Ii="request.native",Ti="request.redirect.context",Ai="msal.account.keys",ki="msal.token.keys",Si="wrapper.sku",Ei="wrapper.version",Ri={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var bi;e.InteractionType=void 0,(bi=e.InteractionType||(e.InteractionType={})).Redirect="redirect",bi.Popup="popup",bi.Silent="silent",bi.None="none";const _i={Startup:"startup",Login:"login",Logout:"logout",AcquireToken:"acquireToken",SsoSilent:"ssoSilent",HandleRedirect:"handleRedirect",None:"none"},Pi={scopes:s},Mi="msal.db",Ni=`${Mi}.keys`,Oi={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5},qi=[Oi.Default,Oi.Skip,Oi.RefreshTokenAndNetwork];function Li(e){e.location.hash="","function"==typeof e.history.replaceState&&e.history.replaceState(null,"",`${e.location.origin}${e.location.pathname}${e.location.search}`)}function Ui(e){const t=e.split("#");t.shift(),window.location.hash=t.length>0?t.join("#"):""}function Hi(){return window.parent!==window}function Bi(){return"undefined"!=typeof window&&!!window.opener&&window.opener!==window&&"string"==typeof window.name&&0===window.name.indexOf(`${ti.POPUP_NAME_PREFIX}.`)}function Di(){return window.location.href.split("?")[0].split("#")[0]}function xi(){const e=new Or(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}function Ki(){if(Or.hashContainsKnownProperties(window.location.hash)&&Hi())throw ei(vo)}function Fi(t,r){const n=Hi();if(t===e.InteractionType.Redirect&&n&&!r)throw ei(yo)}function zi(){if(Bi())throw ei(wo)}function $i(e){if(!e)throw ei(Po)}function Gi(e){if(!e)throw ei(Qo)}function Qi(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 ji=Object.freeze({__proto__:null,blockAPICallsBeforeInitialize:Gi,blockAcquireTokenInPopups:zi,blockNonBrowserEnvironment:$i,blockRedirectInIframe:Fi,blockReloadInHiddenIframes:Ki,clearHash:Li,getCurrentUri:Di,getHomepage:xi,isInIframe:Hi,isInPopup:Bi,preconnect:Qi,replaceHash:Ui});class Wi{navigateInternal(e,t){return Wi.defaultNavigateWindow(e,t)}navigateExternal(e,t){return Wi.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 Yi{async sendGetRequestAsync(e,t){let r;try{r=await fetch(e,{method:hi,headers:this.getFetchHeaders(t)})}catch(e){throw window.navigator.onLine?ei(qo):ei(No)}try{return{headers:this.getHeaderDict(r.headers),body:await r.json(),status:r.status}}catch(e){throw ei(Lo)}}async sendPostRequestAsync(e,r){const n=r&&r.body||t.EMPTY_STRING;let o;try{o=await fetch(e,{method:di,headers:this.getFetchHeaders(r),body:n})}catch(e){throw window.navigator.onLine?ei(Oo):ei(No)}try{return{headers:this.getHeaderDict(o.headers),body:await o.json(),status:o.status}}catch(e){throw ei(Lo)}}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 Vi=1e4;const Ji="@azure/msal-browser",Xi="3.7.1";class Zi{static loggerCallback(t,r){switch(t){case e.LogLevel.Error:return void console.error(r);case e.LogLevel.Info:return void console.info(r);case e.LogLevel.Verbose:return void console.debug(r);case e.LogLevel.Warning:return void console.warn(r);default:return void console.log(r)}}constructor(r){let n;this.browserEnvironment="undefined"!=typeof window,this.config=function({auth:r,cache:n,system:o,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:_r.AAD,OIDCOptions:{serverResponseType:_.FRAGMENT,defaultScopes:[t.OPENID_SCOPE,t.PROFILE_SCOPE,t.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:At.None,tenant:t.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1},c={cacheLocation:li.SessionStorage,temporaryCacheLocation:li.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!(!n||n.cacheLocation!==li.LocalStorage),claimsBasedCachingEnabled:!1},l={loggerCallback:()=>{},logLevel:e.LogLevel.Info,piiLoggingEnabled:!1},h={...{...Kr,loggerOptions:l,networkClient:s?new Yi:Qn,navigationClient:new Wi,loadFrameTimeout:0,windowHashTimeout:o?.loadFrameTimeout||6e4,iframeHashTimeout:o?.loadFrameTimeout||Vi,navigateFrameWait:0,redirectNavigationTimeout:3e4,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:o?.nativeBrokerHandshakeTimeout||2e3,pollIntervalMilliseconds:ti.DEFAULT_POLL_INTERVAL_MS},...o,loggerOptions:o?.loggerOptions||l},d={application:{appName:t.EMPTY_STRING,appVersion:t.EMPTY_STRING},client:new to};r?.protocolMode!==_r.OIDC&&r?.OIDCOptions&&new wt(h.loggerOptions).warning(JSON.stringify(fr(lr)));if(r?.protocolMode&&r.protocolMode!==_r.AAD&&h?.allowNativeBroker)throw fr(hr);return{auth:{...a,...r,OIDCOptions:{...a.OIDCOptions,...r?.OIDCOptions}},cache:{...c,...n},system:h,telemetry:{...d,...i}}}(r,this.browserEnvironment);try{n=window[li.SessionStorage]}catch(e){}const o=n?.getItem("msal.browser.log.level"),i=n?.getItem("msal.browser.log.pii")?.toLowerCase(),s="true"===i||"false"!==i&&void 0,a={...this.config.system.loggerOptions},c=o&&Object.keys(e.LogLevel).includes(o)?e.LogLevel[o]:void 0;c&&(a.loggerCallback=Zi.loggerCallback,a.logLevel=c),void 0!==s&&(a.piiLoggingEnabled=s),this.logger=new wt(a,Ji,Xi),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}const es="USER_INTERACTION_REQUIRED",ts="USER_CANCEL",rs="NO_NETWORK",ns="TRANSIENT_ERROR",os="PERSISTENT_ERROR",is="DISABLED",ss="ACCOUNT_UNAVAILABLE",as="NESTED_APP_AUTH_UNAVAILABLE";class cs{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{cs.crypto=window.crypto,window.nestedAppAuthBridge.addEventListener("message",(e=>{const t="string"==typeof e?e:e.data,r=JSON.parse(t),n=cs.bridgeRequests.find((e=>e.requestId===r.requestId));void 0!==n&&(cs.bridgeRequests.splice(cs.bridgeRequests.indexOf(n),1),r.success?n.resolve(r):n.reject(r.error))}));const e=await new Promise(((e,t)=>{const r={messageType:"NestedAppAuthRequest",method:"GetInitContext",requestId:cs.getRandomId()},n={requestId:r.requestId,method:r.method,resolve:e,reject:t};cs.bridgeRequests.push(n),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))}));return cs.validateBridgeResultOrThrow(e.initContext)}catch(e){throw window.console.log(e),e}}static getRandomId(){return cs.crypto.randomUUID()}getTokenInteractive(e){return this.getToken("GetTokenPopup",e)}getTokenSilent(e){return this.getToken("GetToken",e)}async getToken(e,t){const r=await this.sendRequest(e,{tokenParams:t});return{token:cs.validateBridgeResultOrThrow(r.token),account:cs.validateBridgeResultOrThrow(r.account)}}async getActiveAccount(){const e=await this.sendRequest("GetActiveAccount");return cs.validateBridgeResultOrThrow(e.account)}getHostCapabilities(){return this.capabilities??null}sendRequest(e,t){const r={messageType:"NestedAppAuthRequest",method:e,requestId:cs.getRandomId(),...t};return new Promise(((e,t)=>{const n={requestId:r.requestId,method:r.method,resolve:e,reject:t};cs.bridgeRequests.push(n),window.nestedAppAuthBridge.postMessage(JSON.stringify(r))}))}static validateBridgeResultOrThrow(e){if(void 0===e){throw{status:as}}return e}constructor(e,t,r){this.sdkName=e,this.sdkVersion=t,this.capabilities=r}static async create(){const e=await cs.initializeNestedAppAuthBridge();return new cs(e.sdkName,e.sdkVersion,e.capabilities)}}cs.bridgeRequests=[];class ls extends Zi{constructor(){super(...arguments),this.bridgeProxy=void 0,this.activeAccount=void 0}getModuleName(){return ls.MODULE_NAME}getId(){return ls.ID}getBridgeProxy(){return this.bridgeProxy}getActiveAccount(){return this.activeAccount}setActiveAccount(e){this.activeAccount=e}async initialize(){try{if("undefined"!=typeof window){const e=await cs.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}}}ls.MODULE_NAME="",ls.ID="TeamsAppOperatingContext";class hs extends Zi{getModuleName(){return hs.MODULE_NAME}getId(){return hs.ID}async initialize(){return this.available="undefined"!=typeof window,this.available}}async function ds(e){const t=new hs(e),r=new ls(e),n=[t.initialize(),r.initialize()];if(await Promise.all(n),r.isAvailable()&&r.getConfig().auth.supportsNestedAppAuth){return(await Promise.resolve().then((function(){return xa}))).NestedAppAuthController.createController(r)}if(t.isAvailable()){return(await Promise.resolve().then((function(){return Sa}))).StandardController.createController(t)}return null}function us(e){return encodeURIComponent(ps(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function gs(e){return ms(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function ps(e){return ms((new TextEncoder).encode(e))}function ms(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}function fs(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(Wo)}const r=atob(t);return Uint8Array.from(r,(e=>e.codePointAt(0)||0))}(e))}hs.MODULE_NAME="",hs.ID="StandardOperatingContext";const Cs="SHA-256",ys=new Uint8Array([1,0,1]),vs={name:"RSASSA-PKCS1-v1_5",hash:Cs,modulusLength:2048,publicExponent:ys};async function ws(e,t,r){t?.addQueueMeasurement(ln.Sha256Digest,r);const n=(new TextEncoder).encode(e);return window.crypto.subtle.digest(Cs,n)}function Is(e){return window.crypto.getRandomValues(e)}function Ts(){return window.crypto.randomUUID()}async function As(e){return window.crypto.subtle.exportKey("jwk",e)}class ks{constructor(){this.dbName=Mi,this.version=1,this.tableName=Ni,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(Ko))))}))}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(ei(Mo));const n=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);n.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(r.target.result)})),n.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async setItem(e,t){return await this.validateDbIsOpen(),new Promise(((r,n)=>{if(!this.db)return n(ei(Mo));const o=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(t,e);o.addEventListener("success",(()=>{this.closeConnection(),r()})),o.addEventListener("error",(e=>{this.closeConnection(),n(e)}))}))}async removeItem(e){return await this.validateDbIsOpen(),new Promise(((t,r)=>{if(!this.db)return r(ei(Mo));const n=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);n.addEventListener("success",(()=>{this.closeConnection(),t()})),n.addEventListener("error",(e=>{this.closeConnection(),r(e)}))}))}async getKeys(){return await this.validateDbIsOpen(),new Promise(((e,t)=>{if(!this.db)return t(ei(Mo));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(Mo));const n=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);n.addEventListener("success",(e=>{const r=e;this.closeConnection(),t(1===r.target.result)})),n.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(Mi);r.addEventListener("success",(()=>e(!0))),r.addEventListener("blocked",(()=>e(!0))),r.addEventListener("error",(()=>t(!1)))}))}}class Ss{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 Es{constructor(e,t){this.inMemoryCache=new Ss,this.indexedDBCache=new ks,this.logger=e,this.storeName=t}handleDatabaseAccessError(e){if(!(e instanceof Zo&&e.errorCode===Ko))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 Rs="asymmetricKeys",bs="symmetricKeys";class _s{constructor(e){this.logger=e,this.asymmetricKeys=new Es(this.logger,Rs),this.symmetricKeys=new Es(this.logger,bs)}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 Ps{constructor(e,t){this.logger=e,function(e){if(!("crypto"in window))throw e.error("BrowserCrypto: crypto interface is unavailable"),ei(oo);e.verbose("BrowserCrypto: modern crypto interface available")}(e),this.cache=new _s(this.logger),this.performanceClient=t}createNewGuid(){return Ts()}base64Encode(e){return ps(e)}base64Decode(e){return fs(e)}async getPublicKeyThumbprint(e){const t=this.performanceClient?.startMeasurement(ln.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await async function(e,t){return window.crypto.subtle.generateKey(vs,e,t)}(Ps.EXTRACTABLE,Ps.POP_KEY_USAGES),n=await As(r.publicKey),o=Ms({e:n.e,kty:n.kty,n:n.n}),i=await this.hashString(o),s=await As(r.privateKey),a=await async function(e,t,r){return window.crypto.subtle.importKey("jwk",e,vs,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 this.cache.clear()}async signJwt(e,t,r,n){const o=this.performanceClient?.startMeasurement(ln.CryptoOptsSignJwt,n),i=await this.cache.asymmetricKeys.getItem(t);if(!i)throw ei(Ho);const s=await As(i.publicKey),a=Ms(s),c=us(JSON.stringify({kid:t})),l=us(Xn.getShrHeaderString({...r?.header,alg:s.alg,kid:c}));e.cnf={jwk:JSON.parse(a)};const h=`${l}.${us(JSON.stringify(e))}`,d=(new TextEncoder).encode(h),u=await async function(e,t){return window.crypto.subtle.sign(vs,e,t)}(i.privateKey,d),g=`${h}.${gs(new Uint8Array(u))}`;return o&&o.end({success:!0}),g}async hashString(e){const t=await ws(e);return gs(new Uint8Array(t))}}function Ms(e){return JSON.stringify(e,Object.keys(e).sort())}Ps.POP_KEY_USAGES=["sign","verify"],Ps.EXTRACTABLE=!0;const Ns="storage_not_supported",Os="stubbed_public_client_application_called",qs="in_mem_redirect_unavailable";var Ls=Object.freeze({__proto__:null,inMemRedirectUnavailable:qs,storageNotSupported:Ns,stubbedPublicClientApplicationCalled:Os});const Us={[Ns]:"Given storage configuration option was not supported.",[Os]:"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors",[qs]:"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true."},Hs={storageNotSupportedError:{code:Ns,desc:Us[Ns]},stubPcaInstanceCalled:{code:Os,desc:Us[Os]},inMemRedirectUnavailable:{code:qs,desc:Us[qs]}};class Bs extends Ie{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,Bs.prototype)}}function Ds(e){return new Bs(e,Us[e])}class xs{constructor(e){this.validateWindowStorage(e),this.windowStorage=window[e]}validateWindowStorage(e){if(e!==li.LocalStorage&&e!==li.SessionStorage||!window[e])throw Ds(Ns)}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 Ks(e,t){if(!t)return null;try{return Hn.parseRequestState(e,t).libraryState.meta}catch(e){throw Ct(Me)}}class Fs extends Dr{constructor(e,t,r,n,o){super(e,r,n,o),this.COOKIE_LIFE_MULTIPLIER=864e5,this.cacheConfig=t,this.logger=n,this.internalStorage=new Ss,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 li.LocalStorage:case li.SessionStorage:try{return new xs(e)}catch(e){this.logger.verbose(e);break}}return this.cacheConfig.cacheLocation=li.MemoryStorage,new Ss}setupTemporaryCacheStorage(e,t){switch(t){case li.LocalStorage:case li.SessionStorage:try{return new xs(e||li.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}`,n=`${t.CACHE_PREFIX}.${y}`,o=`${t.CACHE_PREFIX}.${v}`,i=[this.browserStorage.getItem(e),this.browserStorage.getItem(r),this.browserStorage.getItem(n),this.browserStorage.getItem(o)];[m,f,y,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(Ai),t=this.getItem(`${ki}.${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 H.ID_TOKEN:if(Ot(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,n=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(n,H.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 H.ACCESS_TOKEN:case H.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(Nt(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,n=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(n,H.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 H.REFRESH_TOKEN:if(qt(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,n=this.updateCredentialCacheKey(e,t);return void this.addTokenKey(n,H.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&&Pr.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,t){this.logger.trace("BrowserCacheManager.getAccount called");const r=this.getCachedAccountEntity(e);return this.updateOutdatedCachedAccount(e,r,t)}getCachedAccountEntity(e){const t=this.getItem(e);if(!t)return this.removeAccountKeyFromMap(e),null;const r=this.validateAndParseJson(t);return r&&Pr.isAccountEntity(r)?Dr.toObject(new Pr,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(Ai);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(Ai,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(Ai,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)}removeOutdatedAccount(e){this.removeItem(e),this.removeAccountKeyFromMap(e)}removeIdToken(e){super.removeIdToken(e),this.removeTokenKey(e,H.ID_TOKEN)}async removeAccessToken(e){super.removeAccessToken(e),this.removeTokenKey(e,H.ACCESS_TOKEN)}removeRefreshToken(e){super.removeRefreshToken(e),this.removeTokenKey(e,H.REFRESH_TOKEN)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${ki}.${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 H.ID_TOKEN:-1===r.idToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),r.idToken.push(e));break;case H.ACCESS_TOKEN:-1===r.accessToken.indexOf(e)&&(this.logger.info("BrowserCacheManager: addTokenKey - accessToken added to map"),r.accessToken.push(e));break;case H.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}`),Ct(Xe)}this.setItem(`${ki}.${this.clientId}`,JSON.stringify(r))}removeTokenKey(e,t){this.logger.trace("BrowserCacheManager removeTokenKey called");const r=this.getTokenKeys();switch(t){case H.ID_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: ${e} from map`);const n=r.idToken.indexOf(e);n>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - idToken removed from map"),r.idToken.splice(n,1)):this.logger.info("BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.");break;case H.ACCESS_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: ${e} from map`);const o=r.accessToken.indexOf(e);o>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - accessToken removed from map"),r.accessToken.splice(o,1)):this.logger.info("BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.");break;case H.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}`),Ct(Xe)}this.setItem(`${ki}.${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,H.ID_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Ot(r)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.ID_TOKEN),null)}setIdTokenCredential(e){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const t=Rt(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,H.ID_TOKEN)}getAccessTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.ACCESS_TOKEN),null;const r=this.validateAndParseJson(t);return r&&Nt(r)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.ACCESS_TOKEN),null)}setAccessTokenCredential(e){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const t=Rt(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,H.ACCESS_TOKEN)}getRefreshTokenCredential(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.REFRESH_TOKEN),null;const r=this.validateAndParseJson(t);return r&&qt(r)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),r):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,H.REFRESH_TOKEN),null)}setRefreshTokenCredential(e){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const t=Rt(e);this.setItem(t,JSON.stringify(e)),this.addTokenKey(t,H.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&&(n=e,(o=r)&&0===n.indexOf(B)&&o.hasOwnProperty("clientId")&&o.hasOwnProperty("environment"))?(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),r):(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null);var n,o}setAppMetadata(e){this.logger.trace("BrowserCacheManager.setAppMetadata called");const t=function({environment:e,clientId:t}){return[B,e,t].join(U.CACHE_KEY_SEPARATOR).toLowerCase()}(e);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(Q.CACHE_KEY);let n=!0;return t&&(n=t.hasOwnProperty("failedRequests")&&t.hasOwnProperty("errors")&&t.hasOwnProperty("cacheHits")),r&&n}(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&&function(e,t){return!!t&&0===e.indexOf(x)&&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")}(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),r):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter((e=>this.isAuthorityMetadata(e)))}setWrapperMetadata(e,t){this.internalStorage.setItem(Si,e),this.internalStorage.setItem(Ei,t)}getWrapperMetadata(){return[this.internalStorage.getItem(Si)||t.EMPTY_STRING,this.internalStorage.getItem(Ei)||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,tenantId:r.tenantId})):(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 n={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId,tenantId:e.tenantId};this.browserStorage.setItem(t,JSON.stringify(n)),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&&function(e,t){let r=!1;e&&(r=0===e.indexOf(V));let n=!0;return t&&(n=t.hasOwnProperty("throttleTime")),r&&n}(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),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 n=this.temporaryCacheStorage.getItem(r);if(!n){if(this.cacheConfig.cacheLocation===li.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"),n}setTemporaryCache(e,t,r){const n=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(n,t),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.setItemCookie(n,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(ln.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 n=`${encodeURIComponent(e)}=${encodeURIComponent(t)};path=/;SameSite=Lax;`;if(r){n+=`expires=${this.getCookieExpirationTime(r)};`}this.cacheConfig.secureCookies&&(n+="Secure;"),document.cookie=n}getItemCookie(e){const r=`${encodeURIComponent(e)}=`,n=document.cookie.split(";");for(let e=0;e<n.length;e++){let t=n[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):Cr.startsWith(e,t.CACHE_PREFIX)||Cr.startsWith(e,C)?e:`${t.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=Hn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${ui}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=Hn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${pi}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=Hn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${gi}.${t}`)}getCachedAuthority(e){const t=this.generateStateKey(e),r=this.getTemporaryCache(t);if(!r)return null;const n=this.generateAuthorityKey(r);return this.getTemporaryCache(n)}updateCacheEntries(e,t,r,n,o){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),o){const e={credential:o.homeAccountId,type:Zr};this.setTemporaryCache(vi,JSON.stringify(e),!0)}else if(n){const e={credential:n,type:en};this.setTemporaryCache(vi,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(Ci)),this.removeItem(this.generateCacheKey(mi)),this.removeItem(this.generateCacheKey(fi)),this.removeItem(this.generateCacheKey(wi)),this.removeItem(this.generateCacheKey(vi)),this.removeItem(this.generateCacheKey(Ii)),this.setInteractionInProgress(!1)}cleanRequestByState(e){if(this.logger.trace("BrowserCacheManager.cleanRequestByState called"),e){const r=this.generateStateKey(e),n=this.temporaryCacheStorage.getItem(r);this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${n}`),this.resetRequestCache(n||t.EMPTY_STRING)}this.clearMsalCookies()}cleanRequestByInteractionType(e){this.logger.trace("BrowserCacheManager.cleanRequestByInteractionType called"),this.getKeys().forEach((t=>{if(-1===t.indexOf(gi))return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const n=Ks(this.cryptoImpl,r);n&&n.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=ps(JSON.stringify(e));this.setTemporaryCache(Ci,t,!0)}getCachedRequest(e){this.logger.trace("BrowserCacheManager.getCachedRequest called");const t=this.getTemporaryCache(Ci,!0);if(!t)throw ei(So);let r;try{r=JSON.parse(fs(t))}catch(e){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${e}`),ei(Eo)}if(this.removeItem(this.generateCacheKey(Ci)),!r.authority){const t=this.generateAuthorityKey(e),n=this.getTemporaryCache(t);if(!n)throw ei(Ro);r.authority=n}return r}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(Ii,!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}.${yi}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const r=`${t.CACHE_PREFIX}.${yi}`;if(e){if(this.getInteractionInProgress())throw ei(uo);this.setTemporaryCache(r,this.clientId,!1)}else e||this.getInteractionInProgress()!==this.clientId||this.removeItem(r)}getLegacyLoginHint(){const e=this.getTemporaryCache(C);e&&(this.browserStorage.removeItem(C),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=kt(r,fs);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=Rt(t);if(e!==r){const n=this.getItem(e);if(n)return this.removeItem(e),this.setItem(r,n),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(Ti,!0)}setRedirectRequestContext(e){this.setTemporaryCache(Ti,e,!0)}async hydrateCache(e,t){const r=bt(e.account?.homeAccountId,e.account?.environment,e.idToken,this.clientId,e.tenantId);let n;t.claims&&(n=await this.cryptoImpl.hashString(t.claims));const o=_t(e.account?.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?.getTime()||0,e.extExpiresOn?.getTime()||0,fs,void 0,e.tokenType,void 0,t.sshKid,t.claims,n),i=new Un(void 0,r,o);return this.saveCacheRecord(i)}}const zs=(e,t)=>new Fs(e,{cacheLocation:li.MemoryStorage,temporaryCacheLocation:li.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1},yt,t),$s={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 Gs{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=Ts();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,n){if("undefined"!=typeof window){const o={eventType:e,interactionType:t||null,payload:r||null,error:n||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,[o])}))}}handleAccountCacheChange(e){try{const t=e.newValue||e.oldValue;if(!t)return;const r=JSON.parse(t);if("object"!=typeof r||!Pr.isAccountEntity(r))return;const n=Dr.toObject(new Pr,r).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.emitEvent($s.ACCOUNT_ADDED,void 0,n)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.emitEvent($s.ACCOUNT_REMOVED,void 0,n))}catch(e){return}}}class Qs{constructor(e,t,r,n,o,i,s,a,c){this.config=e,this.browserStorage=t,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=o,this.navigationClient=i,this.nativeMessageHandler=a,this.correlationId=c||Ts(),this.logger=n.clone(ti.MSAL_SKU,Xi,this.correlationId),this.performanceClient=s}async clearCacheOnLogout(e){if(e){Pr.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null));try{await this.browserStorage.removeAccount(Pr.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(ln.InitializeBaseRequest,this.correlationId);const r=e.authority||this.config.auth.authority;t&&await this.validateRequestAuthority(r,t);const n=[...e&&e.scopes||[]],o={...e,correlationId:this.correlationId,authority:r,scopes:n};if(o.authenticationScheme){if(o.authenticationScheme===j.SSH){if(!e.sshJwk)throw fr(ir);if(!e.sshKid)throw fr(sr)}this.logger.verbose(`Authentication Scheme set to "${o.authenticationScheme}" as configured in Auth request`)}else o.authenticationScheme=j.BEARER,this.logger.verbose('Authentication Scheme wasn\'t explicitly set in request, defaulting to "Bearer" request');return this.config.cache.claimsBasedCachingEnabled&&e.claims&&!Cr.isEmptyObj(e.claims)&&(o.requestedClaimsHash=await this.browserCrypto.hashString(e.claims)),o}getRedirectUri(e){this.logger.verbose("getRedirectUri called");const t=e||this.config.auth.redirectUri||Di();return Or.getAbsoluteUrl(t,Di())}async validateRequestAuthority(e,t){if(!(await this.getDiscoveredAuthority(e)).isAlias(t.environment))throw fr(dr)}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 Zn(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},r=e||this.config.auth.authority;return this.logger.verbose(`Creating discovered authority with ${r}`),yn(r,this.config.system.networkClient,this.browserStorage,t,this.logger,this.correlationId,this.performanceClient)}}const js=32;async function Ws(e,t,r){e.addQueueMeasurement(ln.GeneratePkceCodes,r);const n=gn(Ys,ln.GenerateCodeVerifier,t,e,r)(e,t,r);return{verifier:n,challenge:await pn(Vs,ln.GenerateCodeChallengeFromVerifier,t,e,r)(n,e,t,r)}}function Ys(e,t,r){try{const n=new Uint8Array(js);gn(Is,ln.GetRandomValues,t,e,r)(n);return gs(n)}catch(e){throw ei(no)}}async function Vs(e,t,r,n){t.addQueueMeasurement(ln.GenerateCodeChallengeFromVerifier,n);try{const o=await pn(ws,ln.Sha256Digest,r,t,n)(e,t,n);return gs(new Uint8Array(o))}catch(e){throw ei(no)}}class Js extends Qs{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(ln.StandardInteractionClientInitializeAuthorizationCodeRequest,this.correlationId);const r=await pn(Ws,ln.GeneratePkceCodes,this.logger,this.performanceClient,this.correlationId)(this.performanceClient,this.logger,this.correlationId),n={...e,redirectUri:e.redirectUri,code:t.EMPTY_STRING,codeVerifier:r.verifier};return e.codeChallenge=r.challenge,e.codeChallengeMethod=t.S256_CODE_CHALLENGE_METHOD,n}initializeLogoutRequest(e){this.logger.verbose("initializeLogoutRequest called",e?.correlationId);const t={correlationId:this.correlationId||Ts(),...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=Or.getAbsoluteUrl(e.postLogoutRedirectUri,Di())):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=Or.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,Di())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=Or.getAbsoluteUrl(Di(),Di())),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(ln.StandardInteractionClientCreateAuthCodeClient,this.correlationId);const n=await pn(this.getClientConfiguration.bind(this),ln.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new zn(n,this.performanceClient)}async getClientConfiguration(e,r,n){this.performanceClient.addQueueMeasurement(ln.StandardInteractionClientGetClientConfiguration,this.correlationId);const o=await pn(this.getDiscoveredAuthority.bind(this),ln.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,this.correlationId)(r,n),i=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:o,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:ti.MSAL_SKU,version:Xi,cpu:t.EMPTY_STRING,os:t.EMPTY_STRING},telemetry:this.config.telemetry}}async getDiscoveredAuthority(e,t){this.performanceClient.addQueueMeasurement(ln.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},n=e||this.config.auth.authority,o=fn.generateAuthority(n,t||this.config.auth.azureCloudOptions);return pn(yn.bind(vn),ln.AuthorityFactoryCreateDiscoveredInstance,this.logger,this.performanceClient,this.correlationId)(o,this.config.system.networkClient,this.browserStorage,r,this.logger,this.correlationId,this.performanceClient)}async initializeAuthorizationRequest(e,r){this.performanceClient.addQueueMeasurement(ln.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId);const n=this.getRedirectUri(e.redirectUri),o={interactionType:r},i=Hn.setRequestState(this.browserCrypto,e&&e.state||t.EMPTY_STRING,o),s={...await pn(this.initializeBaseRequest.bind(this),ln.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e),redirectUri:n,state:i,nonce:e.nonce||Ts(),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 Xs="user_switch",Zs={[Xs]:"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 ea extends Ie{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,ea.prototype),this.name="NativeAuthError",this.ext=r}}function ta(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 ra(e,t,r){if(r&&r.status)switch(r.status){case"ACCOUNT_UNAVAILABLE":return Ln(Tn);case"USER_INTERACTION_REQUIRED":return new On(e,t);case"USER_CANCEL":return ei(mo);case"NO_NETWORK":return ei(No)}return new ea(e,Zs[e]||t,r)}class na extends Js{async acquireToken(e){this.performanceClient.addQueueMeasurement(ln.SilentCacheClientAcquireToken,e.correlationId);const t=this.initializeServerTelemetryManager(Ri.acquireTokenSilent_silentFlow),r=await this.createSilentFlowClient(t,e.authority,e.azureCloudOptions);this.logger.verbose("Silent auth client created");try{const t=(await pn(r.acquireCachedToken.bind(r),ln.SilentFlowClientAcquireCachedToken,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),t}catch(e){throw e instanceof Zo&&e.errorCode===Ho&&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 n=await pn(this.getClientConfiguration.bind(this),ln.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new Gn(n,this.performanceClient)}async initializeSilentRequest(e,t){this.performanceClient.addQueueMeasurement(ln.InitializeSilentRequest,this.correlationId);const r=await pn(this.initializeBaseRequest.bind(this),ln.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)(e,t);return{...e,...r,account:t,forceRefresh:e.forceRefresh||!1}}}const oa="brk_client_id",ia="brk_redirect_uri";class sa extends Qs{constructor(e,t,r,n,o,i,s,a,c,l,h,d){super(e,t,r,n,o,i,a,c,d),this.apiId=s,this.accountId=l,this.nativeMessageHandler=c,this.nativeStorageManager=h,this.silentCacheClient=new na(e,this.nativeStorageManager,r,n,o,i,a,c,d)}async acquireToken(e){this.performanceClient.addQueueMeasurement(ln.NativeInteractionClientAcquireToken,e.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(ln.NativeInteractionClientAcquireToken,e.correlationId),r=Et.nowSeconds(),n=await this.initializeNativeRequest(e);try{const e=await this.acquireTokensFromCache(this.accountId,n);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 o={method:ai,request:n},i=await this.nativeMessageHandler.sendMessage(o),s=this.validateNativeResponse(i);return this.handleNativeResponse(s,n,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:yr.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),Ct(Ve);const r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e});if(!r)throw Ct(Ve);try{const e=this.createSilentCacheRequest(t,r),n=await this.silentCacheClient.acquireToken(e),o={...r,idTokenClaims:n?.idTokenClaims};return{...n,account:o}}catch(e){throw e}}async acquireTokenRedirect(e){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");const t=await this.initializeNativeRequest(e),r={method:ai,request:t};try{const e=await this.nativeMessageHandler.sendMessage(r);this.validateNativeResponse(e)}catch(e){if(e instanceof ea&&ta(e))throw e}this.browserStorage.setTemporaryCache(Ii,JSON.stringify(t),!0);const n={apiId:Ri.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},o=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);await this.navigationClient.navigateExternal(o,n)}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(Ii));const n={method:ai,request:r},o=Et.nowSeconds();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");const e=await this.nativeMessageHandler.sendMessage(n);this.validateNativeResponse(e);const t=this.handleNativeResponse(e,r,o);return this.browserStorage.setInteractionInProgress(!1),await 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 ra(Xs);const n=await this.getDiscoveredAuthority(t.authority),o=kt(e.id_token,fs),i=this.createHomeAccountIdentifier(e,o),s=Fn(this.browserStorage,n,i,o,fs,e.client_info,void 0,o.tid,void 0,e.account.id,this.logger),a=await this.generateAuthenticationResult(e,t,o,s,n.canonicalAuthority,r);return this.cacheAccount(s),this.cacheNativeTokens(e,t,i,o,a.accessToken,a.tenantId,r),a}createHomeAccountIdentifier(e,r){return Pr.generateHomeAccountId(e.client_info||t.EMPTY_STRING,kr,this.logger,this.browserCrypto,r)}generateScopes(e,t){return e.scope?yr.fromString(e.scope):yr.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===j.POP){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new Dn(this.browserCrypto),n={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw Ct(at);return r.signPopToken(e.access_token,t.keyId,n)}return e.access_token}async generateAuthenticationResult(e,r,n,o,i,s){const a=this.addTelemetryFromNativeResponse(e),c=e.scope?yr.fromString(e.scope):yr.fromString(r.scope),l=e.account.properties||{},h=l.UID||n.oid||n.sub||t.EMPTY_STRING,d=l.TenantId||n.tid||t.EMPTY_STRING,u=Ar(o.getAccountInfo(),void 0,n),g=await this.generatePopAccessToken(e,r),p=r.tokenType===j.POP?j.POP:j.BEARER;return{authority:i,uniqueId:h,tenantId:d,scopes:c.asArray(),account:u,idToken:e.id_token,idTokenClaims:n,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,n,o,i,s,a){const c=bt(n,r.authority,e.id_token||"",r.clientId,o.tid||""),l=a+(r.tokenType===j.POP?t.SHR_NONCE_VALIDITY:("string"==typeof e.expires_in?parseInt(e.expires_in,10):e.expires_in)||0),h=this.generateScopes(e,r),d=_t(n,r.authority,i,r.clientId,o.tid||s,h.printScopes(),l,0,fs),u=new Un(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 Te(fe,"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 Or(t);r.validateAsUri();const{scopes:n,...o}=e,i=new yr(n||[]);i.appendScopes(s);const a={...o,accountId:this.accountId,clientId:this.config.auth.clientId,authority:r.urlString,scope:i.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:(()=>{switch(this.apiId){case Ri.ssoSilent:case Ri.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),R.NONE}if(e.prompt)switch(e.prompt){case R.NONE:case R.CONSENT:case R.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(jo)}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=oi,e.authenticationScheme===j.POP){const t={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},r=new Dn(this.browserCrypto),n=await pn(r.generateCnf.bind(r),ln.PopTokenGenerateCnf,this.logger,this.performanceClient,this.correlationId)(t,this.logger);a.reqCnf=n.reqCnfHash,a.keyId=n.kid}return a}handleExtraBrokerParams(e){if(e.extraParameters&&e.extraParameters.hasOwnProperty(oa)&&e.extraParameters.hasOwnProperty(ia)&&e.extraParameters.hasOwnProperty(tn)){const t=e.extraParameters[tn],r=e.redirectUri,n=e.extraParameters[ia];e.extraParameters={child_client_id:t,child_redirect_uri:r},e.redirectUri=n}}}class aa{constructor(e,t,r,n){this.logger=e,this.handshakeTimeoutMs=t,this.extensionId=n,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement(ln.NativeMessageHandlerHandshake)}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:ri,extensionId:this.extensionId,responseId:Ts(),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 n=new aa(e,t,r,ni);return await n.sendHandshakeRequest(),n}catch(n){const o=new aa(e,t,r);return await o.sendHandshakeRequest(),o}}async sendHandshakeRequest(){this.logger.trace("NativeMessageHandler - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);const e={channel:ri,extensionId:this.extensionId,responseId:Ts(),body:{method:ii}};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(zo)),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===ri&&(!t.extensionId||t.extensionId===this.extensionId)&&t.body.method===ii){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($o))}}onChannelMessage(e){this.logger.trace("NativeMessageHandler - onChannelMessage called.");const t=e.data,r=this.resolvers.get(t.responseId),n=this.handshakeResolvers.get(t.responseId);try{const e=t.body.method;if(e===ci){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(ra(e.code,e.description,e.ext));else{if(!e.result)throw Te(fe,"Event does not contain result.");e.result.code&&e.result.description?r.reject(ra(e.result.code,e.result.description,e.result.ext)):r.resolve(e.result)}this.resolvers.delete(t.responseId)}else if(e===si){if(!n)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}),n.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):n&&n.reject(t)}}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}static isNativeAvailable(e,t,r,n){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(n)switch(n){case j.BEARER:case j.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 ca{constructor(e,t,r,n,o){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=n,this.performanceClient=o}async handleCodeResponse(e,t){let r;this.performanceClient.addQueueMeasurement(ln.HandleCodeResponse,t.correlationId);try{r=this.authModule.handleFragmentResponse(e,t.state)}catch(e){throw e instanceof Vr&&e.subError===mo?ei(mo):e}return pn(this.handleCodeResponseFromServer.bind(this),ln.HandleCodeResponseFromServer,this.logger,this.performanceClient,t.correlationId)(r,t)}async handleCodeResponseFromServer(e,t,r=!0){if(this.performanceClient.addQueueMeasurement(ln.HandleCodeResponseFromServer,t.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"),this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await pn(this.authModule.updateAuthority.bind(this.authModule),ln.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 pn(this.authModule.acquireToken.bind(this.authModule),ln.AuthClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(this.authCodeRequest,e)}createCcsCredentials(e){return e.account?{credential:e.account.homeAccountId,type:Zr}:e.loginHint?{credential:e.loginHint,type:en}:null}}function la(e,t,r){const n=Nr(e);if(!n)throw Mr(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(co)):(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(so));return n}class ha extends Js{constructor(e,t,r,n,o,i,s,a,c,l){super(e,t,r,n,o,i,s,c,l),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=a}acquireToken(e){try{const t=this.generatePopupName(e.scopes||s,e.authority||this.config.auth.authority),r=e.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,t,r);{this.logger.verbose("asyncPopup set to false, opening popup before acquiring token");const n=this.openSizedPopup("about:blank",t,r);return this.acquireTokenPopupAsync(e,t,r,n)}}catch(e){return Promise.reject(e)}}logout(e){try{this.logger.verbose("logoutPopup called");const t=this.initializeLogoutRequest(e),r=this.generateLogoutPopupName(t),n=e&&e.authority,o=e&&e.mainWindowRedirectUri,i=e?.popupWindowAttributes||{};if(this.config.system.asyncPopups)return this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(t,r,i,n,void 0,o);{this.logger.verbose("asyncPopup set to false, opening popup");const e=this.openSizedPopup("about:blank",r,i);return this.logoutPopupAsync(t,r,i,n,e,o)}}catch(e){return Promise.reject(e)}}async acquireTokenPopupAsync(t,r,n,o){this.logger.verbose("acquireTokenPopupAsync called");const i=this.initializeServerTelemetryManager(Ri.acquireTokenPopup),s=await pn(this.initializeAuthorizationRequest.bind(this),ln.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(t,e.InteractionType.Popup);Qi(s.authority);try{const a=await pn(this.initializeAuthorizationCodeRequest.bind(this),ln.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(s),c=await pn(this.createAuthCodeClient.bind(this),ln.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(i,s.authority,s.azureCloudOptions),l=aa.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme);let h;l&&(h=this.performanceClient.startMeasurement(ln.FetchAccountIdWithNativeBroker,t.correlationId));const d=await c.getAuthCodeUrl({...s,nativeBroker:l}),u=new ca(c,this.browserStorage,a,this.logger,this.performanceClient),g={popup:o,popupName:r,popupWindowAttributes:n},p=this.initiateAuthRequest(d,g);this.eventHandler.emitEvent($s.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:p},null);const m=await this.monitorPopupForHash(p),f=gn(la,ln.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(m,this.config.auth.OIDCOptions.serverResponseType,this.logger);if(Jr.removeThrottle(this.browserStorage,this.config.auth.clientId,a),f.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),h&&h.end({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw ei(Go);const e=new sa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ri.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,f.accountId,this.nativeStorage,s.correlationId),{userRequestState:t}=Hn.parseRequestState(this.browserCrypto,s.state);return await e.acquireToken({...s,state:t,prompt:void 0})}return await u.handleCodeResponse(f,s)}catch(e){throw o&&o.close(),e instanceof Ie&&(e.setCorrelationId(this.correlationId),i.cacheFailedRequest(e)),e}}async logoutPopupAsync(t,r,n,o,i,s){this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent($s.LOGOUT_START,e.InteractionType.Popup,t);const a=this.initializeServerTelemetryManager(Ri.logoutPopup);try{await this.clearCacheOnLogout(t.account);const c=await pn(this.createAuthCodeClient.bind(this),ln.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(a,o);try{c.authority.endSessionEndpoint}catch{if(t.account?.homeAccountId&&t.postLogoutRedirectUri&&c.authority.protocolMode===_r.OIDC){if(this.browserStorage.removeAccount(t.account?.homeAccountId),this.eventHandler.emitEvent($s.LOGOUT_SUCCESS,e.InteractionType.Popup,t),s){const e={apiId:Ri.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=Or.getAbsoluteUrl(s,Di());await this.navigationClient.navigateInternal(t,e)}return void(i&&i.close())}}const l=c.getLogoutUri(t);this.eventHandler.emitEvent($s.LOGOUT_SUCCESS,e.InteractionType.Popup,t);const h=this.openPopup(l,{popupName:r,popupWindowAttributes:n,popup:i});if(this.eventHandler.emitEvent($s.POPUP_OPENED,e.InteractionType.Popup,{popupWindow:h},null),await this.monitorPopupForHash(h).catch((()=>{})),s){const e={apiId:Ri.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},t=Or.getAbsoluteUrl(s,Di());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 Ie&&(t.setCorrelationId(this.correlationId),a.cacheFailedRequest(t)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent($s.LOGOUT_FAILURE,e.InteractionType.Popup,null,t),this.eventHandler.emitEvent($s.LOGOUT_END,e.InteractionType.Popup),t}this.eventHandler.emitEvent($s.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(io)}monitorPopupForHash(e){return new Promise(((t,r)=>{this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const n=setInterval((()=>{if(e.closed)return this.logger.error("PopupHandler.monitorPopupForHash - window closed"),clearInterval(n),void r(ei(mo));let o="";try{o=e.location.href}catch(e){}if(!o||"about:blank"===o)return;clearInterval(n);let i="";const s=this.config.auth.OIDCOptions.serverResponseType;e&&(i=s===_.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(po);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(go)}}openSizedPopup(e,t,r){const n=window.screenLeft?window.screenLeft:window.screenX,o=window.screenTop?window.screenTop:window.screenY,i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,s=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;let a=r.popupSize?.width,c=r.popupSize?.height,l=r.popupPosition?.top,h=r.popupPosition?.left;return(!a||a<0||a>i)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),a=ti.POPUP_WIDTH),(!c||c<0||c>s)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),c=ti.POPUP_HEIGHT),(!l||l<0||l>s)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),l=Math.max(0,s/2-ti.POPUP_HEIGHT/2+o)),(!h||h<0||h>i)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),h=Math.max(0,i/2-ti.POPUP_WIDTH/2+n)),window.open(e,t,`width=${a}, height=${c}, top=${l}, left=${h}, scrollbars=yes`)}unloadWindow(t){this.browserStorage.cleanRequestByInteractionType(e.InteractionType.Popup),this.currentWindow&&this.currentWindow.close(),t.preventDefault()}cleanPopup(e){e&&e.close(),window.removeEventListener("beforeunload",this.unloadWindow),this.browserStorage.setInteractionInProgress(!1)}generatePopupName(e,t){return`${ti.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${ti.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}}class da{constructor(e,t,r,n,o){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=n,this.performanceClient=o}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(mi,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:Ri.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(io)}async handleCodeResponse(e,t){this.logger.verbose("RedirectHandler.handleCodeResponse called"),this.browserStorage.setInteractionInProgress(!1);const r=this.browserStorage.generateStateKey(t),n=this.browserStorage.getTemporaryCache(r);if(!n)throw Ct(Oe,"Cached State");let o;try{o=this.authModule.handleFragmentResponse(e,n)}catch(e){throw e instanceof Vr&&e.subError===mo?ei(mo):e}const i=this.browserStorage.generateNonceKey(n),s=this.browserStorage.getTemporaryCache(i);if(this.authCodeRequest.code=o.code,o.cloud_instance_host_name&&await pn(this.authModule.updateAuthority.bind(this.authModule),ln.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(o.cloud_instance_host_name,this.authCodeRequest.correlationId),o.nonce=s||void 0,o.state=n,o.client_info)this.authCodeRequest.clientInfo=o.client_info;else{const e=this.checkCcsCredentials();e&&(this.authCodeRequest.ccsCredential=e)}const a=await this.authModule.acquireToken(this.authCodeRequest,o);return this.browserStorage.cleanRequestByState(t),a}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(vi,!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 ua extends Js{constructor(e,t,r,n,o,i,s,a,c,l){super(e,t,r,n,o,i,s,c,l),this.nativeStorage=a}async acquireToken(t){const r=await pn(this.initializeAuthorizationRequest.bind(this),ln.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 n=this.initializeServerTelemetryManager(Ri.acquireTokenRedirect),o=t=>{t.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(r.state),this.eventHandler.emitEvent($s.RESTORE_FROM_BFCACHE,e.InteractionType.Redirect))};try{const e=await pn(this.initializeAuthorizationCodeRequest.bind(this),ln.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(r),i=await pn(this.createAuthCodeClient.bind(this),ln.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(n,r.authority,r.azureCloudOptions),s=new da(i,this.browserStorage,e,this.logger,this.performanceClient),a=await i.getAuthCodeUrl({...r,nativeBroker:aa.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",o),await s.initiateAuthRequest(a,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:c,onRedirectNavigate:t.onRedirectNavigate})}catch(e){throw e instanceof Ie&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),window.removeEventListener("pageshow",o),this.browserStorage.cleanRequestByState(r.state),e}}async handleRedirectPromise(r){const n=this.initializeServerTelemetryManager(Ri.handleRedirectPromise);try{if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const[o,i]=this.getRedirectResponse(r||"");if(!o)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(mi,!0)||t.EMPTY_STRING,a=Or.removeHashFromUrl(s);if(a===Or.removeHashFromUrl(window.location.href)&&this.config.auth.navigateToLoginRequestUrl){this.logger.verbose("Current page is loginRequestUrl, handling response"),s.indexOf("#")>-1&&Ui(s);return await this.handleResponse(o,n)}if(!this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling response"),await this.handleResponse(o,n);if(!Hi()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(fi,i,!0);const e={apiId:Ri.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=xi();this.browserStorage.setTemporaryCache(mi,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 await this.handleResponse(o,n)}return null}catch(t){throw t instanceof Ie&&(t.setCorrelationId(this.correlationId),n.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===_.QUERY?window.location.search:window.location.hash);let n=Nr(r);if(n){try{!function(e,t,r){if(!e.state)throw ei(ao);const n=Ks(t,e.state);if(!n)throw ei(lo);if(n.interactionType!==r)throw ei(ho)}(n,this.browserCrypto,e.InteractionType.Redirect)}catch(e){return e instanceof Ie&&this.logger.error(`Interaction type validation failed due to ${e.errorCode}: ${e.errorMessage}`),[null,""]}return Li(window),this.logger.verbose("Hash contains known properties, returning response hash"),[n,r]}const o=this.browserStorage.getTemporaryCache(fi,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(fi)),o&&(n=Nr(o),n)?(this.logger.verbose("Hash does not contain known properties, returning cached hash"),[n,o]):[null,""]}async handleResponse(e,t){const r=e.state;if(!r)throw ei(ao);const n=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(Go);const t=new sa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ri.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,e.accountId,this.nativeStorage,n.correlationId),{userRequestState:o}=Hn.parseRequestState(this.browserCrypto,r);return t.acquireToken({...n,state:o,prompt:void 0}).finally((()=>{this.browserStorage.cleanRequestByState(r)}))}const o=this.browserStorage.getCachedAuthority(r);if(!o)throw ei(Ro);const i=await pn(this.createAuthCodeClient.bind(this),ln.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(t,o);Jr.removeThrottle(this.browserStorage,this.config.auth.clientId,n);return new da(i,this.browserStorage,n,this.logger,this.performanceClient).handleCodeResponse(e,r)}async logout(t){this.logger.verbose("logoutRedirect called");const r=this.initializeLogoutRequest(t),n=this.initializeServerTelemetryManager(Ri.logout);try{this.eventHandler.emitEvent($s.LOGOUT_START,e.InteractionType.Redirect,t),await this.clearCacheOnLogout(r.account);const o={apiId:Ri.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},i=await pn(this.createAuthCodeClient.bind(this),ln.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)(n,t&&t.authority);if(i.authority.protocolMode===_r.OIDC)try{i.authority.endSessionEndpoint}catch{if(r.account?.homeAccountId)return this.browserStorage.removeAccount(r.account?.homeAccountId),void this.eventHandler.emitEvent($s.LOGOUT_SUCCESS,e.InteractionType.Redirect,r)}const s=i.getLogoutUri(r);if(this.eventHandler.emitEvent($s.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,o);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,o);this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation")}catch(t){throw t instanceof Ie&&(t.setCorrelationId(this.correlationId),n.cacheFailedRequest(t)),this.eventHandler.emitEvent($s.LOGOUT_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent($s.LOGOUT_END,e.InteractionType.Redirect),t}this.eventHandler.emitEvent($s.LOGOUT_END,e.InteractionType.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return Or.getAbsoluteUrl(t,Di())}}async function ga(e,t,r,n,o){if(t.addQueueMeasurement(ln.SilentHandlerInitiateAuthRequest,n),!e)throw r.info("Navigate url is empty"),ei(io);return o?pn(ma,ln.SilentHandlerLoadFrame,r,t,n)(e,o,t,n):gn(fa,ln.SilentHandlerLoadFrameSync,r,t,n)(e)}async function pa(e,t,r,n,o,i,s){return n.addQueueMeasurement(ln.SilentHandlerMonitorIframeForHash,i),new Promise(((n,i)=>{t<Vi&&o.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${t}ms) than the default (10000ms). This may result in timeouts.`);const a=window.setTimeout((()=>{window.clearInterval(c),i(ei(Co))}),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 o="";r&&(o=s===_.QUERY?r.location.search:r.location.hash),window.clearTimeout(a),window.clearInterval(c),n(o)}),r)})).finally((()=>{gn(ya,ln.RemoveHiddenIframe,o,n,i)(e)}))}function ma(e,t,r,n){return r.addQueueMeasurement(ln.SilentHandlerLoadFrame,n),new Promise(((r,n)=>{const o=Ca();window.setTimeout((()=>{o?(o.src=e,r(o)):n("Unable to load iframe")}),t)}))}function fa(e){const t=Ca();return t.src=e,t}function Ca(){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.body.appendChild(e),e}function ya(e){document.body===e.parentNode&&document.body.removeChild(e)}class va extends Js{constructor(e,t,r,n,o,i,s,a,c,l,h){super(e,t,r,n,o,i,a,l,h),this.apiId=s,this.nativeStorage=c}async acquireToken(t){if(this.performanceClient.addQueueMeasurement(ln.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!==R.NONE&&t.prompt!==R.NO_SESSION)throw ei(ko);const r=await pn(this.initializeAuthorizationRequest.bind(this),ln.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,t.correlationId)({...t,prompt:t.prompt||R.NONE},e.InteractionType.Silent);Qi(r.authority);const n=this.initializeServerTelemetryManager(this.apiId);try{const e=await pn(this.createAuthCodeClient.bind(this),ln.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,t.correlationId)(n,r.authority,r.azureCloudOptions);return await pn(this.silentTokenHelper.bind(this),ln.SilentIframeClientTokenHelper,this.logger,this.performanceClient,t.correlationId)(e,r)}catch(e){throw e instanceof Ie&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),e}}logout(){return Promise.reject(ei(To))}async silentTokenHelper(e,t){const r=t.correlationId;this.performanceClient.addQueueMeasurement(ln.SilentIframeClientTokenHelper,r);const n=await pn(this.initializeAuthorizationCodeRequest.bind(this),ln.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,r)(t),o=await pn(e.getAuthCodeUrl.bind(e),ln.GetAuthCodeUrl,this.logger,this.performanceClient,r)({...t,nativeBroker:aa.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme)}),i=new ca(e,this.browserStorage,n,this.logger,this.performanceClient),s=await pn(ga,ln.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r)(o,this.performanceClient,this.logger,r,this.config.system.navigateFrameWait),a=this.config.auth.OIDCOptions.serverResponseType,c=await pn(pa,ln.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,r)(s,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,r,a),l=gn(la,ln.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(c,a,this.logger);if(l.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw ei(Go);const e=new sa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,l.accountId,this.browserStorage,r),{userRequestState:n}=Hn.parseRequestState(this.browserCrypto,t.state);return pn(e.acquireToken.bind(e),ln.NativeInteractionClientAcquireToken,this.logger,this.performanceClient,r)({...t,state:n,prompt:t.prompt||R.NONE})}return pn(i.handleCodeResponse.bind(i),ln.HandleCodeResponse,this.logger,this.performanceClient,r)(l,t)}}class wa extends Js{async acquireToken(e){this.performanceClient.addQueueMeasurement(ln.SilentRefreshClientAcquireToken,e.correlationId);const t=await pn(this.initializeBaseRequest.bind(this),ln.InitializeBaseRequest,this.logger,this.performanceClient,e.correlationId)(e,e.account),r={...e,...t};e.redirectUri&&(r.redirectUri=this.getRedirectUri(e.redirectUri));const n=this.initializeServerTelemetryManager(Ri.acquireTokenSilent_silentFlow),o=await this.createRefreshTokenClient(n,r.authority,r.azureCloudOptions);return pn(o.acquireTokenByRefreshToken.bind(o),ln.RefreshTokenClientAcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(r).catch((e=>{throw e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e),e}))}logout(){return Promise.reject(ei(To))}async createRefreshTokenClient(e,t,r){const n=await pn(this.getClientConfiguration.bind(this),ln.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e,t,r);return new $n(n,this.performanceClient)}}class Ia{constructor(e,t,r,n){this.isBrowserEnvironment="undefined"!=typeof window,this.config=e,this.storage=t,this.logger=r,this.cryptoObj=n}loadExternalTokens(e,t,r){if(this.logger.info("TokenCache - loadExternalTokens called"),!t.id_token)throw ei(Uo);const n=kt(t.id_token,fs);let o,i,s;if(e.account)s=Pr.createFromAccountInfo(e.account),o=new Un(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(Uo);{const a=fn.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 fn(a,this.config.system.networkClient,this.storage,c,this.logger,e.correlationId||Ts()),r.clientInfo)this.logger.trace("TokenCache - homeAccountId from options"),s=this.loadAccount(n,i,r.clientInfo),o=new Un(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(Uo);this.logger.trace("TokenCache - homeAccountId from response"),s=this.loadAccount(n,i,t.client_info),o=new Un(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,n,o,s,i)}loadAccount(e,t,r,n){if(this.isBrowserEnvironment){let o;if(this.logger.verbose("TokenCache - loading account"),n?o=n:void 0!==t.authorityType&&r&&(o=Pr.generateHomeAccountId(r,t.authorityType,this.logger,this.cryptoObj,e)),!o)throw ei(Uo);const i=e.tid,s=Fn(this.storage,t,o,e,fs,r,t.hostnameAndPort,i,void 0,void 0,this.logger);return this.storage.setAccount(s),s}throw ei(Uo)}loadIdToken(e,t,r,n){const o=bt(t,r,e,this.config.auth.clientId,n);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading id token"),this.storage.setIdTokenCredential(o),o;throw ei(Uo)}loadAccessToken(e,t,r,n,o,i){if(!t.access_token)return this.logger.verbose("TokenCache - No access token provided for caching"),null;if(!t.expires_in)throw ei(Uo);if(!i.extendedExpiresOn)throw ei(Uo);const s=new yr(e.scopes).printScopes(),a=i.expiresOn||t.expires_in+(new Date).getTime()/1e3,c=i.extendedExpiresOn,l=_t(r,n,t.access_token,this.config.auth.clientId,o,s,a,c,fs);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading access token"),this.storage.setAccessTokenCredential(l),l;throw ei(Uo)}loadRefreshToken(e,t,r,n){if(!t.refresh_token)return this.logger.verbose("TokenCache - No refresh token provided for caching"),null;const o=Pt(r,n,t.refresh_token,this.config.auth.clientId);if(this.isBrowserEnvironment)return this.logger.verbose("TokenCache - loading refresh token"),this.storage.setRefreshTokenCredential(o),o;throw ei(Uo)}generateAuthenticationResult(e,r,n,o,i){let s,a=t.EMPTY_STRING,c=[],l=null;n?.accessToken&&(a=n.accessToken.secret,c=yr.fromString(n.accessToken.target).asArray(),l=new Date(1e3*Number(n.accessToken.expiresOn)),s=new Date(1e3*Number(n.accessToken.extendedExpiresOn)));const h=r.oid||r.sub||t.EMPTY_STRING,d=r.tid||t.EMPTY_STRING;return{authority:i?i.canonicalAuthority:t.EMPTY_STRING,uniqueId:h,tenantId:d,scopes:c,account:o.getAccountInfo(),idToken:n.idToken?.secret||"",idTokenClaims:r||{},accessToken:a,fromCache:!0,expiresOn:l,correlationId:e.correlationId||t.EMPTY_STRING,requestId:t.EMPTY_STRING,extExpiresOn:s,familyId:t.EMPTY_STRING,tokenType:n?.accessToken?.tokenType||t.EMPTY_STRING,state:t.EMPTY_STRING,cloudGraphHostName:o.cloudGraphHostName||t.EMPTY_STRING,msGraphHost:o.msGraphHost||t.EMPTY_STRING,code:void 0,fromNativeBroker:!1}}}class Ta extends zn{constructor(e){super(e),this.includeRedirectUri=!1}}class Aa extends Js{constructor(e,t,r,n,o,i,s,a,c,l){super(e,t,r,n,o,i,a,c,l),this.apiId=s}async acquireToken(t){if(!t.code)throw ei(Bo);const r=await pn(this.initializeAuthorizationRequest.bind(this),ln.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,t.correlationId)(t,e.InteractionType.Silent),n=this.initializeServerTelemetryManager(this.apiId);try{const e={...r,code:t.code},o=await pn(this.getClientConfiguration.bind(this),ln.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,t.correlationId)(n,r.authority),i=new Ta(o);this.logger.verbose("Auth code client created");const s=new ca(i,this.browserStorage,e,this.logger,this.performanceClient);return await pn(s.handleCodeResponseFromServer.bind(s),ln.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 Ie&&(e.setCorrelationId(this.correlationId),n.cacheFailedRequest(e)),e}}logout(){return Promise.reject(ei(To))}}class ka{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 Ps(this.logger,this.performanceClient):yt,this.eventHandler=new Gs(this.logger,this.browserCrypto),this.browserStorage=this.isBrowserEnvironment?new Fs(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 fr(rr)}return{canonicalAuthority:e.authority?Cn(e.authority):void 0,knownAuthorities:e.knownAuthorities,cloudDiscoveryMetadata:r}}(this.config.auth)):zs(this.config.auth.clientId,this.logger);const t={cacheLocation:li.MemoryStorage,temporaryCacheLocation:li.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new Fs(this.config.auth.clientId,t,this.browserCrypto,this.logger),this.tokenCache=new Ia(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 ka(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(ln.InitializeClientApplication);if(this.eventHandler.emitEvent($s.INITIALIZE_START),e)try{this.nativeExtensionProvider=await aa.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 pn(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),ln.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient)(this.performanceClient)),this.initialized=!0,this.eventHandler.emitEvent($s.INITIALIZE_END),t.end({allowNativeBroker:e,success:!0})}async handleRedirectPromise(r){this.logger.verbose("handleRedirectPromise called"),Gi(this.initialized);const n=this.getAllAccounts();if(this.isBrowserEnvironment){const o=r||"";let i=this.redirectResponse.get(o);if(void 0===i){this.eventHandler.emitEvent($s.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&&aa.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!r){this.logger.trace("handleRedirectPromise - acquiring token from native platform");a=new sa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ri.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){n.length<this.getAllAccounts().length?(this.eventHandler.emitEvent($s.LOGIN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, login success")):(this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Redirect,t),this.logger.verbose("handleRedirectResponse returned result, acquire token success"))}return this.eventHandler.emitEvent($s.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})).catch((t=>{throw n.length>0?this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent($s.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),this.eventHandler.emitEvent($s.HANDLE_REDIRECT_END,e.InteractionType.Redirect),t})),this.redirectResponse.set(o,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 n=this.getAllAccounts().length>0;let o;if(n?this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_START,e.InteractionType.Redirect,t):this.eventHandler.emitEvent($s.LOGIN_START,e.InteractionType.Redirect,t),this.nativeExtensionProvider&&this.canUseNative(t)){o=new sa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ri.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(t),this.nativeInternalStorage,r).acquireTokenRedirect(t).catch((e=>{if(e instanceof ea&&ta(e)){this.nativeExtensionProvider=void 0;return this.createRedirectClient(r).acquireToken(t)}if(e instanceof On){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{o=this.createRedirectClient(r).acquireToken(t)}return o.catch((t=>{throw n?this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Redirect,null,t):this.eventHandler.emitEvent($s.LOGIN_FAILURE,e.InteractionType.Redirect,null,t),t}))}acquireTokenPopup(t){const r=this.getRequestCorrelationId(t),n=this.performanceClient.startMeasurement(ln.AcquireTokenPopup,r);try{this.logger.verbose("acquireTokenPopup called",r),this.preflightBrowserEnvironmentCheck(e.InteractionType.Popup)}catch(e){return Promise.reject(e)}const o=this.getAllAccounts();let i;if(o.length>0?this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t):this.eventHandler.emitEvent($s.LOGIN_START,e.InteractionType.Popup,t),this.canUseNative(t))i=this.acquireTokenNative({...t,correlationId:r},Ri.acquireTokenPopup).then((e=>(this.getBrowserStorage().setInteractionInProgress(!1),n.end({success:!0,isNativeBroker:!0,requestId:e.requestId}),e))).catch((e=>{if(e instanceof ea&&ta(e)){this.nativeExtensionProvider=void 0;return this.createPopupClient(r).acquireToken(t)}if(e instanceof On){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=>(o.length<this.getAllAccounts().length?this.eventHandler.emitEvent($s.LOGIN_SUCCESS,e.InteractionType.Popup,t):this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_SUCCESS,e.InteractionType.Popup,t),n.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),n.end({success:!0,requestId:t.requestId}),t))).catch((t=>(o.length>0?this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t):this.eventHandler.emitEvent($s.LOGIN_FAILURE,e.InteractionType.Popup,null,t),n.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),n={...t,prompt:t.prompt,correlationId:r};let o;if(this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.ssoSilentMeasurement=this.performanceClient.startMeasurement(ln.SsoSilent,r),this.ssoSilentMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",r),this.eventHandler.emitEvent($s.SSO_SILENT_START,e.InteractionType.Silent,n),this.canUseNative(n))o=this.acquireTokenNative(n,Ri.ssoSilent).catch((e=>{if(e instanceof ea&&ta(e)){this.nativeExtensionProvider=void 0;return this.createSilentIframeClient(n.correlationId).acquireToken(n)}throw e}));else{o=this.createSilentIframeClient(n.correlationId).acquireToken(n)}return o.then((t=>(this.eventHandler.emitEvent($s.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($s.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($s.ACQUIRE_TOKEN_BY_CODE_START,e.InteractionType.Silent,t);const n=this.performanceClient.startMeasurement(ln.AcquireTokenByCode,r);try{if(t.code&&t.nativeAccountId)throw ei(xo);if(t.code){const o=t.code;let i=this.hybridAuthCodeResponses.get(o);return i?(this.logger.verbose("Existing acquireTokenByCode request found",r),n.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",r),i=this.acquireTokenByCodeAsync({...t,correlationId:r}).then((t=>(this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_BY_CODE_SUCCESS,e.InteractionType.Silent,t),this.hybridAuthCodeResponses.delete(o),n.add({accessTokenSize:t.accessToken.length,idTokenSize:t.idToken.length}),n.end({success:!0,isNativeBroker:t.fromNativeBroker,requestId:t.requestId}),t))).catch((t=>{throw this.hybridAuthCodeResponses.delete(o),this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),n.end({errorCode:t.errorCode,subErrorCode:t.subError,success:!1}),t})),this.hybridAuthCodeResponses.set(o,i)),await i}if(t.nativeAccountId){if(this.canUseNative(t,t.nativeAccountId))return await this.acquireTokenNative({...t,correlationId:r},Ri.acquireTokenByCode,t.nativeAccountId).catch((e=>{throw e instanceof ea&&ta(e)&&(this.nativeExtensionProvider=void 0),e}));throw ei(Fo)}throw ei(Do)}catch(t){throw this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_BY_CODE_FAILURE,e.InteractionType.Silent,null,t),n.end({errorCode:t instanceof Ie&&t.errorCode||void 0,subErrorCode:t instanceof Ie&&t.subError||void 0,success:!1}),t}}async acquireTokenByCodeAsync(e){this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(ln.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(ln.AcquireTokenFromCache,t.correlationId),r){case Oi.Default:case Oi.AccessToken:case Oi.AccessTokenAndRefreshToken:return pn(e.acquireToken.bind(e),ln.SilentCacheClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(t);default:throw Ct(tt)}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(ln.AcquireTokenByRefreshToken,e.correlationId),t){case Oi.Default:case Oi.AccessTokenAndRefreshToken:case Oi.RefreshToken:case Oi.RefreshTokenAndNetwork:const t=this.createSilentRefreshClient(e.correlationId);return pn(t.acquireToken.bind(t),ln.SilentRefreshClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw Ct(tt)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(ln.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return pn(t.acquireToken.bind(t),ln.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=Pr.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"),$i(this.isBrowserEnvironment),Fi(t,this.config.system.allowRedirectInIframe),Ki(),zi(),Gi(this.initialized),t===e.InteractionType.Redirect&&this.config.cache.cacheLocation===li.MemoryStorage&&!this.config.cache.storeAuthStateInCookie)throw Ds(qs);t!==e.InteractionType.Redirect&&t!==e.InteractionType.Popup||this.preflightInteractiveRequest(!r)}preflightInteractiveRequest(e){this.logger.verbose("preflightInteractiveRequest called, validating app environment"),Ki(),e&&this.getBrowserStorage().setInteractionInProgress(!0)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw ei(Go);return new sa(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"),!aa.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 R.NONE:case R.CONSENT:case R.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.getAccount({loginHint:e.loginHint,sid:e.sid})||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new ha(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new ua(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new va(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ri.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new na(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new wa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new Aa(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,Ri.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?Ts():t.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||Pi})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||Pi})}async acquireTokenSilent(r){const n=this.getRequestCorrelationId(r),o=this.performanceClient.startMeasurement(ln.AcquireTokenSilent,n);o.add({cacheLookupPolicy:r.cacheLookupPolicy}),this.preflightBrowserEnvironmentCheck(e.InteractionType.Silent),this.logger.verbose("acquireTokenSilent called",n);const i=r.account||this.getActiveAccount();if(!i)throw ei(Ao);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",n);const e=pn(this.acquireTokenSilentAsync.bind(this),ln.AcquireTokenSilentAsync,this.logger,this.performanceClient,n)({...r,correlationId:n},i).then((e=>(this.activeSilentTokenRequests.delete(a),o.add({accessTokenSize:e.accessToken.length,idTokenSize:e.idToken.length}),o.end({success:!0,fromCache:e.fromCache,isNativeBroker:e.fromNativeBroker,cacheLookupPolicy:r.cacheLookupPolicy,requestId:e.requestId}),e))).catch((e=>{throw this.activeSilentTokenRequests.delete(a),o.end({errorCode:e.errorCode,subErrorCode:e.subError,success:!1}),e}));return this.activeSilentTokenRequests.set(a,e),{...await e,state:r.state}}return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",n),o.discard(),{...await c,state:r.state}}async acquireTokenSilentAsync(t,r){let n;if(this.performanceClient.addQueueMeasurement(ln.AcquireTokenSilentAsync,t.correlationId),this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t),this.atsAsyncMeasurement=this.performanceClient.startMeasurement(ln.AcquireTokenSilentAsync,t.correlationId),this.atsAsyncMeasurement?.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibility),aa.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};n=this.acquireTokenNative(e,Ri.acquireTokenSilent_silentFlow).catch((async e=>{if(e instanceof ea&&ta(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 o=this.createSilentCacheClient(t.correlationId),i=await pn(o.initializeSilentRequest.bind(o),ln.InitializeSilentRequest,this.logger,this.performanceClient,t.correlationId)(t,r),s=t.cacheLookupPolicy||Oi.Default;n=pn(this.acquireTokenFromCache.bind(this),ln.AcquireTokenFromCache,this.logger,this.performanceClient,i.correlationId)(o,i,s).catch((r=>{if(t.cacheLookupPolicy===Oi.AccessToken)throw r;return Ki(),this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_NETWORK_START,e.InteractionType.Silent,i),pn(this.acquireTokenByRefreshToken.bind(this),ln.AcquireTokenByRefreshToken,this.logger,this.performanceClient,i.correlationId)(i,s).catch((e=>{const t=function(e,t,r){const n=!(e instanceof On&&e.subError!==Rn),o=e.errorCode===ti.INVALID_GRANT_ERROR||e.errorCode===tt,i=n&&o||e.errorCode===In||e.errorCode===An,s=qi.includes(r);return i&&s}(e,0,s);if(t)return this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",i.correlationId),pn(this.acquireTokenBySilentIframe.bind(this),ln.AcquireTokenBySilentIframe,this.logger,this.performanceClient,i.correlationId)(i);throw e}))}))}return n.then((t=>(this.eventHandler.emitEvent($s.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($s.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 Sa=Object.freeze({__proto__:null,StandardController:ka});class Ea{static async createPublicClientApplication(e){const t=await async function(e){const t=new hs(e);return await t.initialize(),(await Promise.resolve().then((function(){return Sa}))).StandardController.createController(t)}(e);return new Ea(e,t)}constructor(e,t){if(t)this.controller=t;else{const t=new hs(e);this.controller=new ka(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 Ra{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 Ps(this.logger,this.performanceClient):yt,this.browserStorage=this.isBrowserEnvironment?new Fs(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger):zs(this.config.auth.clientId,this.logger),this.eventHandler=new Gs(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 Gi(this.initialized),$i(this.isBrowserEnvironment),{}}acquireTokenRedirect(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),Promise.resolve()}acquireTokenSilent(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}acquireTokenByCode(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}acquireTokenNative(e,t,r){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}acquireTokenByRefreshToken(e,t){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),""}removePerformanceCallback(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),!0}enableAccountStorageEvents(){Gi(this.initialized),$i(this.isBrowserEnvironment)}disableAccountStorageEvents(){Gi(this.initialized),$i(this.isBrowserEnvironment)}handleRedirectPromise(e){return Gi(this.initialized),Promise.resolve(null)}loginPopup(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}loginRedirect(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}logout(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}logoutRedirect(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}logoutPopup(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}ssoSilent(e){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}getTokenCache(){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}getLogger(){return this.logger}setLogger(e){Gi(this.initialized),$i(this.isBrowserEnvironment)}setActiveAccount(e){Gi(this.initialized),$i(this.isBrowserEnvironment)}getActiveAccount(){return Gi(this.initialized),$i(this.isBrowserEnvironment),null}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){Gi(this.initialized),$i(this.isBrowserEnvironment)}getConfiguration(){return this.config}isBrowserEnv(){return Gi(this.initialized),$i(this.isBrowserEnvironment),!0}getBrowserCrypto(){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}getPerformanceClient(){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}getRedirectResponse(){return Gi(this.initialized),$i(this.isBrowserEnvironment),{}}preflightBrowserEnvironmentCheck(e,t){Gi(this.initialized),$i(this.isBrowserEnvironment)}async clearCache(e){Gi(this.initialized),$i(this.isBrowserEnvironment)}async hydrateCache(e,t){Gi(this.initialized),$i(this.isBrowserEnvironment)}}class ba extends Zi{getModuleName(){return ba.MODULE_NAME}getId(){return ba.ID}async initialize(){return!0}}ba.MODULE_NAME="",ba.ID="UnknownOperatingContext";class _a{static async createPublicClientApplication(e){const t=await ds(e);let r;return r=null!==t?new _a(e,t):new _a(e),r}constructor(e,t){if(this.configuration=e,t)this.controller=t;else{const t=new ba(e);this.controller=new Ra(t)}}async initialize(){if(this.controller instanceof Ra){const e=await ds(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 Pa={initialize:()=>Promise.reject(Ds(Os)),acquireTokenPopup:()=>Promise.reject(Ds(Os)),acquireTokenRedirect:()=>Promise.reject(Ds(Os)),acquireTokenSilent:()=>Promise.reject(Ds(Os)),acquireTokenByCode:()=>Promise.reject(Ds(Os)),getAllAccounts:()=>[],getAccountByHomeId:()=>null,getAccountByUsername:()=>null,getAccountByLocalId:()=>null,handleRedirectPromise:()=>Promise.reject(Ds(Os)),loginPopup:()=>Promise.reject(Ds(Os)),loginRedirect:()=>Promise.reject(Ds(Os)),logout:()=>Promise.reject(Ds(Os)),logoutRedirect:()=>Promise.reject(Ds(Os)),logoutPopup:()=>Promise.reject(Ds(Os)),ssoSilent:()=>Promise.reject(Ds(Os)),addEventCallback:()=>null,removeEventCallback:()=>{},addPerformanceCallback:()=>"",removePerformanceCallback:()=>!1,enableAccountStorageEvents:()=>{},disableAccountStorageEvents:()=>{},getTokenCache:()=>{throw Ds(Os)},getLogger:()=>{throw Ds(Os)},setLogger:()=>{},setActiveAccount:()=>{},getActiveAccount:()=>null,initializeWrapperLibrary:()=>{},setNavigationClient:()=>{},getConfiguration:()=>{throw Ds(Os)},hydrateCache:()=>Promise.reject(Ds(Os)),clearCache:()=>Promise.reject(Ds(Os))};function Ma(){let e;try{e=window[li.SessionStorage];const t=e?.getItem("msal.browser.performance.enabled");if(1===Number(t))return Promise.resolve().then((function(){return La}))}catch(e){}}function Na(){return"undefined"!=typeof window&&void 0!==window.performance&&"function"==typeof window.performance.now}function Oa(e){if(e&&Na())return Math.round(window.performance.now()-e)}class qa{constructor(e,t){this.correlationId=t,this.measureName=qa.makeMeasureName(e,t),this.startMark=qa.makeStartMark(e,t),this.endMark=qa.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(qa.supportsBrowserPerformance())try{t.forEach((t=>{const r=qa.makeMeasureName(t.name,e);window.performance.getEntriesByName(r,"measure").length>0&&(window.performance.clearMeasures(r),window.performance.clearMarks(qa.makeStartMark(r,e)),window.performance.clearMarks(qa.makeEndMark(r,e)))}))}catch(e){}}startMeasurement(){if(qa.supportsBrowserPerformance())try{window.performance.mark(this.startMark)}catch(e){}}endMeasurement(){if(qa.supportsBrowserPerformance())try{window.performance.mark(this.endMark),window.performance.measure(this.measureName,this.startMark,this.endMark)}catch(e){}}flushMeasurement(){if(qa.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 La=Object.freeze({__proto__:null,BrowserPerformanceMeasurement:qa});class Ua{constructor(e,t,r,n){this.clientId=e,this.clientCapabilities=t,this.crypto=r,this.logger=n}toNaaTokenRequest(e){let t;t=void 0===e.extraQueryParameters?new Map:new Map(Object.entries(e.extraQueryParameters));const r=(new cn).addClientCapabilitiesToClaims(e.claims,this.clientCapabilities);return{platformBrokerId:e.account?.homeAccountId,clientId:this.clientId,authority:e.authority,scope:e.scopes.join(" "),correlationId:void 0!==e.correlationId?e.correlationId:this.crypto.createNewGuid(),claims:Cr.isEmptyObj(r)?void 0:r,state:e.state,authenticationScheme:e.authenticationScheme||j.BEARER,extraParameters:t}}fromNaaTokenResponse(e,t,r){if(!t.token.id_token||!t.token.access_token)throw Ct(Ee);const n=new Date(1e3*(r+(t.token.expires_in||0))),o=kt(t.token.id_token,this.crypto.base64Decode),i=this.fromNaaAccountInfo(t.account,o),s=t.token.scope||e.scope;return{authority:t.token.authority||i.environment,uniqueId:i.localAccountId,tenantId:i.tenantId,scopes:s.split(" "),account:i,idToken:t.token.id_token,idTokenClaims:o,accessToken:t.token.access_token,fromCache:!0,expiresOn:n,tokenType:e.authenticationScheme||j.BEARER,correlationId:e.correlationId,extExpiresOn:n,state:e.state}}fromNaaAccountInfo(e,t){const r=t||e.idTokenClaims,n=e.localAccountId||r?.oid||r?.sub||"",o=e.tenantId||r?.tid||"",i=e.homeAccountId||`${n}.${o}`,s=e.username||r?.preferred_username||"",a=e.name||r?.name;return{homeAccountId:i,environment:e.environment,tenantId:o,username:s,localAccountId:n,name:a,idToken:e.idToken,idTokenClaims:r}}fromBridgeError(e){if(!function(e){return void 0!==e.status}(e))return new Ie("unknown_error","An unknown error occurred");switch(e.status){case ts:return new ft(lt);case rs:return new ft(ct);case ss:return new ft(Ve);case is:return new ft(ut);case as:return new ft(e.code||ut,e.description);case ns:case os:return new Vr(e.code,e.description);case es:return new On(e.code,e.description);default:return new Ie(e.code,e.description)}}}const Ha={code:"unsupported_method",desc:"The PKCE code challenge and verifier could not be generated."};class Ba extends Ie{constructor(e,t){super(e,t),Object.setPrototypeOf(this,Ba.prototype),this.name="NestedAppAuthError"}static createUnsupportedError(){return new Ba(Ha.code,Ha.desc)}}class Da{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 Ps(this.logger,this.performanceClient):yt,this.eventHandler=new Gs(this.logger,this.browserCrypto),this.nestedAppAuthAdapter=new Ua(this.config.auth.clientId,this.config.auth.clientCapabilities,this.browserCrypto,this.logger)}getBrowserStorage(){throw Ba.createUnsupportedError()}getEventHandler(){return this.eventHandler}static async createController(e){const t=new Da(e);return Promise.resolve(t)}initialize(){return Promise.resolve()}async acquireTokenInteractive(t){this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_START,e.InteractionType.Popup,t);const r=this.performanceClient.startMeasurement(ln.AcquireTokenPopup,t.correlationId);r?.add({nestedAppAuthRequest:!0});try{const n=this.nestedAppAuthAdapter.toNaaTokenRequest(t),o=Et.nowSeconds(),i=await this.bridgeProxy.getTokenInteractive(n),s=this.nestedAppAuthAdapter.fromNaaTokenResponse(n,i,o);return this.operatingContext.setActiveAccount(s.account),this.eventHandler.emitEvent($s.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 n=this.nestedAppAuthAdapter.fromBridgeError(t);throw this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Popup,null,t),r.end({errorCode:n.errorCode,subErrorCode:n.subError,success:!1}),n}}async acquireTokenSilentInternal(t){this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_START,e.InteractionType.Silent,t);const r=this.performanceClient.startMeasurement(ln.SsoSilent,t.correlationId);r?.increment({visibilityChangeCount:0}),r?.add({nestedAppAuthRequest:!0});try{const n=this.nestedAppAuthAdapter.toNaaTokenRequest(t),o=Et.nowSeconds(),i=await this.bridgeProxy.getTokenSilent(n),s=this.nestedAppAuthAdapter.fromNaaTokenResponse(n,i,o);return this.operatingContext.setActiveAccount(s.account),this.eventHandler.emitEvent($s.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 n=this.nestedAppAuthAdapter.fromBridgeError(t);throw this.eventHandler.emitEvent($s.ACQUIRE_TOKEN_FAILURE,e.InteractionType.Silent,null,t),r?.end({errorCode:n.errorCode,subErrorCode:n.subError,success:!1}),n}}async acquireTokenPopup(e){return this.acquireTokenInteractive(e)}acquireTokenRedirect(e){throw Ba.createUnsupportedError()}async acquireTokenSilent(e){return this.acquireTokenSilentInternal(e)}acquireTokenByCode(e){throw Ba.createUnsupportedError()}acquireTokenNative(e,t,r){throw Ba.createUnsupportedError()}acquireTokenByRefreshToken(e,t){throw Ba.createUnsupportedError()}addEventCallback(e){return this.eventHandler.addEventCallback(e)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){throw Ba.createUnsupportedError()}removePerformanceCallback(e){throw Ba.createUnsupportedError()}enableAccountStorageEvents(){throw Ba.createUnsupportedError()}disableAccountStorageEvents(){throw Ba.createUnsupportedError()}getAccount(e){throw Ba.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 Ba.createUnsupportedError()}loginPopup(e){if(void 0!==e)return this.acquireTokenInteractive(e);throw Ba.createUnsupportedError()}loginRedirect(e){throw Ba.createUnsupportedError()}logout(e){throw Ba.createUnsupportedError()}logoutRedirect(e){throw Ba.createUnsupportedError()}logoutPopup(e){throw Ba.createUnsupportedError()}ssoSilent(e){return this.acquireTokenSilentInternal(e)}getTokenCache(){throw Ba.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 Ba.createUnsupportedError()}getRedirectResponse(){throw Ba.createUnsupportedError()}preflightBrowserEnvironmentCheck(e,t){throw Ba.createUnsupportedError()}async clearCache(e){throw Ba.createUnsupportedError()}async hydrateCache(e,t){throw Ba.createUnsupportedError()}}var xa=Object.freeze({__proto__:null,NestedAppAuthController:Da});e.AccountEntity=Pr,e.ApiId=Ri,e.AuthError=Ie,e.AuthErrorCodes=ye,e.AuthErrorMessage=we,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 fr(cr)}const t=this.headers[d];if(t){const e=this.parseChallenges(t);if(e.nonce)return e.nonce;throw fr(cr)}throw fr(ar)}parseChallenges(e){const r=e.indexOf(" "),n=e.substr(r+1).split(","),o={};return n.forEach((e=>{const[r,n]=e.split("=");o[r]=unescape(n.replace(/['"]+/g,t.EMPTY_STRING))})),o}},e.AuthenticationScheme=j,e.AzureCloudInstance=At,e.BrowserAuthError=Zo,e.BrowserAuthErrorCodes=Yo,e.BrowserAuthErrorMessage=Xo,e.BrowserCacheLocation=li,e.BrowserConfigurationAuthError=Bs,e.BrowserConfigurationAuthErrorCodes=Ls,e.BrowserConfigurationAuthErrorMessage=Hs,e.BrowserPerformanceClient=class extends ro{constructor(e,r){super(e.auth.clientId,e.auth.authority||`${t.DEFAULT_AUTHORITY}`,new wt(e.system?.loggerOptions||{},Ji,Xi),Ji,Xi,e.telemetry?.application||{appName:"",appVersion:""},r)}generateId(){return window.crypto.randomUUID()}getPageVisibility(){return document.visibilityState?.toString()||null}deleteIncompleteSubMeasurements(e){Ma()?.then((t=>{const r=this.eventsByCorrelationId.get(e.event.correlationId),n=r&&r.eventId===e.event.eventId,o=[];n&&r?.incompleteSubMeasurements&&r.incompleteSubMeasurements.forEach((e=>{o.push({...e})})),t.BrowserPerformanceMeasurement.flushMeasurements(e.event.correlationId,o)}))}startMeasurement(e,t){const r=this.getPageVisibility(),n=super.startMeasurement(e,t),o=Na()?window.performance.now():void 0,i=Ma()?.then((t=>new t.BrowserPerformanceMeasurement(e,n.event.correlationId)));return i?.then((e=>e.startMeasurement())),{...n,end:e=>{const t=n.end({...e,startPageVisibility:r,endPageVisibility:this.getPageVisibility(),durationMs:Oa(o)});return i?.then((e=>e.endMeasurement())),this.deleteIncompleteSubMeasurements(n),t},discard:()=>{n.discard(),i?.then((e=>e.flushMeasurement())),this.deleteIncompleteSubMeasurements(n)}}}setPreQueueTime(e,t){if(!Na())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,n){if(!Na())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 o=super.getPreQueueTime(e,t);if(!o)return;const i=window.performance.now(),s=r||super.calculateQueuedTime(o,i);return super.addQueueMeasurement(e,t,s,n)}},e.BrowserPerformanceMeasurement=qa,e.BrowserStorage=xs,e.BrowserUtils=ji,e.CacheLookupPolicy=Oi,e.ClientAuthError=ft,e.ClientAuthErrorCodes=gt,e.ClientAuthErrorMessage=mt,e.ClientConfigurationError=mr,e.ClientConfigurationErrorCodes=ur,e.ClientConfigurationErrorMessage=pr,e.DEFAULT_IFRAME_TIMEOUT_MS=Vi,e.EventMessageUtils=class{static getInteractionStatusFromEvent(t,r){switch(t.eventType){case $s.LOGIN_START:return _i.Login;case $s.SSO_SILENT_START:return _i.SsoSilent;case $s.ACQUIRE_TOKEN_START:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup)return _i.AcquireToken;break;case $s.HANDLE_REDIRECT_START:return _i.HandleRedirect;case $s.LOGOUT_START:return _i.Logout;case $s.SSO_SILENT_SUCCESS:case $s.SSO_SILENT_FAILURE:if(r&&r!==_i.SsoSilent)break;return _i.None;case $s.LOGOUT_END:if(r&&r!==_i.Logout)break;return _i.None;case $s.HANDLE_REDIRECT_END:if(r&&r!==_i.HandleRedirect)break;return _i.None;case $s.LOGIN_SUCCESS:case $s.LOGIN_FAILURE:case $s.ACQUIRE_TOKEN_SUCCESS:case $s.ACQUIRE_TOKEN_FAILURE:case $s.RESTORE_FROM_BFCACHE:if(t.interactionType===e.InteractionType.Redirect||t.interactionType===e.InteractionType.Popup){if(r&&r!==_i.Login&&r!==_i.AcquireToken)break;return _i.None}}return null}},e.EventType=$s,e.InteractionRequiredAuthError=On,e.InteractionRequiredAuthErrorCodes=bn,e.InteractionRequiredAuthErrorMessage=Nn,e.InteractionStatus=_i,e.JsonWebTokenTypes=me,e.Logger=wt,e.MemoryStorage=Ss,e.NavigationClient=Wi,e.OIDC_DEFAULT_SCOPES=s,e.PerformanceEvents=ln,e.PromptValue=R,e.ProtocolMode=_r,e.PublicClientApplication=Ea,e.PublicClientNext=_a,e.ServerError=Vr,e.ServerResponseType=_,e.SignedHttpRequest=class{constructor(e,t){const r=t&&t.loggerOptions||{};this.logger=new wt(r,Ji,Xi),this.cryptoOps=new Ps(this.logger),this.popTokenGenerator=new Dn(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 this.cryptoOps.removeTokenBindingKey(e)}},e.StringUtils=Cr,e.UrlString=Or,e.WrapperSKU={React:"@azure/msal-react",Angular:"@azure/msal-angular"},e.stubbedPublicClientApplication=Pa,e.version=Xi}));