@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,136 +1,142 @@
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
- import { PerformanceEvents, invokeAsync, invoke } from '@azure/msal-common';
3
+ import { PerformanceEvents, invokeAsync, invoke, ServerResponseType } from '@azure/msal-common';
4
4
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
5
  import { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.mjs';
6
6
  import { emptyNavigateUri, monitorWindowTimeout } from '../error/BrowserAuthErrorCodes.mjs';
7
7
 
8
- /*
9
- * Copyright (c) Microsoft Corporation. All rights reserved.
10
- * Licensed under the MIT License.
11
- */
12
- /**
13
- * Creates a hidden iframe to given URL using user-requested scopes as an id.
14
- * @param urlNavigate
15
- * @param userRequestScopes
16
- */
17
- async function initiateAuthRequest(requestUrl, performanceClient, logger, correlationId, navigateFrameWait) {
18
- performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, correlationId);
19
- if (!requestUrl) {
20
- // Throw error if request URL is empty.
21
- logger.info("Navigate url is empty");
22
- throw createBrowserAuthError(emptyNavigateUri);
23
- }
24
- if (navigateFrameWait) {
25
- return await invokeAsync(loadFrame, PerformanceEvents.SilentHandlerLoadFrame, logger, performanceClient, correlationId)(requestUrl, navigateFrameWait, performanceClient, correlationId);
26
- }
27
- return invoke(loadFrameSync, PerformanceEvents.SilentHandlerLoadFrameSync, logger, performanceClient, correlationId)(requestUrl);
28
- }
29
- /**
30
- * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.
31
- * @param iframe
32
- * @param timeout
33
- */
34
- async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId) {
35
- performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, correlationId);
36
- return new Promise((resolve, reject) => {
37
- if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
38
- logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);
39
- }
40
- /*
41
- * Polling for iframes can be purely timing based,
42
- * since we don't need to account for interaction.
43
- */
44
- const timeoutId = window.setTimeout(() => {
45
- window.clearInterval(intervalId);
46
- reject(createBrowserAuthError(monitorWindowTimeout));
47
- }, timeout);
48
- const intervalId = window.setInterval(() => {
49
- let href = "";
50
- const contentWindow = iframe.contentWindow;
51
- try {
52
- /*
53
- * Will throw if cross origin,
54
- * which should be caught and ignored
55
- * since we need the interval to keep running while on STS UI.
56
- */
57
- href = contentWindow ? contentWindow.location.href : "";
58
- }
59
- catch (e) { }
60
- if (!href || href === "about:blank") {
61
- return;
62
- }
63
- const contentHash = contentWindow
64
- ? contentWindow.location.hash
65
- : "";
66
- window.clearTimeout(timeoutId);
67
- window.clearInterval(intervalId);
68
- resolve(contentHash);
69
- }, pollIntervalMilliseconds);
70
- }).finally(() => {
71
- invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
72
- });
73
- }
74
- /**
75
- * @hidden
76
- * Loads iframe with authorization endpoint URL
77
- * @ignore
78
- * @deprecated
79
- */
80
- function loadFrame(urlNavigate, navigateFrameWait, performanceClient, correlationId) {
81
- performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, correlationId);
82
- /*
83
- * This trick overcomes iframe navigation in IE
84
- * IE does not load the page consistently in iframe
85
- */
86
- return new Promise((resolve, reject) => {
87
- const frameHandle = createHiddenIframe();
88
- window.setTimeout(() => {
89
- if (!frameHandle) {
90
- reject("Unable to load iframe");
91
- return;
92
- }
93
- frameHandle.src = urlNavigate;
94
- resolve(frameHandle);
95
- }, navigateFrameWait);
96
- });
97
- }
98
- /**
99
- * @hidden
100
- * Loads the iframe synchronously when the navigateTimeFrame is set to `0`
101
- * @param urlNavigate
102
- * @param frameName
103
- * @param logger
104
- */
105
- function loadFrameSync(urlNavigate) {
106
- const frameHandle = createHiddenIframe();
107
- frameHandle.src = urlNavigate;
108
- return frameHandle;
109
- }
110
- /**
111
- * @hidden
112
- * Creates a new hidden iframe or gets an existing one for silent token renewal.
113
- * @ignore
114
- */
115
- function createHiddenIframe() {
116
- const authFrame = document.createElement("iframe");
117
- authFrame.style.visibility = "hidden";
118
- authFrame.style.position = "absolute";
119
- authFrame.style.width = authFrame.style.height = "0";
120
- authFrame.style.border = "0";
121
- authFrame.setAttribute("sandbox", "allow-scripts allow-same-origin allow-forms");
122
- document.getElementsByTagName("body")[0].appendChild(authFrame);
123
- return authFrame;
124
- }
125
- /**
126
- * @hidden
127
- * Removes a hidden iframe from the page.
128
- * @ignore
129
- */
130
- function removeHiddenIframe(iframe) {
131
- if (document.body === iframe.parentNode) {
132
- document.body.removeChild(iframe);
133
- }
8
+ /*
9
+ * Copyright (c) Microsoft Corporation. All rights reserved.
10
+ * Licensed under the MIT License.
11
+ */
12
+ /**
13
+ * Creates a hidden iframe to given URL using user-requested scopes as an id.
14
+ * @param urlNavigate
15
+ * @param userRequestScopes
16
+ */
17
+ async function initiateAuthRequest(requestUrl, performanceClient, logger, correlationId, navigateFrameWait) {
18
+ performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, correlationId);
19
+ if (!requestUrl) {
20
+ // Throw error if request URL is empty.
21
+ logger.info("Navigate url is empty");
22
+ throw createBrowserAuthError(emptyNavigateUri);
23
+ }
24
+ if (navigateFrameWait) {
25
+ return await invokeAsync(loadFrame, PerformanceEvents.SilentHandlerLoadFrame, logger, performanceClient, correlationId)(requestUrl, navigateFrameWait, performanceClient, correlationId);
26
+ }
27
+ return invoke(loadFrameSync, PerformanceEvents.SilentHandlerLoadFrameSync, logger, performanceClient, correlationId)(requestUrl);
28
+ }
29
+ /**
30
+ * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.
31
+ * @param iframe
32
+ * @param timeout
33
+ */
34
+ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {
35
+ performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, correlationId);
36
+ return new Promise((resolve, reject) => {
37
+ if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
38
+ logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);
39
+ }
40
+ /*
41
+ * Polling for iframes can be purely timing based,
42
+ * since we don't need to account for interaction.
43
+ */
44
+ const timeoutId = window.setTimeout(() => {
45
+ window.clearInterval(intervalId);
46
+ reject(createBrowserAuthError(monitorWindowTimeout));
47
+ }, timeout);
48
+ const intervalId = window.setInterval(() => {
49
+ let href = "";
50
+ const contentWindow = iframe.contentWindow;
51
+ try {
52
+ /*
53
+ * Will throw if cross origin,
54
+ * which should be caught and ignored
55
+ * since we need the interval to keep running while on STS UI.
56
+ */
57
+ href = contentWindow ? contentWindow.location.href : "";
58
+ }
59
+ catch (e) { }
60
+ if (!href || href === "about:blank") {
61
+ return;
62
+ }
63
+ let responseString = "";
64
+ if (contentWindow) {
65
+ if (responseType === ServerResponseType.QUERY) {
66
+ responseString = contentWindow.location.search;
67
+ }
68
+ else {
69
+ responseString = contentWindow.location.hash;
70
+ }
71
+ }
72
+ window.clearTimeout(timeoutId);
73
+ window.clearInterval(intervalId);
74
+ resolve(responseString);
75
+ }, pollIntervalMilliseconds);
76
+ }).finally(() => {
77
+ invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
78
+ });
79
+ }
80
+ /**
81
+ * @hidden
82
+ * Loads iframe with authorization endpoint URL
83
+ * @ignore
84
+ * @deprecated
85
+ */
86
+ function loadFrame(urlNavigate, navigateFrameWait, performanceClient, correlationId) {
87
+ performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, correlationId);
88
+ /*
89
+ * This trick overcomes iframe navigation in IE
90
+ * IE does not load the page consistently in iframe
91
+ */
92
+ return new Promise((resolve, reject) => {
93
+ const frameHandle = createHiddenIframe();
94
+ window.setTimeout(() => {
95
+ if (!frameHandle) {
96
+ reject("Unable to load iframe");
97
+ return;
98
+ }
99
+ frameHandle.src = urlNavigate;
100
+ resolve(frameHandle);
101
+ }, navigateFrameWait);
102
+ });
103
+ }
104
+ /**
105
+ * @hidden
106
+ * Loads the iframe synchronously when the navigateTimeFrame is set to `0`
107
+ * @param urlNavigate
108
+ * @param frameName
109
+ * @param logger
110
+ */
111
+ function loadFrameSync(urlNavigate) {
112
+ const frameHandle = createHiddenIframe();
113
+ frameHandle.src = urlNavigate;
114
+ return frameHandle;
115
+ }
116
+ /**
117
+ * @hidden
118
+ * Creates a new hidden iframe or gets an existing one for silent token renewal.
119
+ * @ignore
120
+ */
121
+ function createHiddenIframe() {
122
+ const authFrame = document.createElement("iframe");
123
+ authFrame.style.visibility = "hidden";
124
+ authFrame.style.position = "absolute";
125
+ authFrame.style.width = authFrame.style.height = "0";
126
+ authFrame.style.border = "0";
127
+ authFrame.setAttribute("sandbox", "allow-scripts allow-same-origin allow-forms");
128
+ document.getElementsByTagName("body")[0].appendChild(authFrame);
129
+ return authFrame;
130
+ }
131
+ /**
132
+ * @hidden
133
+ * Removes a hidden iframe from the page.
134
+ * @ignore
135
+ */
136
+ function removeHiddenIframe(iframe) {
137
+ if (document.body === iframe.parentNode) {
138
+ document.body.removeChild(iframe);
139
+ }
134
140
  }
135
141
 
136
142
  export { initiateAuthRequest, monitorIframeForHash };
@@ -1 +1 @@
1
- {"version":3,"file":"SilentHandler.mjs","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAKA;AAaA;;;AAwCA;;;;AAIG;AACH,eAAA,mBAA0C,CAAA,UAChC,EAAmB,iBAAA,EAClB,MAAA,EAAE,aACe,EAAA,iBAAA,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SilentHandler.mjs","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAKA;AAcA;;;AAwCA;;;;AAIG;AACH,eAAA,mBAA0C,CAAA,UAChC,mBACN,EAAA,MAAO,EAAE,aACe,EAAA,iBAAA,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,12 @@
1
- export type AccountInfo = {
2
- homeAccountId: string;
3
- environment: string;
4
- tenantId: string;
5
- username: string;
6
- localAccountId: string;
7
- name?: string;
8
- idToken?: string;
9
- platformBrokerId?: string;
10
- idTokenClaims?: object;
11
- client_info?: string;
12
- };
1
+ export type AccountInfo = {
2
+ homeAccountId?: string;
3
+ environment: string;
4
+ tenantId?: string;
5
+ username: string;
6
+ localAccountId?: string;
7
+ name?: string;
8
+ idToken?: string;
9
+ platformBrokerId?: string;
10
+ idTokenClaims?: object;
11
+ };
13
12
  //# sourceMappingURL=AccountInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccountInfo.d.ts","sourceRoot":"","sources":["../../src/naa/AccountInfo.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"AccountInfo.d.ts","sourceRoot":"","sources":["../../src/naa/AccountInfo.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
@@ -1,10 +1,10 @@
1
- export type AccountByHomeIdRequest = {
2
- homeAccountId: string;
3
- };
4
- export type AccountByLocalIdRequest = {
5
- localAccountId: string;
6
- };
7
- export type AccountByUsernameRequest = {
8
- username: string;
9
- };
1
+ export type AccountByHomeIdRequest = {
2
+ homeAccountId: string;
3
+ };
4
+ export type AccountByLocalIdRequest = {
5
+ localAccountId: string;
6
+ };
7
+ export type AccountByUsernameRequest = {
8
+ username: string;
9
+ };
10
10
  //# sourceMappingURL=AccountRequests.d.ts.map
@@ -1,6 +1,6 @@
1
- export interface AuthBridge {
2
- addEventListener: (eventName: string, callback: (response: string) => void) => void;
3
- postMessage: (message: string) => void;
4
- removeEventListener: (eventName: string, callback: (response: string) => void) => void;
5
- }
1
+ export interface AuthBridge {
2
+ addEventListener: (eventName: string, callback: (response: string) => void) => void;
3
+ postMessage: (message: string) => void;
4
+ removeEventListener: (eventName: string, callback: (response: string) => void) => void;
5
+ }
6
6
  //# sourceMappingURL=AuthBridge.d.ts.map
@@ -1,4 +1,4 @@
1
- export interface BridgeCapabilities {
2
- queryAccount: boolean;
3
- }
1
+ export interface BridgeCapabilities {
2
+ queryAccount: boolean;
3
+ }
4
4
  //# sourceMappingURL=BridgeCapabilities.d.ts.map
@@ -1,10 +1,10 @@
1
- import { BridgeStatusCode } from "./BridgeStatusCode";
2
- export type BridgeError = {
3
- status: BridgeStatusCode;
4
- code: string;
5
- subError: string;
6
- description: string;
7
- properties: object;
8
- };
9
- export declare function isBridgeError(error: unknown): error is BridgeError;
1
+ import { BridgeStatusCode } from "./BridgeStatusCode";
2
+ export type BridgeError = {
3
+ status: BridgeStatusCode;
4
+ code?: string;
5
+ subError?: string;
6
+ description?: string;
7
+ properties?: object;
8
+ };
9
+ export declare function isBridgeError(error: unknown): error is BridgeError;
10
10
  //# sourceMappingURL=BridgeError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeError.d.ts","sourceRoot":"","sources":["../../src/naa/BridgeError.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE"}
1
+ {"version":3,"file":"BridgeError.d.ts","sourceRoot":"","sources":["../../src/naa/BridgeError.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE"}
@@ -1,11 +1,11 @@
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
- function isBridgeError(error) {
8
- return error.status !== undefined;
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ function isBridgeError(error) {
8
+ return error.status !== undefined;
9
9
  }
10
10
 
11
11
  export { isBridgeError };
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeError.mjs","sources":["../../src/naa/BridgeError.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;AAEA;;;AAGY,sBAAS,CAAA,KAAA,EAAA;IACjB,OAAW,KAAA,CAAE,MAAM,KAAC,SAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"BridgeError.mjs","sources":["../../src/naa/BridgeError.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;AAEA;;;AAGY,SAAG,aAAO,CAAA,KAAA,EAAA;IAClB,OAAW,KAAC,CAAE,MAAA,KAAO,SAAA,CAAA;;;;;"}
@@ -1,72 +1,73 @@
1
- import { AccountInfo } from "./AccountInfo";
2
- import { AccountByHomeIdRequest, AccountByLocalIdRequest, AccountByUsernameRequest } from "./AccountRequests";
3
- import { AuthBridge } from "./AuthBridge";
4
- import { BridgeCapabilities } from "./BridgeCapabilities";
5
- import { IBridgeProxy } from "./IBridgeProxy";
6
- import { InitializeBridgeResponse } from "./InitializeBridgeResponse";
7
- import { TokenRequest } from "./TokenRequest";
8
- import { TokenResponse } from "./TokenResponse";
9
- declare global {
10
- interface Window {
11
- nestedAppAuthBridge: AuthBridge;
12
- }
13
- }
14
- /**
15
- * BridgeProxy
16
- * Provides a proxy for accessing a bridge to a host app and/or
17
- * platform broker
18
- */
19
- export declare class BridgeProxy implements IBridgeProxy {
20
- static bridgeRequests: any[];
21
- static crypto: Crypto;
22
- sdkName: string;
23
- sdkVersion: string;
24
- capabilities: BridgeCapabilities;
25
- /**
26
- * initializeNestedAppAuthBridge - Initializes the bridge to the host app
27
- * @returns a promise that resolves to an InitializeBridgeResponse or rejects with an Error
28
- * @remarks This method will be called by the create factory method
29
- * @remarks If the bridge is not available, this method will throw an error
30
- */
31
- protected static initializeNestedAppAuthBridge(): Promise<InitializeBridgeResponse>;
32
- static getRandomId(): string;
33
- /**
34
- * getTokenInteractive - Attempts to get a token interactively from the bridge
35
- * @param request A token request
36
- * @returns a promise that resolves to a token response or rejects with a BridgeError
37
- */
38
- getTokenInteractive(request: TokenRequest): Promise<TokenResponse>;
39
- /**
40
- * getTokenSilent Attempts to get a token silently from the bridge
41
- * @param request A token request
42
- * @returns a promise that resolves to a token response or rejects with a BridgeError
43
- */
44
- getTokenSilent(request: TokenRequest): Promise<TokenResponse>;
45
- /**
46
- * getAccountInfo - Gets account information from the bridge
47
- *
48
- * @param request A request for account information
49
- */
50
- getAccountInfo(request: AccountByHomeIdRequest | AccountByLocalIdRequest | AccountByUsernameRequest): Promise<AccountInfo>;
51
- getActiveAccount(): Promise<AccountInfo>;
52
- /**
53
- * A method used to send a request to the bridge
54
- * @param request A token request
55
- * @returns a promise that resolves to a response of provided type or rejects with a BridgeError
56
- */
57
- private sendRequest;
58
- /**
59
- * Private constructor for BridgeProxy
60
- * @param sdkName The name of the SDK being used to make requests on behalf of the app
61
- * @param sdkVersion The version of the SDK being used to make requests on behalf of the app
62
- * @param capabilities The capabilities of the bridge / SDK / platform broker
63
- */
64
- private constructor();
65
- /**
66
- * Factory method for creating an implementation of IBridgeProxy
67
- * @returns A promise that resolves to a BridgeProxy implementation
68
- */
69
- static create(): Promise<IBridgeProxy>;
70
- }
71
- export default BridgeProxy;
1
+ import { AccountInfo } from "./AccountInfo";
2
+ import { AccountByHomeIdRequest, AccountByLocalIdRequest, AccountByUsernameRequest } from "./AccountRequests";
3
+ import { AuthBridge } from "./AuthBridge";
4
+ import { BridgeCapabilities } from "./BridgeCapabilities";
5
+ import { IBridgeProxy } from "./IBridgeProxy";
6
+ import { InitializeBridgeResponse } from "./InitializeBridgeResponse";
7
+ import { TokenRequest } from "./TokenRequest";
8
+ import { TokenResponse } from "./TokenResponse";
9
+ declare global {
10
+ interface Window {
11
+ nestedAppAuthBridge: AuthBridge;
12
+ }
13
+ }
14
+ /**
15
+ * BridgeProxy
16
+ * Provides a proxy for accessing a bridge to a host app and/or
17
+ * platform broker
18
+ */
19
+ export declare class BridgeProxy implements IBridgeProxy {
20
+ static bridgeRequests: any[];
21
+ static crypto: Crypto;
22
+ sdkName: string;
23
+ sdkVersion: string;
24
+ capabilities?: BridgeCapabilities;
25
+ /**
26
+ * initializeNestedAppAuthBridge - Initializes the bridge to the host app
27
+ * @returns a promise that resolves to an InitializeBridgeResponse or rejects with an Error
28
+ * @remarks This method will be called by the create factory method
29
+ * @remarks If the bridge is not available, this method will throw an error
30
+ */
31
+ protected static initializeNestedAppAuthBridge(): Promise<InitializeBridgeResponse>;
32
+ static getRandomId(): string;
33
+ /**
34
+ * getTokenInteractive - Attempts to get a token interactively from the bridge
35
+ * @param request A token request
36
+ * @returns a promise that resolves to a token response or rejects with a BridgeError
37
+ */
38
+ getTokenInteractive(request: TokenRequest): Promise<TokenResponse>;
39
+ /**
40
+ * getTokenSilent Attempts to get a token silently from the bridge
41
+ * @param request A token request
42
+ * @returns a promise that resolves to a token response or rejects with a BridgeError
43
+ */
44
+ getTokenSilent(request: TokenRequest): Promise<TokenResponse>;
45
+ /**
46
+ * getAccountInfo - Gets account information from the bridge
47
+ *
48
+ * @param request A request for account information
49
+ */
50
+ getAccountInfo(request: AccountByHomeIdRequest | AccountByLocalIdRequest | AccountByUsernameRequest): Promise<AccountInfo>;
51
+ getActiveAccount(): Promise<AccountInfo>;
52
+ getHostCapabilities(): BridgeCapabilities | null;
53
+ /**
54
+ * A method used to send a request to the bridge
55
+ * @param request A token request
56
+ * @returns a promise that resolves to a response of provided type or rejects with a BridgeError
57
+ */
58
+ private sendRequest;
59
+ /**
60
+ * Private constructor for BridgeProxy
61
+ * @param sdkName The name of the SDK being used to make requests on behalf of the app
62
+ * @param sdkVersion The version of the SDK being used to make requests on behalf of the app
63
+ * @param capabilities The capabilities of the bridge / SDK / platform broker
64
+ */
65
+ private constructor();
66
+ /**
67
+ * Factory method for creating an implementation of IBridgeProxy
68
+ * @returns A promise that resolves to a BridgeProxy implementation
69
+ */
70
+ static create(): Promise<IBridgeProxy>;
71
+ }
72
+ export default BridgeProxy;
72
73
  //# sourceMappingURL=BridgeProxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeProxy.d.ts","sourceRoot":"","sources":["../../src/naa/BridgeProxy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACH,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,mBAAmB,EAAE,UAAU,CAAC;KACnC;CACJ;AAED;;;;GAIG;AACH,qBAAa,WAAY,YAAW,YAAY;IAE5C,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,CAAM;IAClC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,kBAAkB,CAAC;IAEjC;;;;;OAKG;qBACoB,6BAA6B,IAAI,OAAO,CAAC,wBAAwB,CAAC;WAgE3E,WAAW,IAAI,MAAM;IAInC;;;;OAIG;IACI,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzE;;;;OAIG;IACI,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpE;;;;OAIG;IACI,cAAc,CACjB,OAAO,EACD,sBAAsB,GACtB,uBAAuB,GACvB,wBAAwB,GAC/B,OAAO,CAAC,WAAW,CAAC;IAkBhB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI/C;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;;;OAKG;IACH,OAAO;IAUP;;;OAGG;WACiB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;CAQtD;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"BridgeProxy.d.ts","sourceRoot":"","sources":["../../src/naa/BridgeProxy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACH,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,mBAAmB,EAAE,UAAU,CAAC;KACnC;CACJ;AAED;;;;GAIG;AACH,qBAAa,WAAY,YAAW,YAAY;IAE5C,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,CAAM;IAClC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;;;;OAKG;qBACoB,6BAA6B,IAAI,OAAO,CAAC,wBAAwB,CAAC;WAgE3E,WAAW,IAAI,MAAM;IAInC;;;;OAIG;IACI,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzE;;;;OAIG;IACI,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpE;;;;OAIG;IACI,cAAc,CACjB,OAAO,EACD,sBAAsB,GACtB,uBAAuB,GACvB,wBAAwB,GAC/B,OAAO,CAAC,WAAW,CAAC;IAkBhB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC;IAIxC,mBAAmB,IAAI,kBAAkB,GAAG,IAAI;IAIvD;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;;;OAKG;IACH,OAAO;IAUP;;;OAGG;WACiB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;CAQtD;AAED,eAAe,WAAW,CAAC"}