@azure/msal-common 0.0.1-alpha.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 (333) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/dist/_virtual/_tslib.js +90 -0
  4. package/dist/_virtual/_tslib.js.map +1 -0
  5. package/dist/account/AccountInfo.d.ts +30 -0
  6. package/dist/account/AccountInfo.d.ts.map +1 -0
  7. package/dist/account/AuthToken.d.ts +17 -0
  8. package/dist/account/AuthToken.d.ts.map +1 -0
  9. package/dist/account/AuthToken.js +43 -0
  10. package/dist/account/AuthToken.js.map +1 -0
  11. package/dist/account/CcsCredential.d.ts +9 -0
  12. package/dist/account/CcsCredential.d.ts.map +1 -0
  13. package/dist/account/CcsCredential.js +14 -0
  14. package/dist/account/CcsCredential.js.map +1 -0
  15. package/dist/account/ClientCredentials.d.ts +15 -0
  16. package/dist/account/ClientCredentials.d.ts.map +1 -0
  17. package/dist/account/ClientInfo.d.ts +20 -0
  18. package/dist/account/ClientInfo.d.ts.map +1 -0
  19. package/dist/account/ClientInfo.js +44 -0
  20. package/dist/account/ClientInfo.js.map +1 -0
  21. package/dist/account/DecodedAuthToken.d.ts +9 -0
  22. package/dist/account/DecodedAuthToken.d.ts.map +1 -0
  23. package/dist/account/TokenClaims.d.ts +60 -0
  24. package/dist/account/TokenClaims.d.ts.map +1 -0
  25. package/dist/authority/Authority.d.ts +200 -0
  26. package/dist/authority/Authority.d.ts.map +1 -0
  27. package/dist/authority/Authority.js +678 -0
  28. package/dist/authority/Authority.js.map +1 -0
  29. package/dist/authority/AuthorityFactory.d.ts +29 -0
  30. package/dist/authority/AuthorityFactory.d.ts.map +1 -0
  31. package/dist/authority/AuthorityFactory.js +69 -0
  32. package/dist/authority/AuthorityFactory.js.map +1 -0
  33. package/dist/authority/AuthorityMetadata.d.ts +623 -0
  34. package/dist/authority/AuthorityMetadata.d.ts.map +1 -0
  35. package/dist/authority/AuthorityMetadata.js +12 -0
  36. package/dist/authority/AuthorityMetadata.js.map +1 -0
  37. package/dist/authority/AuthorityOptions.d.ts +19 -0
  38. package/dist/authority/AuthorityOptions.d.ts.map +1 -0
  39. package/dist/authority/AuthorityOptions.js +24 -0
  40. package/dist/authority/AuthorityOptions.js.map +1 -0
  41. package/dist/authority/AuthorityType.d.ts +8 -0
  42. package/dist/authority/AuthorityType.d.ts.map +1 -0
  43. package/dist/authority/AuthorityType.js +17 -0
  44. package/dist/authority/AuthorityType.js.map +1 -0
  45. package/dist/authority/AzureRegion.d.ts +2 -0
  46. package/dist/authority/AzureRegion.d.ts.map +1 -0
  47. package/dist/authority/AzureRegionConfiguration.d.ts +6 -0
  48. package/dist/authority/AzureRegionConfiguration.d.ts.map +1 -0
  49. package/dist/authority/CloudDiscoveryMetadata.d.ts +6 -0
  50. package/dist/authority/CloudDiscoveryMetadata.d.ts.map +1 -0
  51. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +10 -0
  52. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts.map +1 -0
  53. package/dist/authority/CloudInstanceDiscoveryResponse.js +13 -0
  54. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -0
  55. package/dist/authority/ImdsOptions.d.ts +7 -0
  56. package/dist/authority/ImdsOptions.d.ts.map +1 -0
  57. package/dist/authority/OpenIdConfigResponse.d.ts +12 -0
  58. package/dist/authority/OpenIdConfigResponse.d.ts.map +1 -0
  59. package/dist/authority/OpenIdConfigResponse.js +15 -0
  60. package/dist/authority/OpenIdConfigResponse.js.map +1 -0
  61. package/dist/authority/ProtocolMode.d.ts +8 -0
  62. package/dist/authority/ProtocolMode.d.ts.map +1 -0
  63. package/dist/authority/ProtocolMode.js +17 -0
  64. package/dist/authority/ProtocolMode.js.map +1 -0
  65. package/dist/authority/RegionDiscovery.d.ts +28 -0
  66. package/dist/authority/RegionDiscovery.d.ts.map +1 -0
  67. package/dist/authority/RegionDiscovery.js +127 -0
  68. package/dist/authority/RegionDiscovery.js.map +1 -0
  69. package/dist/authority/RegionDiscoveryMetadata.d.ts +7 -0
  70. package/dist/authority/RegionDiscoveryMetadata.d.ts.map +1 -0
  71. package/dist/cache/CacheManager.d.ts +393 -0
  72. package/dist/cache/CacheManager.d.ts.map +1 -0
  73. package/dist/cache/CacheManager.js +885 -0
  74. package/dist/cache/CacheManager.js.map +1 -0
  75. package/dist/cache/entities/AccessTokenEntity.d.ts +57 -0
  76. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -0
  77. package/dist/cache/entities/AccessTokenEntity.js +124 -0
  78. package/dist/cache/entities/AccessTokenEntity.js.map +1 -0
  79. package/dist/cache/entities/AccountEntity.d.ts +100 -0
  80. package/dist/cache/entities/AccountEntity.d.ts.map +1 -0
  81. package/dist/cache/entities/AccountEntity.js +243 -0
  82. package/dist/cache/entities/AccountEntity.js.map +1 -0
  83. package/dist/cache/entities/AppMetadataEntity.d.ts +40 -0
  84. package/dist/cache/entities/AppMetadataEntity.d.ts.map +1 -0
  85. package/dist/cache/entities/AppMetadataEntity.js +74 -0
  86. package/dist/cache/entities/AppMetadataEntity.js.map +1 -0
  87. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -0
  88. package/dist/cache/entities/AuthorityMetadataEntity.d.ts.map +1 -0
  89. package/dist/cache/entities/AuthorityMetadataEntity.js +82 -0
  90. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -0
  91. package/dist/cache/entities/CacheRecord.d.ts +14 -0
  92. package/dist/cache/entities/CacheRecord.d.ts.map +1 -0
  93. package/dist/cache/entities/CacheRecord.js +19 -0
  94. package/dist/cache/entities/CacheRecord.js.map +1 -0
  95. package/dist/cache/entities/CredentialEntity.d.ts +94 -0
  96. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -0
  97. package/dist/cache/entities/CredentialEntity.js +164 -0
  98. package/dist/cache/entities/CredentialEntity.js.map +1 -0
  99. package/dist/cache/entities/IdTokenEntity.d.ts +35 -0
  100. package/dist/cache/entities/IdTokenEntity.d.ts.map +1 -0
  101. package/dist/cache/entities/IdTokenEntity.js +70 -0
  102. package/dist/cache/entities/IdTokenEntity.js.map +1 -0
  103. package/dist/cache/entities/RefreshTokenEntity.d.ts +37 -0
  104. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -0
  105. package/dist/cache/entities/RefreshTokenEntity.js +73 -0
  106. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -0
  107. package/dist/cache/entities/ServerTelemetryEntity.d.ts +13 -0
  108. package/dist/cache/entities/ServerTelemetryEntity.d.ts.map +1 -0
  109. package/dist/cache/entities/ServerTelemetryEntity.js +35 -0
  110. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -0
  111. package/dist/cache/entities/ThrottlingEntity.d.ts +14 -0
  112. package/dist/cache/entities/ThrottlingEntity.d.ts.map +1 -0
  113. package/dist/cache/entities/ThrottlingEntity.js +32 -0
  114. package/dist/cache/entities/ThrottlingEntity.js.map +1 -0
  115. package/dist/cache/interface/ICacheManager.d.ts +157 -0
  116. package/dist/cache/interface/ICacheManager.d.ts.map +1 -0
  117. package/dist/cache/interface/ICachePlugin.d.ts +6 -0
  118. package/dist/cache/interface/ICachePlugin.d.ts.map +1 -0
  119. package/dist/cache/interface/ISerializableTokenCache.d.ts +5 -0
  120. package/dist/cache/interface/ISerializableTokenCache.d.ts.map +1 -0
  121. package/dist/cache/persistence/TokenCacheContext.d.ts +24 -0
  122. package/dist/cache/persistence/TokenCacheContext.d.ts.map +1 -0
  123. package/dist/cache/persistence/TokenCacheContext.js +39 -0
  124. package/dist/cache/persistence/TokenCacheContext.js.map +1 -0
  125. package/dist/cache/utils/CacheTypes.d.ts +60 -0
  126. package/dist/cache/utils/CacheTypes.d.ts.map +1 -0
  127. package/dist/client/AuthorizationCodeClient.d.ts +76 -0
  128. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -0
  129. package/dist/client/AuthorizationCodeClient.js +468 -0
  130. package/dist/client/AuthorizationCodeClient.js.map +1 -0
  131. package/dist/client/BaseClient.d.ts +45 -0
  132. package/dist/client/BaseClient.d.ts.map +1 -0
  133. package/dist/client/BaseClient.js +103 -0
  134. package/dist/client/BaseClient.js.map +1 -0
  135. package/dist/client/ClientCredentialClient.d.ts +39 -0
  136. package/dist/client/ClientCredentialClient.d.ts.map +1 -0
  137. package/dist/client/ClientCredentialClient.js +202 -0
  138. package/dist/client/ClientCredentialClient.js.map +1 -0
  139. package/dist/client/DeviceCodeClient.d.ts +52 -0
  140. package/dist/client/DeviceCodeClient.d.ts.map +1 -0
  141. package/dist/client/DeviceCodeClient.js +232 -0
  142. package/dist/client/DeviceCodeClient.js.map +1 -0
  143. package/dist/client/OnBehalfOfClient.d.ts +51 -0
  144. package/dist/client/OnBehalfOfClient.d.ts.map +1 -0
  145. package/dist/client/OnBehalfOfClient.js +244 -0
  146. package/dist/client/OnBehalfOfClient.js.map +1 -0
  147. package/dist/client/RefreshTokenClient.d.ts +40 -0
  148. package/dist/client/RefreshTokenClient.d.ts.map +1 -0
  149. package/dist/client/RefreshTokenClient.js +255 -0
  150. package/dist/client/RefreshTokenClient.js.map +1 -0
  151. package/dist/client/SilentFlowClient.d.ts +25 -0
  152. package/dist/client/SilentFlowClient.d.ts.map +1 -0
  153. package/dist/client/SilentFlowClient.js +128 -0
  154. package/dist/client/SilentFlowClient.js.map +1 -0
  155. package/dist/client/UsernamePasswordClient.d.ts +29 -0
  156. package/dist/client/UsernamePasswordClient.d.ts.map +1 -0
  157. package/dist/client/UsernamePasswordClient.js +120 -0
  158. package/dist/client/UsernamePasswordClient.js.map +1 -0
  159. package/dist/config/AppTokenProvider.d.ts +39 -0
  160. package/dist/config/AppTokenProvider.d.ts.map +1 -0
  161. package/dist/config/ClientConfiguration.d.ts +135 -0
  162. package/dist/config/ClientConfiguration.d.ts.map +1 -0
  163. package/dist/config/ClientConfiguration.js +105 -0
  164. package/dist/config/ClientConfiguration.js.map +1 -0
  165. package/dist/crypto/ICrypto.d.ts +63 -0
  166. package/dist/crypto/ICrypto.d.ts.map +1 -0
  167. package/dist/crypto/ICrypto.js +80 -0
  168. package/dist/crypto/ICrypto.js.map +1 -0
  169. package/dist/crypto/IGuidGenerator.d.ts +5 -0
  170. package/dist/crypto/IGuidGenerator.d.ts.map +1 -0
  171. package/dist/crypto/JoseHeader.d.ts +22 -0
  172. package/dist/crypto/JoseHeader.d.ts.map +1 -0
  173. package/dist/crypto/JoseHeader.js +45 -0
  174. package/dist/crypto/JoseHeader.js.map +1 -0
  175. package/dist/crypto/PopTokenGenerator.d.ts +56 -0
  176. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -0
  177. package/dist/crypto/PopTokenGenerator.js +107 -0
  178. package/dist/crypto/PopTokenGenerator.js.map +1 -0
  179. package/dist/crypto/SignedHttpRequest.d.ts +12 -0
  180. package/dist/crypto/SignedHttpRequest.d.ts.map +1 -0
  181. package/dist/error/AuthError.d.ts +48 -0
  182. package/dist/error/AuthError.d.ts.map +1 -0
  183. package/dist/error/AuthError.js +61 -0
  184. package/dist/error/AuthError.js.map +1 -0
  185. package/dist/error/ClientAuthError.d.ts +372 -0
  186. package/dist/error/ClientAuthError.d.ts.map +1 -0
  187. package/dist/error/ClientAuthError.js +477 -0
  188. package/dist/error/ClientAuthError.js.map +1 -0
  189. package/dist/error/ClientConfigurationError.d.ts +199 -0
  190. package/dist/error/ClientConfigurationError.d.ts.map +1 -0
  191. package/dist/error/ClientConfigurationError.js +260 -0
  192. package/dist/error/ClientConfigurationError.js.map +1 -0
  193. package/dist/error/InteractionRequiredAuthError.d.ts +42 -0
  194. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -0
  195. package/dist/error/InteractionRequiredAuthError.js +80 -0
  196. package/dist/error/InteractionRequiredAuthError.js.map +1 -0
  197. package/dist/error/JoseHeaderError.d.ts +29 -0
  198. package/dist/error/JoseHeaderError.d.ts.map +1 -0
  199. package/dist/error/JoseHeaderError.js +50 -0
  200. package/dist/error/JoseHeaderError.js.map +1 -0
  201. package/dist/error/ServerError.d.ts +8 -0
  202. package/dist/error/ServerError.d.ts.map +1 -0
  203. package/dist/error/ServerError.js +25 -0
  204. package/dist/error/ServerError.js.map +1 -0
  205. package/dist/index.cjs.js +8441 -0
  206. package/dist/index.cjs.js.map +1 -0
  207. package/dist/index.d.ts +90 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +53 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/logger/Logger.d.ts +95 -0
  212. package/dist/logger/Logger.d.ts.map +1 -0
  213. package/dist/logger/Logger.js +185 -0
  214. package/dist/logger/Logger.js.map +1 -0
  215. package/dist/network/INetworkModule.d.ts +31 -0
  216. package/dist/network/INetworkModule.d.ts.map +1 -0
  217. package/dist/network/INetworkModule.js +21 -0
  218. package/dist/network/INetworkModule.js.map +1 -0
  219. package/dist/network/NetworkManager.d.ts +21 -0
  220. package/dist/network/NetworkManager.d.ts.map +1 -0
  221. package/dist/network/NetworkManager.js +56 -0
  222. package/dist/network/NetworkManager.js.map +1 -0
  223. package/dist/network/RequestThumbprint.d.ts +17 -0
  224. package/dist/network/RequestThumbprint.d.ts.map +1 -0
  225. package/dist/network/ThrottlingUtils.d.ts +42 -0
  226. package/dist/network/ThrottlingUtils.d.ts.map +1 -0
  227. package/dist/network/ThrottlingUtils.js +101 -0
  228. package/dist/network/ThrottlingUtils.js.map +1 -0
  229. package/dist/packageMetadata.d.ts +3 -0
  230. package/dist/packageMetadata.d.ts.map +1 -0
  231. package/dist/packageMetadata.js +8 -0
  232. package/dist/packageMetadata.js.map +1 -0
  233. package/dist/request/AuthenticationHeaderParser.d.ts +20 -0
  234. package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -0
  235. package/dist/request/AuthenticationHeaderParser.js +64 -0
  236. package/dist/request/AuthenticationHeaderParser.js.map +1 -0
  237. package/dist/request/BaseAuthRequest.d.ts +34 -0
  238. package/dist/request/BaseAuthRequest.d.ts.map +1 -0
  239. package/dist/request/CommonAuthorizationCodeRequest.d.ts +28 -0
  240. package/dist/request/CommonAuthorizationCodeRequest.d.ts.map +1 -0
  241. package/dist/request/CommonAuthorizationUrlRequest.d.ts +51 -0
  242. package/dist/request/CommonAuthorizationUrlRequest.d.ts.map +1 -0
  243. package/dist/request/CommonClientCredentialRequest.d.ts +17 -0
  244. package/dist/request/CommonClientCredentialRequest.d.ts.map +1 -0
  245. package/dist/request/CommonDeviceCodeRequest.d.ts +19 -0
  246. package/dist/request/CommonDeviceCodeRequest.d.ts.map +1 -0
  247. package/dist/request/CommonEndSessionRequest.d.ts +21 -0
  248. package/dist/request/CommonEndSessionRequest.d.ts.map +1 -0
  249. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -0
  250. package/dist/request/CommonOnBehalfOfRequest.d.ts.map +1 -0
  251. package/dist/request/CommonRefreshTokenRequest.d.ts +21 -0
  252. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -0
  253. package/dist/request/CommonSilentFlowRequest.d.ts +20 -0
  254. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -0
  255. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -0
  256. package/dist/request/CommonUsernamePasswordRequest.d.ts.map +1 -0
  257. package/dist/request/RequestParameterBuilder.d.ts +217 -0
  258. package/dist/request/RequestParameterBuilder.d.ts.map +1 -0
  259. package/dist/request/RequestParameterBuilder.js +387 -0
  260. package/dist/request/RequestParameterBuilder.js.map +1 -0
  261. package/dist/request/RequestValidator.d.ts +34 -0
  262. package/dist/request/RequestValidator.d.ts.map +1 -0
  263. package/dist/request/RequestValidator.js +92 -0
  264. package/dist/request/RequestValidator.js.map +1 -0
  265. package/dist/request/ScopeSet.d.ts +83 -0
  266. package/dist/request/ScopeSet.d.ts.map +1 -0
  267. package/dist/request/ScopeSet.js +192 -0
  268. package/dist/request/ScopeSet.js.map +1 -0
  269. package/dist/response/AuthenticationResult.d.ts +38 -0
  270. package/dist/response/AuthenticationResult.d.ts.map +1 -0
  271. package/dist/response/AuthorizationCodePayload.d.ts +14 -0
  272. package/dist/response/AuthorizationCodePayload.d.ts.map +1 -0
  273. package/dist/response/DeviceCodeResponse.d.ts +26 -0
  274. package/dist/response/DeviceCodeResponse.d.ts.map +1 -0
  275. package/dist/response/ExternalTokenResponse.d.ts +15 -0
  276. package/dist/response/ExternalTokenResponse.d.ts.map +1 -0
  277. package/dist/response/IMDSBadResponse.d.ts +5 -0
  278. package/dist/response/IMDSBadResponse.d.ts.map +1 -0
  279. package/dist/response/ResponseHandler.d.ts +71 -0
  280. package/dist/response/ResponseHandler.d.ts.map +1 -0
  281. package/dist/response/ResponseHandler.js +293 -0
  282. package/dist/response/ResponseHandler.js.map +1 -0
  283. package/dist/response/ServerAuthorizationCodeResponse.d.ts +22 -0
  284. package/dist/response/ServerAuthorizationCodeResponse.d.ts.map +1 -0
  285. package/dist/response/ServerAuthorizationTokenResponse.d.ts +43 -0
  286. package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -0
  287. package/dist/telemetry/performance/IPerformanceClient.d.ts +22 -0
  288. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -0
  289. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +6 -0
  290. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts.map +1 -0
  291. package/dist/telemetry/performance/PerformanceClient.d.ts +125 -0
  292. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -0
  293. package/dist/telemetry/performance/PerformanceClient.js +281 -0
  294. package/dist/telemetry/performance/PerformanceClient.js.map +1 -0
  295. package/dist/telemetry/performance/PerformanceEvent.d.ts +249 -0
  296. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -0
  297. package/dist/telemetry/performance/PerformanceEvent.js +121 -0
  298. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -0
  299. package/dist/telemetry/performance/StubPerformanceClient.d.ts +13 -0
  300. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -0
  301. package/dist/telemetry/performance/StubPerformanceClient.js +37 -0
  302. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -0
  303. package/dist/telemetry/server/ServerTelemetryManager.d.ts +67 -0
  304. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -0
  305. package/dist/telemetry/server/ServerTelemetryManager.js +168 -0
  306. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -0
  307. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +9 -0
  308. package/dist/telemetry/server/ServerTelemetryRequest.d.ts.map +1 -0
  309. package/dist/url/IUri.d.ts +13 -0
  310. package/dist/url/IUri.d.ts.map +1 -0
  311. package/dist/url/UrlString.d.ts +62 -0
  312. package/dist/url/UrlString.d.ts.map +1 -0
  313. package/dist/url/UrlString.js +208 -0
  314. package/dist/url/UrlString.js.map +1 -0
  315. package/dist/utils/Constants.d.ts +340 -0
  316. package/dist/utils/Constants.d.ts.map +1 -0
  317. package/dist/utils/Constants.js +381 -0
  318. package/dist/utils/Constants.js.map +1 -0
  319. package/dist/utils/MsalTypes.d.ts +7 -0
  320. package/dist/utils/MsalTypes.d.ts.map +1 -0
  321. package/dist/utils/ProtocolUtils.d.ts +43 -0
  322. package/dist/utils/ProtocolUtils.d.ts.map +1 -0
  323. package/dist/utils/ProtocolUtils.js +77 -0
  324. package/dist/utils/ProtocolUtils.js.map +1 -0
  325. package/dist/utils/StringUtils.d.ts +54 -0
  326. package/dist/utils/StringUtils.d.ts.map +1 -0
  327. package/dist/utils/StringUtils.js +129 -0
  328. package/dist/utils/StringUtils.js.map +1 -0
  329. package/dist/utils/TimeUtils.d.ts +28 -0
  330. package/dist/utils/TimeUtils.d.ts.map +1 -0
  331. package/dist/utils/TimeUtils.js +53 -0
  332. package/dist/utils/TimeUtils.js.map +1 -0
  333. package/package.json +76 -0
@@ -0,0 +1,477 @@
1
+ /*! @azure/msal-common v0.0.1-alpha.0 2022-08-02 */
2
+ 'use strict';
3
+ import { __extends } from '../_virtual/_tslib.js';
4
+ import { AuthError } from './AuthError.js';
5
+
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ /**
11
+ * ClientAuthErrorMessage class containing string constants used by error codes and messages.
12
+ */
13
+ var ClientAuthErrorMessage = {
14
+ clientInfoDecodingError: {
15
+ code: "client_info_decoding_error",
16
+ desc: "The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause."
17
+ },
18
+ clientInfoEmptyError: {
19
+ code: "client_info_empty_error",
20
+ desc: "The client info was empty. Please review the trace to determine the root cause."
21
+ },
22
+ tokenParsingError: {
23
+ code: "token_parsing_error",
24
+ desc: "Token cannot be parsed. Please review stack trace to determine root cause."
25
+ },
26
+ nullOrEmptyToken: {
27
+ code: "null_or_empty_token",
28
+ desc: "The token is null or empty. Please review the trace to determine the root cause."
29
+ },
30
+ endpointResolutionError: {
31
+ code: "endpoints_resolution_error",
32
+ desc: "Error: could not resolve endpoints. Please check network and try again."
33
+ },
34
+ networkError: {
35
+ code: "network_error",
36
+ desc: "Network request failed. Please check network trace to determine root cause."
37
+ },
38
+ unableToGetOpenidConfigError: {
39
+ code: "openid_config_error",
40
+ desc: "Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints."
41
+ },
42
+ hashNotDeserialized: {
43
+ code: "hash_not_deserialized",
44
+ desc: "The hash parameters could not be deserialized. Please review the trace to determine the root cause."
45
+ },
46
+ blankGuidGenerated: {
47
+ code: "blank_guid_generated",
48
+ desc: "The guid generated was blank. Please review the trace to determine the root cause."
49
+ },
50
+ invalidStateError: {
51
+ code: "invalid_state",
52
+ desc: "State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState()."
53
+ },
54
+ stateMismatchError: {
55
+ code: "state_mismatch",
56
+ desc: "State mismatch error. Please check your network. Continued requests may cause cache overflow."
57
+ },
58
+ stateNotFoundError: {
59
+ code: "state_not_found",
60
+ desc: "State not found"
61
+ },
62
+ nonceMismatchError: {
63
+ code: "nonce_mismatch",
64
+ desc: "Nonce mismatch error. This may be caused by a race condition in concurrent requests."
65
+ },
66
+ nonceNotFoundError: {
67
+ code: "nonce_not_found",
68
+ desc: "nonce not found"
69
+ },
70
+ noTokensFoundError: {
71
+ code: "no_tokens_found",
72
+ 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()."
73
+ },
74
+ multipleMatchingTokens: {
75
+ code: "multiple_matching_tokens",
76
+ desc: "The cache contains multiple tokens satisfying the requirements. " +
77
+ "Call AcquireToken again providing more requirements such as authority or account."
78
+ },
79
+ multipleMatchingAccounts: {
80
+ code: "multiple_matching_accounts",
81
+ desc: "The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account"
82
+ },
83
+ multipleMatchingAppMetadata: {
84
+ code: "multiple_matching_appMetadata",
85
+ desc: "The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata"
86
+ },
87
+ tokenRequestCannotBeMade: {
88
+ code: "request_cannot_be_made",
89
+ desc: "Token request cannot be made without authorization code or refresh token."
90
+ },
91
+ appendEmptyScopeError: {
92
+ code: "cannot_append_empty_scope",
93
+ desc: "Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info."
94
+ },
95
+ removeEmptyScopeError: {
96
+ code: "cannot_remove_empty_scope",
97
+ desc: "Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info."
98
+ },
99
+ appendScopeSetError: {
100
+ code: "cannot_append_scopeset",
101
+ desc: "Cannot append ScopeSet due to error."
102
+ },
103
+ emptyInputScopeSetError: {
104
+ code: "empty_input_scopeset",
105
+ desc: "Empty input ScopeSet cannot be processed."
106
+ },
107
+ DeviceCodePollingCancelled: {
108
+ code: "device_code_polling_cancelled",
109
+ desc: "Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true."
110
+ },
111
+ DeviceCodeExpired: {
112
+ code: "device_code_expired",
113
+ desc: "Device code is expired."
114
+ },
115
+ DeviceCodeUnknownError: {
116
+ code: "device_code_unknown_error",
117
+ desc: "Device code stopped polling for unknown reasons."
118
+ },
119
+ NoAccountInSilentRequest: {
120
+ code: "no_account_in_silent_request",
121
+ desc: "Please pass an account object, silent flow is not supported without account information"
122
+ },
123
+ invalidCacheRecord: {
124
+ code: "invalid_cache_record",
125
+ desc: "Cache record object was null or undefined."
126
+ },
127
+ invalidCacheEnvironment: {
128
+ code: "invalid_cache_environment",
129
+ desc: "Invalid environment when attempting to create cache entry"
130
+ },
131
+ noAccountFound: {
132
+ code: "no_account_found",
133
+ desc: "No account found in cache for given key."
134
+ },
135
+ CachePluginError: {
136
+ code: "no cache plugin set on CacheManager",
137
+ desc: "ICachePlugin needs to be set before using readFromStorage or writeFromStorage"
138
+ },
139
+ noCryptoObj: {
140
+ code: "no_crypto_object",
141
+ desc: "No crypto object detected. This is required for the following operation: "
142
+ },
143
+ invalidCacheType: {
144
+ code: "invalid_cache_type",
145
+ desc: "Invalid cache type"
146
+ },
147
+ unexpectedAccountType: {
148
+ code: "unexpected_account_type",
149
+ desc: "Unexpected account type."
150
+ },
151
+ unexpectedCredentialType: {
152
+ code: "unexpected_credential_type",
153
+ desc: "Unexpected credential type."
154
+ },
155
+ invalidAssertion: {
156
+ code: "invalid_assertion",
157
+ desc: "Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515"
158
+ },
159
+ invalidClientCredential: {
160
+ code: "invalid_client_credential",
161
+ desc: "Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential"
162
+ },
163
+ tokenRefreshRequired: {
164
+ code: "token_refresh_required",
165
+ 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."
166
+ },
167
+ userTimeoutReached: {
168
+ code: "user_timeout_reached",
169
+ desc: "User defined timeout for device code polling reached",
170
+ },
171
+ tokenClaimsRequired: {
172
+ code: "token_claims_cnf_required_for_signedjwt",
173
+ desc: "Cannot generate a POP jwt if the token_claims are not populated"
174
+ },
175
+ noAuthorizationCodeFromServer: {
176
+ code: "authorization_code_missing_from_server_response",
177
+ desc: "Server response does not contain an authorization code to proceed"
178
+ },
179
+ noAzureRegionDetected: {
180
+ code: "no_azure_region_detected",
181
+ desc: "No azure region was detected and no fallback was made available"
182
+ },
183
+ accessTokenEntityNullError: {
184
+ code: "access_token_entity_null",
185
+ desc: "Access token entity is null, please check logs and cache to ensure a valid access token is present."
186
+ },
187
+ bindingKeyNotRemovedError: {
188
+ code: "binding_key_not_removed",
189
+ desc: "Could not remove the credential's binding key from storage."
190
+ },
191
+ logoutNotSupported: {
192
+ code: "end_session_endpoint_not_supported",
193
+ desc: "Provided authority does not support logout."
194
+ },
195
+ keyIdMissing: {
196
+ code: "key_id_missing",
197
+ 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."
198
+ }
199
+ };
200
+ /**
201
+ * Error thrown when there is an error in the client code running on the browser.
202
+ */
203
+ var ClientAuthError = /** @class */ (function (_super) {
204
+ __extends(ClientAuthError, _super);
205
+ function ClientAuthError(errorCode, errorMessage) {
206
+ var _this = _super.call(this, errorCode, errorMessage) || this;
207
+ _this.name = "ClientAuthError";
208
+ Object.setPrototypeOf(_this, ClientAuthError.prototype);
209
+ return _this;
210
+ }
211
+ /**
212
+ * Creates an error thrown when client info object doesn't decode correctly.
213
+ * @param caughtError
214
+ */
215
+ ClientAuthError.createClientInfoDecodingError = function (caughtError) {
216
+ return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + " Failed with error: " + caughtError);
217
+ };
218
+ /**
219
+ * Creates an error thrown if the client info is empty.
220
+ * @param rawClientInfo
221
+ */
222
+ ClientAuthError.createClientInfoEmptyError = function () {
223
+ return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, "" + ClientAuthErrorMessage.clientInfoEmptyError.desc);
224
+ };
225
+ /**
226
+ * Creates an error thrown when the id token extraction errors out.
227
+ * @param err
228
+ */
229
+ ClientAuthError.createTokenParsingError = function (caughtExtractionError) {
230
+ return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + " Failed with error: " + caughtExtractionError);
231
+ };
232
+ /**
233
+ * Creates an error thrown when the id token string is null or empty.
234
+ * @param invalidRawTokenString
235
+ */
236
+ ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {
237
+ return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + " Raw Token Value: " + invalidRawTokenString);
238
+ };
239
+ /**
240
+ * Creates an error thrown when the endpoint discovery doesn't complete correctly.
241
+ */
242
+ ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {
243
+ return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + " Detail: " + errDetail);
244
+ };
245
+ /**
246
+ * Creates an error thrown when the fetch client throws
247
+ */
248
+ ClientAuthError.createNetworkError = function (endpoint, errDetail) {
249
+ return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + " | Fetch client threw: " + errDetail + " | Attempted to reach: " + endpoint.split("?")[0]);
250
+ };
251
+ /**
252
+ * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data
253
+ */
254
+ ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {
255
+ return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + " Attempted to retrieve endpoints from: " + errDetail);
256
+ };
257
+ /**
258
+ * Creates an error thrown when the hash cannot be deserialized.
259
+ * @param hashParamObj
260
+ */
261
+ ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {
262
+ return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + " Given Object: " + hashParamObj);
263
+ };
264
+ /**
265
+ * Creates an error thrown when the state cannot be parsed.
266
+ * @param invalidState
267
+ */
268
+ ClientAuthError.createInvalidStateError = function (invalidState, errorString) {
269
+ return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + " Invalid State: " + invalidState + ", Root Err: " + errorString);
270
+ };
271
+ /**
272
+ * Creates an error thrown when two states do not match.
273
+ */
274
+ ClientAuthError.createStateMismatchError = function () {
275
+ return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);
276
+ };
277
+ /**
278
+ * Creates an error thrown when the state is not present
279
+ * @param missingState
280
+ */
281
+ ClientAuthError.createStateNotFoundError = function (missingState) {
282
+ return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + ": " + missingState);
283
+ };
284
+ /**
285
+ * Creates an error thrown when the nonce does not match.
286
+ */
287
+ ClientAuthError.createNonceMismatchError = function () {
288
+ return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);
289
+ };
290
+ /**
291
+ * Creates an error thrown when the mnonce is not present
292
+ * @param missingNonce
293
+ */
294
+ ClientAuthError.createNonceNotFoundError = function (missingNonce) {
295
+ return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + ": " + missingNonce);
296
+ };
297
+ /**
298
+ * Throws error when multiple tokens are in cache.
299
+ */
300
+ ClientAuthError.createMultipleMatchingTokensInCacheError = function () {
301
+ return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + ".");
302
+ };
303
+ /**
304
+ * Throws error when multiple accounts are in cache for the given params
305
+ */
306
+ ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {
307
+ return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);
308
+ };
309
+ /**
310
+ * Throws error when multiple appMetada are in cache for the given clientId.
311
+ */
312
+ ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {
313
+ return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);
314
+ };
315
+ /**
316
+ * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.
317
+ */
318
+ ClientAuthError.createTokenRequestCannotBeMadeError = function () {
319
+ return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);
320
+ };
321
+ /**
322
+ * Throws error when attempting to append a null, undefined or empty scope to a set
323
+ * @param givenScope
324
+ */
325
+ ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {
326
+ return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + " Given Scope: " + givenScope);
327
+ };
328
+ /**
329
+ * Throws error when attempting to append a null, undefined or empty scope to a set
330
+ * @param givenScope
331
+ */
332
+ ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {
333
+ return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + " Given Scope: " + givenScope);
334
+ };
335
+ /**
336
+ * Throws error when attempting to append null or empty ScopeSet.
337
+ * @param appendError
338
+ */
339
+ ClientAuthError.createAppendScopeSetError = function (appendError) {
340
+ return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + " Detail Error: " + appendError);
341
+ };
342
+ /**
343
+ * Throws error if ScopeSet is null or undefined.
344
+ * @param givenScopeSet
345
+ */
346
+ ClientAuthError.createEmptyInputScopeSetError = function () {
347
+ return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, "" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);
348
+ };
349
+ /**
350
+ * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow
351
+ */
352
+ ClientAuthError.createDeviceCodeCancelledError = function () {
353
+ return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, "" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);
354
+ };
355
+ /**
356
+ * Throws error if device code is expired
357
+ */
358
+ ClientAuthError.createDeviceCodeExpiredError = function () {
359
+ return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, "" + ClientAuthErrorMessage.DeviceCodeExpired.desc);
360
+ };
361
+ /**
362
+ * Throws error if device code is expired
363
+ */
364
+ ClientAuthError.createDeviceCodeUnknownError = function () {
365
+ return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, "" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);
366
+ };
367
+ /**
368
+ * Throws error when silent requests are made without an account object
369
+ */
370
+ ClientAuthError.createNoAccountInSilentRequestError = function () {
371
+ return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, "" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);
372
+ };
373
+ /**
374
+ * Throws error when cache record is null or undefined.
375
+ */
376
+ ClientAuthError.createNullOrUndefinedCacheRecord = function () {
377
+ return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);
378
+ };
379
+ /**
380
+ * Throws error when provided environment is not part of the CloudDiscoveryMetadata object
381
+ */
382
+ ClientAuthError.createInvalidCacheEnvironmentError = function () {
383
+ return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);
384
+ };
385
+ /**
386
+ * Throws error when account is not found in cache.
387
+ */
388
+ ClientAuthError.createNoAccountFoundError = function () {
389
+ return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);
390
+ };
391
+ /**
392
+ * Throws error if ICachePlugin not set on CacheManager.
393
+ */
394
+ ClientAuthError.createCachePluginError = function () {
395
+ return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, "" + ClientAuthErrorMessage.CachePluginError.desc);
396
+ };
397
+ /**
398
+ * Throws error if crypto object not found.
399
+ * @param operationName
400
+ */
401
+ ClientAuthError.createNoCryptoObjectError = function (operationName) {
402
+ return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, "" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);
403
+ };
404
+ /**
405
+ * Throws error if cache type is invalid.
406
+ */
407
+ ClientAuthError.createInvalidCacheTypeError = function () {
408
+ return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, "" + ClientAuthErrorMessage.invalidCacheType.desc);
409
+ };
410
+ /**
411
+ * Throws error if unexpected account type.
412
+ */
413
+ ClientAuthError.createUnexpectedAccountTypeError = function () {
414
+ return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, "" + ClientAuthErrorMessage.unexpectedAccountType.desc);
415
+ };
416
+ /**
417
+ * Throws error if unexpected credential type.
418
+ */
419
+ ClientAuthError.createUnexpectedCredentialTypeError = function () {
420
+ return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, "" + ClientAuthErrorMessage.unexpectedCredentialType.desc);
421
+ };
422
+ /**
423
+ * Throws error if client assertion is not valid.
424
+ */
425
+ ClientAuthError.createInvalidAssertionError = function () {
426
+ return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, "" + ClientAuthErrorMessage.invalidAssertion.desc);
427
+ };
428
+ /**
429
+ * Throws error if client assertion is not valid.
430
+ */
431
+ ClientAuthError.createInvalidCredentialError = function () {
432
+ return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, "" + ClientAuthErrorMessage.invalidClientCredential.desc);
433
+ };
434
+ /**
435
+ * Throws error if token cannot be retrieved from cache due to refresh being required.
436
+ */
437
+ ClientAuthError.createRefreshRequiredError = function () {
438
+ return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);
439
+ };
440
+ /**
441
+ * Throws error if the user defined timeout is reached.
442
+ */
443
+ ClientAuthError.createUserTimeoutReachedError = function () {
444
+ return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);
445
+ };
446
+ /*
447
+ * Throws error if token claims are not populated for a signed jwt generation
448
+ */
449
+ ClientAuthError.createTokenClaimsRequiredError = function () {
450
+ return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);
451
+ };
452
+ /**
453
+ * Throws error when the authorization code is missing from the server response
454
+ */
455
+ ClientAuthError.createNoAuthCodeInServerResponseError = function () {
456
+ return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);
457
+ };
458
+ ClientAuthError.createBindingKeyNotRemovedError = function () {
459
+ return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);
460
+ };
461
+ /**
462
+ * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint
463
+ */
464
+ ClientAuthError.createLogoutNotSupportedError = function () {
465
+ return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);
466
+ };
467
+ /**
468
+ * Create an error when kid attribute is missing from a PoP token's cache record
469
+ */
470
+ ClientAuthError.createKeyIdMissingError = function () {
471
+ return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);
472
+ };
473
+ return ClientAuthError;
474
+ }(AuthError));
475
+
476
+ export { ClientAuthError, ClientAuthErrorMessage };
477
+ //# sourceMappingURL=ClientAuthError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientAuthError.js","sources":["../../src/error/ClientAuthError.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"./AuthError\";\n\n/**\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const ClientAuthErrorMessage = {\n clientInfoDecodingError: {\n code: \"client_info_decoding_error\",\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\n },\n clientInfoEmptyError: {\n code: \"client_info_empty_error\",\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\n },\n tokenParsingError: {\n code: \"token_parsing_error\",\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\n },\n nullOrEmptyToken: {\n code: \"null_or_empty_token\",\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\n },\n endpointResolutionError: {\n code: \"endpoints_resolution_error\",\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\n },\n networkError: {\n code: \"network_error\",\n desc: \"Network request failed. Please check network trace to determine root cause.\"\n },\n unableToGetOpenidConfigError: {\n code: \"openid_config_error\",\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\n },\n hashNotDeserialized: {\n code: \"hash_not_deserialized\",\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\n },\n blankGuidGenerated: {\n code: \"blank_guid_generated\",\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\n },\n invalidStateError: {\n code: \"invalid_state\",\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\n },\n stateMismatchError: {\n code: \"state_mismatch\",\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\n },\n stateNotFoundError: {\n code: \"state_not_found\",\n desc: \"State not found\"\n },\n nonceMismatchError: {\n code: \"nonce_mismatch\",\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\n },\n nonceNotFoundError: {\n code: \"nonce_not_found\",\n desc: \"nonce not found\"\n },\n noTokensFoundError: {\n code: \"no_tokens_found\",\n 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().\"\n },\n multipleMatchingTokens: {\n code: \"multiple_matching_tokens\",\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\n \"Call AcquireToken again providing more requirements such as authority or account.\"\n },\n multipleMatchingAccounts: {\n code: \"multiple_matching_accounts\",\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\n },\n multipleMatchingAppMetadata: {\n code: \"multiple_matching_appMetadata\",\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\n },\n tokenRequestCannotBeMade: {\n code: \"request_cannot_be_made\",\n desc: \"Token request cannot be made without authorization code or refresh token.\"\n },\n appendEmptyScopeError: {\n code: \"cannot_append_empty_scope\",\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\n },\n removeEmptyScopeError: {\n code: \"cannot_remove_empty_scope\",\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\n },\n appendScopeSetError: {\n code: \"cannot_append_scopeset\",\n desc: \"Cannot append ScopeSet due to error.\"\n },\n emptyInputScopeSetError: {\n code: \"empty_input_scopeset\",\n desc: \"Empty input ScopeSet cannot be processed.\"\n },\n DeviceCodePollingCancelled: {\n code: \"device_code_polling_cancelled\",\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\n },\n DeviceCodeExpired: {\n code: \"device_code_expired\",\n desc: \"Device code is expired.\"\n },\n DeviceCodeUnknownError: {\n code: \"device_code_unknown_error\",\n desc: \"Device code stopped polling for unknown reasons.\"\n },\n NoAccountInSilentRequest: {\n code: \"no_account_in_silent_request\",\n desc: \"Please pass an account object, silent flow is not supported without account information\"\n },\n invalidCacheRecord: {\n code: \"invalid_cache_record\",\n desc: \"Cache record object was null or undefined.\"\n },\n invalidCacheEnvironment: {\n code: \"invalid_cache_environment\",\n desc: \"Invalid environment when attempting to create cache entry\"\n },\n noAccountFound: {\n code: \"no_account_found\",\n desc: \"No account found in cache for given key.\"\n },\n CachePluginError: {\n code: \"no cache plugin set on CacheManager\",\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\n },\n noCryptoObj: {\n code: \"no_crypto_object\",\n desc: \"No crypto object detected. This is required for the following operation: \"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n unexpectedAccountType: {\n code: \"unexpected_account_type\",\n desc: \"Unexpected account type.\"\n },\n unexpectedCredentialType: {\n code: \"unexpected_credential_type\",\n desc: \"Unexpected credential type.\"\n },\n invalidAssertion: {\n code: \"invalid_assertion\",\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\n },\n invalidClientCredential: {\n code: \"invalid_client_credential\",\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\n },\n tokenRefreshRequired: {\n code: \"token_refresh_required\",\n 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.\"\n },\n userTimeoutReached: {\n code: \"user_timeout_reached\",\n desc: \"User defined timeout for device code polling reached\",\n },\n tokenClaimsRequired: {\n code: \"token_claims_cnf_required_for_signedjwt\",\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\n },\n noAuthorizationCodeFromServer: {\n code: \"authorization_code_missing_from_server_response\",\n desc: \"Server response does not contain an authorization code to proceed\"\n },\n noAzureRegionDetected: {\n code: \"no_azure_region_detected\",\n desc: \"No azure region was detected and no fallback was made available\"\n },\n accessTokenEntityNullError: {\n code: \"access_token_entity_null\",\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\n },\n bindingKeyNotRemovedError: {\n code: \"binding_key_not_removed\",\n desc: \"Could not remove the credential's binding key from storage.\"\n },\n logoutNotSupported: {\n code: \"end_session_endpoint_not_supported\",\n desc: \"Provided authority does not support logout.\"\n },\n keyIdMissing: {\n code: \"key_id_missing\",\n 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.\"\n }\n};\n\n/**\n * Error thrown when there is an error in the client code running on the browser.\n */\nexport class ClientAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"ClientAuthError\";\n\n Object.setPrototypeOf(this, ClientAuthError.prototype);\n }\n\n /**\n * Creates an error thrown when client info object doesn't decode correctly.\n * @param caughtError\n */\n static createClientInfoDecodingError(caughtError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code,\n `${ClientAuthErrorMessage.clientInfoDecodingError.desc} Failed with error: ${caughtError}`);\n }\n\n /**\n * Creates an error thrown if the client info is empty.\n * @param rawClientInfo\n */\n static createClientInfoEmptyError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code,\n `${ClientAuthErrorMessage.clientInfoEmptyError.desc}`);\n }\n\n /**\n * Creates an error thrown when the id token extraction errors out.\n * @param err\n */\n static createTokenParsingError(caughtExtractionError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code,\n `${ClientAuthErrorMessage.tokenParsingError.desc} Failed with error: ${caughtExtractionError}`);\n }\n\n /**\n * Creates an error thrown when the id token string is null or empty.\n * @param invalidRawTokenString\n */\n static createTokenNullOrEmptyError(invalidRawTokenString: string) : ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code,\n `${ClientAuthErrorMessage.nullOrEmptyToken.desc} Raw Token Value: ${invalidRawTokenString}`);\n }\n\n /**\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\n */\n static createEndpointDiscoveryIncompleteError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code,\n `${ClientAuthErrorMessage.endpointResolutionError.desc} Detail: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the fetch client throws\n */\n static createNetworkError(endpoint: string, errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code,\n `${ClientAuthErrorMessage.networkError.desc} | Fetch client threw: ${errDetail} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\n */\n static createUnableToGetOpenidConfigError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code,\n `${ClientAuthErrorMessage.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the hash cannot be deserialized.\n * @param hashParamObj\n */\n static createHashNotDeserializedError(hashParamObj: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code,\n `${ClientAuthErrorMessage.hashNotDeserialized.desc} Given Object: ${hashParamObj}`);\n }\n\n /**\n * Creates an error thrown when the state cannot be parsed.\n * @param invalidState\n */\n static createInvalidStateError(invalidState: string, errorString?: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code,\n `${ClientAuthErrorMessage.invalidStateError.desc} Invalid State: ${invalidState}, Root Err: ${errorString}`);\n }\n\n /**\n * Creates an error thrown when two states do not match.\n */\n static createStateMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code,\n ClientAuthErrorMessage.stateMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when the state is not present\n * @param missingState\n */\n static createStateNotFoundError(missingState: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code,\n `${ClientAuthErrorMessage.stateNotFoundError.desc}: ${missingState}`);\n }\n\n /**\n * Creates an error thrown when the nonce does not match.\n */\n static createNonceMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code,\n ClientAuthErrorMessage.nonceMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when the mnonce is not present\n * @param missingNonce\n */\n static createNonceNotFoundError(missingNonce: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code,\n `${ClientAuthErrorMessage.nonceNotFoundError.desc}: ${missingNonce}`);\n }\n\n /**\n * Throws error when multiple tokens are in cache.\n */\n static createMultipleMatchingTokensInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code,\n `${ClientAuthErrorMessage.multipleMatchingTokens.desc}.`);\n }\n\n /**\n * Throws error when multiple accounts are in cache for the given params\n */\n static createMultipleMatchingAccountsInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code,\n ClientAuthErrorMessage.multipleMatchingAccounts.desc);\n }\n\n /**\n * Throws error when multiple appMetada are in cache for the given clientId.\n */\n static createMultipleMatchingAppMetadataInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code,\n ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\n }\n\n /**\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\n */\n static createTokenRequestCannotBeMadeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createAppendEmptyScopeToSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, `${ClientAuthErrorMessage.appendEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createRemoveEmptyScopeFromSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, `${ClientAuthErrorMessage.removeEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append null or empty ScopeSet.\n * @param appendError\n */\n static createAppendScopeSetError(appendError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, `${ClientAuthErrorMessage.appendScopeSetError.desc} Detail Error: ${appendError}`);\n }\n\n /**\n * Throws error if ScopeSet is null or undefined.\n * @param givenScopeSet\n */\n static createEmptyInputScopeSetError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, `${ClientAuthErrorMessage.emptyInputScopeSetError.desc}`);\n }\n\n /**\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\n */\n static createDeviceCodeCancelledError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, `${ClientAuthErrorMessage.DeviceCodePollingCancelled.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeExpiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, `${ClientAuthErrorMessage.DeviceCodeExpired.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeUnknownError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, `${ClientAuthErrorMessage.DeviceCodeUnknownError.desc}`);\n }\n\n /**\n * Throws error when silent requests are made without an account object\n */\n static createNoAccountInSilentRequestError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, `${ClientAuthErrorMessage.NoAccountInSilentRequest.desc}`);\n }\n\n /**\n * Throws error when cache record is null or undefined.\n */\n static createNullOrUndefinedCacheRecord(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\n }\n\n /**\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\n */\n static createInvalidCacheEnvironmentError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\n }\n\n /**\n * Throws error when account is not found in cache.\n */\n static createNoAccountFoundError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\n }\n\n /**\n * Throws error if ICachePlugin not set on CacheManager.\n */\n static createCachePluginError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, `${ClientAuthErrorMessage.CachePluginError.desc}`);\n }\n\n /**\n * Throws error if crypto object not found.\n * @param operationName\n */\n static createNoCryptoObjectError(operationName: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, `${ClientAuthErrorMessage.noCryptoObj.desc}${operationName}`);\n }\n\n /**\n * Throws error if cache type is invalid.\n */\n static createInvalidCacheTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, `${ClientAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Throws error if unexpected account type.\n */\n static createUnexpectedAccountTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, `${ClientAuthErrorMessage.unexpectedAccountType.desc}`);\n }\n\n /**\n * Throws error if unexpected credential type.\n */\n static createUnexpectedCredentialTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, `${ClientAuthErrorMessage.unexpectedCredentialType.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidAssertionError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, `${ClientAuthErrorMessage.invalidAssertion.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidCredentialError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, `${ClientAuthErrorMessage.invalidClientCredential.desc}`);\n }\n\n /**\n * Throws error if token cannot be retrieved from cache due to refresh being required.\n */\n static createRefreshRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\n }\n\n /**\n * Throws error if the user defined timeout is reached.\n */\n static createUserTimeoutReachedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\n }\n\n /*\n * Throws error if token claims are not populated for a signed jwt generation\n */\n static createTokenClaimsRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\n }\n\n /**\n * Throws error when the authorization code is missing from the server response\n */\n static createNoAuthCodeInServerResponseError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\n }\n\n static createBindingKeyNotRemovedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\n }\n\n /**\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\n */\n static createLogoutNotSupportedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\n }\n\n /**\n * Create an error when kid attribute is missing from a PoP token's cache record\n */\n static createKeyIdMissingError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);\n }\n}\n"],"names":[],"mappings":"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"}