@azure/msal-browser 3.20.0 → 3.21.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 (208) 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 +410 -385
  18. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  19. package/dist/cache/BrowserCacheManager.mjs +1364 -1294
  20. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  21. package/dist/cache/BrowserStorage.d.ts +11 -11
  22. package/dist/cache/BrowserStorage.mjs +32 -32
  23. package/dist/cache/DatabaseStorage.d.ts +56 -56
  24. package/dist/cache/DatabaseStorage.mjs +200 -200
  25. package/dist/cache/IAsyncStorage.d.ts +27 -27
  26. package/dist/cache/ITokenCache.d.ts +11 -11
  27. package/dist/cache/IWindowStorage.d.ts +27 -27
  28. package/dist/cache/MemoryStorage.d.ts +11 -11
  29. package/dist/cache/MemoryStorage.mjs +31 -31
  30. package/dist/cache/TokenCache.d.ts +77 -77
  31. package/dist/cache/TokenCache.mjs +195 -195
  32. package/dist/config/Configuration.d.ts +213 -208
  33. package/dist/config/Configuration.d.ts.map +1 -1
  34. package/dist/config/Configuration.mjs +128 -128
  35. package/dist/config/Configuration.mjs.map +1 -1
  36. package/dist/controllers/ControllerFactory.d.ts +5 -5
  37. package/dist/controllers/ControllerFactory.mjs +25 -25
  38. package/dist/controllers/IController.d.ts +60 -60
  39. package/dist/controllers/NestedAppAuthController.d.ts +202 -202
  40. package/dist/controllers/NestedAppAuthController.mjs +473 -473
  41. package/dist/controllers/StandardController.d.ts +405 -405
  42. package/dist/controllers/StandardController.d.ts.map +1 -1
  43. package/dist/controllers/StandardController.mjs +1334 -1316
  44. package/dist/controllers/StandardController.mjs.map +1 -1
  45. package/dist/controllers/UnknownOperatingContextController.d.ts +86 -86
  46. package/dist/controllers/UnknownOperatingContextController.mjs +256 -256
  47. package/dist/crypto/BrowserCrypto.d.ts +52 -52
  48. package/dist/crypto/BrowserCrypto.mjs +151 -151
  49. package/dist/crypto/CryptoOps.d.ts +74 -74
  50. package/dist/crypto/CryptoOps.mjs +176 -176
  51. package/dist/crypto/PkceGenerator.d.ts +8 -8
  52. package/dist/crypto/PkceGenerator.mjs +54 -54
  53. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  54. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  55. package/dist/encode/Base64Decode.d.ts +9 -9
  56. package/dist/encode/Base64Decode.mjs +36 -36
  57. package/dist/encode/Base64Encode.d.ts +19 -19
  58. package/dist/encode/Base64Encode.mjs +43 -43
  59. package/dist/error/BrowserAuthError.d.ts +256 -255
  60. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  61. package/dist/error/BrowserAuthError.mjs +265 -264
  62. package/dist/error/BrowserAuthError.mjs.map +1 -1
  63. package/dist/error/BrowserAuthErrorCodes.d.ts +47 -46
  64. package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
  65. package/dist/error/BrowserAuthErrorCodes.mjs +53 -52
  66. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  67. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  68. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  69. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  70. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  71. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  72. package/dist/error/NativeAuthError.d.ts +29 -29
  73. package/dist/error/NativeAuthError.mjs +60 -60
  74. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  75. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  76. package/dist/error/NestedAppAuthError.d.ts +14 -14
  77. package/dist/error/NestedAppAuthError.mjs +23 -23
  78. package/dist/event/EventHandler.d.ts +41 -41
  79. package/dist/event/EventHandler.mjs +125 -125
  80. package/dist/event/EventMessage.d.ts +25 -25
  81. package/dist/event/EventMessage.mjs +68 -68
  82. package/dist/event/EventType.d.ts +29 -29
  83. package/dist/event/EventType.mjs +32 -32
  84. package/dist/index.d.ts +40 -40
  85. package/dist/index.mjs +1 -1
  86. package/dist/interaction_client/BaseInteractionClient.d.ts +50 -50
  87. package/dist/interaction_client/BaseInteractionClient.mjs +106 -106
  88. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  89. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  90. package/dist/interaction_client/NativeInteractionClient.d.ts +151 -151
  91. package/dist/interaction_client/NativeInteractionClient.mjs +621 -621
  92. package/dist/interaction_client/PopupClient.d.ts +118 -105
  93. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  94. package/dist/interaction_client/PopupClient.mjs +460 -434
  95. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  96. package/dist/interaction_client/RedirectClient.d.ts +50 -50
  97. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  98. package/dist/interaction_client/RedirectClient.mjs +349 -317
  99. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  100. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  101. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  102. package/dist/interaction_client/SilentCacheClient.d.ts +16 -16
  103. package/dist/interaction_client/SilentCacheClient.mjs +42 -42
  104. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  105. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  106. package/dist/interaction_client/SilentIframeClient.mjs +111 -101
  107. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  108. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  109. package/dist/interaction_client/SilentRefreshClient.mjs +47 -47
  110. package/dist/interaction_client/StandardInteractionClient.d.ts +48 -48
  111. package/dist/interaction_client/StandardInteractionClient.mjs +199 -199
  112. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  113. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  114. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  115. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  116. package/dist/interaction_handler/RedirectHandler.mjs +135 -134
  117. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  118. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  119. package/dist/interaction_handler/SilentHandler.mjs +134 -134
  120. package/dist/naa/AccountInfo.d.ts +11 -11
  121. package/dist/naa/AuthBridge.d.ts +8 -8
  122. package/dist/naa/AuthResult.d.ts +6 -6
  123. package/dist/naa/BridgeAccountContext.d.ts +12 -12
  124. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  125. package/dist/naa/BridgeError.d.ts +9 -9
  126. package/dist/naa/BridgeError.mjs +7 -7
  127. package/dist/naa/BridgeProxy.d.ts +67 -67
  128. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  129. package/dist/naa/BridgeProxy.mjs +153 -148
  130. package/dist/naa/BridgeProxy.mjs.map +1 -1
  131. package/dist/naa/BridgeRequest.d.ts +7 -7
  132. package/dist/naa/BridgeRequestEnvelope.d.ts +12 -12
  133. package/dist/naa/BridgeResponseEnvelope.d.ts +13 -13
  134. package/dist/naa/BridgeStatusCode.d.ts +11 -11
  135. package/dist/naa/BridgeStatusCode.mjs +14 -14
  136. package/dist/naa/IBridgeProxy.d.ts +10 -10
  137. package/dist/naa/InitContext.d.ts +8 -8
  138. package/dist/naa/TokenRequest.d.ts +18 -18
  139. package/dist/naa/TokenResponse.d.ts +13 -13
  140. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +35 -35
  141. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +179 -179
  142. package/dist/navigation/INavigationClient.d.ts +16 -16
  143. package/dist/navigation/NavigationClient.d.ts +22 -22
  144. package/dist/navigation/NavigationClient.mjs +40 -40
  145. package/dist/navigation/NavigationOptions.d.ts +12 -12
  146. package/dist/network/FetchClient.d.ts +26 -26
  147. package/dist/network/FetchClient.mjs +99 -99
  148. package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -41
  149. package/dist/operatingcontext/BaseOperatingContext.mjs +94 -94
  150. package/dist/operatingcontext/NestedAppOperatingContext.d.ts +34 -34
  151. package/dist/operatingcontext/NestedAppOperatingContext.mjs +71 -71
  152. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  153. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  154. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  155. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  156. package/dist/packageMetadata.d.ts +2 -2
  157. package/dist/packageMetadata.mjs +4 -4
  158. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  159. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  160. package/dist/request/ClearCacheRequest.d.ts +10 -10
  161. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  162. package/dist/request/EndSessionRequest.d.ts +15 -15
  163. package/dist/request/InitializeApplicationRequest.d.ts +8 -8
  164. package/dist/request/PopupRequest.d.ts +34 -34
  165. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  166. package/dist/request/RedirectRequest.d.ts +40 -35
  167. package/dist/request/RedirectRequest.d.ts.map +1 -1
  168. package/dist/request/RequestHelpers.d.ts +13 -13
  169. package/dist/request/RequestHelpers.mjs +53 -53
  170. package/dist/request/SilentRequest.d.ts +33 -33
  171. package/dist/request/SsoSilentRequest.d.ts +29 -29
  172. package/dist/response/AuthenticationResult.d.ts +4 -4
  173. package/dist/response/ResponseHandler.d.ts +7 -7
  174. package/dist/response/ResponseHandler.mjs +36 -36
  175. package/dist/telemetry/BrowserPerformanceClient.d.ts +38 -34
  176. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  177. package/dist/telemetry/BrowserPerformanceClient.mjs +163 -163
  178. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  179. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  180. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  181. package/dist/utils/BrowserConstants.d.ts +182 -180
  182. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  183. package/dist/utils/BrowserConstants.mjs +214 -212
  184. package/dist/utils/BrowserConstants.mjs.map +1 -1
  185. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  186. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  187. package/dist/utils/BrowserUtils.d.ts +75 -75
  188. package/dist/utils/BrowserUtils.mjs +157 -157
  189. package/lib/msal-browser.cjs +19027 -18857
  190. package/lib/msal-browser.cjs.map +1 -1
  191. package/lib/msal-browser.js +19027 -18857
  192. package/lib/msal-browser.js.map +1 -1
  193. package/lib/msal-browser.min.js +62 -62
  194. package/package.json +2 -2
  195. package/src/cache/BrowserCacheManager.ts +95 -0
  196. package/src/config/Configuration.ts +9 -1
  197. package/src/controllers/StandardController.ts +30 -12
  198. package/src/error/BrowserAuthError.ts +2 -0
  199. package/src/error/BrowserAuthErrorCodes.ts +1 -0
  200. package/src/interaction_client/PopupClient.ts +202 -117
  201. package/src/interaction_client/RedirectClient.ts +62 -2
  202. package/src/interaction_client/SilentIframeClient.ts +41 -3
  203. package/src/interaction_handler/RedirectHandler.ts +1 -0
  204. package/src/naa/BridgeProxy.ts +7 -2
  205. package/src/packageMetadata.ts +1 -1
  206. package/src/request/RedirectRequest.ts +5 -0
  207. package/src/telemetry/BrowserPerformanceClient.ts +1 -1
  208. package/src/utils/BrowserConstants.ts +2 -0
@@ -22,10 +22,12 @@ import {
22
22
  ServerResponseType,
23
23
  UrlUtils,
24
24
  InProgressPerformanceEvent,
25
+ ServerError,
25
26
  } from "@azure/msal-common";
26
27
  import { StandardInteractionClient } from "./StandardInteractionClient";
27
28
  import {
28
29
  ApiId,
30
+ BrowserConstants,
29
31
  InteractionType,
30
32
  TemporaryCacheKeys,
31
33
  } from "../utils/BrowserConstants";
@@ -83,6 +85,14 @@ export class RedirectClient extends StandardInteractionClient {
83
85
  * @param request
84
86
  */
85
87
  async acquireToken(request: RedirectRequest): Promise<void> {
88
+ if (request.onRedirectNavigate) {
89
+ this.logger.warning(
90
+ "Unable to cache redirect request, onRedirectNavigate request option has been deprecated. Please set onRedirectNavigate on PublicClientApplication config instead."
91
+ );
92
+ } else {
93
+ this.browserStorage.cacheRedirectRequest(request);
94
+ }
95
+
86
96
  const validRequest = await invokeAsync(
87
97
  this.initializeAuthorizationRequest.bind(this),
88
98
  PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest,
@@ -174,7 +184,9 @@ export class RedirectClient extends StandardInteractionClient {
174
184
  navigationClient: this.navigationClient,
175
185
  redirectTimeout: this.config.system.redirectNavigationTimeout,
176
186
  redirectStartPage: redirectStartPage,
177
- onRedirectNavigate: request.onRedirectNavigate,
187
+ onRedirectNavigate:
188
+ request.onRedirectNavigate ||
189
+ this.config.auth.onRedirectNavigate,
178
190
  });
179
191
  } catch (e) {
180
192
  if (e instanceof AuthError) {
@@ -201,6 +213,7 @@ export class RedirectClient extends StandardInteractionClient {
201
213
  const serverTelemetryManager = this.initializeServerTelemetryManager(
202
214
  ApiId.handleRedirectPromise
203
215
  );
216
+
204
217
  try {
205
218
  if (!this.browserStorage.isInteractionInProgress(true)) {
206
219
  this.logger.info(
@@ -331,10 +344,57 @@ export class RedirectClient extends StandardInteractionClient {
331
344
  (e as AuthError).setCorrelationId(this.correlationId);
332
345
  serverTelemetryManager.cacheFailedRequest(e);
333
346
  }
347
+
348
+ if (
349
+ e instanceof ServerError &&
350
+ e.errorCode === BrowserConstants.INVALID_GRANT_ERROR
351
+ ) {
352
+ this.performanceClient.addFields(
353
+ {
354
+ retryError: e.errorCode,
355
+ },
356
+ this.correlationId
357
+ );
358
+
359
+ const requestRetried = this.browserStorage.getRequestRetried();
360
+
361
+ if (requestRetried) {
362
+ this.logger.error(
363
+ "Retried request already detected. Throwing error."
364
+ );
365
+ this.browserStorage.removeRequestRetried();
366
+ throw e;
367
+ }
368
+
369
+ const redirectRequest =
370
+ this.browserStorage.getCachedRedirectRequest();
371
+ if (!redirectRequest) {
372
+ this.logger.error(
373
+ "Unable to retry. Please retry with redirect request"
374
+ );
375
+ this.browserStorage.setRequestRetried();
376
+ throw createBrowserAuthError(
377
+ BrowserAuthErrorCodes.failedToRetry
378
+ );
379
+ }
380
+
381
+ this.browserStorage.setRequestRetried();
382
+
383
+ await this.acquireToken(redirectRequest);
384
+ return null;
385
+ }
386
+
387
+ this.browserStorage.removeTemporaryItem(
388
+ this.browserStorage.generateCacheKey(
389
+ TemporaryCacheKeys.REDIRECT_REQUEST
390
+ )
391
+ );
392
+ this.browserStorage.removeRequestRetried();
393
+ throw e;
394
+ } finally {
334
395
  this.browserStorage.cleanRequestByInteractionType(
335
396
  InteractionType.Redirect
336
397
  );
337
- throw e;
338
398
  }
339
399
  }
340
400
 
@@ -15,6 +15,7 @@ import {
15
15
  PerformanceEvents,
16
16
  invokeAsync,
17
17
  invoke,
18
+ ServerError,
18
19
  } from "@azure/msal-common";
19
20
  import { StandardInteractionClient } from "./StandardInteractionClient";
20
21
  import { AuthorizationUrlRequest } from "../request/AuthorizationUrlRequest";
@@ -26,7 +27,11 @@ import {
26
27
  createBrowserAuthError,
27
28
  BrowserAuthErrorCodes,
28
29
  } from "../error/BrowserAuthError";
29
- import { InteractionType, ApiId } from "../utils/BrowserConstants";
30
+ import {
31
+ InteractionType,
32
+ ApiId,
33
+ BrowserConstants,
34
+ } from "../utils/BrowserConstants";
30
35
  import {
31
36
  initiateAuthRequest,
32
37
  monitorIframeForHash,
@@ -123,9 +128,11 @@ export class SilentIframeClient extends StandardInteractionClient {
123
128
  this.apiId
124
129
  );
125
130
 
131
+ let authClient: AuthorizationCodeClient | undefined;
132
+
126
133
  try {
127
134
  // Initialize the client
128
- const authClient: AuthorizationCodeClient = await invokeAsync(
135
+ authClient = await invokeAsync(
129
136
  this.createAuthCodeClient.bind(this),
130
137
  PerformanceEvents.StandardInteractionClientCreateAuthCodeClient,
131
138
  this.logger,
@@ -150,7 +157,38 @@ export class SilentIframeClient extends StandardInteractionClient {
150
157
  (e as AuthError).setCorrelationId(this.correlationId);
151
158
  serverTelemetryManager.cacheFailedRequest(e);
152
159
  }
153
- throw e;
160
+
161
+ if (
162
+ !authClient ||
163
+ !(e instanceof ServerError) ||
164
+ e.errorCode !== BrowserConstants.INVALID_GRANT_ERROR
165
+ ) {
166
+ throw e;
167
+ }
168
+
169
+ this.performanceClient.addFields(
170
+ {
171
+ retryError: e.errorCode,
172
+ },
173
+ this.correlationId
174
+ );
175
+
176
+ const retrySilentRequest: AuthorizationUrlRequest =
177
+ await invokeAsync(
178
+ this.initializeAuthorizationRequest.bind(this),
179
+ PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest,
180
+ this.logger,
181
+ this.performanceClient,
182
+ request.correlationId
183
+ )(inputRequest, InteractionType.Silent);
184
+
185
+ return await invokeAsync(
186
+ this.silentTokenHelper.bind(this),
187
+ PerformanceEvents.SilentIframeClientTokenHelper,
188
+ this.logger,
189
+ this.performanceClient,
190
+ this.correlationId
191
+ )(authClient, retrySilentRequest);
154
192
  }
155
193
  }
156
194
 
@@ -222,6 +222,7 @@ export class RedirectHandler {
222
222
  )) as AuthenticationResult;
223
223
 
224
224
  this.browserStorage.cleanRequestByState(state);
225
+ this.browserStorage.removeRequestRetried();
225
226
  return tokenResponse;
226
227
  }
227
228
 
@@ -16,6 +16,7 @@ import { IBridgeProxy } from "./IBridgeProxy";
16
16
  import { InitContext } from "./InitContext";
17
17
  import { TokenRequest } from "./TokenRequest";
18
18
  import * as BrowserCrypto from "../crypto/BrowserCrypto";
19
+ import { supportsBrowserPerformanceNow } from "../telemetry/BrowserPerformanceClient";
19
20
 
20
21
  declare global {
21
22
  interface Window {
@@ -81,7 +82,9 @@ export class BridgeProxy implements IBridgeProxy {
81
82
  messageType: "NestedAppAuthRequest",
82
83
  method: "GetInitContext",
83
84
  requestId: BrowserCrypto.createNewGuid(),
84
- sendTime: Date.now(),
85
+ sendTime: supportsBrowserPerformanceNow()
86
+ ? window.performance.now()
87
+ : Date.now(),
85
88
  };
86
89
  const request: BridgeRequest = {
87
90
  requestId: message.requestId,
@@ -157,7 +160,9 @@ export class BridgeProxy implements IBridgeProxy {
157
160
  messageType: "NestedAppAuthRequest",
158
161
  method: method,
159
162
  requestId: BrowserCrypto.createNewGuid(),
160
- sendTime: Date.now(),
163
+ sendTime: supportsBrowserPerformanceNow()
164
+ ? window.performance.now()
165
+ : Date.now(),
161
166
  ...requestParams,
162
167
  };
163
168
 
@@ -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.21.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
  };
@@ -42,7 +42,7 @@ function getPerfMeasurementModule() {
42
42
  /**
43
43
  * Returns boolean, indicating whether browser supports window.performance.now() function.
44
44
  */
45
- function supportsBrowserPerformanceNow(): boolean {
45
+ export function supportsBrowserPerformanceNow(): boolean {
46
46
  return (
47
47
  typeof window !== "undefined" &&
48
48
  typeof window.performance !== "undefined" &&
@@ -93,6 +93,8 @@ export const TemporaryCacheKeys = {
93
93
  CORRELATION_ID: "request.correlationId",
94
94
  NATIVE_REQUEST: "request.native",
95
95
  REDIRECT_CONTEXT: "request.redirect.context",
96
+ REDIRECT_REQUEST: "request.redirect",
97
+ REQUEST_RETRY: "request.retry",
96
98
  } as const;
97
99
  export type TemporaryCacheKeys =
98
100
  (typeof TemporaryCacheKeys)[keyof typeof TemporaryCacheKeys];