@azure/msal-common 14.0.1 → 14.0.3

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 (295) hide show
  1. package/dist/account/AuthToken.d.ts +14 -17
  2. package/dist/account/AuthToken.d.ts.map +1 -1
  3. package/dist/account/AuthToken.mjs +48 -39
  4. package/dist/account/AuthToken.mjs.map +1 -1
  5. package/dist/account/CcsCredential.mjs +1 -1
  6. package/dist/account/CcsCredential.mjs.map +1 -1
  7. package/dist/account/ClientInfo.d.ts.map +1 -1
  8. package/dist/account/ClientInfo.mjs +3 -4
  9. package/dist/account/ClientInfo.mjs.map +1 -1
  10. package/dist/authority/Authority.d.ts +1 -0
  11. package/dist/authority/Authority.d.ts.map +1 -1
  12. package/dist/authority/Authority.mjs +4 -2
  13. package/dist/authority/Authority.mjs.map +1 -1
  14. package/dist/authority/AuthorityFactory.d.ts +1 -0
  15. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  16. package/dist/authority/AuthorityFactory.mjs +3 -3
  17. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  18. package/dist/authority/AuthorityMetadata.mjs +1 -1
  19. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  20. package/dist/authority/AuthorityOptions.mjs +1 -1
  21. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  22. package/dist/authority/AuthorityType.mjs +1 -1
  23. package/dist/authority/AuthorityType.mjs.map +1 -1
  24. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
  25. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
  26. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
  27. package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
  28. package/dist/authority/OpenIdConfigResponse.mjs +1 -1
  29. package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
  30. package/dist/authority/ProtocolMode.mjs +1 -1
  31. package/dist/authority/ProtocolMode.mjs.map +1 -1
  32. package/dist/authority/RegionDiscovery.mjs +1 -1
  33. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  34. package/dist/cache/CacheManager.d.ts +2 -0
  35. package/dist/cache/CacheManager.d.ts.map +1 -1
  36. package/dist/cache/CacheManager.mjs +7 -5
  37. package/dist/cache/CacheManager.mjs.map +1 -1
  38. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  39. package/dist/cache/entities/AccessTokenEntity.mjs +4 -7
  40. package/dist/cache/entities/AccessTokenEntity.mjs.map +1 -1
  41. package/dist/cache/entities/AccountEntity.d.ts +1 -0
  42. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  43. package/dist/cache/entities/AccountEntity.mjs +3 -4
  44. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  45. package/dist/cache/entities/AppMetadataEntity.mjs +1 -1
  46. package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
  47. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +1 -0
  48. package/dist/cache/entities/AuthorityMetadataEntity.d.ts.map +1 -1
  49. package/dist/cache/entities/AuthorityMetadataEntity.mjs +2 -1
  50. package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
  51. package/dist/cache/entities/CacheRecord.d.ts +1 -0
  52. package/dist/cache/entities/CacheRecord.d.ts.map +1 -1
  53. package/dist/cache/entities/CacheRecord.mjs +2 -1
  54. package/dist/cache/entities/CacheRecord.mjs.map +1 -1
  55. package/dist/cache/entities/CredentialEntity.mjs +1 -1
  56. package/dist/cache/entities/CredentialEntity.mjs.map +1 -1
  57. package/dist/cache/entities/IdTokenEntity.mjs +1 -1
  58. package/dist/cache/entities/IdTokenEntity.mjs.map +1 -1
  59. package/dist/cache/entities/RefreshTokenEntity.mjs +1 -1
  60. package/dist/cache/entities/RefreshTokenEntity.mjs.map +1 -1
  61. package/dist/cache/entities/ServerTelemetryEntity.mjs +1 -1
  62. package/dist/cache/entities/ServerTelemetryEntity.mjs.map +1 -1
  63. package/dist/cache/entities/ThrottlingEntity.mjs +1 -1
  64. package/dist/cache/entities/ThrottlingEntity.mjs.map +1 -1
  65. package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
  66. package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
  67. package/dist/cache/utils/CacheTypes.d.ts +7 -0
  68. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  69. package/dist/client/AuthorizationCodeClient.d.ts +1 -0
  70. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  71. package/dist/client/AuthorizationCodeClient.mjs +11 -39
  72. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  73. package/dist/client/BaseClient.d.ts +2 -1
  74. package/dist/client/BaseClient.d.ts.map +1 -1
  75. package/dist/client/BaseClient.mjs +9 -2
  76. package/dist/client/BaseClient.mjs.map +1 -1
  77. package/dist/client/RefreshTokenClient.d.ts +1 -0
  78. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  79. package/dist/client/RefreshTokenClient.mjs +3 -11
  80. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  81. package/dist/client/SilentFlowClient.d.ts +1 -0
  82. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  83. package/dist/client/SilentFlowClient.mjs +8 -7
  84. package/dist/client/SilentFlowClient.mjs.map +1 -1
  85. package/dist/config/ClientConfiguration.d.ts +2 -0
  86. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  87. package/dist/config/ClientConfiguration.mjs +1 -1
  88. package/dist/config/ClientConfiguration.mjs.map +1 -1
  89. package/dist/crypto/ICrypto.mjs +1 -1
  90. package/dist/crypto/ICrypto.mjs.map +1 -1
  91. package/dist/crypto/JoseHeader.d.ts +1 -0
  92. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  93. package/dist/crypto/JoseHeader.mjs +2 -1
  94. package/dist/crypto/JoseHeader.mjs.map +1 -1
  95. package/dist/crypto/PopTokenGenerator.d.ts +1 -0
  96. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  97. package/dist/crypto/PopTokenGenerator.mjs +2 -1
  98. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  99. package/dist/error/AuthError.mjs +1 -1
  100. package/dist/error/AuthError.mjs.map +1 -1
  101. package/dist/error/ClientAuthError.mjs +1 -1
  102. package/dist/error/ClientAuthError.mjs.map +1 -1
  103. package/dist/error/ClientConfigurationError.mjs +1 -1
  104. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  105. package/dist/error/InteractionRequiredAuthError.mjs +1 -1
  106. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  107. package/dist/error/JoseHeaderError.mjs +1 -1
  108. package/dist/error/JoseHeaderError.mjs.map +1 -1
  109. package/dist/error/ServerError.mjs +1 -1
  110. package/dist/error/ServerError.mjs.map +1 -1
  111. package/dist/index.cjs +1926 -1826
  112. package/dist/index.cjs.map +1 -1
  113. package/dist/index.d.ts +4 -3
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.mjs +5 -3
  116. package/dist/index.mjs.map +1 -1
  117. package/dist/logger/Logger.d.ts.map +1 -1
  118. package/dist/logger/Logger.mjs +2 -12
  119. package/dist/logger/Logger.mjs.map +1 -1
  120. package/dist/network/INetworkModule.mjs +1 -1
  121. package/dist/network/INetworkModule.mjs.map +1 -1
  122. package/dist/network/NetworkManager.d.ts +1 -0
  123. package/dist/network/NetworkManager.d.ts.map +1 -1
  124. package/dist/network/NetworkManager.mjs +2 -1
  125. package/dist/network/NetworkManager.mjs.map +1 -1
  126. package/dist/network/ThrottlingUtils.d.ts +1 -0
  127. package/dist/network/ThrottlingUtils.d.ts.map +1 -1
  128. package/dist/network/ThrottlingUtils.mjs +2 -1
  129. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  130. package/dist/packageMetadata.d.ts +1 -1
  131. package/dist/packageMetadata.mjs +2 -2
  132. package/dist/packageMetadata.mjs.map +1 -1
  133. package/dist/request/AuthenticationHeaderParser.mjs +1 -1
  134. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  135. package/dist/request/RequestParameterBuilder.d.ts +1 -0
  136. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  137. package/dist/request/RequestParameterBuilder.mjs +7 -7
  138. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  139. package/dist/request/RequestValidator.d.ts.map +1 -1
  140. package/dist/request/RequestValidator.mjs +4 -6
  141. package/dist/request/RequestValidator.mjs.map +1 -1
  142. package/dist/request/ScopeSet.mjs +4 -4
  143. package/dist/request/ScopeSet.mjs.map +1 -1
  144. package/dist/response/AuthenticationResult.d.ts +3 -1
  145. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  146. package/dist/response/ResponseHandler.d.ts +5 -3
  147. package/dist/response/ResponseHandler.d.ts.map +1 -1
  148. package/dist/response/ResponseHandler.mjs +58 -39
  149. package/dist/response/ResponseHandler.mjs.map +1 -1
  150. package/dist/response/ServerAuthorizationTokenResponse.d.ts +2 -0
  151. package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
  152. package/dist/telemetry/performance/IPerformanceClient.d.ts +4 -4
  153. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  154. package/dist/telemetry/performance/PerformanceClient.d.ts +2 -2
  155. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  156. package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
  157. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  158. package/dist/telemetry/performance/PerformanceEvent.d.ts +8 -1
  159. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  160. package/dist/telemetry/performance/PerformanceEvent.mjs +9 -1
  161. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  162. package/dist/telemetry/performance/StubPerformanceClient.d.ts +3 -3
  163. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  164. package/dist/telemetry/performance/StubPerformanceClient.mjs +23 -3
  165. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  166. package/dist/telemetry/server/ServerTelemetryManager.d.ts +1 -0
  167. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  168. package/dist/telemetry/server/ServerTelemetryManager.mjs +4 -4
  169. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  170. package/dist/url/UrlString.d.ts.map +1 -1
  171. package/dist/url/UrlString.mjs +10 -12
  172. package/dist/url/UrlString.mjs.map +1 -1
  173. package/dist/utils/Constants.d.ts +10 -0
  174. package/dist/utils/Constants.d.ts.map +1 -1
  175. package/dist/utils/Constants.mjs +11 -2
  176. package/dist/utils/Constants.mjs.map +1 -1
  177. package/dist/utils/FunctionWrappers.d.ts +28 -0
  178. package/dist/utils/FunctionWrappers.d.ts.map +1 -0
  179. package/dist/utils/FunctionWrappers.mjs +90 -0
  180. package/dist/utils/FunctionWrappers.mjs.map +1 -0
  181. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  182. package/dist/utils/ProtocolUtils.mjs +4 -7
  183. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  184. package/dist/utils/StringUtils.d.ts +0 -13
  185. package/dist/utils/StringUtils.d.ts.map +1 -1
  186. package/dist/utils/StringUtils.mjs +3 -34
  187. package/dist/utils/StringUtils.mjs.map +1 -1
  188. package/dist/utils/TimeUtils.mjs +1 -1
  189. package/dist/utils/TimeUtils.mjs.map +1 -1
  190. package/package.json +6 -4
  191. package/src/account/AccountInfo.ts +44 -0
  192. package/src/account/AuthToken.ts +70 -0
  193. package/src/account/CcsCredential.ts +16 -0
  194. package/src/account/ClientCredentials.ts +20 -0
  195. package/src/account/ClientInfo.ts +64 -0
  196. package/src/account/TokenClaims.ts +70 -0
  197. package/src/authority/Authority.ts +1225 -0
  198. package/src/authority/AuthorityFactory.ts +106 -0
  199. package/src/authority/AuthorityMetadata.ts +953 -0
  200. package/src/authority/AuthorityOptions.ts +40 -0
  201. package/src/authority/AuthorityType.ts +15 -0
  202. package/src/authority/AzureRegion.ts +7 -0
  203. package/src/authority/AzureRegionConfiguration.ts +16 -0
  204. package/src/authority/CloudDiscoveryMetadata.ts +10 -0
  205. package/src/authority/CloudInstanceDiscoveryErrorResponse.ts +26 -0
  206. package/src/authority/CloudInstanceDiscoveryResponse.ts +21 -0
  207. package/src/authority/ImdsOptions.ts +10 -0
  208. package/src/authority/OIDCOptions.ts +14 -0
  209. package/src/authority/OpenIdConfigResponse.ts +24 -0
  210. package/src/authority/ProtocolMode.ts +13 -0
  211. package/src/authority/RegionDiscovery.ts +193 -0
  212. package/src/authority/RegionDiscoveryMetadata.ts +15 -0
  213. package/src/broker/nativeBroker/INativeBrokerPlugin.ts +29 -0
  214. package/src/cache/CacheManager.ts +1619 -0
  215. package/src/cache/entities/AccessTokenEntity.ts +162 -0
  216. package/src/cache/entities/AccountEntity.ts +309 -0
  217. package/src/cache/entities/AppMetadataEntity.ts +91 -0
  218. package/src/cache/entities/AuthorityMetadataEntity.ts +112 -0
  219. package/src/cache/entities/CacheRecord.ts +33 -0
  220. package/src/cache/entities/CredentialEntity.ts +215 -0
  221. package/src/cache/entities/IdTokenEntity.ts +74 -0
  222. package/src/cache/entities/RefreshTokenEntity.ts +78 -0
  223. package/src/cache/entities/ServerTelemetryEntity.ts +38 -0
  224. package/src/cache/entities/ThrottlingEntity.ts +36 -0
  225. package/src/cache/interface/ICacheManager.ts +218 -0
  226. package/src/cache/interface/ICachePlugin.ts +11 -0
  227. package/src/cache/interface/ISerializableTokenCache.ts +9 -0
  228. package/src/cache/persistence/TokenCacheContext.ts +39 -0
  229. package/src/cache/utils/CacheTypes.ts +93 -0
  230. package/src/client/AuthorizationCodeClient.ts +714 -0
  231. package/src/client/BaseClient.ts +205 -0
  232. package/src/client/RefreshTokenClient.ts +442 -0
  233. package/src/client/SilentFlowClient.ts +186 -0
  234. package/src/config/AppTokenProvider.ts +47 -0
  235. package/src/config/ClientConfiguration.ts +287 -0
  236. package/src/crypto/ICrypto.ts +127 -0
  237. package/src/crypto/IGuidGenerator.ts +9 -0
  238. package/src/crypto/JoseHeader.ts +55 -0
  239. package/src/crypto/PopTokenGenerator.ts +155 -0
  240. package/src/crypto/SignedHttpRequest.ts +16 -0
  241. package/src/error/AuthError.ts +85 -0
  242. package/src/error/ClientAuthError.ts +738 -0
  243. package/src/error/ClientConfigurationError.ts +396 -0
  244. package/src/error/InteractionRequiredAuthError.ts +134 -0
  245. package/src/error/JoseHeaderError.ts +52 -0
  246. package/src/error/ServerError.ts +18 -0
  247. package/src/index.ts +215 -0
  248. package/src/logger/Logger.ts +272 -0
  249. package/src/network/INetworkModule.ts +57 -0
  250. package/src/network/NetworkManager.ts +76 -0
  251. package/src/network/RequestThumbprint.ts +22 -0
  252. package/src/network/ThrottlingUtils.ts +156 -0
  253. package/src/packageMetadata.ts +3 -0
  254. package/src/request/AuthenticationHeaderParser.ts +89 -0
  255. package/src/request/BaseAuthRequest.ts +46 -0
  256. package/src/request/CommonAuthorizationCodeRequest.ts +33 -0
  257. package/src/request/CommonAuthorizationUrlRequest.ts +56 -0
  258. package/src/request/CommonClientCredentialRequest.ts +23 -0
  259. package/src/request/CommonDeviceCodeRequest.ts +31 -0
  260. package/src/request/CommonEndSessionRequest.ts +27 -0
  261. package/src/request/CommonOnBehalfOfRequest.ts +19 -0
  262. package/src/request/CommonRefreshTokenRequest.ts +25 -0
  263. package/src/request/CommonSilentFlowRequest.ts +24 -0
  264. package/src/request/CommonUsernamePasswordRequest.ts +23 -0
  265. package/src/request/NativeRequest.ts +25 -0
  266. package/src/request/NativeSignOutRequest.ts +10 -0
  267. package/src/request/RequestParameterBuilder.ts +606 -0
  268. package/src/request/RequestValidator.ts +103 -0
  269. package/src/request/ScopeSet.ts +230 -0
  270. package/src/request/StoreInCache.ts +16 -0
  271. package/src/response/AuthenticationResult.ts +47 -0
  272. package/src/response/AuthorizationCodePayload.ts +18 -0
  273. package/src/response/DeviceCodeResponse.ts +31 -0
  274. package/src/response/ExternalTokenResponse.ts +24 -0
  275. package/src/response/IMDSBadResponse.ts +9 -0
  276. package/src/response/ResponseHandler.ts +614 -0
  277. package/src/response/ServerAuthorizationCodeResponse.ts +33 -0
  278. package/src/response/ServerAuthorizationTokenResponse.ts +54 -0
  279. package/src/telemetry/performance/IPerformanceClient.ts +71 -0
  280. package/src/telemetry/performance/IPerformanceMeasurement.ts +10 -0
  281. package/src/telemetry/performance/PerformanceClient.ts +635 -0
  282. package/src/telemetry/performance/PerformanceEvent.ts +542 -0
  283. package/src/telemetry/performance/StubPerformanceClient.ts +101 -0
  284. package/src/telemetry/server/ServerTelemetryManager.ts +274 -0
  285. package/src/telemetry/server/ServerTelemetryRequest.ts +13 -0
  286. package/src/url/IUri.ts +17 -0
  287. package/src/url/UrlString.ts +363 -0
  288. package/src/utils/Constants.ts +436 -0
  289. package/src/utils/FunctionWrappers.ts +105 -0
  290. package/src/utils/MsalTypes.ts +9 -0
  291. package/src/utils/ProtocolUtils.ts +124 -0
  292. package/src/utils/StringUtils.ts +106 -0
  293. package/src/utils/TimeUtils.ts +51 -0
  294. package/dist/account/DecodedAuthToken.d.ts +0 -9
  295. package/dist/account/DecodedAuthToken.d.ts.map +0 -1
@@ -0,0 +1,738 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { AuthError } from "./AuthError";
7
+
8
+ /**
9
+ * ClientAuthErrorMessage class containing string constants used by error codes and messages.
10
+ */
11
+ export const ClientAuthErrorMessage = {
12
+ clientInfoDecodingError: {
13
+ code: "client_info_decoding_error",
14
+ desc: "The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.",
15
+ },
16
+ clientInfoEmptyError: {
17
+ code: "client_info_empty_error",
18
+ desc: "The client info was empty. Please review the trace to determine the root cause.",
19
+ },
20
+ tokenParsingError: {
21
+ code: "token_parsing_error",
22
+ desc: "Token cannot be parsed. Please review stack trace to determine root cause.",
23
+ },
24
+ nullOrEmptyToken: {
25
+ code: "null_or_empty_token",
26
+ desc: "The token is null or empty. Please review the trace to determine the root cause.",
27
+ },
28
+ endpointResolutionError: {
29
+ code: "endpoints_resolution_error",
30
+ desc: "Error: could not resolve endpoints. Please check network and try again.",
31
+ },
32
+ networkError: {
33
+ code: "network_error",
34
+ desc: "Network request failed. Please check network trace to determine root cause.",
35
+ },
36
+ unableToGetOpenidConfigError: {
37
+ code: "openid_config_error",
38
+ desc: "Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.",
39
+ },
40
+ hashNotDeserialized: {
41
+ code: "hash_not_deserialized",
42
+ desc: "The hash parameters could not be deserialized. Please review the trace to determine the root cause.",
43
+ },
44
+ blankGuidGenerated: {
45
+ code: "blank_guid_generated",
46
+ desc: "The guid generated was blank. Please review the trace to determine the root cause.",
47
+ },
48
+ invalidStateError: {
49
+ code: "invalid_state",
50
+ desc: "State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().",
51
+ },
52
+ stateMismatchError: {
53
+ code: "state_mismatch",
54
+ desc: "State mismatch error. Please check your network. Continued requests may cause cache overflow.",
55
+ },
56
+ stateNotFoundError: {
57
+ code: "state_not_found",
58
+ desc: "State not found",
59
+ },
60
+ nonceMismatchError: {
61
+ code: "nonce_mismatch",
62
+ desc: "Nonce mismatch error. This may be caused by a race condition in concurrent requests.",
63
+ },
64
+ nonceNotFoundError: {
65
+ code: "nonce_not_found",
66
+ desc: "nonce not found",
67
+ },
68
+ authTimeNotFoundError: {
69
+ code: "auth_time_not_found",
70
+ desc:
71
+ "Max Age was requested and the ID token is missing the auth_time variable." +
72
+ " auth_time is an optional claim and is not enabled by default - it must be enabled." +
73
+ " See https://aka.ms/msaljs/optional-claims for more information.",
74
+ },
75
+ maxAgeTranspiredError: {
76
+ code: "max_age_transpired",
77
+ desc: "Max Age is set to 0, or too much time has elapsed since the last end-user authentication.",
78
+ },
79
+ noTokensFoundError: {
80
+ code: "no_tokens_found",
81
+ desc: "No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().",
82
+ },
83
+ multipleMatchingTokens: {
84
+ code: "multiple_matching_tokens",
85
+ desc:
86
+ "The cache contains multiple tokens satisfying the requirements. " +
87
+ "Call AcquireToken again providing more requirements such as authority or account.",
88
+ },
89
+ multipleMatchingAccounts: {
90
+ code: "multiple_matching_accounts",
91
+ desc: "The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account",
92
+ },
93
+ multipleMatchingAppMetadata: {
94
+ code: "multiple_matching_appMetadata",
95
+ desc: "The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata",
96
+ },
97
+ tokenRequestCannotBeMade: {
98
+ code: "request_cannot_be_made",
99
+ desc: "Token request cannot be made without authorization code or refresh token.",
100
+ },
101
+ appendEmptyScopeError: {
102
+ code: "cannot_append_empty_scope",
103
+ desc: "Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.",
104
+ },
105
+ removeEmptyScopeError: {
106
+ code: "cannot_remove_empty_scope",
107
+ desc: "Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.",
108
+ },
109
+ appendScopeSetError: {
110
+ code: "cannot_append_scopeset",
111
+ desc: "Cannot append ScopeSet due to error.",
112
+ },
113
+ emptyInputScopeSetError: {
114
+ code: "empty_input_scopeset",
115
+ desc: "Empty input ScopeSet cannot be processed.",
116
+ },
117
+ DeviceCodePollingCancelled: {
118
+ code: "device_code_polling_cancelled",
119
+ desc: "Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.",
120
+ },
121
+ DeviceCodeExpired: {
122
+ code: "device_code_expired",
123
+ desc: "Device code is expired.",
124
+ },
125
+ DeviceCodeUnknownError: {
126
+ code: "device_code_unknown_error",
127
+ desc: "Device code stopped polling for unknown reasons.",
128
+ },
129
+ NoAccountInSilentRequest: {
130
+ code: "no_account_in_silent_request",
131
+ desc: "Please pass an account object, silent flow is not supported without account information",
132
+ },
133
+ invalidCacheRecord: {
134
+ code: "invalid_cache_record",
135
+ desc: "Cache record object was null or undefined.",
136
+ },
137
+ invalidCacheEnvironment: {
138
+ code: "invalid_cache_environment",
139
+ desc: "Invalid environment when attempting to create cache entry",
140
+ },
141
+ noAccountFound: {
142
+ code: "no_account_found",
143
+ desc: "No account found in cache for given key.",
144
+ },
145
+ CachePluginError: {
146
+ code: "no cache plugin set on CacheManager",
147
+ desc: "ICachePlugin needs to be set before using readFromStorage or writeFromStorage",
148
+ },
149
+ noCryptoObj: {
150
+ code: "no_crypto_object",
151
+ desc: "No crypto object detected. This is required for the following operation: ",
152
+ },
153
+ invalidCacheType: {
154
+ code: "invalid_cache_type",
155
+ desc: "Invalid cache type",
156
+ },
157
+ unexpectedAccountType: {
158
+ code: "unexpected_account_type",
159
+ desc: "Unexpected account type.",
160
+ },
161
+ unexpectedCredentialType: {
162
+ code: "unexpected_credential_type",
163
+ desc: "Unexpected credential type.",
164
+ },
165
+ invalidAssertion: {
166
+ code: "invalid_assertion",
167
+ desc: "Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515",
168
+ },
169
+ invalidClientCredential: {
170
+ code: "invalid_client_credential",
171
+ desc: "Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential",
172
+ },
173
+ tokenRefreshRequired: {
174
+ code: "token_refresh_required",
175
+ desc: "Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.",
176
+ },
177
+ userTimeoutReached: {
178
+ code: "user_timeout_reached",
179
+ desc: "User defined timeout for device code polling reached",
180
+ },
181
+ tokenClaimsRequired: {
182
+ code: "token_claims_cnf_required_for_signedjwt",
183
+ desc: "Cannot generate a POP jwt if the token_claims are not populated",
184
+ },
185
+ noAuthorizationCodeFromServer: {
186
+ code: "authorization_code_missing_from_server_response",
187
+ desc: "Server response does not contain an authorization code to proceed",
188
+ },
189
+ noAzureRegionDetected: {
190
+ code: "no_azure_region_detected",
191
+ desc: "No azure region was detected and no fallback was made available",
192
+ },
193
+ accessTokenEntityNullError: {
194
+ code: "access_token_entity_null",
195
+ desc: "Access token entity is null, please check logs and cache to ensure a valid access token is present.",
196
+ },
197
+ bindingKeyNotRemovedError: {
198
+ code: "binding_key_not_removed",
199
+ desc: "Could not remove the credential's binding key from storage.",
200
+ },
201
+ logoutNotSupported: {
202
+ code: "end_session_endpoint_not_supported",
203
+ desc: "Provided authority does not support logout.",
204
+ },
205
+ keyIdMissing: {
206
+ code: "key_id_missing",
207
+ desc: "A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.",
208
+ },
209
+ noNetworkConnectivity: {
210
+ code: "no_network_connectivity",
211
+ desc: "No network connectivity. Check your internet connection.",
212
+ },
213
+ userCanceledError: {
214
+ code: "user_canceled",
215
+ desc: "User canceled the flow.",
216
+ },
217
+ missingTenantIdError: {
218
+ code: "missing_tenant_id_error",
219
+ desc: "A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.",
220
+ },
221
+ };
222
+
223
+ /**
224
+ * Error thrown when there is an error in the client code running on the browser.
225
+ */
226
+ export class ClientAuthError extends AuthError {
227
+ constructor(errorCode: string, errorMessage?: string) {
228
+ super(errorCode, errorMessage);
229
+ this.name = "ClientAuthError";
230
+
231
+ Object.setPrototypeOf(this, ClientAuthError.prototype);
232
+ }
233
+
234
+ /**
235
+ * Creates an error thrown when client info object doesn't decode correctly.
236
+ * @param caughtError
237
+ */
238
+ static createClientInfoDecodingError(caughtError: string): ClientAuthError {
239
+ return new ClientAuthError(
240
+ ClientAuthErrorMessage.clientInfoDecodingError.code,
241
+ `${ClientAuthErrorMessage.clientInfoDecodingError.desc} Failed with error: ${caughtError}`
242
+ );
243
+ }
244
+
245
+ /**
246
+ * Creates an error thrown if the client info is empty.
247
+ * @param rawClientInfo
248
+ */
249
+ static createClientInfoEmptyError(): ClientAuthError {
250
+ return new ClientAuthError(
251
+ ClientAuthErrorMessage.clientInfoEmptyError.code,
252
+ `${ClientAuthErrorMessage.clientInfoEmptyError.desc}`
253
+ );
254
+ }
255
+
256
+ /**
257
+ * Creates an error thrown when the id token extraction errors out.
258
+ * @param err
259
+ */
260
+ static createTokenParsingError(
261
+ caughtExtractionError: string
262
+ ): ClientAuthError {
263
+ return new ClientAuthError(
264
+ ClientAuthErrorMessage.tokenParsingError.code,
265
+ `${ClientAuthErrorMessage.tokenParsingError.desc} Failed with error: ${caughtExtractionError}`
266
+ );
267
+ }
268
+
269
+ /**
270
+ * Creates an error thrown when the id token string is null or empty.
271
+ * @param invalidRawTokenString
272
+ */
273
+ static createTokenNullOrEmptyError(
274
+ invalidRawTokenString: string
275
+ ): ClientAuthError {
276
+ return new ClientAuthError(
277
+ ClientAuthErrorMessage.nullOrEmptyToken.code,
278
+ `${ClientAuthErrorMessage.nullOrEmptyToken.desc} Raw Token Value: ${invalidRawTokenString}`
279
+ );
280
+ }
281
+
282
+ /**
283
+ * Creates an error thrown when the endpoint discovery doesn't complete correctly.
284
+ */
285
+ static createEndpointDiscoveryIncompleteError(
286
+ errDetail: string
287
+ ): ClientAuthError {
288
+ return new ClientAuthError(
289
+ ClientAuthErrorMessage.endpointResolutionError.code,
290
+ `${ClientAuthErrorMessage.endpointResolutionError.desc} Detail: ${errDetail}`
291
+ );
292
+ }
293
+
294
+ /**
295
+ * Creates an error thrown when the fetch client throws
296
+ */
297
+ static createNetworkError(
298
+ endpoint: string,
299
+ errDetail: string
300
+ ): ClientAuthError {
301
+ return new ClientAuthError(
302
+ ClientAuthErrorMessage.networkError.code,
303
+ `${
304
+ ClientAuthErrorMessage.networkError.desc
305
+ } | Fetch client threw: ${errDetail} | Attempted to reach: ${
306
+ endpoint.split("?")[0]
307
+ }`
308
+ );
309
+ }
310
+
311
+ /**
312
+ * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data
313
+ */
314
+ static createUnableToGetOpenidConfigError(
315
+ errDetail: string
316
+ ): ClientAuthError {
317
+ return new ClientAuthError(
318
+ ClientAuthErrorMessage.unableToGetOpenidConfigError.code,
319
+ `${ClientAuthErrorMessage.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${errDetail}`
320
+ );
321
+ }
322
+
323
+ /**
324
+ * Creates an error thrown when the hash cannot be deserialized.
325
+ * @param hashParamObj
326
+ */
327
+ static createHashNotDeserializedError(
328
+ hashParamObj: string
329
+ ): ClientAuthError {
330
+ return new ClientAuthError(
331
+ ClientAuthErrorMessage.hashNotDeserialized.code,
332
+ `${ClientAuthErrorMessage.hashNotDeserialized.desc} Given Object: ${hashParamObj}`
333
+ );
334
+ }
335
+
336
+ /**
337
+ * Creates an error thrown when the state cannot be parsed.
338
+ * @param invalidState
339
+ */
340
+ static createInvalidStateError(
341
+ invalidState: string,
342
+ errorString?: string
343
+ ): ClientAuthError {
344
+ return new ClientAuthError(
345
+ ClientAuthErrorMessage.invalidStateError.code,
346
+ `${ClientAuthErrorMessage.invalidStateError.desc} Invalid State: ${invalidState}, Root Err: ${errorString}`
347
+ );
348
+ }
349
+
350
+ /**
351
+ * Creates an error thrown when two states do not match.
352
+ */
353
+ static createStateMismatchError(): ClientAuthError {
354
+ return new ClientAuthError(
355
+ ClientAuthErrorMessage.stateMismatchError.code,
356
+ ClientAuthErrorMessage.stateMismatchError.desc
357
+ );
358
+ }
359
+
360
+ /**
361
+ * Creates an error thrown when the state is not present
362
+ * @param missingState
363
+ */
364
+ static createStateNotFoundError(missingState: string): ClientAuthError {
365
+ return new ClientAuthError(
366
+ ClientAuthErrorMessage.stateNotFoundError.code,
367
+ `${ClientAuthErrorMessage.stateNotFoundError.desc}: ${missingState}`
368
+ );
369
+ }
370
+
371
+ /**
372
+ * Creates an error thrown when the nonce does not match.
373
+ */
374
+ static createNonceMismatchError(): ClientAuthError {
375
+ return new ClientAuthError(
376
+ ClientAuthErrorMessage.nonceMismatchError.code,
377
+ ClientAuthErrorMessage.nonceMismatchError.desc
378
+ );
379
+ }
380
+
381
+ /**
382
+ * Creates an error thrown when max_age was provided in the request, but auth_time is not in the token claims
383
+ * @param missingNonce
384
+ */
385
+ static createAuthTimeNotFoundError(): ClientAuthError {
386
+ return new ClientAuthError(
387
+ ClientAuthErrorMessage.authTimeNotFoundError.code,
388
+ ClientAuthErrorMessage.authTimeNotFoundError.desc
389
+ );
390
+ }
391
+
392
+ /**
393
+ * Creates an error thrown when too much time has elapsed since the last end-user authentication
394
+ */
395
+ static createMaxAgeTranspiredError(): ClientAuthError {
396
+ return new ClientAuthError(
397
+ ClientAuthErrorMessage.maxAgeTranspiredError.code,
398
+ ClientAuthErrorMessage.maxAgeTranspiredError.desc
399
+ );
400
+ }
401
+
402
+ /**
403
+ * Creates an error thrown when the mnonce is not present
404
+ * @param missingNonce
405
+ */
406
+ static createNonceNotFoundError(missingNonce: string): ClientAuthError {
407
+ return new ClientAuthError(
408
+ ClientAuthErrorMessage.nonceNotFoundError.code,
409
+ `${ClientAuthErrorMessage.nonceNotFoundError.desc}: ${missingNonce}`
410
+ );
411
+ }
412
+
413
+ /**
414
+ * Throws error when multiple tokens are in cache.
415
+ */
416
+ static createMultipleMatchingTokensInCacheError(): ClientAuthError {
417
+ return new ClientAuthError(
418
+ ClientAuthErrorMessage.multipleMatchingTokens.code,
419
+ `${ClientAuthErrorMessage.multipleMatchingTokens.desc}.`
420
+ );
421
+ }
422
+
423
+ /**
424
+ * Throws error when multiple accounts are in cache for the given params
425
+ */
426
+ static createMultipleMatchingAccountsInCacheError(): ClientAuthError {
427
+ return new ClientAuthError(
428
+ ClientAuthErrorMessage.multipleMatchingAccounts.code,
429
+ ClientAuthErrorMessage.multipleMatchingAccounts.desc
430
+ );
431
+ }
432
+
433
+ /**
434
+ * Throws error when multiple appMetada are in cache for the given clientId.
435
+ */
436
+ static createMultipleMatchingAppMetadataInCacheError(): ClientAuthError {
437
+ return new ClientAuthError(
438
+ ClientAuthErrorMessage.multipleMatchingAppMetadata.code,
439
+ ClientAuthErrorMessage.multipleMatchingAppMetadata.desc
440
+ );
441
+ }
442
+
443
+ /**
444
+ * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.
445
+ */
446
+ static createTokenRequestCannotBeMadeError(): ClientAuthError {
447
+ return new ClientAuthError(
448
+ ClientAuthErrorMessage.tokenRequestCannotBeMade.code,
449
+ ClientAuthErrorMessage.tokenRequestCannotBeMade.desc
450
+ );
451
+ }
452
+
453
+ /**
454
+ * Throws error when attempting to append a null, undefined or empty scope to a set
455
+ * @param givenScope
456
+ */
457
+ static createAppendEmptyScopeToSetError(
458
+ givenScope: string
459
+ ): ClientAuthError {
460
+ return new ClientAuthError(
461
+ ClientAuthErrorMessage.appendEmptyScopeError.code,
462
+ `${ClientAuthErrorMessage.appendEmptyScopeError.desc} Given Scope: ${givenScope}`
463
+ );
464
+ }
465
+
466
+ /**
467
+ * Throws error when attempting to append a null, undefined or empty scope to a set
468
+ * @param givenScope
469
+ */
470
+ static createRemoveEmptyScopeFromSetError(
471
+ givenScope: string
472
+ ): ClientAuthError {
473
+ return new ClientAuthError(
474
+ ClientAuthErrorMessage.removeEmptyScopeError.code,
475
+ `${ClientAuthErrorMessage.removeEmptyScopeError.desc} Given Scope: ${givenScope}`
476
+ );
477
+ }
478
+
479
+ /**
480
+ * Throws error when attempting to append null or empty ScopeSet.
481
+ * @param appendError
482
+ */
483
+ static createAppendScopeSetError(appendError: string): ClientAuthError {
484
+ return new ClientAuthError(
485
+ ClientAuthErrorMessage.appendScopeSetError.code,
486
+ `${ClientAuthErrorMessage.appendScopeSetError.desc} Detail Error: ${appendError}`
487
+ );
488
+ }
489
+
490
+ /**
491
+ * Throws error if ScopeSet is null or undefined.
492
+ * @param givenScopeSet
493
+ */
494
+ static createEmptyInputScopeSetError(): ClientAuthError {
495
+ return new ClientAuthError(
496
+ ClientAuthErrorMessage.emptyInputScopeSetError.code,
497
+ `${ClientAuthErrorMessage.emptyInputScopeSetError.desc}`
498
+ );
499
+ }
500
+
501
+ /**
502
+ * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow
503
+ */
504
+ static createDeviceCodeCancelledError(): ClientAuthError {
505
+ return new ClientAuthError(
506
+ ClientAuthErrorMessage.DeviceCodePollingCancelled.code,
507
+ `${ClientAuthErrorMessage.DeviceCodePollingCancelled.desc}`
508
+ );
509
+ }
510
+
511
+ /**
512
+ * Throws error if device code is expired
513
+ */
514
+ static createDeviceCodeExpiredError(): ClientAuthError {
515
+ return new ClientAuthError(
516
+ ClientAuthErrorMessage.DeviceCodeExpired.code,
517
+ `${ClientAuthErrorMessage.DeviceCodeExpired.desc}`
518
+ );
519
+ }
520
+
521
+ /**
522
+ * Throws error if device code is expired
523
+ */
524
+ static createDeviceCodeUnknownError(): ClientAuthError {
525
+ return new ClientAuthError(
526
+ ClientAuthErrorMessage.DeviceCodeUnknownError.code,
527
+ `${ClientAuthErrorMessage.DeviceCodeUnknownError.desc}`
528
+ );
529
+ }
530
+
531
+ /**
532
+ * Throws error when silent requests are made without an account object
533
+ */
534
+ static createNoAccountInSilentRequestError(): ClientAuthError {
535
+ return new ClientAuthError(
536
+ ClientAuthErrorMessage.NoAccountInSilentRequest.code,
537
+ `${ClientAuthErrorMessage.NoAccountInSilentRequest.desc}`
538
+ );
539
+ }
540
+
541
+ /**
542
+ * Throws error when cache record is null or undefined.
543
+ */
544
+ static createNullOrUndefinedCacheRecord(): ClientAuthError {
545
+ return new ClientAuthError(
546
+ ClientAuthErrorMessage.invalidCacheRecord.code,
547
+ ClientAuthErrorMessage.invalidCacheRecord.desc
548
+ );
549
+ }
550
+
551
+ /**
552
+ * Throws error when provided environment is not part of the CloudDiscoveryMetadata object
553
+ */
554
+ static createInvalidCacheEnvironmentError(): ClientAuthError {
555
+ return new ClientAuthError(
556
+ ClientAuthErrorMessage.invalidCacheEnvironment.code,
557
+ ClientAuthErrorMessage.invalidCacheEnvironment.desc
558
+ );
559
+ }
560
+
561
+ /**
562
+ * Throws error when account is not found in cache.
563
+ */
564
+ static createNoAccountFoundError(): ClientAuthError {
565
+ return new ClientAuthError(
566
+ ClientAuthErrorMessage.noAccountFound.code,
567
+ ClientAuthErrorMessage.noAccountFound.desc
568
+ );
569
+ }
570
+
571
+ /**
572
+ * Throws error if ICachePlugin not set on CacheManager.
573
+ */
574
+ static createCachePluginError(): ClientAuthError {
575
+ return new ClientAuthError(
576
+ ClientAuthErrorMessage.CachePluginError.code,
577
+ `${ClientAuthErrorMessage.CachePluginError.desc}`
578
+ );
579
+ }
580
+
581
+ /**
582
+ * Throws error if crypto object not found.
583
+ * @param operationName
584
+ */
585
+ static createNoCryptoObjectError(operationName: string): ClientAuthError {
586
+ return new ClientAuthError(
587
+ ClientAuthErrorMessage.noCryptoObj.code,
588
+ `${ClientAuthErrorMessage.noCryptoObj.desc}${operationName}`
589
+ );
590
+ }
591
+
592
+ /**
593
+ * Throws error if cache type is invalid.
594
+ */
595
+ static createInvalidCacheTypeError(): ClientAuthError {
596
+ return new ClientAuthError(
597
+ ClientAuthErrorMessage.invalidCacheType.code,
598
+ `${ClientAuthErrorMessage.invalidCacheType.desc}`
599
+ );
600
+ }
601
+
602
+ /**
603
+ * Throws error if unexpected account type.
604
+ */
605
+ static createUnexpectedAccountTypeError(): ClientAuthError {
606
+ return new ClientAuthError(
607
+ ClientAuthErrorMessage.unexpectedAccountType.code,
608
+ `${ClientAuthErrorMessage.unexpectedAccountType.desc}`
609
+ );
610
+ }
611
+
612
+ /**
613
+ * Throws error if unexpected credential type.
614
+ */
615
+ static createUnexpectedCredentialTypeError(): ClientAuthError {
616
+ return new ClientAuthError(
617
+ ClientAuthErrorMessage.unexpectedCredentialType.code,
618
+ `${ClientAuthErrorMessage.unexpectedCredentialType.desc}`
619
+ );
620
+ }
621
+
622
+ /**
623
+ * Throws error if client assertion is not valid.
624
+ */
625
+ static createInvalidAssertionError(): ClientAuthError {
626
+ return new ClientAuthError(
627
+ ClientAuthErrorMessage.invalidAssertion.code,
628
+ `${ClientAuthErrorMessage.invalidAssertion.desc}`
629
+ );
630
+ }
631
+
632
+ /**
633
+ * Throws error if client assertion is not valid.
634
+ */
635
+ static createInvalidCredentialError(): ClientAuthError {
636
+ return new ClientAuthError(
637
+ ClientAuthErrorMessage.invalidClientCredential.code,
638
+ `${ClientAuthErrorMessage.invalidClientCredential.desc}`
639
+ );
640
+ }
641
+
642
+ /**
643
+ * Throws error if token cannot be retrieved from cache due to refresh being required.
644
+ */
645
+ static createRefreshRequiredError(): ClientAuthError {
646
+ return new ClientAuthError(
647
+ ClientAuthErrorMessage.tokenRefreshRequired.code,
648
+ ClientAuthErrorMessage.tokenRefreshRequired.desc
649
+ );
650
+ }
651
+
652
+ /**
653
+ * Throws error if the user defined timeout is reached.
654
+ */
655
+ static createUserTimeoutReachedError(): ClientAuthError {
656
+ return new ClientAuthError(
657
+ ClientAuthErrorMessage.userTimeoutReached.code,
658
+ ClientAuthErrorMessage.userTimeoutReached.desc
659
+ );
660
+ }
661
+
662
+ /*
663
+ * Throws error if token claims are not populated for a signed jwt generation
664
+ */
665
+ static createTokenClaimsRequiredError(): ClientAuthError {
666
+ return new ClientAuthError(
667
+ ClientAuthErrorMessage.tokenClaimsRequired.code,
668
+ ClientAuthErrorMessage.tokenClaimsRequired.desc
669
+ );
670
+ }
671
+
672
+ /**
673
+ * Throws error when the authorization code is missing from the server response
674
+ */
675
+ static createNoAuthCodeInServerResponseError(): ClientAuthError {
676
+ return new ClientAuthError(
677
+ ClientAuthErrorMessage.noAuthorizationCodeFromServer.code,
678
+ ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc
679
+ );
680
+ }
681
+
682
+ static createBindingKeyNotRemovedError(): ClientAuthError {
683
+ return new ClientAuthError(
684
+ ClientAuthErrorMessage.bindingKeyNotRemovedError.code,
685
+ ClientAuthErrorMessage.bindingKeyNotRemovedError.desc
686
+ );
687
+ }
688
+
689
+ /**
690
+ * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint
691
+ */
692
+ static createLogoutNotSupportedError(): ClientAuthError {
693
+ return new ClientAuthError(
694
+ ClientAuthErrorMessage.logoutNotSupported.code,
695
+ ClientAuthErrorMessage.logoutNotSupported.desc
696
+ );
697
+ }
698
+
699
+ /**
700
+ * Create an error when kid attribute is missing from a PoP token's cache record
701
+ */
702
+ static createKeyIdMissingError(): ClientAuthError {
703
+ return new ClientAuthError(
704
+ ClientAuthErrorMessage.keyIdMissing.code,
705
+ ClientAuthErrorMessage.keyIdMissing.desc
706
+ );
707
+ }
708
+
709
+ /**
710
+ * Create an error when the client does not have network connectivity
711
+ */
712
+ static createNoNetworkConnectivityError(): ClientAuthError {
713
+ return new ClientAuthError(
714
+ ClientAuthErrorMessage.noNetworkConnectivity.code,
715
+ ClientAuthErrorMessage.noNetworkConnectivity.desc
716
+ );
717
+ }
718
+
719
+ /**
720
+ * Create an error when the user cancels the flow
721
+ */
722
+ static createUserCanceledError(): ClientAuthError {
723
+ return new ClientAuthError(
724
+ ClientAuthErrorMessage.userCanceledError.code,
725
+ ClientAuthErrorMessage.userCanceledError.desc
726
+ );
727
+ }
728
+
729
+ /**
730
+ * Creates an error for during acquireTokenByClientCredential when TenantId is set to "common" or "organizations"
731
+ */
732
+ static createMissingTenantIdError(): ClientAuthError {
733
+ return new AuthError(
734
+ ClientAuthErrorMessage.missingTenantIdError.code,
735
+ ClientAuthErrorMessage.missingTenantIdError.desc
736
+ );
737
+ }
738
+ }