444 lines
9.2 KiB
PHP
444 lines
9.2 KiB
PHP
<?php
|
|
|
|
namespace Composer;
|
|
|
|
use Composer\Semver\VersionParser;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class InstalledVersions
|
|
{
|
|
private static $installed = array (
|
|
'root' =>
|
|
array (
|
|
'pretty_version' => 'dev-master',
|
|
'version' => 'dev-master',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '05791160868513583fb03b109b1d6ae9ea513e0c',
|
|
'name' => 'automattic/jetpack',
|
|
),
|
|
'versions' =>
|
|
array (
|
|
'automattic/jetpack' =>
|
|
array (
|
|
'pretty_version' => 'dev-master',
|
|
'version' => 'dev-master',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '05791160868513583fb03b109b1d6ae9ea513e0c',
|
|
),
|
|
'automattic/jetpack-a8c-mc-stats' =>
|
|
array (
|
|
'pretty_version' => 'v1.2.0',
|
|
'version' => '1.2.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '9daa7d933679f7c3c38f1a2a1eaeaa87d7b43e37',
|
|
),
|
|
'automattic/jetpack-abtest' =>
|
|
array (
|
|
'pretty_version' => 'v1.8.4',
|
|
'version' => '1.8.4.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '5eb3addbca6cbbc0603cbf74b653078615bb92d7',
|
|
),
|
|
'automattic/jetpack-assets' =>
|
|
array (
|
|
'pretty_version' => 'v1.9.1',
|
|
'version' => '1.9.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '2eb64917ef18f9e26258ff1e1bfadf3ff71e7518',
|
|
),
|
|
'automattic/jetpack-autoloader' =>
|
|
array (
|
|
'pretty_version' => 'v2.6.0',
|
|
'version' => '2.6.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '47dde8dbca6b1e30f176725f2f748a9abefcaf58',
|
|
),
|
|
'automattic/jetpack-backup' =>
|
|
array (
|
|
'pretty_version' => 'v1.0.2',
|
|
'version' => '1.0.2.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'ea2aaa9be3697d8b885a74a11411c7818fba5a75',
|
|
),
|
|
'automattic/jetpack-blocks' =>
|
|
array (
|
|
'pretty_version' => 'v1.1.1',
|
|
'version' => '1.1.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '4f1ac651e6a5746c9ef10f93fa61d4b5777d2e31',
|
|
),
|
|
'automattic/jetpack-compat' =>
|
|
array (
|
|
'pretty_version' => 'v1.5.1',
|
|
'version' => '1.5.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '00165f14c19729d4b28ed5a67d1e2b68393ae291',
|
|
),
|
|
'automattic/jetpack-config' =>
|
|
array (
|
|
'pretty_version' => 'v1.4.2',
|
|
'version' => '1.4.2.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '0f4b1f66f276cc2352d5fa0c29f98566df8efdd3',
|
|
),
|
|
'automattic/jetpack-connection' =>
|
|
array (
|
|
'pretty_version' => 'v1.21.1',
|
|
'version' => '1.21.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'd44cc99636389cff1f7ca0e1a2aee630b9d1673f',
|
|
),
|
|
'automattic/jetpack-constants' =>
|
|
array (
|
|
'pretty_version' => 'v1.5.1',
|
|
'version' => '1.5.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '18f772daddc8be5df76c9f4a92e017a3c2569a5b',
|
|
),
|
|
'automattic/jetpack-device-detection' =>
|
|
array (
|
|
'pretty_version' => 'v1.2.1',
|
|
'version' => '1.2.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'c6c98a5590b4dfe28c7331f51a24b5a3e682a412',
|
|
),
|
|
'automattic/jetpack-error' =>
|
|
array (
|
|
'pretty_version' => 'v1.2.0',
|
|
'version' => '1.2.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '8ebe103c86f6a423e3abffb2812d787600bf9ea0',
|
|
),
|
|
'automattic/jetpack-heartbeat' =>
|
|
array (
|
|
'pretty_version' => 'v1.2.2',
|
|
'version' => '1.2.2.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '22bfefe0477978a1aca5410f406b020bf5a6920e',
|
|
),
|
|
'automattic/jetpack-jitm' =>
|
|
array (
|
|
'pretty_version' => 'v1.12.1',
|
|
'version' => '1.12.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'a7a407d9695316c3163465af07411c06b10096fa',
|
|
),
|
|
'automattic/jetpack-lazy-images' =>
|
|
array (
|
|
'pretty_version' => 'v1.1.2',
|
|
'version' => '1.1.2.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '489ba6b2c4fd15b47bbdb3dbbc75b68a483ef4d9',
|
|
),
|
|
'automattic/jetpack-licensing' =>
|
|
array (
|
|
'pretty_version' => 'v1.2.4',
|
|
'version' => '1.2.4.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'b02e82ea6abaf4dbc325d54be98d300cf930c9e8',
|
|
),
|
|
'automattic/jetpack-logo' =>
|
|
array (
|
|
'pretty_version' => 'v1.4.0',
|
|
'version' => '1.4.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '4e209e3515f43f1586b25755c626cc3ec8e7b06c',
|
|
),
|
|
'automattic/jetpack-options' =>
|
|
array (
|
|
'pretty_version' => 'v1.9.1',
|
|
'version' => '1.9.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '59c630e3d88f878195f2076971e7d5e2a72941ee',
|
|
),
|
|
'automattic/jetpack-partner' =>
|
|
array (
|
|
'pretty_version' => 'v1.3.1',
|
|
'version' => '1.3.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '3656927fbe34e0dfacda1e3814556fe545aaca65',
|
|
),
|
|
'automattic/jetpack-redirect' =>
|
|
array (
|
|
'pretty_version' => 'v1.4.1',
|
|
'version' => '1.4.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'de76b20f8667656e1901499abe09e674ccb830e9',
|
|
),
|
|
'automattic/jetpack-roles' =>
|
|
array (
|
|
'pretty_version' => 'v1.3.1',
|
|
'version' => '1.3.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '10234f39a2294d7c2598e7492477031470f5a01b',
|
|
),
|
|
'automattic/jetpack-status' =>
|
|
array (
|
|
'pretty_version' => 'v1.6.0',
|
|
'version' => '1.6.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '5ae34fcc1b5c48594778dbdb2783910109746d45',
|
|
),
|
|
'automattic/jetpack-sync' =>
|
|
array (
|
|
'pretty_version' => 'v1.18.1',
|
|
'version' => '1.18.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'e4f714c10b9b3caad9bccfd1a3427dbd5b0cf7bc',
|
|
),
|
|
'automattic/jetpack-terms-of-service' =>
|
|
array (
|
|
'pretty_version' => 'v1.8.2',
|
|
'version' => '1.8.2.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '25bbbdee520eb17f9a30e899255494583a2bbb64',
|
|
),
|
|
'automattic/jetpack-tracking' =>
|
|
array (
|
|
'pretty_version' => 'v1.11.1',
|
|
'version' => '1.11.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '982936c59852e8fd3768a8e33121db63928fba76',
|
|
),
|
|
'nojimage/twitter-text-php' =>
|
|
array (
|
|
'pretty_version' => 'v3.1.1',
|
|
'version' => '3.1.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '7f466b331cebfdd00e3568acaf45f2e90a39a320',
|
|
),
|
|
),
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function getInstalledPackages()
|
|
{
|
|
return array_keys(self::$installed['versions']);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function isInstalled($packageName)
|
|
{
|
|
return isset(self::$installed['versions'][$packageName]);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
{
|
|
if (!isset(self::$installed['versions'][$packageName])) {
|
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
}
|
|
|
|
$ranges = array();
|
|
if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
|
|
$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
|
|
}
|
|
if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
|
|
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
|
|
}
|
|
if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
|
|
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
|
|
}
|
|
if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
|
|
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
|
|
}
|
|
|
|
return implode(' || ', $ranges);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static function getVersion($packageName)
|
|
{
|
|
if (!isset(self::$installed['versions'][$packageName])) {
|
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
}
|
|
|
|
if (!isset(self::$installed['versions'][$packageName]['version'])) {
|
|
return null;
|
|
}
|
|
|
|
return self::$installed['versions'][$packageName]['version'];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static function getPrettyVersion($packageName)
|
|
{
|
|
if (!isset(self::$installed['versions'][$packageName])) {
|
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
}
|
|
|
|
if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
|
|
return null;
|
|
}
|
|
|
|
return self::$installed['versions'][$packageName]['pretty_version'];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static function getReference($packageName)
|
|
{
|
|
if (!isset(self::$installed['versions'][$packageName])) {
|
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
}
|
|
|
|
if (!isset(self::$installed['versions'][$packageName]['reference'])) {
|
|
return null;
|
|
}
|
|
|
|
return self::$installed['versions'][$packageName]['reference'];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static function getRootPackage()
|
|
{
|
|
return self::$installed['root'];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function getRawData()
|
|
{
|
|
return self::$installed;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function reload($data)
|
|
{
|
|
self::$installed = $data;
|
|
}
|
|
}
|