@azure/msal-common 14.0.0-alpha.1 → 14.0.0-beta.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 (187) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +62 -62
  3. package/dist/account/AccountInfo.d.ts +31 -31
  4. package/dist/account/AuthToken.d.ts +20 -20
  5. package/dist/account/AuthToken.js +48 -48
  6. package/dist/account/CcsCredential.d.ts +9 -8
  7. package/dist/account/CcsCredential.d.ts.map +1 -1
  8. package/dist/account/CcsCredential.js +9 -10
  9. package/dist/account/CcsCredential.js.map +1 -1
  10. package/dist/account/ClientCredentials.d.ts +14 -14
  11. package/dist/account/ClientInfo.d.ts +19 -19
  12. package/dist/account/ClientInfo.js +37 -37
  13. package/dist/account/DecodedAuthToken.d.ts +8 -8
  14. package/dist/account/TokenClaims.d.ts +65 -65
  15. package/dist/authority/Authority.d.ts +228 -215
  16. package/dist/authority/Authority.d.ts.map +1 -1
  17. package/dist/authority/Authority.js +716 -682
  18. package/dist/authority/Authority.js.map +1 -1
  19. package/dist/authority/AuthorityFactory.d.ts +30 -30
  20. package/dist/authority/AuthorityFactory.js +47 -47
  21. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  22. package/dist/authority/AuthorityMetadata.js +876 -876
  23. package/dist/authority/AuthorityOptions.d.ts +19 -18
  24. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  25. package/dist/authority/AuthorityOptions.js +19 -20
  26. package/dist/authority/AuthorityOptions.js.map +1 -1
  27. package/dist/authority/AuthorityType.d.ts +10 -9
  28. package/dist/authority/AuthorityType.d.ts.map +1 -1
  29. package/dist/authority/AuthorityType.js +14 -15
  30. package/dist/authority/AuthorityType.js.map +1 -1
  31. package/dist/authority/AzureRegion.d.ts +1 -1
  32. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  33. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  34. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  35. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  36. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  37. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  38. package/dist/authority/ImdsOptions.d.ts +5 -5
  39. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  40. package/dist/authority/OpenIdConfigResponse.js +10 -10
  41. package/dist/authority/ProtocolMode.d.ts +8 -7
  42. package/dist/authority/ProtocolMode.d.ts.map +1 -1
  43. package/dist/authority/ProtocolMode.js +12 -13
  44. package/dist/authority/ProtocolMode.js.map +1 -1
  45. package/dist/authority/RegionDiscovery.d.ts +30 -30
  46. package/dist/authority/RegionDiscovery.js +108 -108
  47. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  48. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  49. package/dist/cache/CacheManager.d.ts +443 -443
  50. package/dist/cache/CacheManager.js +1011 -1011
  51. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  52. package/dist/cache/entities/AccessTokenEntity.js +111 -111
  53. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  54. package/dist/cache/entities/AccountEntity.js +248 -248
  55. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  56. package/dist/cache/entities/AppMetadataEntity.js +66 -66
  57. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  58. package/dist/cache/entities/AuthorityMetadataEntity.js +77 -77
  59. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  60. package/dist/cache/entities/CacheRecord.js +13 -13
  61. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  62. package/dist/cache/entities/CredentialEntity.js +136 -136
  63. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  64. package/dist/cache/entities/IdTokenEntity.js +56 -56
  65. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  66. package/dist/cache/entities/RefreshTokenEntity.js +59 -59
  67. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  68. package/dist/cache/entities/ServerTelemetryEntity.js +27 -27
  69. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  70. package/dist/cache/entities/ThrottlingEntity.js +23 -23
  71. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  72. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  73. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  74. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  75. package/dist/cache/persistence/TokenCacheContext.js +25 -25
  76. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  77. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  78. package/dist/client/AuthorizationCodeClient.js +433 -433
  79. package/dist/client/BaseClient.d.ts +50 -50
  80. package/dist/client/BaseClient.js +92 -92
  81. package/dist/client/RefreshTokenClient.d.ts +34 -34
  82. package/dist/client/RefreshTokenClient.js +239 -239
  83. package/dist/client/SilentFlowClient.d.ts +24 -24
  84. package/dist/client/SilentFlowClient.js +94 -94
  85. package/dist/config/AppTokenProvider.d.ts +38 -38
  86. package/dist/config/ClientConfiguration.d.ts +133 -133
  87. package/dist/config/ClientConfiguration.js +88 -88
  88. package/dist/crypto/ICrypto.d.ts +62 -62
  89. package/dist/crypto/ICrypto.js +42 -42
  90. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  91. package/dist/crypto/JoseHeader.d.ts +21 -21
  92. package/dist/crypto/JoseHeader.js +36 -36
  93. package/dist/crypto/PopTokenGenerator.d.ts +58 -57
  94. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  95. package/dist/crypto/PopTokenGenerator.js +82 -83
  96. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  97. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  98. package/dist/error/AuthError.d.ts +47 -47
  99. package/dist/error/AuthError.js +51 -51
  100. package/dist/error/ClientAuthError.d.ts +412 -412
  101. package/dist/error/ClientAuthError.js +519 -519
  102. package/dist/error/ClientConfigurationError.d.ts +206 -198
  103. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  104. package/dist/error/ClientConfigurationError.js +259 -249
  105. package/dist/error/ClientConfigurationError.js.map +1 -1
  106. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  107. package/dist/error/InteractionRequiredAuthError.js +78 -78
  108. package/dist/error/JoseHeaderError.d.ts +28 -28
  109. package/dist/error/JoseHeaderError.js +39 -39
  110. package/dist/error/ServerError.d.ts +7 -7
  111. package/dist/error/ServerError.js +14 -14
  112. package/dist/index.cjs.js +8826 -8813
  113. package/dist/index.cjs.js.map +1 -1
  114. package/dist/index.d.ts +93 -93
  115. package/dist/index.js +1 -1
  116. package/dist/logger/Logger.d.ts +95 -95
  117. package/dist/logger/Logger.js +197 -197
  118. package/dist/network/INetworkModule.d.ts +29 -29
  119. package/dist/network/INetworkModule.js +14 -14
  120. package/dist/network/NetworkManager.d.ts +32 -32
  121. package/dist/network/NetworkManager.js +33 -33
  122. package/dist/network/RequestThumbprint.d.ts +16 -16
  123. package/dist/network/ThrottlingUtils.d.ts +41 -41
  124. package/dist/network/ThrottlingUtils.js +94 -94
  125. package/dist/packageMetadata.d.ts +2 -2
  126. package/dist/packageMetadata.d.ts.map +1 -1
  127. package/dist/packageMetadata.js +4 -4
  128. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  129. package/dist/request/AuthenticationHeaderParser.js +55 -55
  130. package/dist/request/BaseAuthRequest.d.ts +37 -37
  131. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  132. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  133. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  134. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  135. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  136. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  137. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  138. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  139. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  140. package/dist/request/NativeRequest.d.ts +19 -19
  141. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  142. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  143. package/dist/request/RequestParameterBuilder.js +374 -374
  144. package/dist/request/RequestValidator.d.ts +33 -33
  145. package/dist/request/RequestValidator.js +82 -83
  146. package/dist/request/RequestValidator.js.map +1 -1
  147. package/dist/request/ScopeSet.d.ts +88 -88
  148. package/dist/request/ScopeSet.js +197 -197
  149. package/dist/response/AuthenticationResult.d.ts +39 -39
  150. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  151. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  152. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  153. package/dist/response/IMDSBadResponse.d.ts +4 -4
  154. package/dist/response/ResponseHandler.d.ts +72 -72
  155. package/dist/response/ResponseHandler.js +300 -300
  156. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  157. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  158. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -42
  159. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  160. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -189
  161. package/dist/telemetry/performance/PerformanceClient.js +406 -406
  162. package/dist/telemetry/performance/PerformanceEvent.d.ts +441 -439
  163. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  164. package/dist/telemetry/performance/PerformanceEvent.js +225 -227
  165. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  166. package/dist/telemetry/performance/StubPerformanceClient.d.ts +15 -19
  167. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  168. package/dist/telemetry/performance/StubPerformanceClient.js +22 -36
  169. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  170. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -65
  171. package/dist/telemetry/server/ServerTelemetryManager.js +196 -196
  172. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  173. package/dist/url/IUri.d.ts +12 -12
  174. package/dist/url/UrlString.d.ts +70 -70
  175. package/dist/url/UrlString.js +242 -242
  176. package/dist/utils/Constants.d.ts +345 -331
  177. package/dist/utils/Constants.d.ts.map +1 -1
  178. package/dist/utils/Constants.js +353 -373
  179. package/dist/utils/Constants.js.map +1 -1
  180. package/dist/utils/MsalTypes.d.ts +6 -6
  181. package/dist/utils/ProtocolUtils.d.ts +42 -42
  182. package/dist/utils/ProtocolUtils.js +71 -71
  183. package/dist/utils/StringUtils.d.ts +53 -53
  184. package/dist/utils/StringUtils.js +124 -124
  185. package/dist/utils/TimeUtils.d.ts +27 -27
  186. package/dist/utils/TimeUtils.js +45 -45
  187. package/package.json +86 -79
@@ -1,17 +1,17 @@
1
- import { AuthenticationScheme } from "../utils/Constants";
2
- /**
3
- * Type representing a unique request thumbprint.
4
- */
5
- export type RequestThumbprint = {
6
- clientId: string;
7
- authority: string;
8
- scopes: Array<string>;
9
- homeAccountIdentifier?: string;
10
- claims?: string;
11
- authenticationScheme?: AuthenticationScheme;
12
- resourceRequestMethod?: string;
13
- resourceRequestUri?: string;
14
- shrClaims?: string;
15
- sshKid?: string;
16
- };
1
+ import { AuthenticationScheme } from "../utils/Constants";
2
+ /**
3
+ * Type representing a unique request thumbprint.
4
+ */
5
+ export type RequestThumbprint = {
6
+ clientId: string;
7
+ authority: string;
8
+ scopes: Array<string>;
9
+ homeAccountIdentifier?: string;
10
+ claims?: string;
11
+ authenticationScheme?: AuthenticationScheme;
12
+ resourceRequestMethod?: string;
13
+ resourceRequestUri?: string;
14
+ shrClaims?: string;
15
+ sshKid?: string;
16
+ };
17
17
  //# sourceMappingURL=RequestThumbprint.d.ts.map
@@ -1,42 +1,42 @@
1
- import { NetworkResponse } from "./NetworkManager";
2
- import { ServerAuthorizationTokenResponse } from "../response/ServerAuthorizationTokenResponse";
3
- import { CacheManager } from "../cache/CacheManager";
4
- import { RequestThumbprint } from "./RequestThumbprint";
5
- import { BaseAuthRequest } from "../request/BaseAuthRequest";
6
- export declare class ThrottlingUtils {
7
- /**
8
- * Prepares a RequestThumbprint to be stored as a key.
9
- * @param thumbprint
10
- */
11
- static generateThrottlingStorageKey(thumbprint: RequestThumbprint): string;
12
- /**
13
- * Performs necessary throttling checks before a network request.
14
- * @param cacheManager
15
- * @param thumbprint
16
- */
17
- static preProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint): void;
18
- /**
19
- * Performs necessary throttling checks after a network request.
20
- * @param cacheManager
21
- * @param thumbprint
22
- * @param response
23
- */
24
- static postProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint, response: NetworkResponse<ServerAuthorizationTokenResponse>): void;
25
- /**
26
- * Checks a NetworkResponse object's status codes against 429 or 5xx
27
- * @param response
28
- */
29
- static checkResponseStatus(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean;
30
- /**
31
- * Checks a NetworkResponse object's RetryAfter header
32
- * @param response
33
- */
34
- static checkResponseForRetryAfter(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean;
35
- /**
36
- * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.
37
- * @param throttleTime
38
- */
39
- static calculateThrottleTime(throttleTime: number): number;
40
- static removeThrottle(cacheManager: CacheManager, clientId: string, request: BaseAuthRequest, homeAccountIdentifier?: string): void;
41
- }
1
+ import { NetworkResponse } from "./NetworkManager";
2
+ import { ServerAuthorizationTokenResponse } from "../response/ServerAuthorizationTokenResponse";
3
+ import { CacheManager } from "../cache/CacheManager";
4
+ import { RequestThumbprint } from "./RequestThumbprint";
5
+ import { BaseAuthRequest } from "../request/BaseAuthRequest";
6
+ export declare class ThrottlingUtils {
7
+ /**
8
+ * Prepares a RequestThumbprint to be stored as a key.
9
+ * @param thumbprint
10
+ */
11
+ static generateThrottlingStorageKey(thumbprint: RequestThumbprint): string;
12
+ /**
13
+ * Performs necessary throttling checks before a network request.
14
+ * @param cacheManager
15
+ * @param thumbprint
16
+ */
17
+ static preProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint): void;
18
+ /**
19
+ * Performs necessary throttling checks after a network request.
20
+ * @param cacheManager
21
+ * @param thumbprint
22
+ * @param response
23
+ */
24
+ static postProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint, response: NetworkResponse<ServerAuthorizationTokenResponse>): void;
25
+ /**
26
+ * Checks a NetworkResponse object's status codes against 429 or 5xx
27
+ * @param response
28
+ */
29
+ static checkResponseStatus(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean;
30
+ /**
31
+ * Checks a NetworkResponse object's RetryAfter header
32
+ * @param response
33
+ */
34
+ static checkResponseForRetryAfter(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean;
35
+ /**
36
+ * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.
37
+ * @param throttleTime
38
+ */
39
+ static calculateThrottleTime(throttleTime: number): number;
40
+ static removeThrottle(cacheManager: CacheManager, clientId: string, request: BaseAuthRequest, homeAccountIdentifier?: string): void;
41
+ }
42
42
  //# sourceMappingURL=ThrottlingUtils.d.ts.map
@@ -1,101 +1,101 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-beta.0 2023-06-19 */
2
2
  'use strict';
3
3
  import { ThrottlingConstants, Constants, HeaderNames } from '../utils/Constants.js';
4
4
  import { ServerError } from '../error/ServerError.js';
5
5
 
6
- /*
7
- * Copyright (c) Microsoft Corporation. All rights reserved.
8
- * Licensed under the MIT License.
9
- */
10
- class ThrottlingUtils {
11
- /**
12
- * Prepares a RequestThumbprint to be stored as a key.
13
- * @param thumbprint
14
- */
15
- static generateThrottlingStorageKey(thumbprint) {
16
- return `${ThrottlingConstants.THROTTLING_PREFIX}.${JSON.stringify(thumbprint)}`;
17
- }
18
- /**
19
- * Performs necessary throttling checks before a network request.
20
- * @param cacheManager
21
- * @param thumbprint
22
- */
23
- static preProcess(cacheManager, thumbprint) {
24
- const key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);
25
- const value = cacheManager.getThrottlingCache(key);
26
- if (value) {
27
- if (value.throttleTime < Date.now()) {
28
- cacheManager.removeItem(key);
29
- return;
30
- }
31
- throw new ServerError(value.errorCodes?.join(" ") || Constants.EMPTY_STRING, value.errorMessage, value.subError);
32
- }
33
- }
34
- /**
35
- * Performs necessary throttling checks after a network request.
36
- * @param cacheManager
37
- * @param thumbprint
38
- * @param response
39
- */
40
- static postProcess(cacheManager, thumbprint, response) {
41
- if (ThrottlingUtils.checkResponseStatus(response) ||
42
- ThrottlingUtils.checkResponseForRetryAfter(response)) {
43
- const thumbprintValue = {
44
- throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),
45
- error: response.body.error,
46
- errorCodes: response.body.error_codes,
47
- errorMessage: response.body.error_description,
48
- subError: response.body.suberror,
49
- };
50
- cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);
51
- }
52
- }
53
- /**
54
- * Checks a NetworkResponse object's status codes against 429 or 5xx
55
- * @param response
56
- */
57
- static checkResponseStatus(response) {
58
- return (response.status === 429 ||
59
- (response.status >= 500 && response.status < 600));
60
- }
61
- /**
62
- * Checks a NetworkResponse object's RetryAfter header
63
- * @param response
64
- */
65
- static checkResponseForRetryAfter(response) {
66
- if (response.headers) {
67
- return (response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) &&
68
- (response.status < 200 || response.status >= 300));
69
- }
70
- return false;
71
- }
72
- /**
73
- * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.
74
- * @param throttleTime
75
- */
76
- static calculateThrottleTime(throttleTime) {
77
- const time = throttleTime <= 0 ? 0 : throttleTime;
78
- const currentSeconds = Date.now() / 1000;
79
- return Math.floor(Math.min(currentSeconds +
80
- (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds +
81
- ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);
82
- }
83
- static removeThrottle(cacheManager, clientId, request, homeAccountIdentifier) {
84
- const thumbprint = {
85
- clientId: clientId,
86
- authority: request.authority,
87
- scopes: request.scopes,
88
- homeAccountIdentifier: homeAccountIdentifier,
89
- claims: request.claims,
90
- authenticationScheme: request.authenticationScheme,
91
- resourceRequestMethod: request.resourceRequestMethod,
92
- resourceRequestUri: request.resourceRequestUri,
93
- shrClaims: request.shrClaims,
94
- sshKid: request.sshKid,
95
- };
96
- const key = this.generateThrottlingStorageKey(thumbprint);
97
- cacheManager.removeItem(key);
98
- }
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ class ThrottlingUtils {
11
+ /**
12
+ * Prepares a RequestThumbprint to be stored as a key.
13
+ * @param thumbprint
14
+ */
15
+ static generateThrottlingStorageKey(thumbprint) {
16
+ return `${ThrottlingConstants.THROTTLING_PREFIX}.${JSON.stringify(thumbprint)}`;
17
+ }
18
+ /**
19
+ * Performs necessary throttling checks before a network request.
20
+ * @param cacheManager
21
+ * @param thumbprint
22
+ */
23
+ static preProcess(cacheManager, thumbprint) {
24
+ const key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);
25
+ const value = cacheManager.getThrottlingCache(key);
26
+ if (value) {
27
+ if (value.throttleTime < Date.now()) {
28
+ cacheManager.removeItem(key);
29
+ return;
30
+ }
31
+ throw new ServerError(value.errorCodes?.join(" ") || Constants.EMPTY_STRING, value.errorMessage, value.subError);
32
+ }
33
+ }
34
+ /**
35
+ * Performs necessary throttling checks after a network request.
36
+ * @param cacheManager
37
+ * @param thumbprint
38
+ * @param response
39
+ */
40
+ static postProcess(cacheManager, thumbprint, response) {
41
+ if (ThrottlingUtils.checkResponseStatus(response) ||
42
+ ThrottlingUtils.checkResponseForRetryAfter(response)) {
43
+ const thumbprintValue = {
44
+ throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),
45
+ error: response.body.error,
46
+ errorCodes: response.body.error_codes,
47
+ errorMessage: response.body.error_description,
48
+ subError: response.body.suberror,
49
+ };
50
+ cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);
51
+ }
52
+ }
53
+ /**
54
+ * Checks a NetworkResponse object's status codes against 429 or 5xx
55
+ * @param response
56
+ */
57
+ static checkResponseStatus(response) {
58
+ return (response.status === 429 ||
59
+ (response.status >= 500 && response.status < 600));
60
+ }
61
+ /**
62
+ * Checks a NetworkResponse object's RetryAfter header
63
+ * @param response
64
+ */
65
+ static checkResponseForRetryAfter(response) {
66
+ if (response.headers) {
67
+ return (response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) &&
68
+ (response.status < 200 || response.status >= 300));
69
+ }
70
+ return false;
71
+ }
72
+ /**
73
+ * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.
74
+ * @param throttleTime
75
+ */
76
+ static calculateThrottleTime(throttleTime) {
77
+ const time = throttleTime <= 0 ? 0 : throttleTime;
78
+ const currentSeconds = Date.now() / 1000;
79
+ return Math.floor(Math.min(currentSeconds +
80
+ (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds +
81
+ ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);
82
+ }
83
+ static removeThrottle(cacheManager, clientId, request, homeAccountIdentifier) {
84
+ const thumbprint = {
85
+ clientId: clientId,
86
+ authority: request.authority,
87
+ scopes: request.scopes,
88
+ homeAccountIdentifier: homeAccountIdentifier,
89
+ claims: request.claims,
90
+ authenticationScheme: request.authenticationScheme,
91
+ resourceRequestMethod: request.resourceRequestMethod,
92
+ resourceRequestUri: request.resourceRequestUri,
93
+ shrClaims: request.shrClaims,
94
+ sshKid: request.sshKid,
95
+ };
96
+ const key = this.generateThrottlingStorageKey(thumbprint);
97
+ cacheManager.removeItem(key);
98
+ }
99
99
  }
100
100
 
101
101
  export { ThrottlingUtils };
@@ -1,3 +1,3 @@
1
- export declare const name = "@azure/msal-common";
2
- export declare const version = "14.0.0-alpha.1";
1
+ export declare const name = "@azure/msal-common";
2
+ export declare const version = "14.0.0-beta.0";
3
3
  //# sourceMappingURL=packageMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageMetadata.d.ts","sourceRoot":"","sources":["../src/packageMetadata.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,uBAAuB,CAAC;AACzC,eAAO,MAAM,OAAO,mBAAmB,CAAC"}
1
+ {"version":3,"file":"packageMetadata.d.ts","sourceRoot":"","sources":["../src/packageMetadata.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,uBAAuB,CAAC;AACzC,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
@@ -1,8 +1,8 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-beta.0 2023-06-19 */
2
2
  'use strict';
3
- /* eslint-disable header/header */
4
- const name = "@azure/msal-common";
5
- const version = "14.0.0-alpha.1";
3
+ /* eslint-disable header/header */
4
+ const name = "@azure/msal-common";
5
+ const version = "14.0.0-beta.0";
6
6
 
7
7
  export { name, version };
8
8
  //# sourceMappingURL=packageMetadata.js.map
@@ -1,20 +1,20 @@
1
- /**
2
- * This is a helper class that parses supported HTTP response authentication headers to extract and return
3
- * header challenge values that can be used outside the basic authorization flows.
4
- */
5
- export declare class AuthenticationHeaderParser {
6
- private headers;
7
- constructor(headers: Record<string, string>);
8
- /**
9
- * This method parses the SHR nonce value out of either the Authentication-Info or WWW-Authenticate authentication headers.
10
- * @returns
11
- */
12
- getShrNonce(): string;
13
- /**
14
- * Parses an HTTP header's challenge set into a key/value map.
15
- * @param header
16
- * @returns
17
- */
18
- private parseChallenges;
19
- }
1
+ /**
2
+ * This is a helper class that parses supported HTTP response authentication headers to extract and return
3
+ * header challenge values that can be used outside the basic authorization flows.
4
+ */
5
+ export declare class AuthenticationHeaderParser {
6
+ private headers;
7
+ constructor(headers: Record<string, string>);
8
+ /**
9
+ * This method parses the SHR nonce value out of either the Authentication-Info or WWW-Authenticate authentication headers.
10
+ * @returns
11
+ */
12
+ getShrNonce(): string;
13
+ /**
14
+ * Parses an HTTP header's challenge set into a key/value map.
15
+ * @param header
16
+ * @returns
17
+ */
18
+ private parseChallenges;
19
+ }
20
20
  //# sourceMappingURL=AuthenticationHeaderParser.d.ts.map
@@ -1,62 +1,62 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-beta.0 2023-06-19 */
2
2
  'use strict';
3
3
  import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
4
4
  import { HeaderNames, Constants } from '../utils/Constants.js';
5
5
 
6
- /*
7
- * Copyright (c) Microsoft Corporation. All rights reserved.
8
- * Licensed under the MIT License.
9
- */
10
- /**
11
- * This is a helper class that parses supported HTTP response authentication headers to extract and return
12
- * header challenge values that can be used outside the basic authorization flows.
13
- */
14
- class AuthenticationHeaderParser {
15
- constructor(headers) {
16
- this.headers = headers;
17
- }
18
- /**
19
- * This method parses the SHR nonce value out of either the Authentication-Info or WWW-Authenticate authentication headers.
20
- * @returns
21
- */
22
- getShrNonce() {
23
- // Attempt to parse nonce from Authentiacation-Info
24
- const authenticationInfo = this.headers[HeaderNames.AuthenticationInfo];
25
- if (authenticationInfo) {
26
- const authenticationInfoChallenges = this.parseChallenges(authenticationInfo);
27
- if (authenticationInfoChallenges.nextnonce) {
28
- return authenticationInfoChallenges.nextnonce;
29
- }
30
- throw ClientConfigurationError.createInvalidAuthenticationHeaderError(HeaderNames.AuthenticationInfo, "nextnonce challenge is missing.");
31
- }
32
- // Attempt to parse nonce from WWW-Authenticate
33
- const wwwAuthenticate = this.headers[HeaderNames.WWWAuthenticate];
34
- if (wwwAuthenticate) {
35
- const wwwAuthenticateChallenges = this.parseChallenges(wwwAuthenticate);
36
- if (wwwAuthenticateChallenges.nonce) {
37
- return wwwAuthenticateChallenges.nonce;
38
- }
39
- throw ClientConfigurationError.createInvalidAuthenticationHeaderError(HeaderNames.WWWAuthenticate, "nonce challenge is missing.");
40
- }
41
- // If neither header is present, throw missing headers error
42
- throw ClientConfigurationError.createMissingNonceAuthenticationHeadersError();
43
- }
44
- /**
45
- * Parses an HTTP header's challenge set into a key/value map.
46
- * @param header
47
- * @returns
48
- */
49
- parseChallenges(header) {
50
- const schemeSeparator = header.indexOf(" ");
51
- const challenges = header.substr(schemeSeparator + 1).split(",");
52
- const challengeMap = {};
53
- challenges.forEach((challenge) => {
54
- const [key, value] = challenge.split("=");
55
- // Remove escaped quotation marks (', ") from challenge string to keep only the challenge value
56
- challengeMap[key] = unescape(value.replace(/['"]+/g, Constants.EMPTY_STRING));
57
- });
58
- return challengeMap;
59
- }
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ /**
11
+ * This is a helper class that parses supported HTTP response authentication headers to extract and return
12
+ * header challenge values that can be used outside the basic authorization flows.
13
+ */
14
+ class AuthenticationHeaderParser {
15
+ constructor(headers) {
16
+ this.headers = headers;
17
+ }
18
+ /**
19
+ * This method parses the SHR nonce value out of either the Authentication-Info or WWW-Authenticate authentication headers.
20
+ * @returns
21
+ */
22
+ getShrNonce() {
23
+ // Attempt to parse nonce from Authentiacation-Info
24
+ const authenticationInfo = this.headers[HeaderNames.AuthenticationInfo];
25
+ if (authenticationInfo) {
26
+ const authenticationInfoChallenges = this.parseChallenges(authenticationInfo);
27
+ if (authenticationInfoChallenges.nextnonce) {
28
+ return authenticationInfoChallenges.nextnonce;
29
+ }
30
+ throw ClientConfigurationError.createInvalidAuthenticationHeaderError(HeaderNames.AuthenticationInfo, "nextnonce challenge is missing.");
31
+ }
32
+ // Attempt to parse nonce from WWW-Authenticate
33
+ const wwwAuthenticate = this.headers[HeaderNames.WWWAuthenticate];
34
+ if (wwwAuthenticate) {
35
+ const wwwAuthenticateChallenges = this.parseChallenges(wwwAuthenticate);
36
+ if (wwwAuthenticateChallenges.nonce) {
37
+ return wwwAuthenticateChallenges.nonce;
38
+ }
39
+ throw ClientConfigurationError.createInvalidAuthenticationHeaderError(HeaderNames.WWWAuthenticate, "nonce challenge is missing.");
40
+ }
41
+ // If neither header is present, throw missing headers error
42
+ throw ClientConfigurationError.createMissingNonceAuthenticationHeadersError();
43
+ }
44
+ /**
45
+ * Parses an HTTP header's challenge set into a key/value map.
46
+ * @param header
47
+ * @returns
48
+ */
49
+ parseChallenges(header) {
50
+ const schemeSeparator = header.indexOf(" ");
51
+ const challenges = header.substr(schemeSeparator + 1).split(",");
52
+ const challengeMap = {};
53
+ challenges.forEach((challenge) => {
54
+ const [key, value] = challenge.split("=");
55
+ // Remove escaped quotation marks (', ") from challenge string to keep only the challenge value
56
+ challengeMap[key] = unescape(value.replace(/['"]+/g, Constants.EMPTY_STRING));
57
+ });
58
+ return challengeMap;
59
+ }
60
60
  }
61
61
 
62
62
  export { AuthenticationHeaderParser };
@@ -1,38 +1,38 @@
1
- import { AuthenticationScheme } from "../utils/Constants";
2
- import { AzureCloudOptions } from "../config/ClientConfiguration";
3
- import { StringDict } from "../utils/MsalTypes";
4
- /**
5
- * BaseAuthRequest
6
- * - authority - URL of the authority, the security token service (STS) from which MSAL will acquire tokens. Defaults to https://login.microsoftonline.com/common. If using the same authority for all request, authority should set on client application object and not request, to avoid resolving authority endpoints multiple times.
7
- * - correlationId - Unique GUID set per request to trace a request end-to-end for telemetry purposes.
8
- * - scopes - Array of scopes the application is requesting access to.
9
- * - authenticationScheme - The type of token retrieved. Defaults to "Bearer". Can also be type "pop" or "SSH".
10
- * - claims - A stringified claims request which will be added to all /authorize and /token calls
11
- * - shrClaims - A stringified claims object which will be added to a Signed HTTP Request
12
- * - shrNonce - A server-generated timestamp that has been encrypted and base64URL encoded, which will be added to a Signed HTTP Request.
13
- * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
14
- * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
15
- * - sshJwk - A stringified JSON Web Key representing a public key that can be signed by an SSH certificate.
16
- * - sshKid - Key ID that uniquely identifies the SSH public key mentioned above.
17
- * - azureCloudOptions - Convenience string enums for users to provide public/sovereign cloud ids
18
- * - requestedClaimsHash - SHA 256 hash string of the requested claims string, used as part of an access token cache key so tokens can be filtered by requested claims
19
- * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
20
- */
21
- export type BaseAuthRequest = {
22
- authority: string;
23
- correlationId: string;
24
- scopes: Array<string>;
25
- authenticationScheme?: AuthenticationScheme;
26
- claims?: string;
27
- shrClaims?: string;
28
- shrNonce?: string;
29
- resourceRequestMethod?: string;
30
- resourceRequestUri?: string;
31
- sshJwk?: string;
32
- sshKid?: string;
33
- azureCloudOptions?: AzureCloudOptions;
34
- requestedClaimsHash?: string;
35
- maxAge?: number;
36
- tokenQueryParameters?: StringDict;
37
- };
1
+ import { AuthenticationScheme } from "../utils/Constants";
2
+ import { AzureCloudOptions } from "../config/ClientConfiguration";
3
+ import { StringDict } from "../utils/MsalTypes";
4
+ /**
5
+ * BaseAuthRequest
6
+ * - authority - URL of the authority, the security token service (STS) from which MSAL will acquire tokens. Defaults to https://login.microsoftonline.com/common. If using the same authority for all request, authority should set on client application object and not request, to avoid resolving authority endpoints multiple times.
7
+ * - correlationId - Unique GUID set per request to trace a request end-to-end for telemetry purposes.
8
+ * - scopes - Array of scopes the application is requesting access to.
9
+ * - authenticationScheme - The type of token retrieved. Defaults to "Bearer". Can also be type "pop" or "SSH".
10
+ * - claims - A stringified claims request which will be added to all /authorize and /token calls
11
+ * - shrClaims - A stringified claims object which will be added to a Signed HTTP Request
12
+ * - shrNonce - A server-generated timestamp that has been encrypted and base64URL encoded, which will be added to a Signed HTTP Request.
13
+ * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
14
+ * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
15
+ * - sshJwk - A stringified JSON Web Key representing a public key that can be signed by an SSH certificate.
16
+ * - sshKid - Key ID that uniquely identifies the SSH public key mentioned above.
17
+ * - azureCloudOptions - Convenience string enums for users to provide public/sovereign cloud ids
18
+ * - requestedClaimsHash - SHA 256 hash string of the requested claims string, used as part of an access token cache key so tokens can be filtered by requested claims
19
+ * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
20
+ */
21
+ export type BaseAuthRequest = {
22
+ authority: string;
23
+ correlationId: string;
24
+ scopes: Array<string>;
25
+ authenticationScheme?: AuthenticationScheme;
26
+ claims?: string;
27
+ shrClaims?: string;
28
+ shrNonce?: string;
29
+ resourceRequestMethod?: string;
30
+ resourceRequestUri?: string;
31
+ sshJwk?: string;
32
+ sshKid?: string;
33
+ azureCloudOptions?: AzureCloudOptions;
34
+ requestedClaimsHash?: string;
35
+ maxAge?: number;
36
+ tokenQueryParameters?: StringDict;
37
+ };
38
38
  //# sourceMappingURL=BaseAuthRequest.d.ts.map
@@ -1,28 +1,28 @@
1
- import { BaseAuthRequest } from "./BaseAuthRequest";
2
- import { StringDict } from "../utils/MsalTypes";
3
- import { CcsCredential } from "../account/CcsCredential";
4
- /**
5
- * Request object passed by user to acquire a token from the server exchanging a valid authorization code (second leg of OAuth2.0 Authorization Code flow)
6
- *
7
- * - scopes - Array of scopes the application is requesting access to.
8
- * - claims - A stringified claims request which will be added to all /authorize and /token calls
9
- * - authority: - URL of the authority, the security token service (STS) from which MSAL will acquire tokens. If authority is set on client application object, this will override that value. Overriding the value will cause for authority validation to happen each time. If the same authority will be used for all request, set on the application object instead of the requests.
10
- * - correlationId - Unique GUID set per request to trace a request end-to-end for telemetry purposes.
11
- * - redirectUri - The redirect URI of your app, where the authority will redirect to after the user inputs credentials and consents. It must exactly match one of the redirect URIs you registered in the portal
12
- * - code - The authorization_code that the user acquired in the first leg of the flow.
13
- * - codeVerifier - The same code_verifier that was used to obtain the authorization_code. Required if PKCE was used in the authorization code grant request.For more information, see the PKCE RFC: https://tools.ietf.org/html/rfc7636
14
- * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
15
- * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
16
- * - enableSpaAuthCode - Enables the acqusition of a spa authorization code (confidential clients only)
17
- * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
18
- */
19
- export type CommonAuthorizationCodeRequest = BaseAuthRequest & {
20
- code: string;
21
- redirectUri: string;
22
- codeVerifier?: string;
23
- tokenBodyParameters?: StringDict;
24
- enableSpaAuthorizationCode?: boolean;
25
- clientInfo?: string;
26
- ccsCredential?: CcsCredential;
27
- };
1
+ import { BaseAuthRequest } from "./BaseAuthRequest";
2
+ import { StringDict } from "../utils/MsalTypes";
3
+ import { CcsCredential } from "../account/CcsCredential";
4
+ /**
5
+ * Request object passed by user to acquire a token from the server exchanging a valid authorization code (second leg of OAuth2.0 Authorization Code flow)
6
+ *
7
+ * - scopes - Array of scopes the application is requesting access to.
8
+ * - claims - A stringified claims request which will be added to all /authorize and /token calls
9
+ * - authority: - URL of the authority, the security token service (STS) from which MSAL will acquire tokens. If authority is set on client application object, this will override that value. Overriding the value will cause for authority validation to happen each time. If the same authority will be used for all request, set on the application object instead of the requests.
10
+ * - correlationId - Unique GUID set per request to trace a request end-to-end for telemetry purposes.
11
+ * - redirectUri - The redirect URI of your app, where the authority will redirect to after the user inputs credentials and consents. It must exactly match one of the redirect URIs you registered in the portal
12
+ * - code - The authorization_code that the user acquired in the first leg of the flow.
13
+ * - codeVerifier - The same code_verifier that was used to obtain the authorization_code. Required if PKCE was used in the authorization code grant request.For more information, see the PKCE RFC: https://tools.ietf.org/html/rfc7636
14
+ * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
15
+ * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
16
+ * - enableSpaAuthCode - Enables the acqusition of a spa authorization code (confidential clients only)
17
+ * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
18
+ */
19
+ export type CommonAuthorizationCodeRequest = BaseAuthRequest & {
20
+ code: string;
21
+ redirectUri: string;
22
+ codeVerifier?: string;
23
+ tokenBodyParameters?: StringDict;
24
+ enableSpaAuthorizationCode?: boolean;
25
+ clientInfo?: string;
26
+ ccsCredential?: CcsCredential;
27
+ };
28
28
  //# sourceMappingURL=CommonAuthorizationCodeRequest.d.ts.map