@azure/msal-browser 3.5.1-beta.1 → 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.
- package/dist/app/IPublicClientApplication.d.ts +51 -51
- package/dist/app/IPublicClientApplication.mjs +102 -102
- package/dist/app/IPublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientApplication.d.ts +269 -268
- package/dist/app/PublicClientApplication.d.ts.map +1 -1
- package/dist/app/PublicClientApplication.mjs +333 -333
- package/dist/app/PublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientNext.d.ts +273 -273
- package/dist/app/PublicClientNext.mjs +351 -351
- package/dist/app/PublicClientNext.mjs.map +1 -1
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
- package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
- package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
- package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
- package/dist/cache/AsyncMemoryStorage.mjs +132 -132
- package/dist/cache/AsyncMemoryStorage.mjs.map +1 -1
- package/dist/cache/BrowserCacheManager.d.ts +395 -383
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.mjs +1282 -1262
- package/dist/cache/BrowserCacheManager.mjs.map +1 -1
- package/dist/cache/BrowserStorage.d.ts +11 -11
- package/dist/cache/BrowserStorage.mjs +32 -32
- package/dist/cache/BrowserStorage.mjs.map +1 -1
- package/dist/cache/CryptoKeyStore.d.ts +18 -18
- package/dist/cache/CryptoKeyStore.mjs +40 -40
- package/dist/cache/CryptoKeyStore.mjs.map +1 -1
- package/dist/cache/DatabaseStorage.d.ts +56 -56
- package/dist/cache/DatabaseStorage.mjs +190 -190
- package/dist/cache/DatabaseStorage.mjs.map +1 -1
- package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
- package/dist/cache/ITokenCache.d.ts +11 -11
- package/dist/cache/IWindowStorage.d.ts +27 -27
- package/dist/cache/MemoryStorage.d.ts +11 -11
- package/dist/cache/MemoryStorage.mjs +31 -31
- package/dist/cache/MemoryStorage.mjs.map +1 -1
- package/dist/cache/TokenCache.d.ts +77 -77
- package/dist/cache/TokenCache.d.ts.map +1 -1
- package/dist/cache/TokenCache.mjs +221 -225
- package/dist/cache/TokenCache.mjs.map +1 -1
- package/dist/config/Configuration.d.ts +206 -206
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.mjs +128 -128
- package/dist/config/Configuration.mjs.map +1 -1
- package/dist/controllers/ControllerFactory.d.ts +4 -4
- package/dist/controllers/ControllerFactory.d.ts.map +1 -1
- package/dist/controllers/ControllerFactory.mjs +29 -29
- package/dist/controllers/ControllerFactory.mjs.map +1 -1
- package/dist/controllers/IController.d.ts +61 -61
- package/dist/controllers/NestedAppAuthController.d.ts +95 -95
- package/dist/controllers/NestedAppAuthController.mjs +334 -334
- package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
- package/dist/controllers/StandardController.d.ts +407 -407
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +1291 -1293
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
- package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
- package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
- package/dist/crypto/BrowserCrypto.d.ts +44 -44
- package/dist/crypto/BrowserCrypto.mjs +93 -93
- package/dist/crypto/BrowserCrypto.mjs.map +1 -1
- package/dist/crypto/CryptoOps.d.ts +63 -63
- package/dist/crypto/CryptoOps.mjs +145 -145
- package/dist/crypto/CryptoOps.mjs.map +1 -1
- package/dist/crypto/PkceGenerator.d.ts +8 -8
- package/dist/crypto/PkceGenerator.mjs +54 -54
- package/dist/crypto/PkceGenerator.mjs.map +1 -1
- package/dist/crypto/SignedHttpRequest.d.ts +30 -30
- package/dist/crypto/SignedHttpRequest.mjs +39 -39
- package/dist/crypto/SignedHttpRequest.mjs.map +1 -1
- package/dist/encode/Base64Decode.d.ts +9 -9
- package/dist/encode/Base64Decode.mjs +36 -36
- package/dist/encode/Base64Decode.mjs.map +1 -1
- package/dist/encode/Base64Encode.d.ts +19 -19
- package/dist/encode/Base64Encode.mjs +43 -43
- package/dist/encode/Base64Encode.mjs.map +1 -1
- package/dist/error/BrowserAuthError.d.ts +250 -250
- package/dist/error/BrowserAuthError.mjs +258 -258
- package/dist/error/BrowserAuthError.mjs.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
- package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
- package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
- package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
- package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -1
- package/dist/error/NativeAuthError.d.ts +29 -29
- package/dist/error/NativeAuthError.mjs +60 -60
- package/dist/error/NativeAuthError.mjs.map +1 -1
- package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
- package/dist/error/NativeAuthErrorCodes.mjs +6 -6
- package/dist/error/NativeAuthErrorCodes.mjs.map +1 -1
- package/dist/error/NestedAppAuthError.d.ts +14 -14
- package/dist/error/NestedAppAuthError.mjs +23 -23
- package/dist/error/NestedAppAuthError.mjs.map +1 -1
- package/dist/event/EventHandler.d.ts +41 -41
- package/dist/event/EventHandler.mjs +119 -119
- package/dist/event/EventHandler.mjs.map +1 -1
- package/dist/event/EventMessage.d.ts +25 -25
- package/dist/event/EventMessage.mjs +68 -68
- package/dist/event/EventMessage.mjs.map +1 -1
- package/dist/event/EventType.d.ts +28 -28
- package/dist/event/EventType.mjs +31 -31
- package/dist/event/EventType.mjs.map +1 -1
- package/dist/index.d.ts +39 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
- package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
- package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
- package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.mjs +539 -549
- package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts +105 -105
- package/dist/interaction_client/PopupClient.mjs +432 -432
- package/dist/interaction_client/PopupClient.mjs.map +1 -1
- package/dist/interaction_client/RedirectClient.d.ts +49 -49
- package/dist/interaction_client/RedirectClient.mjs +311 -311
- package/dist/interaction_client/RedirectClient.mjs.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
- package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
- package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
- package/dist/interaction_client/SilentCacheClient.mjs +61 -61
- package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
- package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
- package/dist/interaction_client/SilentIframeClient.mjs +96 -96
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
- package/dist/interaction_client/SilentRefreshClient.mjs +43 -43
- package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
- package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
- package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
- package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
- package/dist/interaction_handler/InteractionHandler.mjs +93 -93
- package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
- package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
- package/dist/interaction_handler/RedirectHandler.mjs +134 -134
- package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
- package/dist/interaction_handler/SilentHandler.d.ts +13 -13
- package/dist/interaction_handler/SilentHandler.mjs +133 -133
- package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
- package/dist/naa/AccountInfo.d.ts +11 -11
- package/dist/naa/AccountRequests.d.ts +9 -9
- package/dist/naa/AuthBridge.d.ts +8 -5
- package/dist/naa/AuthBridge.d.ts.map +1 -1
- package/dist/naa/BridgeCapabilities.d.ts +3 -3
- package/dist/naa/BridgeError.d.ts +9 -9
- package/dist/naa/BridgeError.mjs +7 -7
- package/dist/naa/BridgeError.mjs.map +1 -1
- package/dist/naa/BridgeProxy.d.ts +72 -72
- package/dist/naa/BridgeProxy.d.ts.map +1 -1
- package/dist/naa/BridgeProxy.mjs +153 -152
- package/dist/naa/BridgeProxy.mjs.map +1 -1
- package/dist/naa/BridgeRequest.d.ts +6 -6
- package/dist/naa/BridgeRequestEnvelope.d.ts +13 -13
- package/dist/naa/BridgeResponseEnvelope.d.ts +10 -10
- package/dist/naa/BridgeStatusCode.d.ts +10 -10
- package/dist/naa/BridgeStatusCode.mjs +15 -15
- package/dist/naa/BridgeStatusCode.mjs.map +1 -1
- package/dist/naa/IBridgeProxy.d.ts +12 -12
- package/dist/naa/InitializeBridgeResponse.d.ts +6 -6
- package/dist/naa/TokenRequest.d.ts +19 -19
- package/dist/naa/TokenResponse.d.ts +15 -15
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -23
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs +141 -141
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
- package/dist/navigation/INavigationClient.d.ts +16 -16
- package/dist/navigation/NavigationClient.d.ts +22 -22
- package/dist/navigation/NavigationClient.mjs +40 -40
- package/dist/navigation/NavigationClient.mjs.map +1 -1
- package/dist/navigation/NavigationOptions.d.ts +12 -12
- package/dist/network/FetchClient.d.ts +26 -26
- package/dist/network/FetchClient.mjs +99 -99
- package/dist/network/FetchClient.mjs.map +1 -1
- package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
- package/dist/operatingcontext/BaseOperatingContext.mjs +44 -44
- package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
- package/dist/operatingcontext/StandardOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -85
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
- package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -1
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +4 -4
- package/dist/packageMetadata.mjs.map +1 -1
- package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
- package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
- package/dist/request/ClearCacheRequest.d.ts +10 -10
- package/dist/request/EndSessionPopupRequest.d.ts +18 -18
- package/dist/request/EndSessionRequest.d.ts +15 -15
- package/dist/request/PopupRequest.d.ts +34 -34
- package/dist/request/PopupWindowAttributes.d.ts +15 -15
- package/dist/request/RedirectRequest.d.ts +35 -35
- package/dist/request/SilentRequest.d.ts +32 -32
- package/dist/request/SsoSilentRequest.d.ts +29 -29
- package/dist/response/AuthenticationResult.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +7 -7
- package/dist/response/ResponseHandler.mjs +36 -36
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceClient.d.ts +36 -36
- package/dist/telemetry/BrowserPerformanceClient.mjs +125 -125
- package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs.map +1 -1
- package/dist/utils/BrowserConstants.d.ts +176 -176
- package/dist/utils/BrowserConstants.mjs +204 -204
- package/dist/utils/BrowserConstants.mjs.map +1 -1
- package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
- package/dist/utils/BrowserProtocolUtils.mjs +21 -21
- package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +56 -56
- package/dist/utils/BrowserUtils.mjs +125 -125
- package/dist/utils/BrowserUtils.mjs.map +1 -1
- package/lib/msal-browser.cjs +18217 -17928
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +18217 -17928
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +71 -68
- package/package.json +103 -102
- package/src/app/PublicClientApplication.ts +2 -1
- package/src/cache/BrowserCacheManager.ts +31 -4
- package/src/cache/DatabaseStorage.ts +1 -1
- package/src/cache/TokenCache.ts +33 -29
- package/src/config/Configuration.ts +1 -1
- package/src/controllers/ControllerFactory.ts +3 -5
- package/src/controllers/StandardController.ts +4 -6
- package/src/crypto/CryptoOps.ts +1 -1
- package/src/crypto/SignedHttpRequest.ts +1 -1
- package/src/index.ts +1 -0
- package/src/interaction_client/BaseInteractionClient.ts +2 -2
- package/src/interaction_client/NativeInteractionClient.ts +23 -20
- package/src/interaction_client/PopupClient.ts +1 -1
- package/src/interaction_client/RedirectClient.ts +3 -3
- package/src/interaction_client/SilentAuthCodeClient.ts +1 -1
- package/src/interaction_client/StandardInteractionClient.ts +1 -1
- package/src/interaction_handler/SilentHandler.ts +2 -2
- package/src/naa/AuthBridge.ts +3 -2
- package/src/naa/BridgeProxy.ts +6 -4
- package/src/packageMetadata.ts +1 -1
package/package.json
CHANGED
|
@@ -1,105 +1,106 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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.1"
|
|
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?:
|
|
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
|
|
400
|
-
|
|
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(
|
|
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,
|
package/src/cache/TokenCache.ts
CHANGED
|
@@ -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
|
-
|
|
244
|
-
|
|
245
|
-
homeAccountId
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
if (!homeAccountId) {
|
|
260
|
+
throw createBrowserAuthError(
|
|
261
|
+
BrowserAuthErrorCodes.unableToLoadToken
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
const claimsTenantId = idTokenClaims.tid;
|
|
261
265
|
|
|
262
|
-
|
|
263
|
-
|
|
266
|
+
const cachedAccount = buildAccountToCache(
|
|
267
|
+
this.storage,
|
|
268
|
+
authority,
|
|
264
269
|
homeAccountId,
|
|
265
|
-
idTokenClaims
|
|
270
|
+
idTokenClaims,
|
|
271
|
+
base64Decode,
|
|
266
272
|
clientInfo,
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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(
|
|
276
|
-
return
|
|
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 =
|
|
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
|
|
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
|
|
38
|
-
teamsApp
|
|
39
|
-
);
|
|
37
|
+
return controller.NestedAppAuthController.createController(teamsApp);
|
|
40
38
|
} else if (standard.isAvailable()) {
|
|
41
39
|
const controller = await import("./StandardController");
|
|
42
|
-
return
|
|
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.
|
|
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 ===
|
package/src/crypto/CryptoOps.ts
CHANGED
|
@@ -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
|
|
74
|
+
return this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint);
|
|
75
75
|
}
|
|
76
76
|
}
|
package/src/index.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
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
|
|
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
|
|
322
|
+
return invokeAsync(
|
|
323
323
|
AuthorityFactory.createDiscoveredInstance.bind(AuthorityFactory),
|
|
324
324
|
PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance,
|
|
325
325
|
this.logger,
|