@azure/msal-browser 2.21.0 → 2.23.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 (147) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/_tslib.js +1 -1
  3. package/dist/app/ClientApplication.d.ts +31 -2
  4. package/dist/app/ClientApplication.d.ts.map +1 -1
  5. package/dist/app/ClientApplication.js +152 -36
  6. package/dist/app/ClientApplication.js.map +1 -1
  7. package/dist/app/IPublicClientApplication.d.ts +3 -1
  8. package/dist/app/IPublicClientApplication.d.ts.map +1 -1
  9. package/dist/app/IPublicClientApplication.js +7 -1
  10. package/dist/app/IPublicClientApplication.js.map +1 -1
  11. package/dist/app/PublicClientApplication.d.ts +2 -2
  12. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  13. package/dist/app/PublicClientApplication.js +51 -15
  14. package/dist/app/PublicClientApplication.js.map +1 -1
  15. package/dist/cache/AsyncMemoryStorage.d.ts +3 -2
  16. package/dist/cache/AsyncMemoryStorage.d.ts.map +1 -1
  17. package/dist/cache/AsyncMemoryStorage.js +17 -6
  18. package/dist/cache/AsyncMemoryStorage.js.map +1 -1
  19. package/dist/cache/BrowserCacheManager.d.ts +14 -12
  20. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  21. package/dist/cache/BrowserCacheManager.js +16 -12
  22. package/dist/cache/BrowserCacheManager.js.map +1 -1
  23. package/dist/cache/BrowserStorage.js +1 -1
  24. package/dist/cache/DatabaseStorage.d.ts +5 -0
  25. package/dist/cache/DatabaseStorage.d.ts.map +1 -1
  26. package/dist/cache/DatabaseStorage.js +65 -13
  27. package/dist/cache/DatabaseStorage.js.map +1 -1
  28. package/dist/cache/MemoryStorage.js +1 -1
  29. package/dist/cache/TokenCache.d.ts.map +1 -1
  30. package/dist/cache/TokenCache.js +4 -3
  31. package/dist/cache/TokenCache.js.map +1 -1
  32. package/dist/config/Configuration.d.ts +23 -10
  33. package/dist/config/Configuration.d.ts.map +1 -1
  34. package/dist/config/Configuration.js +21 -10
  35. package/dist/config/Configuration.js.map +1 -1
  36. package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
  37. package/dist/crypto/BrowserCrypto.js +7 -6
  38. package/dist/crypto/BrowserCrypto.js.map +1 -1
  39. package/dist/crypto/CryptoOps.d.ts +12 -3
  40. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  41. package/dist/crypto/CryptoOps.js +71 -36
  42. package/dist/crypto/CryptoOps.js.map +1 -1
  43. package/dist/crypto/GuidGenerator.d.ts +3 -2
  44. package/dist/crypto/GuidGenerator.d.ts.map +1 -1
  45. package/dist/crypto/GuidGenerator.js +4 -3
  46. package/dist/crypto/GuidGenerator.js.map +1 -1
  47. package/dist/crypto/PkceGenerator.js +1 -1
  48. package/dist/crypto/SignedHttpRequest.js +1 -1
  49. package/dist/encode/Base64Decode.d.ts.map +1 -1
  50. package/dist/encode/Base64Decode.js +3 -2
  51. package/dist/encode/Base64Decode.js.map +1 -1
  52. package/dist/encode/Base64Encode.d.ts.map +1 -1
  53. package/dist/encode/Base64Encode.js +5 -4
  54. package/dist/encode/Base64Encode.js.map +1 -1
  55. package/dist/error/BrowserAuthError.js +1 -1
  56. package/dist/error/BrowserConfigurationAuthError.js +1 -1
  57. package/dist/event/EventHandler.js +1 -1
  58. package/dist/event/EventMessage.js +1 -1
  59. package/dist/event/EventType.js +1 -1
  60. package/dist/index.cjs.js +1380 -436
  61. package/dist/index.cjs.js.map +1 -1
  62. package/dist/index.d.ts +15 -2
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +15 -3
  65. package/dist/index.js.map +1 -1
  66. package/dist/interaction_client/BaseInteractionClient.d.ts +4 -3
  67. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  68. package/dist/interaction_client/BaseInteractionClient.js +14 -14
  69. package/dist/interaction_client/BaseInteractionClient.js.map +1 -1
  70. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +1 -1
  71. package/dist/interaction_client/PopupClient.d.ts +4 -3
  72. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  73. package/dist/interaction_client/PopupClient.js +52 -60
  74. package/dist/interaction_client/PopupClient.js.map +1 -1
  75. package/dist/interaction_client/RedirectClient.d.ts +3 -3
  76. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  77. package/dist/interaction_client/RedirectClient.js +22 -10
  78. package/dist/interaction_client/RedirectClient.js.map +1 -1
  79. package/dist/interaction_client/SilentAuthCodeClient.d.ts +2 -2
  80. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  81. package/dist/interaction_client/SilentAuthCodeClient.js +5 -4
  82. package/dist/interaction_client/SilentAuthCodeClient.js.map +1 -1
  83. package/dist/interaction_client/SilentCacheClient.d.ts +2 -2
  84. package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
  85. package/dist/interaction_client/SilentCacheClient.js +14 -6
  86. package/dist/interaction_client/SilentCacheClient.js.map +1 -1
  87. package/dist/interaction_client/SilentIframeClient.d.ts +4 -4
  88. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  89. package/dist/interaction_client/SilentIframeClient.js +22 -7
  90. package/dist/interaction_client/SilentIframeClient.js.map +1 -1
  91. package/dist/interaction_client/SilentRefreshClient.d.ts +2 -2
  92. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  93. package/dist/interaction_client/SilentRefreshClient.js +19 -7
  94. package/dist/interaction_client/SilentRefreshClient.js.map +1 -1
  95. package/dist/interaction_client/StandardInteractionClient.d.ts +11 -11
  96. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  97. package/dist/interaction_client/StandardInteractionClient.js +84 -56
  98. package/dist/interaction_client/StandardInteractionClient.js.map +1 -1
  99. package/dist/interaction_handler/InteractionHandler.js +1 -1
  100. package/dist/interaction_handler/PopupHandler.d.ts.map +1 -1
  101. package/dist/interaction_handler/PopupHandler.js +1 -3
  102. package/dist/interaction_handler/PopupHandler.js.map +1 -1
  103. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  104. package/dist/interaction_handler/RedirectHandler.js +1 -2
  105. package/dist/interaction_handler/RedirectHandler.js.map +1 -1
  106. package/dist/interaction_handler/SilentHandler.js +1 -1
  107. package/dist/navigation/NavigationClient.js +1 -1
  108. package/dist/network/FetchClient.d.ts.map +1 -1
  109. package/dist/network/FetchClient.js +3 -2
  110. package/dist/network/FetchClient.js.map +1 -1
  111. package/dist/network/XhrClient.js +1 -1
  112. package/dist/packageMetadata.d.ts +1 -1
  113. package/dist/packageMetadata.js +2 -2
  114. package/dist/packageMetadata.js.map +1 -1
  115. package/dist/request/EndSessionPopupRequest.d.ts +1 -0
  116. package/dist/request/EndSessionPopupRequest.d.ts.map +1 -1
  117. package/dist/request/EndSessionRequest.d.ts +1 -0
  118. package/dist/request/EndSessionRequest.d.ts.map +1 -1
  119. package/dist/telemetry/BrowserPerformanceClient.d.ts +19 -0
  120. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -0
  121. package/dist/telemetry/BrowserPerformanceClient.js +52 -0
  122. package/dist/telemetry/BrowserPerformanceClient.js.map +1 -0
  123. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +13 -0
  124. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts.map +1 -0
  125. package/dist/telemetry/BrowserPerformanceMeasurement.js +66 -0
  126. package/dist/telemetry/BrowserPerformanceMeasurement.js.map +1 -0
  127. package/dist/utils/BrowserConstants.d.ts +2 -1
  128. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  129. package/dist/utils/BrowserConstants.js +2 -1
  130. package/dist/utils/BrowserConstants.js.map +1 -1
  131. package/dist/utils/BrowserProtocolUtils.js +1 -1
  132. package/dist/utils/BrowserStringUtils.d.ts.map +1 -1
  133. package/dist/utils/BrowserStringUtils.js +4 -2
  134. package/dist/utils/BrowserStringUtils.js.map +1 -1
  135. package/dist/utils/BrowserUtils.js +2 -2
  136. package/dist/utils/BrowserUtils.js.map +1 -1
  137. package/dist/utils/MathUtils.js +1 -1
  138. package/dist/utils/PopupUtils.d.ts +1 -2
  139. package/dist/utils/PopupUtils.d.ts.map +1 -1
  140. package/dist/utils/PopupUtils.js +3 -3
  141. package/dist/utils/PopupUtils.js.map +1 -1
  142. package/lib/msal-browser.js +1380 -436
  143. package/lib/msal-browser.js.map +1 -1
  144. package/lib/msal-browser.min.js +41 -31
  145. package/package.json +2 -2
  146. package/CHANGELOG.json +0 -1685
  147. package/CHANGELOG.md +0 -536
@@ -1,5 +1,5 @@
1
1
  import { StandardInteractionClient } from "./StandardInteractionClient";
2
- import { CommonSilentFlowRequest, AuthenticationResult, ServerTelemetryManager, RefreshTokenClient } from "@azure/msal-common";
2
+ import { CommonSilentFlowRequest, AuthenticationResult, ServerTelemetryManager, RefreshTokenClient, AzureCloudOptions } from "@azure/msal-common";
3
3
  export declare class SilentRefreshClient extends StandardInteractionClient {
4
4
  /**
5
5
  * Exchanges the refresh token for new tokens
@@ -15,6 +15,6 @@ export declare class SilentRefreshClient extends StandardInteractionClient {
15
15
  * @param serverTelemetryManager
16
16
  * @param authorityUrl
17
17
  */
18
- protected createRefreshTokenClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string): Promise<RefreshTokenClient>;
18
+ protected createRefreshTokenClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, azureCloudOptions?: AzureCloudOptions): Promise<RefreshTokenClient>;
19
19
  }
20
20
  //# sourceMappingURL=SilentRefreshClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SilentRefreshClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAa,MAAM,oBAAoB,CAAC;AAI1I,qBAAa,mBAAoB,SAAQ,yBAAyB;IAC9D;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBnF;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB;;;;OAIG;cACa,wBAAwB,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAK/I"}
1
+ {"version":3,"file":"SilentRefreshClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAa,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAIhL,qBAAa,mBAAoB,SAAQ,yBAAyB;IAC9D;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiCnF;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB;;;;OAIG;cACa,wBAAwB,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAKtL"}
@@ -1,8 +1,8 @@
1
- /*! @azure/msal-browser v2.21.0 2022-01-04 */
1
+ /*! @azure/msal-browser v2.23.0 2022-04-04 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';
4
4
  import { StandardInteractionClient } from './StandardInteractionClient.js';
5
- import { AuthError, RefreshTokenClient } from '@azure/msal-common';
5
+ import { AuthError, PerformanceEvents, RefreshTokenClient } from '@azure/msal-common';
6
6
  import { ApiId } from '../utils/BrowserConstants.js';
7
7
  import { BrowserAuthError } from '../error/BrowserAuthError.js';
8
8
 
@@ -21,7 +21,7 @@ var SilentRefreshClient = /** @class */ (function (_super) {
21
21
  */
22
22
  SilentRefreshClient.prototype.acquireToken = function (request) {
23
23
  return __awaiter(this, void 0, void 0, function () {
24
- var silentRequest, _a, serverTelemetryManager, refreshTokenClient;
24
+ var silentRequest, _a, acquireTokenMeasurement, serverTelemetryManager, refreshTokenClient;
25
25
  var _this = this;
26
26
  return __generator(this, function (_b) {
27
27
  switch (_b.label) {
@@ -30,17 +30,29 @@ var SilentRefreshClient = /** @class */ (function (_super) {
30
30
  return [4 /*yield*/, this.initializeBaseRequest(request)];
31
31
  case 1:
32
32
  silentRequest = __assign.apply(void 0, _a.concat([_b.sent()]));
33
+ acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, silentRequest.correlationId);
33
34
  serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);
34
- return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority)];
35
+ return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];
35
36
  case 2:
36
37
  refreshTokenClient = _b.sent();
37
38
  this.logger.verbose("Refresh token client created");
38
39
  // Send request to renew token. Auth module will throw errors if token cannot be renewed.
39
- return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest).catch(function (e) {
40
+ return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)
41
+ .then(function (result) {
42
+ acquireTokenMeasurement.endMeasurement({
43
+ success: true,
44
+ fromCache: result.fromCache
45
+ });
46
+ return result;
47
+ })
48
+ .catch(function (e) {
40
49
  if (e instanceof AuthError) {
41
50
  e.setCorrelationId(_this.correlationId);
42
51
  }
43
52
  serverTelemetryManager.cacheFailedRequest(e);
53
+ acquireTokenMeasurement.endMeasurement({
54
+ success: false
55
+ });
44
56
  throw e;
45
57
  })];
46
58
  }
@@ -59,12 +71,12 @@ var SilentRefreshClient = /** @class */ (function (_super) {
59
71
  * @param serverTelemetryManager
60
72
  * @param authorityUrl
61
73
  */
62
- SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl) {
74
+ SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {
63
75
  return __awaiter(this, void 0, void 0, function () {
64
76
  var clientConfig;
65
77
  return __generator(this, function (_a) {
66
78
  switch (_a.label) {
67
- case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];
79
+ case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];
68
80
  case 1:
69
81
  clientConfig = _a.sent();
70
82
  return [2 /*return*/, new RefreshTokenClient(clientConfig)];
@@ -1 +1 @@
1
- {"version":3,"file":"SilentRefreshClient.js","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StandardInteractionClient } from \"./StandardInteractionClient\";\nimport { CommonSilentFlowRequest, AuthenticationResult, ServerTelemetryManager, RefreshTokenClient, AuthError } from \"@azure/msal-common\";\nimport { ApiId } from \"../utils/BrowserConstants\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\n\nexport class SilentRefreshClient extends StandardInteractionClient {\n /**\n * Exchanges the refresh token for new tokens\n * @param request \n */\n async acquireToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n const silentRequest: CommonSilentFlowRequest = {\n ...request,\n ...await this.initializeBaseRequest(request)\n };\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\n const refreshTokenClient = await this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority);\n this.logger.verbose(\"Refresh token client created\");\n \n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\n return refreshTokenClient.acquireTokenByRefreshToken(silentRequest).catch(e => {\n if (e instanceof AuthError) {\n e.setCorrelationId(this.correlationId);\n }\n serverTelemetryManager.cacheFailedRequest(e);\n throw e;\n });\n }\n\n /**\n * Currently Unsupported\n */\n logout(): Promise<void> {\n // Synchronous so we must reject\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\n }\n\n /**\n * Creates a Refresh Client with the given authority, or the default authority.\n * @param serverTelemetryManager\n * @param authorityUrl\n */\n protected async createRefreshTokenClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string): Promise<RefreshTokenClient> {\n // Create auth module.\n const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl);\n return new RefreshTokenClient(clientConfig);\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;IAUyC,uCAAyB;IAAlE;;KA0CC;;;;;IArCS,0CAAY,GAAlB,UAAmB,OAAgC;;;;;;;2CAExC,OAAO;wBACP,qBAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAA;;wBAF1C,aAAa,qCAEZ,SAAyC,GAC/C;wBACK,sBAAsB,GAAG,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;wBAC/E,qBAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,EAAE,aAAa,CAAC,SAAS,CAAC,EAAA;;wBAAzG,kBAAkB,GAAG,SAAoF;wBAC/G,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;;wBAGpD,sBAAO,kBAAkB,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC;gCACvE,IAAI,CAAC,YAAY,SAAS,EAAE;oCACxB,CAAC,CAAC,gBAAgB,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;iCAC1C;gCACD,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;gCAC7C,MAAM,CAAC,CAAC;6BACX,CAAC,EAAC;;;;KACN;;;;IAKD,oCAAM,GAAN;;QAEI,OAAO,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,EAAE,CAAC,CAAC;KAChF;;;;;;IAOe,sDAAwB,GAAxC,UAAyC,sBAA8C,EAAE,YAAqB;;;;;4BAErF,qBAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,YAAY,CAAC,EAAA;;wBAAtF,YAAY,GAAG,SAAuE;wBAC5F,sBAAO,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAC;;;;KAC/C;IACL,0BAAC;AAAD,CA1CA,CAAyC,yBAAyB;;;;"}
1
+ {"version":3,"file":"SilentRefreshClient.js","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StandardInteractionClient } from \"./StandardInteractionClient\";\nimport { CommonSilentFlowRequest, AuthenticationResult, ServerTelemetryManager, RefreshTokenClient, AuthError, AzureCloudOptions, PerformanceEvents } from \"@azure/msal-common\";\nimport { ApiId } from \"../utils/BrowserConstants\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\n\nexport class SilentRefreshClient extends StandardInteractionClient {\n /**\n * Exchanges the refresh token for new tokens\n * @param request\n */\n async acquireToken(request: CommonSilentFlowRequest): Promise<AuthenticationResult> {\n const silentRequest: CommonSilentFlowRequest = {\n ...request,\n ...await this.initializeBaseRequest(request)\n };\n const acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, silentRequest.correlationId);\n const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\n\n const refreshTokenClient = await this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions);\n this.logger.verbose(\"Refresh token client created\");\n\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\n return refreshTokenClient.acquireTokenByRefreshToken(silentRequest)\n .then((result: AuthenticationResult) => {\n acquireTokenMeasurement.endMeasurement({\n success: true,\n fromCache: result.fromCache\n });\n\n return result;\n })\n .catch((e:AuthError)=> {\n if (e instanceof AuthError) {\n (e as AuthError).setCorrelationId(this.correlationId);\n }\n serverTelemetryManager.cacheFailedRequest(e);\n acquireTokenMeasurement.endMeasurement({\n success: false\n });\n throw e;\n });\n }\n\n /**\n * Currently Unsupported\n */\n logout(): Promise<void> {\n // Synchronous so we must reject\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\n }\n\n /**\n * Creates a Refresh Client with the given authority, or the default authority.\n * @param serverTelemetryManager\n * @param authorityUrl\n */\n protected async createRefreshTokenClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, azureCloudOptions?: AzureCloudOptions): Promise<RefreshTokenClient> {\n // Create auth module.\n const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions);\n return new RefreshTokenClient(clientConfig);\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;IAUyC,uCAAyB;IAAlE;;KAwDC;;;;;IAnDS,0CAAY,GAAlB,UAAmB,OAAgC;;;;;;;2CAExC,OAAO;wBACP,qBAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAA;;wBAF1C,aAAa,qCAEZ,SAAyC,GAC/C;wBACK,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,+BAA+B,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;wBAClJ,sBAAsB,GAAG,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;wBAE/E,qBAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,EAAE,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAA;;wBAA1I,kBAAkB,GAAG,SAAqH;wBAChJ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;;wBAGpD,sBAAO,kBAAkB,CAAC,0BAA0B,CAAC,aAAa,CAAC;iCAC9D,IAAI,CAAC,UAAC,MAA4B;gCAC/B,uBAAuB,CAAC,cAAc,CAAC;oCACnC,OAAO,EAAE,IAAI;oCACb,SAAS,EAAE,MAAM,CAAC,SAAS;iCAC9B,CAAC,CAAC;gCAEH,OAAO,MAAM,CAAC;6BACjB,CAAC;iCACD,KAAK,CAAC,UAAC,CAAW;gCACf,IAAI,CAAC,YAAY,SAAS,EAAE;oCACvB,CAAe,CAAC,gBAAgB,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;iCACzD;gCACD,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;gCAC7C,uBAAuB,CAAC,cAAc,CAAC;oCACnC,OAAO,EAAE,KAAK;iCACjB,CAAC,CAAC;gCACH,MAAM,CAAC,CAAC;6BACX,CAAC,EAAC;;;;KACV;;;;IAKD,oCAAM,GAAN;;QAEI,OAAO,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,EAAE,CAAC,CAAC;KAChF;;;;;;IAOe,sDAAwB,GAAxC,UAAyC,sBAA8C,EAAE,YAAqB,EAAE,iBAAqC;;;;;4BAE5H,qBAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,CAAC,EAAA;;wBAAzG,YAAY,GAAG,SAA0F;wBAC/G,sBAAO,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAC;;;;KAC/C;IACL,0BAAC;AAAD,CAxDA,CAAyC,yBAAyB;;;;"}
@@ -1,4 +1,4 @@
1
- import { ICrypto, Logger, ServerTelemetryManager, CommonAuthorizationCodeRequest, AuthorizationCodeClient, ClientConfiguration, Authority, CommonEndSessionRequest } from "@azure/msal-common";
1
+ import { ICrypto, Logger, ServerTelemetryManager, CommonAuthorizationCodeRequest, AuthorizationCodeClient, ClientConfiguration, Authority, CommonEndSessionRequest, AccountInfo, AzureCloudOptions, IPerformanceClient } from "@azure/msal-common";
2
2
  import { BaseInteractionClient } from "./BaseInteractionClient";
3
3
  import { BrowserConfiguration } from "../config/Configuration";
4
4
  import { AuthorizationUrlRequest } from "../request/AuthorizationUrlRequest";
@@ -15,7 +15,7 @@ import { SsoSilentRequest } from "../request/SsoSilentRequest";
15
15
  */
16
16
  export declare abstract class StandardInteractionClient extends BaseInteractionClient {
17
17
  protected navigationClient: INavigationClient;
18
- constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, correlationId?: string);
18
+ constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, performanceClient: IPerformanceClient, correlationId?: string);
19
19
  /**
20
20
  * Generates an auth code request tied to the url request.
21
21
  * @param request
@@ -26,19 +26,25 @@ export declare abstract class StandardInteractionClient extends BaseInteractionC
26
26
  * @param logoutRequest
27
27
  */
28
28
  protected initializeLogoutRequest(logoutRequest?: EndSessionRequest): CommonEndSessionRequest;
29
+ /**
30
+ * Parses login_hint ID Token Claim out of AccountInfo object to be used as
31
+ * logout_hint in end session request.
32
+ * @param account
33
+ */
34
+ protected getLogoutHintFromIdTokenClaims(account: AccountInfo): string | null;
29
35
  /**
30
36
  * Creates an Authorization Code Client with the given authority, or the default authority.
31
37
  * @param serverTelemetryManager
32
38
  * @param authorityUrl
33
39
  */
34
- protected createAuthCodeClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string): Promise<AuthorizationCodeClient>;
40
+ protected createAuthCodeClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, requestAzureCloudOptions?: AzureCloudOptions): Promise<AuthorizationCodeClient>;
35
41
  /**
36
42
  * Creates a Client Configuration object with the given request authority, or the default authority.
37
43
  * @param serverTelemetryManager
38
44
  * @param requestAuthority
39
45
  * @param requestCorrelationId
40
46
  */
41
- protected getClientConfiguration(serverTelemetryManager: ServerTelemetryManager, requestAuthority?: string): Promise<ClientConfiguration>;
47
+ protected getClientConfiguration(serverTelemetryManager: ServerTelemetryManager, requestAuthority?: string, requestAzureCloudOptions?: AzureCloudOptions): Promise<ClientConfiguration>;
42
48
  /**
43
49
  * @param hash
44
50
  * @param interactionType
@@ -49,13 +55,7 @@ export declare abstract class StandardInteractionClient extends BaseInteractionC
49
55
  * @param requestAuthority
50
56
  * @param requestCorrelationId
51
57
  */
52
- protected getDiscoveredAuthority(requestAuthority?: string): Promise<Authority>;
53
- /**
54
- * Helper to validate app environment before making a request.
55
- * @param request
56
- * @param interactionType
57
- */
58
- protected preflightInteractiveRequest(request: RedirectRequest | PopupRequest, interactionType: InteractionType): Promise<AuthorizationUrlRequest>;
58
+ protected getDiscoveredAuthority(requestAuthority?: string, requestAzureCloudOptions?: AzureCloudOptions): Promise<Authority>;
59
59
  /**
60
60
  * Helper to initialize required request parameters for interactive APIs and ssoSilent()
61
61
  * @param request
@@ -1 +1 @@
1
- {"version":3,"file":"StandardInteractionClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/StandardInteractionClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,8BAA8B,EAAa,uBAAuB,EAAE,mBAAmB,EAAoB,SAAS,EAAgE,uBAAuB,EAA4C,MAAM,oBAAoB,CAAC;AACpU,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAoB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,8BAAsB,yBAA0B,SAAQ,qBAAqB;IACzE,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;gBAElC,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,MAAM;IAK3M;;;OAGG;cACa,kCAAkC,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAiB7H;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,uBAAuB;IAqC7F;;;;OAIG;cACa,oBAAoB,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAM7I;;;;;OAKG;cACa,sBAAsB,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiC/I;;;OAGG;IACH,SAAS,CAAC,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM;IAqBhI;;;;OAIG;cACa,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAkBrF;;;;OAIG;cACa,2BAA2B,CAAC,OAAO,EAAE,eAAe,GAAC,YAAY,EAAE,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAatJ;;;;OAIG;cACa,8BAA8B,CAAC,OAAO,EAAE,eAAe,GAAC,YAAY,GAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAwC7K"}
1
+ {"version":3,"file":"StandardInteractionClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/StandardInteractionClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,8BAA8B,EAAa,uBAAuB,EAAE,mBAAmB,EAAoB,SAAS,EAAgE,uBAAuB,EAA2D,WAAW,EAAE,iBAAiB,EAAqB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1Z,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAoB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,8BAAsB,yBAA0B,SAAQ,qBAAqB;IACzE,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;gBAElC,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAAE,MAAM;IAKlP;;;OAGG;cACa,kCAAkC,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAiB7H;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,uBAAuB;IAuD7F;;;;OAIG;IACH,SAAS,CAAC,8BAA8B,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAe7E;;;;OAIG;cACa,oBAAoB,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAM3L;;;;;OAKG;cACa,sBAAsB,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkC7L;;;OAGG;IACH,SAAS,CAAC,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM;IAqBhI;;;;OAIG;cACa,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAiCnI;;;;OAIG;cACa,8BAA8B,CAAC,OAAO,EAAE,eAAe,GAAC,YAAY,GAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAqC7K"}
@@ -1,7 +1,7 @@
1
- /*! @azure/msal-browser v2.21.0 2022-01-04 */
1
+ /*! @azure/msal-browser v2.23.0 2022-04-04 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';
4
- import { Constants, UrlString, AuthorizationCodeClient, AuthorityFactory, ResponseMode, StringUtils, ProtocolUtils } from '@azure/msal-common';
4
+ import { UrlString, Constants, AuthorizationCodeClient, PerformanceEvents, Authority, AuthorityFactory, ResponseMode, StringUtils, ProtocolUtils } from '@azure/msal-common';
5
5
  import { BaseInteractionClient } from './BaseInteractionClient.js';
6
6
  import { BrowserConstants } from '../utils/BrowserConstants.js';
7
7
  import { version } from '../packageMetadata.js';
@@ -18,8 +18,8 @@ import { BrowserUtils } from '../utils/BrowserUtils.js';
18
18
  */
19
19
  var StandardInteractionClient = /** @class */ (function (_super) {
20
20
  __extends(StandardInteractionClient, _super);
21
- function StandardInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, correlationId) {
22
- var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, correlationId) || this;
21
+ function StandardInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, correlationId) {
22
+ var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, performanceClient, correlationId) || this;
23
23
  _this.navigationClient = navigationClient;
24
24
  return _this;
25
25
  }
@@ -37,7 +37,7 @@ var StandardInteractionClient = /** @class */ (function (_super) {
37
37
  return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];
38
38
  case 1:
39
39
  generatedPkceParams = _a.sent();
40
- authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: "", codeVerifier: generatedPkceParams.verifier });
40
+ authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: Constants.EMPTY_STRING, codeVerifier: generatedPkceParams.verifier });
41
41
  request.codeChallenge = generatedPkceParams.challenge;
42
42
  request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;
43
43
  return [2 /*return*/, authCodeRequest];
@@ -51,11 +51,32 @@ var StandardInteractionClient = /** @class */ (function (_super) {
51
51
  */
52
52
  StandardInteractionClient.prototype.initializeLogoutRequest = function (logoutRequest) {
53
53
  this.logger.verbose("initializeLogoutRequest called", logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);
54
- // Check if interaction is in progress. Throw error if true.
55
- if (this.browserStorage.isInteractionInProgress()) {
56
- throw BrowserAuthError.createInteractionInProgressError();
57
- }
58
54
  var validLogoutRequest = __assign({ correlationId: this.browserCrypto.createNewGuid() }, logoutRequest);
55
+ /**
56
+ * Set logout_hint to be login_hint from ID Token Claims if present
57
+ * and logoutHint attribute wasn't manually set in logout request
58
+ */
59
+ if (logoutRequest) {
60
+ // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims
61
+ if (!logoutRequest.logoutHint) {
62
+ if (logoutRequest.account) {
63
+ var logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);
64
+ if (logoutHint) {
65
+ this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided");
66
+ validLogoutRequest.logoutHint = logoutHint;
67
+ }
68
+ }
69
+ else {
70
+ this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");
71
+ }
72
+ }
73
+ else {
74
+ this.logger.verbose("logoutHint has already been set in logoutRequest");
75
+ }
76
+ }
77
+ else {
78
+ this.logger.verbose("logoutHint will not be set since no logout request was configured");
79
+ }
59
80
  /*
60
81
  * Only set redirect uri if logout request isn't provided or the set uri isn't null.
61
82
  * Otherwise, use passed uri, config, or current page.
@@ -82,17 +103,37 @@ var StandardInteractionClient = /** @class */ (function (_super) {
82
103
  }
83
104
  return validLogoutRequest;
84
105
  };
106
+ /**
107
+ * Parses login_hint ID Token Claim out of AccountInfo object to be used as
108
+ * logout_hint in end session request.
109
+ * @param account
110
+ */
111
+ StandardInteractionClient.prototype.getLogoutHintFromIdTokenClaims = function (account) {
112
+ var idTokenClaims = account.idTokenClaims;
113
+ if (idTokenClaims) {
114
+ if (idTokenClaims.login_hint) {
115
+ return idTokenClaims.login_hint;
116
+ }
117
+ else {
118
+ this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request");
119
+ }
120
+ }
121
+ else {
122
+ this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");
123
+ }
124
+ return null;
125
+ };
85
126
  /**
86
127
  * Creates an Authorization Code Client with the given authority, or the default authority.
87
128
  * @param serverTelemetryManager
88
129
  * @param authorityUrl
89
130
  */
90
- StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl) {
131
+ StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl, requestAzureCloudOptions) {
91
132
  return __awaiter(this, void 0, void 0, function () {
92
133
  var clientConfig;
93
134
  return __generator(this, function (_a) {
94
135
  switch (_a.label) {
95
- case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];
136
+ case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, requestAzureCloudOptions)];
96
137
  case 1:
97
138
  clientConfig = _a.sent();
98
139
  return [2 /*return*/, new AuthorizationCodeClient(clientConfig)];
@@ -106,14 +147,14 @@ var StandardInteractionClient = /** @class */ (function (_super) {
106
147
  * @param requestAuthority
107
148
  * @param requestCorrelationId
108
149
  */
109
- StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority) {
150
+ StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority, requestAzureCloudOptions) {
110
151
  return __awaiter(this, void 0, void 0, function () {
111
152
  var discoveredAuthority;
112
153
  return __generator(this, function (_a) {
113
154
  switch (_a.label) {
114
155
  case 0:
115
- this.logger.verbose("getClientConfiguration called");
116
- return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority)];
156
+ this.logger.verbose("getClientConfiguration called", this.correlationId);
157
+ return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority, requestAzureCloudOptions)];
117
158
  case 1:
118
159
  discoveredAuthority = _a.sent();
119
160
  return [2 /*return*/, {
@@ -139,9 +180,10 @@ var StandardInteractionClient = /** @class */ (function (_super) {
139
180
  libraryInfo: {
140
181
  sku: BrowserConstants.MSAL_SKU,
141
182
  version: version,
142
- cpu: "",
143
- os: ""
144
- }
183
+ cpu: Constants.EMPTY_STRING,
184
+ os: Constants.EMPTY_STRING
185
+ },
186
+ telemetry: this.config.telemetry
145
187
  }];
146
188
  }
147
189
  });
@@ -173,49 +215,36 @@ var StandardInteractionClient = /** @class */ (function (_super) {
173
215
  * @param requestAuthority
174
216
  * @param requestCorrelationId
175
217
  */
176
- StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority) {
218
+ StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority, requestAzureCloudOptions) {
177
219
  return __awaiter(this, void 0, void 0, function () {
178
- var authorityOptions;
220
+ var getAuthorityMeasurement, authorityOptions, userAuthority, builtAuthority;
179
221
  return __generator(this, function (_a) {
180
222
  switch (_a.label) {
181
223
  case 0:
182
- this.logger.verbose("getDiscoveredAuthority called");
224
+ this.logger.verbose("getDiscoveredAuthority called", this.correlationId);
225
+ getAuthorityMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);
183
226
  authorityOptions = {
184
227
  protocolMode: this.config.auth.protocolMode,
185
228
  knownAuthorities: this.config.auth.knownAuthorities,
186
229
  cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,
187
- authorityMetadata: this.config.auth.authorityMetadata
230
+ authorityMetadata: this.config.auth.authorityMetadata,
188
231
  };
189
- if (!requestAuthority) return [3 /*break*/, 2];
190
- this.logger.verbose("Creating discovered authority with request authority");
191
- return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)];
192
- case 1: return [2 /*return*/, _a.sent()];
193
- case 2:
194
- this.logger.verbose("Creating discovered authority with configured authority");
195
- return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions)];
196
- case 3: return [2 /*return*/, _a.sent()];
197
- }
198
- });
199
- });
200
- };
201
- /**
202
- * Helper to validate app environment before making a request.
203
- * @param request
204
- * @param interactionType
205
- */
206
- StandardInteractionClient.prototype.preflightInteractiveRequest = function (request, interactionType) {
207
- return __awaiter(this, void 0, void 0, function () {
208
- return __generator(this, function (_a) {
209
- switch (_a.label) {
210
- case 0:
211
- this.logger.verbose("preflightInteractiveRequest called, validating app environment", request === null || request === void 0 ? void 0 : request.correlationId);
212
- // block the reload if it occurred inside a hidden iframe
213
- BrowserUtils.blockReloadInHiddenIframes();
214
- // Check if interaction is in progress. Throw error if true.
215
- if (this.browserStorage.isInteractionInProgress(false)) {
216
- throw BrowserAuthError.createInteractionInProgressError();
217
- }
218
- return [4 /*yield*/, this.initializeAuthorizationRequest(request, interactionType)];
232
+ userAuthority = requestAuthority ? requestAuthority : this.config.auth.authority;
233
+ builtAuthority = Authority.generateAuthority(userAuthority, requestAzureCloudOptions || this.config.auth.azureCloudOptions);
234
+ this.logger.verbose("Creating discovered authority with configured authority", this.correlationId);
235
+ return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)
236
+ .then(function (result) {
237
+ getAuthorityMeasurement.endMeasurement({
238
+ success: true
239
+ });
240
+ return result;
241
+ })
242
+ .catch(function (error) {
243
+ getAuthorityMeasurement.endMeasurement({
244
+ success: false
245
+ });
246
+ throw error;
247
+ })];
219
248
  case 1: return [2 /*return*/, _a.sent()];
220
249
  }
221
250
  });
@@ -232,20 +261,20 @@ var StandardInteractionClient = /** @class */ (function (_super) {
232
261
  return __generator(this, function (_b) {
233
262
  switch (_b.label) {
234
263
  case 0:
235
- this.logger.verbose("initializeAuthorizationRequest called");
264
+ this.logger.verbose("initializeAuthorizationRequest called", this.correlationId);
236
265
  redirectUri = this.getRedirectUri(request.redirectUri);
237
266
  browserState = {
238
267
  interactionType: interactionType
239
268
  };
240
- state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || "", browserState);
269
+ state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || Constants.EMPTY_STRING, browserState);
241
270
  _a = [{}];
242
271
  return [4 /*yield*/, this.initializeBaseRequest(request)];
243
272
  case 1:
244
273
  validatedRequest = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT }]);
245
274
  account = request.account || this.browserStorage.getActiveAccount();
246
275
  if (account) {
247
- this.logger.verbose("Setting validated request account");
248
- this.logger.verbosePii("Setting validated request account: " + account);
276
+ this.logger.verbose("Setting validated request account", this.correlationId);
277
+ this.logger.verbosePii("Setting validated request account: " + account.homeAccountId, this.correlationId);
249
278
  validatedRequest.account = account;
250
279
  }
251
280
  // Check for ADAL/MSAL v1 SSO
@@ -255,7 +284,6 @@ var StandardInteractionClient = /** @class */ (function (_super) {
255
284
  validatedRequest.loginHint = legacyLoginHint;
256
285
  }
257
286
  }
258
- this.browserStorage.updateCacheEntries(validatedRequest.state, validatedRequest.nonce, validatedRequest.authority, validatedRequest.loginHint || "", validatedRequest.account || null);
259
287
  return [2 /*return*/, validatedRequest];
260
288
  }
261
289
  });
@@ -1 +1 @@
1
- {"version":3,"file":"StandardInteractionClient.js","sources":["../../src/interaction_client/StandardInteractionClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ICrypto, Logger, ServerTelemetryManager, CommonAuthorizationCodeRequest, Constants, AuthorizationCodeClient, ClientConfiguration, AuthorityOptions, Authority, AuthorityFactory, ServerAuthorizationCodeResponse, UrlString, CommonEndSessionRequest, ProtocolUtils, ResponseMode, StringUtils } from \"@azure/msal-common\";\nimport { BaseInteractionClient } from \"./BaseInteractionClient\";\nimport { BrowserConfiguration } from \"../config/Configuration\";\nimport { AuthorizationUrlRequest } from \"../request/AuthorizationUrlRequest\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { EventHandler } from \"../event/EventHandler\";\nimport { BrowserConstants, InteractionType } from \"../utils/BrowserConstants\";\nimport { version } from \"../packageMetadata\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserProtocolUtils, BrowserStateObject } from \"../utils/BrowserProtocolUtils\";\nimport { EndSessionRequest } from \"../request/EndSessionRequest\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { SsoSilentRequest } from \"../request/SsoSilentRequest\";\n\n/**\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\n */\nexport abstract class StandardInteractionClient extends BaseInteractionClient {\n protected navigationClient: INavigationClient;\n\n constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, correlationId?: string) {\n super(config, storageImpl, browserCrypto, logger, eventHandler, correlationId);\n this.navigationClient = navigationClient;\n }\n \n /**\n * Generates an auth code request tied to the url request.\n * @param request\n */\n protected async initializeAuthorizationCodeRequest(request: AuthorizationUrlRequest): Promise<CommonAuthorizationCodeRequest> {\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\n const generatedPkceParams = await this.browserCrypto.generatePkceCodes();\n\n const authCodeRequest: CommonAuthorizationCodeRequest = {\n ...request,\n redirectUri: request.redirectUri,\n code: \"\",\n codeVerifier: generatedPkceParams.verifier\n };\n\n request.codeChallenge = generatedPkceParams.challenge;\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\n\n return authCodeRequest;\n }\n\n /**\n * Initializer for the logout request.\n * @param logoutRequest\n */\n protected initializeLogoutRequest(logoutRequest?: EndSessionRequest): CommonEndSessionRequest {\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest?.correlationId);\n\n // Check if interaction is in progress. Throw error if true.\n if (this.browserStorage.isInteractionInProgress()) {\n throw BrowserAuthError.createInteractionInProgressError();\n }\n\n const validLogoutRequest: CommonEndSessionRequest = {\n correlationId: this.browserCrypto.createNewGuid(),\n ...logoutRequest\n };\n\n /*\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\n * Otherwise, use passed uri, config, or current page.\n */\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\n } else if (this.config.auth.postLogoutRedirectUri === null) {\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\n } else if (this.config.auth.postLogoutRedirectUri) {\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\n } else {\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\n }\n } else {\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\n }\n\n return validLogoutRequest;\n }\n\n /**\n * Creates an Authorization Code Client with the given authority, or the default authority.\n * @param serverTelemetryManager\n * @param authorityUrl\n */\n protected async createAuthCodeClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string): Promise<AuthorizationCodeClient> {\n // Create auth module.\n const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl);\n return new AuthorizationCodeClient(clientConfig);\n }\n\n /**\n * Creates a Client Configuration object with the given request authority, or the default authority.\n * @param serverTelemetryManager\n * @param requestAuthority\n * @param requestCorrelationId\n */\n protected async getClientConfiguration(serverTelemetryManager: ServerTelemetryManager, requestAuthority?: string): Promise<ClientConfiguration> {\n this.logger.verbose(\"getClientConfiguration called\");\n const discoveredAuthority = await this.getDiscoveredAuthority(requestAuthority);\n\n return {\n authOptions: {\n clientId: this.config.auth.clientId,\n authority: discoveredAuthority,\n clientCapabilities: this.config.auth.clientCapabilities\n },\n systemOptions: {\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\n preventCorsPreflight: true\n },\n loggerOptions: {\n loggerCallback: this.config.system.loggerOptions.loggerCallback,\n piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled,\n logLevel: this.config.system.loggerOptions.logLevel,\n correlationId: this.correlationId\n },\n cryptoInterface: this.browserCrypto,\n networkInterface: this.networkClient,\n storageInterface: this.browserStorage,\n serverTelemetryManager: serverTelemetryManager,\n libraryInfo: {\n sku: BrowserConstants.MSAL_SKU,\n version: version,\n cpu: \"\",\n os: \"\"\n }\n };\n }\n\n /**\n * @param hash\n * @param interactionType\n */\n protected validateAndExtractStateFromHash(hash: string, interactionType: InteractionType, requestCorrelationId?: string): string {\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\n // Deserialize hash fragment response parameters.\n const serverParams: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\n if (!serverParams.state) {\n throw BrowserAuthError.createHashDoesNotContainStateError();\n }\n\n const platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\n if (!platformStateObj) {\n throw BrowserAuthError.createUnableToParseStateError();\n }\n\n if (platformStateObj.interactionType !== interactionType) {\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\n }\n\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\n return serverParams.state;\n }\n\n /**\n * Used to get a discovered version of the default authority.\n * @param requestAuthority\n * @param requestCorrelationId\n */\n protected async getDiscoveredAuthority(requestAuthority?: string): Promise<Authority> {\n this.logger.verbose(\"getDiscoveredAuthority called\");\n const authorityOptions: AuthorityOptions = {\n protocolMode: this.config.auth.protocolMode,\n knownAuthorities: this.config.auth.knownAuthorities,\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\n authorityMetadata: this.config.auth.authorityMetadata\n };\n\n if (requestAuthority) {\n this.logger.verbose(\"Creating discovered authority with request authority\");\n return await AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions);\n }\n\n this.logger.verbose(\"Creating discovered authority with configured authority\");\n return await AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions);\n }\n\n /**\n * Helper to validate app environment before making a request.\n * @param request\n * @param interactionType\n */\n protected async preflightInteractiveRequest(request: RedirectRequest|PopupRequest, interactionType: InteractionType): Promise<AuthorizationUrlRequest> {\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\", request?.correlationId);\n // block the reload if it occurred inside a hidden iframe\n BrowserUtils.blockReloadInHiddenIframes();\n \n // Check if interaction is in progress. Throw error if true.\n if (this.browserStorage.isInteractionInProgress(false)) {\n throw BrowserAuthError.createInteractionInProgressError();\n }\n \n return await this.initializeAuthorizationRequest(request, interactionType);\n }\n\n /**\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\n * @param request\n * @param interactionType\n */\n protected async initializeAuthorizationRequest(request: RedirectRequest|PopupRequest|SsoSilentRequest, interactionType: InteractionType): Promise<AuthorizationUrlRequest> {\n this.logger.verbose(\"initializeAuthorizationRequest called\");\n const redirectUri = this.getRedirectUri(request.redirectUri);\n const browserState: BrowserStateObject = {\n interactionType: interactionType\n };\n\n const state = ProtocolUtils.setRequestState(\n this.browserCrypto,\n (request && request.state) || \"\",\n browserState\n );\n\n const validatedRequest: AuthorizationUrlRequest = {\n ...await this.initializeBaseRequest(request),\n redirectUri: redirectUri,\n state: state,\n nonce: request.nonce || this.browserCrypto.createNewGuid(),\n responseMode: ResponseMode.FRAGMENT\n };\n\n const account = request.account || this.browserStorage.getActiveAccount();\n if (account) {\n this.logger.verbose(\"Setting validated request account\");\n this.logger.verbosePii(`Setting validated request account: ${account}`);\n validatedRequest.account = account;\n }\n\n // Check for ADAL/MSAL v1 SSO\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\n const legacyLoginHint = this.browserStorage.getLegacyLoginHint();\n if (legacyLoginHint) {\n validatedRequest.loginHint = legacyLoginHint;\n }\n }\n\n this.browserStorage.updateCacheEntries(validatedRequest.state, validatedRequest.nonce, validatedRequest.authority, validatedRequest.loginHint || \"\", validatedRequest.account || null);\n\n return validatedRequest;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StandardInteractionClient.js","sources":["../../src/interaction_client/StandardInteractionClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ICrypto, Logger, ServerTelemetryManager, CommonAuthorizationCodeRequest, Constants, AuthorizationCodeClient, ClientConfiguration, AuthorityOptions, Authority, AuthorityFactory, ServerAuthorizationCodeResponse, UrlString, CommonEndSessionRequest, ProtocolUtils, ResponseMode, StringUtils, IdTokenClaims, AccountInfo, AzureCloudOptions, PerformanceEvents, IPerformanceClient } from \"@azure/msal-common\";\nimport { BaseInteractionClient } from \"./BaseInteractionClient\";\nimport { BrowserConfiguration } from \"../config/Configuration\";\nimport { AuthorizationUrlRequest } from \"../request/AuthorizationUrlRequest\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { EventHandler } from \"../event/EventHandler\";\nimport { BrowserConstants, InteractionType } from \"../utils/BrowserConstants\";\nimport { version } from \"../packageMetadata\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserProtocolUtils, BrowserStateObject } from \"../utils/BrowserProtocolUtils\";\nimport { EndSessionRequest } from \"../request/EndSessionRequest\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { SsoSilentRequest } from \"../request/SsoSilentRequest\";\n\n/**\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\n */\nexport abstract class StandardInteractionClient extends BaseInteractionClient {\n protected navigationClient: INavigationClient;\n\n constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, performanceClient: IPerformanceClient, correlationId?: string) {\n super(config, storageImpl, browserCrypto, logger, eventHandler, performanceClient, correlationId);\n this.navigationClient = navigationClient;\n }\n\n /**\n * Generates an auth code request tied to the url request.\n * @param request\n */\n protected async initializeAuthorizationCodeRequest(request: AuthorizationUrlRequest): Promise<CommonAuthorizationCodeRequest> {\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\n const generatedPkceParams = await this.browserCrypto.generatePkceCodes();\n\n const authCodeRequest: CommonAuthorizationCodeRequest = {\n ...request,\n redirectUri: request.redirectUri,\n code: Constants.EMPTY_STRING,\n codeVerifier: generatedPkceParams.verifier\n };\n\n request.codeChallenge = generatedPkceParams.challenge;\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\n\n return authCodeRequest;\n }\n\n /**\n * Initializer for the logout request.\n * @param logoutRequest\n */\n protected initializeLogoutRequest(logoutRequest?: EndSessionRequest): CommonEndSessionRequest {\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest?.correlationId);\n\n const validLogoutRequest: CommonEndSessionRequest = {\n correlationId: this.browserCrypto.createNewGuid(),\n ...logoutRequest\n };\n\n /**\n * Set logout_hint to be login_hint from ID Token Claims if present\n * and logoutHint attribute wasn't manually set in logout request\n */\n if (logoutRequest) {\n // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims\n if (!logoutRequest.logoutHint) {\n if(logoutRequest.account) {\n const logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);\n if (logoutHint) {\n this.logger.verbose(\"Setting logoutHint to login_hint ID Token Claim value for the account provided\");\n validLogoutRequest.logoutHint = logoutHint;\n }\n } else {\n this.logger.verbose(\"logoutHint was not set and account was not passed into logout request, logoutHint will not be set\");\n }\n } else {\n this.logger.verbose(\"logoutHint has already been set in logoutRequest\");\n }\n } else {\n this.logger.verbose(\"logoutHint will not be set since no logout request was configured\");\n }\n\n /*\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\n * Otherwise, use passed uri, config, or current page.\n */\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\n } else if (this.config.auth.postLogoutRedirectUri === null) {\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\n } else if (this.config.auth.postLogoutRedirectUri) {\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\n } else {\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\n }\n } else {\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\n }\n\n return validLogoutRequest;\n }\n\n /**\n * Parses login_hint ID Token Claim out of AccountInfo object to be used as\n * logout_hint in end session request.\n * @param account\n */\n protected getLogoutHintFromIdTokenClaims(account: AccountInfo): string | null {\n const idTokenClaims: IdTokenClaims | undefined = account.idTokenClaims;\n if (idTokenClaims) {\n if (idTokenClaims.login_hint) {\n return idTokenClaims.login_hint;\n } else {\n this.logger.verbose(\"The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request\");\n }\n } else {\n this.logger.verbose(\"The provided account does not contain ID Token Claims, logoutHint will not be added to logout request\");\n }\n\n return null;\n }\n\n /**\n * Creates an Authorization Code Client with the given authority, or the default authority.\n * @param serverTelemetryManager\n * @param authorityUrl\n */\n protected async createAuthCodeClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, requestAzureCloudOptions?: AzureCloudOptions): Promise<AuthorizationCodeClient> {\n // Create auth module.\n const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl, requestAzureCloudOptions);\n return new AuthorizationCodeClient(clientConfig);\n }\n\n /**\n * Creates a Client Configuration object with the given request authority, or the default authority.\n * @param serverTelemetryManager\n * @param requestAuthority\n * @param requestCorrelationId\n */\n protected async getClientConfiguration(serverTelemetryManager: ServerTelemetryManager, requestAuthority?: string, requestAzureCloudOptions?: AzureCloudOptions): Promise<ClientConfiguration> {\n this.logger.verbose(\"getClientConfiguration called\", this.correlationId);\n const discoveredAuthority = await this.getDiscoveredAuthority(requestAuthority, requestAzureCloudOptions);\n\n return {\n authOptions: {\n clientId: this.config.auth.clientId,\n authority: discoveredAuthority,\n clientCapabilities: this.config.auth.clientCapabilities\n },\n systemOptions: {\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\n preventCorsPreflight: true\n },\n loggerOptions: {\n loggerCallback: this.config.system.loggerOptions.loggerCallback,\n piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled,\n logLevel: this.config.system.loggerOptions.logLevel,\n correlationId: this.correlationId\n },\n cryptoInterface: this.browserCrypto,\n networkInterface: this.networkClient,\n storageInterface: this.browserStorage,\n serverTelemetryManager: serverTelemetryManager,\n libraryInfo: {\n sku: BrowserConstants.MSAL_SKU,\n version: version,\n cpu: Constants.EMPTY_STRING,\n os: Constants.EMPTY_STRING\n },\n telemetry: this.config.telemetry\n };\n }\n\n /**\n * @param hash\n * @param interactionType\n */\n protected validateAndExtractStateFromHash(hash: string, interactionType: InteractionType, requestCorrelationId?: string): string {\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\n // Deserialize hash fragment response parameters.\n const serverParams: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\n if (!serverParams.state) {\n throw BrowserAuthError.createHashDoesNotContainStateError();\n }\n\n const platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\n if (!platformStateObj) {\n throw BrowserAuthError.createUnableToParseStateError();\n }\n\n if (platformStateObj.interactionType !== interactionType) {\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\n }\n\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\n return serverParams.state;\n }\n\n /**\n * Used to get a discovered version of the default authority.\n * @param requestAuthority\n * @param requestCorrelationId\n */\n protected async getDiscoveredAuthority(requestAuthority?: string, requestAzureCloudOptions?: AzureCloudOptions): Promise<Authority> {\n this.logger.verbose(\"getDiscoveredAuthority called\", this.correlationId);\n const getAuthorityMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\n const authorityOptions: AuthorityOptions = {\n protocolMode: this.config.auth.protocolMode,\n knownAuthorities: this.config.auth.knownAuthorities,\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\n authorityMetadata: this.config.auth.authorityMetadata,\n };\n\n // build authority string based on auth params, precedence - azureCloudInstance + tenant >> authority\n const userAuthority = requestAuthority ? requestAuthority : this.config.auth.authority;\n\n // fall back to the authority from config\n const builtAuthority = Authority.generateAuthority( userAuthority, requestAzureCloudOptions || this.config.auth.azureCloudOptions);\n this.logger.verbose(\"Creating discovered authority with configured authority\", this.correlationId);\n return await AuthorityFactory.createDiscoveredInstance(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)\n .then((result: Authority) => {\n getAuthorityMeasurement.endMeasurement({\n success: true\n });\n\n return result;\n })\n .catch((error:Error) => {\n getAuthorityMeasurement.endMeasurement({\n success: false\n });\n\n throw error;\n });\n }\n\n /**\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\n * @param request\n * @param interactionType\n */\n protected async initializeAuthorizationRequest(request: RedirectRequest|PopupRequest|SsoSilentRequest, interactionType: InteractionType): Promise<AuthorizationUrlRequest> {\n this.logger.verbose(\"initializeAuthorizationRequest called\", this.correlationId);\n const redirectUri = this.getRedirectUri(request.redirectUri);\n const browserState: BrowserStateObject = {\n interactionType: interactionType\n };\n const state = ProtocolUtils.setRequestState(\n this.browserCrypto,\n (request && request.state)|| Constants.EMPTY_STRING,\n browserState\n );\n\n const validatedRequest: AuthorizationUrlRequest = {\n ...await this.initializeBaseRequest(request),\n redirectUri: redirectUri,\n state: state,\n nonce: request.nonce || this.browserCrypto.createNewGuid(),\n responseMode: ResponseMode.FRAGMENT\n };\n\n const account = request.account || this.browserStorage.getActiveAccount();\n if (account) {\n this.logger.verbose(\"Setting validated request account\", this.correlationId);\n this.logger.verbosePii(`Setting validated request account: ${account.homeAccountId}`, this.correlationId);\n validatedRequest.account = account;\n }\n\n // Check for ADAL/MSAL v1 SSO\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\n const legacyLoginHint = this.browserStorage.getLegacyLoginHint();\n if (legacyLoginHint) {\n validatedRequest.loginHint = legacyLoginHint;\n }\n }\n\n return validatedRequest;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;AAsBA;;;;IAGwD,6CAAqB;IAGzE,mCAAY,MAA4B,EAAE,WAAgC,EAAE,aAAsB,EAAE,MAAc,EAAE,YAA0B,EAAE,gBAAmC,EAAE,iBAAqC,EAAE,aAAsB;QAAlP,YACI,kBAAM,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,CAAC,SAEpG;QADG,KAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;;KAC5C;;;;;IAMe,sEAAkC,GAAlD,UAAmD,OAAgC;;;;;;wBAC/E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;wBACxD,qBAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAA;;wBAAlE,mBAAmB,GAAG,SAA4C;wBAElE,eAAe,yBACd,OAAO,KACV,WAAW,EAAE,OAAO,CAAC,WAAW,EAChC,IAAI,EAAE,SAAS,CAAC,YAAY,EAC5B,YAAY,EAAE,mBAAmB,CAAC,QAAQ,GAC7C,CAAC;wBAEF,OAAO,CAAC,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC;wBACtD,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,0BAA0B,CAAC;wBAEnE,sBAAO,eAAe,EAAC;;;;KAC1B;;;;;IAMS,2DAAuB,GAAjC,UAAkC,aAAiC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,CAAC,CAAC;QAEpF,IAAM,kBAAkB,cACpB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAC9C,aAAa,CACnB,CAAC;;;;;QAMF,IAAI,aAAa,EAAE;;YAEf,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC3B,IAAG,aAAa,CAAC,OAAO,EAAE;oBACtB,IAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC9E,IAAI,UAAU,EAAE;wBACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gFAAgF,CAAC,CAAC;wBACtG,kBAAkB,CAAC,UAAU,GAAG,UAAU,CAAC;qBAC9C;iBACJ;qBAAM;oBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mGAAmG,CAAC,CAAC;iBAC5H;aACJ;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;aAC3E;SACJ;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;SAC5F;;;;;QAMD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,qBAAqB,KAAK,IAAI,EAAE;YAChE,IAAI,aAAa,IAAI,aAAa,CAAC,qBAAqB,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4DAA4D,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;gBACpH,kBAAkB,CAAC,qBAAqB,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,qBAAqB,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;aAC1I;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE;gBACxD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sGAAsG,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;aACjK;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iDAAiD,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;gBACzG,kBAAkB,CAAC,qBAAqB,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;aAC7I;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+CAA+C,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;gBACvG,kBAAkB,CAAC,qBAAqB,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;aACnI;SACJ;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4EAA4E,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;SACvI;QAED,OAAO,kBAAkB,CAAC;KAC7B;;;;;;IAOS,kEAA8B,GAAxC,UAAyC,OAAoB;QACzD,IAAM,aAAa,GAA8B,OAAO,CAAC,aAAa,CAAC;QACvE,IAAI,aAAa,EAAE;YACf,IAAI,aAAa,CAAC,UAAU,EAAE;gBAC1B,OAAO,aAAa,CAAC,UAAU,CAAC;aACnC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oIAAoI,CAAC,CAAC;aAC7J;SACJ;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uGAAuG,CAAC,CAAC;SAChI;QAED,OAAO,IAAI,CAAC;KACf;;;;;;IAOe,wDAAoB,GAApC,UAAqC,sBAA8C,EAAE,YAAqB,EAAE,wBAA4C;;;;;4BAE/H,qBAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,YAAY,EAAE,wBAAwB,CAAC,EAAA;;wBAAhH,YAAY,GAAG,SAAiG;wBACtH,sBAAO,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAC;;;;KACpD;;;;;;;IAQe,0DAAsB,GAAtC,UAAuC,sBAA8C,EAAE,gBAAyB,EAAE,wBAA4C;;;;;;wBAC1J,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC7C,qBAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,EAAA;;wBAAnG,mBAAmB,GAAG,SAA6E;wBAEzG,sBAAO;gCACH,WAAW,EAAE;oCACT,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;oCACnC,SAAS,EAAE,mBAAmB;oCAC9B,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB;iCAC1D;gCACD,aAAa,EAAE;oCACX,yBAAyB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB;oCACvE,oBAAoB,EAAE,IAAI;iCAC7B;gCACD,aAAa,EAAE;oCACX,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc;oCAC/D,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB;oCACrE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ;oCACnD,aAAa,EAAE,IAAI,CAAC,aAAa;iCACpC;gCACD,eAAe,EAAE,IAAI,CAAC,aAAa;gCACnC,gBAAgB,EAAE,IAAI,CAAC,aAAa;gCACpC,gBAAgB,EAAE,IAAI,CAAC,cAAc;gCACrC,sBAAsB,EAAE,sBAAsB;gCAC9C,WAAW,EAAE;oCACT,GAAG,EAAE,gBAAgB,CAAC,QAAQ;oCAC9B,OAAO,EAAE,OAAO;oCAChB,GAAG,EAAE,SAAS,CAAC,YAAY;oCAC3B,EAAE,EAAE,SAAS,CAAC,YAAY;iCAC7B;gCACD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;6BACnC,EAAC;;;;KACL;;;;;IAMS,mEAA+B,GAAzC,UAA0C,IAAY,EAAE,eAAgC,EAAE,oBAA6B;QACnH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,oBAAoB,CAAC,CAAC;;QAEpF,IAAM,YAAY,GAAoC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACrB,MAAM,gBAAgB,CAAC,kCAAkC,EAAE,CAAC;SAC/D;QAED,IAAM,gBAAgB,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjH,IAAI,CAAC,gBAAgB,EAAE;YACnB,MAAM,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;SAC1D;QAED,IAAI,gBAAgB,CAAC,eAAe,KAAK,eAAe,EAAE;YACtD,MAAM,gBAAgB,CAAC,uCAAuC,EAAE,CAAC;SACpE;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,oBAAoB,CAAC,CAAC;QACvE,OAAO,YAAY,CAAC,KAAK,CAAC;KAC7B;;;;;;IAOe,0DAAsB,GAAtC,UAAuC,gBAAyB,EAAE,wBAA4C;;;;;;wBAC1G,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBACnE,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,+CAA+C,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBACzJ,gBAAgB,GAAqB;4BACvC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB;4BACnD,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB;4BAC/D,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB;yBACxD,CAAC;wBAGI,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;wBAGjF,cAAc,GAAG,SAAS,CAAC,iBAAiB,CAAE,aAAa,EAAE,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBACnI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yDAAyD,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC5F,qBAAM,gBAAgB,CAAC,wBAAwB,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC;iCAC1I,IAAI,CAAC,UAAC,MAAiB;gCACpB,uBAAuB,CAAC,cAAc,CAAC;oCACnC,OAAO,EAAE,IAAI;iCAChB,CAAC,CAAC;gCAEH,OAAO,MAAM,CAAC;6BACjB,CAAC;iCACD,KAAK,CAAC,UAAC,KAAW;gCACf,uBAAuB,CAAC,cAAc,CAAC;oCACnC,OAAO,EAAE,KAAK;iCACjB,CAAC,CAAC;gCAEH,MAAM,KAAK,CAAC;6BACf,CAAC,EAAA;4BAdN,sBAAO,SAcD,EAAC;;;;KACV;;;;;;IAOe,kEAA8B,GAA9C,UAA+C,OAAsD,EAAE,eAAgC;;;;;;wBACnI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC3E,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACvD,YAAY,GAAuB;4BACrC,eAAe,EAAE,eAAe;yBACnC,CAAC;wBACI,KAAK,GAAG,aAAa,CAAC,eAAe,CACvC,IAAI,CAAC,aAAa,EAClB,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAI,SAAS,CAAC,YAAY,EACnD,YAAY,CACf,CAAC;;wBAGK,qBAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAA;;wBAD1C,gBAAgB,6DACf,SAAyC,OAC5C,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAC1D,YAAY,EAAE,YAAY,CAAC,QAAQ,IACtC;wBAEK,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;wBAC1E,IAAI,OAAO,EAAE;4BACT,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;4BAC7E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,wCAAsC,OAAO,CAAC,aAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;4BAC1G,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC;yBACtC;;wBAGD,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;4BACvD,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;4BACjE,IAAI,eAAe,EAAE;gCACjB,gBAAgB,CAAC,SAAS,GAAG,eAAe,CAAC;6BAChD;yBACJ;wBAED,sBAAO,gBAAgB,EAAC;;;;KAC3B;IACL,gCAAC;AAAD,CAxQA,CAAwD,qBAAqB;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.21.0 2022-01-04 */
1
+ /*! @azure/msal-browser v2.23.0 2022-04-04 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { StringUtils, ClientAuthError, AuthorityFactory } from '@azure/msal-common';
@@ -1 +1 @@
1
- {"version":3,"file":"PopupHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/PopupHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,8BAA8B,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAc,MAAM,qBAAqB,CAAC;AAGxE,oBAAY,WAAW,GAAG,iBAAiB,GAAG;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,qBAAqB,CAAA;CAC/C,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,kBAAkB;IAChD,OAAO,CAAC,UAAU,CAAa;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM;IAOpK;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAepE;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkB5D"}
1
+ {"version":3,"file":"PopupHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/PopupHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,8BAA8B,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAc,MAAM,qBAAqB,CAAC;AAGxE,oBAAY,WAAW,GAAG,iBAAiB,GAAG;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,qBAAqB,CAAA;CAC/C,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,kBAAkB;IAChD,OAAO,CAAC,UAAU,CAAa;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM;IAOpK;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAapE;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkB5D"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.21.0 2022-01-04 */
1
+ /*! @azure/msal-browser v2.23.0 2022-04-04 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { StringUtils, UrlString } from '@azure/msal-common';
@@ -30,8 +30,6 @@ var PopupHandler = /** @class */ (function (_super) {
30
30
  PopupHandler.prototype.initiateAuthRequest = function (requestUrl, params) {
31
31
  // Check that request url is not empty.
32
32
  if (!StringUtils.isEmpty(requestUrl)) {
33
- // Set interaction status in the library.
34
- this.browserStorage.setInteractionInProgress(true);
35
33
  this.browserRequestLogger.infoPii("Navigate to: " + requestUrl);
36
34
  // Open the popup window to requestUrl.
37
35
  return this.popupUtils.openPopup(requestUrl, params);
@@ -1 +1 @@
1
- {"version":3,"file":"PopupHandler.js","sources":["../../src/interaction_handler/PopupHandler.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { UrlString, StringUtils, CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from \"@azure/msal-common\";\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { PopupWindowAttributes, PopupUtils } from \"../utils/PopupUtils\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\n\nexport type PopupParams = InteractionParams & {\n popup?: Window|null;\n popupName: string;\n popupWindowAttributes: PopupWindowAttributes\n};\n\n/**\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\n */\nexport class PopupHandler extends InteractionHandler {\n private popupUtils: PopupUtils;\n\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n\n // Properly sets this reference for the unload event.\n this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);\n }\n\n /**\n * Opens a popup window with given request Url.\n * @param requestUrl\n */\n initiateAuthRequest(requestUrl: string, params: PopupParams): Window {\n // Check that request url is not empty.\n if (!StringUtils.isEmpty(requestUrl)) {\n // Set interaction status in the library.\n this.browserStorage.setInteractionInProgress(true);\n this.browserRequestLogger.infoPii(`Navigate to: ${requestUrl}`);\n // Open the popup window to requestUrl.\n return this.popupUtils.openPopup(requestUrl, params);\n } else {\n // Throw error if request URL is empty.\n this.browserRequestLogger.error(\"Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n }\n\n /**\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\n * @param popupWindow - window that is being monitored\n * @param timeout - milliseconds until timeout\n */\n monitorPopupForHash(popupWindow: Window): Promise<string> {\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(() => {\n const contentHash = popupWindow.location.hash;\n BrowserUtils.clearHash(popupWindow);\n this.popupUtils.cleanPopup(popupWindow);\n\n if (!contentHash) {\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\n }\n\n if (UrlString.hashContainsKnownProperties(contentHash)) {\n return contentHash;\n } else {\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\n }\n }\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;AAkBA;;;;;IAIkC,gCAAkB;IAGhD,sBAAY,cAAuC,EAAE,WAAgC,EAAE,eAA+C,EAAE,oBAA4B;QAApK,YACI,kBAAM,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,CAAC,SAI5E;;QADG,KAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;;KACvE;;;;;IAMD,0CAAmB,GAAnB,UAAoB,UAAkB,EAAE,MAAmB;;QAEvD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;;YAElC,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,kBAAgB,UAAY,CAAC,CAAC;;YAEhE,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SACxD;aAAM;;YAEH,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACzD,MAAM,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;SAC1D;KACJ;;;;;;IAOD,0CAAmB,GAAnB,UAAoB,WAAmB;QAAvC,iBAiBC;QAhBG,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAC/D,IAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9C,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACpC,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAExC,IAAI,CAAC,WAAW,EAAE;gBACd,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC1E;YAED,IAAI,SAAS,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBACpD,OAAO,WAAW,CAAC;aACtB;iBAAM;gBACH,MAAM,gBAAgB,CAAC,4CAA4C,EAAE,CAAC;aACzE;SACJ,CACA,CAAC;KACL;IACL,mBAAC;AAAD,CApDA,CAAkC,kBAAkB;;;;"}
1
+ {"version":3,"file":"PopupHandler.js","sources":["../../src/interaction_handler/PopupHandler.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { UrlString, StringUtils, CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from \"@azure/msal-common\";\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { PopupWindowAttributes, PopupUtils } from \"../utils/PopupUtils\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\n\nexport type PopupParams = InteractionParams & {\n popup?: Window|null;\n popupName: string;\n popupWindowAttributes: PopupWindowAttributes\n};\n\n/**\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\n */\nexport class PopupHandler extends InteractionHandler {\n private popupUtils: PopupUtils;\n\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n\n // Properly sets this reference for the unload event.\n this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);\n }\n\n /**\n * Opens a popup window with given request Url.\n * @param requestUrl\n */\n initiateAuthRequest(requestUrl: string, params: PopupParams): Window {\n // Check that request url is not empty.\n if (!StringUtils.isEmpty(requestUrl)) {\n this.browserRequestLogger.infoPii(`Navigate to: ${requestUrl}`);\n // Open the popup window to requestUrl.\n return this.popupUtils.openPopup(requestUrl, params);\n } else {\n // Throw error if request URL is empty.\n this.browserRequestLogger.error(\"Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n }\n\n /**\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\n * @param popupWindow - window that is being monitored\n * @param timeout - milliseconds until timeout\n */\n monitorPopupForHash(popupWindow: Window): Promise<string> {\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(() => {\n const contentHash = popupWindow.location.hash;\n BrowserUtils.clearHash(popupWindow);\n this.popupUtils.cleanPopup(popupWindow);\n\n if (!contentHash) {\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\n }\n\n if (UrlString.hashContainsKnownProperties(contentHash)) {\n return contentHash;\n } else {\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\n }\n }\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;AAkBA;;;;;IAIkC,gCAAkB;IAGhD,sBAAY,cAAuC,EAAE,WAAgC,EAAE,eAA+C,EAAE,oBAA4B;QAApK,YACI,kBAAM,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,CAAC,SAI5E;;QADG,KAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;;KACvE;;;;;IAMD,0CAAmB,GAAnB,UAAoB,UAAkB,EAAE,MAAmB;;QAEvD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAClC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,kBAAgB,UAAY,CAAC,CAAC;;YAEhE,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SACxD;aAAM;;YAEH,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACzD,MAAM,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;SAC1D;KACJ;;;;;;IAOD,0CAAmB,GAAnB,UAAoB,WAAmB;QAAvC,iBAiBC;QAhBG,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAC/D,IAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9C,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACpC,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAExC,IAAI,CAAC,WAAW,EAAE;gBACd,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC1E;YAED,IAAI,SAAS,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBACpD,OAAO,WAAW,CAAC;aACtB;iBAAM;gBACH,MAAM,gBAAgB,CAAC,4CAA4C,EAAE,CAAC;aACzE;SACJ,CACA,CAAC;KACL;IACL,mBAAC;AAAD,CAlDA,CAAkC,kBAAkB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAe,8BAA8B,EAAE,OAAO,EAAE,oBAAoB,EAAmB,SAAS,EAAE,cAAc,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG9M,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,oBAAY,cAAc,GAAG,iBAAiB,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAgB,SAAQ,kBAAkB;IAEnD,OAAO,CAAC,aAAa,CAAU;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;IAK5L;;;OAGG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDpF;;;OAGG;IACG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAuD/K"}
1
+ {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAe,8BAA8B,EAAE,OAAO,EAAE,oBAAoB,EAAmB,SAAS,EAAE,cAAc,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG9M,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,oBAAY,cAAc,GAAG,iBAAiB,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAgB,SAAQ,kBAAkB;IAEnD,OAAO,CAAC,aAAa,CAAU;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;IAK5L;;;OAGG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CpF;;;OAGG;IACG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAuD/K"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.21.0 2022-01-04 */
1
+ /*! @azure/msal-browser v2.23.0 2022-04-04 */
2
2
  'use strict';
3
3
  import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { StringUtils, ThrottlingUtils, ClientAuthError } from '@azure/msal-common';
@@ -35,7 +35,6 @@ var RedirectHandler = /** @class */ (function (_super) {
35
35
  this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);
36
36
  }
37
37
  // Set interaction status in the library.
38
- this.browserStorage.setInteractionInProgress(true);
39
38
  this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);
40
39
  this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);
41
40
  this.browserRequestLogger.infoPii("RedirectHandler.initiateAuthRequest: Navigate to: " + requestUrl);