InstalledVersions.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. <?php
  2. namespace Composer;
  3. use Composer\Semver\VersionParser;
  4. class InstalledVersions
  5. {
  6. private static $installed = array (
  7. 'root' =>
  8. array (
  9. 'pretty_version' => 'dev-master',
  10. 'version' => 'dev-master',
  11. 'aliases' =>
  12. array (
  13. 0 => '5.2.x-dev',
  14. ),
  15. 'reference' => '3e0a92b5a2df84e339a6c4b3fbc60aa7cc9288bc',
  16. 'name' => 'phpmyadmin/phpmyadmin',
  17. ),
  18. 'versions' =>
  19. array (
  20. 'bacon/bacon-qr-code' =>
  21. array (
  22. 'pretty_version' => '2.0.3',
  23. 'version' => '2.0.3.0',
  24. 'aliases' =>
  25. array (
  26. ),
  27. 'reference' => '3e9d791b67d0a2912922b7b7c7312f4b37af41e4',
  28. ),
  29. 'dasprid/enum' =>
  30. array (
  31. 'pretty_version' => '1.0.3',
  32. 'version' => '1.0.3.0',
  33. 'aliases' =>
  34. array (
  35. ),
  36. 'reference' => '5abf82f213618696dda8e3bf6f64dd042d8542b2',
  37. ),
  38. 'google/recaptcha' =>
  39. array (
  40. 'pretty_version' => '1.2.4',
  41. 'version' => '1.2.4.0',
  42. 'aliases' =>
  43. array (
  44. ),
  45. 'reference' => '614f25a9038be4f3f2da7cbfd778dc5b357d2419',
  46. ),
  47. 'nikic/fast-route' =>
  48. array (
  49. 'pretty_version' => 'v1.3.0',
  50. 'version' => '1.3.0.0',
  51. 'aliases' =>
  52. array (
  53. ),
  54. 'reference' => '181d480e08d9476e61381e04a71b34dc0432e812',
  55. ),
  56. 'paragonie/constant_time_encoding' =>
  57. array (
  58. 'pretty_version' => 'v2.4.0',
  59. 'version' => '2.4.0.0',
  60. 'aliases' =>
  61. array (
  62. ),
  63. 'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
  64. ),
  65. 'phpmyadmin/motranslator' =>
  66. array (
  67. 'pretty_version' => '5.2.0',
  68. 'version' => '5.2.0.0',
  69. 'aliases' =>
  70. array (
  71. ),
  72. 'reference' => 'cea68a8d0abf5e7fabc4179f07ef444223ddff44',
  73. ),
  74. 'phpmyadmin/phpmyadmin' =>
  75. array (
  76. 'pretty_version' => 'dev-master',
  77. 'version' => 'dev-master',
  78. 'aliases' =>
  79. array (
  80. 0 => '5.2.x-dev',
  81. ),
  82. 'reference' => '3e0a92b5a2df84e339a6c4b3fbc60aa7cc9288bc',
  83. ),
  84. 'phpmyadmin/shapefile' =>
  85. array (
  86. 'pretty_version' => '2.1',
  87. 'version' => '2.1.0.0',
  88. 'aliases' =>
  89. array (
  90. ),
  91. 'reference' => 'e23b767f2a81f61fee3fc09fc062879985f3e224',
  92. ),
  93. 'phpmyadmin/sql-parser' =>
  94. array (
  95. 'pretty_version' => '5.4.2',
  96. 'version' => '5.4.2.0',
  97. 'aliases' =>
  98. array (
  99. ),
  100. 'reference' => 'b210e219a54df9b9822880780bb3ba0fffa1f542',
  101. ),
  102. 'phpmyadmin/twig-i18n-extension' =>
  103. array (
  104. 'pretty_version' => 'v3.0.0',
  105. 'version' => '3.0.0.0',
  106. 'aliases' =>
  107. array (
  108. ),
  109. 'reference' => '1f509fa3c3f66551e1f4a346e4477c6c0dc76f9e',
  110. ),
  111. 'phpseclib/phpseclib' =>
  112. array (
  113. 'pretty_version' => '2.0.31',
  114. 'version' => '2.0.31.0',
  115. 'aliases' =>
  116. array (
  117. ),
  118. 'reference' => '233a920cb38636a43b18d428f9a8db1f0a1a08f4',
  119. ),
  120. 'pragmarx/google2fa' =>
  121. array (
  122. 'pretty_version' => '8.0.0',
  123. 'version' => '8.0.0.0',
  124. 'aliases' =>
  125. array (
  126. ),
  127. 'reference' => '26c4c5cf30a2844ba121760fd7301f8ad240100b',
  128. ),
  129. 'pragmarx/google2fa-qrcode' =>
  130. array (
  131. 'pretty_version' => 'v1.0.3',
  132. 'version' => '1.0.3.0',
  133. 'aliases' =>
  134. array (
  135. ),
  136. 'reference' => 'fd5ff0531a48b193a659309cc5fb882c14dbd03f',
  137. ),
  138. 'psr/cache' =>
  139. array (
  140. 'pretty_version' => '1.0.1',
  141. 'version' => '1.0.1.0',
  142. 'aliases' =>
  143. array (
  144. ),
  145. 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
  146. ),
  147. 'psr/cache-implementation' =>
  148. array (
  149. 'provided' =>
  150. array (
  151. 0 => '1.0|2.0',
  152. ),
  153. ),
  154. 'psr/container' =>
  155. array (
  156. 'pretty_version' => '1.0.0',
  157. 'version' => '1.0.0.0',
  158. 'aliases' =>
  159. array (
  160. ),
  161. 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f',
  162. ),
  163. 'psr/container-implementation' =>
  164. array (
  165. 'provided' =>
  166. array (
  167. 0 => '1.0',
  168. ),
  169. ),
  170. 'psr/log' =>
  171. array (
  172. 'pretty_version' => '1.1.4',
  173. 'version' => '1.1.4.0',
  174. 'aliases' =>
  175. array (
  176. ),
  177. 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
  178. ),
  179. 'psr/simple-cache-implementation' =>
  180. array (
  181. 'provided' =>
  182. array (
  183. 0 => '1.0',
  184. ),
  185. ),
  186. 'samyoul/u2f-php-server' =>
  187. array (
  188. 'pretty_version' => 'v1.1.4',
  189. 'version' => '1.1.4.0',
  190. 'aliases' =>
  191. array (
  192. ),
  193. 'reference' => '0625202c79d570e58525ed6c4ae38500ea3f0883',
  194. ),
  195. 'symfony/cache' =>
  196. array (
  197. 'pretty_version' => 'v4.4.25',
  198. 'version' => '4.4.25.0',
  199. 'aliases' =>
  200. array (
  201. ),
  202. 'reference' => 'e2486bd59ac996afff25cdbfb823e982a0550c3e',
  203. ),
  204. 'symfony/cache-contracts' =>
  205. array (
  206. 'pretty_version' => 'v1.1.10',
  207. 'version' => '1.1.10.0',
  208. 'aliases' =>
  209. array (
  210. ),
  211. 'reference' => '8d5489c10ef90aa7413e4921fc3c0520e24cbed7',
  212. ),
  213. 'symfony/cache-implementation' =>
  214. array (
  215. 'provided' =>
  216. array (
  217. 0 => '1.0|2.0',
  218. ),
  219. ),
  220. 'symfony/config' =>
  221. array (
  222. 'pretty_version' => 'v4.4.25',
  223. 'version' => '4.4.25.0',
  224. 'aliases' =>
  225. array (
  226. ),
  227. 'reference' => '2803882bb10353d277d4539635dd688a053d571c',
  228. ),
  229. 'symfony/dependency-injection' =>
  230. array (
  231. 'pretty_version' => 'v4.4.25',
  232. 'version' => '4.4.25.0',
  233. 'aliases' =>
  234. array (
  235. ),
  236. 'reference' => '2ed2a0a6c960bf4e2e862ec77b2f2c558b83c64d',
  237. ),
  238. 'symfony/expression-language' =>
  239. array (
  240. 'pretty_version' => 'v4.4.25',
  241. 'version' => '4.4.25.0',
  242. 'aliases' =>
  243. array (
  244. ),
  245. 'reference' => '4515f7d3fa614a23c7acc1162d7ef069c165d7af',
  246. ),
  247. 'symfony/filesystem' =>
  248. array (
  249. 'pretty_version' => 'v4.4.25',
  250. 'version' => '4.4.25.0',
  251. 'aliases' =>
  252. array (
  253. ),
  254. 'reference' => '2d926ebd76f52352deb3c9577d8c1d4b96eae429',
  255. ),
  256. 'symfony/polyfill-ctype' =>
  257. array (
  258. 'pretty_version' => 'v1.23.0',
  259. 'version' => '1.23.0.0',
  260. 'aliases' =>
  261. array (
  262. ),
  263. 'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce',
  264. ),
  265. 'symfony/polyfill-mbstring' =>
  266. array (
  267. 'pretty_version' => 'v1.23.0',
  268. 'version' => '1.23.0.0',
  269. 'aliases' =>
  270. array (
  271. ),
  272. 'reference' => '2df51500adbaebdc4c38dea4c89a2e131c45c8a1',
  273. ),
  274. 'symfony/polyfill-php81' =>
  275. array (
  276. 'pretty_version' => 'v1.23.0',
  277. 'version' => '1.23.0.0',
  278. 'aliases' =>
  279. array (
  280. ),
  281. 'reference' => 'e66119f3de95efc359483f810c4c3e6436279436',
  282. ),
  283. 'symfony/service-contracts' =>
  284. array (
  285. 'pretty_version' => 'v1.1.9',
  286. 'version' => '1.1.9.0',
  287. 'aliases' =>
  288. array (
  289. ),
  290. 'reference' => 'b776d18b303a39f56c63747bcb977ad4b27aca26',
  291. ),
  292. 'symfony/service-implementation' =>
  293. array (
  294. 'provided' =>
  295. array (
  296. 0 => '1.0|2.0',
  297. ),
  298. ),
  299. 'symfony/var-exporter' =>
  300. array (
  301. 'pretty_version' => 'v4.4.25',
  302. 'version' => '4.4.25.0',
  303. 'aliases' =>
  304. array (
  305. ),
  306. 'reference' => '723c038aac53280c8ad4209add93e679a33bbe3f',
  307. ),
  308. 'tecnickcom/tcpdf' =>
  309. array (
  310. 'pretty_version' => '6.4.1',
  311. 'version' => '6.4.1.0',
  312. 'aliases' =>
  313. array (
  314. ),
  315. 'reference' => '5ba838befdb37ef06a16d9f716f35eb03cb1b329',
  316. ),
  317. 'twig/twig' =>
  318. array (
  319. 'pretty_version' => 'v2.13.1',
  320. 'version' => '2.13.1.0',
  321. 'aliases' =>
  322. array (
  323. ),
  324. 'reference' => '57e96259776ddcacf1814885fc3950460c8e18ef',
  325. ),
  326. 'williamdes/mariadb-mysql-kbs' =>
  327. array (
  328. 'pretty_version' => '1.2.12',
  329. 'version' => '1.2.12.0',
  330. 'aliases' =>
  331. array (
  332. ),
  333. 'reference' => 'b5d4b498ba3d24ab7ad7dd0b79384542e37286a1',
  334. ),
  335. ),
  336. );
  337. public static function getInstalledPackages()
  338. {
  339. return array_keys(self::$installed['versions']);
  340. }
  341. public static function isInstalled($packageName)
  342. {
  343. return isset(self::$installed['versions'][$packageName]);
  344. }
  345. public static function satisfies(VersionParser $parser, $packageName, $constraint)
  346. {
  347. $constraint = $parser->parseConstraints($constraint);
  348. $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
  349. return $provided->matches($constraint);
  350. }
  351. public static function getVersionRanges($packageName)
  352. {
  353. if (!isset(self::$installed['versions'][$packageName])) {
  354. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  355. }
  356. $ranges = array();
  357. if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
  358. $ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
  359. }
  360. if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
  361. $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
  362. }
  363. if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
  364. $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
  365. }
  366. if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
  367. $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
  368. }
  369. return implode(' || ', $ranges);
  370. }
  371. public static function getVersion($packageName)
  372. {
  373. if (!isset(self::$installed['versions'][$packageName])) {
  374. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  375. }
  376. if (!isset(self::$installed['versions'][$packageName]['version'])) {
  377. return null;
  378. }
  379. return self::$installed['versions'][$packageName]['version'];
  380. }
  381. public static function getPrettyVersion($packageName)
  382. {
  383. if (!isset(self::$installed['versions'][$packageName])) {
  384. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  385. }
  386. if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
  387. return null;
  388. }
  389. return self::$installed['versions'][$packageName]['pretty_version'];
  390. }
  391. public static function getReference($packageName)
  392. {
  393. if (!isset(self::$installed['versions'][$packageName])) {
  394. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  395. }
  396. if (!isset(self::$installed['versions'][$packageName]['reference'])) {
  397. return null;
  398. }
  399. return self::$installed['versions'][$packageName]['reference'];
  400. }
  401. public static function getRootPackage()
  402. {
  403. return self::$installed['root'];
  404. }
  405. public static function getRawData()
  406. {
  407. return self::$installed;
  408. }
  409. public static function reload($data)
  410. {
  411. self::$installed = $data;
  412. }
  413. }