InstalledVersions.php 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240
  1. <?php
  2. namespace Composer;
  3. use Composer\Autoload\ClassLoader;
  4. use Composer\Semver\VersionParser;
  5. class InstalledVersions
  6. {
  7. private static $installed = array (
  8. 'root' =>
  9. array (
  10. 'pretty_version' => 'dev-master',
  11. 'version' => 'dev-master',
  12. 'aliases' =>
  13. array (
  14. ),
  15. 'reference' => 'b3fb8f33b76512092ec6eae631208ae7a334ee79',
  16. 'name' => 'topthink/think',
  17. ),
  18. 'versions' =>
  19. array (
  20. 'adbario/php-dot-notation' =>
  21. array (
  22. 'pretty_version' => '2.2.0',
  23. 'version' => '2.2.0.0',
  24. 'aliases' =>
  25. array (
  26. ),
  27. 'reference' => 'eee4fc81296531e6aafba4c2bbccfc5adab1676e',
  28. ),
  29. 'alibabacloud/client' =>
  30. array (
  31. 'pretty_version' => '1.5.31',
  32. 'version' => '1.5.31.0',
  33. 'aliases' =>
  34. array (
  35. ),
  36. 'reference' => '19224d92fe27ab8ef501d77d4891e7660bc023c1',
  37. ),
  38. 'aliyuncs/oss-sdk-php' =>
  39. array (
  40. 'pretty_version' => 'v2.4.3',
  41. 'version' => '2.4.3.0',
  42. 'aliases' =>
  43. array (
  44. ),
  45. 'reference' => '4ccead614915ee6685bf30016afb01aabd347e46',
  46. ),
  47. 'bacon/bacon-qr-code' =>
  48. array (
  49. 'pretty_version' => '2.0.4',
  50. 'version' => '2.0.4.0',
  51. 'aliases' =>
  52. array (
  53. ),
  54. 'reference' => 'f73543ac4e1def05f1a70bcd1525c8a157a1ad09',
  55. ),
  56. 'clagiordano/weblibs-configmanager' =>
  57. array (
  58. 'pretty_version' => 'v1.2.0',
  59. 'version' => '1.2.0.0',
  60. 'aliases' =>
  61. array (
  62. ),
  63. 'reference' => '5c8ebcc62782313b1278afe802b120d18c07a059',
  64. ),
  65. 'danielstjules/stringy' =>
  66. array (
  67. 'pretty_version' => '3.1.0',
  68. 'version' => '3.1.0.0',
  69. 'aliases' =>
  70. array (
  71. ),
  72. 'reference' => 'df24ab62d2d8213bbbe88cc36fc35a4503b4bd7e',
  73. ),
  74. 'dasprid/enum' =>
  75. array (
  76. 'pretty_version' => '1.0.3',
  77. 'version' => '1.0.3.0',
  78. 'aliases' =>
  79. array (
  80. ),
  81. 'reference' => '5abf82f213618696dda8e3bf6f64dd042d8542b2',
  82. ),
  83. 'doctrine/annotations' =>
  84. array (
  85. 'pretty_version' => '1.13.2',
  86. 'version' => '1.13.2.0',
  87. 'aliases' =>
  88. array (
  89. ),
  90. 'reference' => '5b668aef16090008790395c02c893b1ba13f7e08',
  91. ),
  92. 'doctrine/cache' =>
  93. array (
  94. 'pretty_version' => 'v1.4.4',
  95. 'version' => '1.4.4.0',
  96. 'aliases' =>
  97. array (
  98. ),
  99. 'reference' => '6433826dd02c9e5be8a127320dc13e7e6625d020',
  100. ),
  101. 'doctrine/lexer' =>
  102. array (
  103. 'pretty_version' => '1.2.1',
  104. 'version' => '1.2.1.0',
  105. 'aliases' =>
  106. array (
  107. ),
  108. 'reference' => 'e864bbf5904cb8f5bb334f99209b48018522f042',
  109. ),
  110. 'endroid/qr-code' =>
  111. array (
  112. 'pretty_version' => '3.9.7',
  113. 'version' => '3.9.7.0',
  114. 'aliases' =>
  115. array (
  116. ),
  117. 'reference' => '94563d7b3105288e6ac53a67ae720e3669fac1f6',
  118. ),
  119. 'ezyang/htmlpurifier' =>
  120. array (
  121. 'pretty_version' => 'v4.13.0',
  122. 'version' => '4.13.0.0',
  123. 'aliases' =>
  124. array (
  125. ),
  126. 'reference' => '08e27c97e4c6ed02f37c5b2b20488046c8d90d75',
  127. ),
  128. 'firebase/php-jwt' =>
  129. array (
  130. 'pretty_version' => 'v5.4.0',
  131. 'version' => '5.4.0.0',
  132. 'aliases' =>
  133. array (
  134. ),
  135. 'reference' => 'd2113d9b2e0e349796e72d2a63cf9319100382d2',
  136. ),
  137. 'gregwar/captcha' =>
  138. array (
  139. 'pretty_version' => 'v1.1.9',
  140. 'version' => '1.1.9.0',
  141. 'aliases' =>
  142. array (
  143. ),
  144. 'reference' => '4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5',
  145. ),
  146. 'guzzle/batch' =>
  147. array (
  148. 'replaced' =>
  149. array (
  150. 0 => 'v3.9.3',
  151. ),
  152. ),
  153. 'guzzle/cache' =>
  154. array (
  155. 'replaced' =>
  156. array (
  157. 0 => 'v3.9.3',
  158. ),
  159. ),
  160. 'guzzle/common' =>
  161. array (
  162. 'replaced' =>
  163. array (
  164. 0 => 'v3.9.3',
  165. ),
  166. ),
  167. 'guzzle/guzzle' =>
  168. array (
  169. 'pretty_version' => 'v3.9.3',
  170. 'version' => '3.9.3.0',
  171. 'aliases' =>
  172. array (
  173. ),
  174. 'reference' => '0645b70d953bc1c067bbc8d5bc53194706b628d9',
  175. ),
  176. 'guzzle/http' =>
  177. array (
  178. 'replaced' =>
  179. array (
  180. 0 => 'v3.9.3',
  181. ),
  182. ),
  183. 'guzzle/inflection' =>
  184. array (
  185. 'replaced' =>
  186. array (
  187. 0 => 'v3.9.3',
  188. ),
  189. ),
  190. 'guzzle/iterator' =>
  191. array (
  192. 'replaced' =>
  193. array (
  194. 0 => 'v3.9.3',
  195. ),
  196. ),
  197. 'guzzle/log' =>
  198. array (
  199. 'replaced' =>
  200. array (
  201. 0 => 'v3.9.3',
  202. ),
  203. ),
  204. 'guzzle/parser' =>
  205. array (
  206. 'replaced' =>
  207. array (
  208. 0 => 'v3.9.3',
  209. ),
  210. ),
  211. 'guzzle/plugin' =>
  212. array (
  213. 'replaced' =>
  214. array (
  215. 0 => 'v3.9.3',
  216. ),
  217. ),
  218. 'guzzle/plugin-async' =>
  219. array (
  220. 'replaced' =>
  221. array (
  222. 0 => 'v3.9.3',
  223. ),
  224. ),
  225. 'guzzle/plugin-backoff' =>
  226. array (
  227. 'replaced' =>
  228. array (
  229. 0 => 'v3.9.3',
  230. ),
  231. ),
  232. 'guzzle/plugin-cache' =>
  233. array (
  234. 'replaced' =>
  235. array (
  236. 0 => 'v3.9.3',
  237. ),
  238. ),
  239. 'guzzle/plugin-cookie' =>
  240. array (
  241. 'replaced' =>
  242. array (
  243. 0 => 'v3.9.3',
  244. ),
  245. ),
  246. 'guzzle/plugin-curlauth' =>
  247. array (
  248. 'replaced' =>
  249. array (
  250. 0 => 'v3.9.3',
  251. ),
  252. ),
  253. 'guzzle/plugin-error-response' =>
  254. array (
  255. 'replaced' =>
  256. array (
  257. 0 => 'v3.9.3',
  258. ),
  259. ),
  260. 'guzzle/plugin-history' =>
  261. array (
  262. 'replaced' =>
  263. array (
  264. 0 => 'v3.9.3',
  265. ),
  266. ),
  267. 'guzzle/plugin-log' =>
  268. array (
  269. 'replaced' =>
  270. array (
  271. 0 => 'v3.9.3',
  272. ),
  273. ),
  274. 'guzzle/plugin-md5' =>
  275. array (
  276. 'replaced' =>
  277. array (
  278. 0 => 'v3.9.3',
  279. ),
  280. ),
  281. 'guzzle/plugin-mock' =>
  282. array (
  283. 'replaced' =>
  284. array (
  285. 0 => 'v3.9.3',
  286. ),
  287. ),
  288. 'guzzle/plugin-oauth' =>
  289. array (
  290. 'replaced' =>
  291. array (
  292. 0 => 'v3.9.3',
  293. ),
  294. ),
  295. 'guzzle/service' =>
  296. array (
  297. 'replaced' =>
  298. array (
  299. 0 => 'v3.9.3',
  300. ),
  301. ),
  302. 'guzzle/stream' =>
  303. array (
  304. 'replaced' =>
  305. array (
  306. 0 => 'v3.9.3',
  307. ),
  308. ),
  309. 'guzzlehttp/command' =>
  310. array (
  311. 'pretty_version' => '1.0.0',
  312. 'version' => '1.0.0.0',
  313. 'aliases' =>
  314. array (
  315. ),
  316. 'reference' => '2aaa2521a8f8269d6f5dfc13fe2af12c76921034',
  317. ),
  318. 'guzzlehttp/guzzle' =>
  319. array (
  320. 'pretty_version' => '6.5.5',
  321. 'version' => '6.5.5.0',
  322. 'aliases' =>
  323. array (
  324. ),
  325. 'reference' => '9d4290de1cfd701f38099ef7e183b64b4b7b0c5e',
  326. ),
  327. 'guzzlehttp/guzzle-services' =>
  328. array (
  329. 'pretty_version' => '1.1.3',
  330. 'version' => '1.1.3.0',
  331. 'aliases' =>
  332. array (
  333. ),
  334. 'reference' => '9e3abf20161cbf662d616cbb995f2811771759f7',
  335. ),
  336. 'guzzlehttp/promises' =>
  337. array (
  338. 'pretty_version' => '1.4.1',
  339. 'version' => '1.4.1.0',
  340. 'aliases' =>
  341. array (
  342. ),
  343. 'reference' => '8e7d04f1f6450fef59366c399cfad4b9383aa30d',
  344. ),
  345. 'guzzlehttp/psr7' =>
  346. array (
  347. 'pretty_version' => '1.8.2',
  348. 'version' => '1.8.2.0',
  349. 'aliases' =>
  350. array (
  351. ),
  352. 'reference' => 'dc960a912984efb74d0a90222870c72c87f10c91',
  353. ),
  354. 'khanamiryan/qrcode-detector-decoder' =>
  355. array (
  356. 'pretty_version' => '1.0.5.2',
  357. 'version' => '1.0.5.2',
  358. 'aliases' =>
  359. array (
  360. ),
  361. 'reference' => '04fdd58d86a387065f707dc6d3cc304c719910c1',
  362. ),
  363. 'league/flysystem' =>
  364. array (
  365. 'pretty_version' => '1.1.5',
  366. 'version' => '1.1.5.0',
  367. 'aliases' =>
  368. array (
  369. ),
  370. 'reference' => '18634df356bfd4119fe3d6156bdb990c414c14ea',
  371. ),
  372. 'league/flysystem-cached-adapter' =>
  373. array (
  374. 'pretty_version' => '1.1.0',
  375. 'version' => '1.1.0.0',
  376. 'aliases' =>
  377. array (
  378. ),
  379. 'reference' => 'd1925efb2207ac4be3ad0c40b8277175f99ffaff',
  380. ),
  381. 'league/mime-type-detection' =>
  382. array (
  383. 'pretty_version' => '1.7.0',
  384. 'version' => '1.7.0.0',
  385. 'aliases' =>
  386. array (
  387. ),
  388. 'reference' => '3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3',
  389. ),
  390. 'maennchen/zipstream-php' =>
  391. array (
  392. 'pretty_version' => '2.1.0',
  393. 'version' => '2.1.0.0',
  394. 'aliases' =>
  395. array (
  396. ),
  397. 'reference' => 'c4c5803cc1f93df3d2448478ef79394a5981cc58',
  398. ),
  399. 'maniac/easemob-php' =>
  400. array (
  401. 'pretty_version' => '1.0.0',
  402. 'version' => '1.0.0.0',
  403. 'aliases' =>
  404. array (
  405. ),
  406. 'reference' => '36b550328c9911957becde2fd62b9379ba45865c',
  407. ),
  408. 'markbaker/complex' =>
  409. array (
  410. 'pretty_version' => '2.0.3',
  411. 'version' => '2.0.3.0',
  412. 'aliases' =>
  413. array (
  414. ),
  415. 'reference' => '6f724d7e04606fd8adaa4e3bb381c3e9db09c946',
  416. ),
  417. 'markbaker/matrix' =>
  418. array (
  419. 'pretty_version' => '2.1.3',
  420. 'version' => '2.1.3.0',
  421. 'aliases' =>
  422. array (
  423. ),
  424. 'reference' => '174395a901b5ba0925f1d790fa91bab531074b61',
  425. ),
  426. 'monolog/monolog' =>
  427. array (
  428. 'pretty_version' => '1.26.1',
  429. 'version' => '1.26.1.0',
  430. 'aliases' =>
  431. array (
  432. ),
  433. 'reference' => 'c6b00f05152ae2c9b04a448f99c7590beb6042f5',
  434. ),
  435. 'mtdowling/jmespath.php' =>
  436. array (
  437. 'pretty_version' => '2.6.1',
  438. 'version' => '2.6.1.0',
  439. 'aliases' =>
  440. array (
  441. ),
  442. 'reference' => '9b87907a81b87bc76d19a7fb2d61e61486ee9edb',
  443. ),
  444. 'myclabs/php-enum' =>
  445. array (
  446. 'pretty_version' => '1.8.3',
  447. 'version' => '1.8.3.0',
  448. 'aliases' =>
  449. array (
  450. ),
  451. 'reference' => 'b942d263c641ddb5190929ff840c68f78713e937',
  452. ),
  453. 'nesbot/carbon' =>
  454. array (
  455. 'pretty_version' => '2.52.0',
  456. 'version' => '2.52.0.0',
  457. 'aliases' =>
  458. array (
  459. ),
  460. 'reference' => '369c0e2737c56a0f39c946dd261855255a6fccbe',
  461. ),
  462. 'nette/php-generator' =>
  463. array (
  464. 'pretty_version' => 'v3.5.4',
  465. 'version' => '3.5.4.0',
  466. 'aliases' =>
  467. array (
  468. ),
  469. 'reference' => '59bb35ed6e8da95854fbf7b7d47dce6156b42915',
  470. ),
  471. 'nette/utils' =>
  472. array (
  473. 'pretty_version' => 'v3.2.3',
  474. 'version' => '3.2.3.0',
  475. 'aliases' =>
  476. array (
  477. ),
  478. 'reference' => '5c36cc1ba9bb6abb8a9e425cf054e0c3fd5b9822',
  479. ),
  480. 'open-smf/connection-pool' =>
  481. array (
  482. 'pretty_version' => 'v1.0.16',
  483. 'version' => '1.0.16.0',
  484. 'aliases' =>
  485. array (
  486. ),
  487. 'reference' => 'f70e47dbf56f1869d3207e15825cf38810b865e0',
  488. ),
  489. 'overtrue/socialite' =>
  490. array (
  491. 'pretty_version' => '1.3.0',
  492. 'version' => '1.3.0.0',
  493. 'aliases' =>
  494. array (
  495. ),
  496. 'reference' => 'fda55f0acef43a144799b1957a8f93d9f5deffce',
  497. ),
  498. 'overtrue/wechat' =>
  499. array (
  500. 'pretty_version' => '3.3.34',
  501. 'version' => '3.3.34.0',
  502. 'aliases' =>
  503. array (
  504. ),
  505. 'reference' => '103bc72caa25542af6d96a6b4e7994f2a1edd504',
  506. ),
  507. 'paragonie/constant_time_encoding' =>
  508. array (
  509. 'pretty_version' => 'v2.4.0',
  510. 'version' => '2.4.0.0',
  511. 'aliases' =>
  512. array (
  513. ),
  514. 'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
  515. ),
  516. 'paragonie/random_compat' =>
  517. array (
  518. 'pretty_version' => 'v9.99.100',
  519. 'version' => '9.99.100.0',
  520. 'aliases' =>
  521. array (
  522. ),
  523. 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
  524. ),
  525. 'phpmailer/phpmailer' =>
  526. array (
  527. 'pretty_version' => 'v6.10.0',
  528. 'version' => '6.10.0.0',
  529. 'aliases' =>
  530. array (
  531. ),
  532. 'reference' => 'bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144',
  533. ),
  534. 'phpoffice/phpexcel' =>
  535. array (
  536. 'pretty_version' => '1.8.2',
  537. 'version' => '1.8.2.0',
  538. 'aliases' =>
  539. array (
  540. ),
  541. 'reference' => '1441011fb7ecdd8cc689878f54f8b58a6805f870',
  542. ),
  543. 'phpoffice/phpspreadsheet' =>
  544. array (
  545. 'pretty_version' => '1.18.0',
  546. 'version' => '1.18.0.0',
  547. 'aliases' =>
  548. array (
  549. ),
  550. 'reference' => '418cd304e8e6b417ea79c3b29126a25dc4b1170c',
  551. ),
  552. 'phpseclib/phpseclib' =>
  553. array (
  554. 'pretty_version' => '3.0.10',
  555. 'version' => '3.0.10.0',
  556. 'aliases' =>
  557. array (
  558. ),
  559. 'reference' => '62fcc5a94ac83b1506f52d7558d828617fac9187',
  560. ),
  561. 'pimple/pimple' =>
  562. array (
  563. 'pretty_version' => 'v3.4.0',
  564. 'version' => '3.4.0.0',
  565. 'aliases' =>
  566. array (
  567. ),
  568. 'reference' => '86406047271859ffc13424a048541f4531f53601',
  569. ),
  570. 'psr/cache' =>
  571. array (
  572. 'pretty_version' => '1.0.1',
  573. 'version' => '1.0.1.0',
  574. 'aliases' =>
  575. array (
  576. ),
  577. 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
  578. ),
  579. 'psr/container' =>
  580. array (
  581. 'pretty_version' => '1.1.1',
  582. 'version' => '1.1.1.0',
  583. 'aliases' =>
  584. array (
  585. ),
  586. 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf',
  587. ),
  588. 'psr/http-client' =>
  589. array (
  590. 'pretty_version' => '1.0.1',
  591. 'version' => '1.0.1.0',
  592. 'aliases' =>
  593. array (
  594. ),
  595. 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621',
  596. ),
  597. 'psr/http-factory' =>
  598. array (
  599. 'pretty_version' => '1.0.1',
  600. 'version' => '1.0.1.0',
  601. 'aliases' =>
  602. array (
  603. ),
  604. 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be',
  605. ),
  606. 'psr/http-message' =>
  607. array (
  608. 'pretty_version' => '1.0.1',
  609. 'version' => '1.0.1.0',
  610. 'aliases' =>
  611. array (
  612. ),
  613. 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
  614. ),
  615. 'psr/http-message-implementation' =>
  616. array (
  617. 'provided' =>
  618. array (
  619. 0 => '1.0',
  620. ),
  621. ),
  622. 'psr/log' =>
  623. array (
  624. 'pretty_version' => '1.1.4',
  625. 'version' => '1.1.4.0',
  626. 'aliases' =>
  627. array (
  628. ),
  629. 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
  630. ),
  631. 'psr/log-implementation' =>
  632. array (
  633. 'provided' =>
  634. array (
  635. 0 => '1.0.0',
  636. ),
  637. ),
  638. 'psr/simple-cache' =>
  639. array (
  640. 'pretty_version' => '1.0.1',
  641. 'version' => '1.0.1.0',
  642. 'aliases' =>
  643. array (
  644. ),
  645. 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
  646. ),
  647. 'qcloud/cos-sdk-v5' =>
  648. array (
  649. 'pretty_version' => 'v1.3.5',
  650. 'version' => '1.3.5.0',
  651. 'aliases' =>
  652. array (
  653. ),
  654. 'reference' => 'e67ad8143695192ee206bcbcafc78c08da92c621',
  655. ),
  656. 'qiniu/php-sdk' =>
  657. array (
  658. 'pretty_version' => 'v7.4.0',
  659. 'version' => '7.4.0.0',
  660. 'aliases' =>
  661. array (
  662. ),
  663. 'reference' => '1c6bc89166e524a40ee42bf516fb99ffc6401c82',
  664. ),
  665. 'ralouphie/getallheaders' =>
  666. array (
  667. 'pretty_version' => '3.0.3',
  668. 'version' => '3.0.3.0',
  669. 'aliases' =>
  670. array (
  671. ),
  672. 'reference' => '120b605dfeb996808c31b6477290a714d356e822',
  673. ),
  674. 'stechstudio/backoff' =>
  675. array (
  676. 'pretty_version' => '1.2',
  677. 'version' => '1.2.0.0',
  678. 'aliases' =>
  679. array (
  680. ),
  681. 'reference' => '816e46107a6be2e1072ba0ff2cb26034872dfa49',
  682. ),
  683. 'swoole/ide-helper' =>
  684. array (
  685. 'pretty_version' => '4.7.1',
  686. 'version' => '4.7.1.0',
  687. 'aliases' =>
  688. array (
  689. ),
  690. 'reference' => '918a98b5b264425fdb59461d9bbd7f9b504ead71',
  691. ),
  692. 'symfony/deprecation-contracts' =>
  693. array (
  694. 'pretty_version' => 'v2.4.0',
  695. 'version' => '2.4.0.0',
  696. 'aliases' =>
  697. array (
  698. ),
  699. 'reference' => '5f38c8804a9e97d23e0c8d63341088cd8a22d627',
  700. ),
  701. 'symfony/event-dispatcher' =>
  702. array (
  703. 'pretty_version' => 'v2.8.52',
  704. 'version' => '2.8.52.0',
  705. 'aliases' =>
  706. array (
  707. ),
  708. 'reference' => 'a77e974a5fecb4398833b0709210e3d5e334ffb0',
  709. ),
  710. 'symfony/finder' =>
  711. array (
  712. 'pretty_version' => 'v5.3.4',
  713. 'version' => '5.3.4.0',
  714. 'aliases' =>
  715. array (
  716. ),
  717. 'reference' => '17f50e06018baec41551a71a15731287dbaab186',
  718. ),
  719. 'symfony/http-foundation' =>
  720. array (
  721. 'pretty_version' => 'v3.4.47',
  722. 'version' => '3.4.47.0',
  723. 'aliases' =>
  724. array (
  725. ),
  726. 'reference' => 'b9885fcce6fe494201da4f70a9309770e9d13dc8',
  727. ),
  728. 'symfony/options-resolver' =>
  729. array (
  730. 'pretty_version' => 'v5.3.4',
  731. 'version' => '5.3.4.0',
  732. 'aliases' =>
  733. array (
  734. ),
  735. 'reference' => 'a603e5701bd6e305cfc777a8b50bf081ef73105e',
  736. ),
  737. 'symfony/polyfill-ctype' =>
  738. array (
  739. 'pretty_version' => 'v1.23.0',
  740. 'version' => '1.23.0.0',
  741. 'aliases' =>
  742. array (
  743. ),
  744. 'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce',
  745. ),
  746. 'symfony/polyfill-intl-grapheme' =>
  747. array (
  748. 'pretty_version' => 'v1.23.1',
  749. 'version' => '1.23.1.0',
  750. 'aliases' =>
  751. array (
  752. ),
  753. 'reference' => '16880ba9c5ebe3642d1995ab866db29270b36535',
  754. ),
  755. 'symfony/polyfill-intl-idn' =>
  756. array (
  757. 'pretty_version' => 'v1.23.0',
  758. 'version' => '1.23.0.0',
  759. 'aliases' =>
  760. array (
  761. ),
  762. 'reference' => '65bd267525e82759e7d8c4e8ceea44f398838e65',
  763. ),
  764. 'symfony/polyfill-intl-normalizer' =>
  765. array (
  766. 'pretty_version' => 'v1.23.0',
  767. 'version' => '1.23.0.0',
  768. 'aliases' =>
  769. array (
  770. ),
  771. 'reference' => '8590a5f561694770bdcd3f9b5c69dde6945028e8',
  772. ),
  773. 'symfony/polyfill-mbstring' =>
  774. array (
  775. 'pretty_version' => 'v1.23.1',
  776. 'version' => '1.23.1.0',
  777. 'aliases' =>
  778. array (
  779. ),
  780. 'reference' => '9174a3d80210dca8daa7f31fec659150bbeabfc6',
  781. ),
  782. 'symfony/polyfill-php70' =>
  783. array (
  784. 'pretty_version' => 'v1.20.0',
  785. 'version' => '1.20.0.0',
  786. 'aliases' =>
  787. array (
  788. ),
  789. 'reference' => '5f03a781d984aae42cebd18e7912fa80f02ee644',
  790. ),
  791. 'symfony/polyfill-php72' =>
  792. array (
  793. 'pretty_version' => 'v1.23.0',
  794. 'version' => '1.23.0.0',
  795. 'aliases' =>
  796. array (
  797. ),
  798. 'reference' => '9a142215a36a3888e30d0a9eeea9766764e96976',
  799. ),
  800. 'symfony/polyfill-php73' =>
  801. array (
  802. 'pretty_version' => 'v1.23.0',
  803. 'version' => '1.23.0.0',
  804. 'aliases' =>
  805. array (
  806. ),
  807. 'reference' => 'fba8933c384d6476ab14fb7b8526e5287ca7e010',
  808. ),
  809. 'symfony/polyfill-php80' =>
  810. array (
  811. 'pretty_version' => 'v1.23.1',
  812. 'version' => '1.23.1.0',
  813. 'aliases' =>
  814. array (
  815. ),
  816. 'reference' => '1100343ed1a92e3a38f9ae122fc0eb21602547be',
  817. ),
  818. 'symfony/process' =>
  819. array (
  820. 'pretty_version' => 'v4.4.27',
  821. 'version' => '4.4.27.0',
  822. 'aliases' =>
  823. array (
  824. ),
  825. 'reference' => '0b7dc5599ac4aa6d7b936c8f7d10abae64f6cf7f',
  826. ),
  827. 'symfony/property-access' =>
  828. array (
  829. 'pretty_version' => 'v5.3.4',
  830. 'version' => '5.3.4.0',
  831. 'aliases' =>
  832. array (
  833. ),
  834. 'reference' => '098681253076af7070df7d9debe5f75733eea189',
  835. ),
  836. 'symfony/property-info' =>
  837. array (
  838. 'pretty_version' => 'v5.3.4',
  839. 'version' => '5.3.4.0',
  840. 'aliases' =>
  841. array (
  842. ),
  843. 'reference' => '0f42009150679a7a256eb6ee106401af5d974ed2',
  844. ),
  845. 'symfony/psr-http-message-bridge' =>
  846. array (
  847. 'pretty_version' => 'v1.2.0',
  848. 'version' => '1.2.0.0',
  849. 'aliases' =>
  850. array (
  851. ),
  852. 'reference' => '9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad',
  853. ),
  854. 'symfony/string' =>
  855. array (
  856. 'pretty_version' => 'v5.3.3',
  857. 'version' => '5.3.3.0',
  858. 'aliases' =>
  859. array (
  860. ),
  861. 'reference' => 'bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1',
  862. ),
  863. 'symfony/translation' =>
  864. array (
  865. 'pretty_version' => 'v5.3.4',
  866. 'version' => '5.3.4.0',
  867. 'aliases' =>
  868. array (
  869. ),
  870. 'reference' => 'd89ad7292932c2699cbe4af98d72c5c6bbc504c1',
  871. ),
  872. 'symfony/translation-contracts' =>
  873. array (
  874. 'pretty_version' => 'v2.4.0',
  875. 'version' => '2.4.0.0',
  876. 'aliases' =>
  877. array (
  878. ),
  879. 'reference' => '95c812666f3e91db75385749fe219c5e494c7f95',
  880. ),
  881. 'symfony/translation-implementation' =>
  882. array (
  883. 'provided' =>
  884. array (
  885. 0 => '2.3',
  886. ),
  887. ),
  888. 'symfony/var-dumper' =>
  889. array (
  890. 'pretty_version' => 'v4.4.27',
  891. 'version' => '4.4.27.0',
  892. 'aliases' =>
  893. array (
  894. ),
  895. 'reference' => '391d6d0e7a06ab54eb7c38fab29b8d174471b3ba',
  896. ),
  897. 'topthink/framework' =>
  898. array (
  899. 'pretty_version' => 'v6.0.9',
  900. 'version' => '6.0.9.0',
  901. 'aliases' =>
  902. array (
  903. ),
  904. 'reference' => '0b5fb453f0e533de3af3a1ab6a202510b61be617',
  905. ),
  906. 'topthink/think' =>
  907. array (
  908. 'pretty_version' => 'dev-master',
  909. 'version' => 'dev-master',
  910. 'aliases' =>
  911. array (
  912. ),
  913. 'reference' => 'b3fb8f33b76512092ec6eae631208ae7a334ee79',
  914. ),
  915. 'topthink/think-helper' =>
  916. array (
  917. 'pretty_version' => 'v3.1.5',
  918. 'version' => '3.1.5.0',
  919. 'aliases' =>
  920. array (
  921. ),
  922. 'reference' => 'f98e3ad44acd27ae85a4d923b1bdfd16c6d8d905',
  923. ),
  924. 'topthink/think-image' =>
  925. array (
  926. 'pretty_version' => 'v1.0.7',
  927. 'version' => '1.0.7.0',
  928. 'aliases' =>
  929. array (
  930. ),
  931. 'reference' => '8586cf47f117481c6d415b20f7dedf62e79d5512',
  932. ),
  933. 'topthink/think-orm' =>
  934. array (
  935. 'pretty_version' => 'v2.0.44',
  936. 'version' => '2.0.44.0',
  937. 'aliases' =>
  938. array (
  939. ),
  940. 'reference' => '5d3d5c1ebf8bfccf34bacd90edb42989b16ea409',
  941. ),
  942. 'topthink/think-queue' =>
  943. array (
  944. 'pretty_version' => 'v3.0.6',
  945. 'version' => '3.0.6.0',
  946. 'aliases' =>
  947. array (
  948. ),
  949. 'reference' => 'a9f81126bdd52d036461e0c6556592dd478c8728',
  950. ),
  951. 'topthink/think-swoole' =>
  952. array (
  953. 'pretty_version' => 'v3.1.3',
  954. 'version' => '3.1.3.0',
  955. 'aliases' =>
  956. array (
  957. ),
  958. 'reference' => 'df78b1f6eb6cd8f45f49ab7b0d4cc65595181504',
  959. ),
  960. 'xaboy/form-builder' =>
  961. array (
  962. 'pretty_version' => '2.0.19',
  963. 'version' => '2.0.19.0',
  964. 'aliases' =>
  965. array (
  966. ),
  967. 'reference' => '5cf3f5435a63954c1d11ba82c3cd4cfe3d145acf',
  968. ),
  969. ),
  970. );
  971. private static $canGetVendors;
  972. private static $installedByVendor = array();
  973. public static function getInstalledPackages()
  974. {
  975. $packages = array();
  976. foreach (self::getInstalled() as $installed) {
  977. $packages[] = array_keys($installed['versions']);
  978. }
  979. if (1 === \count($packages)) {
  980. return $packages[0];
  981. }
  982. return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
  983. }
  984. public static function isInstalled($packageName)
  985. {
  986. foreach (self::getInstalled() as $installed) {
  987. if (isset($installed['versions'][$packageName])) {
  988. return true;
  989. }
  990. }
  991. return false;
  992. }
  993. public static function satisfies(VersionParser $parser, $packageName, $constraint)
  994. {
  995. $constraint = $parser->parseConstraints($constraint);
  996. $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
  997. return $provided->matches($constraint);
  998. }
  999. public static function getVersionRanges($packageName)
  1000. {
  1001. foreach (self::getInstalled() as $installed) {
  1002. if (!isset($installed['versions'][$packageName])) {
  1003. continue;
  1004. }
  1005. $ranges = array();
  1006. if (isset($installed['versions'][$packageName]['pretty_version'])) {
  1007. $ranges[] = $installed['versions'][$packageName]['pretty_version'];
  1008. }
  1009. if (array_key_exists('aliases', $installed['versions'][$packageName])) {
  1010. $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
  1011. }
  1012. if (array_key_exists('replaced', $installed['versions'][$packageName])) {
  1013. $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
  1014. }
  1015. if (array_key_exists('provided', $installed['versions'][$packageName])) {
  1016. $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
  1017. }
  1018. return implode(' || ', $ranges);
  1019. }
  1020. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1021. }
  1022. public static function getVersion($packageName)
  1023. {
  1024. foreach (self::getInstalled() as $installed) {
  1025. if (!isset($installed['versions'][$packageName])) {
  1026. continue;
  1027. }
  1028. if (!isset($installed['versions'][$packageName]['version'])) {
  1029. return null;
  1030. }
  1031. return $installed['versions'][$packageName]['version'];
  1032. }
  1033. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1034. }
  1035. public static function getPrettyVersion($packageName)
  1036. {
  1037. foreach (self::getInstalled() as $installed) {
  1038. if (!isset($installed['versions'][$packageName])) {
  1039. continue;
  1040. }
  1041. if (!isset($installed['versions'][$packageName]['pretty_version'])) {
  1042. return null;
  1043. }
  1044. return $installed['versions'][$packageName]['pretty_version'];
  1045. }
  1046. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1047. }
  1048. public static function getReference($packageName)
  1049. {
  1050. foreach (self::getInstalled() as $installed) {
  1051. if (!isset($installed['versions'][$packageName])) {
  1052. continue;
  1053. }
  1054. if (!isset($installed['versions'][$packageName]['reference'])) {
  1055. return null;
  1056. }
  1057. return $installed['versions'][$packageName]['reference'];
  1058. }
  1059. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1060. }
  1061. public static function getRootPackage()
  1062. {
  1063. $installed = self::getInstalled();
  1064. return $installed[0]['root'];
  1065. }
  1066. public static function getRawData()
  1067. {
  1068. @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
  1069. return self::$installed;
  1070. }
  1071. public static function getAllRawData()
  1072. {
  1073. return self::getInstalled();
  1074. }
  1075. public static function reload($data)
  1076. {
  1077. self::$installed = $data;
  1078. self::$installedByVendor = array();
  1079. }
  1080. private static function getInstalled()
  1081. {
  1082. if (null === self::$canGetVendors) {
  1083. self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
  1084. }
  1085. $installed = array();
  1086. if (self::$canGetVendors) {
  1087. foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
  1088. if (isset(self::$installedByVendor[$vendorDir])) {
  1089. $installed[] = self::$installedByVendor[$vendorDir];
  1090. } elseif (is_file($vendorDir.'/composer/installed.php')) {
  1091. $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
  1092. }
  1093. }
  1094. }
  1095. $installed[] = self::$installed;
  1096. return $installed;
  1097. }
  1098. }