@azure/msal-common 14.4.0 → 14.4.1-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 (199) hide show
  1. package/dist/account/AccountInfo.d.ts +31 -31
  2. package/dist/account/AuthToken.d.ts +17 -17
  3. package/dist/account/AuthToken.mjs +58 -58
  4. package/dist/account/CcsCredential.d.ts +9 -9
  5. package/dist/account/CcsCredential.mjs +8 -8
  6. package/dist/account/ClientCredentials.d.ts +14 -14
  7. package/dist/account/ClientInfo.d.ts +19 -19
  8. package/dist/account/ClientInfo.mjs +37 -37
  9. package/dist/account/TokenClaims.d.ts +65 -65
  10. package/dist/authority/Authority.d.ts +249 -249
  11. package/dist/authority/Authority.mjs +788 -788
  12. package/dist/authority/AuthorityFactory.d.ts +31 -31
  13. package/dist/authority/AuthorityFactory.mjs +47 -47
  14. package/dist/authority/AuthorityMetadata.d.ts +503 -503
  15. package/dist/authority/AuthorityMetadata.mjs +603 -603
  16. package/dist/authority/AuthorityOptions.d.ts +27 -27
  17. package/dist/authority/AuthorityOptions.mjs +18 -18
  18. package/dist/authority/AuthorityType.d.ts +10 -10
  19. package/dist/authority/AuthorityType.mjs +13 -13
  20. package/dist/authority/AzureRegion.d.ts +1 -1
  21. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  22. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  23. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  24. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  25. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  26. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  27. package/dist/authority/ImdsOptions.d.ts +5 -5
  28. package/dist/authority/OIDCOptions.d.ts +8 -8
  29. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  30. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  31. package/dist/authority/ProtocolMode.d.ts +8 -8
  32. package/dist/authority/ProtocolMode.mjs +11 -11
  33. package/dist/authority/RegionDiscovery.d.ts +32 -32
  34. package/dist/authority/RegionDiscovery.mjs +106 -106
  35. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  36. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  37. package/dist/cache/CacheManager.d.ts +485 -485
  38. package/dist/cache/CacheManager.mjs +1102 -1102
  39. package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
  40. package/dist/cache/entities/AccountEntity.d.ts +101 -101
  41. package/dist/cache/entities/AccountEntity.mjs +218 -218
  42. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  43. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  44. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  45. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  46. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  47. package/dist/cache/entities/CacheRecord.mjs +14 -14
  48. package/dist/cache/entities/CredentialEntity.d.ts +30 -30
  49. package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
  50. package/dist/cache/entities/RefreshTokenEntity.d.ts +7 -5
  51. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
  52. package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
  53. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  54. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  55. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  56. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  57. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  58. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  59. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  60. package/dist/cache/utils/CacheHelpers.d.ts +64 -64
  61. package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
  62. package/dist/cache/utils/CacheHelpers.mjs +234 -231
  63. package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
  64. package/dist/cache/utils/CacheTypes.d.ts +67 -67
  65. package/dist/client/AuthorizationCodeClient.d.ts +74 -74
  66. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  67. package/dist/client/AuthorizationCodeClient.mjs +402 -402
  68. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  69. package/dist/client/BaseClient.d.ts +51 -51
  70. package/dist/client/BaseClient.mjs +100 -100
  71. package/dist/client/RefreshTokenClient.d.ts +35 -35
  72. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  73. package/dist/client/RefreshTokenClient.mjs +193 -187
  74. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  75. package/dist/client/SilentFlowClient.d.ts +27 -27
  76. package/dist/client/SilentFlowClient.mjs +118 -118
  77. package/dist/config/AppTokenProvider.d.ts +38 -38
  78. package/dist/config/ClientConfiguration.d.ts +150 -150
  79. package/dist/config/ClientConfiguration.mjs +97 -97
  80. package/dist/crypto/ICrypto.d.ts +58 -58
  81. package/dist/crypto/ICrypto.mjs +30 -30
  82. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  83. package/dist/crypto/JoseHeader.d.ts +22 -22
  84. package/dist/crypto/JoseHeader.mjs +37 -37
  85. package/dist/crypto/PopTokenGenerator.d.ts +60 -60
  86. package/dist/crypto/PopTokenGenerator.mjs +82 -82
  87. package/dist/crypto/SignedHttpRequest.d.ts +15 -15
  88. package/dist/error/AuthError.d.ts +44 -44
  89. package/dist/error/AuthError.mjs +46 -46
  90. package/dist/error/AuthErrorCodes.d.ts +5 -5
  91. package/dist/error/AuthErrorCodes.mjs +9 -9
  92. package/dist/error/ClientAuthError.d.ts +237 -237
  93. package/dist/error/ClientAuthError.mjs +249 -249
  94. package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
  95. package/dist/error/ClientAuthErrorCodes.mjs +48 -48
  96. package/dist/error/ClientConfigurationError.d.ts +128 -128
  97. package/dist/error/ClientConfigurationError.mjs +135 -135
  98. package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
  99. package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
  100. package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
  101. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  102. package/dist/error/InteractionRequiredAuthError.mjs +78 -77
  103. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  104. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -5
  105. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
  106. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +13 -12
  107. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
  108. package/dist/error/JoseHeaderError.d.ts +15 -15
  109. package/dist/error/JoseHeaderError.mjs +22 -22
  110. package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
  111. package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
  112. package/dist/error/ServerError.d.ts +7 -7
  113. package/dist/error/ServerError.mjs +14 -14
  114. package/dist/index.cjs +8289 -8277
  115. package/dist/index.cjs.map +1 -1
  116. package/dist/index.d.ts +98 -98
  117. package/dist/index.mjs +1 -1
  118. package/dist/logger/Logger.d.ts +95 -95
  119. package/dist/logger/Logger.mjs +188 -188
  120. package/dist/network/INetworkModule.d.ts +29 -29
  121. package/dist/network/INetworkModule.mjs +12 -12
  122. package/dist/network/NetworkManager.d.ts +33 -33
  123. package/dist/network/NetworkManager.mjs +34 -34
  124. package/dist/network/RequestThumbprint.d.ts +18 -18
  125. package/dist/network/ThrottlingUtils.d.ts +42 -42
  126. package/dist/network/ThrottlingUtils.mjs +95 -95
  127. package/dist/packageMetadata.d.ts +2 -2
  128. package/dist/packageMetadata.mjs +3 -3
  129. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  130. package/dist/request/AuthenticationHeaderParser.mjs +55 -55
  131. package/dist/request/BaseAuthRequest.d.ts +43 -43
  132. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  133. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  134. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  135. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  136. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  137. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  138. package/dist/request/CommonRefreshTokenRequest.d.ts +23 -22
  139. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  140. package/dist/request/CommonSilentFlowRequest.d.ts +21 -20
  141. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  142. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  143. package/dist/request/NativeRequest.d.ts +19 -19
  144. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  145. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  146. package/dist/request/RequestParameterBuilder.mjs +381 -381
  147. package/dist/request/RequestValidator.d.ts +33 -33
  148. package/dist/request/RequestValidator.mjs +81 -81
  149. package/dist/request/ScopeSet.d.ts +88 -88
  150. package/dist/request/ScopeSet.mjs +197 -197
  151. package/dist/request/StoreInCache.d.ts +8 -8
  152. package/dist/response/AuthenticationResult.d.ts +41 -41
  153. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  154. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  155. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  156. package/dist/response/IMDSBadResponse.d.ts +4 -4
  157. package/dist/response/ResponseHandler.d.ts +67 -67
  158. package/dist/response/ResponseHandler.d.ts.map +1 -1
  159. package/dist/response/ResponseHandler.mjs +312 -312
  160. package/dist/response/ResponseHandler.mjs.map +1 -1
  161. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  162. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
  163. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  164. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  165. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  166. package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
  167. package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
  168. package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
  169. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  170. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  171. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  172. package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
  173. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  174. package/dist/url/IUri.d.ts +12 -12
  175. package/dist/url/UrlString.d.ts +48 -48
  176. package/dist/url/UrlString.mjs +161 -161
  177. package/dist/utils/Constants.d.ts +365 -365
  178. package/dist/utils/Constants.mjs +375 -375
  179. package/dist/utils/FunctionWrappers.d.ts +27 -27
  180. package/dist/utils/FunctionWrappers.mjs +84 -84
  181. package/dist/utils/MsalTypes.d.ts +6 -6
  182. package/dist/utils/ProtocolUtils.d.ts +42 -42
  183. package/dist/utils/ProtocolUtils.mjs +69 -69
  184. package/dist/utils/StringUtils.d.ts +40 -40
  185. package/dist/utils/StringUtils.mjs +95 -95
  186. package/dist/utils/TimeUtils.d.ts +27 -27
  187. package/dist/utils/TimeUtils.mjs +45 -45
  188. package/dist/utils/UrlUtils.d.ts +10 -10
  189. package/dist/utils/UrlUtils.mjs +44 -44
  190. package/package.json +92 -92
  191. package/src/cache/entities/RefreshTokenEntity.ts +3 -1
  192. package/src/cache/utils/CacheHelpers.ts +6 -1
  193. package/src/client/AuthorizationCodeClient.ts +2 -1
  194. package/src/client/RefreshTokenClient.ts +13 -1
  195. package/src/error/InteractionRequiredAuthError.ts +2 -0
  196. package/src/error/InteractionRequiredAuthErrorCodes.ts +1 -0
  197. package/src/request/CommonRefreshTokenRequest.ts +1 -0
  198. package/src/request/CommonSilentFlowRequest.ts +1 -0
  199. package/src/response/ResponseHandler.ts +8 -4
@@ -8,4 +8,6 @@ import { CredentialEntity } from "./CredentialEntity";
8
8
  /**
9
9
  * Refresh Token Cache Type
10
10
  */
11
- export type RefreshTokenEntity = CredentialEntity;
11
+ export type RefreshTokenEntity = CredentialEntity & {
12
+ expiresOn?: string;
13
+ };
@@ -168,7 +168,8 @@ export function createRefreshTokenEntity(
168
168
  refreshToken: string,
169
169
  clientId: string,
170
170
  familyId?: string,
171
- userAssertionHash?: string
171
+ userAssertionHash?: string,
172
+ expiresOn?: string
172
173
  ): RefreshTokenEntity {
173
174
  const rtEntity: RefreshTokenEntity = {
174
175
  credentialType: CredentialType.REFRESH_TOKEN,
@@ -186,6 +187,10 @@ export function createRefreshTokenEntity(
186
187
  rtEntity.familyId = familyId;
187
188
  }
188
189
 
190
+ if (expiresOn) {
191
+ rtEntity.expiresOn = expiresOn;
192
+ }
193
+
189
194
  return rtEntity;
190
195
  }
191
196
 
@@ -161,7 +161,8 @@ export class AuthorizationCodeClient extends BaseClient {
161
161
  undefined,
162
162
  undefined,
163
163
  undefined,
164
- requestId
164
+ requestId,
165
+ (TimeUtils.nowSeconds() + 24 * 60 * 60).toString()
165
166
  );
166
167
  }
167
168
 
@@ -102,7 +102,8 @@ export class RefreshTokenClient extends BaseClient {
102
102
  undefined,
103
103
  true,
104
104
  request.forceCache,
105
- requestId
105
+ requestId,
106
+ request.expiresOn
106
107
  );
107
108
  }
108
109
 
@@ -215,6 +216,16 @@ export class RefreshTokenClient extends BaseClient {
215
216
  InteractionRequiredAuthErrorCodes.noTokensFound
216
217
  );
217
218
  }
219
+
220
+ if (
221
+ request.enableRTExpiryCheck &&
222
+ refreshToken.expiresOn &&
223
+ Number(refreshToken.expiresOn) < TimeUtils.nowSeconds() + 5 * 60
224
+ ) {
225
+ throw createInteractionRequiredAuthError(
226
+ InteractionRequiredAuthErrorCodes.refreshTokenExpired
227
+ );
228
+ }
218
229
  // attach cached RT size to the current measurement
219
230
 
220
231
  const refreshTokenRequest: CommonRefreshTokenRequest = {
@@ -226,6 +237,7 @@ export class RefreshTokenClient extends BaseClient {
226
237
  credential: request.account.homeAccountId,
227
238
  type: CcsCredentialType.HOME_ACCOUNT_ID,
228
239
  },
240
+ expiresOn: refreshToken.expiresOn,
229
241
  };
230
242
 
231
243
  return invokeAsync(
@@ -28,6 +28,8 @@ export const InteractionRequiredAuthSubErrorMessage = [
28
28
  const InteractionRequiredAuthErrorMessages = {
29
29
  [InteractionRequiredAuthErrorCodes.noTokensFound]:
30
30
  "No refresh token found in the cache. Please sign-in.",
31
+ [InteractionRequiredAuthErrorCodes.refreshTokenExpired]:
32
+ "Refresh token has expired.",
31
33
  [InteractionRequiredAuthErrorCodes.nativeAccountUnavailable]:
32
34
  "The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.",
33
35
  };
@@ -6,6 +6,7 @@
6
6
  // Codes defined by MSAL
7
7
  export const noTokensFound = "no_tokens_found";
8
8
  export const nativeAccountUnavailable = "native_account_unavailable";
9
+ export const refreshTokenExpired = "refresh_token_expired";
9
10
 
10
11
  // Codes potentially returned by server
11
12
  export const interactionRequired = "interaction_required";
@@ -21,6 +21,7 @@ import { StringDict } from "../utils/MsalTypes";
21
21
  */
22
22
  export type CommonRefreshTokenRequest = BaseAuthRequest & {
23
23
  refreshToken: string;
24
+ expiresOn?: string;
24
25
  ccsCredential?: CcsCredential;
25
26
  forceCache?: boolean;
26
27
  tokenBodyParameters?: StringDict;
@@ -23,4 +23,5 @@ export type CommonSilentFlowRequest = BaseAuthRequest & {
23
23
  account: AccountInfo;
24
24
  forceRefresh: boolean;
25
25
  tokenBodyParameters?: StringDict;
26
+ enableRTExpiryCheck?: boolean;
26
27
  };
@@ -245,7 +245,8 @@ export class ResponseHandler {
245
245
  userAssertionHash?: string,
246
246
  handlingRefreshTokenResponse?: boolean,
247
247
  forceCacheRefreshTokenResponse?: boolean,
248
- serverRequestId?: string
248
+ serverRequestId?: string,
249
+ rtExpiresOn?: string
249
250
  ): Promise<AuthenticationResult> {
250
251
  this.performanceClient?.addQueueMeasurement(
251
252
  PerformanceEvents.HandleServerTokenResponse,
@@ -311,7 +312,8 @@ export class ResponseHandler {
311
312
  request,
312
313
  idTokenClaims,
313
314
  userAssertionHash,
314
- authCodePayload
315
+ authCodePayload,
316
+ rtExpiresOn
315
317
  );
316
318
  let cacheContext;
317
319
  try {
@@ -397,7 +399,8 @@ export class ResponseHandler {
397
399
  request: BaseAuthRequest,
398
400
  idTokenClaims?: TokenClaims,
399
401
  userAssertionHash?: string,
400
- authCodePayload?: AuthorizationCodePayload
402
+ authCodePayload?: AuthorizationCodePayload,
403
+ rtExpiresOn?: string
401
404
  ): CacheRecord {
402
405
  const env = authority.getPreferredCache();
403
406
  if (!env) {
@@ -491,7 +494,8 @@ export class ResponseHandler {
491
494
  serverTokenResponse.refresh_token,
492
495
  this.clientId,
493
496
  serverTokenResponse.foci,
494
- userAssertionHash
497
+ userAssertionHash,
498
+ rtExpiresOn
495
499
  );
496
500
  }
497
501