/*! @azure/msal-browser v5.7.0 2026-04-16 */
|
'use strict';
|
import { StandardInteractionClient } from './StandardInteractionClient.mjs';
|
import { invokeAsync, SilentFlowClient } from '@azure/msal-common/browser';
|
import { StandardInteractionClientGetClientConfiguration, SilentFlowClientAcquireCachedToken } from '../telemetry/BrowserPerformanceEvents.mjs';
|
import { ApiId } from '../utils/BrowserConstants.mjs';
|
import { BrowserAuthError } from '../error/BrowserAuthError.mjs';
|
import { initializeServerTelemetryManager, clearCacheOnLogout } from './BaseInteractionClient.mjs';
|
import { cryptoKeyNotFound } from '../error/BrowserAuthErrorCodes.mjs';
|
|
/*
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
* Licensed under the MIT License.
|
*/
|
class SilentCacheClient extends StandardInteractionClient {
|
/**
|
* Returns unexpired tokens from the cache, if available
|
* @param silentRequest
|
*/
|
async acquireToken(silentRequest) {
|
// Telemetry manager only used to increment cacheHits here
|
const serverTelemetryManager = initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, this.config.auth.clientId, this.correlationId, this.browserStorage, this.logger);
|
const clientConfig = await invokeAsync(this.getClientConfiguration.bind(this), StandardInteractionClientGetClientConfiguration, this.logger, this.performanceClient, this.correlationId)({
|
serverTelemetryManager,
|
requestAuthority: silentRequest.authority,
|
requestAzureCloudOptions: silentRequest.azureCloudOptions,
|
account: silentRequest.account,
|
});
|
const silentAuthClient = new SilentFlowClient(clientConfig, this.performanceClient);
|
this.logger.verbose("0wa871", this.correlationId);
|
try {
|
const response = await invokeAsync(silentAuthClient.acquireCachedToken.bind(silentAuthClient), SilentFlowClientAcquireCachedToken, this.logger, this.performanceClient, silentRequest.correlationId)(silentRequest);
|
const authResponse = response[0];
|
this.performanceClient.addFields({
|
fromCache: true,
|
}, silentRequest.correlationId);
|
return authResponse;
|
}
|
catch (error) {
|
if (error instanceof BrowserAuthError &&
|
error.errorCode === cryptoKeyNotFound) {
|
this.logger.verbose("06wena", this.correlationId);
|
}
|
throw error;
|
}
|
}
|
/**
|
* API to silenty clear the browser cache.
|
* @param logoutRequest
|
*/
|
logout(logoutRequest) {
|
this.logger.verbose("1rkurh", this.correlationId);
|
const validLogoutRequest = this.initializeLogoutRequest(logoutRequest);
|
return clearCacheOnLogout(this.browserStorage, this.browserCrypto, this.logger, this.correlationId, validLogoutRequest.account);
|
}
|
}
|
|
export { SilentCacheClient };
|
//# sourceMappingURL=SilentCacheClient.mjs.map
|