* @internal */ const VERSIONS = array ( 'brick/math' => '0.9.3@ca57d18f028f84f777b2168cd1911b0dee2343ae', 'guzzlehttp/guzzle' => '7.5.1@b964ca597e86b752cd994f27293e9fa6b6a95ed9', 'guzzlehttp/promises' => '1.5.2@b94b2807d85443f9719887892882d0329d1e2598', 'guzzlehttp/psr7' => '2.5.0@b635f279edd83fc275f822a1188157ffea568ff6', 'lcobucci/jwt' => '3.4.6@3ef8657a78278dfeae7707d51747251db4176240', 'matthiasmullie/minify' => '1.3.70@2807d9f9bece6877577ad44acb5c801bb3ae536b', 'matthiasmullie/path-converter' => '1.1.3@e7d13b2c7e2f2268e1424aaed02085518afa02d9', 'prestashop/module-lib-cache-directory-provider' => 'v1.0.0@34a577b66a7e52ae16d6f40efd1db17290bad453', 'prestashop/module-lib-service-container' => '1.4.0@96f4f551b96cffb1f78462cd4722f0d2b057abda', 'prestashop/prestashop-accounts-installer' => 'v1.0.4@0ad934bc540558db3944a9a1e5b08b852bb46e8b', 'psr/cache' => '1.0.1@d11b50ad223250cf17b86e38383413f5a6764bf8', 'psr/container' => '1.1.1@8622567409010282b7aeebe4bb841fe98b58dcaf', 'psr/http-client' => '1.0.2@0955afe48220520692d2d09f7ab7e0f93ffd6a31', 'psr/http-factory' => '1.0.2@e616d01114759c4c489f93b099585439f795fe35', 'psr/http-message' => '2.0@402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'psr/log' => '1.1.4@d49695b909c3b7628b6289db5479a1c204601f11', 'ralouphie/getallheaders' => '3.0.3@120b605dfeb996808c31b6477290a714d356e822', 'ramsey/collection' => '1.1.4@ab2237657ad99667a5143e32ba2683c8029563d4', 'ramsey/uuid' => '4.2.3@fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df', 'scssphp/scssphp' => 'v1.11.0@33749d12c2569bb24071f94e9af828662dabb068', 'segmentio/analytics-php' => '1.8.0@7e25b2f6094632bbfb79e33ca024d533899a2ffe', 'sentry/sentry' => '1.11.0@159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe', 'symfony/cache' => 'v4.4.48@3b98ed664887ad197b8ede3da2432787212eb915', 'symfony/cache-contracts' => 'v2.5.2@64be4a7acb83b6f2bf6de9a02cee6dad41277ebc', 'symfony/config' => 'v3.4.47@bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f', 'symfony/dependency-injection' => 'v3.4.47@51d2a2708c6ceadad84393f8581df1dcf9e5e84b', 'symfony/deprecation-contracts' => 'v2.5.2@e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'symfony/expression-language' => 'v3.4.47@de38e66398fca1fcb9c48e80279910e6889cb28f', 'symfony/filesystem' => 'v4.4.42@815412ee8971209bd4c1eecd5f4f481eacd44bf5', 'symfony/polyfill-ctype' => 'v1.28.0@ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb', 'symfony/polyfill-intl-grapheme' => 'v1.27.0@511a08c03c1960e08a883f4cffcacd219b758354', 'symfony/polyfill-intl-normalizer' => 'v1.27.0@19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'symfony/polyfill-mbstring' => 'v1.27.0@8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'symfony/polyfill-php70' => 'v1.20.0@5f03a781d984aae42cebd18e7912fa80f02ee644', 'symfony/polyfill-php73' => 'v1.27.0@9e8ecb5f92152187c4799efd3c96b78ccab18ff9', 'symfony/polyfill-php80' => 'v1.27.0@7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'symfony/service-contracts' => 'v2.5.2@4b426aac47d6427cc1a1d0f7e2ac724627f5966c', 'symfony/string' => 'v5.4.22@8036a4c76c0dd29e60b6a7cafcacc50cf088ea62', 'symfony/var-exporter' => 'v5.4.21@be74908a6942fdd331554b3cec27ff41b45ccad4', 'symfony/yaml' => 'v3.4.47@88289caa3c166321883f67fe5130188ebbb47094', 'composer/package-versions-deprecated' => '1.11.99.5@b4f54f74ef3453349c24a845d22392cd31e65f1d', 'composer/pcre' => '1.0.1@67a32d7d6f9f560b726ab25a061b38ff3a80c560', 'composer/semver' => '3.3.2@3953f23262f2bff1919fc82183ad9acb13ff62c9', 'composer/xdebug-handler' => '2.0.5@9e36aeed4616366d2b690bdce11f71e9178c579a', 'doctrine/annotations' => '1.14.3@fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af', 'doctrine/deprecations' => 'v1.0.0@0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de', 'doctrine/instantiator' => '1.5.0@0a0fa9780f5d4e507415a065172d26a98d02047b', 'doctrine/lexer' => '2.1.0@39ab8fcf5a51ce4b85ca97c7a7d033eb12831124', 'friendsofphp/php-cs-fixer' => 'v3.4.0@47177af1cfb9dab5d1cc4daf91b7179c2efe7fad', 'humbug/php-scoper' => '0.13.9@d6d7e83e44ec7a61202289159d4600b476e303e6', 'jetbrains/phpstorm-stubs' => 'dev-master@077d371b23d38d7f6f039994bfb03732d7965fbc', 'mikey179/vfsstream' => 'v1.6.11@17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f', 'myclabs/deep-copy' => '1.11.1@7284c22080590fb39f2ffa3e9057f10a4ddd0e0c', 'nikic/php-parser' => 'v4.15.4@6bb5176bc4af8bcb7d926f88718db9b96a2d4290', 'phar-io/manifest' => '2.0.3@97803eca37d319dfa7826cc2437fc020857acb53', 'phar-io/version' => '3.2.1@4f7fd7836c6f332bb2933569e566a0d6c4cbed74', 'php-cs-fixer/diff' => 'v2.0.2@29dc0d507e838c4580d018bd8b5cb412474f7ec3', 'phpunit/php-code-coverage' => '7.0.15@819f92bba8b001d4363065928088de22f25a3a48', 'phpunit/php-file-iterator' => '2.0.5@42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5', 'phpunit/php-text-template' => '1.2.1@31f8b717e51d9a2afca6c9f046f5d69fc27c8686', 'phpunit/php-timer' => '2.1.3@2454ae1765516d20c4ffe103d85a58a9a3bd5662', 'phpunit/php-token-stream' => '3.1.3@9c1da83261628cb24b6a6df371b6e312b3954768', 'phpunit/phpunit' => '8.5.33@7d1ff0e8c6b35db78ff13e3e05517d7cbf7aa32e', 'prestashop/autoindex' => 'v2.1.0@235f3ec115432ffc32d582198ea498467b3946d0', 'prestashop/header-stamp' => 'v2.3@3104b69ad73b6039c7082dbba4af9dbeb0b936b3', 'prestashop/php-dev-tools' => 'v4.3.0@843275b19729ba810d8ba2b9c97b568e5bbabe03', 'sebastian/code-unit-reverse-lookup' => '1.0.2@1de8cd5c010cb153fcd68b8d0f64606f523f7619', 'sebastian/comparator' => '3.0.5@1dc7ceb4a24aede938c7af2a9ed1de09609ca770', 'sebastian/diff' => '3.0.4@6296a0c086dd0117c1b78b059374d7fcbe7545ae', 'sebastian/environment' => '4.2.4@d47bbbad83711771f167c72d4e3f25f7fcc1f8b0', 'sebastian/exporter' => '3.1.5@73a9676f2833b9a7c36968f9d882589cd75511e6', 'sebastian/global-state' => '3.0.2@de036ec91d55d2a9e0db2ba975b512cdb1c23921', 'sebastian/object-enumerator' => '3.0.4@e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2', 'sebastian/object-reflector' => '1.1.2@9b8772b9cbd456ab45d4a598d2dd1a1bced6363d', 'sebastian/recursion-context' => '3.0.1@367dcba38d6e1977be014dc4b22f47a484dac7fb', 'sebastian/resource-operations' => '2.0.2@31d35ca87926450c44eae7e2611d45a7a65ea8b3', 'sebastian/type' => '1.1.4@0150cfbc4495ed2df3872fb31b26781e4e077eb4', 'sebastian/version' => '2.0.1@99732be0ddb3361e16ad77b68ba41efc8e979019', 'squizlabs/php_codesniffer' => '3.7.2@ed8e00df0a83aa96acf703f8c2979ff33341f879', 'symfony/console' => 'v4.4.49@33fa45ffc81fdcc1ca368d4946da859c8cdb58d9', 'symfony/event-dispatcher' => 'v4.4.44@1e866e9e5c1b22168e0ce5f0b467f19bba61266a', 'symfony/event-dispatcher-contracts' => 'v1.1.13@1d5cd762abaa6b2a4169d3e77610193a7157129e', 'symfony/finder' => 'v4.4.44@66bd787edb5e42ff59d3523f623895af05043e4f', 'symfony/options-resolver' => 'v5.4.21@4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9', 'symfony/polyfill-php81' => 'v1.27.0@707403074c8ea6e2edaf8794b0157a0bfa52157a', 'symfony/process' => 'v5.4.23@4b842fc4b61609e0a155a114082bd94e31e98287', 'symfony/stopwatch' => 'v5.4.21@f83692cd869a6f2391691d40a01e8acb89e76fee', 'theseer/tokenizer' => '1.2.1@34a41e998c2183e22995f158c581e7b5e755ab9e', 'prestashopcorp/psxdesign' => 'v1.6.7@5da36e0017c47692a0a078736a7e18d8c6b4b93e', ); private function __construct() { } /** * @psalm-pure * * @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not * cause any side effects here. */ public static function rootPackageName() : string { if (!self::composer2ApiUsable()) { return self::ROOT_PACKAGE_NAME; } return InstalledVersions::getRootPackage()['name']; } /** * @throws OutOfBoundsException If a version cannot be located. * * @psalm-param key-of $packageName * @psalm-pure * * @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not * cause any side effects here. */ public static function getVersion(string $packageName): string { if (self::composer2ApiUsable()) { return InstalledVersions::getPrettyVersion($packageName) . '@' . InstalledVersions::getReference($packageName); } if (isset(self::VERSIONS[$packageName])) { return self::VERSIONS[$packageName]; } throw new OutOfBoundsException( 'Required package "' . $packageName . '" is not installed: check your ./vendor/composer/installed.json and/or ./composer.lock files' ); } private static function composer2ApiUsable(): bool { if (!class_exists(InstalledVersions::class, false)) { return false; } if (method_exists(InstalledVersions::class, 'getAllRawData')) { $rawData = InstalledVersions::getAllRawData(); if (count($rawData) === 1 && count($rawData[0]) === 0) { return false; } } else { $rawData = InstalledVersions::getRawData(); if ($rawData === null || $rawData === []) { return false; } } return true; } }