@azure/msal-browser 3.5.1-beta.0 → 3.6.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 (257) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +51 -51
  2. package/dist/app/IPublicClientApplication.mjs +102 -102
  3. package/dist/app/IPublicClientApplication.mjs.map +1 -1
  4. package/dist/app/PublicClientApplication.d.ts +269 -268
  5. package/dist/app/PublicClientApplication.d.ts.map +1 -1
  6. package/dist/app/PublicClientApplication.mjs +333 -333
  7. package/dist/app/PublicClientApplication.mjs.map +1 -1
  8. package/dist/app/PublicClientNext.d.ts +273 -273
  9. package/dist/app/PublicClientNext.mjs +351 -351
  10. package/dist/app/PublicClientNext.mjs.map +1 -1
  11. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  12. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  13. package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
  14. package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
  15. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  16. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  17. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  18. package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
  19. package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
  20. package/dist/cache/AsyncMemoryStorage.mjs +132 -132
  21. package/dist/cache/AsyncMemoryStorage.mjs.map +1 -1
  22. package/dist/cache/BrowserCacheManager.d.ts +395 -383
  23. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  24. package/dist/cache/BrowserCacheManager.mjs +1282 -1262
  25. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  26. package/dist/cache/BrowserStorage.d.ts +11 -11
  27. package/dist/cache/BrowserStorage.mjs +32 -32
  28. package/dist/cache/BrowserStorage.mjs.map +1 -1
  29. package/dist/cache/CryptoKeyStore.d.ts +18 -18
  30. package/dist/cache/CryptoKeyStore.mjs +40 -40
  31. package/dist/cache/CryptoKeyStore.mjs.map +1 -1
  32. package/dist/cache/DatabaseStorage.d.ts +56 -56
  33. package/dist/cache/DatabaseStorage.mjs +190 -190
  34. package/dist/cache/DatabaseStorage.mjs.map +1 -1
  35. package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
  36. package/dist/cache/ITokenCache.d.ts +11 -11
  37. package/dist/cache/IWindowStorage.d.ts +27 -27
  38. package/dist/cache/MemoryStorage.d.ts +11 -11
  39. package/dist/cache/MemoryStorage.mjs +31 -31
  40. package/dist/cache/MemoryStorage.mjs.map +1 -1
  41. package/dist/cache/TokenCache.d.ts +77 -77
  42. package/dist/cache/TokenCache.d.ts.map +1 -1
  43. package/dist/cache/TokenCache.mjs +221 -225
  44. package/dist/cache/TokenCache.mjs.map +1 -1
  45. package/dist/config/Configuration.d.ts +206 -206
  46. package/dist/config/Configuration.d.ts.map +1 -1
  47. package/dist/config/Configuration.mjs +128 -128
  48. package/dist/config/Configuration.mjs.map +1 -1
  49. package/dist/controllers/ControllerFactory.d.ts +4 -4
  50. package/dist/controllers/ControllerFactory.d.ts.map +1 -1
  51. package/dist/controllers/ControllerFactory.mjs +29 -29
  52. package/dist/controllers/ControllerFactory.mjs.map +1 -1
  53. package/dist/controllers/IController.d.ts +61 -61
  54. package/dist/controllers/NestedAppAuthController.d.ts +95 -95
  55. package/dist/controllers/NestedAppAuthController.mjs +334 -334
  56. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  57. package/dist/controllers/StandardController.d.ts +407 -407
  58. package/dist/controllers/StandardController.d.ts.map +1 -1
  59. package/dist/controllers/StandardController.mjs +1291 -1293
  60. package/dist/controllers/StandardController.mjs.map +1 -1
  61. package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
  62. package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
  63. package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
  64. package/dist/crypto/BrowserCrypto.d.ts +44 -44
  65. package/dist/crypto/BrowserCrypto.mjs +93 -93
  66. package/dist/crypto/BrowserCrypto.mjs.map +1 -1
  67. package/dist/crypto/CryptoOps.d.ts +63 -63
  68. package/dist/crypto/CryptoOps.mjs +145 -145
  69. package/dist/crypto/CryptoOps.mjs.map +1 -1
  70. package/dist/crypto/PkceGenerator.d.ts +8 -8
  71. package/dist/crypto/PkceGenerator.mjs +54 -54
  72. package/dist/crypto/PkceGenerator.mjs.map +1 -1
  73. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  74. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  75. package/dist/crypto/SignedHttpRequest.mjs.map +1 -1
  76. package/dist/encode/Base64Decode.d.ts +9 -9
  77. package/dist/encode/Base64Decode.mjs +36 -36
  78. package/dist/encode/Base64Decode.mjs.map +1 -1
  79. package/dist/encode/Base64Encode.d.ts +19 -19
  80. package/dist/encode/Base64Encode.mjs +43 -43
  81. package/dist/encode/Base64Encode.mjs.map +1 -1
  82. package/dist/error/BrowserAuthError.d.ts +250 -250
  83. package/dist/error/BrowserAuthError.mjs +258 -258
  84. package/dist/error/BrowserAuthError.mjs.map +1 -1
  85. package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
  86. package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
  87. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  88. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  89. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  90. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  91. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  92. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  93. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -1
  94. package/dist/error/NativeAuthError.d.ts +29 -29
  95. package/dist/error/NativeAuthError.mjs +60 -60
  96. package/dist/error/NativeAuthError.mjs.map +1 -1
  97. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  98. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  99. package/dist/error/NativeAuthErrorCodes.mjs.map +1 -1
  100. package/dist/error/NestedAppAuthError.d.ts +14 -14
  101. package/dist/error/NestedAppAuthError.mjs +23 -23
  102. package/dist/error/NestedAppAuthError.mjs.map +1 -1
  103. package/dist/event/EventHandler.d.ts +41 -41
  104. package/dist/event/EventHandler.mjs +119 -119
  105. package/dist/event/EventHandler.mjs.map +1 -1
  106. package/dist/event/EventMessage.d.ts +25 -25
  107. package/dist/event/EventMessage.mjs +68 -68
  108. package/dist/event/EventMessage.mjs.map +1 -1
  109. package/dist/event/EventType.d.ts +28 -28
  110. package/dist/event/EventType.mjs +31 -31
  111. package/dist/event/EventType.mjs.map +1 -1
  112. package/dist/index.d.ts +39 -39
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.mjs +1 -1
  115. package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
  116. package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
  117. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  118. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  119. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  120. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs.map +1 -1
  121. package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
  122. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  123. package/dist/interaction_client/NativeInteractionClient.mjs +539 -549
  124. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  125. package/dist/interaction_client/PopupClient.d.ts +105 -105
  126. package/dist/interaction_client/PopupClient.mjs +432 -432
  127. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  128. package/dist/interaction_client/RedirectClient.d.ts +49 -49
  129. package/dist/interaction_client/RedirectClient.mjs +311 -311
  130. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  131. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  132. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  133. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  134. package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
  135. package/dist/interaction_client/SilentCacheClient.mjs +61 -61
  136. package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
  137. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  138. package/dist/interaction_client/SilentIframeClient.mjs +96 -96
  139. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  140. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  141. package/dist/interaction_client/SilentRefreshClient.mjs +43 -43
  142. package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
  143. package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
  144. package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
  145. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  146. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  147. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  148. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  149. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  150. package/dist/interaction_handler/RedirectHandler.mjs +134 -134
  151. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  152. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  153. package/dist/interaction_handler/SilentHandler.mjs +133 -133
  154. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  155. package/dist/naa/AccountInfo.d.ts +11 -11
  156. package/dist/naa/AccountRequests.d.ts +9 -9
  157. package/dist/naa/AuthBridge.d.ts +8 -5
  158. package/dist/naa/AuthBridge.d.ts.map +1 -1
  159. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  160. package/dist/naa/BridgeError.d.ts +9 -9
  161. package/dist/naa/BridgeError.mjs +7 -7
  162. package/dist/naa/BridgeError.mjs.map +1 -1
  163. package/dist/naa/BridgeProxy.d.ts +72 -72
  164. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  165. package/dist/naa/BridgeProxy.mjs +153 -152
  166. package/dist/naa/BridgeProxy.mjs.map +1 -1
  167. package/dist/naa/BridgeRequest.d.ts +6 -6
  168. package/dist/naa/BridgeRequestEnvelope.d.ts +13 -13
  169. package/dist/naa/BridgeResponseEnvelope.d.ts +10 -10
  170. package/dist/naa/BridgeStatusCode.d.ts +10 -10
  171. package/dist/naa/BridgeStatusCode.mjs +15 -15
  172. package/dist/naa/BridgeStatusCode.mjs.map +1 -1
  173. package/dist/naa/IBridgeProxy.d.ts +12 -12
  174. package/dist/naa/InitializeBridgeResponse.d.ts +6 -6
  175. package/dist/naa/TokenRequest.d.ts +19 -19
  176. package/dist/naa/TokenResponse.d.ts +15 -15
  177. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -23
  178. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +141 -141
  179. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  180. package/dist/navigation/INavigationClient.d.ts +16 -16
  181. package/dist/navigation/NavigationClient.d.ts +22 -22
  182. package/dist/navigation/NavigationClient.mjs +40 -40
  183. package/dist/navigation/NavigationClient.mjs.map +1 -1
  184. package/dist/navigation/NavigationOptions.d.ts +12 -12
  185. package/dist/network/FetchClient.d.ts +26 -26
  186. package/dist/network/FetchClient.mjs +99 -99
  187. package/dist/network/FetchClient.mjs.map +1 -1
  188. package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
  189. package/dist/operatingcontext/BaseOperatingContext.mjs +44 -44
  190. package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -1
  191. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  192. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  193. package/dist/operatingcontext/StandardOperatingContext.mjs.map +1 -1
  194. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
  195. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -85
  196. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  197. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  198. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  199. package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -1
  200. package/dist/packageMetadata.d.ts +2 -2
  201. package/dist/packageMetadata.mjs +4 -4
  202. package/dist/packageMetadata.mjs.map +1 -1
  203. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  204. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  205. package/dist/request/ClearCacheRequest.d.ts +10 -10
  206. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  207. package/dist/request/EndSessionRequest.d.ts +15 -15
  208. package/dist/request/PopupRequest.d.ts +34 -34
  209. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  210. package/dist/request/RedirectRequest.d.ts +35 -35
  211. package/dist/request/SilentRequest.d.ts +32 -32
  212. package/dist/request/SsoSilentRequest.d.ts +29 -29
  213. package/dist/response/AuthenticationResult.d.ts +4 -4
  214. package/dist/response/ResponseHandler.d.ts +7 -7
  215. package/dist/response/ResponseHandler.mjs +36 -36
  216. package/dist/response/ResponseHandler.mjs.map +1 -1
  217. package/dist/telemetry/BrowserPerformanceClient.d.ts +36 -36
  218. package/dist/telemetry/BrowserPerformanceClient.mjs +125 -125
  219. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  220. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  221. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  222. package/dist/telemetry/BrowserPerformanceMeasurement.mjs.map +1 -1
  223. package/dist/utils/BrowserConstants.d.ts +176 -176
  224. package/dist/utils/BrowserConstants.mjs +204 -204
  225. package/dist/utils/BrowserConstants.mjs.map +1 -1
  226. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  227. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  228. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  229. package/dist/utils/BrowserUtils.d.ts +56 -56
  230. package/dist/utils/BrowserUtils.mjs +125 -125
  231. package/dist/utils/BrowserUtils.mjs.map +1 -1
  232. package/lib/msal-browser.cjs +18217 -17928
  233. package/lib/msal-browser.cjs.map +1 -1
  234. package/lib/msal-browser.js +18217 -17928
  235. package/lib/msal-browser.js.map +1 -1
  236. package/lib/msal-browser.min.js +71 -68
  237. package/package.json +103 -102
  238. package/src/app/PublicClientApplication.ts +2 -1
  239. package/src/cache/BrowserCacheManager.ts +31 -4
  240. package/src/cache/DatabaseStorage.ts +1 -1
  241. package/src/cache/TokenCache.ts +33 -29
  242. package/src/config/Configuration.ts +1 -1
  243. package/src/controllers/ControllerFactory.ts +3 -5
  244. package/src/controllers/StandardController.ts +4 -6
  245. package/src/crypto/CryptoOps.ts +1 -1
  246. package/src/crypto/SignedHttpRequest.ts +1 -1
  247. package/src/index.ts +1 -0
  248. package/src/interaction_client/BaseInteractionClient.ts +2 -2
  249. package/src/interaction_client/NativeInteractionClient.ts +23 -20
  250. package/src/interaction_client/PopupClient.ts +1 -1
  251. package/src/interaction_client/RedirectClient.ts +3 -3
  252. package/src/interaction_client/SilentAuthCodeClient.ts +1 -1
  253. package/src/interaction_client/StandardInteractionClient.ts +1 -1
  254. package/src/interaction_handler/SilentHandler.ts +2 -2
  255. package/src/naa/AuthBridge.ts +3 -2
  256. package/src/naa/BridgeProxy.ts +6 -4
  257. package/src/packageMetadata.ts +1 -1
package/package.json CHANGED
@@ -1,105 +1,106 @@
1
1
  {
2
- "name": "@azure/msal-browser",
3
- "author": {
4
- "name": "Microsoft",
5
- "email": "nugetaad@microsoft.com",
6
- "url": "https://www.microsoft.com"
2
+ "name": "@azure/msal-browser",
3
+ "author": {
4
+ "name": "Microsoft",
5
+ "email": "nugetaad@microsoft.com",
6
+ "url": "https://www.microsoft.com"
7
+ },
8
+ "license": "MIT",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
12
+ },
13
+ "version": "3.6.0",
14
+ "description": "Microsoft Authentication Library for js",
15
+ "keywords": [
16
+ "implicit",
17
+ "authorization code",
18
+ "PKCE",
19
+ "js",
20
+ "AAD",
21
+ "msal",
22
+ "oauth"
23
+ ],
24
+ "type": "module",
25
+ "sideEffects": false,
26
+ "module": "./dist/index.mjs",
27
+ "types": "./dist/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.ts",
31
+ "module": "./dist/index.mjs",
32
+ "import": "./dist/index.mjs",
33
+ "require": "./lib/msal-browser.cjs",
34
+ "default": "./dist/index.mjs"
7
35
  },
8
- "license": "MIT",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
12
- },
13
- "version": "3.5.1-beta.0",
14
- "description": "Microsoft Authentication Library for js",
15
- "keywords": [
16
- "implicit",
17
- "authorization code",
18
- "PKCE",
19
- "js",
20
- "AAD",
21
- "msal",
22
- "oauth"
23
- ],
24
- "type": "module",
25
- "sideEffects": false,
26
- "module": "./dist/index.mjs",
27
- "types": "./dist/index.d.ts",
28
- "exports": {
29
- ".": {
30
- "types": "./dist/index.d.ts",
31
- "module": "./dist/index.mjs",
32
- "import": "./dist/index.mjs",
33
- "require": "./lib/msal-browser.cjs",
34
- "default": "./dist/index.mjs"
35
- },
36
- "./package.json": "./package.json"
37
- },
38
- "engines": {
39
- "node": ">=0.8.0"
40
- },
41
- "beachball": {
42
- "disallowedChangeTypes": [
43
- "major"
44
- ]
45
- },
46
- "directories": {
47
- "test": "test"
48
- },
49
- "files": [
50
- "dist",
51
- "lib/msal-browser.js",
52
- "lib/msal-browser.js.map",
53
- "lib/msal-browser.cjs",
54
- "lib/msal-browser.cjs.map",
55
- "lib/msal-browser.min.js",
56
- "src"
57
- ],
58
- "scripts": {
59
- "clean": "shx rm -rf dist lib",
60
- "clean:coverage": "rimraf ../../.nyc_output/*",
61
- "lint": "eslint src --ext .ts",
62
- "lint:fix": "npm run lint -- --fix",
63
- "test": "jest",
64
- "test:coverage": "jest --coverage",
65
- "test:coverage:only": "npm run clean:coverage && npm run test:coverage",
66
- "build:all": "cd ../.. && npm run build --workspace=@azure/msal-common --workspace=@azure/msal-browser",
67
- "build:modules": "rollup -c --strictDeprecations --bundleConfigAsCjs",
68
- "build:modules:watch": "rollup -cw --bundleConfigAsCjs",
69
- "build": "npm run clean && npm run build:modules",
70
- "prepack": "npm run build:all",
71
- "format:check": "npx prettier --ignore-path .gitignore --check src test",
72
- "format:fix": "npx prettier --ignore-path .gitignore --write src test"
73
- },
74
- "devDependencies": {
75
- "@azure/storage-blob": "^12.2.1",
76
- "@babel/core": "^7.7.2",
77
- "@babel/plugin-proposal-class-properties": "^7.7.0",
78
- "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
79
- "@babel/preset-env": "^7.7.1",
80
- "@babel/preset-typescript": "^7.7.2",
81
- "@rollup/plugin-node-resolve": "^15.0.1",
82
- "@rollup/plugin-terser": "^0.4.0",
83
- "@rollup/plugin-typescript": "^11.0.0",
84
- "@types/jest": "^29.5.0",
85
- "@types/node": "^20.3.1",
86
- "@types/sinon": "^7.5.0",
87
- "dotenv": "^8.2.0",
88
- "eslint-config-msal": "^0.0.0",
89
- "fake-indexeddb": "^3.1.3",
90
- "jest": "^29.5.0",
91
- "jest-environment-jsdom": "^29.5.0",
92
- "prettier": "2.8.7",
93
- "rimraf": "^3.0.0",
94
- "rollup": "^3.14.0",
95
- "shx": "^0.3.2",
96
- "sinon": "^7.5.0",
97
- "ssri": "^8.0.1",
98
- "ts-jest": "^29.1.0",
99
- "tslib": "^1.10.0",
100
- "typescript": "^4.9.5"
101
- },
102
- "dependencies": {
103
- "@azure/msal-common": "14.4.1-beta.0"
104
- }
36
+ "./package.json": "./package.json"
37
+ },
38
+ "engines": {
39
+ "node": ">=0.8.0"
40
+ },
41
+ "beachball": {
42
+ "disallowedChangeTypes": [
43
+ "major"
44
+ ]
45
+ },
46
+ "directories": {
47
+ "test": "test"
48
+ },
49
+ "files": [
50
+ "dist",
51
+ "lib/msal-browser.js",
52
+ "lib/msal-browser.js.map",
53
+ "lib/msal-browser.cjs",
54
+ "lib/msal-browser.cjs.map",
55
+ "lib/msal-browser.min.js",
56
+ "src"
57
+ ],
58
+ "scripts": {
59
+ "clean": "shx rm -rf dist lib",
60
+ "clean:coverage": "rimraf ../../.nyc_output/*",
61
+ "lint": "eslint src --ext .ts",
62
+ "lint:fix": "npm run lint -- --fix",
63
+ "test": "jest",
64
+ "test:coverage": "jest --coverage",
65
+ "test:coverage:only": "npm run clean:coverage && npm run test:coverage",
66
+ "build:all": "cd ../.. && npm run build --workspace=@azure/msal-common --workspace=@azure/msal-browser",
67
+ "build:modules": "rollup -c --strictDeprecations --bundleConfigAsCjs",
68
+ "build:modules:watch": "rollup -cw --bundleConfigAsCjs",
69
+ "build": "npm run clean && npm run build:modules",
70
+ "prepack": "npm run build:all",
71
+ "format:check": "npx prettier --ignore-path .gitignore --check src test",
72
+ "format:fix": "npx prettier --ignore-path .gitignore --write src test"
73
+ },
74
+ "devDependencies": {
75
+ "@azure/storage-blob": "^12.2.1",
76
+ "@babel/core": "^7.7.2",
77
+ "@babel/plugin-proposal-class-properties": "^7.7.0",
78
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
79
+ "@babel/preset-env": "^7.7.1",
80
+ "@babel/preset-typescript": "^7.7.2",
81
+ "@rollup/plugin-node-resolve": "^15.0.1",
82
+ "@rollup/plugin-terser": "^0.4.0",
83
+ "@rollup/plugin-typescript": "^11.0.0",
84
+ "@types/jest": "^29.5.0",
85
+ "@types/node": "^20.3.1",
86
+ "@types/sinon": "^7.5.0",
87
+ "dotenv": "^8.2.0",
88
+ "eslint-config-msal": "^0.0.0",
89
+ "msal-test-utils": "^0.0.1",
90
+ "fake-indexeddb": "^3.1.3",
91
+ "jest": "^29.5.0",
92
+ "jest-environment-jsdom": "^29.5.0",
93
+ "prettier": "2.8.7",
94
+ "rimraf": "^3.0.0",
95
+ "rollup": "^3.14.0",
96
+ "shx": "^0.3.2",
97
+ "sinon": "^7.5.0",
98
+ "ssri": "^8.0.1",
99
+ "ts-jest": "^29.1.0",
100
+ "tslib": "^1.10.0",
101
+ "typescript": "^4.9.5"
102
+ },
103
+ "dependencies": {
104
+ "@azure/msal-common": "14.5.0"
105
+ }
105
106
  }
@@ -27,6 +27,7 @@ import { StandardOperatingContext } from "../operatingcontext/StandardOperatingC
27
27
  import { AuthenticationResult } from "../response/AuthenticationResult";
28
28
  import { EventCallbackFunction } from "../event/EventMessage";
29
29
  import { ClearCacheRequest } from "../request/ClearCacheRequest";
30
+ import { EndSessionPopupRequest } from "../request/EndSessionPopupRequest";
30
31
 
31
32
  /**
32
33
  * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications
@@ -306,7 +307,7 @@ export class PublicClientApplication implements IPublicClientApplication {
306
307
  * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server
307
308
  * @param logoutRequest
308
309
  */
309
- logoutPopup(logoutRequest?: EndSessionRequest): Promise<void> {
310
+ logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void> {
310
311
  return this.controller.logoutPopup(logoutRequest);
311
312
  }
312
313
 
@@ -394,15 +394,31 @@ export class BrowserCacheManager extends CacheManager {
394
394
  * fetch the account entity from the platform cache
395
395
  * @param accountKey
396
396
  */
397
- getAccount(accountKey: string): AccountEntity | null {
397
+ getAccount(accountKey: string, logger?: Logger): AccountEntity | null {
398
398
  this.logger.trace("BrowserCacheManager.getAccount called");
399
- const account = this.getItem(accountKey);
400
- if (!account) {
399
+ const accountEntity = this.getCachedAccountEntity(accountKey);
400
+
401
+ return this.updateOutdatedCachedAccount(
402
+ accountKey,
403
+ accountEntity,
404
+ logger
405
+ );
406
+ }
407
+
408
+ /**
409
+ * Reads account from cache, deserializes it into an account entity and returns it.
410
+ * If account is not found from the key, returns null and removes key from map.
411
+ * @param accountKey
412
+ * @returns
413
+ */
414
+ getCachedAccountEntity(accountKey: string): AccountEntity | null {
415
+ const serializedAccount = this.getItem(accountKey);
416
+ if (!serializedAccount) {
401
417
  this.removeAccountKeyFromMap(accountKey);
402
418
  return null;
403
419
  }
404
420
 
405
- const parsedAccount = this.validateAndParseJson(account);
421
+ const parsedAccount = this.validateAndParseJson(serializedAccount);
406
422
  if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {
407
423
  this.removeAccountKeyFromMap(accountKey);
408
424
  return null;
@@ -505,6 +521,15 @@ export class BrowserCacheManager extends CacheManager {
505
521
  this.removeAccountKeyFromMap(key);
506
522
  }
507
523
 
524
+ /**
525
+ * Remove account entity from the platform cache if it's outdated
526
+ * @param accountKey
527
+ */
528
+ removeOutdatedAccount(accountKey: string): void {
529
+ this.removeItem(accountKey);
530
+ this.removeAccountKeyFromMap(accountKey);
531
+ }
532
+
508
533
  /**
509
534
  * Removes given idToken from the cache and from the key map
510
535
  * @param key
@@ -1034,6 +1059,7 @@ export class BrowserCacheManager extends CacheManager {
1034
1059
  return this.getAccountInfoFilteredBy({
1035
1060
  homeAccountId: activeAccountValueObj.homeAccountId,
1036
1061
  localAccountId: activeAccountValueObj.localAccountId,
1062
+ tenantId: activeAccountValueObj.tenantId,
1037
1063
  });
1038
1064
  }
1039
1065
  this.logger.trace(
@@ -1058,6 +1084,7 @@ export class BrowserCacheManager extends CacheManager {
1058
1084
  const activeAccountValue: ActiveAccountFilters = {
1059
1085
  homeAccountId: account.homeAccountId,
1060
1086
  localAccountId: account.localAccountId,
1087
+ tenantId: account.tenantId,
1061
1088
  };
1062
1089
  this.browserStorage.setItem(
1063
1090
  activeAccountKey,
@@ -85,7 +85,7 @@ export class DatabaseStorage<T> implements IAsyncStorage<T> {
85
85
  */
86
86
  private async validateDbIsOpen(): Promise<void> {
87
87
  if (!this.dbOpen) {
88
- return await this.open();
88
+ return this.open();
89
89
  }
90
90
  }
91
91
 
@@ -19,6 +19,7 @@ import {
19
19
  CacheRecord,
20
20
  TokenClaims,
21
21
  CacheHelpers,
22
+ buildAccountToCache,
22
23
  } from "@azure/msal-common";
23
24
  import { BrowserConfiguration } from "../config/Configuration";
24
25
  import { SilentRequest } from "../request/SilentRequest";
@@ -240,40 +241,43 @@ export class TokenCache implements ITokenCache {
240
241
  clientInfo?: string,
241
242
  requestHomeAccountId?: string
242
243
  ): AccountEntity {
243
- let homeAccountId;
244
- if (requestHomeAccountId) {
245
- homeAccountId = requestHomeAccountId;
246
- } else if (authority.authorityType !== undefined && clientInfo) {
247
- homeAccountId = AccountEntity.generateHomeAccountId(
248
- clientInfo,
249
- authority.authorityType,
250
- this.logger,
251
- this.cryptoObj,
252
- idTokenClaims
253
- );
254
- }
244
+ if (this.isBrowserEnvironment) {
245
+ this.logger.verbose("TokenCache - loading account");
246
+ let homeAccountId;
247
+ if (requestHomeAccountId) {
248
+ homeAccountId = requestHomeAccountId;
249
+ } else if (authority.authorityType !== undefined && clientInfo) {
250
+ homeAccountId = AccountEntity.generateHomeAccountId(
251
+ clientInfo,
252
+ authority.authorityType,
253
+ this.logger,
254
+ this.cryptoObj,
255
+ idTokenClaims
256
+ );
257
+ }
255
258
 
256
- if (!homeAccountId) {
257
- throw createBrowserAuthError(
258
- BrowserAuthErrorCodes.unableToLoadToken
259
- );
260
- }
259
+ if (!homeAccountId) {
260
+ throw createBrowserAuthError(
261
+ BrowserAuthErrorCodes.unableToLoadToken
262
+ );
263
+ }
264
+ const claimsTenantId = idTokenClaims.tid;
261
265
 
262
- const accountEntity = AccountEntity.createAccount(
263
- {
266
+ const cachedAccount = buildAccountToCache(
267
+ this.storage,
268
+ authority,
264
269
  homeAccountId,
265
- idTokenClaims: idTokenClaims,
270
+ idTokenClaims,
271
+ base64Decode,
266
272
  clientInfo,
267
- environment: authority.hostnameAndPort,
268
- },
269
- authority
270
- );
271
-
272
- if (this.isBrowserEnvironment) {
273
- this.logger.verbose("TokenCache - loading account");
273
+ claimsTenantId,
274
+ undefined,
275
+ undefined,
276
+ this.logger
277
+ );
274
278
 
275
- this.storage.setAccount(accountEntity);
276
- return accountEntity;
279
+ this.storage.setAccount(cachedAccount);
280
+ return cachedAccount;
277
281
  } else {
278
282
  throw createBrowserAuthError(
279
283
  BrowserAuthErrorCodes.unableToLoadToken
@@ -33,7 +33,7 @@ import { FetchClient } from "../network/FetchClient";
33
33
 
34
34
  // Default timeout for popup windows and iframes in milliseconds
35
35
  export const DEFAULT_POPUP_TIMEOUT_MS = 60000;
36
- export const DEFAULT_IFRAME_TIMEOUT_MS = 6000;
36
+ export const DEFAULT_IFRAME_TIMEOUT_MS = 10000;
37
37
  export const DEFAULT_REDIRECT_TIMEOUT_MS = 30000;
38
38
  export const DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS = 2000;
39
39
 
@@ -16,7 +16,7 @@ export async function createV3Controller(
16
16
  await standard.initialize();
17
17
 
18
18
  const controller = await import("./StandardController");
19
- return await controller.StandardController.createController(standard);
19
+ return controller.StandardController.createController(standard);
20
20
  }
21
21
 
22
22
  export async function createController(
@@ -34,12 +34,10 @@ export async function createController(
34
34
  teamsApp.getConfig().auth.supportsNestedAppAuth
35
35
  ) {
36
36
  const controller = await import("./NestedAppAuthController");
37
- return await controller.NestedAppAuthController.createController(
38
- teamsApp
39
- );
37
+ return controller.NestedAppAuthController.createController(teamsApp);
40
38
  } else if (standard.isAvailable()) {
41
39
  const controller = await import("./StandardController");
42
- return await controller.StandardController.createController(standard);
40
+ return controller.StandardController.createController(standard);
43
41
  } else {
44
42
  // Since neither of the actual operating contexts are available keep the UnknownOperatingContextController
45
43
  return null;
@@ -923,10 +923,10 @@ export class StandardController implements IController {
923
923
  );
924
924
  atbcMeasurement.discard();
925
925
  }
926
- return response;
926
+ return await response;
927
927
  } else if (request.nativeAccountId) {
928
928
  if (this.canUseNative(request, request.nativeAccountId)) {
929
- return this.acquireTokenNative(
929
+ return await this.acquireTokenNative(
930
930
  {
931
931
  ...request,
932
932
  correlationId,
@@ -1549,7 +1549,7 @@ export class StandardController implements IController {
1549
1549
  ): string {
1550
1550
  const account =
1551
1551
  request.account ||
1552
- this.browserStorage.getAccountInfoFilteredBy({
1552
+ this.getAccount({
1553
1553
  loginHint: request.loginHint,
1554
1554
  sid: request.sid,
1555
1555
  }) ||
@@ -2088,9 +2088,7 @@ export class StandardController implements IController {
2088
2088
  refreshTokenError.errorCode ===
2089
2089
  ClientAuthErrorCodes.tokenRefreshRequired)) ||
2090
2090
  refreshTokenError.errorCode ===
2091
- InteractionRequiredAuthErrorCodes.noTokensFound ||
2092
- refreshTokenError.errorCode ===
2093
- InteractionRequiredAuthErrorCodes.refreshTokenExpired;
2091
+ InteractionRequiredAuthErrorCodes.noTokensFound;
2094
2092
 
2095
2093
  const tryIframeRenewal =
2096
2094
  cacheLookupPolicy ===
@@ -151,7 +151,7 @@ export class CryptoOps implements ICrypto {
151
151
  * Removes all cryptographic keys from IndexedDB storage
152
152
  */
153
153
  async clearKeystore(): Promise<boolean> {
154
- return await this.cache.clear();
154
+ return this.cache.clear();
155
155
  }
156
156
 
157
157
  /**
@@ -71,6 +71,6 @@ export class SignedHttpRequest {
71
71
  * @returns If keys are properly deleted
72
72
  */
73
73
  async removeKeys(publicKeyThumbprint: string): Promise<boolean> {
74
- return await this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint);
74
+ return this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint);
75
75
  }
76
76
  }
package/src/index.ts CHANGED
@@ -146,6 +146,7 @@ export {
146
146
  PerformanceEvents,
147
147
  // Telemetry
148
148
  InProgressPerformanceEvent,
149
+ TenantProfile,
149
150
  } from "@azure/msal-common";
150
151
 
151
152
  export { version } from "./packageMetadata";
@@ -283,7 +283,7 @@ export abstract class BaseInteractionClient {
283
283
  this.logger.verbose(
284
284
  "Creating discovered authority with request authority"
285
285
  );
286
- return await AuthorityFactory.createDiscoveredInstance(
286
+ return AuthorityFactory.createDiscoveredInstance(
287
287
  requestAuthority,
288
288
  this.config.system.networkClient,
289
289
  this.browserStorage,
@@ -295,7 +295,7 @@ export abstract class BaseInteractionClient {
295
295
  this.logger.verbose(
296
296
  "Creating discovered authority with configured authority"
297
297
  );
298
- return await AuthorityFactory.createDiscoveredInstance(
298
+ return AuthorityFactory.createDiscoveredInstance(
299
299
  this.config.auth.authority,
300
300
  this.config.system.networkClient,
301
301
  this.browserStorage,
@@ -33,7 +33,9 @@ import {
33
33
  invokeAsync,
34
34
  createAuthError,
35
35
  AuthErrorCodes,
36
+ updateAccountTenantProfileData,
36
37
  CacheHelpers,
38
+ buildAccountToCache,
37
39
  } from "@azure/msal-common";
38
40
  import { BaseInteractionClient } from "./BaseInteractionClient";
39
41
  import { BrowserConfiguration } from "../config/Configuration";
@@ -372,7 +374,7 @@ export class NativeInteractionClient extends BaseInteractionClient {
372
374
  reqTimestamp
373
375
  );
374
376
  this.browserStorage.setInteractionInProgress(false);
375
- return result;
377
+ return await result;
376
378
  } catch (e) {
377
379
  this.browserStorage.setInteractionInProgress(false);
378
380
  throw e;
@@ -420,14 +422,18 @@ export class NativeInteractionClient extends BaseInteractionClient {
420
422
  response,
421
423
  idTokenClaims
422
424
  );
423
- const accountEntity = AccountEntity.createAccount(
424
- {
425
- homeAccountId: homeAccountIdentifier,
426
- idTokenClaims: idTokenClaims,
427
- clientInfo: response.client_info,
428
- nativeAccountId: response.account.id,
429
- },
430
- authority
425
+
426
+ const baseAccount = buildAccountToCache(
427
+ this.browserStorage,
428
+ authority,
429
+ homeAccountIdentifier,
430
+ idTokenClaims,
431
+ base64Decode,
432
+ response.client_info,
433
+ idTokenClaims.tid,
434
+ undefined,
435
+ response.account.id,
436
+ this.logger
431
437
  );
432
438
 
433
439
  // generate authenticationResult
@@ -435,13 +441,13 @@ export class NativeInteractionClient extends BaseInteractionClient {
435
441
  response,
436
442
  request,
437
443
  idTokenClaims,
438
- accountEntity,
444
+ baseAccount,
439
445
  authority.canonicalAuthority,
440
446
  reqTimestamp
441
447
  );
442
448
 
443
449
  // cache accounts and tokens in the appropriate storage
444
- this.cacheAccount(accountEntity);
450
+ this.cacheAccount(baseAccount);
445
451
  this.cacheNativeTokens(
446
452
  response,
447
453
  request,
@@ -533,7 +539,7 @@ export class NativeInteractionClient extends BaseInteractionClient {
533
539
  if (!request.keyId) {
534
540
  throw createClientAuthError(ClientAuthErrorCodes.keyIdMissing);
535
541
  }
536
- return await popTokenGenerator.signPopToken(
542
+ return popTokenGenerator.signPopToken(
537
543
  response.access_token,
538
544
  request.keyId,
539
545
  shrParameters
@@ -580,14 +586,11 @@ export class NativeInteractionClient extends BaseInteractionClient {
580
586
  idTokenClaims.tid ||
581
587
  Constants.EMPTY_STRING;
582
588
 
583
- const fullAccountEntity: AccountEntity = idTokenClaims
584
- ? Object.assign(new AccountEntity(), {
585
- ...accountEntity,
586
- idTokenClaims: idTokenClaims,
587
- })
588
- : accountEntity;
589
-
590
- const accountInfo = fullAccountEntity.getAccountInfo();
589
+ const accountInfo: AccountInfo | null = updateAccountTenantProfileData(
590
+ accountEntity.getAccountInfo(),
591
+ undefined, // tenantProfile optional
592
+ idTokenClaims
593
+ );
591
594
 
592
595
  // generate PoP token as needed
593
596
  const responseAccessToken = await this.generatePopAccessToken(
@@ -339,7 +339,7 @@ export class PopupClient extends StandardInteractionClient {
339
339
  this.browserCrypto,
340
340
  validRequest.state
341
341
  );
342
- return nativeInteractionClient.acquireToken({
342
+ return await nativeInteractionClient.acquireToken({
343
343
  ...validRequest,
344
344
  state: userRequestState,
345
345
  prompt: undefined, // Server should handle the prompt, ideally native broker can do this part silently
@@ -254,7 +254,7 @@ export class RedirectClient extends StandardInteractionClient {
254
254
  this.logger.verbose(
255
255
  "NavigateToLoginRequestUrl set to false, handling response"
256
256
  );
257
- return this.handleResponse(
257
+ return await this.handleResponse(
258
258
  serverParams,
259
259
  serverTelemetryManager
260
260
  );
@@ -313,7 +313,7 @@ export class RedirectClient extends StandardInteractionClient {
313
313
 
314
314
  // If navigateInternal implementation returns false, handle the hash now
315
315
  if (!processHashOnRedirect) {
316
- return this.handleResponse(
316
+ return await this.handleResponse(
317
317
  serverParams,
318
318
  serverTelemetryManager
319
319
  );
@@ -483,7 +483,7 @@ export class RedirectClient extends StandardInteractionClient {
483
483
  this.logger,
484
484
  this.performanceClient
485
485
  );
486
- return await interactionHandler.handleCodeResponse(serverParams, state);
486
+ return interactionHandler.handleCodeResponse(serverParams, state);
487
487
  }
488
488
 
489
489
  /**
@@ -114,7 +114,7 @@ export class SilentAuthCodeClient extends StandardInteractionClient {
114
114
  );
115
115
 
116
116
  // Handle auth code parameters from request
117
- return invokeAsync(
117
+ return await invokeAsync(
118
118
  interactionHandler.handleCodeResponseFromServer.bind(
119
119
  interactionHandler
120
120
  ),
@@ -319,7 +319,7 @@ export abstract class StandardInteractionClient extends BaseInteractionClient {
319
319
  userAuthority,
320
320
  requestAzureCloudOptions || this.config.auth.azureCloudOptions
321
321
  );
322
- return await invokeAsync(
322
+ return invokeAsync(
323
323
  AuthorityFactory.createDiscoveredInstance.bind(AuthorityFactory),
324
324
  PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance,
325
325
  this.logger,