@azure/msal-common 16.11.3 → 16.12.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.mjs +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.mjs +28 -9
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/utils/AccountEntityUtils.mjs +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +15 -2
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +8 -2
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +8 -2
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.mjs +1 -1
- package/dist/config/ClientConfiguration.mjs +1 -1
- package/dist/constants/AADServerParamKeys.mjs +4 -3
- package/dist/constants/AADServerParamKeys.mjs.map +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/PlatformBrokerError.mjs +1 -1
- package/dist/error/ServerError.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 +4 -1
- package/dist/network/RequestThumbprint.mjs.map +1 -1
- package/dist/network/ThrottlingUtils.mjs +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/protocol/Authorize.mjs +1 -1
- package/dist/protocol/Token.mjs +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/BaseAuthRequest.mjs +1 -1
- package/dist/request/BaseAuthRequest.mjs.map +1 -1
- package/dist/request/RequestParameterBuilder.mjs +94 -26
- package/dist/request/RequestParameterBuilder.mjs.map +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/response/ResponseHandler.mjs +11 -3
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceEvents.mjs +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.mjs +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.mjs +1 -1
- package/dist/utils/UrlUtils.mjs +1 -1
- package/dist-browser/account/AccountInfo.mjs +1 -1
- package/dist-browser/account/AuthToken.mjs +1 -1
- package/dist-browser/account/CcsCredential.mjs +1 -1
- package/dist-browser/account/ClientInfo.mjs +1 -1
- package/dist-browser/account/TokenClaims.mjs +1 -1
- package/dist-browser/authority/Authority.mjs +1 -1
- package/dist-browser/authority/AuthorityFactory.mjs +1 -1
- package/dist-browser/authority/AuthorityMetadata.mjs +1 -1
- package/dist-browser/authority/AuthorityOptions.mjs +1 -1
- package/dist-browser/authority/AuthorityType.mjs +1 -1
- package/dist-browser/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist-browser/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist-browser/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist-browser/authority/ProtocolMode.mjs +1 -1
- package/dist-browser/authority/RegionDiscovery.mjs +1 -1
- package/dist-browser/cache/CacheManager.mjs +28 -9
- package/dist-browser/cache/CacheManager.mjs.map +1 -1
- package/dist-browser/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist-browser/cache/utils/AccountEntityUtils.mjs +1 -1
- package/dist-browser/cache/utils/CacheHelpers.mjs +15 -2
- package/dist-browser/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist-browser/client/AuthorizationCodeClient.mjs +8 -2
- package/dist-browser/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist-browser/client/RefreshTokenClient.mjs +8 -2
- package/dist-browser/client/RefreshTokenClient.mjs.map +1 -1
- package/dist-browser/client/SilentFlowClient.mjs +1 -1
- package/dist-browser/config/ClientConfiguration.mjs +1 -1
- package/dist-browser/constants/AADServerParamKeys.mjs +4 -3
- package/dist-browser/constants/AADServerParamKeys.mjs.map +1 -1
- package/dist-browser/crypto/ICrypto.mjs +1 -1
- package/dist-browser/crypto/JoseHeader.mjs +1 -1
- package/dist-browser/crypto/PopTokenGenerator.mjs +1 -1
- package/dist-browser/error/AuthError.mjs +1 -1
- package/dist-browser/error/AuthErrorCodes.mjs +1 -1
- package/dist-browser/error/CacheError.mjs +1 -1
- package/dist-browser/error/CacheErrorCodes.mjs +1 -1
- package/dist-browser/error/ClientAuthError.mjs +1 -1
- package/dist-browser/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist-browser/error/ClientConfigurationError.mjs +1 -1
- package/dist-browser/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist-browser/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist-browser/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist-browser/error/JoseHeaderError.mjs +1 -1
- package/dist-browser/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist-browser/error/NetworkError.mjs +1 -1
- package/dist-browser/error/PlatformBrokerError.mjs +1 -1
- package/dist-browser/error/ServerError.mjs +1 -1
- package/dist-browser/index-browser.mjs +1 -1
- package/dist-browser/index.mjs +1 -1
- package/dist-browser/log-strings-mapping.json +2 -2
- package/dist-browser/logger/Logger.mjs +1 -1
- package/dist-browser/network/INetworkModule.mjs +1 -1
- package/dist-browser/network/RequestThumbprint.mjs +4 -1
- package/dist-browser/network/RequestThumbprint.mjs.map +1 -1
- package/dist-browser/network/ThrottlingUtils.mjs +1 -1
- package/dist-browser/packageMetadata.mjs +2 -2
- package/dist-browser/protocol/Authorize.mjs +1 -1
- package/dist-browser/protocol/Token.mjs +1 -1
- package/dist-browser/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist-browser/request/BaseAuthRequest.mjs +1 -1
- package/dist-browser/request/BaseAuthRequest.mjs.map +1 -1
- package/dist-browser/request/RequestParameterBuilder.mjs +94 -26
- package/dist-browser/request/RequestParameterBuilder.mjs.map +1 -1
- package/dist-browser/request/ScopeSet.mjs +1 -1
- package/dist-browser/response/ResponseHandler.mjs +11 -3
- package/dist-browser/response/ResponseHandler.mjs.map +1 -1
- package/dist-browser/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist-browser/telemetry/performance/PerformanceEvents.mjs +1 -1
- package/dist-browser/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist-browser/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist-browser/url/UrlString.mjs +1 -1
- package/dist-browser/utils/ClientAssertionUtils.mjs +1 -1
- package/dist-browser/utils/Constants.mjs +1 -1
- package/dist-browser/utils/FunctionWrappers.mjs +1 -1
- package/dist-browser/utils/ProtocolUtils.mjs +1 -1
- package/dist-browser/utils/StringUtils.mjs +1 -1
- package/dist-browser/utils/TimeUtils.mjs +1 -1
- package/dist-browser/utils/UrlUtils.mjs +1 -1
- package/lib/index-browser.cjs +2 -2
- package/lib/{index-node-JVUj78ag.js → index-node-3p7V__ym.js} +158 -35
- package/lib/index-node-3p7V__ym.js.map +1 -0
- package/lib/index-node.cjs +2 -2
- package/lib/index.cjs +2 -2
- package/package.json +1 -1
- package/src/cache/CacheManager.ts +54 -16
- package/src/cache/interface/ICacheManager.ts +7 -4
- package/src/cache/utils/CacheHelpers.ts +17 -0
- package/src/client/AuthorizationCodeClient.ts +13 -0
- package/src/client/RefreshTokenClient.ts +13 -0
- package/src/constants/AADServerParamKeys.ts +1 -0
- package/src/network/RequestThumbprint.ts +5 -0
- package/src/packageMetadata.ts +1 -1
- package/src/request/BaseAuthRequest.ts +4 -0
- package/src/request/RequestParameterBuilder.ts +119 -26
- package/src/response/ResponseHandler.ts +13 -1
- package/src/telemetry/performance/PerformanceEvent.ts +5 -0
- package/types/cache/CacheManager.d.ts +12 -7
- package/types/cache/CacheManager.d.ts.map +1 -1
- package/types/cache/interface/ICacheManager.d.ts +6 -4
- package/types/cache/interface/ICacheManager.d.ts.map +1 -1
- package/types/cache/utils/CacheHelpers.d.ts +7 -0
- package/types/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/types/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/types/client/RefreshTokenClient.d.ts.map +1 -1
- package/types/constants/AADServerParamKeys.d.ts +1 -0
- package/types/constants/AADServerParamKeys.d.ts.map +1 -1
- package/types/network/RequestThumbprint.d.ts +1 -0
- package/types/network/RequestThumbprint.d.ts.map +1 -1
- package/types/packageMetadata.d.ts +1 -1
- package/types/request/BaseAuthRequest.d.ts +4 -0
- package/types/request/BaseAuthRequest.d.ts.map +1 -1
- package/types/request/RequestParameterBuilder.d.ts +22 -4
- package/types/request/RequestParameterBuilder.d.ts.map +1 -1
- package/types/response/ResponseHandler.d.ts.map +1 -1
- package/types/telemetry/performance/PerformanceEvent.d.ts +4 -0
- package/types/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/lib/index-node-JVUj78ag.js.map +0 -1
|
@@ -38,6 +38,7 @@ import { ServerTelemetryEntity } from "./entities/ServerTelemetryEntity.js";
|
|
|
38
38
|
import { ThrottlingEntity } from "./entities/ThrottlingEntity.js";
|
|
39
39
|
import { ICacheManager } from "./interface/ICacheManager.js";
|
|
40
40
|
import * as AccountEntityUtils from "./utils/AccountEntityUtils.js";
|
|
41
|
+
import * as CacheHelpers from "./utils/CacheHelpers.js";
|
|
41
42
|
import {
|
|
42
43
|
AccountFilter,
|
|
43
44
|
AppMetadataCache,
|
|
@@ -125,14 +126,17 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
125
126
|
): AccessTokenEntity | null;
|
|
126
127
|
|
|
127
128
|
/**
|
|
128
|
-
*
|
|
129
|
-
* @param accessToken
|
|
130
|
-
* @param correlationId
|
|
129
|
+
* Set accessToken entity to the platform cache
|
|
130
|
+
* @param accessToken - the access token entity to cache
|
|
131
|
+
* @param correlationId - unique identifier for the request
|
|
132
|
+
* @param kmsi - keep me signed in flag
|
|
133
|
+
* @param additionalCacheKeyHash - hash of additionalCacheKeyComponents for credential key generation
|
|
131
134
|
*/
|
|
132
135
|
abstract setAccessTokenCredential(
|
|
133
136
|
accessToken: AccessTokenEntity,
|
|
134
137
|
correlationId: string,
|
|
135
|
-
kmsi: boolean
|
|
138
|
+
kmsi: boolean,
|
|
139
|
+
additionalCacheKeyHash?: string
|
|
136
140
|
): Promise<void>;
|
|
137
141
|
|
|
138
142
|
/**
|
|
@@ -268,8 +272,12 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
268
272
|
/**
|
|
269
273
|
* Returns credential cache key from the entity
|
|
270
274
|
* @param credential
|
|
275
|
+
* @param additionalCacheKeyHash - optional precomputed hash of additionalCacheKeyComponents
|
|
271
276
|
*/
|
|
272
|
-
abstract generateCredentialKey(
|
|
277
|
+
abstract generateCredentialKey(
|
|
278
|
+
credential: CredentialEntity,
|
|
279
|
+
additionalCacheKeyHash?: string
|
|
280
|
+
): string;
|
|
273
281
|
|
|
274
282
|
/**
|
|
275
283
|
* Returns the account cache key from the account info
|
|
@@ -673,13 +681,25 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
673
681
|
|
|
674
682
|
/**
|
|
675
683
|
* saves access token credential
|
|
676
|
-
* @param credential
|
|
684
|
+
* @param credential - the access token entity to save
|
|
685
|
+
* @param correlationId - unique identifier for the request
|
|
686
|
+
* @param kmsi - keep me signed in flag
|
|
677
687
|
*/
|
|
678
688
|
private async saveAccessToken(
|
|
679
689
|
credential: AccessTokenEntity,
|
|
680
690
|
correlationId: string,
|
|
681
691
|
kmsi: boolean
|
|
682
692
|
): Promise<void> {
|
|
693
|
+
// Compute hash from components on the entity itself — no need to thread externally.
|
|
694
|
+
let additionalCacheKeyHash: string | undefined;
|
|
695
|
+
if (
|
|
696
|
+
credential.additionalCacheKeyComponents &&
|
|
697
|
+
Object.keys(credential.additionalCacheKeyComponents).length > 0
|
|
698
|
+
) {
|
|
699
|
+
additionalCacheKeyHash = await this.cryptoImpl.hashString(
|
|
700
|
+
JSON.stringify(credential.additionalCacheKeyComponents)
|
|
701
|
+
);
|
|
702
|
+
}
|
|
683
703
|
const accessTokenFilter: CredentialFilter = {
|
|
684
704
|
clientId: credential.clientId,
|
|
685
705
|
credentialType: credential.credentialType,
|
|
@@ -724,7 +744,12 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
724
744
|
}
|
|
725
745
|
}
|
|
726
746
|
});
|
|
727
|
-
await this.setAccessTokenCredential(
|
|
747
|
+
await this.setAccessTokenCredential(
|
|
748
|
+
credential,
|
|
749
|
+
correlationId,
|
|
750
|
+
kmsi,
|
|
751
|
+
additionalCacheKeyHash
|
|
752
|
+
);
|
|
728
753
|
}
|
|
729
754
|
|
|
730
755
|
/**
|
|
@@ -1345,6 +1370,15 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1345
1370
|
? Constants.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME
|
|
1346
1371
|
: Constants.CredentialType.ACCESS_TOKEN;
|
|
1347
1372
|
|
|
1373
|
+
const attributeTokenPartition = CacheHelpers.serializeAttributeTokens(
|
|
1374
|
+
request.attributeTokens
|
|
1375
|
+
);
|
|
1376
|
+
const additionalCacheKeyComponents = attributeTokenPartition
|
|
1377
|
+
? {
|
|
1378
|
+
attribute_tokens: attributeTokenPartition,
|
|
1379
|
+
}
|
|
1380
|
+
: undefined;
|
|
1381
|
+
|
|
1348
1382
|
const accessTokenFilter: CredentialFilter = {
|
|
1349
1383
|
homeAccountId: account.homeAccountId,
|
|
1350
1384
|
environment: account.environment,
|
|
@@ -1354,12 +1388,14 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1354
1388
|
target: scopes,
|
|
1355
1389
|
tokenType: authScheme,
|
|
1356
1390
|
keyId: request.sshKid,
|
|
1391
|
+
additionalCacheKeyComponents: additionalCacheKeyComponents,
|
|
1357
1392
|
};
|
|
1358
1393
|
|
|
1359
1394
|
const accessTokenKeys =
|
|
1360
1395
|
(tokenKeys && tokenKeys.accessToken) ||
|
|
1361
1396
|
this.getTokenKeys().accessToken;
|
|
1362
1397
|
const accessTokens: AccessTokenEntity[] = [];
|
|
1398
|
+
const matchedKeys: string[] = [];
|
|
1363
1399
|
|
|
1364
1400
|
accessTokenKeys.forEach((key) => {
|
|
1365
1401
|
// Validate key
|
|
@@ -1381,27 +1417,24 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1381
1417
|
)
|
|
1382
1418
|
) {
|
|
1383
1419
|
accessTokens.push(accessToken);
|
|
1420
|
+
matchedKeys.push(key);
|
|
1384
1421
|
}
|
|
1385
1422
|
}
|
|
1386
1423
|
});
|
|
1387
1424
|
|
|
1388
|
-
|
|
1389
|
-
if (numAccessTokens < 1) {
|
|
1425
|
+
if (accessTokens.length < 1) {
|
|
1390
1426
|
this.commonLogger.info(
|
|
1391
1427
|
"CacheManager:getAccessToken - No token found",
|
|
1392
1428
|
correlationId
|
|
1393
1429
|
);
|
|
1394
1430
|
return null;
|
|
1395
|
-
} else if (
|
|
1431
|
+
} else if (accessTokens.length > 1) {
|
|
1396
1432
|
this.commonLogger.info(
|
|
1397
1433
|
"CacheManager:getAccessToken - Multiple access tokens found, clearing them",
|
|
1398
1434
|
correlationId
|
|
1399
1435
|
);
|
|
1400
|
-
|
|
1401
|
-
this.removeAccessToken(
|
|
1402
|
-
this.generateCredentialKey(accessToken),
|
|
1403
|
-
correlationId
|
|
1404
|
-
);
|
|
1436
|
+
matchedKeys.forEach((key) => {
|
|
1437
|
+
this.removeAccessToken(key, correlationId);
|
|
1405
1438
|
});
|
|
1406
1439
|
this.performanceClient.addFields(
|
|
1407
1440
|
{ multiMatchedAT: accessTokens.length },
|
|
@@ -2113,7 +2146,12 @@ export class DefaultStorageClass extends CacheManager {
|
|
|
2113
2146
|
""
|
|
2114
2147
|
);
|
|
2115
2148
|
}
|
|
2116
|
-
|
|
2149
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2150
|
+
generateCredentialKey(
|
|
2151
|
+
_credential: CredentialEntity,
|
|
2152
|
+
_hash?: string
|
|
2153
|
+
): string {
|
|
2154
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
2117
2155
|
throw createClientAuthError(
|
|
2118
2156
|
ClientAuthErrorCodes.methodNotImplemented,
|
|
2119
2157
|
""
|
|
@@ -69,14 +69,17 @@ export interface ICacheManager {
|
|
|
69
69
|
): AccessTokenEntity | null;
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
|
-
* set
|
|
73
|
-
* @param accessToken
|
|
74
|
-
* @param correlationId
|
|
72
|
+
* set accessToken entity to the platform cache
|
|
73
|
+
* @param accessToken - the access token entity to cache
|
|
74
|
+
* @param correlationId - unique identifier for the request
|
|
75
|
+
* @param kmsi - keep me signed in flag
|
|
76
|
+
* @param additionalCacheKeyHash - optional precomputed hash of additionalCacheKeyComponents used in key generation
|
|
75
77
|
*/
|
|
76
78
|
setAccessTokenCredential(
|
|
77
79
|
accessToken: AccessTokenEntity,
|
|
78
80
|
correlationId: string,
|
|
79
|
-
kmsi: boolean
|
|
81
|
+
kmsi: boolean,
|
|
82
|
+
additionalCacheKeyHash?: string
|
|
80
83
|
): Promise<void>;
|
|
81
84
|
|
|
82
85
|
/**
|
|
@@ -390,3 +390,20 @@ export function isAuthorityMetadataExpired(
|
|
|
390
390
|
): boolean {
|
|
391
391
|
return metadata.expiresAt <= TimeUtils.nowSeconds();
|
|
392
392
|
}
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Serialize attribute tokens synchronously (sort and join).
|
|
396
|
+
* This is a sync-only operation for use at request construction time.
|
|
397
|
+
* @param attributeTokens - array of tokens
|
|
398
|
+
* @returns serialized partition string or undefined if no tokens
|
|
399
|
+
*/
|
|
400
|
+
export function serializeAttributeTokens(
|
|
401
|
+
attributeTokens?: Array<string>
|
|
402
|
+
): string | undefined {
|
|
403
|
+
if (!attributeTokens || attributeTokens.length === 0) {
|
|
404
|
+
return undefined;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
// Serialize: sort and join tokens
|
|
408
|
+
return [...attributeTokens].sort().join(" ");
|
|
409
|
+
}
|
|
@@ -344,6 +344,19 @@ export class AuthorizationCodeClient {
|
|
|
344
344
|
|
|
345
345
|
RequestParameterBuilder.addResource(parameters, request.resource);
|
|
346
346
|
|
|
347
|
+
if (request.attributeTokens) {
|
|
348
|
+
RequestParameterBuilder.addAttributeTokens(
|
|
349
|
+
parameters,
|
|
350
|
+
request.attributeTokens
|
|
351
|
+
);
|
|
352
|
+
}
|
|
353
|
+
this.performanceClient?.addFields(
|
|
354
|
+
{
|
|
355
|
+
hasAttributeTokens: !!request.attributeTokens?.length,
|
|
356
|
+
},
|
|
357
|
+
request.correlationId
|
|
358
|
+
);
|
|
359
|
+
|
|
347
360
|
// add code: user set, not validated
|
|
348
361
|
RequestParameterBuilder.addAuthorizationCode(parameters, request.code);
|
|
349
362
|
|
|
@@ -445,6 +445,19 @@ export class RefreshTokenClient {
|
|
|
445
445
|
request.refreshToken
|
|
446
446
|
);
|
|
447
447
|
|
|
448
|
+
if (request.attributeTokens) {
|
|
449
|
+
RequestParameterBuilder.addAttributeTokens(
|
|
450
|
+
parameters,
|
|
451
|
+
request.attributeTokens
|
|
452
|
+
);
|
|
453
|
+
}
|
|
454
|
+
this.performanceClient?.addFields(
|
|
455
|
+
{
|
|
456
|
+
hasAttributeTokens: !!request.attributeTokens?.length,
|
|
457
|
+
},
|
|
458
|
+
request.correlationId
|
|
459
|
+
);
|
|
460
|
+
|
|
448
461
|
if (this.config.clientCredentials.clientSecret) {
|
|
449
462
|
RequestParameterBuilder.addClientSecret(
|
|
450
463
|
parameters,
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { ShrOptions } from "../crypto/SignedHttpRequest.js";
|
|
7
7
|
import { BaseAuthRequest } from "../request/BaseAuthRequest.js";
|
|
8
8
|
import { AuthenticationScheme } from "../utils/Constants.js";
|
|
9
|
+
import * as CacheHelpers from "../cache/utils/CacheHelpers.js";
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Type representing a unique request thumbprint.
|
|
@@ -24,6 +25,7 @@ export type RequestThumbprint = {
|
|
|
24
25
|
shrOptions?: ShrOptions;
|
|
25
26
|
embeddedClientId?: string;
|
|
26
27
|
resource?: string;
|
|
28
|
+
attributeTokens?: string;
|
|
27
29
|
};
|
|
28
30
|
|
|
29
31
|
export function getRequestThumbprint(
|
|
@@ -45,5 +47,8 @@ export function getRequestThumbprint(
|
|
|
45
47
|
embeddedClientId:
|
|
46
48
|
request.embeddedClientId || request.extraParameters?.clientId,
|
|
47
49
|
resource: request.resource,
|
|
50
|
+
attributeTokens: CacheHelpers.serializeAttributeTokens(
|
|
51
|
+
request.attributeTokens
|
|
52
|
+
),
|
|
48
53
|
};
|
|
49
54
|
}
|
package/src/packageMetadata.ts
CHANGED
|
@@ -111,6 +111,10 @@ export type BaseAuthRequest = {
|
|
|
111
111
|
* String to string map of custom parameters added to outgoing token service requests.
|
|
112
112
|
*/
|
|
113
113
|
extraParameters?: StringDict;
|
|
114
|
+
/**
|
|
115
|
+
* Optional caller-provided attribute tokens (opaque assertions from external Attribute Authorities).
|
|
116
|
+
*/
|
|
117
|
+
attributeTokens?: Array<string>;
|
|
114
118
|
};
|
|
115
119
|
|
|
116
120
|
/**
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import * as Constants from "../utils/Constants.js";
|
|
7
7
|
import * as AADServerParamKeys from "../constants/AADServerParamKeys.js";
|
|
8
8
|
import { ScopeSet } from "./ScopeSet.js";
|
|
9
|
+
import * as CacheHelpers from "../cache/utils/CacheHelpers.js";
|
|
9
10
|
import {
|
|
10
11
|
createClientConfigurationError,
|
|
11
12
|
ClientConfigurationErrorCodes,
|
|
@@ -209,13 +210,15 @@ export function addSid(parameters: Map<string, string>, sid: string): void {
|
|
|
209
210
|
* @param claims - The claims string from the request
|
|
210
211
|
* @param clientCapabilities - The client capabilities from configuration
|
|
211
212
|
* @param skipBrokerClaims - When true and BROKER_CLIENT_ID is present, excludes clientCapabilities from claims
|
|
213
|
+
* @param claimsToMerge - Optional client-originated claims JSON string (e.g. `claimsFromClient`) deep-merged into `claims` with precedence on conflicts
|
|
212
214
|
*/
|
|
213
215
|
export function addClaims(
|
|
214
216
|
parameters: Map<string, string>,
|
|
215
217
|
correlationId: string,
|
|
216
218
|
claims?: string,
|
|
217
219
|
clientCapabilities?: Array<string>,
|
|
218
|
-
skipBrokerClaims?: boolean
|
|
220
|
+
skipBrokerClaims?: boolean,
|
|
221
|
+
claimsToMerge?: string
|
|
219
222
|
): void {
|
|
220
223
|
// Skip clientCapabilities if skipBrokerClaims is set to true and this is a brokered authentication flow
|
|
221
224
|
const configClaims =
|
|
@@ -223,7 +226,12 @@ export function addClaims(
|
|
|
223
226
|
? undefined
|
|
224
227
|
: clientCapabilities;
|
|
225
228
|
|
|
226
|
-
const mergedClaims = buildMergedClaims(
|
|
229
|
+
const mergedClaims = buildMergedClaims(
|
|
230
|
+
claims,
|
|
231
|
+
configClaims,
|
|
232
|
+
correlationId,
|
|
233
|
+
claimsToMerge
|
|
234
|
+
);
|
|
227
235
|
parameters.set(AADServerParamKeys.CLAIMS, mergedClaims);
|
|
228
236
|
}
|
|
229
237
|
|
|
@@ -491,40 +499,103 @@ const DEFAULT_ID_TOKEN_CLAIMS: Record<string, { essential: false }> = {
|
|
|
491
499
|
};
|
|
492
500
|
|
|
493
501
|
/**
|
|
494
|
-
* Parses claims JSON
|
|
495
|
-
*
|
|
502
|
+
* Parses a claims JSON string into an object, throwing a ClientConfigurationError
|
|
503
|
+
* (error code `invalid_claims`) if the value is not a valid JSON object. The raw
|
|
504
|
+
* claims value is never included in the error - it may contain sensitive data.
|
|
505
|
+
* @param claims - Claims JSON string. Must be valid JSON representing an object.
|
|
506
|
+
* @param correlationId - The request correlation id
|
|
507
|
+
* @returns The parsed claims object
|
|
508
|
+
*/
|
|
509
|
+
function parseClaims(
|
|
510
|
+
claims: string,
|
|
511
|
+
correlationId: string = ""
|
|
512
|
+
): Record<string, unknown> {
|
|
513
|
+
let parsed: unknown;
|
|
514
|
+
try {
|
|
515
|
+
parsed = JSON.parse(claims);
|
|
516
|
+
} catch (e) {
|
|
517
|
+
// Malformed JSON
|
|
518
|
+
throw createClientConfigurationError(
|
|
519
|
+
ClientConfigurationErrorCodes.invalidClaims,
|
|
520
|
+
correlationId
|
|
521
|
+
);
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
if (!isPlainObject(parsed)) {
|
|
525
|
+
// Valid JSON, but not an object (e.g. an array, a scalar, or the literal `null`).
|
|
526
|
+
throw createClientConfigurationError(
|
|
527
|
+
ClientConfigurationErrorCodes.invalidClaims,
|
|
528
|
+
correlationId
|
|
529
|
+
);
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
return parsed;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* Type guard for a non-null, non-array object (a JSON "object" value).
|
|
537
|
+
* @param value - The value to test
|
|
538
|
+
* @returns True when value is a plain object that can be deep-merged
|
|
539
|
+
*/
|
|
540
|
+
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
541
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
/**
|
|
545
|
+
* Recursively deep-merges two parsed claims objects. Nested objects are merged key-by-key;
|
|
546
|
+
* for any other value type (arrays, scalars, null) the value from `claimsToMerge` replaces
|
|
547
|
+
* the base. This mirrors the deep merge used by msal-dotnet so that, for example, a server
|
|
548
|
+
* `access_token` challenge and a client-originated `access_token` claim are combined rather
|
|
549
|
+
* than one clobbering the other.
|
|
550
|
+
* @param baseClaims - The parsed base claims object
|
|
551
|
+
* @param claimsToMerge - The parsed claims object merged in with precedence
|
|
552
|
+
* @returns The deep-merged claims object
|
|
553
|
+
*/
|
|
554
|
+
function deepMergeClaims(
|
|
555
|
+
baseClaims: Record<string, unknown>,
|
|
556
|
+
claimsToMerge: Record<string, unknown>
|
|
557
|
+
): Record<string, unknown> {
|
|
558
|
+
const merged: Record<string, unknown> = { ...baseClaims };
|
|
559
|
+
for (const [key, mergeInValue] of Object.entries(claimsToMerge)) {
|
|
560
|
+
const baseValue = merged[key];
|
|
561
|
+
if (isPlainObject(baseValue) && isPlainObject(mergeInValue)) {
|
|
562
|
+
merged[key] = deepMergeClaims(baseValue, mergeInValue);
|
|
563
|
+
} else {
|
|
564
|
+
merged[key] = mergeInValue;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
return merged;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* Parses claims JSON, optionally deep-merges a second client-originated claims string
|
|
572
|
+
* (`claimsToMerge`, e.g. `claimsFromClient`) with precedence on conflicting keys, merges
|
|
573
|
+
* default optional idToken claims (signin_state, login_hint), and appends client
|
|
574
|
+
* capabilities (xms_cc) to the access_token section.
|
|
496
575
|
* Does not overwrite idToken claims already specified by the caller.
|
|
497
576
|
* @param claims - Existing claims JSON string from the request (may be undefined)
|
|
498
577
|
* @param clientCapabilities - Client capabilities array from configuration
|
|
578
|
+
* @param correlationId - The request correlation id
|
|
579
|
+
* @param claimsToMerge - Optional second claims JSON string (e.g. client-originated `claimsFromClient`)
|
|
580
|
+
* deep-merged into `claims` with precedence on conflicts; parsed and validated when present. Nested
|
|
581
|
+
* objects are merged recursively; arrays and scalar values are replaced.
|
|
499
582
|
* @returns Merged claims JSON string
|
|
500
583
|
*/
|
|
501
584
|
export function buildMergedClaims(
|
|
502
585
|
claims?: string,
|
|
503
586
|
clientCapabilities?: Array<string>,
|
|
504
|
-
correlationId: string = ""
|
|
587
|
+
correlationId: string = "",
|
|
588
|
+
claimsToMerge?: string
|
|
505
589
|
): string {
|
|
506
|
-
let mergedClaims: object;
|
|
507
|
-
|
|
508
590
|
// Parse provided claims into JSON object or initialize empty object
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
Array.isArray(parsed)
|
|
518
|
-
) {
|
|
519
|
-
throw new Error("Claims must be a JSON object");
|
|
520
|
-
}
|
|
521
|
-
mergedClaims = parsed;
|
|
522
|
-
} catch (e) {
|
|
523
|
-
throw createClientConfigurationError(
|
|
524
|
-
ClientConfigurationErrorCodes.invalidClaims,
|
|
525
|
-
correlationId
|
|
526
|
-
);
|
|
527
|
-
}
|
|
591
|
+
let mergedClaims: object = claims ? parseClaims(claims, correlationId) : {};
|
|
592
|
+
|
|
593
|
+
// Deep-merge client-originated claims (e.g. `claimsFromClient`) with precedence on conflicts
|
|
594
|
+
if (claimsToMerge?.trim()) {
|
|
595
|
+
mergedClaims = deepMergeClaims(
|
|
596
|
+
mergedClaims as Record<string, unknown>,
|
|
597
|
+
parseClaims(claimsToMerge, correlationId)
|
|
598
|
+
);
|
|
528
599
|
}
|
|
529
600
|
|
|
530
601
|
// Add default optional idToken claims
|
|
@@ -700,3 +771,25 @@ export function addResource(
|
|
|
700
771
|
parameters.set(AADServerParamKeys.RESOURCE, resource);
|
|
701
772
|
}
|
|
702
773
|
}
|
|
774
|
+
|
|
775
|
+
/**
|
|
776
|
+
* Add the `attribute_tokens` parameter to a /token request body.
|
|
777
|
+
*
|
|
778
|
+
* When `attributeTokens` is a non-empty array the values are sorted lexicographically and joined
|
|
779
|
+
* with a single space, then written to the request body. When `attributeTokens` is an empty array
|
|
780
|
+
* the parameter is deleted from the request body.
|
|
781
|
+
*
|
|
782
|
+
* @param parameters - request parameter map that will be serialized into the /token body
|
|
783
|
+
* @param attributeTokens - caller-provided attribute token strings
|
|
784
|
+
*/
|
|
785
|
+
export function addAttributeTokens(
|
|
786
|
+
parameters: Map<string, string>,
|
|
787
|
+
attributeTokens: Array<string>
|
|
788
|
+
): void {
|
|
789
|
+
const serialized = CacheHelpers.serializeAttributeTokens(attributeTokens);
|
|
790
|
+
if (serialized) {
|
|
791
|
+
parameters.set(AADServerParamKeys.ATTRIBUTE_TOKENS, serialized);
|
|
792
|
+
} else {
|
|
793
|
+
parameters.delete(AADServerParamKeys.ATTRIBUTE_TOKENS);
|
|
794
|
+
}
|
|
795
|
+
}
|
|
@@ -238,6 +238,18 @@ export class ResponseHandler {
|
|
|
238
238
|
serverTokenResponse.key_id =
|
|
239
239
|
serverTokenResponse.key_id || request.sshKid || undefined;
|
|
240
240
|
|
|
241
|
+
// Compute components once for entity storage (fallback if hash not provided by client)
|
|
242
|
+
const attributeTokenPartition = CacheHelpers.serializeAttributeTokens(
|
|
243
|
+
request.attributeTokens
|
|
244
|
+
);
|
|
245
|
+
const cacheKeyComponents: Record<string, string> | undefined =
|
|
246
|
+
additionalCacheKeyComponents ??
|
|
247
|
+
(attributeTokenPartition
|
|
248
|
+
? {
|
|
249
|
+
attribute_tokens: attributeTokenPartition,
|
|
250
|
+
}
|
|
251
|
+
: undefined);
|
|
252
|
+
|
|
241
253
|
const cacheRecord = this.generateCacheRecord(
|
|
242
254
|
serverTokenResponse,
|
|
243
255
|
authority,
|
|
@@ -246,7 +258,7 @@ export class ResponseHandler {
|
|
|
246
258
|
idTokenClaims,
|
|
247
259
|
userAssertionHash,
|
|
248
260
|
authCodePayload,
|
|
249
|
-
|
|
261
|
+
cacheKeyComponents
|
|
250
262
|
);
|
|
251
263
|
let cacheContext;
|
|
252
264
|
try {
|
|
@@ -429,6 +429,11 @@ export type PerformanceEvent = {
|
|
|
429
429
|
*/
|
|
430
430
|
deduped?: boolean;
|
|
431
431
|
|
|
432
|
+
/**
|
|
433
|
+
* Whether caller-provided attribute tokens are present on the request
|
|
434
|
+
*/
|
|
435
|
+
hasAttributeTokens?: boolean;
|
|
436
|
+
|
|
432
437
|
/**
|
|
433
438
|
* Whether the user has "Keep Me Signed In" enabled
|
|
434
439
|
*/
|
|
@@ -56,11 +56,13 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
56
56
|
*/
|
|
57
57
|
abstract getAccessTokenCredential(accessTokenKey: string, correlationId: string): AccessTokenEntity | null;
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
60
|
-
* @param accessToken
|
|
61
|
-
* @param correlationId
|
|
59
|
+
* Set accessToken entity to the platform cache
|
|
60
|
+
* @param accessToken - the access token entity to cache
|
|
61
|
+
* @param correlationId - unique identifier for the request
|
|
62
|
+
* @param kmsi - keep me signed in flag
|
|
63
|
+
* @param additionalCacheKeyHash - hash of additionalCacheKeyComponents for credential key generation
|
|
62
64
|
*/
|
|
63
|
-
abstract setAccessTokenCredential(accessToken: AccessTokenEntity, correlationId: string, kmsi: boolean): Promise<void>;
|
|
65
|
+
abstract setAccessTokenCredential(accessToken: AccessTokenEntity, correlationId: string, kmsi: boolean, additionalCacheKeyHash?: string): Promise<void>;
|
|
64
66
|
/**
|
|
65
67
|
* fetch the idToken entity from the platform cache
|
|
66
68
|
* @param refreshTokenKey
|
|
@@ -145,8 +147,9 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
145
147
|
/**
|
|
146
148
|
* Returns credential cache key from the entity
|
|
147
149
|
* @param credential
|
|
150
|
+
* @param additionalCacheKeyHash - optional precomputed hash of additionalCacheKeyComponents
|
|
148
151
|
*/
|
|
149
|
-
abstract generateCredentialKey(credential: CredentialEntity): string;
|
|
152
|
+
abstract generateCredentialKey(credential: CredentialEntity, additionalCacheKeyHash?: string): string;
|
|
150
153
|
/**
|
|
151
154
|
* Returns the account cache key from the account info
|
|
152
155
|
* @param account
|
|
@@ -189,7 +192,9 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
189
192
|
saveCacheRecord(cacheRecord: CacheRecord, correlationId: string, kmsi: boolean, apiId: number, storeInCache?: StoreInCache): Promise<void>;
|
|
190
193
|
/**
|
|
191
194
|
* saves access token credential
|
|
192
|
-
* @param credential
|
|
195
|
+
* @param credential - the access token entity to save
|
|
196
|
+
* @param correlationId - unique identifier for the request
|
|
197
|
+
* @param kmsi - keep me signed in flag
|
|
193
198
|
*/
|
|
194
199
|
private saveAccessToken;
|
|
195
200
|
/**
|
|
@@ -472,7 +477,7 @@ export declare class DefaultStorageClass extends CacheManager {
|
|
|
472
477
|
getKeys(): string[];
|
|
473
478
|
getAccountKeys(): string[];
|
|
474
479
|
getTokenKeys(): TokenKeys;
|
|
475
|
-
generateCredentialKey(): string;
|
|
480
|
+
generateCredentialKey(_credential: CredentialEntity, _hash?: string): string;
|
|
476
481
|
generateAccountKey(): string;
|
|
477
482
|
}
|
|
478
483
|
//# 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,WAAW,EAGd,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAO/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,11 +43,13 @@ export interface ICacheManager {
|
|
|
43
43
|
*/
|
|
44
44
|
getAccessTokenCredential(accessTokenKey: string, correlationId: string): AccessTokenEntity | null;
|
|
45
45
|
/**
|
|
46
|
-
* set
|
|
47
|
-
* @param accessToken
|
|
48
|
-
* @param correlationId
|
|
46
|
+
* set accessToken entity to the platform cache
|
|
47
|
+
* @param accessToken - the access token entity to cache
|
|
48
|
+
* @param correlationId - unique identifier for the request
|
|
49
|
+
* @param kmsi - keep me signed in flag
|
|
50
|
+
* @param additionalCacheKeyHash - optional precomputed hash of additionalCacheKeyComponents used in key generation
|
|
49
51
|
*/
|
|
50
|
-
setAccessTokenCredential(accessToken: AccessTokenEntity, correlationId: string, kmsi: boolean): Promise<void>;
|
|
52
|
+
setAccessTokenCredential(accessToken: AccessTokenEntity, correlationId: string, kmsi: boolean, additionalCacheKeyHash?: string): Promise<void>;
|
|
51
53
|
/**
|
|
52
54
|
* fetch the idToken entity from the platform cache
|
|
53
55
|
* @param refreshTokenKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICacheManager.d.ts","sourceRoot":"","sources":["../../../src/cache/interface/ICacheManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,gBAAgB;AAChB,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;IAE5E;;;;OAIG;IACH,UAAU,CACN,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;OAIG;IACH,oBAAoB,CAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACtB,aAAa,GAAG,IAAI,CAAC;IAExB;;;;OAIG;IACH,oBAAoB,CAChB,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;OAIG;IACH,wBAAwB,CACpB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI,CAAC;IAE5B
|
|
1
|
+
{"version":3,"file":"ICacheManager.d.ts","sourceRoot":"","sources":["../../../src/cache/interface/ICacheManager.ts"],"names":[],"mappings":"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"}
|