@azure/msal-common 14.0.3 → 14.1.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 (226) hide show
  1. package/dist/account/AccountInfo.d.ts +0 -1
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AuthToken.d.ts.map +1 -1
  4. package/dist/account/AuthToken.mjs +7 -6
  5. package/dist/account/AuthToken.mjs.map +1 -1
  6. package/dist/account/CcsCredential.mjs +1 -1
  7. package/dist/account/ClientInfo.d.ts.map +1 -1
  8. package/dist/account/ClientInfo.mjs +6 -5
  9. package/dist/account/ClientInfo.mjs.map +1 -1
  10. package/dist/authority/Authority.d.ts.map +1 -1
  11. package/dist/authority/Authority.mjs +28 -50
  12. package/dist/authority/Authority.mjs.map +1 -1
  13. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  14. package/dist/authority/AuthorityFactory.mjs +9 -7
  15. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  16. package/dist/authority/AuthorityMetadata.mjs +1 -1
  17. package/dist/authority/AuthorityOptions.mjs +1 -1
  18. package/dist/authority/AuthorityType.mjs +1 -1
  19. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
  20. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
  21. package/dist/authority/OpenIdConfigResponse.mjs +1 -1
  22. package/dist/authority/ProtocolMode.mjs +1 -1
  23. package/dist/authority/RegionDiscovery.d.ts +3 -1
  24. package/dist/authority/RegionDiscovery.d.ts.map +1 -1
  25. package/dist/authority/RegionDiscovery.mjs +7 -8
  26. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  27. package/dist/cache/CacheManager.d.ts +25 -7
  28. package/dist/cache/CacheManager.d.ts.map +1 -1
  29. package/dist/cache/CacheManager.mjs +98 -71
  30. package/dist/cache/CacheManager.mjs.map +1 -1
  31. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  32. package/dist/cache/entities/AccessTokenEntity.mjs +4 -3
  33. package/dist/cache/entities/AccessTokenEntity.mjs.map +1 -1
  34. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  35. package/dist/cache/entities/AccountEntity.mjs +4 -3
  36. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  37. package/dist/cache/entities/AppMetadataEntity.mjs +1 -1
  38. package/dist/cache/entities/AuthorityMetadataEntity.mjs +1 -1
  39. package/dist/cache/entities/CacheRecord.mjs +1 -1
  40. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  41. package/dist/cache/entities/CredentialEntity.mjs +4 -3
  42. package/dist/cache/entities/CredentialEntity.mjs.map +1 -1
  43. package/dist/cache/entities/IdTokenEntity.mjs +1 -1
  44. package/dist/cache/entities/RefreshTokenEntity.mjs +1 -1
  45. package/dist/cache/entities/ServerTelemetryEntity.mjs +1 -1
  46. package/dist/cache/entities/ThrottlingEntity.mjs +1 -1
  47. package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
  48. package/dist/cache/utils/CacheTypes.d.ts +3 -6
  49. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  50. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  51. package/dist/client/AuthorizationCodeClient.mjs +13 -11
  52. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  53. package/dist/client/BaseClient.d.ts.map +1 -1
  54. package/dist/client/BaseClient.mjs +5 -4
  55. package/dist/client/BaseClient.mjs.map +1 -1
  56. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  57. package/dist/client/RefreshTokenClient.mjs +33 -74
  58. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  59. package/dist/client/SilentFlowClient.d.ts +2 -1
  60. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  61. package/dist/client/SilentFlowClient.mjs +43 -19
  62. package/dist/client/SilentFlowClient.mjs.map +1 -1
  63. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  64. package/dist/config/ClientConfiguration.mjs +5 -6
  65. package/dist/config/ClientConfiguration.mjs.map +1 -1
  66. package/dist/crypto/ICrypto.d.ts +0 -4
  67. package/dist/crypto/ICrypto.d.ts.map +1 -1
  68. package/dist/crypto/ICrypto.mjs +11 -22
  69. package/dist/crypto/ICrypto.mjs.map +1 -1
  70. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  71. package/dist/crypto/JoseHeader.mjs +5 -4
  72. package/dist/crypto/JoseHeader.mjs.map +1 -1
  73. package/dist/crypto/PopTokenGenerator.d.ts +2 -1
  74. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  75. package/dist/crypto/PopTokenGenerator.mjs +4 -4
  76. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  77. package/dist/error/AuthError.d.ts +8 -11
  78. package/dist/error/AuthError.d.ts.map +1 -1
  79. package/dist/error/AuthError.mjs +19 -21
  80. package/dist/error/AuthError.mjs.map +1 -1
  81. package/dist/error/AuthErrorCodes.d.ts +6 -0
  82. package/dist/error/AuthErrorCodes.d.ts.map +1 -0
  83. package/dist/error/AuthErrorCodes.mjs +14 -0
  84. package/dist/error/AuthErrorCodes.mjs.map +1 -0
  85. package/dist/error/ClientAuthError.d.ts +54 -234
  86. package/dist/error/ClientAuthError.d.ts.map +1 -1
  87. package/dist/error/ClientAuthError.mjs +149 -421
  88. package/dist/error/ClientAuthError.mjs.map +1 -1
  89. package/dist/error/ClientAuthErrorCodes.d.ts +44 -0
  90. package/dist/error/ClientAuthErrorCodes.d.ts.map +1 -0
  91. package/dist/error/ClientAuthErrorCodes.mjs +52 -0
  92. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -0
  93. package/dist/error/ClientConfigurationError.d.ts +31 -125
  94. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  95. package/dist/error/ClientConfigurationError.mjs +81 -222
  96. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  97. package/dist/error/ClientConfigurationErrorCodes.d.ts +23 -0
  98. package/dist/error/ClientConfigurationErrorCodes.d.ts.map +1 -0
  99. package/dist/error/ClientConfigurationErrorCodes.mjs +31 -0
  100. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -0
  101. package/dist/error/InteractionRequiredAuthError.d.ts +14 -16
  102. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  103. package/dist/error/InteractionRequiredAuthError.mjs +42 -41
  104. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  105. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -0
  106. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -0
  107. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +16 -0
  108. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -0
  109. package/dist/error/JoseHeaderError.d.ts +7 -20
  110. package/dist/error/JoseHeaderError.d.ts.map +1 -1
  111. package/dist/error/JoseHeaderError.mjs +10 -26
  112. package/dist/error/JoseHeaderError.mjs.map +1 -1
  113. package/dist/error/JoseHeaderErrorCodes.d.ts +3 -0
  114. package/dist/error/JoseHeaderErrorCodes.d.ts.map +1 -0
  115. package/dist/error/JoseHeaderErrorCodes.mjs +11 -0
  116. package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -0
  117. package/dist/error/ServerError.mjs +1 -1
  118. package/dist/index.cjs +942 -1210
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.ts +5 -5
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.mjs +13 -5
  123. package/dist/index.mjs.map +1 -1
  124. package/dist/logger/Logger.mjs +1 -1
  125. package/dist/network/INetworkModule.d.ts.map +1 -1
  126. package/dist/network/INetworkModule.mjs +5 -6
  127. package/dist/network/INetworkModule.mjs.map +1 -1
  128. package/dist/network/NetworkManager.d.ts.map +1 -1
  129. package/dist/network/NetworkManager.mjs +4 -3
  130. package/dist/network/NetworkManager.mjs.map +1 -1
  131. package/dist/network/ThrottlingUtils.mjs +1 -1
  132. package/dist/packageMetadata.d.ts +1 -1
  133. package/dist/packageMetadata.mjs +2 -2
  134. package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -1
  135. package/dist/request/AuthenticationHeaderParser.mjs +7 -6
  136. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  137. package/dist/request/CommonRefreshTokenRequest.d.ts +3 -0
  138. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  139. package/dist/request/CommonSilentFlowRequest.d.ts +2 -0
  140. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  141. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  142. package/dist/request/RequestParameterBuilder.mjs +5 -4
  143. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  144. package/dist/request/RequestValidator.d.ts.map +1 -1
  145. package/dist/request/RequestValidator.mjs +8 -7
  146. package/dist/request/RequestValidator.mjs.map +1 -1
  147. package/dist/request/ScopeSet.d.ts.map +1 -1
  148. package/dist/request/ScopeSet.mjs +10 -8
  149. package/dist/request/ScopeSet.mjs.map +1 -1
  150. package/dist/response/ResponseHandler.d.ts.map +1 -1
  151. package/dist/response/ResponseHandler.mjs +15 -14
  152. package/dist/response/ResponseHandler.mjs.map +1 -1
  153. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  154. package/dist/telemetry/performance/PerformanceClient.mjs +3 -2
  155. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  156. package/dist/telemetry/performance/PerformanceEvent.d.ts +8 -0
  157. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  158. package/dist/telemetry/performance/PerformanceEvent.mjs +9 -1
  159. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  160. package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
  161. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  162. package/dist/telemetry/server/ServerTelemetryManager.mjs +2 -2
  163. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  164. package/dist/url/UrlString.d.ts.map +1 -1
  165. package/dist/url/UrlString.mjs +13 -11
  166. package/dist/url/UrlString.mjs.map +1 -1
  167. package/dist/utils/Constants.d.ts +6 -3
  168. package/dist/utils/Constants.d.ts.map +1 -1
  169. package/dist/utils/Constants.mjs +12 -4
  170. package/dist/utils/Constants.mjs.map +1 -1
  171. package/dist/utils/FunctionWrappers.d.ts.map +1 -1
  172. package/dist/utils/FunctionWrappers.mjs +1 -2
  173. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  174. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  175. package/dist/utils/ProtocolUtils.mjs +7 -6
  176. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  177. package/dist/utils/StringUtils.mjs +1 -1
  178. package/dist/utils/TimeUtils.mjs +1 -1
  179. package/package.json +1 -1
  180. package/src/account/AccountInfo.ts +0 -1
  181. package/src/account/AuthToken.ts +8 -7
  182. package/src/account/ClientInfo.ts +9 -6
  183. package/src/authority/Authority.ts +76 -94
  184. package/src/authority/AuthorityFactory.ts +21 -9
  185. package/src/authority/RegionDiscovery.ts +21 -18
  186. package/src/cache/CacheManager.ts +133 -95
  187. package/src/cache/entities/AccessTokenEntity.ts +7 -2
  188. package/src/cache/entities/AccountEntity.ts +7 -2
  189. package/src/cache/entities/CredentialEntity.ts +7 -2
  190. package/src/cache/utils/CacheTypes.ts +6 -6
  191. package/src/client/AuthorizationCodeClient.ts +35 -11
  192. package/src/client/BaseClient.ts +7 -4
  193. package/src/client/RefreshTokenClient.ts +100 -126
  194. package/src/client/SilentFlowClient.ts +72 -19
  195. package/src/config/ClientConfiguration.ts +6 -7
  196. package/src/crypto/ICrypto.ts +12 -34
  197. package/src/crypto/JoseHeader.ts +6 -3
  198. package/src/crypto/PopTokenGenerator.ts +10 -5
  199. package/src/error/AuthError.ts +24 -26
  200. package/src/error/AuthErrorCodes.ts +10 -0
  201. package/src/error/ClientAuthError.ts +227 -632
  202. package/src/error/ClientAuthErrorCodes.ts +51 -0
  203. package/src/error/ClientConfigurationError.ts +146 -332
  204. package/src/error/ClientConfigurationErrorCodes.ts +28 -0
  205. package/src/error/InteractionRequiredAuthError.ts +60 -55
  206. package/src/error/InteractionRequiredAuthErrorCodes.ts +13 -0
  207. package/src/error/JoseHeaderError.ts +11 -31
  208. package/src/error/JoseHeaderErrorCodes.ts +7 -0
  209. package/src/index.ts +13 -1
  210. package/src/network/INetworkModule.ts +10 -7
  211. package/src/network/NetworkManager.ts +5 -5
  212. package/src/packageMetadata.ts +1 -1
  213. package/src/request/AuthenticationHeaderParser.ts +11 -8
  214. package/src/request/CommonRefreshTokenRequest.ts +3 -0
  215. package/src/request/CommonSilentFlowRequest.ts +2 -0
  216. package/src/request/RequestParameterBuilder.ts +10 -3
  217. package/src/request/RequestValidator.ts +19 -6
  218. package/src/request/ScopeSet.ts +23 -7
  219. package/src/response/ResponseHandler.ts +37 -17
  220. package/src/telemetry/performance/PerformanceClient.ts +2 -1
  221. package/src/telemetry/performance/PerformanceEvent.ts +9 -0
  222. package/src/telemetry/server/ServerTelemetryManager.ts +1 -1
  223. package/src/url/UrlString.ts +26 -16
  224. package/src/utils/Constants.ts +11 -3
  225. package/src/utils/FunctionWrappers.ts +0 -1
  226. package/src/utils/ProtocolUtils.ts +8 -12
@@ -6,7 +6,10 @@
6
6
  import { ServerAuthorizationTokenResponse } from "./ServerAuthorizationTokenResponse";
7
7
  import { buildClientInfo } from "../account/ClientInfo";
8
8
  import { ICrypto } from "../crypto/ICrypto";
9
- import { ClientAuthError } from "../error/ClientAuthError";
9
+ import {
10
+ ClientAuthErrorCodes,
11
+ createClientAuthError,
12
+ } from "../error/ClientAuthError";
10
13
  import { ServerAuthorizationCodeResponse } from "./ServerAuthorizationCodeResponse";
11
14
  import { Logger } from "../logger/Logger";
12
15
  import { ServerError } from "../error/ServerError";
@@ -17,7 +20,10 @@ import { Authority } from "../authority/Authority";
17
20
  import { IdTokenEntity } from "../cache/entities/IdTokenEntity";
18
21
  import { AccessTokenEntity } from "../cache/entities/AccessTokenEntity";
19
22
  import { RefreshTokenEntity } from "../cache/entities/RefreshTokenEntity";
20
- import { InteractionRequiredAuthError } from "../error/InteractionRequiredAuthError";
23
+ import {
24
+ InteractionRequiredAuthError,
25
+ isInteractionRequiredError,
26
+ } from "../error/InteractionRequiredAuthError";
21
27
  import { CacheRecord } from "../cache/entities/CacheRecord";
22
28
  import { CacheManager } from "../cache/CacheManager";
23
29
  import { ProtocolUtils, RequestStateObject } from "../utils/ProtocolUtils";
@@ -84,8 +90,14 @@ export class ResponseHandler {
84
90
  ): void {
85
91
  if (!serverResponseHash.state || !cachedState) {
86
92
  throw serverResponseHash.state
87
- ? ClientAuthError.createStateNotFoundError("Cached State")
88
- : ClientAuthError.createStateNotFoundError("Server State");
93
+ ? createClientAuthError(
94
+ ClientAuthErrorCodes.stateNotFound,
95
+ "Cached State"
96
+ )
97
+ : createClientAuthError(
98
+ ClientAuthErrorCodes.stateNotFound,
99
+ "Server State"
100
+ );
89
101
  }
90
102
 
91
103
  let decodedServerResponseHash: string;
@@ -96,23 +108,23 @@ export class ResponseHandler {
96
108
  serverResponseHash.state
97
109
  );
98
110
  } catch (e) {
99
- throw ClientAuthError.createInvalidStateError(
100
- serverResponseHash.state,
101
- `Server response hash URI could not be decoded`
111
+ throw createClientAuthError(
112
+ ClientAuthErrorCodes.invalidState,
113
+ serverResponseHash.state
102
114
  );
103
115
  }
104
116
 
105
117
  try {
106
118
  decodedCachedState = decodeURIComponent(cachedState);
107
119
  } catch (e) {
108
- throw ClientAuthError.createInvalidStateError(
109
- serverResponseHash.state,
110
- `Cached state URI could not be decoded`
120
+ throw createClientAuthError(
121
+ ClientAuthErrorCodes.invalidState,
122
+ serverResponseHash.state
111
123
  );
112
124
  }
113
125
 
114
126
  if (decodedServerResponseHash !== decodedCachedState) {
115
- throw ClientAuthError.createStateMismatchError();
127
+ throw createClientAuthError(ClientAuthErrorCodes.stateMismatch);
116
128
  }
117
129
 
118
130
  // Check for error
@@ -122,7 +134,7 @@ export class ResponseHandler {
122
134
  serverResponseHash.suberror
123
135
  ) {
124
136
  if (
125
- InteractionRequiredAuthError.isInteractionRequiredError(
137
+ isInteractionRequiredError(
126
138
  serverResponseHash.error,
127
139
  serverResponseHash.error_description,
128
140
  serverResponseHash.suberror
@@ -202,7 +214,7 @@ export class ResponseHandler {
202
214
  }
203
215
 
204
216
  if (
205
- InteractionRequiredAuthError.isInteractionRequiredError(
217
+ isInteractionRequiredError(
206
218
  serverResponse.error,
207
219
  serverResponse.error_description,
208
220
  serverResponse.suberror
@@ -255,7 +267,9 @@ export class ResponseHandler {
255
267
  // token nonce check (TODO: Add a warning if no nonce is given?)
256
268
  if (authCodePayload && authCodePayload.nonce) {
257
269
  if (idTokenClaims.nonce !== authCodePayload.nonce) {
258
- throw ClientAuthError.createNonceMismatchError();
270
+ throw createClientAuthError(
271
+ ClientAuthErrorCodes.nonceMismatch
272
+ );
259
273
  }
260
274
  }
261
275
 
@@ -263,7 +277,9 @@ export class ResponseHandler {
263
277
  if (request.maxAge || request.maxAge === 0) {
264
278
  const authTime = idTokenClaims.auth_time;
265
279
  if (!authTime) {
266
- throw ClientAuthError.createAuthTimeNotFoundError();
280
+ throw createClientAuthError(
281
+ ClientAuthErrorCodes.authTimeNotFound
282
+ );
267
283
  }
268
284
 
269
285
  checkMaxAge(authTime, request.maxAge);
@@ -389,7 +405,9 @@ export class ResponseHandler {
389
405
  ): CacheRecord {
390
406
  const env = authority.getPreferredCache();
391
407
  if (!env) {
392
- throw ClientAuthError.createInvalidCacheEnvironmentError();
408
+ throw createClientAuthError(
409
+ ClientAuthErrorCodes.invalidCacheEnvironment
410
+ );
393
411
  }
394
412
 
395
413
  // IdToken: non AAD scenarios can have empty realm
@@ -537,7 +555,9 @@ export class ResponseHandler {
537
555
  const { secret, keyId } = cacheRecord.accessToken;
538
556
 
539
557
  if (!keyId) {
540
- throw ClientAuthError.createKeyIdMissingError();
558
+ throw createClientAuthError(
559
+ ClientAuthErrorCodes.keyIdMissing
560
+ );
541
561
  }
542
562
 
543
563
  accessToken = await popTokenGenerator.signPopToken(
@@ -227,7 +227,8 @@ export abstract class PerformanceClient implements IPerformanceClient {
227
227
 
228
228
  const queueMeasurement: QueueMeasurement = {
229
229
  eventName,
230
- queueTime,
230
+ // Always default queue time to 0 for manually completed (improperly instrumented)
231
+ queueTime: manuallyCompleted ? 0 : queueTime,
231
232
  manuallyCompleted,
232
233
  };
233
234
 
@@ -268,6 +268,15 @@ export const PerformanceEvents = {
268
268
  * Cache operations
269
269
  */
270
270
  ClearTokensAndKeysWithClaims: "clearTokensAndKeysWithClaims",
271
+
272
+ /**
273
+ * Crypto Operations
274
+ */
275
+ GeneratePkceCodes: "generatePkceCodes",
276
+ GenerateCodeVerifier: "generateCodeVerifier",
277
+ GenerateCodeChallengeFromVerifier: "generateCodeChallengeFromVerifier",
278
+ Sha256Digest: "sha256Digest",
279
+ GetRandomValues: "getRandomValues",
271
280
  } as const;
272
281
  export type PerformanceEvents =
273
282
  (typeof PerformanceEvents)[keyof typeof PerformanceEvents];
@@ -28,7 +28,7 @@ export class ServerTelemetryManager {
28
28
  private regionUsed: string | undefined;
29
29
  private regionSource: RegionDiscoverySources | undefined;
30
30
  private regionOutcome: RegionDiscoveryOutcomes | undefined;
31
- private cacheOutcome: CacheOutcome = CacheOutcome.NO_CACHE_HIT;
31
+ private cacheOutcome: CacheOutcome = CacheOutcome.NOT_APPLICABLE;
32
32
 
33
33
  constructor(
34
34
  telemetryRequest: ServerTelemetryRequest,
@@ -4,8 +4,14 @@
4
4
  */
5
5
 
6
6
  import { ServerAuthorizationCodeResponse } from "../response/ServerAuthorizationCodeResponse";
7
- import { ClientConfigurationError } from "../error/ClientConfigurationError";
8
- import { ClientAuthError } from "../error/ClientAuthError";
7
+ import {
8
+ createClientConfigurationError,
9
+ ClientConfigurationErrorCodes,
10
+ } from "../error/ClientConfigurationError";
11
+ import {
12
+ ClientAuthErrorCodes,
13
+ createClientAuthError,
14
+ } from "../error/ClientAuthError";
9
15
  import { StringUtils } from "../utils/StringUtils";
10
16
  import { IUri } from "./IUri";
11
17
  import {
@@ -28,7 +34,9 @@ export class UrlString {
28
34
  this._urlString = url;
29
35
  if (!this._urlString) {
30
36
  // Throws error if url is empty
31
- throw ClientConfigurationError.createUrlEmptyError();
37
+ throw createClientConfigurationError(
38
+ ClientConfigurationErrorCodes.urlEmptyError
39
+ );
32
40
  }
33
41
 
34
42
  if (!this.getHash()) {
@@ -69,13 +77,15 @@ export class UrlString {
69
77
  try {
70
78
  components = this.getUrlComponents();
71
79
  } catch (e) {
72
- throw ClientConfigurationError.createUrlParseError(e as string);
80
+ throw createClientConfigurationError(
81
+ ClientConfigurationErrorCodes.urlParseError
82
+ );
73
83
  }
74
84
 
75
85
  // Throw error if URI or path segments are not parseable.
76
86
  if (!components.HostNameAndPort || !components.PathSegments) {
77
- throw ClientConfigurationError.createUrlParseError(
78
- `Given url string: ${this.urlString}`
87
+ throw createClientConfigurationError(
88
+ ClientConfigurationErrorCodes.urlParseError
79
89
  );
80
90
  }
81
91
 
@@ -84,8 +94,8 @@ export class UrlString {
84
94
  !components.Protocol ||
85
95
  components.Protocol.toLowerCase() !== "https:"
86
96
  ) {
87
- throw ClientConfigurationError.createInsecureAuthorityUriError(
88
- this.urlString
97
+ throw createClientConfigurationError(
98
+ ClientConfigurationErrorCodes.authorityUriInsecure
89
99
  );
90
100
  }
91
101
  }
@@ -152,8 +162,8 @@ export class UrlString {
152
162
  // If url string does not match regEx, we throw an error
153
163
  const match = this.urlString.match(regEx);
154
164
  if (!match) {
155
- throw ClientConfigurationError.createUrlParseError(
156
- `Given url string: ${this.urlString}`
165
+ throw createClientConfigurationError(
166
+ ClientConfigurationErrorCodes.urlParseError
157
167
  );
158
168
  }
159
169
 
@@ -187,8 +197,8 @@ export class UrlString {
187
197
  const match = url.match(regEx);
188
198
 
189
199
  if (!match) {
190
- throw ClientConfigurationError.createUrlParseError(
191
- `Given url string: ${url}`
200
+ throw createClientConfigurationError(
201
+ ClientConfigurationErrorCodes.urlParseError
192
202
  );
193
203
  }
194
204
 
@@ -290,8 +300,8 @@ export class UrlString {
290
300
  );
291
301
  // Check if deserialization didn't work
292
302
  if (!deserializedHash) {
293
- throw ClientAuthError.createHashNotDeserializedError(
294
- JSON.stringify(deserializedHash)
303
+ throw createClientAuthError(
304
+ ClientAuthErrorCodes.hashNotDeserialized
295
305
  );
296
306
  }
297
307
  return deserializedHash;
@@ -316,8 +326,8 @@ export class UrlString {
316
326
  );
317
327
  // Check if deserialization didn't work
318
328
  if (!deserializedQueryString) {
319
- throw ClientAuthError.createHashNotDeserializedError(
320
- JSON.stringify(deserializedQueryString)
329
+ throw createClientAuthError(
330
+ ClientAuthErrorCodes.hashNotDeserialized
321
331
  );
322
332
  }
323
333
  return deserializedQueryString;
@@ -417,12 +417,20 @@ export const RegionDiscoveryOutcomes = {
417
417
  export type RegionDiscoveryOutcomes =
418
418
  (typeof RegionDiscoveryOutcomes)[keyof typeof RegionDiscoveryOutcomes];
419
419
 
420
+ /**
421
+ * Specifies the reason for fetching the access token from the identity provider
422
+ */
420
423
  export const CacheOutcome = {
421
- NO_CACHE_HIT: "0",
422
- FORCE_REFRESH: "1",
424
+ // When a token is found in the cache or the cache is not supposed to be hit when making the request
425
+ NOT_APPLICABLE: "0",
426
+ // When the token request goes to the identity provider because force_refresh was set to true. Also occurs if claims were requested
427
+ FORCE_REFRESH_OR_CLAIMS: "1",
428
+ // When the token request goes to the identity provider because no cached access token exists
423
429
  NO_CACHED_ACCESS_TOKEN: "2",
430
+ // When the token request goes to the identity provider because cached access token expired
424
431
  CACHED_ACCESS_TOKEN_EXPIRED: "3",
425
- REFRESH_CACHED_ACCESS_TOKEN: "4",
432
+ // When the token request goes to the identity provider because refresh_in was used and the existing token needs to be refreshed
433
+ PROACTIVELY_REFRESHED: "4",
426
434
  } as const;
427
435
  export type CacheOutcome = (typeof CacheOutcome)[keyof typeof CacheOutcome];
428
436
 
@@ -31,7 +31,6 @@ export const invoke = <T extends Array<any>, U>(
31
31
  eventName,
32
32
  correlationId
33
33
  );
34
- telemetryClient?.setPreQueueTime(eventName, correlationId);
35
34
  try {
36
35
  const result = callback(...args);
37
36
  inProgressEvent?.end({
@@ -5,7 +5,10 @@
5
5
 
6
6
  import { Constants } from "./Constants";
7
7
  import { ICrypto } from "../crypto/ICrypto";
8
- import { ClientAuthError } from "../error/ClientAuthError";
8
+ import {
9
+ ClientAuthErrorCodes,
10
+ createClientAuthError,
11
+ } from "../error/ClientAuthError";
9
12
 
10
13
  /**
11
14
  * Type which defines the object that is stringified, encoded and sent in the state value.
@@ -60,9 +63,7 @@ export class ProtocolUtils {
60
63
  meta?: Record<string, string>
61
64
  ): string {
62
65
  if (!cryptoObj) {
63
- throw ClientAuthError.createNoCryptoObjectError(
64
- "generateLibraryState"
65
- );
66
+ throw createClientAuthError(ClientAuthErrorCodes.noCryptoObject);
66
67
  }
67
68
 
68
69
  // Create a state object containing a unique id and the timestamp of the request creation
@@ -89,16 +90,11 @@ export class ProtocolUtils {
89
90
  state: string
90
91
  ): RequestStateObject {
91
92
  if (!cryptoObj) {
92
- throw ClientAuthError.createNoCryptoObjectError(
93
- "parseRequestState"
94
- );
93
+ throw createClientAuthError(ClientAuthErrorCodes.noCryptoObject);
95
94
  }
96
95
 
97
96
  if (!state) {
98
- throw ClientAuthError.createInvalidStateError(
99
- state,
100
- "Null, undefined or empty state"
101
- );
97
+ throw createClientAuthError(ClientAuthErrorCodes.invalidState);
102
98
  }
103
99
 
104
100
  try {
@@ -118,7 +114,7 @@ export class ProtocolUtils {
118
114
  libraryState: libraryStateObj,
119
115
  };
120
116
  } catch (e) {
121
- throw ClientAuthError.createInvalidStateError(state, e as string);
117
+ throw createClientAuthError(ClientAuthErrorCodes.invalidState);
122
118
  }
123
119
  }
124
120
  }