@azure/msal-common 6.2.0 → 6.3.0-beta.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 (149) 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/AccountInfo.d.ts +6 -1
  5. package/dist/account/AccountInfo.d.ts.map +1 -1
  6. package/dist/account/AuthToken.js +1 -1
  7. package/dist/account/AuthToken.js.map +1 -1
  8. package/dist/account/CcsCredential.js +1 -1
  9. package/dist/account/CcsCredential.js.map +1 -1
  10. package/dist/account/ClientInfo.js +1 -1
  11. package/dist/account/ClientInfo.js.map +1 -1
  12. package/dist/account/TokenClaims.d.ts +29 -0
  13. package/dist/account/TokenClaims.d.ts.map +1 -1
  14. package/dist/authority/Authority.js +1 -1
  15. package/dist/authority/Authority.js.map +1 -1
  16. package/dist/authority/AuthorityFactory.js +1 -1
  17. package/dist/authority/AuthorityFactory.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/CloudInstanceDiscoveryResponse.js +1 -1
  23. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -1
  24. package/dist/authority/OpenIdConfigResponse.js +1 -1
  25. package/dist/authority/OpenIdConfigResponse.js.map +1 -1
  26. package/dist/authority/ProtocolMode.js +1 -1
  27. package/dist/authority/ProtocolMode.js.map +1 -1
  28. package/dist/authority/RegionDiscovery.js +1 -1
  29. package/dist/authority/RegionDiscovery.js.map +1 -1
  30. package/dist/cache/CacheManager.d.ts +1 -1
  31. package/dist/cache/CacheManager.js +2 -2
  32. package/dist/cache/CacheManager.js.map +1 -1
  33. package/dist/cache/entities/AccessTokenEntity.js +1 -1
  34. package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
  35. package/dist/cache/entities/AccountEntity.d.ts +3 -1
  36. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  37. package/dist/cache/entities/AccountEntity.js +7 -3
  38. package/dist/cache/entities/AccountEntity.js.map +1 -1
  39. package/dist/cache/entities/AppMetadataEntity.js +1 -1
  40. package/dist/cache/entities/AppMetadataEntity.js.map +1 -1
  41. package/dist/cache/entities/AuthorityMetadataEntity.js +1 -1
  42. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -1
  43. package/dist/cache/entities/CacheRecord.js +1 -1
  44. package/dist/cache/entities/CacheRecord.js.map +1 -1
  45. package/dist/cache/entities/CredentialEntity.js +1 -1
  46. package/dist/cache/entities/CredentialEntity.js.map +1 -1
  47. package/dist/cache/entities/IdTokenEntity.js +1 -1
  48. package/dist/cache/entities/IdTokenEntity.js.map +1 -1
  49. package/dist/cache/entities/RefreshTokenEntity.js +1 -1
  50. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -1
  51. package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
  52. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -1
  53. package/dist/cache/entities/ThrottlingEntity.js +1 -1
  54. package/dist/cache/entities/ThrottlingEntity.js.map +1 -1
  55. package/dist/cache/persistence/TokenCacheContext.js +1 -1
  56. package/dist/cache/persistence/TokenCacheContext.js.map +1 -1
  57. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  58. package/dist/client/AuthorizationCodeClient.js +118 -94
  59. package/dist/client/AuthorizationCodeClient.js.map +1 -1
  60. package/dist/client/BaseClient.js +1 -1
  61. package/dist/client/BaseClient.js.map +1 -1
  62. package/dist/client/ClientCredentialClient.js +1 -1
  63. package/dist/client/ClientCredentialClient.js.map +1 -1
  64. package/dist/client/DeviceCodeClient.js +1 -1
  65. package/dist/client/DeviceCodeClient.js.map +1 -1
  66. package/dist/client/OnBehalfOfClient.js +1 -1
  67. package/dist/client/OnBehalfOfClient.js.map +1 -1
  68. package/dist/client/RefreshTokenClient.js +1 -1
  69. package/dist/client/RefreshTokenClient.js.map +1 -1
  70. package/dist/client/SilentFlowClient.js +1 -1
  71. package/dist/client/SilentFlowClient.js.map +1 -1
  72. package/dist/client/UsernamePasswordClient.d.ts.map +1 -1
  73. package/dist/client/UsernamePasswordClient.js +2 -1
  74. package/dist/client/UsernamePasswordClient.js.map +1 -1
  75. package/dist/config/ClientConfiguration.js +1 -1
  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/PopTokenGenerator.d.ts +30 -0
  80. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  81. package/dist/crypto/PopTokenGenerator.js +37 -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/ServerError.js +1 -1
  92. package/dist/error/ServerError.js.map +1 -1
  93. package/dist/index.cjs.js +194 -98
  94. package/dist/index.cjs.js.map +1 -1
  95. package/dist/index.js +1 -1
  96. package/dist/logger/Logger.js +1 -1
  97. package/dist/logger/Logger.js.map +1 -1
  98. package/dist/network/INetworkModule.js +1 -1
  99. package/dist/network/INetworkModule.js.map +1 -1
  100. package/dist/network/NetworkManager.js +1 -1
  101. package/dist/network/NetworkManager.js.map +1 -1
  102. package/dist/network/ThrottlingUtils.js +1 -1
  103. package/dist/network/ThrottlingUtils.js.map +1 -1
  104. package/dist/packageMetadata.d.ts +1 -1
  105. package/dist/packageMetadata.d.ts.map +1 -1
  106. package/dist/packageMetadata.js +2 -2
  107. package/dist/packageMetadata.js.map +1 -1
  108. package/dist/request/AuthenticationHeaderParser.js +1 -1
  109. package/dist/request/AuthenticationHeaderParser.js.map +1 -1
  110. package/dist/request/CommonAuthorizationUrlRequest.d.ts +1 -0
  111. package/dist/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  112. package/dist/request/RequestParameterBuilder.d.ts +8 -0
  113. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  114. package/dist/request/RequestParameterBuilder.js +13 -1
  115. package/dist/request/RequestParameterBuilder.js.map +1 -1
  116. package/dist/request/RequestValidator.js +1 -1
  117. package/dist/request/RequestValidator.js.map +1 -1
  118. package/dist/request/ScopeSet.js +1 -1
  119. package/dist/request/ScopeSet.js.map +1 -1
  120. package/dist/response/AuthenticationResult.d.ts +1 -0
  121. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  122. package/dist/response/ResponseHandler.d.ts.map +1 -1
  123. package/dist/response/ResponseHandler.js +3 -2
  124. package/dist/response/ResponseHandler.js.map +1 -1
  125. package/dist/response/ServerAuthorizationCodeResponse.d.ts +1 -0
  126. package/dist/response/ServerAuthorizationCodeResponse.d.ts.map +1 -1
  127. package/dist/telemetry/performance/PerformanceClient.js +1 -1
  128. package/dist/telemetry/performance/PerformanceClient.js.map +1 -1
  129. package/dist/telemetry/performance/PerformanceEvent.d.ts +22 -1
  130. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  131. package/dist/telemetry/performance/PerformanceEvent.js +16 -1
  132. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  133. package/dist/telemetry/performance/StubPerformanceClient.js +1 -1
  134. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  135. package/dist/telemetry/server/ServerTelemetryManager.js +1 -1
  136. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
  137. package/dist/url/UrlString.js +1 -1
  138. package/dist/url/UrlString.js.map +1 -1
  139. package/dist/utils/Constants.d.ts +3 -0
  140. package/dist/utils/Constants.d.ts.map +1 -1
  141. package/dist/utils/Constants.js +5 -2
  142. package/dist/utils/Constants.js.map +1 -1
  143. package/dist/utils/ProtocolUtils.js +1 -1
  144. package/dist/utils/ProtocolUtils.js.map +1 -1
  145. package/dist/utils/StringUtils.js +1 -1
  146. package/dist/utils/StringUtils.js.map +1 -1
  147. package/dist/utils/TimeUtils.js +1 -1
  148. package/dist/utils/TimeUtils.js.map +1 -1
  149. package/package.json +74 -74
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v6.2.0 2022-04-04 */
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  'use strict';
4
4
 
@@ -136,7 +136,9 @@ var Constants = {
136
136
  IMDS_TIMEOUT: 2000,
137
137
  AZURE_REGION_AUTO_DISCOVER_FLAG: "TryAutoDetect",
138
138
  REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: "login.microsoft.com",
139
- KNOWN_PUBLIC_CLOUDS: ["login.microsoftonline.com", "login.windows.net", "login.microsoft.com", "sts.windows.net"]
139
+ KNOWN_PUBLIC_CLOUDS: ["login.microsoftonline.com", "login.windows.net", "login.microsoft.com", "sts.windows.net"],
140
+ TOKEN_RESPONSE_TYPE: "token",
141
+ ID_TOKEN_RESPONSE_TYPE: "id_token"
140
142
  };
141
143
  var OIDC_DEFAULT_SCOPES = [
142
144
  Constants.OPENID_SCOPE,
@@ -229,6 +231,7 @@ var AADServerParamKeys;
229
231
  AADServerParamKeys["FOCI"] = "foci";
230
232
  AADServerParamKeys["CCS_HEADER"] = "X-AnchorMailbox";
231
233
  AADServerParamKeys["RETURN_SPA_CODE"] = "return_spa_code";
234
+ AADServerParamKeys["NATIVE_BROKER"] = "nativebroker";
232
235
  AADServerParamKeys["LOGOUT_HINT"] = "logout_hint";
233
236
  })(AADServerParamKeys || (AADServerParamKeys = {}));
234
237
  /**
@@ -1339,7 +1342,7 @@ var Logger = /** @class */ (function () {
1339
1342
 
1340
1343
  /* eslint-disable header/header */
1341
1344
  var name = "@azure/msal-common";
1342
- var version = "6.2.0";
1345
+ var version = "6.3.0-beta.0";
1343
1346
 
1344
1347
  /*
1345
1348
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -2027,6 +2030,7 @@ exports.AuthorityType = void 0;
2027
2030
  * lastModificationApp:
2028
2031
  * oboAssertion: access token passed in as part of OBO request
2029
2032
  * idTokenClaims: Object containing claims parsed from ID token
2033
+ * nativeAccountId: Account identifier on the native device
2030
2034
  * }
2031
2035
  */
2032
2036
  var AccountEntity = /** @class */ (function () {
@@ -2080,7 +2084,8 @@ var AccountEntity = /** @class */ (function () {
2080
2084
  username: this.username,
2081
2085
  localAccountId: this.localAccountId,
2082
2086
  name: this.name,
2083
- idTokenClaims: this.idTokenClaims
2087
+ idTokenClaims: this.idTokenClaims,
2088
+ nativeAccountId: this.nativeAccountId
2084
2089
  };
2085
2090
  };
2086
2091
  /**
@@ -2102,12 +2107,13 @@ var AccountEntity = /** @class */ (function () {
2102
2107
  * @param idToken
2103
2108
  * @param policy
2104
2109
  */
2105
- AccountEntity.createAccount = function (clientInfo, homeAccountId, idToken, authority, oboAssertion, cloudGraphHostName, msGraphHost, environment) {
2110
+ AccountEntity.createAccount = function (clientInfo, homeAccountId, idToken, authority, oboAssertion, cloudGraphHostName, msGraphHost, environment, nativeAccountId) {
2106
2111
  var _a, _b, _c, _d, _e, _f;
2107
2112
  var account = new AccountEntity();
2108
2113
  account.authorityType = exports.CacheAccountType.MSSTS_ACCOUNT_TYPE;
2109
2114
  account.clientInfo = clientInfo;
2110
2115
  account.homeAccountId = homeAccountId;
2116
+ account.nativeAccountId = nativeAccountId;
2111
2117
  var env = environment || (authority && authority.getPreferredCache());
2112
2118
  if (!env) {
2113
2119
  throw ClientAuthError.createInvalidCacheEnvironmentError();
@@ -2229,6 +2235,7 @@ var AccountEntity = /** @class */ (function () {
2229
2235
  (accountA.username === accountB.username) &&
2230
2236
  (accountA.tenantId === accountB.tenantId) &&
2231
2237
  (accountA.environment === accountB.environment) &&
2238
+ (accountA.nativeAccountId === accountB.nativeAccountId) &&
2232
2239
  claimsMatch;
2233
2240
  };
2234
2241
  return AccountEntity;
@@ -2636,7 +2643,7 @@ var CacheManager = /** @class */ (function () {
2636
2643
  });
2637
2644
  };
2638
2645
  /**
2639
- * returns a boolean if the given account is removed
2646
+ * Removes credentials associated with the provided account
2640
2647
  * @param account
2641
2648
  */
2642
2649
  CacheManager.prototype.removeAccountContext = function (account) {
@@ -3556,6 +3563,12 @@ var RequestParameterBuilder = /** @class */ (function () {
3556
3563
  RequestParameterBuilder.prototype.addResponseTypeCode = function () {
3557
3564
  this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));
3558
3565
  };
3566
+ /**
3567
+ * add response_type = token id_token
3568
+ */
3569
+ RequestParameterBuilder.prototype.addResponseTypeForTokenAndIdToken = function () {
3570
+ this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.TOKEN_RESPONSE_TYPE + " " + Constants.ID_TOKEN_RESPONSE_TYPE));
3571
+ };
3559
3572
  /**
3560
3573
  * add response_mode. defaults to query.
3561
3574
  * @param responseMode
@@ -3563,6 +3576,12 @@ var RequestParameterBuilder = /** @class */ (function () {
3563
3576
  RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {
3564
3577
  this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : exports.ResponseMode.QUERY));
3565
3578
  };
3579
+ /**
3580
+ * Add flag to indicate STS should attempt to use WAM if available
3581
+ */
3582
+ RequestParameterBuilder.prototype.addNativeBroker = function () {
3583
+ this.parameters.set(AADServerParamKeys.NATIVE_BROKER, encodeURIComponent("1"));
3584
+ };
3566
3585
  /**
3567
3586
  * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios
3568
3587
  * @param scopeSet
@@ -4549,6 +4568,11 @@ var PopTokenGenerator = /** @class */ (function () {
4549
4568
  function PopTokenGenerator(cryptoUtils) {
4550
4569
  this.cryptoUtils = cryptoUtils;
4551
4570
  }
4571
+ /**
4572
+ * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters
4573
+ * @param request
4574
+ * @returns
4575
+ */
4552
4576
  PopTokenGenerator.prototype.generateCnf = function (request) {
4553
4577
  return __awaiter(this, void 0, void 0, function () {
4554
4578
  var reqCnf;
@@ -4562,6 +4586,23 @@ var PopTokenGenerator = /** @class */ (function () {
4562
4586
  });
4563
4587
  });
4564
4588
  };
4589
+ /**
4590
+ * Generates the hash of the req_cnf
4591
+ * @param cnf
4592
+ * @returns
4593
+ */
4594
+ PopTokenGenerator.prototype.generateCnfHash = function (cnf) {
4595
+ return __awaiter(this, void 0, void 0, function () {
4596
+ return __generator(this, function (_a) {
4597
+ return [2 /*return*/, this.cryptoUtils.hashString(cnf)];
4598
+ });
4599
+ });
4600
+ };
4601
+ /**
4602
+ * Generates key_id for a SHR token request
4603
+ * @param request
4604
+ * @returns
4605
+ */
4565
4606
  PopTokenGenerator.prototype.generateKid = function (request) {
4566
4607
  return __awaiter(this, void 0, void 0, function () {
4567
4608
  var kidThumbprint;
@@ -4578,6 +4619,12 @@ var PopTokenGenerator = /** @class */ (function () {
4578
4619
  });
4579
4620
  });
4580
4621
  };
4622
+ /**
4623
+ * Signs the POP access_token with the local generated key-pair
4624
+ * @param accessToken
4625
+ * @param request
4626
+ * @returns
4627
+ */
4581
4628
  PopTokenGenerator.prototype.signPopToken = function (accessToken, request) {
4582
4629
  var _a;
4583
4630
  return __awaiter(this, void 0, void 0, function () {
@@ -4591,6 +4638,14 @@ var PopTokenGenerator = /** @class */ (function () {
4591
4638
  });
4592
4639
  });
4593
4640
  };
4641
+ /**
4642
+ * Utility function to generate the signed JWT for an access_token
4643
+ * @param payload
4644
+ * @param kid
4645
+ * @param request
4646
+ * @param claims
4647
+ * @returns
4648
+ */
4594
4649
  PopTokenGenerator.prototype.signPayload = function (payload, kid, request, claims) {
4595
4650
  return __awaiter(this, void 0, void 0, function () {
4596
4651
  var resourceRequestMethod, resourceRequestUri, shrClaims, shrNonce, resourceUrlString, resourceUrlComponents;
@@ -4966,7 +5021,8 @@ var ResponseHandler = /** @class */ (function () {
4966
5021
  state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,
4967
5022
  cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,
4968
5023
  msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,
4969
- code: code
5024
+ code: code,
5025
+ fromNativeBroker: false
4970
5026
  }];
4971
5027
  }
4972
5028
  });
@@ -5004,8 +5060,12 @@ var AuthorizationCodeClient = /** @class */ (function (_super) {
5004
5060
  return __awaiter(this, void 0, void 0, function () {
5005
5061
  var queryString;
5006
5062
  return __generator(this, function (_a) {
5007
- queryString = this.createAuthCodeUrlQueryString(request);
5008
- return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];
5063
+ switch (_a.label) {
5064
+ case 0: return [4 /*yield*/, this.createAuthCodeUrlQueryString(request)];
5065
+ case 1:
5066
+ queryString = _a.sent();
5067
+ return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];
5068
+ }
5009
5069
  });
5010
5070
  });
5011
5071
  };
@@ -5255,96 +5315,116 @@ var AuthorizationCodeClient = /** @class */ (function (_super) {
5255
5315
  * @param request
5256
5316
  */
5257
5317
  AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {
5258
- var parameterBuilder = new RequestParameterBuilder();
5259
- parameterBuilder.addClientId(this.config.authOptions.clientId);
5260
- var requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);
5261
- parameterBuilder.addScopes(requestScopes);
5262
- // validate the redirectUri (to be a non null value)
5263
- parameterBuilder.addRedirectUri(request.redirectUri);
5264
- // generate the correlationId if not set by the user and add
5265
- var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();
5266
- parameterBuilder.addCorrelationId(correlationId);
5267
- // add response_mode. If not passed in it defaults to query.
5268
- parameterBuilder.addResponseMode(request.responseMode);
5269
- // add response_type = code
5270
- parameterBuilder.addResponseTypeCode();
5271
- // add library info parameters
5272
- parameterBuilder.addLibraryInfo(this.config.libraryInfo);
5273
- parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);
5274
- // add client_info=1
5275
- parameterBuilder.addClientInfo();
5276
- if (request.codeChallenge && request.codeChallengeMethod) {
5277
- parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);
5278
- }
5279
- if (request.prompt) {
5280
- parameterBuilder.addPrompt(request.prompt);
5281
- }
5282
- if (request.domainHint) {
5283
- parameterBuilder.addDomainHint(request.domainHint);
5284
- }
5285
- // Add sid or loginHint with preference for sid -> loginHint -> username of AccountInfo object
5286
- if (request.prompt !== PromptValue.SELECT_ACCOUNT) {
5287
- // AAD will throw if prompt=select_account is passed with an account hint
5288
- if (request.sid && request.prompt === PromptValue.NONE) {
5289
- // SessionID is only used in silent calls
5290
- this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request");
5291
- parameterBuilder.addSid(request.sid);
5292
- }
5293
- else if (request.account) {
5294
- var accountSid = this.extractAccountSid(request.account);
5295
- // If account and loginHint are provided, we will check account first for sid before adding loginHint
5296
- if (accountSid && request.prompt === PromptValue.NONE) {
5297
- // SessionId is only used in silent calls
5298
- this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account");
5299
- parameterBuilder.addSid(accountSid);
5300
- try {
5301
- var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);
5302
- parameterBuilder.addCcsOid(clientInfo);
5303
- }
5304
- catch (e) {
5305
- this.logger.verbose("Could not parse home account ID for CCS Header: " + e);
5306
- }
5307
- }
5308
- else if (request.loginHint) {
5309
- this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from request");
5310
- parameterBuilder.addLoginHint(request.loginHint);
5311
- parameterBuilder.addCcsUpn(request.loginHint);
5312
- }
5313
- else if (request.account.username) {
5314
- // Fallback to account username if provided
5315
- this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from account");
5316
- parameterBuilder.addLoginHint(request.account.username);
5317
- try {
5318
- var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);
5319
- parameterBuilder.addCcsOid(clientInfo);
5320
- }
5321
- catch (e) {
5322
- this.logger.verbose("Could not parse home account ID for CCS Header: " + e);
5323
- }
5318
+ return __awaiter(this, void 0, void 0, function () {
5319
+ var parameterBuilder, requestScopes, correlationId, accountSid, clientInfo, clientInfo, popTokenGenerator, cnf, cnfHash;
5320
+ return __generator(this, function (_a) {
5321
+ switch (_a.label) {
5322
+ case 0:
5323
+ parameterBuilder = new RequestParameterBuilder();
5324
+ parameterBuilder.addClientId(this.config.authOptions.clientId);
5325
+ requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);
5326
+ parameterBuilder.addScopes(requestScopes);
5327
+ // validate the redirectUri (to be a non null value)
5328
+ parameterBuilder.addRedirectUri(request.redirectUri);
5329
+ correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();
5330
+ parameterBuilder.addCorrelationId(correlationId);
5331
+ // add response_mode. If not passed in it defaults to query.
5332
+ parameterBuilder.addResponseMode(request.responseMode);
5333
+ // add response_type = code
5334
+ parameterBuilder.addResponseTypeCode();
5335
+ // add library info parameters
5336
+ parameterBuilder.addLibraryInfo(this.config.libraryInfo);
5337
+ parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);
5338
+ // add client_info=1
5339
+ parameterBuilder.addClientInfo();
5340
+ if (request.codeChallenge && request.codeChallengeMethod) {
5341
+ parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);
5342
+ }
5343
+ if (request.prompt) {
5344
+ parameterBuilder.addPrompt(request.prompt);
5345
+ }
5346
+ if (request.domainHint) {
5347
+ parameterBuilder.addDomainHint(request.domainHint);
5348
+ }
5349
+ // Add sid or loginHint with preference for sid -> loginHint -> username of AccountInfo object
5350
+ if (request.prompt !== PromptValue.SELECT_ACCOUNT) {
5351
+ // AAD will throw if prompt=select_account is passed with an account hint
5352
+ if (request.sid && request.prompt === PromptValue.NONE) {
5353
+ // SessionID is only used in silent calls
5354
+ this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request");
5355
+ parameterBuilder.addSid(request.sid);
5356
+ }
5357
+ else if (request.account) {
5358
+ accountSid = this.extractAccountSid(request.account);
5359
+ // If account and loginHint are provided, we will check account first for sid before adding loginHint
5360
+ if (accountSid && request.prompt === PromptValue.NONE) {
5361
+ // SessionId is only used in silent calls
5362
+ this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account");
5363
+ parameterBuilder.addSid(accountSid);
5364
+ try {
5365
+ clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);
5366
+ parameterBuilder.addCcsOid(clientInfo);
5367
+ }
5368
+ catch (e) {
5369
+ this.logger.verbose("Could not parse home account ID for CCS Header: " + e);
5370
+ }
5371
+ }
5372
+ else if (request.loginHint) {
5373
+ this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from request");
5374
+ parameterBuilder.addLoginHint(request.loginHint);
5375
+ parameterBuilder.addCcsUpn(request.loginHint);
5376
+ }
5377
+ else if (request.account.username) {
5378
+ // Fallback to account username if provided
5379
+ this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from account");
5380
+ parameterBuilder.addLoginHint(request.account.username);
5381
+ try {
5382
+ clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);
5383
+ parameterBuilder.addCcsOid(clientInfo);
5384
+ }
5385
+ catch (e) {
5386
+ this.logger.verbose("Could not parse home account ID for CCS Header: " + e);
5387
+ }
5388
+ }
5389
+ }
5390
+ else if (request.loginHint) {
5391
+ this.logger.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request");
5392
+ parameterBuilder.addLoginHint(request.loginHint);
5393
+ parameterBuilder.addCcsUpn(request.loginHint);
5394
+ }
5395
+ }
5396
+ else {
5397
+ this.logger.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");
5398
+ }
5399
+ if (request.nonce) {
5400
+ parameterBuilder.addNonce(request.nonce);
5401
+ }
5402
+ if (request.state) {
5403
+ parameterBuilder.addState(request.state);
5404
+ }
5405
+ if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {
5406
+ parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);
5407
+ }
5408
+ if (request.extraQueryParameters) {
5409
+ parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);
5410
+ }
5411
+ if (!request.nativeBroker) return [3 /*break*/, 3];
5412
+ // signal ests that this is a WAM call
5413
+ parameterBuilder.addNativeBroker();
5414
+ if (!(request.authenticationScheme === exports.AuthenticationScheme.POP)) return [3 /*break*/, 3];
5415
+ popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);
5416
+ return [4 /*yield*/, popTokenGenerator.generateCnf(request)];
5417
+ case 1:
5418
+ cnf = _a.sent();
5419
+ return [4 /*yield*/, popTokenGenerator.generateCnfHash(cnf)];
5420
+ case 2:
5421
+ cnfHash = _a.sent();
5422
+ parameterBuilder.addPopToken(cnfHash);
5423
+ _a.label = 3;
5424
+ case 3: return [2 /*return*/, parameterBuilder.createQueryString()];
5324
5425
  }
5325
- }
5326
- else if (request.loginHint) {
5327
- this.logger.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request");
5328
- parameterBuilder.addLoginHint(request.loginHint);
5329
- parameterBuilder.addCcsUpn(request.loginHint);
5330
- }
5331
- }
5332
- else {
5333
- this.logger.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");
5334
- }
5335
- if (request.nonce) {
5336
- parameterBuilder.addNonce(request.nonce);
5337
- }
5338
- if (request.state) {
5339
- parameterBuilder.addState(request.state);
5340
- }
5341
- if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {
5342
- parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);
5343
- }
5344
- if (request.extraQueryParameters) {
5345
- parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);
5346
- }
5347
- return parameterBuilder.createQueryString();
5426
+ });
5427
+ });
5348
5428
  };
5349
5429
  /**
5350
5430
  * This API validates the `EndSessionRequest` and creates a URL
@@ -6364,6 +6444,7 @@ var UsernamePasswordClient = /** @class */ (function (_super) {
6364
6444
  parameterBuilder.addUsername(request.username);
6365
6445
  parameterBuilder.addPassword(request.password);
6366
6446
  parameterBuilder.addScopes(request.scopes);
6447
+ parameterBuilder.addResponseTypeForTokenAndIdToken();
6367
6448
  parameterBuilder.addGrantType(GrantType.RESOURCE_OWNER_PASSWORD_GRANT);
6368
6449
  parameterBuilder.addClientInfo();
6369
6450
  parameterBuilder.addLibraryInfo(this.config.libraryInfo);
@@ -7584,6 +7665,11 @@ exports.PerformanceEvents = void 0;
7584
7665
  * Internal API for acquireTokenSilent.
7585
7666
  */
7586
7667
  PerformanceEvents["AcquireTokenSilentAsync"] = "acquireTokenSilentAsync";
7668
+ /**
7669
+ * acquireTokenPopup (msal-browser).
7670
+ * Used to acquire a new access token interactively through pop ups
7671
+ */
7672
+ PerformanceEvents["AcquireTokenPopup"] = "acquireTokenPopup";
7587
7673
  /**
7588
7674
  * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).
7589
7675
  * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.
@@ -7619,6 +7705,16 @@ exports.PerformanceEvents = void 0;
7619
7705
  * Used to load authority metadata for a request.
7620
7706
  */
7621
7707
  PerformanceEvents["StandardInteractionClientGetDiscoveredAuthority"] = "standardInteractionClientGetDiscoveredAuthority";
7708
+ /**
7709
+ * acquireToken APIs in msal-browser.
7710
+ * Used to make an /authorize endpoint call with native brokering enabled.
7711
+ */
7712
+ PerformanceEvents["FetchAccountIdWithNativeBroker"] = "fetchAccountIdWithNativeBroker";
7713
+ /**
7714
+ * acquireToken API in NativeInteractionClient class (msal-browser).
7715
+ * Used to acquire a token from Native component when native brokering is enabled.
7716
+ */
7717
+ PerformanceEvents["NativeInteractionClientAcquireToken"] = "nativeInteractionClientAcquireToken";
7622
7718
  })(exports.PerformanceEvents || (exports.PerformanceEvents = {}));
7623
7719
  /**
7624
7720
  * State of the performance event.