@azure/msal-browser 3.19.1 → 3.21.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 (211) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +53 -53
  2. package/dist/app/IPublicClientApplication.mjs +105 -105
  3. package/dist/app/PublicClientApplication.d.ts +293 -293
  4. package/dist/app/PublicClientApplication.mjs +364 -364
  5. package/dist/app/PublicClientNext.d.ts +276 -276
  6. package/dist/app/PublicClientNext.mjs +354 -354
  7. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  8. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  9. package/dist/broker/nativeBroker/NativeRequest.d.ts +45 -45
  10. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  11. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  12. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  13. package/dist/cache/AccountManager.d.ts +48 -48
  14. package/dist/cache/AccountManager.mjs +126 -126
  15. package/dist/cache/AsyncMemoryStorage.d.ts +50 -50
  16. package/dist/cache/AsyncMemoryStorage.mjs +131 -131
  17. package/dist/cache/BrowserCacheManager.d.ts +410 -385
  18. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  19. package/dist/cache/BrowserCacheManager.mjs +1364 -1294
  20. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  21. package/dist/cache/BrowserStorage.d.ts +11 -11
  22. package/dist/cache/BrowserStorage.mjs +32 -32
  23. package/dist/cache/DatabaseStorage.d.ts +56 -56
  24. package/dist/cache/DatabaseStorage.mjs +200 -200
  25. package/dist/cache/IAsyncStorage.d.ts +27 -27
  26. package/dist/cache/ITokenCache.d.ts +11 -11
  27. package/dist/cache/IWindowStorage.d.ts +27 -27
  28. package/dist/cache/MemoryStorage.d.ts +11 -11
  29. package/dist/cache/MemoryStorage.mjs +31 -31
  30. package/dist/cache/TokenCache.d.ts +77 -77
  31. package/dist/cache/TokenCache.mjs +195 -195
  32. package/dist/config/Configuration.d.ts +213 -208
  33. package/dist/config/Configuration.d.ts.map +1 -1
  34. package/dist/config/Configuration.mjs +128 -128
  35. package/dist/config/Configuration.mjs.map +1 -1
  36. package/dist/controllers/ControllerFactory.d.ts +5 -5
  37. package/dist/controllers/ControllerFactory.mjs +25 -25
  38. package/dist/controllers/IController.d.ts +60 -60
  39. package/dist/controllers/NestedAppAuthController.d.ts +202 -202
  40. package/dist/controllers/NestedAppAuthController.mjs +473 -473
  41. package/dist/controllers/StandardController.d.ts +405 -405
  42. package/dist/controllers/StandardController.d.ts.map +1 -1
  43. package/dist/controllers/StandardController.mjs +1334 -1316
  44. package/dist/controllers/StandardController.mjs.map +1 -1
  45. package/dist/controllers/UnknownOperatingContextController.d.ts +86 -86
  46. package/dist/controllers/UnknownOperatingContextController.mjs +256 -256
  47. package/dist/crypto/BrowserCrypto.d.ts +52 -52
  48. package/dist/crypto/BrowserCrypto.mjs +151 -151
  49. package/dist/crypto/CryptoOps.d.ts +74 -74
  50. package/dist/crypto/CryptoOps.mjs +176 -176
  51. package/dist/crypto/PkceGenerator.d.ts +8 -8
  52. package/dist/crypto/PkceGenerator.mjs +54 -54
  53. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  54. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  55. package/dist/encode/Base64Decode.d.ts +9 -9
  56. package/dist/encode/Base64Decode.mjs +36 -36
  57. package/dist/encode/Base64Encode.d.ts +19 -19
  58. package/dist/encode/Base64Encode.mjs +43 -43
  59. package/dist/error/BrowserAuthError.d.ts +256 -255
  60. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  61. package/dist/error/BrowserAuthError.mjs +265 -264
  62. package/dist/error/BrowserAuthError.mjs.map +1 -1
  63. package/dist/error/BrowserAuthErrorCodes.d.ts +47 -46
  64. package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
  65. package/dist/error/BrowserAuthErrorCodes.mjs +53 -52
  66. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  67. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  68. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  69. package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
  70. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  71. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  72. package/dist/error/NativeAuthError.d.ts +29 -29
  73. package/dist/error/NativeAuthError.mjs +60 -60
  74. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  75. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  76. package/dist/error/NestedAppAuthError.d.ts +14 -14
  77. package/dist/error/NestedAppAuthError.mjs +23 -23
  78. package/dist/event/EventHandler.d.ts +41 -41
  79. package/dist/event/EventHandler.mjs +125 -125
  80. package/dist/event/EventMessage.d.ts +25 -25
  81. package/dist/event/EventMessage.mjs +68 -68
  82. package/dist/event/EventType.d.ts +29 -29
  83. package/dist/event/EventType.mjs +32 -32
  84. package/dist/index.d.ts +40 -40
  85. package/dist/index.mjs +1 -1
  86. package/dist/interaction_client/BaseInteractionClient.d.ts +50 -50
  87. package/dist/interaction_client/BaseInteractionClient.mjs +106 -106
  88. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  89. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  90. package/dist/interaction_client/NativeInteractionClient.d.ts +151 -143
  91. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  92. package/dist/interaction_client/NativeInteractionClient.mjs +624 -584
  93. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  94. package/dist/interaction_client/PopupClient.d.ts +118 -105
  95. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  96. package/dist/interaction_client/PopupClient.mjs +460 -434
  97. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  98. package/dist/interaction_client/RedirectClient.d.ts +50 -50
  99. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  100. package/dist/interaction_client/RedirectClient.mjs +349 -317
  101. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  102. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  103. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  104. package/dist/interaction_client/SilentCacheClient.d.ts +16 -16
  105. package/dist/interaction_client/SilentCacheClient.mjs +42 -42
  106. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  107. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  108. package/dist/interaction_client/SilentIframeClient.mjs +111 -101
  109. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  110. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  111. package/dist/interaction_client/SilentRefreshClient.mjs +47 -47
  112. package/dist/interaction_client/StandardInteractionClient.d.ts +48 -48
  113. package/dist/interaction_client/StandardInteractionClient.mjs +199 -199
  114. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  115. package/dist/interaction_handler/InteractionHandler.mjs +93 -93
  116. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  117. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  118. package/dist/interaction_handler/RedirectHandler.mjs +135 -134
  119. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  120. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  121. package/dist/interaction_handler/SilentHandler.mjs +134 -134
  122. package/dist/naa/AccountInfo.d.ts +11 -11
  123. package/dist/naa/AuthBridge.d.ts +8 -8
  124. package/dist/naa/AuthResult.d.ts +6 -6
  125. package/dist/naa/BridgeAccountContext.d.ts +12 -12
  126. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  127. package/dist/naa/BridgeError.d.ts +9 -9
  128. package/dist/naa/BridgeError.mjs +7 -7
  129. package/dist/naa/BridgeProxy.d.ts +67 -67
  130. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  131. package/dist/naa/BridgeProxy.mjs +153 -148
  132. package/dist/naa/BridgeProxy.mjs.map +1 -1
  133. package/dist/naa/BridgeRequest.d.ts +7 -7
  134. package/dist/naa/BridgeRequestEnvelope.d.ts +12 -12
  135. package/dist/naa/BridgeResponseEnvelope.d.ts +13 -13
  136. package/dist/naa/BridgeStatusCode.d.ts +11 -11
  137. package/dist/naa/BridgeStatusCode.mjs +14 -14
  138. package/dist/naa/IBridgeProxy.d.ts +10 -10
  139. package/dist/naa/InitContext.d.ts +8 -8
  140. package/dist/naa/TokenRequest.d.ts +18 -18
  141. package/dist/naa/TokenResponse.d.ts +13 -13
  142. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +35 -35
  143. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +179 -179
  144. package/dist/navigation/INavigationClient.d.ts +16 -16
  145. package/dist/navigation/NavigationClient.d.ts +22 -22
  146. package/dist/navigation/NavigationClient.mjs +40 -40
  147. package/dist/navigation/NavigationOptions.d.ts +12 -12
  148. package/dist/network/FetchClient.d.ts +26 -26
  149. package/dist/network/FetchClient.mjs +99 -99
  150. package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -41
  151. package/dist/operatingcontext/BaseOperatingContext.mjs +94 -94
  152. package/dist/operatingcontext/NestedAppOperatingContext.d.ts +34 -34
  153. package/dist/operatingcontext/NestedAppOperatingContext.mjs +71 -71
  154. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  155. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  156. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  157. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  158. package/dist/packageMetadata.d.ts +2 -2
  159. package/dist/packageMetadata.mjs +4 -4
  160. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  161. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  162. package/dist/request/ClearCacheRequest.d.ts +10 -10
  163. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  164. package/dist/request/EndSessionRequest.d.ts +15 -15
  165. package/dist/request/InitializeApplicationRequest.d.ts +8 -8
  166. package/dist/request/PopupRequest.d.ts +34 -34
  167. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  168. package/dist/request/RedirectRequest.d.ts +40 -35
  169. package/dist/request/RedirectRequest.d.ts.map +1 -1
  170. package/dist/request/RequestHelpers.d.ts +13 -13
  171. package/dist/request/RequestHelpers.mjs +53 -53
  172. package/dist/request/SilentRequest.d.ts +33 -33
  173. package/dist/request/SsoSilentRequest.d.ts +29 -29
  174. package/dist/response/AuthenticationResult.d.ts +4 -4
  175. package/dist/response/ResponseHandler.d.ts +7 -7
  176. package/dist/response/ResponseHandler.mjs +36 -36
  177. package/dist/telemetry/BrowserPerformanceClient.d.ts +38 -34
  178. package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
  179. package/dist/telemetry/BrowserPerformanceClient.mjs +163 -163
  180. package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
  181. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  182. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  183. package/dist/utils/BrowserConstants.d.ts +182 -180
  184. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  185. package/dist/utils/BrowserConstants.mjs +214 -212
  186. package/dist/utils/BrowserConstants.mjs.map +1 -1
  187. package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
  188. package/dist/utils/BrowserProtocolUtils.mjs +21 -21
  189. package/dist/utils/BrowserUtils.d.ts +75 -75
  190. package/dist/utils/BrowserUtils.mjs +157 -157
  191. package/lib/msal-browser.cjs +19028 -18759
  192. package/lib/msal-browser.cjs.map +1 -1
  193. package/lib/msal-browser.js +19028 -18759
  194. package/lib/msal-browser.js.map +1 -1
  195. package/lib/msal-browser.min.js +65 -65
  196. package/package.json +2 -2
  197. package/src/cache/BrowserCacheManager.ts +95 -0
  198. package/src/config/Configuration.ts +9 -1
  199. package/src/controllers/StandardController.ts +30 -12
  200. package/src/error/BrowserAuthError.ts +2 -0
  201. package/src/error/BrowserAuthErrorCodes.ts +1 -0
  202. package/src/interaction_client/NativeInteractionClient.ts +105 -54
  203. package/src/interaction_client/PopupClient.ts +202 -117
  204. package/src/interaction_client/RedirectClient.ts +62 -2
  205. package/src/interaction_client/SilentIframeClient.ts +41 -3
  206. package/src/interaction_handler/RedirectHandler.ts +1 -0
  207. package/src/naa/BridgeProxy.ts +7 -2
  208. package/src/packageMetadata.ts +1 -1
  209. package/src/request/RedirectRequest.ts +5 -0
  210. package/src/telemetry/BrowserPerformanceClient.ts +1 -1
  211. package/src/utils/BrowserConstants.ts +2 -0
@@ -1,36 +1,36 @@
1
- import { TokenRequest } from "../TokenRequest";
2
- import { AccountInfo as NaaAccountInfo } from "../AccountInfo";
3
- import { RedirectRequest } from "../../request/RedirectRequest";
4
- import { PopupRequest } from "../../request/PopupRequest";
5
- import { AccountInfo as MsalAccountInfo, AuthError, ClientAuthError, ClientConfigurationError, InteractionRequiredAuthError, ServerError, ICrypto, Logger, TokenClaims, AccountInfo, IdTokenEntity, AccessTokenEntity } from "@azure/msal-common";
6
- import { AuthenticationResult } from "../../response/AuthenticationResult";
7
- import { AuthResult } from "../AuthResult";
8
- import { SsoSilentRequest } from "../../request/SsoSilentRequest";
9
- import { SilentRequest } from "../../request/SilentRequest";
10
- export declare class NestedAppAuthAdapter {
11
- protected crypto: ICrypto;
12
- protected logger: Logger;
13
- protected clientId: string;
14
- protected clientCapabilities: string[];
15
- constructor(clientId: string, clientCapabilities: string[], crypto: ICrypto, logger: Logger);
16
- toNaaTokenRequest(request: PopupRequest | RedirectRequest | SilentRequest | SsoSilentRequest): TokenRequest;
17
- fromNaaTokenResponse(request: TokenRequest, response: AuthResult, reqTimestamp: number): AuthenticationResult;
18
- fromNaaAccountInfo(fromAccount: NaaAccountInfo, idToken?: string, idTokenClaims?: TokenClaims): MsalAccountInfo;
19
- /**
20
- *
21
- * @param error BridgeError
22
- * @returns AuthError, ClientAuthError, ClientConfigurationError, ServerError, InteractionRequiredError
23
- */
24
- fromBridgeError(error: unknown): AuthError | ClientAuthError | ClientConfigurationError | ServerError | InteractionRequiredAuthError;
25
- /**
26
- * Returns an AuthenticationResult from the given cache items
27
- *
28
- * @param account
29
- * @param idToken
30
- * @param accessToken
31
- * @param reqTimestamp
32
- * @returns
33
- */
34
- toAuthenticationResultFromCache(account: AccountInfo, idToken: IdTokenEntity, accessToken: AccessTokenEntity, request: SilentRequest, correlationId: string): AuthenticationResult;
35
- }
1
+ import { TokenRequest } from "../TokenRequest";
2
+ import { AccountInfo as NaaAccountInfo } from "../AccountInfo";
3
+ import { RedirectRequest } from "../../request/RedirectRequest";
4
+ import { PopupRequest } from "../../request/PopupRequest";
5
+ import { AccountInfo as MsalAccountInfo, AuthError, ClientAuthError, ClientConfigurationError, InteractionRequiredAuthError, ServerError, ICrypto, Logger, TokenClaims, AccountInfo, IdTokenEntity, AccessTokenEntity } from "@azure/msal-common";
6
+ import { AuthenticationResult } from "../../response/AuthenticationResult";
7
+ import { AuthResult } from "../AuthResult";
8
+ import { SsoSilentRequest } from "../../request/SsoSilentRequest";
9
+ import { SilentRequest } from "../../request/SilentRequest";
10
+ export declare class NestedAppAuthAdapter {
11
+ protected crypto: ICrypto;
12
+ protected logger: Logger;
13
+ protected clientId: string;
14
+ protected clientCapabilities: string[];
15
+ constructor(clientId: string, clientCapabilities: string[], crypto: ICrypto, logger: Logger);
16
+ toNaaTokenRequest(request: PopupRequest | RedirectRequest | SilentRequest | SsoSilentRequest): TokenRequest;
17
+ fromNaaTokenResponse(request: TokenRequest, response: AuthResult, reqTimestamp: number): AuthenticationResult;
18
+ fromNaaAccountInfo(fromAccount: NaaAccountInfo, idToken?: string, idTokenClaims?: TokenClaims): MsalAccountInfo;
19
+ /**
20
+ *
21
+ * @param error BridgeError
22
+ * @returns AuthError, ClientAuthError, ClientConfigurationError, ServerError, InteractionRequiredError
23
+ */
24
+ fromBridgeError(error: unknown): AuthError | ClientAuthError | ClientConfigurationError | ServerError | InteractionRequiredAuthError;
25
+ /**
26
+ * Returns an AuthenticationResult from the given cache items
27
+ *
28
+ * @param account
29
+ * @param idToken
30
+ * @param accessToken
31
+ * @param reqTimestamp
32
+ * @returns
33
+ */
34
+ toAuthenticationResultFromCache(account: AccountInfo, idToken: IdTokenEntity, accessToken: AccessTokenEntity, request: SilentRequest, correlationId: string): AuthenticationResult;
35
+ }
36
36
  //# sourceMappingURL=NestedAppAuthAdapter.d.ts.map
@@ -1,187 +1,187 @@
1
- /*! @azure/msal-browser v3.19.1 2024-07-16 */
1
+ /*! @azure/msal-browser v3.21.0 2024-08-13 */
2
2
  'use strict';
3
3
  import { RequestParameterBuilder, StringUtils, AuthenticationScheme, createClientAuthError, ClientAuthErrorCodes, AuthToken, buildTenantProfile, AuthError, InteractionRequiredAuthError, ServerError, ClientAuthError, OIDC_DEFAULT_SCOPES } from '@azure/msal-common';
4
4
  import { isBridgeError } from '../BridgeError.mjs';
5
5
  import { BridgeStatusCode } from '../BridgeStatusCode.mjs';
6
6
 
7
- /*
8
- * Copyright (c) Microsoft Corporation. All rights reserved.
9
- * Licensed under the MIT License.
10
- */
11
- class NestedAppAuthAdapter {
12
- constructor(clientId, clientCapabilities, crypto, logger) {
13
- this.clientId = clientId;
14
- this.clientCapabilities = clientCapabilities;
15
- this.crypto = crypto;
16
- this.logger = logger;
17
- }
18
- toNaaTokenRequest(request) {
19
- let extraParams;
20
- if (request.extraQueryParameters === undefined) {
21
- extraParams = new Map();
22
- }
23
- else {
24
- extraParams = new Map(Object.entries(request.extraQueryParameters));
25
- }
26
- const requestBuilder = new RequestParameterBuilder();
27
- const claims = requestBuilder.addClientCapabilitiesToClaims(request.claims, this.clientCapabilities);
28
- const scopes = request.scopes || OIDC_DEFAULT_SCOPES;
29
- const tokenRequest = {
30
- platformBrokerId: request.account?.homeAccountId,
31
- clientId: this.clientId,
32
- authority: request.authority,
33
- scope: scopes.join(" "),
34
- correlationId: request.correlationId !== undefined
35
- ? request.correlationId
36
- : this.crypto.createNewGuid(),
37
- claims: !StringUtils.isEmptyObj(claims) ? claims : undefined,
38
- state: request.state,
39
- authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER,
40
- extraParameters: extraParams,
41
- };
42
- return tokenRequest;
43
- }
44
- fromNaaTokenResponse(request, response, reqTimestamp) {
45
- if (!response.token.id_token || !response.token.access_token) {
46
- throw createClientAuthError(ClientAuthErrorCodes.nullOrEmptyToken);
47
- }
48
- const expiresOn = new Date((reqTimestamp + (response.token.expires_in || 0)) * 1000);
49
- const idTokenClaims = AuthToken.extractTokenClaims(response.token.id_token, this.crypto.base64Decode);
50
- const account = this.fromNaaAccountInfo(response.account, response.token.id_token, idTokenClaims);
51
- const scopes = response.token.scope || request.scope;
52
- const authenticationResult = {
53
- authority: response.token.authority || account.environment,
54
- uniqueId: account.localAccountId,
55
- tenantId: account.tenantId,
56
- scopes: scopes.split(" "),
57
- account,
58
- idToken: response.token.id_token,
59
- idTokenClaims,
60
- accessToken: response.token.access_token,
61
- fromCache: false,
62
- expiresOn: expiresOn,
63
- tokenType: request.authenticationScheme || AuthenticationScheme.BEARER,
64
- correlationId: request.correlationId,
65
- extExpiresOn: expiresOn,
66
- state: request.state,
67
- };
68
- return authenticationResult;
69
- }
70
- /*
71
- * export type AccountInfo = {
72
- * homeAccountId: string;
73
- * environment: string;
74
- * tenantId: string;
75
- * username: string;
76
- * localAccountId: string;
77
- * name?: string;
78
- * idToken?: string;
79
- * idTokenClaims?: TokenClaims & {
80
- * [key: string]:
81
- * | string
82
- * | number
83
- * | string[]
84
- * | object
85
- * | undefined
86
- * | unknown;
87
- * };
88
- * nativeAccountId?: string;
89
- * authorityType?: string;
90
- * };
91
- */
92
- fromNaaAccountInfo(fromAccount, idToken, idTokenClaims) {
93
- const effectiveIdTokenClaims = idTokenClaims || fromAccount.idTokenClaims;
94
- const localAccountId = fromAccount.localAccountId ||
95
- effectiveIdTokenClaims?.oid ||
96
- effectiveIdTokenClaims?.sub ||
97
- "";
98
- const tenantId = fromAccount.tenantId || effectiveIdTokenClaims?.tid || "";
99
- const homeAccountId = fromAccount.homeAccountId || `${localAccountId}.${tenantId}`;
100
- const username = fromAccount.username ||
101
- effectiveIdTokenClaims?.preferred_username ||
102
- "";
103
- const name = fromAccount.name || effectiveIdTokenClaims?.name;
104
- const tenantProfiles = new Map();
105
- const tenantProfile = buildTenantProfile(homeAccountId, localAccountId, tenantId, effectiveIdTokenClaims);
106
- tenantProfiles.set(tenantId, tenantProfile);
107
- const account = {
108
- homeAccountId,
109
- environment: fromAccount.environment,
110
- tenantId,
111
- username,
112
- localAccountId,
113
- name,
114
- idToken: idToken,
115
- idTokenClaims: effectiveIdTokenClaims,
116
- tenantProfiles,
117
- };
118
- return account;
119
- }
120
- /**
121
- *
122
- * @param error BridgeError
123
- * @returns AuthError, ClientAuthError, ClientConfigurationError, ServerError, InteractionRequiredError
124
- */
125
- fromBridgeError(error) {
126
- if (isBridgeError(error)) {
127
- switch (error.status) {
128
- case BridgeStatusCode.UserCancel:
129
- return new ClientAuthError(ClientAuthErrorCodes.userCanceled);
130
- case BridgeStatusCode.NoNetwork:
131
- return new ClientAuthError(ClientAuthErrorCodes.noNetworkConnectivity);
132
- case BridgeStatusCode.AccountUnavailable:
133
- return new ClientAuthError(ClientAuthErrorCodes.noAccountFound);
134
- case BridgeStatusCode.Disabled:
135
- return new ClientAuthError(ClientAuthErrorCodes.nestedAppAuthBridgeDisabled);
136
- case BridgeStatusCode.NestedAppAuthUnavailable:
137
- return new ClientAuthError(error.code ||
138
- ClientAuthErrorCodes.nestedAppAuthBridgeDisabled, error.description);
139
- case BridgeStatusCode.TransientError:
140
- case BridgeStatusCode.PersistentError:
141
- return new ServerError(error.code, error.description);
142
- case BridgeStatusCode.UserInteractionRequired:
143
- return new InteractionRequiredAuthError(error.code, error.description);
144
- default:
145
- return new AuthError(error.code, error.description);
146
- }
147
- }
148
- else {
149
- return new AuthError("unknown_error", "An unknown error occurred");
150
- }
151
- }
152
- /**
153
- * Returns an AuthenticationResult from the given cache items
154
- *
155
- * @param account
156
- * @param idToken
157
- * @param accessToken
158
- * @param reqTimestamp
159
- * @returns
160
- */
161
- toAuthenticationResultFromCache(account, idToken, accessToken, request, correlationId) {
162
- if (!idToken || !accessToken) {
163
- throw createClientAuthError(ClientAuthErrorCodes.nullOrEmptyToken);
164
- }
165
- const idTokenClaims = AuthToken.extractTokenClaims(idToken.secret, this.crypto.base64Decode);
166
- const scopes = accessToken.target || request.scopes.join(" ");
167
- const authenticationResult = {
168
- authority: accessToken.environment || account.environment,
169
- uniqueId: account.localAccountId,
170
- tenantId: account.tenantId,
171
- scopes: scopes.split(" "),
172
- account,
173
- idToken: idToken.secret,
174
- idTokenClaims: idTokenClaims || {},
175
- accessToken: accessToken.secret,
176
- fromCache: true,
177
- expiresOn: new Date(Number(accessToken.expiresOn) * 1000),
178
- tokenType: request.authenticationScheme || AuthenticationScheme.BEARER,
179
- correlationId,
180
- extExpiresOn: new Date(Number(accessToken.extendedExpiresOn) * 1000),
181
- state: request.state,
182
- };
183
- return authenticationResult;
184
- }
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ class NestedAppAuthAdapter {
12
+ constructor(clientId, clientCapabilities, crypto, logger) {
13
+ this.clientId = clientId;
14
+ this.clientCapabilities = clientCapabilities;
15
+ this.crypto = crypto;
16
+ this.logger = logger;
17
+ }
18
+ toNaaTokenRequest(request) {
19
+ let extraParams;
20
+ if (request.extraQueryParameters === undefined) {
21
+ extraParams = new Map();
22
+ }
23
+ else {
24
+ extraParams = new Map(Object.entries(request.extraQueryParameters));
25
+ }
26
+ const requestBuilder = new RequestParameterBuilder();
27
+ const claims = requestBuilder.addClientCapabilitiesToClaims(request.claims, this.clientCapabilities);
28
+ const scopes = request.scopes || OIDC_DEFAULT_SCOPES;
29
+ const tokenRequest = {
30
+ platformBrokerId: request.account?.homeAccountId,
31
+ clientId: this.clientId,
32
+ authority: request.authority,
33
+ scope: scopes.join(" "),
34
+ correlationId: request.correlationId !== undefined
35
+ ? request.correlationId
36
+ : this.crypto.createNewGuid(),
37
+ claims: !StringUtils.isEmptyObj(claims) ? claims : undefined,
38
+ state: request.state,
39
+ authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER,
40
+ extraParameters: extraParams,
41
+ };
42
+ return tokenRequest;
43
+ }
44
+ fromNaaTokenResponse(request, response, reqTimestamp) {
45
+ if (!response.token.id_token || !response.token.access_token) {
46
+ throw createClientAuthError(ClientAuthErrorCodes.nullOrEmptyToken);
47
+ }
48
+ const expiresOn = new Date((reqTimestamp + (response.token.expires_in || 0)) * 1000);
49
+ const idTokenClaims = AuthToken.extractTokenClaims(response.token.id_token, this.crypto.base64Decode);
50
+ const account = this.fromNaaAccountInfo(response.account, response.token.id_token, idTokenClaims);
51
+ const scopes = response.token.scope || request.scope;
52
+ const authenticationResult = {
53
+ authority: response.token.authority || account.environment,
54
+ uniqueId: account.localAccountId,
55
+ tenantId: account.tenantId,
56
+ scopes: scopes.split(" "),
57
+ account,
58
+ idToken: response.token.id_token,
59
+ idTokenClaims,
60
+ accessToken: response.token.access_token,
61
+ fromCache: false,
62
+ expiresOn: expiresOn,
63
+ tokenType: request.authenticationScheme || AuthenticationScheme.BEARER,
64
+ correlationId: request.correlationId,
65
+ extExpiresOn: expiresOn,
66
+ state: request.state,
67
+ };
68
+ return authenticationResult;
69
+ }
70
+ /*
71
+ * export type AccountInfo = {
72
+ * homeAccountId: string;
73
+ * environment: string;
74
+ * tenantId: string;
75
+ * username: string;
76
+ * localAccountId: string;
77
+ * name?: string;
78
+ * idToken?: string;
79
+ * idTokenClaims?: TokenClaims & {
80
+ * [key: string]:
81
+ * | string
82
+ * | number
83
+ * | string[]
84
+ * | object
85
+ * | undefined
86
+ * | unknown;
87
+ * };
88
+ * nativeAccountId?: string;
89
+ * authorityType?: string;
90
+ * };
91
+ */
92
+ fromNaaAccountInfo(fromAccount, idToken, idTokenClaims) {
93
+ const effectiveIdTokenClaims = idTokenClaims || fromAccount.idTokenClaims;
94
+ const localAccountId = fromAccount.localAccountId ||
95
+ effectiveIdTokenClaims?.oid ||
96
+ effectiveIdTokenClaims?.sub ||
97
+ "";
98
+ const tenantId = fromAccount.tenantId || effectiveIdTokenClaims?.tid || "";
99
+ const homeAccountId = fromAccount.homeAccountId || `${localAccountId}.${tenantId}`;
100
+ const username = fromAccount.username ||
101
+ effectiveIdTokenClaims?.preferred_username ||
102
+ "";
103
+ const name = fromAccount.name || effectiveIdTokenClaims?.name;
104
+ const tenantProfiles = new Map();
105
+ const tenantProfile = buildTenantProfile(homeAccountId, localAccountId, tenantId, effectiveIdTokenClaims);
106
+ tenantProfiles.set(tenantId, tenantProfile);
107
+ const account = {
108
+ homeAccountId,
109
+ environment: fromAccount.environment,
110
+ tenantId,
111
+ username,
112
+ localAccountId,
113
+ name,
114
+ idToken: idToken,
115
+ idTokenClaims: effectiveIdTokenClaims,
116
+ tenantProfiles,
117
+ };
118
+ return account;
119
+ }
120
+ /**
121
+ *
122
+ * @param error BridgeError
123
+ * @returns AuthError, ClientAuthError, ClientConfigurationError, ServerError, InteractionRequiredError
124
+ */
125
+ fromBridgeError(error) {
126
+ if (isBridgeError(error)) {
127
+ switch (error.status) {
128
+ case BridgeStatusCode.UserCancel:
129
+ return new ClientAuthError(ClientAuthErrorCodes.userCanceled);
130
+ case BridgeStatusCode.NoNetwork:
131
+ return new ClientAuthError(ClientAuthErrorCodes.noNetworkConnectivity);
132
+ case BridgeStatusCode.AccountUnavailable:
133
+ return new ClientAuthError(ClientAuthErrorCodes.noAccountFound);
134
+ case BridgeStatusCode.Disabled:
135
+ return new ClientAuthError(ClientAuthErrorCodes.nestedAppAuthBridgeDisabled);
136
+ case BridgeStatusCode.NestedAppAuthUnavailable:
137
+ return new ClientAuthError(error.code ||
138
+ ClientAuthErrorCodes.nestedAppAuthBridgeDisabled, error.description);
139
+ case BridgeStatusCode.TransientError:
140
+ case BridgeStatusCode.PersistentError:
141
+ return new ServerError(error.code, error.description);
142
+ case BridgeStatusCode.UserInteractionRequired:
143
+ return new InteractionRequiredAuthError(error.code, error.description);
144
+ default:
145
+ return new AuthError(error.code, error.description);
146
+ }
147
+ }
148
+ else {
149
+ return new AuthError("unknown_error", "An unknown error occurred");
150
+ }
151
+ }
152
+ /**
153
+ * Returns an AuthenticationResult from the given cache items
154
+ *
155
+ * @param account
156
+ * @param idToken
157
+ * @param accessToken
158
+ * @param reqTimestamp
159
+ * @returns
160
+ */
161
+ toAuthenticationResultFromCache(account, idToken, accessToken, request, correlationId) {
162
+ if (!idToken || !accessToken) {
163
+ throw createClientAuthError(ClientAuthErrorCodes.nullOrEmptyToken);
164
+ }
165
+ const idTokenClaims = AuthToken.extractTokenClaims(idToken.secret, this.crypto.base64Decode);
166
+ const scopes = accessToken.target || request.scopes.join(" ");
167
+ const authenticationResult = {
168
+ authority: accessToken.environment || account.environment,
169
+ uniqueId: account.localAccountId,
170
+ tenantId: account.tenantId,
171
+ scopes: scopes.split(" "),
172
+ account,
173
+ idToken: idToken.secret,
174
+ idTokenClaims: idTokenClaims || {},
175
+ accessToken: accessToken.secret,
176
+ fromCache: true,
177
+ expiresOn: new Date(Number(accessToken.expiresOn) * 1000),
178
+ tokenType: request.authenticationScheme || AuthenticationScheme.BEARER,
179
+ correlationId,
180
+ extExpiresOn: new Date(Number(accessToken.extendedExpiresOn) * 1000),
181
+ state: request.state,
182
+ };
183
+ return authenticationResult;
184
+ }
185
185
  }
186
186
 
187
187
  export { NestedAppAuthAdapter };
@@ -1,17 +1,17 @@
1
- import { NavigationOptions } from "./NavigationOptions";
2
- export interface INavigationClient {
3
- /**
4
- * Navigates to other pages within the same web application
5
- * Return false if this doesn't cause the page to reload i.e. Client-side navigation
6
- * @param url
7
- * @param options
8
- */
9
- navigateInternal(url: string, options: NavigationOptions): Promise<boolean>;
10
- /**
11
- * Navigates to other pages outside the web application i.e. the Identity Provider
12
- * @param url
13
- * @param options
14
- */
15
- navigateExternal(url: string, options: NavigationOptions): Promise<boolean>;
16
- }
1
+ import { NavigationOptions } from "./NavigationOptions";
2
+ export interface INavigationClient {
3
+ /**
4
+ * Navigates to other pages within the same web application
5
+ * Return false if this doesn't cause the page to reload i.e. Client-side navigation
6
+ * @param url
7
+ * @param options
8
+ */
9
+ navigateInternal(url: string, options: NavigationOptions): Promise<boolean>;
10
+ /**
11
+ * Navigates to other pages outside the web application i.e. the Identity Provider
12
+ * @param url
13
+ * @param options
14
+ */
15
+ navigateExternal(url: string, options: NavigationOptions): Promise<boolean>;
16
+ }
17
17
  //# sourceMappingURL=INavigationClient.d.ts.map
@@ -1,23 +1,23 @@
1
- import { INavigationClient } from "./INavigationClient";
2
- import { NavigationOptions } from "./NavigationOptions";
3
- export declare class NavigationClient implements INavigationClient {
4
- /**
5
- * Navigates to other pages within the same web application
6
- * @param url
7
- * @param options
8
- */
9
- navigateInternal(url: string, options: NavigationOptions): Promise<boolean>;
10
- /**
11
- * Navigates to other pages outside the web application i.e. the Identity Provider
12
- * @param url
13
- * @param options
14
- */
15
- navigateExternal(url: string, options: NavigationOptions): Promise<boolean>;
16
- /**
17
- * Default navigation implementation invoked by the internal and external functions
18
- * @param url
19
- * @param options
20
- */
21
- private static defaultNavigateWindow;
22
- }
1
+ import { INavigationClient } from "./INavigationClient";
2
+ import { NavigationOptions } from "./NavigationOptions";
3
+ export declare class NavigationClient implements INavigationClient {
4
+ /**
5
+ * Navigates to other pages within the same web application
6
+ * @param url
7
+ * @param options
8
+ */
9
+ navigateInternal(url: string, options: NavigationOptions): Promise<boolean>;
10
+ /**
11
+ * Navigates to other pages outside the web application i.e. the Identity Provider
12
+ * @param url
13
+ * @param options
14
+ */
15
+ navigateExternal(url: string, options: NavigationOptions): Promise<boolean>;
16
+ /**
17
+ * Default navigation implementation invoked by the internal and external functions
18
+ * @param url
19
+ * @param options
20
+ */
21
+ private static defaultNavigateWindow;
22
+ }
23
23
  //# sourceMappingURL=NavigationClient.d.ts.map
@@ -1,44 +1,44 @@
1
- /*! @azure/msal-browser v3.19.1 2024-07-16 */
1
+ /*! @azure/msal-browser v3.21.0 2024-08-13 */
2
2
  'use strict';
3
- /*
4
- * Copyright (c) Microsoft Corporation. All rights reserved.
5
- * Licensed under the MIT License.
6
- */
7
- class NavigationClient {
8
- /**
9
- * Navigates to other pages within the same web application
10
- * @param url
11
- * @param options
12
- */
13
- navigateInternal(url, options) {
14
- return NavigationClient.defaultNavigateWindow(url, options);
15
- }
16
- /**
17
- * Navigates to other pages outside the web application i.e. the Identity Provider
18
- * @param url
19
- * @param options
20
- */
21
- navigateExternal(url, options) {
22
- return NavigationClient.defaultNavigateWindow(url, options);
23
- }
24
- /**
25
- * Default navigation implementation invoked by the internal and external functions
26
- * @param url
27
- * @param options
28
- */
29
- static defaultNavigateWindow(url, options) {
30
- if (options.noHistory) {
31
- window.location.replace(url);
32
- }
33
- else {
34
- window.location.assign(url);
35
- }
36
- return new Promise((resolve) => {
37
- setTimeout(() => {
38
- resolve(true);
39
- }, options.timeout);
40
- });
41
- }
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ class NavigationClient {
8
+ /**
9
+ * Navigates to other pages within the same web application
10
+ * @param url
11
+ * @param options
12
+ */
13
+ navigateInternal(url, options) {
14
+ return NavigationClient.defaultNavigateWindow(url, options);
15
+ }
16
+ /**
17
+ * Navigates to other pages outside the web application i.e. the Identity Provider
18
+ * @param url
19
+ * @param options
20
+ */
21
+ navigateExternal(url, options) {
22
+ return NavigationClient.defaultNavigateWindow(url, options);
23
+ }
24
+ /**
25
+ * Default navigation implementation invoked by the internal and external functions
26
+ * @param url
27
+ * @param options
28
+ */
29
+ static defaultNavigateWindow(url, options) {
30
+ if (options.noHistory) {
31
+ window.location.replace(url);
32
+ }
33
+ else {
34
+ window.location.assign(url);
35
+ }
36
+ return new Promise((resolve) => {
37
+ setTimeout(() => {
38
+ resolve(true);
39
+ }, options.timeout);
40
+ });
41
+ }
42
42
  }
43
43
 
44
44
  export { NavigationClient };
@@ -1,13 +1,13 @@
1
- import { ApiId } from "../utils/BrowserConstants";
2
- /**
3
- * Additional information passed to the navigateInternal and navigateExternal functions
4
- */
5
- export type NavigationOptions = {
6
- /** The Id of the API that initiated navigation */
7
- apiId: ApiId;
8
- /** Suggested timeout (ms) based on the configuration provided to PublicClientApplication */
9
- timeout: number;
10
- /** When set to true the url should not be added to the browser history */
11
- noHistory: boolean;
12
- };
1
+ import { ApiId } from "../utils/BrowserConstants";
2
+ /**
3
+ * Additional information passed to the navigateInternal and navigateExternal functions
4
+ */
5
+ export type NavigationOptions = {
6
+ /** The Id of the API that initiated navigation */
7
+ apiId: ApiId;
8
+ /** Suggested timeout (ms) based on the configuration provided to PublicClientApplication */
9
+ timeout: number;
10
+ /** When set to true the url should not be added to the browser history */
11
+ noHistory: boolean;
12
+ };
13
13
  //# sourceMappingURL=NavigationOptions.d.ts.map