@azure/msal-common 7.5.0 → 8.0.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 (85) 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/authority/Authority.js +1 -1
  6. package/dist/authority/AuthorityFactory.js +1 -1
  7. package/dist/authority/AuthorityMetadata.js +1 -1
  8. package/dist/authority/AuthorityOptions.js +1 -1
  9. package/dist/authority/AuthorityType.js +1 -1
  10. package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
  11. package/dist/authority/OpenIdConfigResponse.js +1 -1
  12. package/dist/authority/ProtocolMode.js +1 -1
  13. package/dist/authority/RegionDiscovery.js +1 -1
  14. package/dist/cache/CacheManager.d.ts.map +1 -1
  15. package/dist/cache/CacheManager.js +7 -3
  16. package/dist/cache/CacheManager.js.map +1 -1
  17. package/dist/cache/entities/AccessTokenEntity.js +1 -1
  18. package/dist/cache/entities/AccountEntity.js +1 -1
  19. package/dist/cache/entities/AppMetadataEntity.js +1 -1
  20. package/dist/cache/entities/AuthorityMetadataEntity.js +1 -1
  21. package/dist/cache/entities/CacheRecord.js +1 -1
  22. package/dist/cache/entities/CredentialEntity.js +1 -1
  23. package/dist/cache/entities/IdTokenEntity.js +1 -1
  24. package/dist/cache/entities/RefreshTokenEntity.js +1 -1
  25. package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
  26. package/dist/cache/entities/ThrottlingEntity.js +1 -1
  27. package/dist/cache/persistence/TokenCacheContext.js +1 -1
  28. package/dist/client/AuthorizationCodeClient.js +1 -1
  29. package/dist/client/BaseClient.js +1 -1
  30. package/dist/client/ClientCredentialClient.js +1 -1
  31. package/dist/client/DeviceCodeClient.js +1 -1
  32. package/dist/client/OnBehalfOfClient.js +1 -1
  33. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  34. package/dist/client/RefreshTokenClient.js +11 -11
  35. package/dist/client/RefreshTokenClient.js.map +1 -1
  36. package/dist/client/SilentFlowClient.js +1 -1
  37. package/dist/client/UsernamePasswordClient.js +1 -1
  38. package/dist/config/ClientConfiguration.js +1 -1
  39. package/dist/crypto/ICrypto.js +1 -1
  40. package/dist/crypto/JoseHeader.js +1 -1
  41. package/dist/crypto/PopTokenGenerator.js +1 -1
  42. package/dist/error/AuthError.js +1 -1
  43. package/dist/error/ClientAuthError.js +1 -1
  44. package/dist/error/ClientConfigurationError.js +1 -1
  45. package/dist/error/InteractionRequiredAuthError.js +1 -1
  46. package/dist/error/JoseHeaderError.js +1 -1
  47. package/dist/error/ServerError.js +1 -1
  48. package/dist/index.cjs.js +47 -26
  49. package/dist/index.cjs.js.map +1 -1
  50. package/dist/index.d.ts +2 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +2 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/logger/Logger.js +1 -1
  55. package/dist/network/INetworkModule.js +1 -1
  56. package/dist/network/NetworkManager.js +1 -1
  57. package/dist/network/ThrottlingUtils.js +1 -1
  58. package/dist/packageMetadata.d.ts +1 -1
  59. package/dist/packageMetadata.js +2 -2
  60. package/dist/packageMetadata.js.map +1 -1
  61. package/dist/request/AuthenticationHeaderParser.js +1 -1
  62. package/dist/request/RequestParameterBuilder.js +1 -1
  63. package/dist/request/RequestValidator.js +1 -1
  64. package/dist/request/ScopeSet.js +1 -1
  65. package/dist/response/ExternalTokenResponse.d.ts +2 -1
  66. package/dist/response/ExternalTokenResponse.d.ts.map +1 -1
  67. package/dist/response/ResponseHandler.js +1 -1
  68. package/dist/telemetry/performance/IPerformanceClient.d.ts +3 -1
  69. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  70. package/dist/telemetry/performance/PerformanceClient.d.ts +12 -1
  71. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  72. package/dist/telemetry/performance/PerformanceClient.js +29 -13
  73. package/dist/telemetry/performance/PerformanceClient.js.map +1 -1
  74. package/dist/telemetry/performance/PerformanceEvent.d.ts +62 -39
  75. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  76. package/dist/telemetry/performance/PerformanceEvent.js +1 -1
  77. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  78. package/dist/telemetry/performance/StubPerformanceClient.js +1 -1
  79. package/dist/telemetry/server/ServerTelemetryManager.js +1 -1
  80. package/dist/url/UrlString.js +1 -1
  81. package/dist/utils/Constants.js +1 -1
  82. package/dist/utils/ProtocolUtils.js +1 -1
  83. package/dist/utils/StringUtils.js +1 -1
  84. package/dist/utils/TimeUtils.js +1 -1
  85. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';
4
4
  import { BaseClient } from './BaseClient.js';
@@ -30,27 +30,28 @@ var RefreshTokenClient = /** @class */ (function (_super) {
30
30
  return _super.call(this, configuration, performanceClient) || this;
31
31
  }
32
32
  RefreshTokenClient.prototype.acquireToken = function (request) {
33
- var _a, _b;
33
+ var _a, _b, _c;
34
34
  return __awaiter(this, void 0, void 0, function () {
35
35
  var atsMeasurement, reqTimestamp, response, requestId, responseHandler;
36
36
  var _this = this;
37
- return __generator(this, function (_c) {
38
- switch (_c.label) {
37
+ return __generator(this, function (_d) {
38
+ switch (_d.label) {
39
39
  case 0:
40
40
  atsMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);
41
41
  this.logger.verbose("RefreshTokenClientAcquireToken called", request.correlationId);
42
42
  reqTimestamp = TimeUtils.nowSeconds();
43
43
  return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];
44
44
  case 1:
45
- response = _c.sent();
46
- requestId = (_b = response.headers) === null || _b === void 0 ? void 0 : _b[HeaderNames.X_MS_REQUEST_ID];
45
+ response = _d.sent();
46
+ atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({
47
+ refreshTokenSize: ((_b = response.body.refresh_token) === null || _b === void 0 ? void 0 : _b.length) || 0
48
+ });
49
+ requestId = (_c = response.headers) === null || _c === void 0 ? void 0 : _c[HeaderNames.X_MS_REQUEST_ID];
47
50
  responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);
48
51
  responseHandler.validateTokenResponse(response.body);
49
52
  return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true, request.forceCache, requestId).then(function (result) {
50
- var _a;
51
53
  atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({
52
- success: true,
53
- refreshTokenSize: ((_a = response.body.refresh_token) === null || _a === void 0 ? void 0 : _a.length) || 0
54
+ success: true
54
55
  });
55
56
  return result;
56
57
  })
@@ -59,8 +60,7 @@ var RefreshTokenClient = /** @class */ (function (_super) {
59
60
  atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({
60
61
  errorCode: error.errorCode,
61
62
  subErrorCode: error.subError,
62
- success: false,
63
- refreshTokenSize: undefined
63
+ success: false
64
64
  });
65
65
  throw error;
66
66
  })];
@@ -1 +1 @@
1
- {"version":3,"file":"RefreshTokenClient.js","sources":["../../src/client/RefreshTokenClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientConfiguration } from \"../config/ClientConfiguration\";\nimport { BaseClient } from \"./BaseClient\";\nimport { CommonRefreshTokenRequest } from \"../request/CommonRefreshTokenRequest\";\nimport { Authority } from \"../authority/Authority\";\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\nimport { RequestParameterBuilder } from \"../request/RequestParameterBuilder\";\nimport { GrantType, AuthenticationScheme, Errors, HeaderNames } from \"../utils/Constants\";\nimport { ResponseHandler } from \"../response/ResponseHandler\";\nimport { AuthenticationResult } from \"../response/AuthenticationResult\";\nimport { PopTokenGenerator } from \"../crypto/PopTokenGenerator\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { RequestThumbprint } from \"../network/RequestThumbprint\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { CommonSilentFlowRequest } from \"../request/CommonSilentFlowRequest\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { ServerError } from \"../error/ServerError\";\nimport { TimeUtils } from \"../utils/TimeUtils\";\nimport { UrlString } from \"../url/UrlString\";\nimport { CcsCredentialType } from \"../account/CcsCredential\";\nimport { buildClientInfoFromHomeAccountId } from \"../account/ClientInfo\";\nimport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from \"../error/InteractionRequiredAuthError\";\nimport { PerformanceEvents } from \"../telemetry/performance/PerformanceEvent\";\nimport { IPerformanceClient } from \"../telemetry/performance/IPerformanceClient\";\n/**\n * OAuth2.0 refresh token client\n */\nexport class RefreshTokenClient extends BaseClient {\n constructor(configuration: ClientConfiguration, performanceClient?: IPerformanceClient) {\n super(configuration, performanceClient);\n\n }\n public async acquireToken(request: CommonRefreshTokenRequest): Promise<AuthenticationResult> {\n const atsMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\n this.logger.verbose(\"RefreshTokenClientAcquireToken called\", request.correlationId);\n const reqTimestamp = TimeUtils.nowSeconds();\n const response = await this.executeTokenRequest(request, this.authority);\n\n // Retrieve requestId from response headers\n const requestId = response.headers?.[HeaderNames.X_MS_REQUEST_ID];\n\n const responseHandler = new ResponseHandler(\n this.config.authOptions.clientId,\n this.cacheManager,\n this.cryptoUtils,\n this.logger,\n this.config.serializableCache,\n this.config.persistencePlugin\n );\n\n responseHandler.validateTokenResponse(response.body);\n\n return responseHandler.handleServerTokenResponse(\n response.body,\n this.authority,\n reqTimestamp,\n request,\n undefined,\n undefined,\n true,\n request.forceCache,\n requestId\n ).then((result: AuthenticationResult) => {\n atsMeasurement?.endMeasurement({\n success: true,\n refreshTokenSize: response.body.refresh_token?.length || 0\n });\n return result;\n })\n .catch((error) => {\n this.logger.verbose(\"Error in fetching refresh token\", request.correlationId);\n atsMeasurement?.endMeasurement({\n errorCode: error.errorCode,\n subErrorCode: error.subError,\n success: false,\n refreshTokenSize: undefined\n });\n throw error;\n });\n }\n\n /**\n * Gets cached refresh token and attaches to request, then calls acquireToken API\n * @param request\n */\n public async acquireTokenByRefreshToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n // Cannot renew token if no request object is given.\n if (!request) {\n throw ClientConfigurationError.createEmptyTokenRequestError();\n }\n\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\n if (!request.account) {\n throw ClientAuthError.createNoAccountInSilentRequestError();\n }\n\n // try checking if FOCI is enabled for the given application\n const isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\n\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\n if (isFOCI) {\n try {\n return this.acquireTokenWithCachedRefreshToken(request, true);\n } catch (e) {\n const noFamilyRTInCache = e instanceof InteractionRequiredAuthError && e.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code;\n const clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\n\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\n return this.acquireTokenWithCachedRefreshToken(request, false);\n // throw in all other cases\n } else {\n throw e;\n }\n }\n }\n // fall back to application refresh token acquisition\n return this.acquireTokenWithCachedRefreshToken(request, false);\n\n }\n\n /**\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\n * @param request\n */\n private async acquireTokenWithCachedRefreshToken(request: CommonSilentFlowRequest, foci: boolean) {\n // fetches family RT or application RT based on FOCI value\n\n const atsMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\n this.logger.verbose(\"RefreshTokenClientAcquireTokenWithCachedRefreshToken called\", request.correlationId);\n const refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\n\n if (!refreshToken) {\n atsMeasurement?.discardMeasurement();\n throw InteractionRequiredAuthError.createNoTokensFoundError();\n }\n // attach cached RT size to the current measurement\n atsMeasurement?.endMeasurement({\n success: true\n });\n\n const refreshTokenRequest: CommonRefreshTokenRequest = {\n ...request,\n refreshToken: refreshToken.secret,\n authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER,\n ccsCredential: {\n credential: request.account.homeAccountId,\n type: CcsCredentialType.HOME_ACCOUNT_ID\n }\n };\n\n return this.acquireToken(refreshTokenRequest);\n }\n\n /**\n * Constructs the network message and makes a NW call to the underlying secure token service\n * @param request\n * @param authority\n */\n private async executeTokenRequest(request: CommonRefreshTokenRequest, authority: Authority)\n : Promise<NetworkResponse<ServerAuthorizationTokenResponse>> {\n const acquireTokenMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\n const requestBody = await this.createTokenRequestBody(request);\n const queryParameters = this.createTokenQueryParameters(request);\n const headers: Record<string, string> = this.createTokenRequestHeaders(request.ccsCredential);\n const thumbprint: RequestThumbprint = {\n clientId: this.config.authOptions.clientId,\n authority: authority.canonicalAuthority,\n scopes: request.scopes,\n claims: request.claims,\n authenticationScheme: request.authenticationScheme,\n resourceRequestMethod: request.resourceRequestMethod,\n resourceRequestUri: request.resourceRequestUri,\n shrClaims: request.shrClaims,\n sshKid: request.sshKid\n };\n\n const endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParameters);\n return this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)\n .then((result) => {\n acquireTokenMeasurement?.endMeasurement({\n success: true\n });\n return result;\n })\n .catch((error) => {\n acquireTokenMeasurement?.endMeasurement({\n success: false\n });\n throw error;\n });\n }\n\n /**\n * Creates query string for the /token request\n * @param request\n */\n private createTokenQueryParameters(request: CommonRefreshTokenRequest): string {\n const parameterBuilder = new RequestParameterBuilder();\n\n if (request.tokenQueryParameters) {\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\n }\n\n return parameterBuilder.createQueryString();\n }\n\n /**\n * Helper function to create the token request body\n * @param request\n */\n private async createTokenRequestBody(request: CommonRefreshTokenRequest): Promise<string> {\n const correlationId = request.correlationId;\n const acquireTokenMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.BaseClientCreateTokenRequestHeaders, correlationId);\n const parameterBuilder = new RequestParameterBuilder();\n\n parameterBuilder.addClientId(this.config.authOptions.clientId);\n\n parameterBuilder.addScopes(request.scopes);\n\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\n\n parameterBuilder.addClientInfo();\n\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\n parameterBuilder.addThrottling();\n\n if (this.serverTelemetryManager) {\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\n }\n\n parameterBuilder.addCorrelationId(correlationId);\n\n parameterBuilder.addRefreshToken(request.refreshToken);\n\n if (this.config.clientCredentials.clientSecret) {\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\n }\n\n if (this.config.clientCredentials.clientAssertion) {\n const clientAssertion = this.config.clientCredentials.clientAssertion;\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\n }\n\n if (request.authenticationScheme === AuthenticationScheme.POP) {\n const popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\n const reqCnfData = await popTokenGenerator.generateCnf(request);\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\n } else if (request.authenticationScheme === AuthenticationScheme.SSH) {\n if (request.sshJwk) {\n parameterBuilder.addSshJwk(request.sshJwk);\n } else {\n acquireTokenMeasurement?.endMeasurement({\n success: false\n });\n throw ClientConfigurationError.createMissingSshJwkError();\n }\n }\n\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\n }\n\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\n switch (request.ccsCredential.type) {\n case CcsCredentialType.HOME_ACCOUNT_ID:\n try {\n const clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\n parameterBuilder.addCcsOid(clientInfo);\n } catch (e) {\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\n }\n break;\n case CcsCredentialType.UPN:\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\n break;\n }\n }\n acquireTokenMeasurement?.endMeasurement({\n success: true\n });\n return parameterBuilder.createQueryString();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RefreshTokenClient.js","sources":["../../src/client/RefreshTokenClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientConfiguration } from \"../config/ClientConfiguration\";\nimport { BaseClient } from \"./BaseClient\";\nimport { CommonRefreshTokenRequest } from \"../request/CommonRefreshTokenRequest\";\nimport { Authority } from \"../authority/Authority\";\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\nimport { RequestParameterBuilder } from \"../request/RequestParameterBuilder\";\nimport { GrantType, AuthenticationScheme, Errors, HeaderNames } from \"../utils/Constants\";\nimport { ResponseHandler } from \"../response/ResponseHandler\";\nimport { AuthenticationResult } from \"../response/AuthenticationResult\";\nimport { PopTokenGenerator } from \"../crypto/PopTokenGenerator\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { RequestThumbprint } from \"../network/RequestThumbprint\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { CommonSilentFlowRequest } from \"../request/CommonSilentFlowRequest\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { ServerError } from \"../error/ServerError\";\nimport { TimeUtils } from \"../utils/TimeUtils\";\nimport { UrlString } from \"../url/UrlString\";\nimport { CcsCredentialType } from \"../account/CcsCredential\";\nimport { buildClientInfoFromHomeAccountId } from \"../account/ClientInfo\";\nimport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from \"../error/InteractionRequiredAuthError\";\nimport { PerformanceEvents } from \"../telemetry/performance/PerformanceEvent\";\nimport { IPerformanceClient } from \"../telemetry/performance/IPerformanceClient\";\n/**\n * OAuth2.0 refresh token client\n */\nexport class RefreshTokenClient extends BaseClient {\n constructor(configuration: ClientConfiguration, performanceClient?: IPerformanceClient) {\n super(configuration, performanceClient);\n\n }\n public async acquireToken(request: CommonRefreshTokenRequest): Promise<AuthenticationResult> {\n const atsMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\n this.logger.verbose(\"RefreshTokenClientAcquireToken called\", request.correlationId);\n const reqTimestamp = TimeUtils.nowSeconds();\n const response = await this.executeTokenRequest(request, this.authority);\n atsMeasurement?.addStaticFields({\n refreshTokenSize: response.body.refresh_token?.length || 0\n });\n\n // Retrieve requestId from response headers\n const requestId = response.headers?.[HeaderNames.X_MS_REQUEST_ID];\n\n const responseHandler = new ResponseHandler(\n this.config.authOptions.clientId,\n this.cacheManager,\n this.cryptoUtils,\n this.logger,\n this.config.serializableCache,\n this.config.persistencePlugin\n );\n\n responseHandler.validateTokenResponse(response.body);\n\n return responseHandler.handleServerTokenResponse(\n response.body,\n this.authority,\n reqTimestamp,\n request,\n undefined,\n undefined,\n true,\n request.forceCache,\n requestId\n ).then((result: AuthenticationResult) => {\n atsMeasurement?.endMeasurement({\n success: true\n });\n return result;\n })\n .catch((error) => {\n this.logger.verbose(\"Error in fetching refresh token\", request.correlationId);\n atsMeasurement?.endMeasurement({\n errorCode: error.errorCode,\n subErrorCode: error.subError,\n success: false\n });\n throw error;\n });\n }\n\n /**\n * Gets cached refresh token and attaches to request, then calls acquireToken API\n * @param request\n */\n public async acquireTokenByRefreshToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n // Cannot renew token if no request object is given.\n if (!request) {\n throw ClientConfigurationError.createEmptyTokenRequestError();\n }\n\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\n if (!request.account) {\n throw ClientAuthError.createNoAccountInSilentRequestError();\n }\n\n // try checking if FOCI is enabled for the given application\n const isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\n\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\n if (isFOCI) {\n try {\n return this.acquireTokenWithCachedRefreshToken(request, true);\n } catch (e) {\n const noFamilyRTInCache = e instanceof InteractionRequiredAuthError && e.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code;\n const clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\n\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\n return this.acquireTokenWithCachedRefreshToken(request, false);\n // throw in all other cases\n } else {\n throw e;\n }\n }\n }\n // fall back to application refresh token acquisition\n return this.acquireTokenWithCachedRefreshToken(request, false);\n\n }\n\n /**\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\n * @param request\n */\n private async acquireTokenWithCachedRefreshToken(request: CommonSilentFlowRequest, foci: boolean) {\n // fetches family RT or application RT based on FOCI value\n\n const atsMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\n this.logger.verbose(\"RefreshTokenClientAcquireTokenWithCachedRefreshToken called\", request.correlationId);\n const refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\n\n if (!refreshToken) {\n atsMeasurement?.discardMeasurement();\n throw InteractionRequiredAuthError.createNoTokensFoundError();\n }\n // attach cached RT size to the current measurement\n atsMeasurement?.endMeasurement({\n success: true\n });\n\n const refreshTokenRequest: CommonRefreshTokenRequest = {\n ...request,\n refreshToken: refreshToken.secret,\n authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER,\n ccsCredential: {\n credential: request.account.homeAccountId,\n type: CcsCredentialType.HOME_ACCOUNT_ID\n }\n };\n\n return this.acquireToken(refreshTokenRequest);\n }\n\n /**\n * Constructs the network message and makes a NW call to the underlying secure token service\n * @param request\n * @param authority\n */\n private async executeTokenRequest(request: CommonRefreshTokenRequest, authority: Authority)\n : Promise<NetworkResponse<ServerAuthorizationTokenResponse>> {\n const acquireTokenMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\n const requestBody = await this.createTokenRequestBody(request);\n const queryParameters = this.createTokenQueryParameters(request);\n const headers: Record<string, string> = this.createTokenRequestHeaders(request.ccsCredential);\n const thumbprint: RequestThumbprint = {\n clientId: this.config.authOptions.clientId,\n authority: authority.canonicalAuthority,\n scopes: request.scopes,\n claims: request.claims,\n authenticationScheme: request.authenticationScheme,\n resourceRequestMethod: request.resourceRequestMethod,\n resourceRequestUri: request.resourceRequestUri,\n shrClaims: request.shrClaims,\n sshKid: request.sshKid\n };\n\n const endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParameters);\n return this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)\n .then((result) => {\n acquireTokenMeasurement?.endMeasurement({\n success: true\n });\n return result;\n })\n .catch((error) => {\n acquireTokenMeasurement?.endMeasurement({\n success: false\n });\n throw error;\n });\n }\n\n /**\n * Creates query string for the /token request\n * @param request\n */\n private createTokenQueryParameters(request: CommonRefreshTokenRequest): string {\n const parameterBuilder = new RequestParameterBuilder();\n\n if (request.tokenQueryParameters) {\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\n }\n\n return parameterBuilder.createQueryString();\n }\n\n /**\n * Helper function to create the token request body\n * @param request\n */\n private async createTokenRequestBody(request: CommonRefreshTokenRequest): Promise<string> {\n const correlationId = request.correlationId;\n const acquireTokenMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.BaseClientCreateTokenRequestHeaders, correlationId);\n const parameterBuilder = new RequestParameterBuilder();\n\n parameterBuilder.addClientId(this.config.authOptions.clientId);\n\n parameterBuilder.addScopes(request.scopes);\n\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\n\n parameterBuilder.addClientInfo();\n\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\n parameterBuilder.addThrottling();\n\n if (this.serverTelemetryManager) {\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\n }\n\n parameterBuilder.addCorrelationId(correlationId);\n\n parameterBuilder.addRefreshToken(request.refreshToken);\n\n if (this.config.clientCredentials.clientSecret) {\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\n }\n\n if (this.config.clientCredentials.clientAssertion) {\n const clientAssertion = this.config.clientCredentials.clientAssertion;\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\n }\n\n if (request.authenticationScheme === AuthenticationScheme.POP) {\n const popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\n const reqCnfData = await popTokenGenerator.generateCnf(request);\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\n } else if (request.authenticationScheme === AuthenticationScheme.SSH) {\n if (request.sshJwk) {\n parameterBuilder.addSshJwk(request.sshJwk);\n } else {\n acquireTokenMeasurement?.endMeasurement({\n success: false\n });\n throw ClientConfigurationError.createMissingSshJwkError();\n }\n }\n\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\n }\n\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\n switch (request.ccsCredential.type) {\n case CcsCredentialType.HOME_ACCOUNT_ID:\n try {\n const clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\n parameterBuilder.addCcsOid(clientInfo);\n } catch (e) {\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\n }\n break;\n case CcsCredentialType.UPN:\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\n break;\n }\n }\n acquireTokenMeasurement?.endMeasurement({\n success: true\n });\n return parameterBuilder.createQueryString();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { BaseClient } from './BaseClient.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { BaseClient } from './BaseClient.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { AuthError } from '../error/AuthError.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { JoseHeaderError } from '../error/JoseHeaderError.js';
4
4
  import { JsonTypes } from '../utils/Constants.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';
4
4
  import { TimeUtils } from '../utils/TimeUtils.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { Constants } from '../utils/Constants.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { AuthError } from './AuthError.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { ClientAuthError } from './ClientAuthError.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { AuthError } from './AuthError.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { AuthError } from './AuthError.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { AuthError } from './AuthError.js';
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v7.5.0 2022-10-03 */
1
+ /*! @azure/msal-common v8.0.0 2022-11-07 */
2
2
  'use strict';
3
3
  'use strict';
4
4
 
@@ -1409,7 +1409,7 @@ var Logger = /** @class */ (function () {
1409
1409
 
1410
1410
  /* eslint-disable header/header */
1411
1411
  var name = "@azure/msal-common";
1412
- var version = "7.5.0";
1412
+ var version = "8.0.0";
1413
1413
 
1414
1414
  /*
1415
1415
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -2560,7 +2560,11 @@ var CacheManager = /** @class */ (function () {
2560
2560
  if (!!userAssertionHash && !_this.matchUserAssertionHash(entity, userAssertionHash)) {
2561
2561
  return;
2562
2562
  }
2563
- if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {
2563
+ /*
2564
+ * homeAccountId can undefined, and we want to filter out cached items that have a homeAccountId of ""
2565
+ * because we don't want a client_credential request to return a cached token that has a homeAccountId
2566
+ */
2567
+ if ((typeof homeAccountId === "string") && !_this.matchHomeAccountId(entity, homeAccountId)) {
2564
2568
  return;
2565
2569
  }
2566
2570
  if (!!environment && !_this.matchEnvironment(entity, environment)) {
@@ -2979,7 +2983,7 @@ var CacheManager = /** @class */ (function () {
2979
2983
  * @param homeAccountId
2980
2984
  */
2981
2985
  CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {
2982
- return !!(entity.homeAccountId && homeAccountId === entity.homeAccountId);
2986
+ return !!((typeof entity.homeAccountId === "string") && (homeAccountId === entity.homeAccountId));
2983
2987
  };
2984
2988
  /**
2985
2989
  * helper to match assertion
@@ -6006,27 +6010,28 @@ var RefreshTokenClient = /** @class */ (function (_super) {
6006
6010
  return _super.call(this, configuration, performanceClient) || this;
6007
6011
  }
6008
6012
  RefreshTokenClient.prototype.acquireToken = function (request) {
6009
- var _a, _b;
6013
+ var _a, _b, _c;
6010
6014
  return __awaiter(this, void 0, void 0, function () {
6011
6015
  var atsMeasurement, reqTimestamp, response, requestId, responseHandler;
6012
6016
  var _this = this;
6013
- return __generator(this, function (_c) {
6014
- switch (_c.label) {
6017
+ return __generator(this, function (_d) {
6018
+ switch (_d.label) {
6015
6019
  case 0:
6016
6020
  atsMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(exports.PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);
6017
6021
  this.logger.verbose("RefreshTokenClientAcquireToken called", request.correlationId);
6018
6022
  reqTimestamp = TimeUtils.nowSeconds();
6019
6023
  return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];
6020
6024
  case 1:
6021
- response = _c.sent();
6022
- requestId = (_b = response.headers) === null || _b === void 0 ? void 0 : _b[exports.HeaderNames.X_MS_REQUEST_ID];
6025
+ response = _d.sent();
6026
+ atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({
6027
+ refreshTokenSize: ((_b = response.body.refresh_token) === null || _b === void 0 ? void 0 : _b.length) || 0
6028
+ });
6029
+ requestId = (_c = response.headers) === null || _c === void 0 ? void 0 : _c[exports.HeaderNames.X_MS_REQUEST_ID];
6023
6030
  responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);
6024
6031
  responseHandler.validateTokenResponse(response.body);
6025
6032
  return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true, request.forceCache, requestId).then(function (result) {
6026
- var _a;
6027
6033
  atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({
6028
- success: true,
6029
- refreshTokenSize: ((_a = response.body.refresh_token) === null || _a === void 0 ? void 0 : _a.length) || 0
6034
+ success: true
6030
6035
  });
6031
6036
  return result;
6032
6037
  })
@@ -6035,8 +6040,7 @@ var RefreshTokenClient = /** @class */ (function (_super) {
6035
6040
  atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({
6036
6041
  errorCode: error.errorCode,
6037
6042
  subErrorCode: error.subError,
6038
- success: false,
6039
- refreshTokenSize: undefined
6043
+ success: false
6040
6044
  });
6041
6045
  throw error;
6042
6046
  })];
@@ -8261,6 +8265,7 @@ var PerformanceClient = /** @class */ (function () {
8261
8265
  this.logger = logger;
8262
8266
  this.callbacks = new Map();
8263
8267
  this.eventsByCorrelationId = new Map();
8268
+ this.staticFieldsByCorrelationId = new Map();
8264
8269
  this.measurementsById = new Map();
8265
8270
  }
8266
8271
  /**
@@ -8287,8 +8292,6 @@ var PerformanceClient = /** @class */ (function () {
8287
8292
  authority: this.authority,
8288
8293
  libraryName: this.libraryName,
8289
8294
  libraryVersion: this.libraryVersion,
8290
- appName: (_a = this.applicationTelemetry) === null || _a === void 0 ? void 0 : _a.appName,
8291
- appVersion: (_b = this.applicationTelemetry) === null || _b === void 0 ? void 0 : _b.appVersion,
8292
8295
  clientId: this.clientId,
8293
8296
  name: measureName,
8294
8297
  startTimeMs: Date.now(),
@@ -8296,6 +8299,11 @@ var PerformanceClient = /** @class */ (function () {
8296
8299
  };
8297
8300
  // Store in progress events so they can be discarded if not ended properly
8298
8301
  this.cacheEventByCorrelationId(inProgressEvent);
8302
+ var staticFields = {
8303
+ appName: (_a = this.applicationTelemetry) === null || _a === void 0 ? void 0 : _a.appName,
8304
+ appVersion: (_b = this.applicationTelemetry) === null || _b === void 0 ? void 0 : _b.appVersion,
8305
+ };
8306
+ this.addStaticFields(staticFields, eventCorrelationId);
8299
8307
  this.cacheMeasurement(inProgressEvent, performanceMeasurement);
8300
8308
  // Return the event and functions the caller can use to properly end/flush the measurement
8301
8309
  return {
@@ -8313,6 +8321,9 @@ var PerformanceClient = /** @class */ (function () {
8313
8321
  discardMeasurement: function () {
8314
8322
  return _this.discardMeasurements(inProgressEvent.correlationId);
8315
8323
  },
8324
+ addStaticFields: function (fields) {
8325
+ return _this.addStaticFields(fields, inProgressEvent.correlationId);
8326
+ },
8316
8327
  measurement: performanceMeasurement,
8317
8328
  event: inProgressEvent
8318
8329
  };
@@ -8348,6 +8359,22 @@ var PerformanceClient = /** @class */ (function () {
8348
8359
  }
8349
8360
  return null;
8350
8361
  };
8362
+ /**
8363
+ * Saves extra information to be emitted when the measurements are flushed
8364
+ * @param fields
8365
+ * @param correlationId
8366
+ */
8367
+ PerformanceClient.prototype.addStaticFields = function (fields, correlationId) {
8368
+ var existingStaticFields = this.staticFieldsByCorrelationId.get(correlationId);
8369
+ if (existingStaticFields) {
8370
+ this.logger.trace("PerformanceClient: Updating static fields");
8371
+ this.staticFieldsByCorrelationId.set(correlationId, __assign(__assign({}, existingStaticFields), fields));
8372
+ }
8373
+ else {
8374
+ this.logger.trace("PerformanceClient: Adding static fields");
8375
+ this.staticFieldsByCorrelationId.set(correlationId, fields);
8376
+ }
8377
+ };
8351
8378
  /**
8352
8379
  * Upserts event into event cache.
8353
8380
  * First key is the correlation id, second key is the event id.
@@ -8437,19 +8464,12 @@ var PerformanceClient = /** @class */ (function () {
8437
8464
  else {
8438
8465
  _this.logger.verbose("PerformanceClient: Submeasurement for " + measureName + " already exists for " + current.name + ", ignoring", correlationId);
8439
8466
  }
8440
- if (current.accessTokenSize) {
8441
- previous.accessTokenSize = current.accessTokenSize;
8442
- }
8443
- if (current.idTokenSize) {
8444
- previous.idTokenSize = current.idTokenSize;
8445
- }
8446
- if (current.refreshTokenSize) {
8447
- previous.refreshTokenSize = current.refreshTokenSize;
8448
- }
8449
8467
  }
8450
8468
  return previous;
8451
8469
  }, topLevelEvent);
8452
- this.emitEvents([eventToEmit], eventToEmit.correlationId);
8470
+ var staticFields = this.staticFieldsByCorrelationId.get(correlationId);
8471
+ var finalEvent = __assign(__assign({}, eventToEmit), staticFields);
8472
+ this.emitEvents([finalEvent], eventToEmit.correlationId);
8453
8473
  }
8454
8474
  else {
8455
8475
  this.logger.verbose("PerformanceClient: No completed top-level measurements found for " + measureName, correlationId);
@@ -8555,6 +8575,7 @@ exports.AuthorityFactory = AuthorityFactory;
8555
8575
  exports.AuthorityMetadataEntity = AuthorityMetadataEntity;
8556
8576
  exports.AuthorizationCodeClient = AuthorizationCodeClient;
8557
8577
  exports.CacheManager = CacheManager;
8578
+ exports.CacheRecord = CacheRecord;
8558
8579
  exports.ClientAuthError = ClientAuthError;
8559
8580
  exports.ClientAuthErrorMessage = ClientAuthErrorMessage;
8560
8581
  exports.ClientConfigurationError = ClientConfigurationError;