@azure/msal-browser 3.3.0 → 3.5.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 (150) hide show
  1. package/dist/app/IPublicClientApplication.mjs +1 -1
  2. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  3. package/dist/app/PublicClientApplication.mjs +3 -4
  4. package/dist/app/PublicClientApplication.mjs.map +1 -1
  5. package/dist/app/PublicClientNext.d.ts.map +1 -1
  6. package/dist/app/PublicClientNext.mjs +4 -6
  7. package/dist/app/PublicClientNext.mjs.map +1 -1
  8. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +1 -1
  9. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  10. package/dist/cache/AsyncMemoryStorage.mjs +1 -1
  11. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  12. package/dist/cache/BrowserCacheManager.mjs +26 -26
  13. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  14. package/dist/cache/BrowserStorage.mjs +1 -1
  15. package/dist/cache/CryptoKeyStore.mjs +1 -1
  16. package/dist/cache/DatabaseStorage.mjs +1 -1
  17. package/dist/cache/MemoryStorage.mjs +1 -1
  18. package/dist/cache/TokenCache.d.ts.map +1 -1
  19. package/dist/cache/TokenCache.mjs +5 -5
  20. package/dist/cache/TokenCache.mjs.map +1 -1
  21. package/dist/config/Configuration.mjs +1 -1
  22. package/dist/controllers/ControllerFactory.d.ts +2 -8
  23. package/dist/controllers/ControllerFactory.d.ts.map +1 -1
  24. package/dist/controllers/ControllerFactory.mjs +21 -38
  25. package/dist/controllers/ControllerFactory.mjs.map +1 -1
  26. package/dist/controllers/IController.d.ts +1 -2
  27. package/dist/controllers/IController.d.ts.map +1 -1
  28. package/dist/controllers/NestedAppAuthController.mjs +1 -1
  29. package/dist/controllers/StandardController.d.ts +4 -4
  30. package/dist/controllers/StandardController.d.ts.map +1 -1
  31. package/dist/controllers/StandardController.mjs +50 -51
  32. package/dist/controllers/StandardController.mjs.map +1 -1
  33. package/dist/controllers/UnknownOperatingContextController.mjs +1 -1
  34. package/dist/crypto/BrowserCrypto.mjs +1 -1
  35. package/dist/crypto/CryptoOps.d.ts +2 -2
  36. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  37. package/dist/crypto/CryptoOps.mjs +4 -3
  38. package/dist/crypto/CryptoOps.mjs.map +1 -1
  39. package/dist/crypto/PkceGenerator.mjs +1 -1
  40. package/dist/crypto/SignedHttpRequest.mjs +1 -1
  41. package/dist/encode/Base64Decode.mjs +1 -1
  42. package/dist/encode/Base64Encode.mjs +1 -1
  43. package/dist/error/BrowserAuthError.mjs +1 -1
  44. package/dist/error/BrowserAuthErrorCodes.mjs +1 -1
  45. package/dist/error/BrowserConfigurationAuthError.mjs +1 -1
  46. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  47. package/dist/error/NativeAuthError.mjs +1 -1
  48. package/dist/error/NativeAuthErrorCodes.mjs +1 -1
  49. package/dist/error/NestedAppAuthError.mjs +1 -1
  50. package/dist/event/EventHandler.mjs +1 -1
  51. package/dist/event/EventMessage.mjs +1 -1
  52. package/dist/event/EventType.mjs +1 -1
  53. package/dist/index.d.ts +1 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.mjs +2 -2
  56. package/dist/interaction_client/BaseInteractionClient.d.ts +0 -1
  57. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  58. package/dist/interaction_client/BaseInteractionClient.mjs +2 -3
  59. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  60. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  61. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  62. package/dist/interaction_client/NativeInteractionClient.mjs +4 -4
  63. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  64. package/dist/interaction_client/PopupClient.d.ts +1 -12
  65. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  66. package/dist/interaction_client/PopupClient.mjs +28 -111
  67. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  68. package/dist/interaction_client/RedirectClient.d.ts +3 -3
  69. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  70. package/dist/interaction_client/RedirectClient.mjs +59 -50
  71. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  72. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  73. package/dist/interaction_client/SilentAuthCodeClient.mjs +3 -5
  74. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  75. package/dist/interaction_client/SilentCacheClient.mjs +1 -1
  76. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  77. package/dist/interaction_client/SilentIframeClient.mjs +9 -23
  78. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  79. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  80. package/dist/interaction_client/SilentRefreshClient.mjs +2 -12
  81. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
  82. package/dist/interaction_client/StandardInteractionClient.d.ts +1 -6
  83. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  84. package/dist/interaction_client/StandardInteractionClient.mjs +2 -24
  85. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  86. package/dist/interaction_handler/InteractionHandler.d.ts +6 -13
  87. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  88. package/dist/interaction_handler/InteractionHandler.mjs +30 -61
  89. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  90. package/dist/interaction_handler/RedirectHandler.d.ts +14 -7
  91. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  92. package/dist/interaction_handler/RedirectHandler.mjs +30 -15
  93. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  94. package/dist/interaction_handler/SilentHandler.d.ts +2 -2
  95. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  96. package/dist/interaction_handler/SilentHandler.mjs +13 -7
  97. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  98. package/dist/naa/BridgeError.mjs +1 -1
  99. package/dist/naa/BridgeProxy.mjs +1 -1
  100. package/dist/naa/BridgeStatusCode.mjs +1 -1
  101. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +1 -1
  102. package/dist/navigation/NavigationClient.mjs +1 -1
  103. package/dist/network/FetchClient.mjs +1 -1
  104. package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
  105. package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
  106. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +1 -1
  107. package/dist/operatingcontext/UnknownOperatingContext.mjs +1 -1
  108. package/dist/packageMetadata.d.ts +1 -1
  109. package/dist/packageMetadata.mjs +2 -2
  110. package/dist/response/ResponseHandler.d.ts +8 -0
  111. package/dist/response/ResponseHandler.d.ts.map +1 -0
  112. package/dist/response/ResponseHandler.mjs +46 -0
  113. package/dist/response/ResponseHandler.mjs.map +1 -0
  114. package/dist/telemetry/BrowserPerformanceClient.mjs +1 -1
  115. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
  116. package/dist/utils/BrowserConstants.mjs +1 -1
  117. package/dist/utils/BrowserProtocolUtils.d.ts +7 -14
  118. package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
  119. package/dist/utils/BrowserProtocolUtils.mjs +17 -30
  120. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  121. package/dist/utils/BrowserUtils.mjs +1 -1
  122. package/lib/msal-browser.cjs +18434 -61
  123. package/lib/msal-browser.cjs.map +1 -1
  124. package/lib/msal-browser.js +3037 -3733
  125. package/lib/msal-browser.js.map +1 -1
  126. package/lib/msal-browser.min.js +68 -66
  127. package/package.json +2 -2
  128. package/src/app/PublicClientApplication.ts +4 -3
  129. package/src/app/PublicClientNext.ts +7 -5
  130. package/src/cache/BrowserCacheManager.ts +29 -50
  131. package/src/cache/TokenCache.ts +5 -4
  132. package/src/controllers/ControllerFactory.ts +30 -49
  133. package/src/controllers/IController.ts +0 -6
  134. package/src/controllers/StandardController.ts +70 -85
  135. package/src/crypto/CryptoOps.ts +5 -3
  136. package/src/index.ts +1 -0
  137. package/src/interaction_client/BaseInteractionClient.ts +1 -2
  138. package/src/interaction_client/NativeInteractionClient.ts +4 -3
  139. package/src/interaction_client/PopupClient.ts +72 -196
  140. package/src/interaction_client/RedirectClient.ts +111 -100
  141. package/src/interaction_client/SilentAuthCodeClient.ts +1 -12
  142. package/src/interaction_client/SilentIframeClient.ts +17 -44
  143. package/src/interaction_client/SilentRefreshClient.ts +5 -19
  144. package/src/interaction_client/StandardInteractionClient.ts +2 -48
  145. package/src/interaction_handler/InteractionHandler.ts +39 -112
  146. package/src/interaction_handler/RedirectHandler.ts +52 -30
  147. package/src/interaction_handler/SilentHandler.ts +12 -5
  148. package/src/packageMetadata.ts +1 -1
  149. package/src/response/ResponseHandler.ts +73 -0
  150. package/src/utils/BrowserProtocolUtils.ts +17 -36
@@ -1,9 +1,8 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
- import { PerformanceEvents, createClientAuthError, ClientAuthErrorCodes, ServerError, invokeAsync, AuthorityFactory } from '@azure/msal-common';
3
+ import { PerformanceEvents, ServerError, invokeAsync, CcsCredentialType } from '@azure/msal-common';
4
4
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
- import { TemporaryCacheKeys } from '../utils/BrowserConstants.mjs';
6
- import { hashEmptyError, userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
5
+ import { userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
7
6
 
8
7
  /*
9
8
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -24,21 +23,11 @@ class InteractionHandler {
24
23
  * Function to handle response parameters from hash.
25
24
  * @param locationHash
26
25
  */
27
- async handleCodeResponseFromHash(locationHash, state, authority, networkModule) {
28
- this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);
29
- // Check that location hash isn't empty.
30
- if (!locationHash) {
31
- throw createBrowserAuthError(hashEmptyError);
32
- }
33
- // Handle code response.
34
- const stateKey = this.browserStorage.generateStateKey(state);
35
- const requestState = this.browserStorage.getTemporaryCache(stateKey);
36
- if (!requestState) {
37
- throw createClientAuthError(ClientAuthErrorCodes.stateNotFound, "Cached State");
38
- }
26
+ async handleCodeResponse(response, request) {
27
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponse, request.correlationId);
39
28
  let authCodeResponse;
40
29
  try {
41
- authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
30
+ authCodeResponse = this.authModule.handleFragmentResponse(response, request.state);
42
31
  }
43
32
  catch (e) {
44
33
  if (e instanceof ServerError &&
@@ -50,7 +39,7 @@ class InteractionHandler {
50
39
  throw e;
51
40
  }
52
41
  }
53
- return invokeAsync(this.handleCodeResponseFromServer.bind(this), PerformanceEvents.HandleCodeResponseFromServer, this.logger, this.performanceClient, this.authCodeRequest.correlationId)(authCodeResponse, state, authority, networkModule);
42
+ return invokeAsync(this.handleCodeResponseFromServer.bind(this), PerformanceEvents.HandleCodeResponseFromServer, this.logger, this.performanceClient, request.correlationId)(authCodeResponse, request);
54
43
  }
55
44
  /**
56
45
  * Process auth code response from AAD
@@ -60,70 +49,50 @@ class InteractionHandler {
60
49
  * @param networkModule
61
50
  * @returns
62
51
  */
63
- async handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule, validateNonce = true) {
64
- this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);
52
+ async handleCodeResponseFromServer(authCodeResponse, request, validateNonce = true) {
53
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, request.correlationId);
65
54
  this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");
66
- // Handle code response.
67
- const stateKey = this.browserStorage.generateStateKey(state);
68
- const requestState = this.browserStorage.getTemporaryCache(stateKey);
69
- if (!requestState) {
70
- throw createClientAuthError(ClientAuthErrorCodes.stateNotFound, "Cached State");
71
- }
72
- // Get cached items
73
- const nonceKey = this.browserStorage.generateNonceKey(requestState);
74
- const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
75
55
  // Assign code to request
76
56
  this.authCodeRequest.code = authCodeResponse.code;
77
57
  // Check for new cloud instance
78
58
  if (authCodeResponse.cloud_instance_host_name) {
79
- await invokeAsync(this.updateTokenEndpointAuthority.bind(this), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, this.authCodeRequest.correlationId)(authCodeResponse.cloud_instance_host_name, authority, networkModule);
59
+ await invokeAsync(this.authModule.updateAuthority.bind(this.authModule), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, request.correlationId)(authCodeResponse.cloud_instance_host_name, request.correlationId);
80
60
  }
81
61
  // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)
82
62
  if (validateNonce) {
83
- authCodeResponse.nonce = cachedNonce || undefined;
63
+ // TODO: Assigning "response nonce" to "request nonce" is confusing. Refactor the function doing validation to accept request nonce directly
64
+ authCodeResponse.nonce = request.nonce || undefined;
84
65
  }
85
- authCodeResponse.state = requestState;
66
+ authCodeResponse.state = request.state;
86
67
  // Add CCS parameters if available
87
68
  if (authCodeResponse.client_info) {
88
69
  this.authCodeRequest.clientInfo = authCodeResponse.client_info;
89
70
  }
90
71
  else {
91
- const cachedCcsCred = this.checkCcsCredentials();
92
- if (cachedCcsCred) {
93
- this.authCodeRequest.ccsCredential = cachedCcsCred;
72
+ const ccsCred = this.createCcsCredentials(request);
73
+ if (ccsCred) {
74
+ this.authCodeRequest.ccsCredential = ccsCred;
94
75
  }
95
76
  }
96
77
  // Acquire token with retrieved code.
97
- const tokenResponse = (await invokeAsync(this.authModule.acquireToken.bind(this.authModule), PerformanceEvents.AuthClientAcquireToken, this.logger, this.performanceClient, this.authCodeRequest.correlationId)(this.authCodeRequest, authCodeResponse));
98
- this.browserStorage.cleanRequestByState(state);
78
+ const tokenResponse = (await invokeAsync(this.authModule.acquireToken.bind(this.authModule), PerformanceEvents.AuthClientAcquireToken, this.logger, this.performanceClient, request.correlationId)(this.authCodeRequest, authCodeResponse));
99
79
  return tokenResponse;
100
80
  }
101
81
  /**
102
- * Updates authority based on cloudInstanceHostname
103
- * @param cloudInstanceHostname
104
- * @param authority
105
- * @param networkModule
82
+ * Build ccs creds if available
106
83
  */
107
- async updateTokenEndpointAuthority(cloudInstanceHostname, authority, networkModule) {
108
- this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);
109
- const cloudInstanceAuthorityUri = `https://${cloudInstanceHostname}/${authority.tenant}/`;
110
- const cloudInstanceAuthority = await AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId);
111
- this.authModule.updateAuthority(cloudInstanceAuthority);
112
- }
113
- /**
114
- * Looks up ccs creds in the cache
115
- */
116
- checkCcsCredentials() {
117
- // Look up ccs credential in temp cache
118
- const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);
119
- if (cachedCcsCred) {
120
- try {
121
- return JSON.parse(cachedCcsCred);
122
- }
123
- catch (e) {
124
- this.authModule.logger.error("Cache credential could not be parsed");
125
- this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);
126
- }
84
+ createCcsCredentials(request) {
85
+ if (request.account) {
86
+ return {
87
+ credential: request.account.homeAccountId,
88
+ type: CcsCredentialType.HOME_ACCOUNT_ID,
89
+ };
90
+ }
91
+ else if (request.loginHint) {
92
+ return {
93
+ credential: request.loginHint,
94
+ type: CcsCredentialType.UPN,
95
+ };
127
96
  }
128
97
  return null;
129
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionHandler.mjs","sources":["../../src/interaction_handler/InteractionHandler.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.hashEmptyError"],"mappings":";;;;;;;AAKA;AAiBA;AAMA;AAEA;AAKA;AACI;AACA;AACA,MAAS,kBAAkB,CAAA;AAC3B,IAAA,WAAU,CAAA,cAAe,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,iBAAA,EAAA;AACzB,QAAA,IAAA,CAAS,UAAC,GAAA,cAAmB,CAAA;AAGzB,QAAA,IAAA,CAAA,cAAA,GAAc,WAAyB,CAAA;AAa3C,QAAA,IAAA,CAAA,eAAA,GAAA,eAAA,CAAA;;;AAGG,KAAA;;AAuDH;;;;;;;AAOG,YAAA,MAAA,sBAAA,CAAAA,cAAA,CAAA,CAAA;SAC+B;AA4ElC;;;;;AAKG,SAAA;AACa,QAAA,IAAA,gBAAA,CAAA;AAuBhB,QAAA,IAAA;;AAEG,SAAA;AACH,QAAA,OAAU,CAAA,EAAA;AAoBb,YAAA,IAAA,CAAA,YAAA,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"InteractionHandler.mjs","sources":["../../src/interaction_handler/InteractionHandler.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.userCancelled"],"mappings":";;;;;;AAKA;AAcA;AAKA;AACA;AAIG;AACH;AACI;AACA,MAAS,kBAAiB,CAAA;AAC1B,IAAA,WAAU,CAAA,cAAiB,EAAA,WAAA,EAAA,eAAA,EAA+B,MAAA,EAAA,iBAAA,EAAA;AAC1D,QAAA,IAAA,CAAS,UAAS,GAAA,cAAO,CAAA;AACzB,QAAA,IAAA,CAAS,cAAC,GAAA,WAAmB,CAAA;AAGzB,QAAA,IAAA,CAAA,eAAA,kBAAuC,CAAA;AAa3C,QAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;;;AAGG;AACG;AAsCN;;;;;;;AAOG,SAAA;AACG,QAAA,OAAA,CAAA,EAAA;AAwDN,YAAA,IAAA,CAAA,YAAA,WAAA;;AAEG;4CAEU,CAAuBA,aACpB,CAAA,CAAA;AAenB,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,17 +1,20 @@
1
- import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, ICrypto, Authority, INetworkModule, Logger, IPerformanceClient } from "@azure/msal-common";
1
+ import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, Logger, IPerformanceClient, CcsCredential, ServerAuthorizationCodeResponse } from "@azure/msal-common";
2
2
  import { BrowserCacheManager } from "../cache/BrowserCacheManager";
3
- import { InteractionHandler, InteractionParams } from "./InteractionHandler";
4
3
  import { INavigationClient } from "../navigation/INavigationClient";
5
4
  import { AuthenticationResult } from "../response/AuthenticationResult";
6
- export type RedirectParams = InteractionParams & {
5
+ export type RedirectParams = {
7
6
  navigationClient: INavigationClient;
8
7
  redirectTimeout: number;
9
8
  redirectStartPage: string;
10
9
  onRedirectNavigate?: (url: string) => void | boolean;
11
10
  };
12
- export declare class RedirectHandler extends InteractionHandler {
13
- private browserCrypto;
14
- constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, browserCrypto: ICrypto, performanceClient: IPerformanceClient);
11
+ export declare class RedirectHandler {
12
+ authModule: AuthorizationCodeClient;
13
+ browserStorage: BrowserCacheManager;
14
+ authCodeRequest: CommonAuthorizationCodeRequest;
15
+ logger: Logger;
16
+ performanceClient: IPerformanceClient;
17
+ constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, performanceClient: IPerformanceClient);
15
18
  /**
16
19
  * Redirects window to given URL.
17
20
  * @param urlNavigate
@@ -21,6 +24,10 @@ export declare class RedirectHandler extends InteractionHandler {
21
24
  * Handle authorization code response in the window.
22
25
  * @param hash
23
26
  */
24
- handleCodeResponseFromHash(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule): Promise<AuthenticationResult>;
27
+ handleCodeResponse(response: ServerAuthorizationCodeResponse, state: string): Promise<AuthenticationResult>;
28
+ /**
29
+ * Looks up ccs creds in the cache
30
+ */
31
+ protected checkCcsCredentials(): CcsCredential | null;
25
32
  }
26
33
  //# sourceMappingURL=RedirectHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,uBAAuB,EACvB,8BAA8B,EAC9B,OAAO,EACP,SAAS,EACT,cAAc,EACd,MAAM,EAEN,kBAAkB,EAGrB,MAAM,oBAAoB,CAAC;AAM5B,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;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,MAAM,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;IACnD,OAAO,CAAC,aAAa,CAAU;gBAG3B,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,8BAA8B,EAC/C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,kBAAkB;IAYzC;;;OAGG;IACG,mBAAmB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IA6EhB;;;OAGG;IACG,0BAA0B,CAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,cAAc,GAC9B,OAAO,CAAC,oBAAoB,CAAC;CA+EnC"}
1
+ {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,EAEN,kBAAkB,EAGlB,aAAa,EAGb,+BAA+B,EAClC,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,MAAM,cAAc,GAAG;IACzB,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,eAAe;IACxB,UAAU,EAAE,uBAAuB,CAAC;IACpC,cAAc,EAAE,mBAAmB,CAAC;IACpC,eAAe,EAAE,8BAA8B,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,kBAAkB,CAAC;gBAGlC,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,8BAA8B,EAC/C,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,kBAAkB;IASzC;;;OAGG;IACG,mBAAmB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IA6EhB;;;OAGG;IACG,kBAAkB,CACpB,QAAQ,EAAE,+BAA+B,EACzC,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC;IAgFhC;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,aAAa,GAAG,IAAI;CAoBxD"}
@@ -1,19 +1,21 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
- import { createClientAuthError, ClientAuthErrorCodes, ServerError } from '@azure/msal-common';
3
+ import { createClientAuthError, ClientAuthErrorCodes, ServerError, invokeAsync, PerformanceEvents } from '@azure/msal-common';
4
4
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
5
  import { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.mjs';
6
- import { InteractionHandler } from './InteractionHandler.mjs';
7
- import { emptyNavigateUri, hashEmptyError, userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
6
+ import { emptyNavigateUri, userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
8
7
 
9
8
  /*
10
9
  * Copyright (c) Microsoft Corporation. All rights reserved.
11
10
  * Licensed under the MIT License.
12
11
  */
13
- class RedirectHandler extends InteractionHandler {
14
- constructor(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto, performanceClient) {
15
- super(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient);
16
- this.browserCrypto = browserCrypto;
12
+ class RedirectHandler {
13
+ constructor(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {
14
+ this.authModule = authCodeModule;
15
+ this.browserStorage = storageImpl;
16
+ this.authCodeRequest = authCodeRequest;
17
+ this.logger = logger;
18
+ this.performanceClient = performanceClient;
17
19
  }
18
20
  /**
19
21
  * Redirects window to given URL.
@@ -69,12 +71,8 @@ class RedirectHandler extends InteractionHandler {
69
71
  * Handle authorization code response in the window.
70
72
  * @param hash
71
73
  */
72
- async handleCodeResponseFromHash(locationHash, state, authority, networkModule) {
74
+ async handleCodeResponse(response, state) {
73
75
  this.logger.verbose("RedirectHandler.handleCodeResponse called");
74
- // Check that location hash isn't empty.
75
- if (!locationHash) {
76
- throw createBrowserAuthError(hashEmptyError);
77
- }
78
76
  // Interaction is completed - remove interaction status.
79
77
  this.browserStorage.setInteractionInProgress(false);
80
78
  // Handle code response.
@@ -85,7 +83,7 @@ class RedirectHandler extends InteractionHandler {
85
83
  }
86
84
  let authCodeResponse;
87
85
  try {
88
- authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
86
+ authCodeResponse = this.authModule.handleFragmentResponse(response, requestState);
89
87
  }
90
88
  catch (e) {
91
89
  if (e instanceof ServerError &&
@@ -104,7 +102,7 @@ class RedirectHandler extends InteractionHandler {
104
102
  this.authCodeRequest.code = authCodeResponse.code;
105
103
  // Check for new cloud instance
106
104
  if (authCodeResponse.cloud_instance_host_name) {
107
- await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);
105
+ await invokeAsync(this.authModule.updateAuthority.bind(this.authModule), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, this.authCodeRequest.correlationId)(authCodeResponse.cloud_instance_host_name, this.authCodeRequest.correlationId);
108
106
  }
109
107
  authCodeResponse.nonce = cachedNonce || undefined;
110
108
  authCodeResponse.state = requestState;
@@ -123,6 +121,23 @@ class RedirectHandler extends InteractionHandler {
123
121
  this.browserStorage.cleanRequestByState(state);
124
122
  return tokenResponse;
125
123
  }
124
+ /**
125
+ * Looks up ccs creds in the cache
126
+ */
127
+ checkCcsCredentials() {
128
+ // Look up ccs credential in temp cache
129
+ const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);
130
+ if (cachedCcsCred) {
131
+ try {
132
+ return JSON.parse(cachedCcsCred);
133
+ }
134
+ catch (e) {
135
+ this.authModule.logger.error("Cache credential could not be parsed");
136
+ this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);
137
+ }
138
+ }
139
+ return null;
140
+ }
126
141
  }
127
142
 
128
143
  export { RedirectHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectHandler.mjs","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAKA;AAiBA;AACA;AACA;AAOqB,MAAA,wBAAS,kBAAA,CAAA;IAC1B,WAAkB,CAAA,cAAO,aAAa,EAAA,eAAe,EAAA,MAAA,EAAA,aAAA,EAAA,iBAAA,EAAA;QACvD,KAAA,CAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,iBAAA,CAAA,CAAA;AAEF,QAAa,IAAA,CAAA,aAAA,GAAA;KACF;;AAoBP;;;AAGG,IAAA,MAAA,mBAAA,CAAA,UAAA,EAAA,MAAA,EAAA;AACG,QAAA,IAAA,CAAA,MAAA,CAAA,OACF,CAAA,4CAED,CAAA,CAAA;AA6EH;;;AAGG,YAAA,IAAA,MAAA,CAAA,iBAAA,EAAA;gBAC6B,IAAA,CAAA,MAAA,CAAA,wFAIb,CAAA,CAAA;AAgFtB,gBAAA,IAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,UAAA,EAAA,MAAA,CAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"RedirectHandler.mjs","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAKA;AAkBA;AACA;AAEA;AAKqB,MAAA,gBAAQ;IACzB,WAAkB,CAAA,cAAO,aAAa,EAAA,eAAe,EAAA,MAAA,EAAA,iBAAA,EAAA;QACvD,IAAA,CAAA,UAAA,GAAA,cAAA,CAAA;AAEF,QAAA,IAAA,CAAA,cAA4B,GAAA,WAAA,CAAA;QACd,IAAA,CAAA,iCAA0B,CAAA;QACtB,IAAA,CAAA,MAAA;QACC,IAAA,CAAA,sCAAgC;KACzC;;AAIF;AAaJ;;;AAGG,QAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,4CAAA,CAAA,CAAA;AACG;AAgFN,QAAA,IAAA,UAAA,EAAA;;;AAGG,gBAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,gFAAA,CAAA,CAAA;AACG,gBAAA,IAAA,CAAA,cACQ,CAAA,iBAAA,CAAA,kBACH,CAAA,UACR,EAAA,MAAQ,CAAA,iBAAA,EAAqB,IAAA,CAAA,CAAA;AAgFhC,aAAA;;AAEG,YAAA,IAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,cAAA,EAAA,IAAA,CAAA,eAAA,CAAA,aAAA,EAAA,IAAA,CAAA,CAAA;AACH,YAAA,IAAU,CAAA,cAAA,CAAA,gBAAuB,CAAA,IAAgB,CAAI,eAAA,CAAA,CAAA;AAoBxD,YAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA,kDAAA,EAAA,UAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { Logger, IPerformanceClient } from "@azure/msal-common";
1
+ import { Logger, IPerformanceClient, ServerResponseType } from "@azure/msal-common";
2
2
  /**
3
3
  * Creates a hidden iframe to given URL using user-requested scopes as an id.
4
4
  * @param urlNavigate
@@ -10,5 +10,5 @@ export declare function initiateAuthRequest(requestUrl: string, performanceClien
10
10
  * @param iframe
11
11
  * @param timeout
12
12
  */
13
- export declare function monitorIframeForHash(iframe: HTMLIFrameElement, timeout: number, pollIntervalMilliseconds: number, performanceClient: IPerformanceClient, logger: Logger, correlationId: string): Promise<string>;
13
+ export declare function monitorIframeForHash(iframe: HTMLIFrameElement, timeout: number, pollIntervalMilliseconds: number, performanceClient: IPerformanceClient, logger: Logger, correlationId: string, responseType: ServerResponseType): Promise<string>;
14
14
  //# sourceMappingURL=SilentHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SilentHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/SilentHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,MAAM,EACN,kBAAkB,EAIrB,MAAM,oBAAoB,CAAC;AAO5B;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA2B5B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM,EACf,wBAAwB,EAAE,MAAM,EAChC,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,CA0DjB"}
1
+ {"version":3,"file":"SilentHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/SilentHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,MAAM,EACN,kBAAkB,EAIlB,kBAAkB,EACrB,MAAM,oBAAoB,CAAC;AAO5B;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA2B5B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM,EACf,wBAAwB,EAAE,MAAM,EAChC,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,kBAAkB,GACjC,OAAO,CAAC,MAAM,CAAC,CA+DjB"}
@@ -1,6 +1,6 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
- import { PerformanceEvents, invokeAsync, invoke } from '@azure/msal-common';
3
+ import { PerformanceEvents, invokeAsync, invoke, ServerResponseType } from '@azure/msal-common';
4
4
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
5
  import { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.mjs';
6
6
  import { emptyNavigateUri, monitorWindowTimeout } from '../error/BrowserAuthErrorCodes.mjs';
@@ -31,7 +31,7 @@ async function initiateAuthRequest(requestUrl, performanceClient, logger, correl
31
31
  * @param iframe
32
32
  * @param timeout
33
33
  */
34
- async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId) {
34
+ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {
35
35
  performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, correlationId);
36
36
  return new Promise((resolve, reject) => {
37
37
  if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
@@ -60,12 +60,18 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
60
60
  if (!href || href === "about:blank") {
61
61
  return;
62
62
  }
63
- const contentHash = contentWindow
64
- ? contentWindow.location.hash
65
- : "";
63
+ let responseString = "";
64
+ if (contentWindow) {
65
+ if (responseType === ServerResponseType.QUERY) {
66
+ responseString = contentWindow.location.search;
67
+ }
68
+ else {
69
+ responseString = contentWindow.location.hash;
70
+ }
71
+ }
66
72
  window.clearTimeout(timeoutId);
67
73
  window.clearInterval(intervalId);
68
- resolve(contentHash);
74
+ resolve(responseString);
69
75
  }, pollIntervalMilliseconds);
70
76
  }).finally(() => {
71
77
  invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
@@ -1 +1 @@
1
- {"version":3,"file":"SilentHandler.mjs","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAKA;AAaA;;;AAwCA;;;;AAIG;AACH,eAAA,mBAA0C,CAAA,UAChC,EAAmB,iBAAA,EAClB,MAAA,EAAE,aACe,EAAA,iBAAA,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SilentHandler.mjs","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAKA;AAcA;;;AAwCA;;;;AAIG;AACH,eAAA,mBAA0C,CAAA,UAChC,mBACN,EAAA,MAAO,EAAE,aACe,EAAA,iBAAA,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { TimeUtils, AuthToken, AuthError, InteractionRequiredAuthError, ServerError, ClientAuthError, ClientAuthErrorCodes } from '@azure/msal-common';
4
4
  import { isBridgeError } from '../BridgeError.mjs';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { Constants } from '@azure/msal-common';
4
4
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { Logger } from '@azure/msal-common';
4
4
  import { buildConfiguration } from '../config/Configuration.mjs';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { BaseOperatingContext } from './BaseOperatingContext.mjs';
4
4
 
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { BaseOperatingContext } from './BaseOperatingContext.mjs';
4
4
  import { BridgeProxy } from '../naa/BridgeProxy.mjs';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { BaseOperatingContext } from './BaseOperatingContext.mjs';
4
4
 
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@azure/msal-browser";
2
- export declare const version = "3.3.0";
2
+ export declare const version = "3.5.0";
3
3
  //# sourceMappingURL=packageMetadata.d.ts.map
@@ -1,8 +1,8 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  /* eslint-disable header/header */
4
4
  const name = "@azure/msal-browser";
5
- const version = "3.3.0";
5
+ const version = "3.5.0";
6
6
 
7
7
  export { name, version };
8
8
  //# sourceMappingURL=packageMetadata.mjs.map
@@ -0,0 +1,8 @@
1
+ import { ICrypto, Logger, ServerAuthorizationCodeResponse } from "@azure/msal-common";
2
+ import { InteractionType } from "../utils/BrowserConstants";
3
+ export declare function deserializeResponse(responseString: string, responseLocation: string, logger: Logger): ServerAuthorizationCodeResponse;
4
+ /**
5
+ * Returns the interaction type that the response object belongs to
6
+ */
7
+ export declare function validateInteractionType(response: ServerAuthorizationCodeResponse, browserCrypto: ICrypto, interactionType: InteractionType): void;
8
+ //# sourceMappingURL=ResponseHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseHandler.d.ts","sourceRoot":"","sources":["../../src/response/ResponseHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,MAAM,EACN,+BAA+B,EAElC,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,GACf,+BAA+B,CAuBjC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,+BAA+B,EACzC,aAAa,EAAE,OAAO,EACtB,eAAe,EAAE,eAAe,GACjC,IAAI,CAkBN"}
@@ -0,0 +1,46 @@
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
+ 'use strict';
3
+ import { UrlUtils } from '@azure/msal-common';
4
+ import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
+ import { extractBrowserRequestState } from '../utils/BrowserProtocolUtils.mjs';
6
+ import { hashEmptyError, hashDoesNotContainKnownProperties, noStateInHash, unableToParseState, stateInteractionTypeMismatch } from '../error/BrowserAuthErrorCodes.mjs';
7
+
8
+ /*
9
+ * Copyright (c) Microsoft Corporation. All rights reserved.
10
+ * Licensed under the MIT License.
11
+ */
12
+ function deserializeResponse(responseString, responseLocation, logger) {
13
+ // Deserialize hash fragment response parameters.
14
+ const serverParams = UrlUtils.getDeserializedResponse(responseString);
15
+ if (!serverParams) {
16
+ if (!UrlUtils.stripLeadingHashOrQuery(responseString)) {
17
+ // Hash or Query string is empty
18
+ logger.error(`The request has returned to the redirectUri but a ${responseLocation} is not present. It's likely that the ${responseLocation} has been removed or the page has been redirected by code running on the redirectUri page.`);
19
+ throw createBrowserAuthError(hashEmptyError);
20
+ }
21
+ else {
22
+ logger.error(`A ${responseLocation} is present in the iframe but it does not contain known properties. It's likely that the ${responseLocation} has been replaced by code running on the redirectUri page.`);
23
+ logger.errorPii(`The ${responseLocation} detected is: ${responseString}`);
24
+ throw createBrowserAuthError(hashDoesNotContainKnownProperties);
25
+ }
26
+ }
27
+ return serverParams;
28
+ }
29
+ /**
30
+ * Returns the interaction type that the response object belongs to
31
+ */
32
+ function validateInteractionType(response, browserCrypto, interactionType) {
33
+ if (!response.state) {
34
+ throw createBrowserAuthError(noStateInHash);
35
+ }
36
+ const platformStateObj = extractBrowserRequestState(browserCrypto, response.state);
37
+ if (!platformStateObj) {
38
+ throw createBrowserAuthError(unableToParseState);
39
+ }
40
+ if (platformStateObj.interactionType !== interactionType) {
41
+ throw createBrowserAuthError(stateInteractionTypeMismatch);
42
+ }
43
+ }
44
+
45
+ export { deserializeResponse, validateInteractionType };
46
+ //# sourceMappingURL=ResponseHandler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseHandler.mjs","sources":["../../src/response/ResponseHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAKA;AAWA;AAEA;AA6BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { PerformanceClient, Constants, Logger } from '@azure/msal-common';
4
4
  import { BrowserPerformanceMeasurement } from './BrowserPerformanceMeasurement.mjs';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.3.0 2023-10-20 */
1
+ /*! @azure/msal-browser v3.5.0 2023-11-07 */
2
2
  'use strict';
3
3
  import { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';
4
4
 
@@ -1,19 +1,12 @@
1
1
  import { InteractionType } from "./BrowserConstants";
2
- import { ICrypto, ServerAuthorizationCodeResponse } from "@azure/msal-common";
2
+ import { ICrypto } from "@azure/msal-common";
3
3
  export type BrowserStateObject = {
4
4
  interactionType: InteractionType;
5
5
  };
6
- export declare class BrowserProtocolUtils {
7
- /**
8
- * Extracts the BrowserStateObject from the state string.
9
- * @param browserCrypto
10
- * @param state
11
- */
12
- static extractBrowserRequestState(browserCrypto: ICrypto, state: string): BrowserStateObject | null;
13
- /**
14
- * Parses properties of server response from url hash
15
- * @param locationHash Hash from url
16
- */
17
- static parseServerResponseFromHash(locationHash: string): ServerAuthorizationCodeResponse;
18
- }
6
+ /**
7
+ * Extracts the BrowserStateObject from the state string.
8
+ * @param browserCrypto
9
+ * @param state
10
+ */
11
+ export declare function extractBrowserRequestState(browserCrypto: ICrypto, state: string): BrowserStateObject | null;
19
12
  //# sourceMappingURL=BrowserProtocolUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserProtocolUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserProtocolUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACH,OAAO,EAGP,+BAA+B,EAIlC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,kBAAkB,GAAG;IAC7B,eAAe,EAAE,eAAe,CAAC;CACpC,CAAC;AAEF,qBAAa,oBAAoB;IAC7B;;;;OAIG;IACH,MAAM,CAAC,0BAA0B,CAC7B,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,GACd,kBAAkB,GAAG,IAAI;IAc5B;;;OAGG;IACH,MAAM,CAAC,2BAA2B,CAC9B,YAAY,EAAE,MAAM,GACrB,+BAA+B;CAQrC"}
1
+ {"version":3,"file":"BrowserProtocolUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserProtocolUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACH,OAAO,EAKV,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,kBAAkB,GAAG;IAC7B,eAAe,EAAE,eAAe,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,0BAA0B,CACtC,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,GACd,kBAAkB,GAAG,IAAI,CAY3B"}