@azure/msal-common 14.0.2 → 14.1.0-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 (399) hide show
  1. package/dist/account/AccountInfo.d.ts +32 -32
  2. package/dist/account/AuthToken.d.ts +17 -20
  3. package/dist/account/AuthToken.d.ts.map +1 -1
  4. package/dist/account/AuthToken.mjs +61 -51
  5. package/dist/account/AuthToken.mjs.map +1 -1
  6. package/dist/account/CcsCredential.d.ts +9 -9
  7. package/dist/account/CcsCredential.mjs +8 -8
  8. package/dist/account/CcsCredential.mjs.map +1 -1
  9. package/dist/account/ClientCredentials.d.ts +14 -14
  10. package/dist/account/ClientInfo.d.ts +19 -19
  11. package/dist/account/ClientInfo.d.ts.map +1 -1
  12. package/dist/account/ClientInfo.mjs +39 -39
  13. package/dist/account/ClientInfo.mjs.map +1 -1
  14. package/dist/account/TokenClaims.d.ts +65 -65
  15. package/dist/authority/Authority.d.ts +235 -235
  16. package/dist/authority/Authority.d.ts.map +1 -1
  17. package/dist/authority/Authority.mjs +743 -765
  18. package/dist/authority/Authority.mjs.map +1 -1
  19. package/dist/authority/AuthorityFactory.d.ts +31 -31
  20. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  21. package/dist/authority/AuthorityFactory.mjs +52 -51
  22. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  23. package/dist/authority/AuthorityMetadata.d.ts +623 -623
  24. package/dist/authority/AuthorityMetadata.mjs +884 -884
  25. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  26. package/dist/authority/AuthorityOptions.d.ts +21 -21
  27. package/dist/authority/AuthorityOptions.mjs +18 -18
  28. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  29. package/dist/authority/AuthorityType.d.ts +10 -10
  30. package/dist/authority/AuthorityType.mjs +13 -13
  31. package/dist/authority/AuthorityType.mjs.map +1 -1
  32. package/dist/authority/AzureRegion.d.ts +1 -1
  33. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  34. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  35. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  36. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  37. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
  38. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  39. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  40. package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
  41. package/dist/authority/ImdsOptions.d.ts +5 -5
  42. package/dist/authority/OIDCOptions.d.ts +8 -8
  43. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  44. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  45. package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
  46. package/dist/authority/ProtocolMode.d.ts +8 -8
  47. package/dist/authority/ProtocolMode.mjs +11 -11
  48. package/dist/authority/ProtocolMode.mjs.map +1 -1
  49. package/dist/authority/RegionDiscovery.d.ts +32 -30
  50. package/dist/authority/RegionDiscovery.d.ts.map +1 -1
  51. package/dist/authority/RegionDiscovery.mjs +107 -108
  52. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  53. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  54. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  55. package/dist/cache/CacheManager.d.ts +446 -446
  56. package/dist/cache/CacheManager.d.ts.map +1 -1
  57. package/dist/cache/CacheManager.mjs +1001 -1025
  58. package/dist/cache/CacheManager.mjs.map +1 -1
  59. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  60. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  61. package/dist/cache/entities/AccessTokenEntity.mjs +112 -114
  62. package/dist/cache/entities/AccessTokenEntity.mjs.map +1 -1
  63. package/dist/cache/entities/AccountEntity.d.ts +101 -101
  64. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  65. package/dist/cache/entities/AccountEntity.mjs +222 -223
  66. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  67. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  68. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  69. package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
  70. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  71. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  72. package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
  73. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  74. package/dist/cache/entities/CacheRecord.mjs +14 -14
  75. package/dist/cache/entities/CacheRecord.mjs.map +1 -1
  76. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  77. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  78. package/dist/cache/entities/CredentialEntity.mjs +138 -137
  79. package/dist/cache/entities/CredentialEntity.mjs.map +1 -1
  80. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  81. package/dist/cache/entities/IdTokenEntity.mjs +56 -56
  82. package/dist/cache/entities/IdTokenEntity.mjs.map +1 -1
  83. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  84. package/dist/cache/entities/RefreshTokenEntity.mjs +59 -59
  85. package/dist/cache/entities/RefreshTokenEntity.mjs.map +1 -1
  86. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  87. package/dist/cache/entities/ServerTelemetryEntity.mjs +27 -27
  88. package/dist/cache/entities/ServerTelemetryEntity.mjs.map +1 -1
  89. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  90. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  91. package/dist/cache/entities/ThrottlingEntity.mjs.map +1 -1
  92. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  93. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  94. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  95. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  96. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  97. package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
  98. package/dist/cache/utils/CacheTypes.d.ts +69 -69
  99. package/dist/client/AuthorizationCodeClient.d.ts +73 -73
  100. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  101. package/dist/client/AuthorizationCodeClient.mjs +412 -440
  102. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  103. package/dist/client/BaseClient.d.ts +51 -51
  104. package/dist/client/BaseClient.d.ts.map +1 -1
  105. package/dist/client/BaseClient.mjs +101 -94
  106. package/dist/client/BaseClient.mjs.map +1 -1
  107. package/dist/client/RefreshTokenClient.d.ts +35 -35
  108. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  109. package/dist/client/RefreshTokenClient.mjs +185 -243
  110. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  111. package/dist/client/SilentFlowClient.d.ts +26 -25
  112. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  113. package/dist/client/SilentFlowClient.mjs +128 -104
  114. package/dist/client/SilentFlowClient.mjs.map +1 -1
  115. package/dist/config/AppTokenProvider.d.ts +38 -38
  116. package/dist/config/ClientConfiguration.d.ts +150 -150
  117. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  118. package/dist/config/ClientConfiguration.mjs +99 -100
  119. package/dist/config/ClientConfiguration.mjs.map +1 -1
  120. package/dist/crypto/ICrypto.d.ts +62 -62
  121. package/dist/crypto/ICrypto.d.ts.map +1 -1
  122. package/dist/crypto/ICrypto.mjs +35 -43
  123. package/dist/crypto/ICrypto.mjs.map +1 -1
  124. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  125. package/dist/crypto/JoseHeader.d.ts +22 -22
  126. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  127. package/dist/crypto/JoseHeader.mjs +39 -38
  128. package/dist/crypto/JoseHeader.mjs.map +1 -1
  129. package/dist/crypto/PopTokenGenerator.d.ts +60 -59
  130. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  131. package/dist/crypto/PopTokenGenerator.mjs +83 -83
  132. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  133. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  134. package/dist/error/AuthError.d.ts +44 -47
  135. package/dist/error/AuthError.d.ts.map +1 -1
  136. package/dist/error/AuthError.mjs +50 -52
  137. package/dist/error/AuthError.mjs.map +1 -1
  138. package/dist/error/AuthErrorCodes.d.ts +6 -0
  139. package/dist/error/AuthErrorCodes.d.ts.map +1 -0
  140. package/dist/error/AuthErrorCodes.mjs +14 -0
  141. package/dist/error/AuthErrorCodes.mjs.map +1 -0
  142. package/dist/error/ClientAuthError.d.ts +232 -412
  143. package/dist/error/ClientAuthError.d.ts.map +1 -1
  144. package/dist/error/ClientAuthError.mjs +248 -520
  145. package/dist/error/ClientAuthError.mjs.map +1 -1
  146. package/dist/error/ClientAuthErrorCodes.d.ts +44 -0
  147. package/dist/error/ClientAuthErrorCodes.d.ts.map +1 -0
  148. package/dist/error/ClientAuthErrorCodes.mjs +52 -0
  149. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -0
  150. package/dist/error/ClientConfigurationError.d.ts +128 -222
  151. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  152. package/dist/error/ClientConfigurationError.mjs +140 -281
  153. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  154. package/dist/error/ClientConfigurationErrorCodes.d.ts +23 -0
  155. package/dist/error/ClientConfigurationErrorCodes.d.ts.map +1 -0
  156. package/dist/error/ClientConfigurationErrorCodes.mjs +31 -0
  157. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -0
  158. package/dist/error/InteractionRequiredAuthError.d.ts +57 -59
  159. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  160. package/dist/error/InteractionRequiredAuthError.mjs +80 -79
  161. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  162. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -0
  163. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -0
  164. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +16 -0
  165. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -0
  166. package/dist/error/JoseHeaderError.d.ts +15 -28
  167. package/dist/error/JoseHeaderError.d.ts.map +1 -1
  168. package/dist/error/JoseHeaderError.mjs +24 -40
  169. package/dist/error/JoseHeaderError.mjs.map +1 -1
  170. package/dist/error/JoseHeaderErrorCodes.d.ts +3 -0
  171. package/dist/error/JoseHeaderErrorCodes.d.ts.map +1 -0
  172. package/dist/error/JoseHeaderErrorCodes.mjs +11 -0
  173. package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -0
  174. package/dist/error/ServerError.d.ts +7 -7
  175. package/dist/error/ServerError.mjs +14 -14
  176. package/dist/error/ServerError.mjs.map +1 -1
  177. package/dist/index.cjs +8727 -8978
  178. package/dist/index.cjs.map +1 -1
  179. package/dist/index.d.ts +96 -96
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.mjs +17 -7
  182. package/dist/index.mjs.map +1 -1
  183. package/dist/logger/Logger.d.ts +95 -95
  184. package/dist/logger/Logger.d.ts.map +1 -1
  185. package/dist/logger/Logger.mjs +188 -198
  186. package/dist/logger/Logger.mjs.map +1 -1
  187. package/dist/network/INetworkModule.d.ts +29 -29
  188. package/dist/network/INetworkModule.d.ts.map +1 -1
  189. package/dist/network/INetworkModule.mjs +14 -15
  190. package/dist/network/INetworkModule.mjs.map +1 -1
  191. package/dist/network/NetworkManager.d.ts +33 -33
  192. package/dist/network/NetworkManager.d.ts.map +1 -1
  193. package/dist/network/NetworkManager.mjs +36 -35
  194. package/dist/network/NetworkManager.mjs.map +1 -1
  195. package/dist/network/RequestThumbprint.d.ts +16 -16
  196. package/dist/network/ThrottlingUtils.d.ts +42 -42
  197. package/dist/network/ThrottlingUtils.mjs +95 -95
  198. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  199. package/dist/packageMetadata.d.ts +2 -2
  200. package/dist/packageMetadata.mjs +4 -4
  201. package/dist/packageMetadata.mjs.map +1 -1
  202. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  203. package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -1
  204. package/dist/request/AuthenticationHeaderParser.mjs +58 -57
  205. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  206. package/dist/request/BaseAuthRequest.d.ts +40 -40
  207. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  208. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  209. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  210. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  211. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  212. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  213. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  214. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  215. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  216. package/dist/request/NativeRequest.d.ts +19 -19
  217. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  218. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  219. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  220. package/dist/request/RequestParameterBuilder.mjs +383 -383
  221. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  222. package/dist/request/RequestValidator.d.ts +33 -33
  223. package/dist/request/RequestValidator.d.ts.map +1 -1
  224. package/dist/request/RequestValidator.mjs +83 -84
  225. package/dist/request/RequestValidator.mjs.map +1 -1
  226. package/dist/request/ScopeSet.d.ts +88 -88
  227. package/dist/request/ScopeSet.d.ts.map +1 -1
  228. package/dist/request/ScopeSet.mjs +201 -199
  229. package/dist/request/ScopeSet.mjs.map +1 -1
  230. package/dist/request/StoreInCache.d.ts +8 -8
  231. package/dist/response/AuthenticationResult.d.ts +41 -39
  232. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  233. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  234. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  235. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  236. package/dist/response/IMDSBadResponse.d.ts +4 -4
  237. package/dist/response/ResponseHandler.d.ts +67 -66
  238. package/dist/response/ResponseHandler.d.ts.map +1 -1
  239. package/dist/response/ResponseHandler.mjs +316 -297
  240. package/dist/response/ResponseHandler.mjs.map +1 -1
  241. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  242. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -44
  243. package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
  244. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  245. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  246. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  247. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  248. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  249. package/dist/telemetry/performance/PerformanceClient.mjs +409 -408
  250. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  251. package/dist/telemetry/performance/PerformanceEvent.d.ts +433 -426
  252. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  253. package/dist/telemetry/performance/PerformanceEvent.mjs +234 -226
  254. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  255. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  256. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  257. package/dist/telemetry/performance/StubPerformanceClient.mjs +77 -57
  258. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  259. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  260. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  261. package/dist/telemetry/server/ServerTelemetryManager.mjs +197 -198
  262. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  263. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  264. package/dist/url/IUri.d.ts +12 -12
  265. package/dist/url/UrlString.d.ts +83 -83
  266. package/dist/url/UrlString.d.ts.map +1 -1
  267. package/dist/url/UrlString.mjs +283 -283
  268. package/dist/url/UrlString.mjs.map +1 -1
  269. package/dist/utils/Constants.d.ts +366 -353
  270. package/dist/utils/Constants.d.ts.map +1 -1
  271. package/dist/utils/Constants.mjs +377 -360
  272. package/dist/utils/Constants.mjs.map +1 -1
  273. package/dist/utils/FunctionWrappers.d.ts +28 -0
  274. package/dist/utils/FunctionWrappers.d.ts.map +1 -0
  275. package/dist/utils/FunctionWrappers.mjs +90 -0
  276. package/dist/utils/FunctionWrappers.mjs.map +1 -0
  277. package/dist/utils/MsalTypes.d.ts +6 -6
  278. package/dist/utils/ProtocolUtils.d.ts +42 -42
  279. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  280. package/dist/utils/ProtocolUtils.mjs +71 -73
  281. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  282. package/dist/utils/StringUtils.d.ts +40 -53
  283. package/dist/utils/StringUtils.d.ts.map +1 -1
  284. package/dist/utils/StringUtils.mjs +95 -126
  285. package/dist/utils/StringUtils.mjs.map +1 -1
  286. package/dist/utils/TimeUtils.d.ts +27 -27
  287. package/dist/utils/TimeUtils.mjs +45 -45
  288. package/dist/utils/TimeUtils.mjs.map +1 -1
  289. package/package.json +6 -4
  290. package/src/account/AccountInfo.ts +44 -0
  291. package/src/account/AuthToken.ts +71 -0
  292. package/src/account/CcsCredential.ts +16 -0
  293. package/src/account/ClientCredentials.ts +20 -0
  294. package/src/account/ClientInfo.ts +67 -0
  295. package/src/account/TokenClaims.ts +70 -0
  296. package/src/authority/Authority.ts +1207 -0
  297. package/src/authority/AuthorityFactory.ts +118 -0
  298. package/src/authority/AuthorityMetadata.ts +953 -0
  299. package/src/authority/AuthorityOptions.ts +40 -0
  300. package/src/authority/AuthorityType.ts +15 -0
  301. package/src/authority/AzureRegion.ts +7 -0
  302. package/src/authority/AzureRegionConfiguration.ts +16 -0
  303. package/src/authority/CloudDiscoveryMetadata.ts +10 -0
  304. package/src/authority/CloudInstanceDiscoveryErrorResponse.ts +26 -0
  305. package/src/authority/CloudInstanceDiscoveryResponse.ts +21 -0
  306. package/src/authority/ImdsOptions.ts +10 -0
  307. package/src/authority/OIDCOptions.ts +14 -0
  308. package/src/authority/OpenIdConfigResponse.ts +24 -0
  309. package/src/authority/ProtocolMode.ts +13 -0
  310. package/src/authority/RegionDiscovery.ts +196 -0
  311. package/src/authority/RegionDiscoveryMetadata.ts +15 -0
  312. package/src/broker/nativeBroker/INativeBrokerPlugin.ts +29 -0
  313. package/src/cache/CacheManager.ts +1579 -0
  314. package/src/cache/entities/AccessTokenEntity.ts +167 -0
  315. package/src/cache/entities/AccountEntity.ts +314 -0
  316. package/src/cache/entities/AppMetadataEntity.ts +91 -0
  317. package/src/cache/entities/AuthorityMetadataEntity.ts +112 -0
  318. package/src/cache/entities/CacheRecord.ts +33 -0
  319. package/src/cache/entities/CredentialEntity.ts +220 -0
  320. package/src/cache/entities/IdTokenEntity.ts +74 -0
  321. package/src/cache/entities/RefreshTokenEntity.ts +78 -0
  322. package/src/cache/entities/ServerTelemetryEntity.ts +38 -0
  323. package/src/cache/entities/ThrottlingEntity.ts +36 -0
  324. package/src/cache/interface/ICacheManager.ts +218 -0
  325. package/src/cache/interface/ICachePlugin.ts +11 -0
  326. package/src/cache/interface/ISerializableTokenCache.ts +9 -0
  327. package/src/cache/persistence/TokenCacheContext.ts +39 -0
  328. package/src/cache/utils/CacheTypes.ts +93 -0
  329. package/src/client/AuthorizationCodeClient.ts +736 -0
  330. package/src/client/BaseClient.ts +208 -0
  331. package/src/client/RefreshTokenClient.ts +399 -0
  332. package/src/client/SilentFlowClient.ts +239 -0
  333. package/src/config/AppTokenProvider.ts +47 -0
  334. package/src/config/ClientConfiguration.ts +286 -0
  335. package/src/crypto/ICrypto.ts +112 -0
  336. package/src/crypto/IGuidGenerator.ts +9 -0
  337. package/src/crypto/JoseHeader.ts +58 -0
  338. package/src/crypto/PopTokenGenerator.ts +160 -0
  339. package/src/crypto/SignedHttpRequest.ts +16 -0
  340. package/src/error/AuthError.ts +83 -0
  341. package/src/error/AuthErrorCodes.ts +10 -0
  342. package/src/error/ClientAuthError.ts +333 -0
  343. package/src/error/ClientAuthErrorCodes.ts +51 -0
  344. package/src/error/ClientConfigurationError.ts +210 -0
  345. package/src/error/ClientConfigurationErrorCodes.ts +28 -0
  346. package/src/error/InteractionRequiredAuthError.ts +139 -0
  347. package/src/error/InteractionRequiredAuthErrorCodes.ts +13 -0
  348. package/src/error/JoseHeaderError.ts +32 -0
  349. package/src/error/JoseHeaderErrorCodes.ts +7 -0
  350. package/src/error/ServerError.ts +18 -0
  351. package/src/index.ts +226 -0
  352. package/src/logger/Logger.ts +272 -0
  353. package/src/network/INetworkModule.ts +60 -0
  354. package/src/network/NetworkManager.ts +76 -0
  355. package/src/network/RequestThumbprint.ts +22 -0
  356. package/src/network/ThrottlingUtils.ts +156 -0
  357. package/src/packageMetadata.ts +3 -0
  358. package/src/request/AuthenticationHeaderParser.ts +92 -0
  359. package/src/request/BaseAuthRequest.ts +46 -0
  360. package/src/request/CommonAuthorizationCodeRequest.ts +33 -0
  361. package/src/request/CommonAuthorizationUrlRequest.ts +56 -0
  362. package/src/request/CommonClientCredentialRequest.ts +23 -0
  363. package/src/request/CommonDeviceCodeRequest.ts +31 -0
  364. package/src/request/CommonEndSessionRequest.ts +27 -0
  365. package/src/request/CommonOnBehalfOfRequest.ts +19 -0
  366. package/src/request/CommonRefreshTokenRequest.ts +25 -0
  367. package/src/request/CommonSilentFlowRequest.ts +24 -0
  368. package/src/request/CommonUsernamePasswordRequest.ts +23 -0
  369. package/src/request/NativeRequest.ts +25 -0
  370. package/src/request/NativeSignOutRequest.ts +10 -0
  371. package/src/request/RequestParameterBuilder.ts +613 -0
  372. package/src/request/RequestValidator.ts +116 -0
  373. package/src/request/ScopeSet.ts +246 -0
  374. package/src/request/StoreInCache.ts +16 -0
  375. package/src/response/AuthenticationResult.ts +47 -0
  376. package/src/response/AuthorizationCodePayload.ts +18 -0
  377. package/src/response/DeviceCodeResponse.ts +31 -0
  378. package/src/response/ExternalTokenResponse.ts +24 -0
  379. package/src/response/IMDSBadResponse.ts +9 -0
  380. package/src/response/ResponseHandler.ts +634 -0
  381. package/src/response/ServerAuthorizationCodeResponse.ts +33 -0
  382. package/src/response/ServerAuthorizationTokenResponse.ts +54 -0
  383. package/src/telemetry/performance/IPerformanceClient.ts +71 -0
  384. package/src/telemetry/performance/IPerformanceMeasurement.ts +10 -0
  385. package/src/telemetry/performance/PerformanceClient.ts +636 -0
  386. package/src/telemetry/performance/PerformanceEvent.ts +542 -0
  387. package/src/telemetry/performance/StubPerformanceClient.ts +101 -0
  388. package/src/telemetry/server/ServerTelemetryManager.ts +274 -0
  389. package/src/telemetry/server/ServerTelemetryRequest.ts +13 -0
  390. package/src/url/IUri.ts +17 -0
  391. package/src/url/UrlString.ts +373 -0
  392. package/src/utils/Constants.ts +444 -0
  393. package/src/utils/FunctionWrappers.ts +105 -0
  394. package/src/utils/MsalTypes.ts +9 -0
  395. package/src/utils/ProtocolUtils.ts +120 -0
  396. package/src/utils/StringUtils.ts +106 -0
  397. package/src/utils/TimeUtils.ts +51 -0
  398. package/dist/account/DecodedAuthToken.d.ts +0 -9
  399. package/dist/account/DecodedAuthToken.d.ts.map +0 -1
package/src/index.ts ADDED
@@ -0,0 +1,226 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ /**
7
+ * @packageDocumentation
8
+ * @module @azure/msal-common
9
+ */
10
+
11
+ export { AuthorizationCodeClient } from "./client/AuthorizationCodeClient";
12
+ export { RefreshTokenClient } from "./client/RefreshTokenClient";
13
+ export { SilentFlowClient } from "./client/SilentFlowClient";
14
+ export { BaseClient } from "./client/BaseClient";
15
+ export {
16
+ AuthOptions,
17
+ SystemOptions,
18
+ LoggerOptions,
19
+ CacheOptions,
20
+ DEFAULT_SYSTEM_OPTIONS,
21
+ AzureCloudOptions,
22
+ ApplicationTelemetry,
23
+ } from "./config/ClientConfiguration";
24
+ export {
25
+ IAppTokenProvider,
26
+ AppTokenProviderParameters,
27
+ AppTokenProviderResult,
28
+ } from "./config/AppTokenProvider";
29
+ export { ClientConfiguration } from "./config/ClientConfiguration";
30
+ // Account
31
+ export { AccountInfo, ActiveAccountFilters } from "./account/AccountInfo";
32
+ export * as AuthToken from "./account/AuthToken";
33
+ export { TokenClaims } from "./account/TokenClaims";
34
+ export { TokenClaims as IdTokenClaims } from "./account/TokenClaims";
35
+ export { CcsCredential, CcsCredentialType } from "./account/CcsCredential";
36
+ export {
37
+ ClientInfo,
38
+ buildClientInfo,
39
+ buildClientInfoFromHomeAccountId,
40
+ } from "./account/ClientInfo";
41
+ // Authority
42
+ export { Authority } from "./authority/Authority";
43
+ export {
44
+ AuthorityOptions,
45
+ AzureCloudInstance,
46
+ } from "./authority/AuthorityOptions";
47
+ export { AuthorityFactory } from "./authority/AuthorityFactory";
48
+ export { AuthorityType } from "./authority/AuthorityType";
49
+ export { ProtocolMode } from "./authority/ProtocolMode";
50
+ export { OIDCOptions } from "./authority/OIDCOptions";
51
+ // Broker
52
+ export { INativeBrokerPlugin } from "./broker/nativeBroker/INativeBrokerPlugin";
53
+ // Cache
54
+ export { CacheManager, DefaultStorageClass } from "./cache/CacheManager";
55
+ export {
56
+ AccountCache,
57
+ AccessTokenCache,
58
+ IdTokenCache,
59
+ RefreshTokenCache,
60
+ AppMetadataCache,
61
+ CredentialFilter,
62
+ ValidCacheType,
63
+ ValidCredentialType,
64
+ TokenKeys,
65
+ } from "./cache/utils/CacheTypes";
66
+ export { CacheRecord } from "./cache/entities/CacheRecord";
67
+ export { CredentialEntity } from "./cache/entities/CredentialEntity";
68
+ export { AppMetadataEntity } from "./cache/entities/AppMetadataEntity";
69
+ export { AccountEntity } from "./cache/entities/AccountEntity";
70
+ export { IdTokenEntity } from "./cache/entities/IdTokenEntity";
71
+ export { AccessTokenEntity } from "./cache/entities/AccessTokenEntity";
72
+ export { RefreshTokenEntity } from "./cache/entities/RefreshTokenEntity";
73
+ export { ServerTelemetryEntity } from "./cache/entities/ServerTelemetryEntity";
74
+ export { AuthorityMetadataEntity } from "./cache/entities/AuthorityMetadataEntity";
75
+ export { ThrottlingEntity } from "./cache/entities/ThrottlingEntity";
76
+ export { ICachePlugin } from "./cache/interface/ICachePlugin";
77
+ export { TokenCacheContext } from "./cache/persistence/TokenCacheContext";
78
+ export { ISerializableTokenCache } from "./cache/interface/ISerializableTokenCache";
79
+ // Network Interface
80
+ export {
81
+ INetworkModule,
82
+ NetworkRequestOptions,
83
+ StubbedNetworkModule,
84
+ } from "./network/INetworkModule";
85
+ export {
86
+ NetworkManager,
87
+ NetworkResponse,
88
+ UrlToHttpRequestOptions,
89
+ } from "./network/NetworkManager";
90
+ export { ThrottlingUtils } from "./network/ThrottlingUtils";
91
+ export { RequestThumbprint } from "./network/RequestThumbprint";
92
+ export { IUri } from "./url/IUri";
93
+ export { UrlString } from "./url/UrlString";
94
+ // Crypto Interface
95
+ export {
96
+ ICrypto,
97
+ PkceCodes,
98
+ DEFAULT_CRYPTO_IMPLEMENTATION,
99
+ SignedHttpRequestParameters,
100
+ } from "./crypto/ICrypto";
101
+ export { SignedHttpRequest } from "./crypto/SignedHttpRequest";
102
+ export { IGuidGenerator } from "./crypto/IGuidGenerator";
103
+ export { JoseHeader } from "./crypto/JoseHeader";
104
+ // Request
105
+ export { BaseAuthRequest } from "./request/BaseAuthRequest";
106
+ export { CommonAuthorizationUrlRequest } from "./request/CommonAuthorizationUrlRequest";
107
+ export { CommonAuthorizationCodeRequest } from "./request/CommonAuthorizationCodeRequest";
108
+ export { CommonRefreshTokenRequest } from "./request/CommonRefreshTokenRequest";
109
+ export { CommonClientCredentialRequest } from "./request/CommonClientCredentialRequest";
110
+ export { CommonOnBehalfOfRequest } from "./request/CommonOnBehalfOfRequest";
111
+ export { CommonSilentFlowRequest } from "./request/CommonSilentFlowRequest";
112
+ export { CommonDeviceCodeRequest } from "./request/CommonDeviceCodeRequest";
113
+ export { CommonEndSessionRequest } from "./request/CommonEndSessionRequest";
114
+ export { CommonUsernamePasswordRequest } from "./request/CommonUsernamePasswordRequest";
115
+ export { NativeRequest } from "./request/NativeRequest";
116
+ export { NativeSignOutRequest } from "./request/NativeSignOutRequest";
117
+ export { RequestParameterBuilder } from "./request/RequestParameterBuilder";
118
+ export { StoreInCache } from "./request/StoreInCache";
119
+ export { ClientAssertion } from "./account/ClientCredentials";
120
+ // Response
121
+ export { AzureRegion } from "./authority/AzureRegion";
122
+ export { AzureRegionConfiguration } from "./authority/AzureRegionConfiguration";
123
+ export { AuthenticationResult } from "./response/AuthenticationResult";
124
+ export { AuthorizationCodePayload } from "./response/AuthorizationCodePayload";
125
+ export { ServerAuthorizationCodeResponse } from "./response/ServerAuthorizationCodeResponse";
126
+ export { ServerAuthorizationTokenResponse } from "./response/ServerAuthorizationTokenResponse";
127
+ export { ExternalTokenResponse } from "./response/ExternalTokenResponse";
128
+ export {
129
+ DeviceCodeResponse,
130
+ ServerDeviceCodeResponse,
131
+ } from "./response/DeviceCodeResponse";
132
+ export { ResponseHandler } from "./response/ResponseHandler";
133
+ export { ScopeSet } from "./request/ScopeSet";
134
+ export { AuthenticationHeaderParser } from "./request/AuthenticationHeaderParser";
135
+ // Logger Callback
136
+ export { ILoggerCallback, LogLevel, Logger } from "./logger/Logger";
137
+ // Errors
138
+ export {
139
+ InteractionRequiredAuthError,
140
+ InteractionRequiredAuthErrorCodes,
141
+ InteractionRequiredAuthErrorMessage,
142
+ createInteractionRequiredAuthError,
143
+ } from "./error/InteractionRequiredAuthError";
144
+ export {
145
+ AuthError,
146
+ AuthErrorMessage,
147
+ AuthErrorCodes,
148
+ createAuthError,
149
+ } from "./error/AuthError";
150
+ export { ServerError } from "./error/ServerError";
151
+ export {
152
+ ClientAuthError,
153
+ ClientAuthErrorMessage,
154
+ ClientAuthErrorCodes,
155
+ createClientAuthError,
156
+ } from "./error/ClientAuthError";
157
+ export {
158
+ ClientConfigurationError,
159
+ ClientConfigurationErrorMessage,
160
+ ClientConfigurationErrorCodes,
161
+ createClientConfigurationError,
162
+ } from "./error/ClientConfigurationError";
163
+ // Constants and Utils
164
+ export {
165
+ Constants,
166
+ OIDC_DEFAULT_SCOPES,
167
+ PromptValue,
168
+ PersistentCacheKeys,
169
+ ServerResponseType,
170
+ ResponseMode,
171
+ CacheOutcome,
172
+ CredentialType,
173
+ CacheType,
174
+ CacheAccountType,
175
+ AuthenticationScheme,
176
+ CodeChallengeMethodValues,
177
+ SSOTypes,
178
+ PasswordGrantConstants,
179
+ ThrottlingConstants,
180
+ ClaimsRequestKeys,
181
+ HeaderNames,
182
+ AADServerParamKeys,
183
+ Errors,
184
+ THE_FAMILY_ID,
185
+ ONE_DAY_IN_MS,
186
+ GrantType,
187
+ AADAuthorityConstants,
188
+ HttpStatus,
189
+ } from "./utils/Constants";
190
+ export { StringUtils } from "./utils/StringUtils";
191
+ export { StringDict } from "./utils/MsalTypes";
192
+ export {
193
+ ProtocolUtils,
194
+ RequestStateObject,
195
+ LibraryStateObject,
196
+ } from "./utils/ProtocolUtils";
197
+ export { TimeUtils } from "./utils/TimeUtils";
198
+ export * from "./utils/FunctionWrappers";
199
+ // Server Telemetry
200
+ export { ServerTelemetryManager } from "./telemetry/server/ServerTelemetryManager";
201
+ export { ServerTelemetryRequest } from "./telemetry/server/ServerTelemetryRequest";
202
+
203
+ // Performance Telemetry
204
+ export {
205
+ IPerformanceClient,
206
+ PerformanceCallbackFunction,
207
+ InProgressPerformanceEvent,
208
+ QueueMeasurement,
209
+ } from "./telemetry/performance/IPerformanceClient";
210
+ export {
211
+ IntFields,
212
+ PerformanceEvent,
213
+ PerformanceEvents,
214
+ PerformanceEventStatus,
215
+ SubMeasurement,
216
+ } from "./telemetry/performance/PerformanceEvent";
217
+ export { IPerformanceMeasurement } from "./telemetry/performance/IPerformanceMeasurement";
218
+ export {
219
+ PerformanceClient,
220
+ PreQueueEvent,
221
+ } from "./telemetry/performance/PerformanceClient";
222
+ export { StubPerformanceClient } from "./telemetry/performance/StubPerformanceClient";
223
+
224
+ export { PopTokenGenerator } from "./crypto/PopTokenGenerator";
225
+
226
+ export { version } from "./packageMetadata";
@@ -0,0 +1,272 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { LoggerOptions } from "../config/ClientConfiguration";
7
+ import { Constants } from "../utils/Constants";
8
+
9
+ /**
10
+ * Options for logger messages.
11
+ */
12
+ export type LoggerMessageOptions = {
13
+ logLevel: LogLevel;
14
+ containsPii?: boolean;
15
+ context?: string;
16
+ correlationId?: string;
17
+ };
18
+
19
+ /**
20
+ * Log message level.
21
+ */
22
+ export enum LogLevel {
23
+ Error,
24
+ Warning,
25
+ Info,
26
+ Verbose,
27
+ Trace,
28
+ }
29
+
30
+ /**
31
+ * Callback to send the messages to.
32
+ */
33
+ export interface ILoggerCallback {
34
+ (level: LogLevel, message: string, containsPii: boolean): void;
35
+ }
36
+
37
+ /**
38
+ * Class which facilitates logging of messages to a specific place.
39
+ */
40
+ export class Logger {
41
+ // Correlation ID for request, usually set by user.
42
+ private correlationId: string;
43
+
44
+ // Current log level, defaults to info.
45
+ private level: LogLevel = LogLevel.Info;
46
+
47
+ // Boolean describing whether PII logging is allowed.
48
+ private piiLoggingEnabled: boolean;
49
+
50
+ // Callback to send messages to.
51
+ private localCallback: ILoggerCallback;
52
+
53
+ // Package name implementing this logger
54
+ private packageName: string;
55
+
56
+ // Package version implementing this logger
57
+ private packageVersion: string;
58
+
59
+ constructor(
60
+ loggerOptions: LoggerOptions,
61
+ packageName?: string,
62
+ packageVersion?: string
63
+ ) {
64
+ const defaultLoggerCallback = () => {
65
+ return;
66
+ };
67
+ const setLoggerOptions =
68
+ loggerOptions || Logger.createDefaultLoggerOptions();
69
+ this.localCallback =
70
+ setLoggerOptions.loggerCallback || defaultLoggerCallback;
71
+ this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;
72
+ this.level =
73
+ typeof setLoggerOptions.logLevel === "number"
74
+ ? setLoggerOptions.logLevel
75
+ : LogLevel.Info;
76
+ this.correlationId =
77
+ setLoggerOptions.correlationId || Constants.EMPTY_STRING;
78
+ this.packageName = packageName || Constants.EMPTY_STRING;
79
+ this.packageVersion = packageVersion || Constants.EMPTY_STRING;
80
+ }
81
+
82
+ private static createDefaultLoggerOptions(): LoggerOptions {
83
+ return {
84
+ loggerCallback: () => {
85
+ // allow users to not set loggerCallback
86
+ },
87
+ piiLoggingEnabled: false,
88
+ logLevel: LogLevel.Info,
89
+ };
90
+ }
91
+
92
+ /**
93
+ * Create new Logger with existing configurations.
94
+ */
95
+ public clone(
96
+ packageName: string,
97
+ packageVersion: string,
98
+ correlationId?: string
99
+ ): Logger {
100
+ return new Logger(
101
+ {
102
+ loggerCallback: this.localCallback,
103
+ piiLoggingEnabled: this.piiLoggingEnabled,
104
+ logLevel: this.level,
105
+ correlationId: correlationId || this.correlationId,
106
+ },
107
+ packageName,
108
+ packageVersion
109
+ );
110
+ }
111
+
112
+ /**
113
+ * Log message with required options.
114
+ */
115
+ private logMessage(
116
+ logMessage: string,
117
+ options: LoggerMessageOptions
118
+ ): void {
119
+ if (
120
+ options.logLevel > this.level ||
121
+ (!this.piiLoggingEnabled && options.containsPii)
122
+ ) {
123
+ return;
124
+ }
125
+ const timestamp = new Date().toUTCString();
126
+
127
+ // Add correlationId to logs if set, correlationId provided on log messages take precedence
128
+ const logHeader = `[${timestamp}] : [${
129
+ options.correlationId || this.correlationId || ""
130
+ }]`;
131
+
132
+ const log = `${logHeader} : ${this.packageName}@${
133
+ this.packageVersion
134
+ } : ${LogLevel[options.logLevel]} - ${logMessage}`;
135
+ // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? "-Pii": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);
136
+ this.executeCallback(
137
+ options.logLevel,
138
+ log,
139
+ options.containsPii || false
140
+ );
141
+ }
142
+
143
+ /**
144
+ * Execute callback with message.
145
+ */
146
+ executeCallback(
147
+ level: LogLevel,
148
+ message: string,
149
+ containsPii: boolean
150
+ ): void {
151
+ if (this.localCallback) {
152
+ this.localCallback(level, message, containsPii);
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Logs error messages.
158
+ */
159
+ error(message: string, correlationId?: string): void {
160
+ this.logMessage(message, {
161
+ logLevel: LogLevel.Error,
162
+ containsPii: false,
163
+ correlationId: correlationId || Constants.EMPTY_STRING,
164
+ });
165
+ }
166
+
167
+ /**
168
+ * Logs error messages with PII.
169
+ */
170
+ errorPii(message: string, correlationId?: string): void {
171
+ this.logMessage(message, {
172
+ logLevel: LogLevel.Error,
173
+ containsPii: true,
174
+ correlationId: correlationId || Constants.EMPTY_STRING,
175
+ });
176
+ }
177
+
178
+ /**
179
+ * Logs warning messages.
180
+ */
181
+ warning(message: string, correlationId?: string): void {
182
+ this.logMessage(message, {
183
+ logLevel: LogLevel.Warning,
184
+ containsPii: false,
185
+ correlationId: correlationId || Constants.EMPTY_STRING,
186
+ });
187
+ }
188
+
189
+ /**
190
+ * Logs warning messages with PII.
191
+ */
192
+ warningPii(message: string, correlationId?: string): void {
193
+ this.logMessage(message, {
194
+ logLevel: LogLevel.Warning,
195
+ containsPii: true,
196
+ correlationId: correlationId || Constants.EMPTY_STRING,
197
+ });
198
+ }
199
+
200
+ /**
201
+ * Logs info messages.
202
+ */
203
+ info(message: string, correlationId?: string): void {
204
+ this.logMessage(message, {
205
+ logLevel: LogLevel.Info,
206
+ containsPii: false,
207
+ correlationId: correlationId || Constants.EMPTY_STRING,
208
+ });
209
+ }
210
+
211
+ /**
212
+ * Logs info messages with PII.
213
+ */
214
+ infoPii(message: string, correlationId?: string): void {
215
+ this.logMessage(message, {
216
+ logLevel: LogLevel.Info,
217
+ containsPii: true,
218
+ correlationId: correlationId || Constants.EMPTY_STRING,
219
+ });
220
+ }
221
+
222
+ /**
223
+ * Logs verbose messages.
224
+ */
225
+ verbose(message: string, correlationId?: string): void {
226
+ this.logMessage(message, {
227
+ logLevel: LogLevel.Verbose,
228
+ containsPii: false,
229
+ correlationId: correlationId || Constants.EMPTY_STRING,
230
+ });
231
+ }
232
+
233
+ /**
234
+ * Logs verbose messages with PII.
235
+ */
236
+ verbosePii(message: string, correlationId?: string): void {
237
+ this.logMessage(message, {
238
+ logLevel: LogLevel.Verbose,
239
+ containsPii: true,
240
+ correlationId: correlationId || Constants.EMPTY_STRING,
241
+ });
242
+ }
243
+
244
+ /**
245
+ * Logs trace messages.
246
+ */
247
+ trace(message: string, correlationId?: string): void {
248
+ this.logMessage(message, {
249
+ logLevel: LogLevel.Trace,
250
+ containsPii: false,
251
+ correlationId: correlationId || Constants.EMPTY_STRING,
252
+ });
253
+ }
254
+
255
+ /**
256
+ * Logs trace messages with PII.
257
+ */
258
+ tracePii(message: string, correlationId?: string): void {
259
+ this.logMessage(message, {
260
+ logLevel: LogLevel.Trace,
261
+ containsPii: true,
262
+ correlationId: correlationId || Constants.EMPTY_STRING,
263
+ });
264
+ }
265
+
266
+ /**
267
+ * Returns whether PII Logging is enabled or not.
268
+ */
269
+ isPiiLoggingEnabled(): boolean {
270
+ return this.piiLoggingEnabled || false;
271
+ }
272
+ }
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import {
7
+ ClientAuthErrorCodes,
8
+ createClientAuthError,
9
+ } from "../error/ClientAuthError";
10
+ import { NetworkResponse } from "./NetworkManager";
11
+
12
+ /**
13
+ * Options allowed by network request APIs.
14
+ */
15
+ export type NetworkRequestOptions = {
16
+ headers?: Record<string, string>;
17
+ body?: string;
18
+ };
19
+
20
+ /**
21
+ * Client network interface to send backend requests.
22
+ * @interface
23
+ */
24
+ export interface INetworkModule {
25
+ /**
26
+ * Interface function for async network "GET" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/
27
+ * @param url
28
+ * @param requestParams
29
+ * @param enableCaching
30
+ */
31
+ sendGetRequestAsync<T>(
32
+ url: string,
33
+ options?: NetworkRequestOptions,
34
+ cancellationToken?: number
35
+ ): Promise<NetworkResponse<T>>;
36
+
37
+ /**
38
+ * Interface function for async network "POST" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/
39
+ * @param url
40
+ * @param requestParams
41
+ * @param enableCaching
42
+ */
43
+ sendPostRequestAsync<T>(
44
+ url: string,
45
+ options?: NetworkRequestOptions
46
+ ): Promise<NetworkResponse<T>>;
47
+ }
48
+
49
+ export const StubbedNetworkModule: INetworkModule = {
50
+ sendGetRequestAsync: () => {
51
+ return Promise.reject(
52
+ createClientAuthError(ClientAuthErrorCodes.methodNotImplemented)
53
+ );
54
+ },
55
+ sendPostRequestAsync: () => {
56
+ return Promise.reject(
57
+ createClientAuthError(ClientAuthErrorCodes.methodNotImplemented)
58
+ );
59
+ },
60
+ };
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { INetworkModule, NetworkRequestOptions } from "./INetworkModule";
7
+ import { RequestThumbprint } from "./RequestThumbprint";
8
+ import { ThrottlingUtils } from "./ThrottlingUtils";
9
+ import { CacheManager } from "../cache/CacheManager";
10
+ import { AuthError } from "../error/AuthError";
11
+ import {
12
+ ClientAuthErrorCodes,
13
+ createClientAuthError,
14
+ } from "../error/ClientAuthError";
15
+ import { ServerAuthorizationTokenResponse } from "../response/ServerAuthorizationTokenResponse";
16
+
17
+ export type NetworkResponse<T> = {
18
+ headers: Record<string, string>;
19
+ body: T;
20
+ status: number;
21
+ };
22
+
23
+ export type UrlToHttpRequestOptions = {
24
+ protocol: string;
25
+ hostname: string;
26
+ hash: string;
27
+ search: string;
28
+ pathname: string;
29
+ path: string;
30
+ href: string;
31
+ port?: number;
32
+ auth?: string;
33
+ };
34
+
35
+ /** @internal */
36
+ export class NetworkManager {
37
+ private networkClient: INetworkModule;
38
+ private cacheManager: CacheManager;
39
+
40
+ constructor(networkClient: INetworkModule, cacheManager: CacheManager) {
41
+ this.networkClient = networkClient;
42
+ this.cacheManager = cacheManager;
43
+ }
44
+
45
+ /**
46
+ * Wraps sendPostRequestAsync with necessary preflight and postflight logic
47
+ * @param thumbprint
48
+ * @param tokenEndpoint
49
+ * @param options
50
+ */
51
+ async sendPostRequest<T extends ServerAuthorizationTokenResponse>(
52
+ thumbprint: RequestThumbprint,
53
+ tokenEndpoint: string,
54
+ options: NetworkRequestOptions
55
+ ): Promise<NetworkResponse<T>> {
56
+ ThrottlingUtils.preProcess(this.cacheManager, thumbprint);
57
+
58
+ let response;
59
+ try {
60
+ response = await this.networkClient.sendPostRequestAsync<T>(
61
+ tokenEndpoint,
62
+ options
63
+ );
64
+ } catch (e) {
65
+ if (e instanceof AuthError) {
66
+ throw e;
67
+ } else {
68
+ throw createClientAuthError(ClientAuthErrorCodes.networkError);
69
+ }
70
+ }
71
+
72
+ ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);
73
+
74
+ return response;
75
+ }
76
+ }
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { AuthenticationScheme } from "../utils/Constants";
7
+
8
+ /**
9
+ * Type representing a unique request thumbprint.
10
+ */
11
+ export type RequestThumbprint = {
12
+ clientId: string;
13
+ authority: string;
14
+ scopes: Array<string>;
15
+ homeAccountIdentifier?: string;
16
+ claims?: string;
17
+ authenticationScheme?: AuthenticationScheme;
18
+ resourceRequestMethod?: string;
19
+ resourceRequestUri?: string;
20
+ shrClaims?: string;
21
+ sshKid?: string;
22
+ };