@azure/msal-browser 2.37.0 → 3.0.0-alpha.1

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.map +1 -1
  2. package/dist/app/IPublicClientApplication.js +33 -33
  3. package/dist/app/IPublicClientApplication.js.map +1 -1
  4. package/dist/app/PublicClientApplication.d.ts +198 -24
  5. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  6. package/dist/app/PublicClientApplication.js +263 -220
  7. package/dist/app/PublicClientApplication.js.map +1 -1
  8. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +5 -4
  9. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -1
  10. package/dist/broker/nativeBroker/NativeMessageHandler.js +118 -124
  11. package/dist/broker/nativeBroker/NativeMessageHandler.js.map +1 -1
  12. package/dist/broker/nativeBroker/NativeRequest.d.ts +4 -4
  13. package/dist/broker/nativeBroker/NativeRequest.d.ts.map +1 -1
  14. package/dist/broker/nativeBroker/NativeResponse.d.ts +4 -4
  15. package/dist/broker/nativeBroker/NativeResponse.d.ts.map +1 -1
  16. package/dist/cache/AsyncMemoryStorage.d.ts.map +1 -1
  17. package/dist/cache/AsyncMemoryStorage.js +83 -152
  18. package/dist/cache/AsyncMemoryStorage.js.map +1 -1
  19. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  20. package/dist/cache/BrowserCacheManager.js +420 -412
  21. package/dist/cache/BrowserCacheManager.js.map +1 -1
  22. package/dist/cache/BrowserStorage.d.ts.map +1 -1
  23. package/dist/cache/BrowserStorage.js +19 -19
  24. package/dist/cache/BrowserStorage.js.map +1 -1
  25. package/dist/cache/CryptoKeyStore.d.ts.map +1 -1
  26. package/dist/cache/CryptoKeyStore.js +26 -36
  27. package/dist/cache/CryptoKeyStore.js.map +1 -1
  28. package/dist/cache/DatabaseStorage.d.ts.map +1 -1
  29. package/dist/cache/DatabaseStorage.js +127 -191
  30. package/dist/cache/DatabaseStorage.js.map +1 -1
  31. package/dist/cache/ITokenCache.d.ts.map +1 -1
  32. package/dist/cache/MemoryStorage.d.ts.map +1 -1
  33. package/dist/cache/MemoryStorage.js +18 -19
  34. package/dist/cache/MemoryStorage.js.map +1 -1
  35. package/dist/cache/TokenCache.d.ts +1 -1
  36. package/dist/cache/TokenCache.d.ts.map +1 -1
  37. package/dist/cache/TokenCache.js +55 -49
  38. package/dist/cache/TokenCache.js.map +1 -1
  39. package/dist/config/Configuration.d.ts +8 -8
  40. package/dist/config/Configuration.d.ts.map +1 -1
  41. package/dist/config/Configuration.js +53 -31
  42. package/dist/config/Configuration.js.map +1 -1
  43. package/dist/controllers/ControllerFactory.d.ts +10 -0
  44. package/dist/controllers/ControllerFactory.d.ts.map +1 -0
  45. package/dist/controllers/ControllerFactory.js +47 -0
  46. package/dist/controllers/ControllerFactory.js.map +1 -0
  47. package/dist/controllers/IController.d.ts +67 -0
  48. package/dist/controllers/IController.d.ts.map +1 -0
  49. package/dist/{app/ClientApplication.d.ts → controllers/StandardController.d.ts} +96 -15
  50. package/dist/controllers/StandardController.d.ts.map +1 -0
  51. package/dist/controllers/StandardController.js +1299 -0
  52. package/dist/controllers/StandardController.js.map +1 -0
  53. package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
  54. package/dist/crypto/BrowserCrypto.js +36 -60
  55. package/dist/crypto/BrowserCrypto.js.map +1 -1
  56. package/dist/crypto/CryptoOps.d.ts +1 -1
  57. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  58. package/dist/crypto/CryptoOps.js +93 -151
  59. package/dist/crypto/CryptoOps.js.map +1 -1
  60. package/dist/crypto/GuidGenerator.d.ts.map +1 -1
  61. package/dist/crypto/GuidGenerator.js +36 -25
  62. package/dist/crypto/GuidGenerator.js.map +1 -1
  63. package/dist/crypto/ISubtleCrypto.d.ts.map +1 -1
  64. package/dist/crypto/ModernBrowserCrypto.d.ts.map +1 -1
  65. package/dist/crypto/ModernBrowserCrypto.js +20 -44
  66. package/dist/crypto/ModernBrowserCrypto.js.map +1 -1
  67. package/dist/crypto/MsBrowserCrypto.d.ts.map +1 -1
  68. package/dist/crypto/MsBrowserCrypto.js +65 -89
  69. package/dist/crypto/MsBrowserCrypto.js.map +1 -1
  70. package/dist/crypto/MsrBrowserCrypto.d.ts.map +1 -1
  71. package/dist/crypto/MsrBrowserCrypto.js +23 -47
  72. package/dist/crypto/MsrBrowserCrypto.js.map +1 -1
  73. package/dist/crypto/PkceGenerator.d.ts.map +1 -1
  74. package/dist/crypto/PkceGenerator.js +28 -49
  75. package/dist/crypto/PkceGenerator.js.map +1 -1
  76. package/dist/crypto/SignedHttpRequest.d.ts +1 -1
  77. package/dist/crypto/SignedHttpRequest.d.ts.map +1 -1
  78. package/dist/crypto/SignedHttpRequest.js +15 -37
  79. package/dist/crypto/SignedHttpRequest.js.map +1 -1
  80. package/dist/encode/Base64Decode.d.ts.map +1 -1
  81. package/dist/encode/Base64Decode.js +32 -33
  82. package/dist/encode/Base64Decode.js.map +1 -1
  83. package/dist/encode/Base64Encode.d.ts.map +1 -1
  84. package/dist/encode/Base64Encode.js +34 -35
  85. package/dist/encode/Base64Encode.js.map +1 -1
  86. package/dist/error/BrowserAuthError.d.ts +1 -1
  87. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  88. package/dist/error/BrowserAuthError.js +161 -163
  89. package/dist/error/BrowserAuthError.js.map +1 -1
  90. package/dist/error/BrowserConfigurationAuthError.d.ts.map +1 -1
  91. package/dist/error/BrowserConfigurationAuthError.js +32 -36
  92. package/dist/error/BrowserConfigurationAuthError.js.map +1 -1
  93. package/dist/error/NativeAuthError.d.ts +1 -1
  94. package/dist/error/NativeAuthError.d.ts.map +1 -1
  95. package/dist/error/NativeAuthError.js +26 -27
  96. package/dist/error/NativeAuthError.js.map +1 -1
  97. package/dist/event/EventHandler.d.ts.map +1 -1
  98. package/dist/event/EventHandler.js +33 -33
  99. package/dist/event/EventHandler.js.map +1 -1
  100. package/dist/event/EventMessage.d.ts +5 -5
  101. package/dist/event/EventMessage.d.ts.map +1 -1
  102. package/dist/event/EventMessage.js +18 -14
  103. package/dist/event/EventMessage.js.map +1 -1
  104. package/dist/event/EventType.js +1 -1
  105. package/dist/event/EventType.js.map +1 -1
  106. package/dist/index.d.ts +8 -8
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +1 -1
  109. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  110. package/dist/interaction_client/BaseInteractionClient.js +92 -123
  111. package/dist/interaction_client/BaseInteractionClient.js.map +1 -1
  112. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts.map +1 -1
  113. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +6 -10
  114. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js.map +1 -1
  115. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  116. package/dist/interaction_client/NativeInteractionClient.js +336 -393
  117. package/dist/interaction_client/NativeInteractionClient.js.map +1 -1
  118. package/dist/interaction_client/PopupClient.d.ts +1 -1
  119. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  120. package/dist/interaction_client/PopupClient.js +224 -246
  121. package/dist/interaction_client/PopupClient.js.map +1 -1
  122. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  123. package/dist/interaction_client/RedirectClient.js +244 -292
  124. package/dist/interaction_client/RedirectClient.js.map +1 -1
  125. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  126. package/dist/interaction_client/SilentAuthCodeClient.js +50 -63
  127. package/dist/interaction_client/SilentAuthCodeClient.js.map +1 -1
  128. package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
  129. package/dist/interaction_client/SilentCacheClient.js +50 -81
  130. package/dist/interaction_client/SilentCacheClient.js.map +1 -1
  131. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  132. package/dist/interaction_client/SilentIframeClient.js +107 -125
  133. package/dist/interaction_client/SilentIframeClient.js.map +1 -1
  134. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  135. package/dist/interaction_client/SilentRefreshClient.js +44 -72
  136. package/dist/interaction_client/SilentRefreshClient.js.map +1 -1
  137. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  138. package/dist/interaction_client/StandardInteractionClient.js +144 -180
  139. package/dist/interaction_client/StandardInteractionClient.js.map +1 -1
  140. package/dist/interaction_handler/InteractionHandler.d.ts +1 -1
  141. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  142. package/dist/interaction_handler/InteractionHandler.js +84 -110
  143. package/dist/interaction_handler/InteractionHandler.js.map +1 -1
  144. package/dist/interaction_handler/RedirectHandler.d.ts +1 -1
  145. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  146. package/dist/interaction_handler/RedirectHandler.js +105 -122
  147. package/dist/interaction_handler/RedirectHandler.js.map +1 -1
  148. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  149. package/dist/interaction_handler/SilentHandler.js +76 -65
  150. package/dist/interaction_handler/SilentHandler.js.map +1 -1
  151. package/dist/internals.js +1 -1
  152. package/dist/internals.js.map +1 -1
  153. package/dist/navigation/NavigationClient.d.ts.map +1 -1
  154. package/dist/navigation/NavigationClient.js +11 -14
  155. package/dist/navigation/NavigationClient.js.map +1 -1
  156. package/dist/navigation/NavigationOptions.d.ts +1 -1
  157. package/dist/navigation/NavigationOptions.d.ts.map +1 -1
  158. package/dist/network/FetchClient.d.ts.map +1 -1
  159. package/dist/network/FetchClient.js +66 -96
  160. package/dist/network/FetchClient.js.map +1 -1
  161. package/dist/network/XhrClient.d.ts.map +1 -1
  162. package/dist/network/XhrClient.js +38 -51
  163. package/dist/network/XhrClient.js.map +1 -1
  164. package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -0
  165. package/dist/operatingcontext/BaseOperatingContext.d.ts.map +1 -0
  166. package/dist/operatingcontext/BaseOperatingContext.js +53 -0
  167. package/dist/operatingcontext/BaseOperatingContext.js.map +1 -0
  168. package/dist/operatingcontext/StandardOperatingContext.d.ts +26 -0
  169. package/dist/operatingcontext/StandardOperatingContext.d.ts.map +1 -0
  170. package/dist/operatingcontext/StandardOperatingContext.js +50 -0
  171. package/dist/operatingcontext/StandardOperatingContext.js.map +1 -0
  172. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +26 -0
  173. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -0
  174. package/dist/operatingcontext/TeamsAppOperatingContext.js +49 -0
  175. package/dist/operatingcontext/TeamsAppOperatingContext.js.map +1 -0
  176. package/dist/packageMetadata.d.ts +1 -1
  177. package/dist/packageMetadata.d.ts.map +1 -1
  178. package/dist/packageMetadata.js +3 -3
  179. package/dist/packageMetadata.js.map +1 -1
  180. package/dist/request/AuthorizationCodeRequest.d.ts +1 -1
  181. package/dist/request/AuthorizationCodeRequest.d.ts.map +1 -1
  182. package/dist/request/AuthorizationUrlRequest.d.ts +1 -1
  183. package/dist/request/AuthorizationUrlRequest.d.ts.map +1 -1
  184. package/dist/request/EndSessionPopupRequest.d.ts +1 -1
  185. package/dist/request/EndSessionPopupRequest.d.ts.map +1 -1
  186. package/dist/request/EndSessionRequest.d.ts +1 -1
  187. package/dist/request/EndSessionRequest.d.ts.map +1 -1
  188. package/dist/request/PopupRequest.d.ts +1 -1
  189. package/dist/request/PopupRequest.d.ts.map +1 -1
  190. package/dist/request/PopupWindowAttributes.d.ts +3 -3
  191. package/dist/request/PopupWindowAttributes.d.ts.map +1 -1
  192. package/dist/request/RedirectRequest.d.ts +1 -1
  193. package/dist/request/RedirectRequest.d.ts.map +1 -1
  194. package/dist/request/SilentRequest.d.ts +1 -1
  195. package/dist/request/SilentRequest.d.ts.map +1 -1
  196. package/dist/request/SsoSilentRequest.d.ts +1 -1
  197. package/dist/request/SsoSilentRequest.d.ts.map +1 -1
  198. package/dist/telemetry/BrowserPerformanceClient.d.ts +1 -1
  199. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  200. package/dist/telemetry/BrowserPerformanceClient.js +62 -57
  201. package/dist/telemetry/BrowserPerformanceClient.js.map +1 -1
  202. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts.map +1 -1
  203. package/dist/telemetry/BrowserPerformanceMeasurement.js +30 -31
  204. package/dist/telemetry/BrowserPerformanceMeasurement.js.map +1 -1
  205. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  206. package/dist/utils/BrowserConstants.js +10 -10
  207. package/dist/utils/BrowserConstants.js.map +1 -1
  208. package/dist/utils/BrowserProtocolUtils.d.ts +1 -1
  209. package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
  210. package/dist/utils/BrowserProtocolUtils.js +9 -12
  211. package/dist/utils/BrowserProtocolUtils.js.map +1 -1
  212. package/dist/utils/BrowserStringUtils.d.ts.map +1 -1
  213. package/dist/utils/BrowserStringUtils.js +83 -49
  214. package/dist/utils/BrowserStringUtils.js.map +1 -1
  215. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  216. package/dist/utils/BrowserUtils.js +51 -49
  217. package/dist/utils/BrowserUtils.js.map +1 -1
  218. package/dist/utils/MathUtils.d.ts.map +1 -1
  219. package/dist/utils/MathUtils.js +6 -9
  220. package/dist/utils/MathUtils.js.map +1 -1
  221. package/package.json +17 -16
  222. package/dist/_virtual/_tslib.js +0 -117
  223. package/dist/_virtual/_tslib.js.map +0 -1
  224. package/dist/app/ClientApplication.d.ts.map +0 -1
  225. package/dist/app/ClientApplication.js +0 -1053
  226. package/dist/app/ClientApplication.js.map +0 -1
  227. package/dist/index.cjs.js +0 -18080
  228. package/dist/index.cjs.js.map +0 -1
  229. package/lib/msal-browser.js +0 -18086
  230. package/lib/msal-browser.js.map +0 -1
  231. package/lib/msal-browser.min.js +0 -70
@@ -1,6 +1,5 @@
1
- /*! @azure/msal-browser v2.37.0 2023-05-01 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
2
2
  'use strict';
3
- import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
3
  import { PerformanceEvents, StringUtils, ClientAuthError, ServerError, AuthorityFactory } from '@azure/msal-common';
5
4
  import { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';
6
5
  import { TemporaryCacheKeys } from '../utils/BrowserConstants.js';
@@ -12,8 +11,8 @@ import { TemporaryCacheKeys } from '../utils/BrowserConstants.js';
12
11
  /**
13
12
  * Abstract class which defines operations for a browser interaction handling class.
14
13
  */
15
- var InteractionHandler = /** @class */ (function () {
16
- function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {
14
+ class InteractionHandler {
15
+ constructor(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {
17
16
  this.authModule = authCodeModule;
18
17
  this.browserStorage = storageImpl;
19
18
  this.authCodeRequest = authCodeRequest;
@@ -24,38 +23,36 @@ var InteractionHandler = /** @class */ (function () {
24
23
  * Function to handle response parameters from hash.
25
24
  * @param locationHash
26
25
  */
27
- InteractionHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {
28
- return __awaiter(this, void 0, void 0, function () {
29
- var stateKey, requestState, authCodeResponse;
30
- return __generator(this, function (_a) {
31
- this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);
32
- this.logger.verbose("InteractionHandler.handleCodeResponse called");
33
- // Check that location hash isn't empty.
34
- if (StringUtils.isEmpty(locationHash)) {
35
- throw BrowserAuthError.createEmptyHashError(locationHash);
36
- }
37
- stateKey = this.browserStorage.generateStateKey(state);
38
- requestState = this.browserStorage.getTemporaryCache(stateKey);
39
- if (!requestState) {
40
- throw ClientAuthError.createStateNotFoundError("Cached State");
41
- }
42
- try {
43
- authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
44
- }
45
- catch (e) {
46
- if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {
47
- // Translate server error caused by user closing native prompt to corresponding first class MSAL error
48
- throw BrowserAuthError.createUserCancelledError();
49
- }
50
- else {
51
- throw e;
52
- }
53
- }
54
- this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);
55
- return [2 /*return*/, this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule)];
56
- });
57
- });
58
- };
26
+ async handleCodeResponseFromHash(locationHash, state, authority, networkModule) {
27
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);
28
+ this.logger.verbose("InteractionHandler.handleCodeResponse called");
29
+ // Check that location hash isn't empty.
30
+ if (StringUtils.isEmpty(locationHash)) {
31
+ throw BrowserAuthError.createEmptyHashError();
32
+ }
33
+ // Handle code response.
34
+ const stateKey = this.browserStorage.generateStateKey(state);
35
+ const requestState = this.browserStorage.getTemporaryCache(stateKey);
36
+ if (!requestState) {
37
+ throw ClientAuthError.createStateNotFoundError("Cached State");
38
+ }
39
+ let authCodeResponse;
40
+ try {
41
+ authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
42
+ }
43
+ catch (e) {
44
+ if (e instanceof ServerError &&
45
+ e.subError === BrowserAuthErrorMessage.userCancelledError.code) {
46
+ // Translate server error caused by user closing native prompt to corresponding first class MSAL error
47
+ throw BrowserAuthError.createUserCancelledError();
48
+ }
49
+ else {
50
+ throw e;
51
+ }
52
+ }
53
+ this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);
54
+ return this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule);
55
+ }
59
56
  /**
60
57
  * Process auth code response from AAD
61
58
  * @param authCodeResponse
@@ -64,99 +61,76 @@ var InteractionHandler = /** @class */ (function () {
64
61
  * @param networkModule
65
62
  * @returns
66
63
  */
67
- InteractionHandler.prototype.handleCodeResponseFromServer = function (authCodeResponse, state, authority, networkModule, validateNonce) {
68
- if (validateNonce === void 0) { validateNonce = true; }
69
- return __awaiter(this, void 0, void 0, function () {
70
- var stateKey, requestState, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;
71
- return __generator(this, function (_a) {
72
- switch (_a.label) {
73
- case 0:
74
- this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);
75
- this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");
76
- stateKey = this.browserStorage.generateStateKey(state);
77
- requestState = this.browserStorage.getTemporaryCache(stateKey);
78
- if (!requestState) {
79
- throw ClientAuthError.createStateNotFoundError("Cached State");
80
- }
81
- nonceKey = this.browserStorage.generateNonceKey(requestState);
82
- cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
83
- // Assign code to request
84
- this.authCodeRequest.code = authCodeResponse.code;
85
- if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];
86
- this.performanceClient.setPreQueueTime(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);
87
- return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];
88
- case 1:
89
- _a.sent();
90
- _a.label = 2;
91
- case 2:
92
- // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)
93
- if (validateNonce) {
94
- authCodeResponse.nonce = cachedNonce || undefined;
95
- }
96
- authCodeResponse.state = requestState;
97
- // Add CCS parameters if available
98
- if (authCodeResponse.client_info) {
99
- this.authCodeRequest.clientInfo = authCodeResponse.client_info;
100
- }
101
- else {
102
- cachedCcsCred = this.checkCcsCredentials();
103
- if (cachedCcsCred) {
104
- this.authCodeRequest.ccsCredential = cachedCcsCred;
105
- }
106
- }
107
- // Acquire token with retrieved code.
108
- this.performanceClient.setPreQueueTime(PerformanceEvents.AuthClientAcquireToken, this.authCodeRequest.correlationId);
109
- return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];
110
- case 3:
111
- tokenResponse = _a.sent();
112
- this.browserStorage.cleanRequestByState(state);
113
- return [2 /*return*/, tokenResponse];
114
- }
115
- });
116
- });
117
- };
64
+ async handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule, validateNonce = true) {
65
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);
66
+ this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");
67
+ // Handle code response.
68
+ const stateKey = this.browserStorage.generateStateKey(state);
69
+ const requestState = this.browserStorage.getTemporaryCache(stateKey);
70
+ if (!requestState) {
71
+ throw ClientAuthError.createStateNotFoundError("Cached State");
72
+ }
73
+ // Get cached items
74
+ const nonceKey = this.browserStorage.generateNonceKey(requestState);
75
+ const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
76
+ // Assign code to request
77
+ this.authCodeRequest.code = authCodeResponse.code;
78
+ // Check for new cloud instance
79
+ if (authCodeResponse.cloud_instance_host_name) {
80
+ this.performanceClient.setPreQueueTime(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);
81
+ await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);
82
+ }
83
+ // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)
84
+ if (validateNonce) {
85
+ authCodeResponse.nonce = cachedNonce || undefined;
86
+ }
87
+ authCodeResponse.state = requestState;
88
+ // Add CCS parameters if available
89
+ if (authCodeResponse.client_info) {
90
+ this.authCodeRequest.clientInfo = authCodeResponse.client_info;
91
+ }
92
+ else {
93
+ const cachedCcsCred = this.checkCcsCredentials();
94
+ if (cachedCcsCred) {
95
+ this.authCodeRequest.ccsCredential = cachedCcsCred;
96
+ }
97
+ }
98
+ // Acquire token with retrieved code.
99
+ this.performanceClient.setPreQueueTime(PerformanceEvents.AuthClientAcquireToken, this.authCodeRequest.correlationId);
100
+ const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);
101
+ this.browserStorage.cleanRequestByState(state);
102
+ return tokenResponse;
103
+ }
118
104
  /**
119
105
  * Updates authority based on cloudInstanceHostname
120
106
  * @param cloudInstanceHostname
121
107
  * @param authority
122
108
  * @param networkModule
123
109
  */
124
- InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {
125
- return __awaiter(this, void 0, void 0, function () {
126
- var cloudInstanceAuthorityUri, cloudInstanceAuthority;
127
- return __generator(this, function (_a) {
128
- switch (_a.label) {
129
- case 0:
130
- this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);
131
- cloudInstanceAuthorityUri = "https://" + cloudInstanceHostname + "/" + authority.tenant + "/";
132
- return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId)];
133
- case 1:
134
- cloudInstanceAuthority = _a.sent();
135
- this.authModule.updateAuthority(cloudInstanceAuthority);
136
- return [2 /*return*/];
137
- }
138
- });
139
- });
140
- };
110
+ async updateTokenEndpointAuthority(cloudInstanceHostname, authority, networkModule) {
111
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);
112
+ const cloudInstanceAuthorityUri = `https://${cloudInstanceHostname}/${authority.tenant}/`;
113
+ const cloudInstanceAuthority = await AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId);
114
+ this.authModule.updateAuthority(cloudInstanceAuthority);
115
+ }
141
116
  /**
142
117
  * Looks up ccs creds in the cache
143
118
  */
144
- InteractionHandler.prototype.checkCcsCredentials = function () {
119
+ checkCcsCredentials() {
145
120
  // Look up ccs credential in temp cache
146
- var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);
121
+ const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);
147
122
  if (cachedCcsCred) {
148
123
  try {
149
124
  return JSON.parse(cachedCcsCred);
150
125
  }
151
126
  catch (e) {
152
127
  this.authModule.logger.error("Cache credential could not be parsed");
153
- this.authModule.logger.errorPii("Cache credential could not be parsed: " + cachedCcsCred);
128
+ this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);
154
129
  }
155
130
  }
156
131
  return null;
157
- };
158
- return InteractionHandler;
159
- }());
132
+ }
133
+ }
160
134
 
161
135
  export { InteractionHandler };
162
136
  //# sourceMappingURL=InteractionHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionHandler.js","sources":["../../src/interaction_handler/InteractionHandler.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { AuthorizationCodePayload, StringUtils, CommonAuthorizationCodeRequest, AuthenticationResult, AuthorizationCodeClient, AuthorityFactory, Authority, INetworkModule, ClientAuthError, CcsCredential, Logger, ServerError, IPerformanceClient, PerformanceEvents } from \"@azure/msal-common\";\r\n\r\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\r\nimport { BrowserAuthError, BrowserAuthErrorMessage } from \"../error/BrowserAuthError\";\r\nimport { TemporaryCacheKeys } from \"../utils/BrowserConstants\";\r\n\r\nexport type InteractionParams = {};\r\n\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nexport class InteractionHandler {\r\n\r\n protected authModule: AuthorizationCodeClient;\r\n protected browserStorage: BrowserCacheManager;\r\n protected authCodeRequest: CommonAuthorizationCodeRequest;\r\n protected logger: Logger;\r\n protected performanceClient: IPerformanceClient;\r\n\r\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, performanceClient: IPerformanceClient) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n async handleCodeResponseFromHash(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule): Promise<AuthenticationResult> {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);\r\n this.logger.verbose(\"InteractionHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n\r\n // Handle code response.\r\n const stateKey = this.browserStorage.generateStateKey(state);\r\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n\r\n let authCodeResponse;\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n } catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n } else {\r\n throw e;\r\n }\r\n }\r\n\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n return this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule);\r\n }\r\n\r\n /**\r\n * Process auth code response from AAD\r\n * @param authCodeResponse \r\n * @param state \r\n * @param authority \r\n * @param networkModule \r\n * @returns \r\n */\r\n async handleCodeResponseFromServer(authCodeResponse: AuthorizationCodePayload, state: string, authority: Authority, networkModule: INetworkModule, validateNonce: boolean = true): Promise<AuthenticationResult> {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n this.logger.trace(\"InteractionHandler.handleCodeResponseFromServer called\");\r\n\r\n // Handle code response.\r\n const stateKey = this.browserStorage.generateStateKey(state);\r\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n\r\n // Get cached items\r\n const nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n\r\n // Check for new cloud instance\r\n if (authCodeResponse.cloud_instance_host_name) {\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);\r\n }\r\n\r\n // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)\r\n if (validateNonce) {\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n }\r\n\r\n authCodeResponse.state = requestState;\r\n\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n } else {\r\n const cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n\r\n // Acquire token with retrieved code.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthClientAcquireToken, this.authCodeRequest.correlationId);\r\n const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);\r\n this.browserStorage.cleanRequestByState(state);\r\n return tokenResponse;\r\n }\r\n\r\n /**\r\n * Updates authority based on cloudInstanceHostname\r\n * @param cloudInstanceHostname \r\n * @param authority \r\n * @param networkModule \r\n */\r\n protected async updateTokenEndpointAuthority(cloudInstanceHostname: string, authority: Authority, networkModule: INetworkModule): Promise<void> {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n const cloudInstanceAuthorityUri = `https://${cloudInstanceHostname}/${authority.tenant}/`;\r\n const cloudInstanceAuthority = await AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId);\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n }\r\n\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n protected checkCcsCredentials(): CcsCredential | null {\r\n // Look up ccs credential in temp cache\r\n const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred) as CcsCredential;\r\n } catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractionHandler.js","sources":["../../src/interaction_handler/InteractionHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;;;AAGG;AA4BH;;AAEG;MACU,kBAAkB,CAAA;IAO3B,WACI,CAAA,cAAuC,EACvC,WAAgC,EAChC,eAA+C,EAC/C,MAAc,EACd,iBAAqC,EAAA;AAErC,QAAA,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;KAC9C;AAED;;;AAGG;IACH,MAAM,0BAA0B,CAC5B,YAAoB,EACpB,KAAa,EACb,SAAoB,EACpB,aAA6B,EAAA;AAE7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CACtC,iBAAiB,CAAC,0BAA0B,EAC5C,IAAI,CAAC,eAAe,CAAC,aAAa,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;;AAEpE,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnC,YAAA,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;AACjD,SAAA;;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,MAAM,eAAe,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;AAClE,SAAA;AAED,QAAA,IAAI,gBAAgB,CAAC;QACrB,IAAI;YACA,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CACrD,YAAY,EACZ,YAAY,CACf,CAAC;AACL,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YACR,IACI,CAAC,YAAY,WAAW;gBACxB,CAAC,CAAC,QAAQ,KAAK,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAChE;;AAEE,gBAAA,MAAM,gBAAgB,CAAC,wBAAwB,EAAE,CAAC;AACrD,aAAA;AAAM,iBAAA;AACH,gBAAA,MAAM,CAAC,CAAC;AACX,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAClC,iBAAiB,CAAC,4BAA4B,EAC9C,IAAI,CAAC,eAAe,CAAC,aAAa,CACrC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,4BAA4B,CACpC,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,aAAa,CAChB,CAAC;KACL;AAED;;;;;;;AAOG;AACH,IAAA,MAAM,4BAA4B,CAC9B,gBAA0C,EAC1C,KAAa,EACb,SAAoB,EACpB,aAA6B,EAC7B,aAAA,GAAyB,IAAI,EAAA;AAE7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CACtC,iBAAiB,CAAC,4BAA4B,EAC9C,IAAI,CAAC,eAAe,CAAC,aAAa,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,wDAAwD,CAC3D,CAAC;;QAGF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,MAAM,eAAe,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;AAClE,SAAA;;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;;QAGpE,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;;QAGlD,IAAI,gBAAgB,CAAC,wBAAwB,EAAE;AAC3C,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAClC,iBAAiB,CAAC,4BAA4B,EAC9C,IAAI,CAAC,eAAe,CAAC,aAAa,CACrC,CAAC;AACF,YAAA,MAAM,IAAI,CAAC,4BAA4B,CACnC,gBAAgB,CAAC,wBAAwB,EACzC,SAAS,EACT,aAAa,CAChB,CAAC;AACL,SAAA;;AAGD,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,gBAAgB,CAAC,KAAK,GAAG,WAAW,IAAI,SAAS,CAAC;AACrD,SAAA;AAED,QAAA,gBAAgB,CAAC,KAAK,GAAG,YAAY,CAAC;;QAGtC,IAAI,gBAAgB,CAAC,WAAW,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC;AAClE,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACjD,YAAA,IAAI,aAAa,EAAE;AACf,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,aAAa,CAAC;AACtD,aAAA;AACJ,SAAA;;AAGD,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAClC,iBAAiB,CAAC,sBAAsB,EACxC,IAAI,CAAC,eAAe,CAAC,aAAa,CACrC,CAAC;AACF,QAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CACpD,IAAI,CAAC,eAAe,EACpB,gBAAgB,CACnB,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAA,OAAO,aAAa,CAAC;KACxB;AAED;;;;;AAKG;AACO,IAAA,MAAM,4BAA4B,CACxC,qBAA6B,EAC7B,SAAoB,EACpB,aAA6B,EAAA;AAE7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CACtC,iBAAiB,CAAC,4BAA4B,EAC9C,IAAI,CAAC,eAAe,CAAC,aAAa,CACrC,CAAC;QACF,MAAM,yBAAyB,GAAG,CAAW,QAAA,EAAA,qBAAqB,IAAI,SAAS,CAAC,MAAM,CAAA,CAAA,CAAG,CAAC;AAC1F,QAAA,MAAM,sBAAsB,GACxB,MAAM,gBAAgB,CAAC,wBAAwB,CAC3C,yBAAyB,EACzB,aAAa,EACb,IAAI,CAAC,cAAc,EACnB,SAAS,CAAC,OAAO,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,eAAe,CAAC,aAAa,CACrC,CAAC;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;KAC3D;AAED;;AAEG;IACO,mBAAmB,GAAA;;AAEzB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACvD,kBAAkB,CAAC,cAAc,EACjC,IAAI,CACP,CAAC;AACF,QAAA,IAAI,aAAa,EAAE;YACf,IAAI;AACA,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAkB,CAAC;AACrD,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACxB,sCAAsC,CACzC,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAC3B,CAAyC,sCAAA,EAAA,aAAa,CAAE,CAAA,CAC3D,CAAC;AACL,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;;;"}
@@ -2,7 +2,7 @@ import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, ICrypto, Authe
2
2
  import { BrowserCacheManager } from "../cache/BrowserCacheManager";
3
3
  import { InteractionHandler, InteractionParams } from "./InteractionHandler";
4
4
  import { INavigationClient } from "../navigation/INavigationClient";
5
- export declare type RedirectParams = InteractionParams & {
5
+ export type RedirectParams = InteractionParams & {
6
6
  navigationClient: INavigationClient;
7
7
  redirectTimeout: number;
8
8
  redirectStartPage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAe,8BAA8B,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,cAAc,EAAmB,MAAM,EAAe,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG9N,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,oBAAY,cAAc,GAAG,iBAAiB,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAgB,SAAQ,kBAAkB;IAEnD,OAAO,CAAC,aAAa,CAAU;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB;IAKrN;;;OAGG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CpF;;;OAGG;IACG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA6D5J"}
1
+ {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,uBAAuB,EAEvB,8BAA8B,EAC9B,OAAO,EACP,oBAAoB,EACpB,SAAS,EACT,cAAc,EAEd,MAAM,EAEN,kBAAkB,EACrB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC7C,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAgB,SAAQ,kBAAkB;IACnD,OAAO,CAAC,aAAa,CAAU;gBAG3B,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,8BAA8B,EAC/C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,kBAAkB;IAYzC;;;OAGG;IACG,mBAAmB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IA8EhB;;;OAGG;IACG,0BAA0B,CAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,cAAc,GAC9B,OAAO,CAAC,oBAAoB,CAAC;CA0EnC"}
@@ -1,6 +1,5 @@
1
- /*! @azure/msal-browser v2.37.0 2023-05-01 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
2
2
  'use strict';
3
- import { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';
4
3
  import { StringUtils, ClientAuthError, ServerError } from '@azure/msal-common';
5
4
  import { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';
6
5
  import { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';
@@ -10,136 +9,120 @@ import { InteractionHandler } from './InteractionHandler.js';
10
9
  * Copyright (c) Microsoft Corporation. All rights reserved.
11
10
  * Licensed under the MIT License.
12
11
  */
13
- var RedirectHandler = /** @class */ (function (_super) {
14
- __extends(RedirectHandler, _super);
15
- function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto, performanceClient) {
16
- var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;
17
- _this.browserCrypto = browserCrypto;
18
- return _this;
12
+ class RedirectHandler extends InteractionHandler {
13
+ constructor(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto, performanceClient) {
14
+ super(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient);
15
+ this.browserCrypto = browserCrypto;
19
16
  }
20
17
  /**
21
18
  * Redirects window to given URL.
22
19
  * @param urlNavigate
23
20
  */
24
- RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {
25
- return __awaiter(this, void 0, void 0, function () {
26
- var navigationOptions, navigate;
27
- return __generator(this, function (_a) {
28
- switch (_a.label) {
29
- case 0:
30
- this.logger.verbose("RedirectHandler.initiateAuthRequest called");
31
- if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];
32
- // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true
33
- if (params.redirectStartPage) {
34
- this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page");
35
- this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);
36
- }
37
- // Set interaction status in the library.
38
- this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);
39
- this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);
40
- this.logger.infoPii("RedirectHandler.initiateAuthRequest: Navigate to: " + requestUrl);
41
- navigationOptions = {
42
- apiId: ApiId.acquireTokenRedirect,
43
- timeout: params.redirectTimeout,
44
- noHistory: false
45
- };
46
- if (!(typeof params.onRedirectNavigate === "function")) return [3 /*break*/, 4];
47
- this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");
48
- navigate = params.onRedirectNavigate(requestUrl);
49
- if (!(navigate !== false)) return [3 /*break*/, 2];
50
- this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating");
51
- return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];
52
- case 1:
53
- _a.sent();
54
- return [2 /*return*/];
55
- case 2:
56
- this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation");
57
- return [2 /*return*/];
58
- case 3: return [3 /*break*/, 6];
59
- case 4:
60
- // Navigate window to request URL
61
- this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url");
62
- return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];
63
- case 5:
64
- _a.sent();
65
- return [2 /*return*/];
66
- case 6: return [3 /*break*/, 8];
67
- case 7:
68
- // Throw error if request URL is empty.
69
- this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty");
70
- throw BrowserAuthError.createEmptyNavigationUriError();
71
- case 8: return [2 /*return*/];
21
+ async initiateAuthRequest(requestUrl, params) {
22
+ this.logger.verbose("RedirectHandler.initiateAuthRequest called");
23
+ // Navigate if valid URL
24
+ if (!StringUtils.isEmpty(requestUrl)) {
25
+ // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true
26
+ if (params.redirectStartPage) {
27
+ this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page");
28
+ this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);
29
+ }
30
+ // Set interaction status in the library.
31
+ this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);
32
+ this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);
33
+ this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`);
34
+ const navigationOptions = {
35
+ apiId: ApiId.acquireTokenRedirect,
36
+ timeout: params.redirectTimeout,
37
+ noHistory: false,
38
+ };
39
+ // If onRedirectNavigate is implemented, invoke it and provide requestUrl
40
+ if (typeof params.onRedirectNavigate === "function") {
41
+ this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");
42
+ const navigate = params.onRedirectNavigate(requestUrl);
43
+ // Returning false from onRedirectNavigate will stop navigation
44
+ if (navigate !== false) {
45
+ this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating");
46
+ await params.navigationClient.navigateExternal(requestUrl, navigationOptions);
47
+ return;
72
48
  }
73
- });
74
- });
75
- };
49
+ else {
50
+ this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation");
51
+ return;
52
+ }
53
+ }
54
+ else {
55
+ // Navigate window to request URL
56
+ this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url");
57
+ await params.navigationClient.navigateExternal(requestUrl, navigationOptions);
58
+ return;
59
+ }
60
+ }
61
+ else {
62
+ // Throw error if request URL is empty.
63
+ this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty");
64
+ throw BrowserAuthError.createEmptyNavigationUriError();
65
+ }
66
+ }
76
67
  /**
77
68
  * Handle authorization code response in the window.
78
69
  * @param hash
79
70
  */
80
- RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {
81
- return __awaiter(this, void 0, void 0, function () {
82
- var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;
83
- return __generator(this, function (_a) {
84
- switch (_a.label) {
85
- case 0:
86
- this.logger.verbose("RedirectHandler.handleCodeResponse called");
87
- // Check that location hash isn't empty.
88
- if (StringUtils.isEmpty(locationHash)) {
89
- throw BrowserAuthError.createEmptyHashError(locationHash);
90
- }
91
- // Interaction is completed - remove interaction status.
92
- this.browserStorage.setInteractionInProgress(false);
93
- stateKey = this.browserStorage.generateStateKey(state);
94
- requestState = this.browserStorage.getTemporaryCache(stateKey);
95
- if (!requestState) {
96
- throw ClientAuthError.createStateNotFoundError("Cached State");
97
- }
98
- try {
99
- authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
100
- }
101
- catch (e) {
102
- if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {
103
- // Translate server error caused by user closing native prompt to corresponding first class MSAL error
104
- throw BrowserAuthError.createUserCancelledError();
105
- }
106
- else {
107
- throw e;
108
- }
109
- }
110
- nonceKey = this.browserStorage.generateNonceKey(requestState);
111
- cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
112
- // Assign code to request
113
- this.authCodeRequest.code = authCodeResponse.code;
114
- if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];
115
- return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];
116
- case 1:
117
- _a.sent();
118
- _a.label = 2;
119
- case 2:
120
- authCodeResponse.nonce = cachedNonce || undefined;
121
- authCodeResponse.state = requestState;
122
- // Add CCS parameters if available
123
- if (authCodeResponse.client_info) {
124
- this.authCodeRequest.clientInfo = authCodeResponse.client_info;
125
- }
126
- else {
127
- cachedCcsCred = this.checkCcsCredentials();
128
- if (cachedCcsCred) {
129
- this.authCodeRequest.ccsCredential = cachedCcsCred;
130
- }
131
- }
132
- return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];
133
- case 3:
134
- tokenResponse = _a.sent();
135
- this.browserStorage.cleanRequestByState(state);
136
- return [2 /*return*/, tokenResponse];
137
- }
138
- });
139
- });
140
- };
141
- return RedirectHandler;
142
- }(InteractionHandler));
71
+ async handleCodeResponseFromHash(locationHash, state, authority, networkModule) {
72
+ this.logger.verbose("RedirectHandler.handleCodeResponse called");
73
+ // Check that location hash isn't empty.
74
+ if (StringUtils.isEmpty(locationHash)) {
75
+ throw BrowserAuthError.createEmptyHashError();
76
+ }
77
+ // Interaction is completed - remove interaction status.
78
+ this.browserStorage.setInteractionInProgress(false);
79
+ // Handle code response.
80
+ const stateKey = this.browserStorage.generateStateKey(state);
81
+ const requestState = this.browserStorage.getTemporaryCache(stateKey);
82
+ if (!requestState) {
83
+ throw ClientAuthError.createStateNotFoundError("Cached State");
84
+ }
85
+ let authCodeResponse;
86
+ try {
87
+ authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);
88
+ }
89
+ catch (e) {
90
+ if (e instanceof ServerError &&
91
+ e.subError === BrowserAuthErrorMessage.userCancelledError.code) {
92
+ // Translate server error caused by user closing native prompt to corresponding first class MSAL error
93
+ throw BrowserAuthError.createUserCancelledError();
94
+ }
95
+ else {
96
+ throw e;
97
+ }
98
+ }
99
+ // Get cached items
100
+ const nonceKey = this.browserStorage.generateNonceKey(requestState);
101
+ const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
102
+ // Assign code to request
103
+ this.authCodeRequest.code = authCodeResponse.code;
104
+ // Check for new cloud instance
105
+ if (authCodeResponse.cloud_instance_host_name) {
106
+ await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);
107
+ }
108
+ authCodeResponse.nonce = cachedNonce || undefined;
109
+ authCodeResponse.state = requestState;
110
+ // Add CCS parameters if available
111
+ if (authCodeResponse.client_info) {
112
+ this.authCodeRequest.clientInfo = authCodeResponse.client_info;
113
+ }
114
+ else {
115
+ const cachedCcsCred = this.checkCcsCredentials();
116
+ if (cachedCcsCred) {
117
+ this.authCodeRequest.ccsCredential = cachedCcsCred;
118
+ }
119
+ }
120
+ // Acquire token with retrieved code.
121
+ const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);
122
+ this.browserStorage.cleanRequestByState(state);
123
+ return tokenResponse;
124
+ }
125
+ }
143
126
 
144
127
  export { RedirectHandler };
145
128
  //# sourceMappingURL=RedirectHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectHandler.js","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { AuthorizationCodeClient, StringUtils, CommonAuthorizationCodeRequest, ICrypto, AuthenticationResult, Authority, INetworkModule, ClientAuthError, Logger, ServerError, IPerformanceClient } from \"@azure/msal-common\";\r\nimport { BrowserAuthError, BrowserAuthErrorMessage } from \"../error/BrowserAuthError\";\r\nimport { ApiId, TemporaryCacheKeys } from \"../utils/BrowserConstants\";\r\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\r\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\r\nimport { INavigationClient } from \"../navigation/INavigationClient\";\r\nimport { NavigationOptions } from \"../navigation/NavigationOptions\";\r\n\r\nexport type RedirectParams = InteractionParams & {\r\n navigationClient: INavigationClient;\r\n redirectTimeout: number;\r\n redirectStartPage: string;\r\n onRedirectNavigate?: (url: string) => void | boolean;\r\n};\r\n\r\nexport class RedirectHandler extends InteractionHandler {\r\n\r\n private browserCrypto: ICrypto;\r\n\r\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, browserCrypto: ICrypto, performanceClient: IPerformanceClient) {\r\n super(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient);\r\n this.browserCrypto = browserCrypto;\r\n }\r\n\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n async initiateAuthRequest(requestUrl: string, params: RedirectParams): Promise<void> {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n // Navigate if valid URL\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`);\r\n const navigationOptions: NavigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n \r\n // If onRedirectNavigate is implemented, invoke it and provide requestUrl\r\n if (typeof params.onRedirectNavigate === \"function\") {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n const navigate = params.onRedirectNavigate(requestUrl);\r\n\r\n // Returning false from onRedirectNavigate will stop navigation\r\n if (navigate !== false) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\r\n return;\r\n } else {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return;\r\n }\r\n } else {\r\n // Navigate window to request URL\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n await params.navigationClient.navigateExternal(requestUrl, navigationOptions);\r\n return;\r\n }\r\n } else {\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n }\r\n\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n async handleCodeResponseFromHash(locationHash: string, state: string, authority: Authority, networkModule: INetworkModule): Promise<AuthenticationResult> {\r\n this.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n\r\n // Handle code response.\r\n const stateKey = this.browserStorage.generateStateKey(state);\r\n const requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n\r\n let authCodeResponse;\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n } catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n } else {\r\n throw e;\r\n }\r\n }\r\n\r\n // Get cached items\r\n const nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n\r\n // Check for new cloud instance\r\n if (authCodeResponse.cloud_instance_host_name) {\r\n await this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule);\r\n }\r\n\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n } else {\r\n const cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n\r\n // Acquire token with retrieved code.\r\n const tokenResponse = await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse);\r\n\r\n this.browserStorage.cleanRequestByState(state);\r\n return tokenResponse;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RedirectHandler.js","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAAA;;;AAGG;AAgCG,MAAO,eAAgB,SAAQ,kBAAkB,CAAA;IAGnD,WACI,CAAA,cAAuC,EACvC,WAAgC,EAChC,eAA+C,EAC/C,MAAc,EACd,aAAsB,EACtB,iBAAqC,EAAA;QAErC,KAAK,CACD,cAAc,EACd,WAAW,EACX,eAAe,EACf,MAAM,EACN,iBAAiB,CACpB,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACtC;AAED;;;AAGG;AACH,IAAA,MAAM,mBAAmB,CACrB,UAAkB,EAClB,MAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;;AAElE,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;;YAElC,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CACf,gFAAgF,CACnF,CAAC;AACF,gBAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACjC,kBAAkB,CAAC,UAAU,EAC7B,MAAM,CAAC,iBAAiB,EACxB,IAAI,CACP,CAAC;AACL,aAAA;;AAGD,YAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACjC,kBAAkB,CAAC,cAAc,EACjC,IAAI,CAAC,eAAe,CAAC,aAAa,EAClC,IAAI,CACP,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,CACrB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,CACf,CAAqD,kDAAA,EAAA,UAAU,CAAE,CAAA,CACpE,CAAC;AACF,YAAA,MAAM,iBAAiB,GAAsB;gBACzC,KAAK,EAAE,KAAK,CAAC,oBAAoB;gBACjC,OAAO,EAAE,MAAM,CAAC,eAAe;AAC/B,gBAAA,SAAS,EAAE,KAAK;aACnB,CAAC;;AAGF,YAAA,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,UAAU,EAAE;AACjD,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CACf,2EAA2E,CAC9E,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;;gBAGvD,IAAI,QAAQ,KAAK,KAAK,EAAE;AACpB,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CACf,0FAA0F,CAC7F,CAAC;oBACF,MAAM,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAC1C,UAAU,EACV,iBAAiB,CACpB,CAAC;oBACF,OAAO;AACV,iBAAA;AAAM,qBAAA;AACH,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CACf,6FAA6F,CAChG,CAAC;oBACF,OAAO;AACV,iBAAA;AACJ,aAAA;AAAM,iBAAA;;AAEH,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CACf,wEAAwE,CAC3E,CAAC;gBACF,MAAM,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAC1C,UAAU,EACV,iBAAiB,CACpB,CAAC;gBACF,OAAO;AACV,aAAA;AACJ,SAAA;AAAM,aAAA;;AAEH,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,4DAA4D,CAC/D,CAAC;AACF,YAAA,MAAM,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;AAC1D,SAAA;KACJ;AAED;;;AAGG;IACH,MAAM,0BAA0B,CAC5B,YAAoB,EACpB,KAAa,EACb,SAAoB,EACpB,aAA6B,EAAA;AAE7B,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;;AAGjE,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnC,YAAA,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;AACjD,SAAA;;AAGD,QAAA,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;;QAGpD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,MAAM,eAAe,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;AAClE,SAAA;AAED,QAAA,IAAI,gBAAgB,CAAC;QACrB,IAAI;YACA,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CACrD,YAAY,EACZ,YAAY,CACf,CAAC;AACL,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YACR,IACI,CAAC,YAAY,WAAW;gBACxB,CAAC,CAAC,QAAQ,KAAK,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAChE;;AAEE,gBAAA,MAAM,gBAAgB,CAAC,wBAAwB,EAAE,CAAC;AACrD,aAAA;AAAM,iBAAA;AACH,gBAAA,MAAM,CAAC,CAAC;AACX,aAAA;AACJ,SAAA;;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;;QAGpE,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;;QAGlD,IAAI,gBAAgB,CAAC,wBAAwB,EAAE;AAC3C,YAAA,MAAM,IAAI,CAAC,4BAA4B,CACnC,gBAAgB,CAAC,wBAAwB,EACzC,SAAS,EACT,aAAa,CAChB,CAAC;AACL,SAAA;AAED,QAAA,gBAAgB,CAAC,KAAK,GAAG,WAAW,IAAI,SAAS,CAAC;AAClD,QAAA,gBAAgB,CAAC,KAAK,GAAG,YAAY,CAAC;;QAGtC,IAAI,gBAAgB,CAAC,WAAW,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC;AAClE,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACjD,YAAA,IAAI,aAAa,EAAE;AACf,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,aAAa,CAAC;AACtD,aAAA;AACJ,SAAA;;AAGD,QAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CACpD,IAAI,CAAC,eAAe,EACpB,gBAAgB,CACnB,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAA,OAAO,aAAa,CAAC;KACxB;AACJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SilentHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/SilentHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,8BAA8B,EAAE,uBAAuB,EAAa,MAAM,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAC/K,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAA6B,MAAM,yBAAyB,CAAC;AAE1F,qBAAa,aAAc,SAAQ,kBAAkB;IAEjD,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,wBAAwB,CAAS;gBAE7B,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,mBAAmB,GAAG,0BAA0B,CAAC,CAAC,EAAE,iBAAiB,EAAE,kBAAkB;IAMpS;;;;OAIG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgBzE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkDjF;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAwBjB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CAK7B"}
1
+ {"version":3,"file":"SilentHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/SilentHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,8BAA8B,EAC9B,uBAAuB,EAEvB,MAAM,EACN,kBAAkB,EAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACH,oBAAoB,EAEvB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,aAAc,SAAQ,kBAAkB;IACjD,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,wBAAwB,CAAS;gBAGrC,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,8BAA8B,EAC/C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CACnB,IAAI,CACA,oBAAoB,EACpB,mBAAmB,GAAG,0BAA0B,CACnD,CACJ,EACD,iBAAiB,EAAE,kBAAkB;IAazC;;;;OAIG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsBzE;;;;OAIG;IACH,oBAAoB,CAChB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;IAuFlB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IA2BjB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CAK7B"}