@azure/msal-browser 4.8.0 → 4.9.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 (204) hide show
  1. package/dist/app/IPublicClientApplication.mjs +1 -1
  2. package/dist/app/PublicClientApplication.mjs +1 -1
  3. package/dist/app/PublicClientNext.mjs +1 -1
  4. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +1 -1
  5. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  6. package/dist/cache/AccountManager.mjs +1 -1
  7. package/dist/cache/AsyncMemoryStorage.mjs +1 -1
  8. package/dist/cache/BrowserCacheManager.d.ts +4 -41
  9. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  10. package/dist/cache/BrowserCacheManager.mjs +18 -143
  11. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  12. package/dist/cache/CacheHelpers.mjs +1 -1
  13. package/dist/cache/CookieStorage.mjs +1 -1
  14. package/dist/cache/DatabaseStorage.mjs +1 -1
  15. package/dist/cache/LocalStorage.mjs +1 -1
  16. package/dist/cache/MemoryStorage.mjs +1 -1
  17. package/dist/cache/SessionStorage.mjs +1 -1
  18. package/dist/cache/TokenCache.mjs +1 -1
  19. package/dist/config/Configuration.d.ts.map +1 -1
  20. package/dist/config/Configuration.mjs +12 -3
  21. package/dist/config/Configuration.mjs.map +1 -1
  22. package/dist/controllers/ControllerFactory.mjs +1 -1
  23. package/dist/controllers/NestedAppAuthController.d.ts +2 -2
  24. package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
  25. package/dist/controllers/NestedAppAuthController.mjs +1 -1
  26. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  27. package/dist/controllers/StandardController.d.ts.map +1 -1
  28. package/dist/controllers/StandardController.mjs +28 -16
  29. package/dist/controllers/StandardController.mjs.map +1 -1
  30. package/dist/controllers/UnknownOperatingContextController.d.ts +2 -2
  31. package/dist/controllers/UnknownOperatingContextController.d.ts.map +1 -1
  32. package/dist/controllers/UnknownOperatingContextController.mjs +1 -1
  33. package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
  34. package/dist/crypto/BrowserCrypto.d.ts +11 -0
  35. package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
  36. package/dist/crypto/BrowserCrypto.mjs +68 -5
  37. package/dist/crypto/BrowserCrypto.mjs.map +1 -1
  38. package/dist/crypto/CryptoOps.mjs +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.d.ts +3 -5
  44. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  45. package/dist/error/BrowserAuthError.mjs +5 -7
  46. package/dist/error/BrowserAuthError.mjs.map +1 -1
  47. package/dist/error/BrowserAuthErrorCodes.d.ts +3 -1
  48. package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
  49. package/dist/error/BrowserAuthErrorCodes.mjs +6 -4
  50. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  51. package/dist/error/BrowserConfigurationAuthError.mjs +1 -1
  52. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  53. package/dist/error/NativeAuthError.mjs +1 -1
  54. package/dist/error/NativeAuthErrorCodes.mjs +1 -1
  55. package/dist/error/NestedAppAuthError.mjs +1 -1
  56. package/dist/event/EventHandler.mjs +1 -1
  57. package/dist/event/EventMessage.mjs +1 -1
  58. package/dist/event/EventType.mjs +1 -1
  59. package/dist/index.mjs +1 -1
  60. package/dist/interaction_client/BaseInteractionClient.mjs +1 -1
  61. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  62. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  63. package/dist/interaction_client/NativeInteractionClient.mjs +1 -3
  64. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  65. package/dist/interaction_client/PopupClient.d.ts +14 -1
  66. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  67. package/dist/interaction_client/PopupClient.mjs +65 -64
  68. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  69. package/dist/interaction_client/RedirectClient.d.ts +20 -3
  70. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  71. package/dist/interaction_client/RedirectClient.mjs +132 -76
  72. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  73. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  74. package/dist/interaction_client/SilentAuthCodeClient.mjs +1 -1
  75. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  76. package/dist/interaction_client/SilentCacheClient.mjs +1 -1
  77. package/dist/interaction_client/SilentIframeClient.d.ts +13 -3
  78. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  79. package/dist/interaction_client/SilentIframeClient.mjs +57 -44
  80. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  81. package/dist/interaction_client/SilentRefreshClient.mjs +1 -1
  82. package/dist/interaction_client/StandardInteractionClient.d.ts +2 -3
  83. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  84. package/dist/interaction_client/StandardInteractionClient.mjs +1 -1
  85. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  86. package/dist/interaction_handler/InteractionHandler.d.ts +4 -5
  87. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  88. package/dist/interaction_handler/InteractionHandler.mjs +1 -1
  89. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  90. package/dist/interaction_handler/SilentHandler.d.ts +4 -2
  91. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  92. package/dist/interaction_handler/SilentHandler.mjs +13 -3
  93. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  94. package/dist/naa/BridgeError.mjs +1 -1
  95. package/dist/naa/BridgeProxy.mjs +1 -1
  96. package/dist/naa/BridgeStatusCode.mjs +1 -1
  97. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +1 -1
  98. package/dist/navigation/NavigationClient.mjs +1 -1
  99. package/dist/network/FetchClient.mjs +1 -1
  100. package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
  101. package/dist/operatingcontext/NestedAppOperatingContext.mjs +1 -1
  102. package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
  103. package/dist/operatingcontext/UnknownOperatingContext.mjs +1 -1
  104. package/dist/packageMetadata.d.ts +1 -1
  105. package/dist/packageMetadata.mjs +2 -2
  106. package/dist/protocol/Authorize.d.ts +53 -1
  107. package/dist/protocol/Authorize.d.ts.map +1 -1
  108. package/dist/protocol/Authorize.mjs +147 -4
  109. package/dist/protocol/Authorize.mjs.map +1 -1
  110. package/dist/request/AuthorizationUrlRequest.d.ts +2 -4
  111. package/dist/request/AuthorizationUrlRequest.d.ts.map +1 -1
  112. package/dist/request/PopupRequest.d.ts +1 -1
  113. package/dist/request/PopupRequest.d.ts.map +1 -1
  114. package/dist/request/RedirectRequest.d.ts +1 -1
  115. package/dist/request/RedirectRequest.d.ts.map +1 -1
  116. package/dist/request/RequestHelpers.mjs +1 -1
  117. package/dist/request/SsoSilentRequest.d.ts +1 -1
  118. package/dist/request/SsoSilentRequest.d.ts.map +1 -1
  119. package/dist/response/ResponseHandler.mjs +1 -1
  120. package/dist/telemetry/BrowserPerformanceClient.mjs +1 -1
  121. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
  122. package/dist/utils/BrowserConstants.d.ts +1 -10
  123. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  124. package/dist/utils/BrowserConstants.mjs +2 -11
  125. package/dist/utils/BrowserConstants.mjs.map +1 -1
  126. package/dist/utils/BrowserProtocolUtils.mjs +1 -1
  127. package/dist/utils/BrowserUtils.mjs +1 -1
  128. package/lib/msal-browser.cjs +1595 -1514
  129. package/lib/msal-browser.cjs.map +1 -1
  130. package/lib/msal-browser.js +1595 -1514
  131. package/lib/msal-browser.js.map +1 -1
  132. package/lib/msal-browser.min.js +68 -67
  133. package/lib/types/cache/BrowserCacheManager.d.ts +4 -41
  134. package/lib/types/cache/BrowserCacheManager.d.ts.map +1 -1
  135. package/lib/types/config/Configuration.d.ts.map +1 -1
  136. package/lib/types/controllers/NestedAppAuthController.d.ts +2 -2
  137. package/lib/types/controllers/NestedAppAuthController.d.ts.map +1 -1
  138. package/lib/types/controllers/StandardController.d.ts.map +1 -1
  139. package/lib/types/controllers/UnknownOperatingContextController.d.ts +2 -2
  140. package/lib/types/controllers/UnknownOperatingContextController.d.ts.map +1 -1
  141. package/lib/types/crypto/BrowserCrypto.d.ts +11 -0
  142. package/lib/types/crypto/BrowserCrypto.d.ts.map +1 -1
  143. package/lib/types/error/BrowserAuthError.d.ts +3 -5
  144. package/lib/types/error/BrowserAuthError.d.ts.map +1 -1
  145. package/lib/types/error/BrowserAuthErrorCodes.d.ts +3 -1
  146. package/lib/types/error/BrowserAuthErrorCodes.d.ts.map +1 -1
  147. package/lib/types/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  148. package/lib/types/interaction_client/PopupClient.d.ts +14 -1
  149. package/lib/types/interaction_client/PopupClient.d.ts.map +1 -1
  150. package/lib/types/interaction_client/RedirectClient.d.ts +20 -3
  151. package/lib/types/interaction_client/RedirectClient.d.ts.map +1 -1
  152. package/lib/types/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  153. package/lib/types/interaction_client/SilentIframeClient.d.ts +13 -3
  154. package/lib/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
  155. package/lib/types/interaction_client/StandardInteractionClient.d.ts +2 -3
  156. package/lib/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  157. package/lib/types/interaction_handler/InteractionHandler.d.ts +4 -5
  158. package/lib/types/interaction_handler/InteractionHandler.d.ts.map +1 -1
  159. package/lib/types/interaction_handler/SilentHandler.d.ts +4 -2
  160. package/lib/types/interaction_handler/SilentHandler.d.ts.map +1 -1
  161. package/lib/types/packageMetadata.d.ts +1 -1
  162. package/lib/types/protocol/Authorize.d.ts +53 -1
  163. package/lib/types/protocol/Authorize.d.ts.map +1 -1
  164. package/lib/types/request/AuthorizationUrlRequest.d.ts +2 -4
  165. package/lib/types/request/AuthorizationUrlRequest.d.ts.map +1 -1
  166. package/lib/types/request/PopupRequest.d.ts +1 -1
  167. package/lib/types/request/PopupRequest.d.ts.map +1 -1
  168. package/lib/types/request/RedirectRequest.d.ts +1 -1
  169. package/lib/types/request/RedirectRequest.d.ts.map +1 -1
  170. package/lib/types/request/SsoSilentRequest.d.ts +1 -1
  171. package/lib/types/request/SsoSilentRequest.d.ts.map +1 -1
  172. package/lib/types/utils/BrowserConstants.d.ts +1 -10
  173. package/lib/types/utils/BrowserConstants.d.ts.map +1 -1
  174. package/package.json +2 -2
  175. package/src/cache/BrowserCacheManager.ts +30 -205
  176. package/src/config/Configuration.ts +14 -2
  177. package/src/controllers/NestedAppAuthController.ts +2 -0
  178. package/src/controllers/StandardController.ts +35 -24
  179. package/src/controllers/UnknownOperatingContextController.ts +2 -0
  180. package/src/crypto/BrowserCrypto.ts +91 -2
  181. package/src/error/BrowserAuthError.ts +6 -8
  182. package/src/error/BrowserAuthErrorCodes.ts +3 -1
  183. package/src/interaction_client/NativeInteractionClient.ts +0 -2
  184. package/src/interaction_client/PopupClient.ts +163 -119
  185. package/src/interaction_client/RedirectClient.ts +258 -140
  186. package/src/interaction_client/SilentAuthCodeClient.ts +2 -2
  187. package/src/interaction_client/SilentIframeClient.ts +154 -99
  188. package/src/interaction_client/StandardInteractionClient.ts +3 -3
  189. package/src/interaction_handler/InteractionHandler.ts +4 -4
  190. package/src/interaction_handler/SilentHandler.ts +31 -2
  191. package/src/packageMetadata.ts +1 -1
  192. package/src/protocol/Authorize.ts +356 -2
  193. package/src/request/AuthorizationUrlRequest.ts +3 -5
  194. package/src/request/PopupRequest.ts +1 -0
  195. package/src/request/RedirectRequest.ts +1 -0
  196. package/src/request/SsoSilentRequest.ts +1 -0
  197. package/src/utils/BrowserConstants.ts +1 -10
  198. package/dist/interaction_handler/RedirectHandler.d.ts +0 -33
  199. package/dist/interaction_handler/RedirectHandler.d.ts.map +0 -1
  200. package/dist/interaction_handler/RedirectHandler.mjs +0 -144
  201. package/dist/interaction_handler/RedirectHandler.mjs.map +0 -1
  202. package/lib/types/interaction_handler/RedirectHandler.d.ts +0 -33
  203. package/lib/types/interaction_handler/RedirectHandler.d.ts.map +0 -1
  204. package/src/interaction_handler/RedirectHandler.ts +0 -252
@@ -1,252 +0,0 @@
1
- /*
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- import {
7
- AuthorizationCodeClient,
8
- CommonAuthorizationCodeRequest,
9
- Logger,
10
- ServerError,
11
- IPerformanceClient,
12
- createClientAuthError,
13
- ClientAuthErrorCodes,
14
- CcsCredential,
15
- invokeAsync,
16
- PerformanceEvents,
17
- AuthorizeResponse,
18
- AuthorizeProtocol,
19
- } from "@azure/msal-common/browser";
20
- import {
21
- createBrowserAuthError,
22
- BrowserAuthErrorCodes,
23
- } from "../error/BrowserAuthError.js";
24
- import { ApiId, TemporaryCacheKeys } from "../utils/BrowserConstants.js";
25
- import { BrowserCacheManager } from "../cache/BrowserCacheManager.js";
26
- import { INavigationClient } from "../navigation/INavigationClient.js";
27
- import { NavigationOptions } from "../navigation/NavigationOptions.js";
28
- import { AuthenticationResult } from "../response/AuthenticationResult.js";
29
-
30
- export type RedirectParams = {
31
- navigationClient: INavigationClient;
32
- redirectTimeout: number;
33
- redirectStartPage: string;
34
- onRedirectNavigate?: (url: string) => void | boolean;
35
- };
36
-
37
- export class RedirectHandler {
38
- authModule: AuthorizationCodeClient;
39
- browserStorage: BrowserCacheManager;
40
- authCodeRequest: CommonAuthorizationCodeRequest;
41
- logger: Logger;
42
- performanceClient: IPerformanceClient;
43
-
44
- constructor(
45
- authCodeModule: AuthorizationCodeClient,
46
- storageImpl: BrowserCacheManager,
47
- authCodeRequest: CommonAuthorizationCodeRequest,
48
- logger: Logger,
49
- performanceClient: IPerformanceClient
50
- ) {
51
- this.authModule = authCodeModule;
52
- this.browserStorage = storageImpl;
53
- this.authCodeRequest = authCodeRequest;
54
- this.logger = logger;
55
- this.performanceClient = performanceClient;
56
- }
57
-
58
- /**
59
- * Redirects window to given URL.
60
- * @param urlNavigate
61
- */
62
- async initiateAuthRequest(
63
- requestUrl: string,
64
- params: RedirectParams
65
- ): Promise<void> {
66
- this.logger.verbose("RedirectHandler.initiateAuthRequest called");
67
- // Navigate if valid URL
68
- if (requestUrl) {
69
- // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true
70
- if (params.redirectStartPage) {
71
- this.logger.verbose(
72
- "RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"
73
- );
74
- this.browserStorage.setTemporaryCache(
75
- TemporaryCacheKeys.ORIGIN_URI,
76
- params.redirectStartPage,
77
- true
78
- );
79
- }
80
-
81
- // Set interaction status in the library.
82
- this.browserStorage.setTemporaryCache(
83
- TemporaryCacheKeys.CORRELATION_ID,
84
- this.authCodeRequest.correlationId,
85
- true
86
- );
87
- this.browserStorage.cacheCodeRequest(this.authCodeRequest);
88
- this.logger.infoPii(
89
- `RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`
90
- );
91
- const navigationOptions: NavigationOptions = {
92
- apiId: ApiId.acquireTokenRedirect,
93
- timeout: params.redirectTimeout,
94
- noHistory: false,
95
- };
96
-
97
- // If onRedirectNavigate is implemented, invoke it and provide requestUrl
98
- if (typeof params.onRedirectNavigate === "function") {
99
- this.logger.verbose(
100
- "RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback"
101
- );
102
- const navigate = params.onRedirectNavigate(requestUrl);
103
-
104
- // Returning false from onRedirectNavigate will stop navigation
105
- if (navigate !== false) {
106
- this.logger.verbose(
107
- "RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"
108
- );
109
- await params.navigationClient.navigateExternal(
110
- requestUrl,
111
- navigationOptions
112
- );
113
- return;
114
- } else {
115
- this.logger.verbose(
116
- "RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation"
117
- );
118
- return;
119
- }
120
- } else {
121
- // Navigate window to request URL
122
- this.logger.verbose(
123
- "RedirectHandler.initiateAuthRequest: Navigating window to navigate url"
124
- );
125
- await params.navigationClient.navigateExternal(
126
- requestUrl,
127
- navigationOptions
128
- );
129
- return;
130
- }
131
- } else {
132
- // Throw error if request URL is empty.
133
- this.logger.info(
134
- "RedirectHandler.initiateAuthRequest: Navigate url is empty"
135
- );
136
- throw createBrowserAuthError(
137
- BrowserAuthErrorCodes.emptyNavigateUri
138
- );
139
- }
140
- }
141
-
142
- /**
143
- * Handle authorization code response in the window.
144
- * @param hash
145
- */
146
- async handleCodeResponse(
147
- response: AuthorizeResponse,
148
- state: string
149
- ): Promise<AuthenticationResult> {
150
- this.logger.verbose("RedirectHandler.handleCodeResponse called");
151
-
152
- // Interaction is completed - remove interaction status.
153
- this.browserStorage.setInteractionInProgress(false);
154
-
155
- // Handle code response.
156
- const stateKey = this.browserStorage.generateStateKey(state);
157
- const requestState = this.browserStorage.getTemporaryCache(stateKey);
158
- if (!requestState) {
159
- throw createClientAuthError(
160
- ClientAuthErrorCodes.stateNotFound,
161
- "Cached State"
162
- );
163
- }
164
-
165
- let authCodeResponse;
166
- try {
167
- authCodeResponse = AuthorizeProtocol.getAuthorizationCodePayload(
168
- response,
169
- requestState
170
- );
171
- } catch (e) {
172
- if (
173
- e instanceof ServerError &&
174
- e.subError === BrowserAuthErrorCodes.userCancelled
175
- ) {
176
- // Translate server error caused by user closing native prompt to corresponding first class MSAL error
177
- throw createBrowserAuthError(
178
- BrowserAuthErrorCodes.userCancelled
179
- );
180
- } else {
181
- throw e;
182
- }
183
- }
184
-
185
- // Get cached items
186
- const nonceKey = this.browserStorage.generateNonceKey(requestState);
187
- const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
188
-
189
- // Assign code to request
190
- this.authCodeRequest.code = authCodeResponse.code;
191
-
192
- // Check for new cloud instance
193
- if (authCodeResponse.cloud_instance_host_name) {
194
- await invokeAsync(
195
- this.authModule.updateAuthority.bind(this.authModule),
196
- PerformanceEvents.UpdateTokenEndpointAuthority,
197
- this.logger,
198
- this.performanceClient,
199
- this.authCodeRequest.correlationId
200
- )(
201
- authCodeResponse.cloud_instance_host_name,
202
- this.authCodeRequest.correlationId
203
- );
204
- }
205
-
206
- authCodeResponse.nonce = cachedNonce || undefined;
207
- authCodeResponse.state = requestState;
208
-
209
- // Add CCS parameters if available
210
- if (authCodeResponse.client_info) {
211
- this.authCodeRequest.clientInfo = authCodeResponse.client_info;
212
- } else {
213
- const cachedCcsCred = this.checkCcsCredentials();
214
- if (cachedCcsCred) {
215
- this.authCodeRequest.ccsCredential = cachedCcsCred;
216
- }
217
- }
218
-
219
- // Acquire token with retrieved code.
220
- const tokenResponse = (await this.authModule.acquireToken(
221
- this.authCodeRequest,
222
- authCodeResponse
223
- )) as AuthenticationResult;
224
-
225
- this.browserStorage.cleanRequestByState(state);
226
- return tokenResponse;
227
- }
228
-
229
- /**
230
- * Looks up ccs creds in the cache
231
- */
232
- protected checkCcsCredentials(): CcsCredential | null {
233
- // Look up ccs credential in temp cache
234
- const cachedCcsCred = this.browserStorage.getTemporaryCache(
235
- TemporaryCacheKeys.CCS_CREDENTIAL,
236
- true
237
- );
238
- if (cachedCcsCred) {
239
- try {
240
- return JSON.parse(cachedCcsCred) as CcsCredential;
241
- } catch (e) {
242
- this.authModule.logger.error(
243
- "Cache credential could not be parsed"
244
- );
245
- this.authModule.logger.errorPii(
246
- `Cache credential could not be parsed: ${cachedCcsCred}`
247
- );
248
- }
249
- }
250
- return null;
251
- }
252
- }