@azure/msal-common 13.0.0 → 14.0.0-alpha.2

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/dist/account/AccountInfo.d.ts +31 -31
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AuthToken.d.ts +20 -20
  4. package/dist/account/AuthToken.d.ts.map +1 -1
  5. package/dist/account/AuthToken.js +49 -50
  6. package/dist/account/AuthToken.js.map +1 -1
  7. package/dist/account/CcsCredential.d.ts +8 -8
  8. package/dist/account/CcsCredential.d.ts.map +1 -1
  9. package/dist/account/CcsCredential.js +9 -9
  10. package/dist/account/CcsCredential.js.map +1 -1
  11. package/dist/account/ClientCredentials.d.ts +14 -14
  12. package/dist/account/ClientCredentials.d.ts.map +1 -1
  13. package/dist/account/ClientInfo.d.ts +19 -19
  14. package/dist/account/ClientInfo.d.ts.map +1 -1
  15. package/dist/account/ClientInfo.js +37 -35
  16. package/dist/account/ClientInfo.js.map +1 -1
  17. package/dist/account/DecodedAuthToken.d.ts +8 -8
  18. package/dist/account/DecodedAuthToken.d.ts.map +1 -1
  19. package/dist/account/TokenClaims.d.ts +65 -65
  20. package/dist/account/TokenClaims.d.ts.map +1 -1
  21. package/dist/authority/Authority.d.ts +228 -215
  22. package/dist/authority/Authority.d.ts.map +1 -1
  23. package/dist/authority/Authority.js +717 -765
  24. package/dist/authority/Authority.js.map +1 -1
  25. package/dist/authority/AuthorityFactory.d.ts +30 -30
  26. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  27. package/dist/authority/AuthorityFactory.js +48 -63
  28. package/dist/authority/AuthorityFactory.js.map +1 -1
  29. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  30. package/dist/authority/AuthorityMetadata.d.ts.map +1 -1
  31. package/dist/authority/AuthorityMetadata.js +877 -8
  32. package/dist/authority/AuthorityMetadata.js.map +1 -1
  33. package/dist/authority/AuthorityOptions.d.ts +18 -18
  34. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  35. package/dist/authority/AuthorityOptions.js +19 -19
  36. package/dist/authority/AuthorityOptions.js.map +1 -1
  37. package/dist/authority/AuthorityType.d.ts +9 -9
  38. package/dist/authority/AuthorityType.js +14 -14
  39. package/dist/authority/AuthorityType.js.map +1 -1
  40. package/dist/authority/AzureRegion.d.ts +1 -1
  41. package/dist/authority/AzureRegion.d.ts.map +1 -1
  42. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  43. package/dist/authority/AzureRegionConfiguration.d.ts.map +1 -1
  44. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  45. package/dist/authority/CloudDiscoveryMetadata.d.ts.map +1 -1
  46. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  47. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts.map +1 -1
  48. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  49. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js.map +1 -1
  50. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  51. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts.map +1 -1
  52. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  53. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -1
  54. package/dist/authority/ImdsOptions.d.ts +5 -5
  55. package/dist/authority/ImdsOptions.d.ts.map +1 -1
  56. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  57. package/dist/authority/OpenIdConfigResponse.d.ts.map +1 -1
  58. package/dist/authority/OpenIdConfigResponse.js +10 -10
  59. package/dist/authority/OpenIdConfigResponse.js.map +1 -1
  60. package/dist/authority/ProtocolMode.d.ts +7 -7
  61. package/dist/authority/ProtocolMode.js +12 -12
  62. package/dist/authority/ProtocolMode.js.map +1 -1
  63. package/dist/authority/RegionDiscovery.d.ts +30 -30
  64. package/dist/authority/RegionDiscovery.d.ts.map +1 -1
  65. package/dist/authority/RegionDiscovery.js +110 -132
  66. package/dist/authority/RegionDiscovery.js.map +1 -1
  67. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  68. package/dist/authority/RegionDiscoveryMetadata.d.ts.map +1 -1
  69. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  70. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts.map +1 -1
  71. package/dist/cache/CacheManager.d.ts +443 -443
  72. package/dist/cache/CacheManager.d.ts.map +1 -1
  73. package/dist/cache/CacheManager.js +1012 -1047
  74. package/dist/cache/CacheManager.js.map +1 -1
  75. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  76. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  77. package/dist/cache/entities/AccessTokenEntity.js +112 -113
  78. package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
  79. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  80. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  81. package/dist/cache/entities/AccountEntity.js +249 -237
  82. package/dist/cache/entities/AccountEntity.js.map +1 -1
  83. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  84. package/dist/cache/entities/AppMetadataEntity.d.ts.map +1 -1
  85. package/dist/cache/entities/AppMetadataEntity.js +67 -68
  86. package/dist/cache/entities/AppMetadataEntity.js.map +1 -1
  87. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  88. package/dist/cache/entities/AuthorityMetadataEntity.d.ts.map +1 -1
  89. package/dist/cache/entities/AuthorityMetadataEntity.js +78 -75
  90. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -1
  91. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  92. package/dist/cache/entities/CacheRecord.d.ts.map +1 -1
  93. package/dist/cache/entities/CacheRecord.js +14 -15
  94. package/dist/cache/entities/CacheRecord.js.map +1 -1
  95. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  96. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  97. package/dist/cache/entities/CredentialEntity.js +137 -136
  98. package/dist/cache/entities/CredentialEntity.js.map +1 -1
  99. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  100. package/dist/cache/entities/IdTokenEntity.d.ts.map +1 -1
  101. package/dist/cache/entities/IdTokenEntity.js +57 -63
  102. package/dist/cache/entities/IdTokenEntity.js.map +1 -1
  103. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  104. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
  105. package/dist/cache/entities/RefreshTokenEntity.js +60 -66
  106. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -1
  107. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  108. package/dist/cache/entities/ServerTelemetryEntity.d.ts.map +1 -1
  109. package/dist/cache/entities/ServerTelemetryEntity.js +28 -29
  110. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -1
  111. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  112. package/dist/cache/entities/ThrottlingEntity.js +24 -26
  113. package/dist/cache/entities/ThrottlingEntity.js.map +1 -1
  114. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  115. package/dist/cache/interface/ICacheManager.d.ts.map +1 -1
  116. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  117. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  118. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  119. package/dist/cache/persistence/TokenCacheContext.d.ts.map +1 -1
  120. package/dist/cache/persistence/TokenCacheContext.js +26 -35
  121. package/dist/cache/persistence/TokenCacheContext.js.map +1 -1
  122. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  123. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  124. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  125. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  126. package/dist/client/AuthorizationCodeClient.js +435 -478
  127. package/dist/client/AuthorizationCodeClient.js.map +1 -1
  128. package/dist/client/BaseClient.d.ts +50 -50
  129. package/dist/client/BaseClient.d.ts.map +1 -1
  130. package/dist/client/BaseClient.js +93 -101
  131. package/dist/client/BaseClient.js.map +1 -1
  132. package/dist/client/RefreshTokenClient.d.ts +34 -34
  133. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  134. package/dist/client/RefreshTokenClient.js +241 -274
  135. package/dist/client/RefreshTokenClient.js.map +1 -1
  136. package/dist/client/SilentFlowClient.d.ts +24 -24
  137. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  138. package/dist/client/SilentFlowClient.js +95 -123
  139. package/dist/client/SilentFlowClient.js.map +1 -1
  140. package/dist/config/AppTokenProvider.d.ts +38 -38
  141. package/dist/config/AppTokenProvider.d.ts.map +1 -1
  142. package/dist/config/ClientConfiguration.d.ts +133 -133
  143. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  144. package/dist/config/ClientConfiguration.js +88 -91
  145. package/dist/config/ClientConfiguration.js.map +1 -1
  146. package/dist/crypto/ICrypto.d.ts +62 -62
  147. package/dist/crypto/ICrypto.d.ts.map +1 -1
  148. package/dist/crypto/ICrypto.js +42 -73
  149. package/dist/crypto/ICrypto.js.map +1 -1
  150. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  151. package/dist/crypto/JoseHeader.d.ts +21 -21
  152. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  153. package/dist/crypto/JoseHeader.js +37 -38
  154. package/dist/crypto/JoseHeader.js.map +1 -1
  155. package/dist/crypto/PopTokenGenerator.d.ts +57 -57
  156. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  157. package/dist/crypto/PopTokenGenerator.js +84 -108
  158. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  159. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  160. package/dist/crypto/SignedHttpRequest.d.ts.map +1 -1
  161. package/dist/error/AuthError.d.ts +47 -47
  162. package/dist/error/AuthError.d.ts.map +1 -1
  163. package/dist/error/AuthError.js +52 -55
  164. package/dist/error/AuthError.js.map +1 -1
  165. package/dist/error/ClientAuthError.d.ts +412 -404
  166. package/dist/error/ClientAuthError.d.ts.map +1 -1
  167. package/dist/error/ClientAuthError.js +520 -514
  168. package/dist/error/ClientAuthError.js.map +1 -1
  169. package/dist/error/ClientConfigurationError.d.ts +198 -198
  170. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  171. package/dist/error/ClientConfigurationError.js +250 -254
  172. package/dist/error/ClientConfigurationError.js.map +1 -1
  173. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  174. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  175. package/dist/error/InteractionRequiredAuthError.js +79 -78
  176. package/dist/error/InteractionRequiredAuthError.js.map +1 -1
  177. package/dist/error/JoseHeaderError.d.ts +28 -28
  178. package/dist/error/JoseHeaderError.d.ts.map +1 -1
  179. package/dist/error/JoseHeaderError.js +40 -44
  180. package/dist/error/JoseHeaderError.js.map +1 -1
  181. package/dist/error/ServerError.d.ts +7 -7
  182. package/dist/error/ServerError.d.ts.map +1 -1
  183. package/dist/error/ServerError.js +15 -19
  184. package/dist/error/ServerError.js.map +1 -1
  185. package/dist/index.cjs.js +8890 -9111
  186. package/dist/index.cjs.js.map +1 -1
  187. package/dist/index.d.ts +93 -94
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +5 -6
  190. package/dist/index.js.map +1 -1
  191. package/dist/logger/Logger.d.ts +95 -95
  192. package/dist/logger/Logger.d.ts.map +1 -1
  193. package/dist/logger/Logger.js +198 -188
  194. package/dist/logger/Logger.js.map +1 -1
  195. package/dist/network/INetworkModule.d.ts +29 -29
  196. package/dist/network/INetworkModule.d.ts.map +1 -1
  197. package/dist/network/INetworkModule.js +14 -14
  198. package/dist/network/INetworkModule.js.map +1 -1
  199. package/dist/network/NetworkManager.d.ts +32 -31
  200. package/dist/network/NetworkManager.d.ts.map +1 -1
  201. package/dist/network/NetworkManager.js +34 -48
  202. package/dist/network/NetworkManager.js.map +1 -1
  203. package/dist/network/RequestThumbprint.d.ts +16 -16
  204. package/dist/network/RequestThumbprint.d.ts.map +1 -1
  205. package/dist/network/ThrottlingUtils.d.ts +41 -41
  206. package/dist/network/ThrottlingUtils.d.ts.map +1 -1
  207. package/dist/network/ThrottlingUtils.js +95 -94
  208. package/dist/network/ThrottlingUtils.js.map +1 -1
  209. package/dist/packageMetadata.d.ts +2 -2
  210. package/dist/packageMetadata.d.ts.map +1 -1
  211. package/dist/packageMetadata.js +4 -4
  212. package/dist/packageMetadata.js.map +1 -1
  213. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  214. package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -1
  215. package/dist/request/AuthenticationHeaderParser.js +56 -57
  216. package/dist/request/AuthenticationHeaderParser.js.map +1 -1
  217. package/dist/request/BaseAuthRequest.d.ts +37 -37
  218. package/dist/request/BaseAuthRequest.d.ts.map +1 -1
  219. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  220. package/dist/request/CommonAuthorizationCodeRequest.d.ts.map +1 -1
  221. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  222. package/dist/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  223. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  224. package/dist/request/CommonClientCredentialRequest.d.ts.map +1 -1
  225. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  226. package/dist/request/CommonDeviceCodeRequest.d.ts.map +1 -1
  227. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  228. package/dist/request/CommonEndSessionRequest.d.ts.map +1 -1
  229. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  230. package/dist/request/CommonOnBehalfOfRequest.d.ts.map +1 -1
  231. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  232. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  233. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  234. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  235. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  236. package/dist/request/CommonUsernamePasswordRequest.d.ts.map +1 -1
  237. package/dist/request/NativeRequest.d.ts +19 -19
  238. package/dist/request/NativeRequest.d.ts.map +1 -1
  239. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  240. package/dist/request/NativeSignOutRequest.d.ts.map +1 -1
  241. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  242. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  243. package/dist/request/RequestParameterBuilder.js +376 -378
  244. package/dist/request/RequestParameterBuilder.js.map +1 -1
  245. package/dist/request/RequestValidator.d.ts +33 -33
  246. package/dist/request/RequestValidator.d.ts.map +1 -1
  247. package/dist/request/RequestValidator.js +84 -89
  248. package/dist/request/RequestValidator.js.map +1 -1
  249. package/dist/request/ScopeSet.d.ts +88 -88
  250. package/dist/request/ScopeSet.d.ts.map +1 -1
  251. package/dist/request/ScopeSet.js +198 -198
  252. package/dist/request/ScopeSet.js.map +1 -1
  253. package/dist/response/AuthenticationResult.d.ts +39 -39
  254. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  255. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  256. package/dist/response/AuthorizationCodePayload.d.ts.map +1 -1
  257. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  258. package/dist/response/DeviceCodeResponse.d.ts.map +1 -1
  259. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  260. package/dist/response/ExternalTokenResponse.d.ts.map +1 -1
  261. package/dist/response/IMDSBadResponse.d.ts +4 -4
  262. package/dist/response/IMDSBadResponse.d.ts.map +1 -1
  263. package/dist/response/ResponseHandler.d.ts +72 -72
  264. package/dist/response/ResponseHandler.d.ts.map +1 -1
  265. package/dist/response/ResponseHandler.js +301 -286
  266. package/dist/response/ResponseHandler.js.map +1 -1
  267. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  268. package/dist/response/ServerAuthorizationCodeResponse.d.ts.map +1 -1
  269. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  270. package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
  271. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -43
  272. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  273. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  274. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -197
  275. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  276. package/dist/telemetry/performance/PerformanceClient.js +407 -402
  277. package/dist/telemetry/performance/PerformanceClient.js.map +1 -1
  278. package/dist/telemetry/performance/PerformanceEvent.d.ts +439 -439
  279. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  280. package/dist/telemetry/performance/PerformanceEvent.js +227 -227
  281. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  282. package/dist/telemetry/performance/StubPerformanceClient.d.ts +19 -17
  283. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  284. package/dist/telemetry/performance/StubPerformanceClient.js +37 -46
  285. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  286. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -66
  287. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  288. package/dist/telemetry/server/ServerTelemetryManager.js +199 -161
  289. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
  290. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  291. package/dist/telemetry/server/ServerTelemetryRequest.d.ts.map +1 -1
  292. package/dist/url/IUri.d.ts +12 -12
  293. package/dist/url/UrlString.d.ts +70 -70
  294. package/dist/url/UrlString.d.ts.map +1 -1
  295. package/dist/url/UrlString.js +243 -232
  296. package/dist/url/UrlString.js.map +1 -1
  297. package/dist/utils/Constants.d.ts +331 -331
  298. package/dist/utils/Constants.d.ts.map +1 -1
  299. package/dist/utils/Constants.js +374 -373
  300. package/dist/utils/Constants.js.map +1 -1
  301. package/dist/utils/MsalTypes.d.ts +6 -6
  302. package/dist/utils/MsalTypes.d.ts.map +1 -1
  303. package/dist/utils/ProtocolUtils.d.ts +42 -42
  304. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  305. package/dist/utils/ProtocolUtils.js +72 -69
  306. package/dist/utils/ProtocolUtils.js.map +1 -1
  307. package/dist/utils/StringUtils.d.ts +53 -53
  308. package/dist/utils/StringUtils.d.ts.map +1 -1
  309. package/dist/utils/StringUtils.js +125 -123
  310. package/dist/utils/StringUtils.js.map +1 -1
  311. package/dist/utils/TimeUtils.d.ts +27 -27
  312. package/dist/utils/TimeUtils.d.ts.map +1 -1
  313. package/dist/utils/TimeUtils.js +46 -49
  314. package/dist/utils/TimeUtils.js.map +1 -1
  315. package/package.json +10 -7
  316. package/dist/_virtual/_tslib.js +0 -90
  317. package/dist/_virtual/_tslib.js.map +0 -1
  318. package/dist/client/ClientCredentialClient.d.ts +0 -38
  319. package/dist/client/ClientCredentialClient.d.ts.map +0 -1
  320. package/dist/client/ClientCredentialClient.js +0 -203
  321. package/dist/client/ClientCredentialClient.js.map +0 -1
  322. package/dist/client/DeviceCodeClient.d.ts +0 -57
  323. package/dist/client/DeviceCodeClient.d.ts.map +0 -1
  324. package/dist/client/DeviceCodeClient.js +0 -250
  325. package/dist/client/DeviceCodeClient.js.map +0 -1
  326. package/dist/client/OnBehalfOfClient.d.ts +0 -51
  327. package/dist/client/OnBehalfOfClient.d.ts.map +0 -1
  328. package/dist/client/OnBehalfOfClient.js +0 -248
  329. package/dist/client/OnBehalfOfClient.js.map +0 -1
  330. package/dist/client/UsernamePasswordClient.d.ts +0 -29
  331. package/dist/client/UsernamePasswordClient.d.ts.map +0 -1
  332. package/dist/client/UsernamePasswordClient.js +0 -129
  333. package/dist/client/UsernamePasswordClient.js.map +0 -1
@@ -1,241 +1,252 @@
1
- /*! @azure/msal-common v13.0.0 2023-05-01 */
1
+ /*! @azure/msal-common v14.0.0-alpha.2 2023-05-17 */
2
2
  'use strict';
3
3
  import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
4
4
  import { ClientAuthError } from '../error/ClientAuthError.js';
5
5
  import { StringUtils } from '../utils/StringUtils.js';
6
6
  import { AADAuthorityConstants, Constants } from '../utils/Constants.js';
7
7
 
8
- /*
9
- * Copyright (c) Microsoft Corporation. All rights reserved.
10
- * Licensed under the MIT License.
11
- */
12
- /**
13
- * Url object class which can perform various transformations on url strings.
14
- */
15
- var UrlString = /** @class */ (function () {
16
- function UrlString(url) {
17
- this._urlString = url;
18
- if (StringUtils.isEmpty(this._urlString)) {
19
- // Throws error if url is empty
20
- throw ClientConfigurationError.createUrlEmptyError();
21
- }
22
- if (StringUtils.isEmpty(this.getHash())) {
23
- this._urlString = UrlString.canonicalizeUri(url);
24
- }
25
- }
26
- Object.defineProperty(UrlString.prototype, "urlString", {
27
- get: function () {
28
- return this._urlString;
29
- },
30
- enumerable: false,
31
- configurable: true
32
- });
33
- /**
34
- * Ensure urls are lower case and end with a / character.
35
- * @param url
36
- */
37
- UrlString.canonicalizeUri = function (url) {
38
- if (url) {
39
- var lowerCaseUrl = url.toLowerCase();
40
- if (StringUtils.endsWith(lowerCaseUrl, "?")) {
41
- lowerCaseUrl = lowerCaseUrl.slice(0, -1);
42
- }
43
- else if (StringUtils.endsWith(lowerCaseUrl, "?/")) {
44
- lowerCaseUrl = lowerCaseUrl.slice(0, -2);
45
- }
46
- if (!StringUtils.endsWith(lowerCaseUrl, "/")) {
47
- lowerCaseUrl += "/";
48
- }
49
- return lowerCaseUrl;
50
- }
51
- return url;
52
- };
53
- /**
54
- * Throws if urlString passed is not a valid authority URI string.
55
- */
56
- UrlString.prototype.validateAsUri = function () {
57
- // Attempts to parse url for uri components
58
- var components;
59
- try {
60
- components = this.getUrlComponents();
61
- }
62
- catch (e) {
63
- throw ClientConfigurationError.createUrlParseError(e);
64
- }
65
- // Throw error if URI or path segments are not parseable.
66
- if (!components.HostNameAndPort || !components.PathSegments) {
67
- throw ClientConfigurationError.createUrlParseError("Given url string: " + this.urlString);
68
- }
69
- // Throw error if uri is insecure.
70
- if (!components.Protocol || components.Protocol.toLowerCase() !== "https:") {
71
- throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);
72
- }
73
- };
74
- /**
75
- * Given a url and a query string return the url with provided query string appended
76
- * @param url
77
- * @param queryString
78
- */
79
- UrlString.appendQueryString = function (url, queryString) {
80
- if (StringUtils.isEmpty(queryString)) {
81
- return url;
82
- }
83
- return url.indexOf("?") < 0 ? url + "?" + queryString : url + "&" + queryString;
84
- };
85
- /**
86
- * Returns a url with the hash removed
87
- * @param url
88
- */
89
- UrlString.removeHashFromUrl = function (url) {
90
- return UrlString.canonicalizeUri(url.split("#")[0]);
91
- };
92
- /**
93
- * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d
94
- * @param href The url
95
- * @param tenantId The tenant id to replace
96
- */
97
- UrlString.prototype.replaceTenantPath = function (tenantId) {
98
- var urlObject = this.getUrlComponents();
99
- var pathArray = urlObject.PathSegments;
100
- if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {
101
- pathArray[0] = tenantId;
102
- }
103
- return UrlString.constructAuthorityUriFromObject(urlObject);
104
- };
105
- /**
106
- * Returns the anchor part(#) of the URL
107
- */
108
- UrlString.prototype.getHash = function () {
109
- return UrlString.parseHash(this.urlString);
110
- };
111
- /**
112
- * Parses out the components from a url string.
113
- * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.
114
- */
115
- UrlString.prototype.getUrlComponents = function () {
116
- // https://gist.github.com/curtisz/11139b2cfcaef4a261e0
117
- var regEx = RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?");
118
- // If url string does not match regEx, we throw an error
119
- var match = this.urlString.match(regEx);
120
- if (!match) {
121
- throw ClientConfigurationError.createUrlParseError("Given url string: " + this.urlString);
122
- }
123
- // Url component object
124
- var urlComponents = {
125
- Protocol: match[1],
126
- HostNameAndPort: match[4],
127
- AbsolutePath: match[5],
128
- QueryString: match[7]
129
- };
130
- var pathSegments = urlComponents.AbsolutePath.split("/");
131
- pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements
132
- urlComponents.PathSegments = pathSegments;
133
- if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith("/")) {
134
- urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);
135
- }
136
- return urlComponents;
137
- };
138
- UrlString.getDomainFromUrl = function (url) {
139
- var regEx = RegExp("^([^:/?#]+://)?([^/?#]*)");
140
- var match = url.match(regEx);
141
- if (!match) {
142
- throw ClientConfigurationError.createUrlParseError("Given url string: " + url);
143
- }
144
- return match[2];
145
- };
146
- UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {
147
- if (relativeUrl[0] === Constants.FORWARD_SLASH) {
148
- var url = new UrlString(baseUrl);
149
- var baseComponents = url.getUrlComponents();
150
- return baseComponents.Protocol + "//" + baseComponents.HostNameAndPort + relativeUrl;
151
- }
152
- return relativeUrl;
153
- };
154
- /**
155
- * Parses hash string from given string. Returns empty string if no hash symbol is found.
156
- * @param hashString
157
- */
158
- UrlString.parseHash = function (hashString) {
159
- var hashIndex1 = hashString.indexOf("#");
160
- var hashIndex2 = hashString.indexOf("#/");
161
- if (hashIndex2 > -1) {
162
- return hashString.substring(hashIndex2 + 2);
163
- }
164
- else if (hashIndex1 > -1) {
165
- return hashString.substring(hashIndex1 + 1);
166
- }
167
- return Constants.EMPTY_STRING;
168
- };
169
- /**
170
- * Parses query string from given string. Returns empty string if no query symbol is found.
171
- * @param queryString
172
- */
173
- UrlString.parseQueryString = function (queryString) {
174
- var queryIndex1 = queryString.indexOf("?");
175
- var queryIndex2 = queryString.indexOf("/?");
176
- if (queryIndex2 > -1) {
177
- return queryString.substring(queryIndex2 + 2);
178
- }
179
- else if (queryIndex1 > -1) {
180
- return queryString.substring(queryIndex1 + 1);
181
- }
182
- return Constants.EMPTY_STRING;
183
- };
184
- UrlString.constructAuthorityUriFromObject = function (urlObject) {
185
- return new UrlString(urlObject.Protocol + "//" + urlObject.HostNameAndPort + "/" + urlObject.PathSegments.join("/"));
186
- };
187
- /**
188
- * Returns URL hash as server auth code response object.
189
- */
190
- UrlString.getDeserializedHash = function (hash) {
191
- // Check if given hash is empty
192
- if (StringUtils.isEmpty(hash)) {
193
- return {};
194
- }
195
- // Strip the # symbol if present
196
- var parsedHash = UrlString.parseHash(hash);
197
- // If # symbol was not present, above will return empty string, so give original hash value
198
- var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);
199
- // Check if deserialization didn't work
200
- if (!deserializedHash) {
201
- throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));
202
- }
203
- return deserializedHash;
204
- };
205
- /**
206
- * Returns URL query string as server auth code response object.
207
- */
208
- UrlString.getDeserializedQueryString = function (query) {
209
- // Check if given query is empty
210
- if (StringUtils.isEmpty(query)) {
211
- return {};
212
- }
213
- // Strip the ? symbol if present
214
- var parsedQueryString = UrlString.parseQueryString(query);
215
- // If ? symbol was not present, above will return empty string, so give original query value
216
- var deserializedQueryString = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedQueryString) ? query : parsedQueryString);
217
- // Check if deserialization didn't work
218
- if (!deserializedQueryString) {
219
- throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedQueryString));
220
- }
221
- return deserializedQueryString;
222
- };
223
- /**
224
- * Check if the hash of the URL string contains known properties
225
- */
226
- UrlString.hashContainsKnownProperties = function (hash) {
227
- if (StringUtils.isEmpty(hash) || hash.indexOf("=") < 0) {
228
- // Hash doesn't contain key/value pairs
229
- return false;
230
- }
231
- var parameters = UrlString.getDeserializedHash(hash);
232
- return !!(parameters.code ||
233
- parameters.error_description ||
234
- parameters.error ||
235
- parameters.state);
236
- };
237
- return UrlString;
238
- }());
8
+ /*
9
+ * Copyright (c) Microsoft Corporation. All rights reserved.
10
+ * Licensed under the MIT License.
11
+ */
12
+ /**
13
+ * Url object class which can perform various transformations on url strings.
14
+ */
15
+ class UrlString {
16
+ get urlString() {
17
+ return this._urlString;
18
+ }
19
+ constructor(url) {
20
+ this._urlString = url;
21
+ if (StringUtils.isEmpty(this._urlString)) {
22
+ // Throws error if url is empty
23
+ throw ClientConfigurationError.createUrlEmptyError();
24
+ }
25
+ if (StringUtils.isEmpty(this.getHash())) {
26
+ this._urlString = UrlString.canonicalizeUri(url);
27
+ }
28
+ }
29
+ /**
30
+ * Ensure urls are lower case and end with a / character.
31
+ * @param url
32
+ */
33
+ static canonicalizeUri(url) {
34
+ if (url) {
35
+ let lowerCaseUrl = url.toLowerCase();
36
+ if (StringUtils.endsWith(lowerCaseUrl, "?")) {
37
+ lowerCaseUrl = lowerCaseUrl.slice(0, -1);
38
+ }
39
+ else if (StringUtils.endsWith(lowerCaseUrl, "?/")) {
40
+ lowerCaseUrl = lowerCaseUrl.slice(0, -2);
41
+ }
42
+ if (!StringUtils.endsWith(lowerCaseUrl, "/")) {
43
+ lowerCaseUrl += "/";
44
+ }
45
+ return lowerCaseUrl;
46
+ }
47
+ return url;
48
+ }
49
+ /**
50
+ * Throws if urlString passed is not a valid authority URI string.
51
+ */
52
+ validateAsUri() {
53
+ // Attempts to parse url for uri components
54
+ let components;
55
+ try {
56
+ components = this.getUrlComponents();
57
+ }
58
+ catch (e) {
59
+ throw ClientConfigurationError.createUrlParseError(e);
60
+ }
61
+ // Throw error if URI or path segments are not parseable.
62
+ if (!components.HostNameAndPort || !components.PathSegments) {
63
+ throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);
64
+ }
65
+ // Throw error if uri is insecure.
66
+ if (!components.Protocol ||
67
+ components.Protocol.toLowerCase() !== "https:") {
68
+ throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);
69
+ }
70
+ }
71
+ /**
72
+ * Given a url and a query string return the url with provided query string appended
73
+ * @param url
74
+ * @param queryString
75
+ */
76
+ static appendQueryString(url, queryString) {
77
+ if (StringUtils.isEmpty(queryString)) {
78
+ return url;
79
+ }
80
+ return url.indexOf("?") < 0
81
+ ? `${url}?${queryString}`
82
+ : `${url}&${queryString}`;
83
+ }
84
+ /**
85
+ * Returns a url with the hash removed
86
+ * @param url
87
+ */
88
+ static removeHashFromUrl(url) {
89
+ return UrlString.canonicalizeUri(url.split("#")[0]);
90
+ }
91
+ /**
92
+ * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d
93
+ * @param href The url
94
+ * @param tenantId The tenant id to replace
95
+ */
96
+ replaceTenantPath(tenantId) {
97
+ const urlObject = this.getUrlComponents();
98
+ const pathArray = urlObject.PathSegments;
99
+ if (tenantId &&
100
+ pathArray.length !== 0 &&
101
+ (pathArray[0] === AADAuthorityConstants.COMMON ||
102
+ pathArray[0] === AADAuthorityConstants.ORGANIZATIONS)) {
103
+ pathArray[0] = tenantId;
104
+ }
105
+ return UrlString.constructAuthorityUriFromObject(urlObject);
106
+ }
107
+ /**
108
+ * Returns the anchor part(#) of the URL
109
+ */
110
+ getHash() {
111
+ return UrlString.parseHash(this.urlString);
112
+ }
113
+ /**
114
+ * Parses out the components from a url string.
115
+ * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.
116
+ */
117
+ getUrlComponents() {
118
+ // https://gist.github.com/curtisz/11139b2cfcaef4a261e0
119
+ const regEx = RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?");
120
+ // If url string does not match regEx, we throw an error
121
+ const match = this.urlString.match(regEx);
122
+ if (!match) {
123
+ throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);
124
+ }
125
+ // Url component object
126
+ const urlComponents = {
127
+ Protocol: match[1],
128
+ HostNameAndPort: match[4],
129
+ AbsolutePath: match[5],
130
+ QueryString: match[7],
131
+ };
132
+ let pathSegments = urlComponents.AbsolutePath.split("/");
133
+ pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements
134
+ urlComponents.PathSegments = pathSegments;
135
+ if (!StringUtils.isEmpty(urlComponents.QueryString) &&
136
+ urlComponents.QueryString.endsWith("/")) {
137
+ urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);
138
+ }
139
+ return urlComponents;
140
+ }
141
+ static getDomainFromUrl(url) {
142
+ const regEx = RegExp("^([^:/?#]+://)?([^/?#]*)");
143
+ const match = url.match(regEx);
144
+ if (!match) {
145
+ throw ClientConfigurationError.createUrlParseError(`Given url string: ${url}`);
146
+ }
147
+ return match[2];
148
+ }
149
+ static getAbsoluteUrl(relativeUrl, baseUrl) {
150
+ if (relativeUrl[0] === Constants.FORWARD_SLASH) {
151
+ const url = new UrlString(baseUrl);
152
+ const baseComponents = url.getUrlComponents();
153
+ return (baseComponents.Protocol +
154
+ "//" +
155
+ baseComponents.HostNameAndPort +
156
+ relativeUrl);
157
+ }
158
+ return relativeUrl;
159
+ }
160
+ /**
161
+ * Parses hash string from given string. Returns empty string if no hash symbol is found.
162
+ * @param hashString
163
+ */
164
+ static parseHash(hashString) {
165
+ const hashIndex1 = hashString.indexOf("#");
166
+ const hashIndex2 = hashString.indexOf("#/");
167
+ if (hashIndex2 > -1) {
168
+ return hashString.substring(hashIndex2 + 2);
169
+ }
170
+ else if (hashIndex1 > -1) {
171
+ return hashString.substring(hashIndex1 + 1);
172
+ }
173
+ return Constants.EMPTY_STRING;
174
+ }
175
+ /**
176
+ * Parses query string from given string. Returns empty string if no query symbol is found.
177
+ * @param queryString
178
+ */
179
+ static parseQueryString(queryString) {
180
+ const queryIndex1 = queryString.indexOf("?");
181
+ const queryIndex2 = queryString.indexOf("/?");
182
+ if (queryIndex2 > -1) {
183
+ return queryString.substring(queryIndex2 + 2);
184
+ }
185
+ else if (queryIndex1 > -1) {
186
+ return queryString.substring(queryIndex1 + 1);
187
+ }
188
+ return Constants.EMPTY_STRING;
189
+ }
190
+ static constructAuthorityUriFromObject(urlObject) {
191
+ return new UrlString(urlObject.Protocol +
192
+ "//" +
193
+ urlObject.HostNameAndPort +
194
+ "/" +
195
+ urlObject.PathSegments.join("/"));
196
+ }
197
+ /**
198
+ * Returns URL hash as server auth code response object.
199
+ */
200
+ static getDeserializedHash(hash) {
201
+ // Check if given hash is empty
202
+ if (StringUtils.isEmpty(hash)) {
203
+ return {};
204
+ }
205
+ // Strip the # symbol if present
206
+ const parsedHash = UrlString.parseHash(hash);
207
+ // If # symbol was not present, above will return empty string, so give original hash value
208
+ const deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);
209
+ // Check if deserialization didn't work
210
+ if (!deserializedHash) {
211
+ throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));
212
+ }
213
+ return deserializedHash;
214
+ }
215
+ /**
216
+ * Returns URL query string as server auth code response object.
217
+ */
218
+ static getDeserializedQueryString(query) {
219
+ // Check if given query is empty
220
+ if (StringUtils.isEmpty(query)) {
221
+ return {};
222
+ }
223
+ // Strip the ? symbol if present
224
+ const parsedQueryString = UrlString.parseQueryString(query);
225
+ // If ? symbol was not present, above will return empty string, so give original query value
226
+ const deserializedQueryString = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedQueryString)
227
+ ? query
228
+ : parsedQueryString);
229
+ // Check if deserialization didn't work
230
+ if (!deserializedQueryString) {
231
+ throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedQueryString));
232
+ }
233
+ return deserializedQueryString;
234
+ }
235
+ /**
236
+ * Check if the hash of the URL string contains known properties
237
+ */
238
+ static hashContainsKnownProperties(hash) {
239
+ if (StringUtils.isEmpty(hash) || hash.indexOf("=") < 0) {
240
+ // Hash doesn't contain key/value pairs
241
+ return false;
242
+ }
243
+ const parameters = UrlString.getDeserializedHash(hash);
244
+ return !!(parameters.code ||
245
+ parameters.error_description ||
246
+ parameters.error ||
247
+ parameters.state);
248
+ }
249
+ }
239
250
 
240
251
  export { UrlString };
241
252
  //# sourceMappingURL=UrlString.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UrlString.js","sources":["../../src/url/UrlString.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ServerAuthorizationCodeResponse } from \"../response/ServerAuthorizationCodeResponse\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { IUri } from \"./IUri\";\nimport { AADAuthorityConstants, Constants } from \"../utils/Constants\";\n\n/**\n * Url object class which can perform various transformations on url strings.\n */\nexport class UrlString {\n\n // internal url string field\n private _urlString: string;\n public get urlString(): string {\n return this._urlString;\n }\n\n constructor(url: string) {\n this._urlString = url;\n if (StringUtils.isEmpty(this._urlString)) {\n // Throws error if url is empty\n throw ClientConfigurationError.createUrlEmptyError();\n }\n\n if (StringUtils.isEmpty(this.getHash())) {\n this._urlString = UrlString.canonicalizeUri(url);\n }\n }\n\n /**\n * Ensure urls are lower case and end with a / character.\n * @param url\n */\n static canonicalizeUri(url: string): string {\n if (url) {\n let lowerCaseUrl = url.toLowerCase();\n\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\n } else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\n }\n\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\n lowerCaseUrl += \"/\";\n }\n\n return lowerCaseUrl;\n }\n\n return url;\n }\n\n /**\n * Throws if urlString passed is not a valid authority URI string.\n */\n validateAsUri(): void {\n // Attempts to parse url for uri components\n let components;\n try {\n components = this.getUrlComponents();\n } catch (e) {\n throw ClientConfigurationError.createUrlParseError(e);\n }\n\n // Throw error if URI or path segments are not parseable.\n if (!components.HostNameAndPort || !components.PathSegments) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Throw error if uri is insecure.\n if(!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\n }\n }\n\n /**\n * Given a url and a query string return the url with provided query string appended\n * @param url\n * @param queryString\n */\n static appendQueryString(url: string, queryString: string): string {\n if (StringUtils.isEmpty(queryString)) {\n return url;\n }\n\n return url.indexOf(\"?\") < 0 ? `${url}?${queryString}` : `${url}&${queryString}`;\n }\n\n /**\n * Returns a url with the hash removed\n * @param url\n */\n static removeHashFromUrl(url: string): string {\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\n }\n\n /**\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\n * @param href The url\n * @param tenantId The tenant id to replace\n */\n replaceTenantPath(tenantId: string): UrlString {\n const urlObject = this.getUrlComponents();\n const pathArray = urlObject.PathSegments;\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\n pathArray[0] = tenantId;\n }\n return UrlString.constructAuthorityUriFromObject(urlObject);\n }\n\n /**\n * Returns the anchor part(#) of the URL\n */\n getHash(): string {\n return UrlString.parseHash(this.urlString);\n }\n\n /**\n * Parses out the components from a url string.\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\n */\n getUrlComponents(): IUri {\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\n const regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\n\n // If url string does not match regEx, we throw an error\n const match = this.urlString.match(regEx);\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Url component object\n const urlComponents = {\n Protocol: match[1],\n HostNameAndPort: match[4],\n AbsolutePath: match[5],\n QueryString: match[7]\n } as IUri;\n\n let pathSegments = urlComponents.AbsolutePath.split(\"/\");\n pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements\n urlComponents.PathSegments = pathSegments;\n\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length-1);\n }\n return urlComponents;\n }\n\n static getDomainFromUrl(url: string): string {\n const regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\n\n const match = url.match(regEx);\n\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${url}`);\n }\n\n return match[2];\n }\n\n static getAbsoluteUrl(relativeUrl: string, baseUrl: string): string {\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\n const url = new UrlString(baseUrl);\n const baseComponents = url.getUrlComponents();\n\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\n }\n\n return relativeUrl;\n }\n\n /**\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\n * @param hashString\n */\n static parseHash(hashString: string): string {\n const hashIndex1 = hashString.indexOf(\"#\");\n const hashIndex2 = hashString.indexOf(\"#/\");\n if (hashIndex2 > -1) {\n return hashString.substring(hashIndex2 + 2);\n } else if (hashIndex1 > -1) {\n return hashString.substring(hashIndex1 + 1);\n }\n return Constants.EMPTY_STRING;\n }\n\n /**\n * Parses query string from given string. Returns empty string if no query symbol is found.\n * @param queryString\n */\n static parseQueryString(queryString: string): string {\n const queryIndex1 = queryString.indexOf(\"?\");\n const queryIndex2 = queryString.indexOf(\"/?\");\n if (queryIndex2 > -1) {\n return queryString.substring(queryIndex2 + 2);\n } else if (queryIndex1 > -1) {\n return queryString.substring(queryIndex1 + 1);\n }\n return Constants.EMPTY_STRING;\n }\n\n static constructAuthorityUriFromObject(urlObject: IUri): UrlString {\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\n }\n\n /**\n * Returns URL hash as server auth code response object.\n */\n static getDeserializedHash(hash: string): ServerAuthorizationCodeResponse {\n // Check if given hash is empty\n if (StringUtils.isEmpty(hash)) {\n return {};\n }\n // Strip the # symbol if present\n const parsedHash = UrlString.parseHash(hash);\n // If # symbol was not present, above will return empty string, so give original hash value\n const deserializedHash: ServerAuthorizationCodeResponse = StringUtils.queryStringToObject<ServerAuthorizationCodeResponse>(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\n // Check if deserialization didn't work\n if (!deserializedHash) {\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\n }\n return deserializedHash;\n }\n\n /**\n * Returns URL query string as server auth code response object.\n */\n static getDeserializedQueryString(query: string): ServerAuthorizationCodeResponse {\n // Check if given query is empty\n if (StringUtils.isEmpty(query)) {\n return {};\n }\n // Strip the ? symbol if present\n const parsedQueryString = UrlString.parseQueryString(query);\n // If ? symbol was not present, above will return empty string, so give original query value\n const deserializedQueryString: ServerAuthorizationCodeResponse = StringUtils.queryStringToObject<ServerAuthorizationCodeResponse>(StringUtils.isEmpty(parsedQueryString) ? query : parsedQueryString);\n // Check if deserialization didn't work\n if (!deserializedQueryString) {\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedQueryString));\n }\n return deserializedQueryString;\n }\n\n /**\n * Check if the hash of the URL string contains known properties\n */\n static hashContainsKnownProperties(hash: string): boolean {\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\n // Hash doesn't contain key/value pairs\n return false;\n }\n\n const parameters: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\n return !!(\n parameters.code ||\n parameters.error_description ||\n parameters.error ||\n parameters.state\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UrlString.js","sources":["../../src/url/UrlString.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAAA;;;AAGG;AASH;;AAEG;MACU,SAAS,CAAA;AAGlB,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;AAED,IAAA,WAAA,CAAY,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;;AAEtC,YAAA,MAAM,wBAAwB,CAAC,mBAAmB,EAAE,CAAC;AACxD,SAAA;QAED,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;YACrC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACpD,SAAA;KACJ;AAED;;;AAGG;IACH,OAAO,eAAe,CAAC,GAAW,EAAA;AAC9B,QAAA,IAAI,GAAG,EAAE;AACL,YAAA,IAAI,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAErC,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;gBACzC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;iBAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;gBACjD,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;YAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;gBAC1C,YAAY,IAAI,GAAG,CAAC;AACvB,aAAA;AAED,YAAA,OAAO,YAAY,CAAC;AACvB,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AAED;;AAEG;IACH,aAAa,GAAA;;AAET,QAAA,IAAI,UAAU,CAAC;QACf,IAAI;AACA,YAAA,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACR,YAAA,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,CAAW,CAAC,CAAC;AACnE,SAAA;;QAGD,IAAI,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YACzD,MAAM,wBAAwB,CAAC,mBAAmB,CAC9C,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,CAAE,CAAA,CACxC,CAAC;AACL,SAAA;;QAGD,IACI,CAAC,UAAU,CAAC,QAAQ;AACpB,YAAA,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAChD;YACE,MAAM,wBAAwB,CAAC,+BAA+B,CAC1D,IAAI,CAAC,SAAS,CACjB,CAAC;AACL,SAAA;KACJ;AAED;;;;AAIG;AACH,IAAA,OAAO,iBAAiB,CAAC,GAAW,EAAE,WAAmB,EAAA;AACrD,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAClC,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AAED,QAAA,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,cAAE,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,WAAW,CAAE,CAAA;AACzB,cAAE,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,WAAW,EAAE,CAAC;KACjC;AAED;;;AAGG;IACH,OAAO,iBAAiB,CAAC,GAAW,EAAA;AAChC,QAAA,OAAO,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD;AAED;;;;AAIG;AACH,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAC9B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1C,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;AACzC,QAAA,IACI,QAAQ;YACR,SAAS,CAAC,MAAM,KAAK,CAAC;AACtB,aAAC,SAAS,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,MAAM;gBAC1C,SAAS,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,aAAa,CAAC,EAC3D;AACE,YAAA,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,SAAS,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;KAC/D;AAED;;AAEG;IACH,OAAO,GAAA;QACH,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9C;AAED;;;AAGG;IACH,gBAAgB,GAAA;;AAEZ,QAAA,MAAM,KAAK,GAAG,MAAM,CAChB,4DAA4D,CAC/D,CAAC;;QAGF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,wBAAwB,CAAC,mBAAmB,CAC9C,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,CAAE,CAAA,CACxC,CAAC;AACL,SAAA;;AAGD,QAAA,MAAM,aAAa,GAAG;AAClB,YAAA,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAClB,YAAA,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;AACzB,YAAA,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AACtB,YAAA,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SAChB,CAAC;QAEV,IAAI,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnE,QAAA,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;QAE1C,IACI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;AAC/C,YAAA,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EACzC;AACE,YAAA,aAAa,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAC3D,CAAC,EACD,aAAa,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CACvC,CAAC;AACL,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACxB;IAED,OAAO,gBAAgB,CAAC,GAAW,EAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,wBAAwB,CAAC,mBAAmB,CAC9C,qBAAqB,GAAG,CAAA,CAAE,CAC7B,CAAC;AACL,SAAA;AAED,QAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,OAAO,cAAc,CAAC,WAAmB,EAAE,OAAe,EAAA;QACtD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,aAAa,EAAE;AAC5C,YAAA,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AACnC,YAAA,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAE9C,QACI,cAAc,CAAC,QAAQ;gBACvB,IAAI;AACJ,gBAAA,cAAc,CAAC,eAAe;AAC9B,gBAAA,WAAW,EACb;AACL,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;AAED;;;AAGG;IACH,OAAO,SAAS,CAAC,UAAkB,EAAA;QAC/B,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACjB,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACxB,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC/C,SAAA;QACD,OAAO,SAAS,CAAC,YAAY,CAAC;KACjC;AAED;;;AAGG;IACH,OAAO,gBAAgB,CAAC,WAAmB,EAAA;QACvC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;YAClB,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;YACzB,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACjD,SAAA;QACD,OAAO,SAAS,CAAC,YAAY,CAAC;KACjC;IAED,OAAO,+BAA+B,CAAC,SAAe,EAAA;AAClD,QAAA,OAAO,IAAI,SAAS,CAChB,SAAS,CAAC,QAAQ;YACd,IAAI;AACJ,YAAA,SAAS,CAAC,eAAe;YACzB,GAAG;YACH,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CACvC,CAAC;KACL;AAED;;AAEG;IACH,OAAO,mBAAmB,CAAC,IAAY,EAAA;;AAEnC,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC3B,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;QAE7C,MAAM,gBAAgB,GAClB,WAAW,CAAC,mBAAmB,CAC3B,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,UAAU,CACtD,CAAC;;QAEN,IAAI,CAAC,gBAAgB,EAAE;YACnB,MAAM,eAAe,CAAC,8BAA8B,CAChD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CACnC,CAAC;AACL,SAAA;AACD,QAAA,OAAO,gBAAgB,CAAC;KAC3B;AAED;;AAEG;IACH,OAAO,0BAA0B,CAC7B,KAAa,EAAA;;AAGb,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;;QAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;;QAE5D,MAAM,uBAAuB,GACzB,WAAW,CAAC,mBAAmB,CAC3B,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAClC,cAAE,KAAK;cACL,iBAAiB,CAC1B,CAAC;;QAEN,IAAI,CAAC,uBAAuB,EAAE;YAC1B,MAAM,eAAe,CAAC,8BAA8B,CAChD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAC1C,CAAC;AACL,SAAA;AACD,QAAA,OAAO,uBAAuB,CAAC;KAClC;AAED;;AAEG;IACH,OAAO,2BAA2B,CAAC,IAAY,EAAA;AAC3C,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;AAEpD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,MAAM,UAAU,GACZ,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACxC,QAAA,OAAO,CAAC,EACJ,UAAU,CAAC,IAAI;AACf,YAAA,UAAU,CAAC,iBAAiB;AAC5B,YAAA,UAAU,CAAC,KAAK;YAChB,UAAU,CAAC,KAAK,CACnB,CAAC;KACL;AACJ;;;;"}