| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397 | <?phpnamespace Composer;use Composer\Autoload\ClassLoader;use Composer\Semver\VersionParser;class InstalledVersions{private static $installed = array (  'root' =>   array (    'pretty_version' => '1.0.0+no-version-set',    'version' => '1.0.0.0',    'aliases' =>     array (    ),    'reference' => NULL,    'name' => '__root__',  ),  'versions' =>   array (    '__root__' =>     array (      'pretty_version' => '1.0.0+no-version-set',      'version' => '1.0.0.0',      'aliases' =>       array (      ),      'reference' => NULL,    ),    'bshaffer/oauth2-server-php' =>     array (      'pretty_version' => 'v1.11.1',      'version' => '1.11.1.0',      'aliases' =>       array (      ),      'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa',    ),    'ddeboer/imap' =>     array (      'pretty_version' => '1.11.0',      'version' => '1.11.0.0',      'aliases' =>       array (      ),      'reference' => 'a089dfcb9d177f921eb5dadc8d4144a44dff22ee',    ),    'exorus/php-mime-mail-parser' =>     array (      'replaced' =>       array (        0 => '*',      ),    ),    'matthiasmullie/minify' =>     array (      'pretty_version' => '1.3.66',      'version' => '1.3.66.0',      'aliases' =>       array (      ),      'reference' => '45fd3b0f1dfa2c965857c6d4a470bea52adc31a6',    ),    'matthiasmullie/path-converter' =>     array (      'pretty_version' => '1.1.3',      'version' => '1.1.3.0',      'aliases' =>       array (      ),      'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9',    ),    'messaged/php-mime-mail-parser' =>     array (      'replaced' =>       array (        0 => '*',      ),    ),    'mustangostang/spyc' =>     array (      'pretty_version' => '0.6.3',      'version' => '0.6.3.0',      'aliases' =>       array (      ),      'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0',    ),    'paragonie/random_compat' =>     array (      'pretty_version' => 'v9.99.100',      'version' => '9.99.100.0',      'aliases' =>       array (      ),      'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',    ),    'php-mime-mail-parser/php-mime-mail-parser' =>     array (      'pretty_version' => '5.0.5',      'version' => '5.0.5.0',      'aliases' =>       array (      ),      'reference' => '27983433aabeccee832573c3c56e6a4855e57745',    ),    'phpmailer/phpmailer' =>     array (      'pretty_version' => 'v6.3.0',      'version' => '6.3.0.0',      'aliases' =>       array (      ),      'reference' => '4a08cf4cdd2c38d12ee2b9fa69e5d235f37a6dcb',    ),    'robthree/twofactorauth' =>     array (      'pretty_version' => '1.7.0',      'version' => '1.7.0.0',      'aliases' =>       array (      ),      'reference' => '37983bf675c5baca09d19d6705170489d0df0002',    ),    'soundasleep/html2text' =>     array (      'pretty_version' => '0.5.0',      'version' => '0.5.0.0',      'aliases' =>       array (      ),      'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad',    ),    'yubico/u2flib-server' =>     array (      'pretty_version' => '1.0.2',      'version' => '1.0.2.0',      'aliases' =>       array (      ),      'reference' => '55d813acf68212ad2cadecde07551600d6971939',    ),  ),);private static $canGetVendors;private static $installedByVendor = array();public static function getInstalledPackages(){$packages = array();foreach (self::getInstalled() as $installed) {$packages[] = array_keys($installed['versions']);}if (1 === \count($packages)) {return $packages[0];}return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));}public static function isInstalled($packageName){foreach (self::getInstalled() as $installed) {if (isset($installed['versions'][$packageName])) {return true;}}return false;}public static function satisfies(VersionParser $parser, $packageName, $constraint){$constraint = $parser->parseConstraints($constraint);$provided = $parser->parseConstraints(self::getVersionRanges($packageName));return $provided->matches($constraint);}public static function getVersionRanges($packageName){foreach (self::getInstalled() as $installed) {if (!isset($installed['versions'][$packageName])) {continue;}$ranges = array();if (isset($installed['versions'][$packageName]['pretty_version'])) {$ranges[] = $installed['versions'][$packageName]['pretty_version'];}if (array_key_exists('aliases', $installed['versions'][$packageName])) {$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);}if (array_key_exists('replaced', $installed['versions'][$packageName])) {$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);}if (array_key_exists('provided', $installed['versions'][$packageName])) {$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);}return implode(' || ', $ranges);}throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');}public static function getVersion($packageName){foreach (self::getInstalled() as $installed) {if (!isset($installed['versions'][$packageName])) {continue;}if (!isset($installed['versions'][$packageName]['version'])) {return null;}return $installed['versions'][$packageName]['version'];}throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');}public static function getPrettyVersion($packageName){foreach (self::getInstalled() as $installed) {if (!isset($installed['versions'][$packageName])) {continue;}if (!isset($installed['versions'][$packageName]['pretty_version'])) {return null;}return $installed['versions'][$packageName]['pretty_version'];}throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');}public static function getReference($packageName){foreach (self::getInstalled() as $installed) {if (!isset($installed['versions'][$packageName])) {continue;}if (!isset($installed['versions'][$packageName]['reference'])) {return null;}return $installed['versions'][$packageName]['reference'];}throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');}public static function getRootPackage(){$installed = self::getInstalled();return $installed[0]['root'];}public static function getRawData(){return self::$installed;}public static function reload($data){self::$installed = $data;self::$installedByVendor = array();}private static function getInstalled(){if (null === self::$canGetVendors) {self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');}$installed = array();if (self::$canGetVendors) {foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {if (isset(self::$installedByVendor[$vendorDir])) {$installed[] = self::$installedByVendor[$vendorDir];} elseif (is_file($vendorDir.'/composer/installed.php')) {$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';}}}$installed[] = self::$installed;return $installed;}}
 |