@azure/msal-common 5.2.0 → 6.2.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.
Files changed (160) hide show
  1. package/dist/_virtual/_tslib.js +1 -1
  2. package/dist/account/AuthToken.js +1 -1
  3. package/dist/account/CcsCredential.js +1 -1
  4. package/dist/account/ClientInfo.js +1 -1
  5. package/dist/account/TokenClaims.d.ts +1 -0
  6. package/dist/account/TokenClaims.d.ts.map +1 -1
  7. package/dist/authority/Authority.d.ts +9 -1
  8. package/dist/authority/Authority.d.ts.map +1 -1
  9. package/dist/authority/Authority.js +36 -11
  10. package/dist/authority/Authority.js.map +1 -1
  11. package/dist/authority/AuthorityFactory.d.ts +2 -2
  12. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  13. package/dist/authority/AuthorityFactory.js +5 -5
  14. package/dist/authority/AuthorityFactory.js.map +1 -1
  15. package/dist/authority/AuthorityOptions.d.ts +8 -0
  16. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  17. package/dist/authority/AuthorityOptions.js +24 -0
  18. package/dist/authority/AuthorityOptions.js.map +1 -0
  19. package/dist/authority/AuthorityType.js +1 -1
  20. package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
  21. package/dist/authority/ImdsOptions.d.ts +7 -0
  22. package/dist/authority/ImdsOptions.d.ts.map +1 -0
  23. package/dist/authority/OpenIdConfigResponse.js +1 -1
  24. package/dist/authority/ProtocolMode.js +1 -1
  25. package/dist/authority/RegionDiscovery.d.ts +3 -6
  26. package/dist/authority/RegionDiscovery.d.ts.map +1 -1
  27. package/dist/authority/RegionDiscovery.js +19 -11
  28. package/dist/authority/RegionDiscovery.js.map +1 -1
  29. package/dist/cache/CacheManager.d.ts +9 -5
  30. package/dist/cache/CacheManager.d.ts.map +1 -1
  31. package/dist/cache/CacheManager.js +39 -29
  32. package/dist/cache/CacheManager.js.map +1 -1
  33. package/dist/cache/entities/AccessTokenEntity.d.ts +3 -1
  34. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  35. package/dist/cache/entities/AccessTokenEntity.js +13 -6
  36. package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
  37. package/dist/cache/entities/AccountEntity.js +10 -10
  38. package/dist/cache/entities/AccountEntity.js.map +1 -1
  39. package/dist/cache/entities/AppMetadataEntity.js +1 -1
  40. package/dist/cache/entities/AuthorityMetadataEntity.js +1 -1
  41. package/dist/cache/entities/CacheRecord.js +1 -1
  42. package/dist/cache/entities/CredentialEntity.d.ts +12 -2
  43. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  44. package/dist/cache/entities/CredentialEntity.js +27 -12
  45. package/dist/cache/entities/CredentialEntity.js.map +1 -1
  46. package/dist/cache/entities/IdTokenEntity.js +1 -1
  47. package/dist/cache/entities/RefreshTokenEntity.js +1 -1
  48. package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
  49. package/dist/cache/entities/ThrottlingEntity.js +1 -1
  50. package/dist/cache/persistence/TokenCacheContext.js +1 -1
  51. package/dist/cache/utils/CacheTypes.d.ts +1 -0
  52. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  53. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  54. package/dist/client/AuthorizationCodeClient.js +7 -2
  55. package/dist/client/AuthorizationCodeClient.js.map +1 -1
  56. package/dist/client/BaseClient.js +2 -2
  57. package/dist/client/BaseClient.js.map +1 -1
  58. package/dist/client/ClientCredentialClient.d.ts.map +1 -1
  59. package/dist/client/ClientCredentialClient.js +5 -4
  60. package/dist/client/ClientCredentialClient.js.map +1 -1
  61. package/dist/client/DeviceCodeClient.d.ts.map +1 -1
  62. package/dist/client/DeviceCodeClient.js +6 -4
  63. package/dist/client/DeviceCodeClient.js.map +1 -1
  64. package/dist/client/OnBehalfOfClient.js +4 -3
  65. package/dist/client/OnBehalfOfClient.js.map +1 -1
  66. package/dist/client/RefreshTokenClient.js +3 -2
  67. package/dist/client/RefreshTokenClient.js.map +1 -1
  68. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  69. package/dist/client/SilentFlowClient.js +4 -13
  70. package/dist/client/SilentFlowClient.js.map +1 -1
  71. package/dist/client/UsernamePasswordClient.js +3 -2
  72. package/dist/client/UsernamePasswordClient.js.map +1 -1
  73. package/dist/config/ClientConfiguration.d.ts +29 -1
  74. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  75. package/dist/config/ClientConfiguration.js +21 -8
  76. package/dist/config/ClientConfiguration.js.map +1 -1
  77. package/dist/crypto/ICrypto.d.ts +9 -2
  78. package/dist/crypto/ICrypto.d.ts.map +1 -1
  79. package/dist/crypto/ICrypto.js +10 -1
  80. package/dist/crypto/ICrypto.js.map +1 -1
  81. package/dist/crypto/IGuidGenerator.d.ts +5 -0
  82. package/dist/crypto/IGuidGenerator.d.ts.map +1 -0
  83. package/dist/crypto/PopTokenGenerator.js +2 -2
  84. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  85. package/dist/error/AuthError.js +3 -3
  86. package/dist/error/AuthError.js.map +1 -1
  87. package/dist/error/ClientAuthError.js +1 -1
  88. package/dist/error/ClientConfigurationError.d.ts +11 -0
  89. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  90. package/dist/error/ClientConfigurationError.js +12 -2
  91. package/dist/error/ClientConfigurationError.js.map +1 -1
  92. package/dist/error/InteractionRequiredAuthError.js +1 -1
  93. package/dist/error/ServerError.js +1 -1
  94. package/dist/index.cjs.js +666 -140
  95. package/dist/index.cjs.js.map +1 -1
  96. package/dist/index.d.ts +8 -2
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +5 -1
  99. package/dist/index.js.map +1 -1
  100. package/dist/logger/Logger.js +13 -13
  101. package/dist/logger/Logger.js.map +1 -1
  102. package/dist/network/INetworkModule.d.ts +1 -0
  103. package/dist/network/INetworkModule.d.ts.map +1 -1
  104. package/dist/network/INetworkModule.js +1 -1
  105. package/dist/network/INetworkModule.js.map +1 -1
  106. package/dist/network/NetworkManager.js +1 -1
  107. package/dist/network/RequestThumbprint.d.ts +1 -1
  108. package/dist/network/RequestThumbprint.d.ts.map +1 -1
  109. package/dist/network/ThrottlingUtils.js +2 -2
  110. package/dist/network/ThrottlingUtils.js.map +1 -1
  111. package/dist/packageMetadata.d.ts +1 -1
  112. package/dist/packageMetadata.js +2 -2
  113. package/dist/packageMetadata.js.map +1 -1
  114. package/dist/request/AuthenticationHeaderParser.js +3 -3
  115. package/dist/request/AuthenticationHeaderParser.js.map +1 -1
  116. package/dist/request/BaseAuthRequest.d.ts +10 -5
  117. package/dist/request/BaseAuthRequest.d.ts.map +1 -1
  118. package/dist/request/CommonEndSessionRequest.d.ts +2 -0
  119. package/dist/request/CommonEndSessionRequest.d.ts.map +1 -1
  120. package/dist/request/RequestParameterBuilder.d.ts +10 -1
  121. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  122. package/dist/request/RequestParameterBuilder.js +25 -3
  123. package/dist/request/RequestParameterBuilder.js.map +1 -1
  124. package/dist/request/RequestValidator.js +1 -1
  125. package/dist/request/ScopeSet.js +4 -4
  126. package/dist/request/ScopeSet.js.map +1 -1
  127. package/dist/response/ResponseHandler.d.ts.map +1 -1
  128. package/dist/response/ResponseHandler.js +8 -8
  129. package/dist/response/ResponseHandler.js.map +1 -1
  130. package/dist/telemetry/performance/IPerformanceClient.d.ts +22 -0
  131. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -0
  132. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +6 -0
  133. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts.map +1 -0
  134. package/dist/telemetry/performance/PerformanceClient.d.ts +125 -0
  135. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -0
  136. package/dist/telemetry/performance/PerformanceClient.js +275 -0
  137. package/dist/telemetry/performance/PerformanceClient.js.map +1 -0
  138. package/dist/telemetry/performance/PerformanceEvent.d.ts +182 -0
  139. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -0
  140. package/dist/telemetry/performance/PerformanceEvent.js +85 -0
  141. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -0
  142. package/dist/telemetry/performance/StubPerformanceClient.d.ts +13 -0
  143. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -0
  144. package/dist/telemetry/performance/StubPerformanceClient.js +37 -0
  145. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -0
  146. package/dist/telemetry/server/ServerTelemetryManager.js +4 -4
  147. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
  148. package/dist/url/UrlString.js +2 -2
  149. package/dist/url/UrlString.js.map +1 -1
  150. package/dist/utils/Constants.d.ts +5 -1
  151. package/dist/utils/Constants.d.ts.map +1 -1
  152. package/dist/utils/Constants.js +5 -1
  153. package/dist/utils/Constants.js.map +1 -1
  154. package/dist/utils/ProtocolUtils.js +3 -3
  155. package/dist/utils/ProtocolUtils.js.map +1 -1
  156. package/dist/utils/StringUtils.js +1 -1
  157. package/dist/utils/TimeUtils.js +1 -1
  158. package/package.json +2 -4
  159. package/CHANGELOG.json +0 -1259
  160. package/CHANGELOG.md +0 -479
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v5.2.0 2021-12-07 */
1
+ /*! @azure/msal-common v6.2.0 2022-04-04 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';
@@ -16,18 +16,22 @@ var RegionDiscovery = /** @class */ (function () {
16
16
  *
17
17
  * @returns Promise<string | null>
18
18
  */
19
- RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {
19
+ RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata, proxyUrl) {
20
20
  return __awaiter(this, void 0, void 0, function () {
21
- var autodetectedRegionName, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;
21
+ var autodetectedRegionName, options, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;
22
22
  return __generator(this, function (_a) {
23
23
  switch (_a.label) {
24
24
  case 0:
25
25
  autodetectedRegionName = environmentRegion;
26
26
  if (!!autodetectedRegionName) return [3 /*break*/, 8];
27
+ options = RegionDiscovery.IMDS_OPTIONS;
28
+ if (proxyUrl) {
29
+ options.proxyUrl = proxyUrl;
30
+ }
27
31
  _a.label = 1;
28
32
  case 1:
29
33
  _a.trys.push([1, 6, , 7]);
30
- return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION)];
34
+ return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION, options)];
31
35
  case 2:
32
36
  localIMDSVersionResponse = _a.sent();
33
37
  if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {
@@ -35,14 +39,14 @@ var RegionDiscovery = /** @class */ (function () {
35
39
  regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;
36
40
  }
37
41
  if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];
38
- return [4 /*yield*/, this.getCurrentVersion()];
42
+ return [4 /*yield*/, this.getCurrentVersion(options)];
39
43
  case 3:
40
44
  currentIMDSVersion = _a.sent();
41
45
  if (!currentIMDSVersion) {
42
46
  regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;
43
47
  return [2 /*return*/, null];
44
48
  }
45
- return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion)];
49
+ return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion, options)];
46
50
  case 4:
47
51
  currentIMDSVersionResponse = _a.sent();
48
52
  if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {
@@ -75,10 +79,10 @@ var RegionDiscovery = /** @class */ (function () {
75
79
  * @param imdsEndpointUrl
76
80
  * @returns Promise<NetworkResponse<string>>
77
81
  */
78
- RegionDiscovery.prototype.getRegionFromIMDS = function (version) {
82
+ RegionDiscovery.prototype.getRegionFromIMDS = function (version, options) {
79
83
  return __awaiter(this, void 0, void 0, function () {
80
84
  return __generator(this, function (_a) {
81
- return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?api-version=" + version + "&format=text", RegionDiscovery.IMDS_OPTIONS, Constants.IMDS_TIMEOUT)];
85
+ return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?api-version=" + version + "&format=text", options, Constants.IMDS_TIMEOUT)];
82
86
  });
83
87
  });
84
88
  };
@@ -87,14 +91,14 @@ var RegionDiscovery = /** @class */ (function () {
87
91
  *
88
92
  * @returns Promise<string | null>
89
93
  */
90
- RegionDiscovery.prototype.getCurrentVersion = function () {
94
+ RegionDiscovery.prototype.getCurrentVersion = function (options) {
91
95
  return __awaiter(this, void 0, void 0, function () {
92
96
  var response;
93
97
  return __generator(this, function (_a) {
94
98
  switch (_a.label) {
95
99
  case 0:
96
100
  _a.trys.push([0, 2, , 3]);
97
- return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?format=json", RegionDiscovery.IMDS_OPTIONS)];
101
+ return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?format=json", options)];
98
102
  case 1:
99
103
  response = _a.sent();
100
104
  // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.
@@ -111,7 +115,11 @@ var RegionDiscovery = /** @class */ (function () {
111
115
  });
112
116
  };
113
117
  // Options for the IMDS endpoint request
114
- RegionDiscovery.IMDS_OPTIONS = { headers: { "Metadata": "true" } };
118
+ RegionDiscovery.IMDS_OPTIONS = {
119
+ headers: {
120
+ Metadata: "true",
121
+ },
122
+ };
115
123
  return RegionDiscovery;
116
124
  }());
117
125
 
@@ -1 +1 @@
1
- {"version":3,"file":"RegionDiscovery.js","sources":["../../src/authority/RegionDiscovery.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { IMDSBadResponse } from \"../response/IMDSBadResponse\";\nimport { Constants, RegionDiscoverySources, ResponseCodes } from \"../utils/Constants\";\nimport { RegionDiscoveryMetadata } from \"./RegionDiscoveryMetadata\";\n\nexport class RegionDiscovery {\n // Network interface to make requests with.\n protected networkInterface: INetworkModule;\n // Options for the IMDS endpoint request\n protected static IMDS_OPTIONS = {headers: {\"Metadata\": \"true\"}};\n\n constructor(networkInterface: INetworkModule) {\n this.networkInterface = networkInterface;\n }\n\n /**\n * Detect the region from the application's environment.\n * \n * @returns Promise<string | null>\n */\n public async detectRegion(environmentRegion: string | undefined, regionDiscoveryMetadata: RegionDiscoveryMetadata): Promise<string | null> {\n // Initialize auto detected region with the region from the envrionment \n let autodetectedRegionName = environmentRegion;\n\n // Check if a region was detected from the environment, if not, attempt to get the region from IMDS \n if (!autodetectedRegionName) {\n try {\n const localIMDSVersionResponse = await this.getRegionFromIMDS(Constants.IMDS_VERSION);\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = localIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n } \n \n // If the response using the local IMDS version failed, try to fetch the current version of IMDS and retry. \n if (localIMDSVersionResponse.status === ResponseCodes.httpBadRequest) {\n const currentIMDSVersion = await this.getCurrentVersion();\n if (!currentIMDSVersion) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n }\n\n const currentIMDSVersionResponse = await this.getRegionFromIMDS(currentIMDSVersion);\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = currentIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n }\n }\n } catch(e) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n } \n } else {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\n }\n\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\n if (!autodetectedRegionName) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n }\n\n return autodetectedRegionName || null;\n }\n\n /**\n * Make the call to the IMDS endpoint\n * \n * @param imdsEndpointUrl\n * @returns Promise<NetworkResponse<string>>\n */\n private async getRegionFromIMDS(version: string): Promise<NetworkResponse<string>> {\n return this.networkInterface.sendGetRequestAsync<string>(`${Constants.IMDS_ENDPOINT}?api-version=${version}&format=text`, RegionDiscovery.IMDS_OPTIONS, Constants.IMDS_TIMEOUT);\n }\n\n /**\n * Get the most recent version of the IMDS endpoint available\n * \n * @returns Promise<string | null>\n */\n private async getCurrentVersion(): Promise<string | null> {\n try {\n const response = await this.networkInterface.sendGetRequestAsync<IMDSBadResponse>(`${Constants.IMDS_ENDPOINT}?format=json`, RegionDiscovery.IMDS_OPTIONS);\n\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\n return response.body[\"newest-versions\"][0];\n }\n\n return null;\n } catch (e) {\n return null;\n }\n }\n}\n"],"names":[],"mappings":";;;;;AAAA;;;;;IAiBI,yBAAY,gBAAgC;QACxC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;KAC5C;;;;;;IAOY,sCAAY,GAAzB,UAA0B,iBAAqC,EAAE,uBAAgD;;;;;;wBAEzG,sBAAsB,GAAG,iBAAiB,CAAC;6BAG3C,CAAC,sBAAsB,EAAvB,wBAAuB;;;;wBAEc,qBAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAA;;wBAA/E,wBAAwB,GAAG,SAAoD;wBACrF,IAAI,wBAAwB,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,EAAE;4BAC/D,sBAAsB,GAAG,wBAAwB,CAAC,IAAI,CAAC;4BACvD,uBAAuB,CAAC,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC;yBACvE;8BAGG,wBAAwB,CAAC,MAAM,KAAK,aAAa,CAAC,cAAc,CAAA,EAAhE,wBAAgE;wBACrC,qBAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wBAAnD,kBAAkB,GAAG,SAA8B;wBACzD,IAAI,CAAC,kBAAkB,EAAE;4BACrB,uBAAuB,CAAC,aAAa,GAAG,sBAAsB,CAAC,qBAAqB,CAAC;4BACrF,sBAAO,IAAI,EAAC;yBACf;wBAEkC,qBAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAA;;wBAA7E,0BAA0B,GAAG,SAAgD;wBACnF,IAAI,0BAA0B,CAAC,MAAM,KAAK,aAAa,CAAC,WAAW,EAAE;4BACjE,sBAAsB,GAAG,0BAA0B,CAAC,IAAI,CAAC;4BACzD,uBAAuB,CAAC,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC;yBACvE;;;;;wBAGL,uBAAuB,CAAC,aAAa,GAAG,sBAAsB,CAAC,qBAAqB,CAAC;wBACrF,sBAAO,IAAI,EAAC;;;wBAGhB,uBAAuB,CAAC,aAAa,GAAG,sBAAsB,CAAC,oBAAoB,CAAC;;;;wBAIxF,IAAI,CAAC,sBAAsB,EAAE;4BACzB,uBAAuB,CAAC,aAAa,GAAG,sBAAsB,CAAC,qBAAqB,CAAC;yBACxF;wBAED,sBAAO,sBAAsB,IAAI,IAAI,EAAC;;;;KACzC;;;;;;;IAQa,2CAAiB,GAA/B,UAAgC,OAAe;;;gBAC3C,sBAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAY,SAAS,CAAC,aAAa,qBAAgB,OAAO,iBAAc,EAAE,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,EAAC;;;KACnL;;;;;;IAOa,2CAAiB,GAA/B;;;;;;;wBAEyB,qBAAM,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAqB,SAAS,CAAC,aAAa,iBAAc,EAAE,eAAe,CAAC,YAAY,CAAC,EAAA;;wBAAnJ,QAAQ,GAAG,SAAwI;;wBAGzJ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtJ,sBAAO,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAC;yBAC9C;wBAED,sBAAO,IAAI,EAAC;;;wBAEZ,sBAAO,IAAI,EAAC;;;;;KAEnB;;IAlFgB,4BAAY,GAAG,EAAC,OAAO,EAAE,EAAC,UAAU,EAAE,MAAM,EAAC,EAAC,CAAC;IAmFpE,sBAAC;CAvFD;;;;"}
1
+ {"version":3,"file":"RegionDiscovery.js","sources":["../../src/authority/RegionDiscovery.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { IMDSBadResponse } from \"../response/IMDSBadResponse\";\nimport { Constants, RegionDiscoverySources, ResponseCodes } from \"../utils/Constants\";\nimport { RegionDiscoveryMetadata } from \"./RegionDiscoveryMetadata\";\nimport { ImdsOptions } from \"./ImdsOptions\";\n\nexport class RegionDiscovery {\n // Network interface to make requests with.\n protected networkInterface: INetworkModule;\n // Options for the IMDS endpoint request\n protected static IMDS_OPTIONS: ImdsOptions = {\n headers: {\n Metadata: \"true\",\n },\n };\n\n constructor(networkInterface: INetworkModule) {\n this.networkInterface = networkInterface;\n }\n\n /**\n * Detect the region from the application's environment.\n * \n * @returns Promise<string | null>\n */\n public async detectRegion(environmentRegion: string | undefined, regionDiscoveryMetadata: RegionDiscoveryMetadata, proxyUrl: string): Promise<string | null> {\n // Initialize auto detected region with the region from the envrionment \n let autodetectedRegionName = environmentRegion;\n\n // Check if a region was detected from the environment, if not, attempt to get the region from IMDS \n if (!autodetectedRegionName) {\n const options = RegionDiscovery.IMDS_OPTIONS;\n if (proxyUrl) {\n options.proxyUrl = proxyUrl;\n }\n\n try {\n const localIMDSVersionResponse = await this.getRegionFromIMDS(Constants.IMDS_VERSION, options);\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = localIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n } \n \n // If the response using the local IMDS version failed, try to fetch the current version of IMDS and retry. \n if (localIMDSVersionResponse.status === ResponseCodes.httpBadRequest) {\n const currentIMDSVersion = await this.getCurrentVersion(options);\n if (!currentIMDSVersion) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n }\n\n const currentIMDSVersionResponse = await this.getRegionFromIMDS(currentIMDSVersion, options);\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = currentIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n }\n }\n } catch(e) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n } \n } else {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\n }\n\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\n if (!autodetectedRegionName) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n }\n\n return autodetectedRegionName || null;\n }\n\n /**\n * Make the call to the IMDS endpoint\n * \n * @param imdsEndpointUrl\n * @returns Promise<NetworkResponse<string>>\n */\n private async getRegionFromIMDS(version: string, options: ImdsOptions): Promise<NetworkResponse<string>> {\n return this.networkInterface.sendGetRequestAsync<string>(`${Constants.IMDS_ENDPOINT}?api-version=${version}&format=text`, options, Constants.IMDS_TIMEOUT);\n }\n\n /**\n * Get the most recent version of the IMDS endpoint available\n * \n * @returns Promise<string | null>\n */\n private async getCurrentVersion(options: ImdsOptions): Promise<string | null> {\n try {\n const response = await this.networkInterface.sendGetRequestAsync<IMDSBadResponse>(`${Constants.IMDS_ENDPOINT}?format=json`, options);\n\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\n return response.body[\"newest-versions\"][0];\n }\n\n return null;\n } catch (e) {\n return null;\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
- import { AccountCache, AccountFilter, CredentialFilter, CredentialCache, AppMetadataFilter, AppMetadataCache } from "./utils/CacheTypes";
1
+ import { AccountCache, AccountFilter, CredentialFilter, CredentialCache, ValidCredentialType, AppMetadataFilter, AppMetadataCache } from "./utils/CacheTypes";
2
2
  import { CacheRecord } from "./entities/CacheRecord";
3
- import { AuthenticationScheme } from "../utils/Constants";
4
3
  import { CredentialEntity } from "./entities/CredentialEntity";
5
- import { ScopeSet } from "../request/ScopeSet";
6
4
  import { AccountEntity } from "./entities/AccountEntity";
7
5
  import { AccessTokenEntity } from "./entities/AccessTokenEntity";
8
6
  import { IdTokenEntity } from "./entities/IdTokenEntity";
@@ -14,6 +12,7 @@ import { ServerTelemetryEntity } from "./entities/ServerTelemetryEntity";
14
12
  import { ThrottlingEntity } from "./entities/ThrottlingEntity";
15
13
  import { ICrypto } from "../crypto/ICrypto";
16
14
  import { AuthorityMetadataEntity } from "./entities/AuthorityMetadataEntity";
15
+ import { BaseAuthRequest } from "../request/BaseAuthRequest";
17
16
  /**
18
17
  * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.
19
18
  */
@@ -126,6 +125,10 @@ export declare abstract class CacheManager implements ICacheManager {
126
125
  * Function which clears cache.
127
126
  */
128
127
  abstract clear(): Promise<void>;
128
+ /**
129
+ * Function which updates an outdated credential cache key
130
+ */
131
+ abstract updateCredentialCacheKey(currentCacheKey: string, credential: ValidCredentialType): string;
129
132
  /**
130
133
  * Returns all accounts in cache
131
134
  */
@@ -225,7 +228,7 @@ export declare abstract class CacheManager implements ICacheManager {
225
228
  * @param environment
226
229
  * @param authScheme
227
230
  */
228
- readCacheRecord(account: AccountInfo, clientId: string, scopes: ScopeSet, environment: string, authScheme: AuthenticationScheme, keyId?: string): CacheRecord;
231
+ readCacheRecord(account: AccountInfo, clientId: string, request: BaseAuthRequest, environment: string): CacheRecord;
229
232
  /**
230
233
  * Retrieve AccountEntity from cache
231
234
  * @param account
@@ -245,7 +248,7 @@ export declare abstract class CacheManager implements ICacheManager {
245
248
  * @param scopes
246
249
  * @param authScheme
247
250
  */
248
- readAccessTokenFromCache(clientId: string, account: AccountInfo, scopes: ScopeSet, authScheme: AuthenticationScheme, keyId?: string): AccessTokenEntity | null;
251
+ readAccessTokenFromCache(clientId: string, account: AccountInfo, request: BaseAuthRequest): AccessTokenEntity | null;
249
252
  /**
250
253
  * Helper to retrieve the appropriate refresh token from cache
251
254
  * @param clientId
@@ -372,5 +375,6 @@ export declare class DefaultStorageClass extends CacheManager {
372
375
  containsKey(): boolean;
373
376
  getKeys(): string[];
374
377
  clear(): Promise<void>;
378
+ updateCredentialCacheKey(): string;
375
379
  }
376
380
  //# sourceMappingURL=CacheManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9J,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;GAEG;AACH,8BAAsB,YAAa,YAAW,aAAa;IACvD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;gBAElB,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;IAKjD;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAE7D;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAEjD;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAEvE;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAE3D;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAEnF;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAEvE;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAEtF;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAE1E;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAEzE;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAE7D;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;IAErF;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE,qBAAqB,GAAG,IAAI;IAErG;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI;IAE1E;;OAEG;IACH,QAAQ,CAAC,wBAAwB,IAAI,KAAK,CAAC,MAAM,CAAC;IAElD;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAEhF;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAEhF;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,GAAG,IAAI;IAEhG;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAExD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAEzD;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE;IAE5B;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,wBAAwB,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,MAAM;IAEnG;;OAEG;IACH,cAAc,IAAI,WAAW,EAAE;IAsB/B;;;OAGG;IACG,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B9D;;;OAGG;YACW,eAAe;IA2B7B;;;;;;OAMG;IACH,qBAAqB,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,YAAY;IAQlE;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IAiCrC;;;;;;;;OAQG;IACH,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAgBnE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gCAAgC;IAiHxC;;;OAGG;IACH,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,GAAG,gBAAgB;IAOrE;;;;OAIG;IACH,OAAO,CAAC,gCAAgC;IAoCxC;;;OAGG;IACH,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI;IA4BzE;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB3C;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQzD;;;OAGG;IACG,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBpE;;;OAGG;IACG,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBtE;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAW5B;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW;IAqBnH;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,IAAI;IAKhE;;;;;OAKG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,IAAI;IAsBlF;;;;;;OAMG;IACH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI;IAmCpH;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI;IAsB/G;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAmBzF;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKjE;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAItB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAIlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInD;;OAEG;IACH,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI5D;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;CAM9C;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACjD,UAAU,IAAI,IAAI;IAIlB,UAAU,IAAI,aAAa;IAI3B,oBAAoB,IAAI,IAAI;IAI5B,oBAAoB,IAAI,aAAa;IAIrC,wBAAwB,IAAI,IAAI;IAIhC,wBAAwB,IAAI,iBAAiB;IAI7C,yBAAyB,IAAI,IAAI;IAIjC,yBAAyB,IAAI,kBAAkB;IAI/C,cAAc,IAAI,IAAI;IAItB,cAAc,IAAI,iBAAiB;IAInC,kBAAkB,IAAI,IAAI;IAI1B,kBAAkB,IAAI,qBAAqB;IAI3C,oBAAoB,IAAI,IAAI;IAI5B,oBAAoB,IAAI,uBAAuB,GAAG,IAAI;IAItD,wBAAwB,IAAI,KAAK,CAAC,MAAM,CAAC;IAIzC,kBAAkB,IAAI,IAAI;IAI1B,kBAAkB,IAAI,gBAAgB;IAItC,UAAU,IAAI,OAAO;IAIrB,WAAW,IAAI,OAAO;IAItB,OAAO,IAAI,MAAM,EAAE;IAIb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,wBAAwB,IAAI,MAAM;CAIrC"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v5.2.0 2021-12-07 */
1
+ /*! @azure/msal-common v6.2.0 2022-04-04 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator, __extends } from '../_virtual/_tslib.js';
4
4
  import { Constants, CredentialType, AuthenticationScheme, CacheSchemaType, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.js';
@@ -97,7 +97,8 @@ var CacheManager = /** @class */ (function () {
97
97
  environment: credential.environment,
98
98
  homeAccountId: credential.homeAccountId,
99
99
  realm: credential.realm,
100
- tokenType: credential.tokenType
100
+ tokenType: credential.tokenType,
101
+ requestedClaimsHash: credential.requestedClaimsHash
101
102
  });
102
103
  currentScopes = ScopeSet.fromString(credential.target);
103
104
  currentAccessTokens = Object.keys(currentTokenCache.accessTokens).map(function (key) { return currentTokenCache.accessTokens[key]; });
@@ -128,7 +129,7 @@ var CacheManager = /** @class */ (function () {
128
129
  * @param realm
129
130
  */
130
131
  CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {
131
- return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : "", accountFilter ? accountFilter.environment : "", accountFilter ? accountFilter.realm : "");
132
+ return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : Constants.EMPTY_STRING, accountFilter ? accountFilter.environment : Constants.EMPTY_STRING, accountFilter ? accountFilter.realm : Constants.EMPTY_STRING);
132
133
  };
133
134
  /**
134
135
  * retrieve accounts matching all provided filters; if no filter is set, get all accounts
@@ -169,7 +170,7 @@ var CacheManager = /** @class */ (function () {
169
170
  * @param target
170
171
  */
171
172
  CacheManager.prototype.getCredentialsFilteredBy = function (filter) {
172
- return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion, filter.tokenType, filter.keyId);
173
+ return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion, filter.tokenType, filter.keyId, filter.requestedClaimsHash);
173
174
  };
174
175
  /**
175
176
  * Support function to help match credentials
@@ -182,7 +183,7 @@ var CacheManager = /** @class */ (function () {
182
183
  * @param oboAssertion
183
184
  * @param tokenType
184
185
  */
185
- CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion, tokenType, keyId) {
186
+ CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion, tokenType, keyId, requestedClaimsHash) {
186
187
  var _this = this;
187
188
  var allCacheKeys = this.getKeys();
188
189
  var matchingCredentials = {
@@ -229,38 +230,37 @@ var CacheManager = /** @class */ (function () {
229
230
  if (!!target && !_this.matchTarget(entity, target)) {
230
231
  return;
231
232
  }
233
+ // If request OR cached entity has requested Claims Hash, check if they match
234
+ if (requestedClaimsHash || entity.requestedClaimsHash) {
235
+ // Don't match if either is undefined or they are different
236
+ if (entity.requestedClaimsHash !== requestedClaimsHash) {
237
+ return;
238
+ }
239
+ }
232
240
  // Access Token with Auth Scheme specific matching
233
241
  if (credentialType === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {
234
242
  if (!!tokenType && !_this.matchTokenType(entity, tokenType)) {
235
243
  return;
236
244
  }
237
- switch (tokenType) {
238
- case AuthenticationScheme.POP:
239
- // This check avoids matching outdated POP tokens that don't have the <-scheme> in the cache key
240
- if (cacheKey.indexOf(AuthenticationScheme.POP) === -1) {
241
- // AccessToken_With_AuthScheme that doesn't have "-pop" in the key is outdated and needs to be removed
242
- _this.removeItem(cacheKey, CacheSchemaType.CREDENTIAL);
243
- return;
244
- }
245
- break;
246
- case AuthenticationScheme.SSH:
247
- // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key
248
- if (keyId && !_this.matchKeyId(entity, keyId)) {
249
- return;
250
- }
251
- break;
245
+ // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key
246
+ if (tokenType === AuthenticationScheme.SSH) {
247
+ if (keyId && !_this.matchKeyId(entity, keyId)) {
248
+ return;
249
+ }
252
250
  }
253
251
  }
252
+ // At this point, the entity matches the request, update cache key if key schema has changed
253
+ var updatedCacheKey = _this.updateCredentialCacheKey(cacheKey, entity);
254
254
  switch (credType) {
255
255
  case CredentialType.ID_TOKEN:
256
- matchingCredentials.idTokens[cacheKey] = entity;
256
+ matchingCredentials.idTokens[updatedCacheKey] = entity;
257
257
  break;
258
258
  case CredentialType.ACCESS_TOKEN:
259
259
  case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:
260
- matchingCredentials.accessTokens[cacheKey] = entity;
260
+ matchingCredentials.accessTokens[updatedCacheKey] = entity;
261
261
  break;
262
262
  case CredentialType.REFRESH_TOKEN:
263
- matchingCredentials.refreshTokens[cacheKey] = entity;
263
+ matchingCredentials.refreshTokens[updatedCacheKey] = entity;
264
264
  break;
265
265
  }
266
266
  });
@@ -459,10 +459,10 @@ var CacheManager = /** @class */ (function () {
459
459
  * @param environment
460
460
  * @param authScheme
461
461
  */
462
- CacheManager.prototype.readCacheRecord = function (account, clientId, scopes, environment, authScheme, keyId) {
462
+ CacheManager.prototype.readCacheRecord = function (account, clientId, request, environment) {
463
463
  var cachedAccount = this.readAccountFromCache(account);
464
464
  var cachedIdToken = this.readIdTokenFromCache(clientId, account);
465
- var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, scopes, authScheme, keyId);
465
+ var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, request);
466
466
  var cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);
467
467
  var cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);
468
468
  if (cachedAccount && cachedIdToken) {
@@ -516,9 +516,14 @@ var CacheManager = /** @class */ (function () {
516
516
  * @param scopes
517
517
  * @param authScheme
518
518
  */
519
- CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, scopes, authScheme, keyId) {
520
- // Distinguish between Bearer and PoP/SSH token cache types
521
- var credentialType = (authScheme && authScheme !== AuthenticationScheme.BEARER) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;
519
+ CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, request) {
520
+ var scopes = new ScopeSet(request.scopes || []);
521
+ var authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;
522
+ /*
523
+ * Distinguish between Bearer and PoP/SSH token cache types
524
+ * Cast to lowercase to handle "bearer" from ADFS
525
+ */
526
+ var credentialType = (authScheme && authScheme.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;
522
527
  var accessTokenFilter = {
523
528
  homeAccountId: account.homeAccountId,
524
529
  environment: account.environment,
@@ -527,7 +532,8 @@ var CacheManager = /** @class */ (function () {
527
532
  realm: account.tenantId,
528
533
  target: scopes.printScopesLowerCase(),
529
534
  tokenType: authScheme,
530
- keyId: keyId
535
+ keyId: request.sshKid,
536
+ requestedClaimsHash: request.requestedClaimsHash
531
537
  };
532
538
  var credentialCache = this.getCredentialsFilteredBy(accessTokenFilter);
533
539
  var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });
@@ -836,6 +842,10 @@ var DefaultStorageClass = /** @class */ (function (_super) {
836
842
  });
837
843
  });
838
844
  };
845
+ DefaultStorageClass.prototype.updateCredentialCacheKey = function () {
846
+ var notImplErr = "Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.";
847
+ throw AuthError.createUnexpectedError(notImplErr);
848
+ };
839
849
  return DefaultStorageClass;
840
850
  }(CacheManager));
841
851