@azure/msal-browser 3.4.0 → 3.5.1-beta.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 (231) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +51 -51
  2. package/dist/app/IPublicClientApplication.mjs +102 -102
  3. package/dist/app/PublicClientApplication.d.ts +268 -268
  4. package/dist/app/PublicClientApplication.mjs +333 -333
  5. package/dist/app/PublicClientNext.d.ts +273 -273
  6. package/dist/app/PublicClientNext.mjs +351 -351
  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 +44 -44
  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/AsyncMemoryStorage.d.ts +51 -51
  14. package/dist/cache/AsyncMemoryStorage.mjs +132 -132
  15. package/dist/cache/BrowserCacheManager.d.ts +383 -383
  16. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  17. package/dist/cache/BrowserCacheManager.mjs +1264 -1264
  18. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  19. package/dist/cache/BrowserStorage.d.ts +11 -11
  20. package/dist/cache/BrowserStorage.mjs +32 -32
  21. package/dist/cache/CryptoKeyStore.d.ts +18 -18
  22. package/dist/cache/CryptoKeyStore.mjs +40 -40
  23. package/dist/cache/DatabaseStorage.d.ts +56 -56
  24. package/dist/cache/DatabaseStorage.mjs +190 -190
  25. package/dist/cache/IAsyncMemoryStorage.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 +224 -224
  32. package/dist/config/Configuration.d.ts +206 -206
  33. package/dist/config/Configuration.mjs +128 -128
  34. package/dist/controllers/ControllerFactory.d.ts +4 -4
  35. package/dist/controllers/ControllerFactory.mjs +29 -29
  36. package/dist/controllers/IController.d.ts +61 -61
  37. package/dist/controllers/NestedAppAuthController.d.ts +95 -95
  38. package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
  39. package/dist/controllers/NestedAppAuthController.mjs +335 -333
  40. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  41. package/dist/controllers/StandardController.d.ts +407 -407
  42. package/dist/controllers/StandardController.d.ts.map +1 -1
  43. package/dist/controllers/StandardController.mjs +1294 -1291
  44. package/dist/controllers/StandardController.mjs.map +1 -1
  45. package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
  46. package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
  47. package/dist/crypto/BrowserCrypto.d.ts +44 -44
  48. package/dist/crypto/BrowserCrypto.mjs +93 -93
  49. package/dist/crypto/CryptoOps.d.ts +63 -63
  50. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  51. package/dist/crypto/CryptoOps.mjs +145 -144
  52. package/dist/crypto/CryptoOps.mjs.map +1 -1
  53. package/dist/crypto/PkceGenerator.d.ts +8 -8
  54. package/dist/crypto/PkceGenerator.mjs +54 -54
  55. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  56. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  57. package/dist/encode/Base64Decode.d.ts +9 -9
  58. package/dist/encode/Base64Decode.mjs +36 -36
  59. package/dist/encode/Base64Encode.d.ts +19 -19
  60. package/dist/encode/Base64Encode.mjs +43 -43
  61. package/dist/error/BrowserAuthError.d.ts +250 -250
  62. package/dist/error/BrowserAuthError.mjs +258 -258
  63. package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
  64. package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
  65. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  66. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  67. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  68. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  69. package/dist/error/NativeAuthError.d.ts +29 -29
  70. package/dist/error/NativeAuthError.mjs +60 -60
  71. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  72. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  73. package/dist/error/NestedAppAuthError.d.ts +14 -14
  74. package/dist/error/NestedAppAuthError.mjs +23 -23
  75. package/dist/event/EventHandler.d.ts +41 -41
  76. package/dist/event/EventHandler.mjs +119 -119
  77. package/dist/event/EventMessage.d.ts +25 -25
  78. package/dist/event/EventMessage.mjs +68 -68
  79. package/dist/event/EventType.d.ts +28 -28
  80. package/dist/event/EventType.mjs +31 -31
  81. package/dist/index.d.ts +39 -39
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.mjs +2 -2
  84. package/dist/interaction_client/BaseInteractionClient.d.ts +54 -55
  85. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  86. package/dist/interaction_client/BaseInteractionClient.mjs +152 -153
  87. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  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 +140 -140
  91. package/dist/interaction_client/NativeInteractionClient.mjs +548 -548
  92. package/dist/interaction_client/PopupClient.d.ts +105 -115
  93. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  94. package/dist/interaction_client/PopupClient.mjs +435 -505
  95. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  96. package/dist/interaction_client/RedirectClient.d.ts +49 -49
  97. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  98. package/dist/interaction_client/RedirectClient.mjs +314 -297
  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 +24 -24
  103. package/dist/interaction_client/SilentCacheClient.mjs +61 -61
  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 +99 -108
  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 +43 -43
  110. package/dist/interaction_client/StandardInteractionClient.d.ts +54 -59
  111. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  112. package/dist/interaction_client/StandardInteractionClient.mjs +222 -244
  113. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  114. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  115. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  116. package/dist/interaction_handler/InteractionHandler.mjs +94 -98
  117. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  118. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  119. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  120. package/dist/interaction_handler/RedirectHandler.mjs +135 -139
  121. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  122. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  123. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  124. package/dist/interaction_handler/SilentHandler.mjs +134 -128
  125. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  126. package/dist/naa/AccountInfo.d.ts +11 -12
  127. package/dist/naa/AccountInfo.d.ts.map +1 -1
  128. package/dist/naa/AccountRequests.d.ts +9 -9
  129. package/dist/naa/AuthBridge.d.ts +5 -5
  130. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  131. package/dist/naa/BridgeError.d.ts +9 -9
  132. package/dist/naa/BridgeError.d.ts.map +1 -1
  133. package/dist/naa/BridgeError.mjs +7 -7
  134. package/dist/naa/BridgeError.mjs.map +1 -1
  135. package/dist/naa/BridgeProxy.d.ts +72 -71
  136. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  137. package/dist/naa/BridgeProxy.mjs +152 -149
  138. package/dist/naa/BridgeProxy.mjs.map +1 -1
  139. package/dist/naa/BridgeRequest.d.ts +6 -6
  140. package/dist/naa/BridgeRequestEnvelope.d.ts +13 -13
  141. package/dist/naa/BridgeResponseEnvelope.d.ts +10 -10
  142. package/dist/naa/BridgeStatusCode.d.ts +10 -10
  143. package/dist/naa/BridgeStatusCode.mjs +15 -15
  144. package/dist/naa/IBridgeProxy.d.ts +12 -10
  145. package/dist/naa/IBridgeProxy.d.ts.map +1 -1
  146. package/dist/naa/InitializeBridgeResponse.d.ts +6 -6
  147. package/dist/naa/InitializeBridgeResponse.d.ts.map +1 -1
  148. package/dist/naa/TokenRequest.d.ts +19 -21
  149. package/dist/naa/TokenRequest.d.ts.map +1 -1
  150. package/dist/naa/TokenResponse.d.ts +15 -16
  151. package/dist/naa/TokenResponse.d.ts.map +1 -1
  152. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -25
  153. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  154. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +142 -170
  155. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  156. package/dist/navigation/INavigationClient.d.ts +16 -16
  157. package/dist/navigation/NavigationClient.d.ts +22 -22
  158. package/dist/navigation/NavigationClient.mjs +40 -40
  159. package/dist/navigation/NavigationOptions.d.ts +12 -12
  160. package/dist/network/FetchClient.d.ts +26 -26
  161. package/dist/network/FetchClient.mjs +99 -99
  162. package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
  163. package/dist/operatingcontext/BaseOperatingContext.mjs +44 -44
  164. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  165. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  166. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
  167. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -1
  168. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -82
  169. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  170. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  171. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  172. package/dist/packageMetadata.d.ts +2 -2
  173. package/dist/packageMetadata.mjs +4 -4
  174. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  175. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  176. package/dist/request/ClearCacheRequest.d.ts +10 -10
  177. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  178. package/dist/request/EndSessionRequest.d.ts +15 -15
  179. package/dist/request/PopupRequest.d.ts +34 -34
  180. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  181. package/dist/request/RedirectRequest.d.ts +35 -35
  182. package/dist/request/SilentRequest.d.ts +32 -32
  183. package/dist/request/SsoSilentRequest.d.ts +29 -29
  184. package/dist/response/AuthenticationResult.d.ts +4 -4
  185. package/dist/response/ResponseHandler.d.ts +8 -0
  186. package/dist/response/ResponseHandler.d.ts.map +1 -0
  187. package/dist/response/ResponseHandler.mjs +46 -0
  188. package/dist/response/ResponseHandler.mjs.map +1 -0
  189. package/dist/telemetry/BrowserPerformanceClient.d.ts +36 -36
  190. package/dist/telemetry/BrowserPerformanceClient.mjs +125 -125
  191. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  192. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  193. package/dist/utils/BrowserConstants.d.ts +176 -176
  194. package/dist/utils/BrowserConstants.mjs +204 -204
  195. package/dist/utils/BrowserProtocolUtils.d.ts +11 -18
  196. package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
  197. package/dist/utils/BrowserProtocolUtils.mjs +23 -36
  198. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  199. package/dist/utils/BrowserUtils.d.ts +56 -56
  200. package/dist/utils/BrowserUtils.mjs +125 -125
  201. package/lib/msal-browser.cjs +17926 -18062
  202. package/lib/msal-browser.cjs.map +1 -1
  203. package/lib/msal-browser.js +17926 -18062
  204. package/lib/msal-browser.js.map +1 -1
  205. package/lib/msal-browser.min.js +66 -65
  206. package/package.json +102 -102
  207. package/src/cache/BrowserCacheManager.ts +7 -10
  208. package/src/controllers/NestedAppAuthController.ts +8 -3
  209. package/src/controllers/StandardController.ts +31 -40
  210. package/src/crypto/CryptoOps.ts +5 -3
  211. package/src/index.ts +1 -0
  212. package/src/interaction_client/BaseInteractionClient.ts +1 -2
  213. package/src/interaction_client/PopupClient.ts +34 -137
  214. package/src/interaction_client/RedirectClient.ts +71 -55
  215. package/src/interaction_client/SilentIframeClient.ts +16 -27
  216. package/src/interaction_client/StandardInteractionClient.ts +2 -48
  217. package/src/interaction_handler/InteractionHandler.ts +5 -8
  218. package/src/interaction_handler/RedirectHandler.ts +4 -8
  219. package/src/interaction_handler/SilentHandler.ts +12 -5
  220. package/src/naa/AccountInfo.ts +3 -4
  221. package/src/naa/BridgeError.ts +4 -4
  222. package/src/naa/BridgeProxy.ts +6 -2
  223. package/src/naa/IBridgeProxy.ts +2 -0
  224. package/src/naa/InitializeBridgeResponse.ts +1 -1
  225. package/src/naa/TokenRequest.ts +0 -2
  226. package/src/naa/TokenResponse.ts +1 -2
  227. package/src/naa/mapping/NestedAppAuthAdapter.ts +72 -80
  228. package/src/operatingcontext/TeamsAppOperatingContext.ts +4 -1
  229. package/src/packageMetadata.ts +1 -1
  230. package/src/response/ResponseHandler.ts +73 -0
  231. package/src/utils/BrowserProtocolUtils.ts +17 -36
@@ -1,42 +1,42 @@
1
- import { ICrypto, Logger } from "@azure/msal-common";
2
- import { InteractionType } from "../utils/BrowserConstants";
3
- import { EventCallbackFunction, EventError, EventPayload } from "./EventMessage";
4
- import { EventType } from "./EventType";
5
- export declare class EventHandler {
6
- private eventCallbacks;
7
- private logger;
8
- private browserCrypto;
9
- private listeningToStorageEvents;
10
- constructor(logger: Logger, browserCrypto: ICrypto);
11
- /**
12
- * Adds event callbacks to array
13
- * @param callback
14
- */
15
- addEventCallback(callback: EventCallbackFunction): string | null;
16
- /**
17
- * Removes callback with provided id from callback array
18
- * @param callbackId
19
- */
20
- removeEventCallback(callbackId: string): void;
21
- /**
22
- * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
23
- */
24
- enableAccountStorageEvents(): void;
25
- /**
26
- * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
27
- */
28
- disableAccountStorageEvents(): void;
29
- /**
30
- * Emits events by calling callback with event message
31
- * @param eventType
32
- * @param interactionType
33
- * @param payload
34
- * @param error
35
- */
36
- emitEvent(eventType: EventType, interactionType?: InteractionType, payload?: EventPayload, error?: EventError): void;
37
- /**
38
- * Emit account added/removed events when cached accounts are changed in a different tab or frame
39
- */
40
- private handleAccountCacheChange;
41
- }
1
+ import { ICrypto, Logger } from "@azure/msal-common";
2
+ import { InteractionType } from "../utils/BrowserConstants";
3
+ import { EventCallbackFunction, EventError, EventPayload } from "./EventMessage";
4
+ import { EventType } from "./EventType";
5
+ export declare class EventHandler {
6
+ private eventCallbacks;
7
+ private logger;
8
+ private browserCrypto;
9
+ private listeningToStorageEvents;
10
+ constructor(logger: Logger, browserCrypto: ICrypto);
11
+ /**
12
+ * Adds event callbacks to array
13
+ * @param callback
14
+ */
15
+ addEventCallback(callback: EventCallbackFunction): string | null;
16
+ /**
17
+ * Removes callback with provided id from callback array
18
+ * @param callbackId
19
+ */
20
+ removeEventCallback(callbackId: string): void;
21
+ /**
22
+ * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
23
+ */
24
+ enableAccountStorageEvents(): void;
25
+ /**
26
+ * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
27
+ */
28
+ disableAccountStorageEvents(): void;
29
+ /**
30
+ * Emits events by calling callback with event message
31
+ * @param eventType
32
+ * @param interactionType
33
+ * @param payload
34
+ * @param error
35
+ */
36
+ emitEvent(eventType: EventType, interactionType?: InteractionType, payload?: EventPayload, error?: EventError): void;
37
+ /**
38
+ * Emit account added/removed events when cached accounts are changed in a different tab or frame
39
+ */
40
+ private handleAccountCacheChange;
41
+ }
42
42
  //# sourceMappingURL=EventHandler.d.ts.map
@@ -1,127 +1,127 @@
1
- /*! @azure/msal-browser v3.4.0 2023-10-30 */
1
+ /*! @azure/msal-browser v3.5.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
3
  import { AccountEntity, CacheManager } from '@azure/msal-common';
4
4
  import { EventType } from './EventType.mjs';
5
5
  import { createNewGuid } from '../crypto/BrowserCrypto.mjs';
6
6
 
7
- /*
8
- * Copyright (c) Microsoft Corporation. All rights reserved.
9
- * Licensed under the MIT License.
10
- */
11
- class EventHandler {
12
- constructor(logger, browserCrypto) {
13
- this.eventCallbacks = new Map();
14
- this.logger = logger;
15
- this.browserCrypto = browserCrypto;
16
- this.listeningToStorageEvents = false;
17
- this.handleAccountCacheChange =
18
- this.handleAccountCacheChange.bind(this);
19
- }
20
- /**
21
- * Adds event callbacks to array
22
- * @param callback
23
- */
24
- addEventCallback(callback) {
25
- if (typeof window !== "undefined") {
26
- const callbackId = createNewGuid();
27
- this.eventCallbacks.set(callbackId, callback);
28
- this.logger.verbose(`Event callback registered with id: ${callbackId}`);
29
- return callbackId;
30
- }
31
- return null;
32
- }
33
- /**
34
- * Removes callback with provided id from callback array
35
- * @param callbackId
36
- */
37
- removeEventCallback(callbackId) {
38
- this.eventCallbacks.delete(callbackId);
39
- this.logger.verbose(`Event callback ${callbackId} removed.`);
40
- }
41
- /**
42
- * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
43
- */
44
- enableAccountStorageEvents() {
45
- if (typeof window === "undefined") {
46
- return;
47
- }
48
- if (!this.listeningToStorageEvents) {
49
- this.logger.verbose("Adding account storage listener.");
50
- this.listeningToStorageEvents = true;
51
- window.addEventListener("storage", this.handleAccountCacheChange);
52
- }
53
- else {
54
- this.logger.verbose("Account storage listener already registered.");
55
- }
56
- }
57
- /**
58
- * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
59
- */
60
- disableAccountStorageEvents() {
61
- if (typeof window === "undefined") {
62
- return;
63
- }
64
- if (this.listeningToStorageEvents) {
65
- this.logger.verbose("Removing account storage listener.");
66
- window.removeEventListener("storage", this.handleAccountCacheChange);
67
- this.listeningToStorageEvents = false;
68
- }
69
- else {
70
- this.logger.verbose("No account storage listener registered.");
71
- }
72
- }
73
- /**
74
- * Emits events by calling callback with event message
75
- * @param eventType
76
- * @param interactionType
77
- * @param payload
78
- * @param error
79
- */
80
- emitEvent(eventType, interactionType, payload, error) {
81
- if (typeof window !== "undefined") {
82
- const message = {
83
- eventType: eventType,
84
- interactionType: interactionType || null,
85
- payload: payload || null,
86
- error: error || null,
87
- timestamp: Date.now(),
88
- };
89
- this.logger.info(`Emitting event: ${eventType}`);
90
- this.eventCallbacks.forEach((callback, callbackId) => {
91
- this.logger.verbose(`Emitting event to callback ${callbackId}: ${eventType}`);
92
- callback.apply(null, [message]);
93
- });
94
- }
95
- }
96
- /**
97
- * Emit account added/removed events when cached accounts are changed in a different tab or frame
98
- */
99
- handleAccountCacheChange(e) {
100
- try {
101
- const cacheValue = e.newValue || e.oldValue;
102
- if (!cacheValue) {
103
- return;
104
- }
105
- const parsedValue = JSON.parse(cacheValue);
106
- if (typeof parsedValue !== "object" ||
107
- !AccountEntity.isAccountEntity(parsedValue)) {
108
- return;
109
- }
110
- const accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);
111
- const accountInfo = accountEntity.getAccountInfo();
112
- if (!e.oldValue && e.newValue) {
113
- this.logger.info("Account was added to cache in a different window");
114
- this.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);
115
- }
116
- else if (!e.newValue && e.oldValue) {
117
- this.logger.info("Account was removed from cache in a different window");
118
- this.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);
119
- }
120
- }
121
- catch (e) {
122
- return;
123
- }
124
- }
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ class EventHandler {
12
+ constructor(logger, browserCrypto) {
13
+ this.eventCallbacks = new Map();
14
+ this.logger = logger;
15
+ this.browserCrypto = browserCrypto;
16
+ this.listeningToStorageEvents = false;
17
+ this.handleAccountCacheChange =
18
+ this.handleAccountCacheChange.bind(this);
19
+ }
20
+ /**
21
+ * Adds event callbacks to array
22
+ * @param callback
23
+ */
24
+ addEventCallback(callback) {
25
+ if (typeof window !== "undefined") {
26
+ const callbackId = createNewGuid();
27
+ this.eventCallbacks.set(callbackId, callback);
28
+ this.logger.verbose(`Event callback registered with id: ${callbackId}`);
29
+ return callbackId;
30
+ }
31
+ return null;
32
+ }
33
+ /**
34
+ * Removes callback with provided id from callback array
35
+ * @param callbackId
36
+ */
37
+ removeEventCallback(callbackId) {
38
+ this.eventCallbacks.delete(callbackId);
39
+ this.logger.verbose(`Event callback ${callbackId} removed.`);
40
+ }
41
+ /**
42
+ * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
43
+ */
44
+ enableAccountStorageEvents() {
45
+ if (typeof window === "undefined") {
46
+ return;
47
+ }
48
+ if (!this.listeningToStorageEvents) {
49
+ this.logger.verbose("Adding account storage listener.");
50
+ this.listeningToStorageEvents = true;
51
+ window.addEventListener("storage", this.handleAccountCacheChange);
52
+ }
53
+ else {
54
+ this.logger.verbose("Account storage listener already registered.");
55
+ }
56
+ }
57
+ /**
58
+ * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window
59
+ */
60
+ disableAccountStorageEvents() {
61
+ if (typeof window === "undefined") {
62
+ return;
63
+ }
64
+ if (this.listeningToStorageEvents) {
65
+ this.logger.verbose("Removing account storage listener.");
66
+ window.removeEventListener("storage", this.handleAccountCacheChange);
67
+ this.listeningToStorageEvents = false;
68
+ }
69
+ else {
70
+ this.logger.verbose("No account storage listener registered.");
71
+ }
72
+ }
73
+ /**
74
+ * Emits events by calling callback with event message
75
+ * @param eventType
76
+ * @param interactionType
77
+ * @param payload
78
+ * @param error
79
+ */
80
+ emitEvent(eventType, interactionType, payload, error) {
81
+ if (typeof window !== "undefined") {
82
+ const message = {
83
+ eventType: eventType,
84
+ interactionType: interactionType || null,
85
+ payload: payload || null,
86
+ error: error || null,
87
+ timestamp: Date.now(),
88
+ };
89
+ this.logger.info(`Emitting event: ${eventType}`);
90
+ this.eventCallbacks.forEach((callback, callbackId) => {
91
+ this.logger.verbose(`Emitting event to callback ${callbackId}: ${eventType}`);
92
+ callback.apply(null, [message]);
93
+ });
94
+ }
95
+ }
96
+ /**
97
+ * Emit account added/removed events when cached accounts are changed in a different tab or frame
98
+ */
99
+ handleAccountCacheChange(e) {
100
+ try {
101
+ const cacheValue = e.newValue || e.oldValue;
102
+ if (!cacheValue) {
103
+ return;
104
+ }
105
+ const parsedValue = JSON.parse(cacheValue);
106
+ if (typeof parsedValue !== "object" ||
107
+ !AccountEntity.isAccountEntity(parsedValue)) {
108
+ return;
109
+ }
110
+ const accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);
111
+ const accountInfo = accountEntity.getAccountInfo();
112
+ if (!e.oldValue && e.newValue) {
113
+ this.logger.info("Account was added to cache in a different window");
114
+ this.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);
115
+ }
116
+ else if (!e.newValue && e.oldValue) {
117
+ this.logger.info("Account was removed from cache in a different window");
118
+ this.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);
119
+ }
120
+ }
121
+ catch (e) {
122
+ return;
123
+ }
124
+ }
125
125
  }
126
126
 
127
127
  export { EventHandler };
@@ -1,26 +1,26 @@
1
- import { AuthError, AccountInfo } from "@azure/msal-common";
2
- import { EventType } from "./EventType";
3
- import { InteractionStatus, InteractionType } from "../utils/BrowserConstants";
4
- import { PopupRequest, RedirectRequest, SilentRequest, SsoSilentRequest, EndSessionRequest, AuthenticationResult } from "..";
5
- export type EventMessage = {
6
- eventType: EventType;
7
- interactionType: InteractionType | null;
8
- payload: EventPayload;
9
- error: EventError;
10
- timestamp: number;
11
- };
12
- export type PopupEvent = {
13
- popupWindow: Window;
14
- };
15
- export type EventPayload = AccountInfo | PopupRequest | RedirectRequest | SilentRequest | SsoSilentRequest | EndSessionRequest | AuthenticationResult | PopupEvent | null;
16
- export type EventError = AuthError | Error | null;
17
- export type EventCallbackFunction = (message: EventMessage) => void;
18
- export declare class EventMessageUtils {
19
- /**
20
- * Gets interaction status from event message
21
- * @param message
22
- * @param currentStatus
23
- */
24
- static getInteractionStatusFromEvent(message: EventMessage, currentStatus?: InteractionStatus): InteractionStatus | null;
25
- }
1
+ import { AuthError, AccountInfo } from "@azure/msal-common";
2
+ import { EventType } from "./EventType";
3
+ import { InteractionStatus, InteractionType } from "../utils/BrowserConstants";
4
+ import { PopupRequest, RedirectRequest, SilentRequest, SsoSilentRequest, EndSessionRequest, AuthenticationResult } from "..";
5
+ export type EventMessage = {
6
+ eventType: EventType;
7
+ interactionType: InteractionType | null;
8
+ payload: EventPayload;
9
+ error: EventError;
10
+ timestamp: number;
11
+ };
12
+ export type PopupEvent = {
13
+ popupWindow: Window;
14
+ };
15
+ export type EventPayload = AccountInfo | PopupRequest | RedirectRequest | SilentRequest | SsoSilentRequest | EndSessionRequest | AuthenticationResult | PopupEvent | null;
16
+ export type EventError = AuthError | Error | null;
17
+ export type EventCallbackFunction = (message: EventMessage) => void;
18
+ export declare class EventMessageUtils {
19
+ /**
20
+ * Gets interaction status from event message
21
+ * @param message
22
+ * @param currentStatus
23
+ */
24
+ static getInteractionStatusFromEvent(message: EventMessage, currentStatus?: InteractionStatus): InteractionStatus | null;
25
+ }
26
26
  //# sourceMappingURL=EventMessage.d.ts.map
@@ -1,75 +1,75 @@
1
- /*! @azure/msal-browser v3.4.0 2023-10-30 */
1
+ /*! @azure/msal-browser v3.5.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
3
  import { EventType } from './EventType.mjs';
4
4
  import { InteractionType, InteractionStatus } from '../utils/BrowserConstants.mjs';
5
5
 
6
- /*
7
- * Copyright (c) Microsoft Corporation. All rights reserved.
8
- * Licensed under the MIT License.
9
- */
10
- class EventMessageUtils {
11
- /**
12
- * Gets interaction status from event message
13
- * @param message
14
- * @param currentStatus
15
- */
16
- static getInteractionStatusFromEvent(message, currentStatus) {
17
- switch (message.eventType) {
18
- case EventType.LOGIN_START:
19
- return InteractionStatus.Login;
20
- case EventType.SSO_SILENT_START:
21
- return InteractionStatus.SsoSilent;
22
- case EventType.ACQUIRE_TOKEN_START:
23
- if (message.interactionType === InteractionType.Redirect ||
24
- message.interactionType === InteractionType.Popup) {
25
- return InteractionStatus.AcquireToken;
26
- }
27
- break;
28
- case EventType.HANDLE_REDIRECT_START:
29
- return InteractionStatus.HandleRedirect;
30
- case EventType.LOGOUT_START:
31
- return InteractionStatus.Logout;
32
- case EventType.SSO_SILENT_SUCCESS:
33
- case EventType.SSO_SILENT_FAILURE:
34
- if (currentStatus &&
35
- currentStatus !== InteractionStatus.SsoSilent) {
36
- // Prevent this event from clearing any status other than ssoSilent
37
- break;
38
- }
39
- return InteractionStatus.None;
40
- case EventType.LOGOUT_END:
41
- if (currentStatus &&
42
- currentStatus !== InteractionStatus.Logout) {
43
- // Prevent this event from clearing any status other than logout
44
- break;
45
- }
46
- return InteractionStatus.None;
47
- case EventType.HANDLE_REDIRECT_END:
48
- if (currentStatus &&
49
- currentStatus !== InteractionStatus.HandleRedirect) {
50
- // Prevent this event from clearing any status other than handleRedirect
51
- break;
52
- }
53
- return InteractionStatus.None;
54
- case EventType.LOGIN_SUCCESS:
55
- case EventType.LOGIN_FAILURE:
56
- case EventType.ACQUIRE_TOKEN_SUCCESS:
57
- case EventType.ACQUIRE_TOKEN_FAILURE:
58
- case EventType.RESTORE_FROM_BFCACHE:
59
- if (message.interactionType === InteractionType.Redirect ||
60
- message.interactionType === InteractionType.Popup) {
61
- if (currentStatus &&
62
- currentStatus !== InteractionStatus.Login &&
63
- currentStatus !== InteractionStatus.AcquireToken) {
64
- // Prevent this event from clearing any status other than login or acquireToken
65
- break;
66
- }
67
- return InteractionStatus.None;
68
- }
69
- break;
70
- }
71
- return null;
72
- }
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ class EventMessageUtils {
11
+ /**
12
+ * Gets interaction status from event message
13
+ * @param message
14
+ * @param currentStatus
15
+ */
16
+ static getInteractionStatusFromEvent(message, currentStatus) {
17
+ switch (message.eventType) {
18
+ case EventType.LOGIN_START:
19
+ return InteractionStatus.Login;
20
+ case EventType.SSO_SILENT_START:
21
+ return InteractionStatus.SsoSilent;
22
+ case EventType.ACQUIRE_TOKEN_START:
23
+ if (message.interactionType === InteractionType.Redirect ||
24
+ message.interactionType === InteractionType.Popup) {
25
+ return InteractionStatus.AcquireToken;
26
+ }
27
+ break;
28
+ case EventType.HANDLE_REDIRECT_START:
29
+ return InteractionStatus.HandleRedirect;
30
+ case EventType.LOGOUT_START:
31
+ return InteractionStatus.Logout;
32
+ case EventType.SSO_SILENT_SUCCESS:
33
+ case EventType.SSO_SILENT_FAILURE:
34
+ if (currentStatus &&
35
+ currentStatus !== InteractionStatus.SsoSilent) {
36
+ // Prevent this event from clearing any status other than ssoSilent
37
+ break;
38
+ }
39
+ return InteractionStatus.None;
40
+ case EventType.LOGOUT_END:
41
+ if (currentStatus &&
42
+ currentStatus !== InteractionStatus.Logout) {
43
+ // Prevent this event from clearing any status other than logout
44
+ break;
45
+ }
46
+ return InteractionStatus.None;
47
+ case EventType.HANDLE_REDIRECT_END:
48
+ if (currentStatus &&
49
+ currentStatus !== InteractionStatus.HandleRedirect) {
50
+ // Prevent this event from clearing any status other than handleRedirect
51
+ break;
52
+ }
53
+ return InteractionStatus.None;
54
+ case EventType.LOGIN_SUCCESS:
55
+ case EventType.LOGIN_FAILURE:
56
+ case EventType.ACQUIRE_TOKEN_SUCCESS:
57
+ case EventType.ACQUIRE_TOKEN_FAILURE:
58
+ case EventType.RESTORE_FROM_BFCACHE:
59
+ if (message.interactionType === InteractionType.Redirect ||
60
+ message.interactionType === InteractionType.Popup) {
61
+ if (currentStatus &&
62
+ currentStatus !== InteractionStatus.Login &&
63
+ currentStatus !== InteractionStatus.AcquireToken) {
64
+ // Prevent this event from clearing any status other than login or acquireToken
65
+ break;
66
+ }
67
+ return InteractionStatus.None;
68
+ }
69
+ break;
70
+ }
71
+ return null;
72
+ }
73
73
  }
74
74
 
75
75
  export { EventMessageUtils };
@@ -1,29 +1,29 @@
1
- export declare const EventType: {
2
- readonly INITIALIZE_START: "msal:initializeStart";
3
- readonly INITIALIZE_END: "msal:initializeEnd";
4
- readonly ACCOUNT_ADDED: "msal:accountAdded";
5
- readonly ACCOUNT_REMOVED: "msal:accountRemoved";
6
- readonly LOGIN_START: "msal:loginStart";
7
- readonly LOGIN_SUCCESS: "msal:loginSuccess";
8
- readonly LOGIN_FAILURE: "msal:loginFailure";
9
- readonly ACQUIRE_TOKEN_START: "msal:acquireTokenStart";
10
- readonly ACQUIRE_TOKEN_SUCCESS: "msal:acquireTokenSuccess";
11
- readonly ACQUIRE_TOKEN_FAILURE: "msal:acquireTokenFailure";
12
- readonly ACQUIRE_TOKEN_NETWORK_START: "msal:acquireTokenFromNetworkStart";
13
- readonly SSO_SILENT_START: "msal:ssoSilentStart";
14
- readonly SSO_SILENT_SUCCESS: "msal:ssoSilentSuccess";
15
- readonly SSO_SILENT_FAILURE: "msal:ssoSilentFailure";
16
- readonly ACQUIRE_TOKEN_BY_CODE_START: "msal:acquireTokenByCodeStart";
17
- readonly ACQUIRE_TOKEN_BY_CODE_SUCCESS: "msal:acquireTokenByCodeSuccess";
18
- readonly ACQUIRE_TOKEN_BY_CODE_FAILURE: "msal:acquireTokenByCodeFailure";
19
- readonly HANDLE_REDIRECT_START: "msal:handleRedirectStart";
20
- readonly HANDLE_REDIRECT_END: "msal:handleRedirectEnd";
21
- readonly POPUP_OPENED: "msal:popupOpened";
22
- readonly LOGOUT_START: "msal:logoutStart";
23
- readonly LOGOUT_SUCCESS: "msal:logoutSuccess";
24
- readonly LOGOUT_FAILURE: "msal:logoutFailure";
25
- readonly LOGOUT_END: "msal:logoutEnd";
26
- readonly RESTORE_FROM_BFCACHE: "msal:restoreFromBFCache";
27
- };
28
- export type EventType = (typeof EventType)[keyof typeof EventType];
1
+ export declare const EventType: {
2
+ readonly INITIALIZE_START: "msal:initializeStart";
3
+ readonly INITIALIZE_END: "msal:initializeEnd";
4
+ readonly ACCOUNT_ADDED: "msal:accountAdded";
5
+ readonly ACCOUNT_REMOVED: "msal:accountRemoved";
6
+ readonly LOGIN_START: "msal:loginStart";
7
+ readonly LOGIN_SUCCESS: "msal:loginSuccess";
8
+ readonly LOGIN_FAILURE: "msal:loginFailure";
9
+ readonly ACQUIRE_TOKEN_START: "msal:acquireTokenStart";
10
+ readonly ACQUIRE_TOKEN_SUCCESS: "msal:acquireTokenSuccess";
11
+ readonly ACQUIRE_TOKEN_FAILURE: "msal:acquireTokenFailure";
12
+ readonly ACQUIRE_TOKEN_NETWORK_START: "msal:acquireTokenFromNetworkStart";
13
+ readonly SSO_SILENT_START: "msal:ssoSilentStart";
14
+ readonly SSO_SILENT_SUCCESS: "msal:ssoSilentSuccess";
15
+ readonly SSO_SILENT_FAILURE: "msal:ssoSilentFailure";
16
+ readonly ACQUIRE_TOKEN_BY_CODE_START: "msal:acquireTokenByCodeStart";
17
+ readonly ACQUIRE_TOKEN_BY_CODE_SUCCESS: "msal:acquireTokenByCodeSuccess";
18
+ readonly ACQUIRE_TOKEN_BY_CODE_FAILURE: "msal:acquireTokenByCodeFailure";
19
+ readonly HANDLE_REDIRECT_START: "msal:handleRedirectStart";
20
+ readonly HANDLE_REDIRECT_END: "msal:handleRedirectEnd";
21
+ readonly POPUP_OPENED: "msal:popupOpened";
22
+ readonly LOGOUT_START: "msal:logoutStart";
23
+ readonly LOGOUT_SUCCESS: "msal:logoutSuccess";
24
+ readonly LOGOUT_FAILURE: "msal:logoutFailure";
25
+ readonly LOGOUT_END: "msal:logoutEnd";
26
+ readonly RESTORE_FROM_BFCACHE: "msal:restoreFromBFCache";
27
+ };
28
+ export type EventType = (typeof EventType)[keyof typeof EventType];
29
29
  //# sourceMappingURL=EventType.d.ts.map
@@ -1,35 +1,35 @@
1
- /*! @azure/msal-browser v3.4.0 2023-10-30 */
1
+ /*! @azure/msal-browser v3.5.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
- /*
4
- * Copyright (c) Microsoft Corporation. All rights reserved.
5
- * Licensed under the MIT License.
6
- */
7
- const EventType = {
8
- INITIALIZE_START: "msal:initializeStart",
9
- INITIALIZE_END: "msal:initializeEnd",
10
- ACCOUNT_ADDED: "msal:accountAdded",
11
- ACCOUNT_REMOVED: "msal:accountRemoved",
12
- LOGIN_START: "msal:loginStart",
13
- LOGIN_SUCCESS: "msal:loginSuccess",
14
- LOGIN_FAILURE: "msal:loginFailure",
15
- ACQUIRE_TOKEN_START: "msal:acquireTokenStart",
16
- ACQUIRE_TOKEN_SUCCESS: "msal:acquireTokenSuccess",
17
- ACQUIRE_TOKEN_FAILURE: "msal:acquireTokenFailure",
18
- ACQUIRE_TOKEN_NETWORK_START: "msal:acquireTokenFromNetworkStart",
19
- SSO_SILENT_START: "msal:ssoSilentStart",
20
- SSO_SILENT_SUCCESS: "msal:ssoSilentSuccess",
21
- SSO_SILENT_FAILURE: "msal:ssoSilentFailure",
22
- ACQUIRE_TOKEN_BY_CODE_START: "msal:acquireTokenByCodeStart",
23
- ACQUIRE_TOKEN_BY_CODE_SUCCESS: "msal:acquireTokenByCodeSuccess",
24
- ACQUIRE_TOKEN_BY_CODE_FAILURE: "msal:acquireTokenByCodeFailure",
25
- HANDLE_REDIRECT_START: "msal:handleRedirectStart",
26
- HANDLE_REDIRECT_END: "msal:handleRedirectEnd",
27
- POPUP_OPENED: "msal:popupOpened",
28
- LOGOUT_START: "msal:logoutStart",
29
- LOGOUT_SUCCESS: "msal:logoutSuccess",
30
- LOGOUT_FAILURE: "msal:logoutFailure",
31
- LOGOUT_END: "msal:logoutEnd",
32
- RESTORE_FROM_BFCACHE: "msal:restoreFromBFCache",
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ const EventType = {
8
+ INITIALIZE_START: "msal:initializeStart",
9
+ INITIALIZE_END: "msal:initializeEnd",
10
+ ACCOUNT_ADDED: "msal:accountAdded",
11
+ ACCOUNT_REMOVED: "msal:accountRemoved",
12
+ LOGIN_START: "msal:loginStart",
13
+ LOGIN_SUCCESS: "msal:loginSuccess",
14
+ LOGIN_FAILURE: "msal:loginFailure",
15
+ ACQUIRE_TOKEN_START: "msal:acquireTokenStart",
16
+ ACQUIRE_TOKEN_SUCCESS: "msal:acquireTokenSuccess",
17
+ ACQUIRE_TOKEN_FAILURE: "msal:acquireTokenFailure",
18
+ ACQUIRE_TOKEN_NETWORK_START: "msal:acquireTokenFromNetworkStart",
19
+ SSO_SILENT_START: "msal:ssoSilentStart",
20
+ SSO_SILENT_SUCCESS: "msal:ssoSilentSuccess",
21
+ SSO_SILENT_FAILURE: "msal:ssoSilentFailure",
22
+ ACQUIRE_TOKEN_BY_CODE_START: "msal:acquireTokenByCodeStart",
23
+ ACQUIRE_TOKEN_BY_CODE_SUCCESS: "msal:acquireTokenByCodeSuccess",
24
+ ACQUIRE_TOKEN_BY_CODE_FAILURE: "msal:acquireTokenByCodeFailure",
25
+ HANDLE_REDIRECT_START: "msal:handleRedirectStart",
26
+ HANDLE_REDIRECT_END: "msal:handleRedirectEnd",
27
+ POPUP_OPENED: "msal:popupOpened",
28
+ LOGOUT_START: "msal:logoutStart",
29
+ LOGOUT_SUCCESS: "msal:logoutSuccess",
30
+ LOGOUT_FAILURE: "msal:logoutFailure",
31
+ LOGOUT_END: "msal:logoutEnd",
32
+ RESTORE_FROM_BFCACHE: "msal:restoreFromBFCache",
33
33
  };
34
34
 
35
35
  export { EventType };