@azure/msal-common 15.7.1 → 15.8.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 (157) hide show
  1. package/dist/account/AccountInfo.d.ts +1 -0
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AccountInfo.mjs +1 -1
  4. package/dist/account/AccountInfo.mjs.map +1 -1
  5. package/dist/account/AuthToken.mjs +1 -1
  6. package/dist/account/CcsCredential.mjs +1 -1
  7. package/dist/account/ClientInfo.mjs +1 -1
  8. package/dist/account/TokenClaims.mjs +1 -1
  9. package/dist/authority/Authority.mjs +1 -1
  10. package/dist/authority/AuthorityFactory.mjs +1 -1
  11. package/dist/authority/AuthorityMetadata.mjs +1 -2
  12. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  13. package/dist/authority/AuthorityOptions.mjs +1 -1
  14. package/dist/authority/AuthorityType.mjs +1 -1
  15. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
  16. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
  17. package/dist/authority/OpenIdConfigResponse.mjs +1 -1
  18. package/dist/authority/ProtocolMode.mjs +1 -1
  19. package/dist/authority/RegionDiscovery.mjs +1 -1
  20. package/dist/cache/CacheManager.d.ts +25 -23
  21. package/dist/cache/CacheManager.d.ts.map +1 -1
  22. package/dist/cache/CacheManager.mjs +64 -75
  23. package/dist/cache/CacheManager.mjs.map +1 -1
  24. package/dist/cache/entities/AccountEntity.d.ts +1 -0
  25. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  26. package/dist/cache/entities/AccountEntity.mjs +1 -1
  27. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  28. package/dist/cache/entities/CredentialEntity.d.ts +2 -0
  29. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  30. package/dist/cache/interface/ICacheManager.d.ts +12 -12
  31. package/dist/cache/interface/ICacheManager.d.ts.map +1 -1
  32. package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
  33. package/dist/cache/utils/CacheHelpers.mjs +1 -1
  34. package/dist/client/AuthorizationCodeClient.mjs +3 -3
  35. package/dist/client/BaseClient.d.ts.map +1 -1
  36. package/dist/client/BaseClient.mjs +4 -4
  37. package/dist/client/BaseClient.mjs.map +1 -1
  38. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  39. package/dist/client/RefreshTokenClient.mjs +5 -5
  40. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  41. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  42. package/dist/client/SilentFlowClient.mjs +3 -3
  43. package/dist/client/SilentFlowClient.mjs.map +1 -1
  44. package/dist/config/ClientConfiguration.mjs +2 -2
  45. package/dist/constants/AADServerParamKeys.mjs +1 -1
  46. package/dist/crypto/ICrypto.mjs +1 -1
  47. package/dist/crypto/JoseHeader.mjs +1 -1
  48. package/dist/crypto/PopTokenGenerator.mjs +2 -4
  49. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  50. package/dist/error/AuthError.mjs +2 -2
  51. package/dist/error/AuthErrorCodes.mjs +1 -1
  52. package/dist/error/CacheError.d.ts +8 -1
  53. package/dist/error/CacheError.d.ts.map +1 -1
  54. package/dist/error/CacheError.mjs +26 -7
  55. package/dist/error/CacheError.mjs.map +1 -1
  56. package/dist/error/CacheErrorCodes.d.ts +2 -2
  57. package/dist/error/CacheErrorCodes.d.ts.map +1 -1
  58. package/dist/error/CacheErrorCodes.mjs +4 -4
  59. package/dist/error/CacheErrorCodes.mjs.map +1 -1
  60. package/dist/error/ClientAuthError.mjs +2 -2
  61. package/dist/error/ClientAuthErrorCodes.mjs +1 -1
  62. package/dist/error/ClientConfigurationError.mjs +2 -2
  63. package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
  64. package/dist/error/InteractionRequiredAuthError.mjs +2 -2
  65. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
  66. package/dist/error/JoseHeaderError.mjs +2 -2
  67. package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
  68. package/dist/error/NetworkError.mjs +1 -1
  69. package/dist/error/ServerError.mjs +1 -1
  70. package/dist/exports-common.d.ts +1 -1
  71. package/dist/exports-common.d.ts.map +1 -1
  72. package/dist/index-browser.mjs +2 -2
  73. package/dist/index-node.mjs +2 -2
  74. package/dist/index.mjs +2 -2
  75. package/dist/logger/Logger.mjs +1 -1
  76. package/dist/network/INetworkModule.mjs +1 -1
  77. package/dist/network/RequestThumbprint.mjs +1 -1
  78. package/dist/network/ThrottlingUtils.d.ts +2 -2
  79. package/dist/network/ThrottlingUtils.d.ts.map +1 -1
  80. package/dist/network/ThrottlingUtils.mjs +6 -6
  81. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  82. package/dist/packageMetadata.d.ts +1 -1
  83. package/dist/packageMetadata.mjs +2 -2
  84. package/dist/protocol/Authorize.mjs +2 -2
  85. package/dist/request/AuthenticationHeaderParser.mjs +1 -1
  86. package/dist/request/RequestParameterBuilder.mjs +2 -2
  87. package/dist/request/RequestValidator.mjs +1 -1
  88. package/dist/request/ScopeSet.mjs +1 -1
  89. package/dist/response/ResponseHandler.d.ts +1 -1
  90. package/dist/response/ResponseHandler.d.ts.map +1 -1
  91. package/dist/response/ResponseHandler.mjs +6 -6
  92. package/dist/response/ResponseHandler.mjs.map +1 -1
  93. package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
  94. package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
  95. package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
  96. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  97. package/dist/telemetry/server/ServerTelemetryManager.mjs +7 -7
  98. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  99. package/dist/url/UrlString.mjs +1 -1
  100. package/dist/utils/ClientAssertionUtils.mjs +1 -1
  101. package/dist/utils/Constants.mjs +1 -4
  102. package/dist/utils/Constants.mjs.map +1 -1
  103. package/dist/utils/FunctionWrappers.mjs +1 -1
  104. package/dist/utils/ProtocolUtils.mjs +1 -1
  105. package/dist/utils/StringUtils.mjs +1 -1
  106. package/dist/utils/TimeUtils.mjs +1 -1
  107. package/dist/utils/UrlUtils.mjs +1 -1
  108. package/lib/index-browser.cjs +3 -2
  109. package/lib/index-browser.cjs.map +1 -1
  110. package/lib/{index-node-B6ITzmFz.js → index-node-2PsHlOld.js} +112 -110
  111. package/lib/index-node-2PsHlOld.js.map +1 -0
  112. package/lib/index-node.cjs +3 -2
  113. package/lib/index-node.cjs.map +1 -1
  114. package/lib/index.cjs +3 -2
  115. package/lib/index.cjs.map +1 -1
  116. package/lib/types/account/AccountInfo.d.ts +1 -0
  117. package/lib/types/account/AccountInfo.d.ts.map +1 -1
  118. package/lib/types/cache/CacheManager.d.ts +25 -23
  119. package/lib/types/cache/CacheManager.d.ts.map +1 -1
  120. package/lib/types/cache/entities/AccountEntity.d.ts +1 -0
  121. package/lib/types/cache/entities/AccountEntity.d.ts.map +1 -1
  122. package/lib/types/cache/entities/CredentialEntity.d.ts +2 -0
  123. package/lib/types/cache/entities/CredentialEntity.d.ts.map +1 -1
  124. package/lib/types/cache/interface/ICacheManager.d.ts +12 -12
  125. package/lib/types/cache/interface/ICacheManager.d.ts.map +1 -1
  126. package/lib/types/client/BaseClient.d.ts.map +1 -1
  127. package/lib/types/client/RefreshTokenClient.d.ts.map +1 -1
  128. package/lib/types/client/SilentFlowClient.d.ts.map +1 -1
  129. package/lib/types/error/CacheError.d.ts +8 -1
  130. package/lib/types/error/CacheError.d.ts.map +1 -1
  131. package/lib/types/error/CacheErrorCodes.d.ts +2 -2
  132. package/lib/types/error/CacheErrorCodes.d.ts.map +1 -1
  133. package/lib/types/exports-common.d.ts +1 -1
  134. package/lib/types/exports-common.d.ts.map +1 -1
  135. package/lib/types/network/ThrottlingUtils.d.ts +2 -2
  136. package/lib/types/network/ThrottlingUtils.d.ts.map +1 -1
  137. package/lib/types/packageMetadata.d.ts +1 -1
  138. package/lib/types/response/ResponseHandler.d.ts +1 -1
  139. package/lib/types/response/ResponseHandler.d.ts.map +1 -1
  140. package/lib/types/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  141. package/package.json +1 -1
  142. package/src/account/AccountInfo.ts +1 -0
  143. package/src/cache/CacheManager.ts +129 -98
  144. package/src/cache/entities/AccountEntity.ts +1 -0
  145. package/src/cache/entities/CredentialEntity.ts +2 -0
  146. package/src/cache/interface/ICacheManager.ts +30 -12
  147. package/src/client/BaseClient.ts +11 -2
  148. package/src/client/RefreshTokenClient.ts +6 -3
  149. package/src/client/SilentFlowClient.ts +6 -3
  150. package/src/error/CacheError.ts +26 -5
  151. package/src/error/CacheErrorCodes.ts +2 -2
  152. package/src/exports-common.ts +5 -1
  153. package/src/network/ThrottlingUtils.ts +8 -5
  154. package/src/packageMetadata.ts +1 -1
  155. package/src/response/ResponseHandler.ts +7 -2
  156. package/src/telemetry/server/ServerTelemetryManager.ts +14 -6
  157. package/lib/index-node-B6ITzmFz.js.map +0 -1
@@ -212,9 +212,9 @@ export class RefreshTokenClient extends BaseClient {
212
212
  )(
213
213
  request.account,
214
214
  foci,
215
+ request.correlationId,
215
216
  undefined,
216
- this.performanceClient,
217
- request.correlationId
217
+ this.performanceClient
218
218
  );
219
219
 
220
220
  if (!refreshToken) {
@@ -274,7 +274,10 @@ export class RefreshTokenClient extends BaseClient {
274
274
  );
275
275
  const badRefreshTokenKey =
276
276
  generateCredentialKey(refreshToken);
277
- this.cacheManager.removeRefreshToken(badRefreshTokenKey);
277
+ this.cacheManager.removeRefreshToken(
278
+ badRefreshTokenKey,
279
+ request.correlationId
280
+ );
278
281
  }
279
282
  }
280
283
 
@@ -115,14 +115,17 @@ export class SilentFlowClient extends BaseClient {
115
115
  const environment =
116
116
  request.authority || this.authority.getPreferredCache();
117
117
  const cacheRecord: CacheRecord = {
118
- account: this.cacheManager.readAccountFromCache(request.account),
118
+ account: this.cacheManager.readAccountFromCache(
119
+ request.account,
120
+ request.correlationId
121
+ ),
119
122
  accessToken: cachedAccessToken,
120
123
  idToken: this.cacheManager.getIdToken(
121
124
  request.account,
125
+ request.correlationId,
122
126
  tokenKeys,
123
127
  requestTenantId,
124
- this.performanceClient,
125
- request.correlationId
128
+ this.performanceClient
126
129
  ),
127
130
  refreshToken: null,
128
131
  appMetadata:
@@ -3,20 +3,20 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import { AuthError } from "./AuthError.js";
6
7
  import * as CacheErrorCodes from "./CacheErrorCodes.js";
7
8
  export { CacheErrorCodes };
8
9
 
9
10
  export const CacheErrorMessages = {
10
- [CacheErrorCodes.cacheQuotaExceededErrorCode]:
11
- "Exceeded cache storage capacity.",
12
- [CacheErrorCodes.cacheUnknownErrorCode]:
11
+ [CacheErrorCodes.cacheQuotaExceeded]: "Exceeded cache storage capacity.",
12
+ [CacheErrorCodes.cacheErrorUnknown]:
13
13
  "Unexpected error occurred when using cache storage.",
14
14
  };
15
15
 
16
16
  /**
17
17
  * Error thrown when there is an error with the cache
18
18
  */
19
- export class CacheError extends Error {
19
+ export class CacheError extends AuthError {
20
20
  /**
21
21
  * Short string denoting error
22
22
  */
@@ -32,7 +32,7 @@ export class CacheError extends Error {
32
32
  errorMessage ||
33
33
  (CacheErrorMessages[errorCode]
34
34
  ? CacheErrorMessages[errorCode]
35
- : CacheErrorMessages[CacheErrorCodes.cacheUnknownErrorCode]);
35
+ : CacheErrorMessages[CacheErrorCodes.cacheErrorUnknown]);
36
36
 
37
37
  super(`${errorCode}: ${message}`);
38
38
  Object.setPrototypeOf(this, CacheError.prototype);
@@ -42,3 +42,24 @@ export class CacheError extends Error {
42
42
  this.errorMessage = message;
43
43
  }
44
44
  }
45
+
46
+ /**
47
+ * Helper function to wrap browser errors in a CacheError object
48
+ * @param e
49
+ * @returns
50
+ */
51
+ export function createCacheError(e: unknown): CacheError {
52
+ if (!(e instanceof Error)) {
53
+ return new CacheError(CacheErrorCodes.cacheErrorUnknown);
54
+ }
55
+
56
+ if (
57
+ e.name === "QuotaExceededError" ||
58
+ e.name === "NS_ERROR_DOM_QUOTA_REACHED" ||
59
+ e.message.includes("exceeded the quota")
60
+ ) {
61
+ return new CacheError(CacheErrorCodes.cacheQuotaExceeded);
62
+ } else {
63
+ return new CacheError(e.name, e.message);
64
+ }
65
+ }
@@ -3,5 +3,5 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- export const cacheQuotaExceededErrorCode = "cache_quota_exceeded";
7
- export const cacheUnknownErrorCode = "cache_error_unknown";
6
+ export const cacheQuotaExceeded = "cache_quota_exceeded";
7
+ export const cacheErrorUnknown = "cache_error_unknown";
@@ -142,7 +142,11 @@ export {
142
142
  } from "./error/AuthError.js";
143
143
  export { ServerError } from "./error/ServerError.js";
144
144
  export { NetworkError, createNetworkError } from "./error/NetworkError.js";
145
- export { CacheError, CacheErrorCodes } from "./error/CacheError.js";
145
+ export {
146
+ CacheError,
147
+ CacheErrorCodes,
148
+ createCacheError,
149
+ } from "./error/CacheError.js";
146
150
  export {
147
151
  ClientAuthError,
148
152
  ClientAuthErrorMessage,
@@ -38,14 +38,15 @@ export class ThrottlingUtils {
38
38
  */
39
39
  static preProcess(
40
40
  cacheManager: CacheManager,
41
- thumbprint: RequestThumbprint
41
+ thumbprint: RequestThumbprint,
42
+ correlationId: string
42
43
  ): void {
43
44
  const key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);
44
45
  const value = cacheManager.getThrottlingCache(key);
45
46
 
46
47
  if (value) {
47
48
  if (value.throttleTime < Date.now()) {
48
- cacheManager.removeItem(key);
49
+ cacheManager.removeItem(key, correlationId);
49
50
  return;
50
51
  }
51
52
  throw new ServerError(
@@ -65,7 +66,8 @@ export class ThrottlingUtils {
65
66
  static postProcess(
66
67
  cacheManager: CacheManager,
67
68
  thumbprint: RequestThumbprint,
68
- response: NetworkResponse<ServerAuthorizationTokenResponse>
69
+ response: NetworkResponse<ServerAuthorizationTokenResponse>,
70
+ correlationId: string
69
71
  ): void {
70
72
  if (
71
73
  ThrottlingUtils.checkResponseStatus(response) ||
@@ -82,7 +84,8 @@ export class ThrottlingUtils {
82
84
  };
83
85
  cacheManager.setThrottlingCache(
84
86
  ThrottlingUtils.generateThrottlingStorageKey(thumbprint),
85
- thumbprintValue
87
+ thumbprintValue,
88
+ correlationId
86
89
  );
87
90
  }
88
91
  }
@@ -146,6 +149,6 @@ export class ThrottlingUtils {
146
149
  homeAccountIdentifier
147
150
  );
148
151
  const key = this.generateThrottlingStorageKey(thumbprint);
149
- cacheManager.removeItem(key);
152
+ cacheManager.removeItem(key, request.correlationId);
150
153
  }
151
154
  }
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable header/header */
2
2
  export const name = "@azure/msal-common";
3
- export const version = "15.7.1";
3
+ export const version = "15.8.0";
@@ -279,7 +279,10 @@ export class ResponseHandler {
279
279
  cacheRecord.account
280
280
  ) {
281
281
  const key = cacheRecord.account.generateAccountKey();
282
- const account = this.cacheStorage.getAccount(key);
282
+ const account = this.cacheStorage.getAccount(
283
+ key,
284
+ request.correlationId
285
+ );
283
286
  if (!account) {
284
287
  this.logger.warning(
285
288
  "Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"
@@ -369,6 +372,7 @@ export class ResponseHandler {
369
372
  authority,
370
373
  this.homeAccountIdentifier,
371
374
  this.cryptoObj.base64Decode,
375
+ request.correlationId,
372
376
  idTokenClaims,
373
377
  serverTokenResponse.client_info,
374
378
  env,
@@ -610,6 +614,7 @@ export function buildAccountToCache(
610
614
  authority: Authority,
611
615
  homeAccountId: string,
612
616
  base64Decode: (input: string) => string,
617
+ correlationId: string,
613
618
  idTokenClaims?: TokenClaims,
614
619
  clientInfo?: string,
615
620
  environment?: string,
@@ -628,7 +633,7 @@ export function buildAccountToCache(
628
633
 
629
634
  let cachedAccount: AccountEntity | null = null;
630
635
  if (baseAccountKey) {
631
- cachedAccount = cacheStorage.getAccount(baseAccountKey);
636
+ cachedAccount = cacheStorage.getAccount(baseAccountKey, correlationId);
632
637
  }
633
638
 
634
639
  const baseAccount =
@@ -204,7 +204,8 @@ export class ServerTelemetryManager {
204
204
 
205
205
  this.cacheManager.setServerTelemetry(
206
206
  this.telemetryCacheKey,
207
- lastRequests
207
+ lastRequests,
208
+ this.correlationId
208
209
  );
209
210
 
210
211
  return;
@@ -219,7 +220,8 @@ export class ServerTelemetryManager {
219
220
 
220
221
  this.cacheManager.setServerTelemetry(
221
222
  this.telemetryCacheKey,
222
- lastRequests
223
+ lastRequests,
224
+ this.correlationId
223
225
  );
224
226
  return lastRequests.cacheHits;
225
227
  }
@@ -250,7 +252,10 @@ export class ServerTelemetryManager {
250
252
  const errorCount = lastRequests.errors.length;
251
253
  if (numErrorsFlushed === errorCount) {
252
254
  // All errors were sent on last request, clear Telemetry cache
253
- this.cacheManager.removeItem(this.telemetryCacheKey);
255
+ this.cacheManager.removeItem(
256
+ this.telemetryCacheKey,
257
+ this.correlationId
258
+ );
254
259
  } else {
255
260
  // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed
256
261
  const serverTelemEntity: ServerTelemetryEntity = {
@@ -263,7 +268,8 @@ export class ServerTelemetryManager {
263
268
 
264
269
  this.cacheManager.setServerTelemetry(
265
270
  this.telemetryCacheKey,
266
- serverTelemEntity
271
+ serverTelemEntity,
272
+ this.correlationId
267
273
  );
268
274
  }
269
275
  }
@@ -351,7 +357,8 @@ export class ServerTelemetryManager {
351
357
  lastRequests.nativeBrokerErrorCode = errorCode;
352
358
  this.cacheManager.setServerTelemetry(
353
359
  this.telemetryCacheKey,
354
- lastRequests
360
+ lastRequests,
361
+ this.correlationId
355
362
  );
356
363
  }
357
364
 
@@ -364,7 +371,8 @@ export class ServerTelemetryManager {
364
371
  delete lastRequests.nativeBrokerErrorCode;
365
372
  this.cacheManager.setServerTelemetry(
366
373
  this.telemetryCacheKey,
367
- lastRequests
374
+ lastRequests,
375
+ this.correlationId
368
376
  );
369
377
  }
370
378