@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,217 @@
1
+ import { ResponseMode } from "../utils/Constants";
2
+ import { StringDict } from "../utils/MsalTypes";
3
+ import { ApplicationTelemetry, LibraryInfo } from "../config/ClientConfiguration";
4
+ import { ServerTelemetryManager } from "../telemetry/server/ServerTelemetryManager";
5
+ import { ClientInfo } from "../account/ClientInfo";
6
+ export declare class RequestParameterBuilder {
7
+ private parameters;
8
+ constructor();
9
+ /**
10
+ * add response_type = code
11
+ */
12
+ addResponseTypeCode(): void;
13
+ /**
14
+ * add response_type = token id_token
15
+ */
16
+ addResponseTypeForTokenAndIdToken(): void;
17
+ /**
18
+ * add response_mode. defaults to query.
19
+ * @param responseMode
20
+ */
21
+ addResponseMode(responseMode?: ResponseMode): void;
22
+ /**
23
+ * Add flag to indicate STS should attempt to use WAM if available
24
+ */
25
+ addNativeBroker(): void;
26
+ /**
27
+ * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios
28
+ * @param scopeSet
29
+ * @param addOidcScopes
30
+ */
31
+ addScopes(scopes: string[], addOidcScopes?: boolean): void;
32
+ /**
33
+ * add clientId
34
+ * @param clientId
35
+ */
36
+ addClientId(clientId: string): void;
37
+ /**
38
+ * add redirect_uri
39
+ * @param redirectUri
40
+ */
41
+ addRedirectUri(redirectUri: string): void;
42
+ /**
43
+ * add post logout redirectUri
44
+ * @param redirectUri
45
+ */
46
+ addPostLogoutRedirectUri(redirectUri: string): void;
47
+ /**
48
+ * add id_token_hint to logout request
49
+ * @param idTokenHint
50
+ */
51
+ addIdTokenHint(idTokenHint: string): void;
52
+ /**
53
+ * add domain_hint
54
+ * @param domainHint
55
+ */
56
+ addDomainHint(domainHint: string): void;
57
+ /**
58
+ * add login_hint
59
+ * @param loginHint
60
+ */
61
+ addLoginHint(loginHint: string): void;
62
+ /**
63
+ * Adds the CCS (Cache Credential Service) query parameter for login_hint
64
+ * @param loginHint
65
+ */
66
+ addCcsUpn(loginHint: string): void;
67
+ /**
68
+ * Adds the CCS (Cache Credential Service) query parameter for account object
69
+ * @param loginHint
70
+ */
71
+ addCcsOid(clientInfo: ClientInfo): void;
72
+ /**
73
+ * add sid
74
+ * @param sid
75
+ */
76
+ addSid(sid: string): void;
77
+ /**
78
+ * add claims
79
+ * @param claims
80
+ */
81
+ addClaims(claims?: string, clientCapabilities?: Array<string>): void;
82
+ /**
83
+ * add correlationId
84
+ * @param correlationId
85
+ */
86
+ addCorrelationId(correlationId: string): void;
87
+ /**
88
+ * add library info query params
89
+ * @param libraryInfo
90
+ */
91
+ addLibraryInfo(libraryInfo: LibraryInfo): void;
92
+ /**
93
+ * Add client telemetry parameters
94
+ * @param appTelemetry
95
+ */
96
+ addApplicationTelemetry(appTelemetry: ApplicationTelemetry): void;
97
+ /**
98
+ * add prompt
99
+ * @param prompt
100
+ */
101
+ addPrompt(prompt: string): void;
102
+ /**
103
+ * add state
104
+ * @param state
105
+ */
106
+ addState(state: string): void;
107
+ /**
108
+ * add nonce
109
+ * @param nonce
110
+ */
111
+ addNonce(nonce: string): void;
112
+ /**
113
+ * add code_challenge and code_challenge_method
114
+ * - throw if either of them are not passed
115
+ * @param codeChallenge
116
+ * @param codeChallengeMethod
117
+ */
118
+ addCodeChallengeParams(codeChallenge: string, codeChallengeMethod: string): void;
119
+ /**
120
+ * add the `authorization_code` passed by the user to exchange for a token
121
+ * @param code
122
+ */
123
+ addAuthorizationCode(code: string): void;
124
+ /**
125
+ * add the `authorization_code` passed by the user to exchange for a token
126
+ * @param code
127
+ */
128
+ addDeviceCode(code: string): void;
129
+ /**
130
+ * add the `refreshToken` passed by the user
131
+ * @param refreshToken
132
+ */
133
+ addRefreshToken(refreshToken: string): void;
134
+ /**
135
+ * add the `code_verifier` passed by the user to exchange for a token
136
+ * @param codeVerifier
137
+ */
138
+ addCodeVerifier(codeVerifier: string): void;
139
+ /**
140
+ * add client_secret
141
+ * @param clientSecret
142
+ */
143
+ addClientSecret(clientSecret: string): void;
144
+ /**
145
+ * add clientAssertion for confidential client flows
146
+ * @param clientAssertion
147
+ */
148
+ addClientAssertion(clientAssertion: string): void;
149
+ /**
150
+ * add clientAssertionType for confidential client flows
151
+ * @param clientAssertionType
152
+ */
153
+ addClientAssertionType(clientAssertionType: string): void;
154
+ /**
155
+ * add OBO assertion for confidential client flows
156
+ * @param clientAssertion
157
+ */
158
+ addOboAssertion(oboAssertion: string): void;
159
+ /**
160
+ * add grant type
161
+ * @param grantType
162
+ */
163
+ addRequestTokenUse(tokenUse: string): void;
164
+ /**
165
+ * add grant type
166
+ * @param grantType
167
+ */
168
+ addGrantType(grantType: string): void;
169
+ /**
170
+ * add client info
171
+ *
172
+ */
173
+ addClientInfo(): void;
174
+ /**
175
+ * add extraQueryParams
176
+ * @param eQparams
177
+ */
178
+ addExtraQueryParameters(eQparams: StringDict): void;
179
+ addClientCapabilitiesToClaims(claims?: string, clientCapabilities?: Array<string>): string;
180
+ /**
181
+ * adds `username` for Password Grant flow
182
+ * @param username
183
+ */
184
+ addUsername(username: string): void;
185
+ /**
186
+ * adds `password` for Password Grant flow
187
+ * @param password
188
+ */
189
+ addPassword(password: string): void;
190
+ /**
191
+ * add pop_jwk to query params
192
+ * @param cnfString
193
+ */
194
+ addPopToken(cnfString: string): void;
195
+ /**
196
+ * add SSH JWK and key ID to query params
197
+ */
198
+ addSshJwk(sshJwkString: string): void;
199
+ /**
200
+ * add server telemetry fields
201
+ * @param serverTelemetryManager
202
+ */
203
+ addServerTelemetry(serverTelemetryManager: ServerTelemetryManager): void;
204
+ /**
205
+ * Adds parameter that indicates to the server that throttling is supported
206
+ */
207
+ addThrottling(): void;
208
+ /**
209
+ * Adds logout_hint parameter for "silent" logout which prevent server account picker
210
+ */
211
+ addLogoutHint(logoutHint: string): void;
212
+ /**
213
+ * Utility to create a URL from the params map
214
+ */
215
+ createQueryString(): string;
216
+ }
217
+ //# sourceMappingURL=RequestParameterBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestParameterBuilder.d.ts","sourceRoot":"","sources":["../../src/request/RequestParameterBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,387 @@
1
+ /*! @azure/msal-common v0.0.1-alpha.0 2022-08-02 */
2
+ 'use strict';
3
+ import { __spreadArrays } from '../_virtual/_tslib.js';
4
+ import { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';
5
+ import { ScopeSet } from './ScopeSet.js';
6
+ import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
7
+ import { RequestValidator } from './RequestValidator.js';
8
+ import { StringUtils } from '../utils/StringUtils.js';
9
+
10
+ /*
11
+ * Copyright (c) Microsoft Corporation. All rights reserved.
12
+ * Licensed under the MIT License.
13
+ */
14
+ var RequestParameterBuilder = /** @class */ (function () {
15
+ function RequestParameterBuilder() {
16
+ this.parameters = new Map();
17
+ }
18
+ /**
19
+ * add response_type = code
20
+ */
21
+ RequestParameterBuilder.prototype.addResponseTypeCode = function () {
22
+ this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));
23
+ };
24
+ /**
25
+ * add response_type = token id_token
26
+ */
27
+ RequestParameterBuilder.prototype.addResponseTypeForTokenAndIdToken = function () {
28
+ this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.TOKEN_RESPONSE_TYPE + " " + Constants.ID_TOKEN_RESPONSE_TYPE));
29
+ };
30
+ /**
31
+ * add response_mode. defaults to query.
32
+ * @param responseMode
33
+ */
34
+ RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {
35
+ this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));
36
+ };
37
+ /**
38
+ * Add flag to indicate STS should attempt to use WAM if available
39
+ */
40
+ RequestParameterBuilder.prototype.addNativeBroker = function () {
41
+ this.parameters.set(AADServerParamKeys.NATIVE_BROKER, encodeURIComponent("1"));
42
+ };
43
+ /**
44
+ * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios
45
+ * @param scopeSet
46
+ * @param addOidcScopes
47
+ */
48
+ RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {
49
+ if (addOidcScopes === void 0) { addOidcScopes = true; }
50
+ var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];
51
+ var scopeSet = new ScopeSet(requestScopes);
52
+ this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));
53
+ };
54
+ /**
55
+ * add clientId
56
+ * @param clientId
57
+ */
58
+ RequestParameterBuilder.prototype.addClientId = function (clientId) {
59
+ this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));
60
+ };
61
+ /**
62
+ * add redirect_uri
63
+ * @param redirectUri
64
+ */
65
+ RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {
66
+ RequestValidator.validateRedirectUri(redirectUri);
67
+ this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));
68
+ };
69
+ /**
70
+ * add post logout redirectUri
71
+ * @param redirectUri
72
+ */
73
+ RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {
74
+ RequestValidator.validateRedirectUri(redirectUri);
75
+ this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));
76
+ };
77
+ /**
78
+ * add id_token_hint to logout request
79
+ * @param idTokenHint
80
+ */
81
+ RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {
82
+ this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));
83
+ };
84
+ /**
85
+ * add domain_hint
86
+ * @param domainHint
87
+ */
88
+ RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {
89
+ this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));
90
+ };
91
+ /**
92
+ * add login_hint
93
+ * @param loginHint
94
+ */
95
+ RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {
96
+ this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));
97
+ };
98
+ /**
99
+ * Adds the CCS (Cache Credential Service) query parameter for login_hint
100
+ * @param loginHint
101
+ */
102
+ RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {
103
+ this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent("UPN:" + loginHint));
104
+ };
105
+ /**
106
+ * Adds the CCS (Cache Credential Service) query parameter for account object
107
+ * @param loginHint
108
+ */
109
+ RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {
110
+ this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent("Oid:" + clientInfo.uid + "@" + clientInfo.utid));
111
+ };
112
+ /**
113
+ * add sid
114
+ * @param sid
115
+ */
116
+ RequestParameterBuilder.prototype.addSid = function (sid) {
117
+ this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));
118
+ };
119
+ /**
120
+ * add claims
121
+ * @param claims
122
+ */
123
+ RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {
124
+ var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);
125
+ RequestValidator.validateClaims(mergedClaims);
126
+ this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));
127
+ };
128
+ /**
129
+ * add correlationId
130
+ * @param correlationId
131
+ */
132
+ RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {
133
+ this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));
134
+ };
135
+ /**
136
+ * add library info query params
137
+ * @param libraryInfo
138
+ */
139
+ RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {
140
+ // Telemetry Info
141
+ this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);
142
+ this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);
143
+ if (libraryInfo.os) {
144
+ this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);
145
+ }
146
+ if (libraryInfo.cpu) {
147
+ this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);
148
+ }
149
+ };
150
+ /**
151
+ * Add client telemetry parameters
152
+ * @param appTelemetry
153
+ */
154
+ RequestParameterBuilder.prototype.addApplicationTelemetry = function (appTelemetry) {
155
+ if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appName) {
156
+ this.parameters.set(AADServerParamKeys.X_APP_NAME, appTelemetry.appName);
157
+ }
158
+ if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appVersion) {
159
+ this.parameters.set(AADServerParamKeys.X_APP_VER, appTelemetry.appVersion);
160
+ }
161
+ };
162
+ /**
163
+ * add prompt
164
+ * @param prompt
165
+ */
166
+ RequestParameterBuilder.prototype.addPrompt = function (prompt) {
167
+ RequestValidator.validatePrompt(prompt);
168
+ this.parameters.set("" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));
169
+ };
170
+ /**
171
+ * add state
172
+ * @param state
173
+ */
174
+ RequestParameterBuilder.prototype.addState = function (state) {
175
+ if (!StringUtils.isEmpty(state)) {
176
+ this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));
177
+ }
178
+ };
179
+ /**
180
+ * add nonce
181
+ * @param nonce
182
+ */
183
+ RequestParameterBuilder.prototype.addNonce = function (nonce) {
184
+ this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));
185
+ };
186
+ /**
187
+ * add code_challenge and code_challenge_method
188
+ * - throw if either of them are not passed
189
+ * @param codeChallenge
190
+ * @param codeChallengeMethod
191
+ */
192
+ RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {
193
+ RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);
194
+ if (codeChallenge && codeChallengeMethod) {
195
+ this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));
196
+ this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));
197
+ }
198
+ else {
199
+ throw ClientConfigurationError.createInvalidCodeChallengeParamsError();
200
+ }
201
+ };
202
+ /**
203
+ * add the `authorization_code` passed by the user to exchange for a token
204
+ * @param code
205
+ */
206
+ RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {
207
+ this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));
208
+ };
209
+ /**
210
+ * add the `authorization_code` passed by the user to exchange for a token
211
+ * @param code
212
+ */
213
+ RequestParameterBuilder.prototype.addDeviceCode = function (code) {
214
+ this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));
215
+ };
216
+ /**
217
+ * add the `refreshToken` passed by the user
218
+ * @param refreshToken
219
+ */
220
+ RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {
221
+ this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));
222
+ };
223
+ /**
224
+ * add the `code_verifier` passed by the user to exchange for a token
225
+ * @param codeVerifier
226
+ */
227
+ RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {
228
+ this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));
229
+ };
230
+ /**
231
+ * add client_secret
232
+ * @param clientSecret
233
+ */
234
+ RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {
235
+ this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));
236
+ };
237
+ /**
238
+ * add clientAssertion for confidential client flows
239
+ * @param clientAssertion
240
+ */
241
+ RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {
242
+ if (!StringUtils.isEmpty(clientAssertion)) {
243
+ this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));
244
+ }
245
+ };
246
+ /**
247
+ * add clientAssertionType for confidential client flows
248
+ * @param clientAssertionType
249
+ */
250
+ RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {
251
+ if (!StringUtils.isEmpty(clientAssertionType)) {
252
+ this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));
253
+ }
254
+ };
255
+ /**
256
+ * add OBO assertion for confidential client flows
257
+ * @param clientAssertion
258
+ */
259
+ RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {
260
+ this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));
261
+ };
262
+ /**
263
+ * add grant type
264
+ * @param grantType
265
+ */
266
+ RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {
267
+ this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));
268
+ };
269
+ /**
270
+ * add grant type
271
+ * @param grantType
272
+ */
273
+ RequestParameterBuilder.prototype.addGrantType = function (grantType) {
274
+ this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));
275
+ };
276
+ /**
277
+ * add client info
278
+ *
279
+ */
280
+ RequestParameterBuilder.prototype.addClientInfo = function () {
281
+ this.parameters.set(CLIENT_INFO, "1");
282
+ };
283
+ /**
284
+ * add extraQueryParams
285
+ * @param eQparams
286
+ */
287
+ RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQparams) {
288
+ var _this = this;
289
+ RequestValidator.sanitizeEQParams(eQparams, this.parameters);
290
+ Object.keys(eQparams).forEach(function (key) {
291
+ _this.parameters.set(key, eQparams[key]);
292
+ });
293
+ };
294
+ RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {
295
+ var mergedClaims;
296
+ // Parse provided claims into JSON object or initialize empty object
297
+ if (!claims) {
298
+ mergedClaims = {};
299
+ }
300
+ else {
301
+ try {
302
+ mergedClaims = JSON.parse(claims);
303
+ }
304
+ catch (e) {
305
+ throw ClientConfigurationError.createInvalidClaimsRequestError();
306
+ }
307
+ }
308
+ if (clientCapabilities && clientCapabilities.length > 0) {
309
+ if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {
310
+ // Add access_token key to claims object
311
+ mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};
312
+ }
313
+ // Add xms_cc claim with provided clientCapabilities to access_token key
314
+ mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {
315
+ values: clientCapabilities
316
+ };
317
+ }
318
+ return JSON.stringify(mergedClaims);
319
+ };
320
+ /**
321
+ * adds `username` for Password Grant flow
322
+ * @param username
323
+ */
324
+ RequestParameterBuilder.prototype.addUsername = function (username) {
325
+ this.parameters.set(PasswordGrantConstants.username, encodeURIComponent(username));
326
+ };
327
+ /**
328
+ * adds `password` for Password Grant flow
329
+ * @param password
330
+ */
331
+ RequestParameterBuilder.prototype.addPassword = function (password) {
332
+ this.parameters.set(PasswordGrantConstants.password, encodeURIComponent(password));
333
+ };
334
+ /**
335
+ * add pop_jwk to query params
336
+ * @param cnfString
337
+ */
338
+ RequestParameterBuilder.prototype.addPopToken = function (cnfString) {
339
+ if (!StringUtils.isEmpty(cnfString)) {
340
+ this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);
341
+ this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));
342
+ }
343
+ };
344
+ /**
345
+ * add SSH JWK and key ID to query params
346
+ */
347
+ RequestParameterBuilder.prototype.addSshJwk = function (sshJwkString) {
348
+ if (!StringUtils.isEmpty(sshJwkString)) {
349
+ this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.SSH);
350
+ this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(sshJwkString));
351
+ }
352
+ };
353
+ /**
354
+ * add server telemetry fields
355
+ * @param serverTelemetryManager
356
+ */
357
+ RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {
358
+ this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());
359
+ this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());
360
+ };
361
+ /**
362
+ * Adds parameter that indicates to the server that throttling is supported
363
+ */
364
+ RequestParameterBuilder.prototype.addThrottling = function () {
365
+ this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);
366
+ };
367
+ /**
368
+ * Adds logout_hint parameter for "silent" logout which prevent server account picker
369
+ */
370
+ RequestParameterBuilder.prototype.addLogoutHint = function (logoutHint) {
371
+ this.parameters.set(AADServerParamKeys.LOGOUT_HINT, encodeURIComponent(logoutHint));
372
+ };
373
+ /**
374
+ * Utility to create a URL from the params map
375
+ */
376
+ RequestParameterBuilder.prototype.createQueryString = function () {
377
+ var queryParameterArray = new Array();
378
+ this.parameters.forEach(function (value, key) {
379
+ queryParameterArray.push(key + "=" + value);
380
+ });
381
+ return queryParameterArray.join("&");
382
+ };
383
+ return RequestParameterBuilder;
384
+ }());
385
+
386
+ export { RequestParameterBuilder };
387
+ //# sourceMappingURL=RequestParameterBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestParameterBuilder.js","sources":["../../src/request/RequestParameterBuilder.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AADServerParamKeys, Constants, ResponseMode, SSOTypes, CLIENT_INFO, AuthenticationScheme, ClaimsRequestKeys, PasswordGrantConstants, OIDC_DEFAULT_SCOPES, ThrottlingConstants, HeaderNames} from \"../utils/Constants\";\nimport { ScopeSet } from \"./ScopeSet\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { StringDict } from \"../utils/MsalTypes\";\nimport { RequestValidator } from \"./RequestValidator\";\nimport { ApplicationTelemetry, LibraryInfo } from \"../config/ClientConfiguration\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ServerTelemetryManager } from \"../telemetry/server/ServerTelemetryManager\";\nimport { ClientInfo } from \"../account/ClientInfo\";\n\nexport class RequestParameterBuilder {\n\n private parameters: Map<string, string>;\n\n constructor() {\n this.parameters = new Map<string, string>();\n }\n\n /**\n * add response_type = code\n */\n addResponseTypeCode(): void {\n this.parameters.set(\n AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE)\n );\n }\n\n /**\n * add response_type = token id_token\n */\n addResponseTypeForTokenAndIdToken(): void {\n this.parameters.set(\n AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(`${Constants.TOKEN_RESPONSE_TYPE} ${Constants.ID_TOKEN_RESPONSE_TYPE}`)\n );\n }\n\n /**\n * add response_mode. defaults to query.\n * @param responseMode\n */\n addResponseMode(responseMode?: ResponseMode): void {\n this.parameters.set(\n AADServerParamKeys.RESPONSE_MODE,\n encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY)\n );\n }\n\n /**\n * Add flag to indicate STS should attempt to use WAM if available\n */\n addNativeBroker(): void {\n this.parameters.set(\n AADServerParamKeys.NATIVE_BROKER,\n encodeURIComponent(\"1\")\n );\n }\n\n /**\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\n * @param scopeSet\n * @param addOidcScopes\n */\n addScopes(scopes: string[], addOidcScopes: boolean = true): void {\n const requestScopes = addOidcScopes ? [...scopes || [], ...OIDC_DEFAULT_SCOPES] : scopes || [];\n const scopeSet = new ScopeSet(requestScopes);\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\n }\n\n /**\n * add clientId\n * @param clientId\n */\n addClientId(clientId: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\n }\n\n /**\n * add redirect_uri\n * @param redirectUri\n */\n addRedirectUri(redirectUri: string): void {\n RequestValidator.validateRedirectUri(redirectUri);\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\n }\n\n /**\n * add post logout redirectUri\n * @param redirectUri\n */\n addPostLogoutRedirectUri(redirectUri: string): void {\n RequestValidator.validateRedirectUri(redirectUri);\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\n }\n\n /**\n * add id_token_hint to logout request\n * @param idTokenHint\n */\n addIdTokenHint(idTokenHint: string): void {\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\n }\n\n /**\n * add domain_hint\n * @param domainHint\n */\n addDomainHint(domainHint: string): void {\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\n }\n\n /**\n * add login_hint\n * @param loginHint\n */\n addLoginHint(loginHint: string): void {\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\n }\n\n /**\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\n * @param loginHint\n */\n addCcsUpn(loginHint: string): void {\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`UPN:${loginHint}`));\n }\n\n /**\n * Adds the CCS (Cache Credential Service) query parameter for account object\n * @param loginHint\n */\n addCcsOid(clientInfo: ClientInfo): void {\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`Oid:${clientInfo.uid}@${clientInfo.utid}`));\n }\n\n /**\n * add sid\n * @param sid\n */\n addSid(sid: string): void {\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\n }\n\n /**\n * add claims\n * @param claims\n */\n addClaims(claims?: string, clientCapabilities?: Array<string>): void {\n const mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\n RequestValidator.validateClaims(mergedClaims);\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\n }\n\n /**\n * add correlationId\n * @param correlationId\n */\n addCorrelationId(correlationId: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\n }\n\n /**\n * add library info query params\n * @param libraryInfo\n */\n addLibraryInfo(libraryInfo: LibraryInfo): void {\n // Telemetry Info\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\n if (libraryInfo.os) {\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\n }\n if (libraryInfo.cpu) {\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\n }\n }\n\n /**\n * Add client telemetry parameters\n * @param appTelemetry\n */\n addApplicationTelemetry(appTelemetry: ApplicationTelemetry): void {\n if (appTelemetry?.appName) {\n this.parameters.set(AADServerParamKeys.X_APP_NAME, appTelemetry.appName);\n }\n\n if (appTelemetry?.appVersion) {\n this.parameters.set(AADServerParamKeys.X_APP_VER, appTelemetry.appVersion);\n }\n }\n\n /**\n * add prompt\n * @param prompt\n */\n addPrompt(prompt: string): void {\n RequestValidator.validatePrompt(prompt);\n this.parameters.set(`${AADServerParamKeys.PROMPT}`, encodeURIComponent(prompt));\n }\n\n /**\n * add state\n * @param state\n */\n addState(state: string): void {\n if (!StringUtils.isEmpty(state)) {\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\n }\n }\n\n /**\n * add nonce\n * @param nonce\n */\n addNonce(nonce: string): void {\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\n }\n\n /**\n * add code_challenge and code_challenge_method\n * - throw if either of them are not passed\n * @param codeChallenge\n * @param codeChallengeMethod\n */\n addCodeChallengeParams(\n codeChallenge: string,\n codeChallengeMethod: string\n ): void {\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\n if (codeChallenge && codeChallengeMethod) {\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\n } else {\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\n }\n }\n\n /**\n * add the `authorization_code` passed by the user to exchange for a token\n * @param code\n */\n addAuthorizationCode(code: string): void {\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\n }\n\n /**\n * add the `authorization_code` passed by the user to exchange for a token\n * @param code\n */\n addDeviceCode(code: string): void {\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\n }\n\n /**\n * add the `refreshToken` passed by the user\n * @param refreshToken\n */\n addRefreshToken(refreshToken: string): void {\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\n }\n\n /**\n * add the `code_verifier` passed by the user to exchange for a token\n * @param codeVerifier\n */\n addCodeVerifier(codeVerifier: string): void {\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\n }\n\n /**\n * add client_secret\n * @param clientSecret\n */\n addClientSecret(clientSecret: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\n }\n\n /**\n * add clientAssertion for confidential client flows\n * @param clientAssertion\n */\n addClientAssertion(clientAssertion: string): void {\n if (!StringUtils.isEmpty(clientAssertion)) {\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\n }\n }\n\n /**\n * add clientAssertionType for confidential client flows\n * @param clientAssertionType\n */\n addClientAssertionType(clientAssertionType: string): void {\n if (!StringUtils.isEmpty(clientAssertionType)) {\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\n }\n }\n\n /**\n * add OBO assertion for confidential client flows\n * @param clientAssertion\n */\n addOboAssertion(oboAssertion: string): void {\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\n }\n\n /**\n * add grant type\n * @param grantType\n */\n addRequestTokenUse(tokenUse: string): void {\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\n }\n\n /**\n * add grant type\n * @param grantType\n */\n addGrantType(grantType: string): void {\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\n }\n\n /**\n * add client info\n *\n */\n addClientInfo(): void {\n this.parameters.set(CLIENT_INFO, \"1\");\n }\n\n /**\n * add extraQueryParams\n * @param eQparams\n */\n addExtraQueryParameters(eQparams: StringDict): void {\n RequestValidator.sanitizeEQParams(eQparams, this.parameters);\n Object.keys(eQparams).forEach((key) => {\n this.parameters.set(key, eQparams[key]);\n });\n }\n\n addClientCapabilitiesToClaims(claims?: string, clientCapabilities?: Array<string>): string {\n let mergedClaims: object;\n\n // Parse provided claims into JSON object or initialize empty object\n if (!claims) {\n mergedClaims = {};\n } else {\n try {\n mergedClaims = JSON.parse(claims);\n } catch(e) {\n throw ClientConfigurationError.createInvalidClaimsRequestError();\n }\n }\n\n if (clientCapabilities && clientCapabilities.length > 0) {\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)){\n // Add access_token key to claims object\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\n }\n\n // Add xms_cc claim with provided clientCapabilities to access_token key\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\n values: clientCapabilities\n };\n }\n\n return JSON.stringify(mergedClaims);\n }\n\n /**\n * adds `username` for Password Grant flow\n * @param username\n */\n addUsername(username: string): void {\n this.parameters.set(PasswordGrantConstants.username, encodeURIComponent(username));\n }\n\n /**\n * adds `password` for Password Grant flow\n * @param password\n */\n addPassword(password: string): void {\n this.parameters.set(PasswordGrantConstants.password, encodeURIComponent(password));\n }\n\n /**\n * add pop_jwk to query params\n * @param cnfString\n */\n addPopToken(cnfString: string): void {\n if (!StringUtils.isEmpty(cnfString)) {\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\n }\n }\n\n /**\n * add SSH JWK and key ID to query params\n */\n addSshJwk(sshJwkString: string): void {\n if(!StringUtils.isEmpty(sshJwkString)) {\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.SSH);\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(sshJwkString));\n }\n }\n\n /**\n * add server telemetry fields\n * @param serverTelemetryManager\n */\n addServerTelemetry(serverTelemetryManager: ServerTelemetryManager): void {\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\n }\n\n /**\n * Adds parameter that indicates to the server that throttling is supported\n */\n addThrottling(): void {\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\n }\n\n /**\n * Adds logout_hint parameter for \"silent\" logout which prevent server account picker\n */\n addLogoutHint(logoutHint: string): void {\n this.parameters.set(AADServerParamKeys.LOGOUT_HINT, encodeURIComponent(logoutHint));\n }\n\n /**\n * Utility to create a URL from the params map\n */\n createQueryString(): string {\n const queryParameterArray: Array<string> = new Array<string>();\n\n this.parameters.forEach((value, key) => {\n queryParameterArray.push(`${key}=${value}`);\n });\n\n return queryParameterArray.join(\"&\");\n }\n}\n"],"names":[],"mappings":"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"}