@azure/msal-common 13.1.0 → 13.2.1

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 (141) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +62 -62
  3. package/dist/_virtual/_tslib.js +1 -1
  4. package/dist/account/AuthToken.js +1 -1
  5. package/dist/account/AuthToken.js.map +1 -1
  6. package/dist/account/CcsCredential.js +1 -1
  7. package/dist/account/CcsCredential.js.map +1 -1
  8. package/dist/account/ClientInfo.js +1 -1
  9. package/dist/account/ClientInfo.js.map +1 -1
  10. package/dist/authority/Authority.d.ts +1 -0
  11. package/dist/authority/Authority.d.ts.map +1 -1
  12. package/dist/authority/Authority.js +23 -30
  13. package/dist/authority/Authority.js.map +1 -1
  14. package/dist/authority/AuthorityFactory.js +1 -1
  15. package/dist/authority/AuthorityFactory.js.map +1 -1
  16. package/dist/authority/AuthorityMetadata.js +1 -1
  17. package/dist/authority/AuthorityMetadata.js.map +1 -1
  18. package/dist/authority/AuthorityOptions.js +1 -1
  19. package/dist/authority/AuthorityOptions.js.map +1 -1
  20. package/dist/authority/AuthorityType.js +1 -1
  21. package/dist/authority/AuthorityType.js.map +1 -1
  22. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +1 -1
  23. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js.map +1 -1
  24. package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
  25. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -1
  26. package/dist/authority/OpenIdConfigResponse.js +1 -1
  27. package/dist/authority/OpenIdConfigResponse.js.map +1 -1
  28. package/dist/authority/ProtocolMode.js +1 -1
  29. package/dist/authority/ProtocolMode.js.map +1 -1
  30. package/dist/authority/RegionDiscovery.js +1 -1
  31. package/dist/authority/RegionDiscovery.js.map +1 -1
  32. package/dist/cache/CacheManager.js +1 -1
  33. package/dist/cache/CacheManager.js.map +1 -1
  34. package/dist/cache/entities/AccessTokenEntity.js +1 -1
  35. package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
  36. package/dist/cache/entities/AccountEntity.js +1 -1
  37. package/dist/cache/entities/AccountEntity.js.map +1 -1
  38. package/dist/cache/entities/AppMetadataEntity.js +1 -1
  39. package/dist/cache/entities/AppMetadataEntity.js.map +1 -1
  40. package/dist/cache/entities/AuthorityMetadataEntity.js +1 -1
  41. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -1
  42. package/dist/cache/entities/CacheRecord.js +1 -1
  43. package/dist/cache/entities/CacheRecord.js.map +1 -1
  44. package/dist/cache/entities/CredentialEntity.js +1 -1
  45. package/dist/cache/entities/CredentialEntity.js.map +1 -1
  46. package/dist/cache/entities/IdTokenEntity.js +1 -1
  47. package/dist/cache/entities/IdTokenEntity.js.map +1 -1
  48. package/dist/cache/entities/RefreshTokenEntity.js +1 -1
  49. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -1
  50. package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
  51. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -1
  52. package/dist/cache/entities/ThrottlingEntity.js +1 -1
  53. package/dist/cache/entities/ThrottlingEntity.js.map +1 -1
  54. package/dist/cache/persistence/TokenCacheContext.js +1 -1
  55. package/dist/cache/persistence/TokenCacheContext.js.map +1 -1
  56. package/dist/client/AuthorizationCodeClient.js +1 -1
  57. package/dist/client/AuthorizationCodeClient.js.map +1 -1
  58. package/dist/client/BaseClient.js +1 -1
  59. package/dist/client/BaseClient.js.map +1 -1
  60. package/dist/client/ClientCredentialClient.js +1 -1
  61. package/dist/client/ClientCredentialClient.js.map +1 -1
  62. package/dist/client/DeviceCodeClient.js +1 -1
  63. package/dist/client/DeviceCodeClient.js.map +1 -1
  64. package/dist/client/OnBehalfOfClient.js +1 -1
  65. package/dist/client/OnBehalfOfClient.js.map +1 -1
  66. package/dist/client/RefreshTokenClient.js +1 -1
  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 +15 -8
  70. package/dist/client/SilentFlowClient.js.map +1 -1
  71. package/dist/client/UsernamePasswordClient.js +1 -1
  72. package/dist/client/UsernamePasswordClient.js.map +1 -1
  73. package/dist/config/ClientConfiguration.d.ts +12 -1
  74. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  75. package/dist/config/ClientConfiguration.js +6 -2
  76. package/dist/config/ClientConfiguration.js.map +1 -1
  77. package/dist/crypto/ICrypto.js +1 -1
  78. package/dist/crypto/ICrypto.js.map +1 -1
  79. package/dist/crypto/JoseHeader.js +1 -1
  80. package/dist/crypto/JoseHeader.js.map +1 -1
  81. package/dist/crypto/PopTokenGenerator.js +1 -1
  82. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  83. package/dist/error/AuthError.js +1 -1
  84. package/dist/error/AuthError.js.map +1 -1
  85. package/dist/error/ClientAuthError.js +1 -1
  86. package/dist/error/ClientAuthError.js.map +1 -1
  87. package/dist/error/ClientConfigurationError.js +1 -1
  88. package/dist/error/ClientConfigurationError.js.map +1 -1
  89. package/dist/error/InteractionRequiredAuthError.js +1 -1
  90. package/dist/error/InteractionRequiredAuthError.js.map +1 -1
  91. package/dist/error/JoseHeaderError.js +1 -1
  92. package/dist/error/JoseHeaderError.js.map +1 -1
  93. package/dist/error/ServerError.js +1 -1
  94. package/dist/error/ServerError.js.map +1 -1
  95. package/dist/index.cjs.js +43 -39
  96. package/dist/index.cjs.js.map +1 -1
  97. package/dist/index.d.ts +1 -1
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +1 -1
  100. package/dist/logger/Logger.js +1 -1
  101. package/dist/logger/Logger.js.map +1 -1
  102. package/dist/network/INetworkModule.js +1 -1
  103. package/dist/network/INetworkModule.js.map +1 -1
  104. package/dist/network/NetworkManager.js +1 -1
  105. package/dist/network/NetworkManager.js.map +1 -1
  106. package/dist/network/ThrottlingUtils.js +1 -1
  107. package/dist/network/ThrottlingUtils.js.map +1 -1
  108. package/dist/packageMetadata.d.ts +1 -1
  109. package/dist/packageMetadata.js +2 -2
  110. package/dist/packageMetadata.js.map +1 -1
  111. package/dist/request/AuthenticationHeaderParser.js +1 -1
  112. package/dist/request/AuthenticationHeaderParser.js.map +1 -1
  113. package/dist/request/RequestParameterBuilder.js +1 -1
  114. package/dist/request/RequestParameterBuilder.js.map +1 -1
  115. package/dist/request/RequestValidator.js +1 -1
  116. package/dist/request/RequestValidator.js.map +1 -1
  117. package/dist/request/ScopeSet.js +1 -1
  118. package/dist/request/ScopeSet.js.map +1 -1
  119. package/dist/response/ResponseHandler.js +1 -1
  120. package/dist/response/ResponseHandler.js.map +1 -1
  121. package/dist/telemetry/performance/PerformanceClient.js +1 -1
  122. package/dist/telemetry/performance/PerformanceClient.js.map +1 -1
  123. package/dist/telemetry/performance/PerformanceEvent.js +1 -1
  124. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  125. package/dist/telemetry/performance/StubPerformanceClient.js +1 -1
  126. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  127. package/dist/telemetry/server/ServerTelemetryManager.js +1 -1
  128. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
  129. package/dist/url/UrlString.js +1 -1
  130. package/dist/url/UrlString.js.map +1 -1
  131. package/dist/utils/Constants.d.ts +2 -1
  132. package/dist/utils/Constants.d.ts.map +1 -1
  133. package/dist/utils/Constants.js +2 -1
  134. package/dist/utils/Constants.js.map +1 -1
  135. package/dist/utils/ProtocolUtils.js +1 -1
  136. package/dist/utils/ProtocolUtils.js.map +1 -1
  137. package/dist/utils/StringUtils.js +1 -1
  138. package/dist/utils/StringUtils.js.map +1 -1
  139. package/dist/utils/TimeUtils.js +1 -1
  140. package/dist/utils/TimeUtils.js.map +1 -1
  141. package/package.json +77 -76
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v13.1.0 2023-06-07 */
1
+ /*! @azure/msal-common v13.2.1 2023-08-07 */
2
2
  'use strict';
3
3
  'use strict';
4
4
 
@@ -461,6 +461,7 @@ var CacheOutcome;
461
461
  CacheOutcome["NO_CACHED_ACCESS_TOKEN"] = "2";
462
462
  CacheOutcome["CACHED_ACCESS_TOKEN_EXPIRED"] = "3";
463
463
  CacheOutcome["REFRESH_CACHED_ACCESS_TOKEN"] = "4";
464
+ CacheOutcome["CLAIMS_REQUESTED_CACHE_SKIPPED"] = "5";
464
465
  })(CacheOutcome || (CacheOutcome = {}));
465
466
  var JsonTypes;
466
467
  (function (JsonTypes) {
@@ -1423,7 +1424,7 @@ var Logger = /** @class */ (function () {
1423
1424
 
1424
1425
  /* eslint-disable header/header */
1425
1426
  var name = "@azure/msal-common";
1426
- var version = "13.1.0";
1427
+ var version = "13.2.1";
1427
1428
 
1428
1429
  /*
1429
1430
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -3307,6 +3308,9 @@ var DEFAULT_LOGGER_IMPLEMENTATION = {
3307
3308
  logLevel: exports.LogLevel.Info,
3308
3309
  correlationId: Constants.EMPTY_STRING
3309
3310
  };
3311
+ var DEFAULT_CACHE_OPTIONS = {
3312
+ claimsBasedCachingEnabled: true
3313
+ };
3310
3314
  var DEFAULT_NETWORK_IMPLEMENTATION = {
3311
3315
  sendGetRequestAsync: function () {
3312
3316
  return __awaiter(this, void 0, void 0, function () {
@@ -3355,12 +3359,13 @@ var DEFAULT_TELEMETRY_OPTIONS = {
3355
3359
  * @returns Configuration
3356
3360
  */
3357
3361
  function buildClientConfiguration(_a) {
3358
- var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, telemetry = _a.telemetry, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;
3362
+ var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, userCacheOptions = _a.cacheOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, telemetry = _a.telemetry, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;
3359
3363
  var loggerOptions = __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption);
3360
3364
  return {
3361
3365
  authOptions: buildAuthOptions(userAuthOptions),
3362
3366
  systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),
3363
3367
  loggerOptions: loggerOptions,
3368
+ cacheOptions: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userCacheOptions),
3364
3369
  storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
3365
3370
  networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
3366
3371
  cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
@@ -7100,11 +7105,11 @@ var SilentFlowClient = /** @class */ (function (_super) {
7100
7105
  * @param request
7101
7106
  */
7102
7107
  SilentFlowClient.prototype.acquireCachedToken = function (request) {
7103
- var _a, _b, _c, _d;
7108
+ var _a, _b, _c, _d, _e;
7104
7109
  return __awaiter(this, void 0, void 0, function () {
7105
7110
  var environment, cacheRecord;
7106
- return __generator(this, function (_e) {
7107
- switch (_e.label) {
7111
+ return __generator(this, function (_f) {
7112
+ switch (_f.label) {
7108
7113
  case 0:
7109
7114
  // Cannot renew token if no request object is given.
7110
7115
  if (!request) {
@@ -7116,6 +7121,12 @@ var SilentFlowClient = /** @class */ (function (_super) {
7116
7121
  this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.");
7117
7122
  throw ClientAuthError.createRefreshRequiredError();
7118
7123
  }
7124
+ else if (!this.config.cacheOptions.claimsBasedCachingEnabled && !StringUtils.isEmptyObj(request.claims)) {
7125
+ // Must refresh due to presence of claims in request preventing cache lookup
7126
+ (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.CLAIMS_REQUESTED_CACHE_SKIPPED);
7127
+ this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because claims-based caching is disabled and claims were requested.");
7128
+ throw ClientAuthError.createRefreshRequiredError();
7129
+ }
7119
7130
  // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases
7120
7131
  if (!request.account) {
7121
7132
  throw ClientAuthError.createNoAccountInSilentRequestError();
@@ -7124,20 +7135,20 @@ var SilentFlowClient = /** @class */ (function (_super) {
7124
7135
  cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment);
7125
7136
  if (!cacheRecord.accessToken) {
7126
7137
  // Must refresh due to non-existent access_token.
7127
- (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);
7138
+ (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);
7128
7139
  this.logger.info("SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.");
7129
7140
  throw ClientAuthError.createRefreshRequiredError();
7130
7141
  }
7131
7142
  else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||
7132
7143
  TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {
7133
7144
  // Must refresh due to expired access_token.
7134
- (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);
7145
+ (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);
7135
7146
  this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within " + this.config.systemOptions.tokenRenewalOffsetSeconds + " seconds.");
7136
7147
  throw ClientAuthError.createRefreshRequiredError();
7137
7148
  }
7138
7149
  else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {
7139
7150
  // Must refresh due to the refresh_in value.
7140
- (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);
7151
+ (_e = this.serverTelemetryManager) === null || _e === void 0 ? void 0 : _e.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);
7141
7152
  this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.");
7142
7153
  throw ClientAuthError.createRefreshRequiredError();
7143
7154
  }
@@ -7145,7 +7156,7 @@ var SilentFlowClient = /** @class */ (function (_super) {
7145
7156
  this.config.serverTelemetryManager.incrementCacheHits();
7146
7157
  }
7147
7158
  return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];
7148
- case 1: return [2 /*return*/, _e.sent()];
7159
+ case 1: return [2 /*return*/, _f.sent()];
7149
7160
  }
7150
7161
  });
7151
7162
  });
@@ -7989,42 +8000,35 @@ var Authority = /** @class */ (function () {
7989
8000
  };
7990
8001
  /**
7991
8002
  * Update the retrieved metadata with regional information.
8003
+ * User selected Azure region will be used if configured.
7992
8004
  */
7993
8005
  Authority.prototype.updateMetadataWithRegionalInformation = function (metadata) {
7994
- var _a, _b, _c, _d, _e, _f, _g;
8006
+ var _a, _b, _c, _d;
7995
8007
  return __awaiter(this, void 0, void 0, function () {
7996
- var autodetectedRegionName, azureRegion;
7997
- return __generator(this, function (_h) {
7998
- switch (_h.label) {
8008
+ var userConfiguredAzureRegion, autodetectedRegionName;
8009
+ return __generator(this, function (_e) {
8010
+ switch (_e.label) {
7999
8011
  case 0:
8000
8012
  (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(exports.PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);
8001
- (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(exports.PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);
8002
- return [4 /*yield*/, this.regionDiscovery.detectRegion((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.environmentRegion, this.regionDiscoveryMetadata)];
8003
- case 1:
8004
- autodetectedRegionName = _h.sent();
8005
- azureRegion = ((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG
8006
- ? autodetectedRegionName
8007
- : (_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion;
8008
- if (((_f = this.authorityOptions.azureRegionConfiguration) === null || _f === void 0 ? void 0 : _f.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {
8009
- this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?
8010
- RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :
8011
- RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;
8013
+ userConfiguredAzureRegion = (_b = this.authorityOptions.azureRegionConfiguration) === null || _b === void 0 ? void 0 : _b.azureRegion;
8014
+ if (!userConfiguredAzureRegion) return [3 /*break*/, 2];
8015
+ if (userConfiguredAzureRegion !== Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {
8016
+ this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;
8017
+ this.regionDiscoveryMetadata.region_used = userConfiguredAzureRegion;
8018
+ return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, userConfiguredAzureRegion)];
8012
8019
  }
8013
- else {
8014
- if (autodetectedRegionName) {
8015
- this.regionDiscoveryMetadata.region_outcome = (((_g = this.authorityOptions.azureRegionConfiguration) === null || _g === void 0 ? void 0 : _g.azureRegion) === autodetectedRegionName) ?
8016
- RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :
8017
- RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;
8018
- }
8019
- else {
8020
- this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;
8021
- }
8022
- }
8023
- if (azureRegion) {
8024
- this.regionDiscoveryMetadata.region_used = azureRegion;
8025
- return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, azureRegion)];
8020
+ (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(exports.PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);
8021
+ return [4 /*yield*/, this.regionDiscovery.detectRegion((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.environmentRegion, this.regionDiscoveryMetadata)];
8022
+ case 1:
8023
+ autodetectedRegionName = _e.sent();
8024
+ if (autodetectedRegionName) {
8025
+ this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL;
8026
+ this.regionDiscoveryMetadata.region_used = autodetectedRegionName;
8027
+ return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, autodetectedRegionName)];
8026
8028
  }
8027
- return [2 /*return*/, metadata];
8029
+ this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;
8030
+ _e.label = 2;
8031
+ case 2: return [2 /*return*/, metadata];
8028
8032
  }
8029
8033
  });
8030
8034
  });