@azure/msal-browser 3.1.0 → 3.3.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 (282) hide show
  1. package/dist/app/IPublicClientApplication.d.ts.map +1 -1
  2. package/dist/app/IPublicClientApplication.mjs +20 -19
  3. package/dist/app/IPublicClientApplication.mjs.map +1 -1
  4. package/dist/app/PublicClientApplication.d.ts +14 -6
  5. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  6. package/dist/app/PublicClientApplication.mjs +18 -8
  7. package/dist/app/PublicClientApplication.mjs.map +1 -1
  8. package/dist/app/PublicClientNext.d.ts +274 -0
  9. package/dist/app/PublicClientNext.d.ts.map +1 -0
  10. package/dist/app/PublicClientNext.mjs +362 -0
  11. package/dist/app/PublicClientNext.mjs.map +1 -0
  12. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +3 -4
  13. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -1
  14. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +13 -13
  15. package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
  16. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +8 -0
  17. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts.map +1 -0
  18. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +16 -0
  19. package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -0
  20. package/dist/cache/AsyncMemoryStorage.mjs +1 -1
  21. package/dist/cache/BrowserCacheManager.d.ts +4 -15
  22. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  23. package/dist/cache/BrowserCacheManager.mjs +13 -69
  24. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  25. package/dist/cache/BrowserStorage.d.ts.map +1 -1
  26. package/dist/cache/BrowserStorage.mjs +7 -9
  27. package/dist/cache/BrowserStorage.mjs.map +1 -1
  28. package/dist/cache/CryptoKeyStore.mjs +1 -1
  29. package/dist/cache/DatabaseStorage.mjs +1 -1
  30. package/dist/cache/MemoryStorage.mjs +1 -1
  31. package/dist/cache/TokenCache.mjs +1 -1
  32. package/dist/config/Configuration.d.ts +4 -0
  33. package/dist/config/Configuration.d.ts.map +1 -1
  34. package/dist/config/Configuration.mjs +8 -7
  35. package/dist/config/Configuration.mjs.map +1 -1
  36. package/dist/controllers/ControllerFactory.d.ts +2 -1
  37. package/dist/controllers/ControllerFactory.d.ts.map +1 -1
  38. package/dist/controllers/ControllerFactory.mjs +26 -19
  39. package/dist/controllers/ControllerFactory.mjs.map +1 -1
  40. package/dist/controllers/IController.d.ts +3 -2
  41. package/dist/controllers/IController.d.ts.map +1 -1
  42. package/dist/controllers/NestedAppAuthController.d.ts +96 -0
  43. package/dist/controllers/NestedAppAuthController.d.ts.map +1 -0
  44. package/dist/controllers/NestedAppAuthController.mjs +345 -0
  45. package/dist/controllers/NestedAppAuthController.mjs.map +1 -0
  46. package/dist/controllers/StandardController.d.ts +11 -6
  47. package/dist/controllers/StandardController.d.ts.map +1 -1
  48. package/dist/controllers/StandardController.mjs +67 -45
  49. package/dist/controllers/StandardController.mjs.map +1 -1
  50. package/dist/controllers/UnknownOperatingContextController.d.ts +88 -0
  51. package/dist/controllers/UnknownOperatingContextController.d.ts.map +1 -0
  52. package/dist/controllers/UnknownOperatingContextController.mjs +275 -0
  53. package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -0
  54. package/dist/crypto/BrowserCrypto.d.ts +44 -49
  55. package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
  56. package/dist/crypto/BrowserCrypto.mjs +77 -77
  57. package/dist/crypto/BrowserCrypto.mjs.map +1 -1
  58. package/dist/crypto/CryptoOps.d.ts +1 -7
  59. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  60. package/dist/crypto/CryptoOps.mjs +18 -23
  61. package/dist/crypto/CryptoOps.mjs.map +1 -1
  62. package/dist/crypto/PkceGenerator.d.ts +6 -21
  63. package/dist/crypto/PkceGenerator.d.ts.map +1 -1
  64. package/dist/crypto/PkceGenerator.mjs +45 -46
  65. package/dist/crypto/PkceGenerator.mjs.map +1 -1
  66. package/dist/crypto/SignedHttpRequest.mjs +1 -1
  67. package/dist/encode/Base64Decode.d.ts.map +1 -1
  68. package/dist/encode/Base64Decode.mjs +18 -2
  69. package/dist/encode/Base64Decode.mjs.map +1 -1
  70. package/dist/encode/Base64Encode.mjs +1 -1
  71. package/dist/error/BrowserAuthError.d.ts +10 -1
  72. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  73. package/dist/error/BrowserAuthError.mjs +12 -3
  74. package/dist/error/BrowserAuthError.mjs.map +1 -1
  75. package/dist/error/BrowserAuthErrorCodes.d.ts +1 -0
  76. package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
  77. package/dist/error/BrowserAuthErrorCodes.mjs +3 -2
  78. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  79. package/dist/error/BrowserConfigurationAuthError.d.ts +9 -46
  80. package/dist/error/BrowserConfigurationAuthError.d.ts.map +1 -1
  81. package/dist/error/BrowserConfigurationAuthError.mjs +20 -73
  82. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  83. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +4 -0
  84. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts.map +1 -0
  85. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +12 -0
  86. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -0
  87. package/dist/error/NativeAuthError.d.ts +17 -45
  88. package/dist/error/NativeAuthError.d.ts.map +1 -1
  89. package/dist/error/NativeAuthError.mjs +47 -78
  90. package/dist/error/NativeAuthError.mjs.map +1 -1
  91. package/dist/error/NativeAuthErrorCodes.d.ts +3 -0
  92. package/dist/error/NativeAuthErrorCodes.d.ts.map +1 -0
  93. package/dist/error/NativeAuthErrorCodes.mjs +11 -0
  94. package/dist/error/NativeAuthErrorCodes.mjs.map +1 -0
  95. package/dist/error/NestedAppAuthError.d.ts +15 -0
  96. package/dist/error/NestedAppAuthError.d.ts.map +1 -0
  97. package/dist/error/NestedAppAuthError.mjs +30 -0
  98. package/dist/error/NestedAppAuthError.mjs.map +1 -0
  99. package/dist/event/EventHandler.d.ts.map +1 -1
  100. package/dist/event/EventHandler.mjs +3 -2
  101. package/dist/event/EventHandler.mjs.map +1 -1
  102. package/dist/event/EventMessage.mjs +1 -1
  103. package/dist/event/EventType.mjs +1 -1
  104. package/dist/index.d.ts +5 -7
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.mjs +7 -3
  107. package/dist/index.mjs.map +1 -1
  108. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  109. package/dist/interaction_client/BaseInteractionClient.mjs +10 -11
  110. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  111. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  112. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  113. package/dist/interaction_client/NativeInteractionClient.mjs +26 -13
  114. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  115. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  116. package/dist/interaction_client/PopupClient.mjs +5 -4
  117. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  118. package/dist/interaction_client/RedirectClient.mjs +7 -7
  119. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  120. package/dist/interaction_client/SilentAuthCodeClient.mjs +7 -10
  121. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  122. package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
  123. package/dist/interaction_client/SilentCacheClient.mjs +11 -18
  124. package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
  125. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  126. package/dist/interaction_client/SilentIframeClient.mjs +27 -13
  127. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  128. package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
  129. package/dist/interaction_client/SilentRefreshClient.mjs +8 -18
  130. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
  131. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  132. package/dist/interaction_client/StandardInteractionClient.mjs +16 -37
  133. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  134. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  135. package/dist/interaction_handler/InteractionHandler.mjs +6 -9
  136. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  137. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  138. package/dist/interaction_handler/RedirectHandler.mjs +3 -3
  139. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  140. package/dist/interaction_handler/SilentHandler.d.ts +13 -47
  141. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  142. package/dist/interaction_handler/SilentHandler.mjs +120 -156
  143. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  144. package/dist/naa/AccountInfo.d.ts +13 -0
  145. package/dist/naa/AccountInfo.d.ts.map +1 -0
  146. package/dist/naa/AccountRequests.d.ts +10 -0
  147. package/dist/naa/AccountRequests.d.ts.map +1 -0
  148. package/dist/naa/AuthBridge.d.ts +6 -0
  149. package/dist/naa/AuthBridge.d.ts.map +1 -0
  150. package/dist/naa/BridgeCapabilities.d.ts +4 -0
  151. package/dist/naa/BridgeCapabilities.d.ts.map +1 -0
  152. package/dist/naa/BridgeError.d.ts +10 -0
  153. package/dist/naa/BridgeError.d.ts.map +1 -0
  154. package/dist/naa/BridgeError.mjs +12 -0
  155. package/dist/naa/BridgeError.mjs.map +1 -0
  156. package/dist/naa/BridgeProxy.d.ts +72 -0
  157. package/dist/naa/BridgeProxy.d.ts.map +1 -0
  158. package/dist/naa/BridgeProxy.mjs +154 -0
  159. package/dist/naa/BridgeProxy.mjs.map +1 -0
  160. package/dist/naa/BridgeRequest.d.ts +7 -0
  161. package/dist/naa/BridgeRequest.d.ts.map +1 -0
  162. package/dist/naa/BridgeRequestEnvelope.d.ts +14 -0
  163. package/dist/naa/BridgeRequestEnvelope.d.ts.map +1 -0
  164. package/dist/naa/BridgeResponseEnvelope.d.ts +11 -0
  165. package/dist/naa/BridgeResponseEnvelope.d.ts.map +1 -0
  166. package/dist/naa/BridgeStatusCode.d.ts +11 -0
  167. package/dist/naa/BridgeStatusCode.d.ts.map +1 -0
  168. package/dist/naa/BridgeStatusCode.mjs +20 -0
  169. package/dist/naa/BridgeStatusCode.mjs.map +1 -0
  170. package/dist/naa/IBridgeProxy.d.ts +11 -0
  171. package/dist/naa/IBridgeProxy.d.ts.map +1 -0
  172. package/dist/naa/InitializeBridgeResponse.d.ts +7 -0
  173. package/dist/naa/InitializeBridgeResponse.d.ts.map +1 -0
  174. package/dist/naa/TokenRequest.d.ts +22 -0
  175. package/dist/naa/TokenRequest.d.ts.map +1 -0
  176. package/dist/naa/TokenResponse.d.ts +17 -0
  177. package/dist/naa/TokenResponse.d.ts.map +1 -0
  178. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +26 -0
  179. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -0
  180. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +178 -0
  181. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -0
  182. package/dist/navigation/NavigationClient.mjs +1 -1
  183. package/dist/network/FetchClient.mjs +1 -1
  184. package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
  185. package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
  186. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +7 -0
  187. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -1
  188. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +45 -4
  189. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  190. package/dist/operatingcontext/UnknownOperatingContext.d.ts +26 -0
  191. package/dist/operatingcontext/UnknownOperatingContext.d.ts.map +1 -0
  192. package/dist/operatingcontext/UnknownOperatingContext.mjs +49 -0
  193. package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -0
  194. package/dist/packageMetadata.d.ts +1 -1
  195. package/dist/packageMetadata.mjs +2 -2
  196. package/dist/telemetry/BrowserPerformanceClient.mjs +1 -1
  197. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
  198. package/dist/utils/BrowserConstants.mjs +1 -1
  199. package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
  200. package/dist/utils/BrowserProtocolUtils.mjs +3 -3
  201. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  202. package/dist/utils/BrowserUtils.d.ts +54 -53
  203. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  204. package/dist/utils/BrowserUtils.mjs +114 -102
  205. package/dist/utils/BrowserUtils.mjs.map +1 -1
  206. package/lib/msal-browser.cjs +61 -18042
  207. package/lib/msal-browser.cjs.map +1 -1
  208. package/lib/msal-browser.js +13593 -12505
  209. package/lib/msal-browser.js.map +1 -1
  210. package/lib/msal-browser.min.js +66 -65
  211. package/package.json +2 -2
  212. package/src/app/IPublicClientApplication.ts +55 -18
  213. package/src/app/PublicClientApplication.ts +19 -7
  214. package/src/app/PublicClientNext.ts +442 -0
  215. package/src/broker/nativeBroker/NativeMessageHandler.ts +12 -15
  216. package/src/broker/nativeBroker/NativeStatusCodes.ts +13 -0
  217. package/src/cache/BrowserCacheManager.ts +29 -103
  218. package/src/cache/BrowserStorage.ts +9 -11
  219. package/src/config/Configuration.ts +21 -8
  220. package/src/controllers/ControllerFactory.ts +36 -25
  221. package/src/controllers/IController.ts +4 -1
  222. package/src/controllers/NestedAppAuthController.ts +525 -0
  223. package/src/controllers/StandardController.ts +163 -98
  224. package/src/controllers/UnknownOperatingContextController.ts +383 -0
  225. package/src/crypto/BrowserCrypto.ts +119 -103
  226. package/src/crypto/CryptoOps.ts +18 -27
  227. package/src/crypto/PkceGenerator.ts +93 -54
  228. package/src/encode/Base64Decode.ts +21 -1
  229. package/src/error/BrowserAuthError.ts +13 -1
  230. package/src/error/BrowserAuthErrorCodes.ts +1 -0
  231. package/src/error/BrowserConfigurationAuthError.ts +33 -102
  232. package/src/error/BrowserConfigurationAuthErrorCodes.ts +9 -0
  233. package/src/error/NativeAuthError.ts +73 -101
  234. package/src/error/NativeAuthErrorCodes.ts +7 -0
  235. package/src/error/NestedAppAuthError.ts +32 -0
  236. package/src/event/EventHandler.ts +2 -1
  237. package/src/index.ts +8 -10
  238. package/src/interaction_client/BaseInteractionClient.ts +14 -8
  239. package/src/interaction_client/NativeInteractionClient.ts +48 -14
  240. package/src/interaction_client/PopupClient.ts +2 -1
  241. package/src/interaction_client/RedirectClient.ts +1 -1
  242. package/src/interaction_client/SilentAuthCodeClient.ts +22 -19
  243. package/src/interaction_client/SilentCacheClient.ts +28 -28
  244. package/src/interaction_client/SilentIframeClient.ts +54 -18
  245. package/src/interaction_client/SilentRefreshClient.ts +26 -28
  246. package/src/interaction_client/StandardInteractionClient.ts +37 -68
  247. package/src/interaction_handler/InteractionHandler.ts +20 -15
  248. package/src/interaction_handler/RedirectHandler.ts +6 -2
  249. package/src/interaction_handler/SilentHandler.ts +177 -230
  250. package/src/naa/AccountInfo.ts +17 -0
  251. package/src/naa/AccountRequests.ts +16 -0
  252. package/src/naa/AuthBridge.ts +16 -0
  253. package/src/naa/BridgeCapabilities.ts +8 -0
  254. package/src/naa/BridgeError.ts +18 -0
  255. package/src/naa/BridgeProxy.ts +230 -0
  256. package/src/naa/BridgeRequest.ts +12 -0
  257. package/src/naa/BridgeRequestEnvelope.ts +46 -0
  258. package/src/naa/BridgeResponseEnvelope.ts +21 -0
  259. package/src/naa/BridgeStatusCode.ts +15 -0
  260. package/src/naa/IBridgeProxy.ts +25 -0
  261. package/src/naa/InitializeBridgeResponse.ts +12 -0
  262. package/src/naa/TokenRequest.ts +26 -0
  263. package/src/naa/TokenResponse.ts +61 -0
  264. package/src/naa/mapping/NestedAppAuthAdapter.ts +252 -0
  265. package/src/operatingcontext/TeamsAppOperatingContext.ts +43 -3
  266. package/src/operatingcontext/UnknownOperatingContext.ts +48 -0
  267. package/src/packageMetadata.ts +1 -1
  268. package/src/utils/BrowserProtocolUtils.ts +3 -2
  269. package/src/utils/BrowserUtils.ts +133 -125
  270. package/dist/crypto/ISubtleCrypto.d.ts +0 -10
  271. package/dist/crypto/ISubtleCrypto.d.ts.map +0 -1
  272. package/dist/crypto/ModernBrowserCrypto.d.ts +0 -10
  273. package/dist/crypto/ModernBrowserCrypto.d.ts.map +0 -1
  274. package/dist/crypto/ModernBrowserCrypto.mjs +0 -31
  275. package/dist/crypto/ModernBrowserCrypto.mjs.map +0 -1
  276. package/dist/utils/BrowserStringUtils.d.ts +0 -22
  277. package/dist/utils/BrowserStringUtils.d.ts.map +0 -1
  278. package/dist/utils/BrowserStringUtils.mjs +0 -144
  279. package/dist/utils/BrowserStringUtils.mjs.map +0 -1
  280. package/src/crypto/ISubtleCrypto.ts +0 -30
  281. package/src/crypto/ModernBrowserCrypto.ts +0 -69
  282. package/src/utils/BrowserStringUtils.ts +0 -143
@@ -0,0 +1,275 @@
1
+ /*! @azure/msal-browser v3.3.0 2023-10-20 */
2
+ 'use strict';
3
+ import { DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';
4
+ import { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from '../cache/BrowserCacheManager.mjs';
5
+ import { CryptoOps } from '../crypto/CryptoOps.mjs';
6
+ import { blockAPICallsBeforeInitialize, blockNonBrowserEnvironment } from '../utils/BrowserUtils.mjs';
7
+ import { EventHandler } from '../event/EventHandler.mjs';
8
+
9
+ /*
10
+ * Copyright (c) Microsoft Corporation. All rights reserved.
11
+ * Licensed under the MIT License.
12
+ */
13
+ /**
14
+ * UnknownOperatingContextController class
15
+ *
16
+ * - Until initialize method is called, this controller is the default
17
+ * - AFter initialize method is called, this controller will be swapped out for the appropriate controller
18
+ * if the operating context can be determined; otherwise this controller will continued be used
19
+ *
20
+ * - Why do we have this? We don't want to dynamically import (download) all of the code in StandardController if we don't need to.
21
+ *
22
+ * - Only includes implementation for getAccounts and handleRedirectPromise
23
+ * - All other methods are will throw initialization error (because either initialize method or the factory method were not used)
24
+ * - This controller is necessary for React Native wrapper, server side rendering and any other scenario where we don't have a DOM
25
+ *
26
+ */
27
+ class UnknownOperatingContextController {
28
+ constructor(operatingContext) {
29
+ // Flag representing whether or not the initialize API has been called and completed
30
+ this.initialized = false;
31
+ this.operatingContext = operatingContext;
32
+ this.isBrowserEnvironment =
33
+ this.operatingContext.isBrowserEnvironment();
34
+ this.config = operatingContext.getConfig();
35
+ this.logger = operatingContext.getLogger();
36
+ // Initialize performance client
37
+ this.performanceClient = this.config.telemetry.client;
38
+ // Initialize the crypto class.
39
+ this.browserCrypto = this.isBrowserEnvironment
40
+ ? new CryptoOps(this.logger, this.performanceClient)
41
+ : DEFAULT_CRYPTO_IMPLEMENTATION;
42
+ // Initialize the browser storage class.
43
+ this.browserStorage = this.isBrowserEnvironment
44
+ ? new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger)
45
+ : DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);
46
+ this.eventHandler = new EventHandler(this.logger, this.browserCrypto);
47
+ }
48
+ getBrowserStorage() {
49
+ return this.browserStorage;
50
+ }
51
+ getEventHandler() {
52
+ return this.eventHandler;
53
+ }
54
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
+ getAccount(accountFilter) {
56
+ return null;
57
+ }
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
+ getAccountByHomeId(homeAccountId) {
60
+ return null;
61
+ }
62
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
63
+ getAccountByLocalId(localAccountId) {
64
+ return null;
65
+ }
66
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
+ getAccountByUsername(username) {
68
+ return null;
69
+ }
70
+ getAllAccounts() {
71
+ return [];
72
+ }
73
+ initialize() {
74
+ this.initialized = true;
75
+ return Promise.resolve();
76
+ }
77
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
78
+ acquireTokenPopup(request) {
79
+ blockAPICallsBeforeInitialize(this.initialized);
80
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
81
+ return {};
82
+ }
83
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
84
+ acquireTokenRedirect(request) {
85
+ blockAPICallsBeforeInitialize(this.initialized);
86
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
87
+ return Promise.resolve();
88
+ }
89
+ acquireTokenSilent(
90
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
91
+ silentRequest) {
92
+ blockAPICallsBeforeInitialize(this.initialized);
93
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
94
+ return {};
95
+ }
96
+ acquireTokenByCode(
97
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
98
+ request) {
99
+ blockAPICallsBeforeInitialize(this.initialized);
100
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
101
+ return {};
102
+ }
103
+ acquireTokenNative(
104
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
105
+ request,
106
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
107
+ apiId,
108
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
109
+ accountId) {
110
+ blockAPICallsBeforeInitialize(this.initialized);
111
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
112
+ return {};
113
+ }
114
+ acquireTokenByRefreshToken(
115
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
116
+ commonRequest,
117
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
118
+ silentRequest) {
119
+ blockAPICallsBeforeInitialize(this.initialized);
120
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
121
+ return {};
122
+ }
123
+ addEventCallback(callback) {
124
+ return this.eventHandler.addEventCallback(callback);
125
+ }
126
+ removeEventCallback(callbackId) {
127
+ this.eventHandler.removeEventCallback(callbackId);
128
+ }
129
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
130
+ addPerformanceCallback(callback) {
131
+ blockAPICallsBeforeInitialize(this.initialized);
132
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
133
+ return "";
134
+ }
135
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
136
+ removePerformanceCallback(callbackId) {
137
+ blockAPICallsBeforeInitialize(this.initialized);
138
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
139
+ return true;
140
+ }
141
+ enableAccountStorageEvents() {
142
+ blockAPICallsBeforeInitialize(this.initialized);
143
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
144
+ }
145
+ disableAccountStorageEvents() {
146
+ blockAPICallsBeforeInitialize(this.initialized);
147
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
148
+ }
149
+ handleRedirectPromise(
150
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
151
+ hash) {
152
+ blockAPICallsBeforeInitialize(this.initialized);
153
+ return Promise.resolve(null);
154
+ }
155
+ loginPopup(
156
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
157
+ request) {
158
+ blockAPICallsBeforeInitialize(this.initialized);
159
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
160
+ return {};
161
+ }
162
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
163
+ loginRedirect(request) {
164
+ blockAPICallsBeforeInitialize(this.initialized);
165
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
166
+ return {};
167
+ }
168
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
169
+ logout(logoutRequest) {
170
+ blockAPICallsBeforeInitialize(this.initialized);
171
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
172
+ return {};
173
+ }
174
+ logoutRedirect(
175
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
176
+ logoutRequest) {
177
+ blockAPICallsBeforeInitialize(this.initialized);
178
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
179
+ return {};
180
+ }
181
+ logoutPopup(
182
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
183
+ logoutRequest) {
184
+ blockAPICallsBeforeInitialize(this.initialized);
185
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
186
+ return {};
187
+ }
188
+ ssoSilent(
189
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
190
+ request) {
191
+ blockAPICallsBeforeInitialize(this.initialized);
192
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
193
+ return {};
194
+ }
195
+ getTokenCache() {
196
+ blockAPICallsBeforeInitialize(this.initialized);
197
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
198
+ return {};
199
+ }
200
+ getLogger() {
201
+ return this.logger;
202
+ }
203
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
204
+ setLogger(logger) {
205
+ blockAPICallsBeforeInitialize(this.initialized);
206
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
207
+ }
208
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
209
+ setActiveAccount(account) {
210
+ blockAPICallsBeforeInitialize(this.initialized);
211
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
212
+ }
213
+ getActiveAccount() {
214
+ blockAPICallsBeforeInitialize(this.initialized);
215
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
216
+ return null;
217
+ }
218
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
219
+ initializeWrapperLibrary(sku, version) {
220
+ this.browserStorage.setWrapperMetadata(sku, version);
221
+ }
222
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
223
+ setNavigationClient(navigationClient) {
224
+ blockAPICallsBeforeInitialize(this.initialized);
225
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
226
+ }
227
+ getConfiguration() {
228
+ return this.config;
229
+ }
230
+ isBrowserEnv() {
231
+ blockAPICallsBeforeInitialize(this.initialized);
232
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
233
+ return true;
234
+ }
235
+ getBrowserCrypto() {
236
+ blockAPICallsBeforeInitialize(this.initialized);
237
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
238
+ return {};
239
+ }
240
+ getPerformanceClient() {
241
+ blockAPICallsBeforeInitialize(this.initialized);
242
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
243
+ return {};
244
+ }
245
+ getRedirectResponse() {
246
+ blockAPICallsBeforeInitialize(this.initialized);
247
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
248
+ return {};
249
+ }
250
+ preflightBrowserEnvironmentCheck(
251
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
252
+ interactionType,
253
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
254
+ isAppEmbedded) {
255
+ blockAPICallsBeforeInitialize(this.initialized);
256
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
257
+ }
258
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
259
+ async clearCache(logoutRequest) {
260
+ blockAPICallsBeforeInitialize(this.initialized);
261
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
262
+ }
263
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
264
+ async hydrateCache(
265
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
266
+ result,
267
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
268
+ request) {
269
+ blockAPICallsBeforeInitialize(this.initialized);
270
+ blockNonBrowserEnvironment(this.isBrowserEnvironment);
271
+ }
272
+ }
273
+
274
+ export { UnknownOperatingContextController };
275
+ //# sourceMappingURL=UnknownOperatingContextController.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnknownOperatingContextController.mjs","sources":["../../src/controllers/UnknownOperatingContextController.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAKA;AAWA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAEA;;;;;;;;;;;;;AAaG;AACH,QAAa,IAAA,CAAA,iBAAA,GAAA,IAAA,CAAA,MAAA,CAAA,SAAkC;AAE3C;AAGA,QAAA,IAAA,CAAS,aAAS,GAAO,IAAA,CAAA,oBAAA;AAGzB,cAAU,IAAQ,SAAe,CAAA,IAAA,CAAA,MAAE,wBAAoB,CAAA;AAGvD,cAAU;AAGV;AAGA,QAAA,IAAA,CAAS,cAAuB,GAAA,IAAA,CAAA,oBAAU;AAG1C,cAAU,IAAA,mBAAsB,CAAA,IAAA,CAAO,MAAC,CAAA,IAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,KAAA,EAAA,IAAA,CAAA,aAAA,EAAA,IAAA,CAAA,MAAA,CAAA;AAGxC,cAAU,6BAA6B,CAAA,IAAA,CAAA,MAAA,CAAA,IAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,CAAA;AAEvC,QAAA,IAAA,CAAS,YAAsB,GAAA,IAAA,iBAAc,CAAC,MAAA,EAAA,IAAA,CAAA,aAAA,CAAA,CAAA;AAElC,KAAA;AAiCZ,IAAA,iBAAiB;AAIjB,QAAA,OAAA,IAAe,eAAgB,CAAA;AAK/B,KAAA;AAIA,IAAA,eAAA,GAAkB;AAIlB,QAAA,OAAA,IAAA,CAAA,YAAkC,CAAA;AAIlC,KAAA;;AAMA,IAAA,UAAU,CAAI,aAAQ,EAAI;QAKT,OAAA,IAAA,CAAA;KAMG;;IAapB,kBAAkB,CAEd,aAAS,EAAA;AAMb,QAAA,OAAA,IAAA,CAAA;AAwBA,KAAA;AAUA;AAGA,IAAA,mBAAmB,CAAC,cAAY,EAAA;AAIhC,QAAA,OAAA,IAAA,CAAA;AAMA,KAAA;AAKA;AAIA,IAAA,oBAAA,CAAA,UAA+B;AAK/B,QAAA,OAAA,IAAA,CAAA;KAOU;IASV,cAAc,GAAO;QAMf,OAAc,EAAA,CAAA;KAKN;IAQd,UAAW,GAEM;QAMR,IAAA,CAAA,WAEW,GAAA,IACZ;AAcR,QAAA,OAAA,OAA4B,CAAA,OAAA,EAAA,CAAA;AAK5B,KAAA;AAIA;AAKA,IAAA,iBAAiB,CAAO,OAAA;QAIR,6BAAe,CAAG,IAAI,CAAA,WAAA,CAAA,CAAA;QAMd,0BAAM,CAAA,IAAA,CAAA,oBAA2B,CAAA,CAAA;AAIzD,QAAA,OAAA,EAAA,CAAA;AAIA,KAAA;AAGA;AAKA,IAAA,oBAAoB,CAAO,OAAA,EAAA;AAK3B,QAAA,6BAA0C,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA;QAKvB,0BAAc,CAAA,IAAE,CAAO,oBAAqB,CAAA,CAAA;AAK/D,QAAA,OAAA,OAAA,CAAA,OAAA,EAAA,CAAA;KAWgB;AAMV,IAAA,kBAEI;AAWb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,50 +1,45 @@
1
- import { Logger } from "@azure/msal-common";
2
- /**
3
- * This class implements functions used by the browser library to perform cryptography operations such as
4
- * hashing and encoding. It also has helper functions to validate the availability of specific APIs.
5
- */
6
- export declare class BrowserCrypto {
7
- private keygenAlgorithmOptions;
8
- private subtleCrypto;
9
- private logger;
10
- constructor(logger: Logger);
11
- /**
12
- * Check whether browser crypto is available.
13
- */
14
- private hasBrowserCrypto;
15
- /**
16
- * Returns a sha-256 hash of the given dataString as an ArrayBuffer.
17
- * @param dataString
18
- */
19
- sha256Digest(dataString: string): Promise<ArrayBuffer>;
20
- /**
21
- * Populates buffer with cryptographically random values.
22
- * @param dataBuffer
23
- */
24
- getRandomValues(dataBuffer: Uint8Array): Uint8Array;
25
- /**
26
- * Generates a keypair based on current keygen algorithm config.
27
- * @param extractable
28
- * @param usages
29
- */
30
- generateKeyPair(extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKeyPair>;
31
- /**
32
- * Export key as Json Web Key (JWK)
33
- * @param key
34
- */
35
- exportJwk(key: CryptoKey): Promise<JsonWebKey>;
36
- /**
37
- * Imports key as Json Web Key (JWK), can set extractable and usages.
38
- * @param key
39
- * @param extractable
40
- * @param usages
41
- */
42
- importJwk(key: JsonWebKey, extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKey>;
43
- /**
44
- * Signs given data with given key
45
- * @param key
46
- * @param data
47
- */
48
- sign(key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
49
- }
1
+ import { IPerformanceClient, Logger } from "@azure/msal-common";
2
+ /**
3
+ * Check whether browser crypto is available.
4
+ */
5
+ export declare function validateCryptoAvailable(logger: Logger): void;
6
+ /**
7
+ * Returns a sha-256 hash of the given dataString as an ArrayBuffer.
8
+ * @param dataString
9
+ */
10
+ export declare function sha256Digest(dataString: string, performanceClient?: IPerformanceClient, correlationId?: string): Promise<ArrayBuffer>;
11
+ /**
12
+ * Populates buffer with cryptographically random values.
13
+ * @param dataBuffer
14
+ */
15
+ export declare function getRandomValues(dataBuffer: Uint8Array): Uint8Array;
16
+ /**
17
+ * Creates a new random GUID
18
+ * @returns
19
+ */
20
+ export declare function createNewGuid(): string;
21
+ /**
22
+ * Generates a keypair based on current keygen algorithm config.
23
+ * @param extractable
24
+ * @param usages
25
+ */
26
+ export declare function generateKeyPair(extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKeyPair>;
27
+ /**
28
+ * Export key as Json Web Key (JWK)
29
+ * @param key
30
+ */
31
+ export declare function exportJwk(key: CryptoKey): Promise<JsonWebKey>;
32
+ /**
33
+ * Imports key as Json Web Key (JWK), can set extractable and usages.
34
+ * @param key
35
+ * @param extractable
36
+ * @param usages
37
+ */
38
+ export declare function importJwk(key: JsonWebKey, extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKey>;
39
+ /**
40
+ * Signs given data with given key
41
+ * @param key
42
+ * @param data
43
+ */
44
+ export declare function sign(key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
50
45
  //# sourceMappingURL=BrowserCrypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/BrowserCrypto.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAa5C;;;GAGG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAwB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5D;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAInD;;;;OAIG;IACG,eAAe,CACjB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,aAAa,CAAC;IAQzB;;;OAGG;IACG,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD;;;;;OAKG;IACG,SAAS,CACX,GAAG,EAAE,UAAU,EACf,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,SAAS,CAAC;IASrB;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAGtE"}
1
+ {"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/BrowserCrypto.ts"],"names":[],"mappings":"AASA,OAAO,EACH,kBAAkB,EAClB,MAAM,EAET,MAAM,oBAAoB,CAAC;AA2B5B;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAO5D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAC9B,UAAU,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAElE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAKnE;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC3B,GAAG,EAAE,UAAU,EACf,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,SAAS,CAAC,CAQpB;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CACtB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAMtB"}
@@ -1,14 +1,18 @@
1
- /*! @azure/msal-browser v3.1.0 2023-09-05 */
1
+ /*! @azure/msal-browser v3.3.0 2023-10-20 */
2
2
  'use strict';
3
- import { BrowserStringUtils } from '../utils/BrowserStringUtils.mjs';
4
3
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
- import { ModernBrowserCrypto } from './ModernBrowserCrypto.mjs';
4
+ import { PerformanceEvents } from '@azure/msal-common';
5
+ import { KEY_FORMAT_JWK } from '../utils/BrowserConstants.mjs';
6
6
  import { cryptoNonExistent } from '../error/BrowserAuthErrorCodes.mjs';
7
7
 
8
8
  /*
9
9
  * Copyright (c) Microsoft Corporation. All rights reserved.
10
10
  * Licensed under the MIT License.
11
11
  */
12
+ /**
13
+ * This file defines functions used by the browser library to perform cryptography operations such as
14
+ * hashing and encoding. It also has helper functions to validate the availability of specific APIs.
15
+ */
12
16
  /**
13
17
  * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams
14
18
  */
@@ -20,84 +24,80 @@ const S256_HASH_ALG = "SHA-256";
20
24
  const MODULUS_LENGTH = 2048;
21
25
  // Public Exponent
22
26
  const PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);
27
+ const keygenAlgorithmOptions = {
28
+ name: PKCS1_V15_KEYGEN_ALG,
29
+ hash: S256_HASH_ALG,
30
+ modulusLength: MODULUS_LENGTH,
31
+ publicExponent: PUBLIC_EXPONENT,
32
+ };
23
33
  /**
24
- * This class implements functions used by the browser library to perform cryptography operations such as
25
- * hashing and encoding. It also has helper functions to validate the availability of specific APIs.
34
+ * Check whether browser crypto is available.
26
35
  */
27
- class BrowserCrypto {
28
- constructor(logger) {
29
- this.logger = logger;
30
- if (this.hasBrowserCrypto()) {
31
- // Use standard modern web crypto if available
32
- this.logger.verbose("BrowserCrypto: modern crypto interface available");
33
- this.subtleCrypto = new ModernBrowserCrypto();
34
- }
35
- else {
36
- this.logger.error("BrowserCrypto: crypto interface is unavailable");
37
- throw createBrowserAuthError(cryptoNonExistent);
38
- }
39
- this.keygenAlgorithmOptions = {
40
- name: PKCS1_V15_KEYGEN_ALG,
41
- hash: S256_HASH_ALG,
42
- modulusLength: MODULUS_LENGTH,
43
- publicExponent: PUBLIC_EXPONENT,
44
- };
45
- }
46
- /**
47
- * Check whether browser crypto is available.
48
- */
49
- hasBrowserCrypto() {
50
- return "crypto" in window;
51
- }
52
- /**
53
- * Returns a sha-256 hash of the given dataString as an ArrayBuffer.
54
- * @param dataString
55
- */
56
- async sha256Digest(dataString) {
57
- const data = BrowserStringUtils.stringToUtf8Arr(dataString);
58
- // MSR Crypto wants object with name property, instead of string
59
- return this.subtleCrypto.digest({ name: S256_HASH_ALG }, data);
60
- }
61
- /**
62
- * Populates buffer with cryptographically random values.
63
- * @param dataBuffer
64
- */
65
- getRandomValues(dataBuffer) {
66
- return this.subtleCrypto.getRandomValues(dataBuffer);
67
- }
68
- /**
69
- * Generates a keypair based on current keygen algorithm config.
70
- * @param extractable
71
- * @param usages
72
- */
73
- async generateKeyPair(extractable, usages) {
74
- return this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages);
36
+ function validateCryptoAvailable(logger) {
37
+ if ("crypto" in window) {
38
+ logger.verbose("BrowserCrypto: modern crypto interface available");
75
39
  }
76
- /**
77
- * Export key as Json Web Key (JWK)
78
- * @param key
79
- */
80
- async exportJwk(key) {
81
- return this.subtleCrypto.exportKey(key);
82
- }
83
- /**
84
- * Imports key as Json Web Key (JWK), can set extractable and usages.
85
- * @param key
86
- * @param extractable
87
- * @param usages
88
- */
89
- async importJwk(key, extractable, usages) {
90
- return this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages);
91
- }
92
- /**
93
- * Signs given data with given key
94
- * @param key
95
- * @param data
96
- */
97
- async sign(key, data) {
98
- return this.subtleCrypto.sign(this.keygenAlgorithmOptions, key, data);
40
+ else {
41
+ logger.error("BrowserCrypto: crypto interface is unavailable");
42
+ throw createBrowserAuthError(cryptoNonExistent);
99
43
  }
100
44
  }
45
+ /**
46
+ * Returns a sha-256 hash of the given dataString as an ArrayBuffer.
47
+ * @param dataString
48
+ */
49
+ async function sha256Digest(dataString, performanceClient, correlationId) {
50
+ performanceClient?.addQueueMeasurement(PerformanceEvents.Sha256Digest, correlationId);
51
+ const encoder = new TextEncoder();
52
+ const data = encoder.encode(dataString);
53
+ return window.crypto.subtle.digest(S256_HASH_ALG, data);
54
+ }
55
+ /**
56
+ * Populates buffer with cryptographically random values.
57
+ * @param dataBuffer
58
+ */
59
+ function getRandomValues(dataBuffer) {
60
+ return window.crypto.getRandomValues(dataBuffer);
61
+ }
62
+ /**
63
+ * Creates a new random GUID
64
+ * @returns
65
+ */
66
+ function createNewGuid() {
67
+ return window.crypto.randomUUID();
68
+ }
69
+ /**
70
+ * Generates a keypair based on current keygen algorithm config.
71
+ * @param extractable
72
+ * @param usages
73
+ */
74
+ async function generateKeyPair(extractable, usages) {
75
+ return window.crypto.subtle.generateKey(keygenAlgorithmOptions, extractable, usages);
76
+ }
77
+ /**
78
+ * Export key as Json Web Key (JWK)
79
+ * @param key
80
+ */
81
+ async function exportJwk(key) {
82
+ return window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key);
83
+ }
84
+ /**
85
+ * Imports key as Json Web Key (JWK), can set extractable and usages.
86
+ * @param key
87
+ * @param extractable
88
+ * @param usages
89
+ */
90
+ async function importJwk(key, extractable, usages) {
91
+ return window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, keygenAlgorithmOptions, extractable, usages);
92
+ }
93
+ /**
94
+ * Signs given data with given key
95
+ * @param key
96
+ * @param data
97
+ */
98
+ async function sign(key, data) {
99
+ return window.crypto.subtle.sign(keygenAlgorithmOptions, key, data);
100
+ }
101
101
 
102
- export { BrowserCrypto };
102
+ export { createNewGuid, exportJwk, generateKeyPair, getRandomValues, importJwk, sha256Digest, sign, validateCryptoAvailable };
103
103
  //# sourceMappingURL=BrowserCrypto.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserCrypto.mjs","sources":["../../src/crypto/BrowserCrypto.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAYA;AAaA;;;;;AASgB;AAwBZ;;AAEG;AACH,MAAA,aAAwB,GAAA,SAAA,CAAA;AAIxB;;;AAGG,MAAA,eAAA,GAAA,IAAA,UAAA,CAAA,CAAA,IAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA,CAAA;;AAOH;;;AAGG,MAAA,aAAA,CAAA;AACH,IAAA,WAAA,CAAA,MAAgB,EAAA;AAIhB,QAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;;;;AAIG,YAAA,IAAA,CAAA,YAAA,GAAA,IAAA,mBAAA,EAAA,CAAA;AACG,SAAA;AAWN,aAAA;;;AAGG,SAAA;QACY,IAAA,CAAA,sBAAyB,GAAA;AAIxC,YAAA,IAAA,EAAA,oBAAA;;;;;AAKG,KAAA;AACG;AAaN;;;;AAIG,KAAA;AACG;AAGT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BrowserCrypto.mjs","sources":["../../src/crypto/BrowserCrypto.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.cryptoNonExistent"],"mappings":";;;;;;;AASA;AA+BA;;AAEG;;AAaA;AACH;AAiBA;;;AAGG;AACH;AAIA,MAAA,oBAAA,GAAA,mBAAA,CAAA;;;AAGG;AACH,MAAgB,cAAA,GAAA,IAAA,CAAA;AAIhB;;;;AAIG,IAAA,IAAA,EAAA,aAAA;AACH,IAAA,aAAA,EAAA;AAWA,IAAA,cAAA,EAAA,eAAA;;;AAGG;AACH;AAOA,SAAA,uBAAA,CAAA,MAAA,EAAA;;;;;AAKG,QAAA,MAAA,CAAA,KAAA,CAAA,gDAAA,CAAA,CAAA;AACH,QAAsB,MAAA,sBACf,CAAAA;AAaP,KAAA;;;;AAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { ICrypto, IPerformanceClient, Logger, PkceCodes, SignedHttpRequest, SignedHttpRequestParameters } from "@azure/msal-common";
1
+ import { ICrypto, IPerformanceClient, Logger, SignedHttpRequest, SignedHttpRequestParameters } from "@azure/msal-common";
2
2
  export type CachedKeyPair = {
3
3
  publicKey: CryptoKey;
4
4
  privateKey: CryptoKey;
@@ -10,8 +10,6 @@ export type CachedKeyPair = {
10
10
  * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).
11
11
  */
12
12
  export declare class CryptoOps implements ICrypto {
13
- private browserCrypto;
14
- private pkceGenerator;
15
13
  private logger;
16
14
  /**
17
15
  * CryptoOps can be used in contexts outside a PCA instance,
@@ -37,10 +35,6 @@ export declare class CryptoOps implements ICrypto {
37
35
  * @param input
38
36
  */
39
37
  base64Decode(input: string): string;
40
- /**
41
- * Generates PKCE codes used in Authorization Code Flow.
42
- */
43
- generatePkceCodes(): Promise<PkceCodes>;
44
38
  /**
45
39
  * Generates a keypair, stores it and returns a thumbprint
46
40
  * @param request
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoOps.d.ts","sourceRoot":"","sources":["../../src/crypto/CryptoOps.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,kBAAkB,EAElB,MAAM,EAEN,SAAS,EACT,iBAAiB,EACjB,2BAA2B,EAC9B,MAAM,oBAAoB,CAAC;AAY5B,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,qBAAa,SAAU,YAAW,OAAO;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAiC;IAE1D,OAAO,CAAC,MAAM,CAAC,cAAc,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAiB;IAC3C,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,kBAAkB;IASlE;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,SAAS,CAAC;IAI7C;;;OAGG;IACG,sBAAsB,CACxB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,MAAM,CAAC;IAqDlB;;;OAGG;IACG,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIvC;;;;OAIG;IACG,OAAO,CACT,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;IA0DlB;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOvD"}
1
+ {"version":3,"file":"CryptoOps.d.ts","sourceRoot":"","sources":["../../src/crypto/CryptoOps.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,kBAAkB,EAElB,MAAM,EAEN,iBAAiB,EACjB,2BAA2B,EAC9B,MAAM,oBAAoB,CAAC;AAU5B,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,qBAAa,SAAU,YAAW,OAAO;IACrC,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAiC;IAE1D,OAAO,CAAC,MAAM,CAAC,cAAc,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAiB;IAC3C,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,kBAAkB;IAQlE;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;;OAGG;IACG,sBAAsB,CACxB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,MAAM,CAAC;IAqDlB;;;OAGG;IACG,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIvC;;;;OAIG;IACG,OAAO,CACT,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;IA0DlB;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOvD"}