InstalledVersions.php 28 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261
  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' => 'b4d08155eb79c5471dc034238c7896deaeaff6a5',
  16. 'name' => 'topthink/think',
  17. ),
  18. 'versions' =>
  19. array (
  20. 'adbario/php-dot-notation' =>
  21. array (
  22. 'pretty_version' => '2.5.0',
  23. 'version' => '2.5.0.0',
  24. 'aliases' =>
  25. array (
  26. ),
  27. 'reference' => '081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae',
  28. ),
  29. 'alibabacloud/credentials' =>
  30. array (
  31. 'pretty_version' => '1.2.0',
  32. 'version' => '1.2.0.0',
  33. 'aliases' =>
  34. array (
  35. ),
  36. 'reference' => 'ebcda2e628180b4df235b46a86e1d014c561f5d9',
  37. ),
  38. 'alibabacloud/darabonba-openapi' =>
  39. array (
  40. 'pretty_version' => '0.2.13',
  41. 'version' => '0.2.13.0',
  42. 'aliases' =>
  43. array (
  44. ),
  45. 'reference' => '0213396384e2c064eefd614f3dd53636a63f987f',
  46. ),
  47. 'alibabacloud/dysmsapi-20170525' =>
  48. array (
  49. 'pretty_version' => '3.1.0',
  50. 'version' => '3.1.0.0',
  51. 'aliases' =>
  52. array (
  53. ),
  54. 'reference' => '5f779cf8d6d8807b9835bff8d058dbab6d59bbf1',
  55. ),
  56. 'alibabacloud/endpoint-util' =>
  57. array (
  58. 'pretty_version' => '0.1.1',
  59. 'version' => '0.1.1.0',
  60. 'aliases' =>
  61. array (
  62. ),
  63. 'reference' => 'f3fe88a25d8df4faa3b0ae14ff202a9cc094e6c5',
  64. ),
  65. 'alibabacloud/gateway-spi' =>
  66. array (
  67. 'pretty_version' => '1.0.0',
  68. 'version' => '1.0.0.0',
  69. 'aliases' =>
  70. array (
  71. ),
  72. 'reference' => '7440f77750c329d8ab252db1d1d967314ccd1fcb',
  73. ),
  74. 'alibabacloud/openapi-util' =>
  75. array (
  76. 'pretty_version' => '0.2.1',
  77. 'version' => '0.2.1.0',
  78. 'aliases' =>
  79. array (
  80. ),
  81. 'reference' => 'f31f7bcd835e08ca24b6b8ba33637eb4eceb093a',
  82. ),
  83. 'alibabacloud/tea' =>
  84. array (
  85. 'pretty_version' => '3.2.1',
  86. 'version' => '3.2.1.0',
  87. 'aliases' =>
  88. array (
  89. ),
  90. 'reference' => '1619cb96c158384f72b873e1f85de8b299c9c367',
  91. ),
  92. 'alibabacloud/tea-fileform' =>
  93. array (
  94. 'pretty_version' => '0.3.4',
  95. 'version' => '0.3.4.0',
  96. 'aliases' =>
  97. array (
  98. ),
  99. 'reference' => '4bf0c75a045c8115aa8cb1a394bd08d8bb833181',
  100. ),
  101. 'alibabacloud/tea-utils' =>
  102. array (
  103. 'pretty_version' => '0.2.21',
  104. 'version' => '0.2.21.0',
  105. 'aliases' =>
  106. array (
  107. ),
  108. 'reference' => '5039e45714c6456186d267f5d81a4b260a652495',
  109. ),
  110. 'alibabacloud/tea-xml' =>
  111. array (
  112. 'pretty_version' => '0.2.4',
  113. 'version' => '0.2.4.0',
  114. 'aliases' =>
  115. array (
  116. ),
  117. 'reference' => '3e0c000bf536224eebbac913c371bef174c0a16a',
  118. ),
  119. 'alipaysdk/easysdk' =>
  120. array (
  121. 'pretty_version' => '2.2.3',
  122. 'version' => '2.2.3.0',
  123. 'aliases' =>
  124. array (
  125. ),
  126. 'reference' => 'c6008839a22a5fca08e9f8536730f7abfed522d5',
  127. ),
  128. 'aliyuncs/oss-sdk-php' =>
  129. array (
  130. 'pretty_version' => 'v2.7.2',
  131. 'version' => '2.7.2.0',
  132. 'aliases' =>
  133. array (
  134. ),
  135. 'reference' => '483dd0b8bff5d47f0e4ffc99f6077a295c5ccbb5',
  136. ),
  137. 'async-aws/core' =>
  138. array (
  139. 'pretty_version' => '1.21.0',
  140. 'version' => '1.21.0.0',
  141. 'aliases' =>
  142. array (
  143. ),
  144. 'reference' => 'eb23cc59515d8d529163313bbf9e02f666e515ef',
  145. ),
  146. 'bacon/bacon-qr-code' =>
  147. array (
  148. 'pretty_version' => '2.0.8',
  149. 'version' => '2.0.8.0',
  150. 'aliases' =>
  151. array (
  152. ),
  153. 'reference' => '8674e51bb65af933a5ffaf1c308a660387c35c22',
  154. ),
  155. 'carbonphp/carbon-doctrine-types' =>
  156. array (
  157. 'pretty_version' => '2.1.0',
  158. 'version' => '2.1.0.0',
  159. 'aliases' =>
  160. array (
  161. ),
  162. 'reference' => '99f76ffa36cce3b70a4a6abce41dba15ca2e84cb',
  163. ),
  164. 'dasprid/enum' =>
  165. array (
  166. 'pretty_version' => '1.0.5',
  167. 'version' => '1.0.5.0',
  168. 'aliases' =>
  169. array (
  170. ),
  171. 'reference' => '6faf451159fb8ba4126b925ed2d78acfce0dc016',
  172. ),
  173. 'easywechat-composer/easywechat-composer' =>
  174. array (
  175. 'pretty_version' => '1.4.1',
  176. 'version' => '1.4.1.0',
  177. 'aliases' =>
  178. array (
  179. ),
  180. 'reference' => '3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd',
  181. ),
  182. 'endroid/qr-code' =>
  183. array (
  184. 'pretty_version' => '4.6.1',
  185. 'version' => '4.6.1.0',
  186. 'aliases' =>
  187. array (
  188. ),
  189. 'reference' => 'a75c913b0e4d6ad275e49a2c1de1cacffc6c2184',
  190. ),
  191. 'ezyang/htmlpurifier' =>
  192. array (
  193. 'pretty_version' => 'v4.18.0',
  194. 'version' => '4.18.0.0',
  195. 'aliases' =>
  196. array (
  197. ),
  198. 'reference' => 'cb56001e54359df7ae76dc522d08845dc741621b',
  199. ),
  200. 'fastknife/ajcaptcha' =>
  201. array (
  202. 'pretty_version' => 'v1.2.2',
  203. 'version' => '1.2.2.0',
  204. 'aliases' =>
  205. array (
  206. ),
  207. 'reference' => '87c122b6cd950fd98702e929685e5e7c0c517ddc',
  208. ),
  209. 'firebase/php-jwt' =>
  210. array (
  211. 'pretty_version' => 'v6.10.0',
  212. 'version' => '6.10.0.0',
  213. 'aliases' =>
  214. array (
  215. ),
  216. 'reference' => 'a49db6f0a5033aef5143295342f1c95521b075ff',
  217. ),
  218. 'guzzlehttp/command' =>
  219. array (
  220. 'pretty_version' => '1.3.1',
  221. 'version' => '1.3.1.0',
  222. 'aliases' =>
  223. array (
  224. ),
  225. 'reference' => '0eebc653784f4902b3272e826fe8e88743d14e77',
  226. ),
  227. 'guzzlehttp/guzzle' =>
  228. array (
  229. 'pretty_version' => '7.9.2',
  230. 'version' => '7.9.2.0',
  231. 'aliases' =>
  232. array (
  233. ),
  234. 'reference' => 'd281ed313b989f213357e3be1a179f02196ac99b',
  235. ),
  236. 'guzzlehttp/guzzle-services' =>
  237. array (
  238. 'pretty_version' => '1.4.1',
  239. 'version' => '1.4.1.0',
  240. 'aliases' =>
  241. array (
  242. ),
  243. 'reference' => 'bcab7c0d61672b606510a6fe5af3039d04968c0f',
  244. ),
  245. 'guzzlehttp/promises' =>
  246. array (
  247. 'pretty_version' => '2.0.3',
  248. 'version' => '2.0.3.0',
  249. 'aliases' =>
  250. array (
  251. ),
  252. 'reference' => '6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8',
  253. ),
  254. 'guzzlehttp/psr7' =>
  255. array (
  256. 'pretty_version' => '2.7.0',
  257. 'version' => '2.7.0.0',
  258. 'aliases' =>
  259. array (
  260. ),
  261. 'reference' => 'a70f5c95fb43bc83f07c9c948baa0dc1829bf201',
  262. ),
  263. 'guzzlehttp/ringphp' =>
  264. array (
  265. 'pretty_version' => '1.1.1',
  266. 'version' => '1.1.1.0',
  267. 'aliases' =>
  268. array (
  269. ),
  270. 'reference' => '5e2a174052995663dd68e6b5ad838afd47dd615b',
  271. ),
  272. 'guzzlehttp/streams' =>
  273. array (
  274. 'pretty_version' => '3.0.0',
  275. 'version' => '3.0.0.0',
  276. 'aliases' =>
  277. array (
  278. ),
  279. 'reference' => '47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5',
  280. ),
  281. 'guzzlehttp/uri-template' =>
  282. array (
  283. 'pretty_version' => 'v1.0.3',
  284. 'version' => '1.0.3.0',
  285. 'aliases' =>
  286. array (
  287. ),
  288. 'reference' => 'ecea8feef63bd4fef1f037ecb288386999ecc11c',
  289. ),
  290. 'intervention/image' =>
  291. array (
  292. 'pretty_version' => '2.7.2',
  293. 'version' => '2.7.2.0',
  294. 'aliases' =>
  295. array (
  296. ),
  297. 'reference' => '04be355f8d6734c826045d02a1079ad658322dad',
  298. ),
  299. 'joypack/tencent-map' =>
  300. array (
  301. 'pretty_version' => '1.0.0',
  302. 'version' => '1.0.0.0',
  303. 'aliases' =>
  304. array (
  305. ),
  306. 'reference' => '97c0269086d53dbecb9c3c6e1d2717645d7940a8',
  307. ),
  308. 'league/flysystem' =>
  309. array (
  310. 'pretty_version' => '1.1.10',
  311. 'version' => '1.1.10.0',
  312. 'aliases' =>
  313. array (
  314. ),
  315. 'reference' => '3239285c825c152bcc315fe0e87d6b55f5972ed1',
  316. ),
  317. 'league/flysystem-cached-adapter' =>
  318. array (
  319. 'pretty_version' => '1.1.0',
  320. 'version' => '1.1.0.0',
  321. 'aliases' =>
  322. array (
  323. ),
  324. 'reference' => 'd1925efb2207ac4be3ad0c40b8277175f99ffaff',
  325. ),
  326. 'league/mime-type-detection' =>
  327. array (
  328. 'pretty_version' => '1.15.0',
  329. 'version' => '1.15.0.0',
  330. 'aliases' =>
  331. array (
  332. ),
  333. 'reference' => 'ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301',
  334. ),
  335. 'lizhichao/one-sm' =>
  336. array (
  337. 'pretty_version' => '1.10',
  338. 'version' => '1.10.0.0',
  339. 'aliases' =>
  340. array (
  341. ),
  342. 'reference' => '687a012a44a5bfd4d9143a0234e1060543be455a',
  343. ),
  344. 'maennchen/zipstream-php' =>
  345. array (
  346. 'pretty_version' => '2.2.6',
  347. 'version' => '2.2.6.0',
  348. 'aliases' =>
  349. array (
  350. ),
  351. 'reference' => '30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f',
  352. ),
  353. 'markbaker/complex' =>
  354. array (
  355. 'pretty_version' => '3.0.2',
  356. 'version' => '3.0.2.0',
  357. 'aliases' =>
  358. array (
  359. ),
  360. 'reference' => '95c56caa1cf5c766ad6d65b6344b807c1e8405b9',
  361. ),
  362. 'markbaker/matrix' =>
  363. array (
  364. 'pretty_version' => '3.0.1',
  365. 'version' => '3.0.1.0',
  366. 'aliases' =>
  367. array (
  368. ),
  369. 'reference' => '728434227fe21be27ff6d86621a1b13107a2562c',
  370. ),
  371. 'monolog/monolog' =>
  372. array (
  373. 'pretty_version' => '2.10.0',
  374. 'version' => '2.10.0.0',
  375. 'aliases' =>
  376. array (
  377. ),
  378. 'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7',
  379. ),
  380. 'myclabs/php-enum' =>
  381. array (
  382. 'pretty_version' => '1.8.4',
  383. 'version' => '1.8.4.0',
  384. 'aliases' =>
  385. array (
  386. ),
  387. 'reference' => 'a867478eae49c9f59ece437ae7f9506bfaa27483',
  388. ),
  389. 'nesbot/carbon' =>
  390. array (
  391. 'pretty_version' => '2.72.5',
  392. 'version' => '2.72.5.0',
  393. 'aliases' =>
  394. array (
  395. ),
  396. 'reference' => 'afd46589c216118ecd48ff2b95d77596af1e57ed',
  397. ),
  398. 'nette/php-generator' =>
  399. array (
  400. 'pretty_version' => 'v3.6.9',
  401. 'version' => '3.6.9.0',
  402. 'aliases' =>
  403. array (
  404. ),
  405. 'reference' => 'd31782f7bd2ae84ad06f863391ec3fb77ca4d0a6',
  406. ),
  407. 'nette/utils' =>
  408. array (
  409. 'pretty_version' => 'v3.2.10',
  410. 'version' => '3.2.10.0',
  411. 'aliases' =>
  412. array (
  413. ),
  414. 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2',
  415. ),
  416. 'open-smf/connection-pool' =>
  417. array (
  418. 'pretty_version' => 'v1.0.16',
  419. 'version' => '1.0.16.0',
  420. 'aliases' =>
  421. array (
  422. ),
  423. 'reference' => 'f70e47dbf56f1869d3207e15825cf38810b865e0',
  424. ),
  425. 'overtrue/socialite' =>
  426. array (
  427. 'pretty_version' => '3.5.4',
  428. 'version' => '3.5.4.0',
  429. 'aliases' =>
  430. array (
  431. ),
  432. 'reference' => '6bd4f0230bcaec5ccfd64a10581a9063233b5a48',
  433. ),
  434. 'overtrue/wechat' =>
  435. array (
  436. 'pretty_version' => '5.30.0',
  437. 'version' => '5.30.0.0',
  438. 'aliases' =>
  439. array (
  440. ),
  441. 'reference' => '245d1e821bc5a4609625c3244b111f570692cfc2',
  442. ),
  443. 'php-http/async-client-implementation' =>
  444. array (
  445. 'provided' =>
  446. array (
  447. 0 => '*',
  448. ),
  449. ),
  450. 'php-http/client-implementation' =>
  451. array (
  452. 'provided' =>
  453. array (
  454. 0 => '*',
  455. ),
  456. ),
  457. 'phpoffice/phpspreadsheet' =>
  458. array (
  459. 'pretty_version' => '1.29.4',
  460. 'version' => '1.29.4.0',
  461. 'aliases' =>
  462. array (
  463. ),
  464. 'reference' => '7ca7e325dca3adb6a598385aab81f527b8d6c75d',
  465. ),
  466. 'pimple/pimple' =>
  467. array (
  468. 'pretty_version' => 'v3.5.0',
  469. 'version' => '3.5.0.0',
  470. 'aliases' =>
  471. array (
  472. ),
  473. 'reference' => 'a94b3a4db7fb774b3d78dad2315ddc07629e1bed',
  474. ),
  475. 'psr/cache' =>
  476. array (
  477. 'pretty_version' => '1.0.1',
  478. 'version' => '1.0.1.0',
  479. 'aliases' =>
  480. array (
  481. ),
  482. 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
  483. ),
  484. 'psr/cache-implementation' =>
  485. array (
  486. 'provided' =>
  487. array (
  488. 0 => '1.0|2.0',
  489. ),
  490. ),
  491. 'psr/clock' =>
  492. array (
  493. 'pretty_version' => '1.0.0',
  494. 'version' => '1.0.0.0',
  495. 'aliases' =>
  496. array (
  497. ),
  498. 'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d',
  499. ),
  500. 'psr/clock-implementation' =>
  501. array (
  502. 'provided' =>
  503. array (
  504. 0 => '1.0',
  505. ),
  506. ),
  507. 'psr/container' =>
  508. array (
  509. 'pretty_version' => '1.1.2',
  510. 'version' => '1.1.2.0',
  511. 'aliases' =>
  512. array (
  513. ),
  514. 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea',
  515. ),
  516. 'psr/event-dispatcher' =>
  517. array (
  518. 'pretty_version' => '1.0.0',
  519. 'version' => '1.0.0.0',
  520. 'aliases' =>
  521. array (
  522. ),
  523. 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
  524. ),
  525. 'psr/event-dispatcher-implementation' =>
  526. array (
  527. 'provided' =>
  528. array (
  529. 0 => '1.0',
  530. ),
  531. ),
  532. 'psr/http-client' =>
  533. array (
  534. 'pretty_version' => '1.0.3',
  535. 'version' => '1.0.3.0',
  536. 'aliases' =>
  537. array (
  538. ),
  539. 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90',
  540. ),
  541. 'psr/http-client-implementation' =>
  542. array (
  543. 'provided' =>
  544. array (
  545. 0 => '1.0',
  546. ),
  547. ),
  548. 'psr/http-factory' =>
  549. array (
  550. 'pretty_version' => '1.0.2',
  551. 'version' => '1.0.2.0',
  552. 'aliases' =>
  553. array (
  554. ),
  555. 'reference' => 'e616d01114759c4c489f93b099585439f795fe35',
  556. ),
  557. 'psr/http-factory-implementation' =>
  558. array (
  559. 'provided' =>
  560. array (
  561. 0 => '1.0',
  562. ),
  563. ),
  564. 'psr/http-message' =>
  565. array (
  566. 'pretty_version' => '1.1',
  567. 'version' => '1.1.0.0',
  568. 'aliases' =>
  569. array (
  570. ),
  571. 'reference' => 'cb6ce4845ce34a8ad9e68117c10ee90a29919eba',
  572. ),
  573. 'psr/http-message-implementation' =>
  574. array (
  575. 'provided' =>
  576. array (
  577. 0 => '1.0',
  578. ),
  579. ),
  580. 'psr/log' =>
  581. array (
  582. 'pretty_version' => '1.1.4',
  583. 'version' => '1.1.4.0',
  584. 'aliases' =>
  585. array (
  586. ),
  587. 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
  588. ),
  589. 'psr/log-implementation' =>
  590. array (
  591. 'provided' =>
  592. array (
  593. 0 => '1.0.0 || 2.0.0 || 3.0.0',
  594. ),
  595. ),
  596. 'psr/simple-cache' =>
  597. array (
  598. 'pretty_version' => '1.0.1',
  599. 'version' => '1.0.1.0',
  600. 'aliases' =>
  601. array (
  602. ),
  603. 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
  604. ),
  605. 'psr/simple-cache-implementation' =>
  606. array (
  607. 'provided' =>
  608. array (
  609. 0 => '1.0|2.0',
  610. ),
  611. ),
  612. 'qcloud/cos-sdk-v5' =>
  613. array (
  614. 'pretty_version' => 'v2.6.15',
  615. 'version' => '2.6.15.0',
  616. 'aliases' =>
  617. array (
  618. ),
  619. 'reference' => '17b973a388dc8848947054daace0fff8d2a4eee0',
  620. ),
  621. 'qiniu/php-sdk' =>
  622. array (
  623. 'pretty_version' => 'v7.14.0',
  624. 'version' => '7.14.0.0',
  625. 'aliases' =>
  626. array (
  627. ),
  628. 'reference' => 'ee752ffa7263ce99fca0bd7340cf13c486a3516c',
  629. ),
  630. 'ralouphie/getallheaders' =>
  631. array (
  632. 'pretty_version' => '3.0.3',
  633. 'version' => '3.0.3.0',
  634. 'aliases' =>
  635. array (
  636. ),
  637. 'reference' => '120b605dfeb996808c31b6477290a714d356e822',
  638. ),
  639. 'react/promise' =>
  640. array (
  641. 'pretty_version' => 'v2.11.0',
  642. 'version' => '2.11.0.0',
  643. 'aliases' =>
  644. array (
  645. ),
  646. 'reference' => '1a8460931ea36dc5c76838fec5734d55c88c6831',
  647. ),
  648. 'stechstudio/backoff' =>
  649. array (
  650. 'pretty_version' => '1.2.1',
  651. 'version' => '1.2.1.0',
  652. 'aliases' =>
  653. array (
  654. ),
  655. 'reference' => '7204cddf3f1afcd5368d74d52f4d8c447c5dc311',
  656. ),
  657. 'swoole/ide-helper' =>
  658. array (
  659. 'pretty_version' => '4.8.13',
  660. 'version' => '4.8.13.0',
  661. 'aliases' =>
  662. array (
  663. ),
  664. 'reference' => 'd100c446b2e3d56430cbcab5dc3fa20a9f35c4ef',
  665. ),
  666. 'symfony/cache' =>
  667. array (
  668. 'pretty_version' => 'v5.4.46',
  669. 'version' => '5.4.46.0',
  670. 'aliases' =>
  671. array (
  672. ),
  673. 'reference' => '0fe08ee32cec2748fbfea10c52d3ee02049e0f6b',
  674. ),
  675. 'symfony/cache-contracts' =>
  676. array (
  677. 'pretty_version' => 'v2.5.4',
  678. 'version' => '2.5.4.0',
  679. 'aliases' =>
  680. array (
  681. ),
  682. 'reference' => '517c3a3619dadfa6952c4651767fcadffb4df65e',
  683. ),
  684. 'symfony/cache-implementation' =>
  685. array (
  686. 'provided' =>
  687. array (
  688. 0 => '1.0|2.0',
  689. ),
  690. ),
  691. 'symfony/deprecation-contracts' =>
  692. array (
  693. 'pretty_version' => 'v2.5.3',
  694. 'version' => '2.5.3.0',
  695. 'aliases' =>
  696. array (
  697. ),
  698. 'reference' => '80d075412b557d41002320b96a096ca65aa2c98d',
  699. ),
  700. 'symfony/event-dispatcher' =>
  701. array (
  702. 'pretty_version' => 'v5.4.45',
  703. 'version' => '5.4.45.0',
  704. 'aliases' =>
  705. array (
  706. ),
  707. 'reference' => '72982eb416f61003e9bb6e91f8b3213600dcf9e9',
  708. ),
  709. 'symfony/event-dispatcher-contracts' =>
  710. array (
  711. 'pretty_version' => 'v2.5.4',
  712. 'version' => '2.5.4.0',
  713. 'aliases' =>
  714. array (
  715. ),
  716. 'reference' => 'e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f',
  717. ),
  718. 'symfony/event-dispatcher-implementation' =>
  719. array (
  720. 'provided' =>
  721. array (
  722. 0 => '2.0',
  723. ),
  724. ),
  725. 'symfony/finder' =>
  726. array (
  727. 'pretty_version' => 'v5.4.45',
  728. 'version' => '5.4.45.0',
  729. 'aliases' =>
  730. array (
  731. ),
  732. 'reference' => '63741784cd7b9967975eec610b256eed3ede022b',
  733. ),
  734. 'symfony/http-client' =>
  735. array (
  736. 'pretty_version' => 'v5.4.47',
  737. 'version' => '5.4.47.0',
  738. 'aliases' =>
  739. array (
  740. ),
  741. 'reference' => '3b643b83f87e1765d2e9b1e946bb56ee0b4b7bde',
  742. ),
  743. 'symfony/http-client-contracts' =>
  744. array (
  745. 'pretty_version' => 'v2.5.3',
  746. 'version' => '2.5.3.0',
  747. 'aliases' =>
  748. array (
  749. ),
  750. 'reference' => 'e5cc97c2b4a4db0ba26bebc154f1426e3fd1d2f1',
  751. ),
  752. 'symfony/http-client-implementation' =>
  753. array (
  754. 'provided' =>
  755. array (
  756. 0 => '2.4',
  757. ),
  758. ),
  759. 'symfony/http-foundation' =>
  760. array (
  761. 'pretty_version' => 'v5.4.48',
  762. 'version' => '5.4.48.0',
  763. 'aliases' =>
  764. array (
  765. ),
  766. 'reference' => '3f38b8af283b830e1363acd79e5bc3412d055341',
  767. ),
  768. 'symfony/polyfill-mbstring' =>
  769. array (
  770. 'pretty_version' => 'v1.31.0',
  771. 'version' => '1.31.0.0',
  772. 'aliases' =>
  773. array (
  774. ),
  775. 'reference' => '85181ba99b2345b0ef10ce42ecac37612d9fd341',
  776. ),
  777. 'symfony/polyfill-php72' =>
  778. array (
  779. 'pretty_version' => 'v1.31.0',
  780. 'version' => '1.31.0.0',
  781. 'aliases' =>
  782. array (
  783. ),
  784. 'reference' => 'fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce',
  785. ),
  786. 'symfony/polyfill-php73' =>
  787. array (
  788. 'pretty_version' => 'v1.31.0',
  789. 'version' => '1.31.0.0',
  790. 'aliases' =>
  791. array (
  792. ),
  793. 'reference' => '0f68c03565dcaaf25a890667542e8bd75fe7e5bb',
  794. ),
  795. 'symfony/polyfill-php80' =>
  796. array (
  797. 'pretty_version' => 'v1.31.0',
  798. 'version' => '1.31.0.0',
  799. 'aliases' =>
  800. array (
  801. ),
  802. 'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8',
  803. ),
  804. 'symfony/process' =>
  805. array (
  806. 'pretty_version' => 'v5.4.46',
  807. 'version' => '5.4.46.0',
  808. 'aliases' =>
  809. array (
  810. ),
  811. 'reference' => '01906871cb9b5e3cf872863b91aba4ec9767daf4',
  812. ),
  813. 'symfony/psr-http-message-bridge' =>
  814. array (
  815. 'pretty_version' => 'v2.3.1',
  816. 'version' => '2.3.1.0',
  817. 'aliases' =>
  818. array (
  819. ),
  820. 'reference' => '581ca6067eb62640de5ff08ee1ba6850a0ee472e',
  821. ),
  822. 'symfony/service-contracts' =>
  823. array (
  824. 'pretty_version' => 'v2.5.3',
  825. 'version' => '2.5.3.0',
  826. 'aliases' =>
  827. array (
  828. ),
  829. 'reference' => 'a2329596ddc8fd568900e3fc76cba42489ecc7f3',
  830. ),
  831. 'symfony/translation' =>
  832. array (
  833. 'pretty_version' => 'v5.4.45',
  834. 'version' => '5.4.45.0',
  835. 'aliases' =>
  836. array (
  837. ),
  838. 'reference' => '98f26acc99341ca4bab345fb14d7b1d7cb825bed',
  839. ),
  840. 'symfony/translation-contracts' =>
  841. array (
  842. 'pretty_version' => 'v2.5.3',
  843. 'version' => '2.5.3.0',
  844. 'aliases' =>
  845. array (
  846. ),
  847. 'reference' => 'b0073a77ac0b7ea55131020e87b1e3af540f4664',
  848. ),
  849. 'symfony/translation-implementation' =>
  850. array (
  851. 'provided' =>
  852. array (
  853. 0 => '2.3',
  854. ),
  855. ),
  856. 'symfony/var-dumper' =>
  857. array (
  858. 'pretty_version' => 'v4.4.47',
  859. 'version' => '4.4.47.0',
  860. 'aliases' =>
  861. array (
  862. ),
  863. 'reference' => '1069c7a3fca74578022fab6f81643248d02f8e63',
  864. ),
  865. 'symfony/var-exporter' =>
  866. array (
  867. 'pretty_version' => 'v5.4.45',
  868. 'version' => '5.4.45.0',
  869. 'aliases' =>
  870. array (
  871. ),
  872. 'reference' => '862700068db0ddfd8c5b850671e029a90246ec75',
  873. ),
  874. 'topthink/framework' =>
  875. array (
  876. 'pretty_version' => 'v6.1.4',
  877. 'version' => '6.1.4.0',
  878. 'aliases' =>
  879. array (
  880. ),
  881. 'reference' => '66eb9cf4d627df12911344cd328faf9bb596bf2c',
  882. ),
  883. 'topthink/think' =>
  884. array (
  885. 'pretty_version' => 'dev-master',
  886. 'version' => 'dev-master',
  887. 'aliases' =>
  888. array (
  889. ),
  890. 'reference' => 'b4d08155eb79c5471dc034238c7896deaeaff6a5',
  891. ),
  892. 'topthink/think-captcha' =>
  893. array (
  894. 'pretty_version' => 'v3.0.9',
  895. 'version' => '3.0.9.0',
  896. 'aliases' =>
  897. array (
  898. ),
  899. 'reference' => 'b1ef360670578214edeebcf824aaf6ab7ee0528b',
  900. ),
  901. 'topthink/think-filesystem' =>
  902. array (
  903. 'pretty_version' => 'v1.0.3',
  904. 'version' => '1.0.3.0',
  905. 'aliases' =>
  906. array (
  907. ),
  908. 'reference' => '29f19f140a9267c717fecd7ccb22c84c2d72382e',
  909. ),
  910. 'topthink/think-helper' =>
  911. array (
  912. 'pretty_version' => 'v3.1.8',
  913. 'version' => '3.1.8.0',
  914. 'aliases' =>
  915. array (
  916. ),
  917. 'reference' => '612eea76eec2a22f41b0e24be27f49454e4fd5f5',
  918. ),
  919. 'topthink/think-image' =>
  920. array (
  921. 'pretty_version' => 'v1.0.7',
  922. 'version' => '1.0.7.0',
  923. 'aliases' =>
  924. array (
  925. ),
  926. 'reference' => '8586cf47f117481c6d415b20f7dedf62e79d5512',
  927. ),
  928. 'topthink/think-orm' =>
  929. array (
  930. 'pretty_version' => 'v2.0.62',
  931. 'version' => '2.0.62.0',
  932. 'aliases' =>
  933. array (
  934. ),
  935. 'reference' => 'e53bfea572a133039ad687077120de5521af617f',
  936. ),
  937. 'topthink/think-queue' =>
  938. array (
  939. 'pretty_version' => 'v3.0.9',
  940. 'version' => '3.0.9.0',
  941. 'aliases' =>
  942. array (
  943. ),
  944. 'reference' => '654812b47dd7c708c4443deed27f212f8382e8da',
  945. ),
  946. 'topthink/think-swoole' =>
  947. array (
  948. 'pretty_version' => 'v4.0.9',
  949. 'version' => '4.0.9.0',
  950. 'aliases' =>
  951. array (
  952. ),
  953. 'reference' => 'edc326d92fc738c290d5777f0c544477759fa7f3',
  954. ),
  955. 'topthink/think-trace' =>
  956. array (
  957. 'pretty_version' => 'v1.6',
  958. 'version' => '1.6.0.0',
  959. 'aliases' =>
  960. array (
  961. ),
  962. 'reference' => '136cd5d97e8bdb780e4b5c1637c588ed7ca3e142',
  963. ),
  964. 'yurunsoft/composer-include-files' =>
  965. array (
  966. 'pretty_version' => 'v2.0.0',
  967. 'version' => '2.0.0.0',
  968. 'aliases' =>
  969. array (
  970. ),
  971. 'reference' => '277ed077b85d7a9d7b6b73ff148a48d9d676218d',
  972. ),
  973. 'yurunsoft/guzzle-swoole' =>
  974. array (
  975. 'pretty_version' => 'v2.2.4',
  976. 'version' => '2.2.4.0',
  977. 'aliases' =>
  978. array (
  979. ),
  980. 'reference' => '89bb58446aa0a3d6448de3943b40a5d79b18cbda',
  981. ),
  982. 'yurunsoft/yurun-http' =>
  983. array (
  984. 'pretty_version' => 'v4.4.4',
  985. 'version' => '4.4.4.0',
  986. 'aliases' =>
  987. array (
  988. ),
  989. 'reference' => '427d17c1e870d67e47a51ddd231932da2b041b5c',
  990. ),
  991. ),
  992. );
  993. private static $canGetVendors;
  994. private static $installedByVendor = array();
  995. public static function getInstalledPackages()
  996. {
  997. $packages = array();
  998. foreach (self::getInstalled() as $installed) {
  999. $packages[] = array_keys($installed['versions']);
  1000. }
  1001. if (1 === \count($packages)) {
  1002. return $packages[0];
  1003. }
  1004. return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
  1005. }
  1006. public static function isInstalled($packageName)
  1007. {
  1008. foreach (self::getInstalled() as $installed) {
  1009. if (isset($installed['versions'][$packageName])) {
  1010. return true;
  1011. }
  1012. }
  1013. return false;
  1014. }
  1015. public static function satisfies(VersionParser $parser, $packageName, $constraint)
  1016. {
  1017. $constraint = $parser->parseConstraints($constraint);
  1018. $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
  1019. return $provided->matches($constraint);
  1020. }
  1021. public static function getVersionRanges($packageName)
  1022. {
  1023. foreach (self::getInstalled() as $installed) {
  1024. if (!isset($installed['versions'][$packageName])) {
  1025. continue;
  1026. }
  1027. $ranges = array();
  1028. if (isset($installed['versions'][$packageName]['pretty_version'])) {
  1029. $ranges[] = $installed['versions'][$packageName]['pretty_version'];
  1030. }
  1031. if (array_key_exists('aliases', $installed['versions'][$packageName])) {
  1032. $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
  1033. }
  1034. if (array_key_exists('replaced', $installed['versions'][$packageName])) {
  1035. $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
  1036. }
  1037. if (array_key_exists('provided', $installed['versions'][$packageName])) {
  1038. $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
  1039. }
  1040. return implode(' || ', $ranges);
  1041. }
  1042. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1043. }
  1044. public static function getVersion($packageName)
  1045. {
  1046. foreach (self::getInstalled() as $installed) {
  1047. if (!isset($installed['versions'][$packageName])) {
  1048. continue;
  1049. }
  1050. if (!isset($installed['versions'][$packageName]['version'])) {
  1051. return null;
  1052. }
  1053. return $installed['versions'][$packageName]['version'];
  1054. }
  1055. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1056. }
  1057. public static function getPrettyVersion($packageName)
  1058. {
  1059. foreach (self::getInstalled() as $installed) {
  1060. if (!isset($installed['versions'][$packageName])) {
  1061. continue;
  1062. }
  1063. if (!isset($installed['versions'][$packageName]['pretty_version'])) {
  1064. return null;
  1065. }
  1066. return $installed['versions'][$packageName]['pretty_version'];
  1067. }
  1068. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1069. }
  1070. public static function getReference($packageName)
  1071. {
  1072. foreach (self::getInstalled() as $installed) {
  1073. if (!isset($installed['versions'][$packageName])) {
  1074. continue;
  1075. }
  1076. if (!isset($installed['versions'][$packageName]['reference'])) {
  1077. return null;
  1078. }
  1079. return $installed['versions'][$packageName]['reference'];
  1080. }
  1081. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  1082. }
  1083. public static function getRootPackage()
  1084. {
  1085. $installed = self::getInstalled();
  1086. return $installed[0]['root'];
  1087. }
  1088. public static function getRawData()
  1089. {
  1090. @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);
  1091. return self::$installed;
  1092. }
  1093. public static function getAllRawData()
  1094. {
  1095. return self::getInstalled();
  1096. }
  1097. public static function reload($data)
  1098. {
  1099. self::$installed = $data;
  1100. self::$installedByVendor = array();
  1101. }
  1102. private static function getInstalled()
  1103. {
  1104. if (null === self::$canGetVendors) {
  1105. self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
  1106. }
  1107. $installed = array();
  1108. if (self::$canGetVendors) {
  1109. foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
  1110. if (isset(self::$installedByVendor[$vendorDir])) {
  1111. $installed[] = self::$installedByVendor[$vendorDir];
  1112. } elseif (is_file($vendorDir.'/composer/installed.php')) {
  1113. $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
  1114. }
  1115. }
  1116. }
  1117. $installed[] = self::$installed;
  1118. return $installed;
  1119. }
  1120. }