@azure/msal-common 15.9.0 → 15.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account/AccountInfo.d.ts +2 -1
- package/dist/account/AccountInfo.d.ts.map +1 -1
- package/dist/account/AccountInfo.mjs +5 -2
- package/dist/account/AccountInfo.mjs.map +1 -1
- package/dist/account/AuthToken.mjs +1 -1
- package/dist/account/CcsCredential.mjs +1 -1
- package/dist/account/ClientInfo.mjs +1 -1
- package/dist/account/TokenClaims.mjs +1 -1
- package/dist/authority/Authority.mjs +1 -1
- package/dist/authority/AuthorityFactory.mjs +1 -1
- package/dist/authority/AuthorityMetadata.mjs +1 -1
- package/dist/authority/AuthorityOptions.mjs +1 -1
- package/dist/authority/AuthorityType.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist/authority/ProtocolMode.mjs +1 -1
- package/dist/authority/RegionDiscovery.mjs +1 -1
- package/dist/cache/CacheManager.d.ts +15 -20
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +37 -97
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccountEntity.d.ts +2 -14
- package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccountEntity.mjs +6 -34
- package/dist/cache/entities/AccountEntity.mjs.map +1 -1
- package/dist/cache/entities/CredentialEntity.d.ts +1 -1
- package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
- package/dist/cache/interface/ICacheManager.d.ts +2 -10
- package/dist/cache/interface/ICacheManager.d.ts.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/utils/CacheHelpers.d.ts +4 -13
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +6 -71
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +1 -1
- package/dist/client/BaseClient.mjs +1 -1
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +2 -3
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.mjs +2 -2
- package/dist/client/SilentFlowClient.mjs.map +1 -1
- package/dist/config/ClientConfiguration.mjs +1 -1
- package/dist/constants/AADServerParamKeys.mjs +1 -1
- package/dist/crypto/ICrypto.mjs +1 -1
- package/dist/crypto/JoseHeader.mjs +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +1 -1
- package/dist/error/AuthError.mjs +1 -1
- package/dist/error/AuthErrorCodes.mjs +1 -1
- package/dist/error/CacheError.mjs +1 -1
- package/dist/error/CacheErrorCodes.mjs +1 -1
- package/dist/error/ClientAuthError.mjs +1 -1
- package/dist/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist/error/ClientConfigurationError.mjs +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist/error/JoseHeaderError.mjs +1 -1
- package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist/error/NetworkError.mjs +1 -1
- package/dist/error/ServerError.mjs +1 -1
- package/dist/index-browser.mjs +1 -1
- package/dist/index-node.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/logger/Logger.mjs +1 -1
- package/dist/network/INetworkModule.mjs +1 -1
- package/dist/network/RequestThumbprint.mjs +1 -1
- package/dist/network/ThrottlingUtils.mjs +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/protocol/Authorize.mjs +2 -2
- package/dist/protocol/Authorize.mjs.map +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/RequestParameterBuilder.mjs +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +3 -3
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.d.ts +3 -0
- package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +11 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist/url/UrlString.mjs +1 -1
- package/dist/utils/ClientAssertionUtils.mjs +1 -1
- package/dist/utils/Constants.d.ts +0 -1
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +1 -3
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.mjs +1 -1
- package/dist/utils/ProtocolUtils.mjs +1 -1
- package/dist/utils/StringUtils.mjs +1 -1
- package/dist/utils/TimeUtils.d.ts +7 -0
- package/dist/utils/TimeUtils.d.ts.map +1 -1
- package/dist/utils/TimeUtils.mjs +12 -2
- package/dist/utils/TimeUtils.mjs.map +1 -1
- package/dist/utils/UrlUtils.mjs +1 -1
- package/lib/index-browser.cjs +2 -2
- package/lib/{index-node-C5c-lcoe.js → index-node-CtW_2rqJ.js} +465 -595
- package/lib/index-node-CtW_2rqJ.js.map +1 -0
- package/lib/index-node.cjs +2 -2
- package/lib/index.cjs +2 -2
- package/lib/types/account/AccountInfo.d.ts +2 -1
- package/lib/types/account/AccountInfo.d.ts.map +1 -1
- package/lib/types/cache/CacheManager.d.ts +15 -20
- package/lib/types/cache/CacheManager.d.ts.map +1 -1
- package/lib/types/cache/entities/AccountEntity.d.ts +2 -14
- package/lib/types/cache/entities/AccountEntity.d.ts.map +1 -1
- package/lib/types/cache/entities/CredentialEntity.d.ts +1 -1
- package/lib/types/cache/entities/CredentialEntity.d.ts.map +1 -1
- package/lib/types/cache/interface/ICacheManager.d.ts +2 -10
- package/lib/types/cache/interface/ICacheManager.d.ts.map +1 -1
- package/lib/types/cache/utils/CacheHelpers.d.ts +4 -13
- package/lib/types/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/lib/types/client/RefreshTokenClient.d.ts.map +1 -1
- package/lib/types/packageMetadata.d.ts +1 -1
- package/lib/types/packageMetadata.d.ts.map +1 -1
- package/lib/types/response/ResponseHandler.d.ts.map +1 -1
- package/lib/types/telemetry/performance/PerformanceEvent.d.ts +3 -0
- package/lib/types/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/lib/types/utils/Constants.d.ts +0 -1
- package/lib/types/utils/Constants.d.ts.map +1 -1
- package/lib/types/utils/TimeUtils.d.ts +7 -0
- package/lib/types/utils/TimeUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/account/AccountInfo.ts +16 -2
- package/src/cache/CacheManager.ts +59 -125
- package/src/cache/entities/AccountEntity.ts +7 -38
- package/src/cache/entities/CredentialEntity.ts +1 -1
- package/src/cache/interface/ICacheManager.ts +2 -15
- package/src/cache/utils/CacheHelpers.ts +11 -83
- package/src/client/RefreshTokenClient.ts +1 -2
- package/src/client/SilentFlowClient.ts +2 -2
- package/src/packageMetadata.ts +1 -1
- package/src/protocol/Authorize.ts +1 -1
- package/src/response/ResponseHandler.ts +3 -1
- package/src/telemetry/performance/PerformanceEvent.ts +16 -0
- package/src/utils/Constants.ts +0 -2
- package/src/utils/TimeUtils.ts +15 -0
- package/lib/index-node-C5c-lcoe.js.map +0 -1
|
@@ -18,6 +18,7 @@ export type AccountInfo = {
|
|
|
18
18
|
tenantId: string;
|
|
19
19
|
username: string;
|
|
20
20
|
localAccountId: string;
|
|
21
|
+
loginHint?: string;
|
|
21
22
|
name?: string;
|
|
22
23
|
idToken?: string;
|
|
23
24
|
idTokenClaims?: TokenClaims & {
|
|
@@ -30,7 +31,7 @@ export type AccountInfo = {
|
|
|
30
31
|
/**
|
|
31
32
|
* Account details that vary across tenants for the same user
|
|
32
33
|
*/
|
|
33
|
-
export type TenantProfile = Pick<AccountInfo, "tenantId" | "localAccountId" | "name"> & {
|
|
34
|
+
export type TenantProfile = Pick<AccountInfo, "tenantId" | "localAccountId" | "name" | "username" | "loginHint"> & {
|
|
34
35
|
/**
|
|
35
36
|
* - isHomeTenant - True if this is the home tenant profile of the account, false if it's a guest tenant profile
|
|
36
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountInfo.d.ts","sourceRoot":"","sources":["../../src/account/AccountInfo.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,WAAW,GAAG;QAC1B,CAAC,GAAG,EAAE,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,EAAE,GACR,MAAM,GACN,SAAS,GACT,OAAO,CAAC;KACjB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC5B,WAAW,EACX,UAAU,GAAG,gBAAgB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"AccountInfo.d.ts","sourceRoot":"","sources":["../../src/account/AccountInfo.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,WAAW,GAAG;QAC1B,CAAC,GAAG,EAAE,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,EAAE,GACR,MAAM,GACN,SAAS,GACT,OAAO,CAAC;KACjB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC5B,WAAW,EACX,UAAU,GAAG,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CACpE,GAAG;IACA;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACrC,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,WAAW,GAC5B,aAAa,CAsCf;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC1C,eAAe,EAAE,WAAW,EAC5B,aAAa,CAAC,EAAE,aAAa,EAC7B,aAAa,CAAC,EAAE,WAAW,EAC3B,aAAa,CAAC,EAAE,MAAM,GACvB,WAAW,CAgCb"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v15.
|
|
1
|
+
/*! @azure/msal-common v15.11.0 2025-08-12 */
|
|
2
2
|
'use strict';
|
|
3
3
|
/*
|
|
4
4
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -25,7 +25,7 @@ function tenantIdMatchesHomeTenant(tenantId, homeAccountId) {
|
|
|
25
25
|
*/
|
|
26
26
|
function buildTenantProfile(homeAccountId, localAccountId, tenantId, idTokenClaims) {
|
|
27
27
|
if (idTokenClaims) {
|
|
28
|
-
const { oid, sub, tid, name, tfp, acr } = idTokenClaims;
|
|
28
|
+
const { oid, sub, tid, name, tfp, acr, preferred_username, upn, login_hint, } = idTokenClaims;
|
|
29
29
|
/**
|
|
30
30
|
* Since there is no way to determine if the authority is AAD or B2C, we exhaust all the possible claims that can serve as tenant ID with the following precedence:
|
|
31
31
|
* tid - TenantID claim that identifies the tenant that issued the token in AAD. Expected in all AAD ID tokens, not present in B2C ID Tokens.
|
|
@@ -37,6 +37,8 @@ function buildTenantProfile(homeAccountId, localAccountId, tenantId, idTokenClai
|
|
|
37
37
|
tenantId: tenantId,
|
|
38
38
|
localAccountId: oid || sub || "",
|
|
39
39
|
name: name,
|
|
40
|
+
username: preferred_username || upn || "",
|
|
41
|
+
loginHint: login_hint,
|
|
40
42
|
isHomeTenant: tenantIdMatchesHomeTenant(tenantId, homeAccountId),
|
|
41
43
|
};
|
|
42
44
|
}
|
|
@@ -44,6 +46,7 @@ function buildTenantProfile(homeAccountId, localAccountId, tenantId, idTokenClai
|
|
|
44
46
|
return {
|
|
45
47
|
tenantId,
|
|
46
48
|
localAccountId,
|
|
49
|
+
username: "",
|
|
47
50
|
isHomeTenant: tenantIdMatchesHomeTenant(tenantId, homeAccountId),
|
|
48
51
|
};
|
|
49
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountInfo.mjs","sources":["../../src/account/AccountInfo.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;
|
|
1
|
+
{"version":3,"file":"AccountInfo.mjs","sources":["../../src/account/AccountInfo.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AA2DH;;;;;AAKG;AACa,SAAA,yBAAyB,CACrC,QAAiB,EACjB,aAAsB,EAAA;IAEtB,QACI,CAAC,CAAC,QAAQ;AACV,QAAA,CAAC,CAAC,aAAa;QACf,QAAQ,KAAK,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC1C;AACN,CAAC;AAED;;;;;;;AAOG;AACG,SAAU,kBAAkB,CAC9B,aAAqB,EACrB,cAAsB,EACtB,QAAgB,EAChB,aAA2B,EAAA;AAE3B,IAAA,IAAI,aAAa,EAAE;QACf,MAAM,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,GAAG,EACH,GAAG,EACH,kBAAkB,EAClB,GAAG,EACH,UAAU,GACb,GAAG,aAAa,CAAC;AAElB;;;;;AAKG;QACH,MAAM,QAAQ,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QAEzC,OAAO;AACH,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,cAAc,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE;AAChC,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,kBAAkB,IAAI,GAAG,IAAI,EAAE;AACzC,YAAA,SAAS,EAAE,UAAU;AACrB,YAAA,YAAY,EAAE,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC;SACnE,CAAC;AACL,KAAA;AAAM,SAAA;QACH,OAAO;YACH,QAAQ;YACR,cAAc;AACd,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,YAAY,EAAE,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC;SACnE,CAAC;AACL,KAAA;AACL,CAAC;AAED;;;;;AAKG;AACG,SAAU,8BAA8B,CAC1C,eAA4B,EAC5B,aAA6B,EAC7B,aAA2B,EAC3B,aAAsB,EAAA;IAEtB,IAAI,kBAAkB,GAAG,eAAe,CAAC;;AAEzC,IAAA,IAAI,aAAa,EAAE;;QAEf,MAAM,EAAE,YAAY,EAAE,GAAG,qBAAqB,EAAE,GAAG,aAAa,CAAC;QACjE,kBAAkB,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,qBAAqB,EAAE,CAAC;AACzE,KAAA;;AAGD,IAAA,IAAI,aAAa,EAAE;;;QAGf,MAAM,EAAE,YAAY,EAAE,GAAG,0BAA0B,EAAE,GACjD,kBAAkB,CACd,eAAe,CAAC,aAAa,EAC7B,eAAe,CAAC,cAAc,EAC9B,eAAe,CAAC,QAAQ,EACxB,aAAa,CAChB,CAAC;AAEN,QAAA,kBAAkB,GAAG;AACjB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,0BAA0B;AAC7B,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,OAAO,EAAE,aAAa;SACzB,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC7B,KAAA;AAED,IAAA,OAAO,kBAAkB,CAAC;AAC9B;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v15.
|
|
1
|
+
/*! @azure/msal-common v15.11.0 2025-08-12 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
4
4
|
import { tokenParsingError, nullOrEmptyToken, maxAgeTranspired } from '../error/ClientAuthErrorCodes.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v15.
|
|
1
|
+
/*! @azure/msal-common v15.11.0 2025-08-12 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { Constants, HttpStatus, RegionDiscoverySources } from '../utils/Constants.mjs';
|
|
4
4
|
import { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.mjs';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AccountFilter, CredentialFilter, ValidCredentialType, AppMetadataFilter, AppMetadataCache, TokenKeys } from "./utils/CacheTypes.js";
|
|
2
2
|
import { CacheRecord } from "./entities/CacheRecord.js";
|
|
3
|
+
import { CredentialEntity } from "./entities/CredentialEntity.js";
|
|
3
4
|
import { AccountEntity } from "./entities/AccountEntity.js";
|
|
4
5
|
import { AccessTokenEntity } from "./entities/AccessTokenEntity.js";
|
|
5
6
|
import { IdTokenEntity } from "./entities/IdTokenEntity.js";
|
|
@@ -135,6 +136,16 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
135
136
|
* Function which retrieves all token keys from the cache
|
|
136
137
|
*/
|
|
137
138
|
abstract getTokenKeys(): TokenKeys;
|
|
139
|
+
/**
|
|
140
|
+
* Returns credential cache key from the entity
|
|
141
|
+
* @param credential
|
|
142
|
+
*/
|
|
143
|
+
abstract generateCredentialKey(credential: CredentialEntity): string;
|
|
144
|
+
/**
|
|
145
|
+
* Returns the account cache key from the account info
|
|
146
|
+
* @param account
|
|
147
|
+
*/
|
|
148
|
+
abstract generateAccountKey(account: AccountInfo): string;
|
|
138
149
|
/**
|
|
139
150
|
* Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.
|
|
140
151
|
* @param accountFilter - (Optional) filter to narrow down the accounts returned
|
|
@@ -181,19 +192,6 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
181
192
|
* @param accountFilter - An object containing Account properties to filter by
|
|
182
193
|
*/
|
|
183
194
|
getAccountsFilteredBy(accountFilter: AccountFilter, correlationId: string): AccountEntity[];
|
|
184
|
-
/**
|
|
185
|
-
* Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided
|
|
186
|
-
* @param key
|
|
187
|
-
* @param homeAccountId
|
|
188
|
-
* @param tenantId
|
|
189
|
-
* @returns
|
|
190
|
-
*/
|
|
191
|
-
isAccountKey(key: string, homeAccountId?: string, tenantId?: string): boolean;
|
|
192
|
-
/**
|
|
193
|
-
* Returns true if the given key matches our credential key schema.
|
|
194
|
-
* @param key
|
|
195
|
-
*/
|
|
196
|
-
isCredentialKey(key: string): boolean;
|
|
197
195
|
/**
|
|
198
196
|
* Returns whether or not the given credential entity matches the filter
|
|
199
197
|
* @param entity
|
|
@@ -219,12 +217,12 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
219
217
|
* Removes the account and related tokens for a given account key
|
|
220
218
|
* @param account
|
|
221
219
|
*/
|
|
222
|
-
removeAccount(
|
|
220
|
+
removeAccount(account: AccountInfo, correlationId: string): void;
|
|
223
221
|
/**
|
|
224
222
|
* Removes credentials associated with the provided account
|
|
225
223
|
* @param account
|
|
226
224
|
*/
|
|
227
|
-
removeAccountContext(account:
|
|
225
|
+
removeAccountContext(account: AccountInfo, correlationId: string): void;
|
|
228
226
|
/**
|
|
229
227
|
* Removes accessToken from the cache
|
|
230
228
|
* @param key
|
|
@@ -235,11 +233,6 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
235
233
|
* Removes all app metadata objects from cache.
|
|
236
234
|
*/
|
|
237
235
|
removeAppMetadata(correlationId: string): boolean;
|
|
238
|
-
/**
|
|
239
|
-
* Retrieve AccountEntity from cache
|
|
240
|
-
* @param account
|
|
241
|
-
*/
|
|
242
|
-
readAccountFromCache(account: AccountInfo, correlationId: string): AccountEntity | null;
|
|
243
236
|
/**
|
|
244
237
|
* Retrieve IdTokenEntity from cache
|
|
245
238
|
* @param account {AccountInfo}
|
|
@@ -471,5 +464,7 @@ export declare class DefaultStorageClass extends CacheManager {
|
|
|
471
464
|
getKeys(): string[];
|
|
472
465
|
getAccountKeys(): string[];
|
|
473
466
|
getTokenKeys(): TokenKeys;
|
|
467
|
+
generateCredentialKey(): string;
|
|
468
|
+
generateAccountKey(): string;
|
|
474
469
|
}
|
|
475
470
|
//# sourceMappingURL=CacheManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EAEZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
/*! @azure/msal-common v15.
|
|
1
|
+
/*! @azure/msal-common v15.11.0 2025-08-12 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import {
|
|
4
|
-
import { generateCredentialKey } from './utils/CacheHelpers.mjs';
|
|
3
|
+
import { CredentialType, AuthenticationScheme, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.mjs';
|
|
5
4
|
import { ScopeSet } from '../request/ScopeSet.mjs';
|
|
6
|
-
import { AccountEntity } from './entities/AccountEntity.mjs';
|
|
7
5
|
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
8
6
|
import { updateAccountTenantProfileData } from '../account/AccountInfo.mjs';
|
|
9
7
|
import { extractTokenClaims } from '../account/AuthToken.mjs';
|
|
@@ -41,6 +39,11 @@ class CacheManager {
|
|
|
41
39
|
* Gets first tenanted AccountInfo object found based on provided filters
|
|
42
40
|
*/
|
|
43
41
|
getAccountInfoFilteredBy(accountFilter, correlationId) {
|
|
42
|
+
if (Object.keys(accountFilter).length === 0 ||
|
|
43
|
+
Object.values(accountFilter).every((value) => !value)) {
|
|
44
|
+
this.commonLogger.warning("getAccountInfoFilteredBy: Account filter is empty or invalid, returning null");
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
44
47
|
const allAccounts = this.getAllAccounts(accountFilter, correlationId);
|
|
45
48
|
if (allAccounts.length > 1) {
|
|
46
49
|
// If one or more accounts are found, prioritize accounts that have an ID token
|
|
@@ -250,10 +253,6 @@ class CacheManager {
|
|
|
250
253
|
const allAccountKeys = this.getAccountKeys();
|
|
251
254
|
const matchingAccounts = [];
|
|
252
255
|
allAccountKeys.forEach((cacheKey) => {
|
|
253
|
-
if (!this.isAccountKey(cacheKey, accountFilter.homeAccountId)) {
|
|
254
|
-
// Don't parse value if the key doesn't match the account filters
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
256
|
const entity = this.getAccount(cacheKey, correlationId);
|
|
258
257
|
// Match base account fields
|
|
259
258
|
if (!entity) {
|
|
@@ -299,64 +298,6 @@ class CacheManager {
|
|
|
299
298
|
});
|
|
300
299
|
return matchingAccounts;
|
|
301
300
|
}
|
|
302
|
-
/**
|
|
303
|
-
* Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided
|
|
304
|
-
* @param key
|
|
305
|
-
* @param homeAccountId
|
|
306
|
-
* @param tenantId
|
|
307
|
-
* @returns
|
|
308
|
-
*/
|
|
309
|
-
isAccountKey(key, homeAccountId, tenantId) {
|
|
310
|
-
if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 3) {
|
|
311
|
-
// Account cache keys contain 3 items separated by '-' (each item may also contain '-')
|
|
312
|
-
return false;
|
|
313
|
-
}
|
|
314
|
-
if (homeAccountId &&
|
|
315
|
-
!key.toLowerCase().includes(homeAccountId.toLowerCase())) {
|
|
316
|
-
return false;
|
|
317
|
-
}
|
|
318
|
-
if (tenantId && !key.toLowerCase().includes(tenantId.toLowerCase())) {
|
|
319
|
-
return false;
|
|
320
|
-
}
|
|
321
|
-
// Do not check environment as aliasing can cause false negatives
|
|
322
|
-
return true;
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Returns true if the given key matches our credential key schema.
|
|
326
|
-
* @param key
|
|
327
|
-
*/
|
|
328
|
-
isCredentialKey(key) {
|
|
329
|
-
if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 6) {
|
|
330
|
-
// Credential cache keys contain 6 items separated by '-' (each item may also contain '-')
|
|
331
|
-
return false;
|
|
332
|
-
}
|
|
333
|
-
const lowerCaseKey = key.toLowerCase();
|
|
334
|
-
// Credential keys must indicate what credential type they represent
|
|
335
|
-
if (lowerCaseKey.indexOf(CredentialType.ID_TOKEN.toLowerCase()) ===
|
|
336
|
-
-1 &&
|
|
337
|
-
lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) ===
|
|
338
|
-
-1 &&
|
|
339
|
-
lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) === -1 &&
|
|
340
|
-
lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) ===
|
|
341
|
-
-1) {
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
|
-
if (lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) >
|
|
345
|
-
-1) {
|
|
346
|
-
// Refresh tokens must contain the client id or family id
|
|
347
|
-
const clientIdValidation = `${CredentialType.REFRESH_TOKEN}${Separators.CACHE_KEY_SEPARATOR}${this.clientId}${Separators.CACHE_KEY_SEPARATOR}`;
|
|
348
|
-
const familyIdValidation = `${CredentialType.REFRESH_TOKEN}${Separators.CACHE_KEY_SEPARATOR}${THE_FAMILY_ID}${Separators.CACHE_KEY_SEPARATOR}`;
|
|
349
|
-
if (lowerCaseKey.indexOf(clientIdValidation.toLowerCase()) === -1 &&
|
|
350
|
-
lowerCaseKey.indexOf(familyIdValidation.toLowerCase()) === -1) {
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
else if (lowerCaseKey.indexOf(this.clientId.toLowerCase()) === -1) {
|
|
355
|
-
// Tokens must contain the clientId
|
|
356
|
-
return false;
|
|
357
|
-
}
|
|
358
|
-
return true;
|
|
359
|
-
}
|
|
360
301
|
/**
|
|
361
302
|
* Returns whether or not the given credential entity matches the filter
|
|
362
303
|
* @param entity
|
|
@@ -481,22 +422,26 @@ class CacheManager {
|
|
|
481
422
|
* Removes all accounts and related tokens from cache.
|
|
482
423
|
*/
|
|
483
424
|
removeAllAccounts(correlationId) {
|
|
484
|
-
const
|
|
485
|
-
|
|
486
|
-
this.removeAccount(
|
|
425
|
+
const accounts = this.getAllAccounts({}, correlationId);
|
|
426
|
+
accounts.forEach((account) => {
|
|
427
|
+
this.removeAccount(account, correlationId);
|
|
487
428
|
});
|
|
488
429
|
}
|
|
489
430
|
/**
|
|
490
431
|
* Removes the account and related tokens for a given account key
|
|
491
432
|
* @param account
|
|
492
433
|
*/
|
|
493
|
-
removeAccount(
|
|
494
|
-
const account = this.getAccount(accountKey, correlationId);
|
|
495
|
-
if (!account) {
|
|
496
|
-
return;
|
|
497
|
-
}
|
|
434
|
+
removeAccount(account, correlationId) {
|
|
498
435
|
this.removeAccountContext(account, correlationId);
|
|
499
|
-
this.
|
|
436
|
+
const accountKeys = this.getAccountKeys();
|
|
437
|
+
const keyFilter = (key) => {
|
|
438
|
+
return (key.includes(account.homeAccountId) &&
|
|
439
|
+
key.includes(account.environment));
|
|
440
|
+
};
|
|
441
|
+
accountKeys.filter(keyFilter).forEach((key) => {
|
|
442
|
+
this.removeItem(key, correlationId);
|
|
443
|
+
this.performanceClient.incrementFields({ accountsRemoved: 1 }, correlationId);
|
|
444
|
+
});
|
|
500
445
|
}
|
|
501
446
|
/**
|
|
502
447
|
* Removes credentials associated with the provided account
|
|
@@ -504,21 +449,18 @@ class CacheManager {
|
|
|
504
449
|
*/
|
|
505
450
|
removeAccountContext(account, correlationId) {
|
|
506
451
|
const allTokenKeys = this.getTokenKeys();
|
|
507
|
-
const
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
452
|
+
const keyFilter = (key) => {
|
|
453
|
+
return (key.includes(account.homeAccountId) &&
|
|
454
|
+
key.includes(account.environment));
|
|
455
|
+
};
|
|
456
|
+
allTokenKeys.idToken.filter(keyFilter).forEach((key) => {
|
|
457
|
+
this.removeIdToken(key, correlationId);
|
|
512
458
|
});
|
|
513
|
-
allTokenKeys.accessToken.forEach((key) => {
|
|
514
|
-
|
|
515
|
-
this.removeAccessToken(key, correlationId);
|
|
516
|
-
}
|
|
459
|
+
allTokenKeys.accessToken.filter(keyFilter).forEach((key) => {
|
|
460
|
+
this.removeAccessToken(key, correlationId);
|
|
517
461
|
});
|
|
518
|
-
allTokenKeys.refreshToken.forEach((key) => {
|
|
519
|
-
|
|
520
|
-
this.removeRefreshToken(key, correlationId);
|
|
521
|
-
}
|
|
462
|
+
allTokenKeys.refreshToken.filter(keyFilter).forEach((key) => {
|
|
463
|
+
this.removeRefreshToken(key, correlationId);
|
|
522
464
|
});
|
|
523
465
|
}
|
|
524
466
|
/**
|
|
@@ -558,14 +500,6 @@ class CacheManager {
|
|
|
558
500
|
});
|
|
559
501
|
return true;
|
|
560
502
|
}
|
|
561
|
-
/**
|
|
562
|
-
* Retrieve AccountEntity from cache
|
|
563
|
-
* @param account
|
|
564
|
-
*/
|
|
565
|
-
readAccountFromCache(account, correlationId) {
|
|
566
|
-
const accountKey = AccountEntity.generateAccountCacheKey(account);
|
|
567
|
-
return this.getAccount(accountKey, correlationId);
|
|
568
|
-
}
|
|
569
503
|
/**
|
|
570
504
|
* Retrieve IdTokenEntity from cache
|
|
571
505
|
* @param account {AccountInfo}
|
|
@@ -735,7 +669,7 @@ class CacheManager {
|
|
|
735
669
|
else if (numAccessTokens > 1) {
|
|
736
670
|
this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them", correlationId);
|
|
737
671
|
accessTokens.forEach((accessToken) => {
|
|
738
|
-
this.removeAccessToken(generateCredentialKey(accessToken), correlationId);
|
|
672
|
+
this.removeAccessToken(this.generateCredentialKey(accessToken), correlationId);
|
|
739
673
|
});
|
|
740
674
|
this.performanceClient.addFields({ multiMatchedAT: accessTokens.length }, correlationId);
|
|
741
675
|
return null;
|
|
@@ -1176,6 +1110,12 @@ class DefaultStorageClass extends CacheManager {
|
|
|
1176
1110
|
getTokenKeys() {
|
|
1177
1111
|
throw createClientAuthError(methodNotImplemented);
|
|
1178
1112
|
}
|
|
1113
|
+
generateCredentialKey() {
|
|
1114
|
+
throw createClientAuthError(methodNotImplemented);
|
|
1115
|
+
}
|
|
1116
|
+
generateAccountKey() {
|
|
1117
|
+
throw createClientAuthError(methodNotImplemented);
|
|
1118
|
+
}
|
|
1179
1119
|
}
|
|
1180
1120
|
|
|
1181
1121
|
export { CacheManager, DefaultStorageClass };
|