@azure/msal-browser 3.20.0 → 3.22.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 (187) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +53 -53
  2. package/dist/app/IPublicClientApplication.mjs +105 -105
  3. package/dist/app/PublicClientApplication.d.ts +293 -293
  4. package/dist/app/PublicClientApplication.mjs +364 -364
  5. package/dist/app/PublicClientNext.d.ts +276 -276
  6. package/dist/app/PublicClientNext.mjs +354 -354
  7. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  8. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  9. package/dist/broker/nativeBroker/NativeRequest.d.ts +45 -45
  10. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  11. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  12. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  13. package/dist/cache/AccountManager.d.ts +48 -48
  14. package/dist/cache/AccountManager.mjs +126 -126
  15. package/dist/cache/AsyncMemoryStorage.d.ts +50 -50
  16. package/dist/cache/AsyncMemoryStorage.mjs +131 -131
  17. package/dist/cache/BrowserCacheManager.d.ts +385 -385
  18. package/dist/cache/BrowserCacheManager.mjs +1294 -1294
  19. package/dist/cache/BrowserStorage.d.ts +11 -11
  20. package/dist/cache/BrowserStorage.mjs +32 -32
  21. package/dist/cache/DatabaseStorage.d.ts +56 -56
  22. package/dist/cache/DatabaseStorage.mjs +200 -200
  23. package/dist/cache/IAsyncStorage.d.ts +27 -27
  24. package/dist/cache/ITokenCache.d.ts +11 -11
  25. package/dist/cache/IWindowStorage.d.ts +27 -27
  26. package/dist/cache/MemoryStorage.d.ts +11 -11
  27. package/dist/cache/MemoryStorage.mjs +31 -31
  28. package/dist/cache/TokenCache.d.ts +77 -77
  29. package/dist/cache/TokenCache.mjs +195 -195
  30. package/dist/config/Configuration.d.ts +213 -208
  31. package/dist/config/Configuration.d.ts.map +1 -1
  32. package/dist/config/Configuration.mjs +128 -128
  33. package/dist/config/Configuration.mjs.map +1 -1
  34. package/dist/controllers/ControllerFactory.d.ts +5 -5
  35. package/dist/controllers/ControllerFactory.mjs +25 -25
  36. package/dist/controllers/IController.d.ts +60 -60
  37. package/dist/controllers/NestedAppAuthController.d.ts +202 -202
  38. package/dist/controllers/NestedAppAuthController.mjs +473 -473
  39. package/dist/controllers/StandardController.d.ts +405 -405
  40. package/dist/controllers/StandardController.d.ts.map +1 -1
  41. package/dist/controllers/StandardController.mjs +1334 -1316
  42. package/dist/controllers/StandardController.mjs.map +1 -1
  43. package/dist/controllers/UnknownOperatingContextController.d.ts +86 -86
  44. package/dist/controllers/UnknownOperatingContextController.mjs +256 -256
  45. package/dist/crypto/BrowserCrypto.d.ts +52 -52
  46. package/dist/crypto/BrowserCrypto.mjs +151 -151
  47. package/dist/crypto/CryptoOps.d.ts +74 -74
  48. package/dist/crypto/CryptoOps.mjs +176 -176
  49. package/dist/crypto/PkceGenerator.d.ts +8 -8
  50. package/dist/crypto/PkceGenerator.mjs +54 -54
  51. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  52. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  53. package/dist/encode/Base64Decode.d.ts +9 -9
  54. package/dist/encode/Base64Decode.mjs +36 -36
  55. package/dist/encode/Base64Encode.d.ts +19 -19
  56. package/dist/encode/Base64Encode.mjs +43 -43
  57. package/dist/error/BrowserAuthError.d.ts +255 -255
  58. package/dist/error/BrowserAuthError.mjs +263 -263
  59. package/dist/error/BrowserAuthErrorCodes.d.ts +46 -46
  60. package/dist/error/BrowserAuthErrorCodes.mjs +50 -50
  61. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  62. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  63. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  64. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  65. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  66. package/dist/error/NativeAuthError.d.ts +29 -29
  67. package/dist/error/NativeAuthError.mjs +60 -60
  68. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  69. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  70. package/dist/error/NestedAppAuthError.d.ts +14 -14
  71. package/dist/error/NestedAppAuthError.mjs +23 -23
  72. package/dist/event/EventHandler.d.ts +41 -41
  73. package/dist/event/EventHandler.mjs +125 -125
  74. package/dist/event/EventMessage.d.ts +25 -25
  75. package/dist/event/EventMessage.mjs +68 -68
  76. package/dist/event/EventType.d.ts +29 -29
  77. package/dist/event/EventType.mjs +32 -32
  78. package/dist/index.d.ts +40 -40
  79. package/dist/index.mjs +1 -1
  80. package/dist/interaction_client/BaseInteractionClient.d.ts +50 -50
  81. package/dist/interaction_client/BaseInteractionClient.mjs +106 -106
  82. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  83. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  84. package/dist/interaction_client/NativeInteractionClient.d.ts +151 -151
  85. package/dist/interaction_client/NativeInteractionClient.mjs +621 -621
  86. package/dist/interaction_client/PopupClient.d.ts +105 -105
  87. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  88. package/dist/interaction_client/PopupClient.mjs +433 -433
  89. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  90. package/dist/interaction_client/RedirectClient.d.ts +50 -50
  91. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  92. package/dist/interaction_client/RedirectClient.mjs +315 -314
  93. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  94. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  95. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  96. package/dist/interaction_client/SilentCacheClient.d.ts +16 -16
  97. package/dist/interaction_client/SilentCacheClient.mjs +42 -42
  98. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  99. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  100. package/dist/interaction_client/SilentIframeClient.mjs +110 -100
  101. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  102. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  103. package/dist/interaction_client/SilentRefreshClient.mjs +47 -47
  104. package/dist/interaction_client/StandardInteractionClient.d.ts +48 -48
  105. package/dist/interaction_client/StandardInteractionClient.mjs +199 -199
  106. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  107. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  108. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  109. package/dist/interaction_handler/RedirectHandler.mjs +134 -134
  110. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  111. package/dist/interaction_handler/SilentHandler.mjs +134 -134
  112. package/dist/naa/AccountInfo.d.ts +11 -11
  113. package/dist/naa/AuthBridge.d.ts +8 -8
  114. package/dist/naa/AuthResult.d.ts +6 -6
  115. package/dist/naa/BridgeAccountContext.d.ts +12 -12
  116. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  117. package/dist/naa/BridgeError.d.ts +9 -9
  118. package/dist/naa/BridgeError.mjs +7 -7
  119. package/dist/naa/BridgeProxy.d.ts +67 -67
  120. package/dist/naa/BridgeProxy.mjs +148 -148
  121. package/dist/naa/BridgeRequest.d.ts +7 -7
  122. package/dist/naa/BridgeRequestEnvelope.d.ts +12 -12
  123. package/dist/naa/BridgeResponseEnvelope.d.ts +13 -13
  124. package/dist/naa/BridgeStatusCode.d.ts +11 -11
  125. package/dist/naa/BridgeStatusCode.mjs +14 -14
  126. package/dist/naa/IBridgeProxy.d.ts +10 -10
  127. package/dist/naa/InitContext.d.ts +8 -8
  128. package/dist/naa/TokenRequest.d.ts +18 -18
  129. package/dist/naa/TokenResponse.d.ts +13 -13
  130. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +35 -35
  131. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +179 -179
  132. package/dist/navigation/INavigationClient.d.ts +16 -16
  133. package/dist/navigation/NavigationClient.d.ts +22 -22
  134. package/dist/navigation/NavigationClient.mjs +40 -40
  135. package/dist/navigation/NavigationOptions.d.ts +12 -12
  136. package/dist/network/FetchClient.d.ts +26 -26
  137. package/dist/network/FetchClient.mjs +99 -99
  138. package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -41
  139. package/dist/operatingcontext/BaseOperatingContext.mjs +94 -94
  140. package/dist/operatingcontext/NestedAppOperatingContext.d.ts +34 -34
  141. package/dist/operatingcontext/NestedAppOperatingContext.mjs +71 -71
  142. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  143. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  144. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  145. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  146. package/dist/packageMetadata.d.ts +2 -2
  147. package/dist/packageMetadata.mjs +4 -4
  148. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  149. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  150. package/dist/request/ClearCacheRequest.d.ts +10 -10
  151. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  152. package/dist/request/EndSessionRequest.d.ts +15 -15
  153. package/dist/request/InitializeApplicationRequest.d.ts +8 -8
  154. package/dist/request/PopupRequest.d.ts +34 -34
  155. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  156. package/dist/request/RedirectRequest.d.ts +40 -35
  157. package/dist/request/RedirectRequest.d.ts.map +1 -1
  158. package/dist/request/RequestHelpers.d.ts +13 -13
  159. package/dist/request/RequestHelpers.mjs +53 -53
  160. package/dist/request/SilentRequest.d.ts +33 -33
  161. package/dist/request/SsoSilentRequest.d.ts +29 -29
  162. package/dist/response/AuthenticationResult.d.ts +4 -4
  163. package/dist/response/ResponseHandler.d.ts +7 -7
  164. package/dist/response/ResponseHandler.mjs +36 -36
  165. package/dist/telemetry/BrowserPerformanceClient.d.ts +34 -34
  166. package/dist/telemetry/BrowserPerformanceClient.mjs +162 -162
  167. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  168. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  169. package/dist/utils/BrowserConstants.d.ts +180 -180
  170. package/dist/utils/BrowserConstants.mjs +212 -212
  171. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  172. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  173. package/dist/utils/BrowserUtils.d.ts +75 -75
  174. package/dist/utils/BrowserUtils.mjs +157 -157
  175. package/lib/msal-browser.cjs +18884 -18855
  176. package/lib/msal-browser.cjs.map +1 -1
  177. package/lib/msal-browser.js +18884 -18855
  178. package/lib/msal-browser.js.map +1 -1
  179. package/lib/msal-browser.min.js +59 -59
  180. package/package.json +2 -2
  181. package/src/config/Configuration.ts +9 -1
  182. package/src/controllers/StandardController.ts +30 -12
  183. package/src/interaction_client/PopupClient.ts +1 -0
  184. package/src/interaction_client/RedirectClient.ts +4 -1
  185. package/src/interaction_client/SilentIframeClient.ts +40 -3
  186. package/src/packageMetadata.ts +1 -1
  187. package/src/request/RedirectRequest.ts +5 -0
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "type": "git",
11
11
  "url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
12
12
  },
13
- "version": "3.20.0",
13
+ "version": "3.22.0",
14
14
  "description": "Microsoft Authentication Library for js",
15
15
  "keywords": [
16
16
  "implicit",
@@ -104,6 +104,6 @@
104
104
  "typescript": "^4.9.5"
105
105
  },
106
106
  "dependencies": {
107
- "@azure/msal-common": "14.14.0"
107
+ "@azure/msal-common": "14.14.2"
108
108
  }
109
109
  }
@@ -99,11 +99,19 @@ export type BrowserAuthOptions = {
99
99
  * @deprecated This flag is deprecated and will be removed in the next major version. createNestablePublicClientApplication should be used instead.
100
100
  */
101
101
  supportsNestedAppAuth?: boolean;
102
+ /**
103
+ * Callback that will be passed the url that MSAL will navigate to in redirect flows. Returning false in the callback will stop navigation.
104
+ */
105
+ onRedirectNavigate?: (url: string) => boolean | void;
102
106
  };
103
107
 
104
108
  /** @internal */
105
- export type InternalAuthOptions = Required<BrowserAuthOptions> & {
109
+ export type InternalAuthOptions = Omit<
110
+ Required<BrowserAuthOptions>,
111
+ "onRedirectNavigate"
112
+ > & {
106
113
  OIDCOptions: Required<OIDCOptions>;
114
+ onRedirectNavigate?: (url: string) => boolean | void;
107
115
  };
108
116
 
109
117
  /**
@@ -584,19 +584,37 @@ export class StandardController implements IController {
584
584
  scenarioId: request.scenarioId,
585
585
  });
586
586
 
587
+ // Override on request only if set, as onRedirectNavigate field is deprecated
587
588
  const onRedirectNavigateCb = request.onRedirectNavigate;
588
- request.onRedirectNavigate = (url: string) => {
589
- const navigate =
590
- typeof onRedirectNavigateCb === "function"
591
- ? onRedirectNavigateCb(url)
592
- : undefined;
593
- if (navigate !== false) {
594
- atrMeasurement.end({ success: true });
595
- } else {
596
- atrMeasurement.discard();
597
- }
598
- return navigate;
599
- };
589
+ if (onRedirectNavigateCb) {
590
+ request.onRedirectNavigate = (url: string) => {
591
+ const navigate =
592
+ typeof onRedirectNavigateCb === "function"
593
+ ? onRedirectNavigateCb(url)
594
+ : undefined;
595
+ if (navigate !== false) {
596
+ atrMeasurement.end({ success: true });
597
+ } else {
598
+ atrMeasurement.discard();
599
+ }
600
+ return navigate;
601
+ };
602
+ } else {
603
+ const configOnRedirectNavigateCb =
604
+ this.config.auth.onRedirectNavigate;
605
+ this.config.auth.onRedirectNavigate = (url: string) => {
606
+ const navigate =
607
+ typeof configOnRedirectNavigateCb === "function"
608
+ ? configOnRedirectNavigateCb(url)
609
+ : undefined;
610
+ if (navigate !== false) {
611
+ atrMeasurement.end({ success: true });
612
+ } else {
613
+ atrMeasurement.discard();
614
+ }
615
+ return navigate;
616
+ };
617
+ }
600
618
 
601
619
  // If logged in, emit acquire token events
602
620
  const isLoggedIn = this.getAllAccounts().length > 0;
@@ -364,6 +364,7 @@ export class PopupClient extends StandardInteractionClient {
364
364
  (e as AuthError).setCorrelationId(this.correlationId);
365
365
  serverTelemetryManager.cacheFailedRequest(e);
366
366
  }
367
+
367
368
  throw e;
368
369
  }
369
370
  }
@@ -174,7 +174,9 @@ export class RedirectClient extends StandardInteractionClient {
174
174
  navigationClient: this.navigationClient,
175
175
  redirectTimeout: this.config.system.redirectNavigationTimeout,
176
176
  redirectStartPage: redirectStartPage,
177
- onRedirectNavigate: request.onRedirectNavigate,
177
+ onRedirectNavigate:
178
+ request.onRedirectNavigate ||
179
+ this.config.auth.onRedirectNavigate,
178
180
  });
179
181
  } catch (e) {
180
182
  if (e instanceof AuthError) {
@@ -201,6 +203,7 @@ export class RedirectClient extends StandardInteractionClient {
201
203
  const serverTelemetryManager = this.initializeServerTelemetryManager(
202
204
  ApiId.handleRedirectPromise
203
205
  );
206
+
204
207
  try {
205
208
  if (!this.browserStorage.isInteractionInProgress(true)) {
206
209
  this.logger.info(
@@ -26,7 +26,11 @@ import {
26
26
  createBrowserAuthError,
27
27
  BrowserAuthErrorCodes,
28
28
  } from "../error/BrowserAuthError";
29
- import { InteractionType, ApiId } from "../utils/BrowserConstants";
29
+ import {
30
+ InteractionType,
31
+ ApiId,
32
+ BrowserConstants,
33
+ } from "../utils/BrowserConstants";
30
34
  import {
31
35
  initiateAuthRequest,
32
36
  monitorIframeForHash,
@@ -123,9 +127,11 @@ export class SilentIframeClient extends StandardInteractionClient {
123
127
  this.apiId
124
128
  );
125
129
 
130
+ let authClient: AuthorizationCodeClient | undefined;
131
+
126
132
  try {
127
133
  // Initialize the client
128
- const authClient: AuthorizationCodeClient = await invokeAsync(
134
+ authClient = await invokeAsync(
129
135
  this.createAuthCodeClient.bind(this),
130
136
  PerformanceEvents.StandardInteractionClientCreateAuthCodeClient,
131
137
  this.logger,
@@ -150,7 +156,38 @@ export class SilentIframeClient extends StandardInteractionClient {
150
156
  (e as AuthError).setCorrelationId(this.correlationId);
151
157
  serverTelemetryManager.cacheFailedRequest(e);
152
158
  }
153
- throw e;
159
+
160
+ if (
161
+ !authClient ||
162
+ !(e instanceof AuthError) ||
163
+ e.errorCode !== BrowserConstants.INVALID_GRANT_ERROR
164
+ ) {
165
+ throw e;
166
+ }
167
+
168
+ this.performanceClient.addFields(
169
+ {
170
+ retryError: e.errorCode,
171
+ },
172
+ this.correlationId
173
+ );
174
+
175
+ const retrySilentRequest: AuthorizationUrlRequest =
176
+ await invokeAsync(
177
+ this.initializeAuthorizationRequest.bind(this),
178
+ PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest,
179
+ this.logger,
180
+ this.performanceClient,
181
+ request.correlationId
182
+ )(inputRequest, InteractionType.Silent);
183
+
184
+ return await invokeAsync(
185
+ this.silentTokenHelper.bind(this),
186
+ PerformanceEvents.SilentIframeClientTokenHelper,
187
+ this.logger,
188
+ this.performanceClient,
189
+ this.correlationId
190
+ )(authClient, retrySilentRequest);
154
191
  }
155
192
  }
156
193
 
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable header/header */
2
2
  export const name = "@azure/msal-browser";
3
- export const version = "3.20.0";
3
+ export const version = "3.22.0";
@@ -46,6 +46,11 @@ export type RedirectRequest = Partial<
46
46
  > & {
47
47
  scopes: Array<string>;
48
48
  redirectStartPage?: string;
49
+ /**
50
+ * @deprecated
51
+ * onRedirectNavigate is deprecated and will be removed in the next major version.
52
+ * Set onRedirectNavigate in Configuration instead.
53
+ */
49
54
  onRedirectNavigate?: (url: string) => boolean | void;
50
55
  tokenBodyParameters?: StringDict;
51
56
  };