OwlCyberSecurity - MANAGER
Edit File: InstalledVersions.php
<?php namespace Composer; use Composer\Autoload\ClassLoader; use Composer\Semver\VersionParser; class InstalledVersions { private static $installed = array ( 'root' => array ( 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'aliases' => array ( ), 'reference' => NULL, 'name' => 'automattic/jetpack', ), 'versions' => array ( 'automattic/jetpack' => array ( 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'aliases' => array ( ), 'reference' => NULL, ), 'automattic/jetpack-a8c-mc-stats' => array ( 'pretty_version' => 'v1.4.4', 'version' => '1.4.4.0', 'aliases' => array ( ), 'reference' => '59df714196e8ac4fd69a4ddedcb9dbeb12e7ecb5', ), 'automattic/jetpack-abtest' => array ( 'pretty_version' => 'v1.9.7', 'version' => '1.9.7.0', 'aliases' => array ( ), 'reference' => '751d2777a8a071d6b29d68021ed597ca892b18be', ), 'automattic/jetpack-assets' => array ( 'pretty_version' => 'v1.11.5', 'version' => '1.11.5.0', 'aliases' => array ( ), 'reference' => '88f04c6eb63ee4ce801735c03f7db5cae05e79bc', ), 'automattic/jetpack-autoloader' => array ( 'pretty_version' => 'v2.10.3', 'version' => '2.10.3.0', 'aliases' => array ( ), 'reference' => 'aab966d6f2c8fd6669d6f5b1378d8ced5fd665b4', ), 'automattic/jetpack-backup' => array ( 'pretty_version' => 'v1.0.6', 'version' => '1.0.6.0', 'aliases' => array ( ), 'reference' => 'bc7cb3c093bc65d05a9e8bcc098cb174296c2f86', ), 'automattic/jetpack-blocks' => array ( 'pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'aliases' => array ( ), 'reference' => '1500037e2754f7f9ec38f0775ce815b8422f51df', ), 'automattic/jetpack-compat' => array ( 'pretty_version' => 'v1.6.5', 'version' => '1.6.5.0', 'aliases' => array ( ), 'reference' => '8101adbec7971bae8746108a6fd261afae99524c', ), 'automattic/jetpack-config' => array ( 'pretty_version' => 'v1.4.6', 'version' => '1.4.6.0', 'aliases' => array ( ), 'reference' => '98f8080550901a8a29daf466ee75a4906c5f1ef0', ), 'automattic/jetpack-connection' => array ( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'aliases' => array ( ), 'reference' => 'd98ef557d0d7b52b6d703324faed276e432d20f4', ), 'automattic/jetpack-connection-ui' => array ( 'pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'aliases' => array ( ), 'reference' => '9d7bec51ab81f2e9ea55d2d3f7965135ba92e597', ), 'automattic/jetpack-constants' => array ( 'pretty_version' => 'v1.6.5', 'version' => '1.6.5.0', 'aliases' => array ( ), 'reference' => '1e02eebb828c6701f3bf97fa8404e9fc85d3fb63', ), 'automattic/jetpack-device-detection' => array ( 'pretty_version' => 'v1.4.2', 'version' => '1.4.2.0', 'aliases' => array ( ), 'reference' => '6f7c0560cac114a99066a703cf66813e325e8630', ), 'automattic/jetpack-error' => array ( 'pretty_version' => 'v1.3.5', 'version' => '1.3.5.0', 'aliases' => array ( ), 'reference' => 'f81fa17c2afb559dd12c52dae8aedb44da6a4195', ), 'automattic/jetpack-heartbeat' => array ( 'pretty_version' => 'v1.3.7', 'version' => '1.3.7.0', 'aliases' => array ( ), 'reference' => 'a0fa590acb2f06c00faae0175f19efb3add9e23a', ), 'automattic/jetpack-jitm' => array ( 'pretty_version' => 'v1.16.0', 'version' => '1.16.0.0', 'aliases' => array ( ), 'reference' => '80ba587b84e6eb1b7f436f836fb42efa3e90633c', ), 'automattic/jetpack-lazy-images' => array ( 'pretty_version' => 'v1.4.4', 'version' => '1.4.4.0', 'aliases' => array ( ), 'reference' => '76a46594ef975a2a9668f4b3f416acdac408d27a', ), 'automattic/jetpack-licensing' => array ( 'pretty_version' => 'v1.4.2', 'version' => '1.4.2.0', 'aliases' => array ( ), 'reference' => '89129ccf2131f904838c594b75628629ac1682ef', ), 'automattic/jetpack-logo' => array ( 'pretty_version' => 'v1.5.5', 'version' => '1.5.5.0', 'aliases' => array ( ), 'reference' => '4b4a24e30ac76beea19a4d75b451e2b7a287db4c', ), 'automattic/jetpack-options' => array ( 'pretty_version' => 'v1.12.1', 'version' => '1.12.1.0', 'aliases' => array ( ), 'reference' => 'd4d54615d4481e4b6b97c8c0e66d6b83d1983944', ), 'automattic/jetpack-partner' => array ( 'pretty_version' => 'v1.5.1', 'version' => '1.5.1.0', 'aliases' => array ( ), 'reference' => 'c5836805d2dd2367264408260d1f51a0a82a0203', ), 'automattic/jetpack-password-checker' => array ( 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'aliases' => array ( 0 => '0.1.x-dev', ), 'reference' => 'dec6ead3b3b26af31d8d46a608e97f4251cb036a', ), 'automattic/jetpack-redirect' => array ( 'pretty_version' => 'v1.6.0', 'version' => '1.6.0.0', 'aliases' => array ( ), 'reference' => 'ec93bed553c93983eeaaa7fe54e13fd8f2667e60', ), 'automattic/jetpack-roles' => array ( 'pretty_version' => 'v1.4.5', 'version' => '1.4.5.0', 'aliases' => array ( ), 'reference' => 'd04bbd4e012516d280a610e3961edef5cf241722', ), 'automattic/jetpack-status' => array ( 'pretty_version' => 'v1.7.6', 'version' => '1.7.6.0', 'aliases' => array ( ), 'reference' => '6b6d3704590c05ff970a4d14477e8e08d66b10cf', ), 'automattic/jetpack-sync' => array ( 'pretty_version' => 'v1.21.3', 'version' => '1.21.3.0', 'aliases' => array ( ), 'reference' => '16c5ab1d6bf57fc6a553f5f881e32c9429473084', ), 'automattic/jetpack-terms-of-service' => array ( 'pretty_version' => 'v1.9.7', 'version' => '1.9.7.0', 'aliases' => array ( ), 'reference' => 'dcfeeb79cc7605c30624616f1659d32b1dc5d45a', ), 'automattic/jetpack-tracking' => array ( 'pretty_version' => 'v1.13.6', 'version' => '1.13.6.0', 'aliases' => array ( ), 'reference' => '1d8aedc252771d345ae0e8d15fde96ebcdfed502', ), 'nojimage/twitter-text-php' => array ( 'pretty_version' => 'v3.1.2', 'version' => '3.1.2.0', 'aliases' => array ( ), 'reference' => '979bcf6a92d543b61588c7c0c0a87d0eb473d8f6', ), ), ); 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() { @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); return self::$installed; } public static function getAllRawData() { return self::getInstalled(); } 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; } }