@azure/msal-browser 3.5.1-beta.1 → 3.7.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 (290) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +51 -51
  2. package/dist/app/IPublicClientApplication.mjs +102 -102
  3. package/dist/app/IPublicClientApplication.mjs.map +1 -1
  4. package/dist/app/PublicClientApplication.d.ts +269 -268
  5. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  6. package/dist/app/PublicClientApplication.mjs +333 -333
  7. package/dist/app/PublicClientApplication.mjs.map +1 -1
  8. package/dist/app/PublicClientNext.d.ts +273 -273
  9. package/dist/app/PublicClientNext.mjs +351 -351
  10. package/dist/app/PublicClientNext.mjs.map +1 -1
  11. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  12. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  13. package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
  14. package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
  15. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  16. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  17. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  18. package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
  19. package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
  20. package/dist/cache/AsyncMemoryStorage.mjs +132 -132
  21. package/dist/cache/AsyncMemoryStorage.mjs.map +1 -1
  22. package/dist/cache/BrowserCacheManager.d.ts +395 -383
  23. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  24. package/dist/cache/BrowserCacheManager.mjs +1283 -1263
  25. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  26. package/dist/cache/BrowserStorage.d.ts +11 -11
  27. package/dist/cache/BrowserStorage.mjs +32 -32
  28. package/dist/cache/BrowserStorage.mjs.map +1 -1
  29. package/dist/cache/CryptoKeyStore.d.ts +18 -18
  30. package/dist/cache/CryptoKeyStore.mjs +40 -40
  31. package/dist/cache/CryptoKeyStore.mjs.map +1 -1
  32. package/dist/cache/DatabaseStorage.d.ts +56 -56
  33. package/dist/cache/DatabaseStorage.mjs +190 -190
  34. package/dist/cache/DatabaseStorage.mjs.map +1 -1
  35. package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
  36. package/dist/cache/ITokenCache.d.ts +11 -11
  37. package/dist/cache/IWindowStorage.d.ts +27 -27
  38. package/dist/cache/MemoryStorage.d.ts +11 -11
  39. package/dist/cache/MemoryStorage.mjs +31 -31
  40. package/dist/cache/MemoryStorage.mjs.map +1 -1
  41. package/dist/cache/TokenCache.d.ts +77 -77
  42. package/dist/cache/TokenCache.d.ts.map +1 -1
  43. package/dist/cache/TokenCache.mjs +223 -225
  44. package/dist/cache/TokenCache.mjs.map +1 -1
  45. package/dist/config/Configuration.d.ts +206 -206
  46. package/dist/config/Configuration.d.ts.map +1 -1
  47. package/dist/config/Configuration.mjs +128 -128
  48. package/dist/config/Configuration.mjs.map +1 -1
  49. package/dist/controllers/ControllerFactory.d.ts +4 -4
  50. package/dist/controllers/ControllerFactory.d.ts.map +1 -1
  51. package/dist/controllers/ControllerFactory.mjs +29 -29
  52. package/dist/controllers/ControllerFactory.mjs.map +1 -1
  53. package/dist/controllers/IController.d.ts +61 -61
  54. package/dist/controllers/NestedAppAuthController.d.ts +95 -95
  55. package/dist/controllers/NestedAppAuthController.mjs +334 -334
  56. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  57. package/dist/controllers/StandardController.d.ts +407 -407
  58. package/dist/controllers/StandardController.d.ts.map +1 -1
  59. package/dist/controllers/StandardController.mjs +1307 -1294
  60. package/dist/controllers/StandardController.mjs.map +1 -1
  61. package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
  62. package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
  63. package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
  64. package/dist/crypto/BrowserCrypto.d.ts +44 -44
  65. package/dist/crypto/BrowserCrypto.mjs +93 -93
  66. package/dist/crypto/BrowserCrypto.mjs.map +1 -1
  67. package/dist/crypto/CryptoOps.d.ts +63 -63
  68. package/dist/crypto/CryptoOps.mjs +145 -145
  69. package/dist/crypto/CryptoOps.mjs.map +1 -1
  70. package/dist/crypto/PkceGenerator.d.ts +8 -8
  71. package/dist/crypto/PkceGenerator.mjs +54 -54
  72. package/dist/crypto/PkceGenerator.mjs.map +1 -1
  73. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  74. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  75. package/dist/crypto/SignedHttpRequest.mjs.map +1 -1
  76. package/dist/encode/Base64Decode.d.ts +9 -9
  77. package/dist/encode/Base64Decode.mjs +36 -36
  78. package/dist/encode/Base64Decode.mjs.map +1 -1
  79. package/dist/encode/Base64Encode.d.ts +19 -19
  80. package/dist/encode/Base64Encode.mjs +43 -43
  81. package/dist/encode/Base64Encode.mjs.map +1 -1
  82. package/dist/error/BrowserAuthError.d.ts +250 -250
  83. package/dist/error/BrowserAuthError.mjs +258 -258
  84. package/dist/error/BrowserAuthError.mjs.map +1 -1
  85. package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
  86. package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
  87. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  88. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  89. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  90. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  91. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  92. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  93. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -1
  94. package/dist/error/NativeAuthError.d.ts +29 -29
  95. package/dist/error/NativeAuthError.mjs +60 -60
  96. package/dist/error/NativeAuthError.mjs.map +1 -1
  97. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  98. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  99. package/dist/error/NativeAuthErrorCodes.mjs.map +1 -1
  100. package/dist/error/NestedAppAuthError.d.ts +14 -14
  101. package/dist/error/NestedAppAuthError.mjs +23 -23
  102. package/dist/error/NestedAppAuthError.mjs.map +1 -1
  103. package/dist/event/EventHandler.d.ts +41 -41
  104. package/dist/event/EventHandler.mjs +119 -119
  105. package/dist/event/EventHandler.mjs.map +1 -1
  106. package/dist/event/EventMessage.d.ts +25 -25
  107. package/dist/event/EventMessage.mjs +68 -68
  108. package/dist/event/EventMessage.mjs.map +1 -1
  109. package/dist/event/EventType.d.ts +28 -28
  110. package/dist/event/EventType.mjs +31 -31
  111. package/dist/event/EventType.mjs.map +1 -1
  112. package/dist/index.d.ts +39 -39
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.mjs +1 -1
  115. package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
  116. package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
  117. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  118. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  119. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  120. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs.map +1 -1
  121. package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
  122. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  123. package/dist/interaction_client/NativeInteractionClient.mjs +541 -549
  124. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  125. package/dist/interaction_client/PopupClient.d.ts +105 -105
  126. package/dist/interaction_client/PopupClient.mjs +432 -432
  127. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  128. package/dist/interaction_client/RedirectClient.d.ts +49 -49
  129. package/dist/interaction_client/RedirectClient.mjs +311 -311
  130. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  131. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  132. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  133. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  134. package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
  135. package/dist/interaction_client/SilentCacheClient.mjs +61 -61
  136. package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
  137. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  138. package/dist/interaction_client/SilentIframeClient.mjs +96 -96
  139. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  140. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  141. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  142. package/dist/interaction_client/SilentRefreshClient.mjs +47 -43
  143. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
  144. package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
  145. package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
  146. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  147. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  148. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  149. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  150. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  151. package/dist/interaction_handler/RedirectHandler.mjs +134 -134
  152. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  153. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  154. package/dist/interaction_handler/SilentHandler.mjs +133 -133
  155. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  156. package/dist/naa/AccountInfo.d.ts +11 -11
  157. package/dist/naa/AuthBridge.d.ts +8 -5
  158. package/dist/naa/AuthBridge.d.ts.map +1 -1
  159. package/dist/naa/AuthResult.d.ts +7 -0
  160. package/dist/naa/AuthResult.d.ts.map +1 -0
  161. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  162. package/dist/naa/BridgeError.d.ts +9 -9
  163. package/dist/naa/BridgeError.mjs +7 -7
  164. package/dist/naa/BridgeError.mjs.map +1 -1
  165. package/dist/naa/BridgeProxy.d.ts +68 -72
  166. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  167. package/dist/naa/BridgeProxy.mjs +155 -152
  168. package/dist/naa/BridgeProxy.mjs.map +1 -1
  169. package/dist/naa/BridgeRequest.d.ts +7 -6
  170. package/dist/naa/BridgeRequest.d.ts.map +1 -1
  171. package/dist/naa/BridgeRequestEnvelope.d.ts +12 -13
  172. package/dist/naa/BridgeRequestEnvelope.d.ts.map +1 -1
  173. package/dist/naa/BridgeResponseEnvelope.d.ts +13 -10
  174. package/dist/naa/BridgeResponseEnvelope.d.ts.map +1 -1
  175. package/dist/naa/BridgeStatusCode.d.ts +11 -10
  176. package/dist/naa/BridgeStatusCode.d.ts.map +1 -1
  177. package/dist/naa/BridgeStatusCode.mjs +15 -16
  178. package/dist/naa/BridgeStatusCode.mjs.map +1 -1
  179. package/dist/naa/IBridgeProxy.d.ts +10 -12
  180. package/dist/naa/IBridgeProxy.d.ts.map +1 -1
  181. package/dist/naa/{InitializeBridgeResponse.d.ts → InitContext.d.ts} +7 -7
  182. package/dist/naa/InitContext.d.ts.map +1 -0
  183. package/dist/naa/TokenRequest.d.ts +18 -19
  184. package/dist/naa/TokenRequest.d.ts.map +1 -1
  185. package/dist/naa/TokenResponse.d.ts +13 -15
  186. package/dist/naa/TokenResponse.d.ts.map +1 -1
  187. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -23
  188. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  189. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +141 -141
  190. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  191. package/dist/navigation/INavigationClient.d.ts +16 -16
  192. package/dist/navigation/NavigationClient.d.ts +22 -22
  193. package/dist/navigation/NavigationClient.mjs +40 -40
  194. package/dist/navigation/NavigationClient.mjs.map +1 -1
  195. package/dist/navigation/NavigationOptions.d.ts +12 -12
  196. package/dist/network/FetchClient.d.ts +26 -26
  197. package/dist/network/FetchClient.mjs +99 -99
  198. package/dist/network/FetchClient.mjs.map +1 -1
  199. package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -40
  200. package/dist/operatingcontext/BaseOperatingContext.d.ts.map +1 -1
  201. package/dist/operatingcontext/BaseOperatingContext.mjs +96 -45
  202. package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -1
  203. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  204. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  205. package/dist/operatingcontext/StandardOperatingContext.mjs.map +1 -1
  206. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
  207. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -85
  208. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  209. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  210. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  211. package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -1
  212. package/dist/packageMetadata.d.ts +2 -2
  213. package/dist/packageMetadata.d.ts.map +1 -1
  214. package/dist/packageMetadata.mjs +4 -4
  215. package/dist/packageMetadata.mjs.map +1 -1
  216. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  217. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  218. package/dist/request/ClearCacheRequest.d.ts +10 -10
  219. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  220. package/dist/request/EndSessionRequest.d.ts +15 -15
  221. package/dist/request/PopupRequest.d.ts +34 -34
  222. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  223. package/dist/request/RedirectRequest.d.ts +35 -35
  224. package/dist/request/SilentRequest.d.ts +32 -32
  225. package/dist/request/SsoSilentRequest.d.ts +29 -29
  226. package/dist/response/AuthenticationResult.d.ts +4 -4
  227. package/dist/response/ResponseHandler.d.ts +7 -7
  228. package/dist/response/ResponseHandler.mjs +36 -36
  229. package/dist/response/ResponseHandler.mjs.map +1 -1
  230. package/dist/telemetry/BrowserPerformanceClient.d.ts +34 -36
  231. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  232. package/dist/telemetry/BrowserPerformanceClient.mjs +163 -126
  233. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  234. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  235. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  236. package/dist/telemetry/BrowserPerformanceMeasurement.mjs.map +1 -1
  237. package/dist/utils/BrowserConstants.d.ts +180 -176
  238. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  239. package/dist/utils/BrowserConstants.mjs +213 -205
  240. package/dist/utils/BrowserConstants.mjs.map +1 -1
  241. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  242. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  243. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  244. package/dist/utils/BrowserUtils.d.ts +56 -56
  245. package/dist/utils/BrowserUtils.mjs +125 -125
  246. package/dist/utils/BrowserUtils.mjs.map +1 -1
  247. package/lib/msal-browser.cjs +18304 -17929
  248. package/lib/msal-browser.cjs.map +1 -1
  249. package/lib/msal-browser.js +18304 -17929
  250. package/lib/msal-browser.js.map +1 -1
  251. package/lib/msal-browser.min.js +66 -68
  252. package/package.json +103 -102
  253. package/src/app/PublicClientApplication.ts +2 -1
  254. package/src/cache/BrowserCacheManager.ts +38 -23
  255. package/src/cache/DatabaseStorage.ts +1 -1
  256. package/src/cache/TokenCache.ts +34 -29
  257. package/src/config/Configuration.ts +1 -1
  258. package/src/controllers/ControllerFactory.ts +3 -5
  259. package/src/controllers/StandardController.ts +53 -26
  260. package/src/crypto/CryptoOps.ts +1 -1
  261. package/src/crypto/SignedHttpRequest.ts +1 -1
  262. package/src/index.ts +1 -0
  263. package/src/interaction_client/BaseInteractionClient.ts +2 -2
  264. package/src/interaction_client/NativeInteractionClient.ts +24 -20
  265. package/src/interaction_client/PopupClient.ts +1 -1
  266. package/src/interaction_client/RedirectClient.ts +3 -3
  267. package/src/interaction_client/SilentAuthCodeClient.ts +1 -1
  268. package/src/interaction_client/SilentRefreshClient.ts +8 -0
  269. package/src/interaction_client/StandardInteractionClient.ts +1 -1
  270. package/src/interaction_handler/SilentHandler.ts +2 -2
  271. package/src/naa/AuthBridge.ts +3 -2
  272. package/src/naa/AuthResult.ts +12 -0
  273. package/src/naa/BridgeProxy.ts +64 -71
  274. package/src/naa/BridgeRequest.ts +6 -2
  275. package/src/naa/BridgeRequestEnvelope.ts +1 -13
  276. package/src/naa/BridgeResponseEnvelope.ts +5 -7
  277. package/src/naa/BridgeStatusCode.ts +12 -10
  278. package/src/naa/IBridgeProxy.ts +3 -14
  279. package/src/naa/{InitializeBridgeResponse.ts → InitContext.ts} +1 -1
  280. package/src/naa/TokenRequest.ts +1 -2
  281. package/src/naa/TokenResponse.ts +1 -4
  282. package/src/naa/mapping/NestedAppAuthAdapter.ts +19 -19
  283. package/src/operatingcontext/BaseOperatingContext.ts +64 -7
  284. package/src/packageMetadata.ts +1 -1
  285. package/src/telemetry/BrowserPerformanceClient.ts +95 -42
  286. package/src/utils/BrowserConstants.ts +11 -0
  287. package/dist/naa/AccountRequests.d.ts +0 -10
  288. package/dist/naa/AccountRequests.d.ts.map +0 -1
  289. package/dist/naa/InitializeBridgeResponse.d.ts.map +0 -1
  290. package/src/naa/AccountRequests.ts +0 -16
@@ -1,78 +1,78 @@
1
- import { ICrypto, Logger, ExternalTokenResponse } from "@azure/msal-common";
2
- import { BrowserConfiguration } from "../config/Configuration";
3
- import { SilentRequest } from "../request/SilentRequest";
4
- import { BrowserCacheManager } from "./BrowserCacheManager";
5
- import { ITokenCache } from "./ITokenCache";
6
- import { AuthenticationResult } from "../response/AuthenticationResult";
7
- export type LoadTokenOptions = {
8
- clientInfo?: string;
9
- expiresOn?: number;
10
- extendedExpiresOn?: number;
11
- };
12
- /**
13
- * Token cache manager
14
- */
15
- export declare class TokenCache implements ITokenCache {
16
- isBrowserEnvironment: boolean;
17
- protected config: BrowserConfiguration;
18
- private storage;
19
- private logger;
20
- private cryptoObj;
21
- constructor(configuration: BrowserConfiguration, storage: BrowserCacheManager, logger: Logger, cryptoObj: ICrypto);
22
- /**
23
- * API to load tokens to msal-browser cache.
24
- * @param request
25
- * @param response
26
- * @param options
27
- * @returns `AuthenticationResult` for the response that was loaded.
28
- */
29
- loadExternalTokens(request: SilentRequest, response: ExternalTokenResponse, options: LoadTokenOptions): AuthenticationResult;
30
- /**
31
- * Helper function to load account to msal-browser cache
32
- * @param idToken
33
- * @param environment
34
- * @param clientInfo
35
- * @param authorityType
36
- * @param requestHomeAccountId
37
- * @returns `AccountEntity`
38
- */
39
- private loadAccount;
40
- /**
41
- * Helper function to load id tokens to msal-browser cache
42
- * @param idToken
43
- * @param homeAccountId
44
- * @param environment
45
- * @param tenantId
46
- * @returns `IdTokenEntity`
47
- */
48
- private loadIdToken;
49
- /**
50
- * Helper function to load access tokens to msal-browser cache
51
- * @param request
52
- * @param response
53
- * @param homeAccountId
54
- * @param environment
55
- * @param tenantId
56
- * @returns `AccessTokenEntity`
57
- */
58
- private loadAccessToken;
59
- /**
60
- * Helper function to load refresh tokens to msal-browser cache
61
- * @param request
62
- * @param response
63
- * @param homeAccountId
64
- * @param environment
65
- * @returns `RefreshTokenEntity`
66
- */
67
- private loadRefreshToken;
68
- /**
69
- * Helper function to generate an `AuthenticationResult` for the result.
70
- * @param request
71
- * @param idTokenObj
72
- * @param cacheRecord
73
- * @param authority
74
- * @returns `AuthenticationResult`
75
- */
76
- private generateAuthenticationResult;
77
- }
1
+ import { ICrypto, Logger, ExternalTokenResponse } from "@azure/msal-common";
2
+ import { BrowserConfiguration } from "../config/Configuration";
3
+ import { SilentRequest } from "../request/SilentRequest";
4
+ import { BrowserCacheManager } from "./BrowserCacheManager";
5
+ import { ITokenCache } from "./ITokenCache";
6
+ import { AuthenticationResult } from "../response/AuthenticationResult";
7
+ export type LoadTokenOptions = {
8
+ clientInfo?: string;
9
+ expiresOn?: number;
10
+ extendedExpiresOn?: number;
11
+ };
12
+ /**
13
+ * Token cache manager
14
+ */
15
+ export declare class TokenCache implements ITokenCache {
16
+ isBrowserEnvironment: boolean;
17
+ protected config: BrowserConfiguration;
18
+ private storage;
19
+ private logger;
20
+ private cryptoObj;
21
+ constructor(configuration: BrowserConfiguration, storage: BrowserCacheManager, logger: Logger, cryptoObj: ICrypto);
22
+ /**
23
+ * API to load tokens to msal-browser cache.
24
+ * @param request
25
+ * @param response
26
+ * @param options
27
+ * @returns `AuthenticationResult` for the response that was loaded.
28
+ */
29
+ loadExternalTokens(request: SilentRequest, response: ExternalTokenResponse, options: LoadTokenOptions): AuthenticationResult;
30
+ /**
31
+ * Helper function to load account to msal-browser cache
32
+ * @param idToken
33
+ * @param environment
34
+ * @param clientInfo
35
+ * @param authorityType
36
+ * @param requestHomeAccountId
37
+ * @returns `AccountEntity`
38
+ */
39
+ private loadAccount;
40
+ /**
41
+ * Helper function to load id tokens to msal-browser cache
42
+ * @param idToken
43
+ * @param homeAccountId
44
+ * @param environment
45
+ * @param tenantId
46
+ * @returns `IdTokenEntity`
47
+ */
48
+ private loadIdToken;
49
+ /**
50
+ * Helper function to load access tokens to msal-browser cache
51
+ * @param request
52
+ * @param response
53
+ * @param homeAccountId
54
+ * @param environment
55
+ * @param tenantId
56
+ * @returns `AccessTokenEntity`
57
+ */
58
+ private loadAccessToken;
59
+ /**
60
+ * Helper function to load refresh tokens to msal-browser cache
61
+ * @param request
62
+ * @param response
63
+ * @param homeAccountId
64
+ * @param environment
65
+ * @returns `RefreshTokenEntity`
66
+ */
67
+ private loadRefreshToken;
68
+ /**
69
+ * Helper function to generate an `AuthenticationResult` for the result.
70
+ * @param request
71
+ * @param idTokenObj
72
+ * @param cacheRecord
73
+ * @param authority
74
+ * @returns `AuthenticationResult`
75
+ */
76
+ private generateAuthenticationResult;
77
+ }
78
78
  //# sourceMappingURL=TokenCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenCache.d.ts","sourceRoot":"","sources":["../../src/cache/TokenCache.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,OAAO,EAEP,MAAM,EAIN,qBAAqB,EAQxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAW,YAAW,WAAW;IAEnC,oBAAoB,EAAE,OAAO,CAAC;IAErC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEvC,OAAO,CAAC,OAAO,CAAsB;IAErC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,SAAS,CAAU;gBAGvB,aAAa,EAAE,oBAAoB,EACnC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO;IAWtB;;;;;;OAMG;IACH,kBAAkB,CACd,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,gBAAgB,GAC1B,oBAAoB;IAmJvB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IA+CnB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAyBnB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;CAwDvC"}
1
+ {"version":3,"file":"TokenCache.d.ts","sourceRoot":"","sources":["../../src/cache/TokenCache.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,OAAO,EAEP,MAAM,EAIN,qBAAqB,EASxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAW,YAAW,WAAW;IAEnC,oBAAoB,EAAE,OAAO,CAAC;IAErC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEvC,OAAO,CAAC,OAAO,CAAsB;IAErC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,SAAS,CAAU;gBAGvB,aAAa,EAAE,oBAAoB,EACnC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO;IAWtB;;;;;;OAMG;IACH,kBAAkB,CACd,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,gBAAgB,GAC1B,oBAAoB;IAmJvB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IAmDnB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAyBnB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;CAwDvC"}
@@ -1,233 +1,231 @@
1
- /*! @azure/msal-browser v3.5.1-beta.1 2023-11-14 */
1
+ /*! @azure/msal-browser v3.7.0 2024-01-09 */
2
2
  'use strict';
3
- import { AuthToken, AccountEntity, CacheRecord, Authority, CacheHelpers, ScopeSet, Constants } from '@azure/msal-common';
3
+ import { AuthToken, AccountEntity, CacheRecord, Authority, buildAccountToCache, CacheHelpers, ScopeSet, Constants } from '@azure/msal-common';
4
4
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
5
  import { base64Decode } from '../encode/Base64Decode.mjs';
6
6
  import { unableToLoadToken } from '../error/BrowserAuthErrorCodes.mjs';
7
7
 
8
- /*
9
- * Copyright (c) Microsoft Corporation. All rights reserved.
10
- * Licensed under the MIT License.
11
- */
12
- /**
13
- * Token cache manager
14
- */
15
- class TokenCache {
16
- constructor(configuration, storage, logger, cryptoObj) {
17
- this.isBrowserEnvironment = typeof window !== "undefined";
18
- this.config = configuration;
19
- this.storage = storage;
20
- this.logger = logger;
21
- this.cryptoObj = cryptoObj;
22
- }
23
- // Move getAllAccounts here and cache utility APIs
24
- /**
25
- * API to load tokens to msal-browser cache.
26
- * @param request
27
- * @param response
28
- * @param options
29
- * @returns `AuthenticationResult` for the response that was loaded.
30
- */
31
- loadExternalTokens(request, response, options) {
32
- this.logger.info("TokenCache - loadExternalTokens called");
33
- if (!response.id_token) {
34
- throw createBrowserAuthError(unableToLoadToken);
35
- }
36
- const idTokenClaims = AuthToken.extractTokenClaims(response.id_token, base64Decode);
37
- let cacheRecord;
38
- let authority;
39
- let cacheRecordAccount;
40
- if (request.account) {
41
- cacheRecordAccount = AccountEntity.createFromAccountInfo(request.account);
42
- cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));
43
- }
44
- else if (request.authority) {
45
- const authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);
46
- const authorityOptions = {
47
- protocolMode: this.config.auth.protocolMode,
48
- knownAuthorities: this.config.auth.knownAuthorities,
49
- cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,
50
- authorityMetadata: this.config.auth.authorityMetadata,
51
- skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,
52
- };
53
- authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);
54
- // "clientInfo" from options takes precedence over "clientInfo" in response
55
- if (options.clientInfo) {
56
- this.logger.trace("TokenCache - homeAccountId from options");
57
- cacheRecordAccount = this.loadAccount(idTokenClaims, authority, options.clientInfo);
58
- cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
59
- }
60
- else if (response.client_info) {
61
- this.logger.trace("TokenCache - homeAccountId from response");
62
- cacheRecordAccount = this.loadAccount(idTokenClaims, authority, response.client_info);
63
- cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
64
- }
65
- else {
66
- throw createBrowserAuthError(unableToLoadToken);
67
- }
68
- }
69
- else {
70
- throw createBrowserAuthError(unableToLoadToken);
71
- }
72
- return this.generateAuthenticationResult(request, idTokenClaims, cacheRecord, cacheRecordAccount, authority);
73
- }
74
- /**
75
- * Helper function to load account to msal-browser cache
76
- * @param idToken
77
- * @param environment
78
- * @param clientInfo
79
- * @param authorityType
80
- * @param requestHomeAccountId
81
- * @returns `AccountEntity`
82
- */
83
- loadAccount(idTokenClaims, authority, clientInfo, requestHomeAccountId) {
84
- let homeAccountId;
85
- if (requestHomeAccountId) {
86
- homeAccountId = requestHomeAccountId;
87
- }
88
- else if (authority.authorityType !== undefined && clientInfo) {
89
- homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authority.authorityType, this.logger, this.cryptoObj, idTokenClaims);
90
- }
91
- if (!homeAccountId) {
92
- throw createBrowserAuthError(unableToLoadToken);
93
- }
94
- const accountEntity = AccountEntity.createAccount({
95
- homeAccountId,
96
- idTokenClaims: idTokenClaims,
97
- clientInfo,
98
- environment: authority.hostnameAndPort,
99
- }, authority);
100
- if (this.isBrowserEnvironment) {
101
- this.logger.verbose("TokenCache - loading account");
102
- this.storage.setAccount(accountEntity);
103
- return accountEntity;
104
- }
105
- else {
106
- throw createBrowserAuthError(unableToLoadToken);
107
- }
108
- }
109
- /**
110
- * Helper function to load id tokens to msal-browser cache
111
- * @param idToken
112
- * @param homeAccountId
113
- * @param environment
114
- * @param tenantId
115
- * @returns `IdTokenEntity`
116
- */
117
- loadIdToken(idToken, homeAccountId, environment, tenantId) {
118
- const idTokenEntity = CacheHelpers.createIdTokenEntity(homeAccountId, environment, idToken, this.config.auth.clientId, tenantId);
119
- if (this.isBrowserEnvironment) {
120
- this.logger.verbose("TokenCache - loading id token");
121
- this.storage.setIdTokenCredential(idTokenEntity);
122
- return idTokenEntity;
123
- }
124
- else {
125
- throw createBrowserAuthError(unableToLoadToken);
126
- }
127
- }
128
- /**
129
- * Helper function to load access tokens to msal-browser cache
130
- * @param request
131
- * @param response
132
- * @param homeAccountId
133
- * @param environment
134
- * @param tenantId
135
- * @returns `AccessTokenEntity`
136
- */
137
- loadAccessToken(request, response, homeAccountId, environment, tenantId, options) {
138
- if (!response.access_token) {
139
- this.logger.verbose("TokenCache - No access token provided for caching");
140
- return null;
141
- }
142
- if (!response.expires_in) {
143
- throw createBrowserAuthError(unableToLoadToken);
144
- }
145
- if (!options.extendedExpiresOn) {
146
- throw createBrowserAuthError(unableToLoadToken);
147
- }
148
- const scopes = new ScopeSet(request.scopes).printScopes();
149
- const expiresOn = options.expiresOn ||
150
- response.expires_in + new Date().getTime() / 1000;
151
- const extendedExpiresOn = options.extendedExpiresOn;
152
- const accessTokenEntity = CacheHelpers.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, base64Decode);
153
- if (this.isBrowserEnvironment) {
154
- this.logger.verbose("TokenCache - loading access token");
155
- this.storage.setAccessTokenCredential(accessTokenEntity);
156
- return accessTokenEntity;
157
- }
158
- else {
159
- throw createBrowserAuthError(unableToLoadToken);
160
- }
161
- }
162
- /**
163
- * Helper function to load refresh tokens to msal-browser cache
164
- * @param request
165
- * @param response
166
- * @param homeAccountId
167
- * @param environment
168
- * @returns `RefreshTokenEntity`
169
- */
170
- loadRefreshToken(request, response, homeAccountId, environment) {
171
- if (!response.refresh_token) {
172
- this.logger.verbose("TokenCache - No refresh token provided for caching");
173
- return null;
174
- }
175
- const refreshTokenEntity = CacheHelpers.createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId);
176
- if (this.isBrowserEnvironment) {
177
- this.logger.verbose("TokenCache - loading refresh token");
178
- this.storage.setRefreshTokenCredential(refreshTokenEntity);
179
- return refreshTokenEntity;
180
- }
181
- else {
182
- throw createBrowserAuthError(unableToLoadToken);
183
- }
184
- }
185
- /**
186
- * Helper function to generate an `AuthenticationResult` for the result.
187
- * @param request
188
- * @param idTokenObj
189
- * @param cacheRecord
190
- * @param authority
191
- * @returns `AuthenticationResult`
192
- */
193
- generateAuthenticationResult(request, idTokenClaims, cacheRecord, accountEntity, authority) {
194
- let accessToken = Constants.EMPTY_STRING;
195
- let responseScopes = [];
196
- let expiresOn = null;
197
- let extExpiresOn;
198
- if (cacheRecord?.accessToken) {
199
- accessToken = cacheRecord.accessToken.secret;
200
- responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();
201
- expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);
202
- extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);
203
- }
204
- const uid = idTokenClaims.oid || idTokenClaims.sub || Constants.EMPTY_STRING;
205
- const tid = idTokenClaims.tid || Constants.EMPTY_STRING;
206
- return {
207
- authority: authority
208
- ? authority.canonicalAuthority
209
- : Constants.EMPTY_STRING,
210
- uniqueId: uid,
211
- tenantId: tid,
212
- scopes: responseScopes,
213
- account: accountEntity.getAccountInfo(),
214
- idToken: cacheRecord.idToken?.secret || "",
215
- idTokenClaims: idTokenClaims || {},
216
- accessToken: accessToken,
217
- fromCache: true,
218
- expiresOn: expiresOn,
219
- correlationId: request.correlationId || Constants.EMPTY_STRING,
220
- requestId: Constants.EMPTY_STRING,
221
- extExpiresOn: extExpiresOn,
222
- familyId: Constants.EMPTY_STRING,
223
- tokenType: cacheRecord?.accessToken?.tokenType || Constants.EMPTY_STRING,
224
- state: Constants.EMPTY_STRING,
225
- cloudGraphHostName: accountEntity.cloudGraphHostName || Constants.EMPTY_STRING,
226
- msGraphHost: accountEntity.msGraphHost || Constants.EMPTY_STRING,
227
- code: undefined,
228
- fromNativeBroker: false,
229
- };
230
- }
8
+ /*
9
+ * Copyright (c) Microsoft Corporation. All rights reserved.
10
+ * Licensed under the MIT License.
11
+ */
12
+ /**
13
+ * Token cache manager
14
+ */
15
+ class TokenCache {
16
+ constructor(configuration, storage, logger, cryptoObj) {
17
+ this.isBrowserEnvironment = typeof window !== "undefined";
18
+ this.config = configuration;
19
+ this.storage = storage;
20
+ this.logger = logger;
21
+ this.cryptoObj = cryptoObj;
22
+ }
23
+ // Move getAllAccounts here and cache utility APIs
24
+ /**
25
+ * API to load tokens to msal-browser cache.
26
+ * @param request
27
+ * @param response
28
+ * @param options
29
+ * @returns `AuthenticationResult` for the response that was loaded.
30
+ */
31
+ loadExternalTokens(request, response, options) {
32
+ this.logger.info("TokenCache - loadExternalTokens called");
33
+ if (!response.id_token) {
34
+ throw createBrowserAuthError(unableToLoadToken);
35
+ }
36
+ const idTokenClaims = AuthToken.extractTokenClaims(response.id_token, base64Decode);
37
+ let cacheRecord;
38
+ let authority;
39
+ let cacheRecordAccount;
40
+ if (request.account) {
41
+ cacheRecordAccount = AccountEntity.createFromAccountInfo(request.account);
42
+ cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));
43
+ }
44
+ else if (request.authority) {
45
+ const authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);
46
+ const authorityOptions = {
47
+ protocolMode: this.config.auth.protocolMode,
48
+ knownAuthorities: this.config.auth.knownAuthorities,
49
+ cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,
50
+ authorityMetadata: this.config.auth.authorityMetadata,
51
+ skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,
52
+ };
53
+ authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);
54
+ // "clientInfo" from options takes precedence over "clientInfo" in response
55
+ if (options.clientInfo) {
56
+ this.logger.trace("TokenCache - homeAccountId from options");
57
+ cacheRecordAccount = this.loadAccount(idTokenClaims, authority, options.clientInfo);
58
+ cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
59
+ }
60
+ else if (response.client_info) {
61
+ this.logger.trace("TokenCache - homeAccountId from response");
62
+ cacheRecordAccount = this.loadAccount(idTokenClaims, authority, response.client_info);
63
+ cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
64
+ }
65
+ else {
66
+ throw createBrowserAuthError(unableToLoadToken);
67
+ }
68
+ }
69
+ else {
70
+ throw createBrowserAuthError(unableToLoadToken);
71
+ }
72
+ return this.generateAuthenticationResult(request, idTokenClaims, cacheRecord, cacheRecordAccount, authority);
73
+ }
74
+ /**
75
+ * Helper function to load account to msal-browser cache
76
+ * @param idToken
77
+ * @param environment
78
+ * @param clientInfo
79
+ * @param authorityType
80
+ * @param requestHomeAccountId
81
+ * @returns `AccountEntity`
82
+ */
83
+ loadAccount(idTokenClaims, authority, clientInfo, requestHomeAccountId) {
84
+ if (this.isBrowserEnvironment) {
85
+ this.logger.verbose("TokenCache - loading account");
86
+ let homeAccountId;
87
+ if (requestHomeAccountId) {
88
+ homeAccountId = requestHomeAccountId;
89
+ }
90
+ else if (authority.authorityType !== undefined && clientInfo) {
91
+ homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authority.authorityType, this.logger, this.cryptoObj, idTokenClaims);
92
+ }
93
+ if (!homeAccountId) {
94
+ throw createBrowserAuthError(unableToLoadToken);
95
+ }
96
+ const claimsTenantId = idTokenClaims.tid;
97
+ const cachedAccount = buildAccountToCache(this.storage, authority, homeAccountId, idTokenClaims, base64Decode, clientInfo, authority.hostnameAndPort, claimsTenantId, undefined, // authCodePayload
98
+ undefined, // nativeAccountId
99
+ this.logger);
100
+ this.storage.setAccount(cachedAccount);
101
+ return cachedAccount;
102
+ }
103
+ else {
104
+ throw createBrowserAuthError(unableToLoadToken);
105
+ }
106
+ }
107
+ /**
108
+ * Helper function to load id tokens to msal-browser cache
109
+ * @param idToken
110
+ * @param homeAccountId
111
+ * @param environment
112
+ * @param tenantId
113
+ * @returns `IdTokenEntity`
114
+ */
115
+ loadIdToken(idToken, homeAccountId, environment, tenantId) {
116
+ const idTokenEntity = CacheHelpers.createIdTokenEntity(homeAccountId, environment, idToken, this.config.auth.clientId, tenantId);
117
+ if (this.isBrowserEnvironment) {
118
+ this.logger.verbose("TokenCache - loading id token");
119
+ this.storage.setIdTokenCredential(idTokenEntity);
120
+ return idTokenEntity;
121
+ }
122
+ else {
123
+ throw createBrowserAuthError(unableToLoadToken);
124
+ }
125
+ }
126
+ /**
127
+ * Helper function to load access tokens to msal-browser cache
128
+ * @param request
129
+ * @param response
130
+ * @param homeAccountId
131
+ * @param environment
132
+ * @param tenantId
133
+ * @returns `AccessTokenEntity`
134
+ */
135
+ loadAccessToken(request, response, homeAccountId, environment, tenantId, options) {
136
+ if (!response.access_token) {
137
+ this.logger.verbose("TokenCache - No access token provided for caching");
138
+ return null;
139
+ }
140
+ if (!response.expires_in) {
141
+ throw createBrowserAuthError(unableToLoadToken);
142
+ }
143
+ if (!options.extendedExpiresOn) {
144
+ throw createBrowserAuthError(unableToLoadToken);
145
+ }
146
+ const scopes = new ScopeSet(request.scopes).printScopes();
147
+ const expiresOn = options.expiresOn ||
148
+ response.expires_in + new Date().getTime() / 1000;
149
+ const extendedExpiresOn = options.extendedExpiresOn;
150
+ const accessTokenEntity = CacheHelpers.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, base64Decode);
151
+ if (this.isBrowserEnvironment) {
152
+ this.logger.verbose("TokenCache - loading access token");
153
+ this.storage.setAccessTokenCredential(accessTokenEntity);
154
+ return accessTokenEntity;
155
+ }
156
+ else {
157
+ throw createBrowserAuthError(unableToLoadToken);
158
+ }
159
+ }
160
+ /**
161
+ * Helper function to load refresh tokens to msal-browser cache
162
+ * @param request
163
+ * @param response
164
+ * @param homeAccountId
165
+ * @param environment
166
+ * @returns `RefreshTokenEntity`
167
+ */
168
+ loadRefreshToken(request, response, homeAccountId, environment) {
169
+ if (!response.refresh_token) {
170
+ this.logger.verbose("TokenCache - No refresh token provided for caching");
171
+ return null;
172
+ }
173
+ const refreshTokenEntity = CacheHelpers.createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId);
174
+ if (this.isBrowserEnvironment) {
175
+ this.logger.verbose("TokenCache - loading refresh token");
176
+ this.storage.setRefreshTokenCredential(refreshTokenEntity);
177
+ return refreshTokenEntity;
178
+ }
179
+ else {
180
+ throw createBrowserAuthError(unableToLoadToken);
181
+ }
182
+ }
183
+ /**
184
+ * Helper function to generate an `AuthenticationResult` for the result.
185
+ * @param request
186
+ * @param idTokenObj
187
+ * @param cacheRecord
188
+ * @param authority
189
+ * @returns `AuthenticationResult`
190
+ */
191
+ generateAuthenticationResult(request, idTokenClaims, cacheRecord, accountEntity, authority) {
192
+ let accessToken = Constants.EMPTY_STRING;
193
+ let responseScopes = [];
194
+ let expiresOn = null;
195
+ let extExpiresOn;
196
+ if (cacheRecord?.accessToken) {
197
+ accessToken = cacheRecord.accessToken.secret;
198
+ responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();
199
+ expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);
200
+ extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);
201
+ }
202
+ const uid = idTokenClaims.oid || idTokenClaims.sub || Constants.EMPTY_STRING;
203
+ const tid = idTokenClaims.tid || Constants.EMPTY_STRING;
204
+ return {
205
+ authority: authority
206
+ ? authority.canonicalAuthority
207
+ : Constants.EMPTY_STRING,
208
+ uniqueId: uid,
209
+ tenantId: tid,
210
+ scopes: responseScopes,
211
+ account: accountEntity.getAccountInfo(),
212
+ idToken: cacheRecord.idToken?.secret || "",
213
+ idTokenClaims: idTokenClaims || {},
214
+ accessToken: accessToken,
215
+ fromCache: true,
216
+ expiresOn: expiresOn,
217
+ correlationId: request.correlationId || Constants.EMPTY_STRING,
218
+ requestId: Constants.EMPTY_STRING,
219
+ extExpiresOn: extExpiresOn,
220
+ familyId: Constants.EMPTY_STRING,
221
+ tokenType: cacheRecord?.accessToken?.tokenType || Constants.EMPTY_STRING,
222
+ state: Constants.EMPTY_STRING,
223
+ cloudGraphHostName: accountEntity.cloudGraphHostName || Constants.EMPTY_STRING,
224
+ msGraphHost: accountEntity.msGraphHost || Constants.EMPTY_STRING,
225
+ code: undefined,
226
+ fromNativeBroker: false,
227
+ };
228
+ }
231
229
  }
232
230
 
233
231
  export { TokenCache };