azure-devops-extension-api 4.245.1 → 4.247.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 (558) hide show
  1. package/SECURITY.md +41 -0
  2. package/{AdvancedSecurity.Reporting → bin/AdvancedSecurity.Reporting}/Reporting.d.ts +48 -0
  3. package/bin/AdvancedSecurity.Reporting/Reporting.js +32 -0
  4. package/bin/AdvancedSecurity.Reporting/Reporting.min.js +1 -0
  5. package/{Alert → bin/Alert}/Alert.d.ts +8 -8
  6. package/{Alert → bin/Alert}/AlertClient.d.ts +1 -1
  7. package/{Alert → bin/Alert}/AlertClient.js +1 -1
  8. package/{Contributions → bin/Contributions}/ContributionsClient.js +2 -2
  9. package/{Contributions → bin/Contributions}/ContributionsClient.min.js +1 -1
  10. package/{ExtensionManagement → bin/ExtensionManagement}/ExtensionManagementClient.js +7 -7
  11. package/{ExtensionManagement → bin/ExtensionManagement}/ExtensionManagementClient.min.js +1 -1
  12. package/{FormInput → bin/FormInput}/FormInput.d.ts +8 -0
  13. package/bin/LICENSE +21 -0
  14. package/bin/README.md +2 -0
  15. package/{TaskAgent → bin/TaskAgent}/TaskAgent.d.ts +12 -0
  16. package/{Test → bin/Test}/Test.d.ts +31 -7
  17. package/{TestPlan → bin/TestPlan}/TestPlan.d.ts +6 -2
  18. package/{TestPlan → bin/TestPlan}/TestPlanClient.d.ts +19 -0
  19. package/{TestPlan → bin/TestPlan}/TestPlanClient.js +84 -0
  20. package/{TestPlan → bin/TestPlan}/TestPlanClient.min.js +1 -1
  21. package/{TestResults → bin/TestResults}/TestResultsClient.d.ts +8 -0
  22. package/{TestResults → bin/TestResults}/TestResultsClient.js +23 -0
  23. package/{TestResults → bin/TestResults}/TestResultsClient.min.js +1 -1
  24. package/bin/package.json +37 -0
  25. package/buildpackage.js +80 -0
  26. package/package.json +1 -1
  27. package/src/Accounts/Accounts.ts +134 -0
  28. package/src/Accounts/AccountsClient.ts +83 -0
  29. package/src/Accounts/index.ts +2 -0
  30. package/src/AdvancedSecurity.Reporting/Reporting.ts +180 -0
  31. package/src/AdvancedSecurity.Reporting/ReportingClient.ts +47 -0
  32. package/src/Alert/Alert.ts +1037 -0
  33. package/src/Alert/AlertClient.ts +330 -0
  34. package/src/Boards/Boards.ts +684 -0
  35. package/src/Boards/BoardsClient.ts +593 -0
  36. package/src/Boards/index.ts +2 -0
  37. package/src/Build/Build.ts +3416 -0
  38. package/src/Build/BuildClient.ts +2740 -0
  39. package/src/Build/BuildServices.ts +39 -0
  40. package/src/Build/index.ts +3 -0
  41. package/src/Comments/Comments.ts +330 -0
  42. package/src/Comments/index.ts +1 -0
  43. package/src/Common/Client.ts +37 -0
  44. package/src/Common/CommonServices.ts +853 -0
  45. package/src/Common/Context.d.ts +46 -0
  46. package/src/Common/Fetch.ts +239 -0
  47. package/src/Common/RestClientBase.ts +186 -0
  48. package/src/Common/System.ts +36 -0
  49. package/src/Common/SystemData.ts +135 -0
  50. package/src/Common/Util/Serialization.ts +59 -0
  51. package/src/Common/Util/Url.ts +773 -0
  52. package/src/Common/index.ts +3 -0
  53. package/src/Contributions/Contributions.ts +708 -0
  54. package/src/Contributions/ContributionsClient.ts +109 -0
  55. package/src/Contributions/index.ts +2 -0
  56. package/src/Core/Core.ts +579 -0
  57. package/src/Core/CoreClient.ts +765 -0
  58. package/src/Core/index.ts +2 -0
  59. package/src/Dashboard/Dashboard.ts +419 -0
  60. package/src/Dashboard/DashboardClient.ts +370 -0
  61. package/src/Dashboard/WidgetConfigHelpers.ts +43 -0
  62. package/src/Dashboard/WidgetContracts.ts +226 -0
  63. package/src/Dashboard/WidgetHelpers.ts +145 -0
  64. package/src/Dashboard/index.ts +5 -0
  65. package/src/DistributedTaskCommon/DistributedTaskCommon.ts +108 -0
  66. package/src/DistributedTaskCommon/index.ts +1 -0
  67. package/src/ExtensionManagement/ExtensionManagement.ts +1205 -0
  68. package/src/ExtensionManagement/ExtensionManagementClient.ts +646 -0
  69. package/src/ExtensionManagement/index.ts +2 -0
  70. package/src/Favorite/Favorite.ts +136 -0
  71. package/src/Favorite/FavoriteClient.ts +301 -0
  72. package/src/FeatureAvailability/FeatureAvailability.ts +20 -0
  73. package/src/FeatureAvailability/FeatureAvailabilityClient.ts +153 -0
  74. package/src/FeatureAvailability/index.ts +2 -0
  75. package/src/FeatureManagement/FeatureManagement.ts +166 -0
  76. package/src/FeatureManagement/FeatureManagementClient.ts +246 -0
  77. package/src/FeatureManagement/index.ts +2 -0
  78. package/src/FileContainer/FileContainer.ts +205 -0
  79. package/src/FileContainer/FileContainerClient.ts +154 -0
  80. package/src/FileContainer/index.ts +2 -0
  81. package/src/FormInput/FormInput.ts +288 -0
  82. package/src/FormInput/index.ts +1 -0
  83. package/src/Gallery/Gallery.ts +1977 -0
  84. package/src/Gallery/GalleryClient.ts +2251 -0
  85. package/src/Gallery/index.ts +2 -0
  86. package/src/Git/CodeEditorTypes.ts +335 -0
  87. package/src/Git/Git.ts +4058 -0
  88. package/src/Git/GitClient.ts +4750 -0
  89. package/src/Git/GitServices.ts +18 -0
  90. package/src/Git/index.ts +4 -0
  91. package/src/Graph/Graph.ts +572 -0
  92. package/src/Graph/GraphClient.ts +846 -0
  93. package/src/Graph/index.ts +2 -0
  94. package/src/Identities/Identities.ts +261 -0
  95. package/src/Identities/IdentityProvider.ts +90 -0
  96. package/src/Identities/IdentityService.ts +89 -0
  97. package/src/Identities/index.ts +3 -0
  98. package/src/Locations/Locations.ts +165 -0
  99. package/src/Locations/LocationsClient.ts +220 -0
  100. package/src/Locations/index.ts +2 -0
  101. package/src/Management/Management.ts +172 -0
  102. package/src/Management/ManagementClient.ts +348 -0
  103. package/src/Notification/Notification.ts +1460 -0
  104. package/src/Notification/NotificationClient.ts +477 -0
  105. package/src/Notification/index.ts +2 -0
  106. package/src/Operations/Operations.ts +86 -0
  107. package/src/Operations/OperationsClient.ts +42 -0
  108. package/src/Operations/index.ts +2 -0
  109. package/src/Pipelines/Pipelines.ts +354 -0
  110. package/src/Pipelines/PipelinesClient.ts +306 -0
  111. package/src/Policy/Policy.ts +173 -0
  112. package/src/Policy/PolicyClient.ts +315 -0
  113. package/src/Policy/index.ts +2 -0
  114. package/src/Profile/Profile.ts +187 -0
  115. package/src/Profile/ProfileClient.ts +328 -0
  116. package/src/Profile/index.ts +2 -0
  117. package/src/ProjectAnalysis/ProjectAnalysis.ts +74 -0
  118. package/src/ProjectAnalysis/ProjectAnalysisClient.ts +124 -0
  119. package/src/ProjectAnalysis/index.ts +2 -0
  120. package/src/Release/Release.ts +4237 -0
  121. package/src/Release/ReleaseClient.ts +2450 -0
  122. package/src/Release/index.ts +2 -0
  123. package/src/ResourceUsage/ResourceUsage.ts +19 -0
  124. package/src/ResourceUsage/ResourceUsageClient.ts +48 -0
  125. package/src/ServiceEndpoint/ServiceEndpoint.ts +930 -0
  126. package/src/ServiceEndpoint/ServiceEndpointClient.ts +617 -0
  127. package/src/ServiceEndpoint/index.ts +2 -0
  128. package/src/ServiceHooks/ServiceHooks.ts +759 -0
  129. package/src/ServiceHooks/ServiceHooksClient.ts +499 -0
  130. package/src/ServiceHooks/index.ts +2 -0
  131. package/src/TaskAgent/TaskAgent.ts +3896 -0
  132. package/src/TaskAgent/TaskAgentClient.ts +3918 -0
  133. package/src/TaskAgent/index.ts +2 -0
  134. package/src/Test/Test.ts +5853 -0
  135. package/src/Test/TestClient.ts +2201 -0
  136. package/src/Test/index.ts +2 -0
  137. package/src/TestPlan/TestPlan.ts +1384 -0
  138. package/src/TestPlan/TestPlanClient.ts +1367 -0
  139. package/src/TestPlan/index.ts +2 -0
  140. package/{AdvancedSecurity.Reporting/Reporting.js → src/TestResults/TestResults.ts} +7 -5
  141. package/src/TestResults/TestResultsClient.ts +3450 -0
  142. package/src/TestResults/index.ts +2 -0
  143. package/src/Tfvc/Tfvc.ts +770 -0
  144. package/src/Tfvc/TfvcClient.ts +757 -0
  145. package/src/Tfvc/index.ts +2 -0
  146. package/src/WebApi/WebApi.ts +452 -0
  147. package/src/WebApi/index.ts +1 -0
  148. package/src/Wiki/Wiki.ts +352 -0
  149. package/src/Wiki/WikiClient.ts +712 -0
  150. package/src/Wiki/index.ts +2 -0
  151. package/src/Work/Work.ts +1367 -0
  152. package/src/Work/WorkClient.ts +1489 -0
  153. package/src/Work/index.ts +2 -0
  154. package/src/WorkItemTracking/WorkItemTracking.ts +2215 -0
  155. package/src/WorkItemTracking/WorkItemTrackingClient.ts +2032 -0
  156. package/src/WorkItemTracking/WorkItemTrackingServices.ts +329 -0
  157. package/src/WorkItemTracking/index.ts +3 -0
  158. package/src/WorkItemTrackingProcess/WorkItemTrackingProcess.ts +1295 -0
  159. package/src/WorkItemTrackingProcess/WorkItemTrackingProcessClient.ts +1455 -0
  160. package/src/WorkItemTrackingProcess/index.ts +2 -0
  161. package/src/WorkItemTrackingProcessDefinitions/WorkItemTrackingProcessDefinitions.ts +606 -0
  162. package/src/WorkItemTrackingProcessDefinitions/WorkItemTrackingProcessDefinitionsClient.ts +1175 -0
  163. package/src/WorkItemTrackingProcessDefinitions/index.ts +2 -0
  164. package/src/index.ts +1 -0
  165. package/tsconfig.json +21 -0
  166. package/AdvancedSecurity.Reporting/Reporting.min.js +0 -1
  167. /package/{Accounts → bin/Accounts}/Accounts.d.ts +0 -0
  168. /package/{Accounts → bin/Accounts}/Accounts.js +0 -0
  169. /package/{Accounts → bin/Accounts}/Accounts.min.js +0 -0
  170. /package/{Accounts → bin/Accounts}/AccountsClient.d.ts +0 -0
  171. /package/{Accounts → bin/Accounts}/AccountsClient.js +0 -0
  172. /package/{Accounts → bin/Accounts}/AccountsClient.min.js +0 -0
  173. /package/{Accounts → bin/Accounts}/index.d.ts +0 -0
  174. /package/{Accounts → bin/Accounts}/index.js +0 -0
  175. /package/{Accounts → bin/Accounts}/index.min.js +0 -0
  176. /package/{AdvancedSecurity.Reporting → bin/AdvancedSecurity.Reporting}/ReportingClient.d.ts +0 -0
  177. /package/{AdvancedSecurity.Reporting → bin/AdvancedSecurity.Reporting}/ReportingClient.js +0 -0
  178. /package/{AdvancedSecurity.Reporting → bin/AdvancedSecurity.Reporting}/ReportingClient.min.js +0 -0
  179. /package/{Alert → bin/Alert}/Alert.js +0 -0
  180. /package/{Alert → bin/Alert}/Alert.min.js +0 -0
  181. /package/{Alert → bin/Alert}/AlertClient.min.js +0 -0
  182. /package/{Boards → bin/Boards}/Boards.d.ts +0 -0
  183. /package/{Boards → bin/Boards}/Boards.js +0 -0
  184. /package/{Boards → bin/Boards}/Boards.min.js +0 -0
  185. /package/{Boards → bin/Boards}/BoardsClient.d.ts +0 -0
  186. /package/{Boards → bin/Boards}/BoardsClient.js +0 -0
  187. /package/{Boards → bin/Boards}/BoardsClient.min.js +0 -0
  188. /package/{Boards → bin/Boards}/index.d.ts +0 -0
  189. /package/{Boards → bin/Boards}/index.js +0 -0
  190. /package/{Boards → bin/Boards}/index.min.js +0 -0
  191. /package/{Build → bin/Build}/Build.d.ts +0 -0
  192. /package/{Build → bin/Build}/Build.js +0 -0
  193. /package/{Build → bin/Build}/Build.min.js +0 -0
  194. /package/{Build → bin/Build}/BuildClient.d.ts +0 -0
  195. /package/{Build → bin/Build}/BuildClient.js +0 -0
  196. /package/{Build → bin/Build}/BuildClient.min.js +0 -0
  197. /package/{Build → bin/Build}/BuildServices.d.ts +0 -0
  198. /package/{Build → bin/Build}/BuildServices.js +0 -0
  199. /package/{Build → bin/Build}/BuildServices.min.js +0 -0
  200. /package/{Build → bin/Build}/index.d.ts +0 -0
  201. /package/{Build → bin/Build}/index.js +0 -0
  202. /package/{Build → bin/Build}/index.min.js +0 -0
  203. /package/{Comments → bin/Comments}/Comments.d.ts +0 -0
  204. /package/{Comments → bin/Comments}/Comments.js +0 -0
  205. /package/{Comments → bin/Comments}/Comments.min.js +0 -0
  206. /package/{Comments → bin/Comments}/index.d.ts +0 -0
  207. /package/{Comments → bin/Comments}/index.js +0 -0
  208. /package/{Comments → bin/Comments}/index.min.js +0 -0
  209. /package/{Common → bin/Common}/Client.d.ts +0 -0
  210. /package/{Common → bin/Common}/Client.js +0 -0
  211. /package/{Common → bin/Common}/Client.min.js +0 -0
  212. /package/{Common → bin/Common}/CommonServices.d.ts +0 -0
  213. /package/{Common → bin/Common}/CommonServices.js +0 -0
  214. /package/{Common → bin/Common}/CommonServices.min.js +0 -0
  215. /package/{Common → bin/Common}/Context.d.ts +0 -0
  216. /package/{Common → bin/Common}/Fetch.d.ts +0 -0
  217. /package/{Common → bin/Common}/Fetch.js +0 -0
  218. /package/{Common → bin/Common}/Fetch.min.js +0 -0
  219. /package/{Common → bin/Common}/RestClientBase.d.ts +0 -0
  220. /package/{Common → bin/Common}/RestClientBase.js +0 -0
  221. /package/{Common → bin/Common}/RestClientBase.min.js +0 -0
  222. /package/{Common → bin/Common}/System.d.ts +0 -0
  223. /package/{Common → bin/Common}/System.js +0 -0
  224. /package/{Common → bin/Common}/System.min.js +0 -0
  225. /package/{Common → bin/Common}/SystemData.d.ts +0 -0
  226. /package/{Common → bin/Common}/SystemData.js +0 -0
  227. /package/{Common → bin/Common}/SystemData.min.js +0 -0
  228. /package/{Common → bin/Common}/Util/Serialization.d.ts +0 -0
  229. /package/{Common → bin/Common}/Util/Serialization.js +0 -0
  230. /package/{Common → bin/Common}/Util/Serialization.min.js +0 -0
  231. /package/{Common → bin/Common}/Util/Url.d.ts +0 -0
  232. /package/{Common → bin/Common}/Util/Url.js +0 -0
  233. /package/{Common → bin/Common}/Util/Url.min.js +0 -0
  234. /package/{Common → bin/Common}/index.d.ts +0 -0
  235. /package/{Common → bin/Common}/index.js +0 -0
  236. /package/{Common → bin/Common}/index.min.js +0 -0
  237. /package/{Contributions → bin/Contributions}/Contributions.d.ts +0 -0
  238. /package/{Contributions → bin/Contributions}/Contributions.js +0 -0
  239. /package/{Contributions → bin/Contributions}/Contributions.min.js +0 -0
  240. /package/{Contributions → bin/Contributions}/ContributionsClient.d.ts +0 -0
  241. /package/{Contributions → bin/Contributions}/index.d.ts +0 -0
  242. /package/{Contributions → bin/Contributions}/index.js +0 -0
  243. /package/{Contributions → bin/Contributions}/index.min.js +0 -0
  244. /package/{Core → bin/Core}/Core.d.ts +0 -0
  245. /package/{Core → bin/Core}/Core.js +0 -0
  246. /package/{Core → bin/Core}/Core.min.js +0 -0
  247. /package/{Core → bin/Core}/CoreClient.d.ts +0 -0
  248. /package/{Core → bin/Core}/CoreClient.js +0 -0
  249. /package/{Core → bin/Core}/CoreClient.min.js +0 -0
  250. /package/{Core → bin/Core}/index.d.ts +0 -0
  251. /package/{Core → bin/Core}/index.js +0 -0
  252. /package/{Core → bin/Core}/index.min.js +0 -0
  253. /package/{Dashboard → bin/Dashboard}/Dashboard.d.ts +0 -0
  254. /package/{Dashboard → bin/Dashboard}/Dashboard.js +0 -0
  255. /package/{Dashboard → bin/Dashboard}/Dashboard.min.js +0 -0
  256. /package/{Dashboard → bin/Dashboard}/DashboardClient.d.ts +0 -0
  257. /package/{Dashboard → bin/Dashboard}/DashboardClient.js +0 -0
  258. /package/{Dashboard → bin/Dashboard}/DashboardClient.min.js +0 -0
  259. /package/{Dashboard → bin/Dashboard}/WidgetConfigHelpers.d.ts +0 -0
  260. /package/{Dashboard → bin/Dashboard}/WidgetConfigHelpers.js +0 -0
  261. /package/{Dashboard → bin/Dashboard}/WidgetConfigHelpers.min.js +0 -0
  262. /package/{Dashboard → bin/Dashboard}/WidgetContracts.d.ts +0 -0
  263. /package/{Dashboard → bin/Dashboard}/WidgetContracts.js +0 -0
  264. /package/{Dashboard → bin/Dashboard}/WidgetContracts.min.js +0 -0
  265. /package/{Dashboard → bin/Dashboard}/WidgetHelpers.d.ts +0 -0
  266. /package/{Dashboard → bin/Dashboard}/WidgetHelpers.js +0 -0
  267. /package/{Dashboard → bin/Dashboard}/WidgetHelpers.min.js +0 -0
  268. /package/{Dashboard → bin/Dashboard}/index.d.ts +0 -0
  269. /package/{Dashboard → bin/Dashboard}/index.js +0 -0
  270. /package/{Dashboard → bin/Dashboard}/index.min.js +0 -0
  271. /package/{DistributedTaskCommon → bin/DistributedTaskCommon}/DistributedTaskCommon.d.ts +0 -0
  272. /package/{DistributedTaskCommon → bin/DistributedTaskCommon}/DistributedTaskCommon.js +0 -0
  273. /package/{DistributedTaskCommon → bin/DistributedTaskCommon}/DistributedTaskCommon.min.js +0 -0
  274. /package/{DistributedTaskCommon → bin/DistributedTaskCommon}/index.d.ts +0 -0
  275. /package/{DistributedTaskCommon → bin/DistributedTaskCommon}/index.js +0 -0
  276. /package/{DistributedTaskCommon → bin/DistributedTaskCommon}/index.min.js +0 -0
  277. /package/{ExtensionManagement → bin/ExtensionManagement}/ExtensionManagement.d.ts +0 -0
  278. /package/{ExtensionManagement → bin/ExtensionManagement}/ExtensionManagement.js +0 -0
  279. /package/{ExtensionManagement → bin/ExtensionManagement}/ExtensionManagement.min.js +0 -0
  280. /package/{ExtensionManagement → bin/ExtensionManagement}/ExtensionManagementClient.d.ts +0 -0
  281. /package/{ExtensionManagement → bin/ExtensionManagement}/index.d.ts +0 -0
  282. /package/{ExtensionManagement → bin/ExtensionManagement}/index.js +0 -0
  283. /package/{ExtensionManagement → bin/ExtensionManagement}/index.min.js +0 -0
  284. /package/{Favorite → bin/Favorite}/Favorite.d.ts +0 -0
  285. /package/{Favorite → bin/Favorite}/Favorite.js +0 -0
  286. /package/{Favorite → bin/Favorite}/Favorite.min.js +0 -0
  287. /package/{Favorite → bin/Favorite}/FavoriteClient.d.ts +0 -0
  288. /package/{Favorite → bin/Favorite}/FavoriteClient.js +0 -0
  289. /package/{Favorite → bin/Favorite}/FavoriteClient.min.js +0 -0
  290. /package/{FeatureAvailability → bin/FeatureAvailability}/FeatureAvailability.d.ts +0 -0
  291. /package/{FeatureAvailability → bin/FeatureAvailability}/FeatureAvailability.js +0 -0
  292. /package/{FeatureAvailability → bin/FeatureAvailability}/FeatureAvailability.min.js +0 -0
  293. /package/{FeatureAvailability → bin/FeatureAvailability}/FeatureAvailabilityClient.d.ts +0 -0
  294. /package/{FeatureAvailability → bin/FeatureAvailability}/FeatureAvailabilityClient.js +0 -0
  295. /package/{FeatureAvailability → bin/FeatureAvailability}/FeatureAvailabilityClient.min.js +0 -0
  296. /package/{FeatureAvailability → bin/FeatureAvailability}/index.d.ts +0 -0
  297. /package/{FeatureAvailability → bin/FeatureAvailability}/index.js +0 -0
  298. /package/{FeatureAvailability → bin/FeatureAvailability}/index.min.js +0 -0
  299. /package/{FeatureManagement → bin/FeatureManagement}/FeatureManagement.d.ts +0 -0
  300. /package/{FeatureManagement → bin/FeatureManagement}/FeatureManagement.js +0 -0
  301. /package/{FeatureManagement → bin/FeatureManagement}/FeatureManagement.min.js +0 -0
  302. /package/{FeatureManagement → bin/FeatureManagement}/FeatureManagementClient.d.ts +0 -0
  303. /package/{FeatureManagement → bin/FeatureManagement}/FeatureManagementClient.js +0 -0
  304. /package/{FeatureManagement → bin/FeatureManagement}/FeatureManagementClient.min.js +0 -0
  305. /package/{FeatureManagement → bin/FeatureManagement}/index.d.ts +0 -0
  306. /package/{FeatureManagement → bin/FeatureManagement}/index.js +0 -0
  307. /package/{FeatureManagement → bin/FeatureManagement}/index.min.js +0 -0
  308. /package/{FileContainer → bin/FileContainer}/FileContainer.d.ts +0 -0
  309. /package/{FileContainer → bin/FileContainer}/FileContainer.js +0 -0
  310. /package/{FileContainer → bin/FileContainer}/FileContainer.min.js +0 -0
  311. /package/{FileContainer → bin/FileContainer}/FileContainerClient.d.ts +0 -0
  312. /package/{FileContainer → bin/FileContainer}/FileContainerClient.js +0 -0
  313. /package/{FileContainer → bin/FileContainer}/FileContainerClient.min.js +0 -0
  314. /package/{FileContainer → bin/FileContainer}/index.d.ts +0 -0
  315. /package/{FileContainer → bin/FileContainer}/index.js +0 -0
  316. /package/{FileContainer → bin/FileContainer}/index.min.js +0 -0
  317. /package/{FormInput → bin/FormInput}/FormInput.js +0 -0
  318. /package/{FormInput → bin/FormInput}/FormInput.min.js +0 -0
  319. /package/{FormInput → bin/FormInput}/index.d.ts +0 -0
  320. /package/{FormInput → bin/FormInput}/index.js +0 -0
  321. /package/{FormInput → bin/FormInput}/index.min.js +0 -0
  322. /package/{Gallery → bin/Gallery}/Gallery.d.ts +0 -0
  323. /package/{Gallery → bin/Gallery}/Gallery.js +0 -0
  324. /package/{Gallery → bin/Gallery}/Gallery.min.js +0 -0
  325. /package/{Gallery → bin/Gallery}/GalleryClient.d.ts +0 -0
  326. /package/{Gallery → bin/Gallery}/GalleryClient.js +0 -0
  327. /package/{Gallery → bin/Gallery}/GalleryClient.min.js +0 -0
  328. /package/{Gallery → bin/Gallery}/index.d.ts +0 -0
  329. /package/{Gallery → bin/Gallery}/index.js +0 -0
  330. /package/{Gallery → bin/Gallery}/index.min.js +0 -0
  331. /package/{Git → bin/Git}/CodeEditorTypes.d.ts +0 -0
  332. /package/{Git → bin/Git}/CodeEditorTypes.js +0 -0
  333. /package/{Git → bin/Git}/CodeEditorTypes.min.js +0 -0
  334. /package/{Git → bin/Git}/Git.d.ts +0 -0
  335. /package/{Git → bin/Git}/Git.js +0 -0
  336. /package/{Git → bin/Git}/Git.min.js +0 -0
  337. /package/{Git → bin/Git}/GitClient.d.ts +0 -0
  338. /package/{Git → bin/Git}/GitClient.js +0 -0
  339. /package/{Git → bin/Git}/GitClient.min.js +0 -0
  340. /package/{Git → bin/Git}/GitServices.d.ts +0 -0
  341. /package/{Git → bin/Git}/GitServices.js +0 -0
  342. /package/{Git → bin/Git}/GitServices.min.js +0 -0
  343. /package/{Git → bin/Git}/index.d.ts +0 -0
  344. /package/{Git → bin/Git}/index.js +0 -0
  345. /package/{Git → bin/Git}/index.min.js +0 -0
  346. /package/{Graph → bin/Graph}/Graph.d.ts +0 -0
  347. /package/{Graph → bin/Graph}/Graph.js +0 -0
  348. /package/{Graph → bin/Graph}/Graph.min.js +0 -0
  349. /package/{Graph → bin/Graph}/GraphClient.d.ts +0 -0
  350. /package/{Graph → bin/Graph}/GraphClient.js +0 -0
  351. /package/{Graph → bin/Graph}/GraphClient.min.js +0 -0
  352. /package/{Graph → bin/Graph}/index.d.ts +0 -0
  353. /package/{Graph → bin/Graph}/index.js +0 -0
  354. /package/{Graph → bin/Graph}/index.min.js +0 -0
  355. /package/{Identities → bin/Identities}/Identities.d.ts +0 -0
  356. /package/{Identities → bin/Identities}/Identities.js +0 -0
  357. /package/{Identities → bin/Identities}/Identities.min.js +0 -0
  358. /package/{Identities → bin/Identities}/IdentityProvider.d.ts +0 -0
  359. /package/{Identities → bin/Identities}/IdentityProvider.js +0 -0
  360. /package/{Identities → bin/Identities}/IdentityProvider.min.js +0 -0
  361. /package/{Identities → bin/Identities}/IdentityService.d.ts +0 -0
  362. /package/{Identities → bin/Identities}/IdentityService.js +0 -0
  363. /package/{Identities → bin/Identities}/IdentityService.min.js +0 -0
  364. /package/{Identities → bin/Identities}/index.d.ts +0 -0
  365. /package/{Identities → bin/Identities}/index.js +0 -0
  366. /package/{Identities → bin/Identities}/index.min.js +0 -0
  367. /package/{Locations → bin/Locations}/Locations.d.ts +0 -0
  368. /package/{Locations → bin/Locations}/Locations.js +0 -0
  369. /package/{Locations → bin/Locations}/Locations.min.js +0 -0
  370. /package/{Locations → bin/Locations}/LocationsClient.d.ts +0 -0
  371. /package/{Locations → bin/Locations}/LocationsClient.js +0 -0
  372. /package/{Locations → bin/Locations}/LocationsClient.min.js +0 -0
  373. /package/{Locations → bin/Locations}/index.d.ts +0 -0
  374. /package/{Locations → bin/Locations}/index.js +0 -0
  375. /package/{Locations → bin/Locations}/index.min.js +0 -0
  376. /package/{Management → bin/Management}/Management.d.ts +0 -0
  377. /package/{Management → bin/Management}/Management.js +0 -0
  378. /package/{Management → bin/Management}/Management.min.js +0 -0
  379. /package/{Management → bin/Management}/ManagementClient.d.ts +0 -0
  380. /package/{Management → bin/Management}/ManagementClient.js +0 -0
  381. /package/{Management → bin/Management}/ManagementClient.min.js +0 -0
  382. /package/{Notification → bin/Notification}/Notification.d.ts +0 -0
  383. /package/{Notification → bin/Notification}/Notification.js +0 -0
  384. /package/{Notification → bin/Notification}/Notification.min.js +0 -0
  385. /package/{Notification → bin/Notification}/NotificationClient.d.ts +0 -0
  386. /package/{Notification → bin/Notification}/NotificationClient.js +0 -0
  387. /package/{Notification → bin/Notification}/NotificationClient.min.js +0 -0
  388. /package/{Notification → bin/Notification}/index.d.ts +0 -0
  389. /package/{Notification → bin/Notification}/index.js +0 -0
  390. /package/{Notification → bin/Notification}/index.min.js +0 -0
  391. /package/{Operations → bin/Operations}/Operations.d.ts +0 -0
  392. /package/{Operations → bin/Operations}/Operations.js +0 -0
  393. /package/{Operations → bin/Operations}/Operations.min.js +0 -0
  394. /package/{Operations → bin/Operations}/OperationsClient.d.ts +0 -0
  395. /package/{Operations → bin/Operations}/OperationsClient.js +0 -0
  396. /package/{Operations → bin/Operations}/OperationsClient.min.js +0 -0
  397. /package/{Operations → bin/Operations}/index.d.ts +0 -0
  398. /package/{Operations → bin/Operations}/index.js +0 -0
  399. /package/{Operations → bin/Operations}/index.min.js +0 -0
  400. /package/{Pipelines → bin/Pipelines}/Pipelines.d.ts +0 -0
  401. /package/{Pipelines → bin/Pipelines}/Pipelines.js +0 -0
  402. /package/{Pipelines → bin/Pipelines}/Pipelines.min.js +0 -0
  403. /package/{Pipelines → bin/Pipelines}/PipelinesClient.d.ts +0 -0
  404. /package/{Pipelines → bin/Pipelines}/PipelinesClient.js +0 -0
  405. /package/{Pipelines → bin/Pipelines}/PipelinesClient.min.js +0 -0
  406. /package/{Policy → bin/Policy}/Policy.d.ts +0 -0
  407. /package/{Policy → bin/Policy}/Policy.js +0 -0
  408. /package/{Policy → bin/Policy}/Policy.min.js +0 -0
  409. /package/{Policy → bin/Policy}/PolicyClient.d.ts +0 -0
  410. /package/{Policy → bin/Policy}/PolicyClient.js +0 -0
  411. /package/{Policy → bin/Policy}/PolicyClient.min.js +0 -0
  412. /package/{Policy → bin/Policy}/index.d.ts +0 -0
  413. /package/{Policy → bin/Policy}/index.js +0 -0
  414. /package/{Policy → bin/Policy}/index.min.js +0 -0
  415. /package/{Profile → bin/Profile}/Profile.d.ts +0 -0
  416. /package/{Profile → bin/Profile}/Profile.js +0 -0
  417. /package/{Profile → bin/Profile}/Profile.min.js +0 -0
  418. /package/{Profile → bin/Profile}/ProfileClient.d.ts +0 -0
  419. /package/{Profile → bin/Profile}/ProfileClient.js +0 -0
  420. /package/{Profile → bin/Profile}/ProfileClient.min.js +0 -0
  421. /package/{Profile → bin/Profile}/index.d.ts +0 -0
  422. /package/{Profile → bin/Profile}/index.js +0 -0
  423. /package/{Profile → bin/Profile}/index.min.js +0 -0
  424. /package/{ProjectAnalysis → bin/ProjectAnalysis}/ProjectAnalysis.d.ts +0 -0
  425. /package/{ProjectAnalysis → bin/ProjectAnalysis}/ProjectAnalysis.js +0 -0
  426. /package/{ProjectAnalysis → bin/ProjectAnalysis}/ProjectAnalysis.min.js +0 -0
  427. /package/{ProjectAnalysis → bin/ProjectAnalysis}/ProjectAnalysisClient.d.ts +0 -0
  428. /package/{ProjectAnalysis → bin/ProjectAnalysis}/ProjectAnalysisClient.js +0 -0
  429. /package/{ProjectAnalysis → bin/ProjectAnalysis}/ProjectAnalysisClient.min.js +0 -0
  430. /package/{ProjectAnalysis → bin/ProjectAnalysis}/index.d.ts +0 -0
  431. /package/{ProjectAnalysis → bin/ProjectAnalysis}/index.js +0 -0
  432. /package/{ProjectAnalysis → bin/ProjectAnalysis}/index.min.js +0 -0
  433. /package/{Release → bin/Release}/Release.d.ts +0 -0
  434. /package/{Release → bin/Release}/Release.js +0 -0
  435. /package/{Release → bin/Release}/Release.min.js +0 -0
  436. /package/{Release → bin/Release}/ReleaseClient.d.ts +0 -0
  437. /package/{Release → bin/Release}/ReleaseClient.js +0 -0
  438. /package/{Release → bin/Release}/ReleaseClient.min.js +0 -0
  439. /package/{Release → bin/Release}/index.d.ts +0 -0
  440. /package/{Release → bin/Release}/index.js +0 -0
  441. /package/{Release → bin/Release}/index.min.js +0 -0
  442. /package/{ResourceUsage → bin/ResourceUsage}/ResourceUsage.d.ts +0 -0
  443. /package/{ResourceUsage → bin/ResourceUsage}/ResourceUsage.js +0 -0
  444. /package/{ResourceUsage → bin/ResourceUsage}/ResourceUsage.min.js +0 -0
  445. /package/{ResourceUsage → bin/ResourceUsage}/ResourceUsageClient.d.ts +0 -0
  446. /package/{ResourceUsage → bin/ResourceUsage}/ResourceUsageClient.js +0 -0
  447. /package/{ResourceUsage → bin/ResourceUsage}/ResourceUsageClient.min.js +0 -0
  448. /package/{ServiceEndpoint → bin/ServiceEndpoint}/ServiceEndpoint.d.ts +0 -0
  449. /package/{ServiceEndpoint → bin/ServiceEndpoint}/ServiceEndpoint.js +0 -0
  450. /package/{ServiceEndpoint → bin/ServiceEndpoint}/ServiceEndpoint.min.js +0 -0
  451. /package/{ServiceEndpoint → bin/ServiceEndpoint}/ServiceEndpointClient.d.ts +0 -0
  452. /package/{ServiceEndpoint → bin/ServiceEndpoint}/ServiceEndpointClient.js +0 -0
  453. /package/{ServiceEndpoint → bin/ServiceEndpoint}/ServiceEndpointClient.min.js +0 -0
  454. /package/{ServiceEndpoint → bin/ServiceEndpoint}/index.d.ts +0 -0
  455. /package/{ServiceEndpoint → bin/ServiceEndpoint}/index.js +0 -0
  456. /package/{ServiceEndpoint → bin/ServiceEndpoint}/index.min.js +0 -0
  457. /package/{ServiceHooks → bin/ServiceHooks}/ServiceHooks.d.ts +0 -0
  458. /package/{ServiceHooks → bin/ServiceHooks}/ServiceHooks.js +0 -0
  459. /package/{ServiceHooks → bin/ServiceHooks}/ServiceHooks.min.js +0 -0
  460. /package/{ServiceHooks → bin/ServiceHooks}/ServiceHooksClient.d.ts +0 -0
  461. /package/{ServiceHooks → bin/ServiceHooks}/ServiceHooksClient.js +0 -0
  462. /package/{ServiceHooks → bin/ServiceHooks}/ServiceHooksClient.min.js +0 -0
  463. /package/{ServiceHooks → bin/ServiceHooks}/index.d.ts +0 -0
  464. /package/{ServiceHooks → bin/ServiceHooks}/index.js +0 -0
  465. /package/{ServiceHooks → bin/ServiceHooks}/index.min.js +0 -0
  466. /package/{TaskAgent → bin/TaskAgent}/TaskAgent.js +0 -0
  467. /package/{TaskAgent → bin/TaskAgent}/TaskAgent.min.js +0 -0
  468. /package/{TaskAgent → bin/TaskAgent}/TaskAgentClient.d.ts +0 -0
  469. /package/{TaskAgent → bin/TaskAgent}/TaskAgentClient.js +0 -0
  470. /package/{TaskAgent → bin/TaskAgent}/TaskAgentClient.min.js +0 -0
  471. /package/{TaskAgent → bin/TaskAgent}/index.d.ts +0 -0
  472. /package/{TaskAgent → bin/TaskAgent}/index.js +0 -0
  473. /package/{TaskAgent → bin/TaskAgent}/index.min.js +0 -0
  474. /package/{Test → bin/Test}/Test.js +0 -0
  475. /package/{Test → bin/Test}/Test.min.js +0 -0
  476. /package/{Test → bin/Test}/TestClient.d.ts +0 -0
  477. /package/{Test → bin/Test}/TestClient.js +0 -0
  478. /package/{Test → bin/Test}/TestClient.min.js +0 -0
  479. /package/{Test → bin/Test}/index.d.ts +0 -0
  480. /package/{Test → bin/Test}/index.js +0 -0
  481. /package/{Test → bin/Test}/index.min.js +0 -0
  482. /package/{TestPlan → bin/TestPlan}/TestPlan.js +0 -0
  483. /package/{TestPlan → bin/TestPlan}/TestPlan.min.js +0 -0
  484. /package/{TestPlan → bin/TestPlan}/index.d.ts +0 -0
  485. /package/{TestPlan → bin/TestPlan}/index.js +0 -0
  486. /package/{TestPlan → bin/TestPlan}/index.min.js +0 -0
  487. /package/{TestResults → bin/TestResults}/TestResults.d.ts +0 -0
  488. /package/{TestResults → bin/TestResults}/TestResults.js +0 -0
  489. /package/{TestResults → bin/TestResults}/TestResults.min.js +0 -0
  490. /package/{TestResults → bin/TestResults}/index.d.ts +0 -0
  491. /package/{TestResults → bin/TestResults}/index.js +0 -0
  492. /package/{TestResults → bin/TestResults}/index.min.js +0 -0
  493. /package/{Tfvc → bin/Tfvc}/Tfvc.d.ts +0 -0
  494. /package/{Tfvc → bin/Tfvc}/Tfvc.js +0 -0
  495. /package/{Tfvc → bin/Tfvc}/Tfvc.min.js +0 -0
  496. /package/{Tfvc → bin/Tfvc}/TfvcClient.d.ts +0 -0
  497. /package/{Tfvc → bin/Tfvc}/TfvcClient.js +0 -0
  498. /package/{Tfvc → bin/Tfvc}/TfvcClient.min.js +0 -0
  499. /package/{Tfvc → bin/Tfvc}/index.d.ts +0 -0
  500. /package/{Tfvc → bin/Tfvc}/index.js +0 -0
  501. /package/{Tfvc → bin/Tfvc}/index.min.js +0 -0
  502. /package/{WebApi → bin/WebApi}/WebApi.d.ts +0 -0
  503. /package/{WebApi → bin/WebApi}/WebApi.js +0 -0
  504. /package/{WebApi → bin/WebApi}/WebApi.min.js +0 -0
  505. /package/{WebApi → bin/WebApi}/index.d.ts +0 -0
  506. /package/{WebApi → bin/WebApi}/index.js +0 -0
  507. /package/{WebApi → bin/WebApi}/index.min.js +0 -0
  508. /package/{Wiki → bin/Wiki}/Wiki.d.ts +0 -0
  509. /package/{Wiki → bin/Wiki}/Wiki.js +0 -0
  510. /package/{Wiki → bin/Wiki}/Wiki.min.js +0 -0
  511. /package/{Wiki → bin/Wiki}/WikiClient.d.ts +0 -0
  512. /package/{Wiki → bin/Wiki}/WikiClient.js +0 -0
  513. /package/{Wiki → bin/Wiki}/WikiClient.min.js +0 -0
  514. /package/{Wiki → bin/Wiki}/index.d.ts +0 -0
  515. /package/{Wiki → bin/Wiki}/index.js +0 -0
  516. /package/{Wiki → bin/Wiki}/index.min.js +0 -0
  517. /package/{Work → bin/Work}/Work.d.ts +0 -0
  518. /package/{Work → bin/Work}/Work.js +0 -0
  519. /package/{Work → bin/Work}/Work.min.js +0 -0
  520. /package/{Work → bin/Work}/WorkClient.d.ts +0 -0
  521. /package/{Work → bin/Work}/WorkClient.js +0 -0
  522. /package/{Work → bin/Work}/WorkClient.min.js +0 -0
  523. /package/{Work → bin/Work}/index.d.ts +0 -0
  524. /package/{Work → bin/Work}/index.js +0 -0
  525. /package/{Work → bin/Work}/index.min.js +0 -0
  526. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTracking.d.ts +0 -0
  527. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTracking.js +0 -0
  528. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTracking.min.js +0 -0
  529. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTrackingClient.d.ts +0 -0
  530. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTrackingClient.js +0 -0
  531. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTrackingClient.min.js +0 -0
  532. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTrackingServices.d.ts +0 -0
  533. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTrackingServices.js +0 -0
  534. /package/{WorkItemTracking → bin/WorkItemTracking}/WorkItemTrackingServices.min.js +0 -0
  535. /package/{WorkItemTracking → bin/WorkItemTracking}/index.d.ts +0 -0
  536. /package/{WorkItemTracking → bin/WorkItemTracking}/index.js +0 -0
  537. /package/{WorkItemTracking → bin/WorkItemTracking}/index.min.js +0 -0
  538. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/WorkItemTrackingProcess.d.ts +0 -0
  539. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/WorkItemTrackingProcess.js +0 -0
  540. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/WorkItemTrackingProcess.min.js +0 -0
  541. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/WorkItemTrackingProcessClient.d.ts +0 -0
  542. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/WorkItemTrackingProcessClient.js +0 -0
  543. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/WorkItemTrackingProcessClient.min.js +0 -0
  544. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/index.d.ts +0 -0
  545. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/index.js +0 -0
  546. /package/{WorkItemTrackingProcess → bin/WorkItemTrackingProcess}/index.min.js +0 -0
  547. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/WorkItemTrackingProcessDefinitions.d.ts +0 -0
  548. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/WorkItemTrackingProcessDefinitions.js +0 -0
  549. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/WorkItemTrackingProcessDefinitions.min.js +0 -0
  550. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/WorkItemTrackingProcessDefinitionsClient.d.ts +0 -0
  551. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/WorkItemTrackingProcessDefinitionsClient.js +0 -0
  552. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/WorkItemTrackingProcessDefinitionsClient.min.js +0 -0
  553. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/index.d.ts +0 -0
  554. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/index.js +0 -0
  555. /package/{WorkItemTrackingProcessDefinitions → bin/WorkItemTrackingProcessDefinitions}/index.min.js +0 -0
  556. /package/{index.d.ts → bin/index.d.ts} +0 -0
  557. /package/{index.js → bin/index.js} +0 -0
  558. /package/{index.min.js → bin/index.min.js} +0 -0
@@ -0,0 +1,773 @@
1
+ /*
2
+ * ---------------------------------------------------------
3
+ * Copyright(C) Microsoft Corporation. All rights reserved.
4
+ * ---------------------------------------------------------
5
+ */
6
+
7
+ /**
8
+ * Key constants used by route parsing.
9
+ */
10
+ const enum KeyCodes {
11
+ asterisk = 42,
12
+ endCurlyBrace = 125,
13
+ startCurlyBrace = 123
14
+ }
15
+
16
+ /**
17
+ * A single query parameter entry in a Uri
18
+ */
19
+ export interface IQueryParameter {
20
+
21
+ /**
22
+ * Unencoded name of the query parameter
23
+ */
24
+ name: string;
25
+
26
+ /**
27
+ * Unencoded value of the query parameter
28
+ */
29
+ value: string | null;
30
+ }
31
+
32
+ /**
33
+ * Options for parsing a Uri string
34
+ */
35
+ export interface IUriParseOptions {
36
+
37
+ /**
38
+ * If true, throw if the Uri is not absolute
39
+ */
40
+ absoluteUriRequired?: boolean;
41
+ }
42
+
43
+ /**
44
+ * Type of individual entry values that can be used in Uri.addQueryParams call
45
+ */
46
+ export type QueryParameterEntryValueType = string | boolean | number | Date | undefined;
47
+
48
+ /**
49
+ * Type of values supported by Uri.addQueryParams call
50
+ */
51
+ export type QueryParameterValueType =
52
+ | QueryParameterEntryValueType
53
+ | Array<QueryParameterEntryValueType>
54
+ | { [key: string]: QueryParameterEntryValueType };
55
+
56
+ function prepareForComparison(value: string, upperCase: boolean): string {
57
+ return value ? (upperCase ? value.toLocaleUpperCase() : value) : "";
58
+ }
59
+
60
+ function stringEquals(str1: string, str2: string, ignoreCase: boolean): boolean {
61
+ if (str1 === str2) {
62
+ return true;
63
+ }
64
+ return prepareForComparison(str1, ignoreCase).localeCompare(prepareForComparison(str2, ignoreCase)) === 0;
65
+ }
66
+
67
+ /**
68
+ * Class that represents a Uri and allows parsing/getting and setting of individual parts
69
+ */
70
+ export class Uri {
71
+
72
+ /**
73
+ * The uri scheme such as http or https
74
+ */
75
+ public scheme: string = "";
76
+
77
+ /**
78
+ * If true, do not emit the "//" separator after the scheme:
79
+ * Set to true for schemes like mailto (e.g. mailto:foo@bar)
80
+ */
81
+ public noSchemeSeparator: boolean = false;
82
+
83
+ /**
84
+ * The uri hostname (does not include port or scheme)
85
+ */
86
+ public host: string = "";
87
+
88
+ /**
89
+ * The port number of the uri as supplied in the url. 0 if left out in the url (e.g. the default port for the scheme).
90
+ */
91
+ public port: number = 0;
92
+
93
+ /**
94
+ * The relative path of the uri
95
+ */
96
+ public path: string = "";
97
+
98
+ /**
99
+ * The array of query parameters in the uri
100
+ */
101
+ public queryParameters: IQueryParameter[] = [];
102
+
103
+ /**
104
+ * The hash string of the uri
105
+ */
106
+ public hashString: string = "";
107
+
108
+ /**
109
+ * Create a new Uri.
110
+ *
111
+ * @param uri Optional uri string to populate values with
112
+ * @param options Options for parsing the uri string
113
+ */
114
+ constructor(uri?: string, options?: IUriParseOptions) {
115
+ if (uri) {
116
+ this._setFromUriString(uri, options);
117
+ }
118
+ }
119
+
120
+ private _setFromUriString(uriString: string, options?: IUriParseOptions) {
121
+ let uri = uriString;
122
+
123
+ // Parse out the hash string
124
+ let hashSplit = this._singleSplit(uri, "#");
125
+ if (hashSplit) {
126
+ uri = hashSplit.part1;
127
+ this.hashString = this._decodeUriComponent(hashSplit.part2);
128
+ }
129
+ else {
130
+ this.hashString = "";
131
+ }
132
+
133
+ // Parse the query parameters
134
+ let querySplit = this._singleSplit(uri, "?");
135
+ if (querySplit) {
136
+ uri = querySplit.part1;
137
+ this.queryString = querySplit.part2;
138
+ }
139
+ else {
140
+ this.queryParameters = [];
141
+ }
142
+
143
+ this.scheme = "";
144
+ this.host = "";
145
+ this.port = 0;
146
+ this.path = "";
147
+
148
+ // Parse out the scheme components of the uri
149
+ this.noSchemeSeparator = false;
150
+ const schemeSplit = this._singleSplit(uri, ":");
151
+ if (schemeSplit) {
152
+ this.scheme = schemeSplit.part1;
153
+ uri = schemeSplit.part2;
154
+
155
+ if (uri.substr(0, 2) === "//") {
156
+ uri = uri.substr(2);
157
+
158
+ // Parse out the path part of the uri
159
+ const pathSplit = this._singleSplit(uri, "/");
160
+ if (pathSplit) {
161
+ uri = pathSplit.part1;
162
+ this.path = pathSplit.part2;
163
+ }
164
+ else {
165
+ this.path = "";
166
+ }
167
+
168
+ // Parse out the port number
169
+ const portSplit = this._singleSplit(uri, ":");
170
+ if (portSplit) {
171
+ this.host = portSplit.part1;
172
+ this.port = parseInt(portSplit.part2);
173
+
174
+ if (isNaN(this.port)) {
175
+ // Segment after : was not a port, consider it part of the path
176
+ this.host += ":";
177
+ this.path = portSplit.part2 + "/" + this.path;
178
+ }
179
+ }
180
+ else {
181
+ this.host = uri;
182
+ }
183
+ }
184
+ else {
185
+ // No host for schemes like mailto: just use path
186
+ this.noSchemeSeparator = true;
187
+ this.path = uri;
188
+ }
189
+ }
190
+ else {
191
+ // Relative Url was given
192
+ this.path = uri;
193
+ }
194
+
195
+ if (options && options.absoluteUriRequired && !this.scheme) {
196
+ throw new Error(`The uri string "${uriString}" does not represent a valid absolute uri.`);
197
+ }
198
+ }
199
+
200
+ private _singleSplit(value: string, separator: string): { part1: string, part2: string } | undefined {
201
+ const matchIndex = value.indexOf(separator);
202
+ if (matchIndex >= 0) {
203
+ return {
204
+ part1: value.substr(0, matchIndex),
205
+ part2: value.substr(matchIndex + 1)
206
+ };
207
+ }
208
+ else {
209
+ return undefined;
210
+ }
211
+ }
212
+
213
+ private _decodeUriComponent(value: string): string {
214
+ if (value) {
215
+ // Replace "+" character with %20.
216
+ value = value.replace(/\+/g, "%20");
217
+ value = decodeURIComponent(value);
218
+ }
219
+ return value;
220
+ }
221
+
222
+ /**
223
+ * Get the absolute uri string for this Uri
224
+ */
225
+ public get absoluteUri(): string {
226
+ let uri = "";
227
+
228
+ if (this.scheme) {
229
+ uri = encodeURI(decodeURI(this.scheme)) + ":";
230
+ if (!this.noSchemeSeparator) {
231
+ uri += "//";
232
+ }
233
+ }
234
+
235
+ if (this.host) {
236
+ uri += encodeURI(decodeURI(this.host));
237
+
238
+ if (this.port) {
239
+ uri += ":" + this.port;
240
+ }
241
+
242
+ if (!this.noSchemeSeparator || this.path) {
243
+ uri += "/";
244
+ }
245
+ }
246
+
247
+ if (this.path) {
248
+ let encodedPath: string;
249
+ if (this.noSchemeSeparator) {
250
+ // Only do simple encoding for schemes like mailto: or blob: where
251
+ // we can't determine host versus path
252
+ encodedPath = encodeURI(decodeURI(this.path));
253
+ }
254
+ else {
255
+ const parts = this.path.split('/');
256
+ encodedPath = parts.map(p => encodeURIComponent(decodeURIComponent(p))).join("/");
257
+ }
258
+
259
+ if (this.host) {
260
+ uri = combineUrlPaths(uri, encodedPath);
261
+ }
262
+ else {
263
+ uri = uri + encodedPath;
264
+ }
265
+ }
266
+
267
+ const queryString = this.queryString;
268
+ if (queryString) {
269
+ uri += "?" + queryString;
270
+ }
271
+
272
+ if (this.hashString) {
273
+ const params = this._splitStringIntoParams(this.hashString);
274
+ const encodedString = this._getParamsAsString(params);
275
+ uri += "#" + encodedString;
276
+ }
277
+
278
+ return uri;
279
+ }
280
+
281
+ /**
282
+ * Set the absolute uri string for this Uri. Replaces all existing values
283
+ */
284
+ public set absoluteUri(uri: string) {
285
+ this._setFromUriString(uri || "");
286
+ }
287
+
288
+ /**
289
+ * Gets the effective port number, returning the default port number if omitted for the given scheme.
290
+ */
291
+ public getEffectivePort(): number {
292
+ if (this.port) {
293
+ return this.port;
294
+ }
295
+ else {
296
+ if (stringEquals(this.scheme, "http", true)) {
297
+ return 80;
298
+ }
299
+ else if (stringEquals(this.scheme, "https", true)) {
300
+ return 443;
301
+ }
302
+ else {
303
+ return 0;
304
+ }
305
+ }
306
+ }
307
+
308
+ /**
309
+ * Builds an encoded key/value pair string
310
+ * like query string or hash strings
311
+ */
312
+ private _getParamsAsString(params: IQueryParameter[]): string {
313
+ if (params && params.length) {
314
+ return params.map((param) => {
315
+ if (param.value !== null) {
316
+ return encodeURIComponent(param.name) + "=" + encodeURIComponent(param.value);
317
+ }
318
+ else {
319
+ return encodeURIComponent(param.name);
320
+ }
321
+ }).join("&");
322
+ }
323
+ else {
324
+ return "";
325
+ }
326
+ }
327
+
328
+ /**
329
+ * Get the query string for this Uri.
330
+ */
331
+ public get queryString(): string {
332
+ return this._getParamsAsString(this.queryParameters);
333
+ }
334
+
335
+ /**
336
+ * Set the query string for this Uri. Replaces existing value
337
+ */
338
+ public set queryString(queryString: string) {
339
+ this.queryParameters = this._splitStringIntoParams(queryString);
340
+ }
341
+
342
+ /**
343
+ * Coverts a key/value pair string into parameters array
344
+ * @param paramString String such as a=b&c=d
345
+ */
346
+ private _splitStringIntoParams(paramString: string): IQueryParameter[] {
347
+ let params: IQueryParameter[] = [];
348
+ paramString.split('&').forEach((pair) => {
349
+ if (pair) {
350
+ const valueSplit = this._singleSplit(pair, "=");
351
+ if (valueSplit) {
352
+ params.push({
353
+ name: this._decodeUriComponent(valueSplit.part1),
354
+ value: this._decodeUriComponent(valueSplit.part2)
355
+ });
356
+ }
357
+ else {
358
+ params.push({
359
+ name: this._decodeUriComponent(pair),
360
+ value: null
361
+ });
362
+ }
363
+ }
364
+ });
365
+
366
+ return params;
367
+ }
368
+
369
+ /**
370
+ * Get the value of the query parameter with the given key
371
+ *
372
+ * @param name Query parameter name
373
+ */
374
+ public getQueryParam(name: string): string | null | undefined {
375
+ let value: string | undefined | null;
376
+ if (this.queryParameters) {
377
+ let matchingPairs = this.queryParameters.filter(p => stringEquals(p.name, name, true));
378
+ if (matchingPairs.length > 0) {
379
+ value = matchingPairs[0].value;
380
+ }
381
+ }
382
+ return value;
383
+ }
384
+
385
+ /**
386
+ * Adds a query string parameter to the current uri
387
+ *
388
+ * @param name The Query parameter name
389
+ * @param value The Query parameter value
390
+ * @param replaceExisting If true, replace all existing parameters with the same name
391
+ */
392
+ public addQueryParam(name: string, value: string | null, replaceExisting?: boolean): void {
393
+ if (replaceExisting) {
394
+ this.removeQueryParam(name);
395
+ }
396
+ if (!this.queryParameters) {
397
+ this.queryParameters = [];
398
+ }
399
+ this.queryParameters.push({ name: name, value: value });
400
+ }
401
+
402
+ /**
403
+ * Adds query string parameters to the current uri
404
+ *
405
+ * @param parameters Query parameters to add
406
+ * @param replaceExisting If true, replace all existing parameters with the same name
407
+ * @param keyPrefix If specified, a value to prepend to all query parameter keys
408
+ */
409
+ public addQueryParams(parameters: { [key: string]: QueryParameterValueType }, replaceExisting?: boolean, keyPrefix?: string): void {
410
+ for (const key in parameters) {
411
+ const value = parameters[key];
412
+ if (value !== null && value !== undefined) {
413
+ const keyWithPrefix = (keyPrefix || "") + key;
414
+ if (value instanceof Date) {
415
+ this.addQueryParam(keyWithPrefix, value.toJSON(), replaceExisting);
416
+ } else if (Array.isArray(value)) {
417
+ value.forEach(v => this.addQueryParam(keyWithPrefix, "" + v, replaceExisting));
418
+ } else if (typeof value === "object") {
419
+ this.addQueryParams(value, replaceExisting, keyWithPrefix + ".");
420
+ } else {
421
+ this.addQueryParam(keyWithPrefix, "" + value, replaceExisting);
422
+ }
423
+ }
424
+ }
425
+ }
426
+
427
+ /**
428
+ * Removes a query string parameter
429
+ *
430
+ * @param name The Query parameter name
431
+ */
432
+ public removeQueryParam(name: string): void {
433
+ if (this.queryParameters) {
434
+ this.queryParameters = this.queryParameters.filter(p => !stringEquals(p.name, name, true));
435
+ }
436
+ }
437
+ }
438
+
439
+ /**
440
+ * Take url segments and join them with a single slash character. Takes care of path segements that start and/or end
441
+ * with a slash to ensure that the resulting URL does not have double-slashes
442
+ *
443
+ * @param paths Path segments to concatenate
444
+ */
445
+ export function combineUrlPaths(...paths: string[]): string {
446
+
447
+ let segmentsToJoin: string[] = [];
448
+
449
+ // Trim leading and trailing slash in each segment
450
+ for (let i = 0, last = paths.length - 1; i <= last; i++) {
451
+ let path = paths[i];
452
+ if (path) {
453
+ if (path === "/" && (i === 0 || i === last)) {
454
+ // For a "/" segment at the beginning or end of the list, insert an empty entry to force
455
+ // a leading or trailing slash in the resulting URL
456
+ segmentsToJoin.push("");
457
+ }
458
+ else {
459
+ if (i > 0 && path[0] === "/") {
460
+ // Trim leading slash in any segment except the first one
461
+ path = path.substr(1);
462
+ }
463
+ if (i < last && path[path.length - 1] === "/") {
464
+ // Trim trailing slash in any segment except the last one
465
+ path = path.substr(0, path.length - 1);
466
+ }
467
+ if (path) {
468
+ segmentsToJoin.push(path);
469
+ }
470
+ }
471
+ }
472
+ }
473
+
474
+ if (segmentsToJoin.length === 1 && segmentsToJoin[0] === "") {
475
+ return "/";
476
+ }
477
+
478
+ // Join segments by slash
479
+ return segmentsToJoin.join("/");
480
+ }
481
+
482
+ /**
483
+ * Represents a route parsed by parseRoute
484
+ */
485
+ export interface IParsedRoute {
486
+
487
+ /**
488
+ * Array of the segements in the route
489
+ */
490
+ segments: IParsedRouteSegment[];
491
+ }
492
+
493
+ /**
494
+ * And individual segment of the route (fixed text or a parameter)
495
+ */
496
+ export interface IParsedRouteSegment {
497
+
498
+ /**
499
+ * If present, the fixed text for this segement. Either text or paramName will be defined for a segment, never both.
500
+ */
501
+ text?: string;
502
+
503
+ /**
504
+ * If present, the name of the route value parameter to substitute for this segment. Either text or paramName will be defined for a segment, never both.
505
+ */
506
+ paramName?: string;
507
+
508
+ /**
509
+ * For parameters, whether or not this parameter is a wildcard (*) parameter, which means it allows multiple path segments (i.e. don't escape "/")
510
+ */
511
+ isWildCardParam?: boolean;
512
+
513
+ /**
514
+ * Whether the parameter is required in order for the URL to be valid.
515
+ */
516
+ isRequiredParam?: boolean;
517
+ }
518
+
519
+ /**
520
+ * Parse a route template into a structure that can be used to quickly do route replacements
521
+ *
522
+ * @param routeTemplate MVC route template string (like "/foo/{id}/{*params}")
523
+ */
524
+ export function parseRouteTemplate(routeTemplate: string): IParsedRoute {
525
+
526
+ const parsedRoute: IParsedRoute = {
527
+ segments: []
528
+ };
529
+
530
+ let paramStartIndex = -1;
531
+ let segmentStartIndex = -1;
532
+ let segmentPrefix = "";
533
+
534
+ for (let charIndex = 0, routeTemplateLen = routeTemplate.length; charIndex < routeTemplateLen; charIndex++) {
535
+ let c = routeTemplate.charCodeAt(charIndex);
536
+
537
+ if (paramStartIndex >= 0) {
538
+ if (c === KeyCodes.endCurlyBrace) {
539
+
540
+ let paramName = routeTemplate.substring(paramStartIndex, charIndex);
541
+ let isWildCardParam = false;
542
+
543
+ if (paramName.charCodeAt(0) === KeyCodes.asterisk) {
544
+ paramName = paramName.substr(1);
545
+ isWildCardParam = true;
546
+ }
547
+
548
+ parsedRoute.segments.push({
549
+ paramName,
550
+ isWildCardParam
551
+ });
552
+
553
+ paramStartIndex = -1;
554
+ }
555
+ }
556
+ else {
557
+ if (c === KeyCodes.startCurlyBrace && routeTemplate.charCodeAt(charIndex + 1) !== KeyCodes.startCurlyBrace) {
558
+ // Start of a parameter
559
+ if (segmentPrefix || segmentStartIndex >= 0) {
560
+
561
+ // Store the previous segment
562
+ let segmentText = segmentPrefix;
563
+ if (segmentStartIndex >= 0) {
564
+ segmentText += routeTemplate.substring(segmentStartIndex, charIndex);
565
+ }
566
+
567
+ if (segmentText) {
568
+ parsedRoute.segments.push({
569
+ text: segmentText
570
+ });
571
+ }
572
+
573
+ // Reset the segment tracking info
574
+ segmentStartIndex = -1;
575
+ segmentPrefix = "";
576
+ }
577
+ paramStartIndex = charIndex + 1;
578
+ }
579
+ else {
580
+
581
+ // Handle double {{ or double }} as an escape sequence. This is rare. For simplicity we will
582
+ if ((c === KeyCodes.startCurlyBrace && routeTemplate.charCodeAt(charIndex + 1) === KeyCodes.startCurlyBrace) ||
583
+ (c === KeyCodes.endCurlyBrace && routeTemplate.charCodeAt(charIndex + 1) === KeyCodes.endCurlyBrace)) {
584
+
585
+ segmentPrefix = segmentPrefix + routeTemplate.substring(segmentStartIndex >= 0 ? segmentStartIndex : charIndex, charIndex + 1);
586
+ segmentStartIndex = -1;
587
+ charIndex++;
588
+ }
589
+
590
+ if (segmentStartIndex < 0) {
591
+ segmentStartIndex = charIndex;
592
+ }
593
+ }
594
+ }
595
+ }
596
+
597
+ // Store any pending segment
598
+ if (segmentStartIndex >= 0 || paramStartIndex >= 0) {
599
+ const segmentText = segmentPrefix + routeTemplate.substring(segmentStartIndex >= 0 ? segmentStartIndex : paramStartIndex);
600
+ if (segmentText) {
601
+ parsedRoute.segments.push({
602
+ text: segmentText
603
+ });
604
+ }
605
+ }
606
+
607
+ // Mark any param as required if it has a text segment (other than just "/") after it
608
+ let required = false;
609
+ for (let i = parsedRoute.segments.length - 1; i >= 0; i--) {
610
+ let segment = parsedRoute.segments[i];
611
+ if (segment.text && segment.text !== "/") {
612
+ required = true;
613
+ }
614
+ else if (required && segment.paramName) {
615
+ segment.isRequiredParam = true;
616
+ }
617
+ }
618
+
619
+ return parsedRoute;
620
+ }
621
+
622
+ /**
623
+ * Take a set of routes and route values and form a url using the best match. The best match
624
+ * is the route with the highest number of replacements (of the given routeValues dictionary).
625
+ * In the event of a tie (same number of replacements) the route that came first wins.
626
+ *
627
+ * @param routeCollection Array of parsed routes
628
+ * @param routeValues Replacement values
629
+ */
630
+ export function routeUrl(routeCollection: IParsedRoute[], routeValues: { [name: string]: string }): string {
631
+
632
+ let bestMatch = getBestRouteMatch(routeCollection, routeValues);
633
+ if (!bestMatch) {
634
+ return "";
635
+ }
636
+
637
+ let uri = new Uri(bestMatch.url);
638
+ for (let routeValueKey in routeValues) {
639
+ if (!bestMatch.matchedParameters[routeValueKey]) {
640
+ uri.addQueryParam(routeValueKey, routeValues[routeValueKey]);
641
+ }
642
+ }
643
+
644
+ return uri.absoluteUri;
645
+ }
646
+
647
+ /**
648
+ * Take a set of routes and find the best match. The best match is the route with the highest number of replacements
649
+ * (of the given routeValues dictionary). In the event of a tie (same number of replacements) the route that came first wins.
650
+ *
651
+ * @param routeCollection Array of parsed routes
652
+ * @param routeValues Replacement values
653
+ */
654
+ export function getBestRouteMatch(routeCollection: IParsedRoute[], routeValues: { [name: string]: string }): IRouteMatchResult | undefined {
655
+
656
+ let bestMatch: IRouteMatchResult | undefined;
657
+ let totalRouteValues = Object.keys(routeValues).length;
658
+
659
+ for (let route of routeCollection) {
660
+ let match = replaceParsedRouteValues(route, routeValues, false);
661
+ if (match && (!bestMatch || match.matchedParametersCount > bestMatch.matchedParametersCount)) {
662
+ bestMatch = match;
663
+
664
+ if (match.matchedParametersCount === totalRouteValues) {
665
+ // This route matched all route values. Return its url directly (no need to even add query params)
666
+ return bestMatch;
667
+ }
668
+ }
669
+ }
670
+
671
+ return bestMatch;
672
+ }
673
+
674
+ /**
675
+ * Result of a call to replace route values for a parsed route
676
+ */
677
+ export interface IRouteMatchResult {
678
+
679
+ /**
680
+ * Resulting URL from the template replacement. Does NOT include any query parameters that would be added from extra route values.
681
+ */
682
+ url: string;
683
+
684
+ /**
685
+ * Dictionary of the route value keys that were used as replacements
686
+ */
687
+ matchedParameters: { [key: string]: boolean };
688
+
689
+ /**
690
+ * The number of parameter replacements made
691
+ */
692
+ matchedParametersCount: number;
693
+ }
694
+
695
+ /**
696
+ * Replace route values for a specific parsed route
697
+ *
698
+ * @param parsedRoute The route to evaluate
699
+ * @param routeValues Dictionary of route replacement parameters
700
+ * @param continueOnUnmatchedSegements If true, continue with replacements even after a miss. By default (false), stop replacements once a parameter is not present.
701
+ */
702
+ export function replaceParsedRouteValues(parsedRoute: IParsedRoute, routeValues: { [name: string]: string | number | undefined }, continueOnUnmatchedSegements?: boolean): IRouteMatchResult | undefined {
703
+
704
+ let urlParts: string[] = [];
705
+ let matchedParameters: { [key: string]: boolean } = {};
706
+ let matchedParametersCount = 0;
707
+
708
+ for (let segmentIndex = 0, l = parsedRoute.segments.length; segmentIndex < l; segmentIndex++) {
709
+ const segment = parsedRoute.segments[segmentIndex];
710
+
711
+ if (segment.text) {
712
+ let segmentText = segment.text;
713
+ if (continueOnUnmatchedSegements) {
714
+ // Make sure we don't have consecutive slash (/) characters in the case of missing segments
715
+ if (segmentIndex > 0 && segmentText.charAt(0) === "/") {
716
+ if (urlParts.length === 0) {
717
+ // First text segment after one or more missing parameter segments. Remove the leading slash.
718
+ segmentText = segmentText.substr(1);
719
+ }
720
+ }
721
+ }
722
+
723
+ if (segmentText) {
724
+ urlParts.push(segmentText);
725
+ }
726
+ }
727
+ else {
728
+ const value = routeValues[segment.paramName!];
729
+ if (!value && value !== 0) {
730
+ // The route value was not supplied
731
+ if (!continueOnUnmatchedSegements) {
732
+ if (segment.isRequiredParam) {
733
+ // This is a required parameter. Return undefined since this route was not a match.
734
+ return undefined;
735
+ }
736
+ else {
737
+ // This is an omitted optional parameter. Return what we've computed so far.
738
+ break;
739
+ }
740
+ }
741
+ else if (urlParts.length) {
742
+ // Unmatched segment being omitted. Remove any previously trailing slash
743
+ let lastSegment = urlParts[urlParts.length - 1];
744
+ if (lastSegment[lastSegment.length - 1] === "/") {
745
+ urlParts[urlParts.length - 1] = lastSegment.substr(0, lastSegment.length - 1);
746
+ }
747
+ }
748
+ }
749
+ else {
750
+ urlParts.push(segment.isWildCardParam ? encodeURI("" + value) : encodeURIComponent("" + value));
751
+ matchedParameters[segment.paramName!] = true;
752
+ matchedParametersCount++;
753
+ }
754
+ }
755
+ }
756
+
757
+ return {
758
+ url: urlParts.join(""),
759
+ matchedParameters,
760
+ matchedParametersCount
761
+ };
762
+ }
763
+
764
+ /**
765
+ * Take an MVC route template (like "/foo/{id}/{*params}") and replace the templated parts with values from the given dictionary
766
+ *
767
+ * @param routeTemplate MVC route template (like "/foo/{id}/{*params}")
768
+ * @param routeValues Route value replacements
769
+ */
770
+ export function replaceRouteValues(routeTemplate: string, routeValues: { [name: string]: string | number | undefined }): string {
771
+ let parsedRoute = parseRouteTemplate(routeTemplate);
772
+ return replaceParsedRouteValues(parsedRoute, routeValues, true)!.url;
773
+ }