From 09c9f095adced7cbcb8f465545fe225cbd1a8db6 Mon Sep 17 00:00:00 2001 From: Edi Amin Date: Mon, 6 Dec 2021 12:19:38 +0600 Subject: [PATCH 1/2] Include px-toolbox package --- composer.json | 11 + composer.lock | 684 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 479 insertions(+), 216 deletions(-) diff --git a/composer.json b/composer.json index a78ad2ee46d..5a862104b73 100644 --- a/composer.json +++ b/composer.json @@ -15,6 +15,7 @@ "ext-libxml": "*", "ext-spl": "*", "ampproject/amp-toolbox": "0.9.3", + "ampproject/px-toolbox": "dev-main", "cweagans/composer-patches": "~1.0", "fasterimage/fasterimage": "1.5.0", "sabberworm/php-css-parser": "dev-master#bfdd976" @@ -100,6 +101,16 @@ } } }, + "repositories": [ + { + "type": "path", + "url": "./php-css-parser-install-composer-plugin" + }, + { + "type": "vcs", + "url": "https://github.com/ampproject/px-toolbox-php" + } + ], "scripts": { "analyze": "if [ -z $TEST_SKIP_PHPSTAN ]; then phpstan --version; phpstan analyze --ansi; fi", "pre-commit": [ diff --git a/composer.lock b/composer.lock index 71cdc61e2fd..f5e728a5b21 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bdf879c80ebfac326fc27ad56b03a742", + "content-hash": "18d13582b182562dd0d1c8fcf789e149", "packages": [ { "name": "ampproject/amp-toolbox", @@ -80,6 +80,101 @@ }, "time": "2021-12-14T21:26:08+00:00" }, + { + "name": "ampproject/px-toolbox", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/ampproject/px-toolbox-php.git", + "reference": "6e2511a49cb741f0a101bb67a70fcdeb5d7a531b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ampproject/px-toolbox-php/zipball/6e2511a49cb741f0a101bb67a70fcdeb5d7a531b", + "reference": "6e2511a49cb741f0a101bb67a70fcdeb5d7a531b", + "shasum": "" + }, + "require": { + "ampproject/amp-toolbox": "^0.9.3", + "php": "^5.6 || ^7.0 || ^8.0", + "psr/http-message": "^1.0.1", + "react/event-loop": "^1.2" + }, + "require-dev": { + "civicrm/composer-downloads-plugin": "^2.1 || ^3.0", + "dealerdirect/phpcodesniffer-composer-installer": "0.7.1", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpcompatibility/php-compatibility": "^9", + "phpunit/phpunit": "^5 || ^6 || ^7 || ^8 || ^9", + "roave/security-advisories": "dev-latest", + "sirbrillig/phpcs-variable-analysis": "2.11.2", + "squizlabs/php_codesniffer": "^3", + "wp-coding-standards/wpcs": "^2.3", + "yoast/phpunit-polyfills": "^0.2.0 || ^1.0.0" + }, + "default-branch": true, + "bin": [ + "bin/px" + ], + "type": "library", + "extra": { + "downloads": { + "phpstan": { + "url": "https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar", + "path": "vendor/bin/phpstan", + "type": "phar" + } + } + }, + "autoload": { + "psr-4": { + "PageExperience\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "PageExperience\\Tests\\": "tests/src/" + } + }, + "scripts": { + "cbf": [ + "phpcbf" + ], + "compat": [ + "if [ -z $TEST_SKIP_PHPCOMPAT ]; then phpcs --standard=PHPCompatibility -s -p src --runtime-set testVersion 5.6; fi" + ], + "cs": [ + "if [ -z $TEST_SKIP_PHPCS ]; then phpcs; fi" + ], + "lint": [ + "if [ -z $TEST_SKIP_LINTING ]; then parallel-lint -j 10 --colors --exclude vendor .; fi" + ], + "test": [ + "@lint", + "@unit", + "@cs", + "@analyze", + "@compat" + ], + "analyze": [ + "if [ -z $TEST_SKIP_PHPSTAN ]; then phpstan --version; phpstan analyze --ansi; fi" + ], + "unit": [ + "if [ -z $TEST_SKIP_PHPUNIT ]; then phpunit --colors=always; fi" + ] + }, + "license": [ + "Apache-2.0" + ], + "description": "Tooling and APIs to support page experience optimization on PHP servers.", + "support": { + "source": "https://github.com/ampproject/px-toolbox-php/tree/main", + "issues": "https://github.com/ampproject/px-toolbox-php/issues" + }, + "time": "2021-12-19T19:22:05+00:00" + }, { "name": "cweagans/composer-patches", "version": "1.7.1", @@ -187,6 +282,137 @@ }, "time": "2019-05-25T14:33:33+00:00" }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "react/event-loop", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/event-loop.git", + "reference": "be6dee480fc4692cec0504e65eb486e3be1aa6f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/be6dee480fc4692cec0504e65eb486e3be1aa6f2", + "reference": "be6dee480fc4692cec0504e65eb486e3be1aa6f2", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35" + }, + "suggest": { + "ext-event": "~1.0 for ExtEventLoop", + "ext-pcntl": "For signal handling support when using the StreamSelectLoop", + "ext-uv": "* for ExtUvLoop" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\EventLoop\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", + "keywords": [ + "asynchronous", + "event-loop" + ], + "support": { + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2021-07-11T12:31:24+00:00" + }, { "name": "sabberworm/php-css-parser", "version": "dev-master", @@ -235,7 +461,7 @@ "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/master" }, - "time": "2021-08-01T19:34:12+00:00" + "time": "2021-12-15T07:48:00+00:00" }, { "name": "willwashburn/stream", @@ -292,7 +518,7 @@ "packages-dev": [ { "name": "ampproject/php-css-parser-install-plugin", - "version": "dev-fix/update-amp-toolbox-0.9.3", + "version": "dev-master", "dist": { "type": "path", "url": "./php-css-parser-install-composer-plugin", @@ -322,16 +548,16 @@ }, { "name": "antecedent/patchwork", - "version": "2.1.14", + "version": "2.1.17", "source": { "type": "git", "url": "https://github.com/antecedent/patchwork.git", - "reference": "cd5663d66df1e760e5b2277a2c22d85a5c8398fa" + "reference": "df5aba175a44c2996ced4edf8ec9f9081b5348c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/antecedent/patchwork/zipball/cd5663d66df1e760e5b2277a2c22d85a5c8398fa", - "reference": "cd5663d66df1e760e5b2277a2c22d85a5c8398fa", + "url": "https://api.github.com/repos/antecedent/patchwork/zipball/df5aba175a44c2996ced4edf8ec9f9081b5348c0", + "reference": "df5aba175a44c2996ced4edf8ec9f9081b5348c0", "shasum": "" }, "require": { @@ -364,28 +590,28 @@ ], "support": { "issues": "https://github.com/antecedent/patchwork/issues", - "source": "https://github.com/antecedent/patchwork/tree/2.1.14" + "source": "https://github.com/antecedent/patchwork/tree/2.1.17" }, - "time": "2021-08-20T05:01:49+00:00" + "time": "2021-10-21T14:22:43+00:00" }, { "name": "automattic/vipwpcs", - "version": "2.3.2", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/Automattic/VIP-Coding-Standards.git", - "reference": "efacebef421334d54b99afa92fb8fa645336a8a7" + "reference": "6cd0a6a82bc0ac988dbf9d6a7c2e293dc8ac640b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Automattic/VIP-Coding-Standards/zipball/efacebef421334d54b99afa92fb8fa645336a8a7", - "reference": "efacebef421334d54b99afa92fb8fa645336a8a7", + "url": "https://api.github.com/repos/Automattic/VIP-Coding-Standards/zipball/6cd0a6a82bc0ac988dbf9d6a7c2e293dc8ac640b", + "reference": "6cd0a6a82bc0ac988dbf9d6a7c2e293dc8ac640b", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7", "php": ">=5.4", - "sirbrillig/phpcs-variable-analysis": "^2.8.3", + "sirbrillig/phpcs-variable-analysis": "^2.11.1", "squizlabs/php_codesniffer": "^3.5.5", "wp-coding-standards/wpcs": "^2.3" }, @@ -418,7 +644,7 @@ "source": "https://github.com/Automattic/VIP-Coding-Standards", "wiki": "https://github.com/Automattic/VIP-Coding-Standards/wiki" }, - "time": "2021-04-28T16:41:50+00:00" + "time": "2021-09-29T16:20:23+00:00" }, { "name": "behat/behat", @@ -619,27 +845,27 @@ }, { "name": "brain/monkey", - "version": "2.6.0", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/Brain-WP/BrainMonkey.git", - "reference": "7042140000b4b18034c0c0010d86274a00f25442" + "reference": "a31c84515bb0d49be9310f52ef1733980ea8ffbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Brain-WP/BrainMonkey/zipball/7042140000b4b18034c0c0010d86274a00f25442", - "reference": "7042140000b4b18034c0c0010d86274a00f25442", + "url": "https://api.github.com/repos/Brain-WP/BrainMonkey/zipball/a31c84515bb0d49be9310f52ef1733980ea8ffbb", + "reference": "a31c84515bb0d49be9310f52ef1733980ea8ffbb", "shasum": "" }, "require": { - "antecedent/patchwork": "^2.0", - "mockery/mockery": ">=0.9 <2", + "antecedent/patchwork": "^2.1.17", + "mockery/mockery": "^1.3.5 || ^1.4.4", "php": ">=5.6.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6 || ^0.7", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", "phpcompatibility/php-compatibility": "^9.3.0", - "phpunit/phpunit": "^5.7.9 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^5.7.26 || ^6.0 || ^7.0 || >=8.0 <8.5.12 || ^8.5.14 || ^9.0" }, "type": "library", "extra": { @@ -685,7 +911,7 @@ "issues": "https://github.com/Brain-WP/BrainMonkey/issues", "source": "https://github.com/Brain-WP/BrainMonkey" }, - "time": "2020-10-13T17:56:14+00:00" + "time": "2021-11-11T15:53:55+00:00" }, { "name": "civicrm/composer-downloads-plugin", @@ -743,16 +969,16 @@ }, { "name": "composer/semver", - "version": "3.2.5", + "version": "3.2.6", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9" + "reference": "83e511e247de329283478496f7a1e114c9517506" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9", - "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9", + "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506", + "reference": "83e511e247de329283478496f7a1e114c9517506", "shasum": "" }, "require": { @@ -804,7 +1030,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.5" + "source": "https://github.com/composer/semver/tree/3.2.6" }, "funding": [ { @@ -820,7 +1046,7 @@ "type": "tidelift" } ], - "time": "2021-05-24T12:41:47+00:00" + "time": "2021-10-25T11:34:17+00:00" }, { "name": "dealerdirect/phpcodesniffer-composer-installer", @@ -952,16 +1178,16 @@ }, { "name": "firebase/php-jwt", - "version": "v5.4.0", + "version": "v5.5.1", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2" + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d2113d9b2e0e349796e72d2a63cf9319100382d2", - "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/83b609028194aa042ea33b5af2d41a7427de80e6", + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6", "shasum": "" }, "require": { @@ -1003,28 +1229,28 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v5.4.0" + "source": "https://github.com/firebase/php-jwt/tree/v5.5.1" }, - "time": "2021-06-23T19:00:23+00:00" + "time": "2021-11-08T20:18:51+00:00" }, { "name": "google/auth", - "version": "v1.17.0", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "4da3a850e9d1045918099b6561165d829efbe2b7" + "reference": "21dd478e77b0634ed9e3a68613f74ed250ca9347" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/4da3a850e9d1045918099b6561165d829efbe2b7", - "reference": "4da3a850e9d1045918099b6561165d829efbe2b7", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/21dd478e77b0634ed9e3a68613f74ed250ca9347", + "reference": "21dd478e77b0634ed9e3a68613f74ed250ca9347", "shasum": "" }, "require": { "firebase/php-jwt": "~2.0|~3.0|~4.0|~5.0", "guzzlehttp/guzzle": "^5.3.1|^6.2.1|^7.0", - "guzzlehttp/psr7": "^1.2", + "guzzlehttp/psr7": "^1.7|^2.0", "php": ">=5.4", "psr/cache": "^1.0|^2.0", "psr/http-message": "^1.0" @@ -1059,29 +1285,29 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/master/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.17.0" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.18.0" }, - "time": "2021-08-18T16:10:00+00:00" + "time": "2021-08-24T18:03:18+00:00" }, { "name": "google/cloud-core", - "version": "v1.42.2", + "version": "v1.43.1", "source": { "type": "git", "url": "https://github.com/googleapis/google-cloud-php-core.git", - "reference": "f3fff3ca4af92c87eb824e5c98aaf003523204a2" + "reference": "60b47793e0c83f0e02a8197ef11ab1f599c348da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/f3fff3ca4af92c87eb824e5c98aaf003523204a2", - "reference": "f3fff3ca4af92c87eb824e5c98aaf003523204a2", + "url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/60b47793e0c83f0e02a8197ef11ab1f599c348da", + "reference": "60b47793e0c83f0e02a8197ef11ab1f599c348da", "shasum": "" }, "require": { - "google/auth": "^1.12", + "google/auth": "^1.18", "guzzlehttp/guzzle": "^5.3|^6.0|^7.0", "guzzlehttp/promises": "^1.3", - "guzzlehttp/psr7": "^1.2", + "guzzlehttp/psr7": "^1.7|^2.0", "monolog/monolog": "^1.1|^2.0", "php": ">=5.5", "psr/http-message": "1.0.*", @@ -1090,7 +1316,7 @@ "require-dev": { "erusev/parsedown": "^1.6", "google/common-protos": "^1.0", - "google/gax": "^1.1", + "google/gax": "^1.9", "opis/closure": "^3", "phpdocumentor/reflection": "^3.0", "phpunit/phpunit": "^4.8|^5.0", @@ -1123,26 +1349,26 @@ ], "description": "Google Cloud PHP shared dependency, providing functionality useful to all components.", "support": { - "source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.42.2" + "source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.43.1" }, - "time": "2021-06-30T16:21:40+00:00" + "time": "2021-10-20T17:52:15+00:00" }, { "name": "google/cloud-storage", - "version": "v1.24.1", + "version": "v1.25.2", "source": { "type": "git", "url": "https://github.com/googleapis/google-cloud-php-storage.git", - "reference": "440e195a11dbb9a6a98818dc78ba09857fbf7ebd" + "reference": "d040368605ce3b8c2e6f2f7c03eb4046e9e0b951" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/440e195a11dbb9a6a98818dc78ba09857fbf7ebd", - "reference": "440e195a11dbb9a6a98818dc78ba09857fbf7ebd", + "url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/d040368605ce3b8c2e6f2f7c03eb4046e9e0b951", + "reference": "d040368605ce3b8c2e6f2f7c03eb4046e9e0b951", "shasum": "" }, "require": { - "google/cloud-core": "^1.39", + "google/cloud-core": "^1.43", "google/crc32": "^0.1.0" }, "require-dev": { @@ -1177,9 +1403,9 @@ ], "description": "Cloud Storage Client for PHP", "support": { - "source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.24.1" + "source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.25.2" }, - "time": "2021-07-05T20:37:04+00:00" + "time": "2021-10-20T17:52:15+00:00" }, { "name": "google/crc32", @@ -1300,16 +1526,16 @@ }, { "name": "guzzlehttp/promises", - "version": "1.4.1", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", "shasum": "" }, "require": { @@ -1321,7 +1547,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { @@ -1337,10 +1563,25 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", @@ -1349,22 +1590,36 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" + "source": "https://github.com/guzzle/promises/tree/1.5.1" }, - "time": "2021-03-07T09:25:29+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:56:57+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.8.2", + "version": "1.8.3", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91" + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", "shasum": "" }, "require": { @@ -1401,13 +1656,34 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, { "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" } ], @@ -1424,9 +1700,23 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.2" + "source": "https://github.com/guzzle/psr7/tree/1.8.3" }, - "time": "2021-04-26T09:17:50+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2021-10-05T13:56:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -1532,16 +1822,16 @@ }, { "name": "mockery/mockery", - "version": "1.3.4", + "version": "1.3.5", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "31467aeb3ca3188158613322d66df81cedd86626" + "reference": "472fa8ca4e55483d55ee1e73c963718c4393791d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/31467aeb3ca3188158613322d66df81cedd86626", - "reference": "31467aeb3ca3188158613322d66df81cedd86626", + "url": "https://api.github.com/repos/mockery/mockery/zipball/472fa8ca4e55483d55ee1e73c963718c4393791d", + "reference": "472fa8ca4e55483d55ee1e73c963718c4393791d", "shasum": "" }, "require": { @@ -1595,9 +1885,9 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.3.4" + "source": "https://github.com/mockery/mockery/tree/1.3.5" }, - "time": "2021-02-24T09:51:00+00:00" + "time": "2021-09-13T15:33:03+00:00" }, { "name": "monolog/monolog", @@ -1687,16 +1977,16 @@ }, { "name": "mustache/mustache", - "version": "v2.13.0", + "version": "v2.14.0", "source": { "type": "git", "url": "https://github.com/bobthecow/mustache.php.git", - "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4" + "reference": "4e2724dd40ae9499a55e7db7df82665be0ab7e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/e95c5a008c23d3151d59ea72484d4f72049ab7f4", - "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4", + "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/4e2724dd40ae9499a55e7db7df82665be0ab7e34", + "reference": "4e2724dd40ae9499a55e7db7df82665be0ab7e34", "shasum": "" }, "require": { @@ -1731,9 +2021,9 @@ ], "support": { "issues": "https://github.com/bobthecow/mustache.php/issues", - "source": "https://github.com/bobthecow/mustache.php/tree/master" + "source": "https://github.com/bobthecow/mustache.php/tree/v2.14.0" }, - "time": "2019-11-23T21:40:31+00:00" + "time": "2021-12-14T14:42:17+00:00" }, { "name": "myclabs/deep-copy", @@ -2093,16 +2383,16 @@ }, { "name": "php-stubs/wordpress-stubs", - "version": "v5.8.0", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/php-stubs/wordpress-stubs.git", - "reference": "794e6eedfd5f2a334d581214c007fc398be588fe" + "reference": "67fd773742b7be5b4463f40318b0b4890a07033b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/794e6eedfd5f2a334d581214c007fc398be588fe", - "reference": "794e6eedfd5f2a334d581214c007fc398be588fe", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/67fd773742b7be5b4463f40318b0b4890a07033b", + "reference": "67fd773742b7be5b4463f40318b0b4890a07033b", "shasum": "" }, "replace": { @@ -2131,9 +2421,9 @@ ], "support": { "issues": "https://github.com/php-stubs/wordpress-stubs/issues", - "source": "https://github.com/php-stubs/wordpress-stubs/tree/v5.8.0" + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v5.8.2" }, - "time": "2021-07-21T02:34:37+00:00" + "time": "2021-11-11T13:57:00+00:00" }, { "name": "phpcompatibility/php-compatibility", @@ -3010,59 +3300,6 @@ }, "time": "2017-02-14T16:28:37+00:00" }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, - "time": "2016-08-06T14:39:51+00:00" - }, { "name": "psr/log", "version": "1.1.4", @@ -3159,16 +3396,16 @@ }, { "name": "rize/uri-template", - "version": "0.3.3", + "version": "0.3.4", "source": { "type": "git", "url": "https://github.com/rize/UriTemplate.git", - "reference": "6e0b97e00e0f36c652dd3c37b194ef07de669b82" + "reference": "2a874863c48d643b9e2e254ab288ec203060a0b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rize/UriTemplate/zipball/6e0b97e00e0f36c652dd3c37b194ef07de669b82", - "reference": "6e0b97e00e0f36c652dd3c37b194ef07de669b82", + "url": "https://api.github.com/repos/rize/UriTemplate/zipball/2a874863c48d643b9e2e254ab288ec203060a0b8", + "reference": "2a874863c48d643b9e2e254ab288ec203060a0b8", "shasum": "" }, "require": { @@ -3201,9 +3438,19 @@ ], "support": { "issues": "https://github.com/rize/UriTemplate/issues", - "source": "https://github.com/rize/UriTemplate/tree/0.3.3" + "source": "https://github.com/rize/UriTemplate/tree/0.3.4" }, - "time": "2021-02-22T15:03:38+00:00" + "funding": [ + { + "url": "https://www.paypal.me/rezigned", + "type": "custom" + }, + { + "url": "https://opencollective.com/rize-uri-template", + "type": "open_collective" + } + ], + "time": "2021-10-09T06:30:16+00:00" }, { "name": "rmccue/requests", @@ -3271,12 +3518,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "3c3cc12a9f163e589a12b9ea756c5a2dae9c59dd" + "reference": "fff53639bf1fa25f311c3e54932ac8c827f9a343" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/3c3cc12a9f163e589a12b9ea756c5a2dae9c59dd", - "reference": "3c3cc12a9f163e589a12b9ea756c5a2dae9c59dd", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/fff53639bf1fa25f311c3e54932ac8c827f9a343", + "reference": "fff53639bf1fa25f311c3e54932ac8c827f9a343", "shasum": "" }, "conflict": { @@ -3289,7 +3536,7 @@ "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", - "area17/twill": "<=2.5.2", + "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", @@ -3342,7 +3589,7 @@ "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", - "elgg/elgg": "<3.3.22", + "elgg/elgg": "<3.3.23|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", "enshrined/svg-sanitize": "<0.13.1", "erusev/parsedown": "<1.7.2", @@ -3389,7 +3636,7 @@ "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", - "grumpydictator/firefly-iii": "<5.6.3", + "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", "helloxz/imgurl": "<=2.31", "hjue/justwriting": "<=1", @@ -3400,23 +3647,24 @@ "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", - "illuminate/view": ">=7,<7.1.2", + "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", "impresscms/impresscms": "<=1.4.2", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", + "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", "joomla/archive": "<1.1.10", "joomla/session": "<1.3.1", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", - "kevinpapst/kimai2": "<1.16.3", + "kevinpapst/kimai2": "<1.16.7", "kitodo/presentation": "<3.1.2", "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", "laminas/laminas-http": "<2.14.2", - "laravel/framework": "<6.20.26|>=7,<7.30.5|>=8,<8.40", + "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "lavalite/cms": "<=5.8", "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", @@ -3483,15 +3731,17 @@ "phpoffice/phpexcel": "<1.8.2", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", + "phpservermon/phpservermon": "<=3.5.2", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.1.3", - "pocketmine/pocketmine-mp": "<3.15.4", + "pimcore/pimcore": "<10.2.6", + "pocketmine/pocketmine-mp": "<4.0.3", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", + "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", @@ -3503,6 +3753,7 @@ "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", + "remdex/livehelperchat": "<=3.90", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", @@ -3514,7 +3765,7 @@ "shopware/platform": "<=6.4.6", "shopware/production": "<=6.3.5.2", "shopware/shopware": "<5.7.6", - "showdoc/showdoc": "<2.9.13", + "showdoc/showdoc": "<=2.9.13", "silverstripe/admin": "<4.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", @@ -3534,16 +3785,16 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.39", - "snipe/snipe-it": "<5.3.3", + "snipe/snipe-it": "<5.3.5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.11.2", + "ssddanbrown/bookstack": "<21.11.3", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", - "sulu/sulu": "<1.6.43|>=2,<2.0.10|>=2.1,<2.1.1", + "sulu/sulu": "= 2.4.0-RC1|<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8", "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", @@ -3591,6 +3842,7 @@ "theonedemon/phpwhois": "<=4.2.5", "tinymce/tinymce": "<5.10", "titon/framework": ">=0,<9.9.99", + "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", "tribalsystems/zenario": "<8.8.53370", @@ -3617,6 +3869,7 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", "yiisoft/yii": ">=1.1.14,<1.1.15", @@ -3690,7 +3943,7 @@ "type": "tidelift" } ], - "time": "2021-08-19T16:07:21+00:00" + "time": "2021-12-17T20:13:17+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -4306,16 +4559,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.6.0", + "version": "3.6.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625" + "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625", - "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a", + "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a", "shasum": "" }, "require": { @@ -4358,7 +4611,7 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2021-04-09T00:54:41+00:00" + "time": "2021-12-12T21:44:58+00:00" }, { "name": "symfony/config", @@ -5549,16 +5802,16 @@ }, { "name": "wp-cli/config-command", - "version": "v2.1.0", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/wp-cli/config-command.git", - "reference": "46b096eae2c116bed30c8d649f6e2a1d4db035c1" + "reference": "bf46b496c20dc85b4669fbac7270bd744ee5eaa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/config-command/zipball/46b096eae2c116bed30c8d649f6e2a1d4db035c1", - "reference": "46b096eae2c116bed30c8d649f6e2a1d4db035c1", + "url": "https://api.github.com/repos/wp-cli/config-command/zipball/bf46b496c20dc85b4669fbac7270bd744ee5eaa8", + "reference": "bf46b496c20dc85b4669fbac7270bd744ee5eaa8", "shasum": "" }, "require": { @@ -5567,7 +5820,7 @@ }, "require-dev": { "wp-cli/db-command": "^1.3 || ^2", - "wp-cli/wp-cli-tests": "^3.0.11" + "wp-cli/wp-cli-tests": "^3.1" }, "type": "wp-cli-package", "extra": { @@ -5616,9 +5869,9 @@ "homepage": "https://github.com/wp-cli/config-command", "support": { "issues": "https://github.com/wp-cli/config-command/issues", - "source": "https://github.com/wp-cli/config-command/tree/v2.1.0" + "source": "https://github.com/wp-cli/config-command/tree/v2.1.1" }, - "time": "2021-05-12T06:05:07+00:00" + "time": "2021-12-03T18:27:32+00:00" }, { "name": "wp-cli/core-command", @@ -5693,23 +5946,23 @@ }, { "name": "wp-cli/eval-command", - "version": "v2.1.0", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/wp-cli/eval-command.git", - "reference": "dcda02194bd0ca773ce03dec6093ac0d271f8976" + "reference": "33e927c86e7a3a7f6f20b48565a4f31c35397469" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/eval-command/zipball/dcda02194bd0ca773ce03dec6093ac0d271f8976", - "reference": "dcda02194bd0ca773ce03dec6093ac0d271f8976", + "url": "https://api.github.com/repos/wp-cli/eval-command/zipball/33e927c86e7a3a7f6f20b48565a4f31c35397469", + "reference": "33e927c86e7a3a7f6f20b48565a4f31c35397469", "shasum": "" }, "require": { "wp-cli/wp-cli": "^2.5" }, "require-dev": { - "wp-cli/wp-cli-tests": "^3.0.11" + "wp-cli/wp-cli-tests": "^3.1" }, "type": "wp-cli-package", "extra": { @@ -5745,22 +5998,22 @@ "homepage": "https://github.com/wp-cli/eval-command", "support": { "issues": "https://github.com/wp-cli/eval-command/issues", - "source": "https://github.com/wp-cli/eval-command/tree/v2.1.0" + "source": "https://github.com/wp-cli/eval-command/tree/v2.1.1" }, - "time": "2021-05-11T08:39:18+00:00" + "time": "2021-12-03T22:31:22+00:00" }, { "name": "wp-cli/export-command", - "version": "v2.0.9", + "version": "v2.0.11", "source": { "type": "git", "url": "https://github.com/wp-cli/export-command.git", - "reference": "b32d4324e110901cedd8a663bea5563b7e332c44" + "reference": "8dd137e0c739a59bb3d3de684a219dbb34473e11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/export-command/zipball/b32d4324e110901cedd8a663bea5563b7e332c44", - "reference": "b32d4324e110901cedd8a663bea5563b7e332c44", + "url": "https://api.github.com/repos/wp-cli/export-command/zipball/8dd137e0c739a59bb3d3de684a219dbb34473e11", + "reference": "8dd137e0c739a59bb3d3de684a219dbb34473e11", "shasum": "" }, "require": { @@ -5773,7 +6026,7 @@ "wp-cli/extension-command": "^1.2 || ^2", "wp-cli/import-command": "^1 || ^2", "wp-cli/media-command": "^1 || ^2", - "wp-cli/wp-cli-tests": "^3.0.11" + "wp-cli/wp-cli-tests": "^3.1" }, "type": "wp-cli-package", "extra": { @@ -5808,9 +6061,9 @@ "homepage": "https://github.com/wp-cli/export-command", "support": { "issues": "https://github.com/wp-cli/export-command/issues", - "source": "https://github.com/wp-cli/export-command/tree/v2.0.9" + "source": "https://github.com/wp-cli/export-command/tree/v2.0.11" }, - "time": "2021-07-25T17:00:42+00:00" + "time": "2021-12-13T16:02:15+00:00" }, { "name": "wp-cli/extension-command", @@ -6019,17 +6272,17 @@ "source": { "type": "git", "url": "https://github.com/wp-cli/wp-cli.git", - "reference": "c4aba2085554e8872c0fb78ba25e7cf8d337e24a" + "reference": "e62714b434e7f69b4f840bd9c2cde30c0f9d0819" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/c4aba2085554e8872c0fb78ba25e7cf8d337e24a", - "reference": "c4aba2085554e8872c0fb78ba25e7cf8d337e24a", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/e62714b434e7f69b4f840bd9c2cde30c0f9d0819", + "reference": "e62714b434e7f69b4f840bd9c2cde30c0f9d0819", "shasum": "" }, "require": { "ext-curl": "*", - "mustache/mustache": "~2.13", + "mustache/mustache": "^2.14", "php": "^5.6 || ^7.0 || ^8.0", "rmccue/requests": "^1.8", "symfony/finder": ">2.7", @@ -6042,7 +6295,7 @@ "wp-cli/entity-command": "^1.2 || ^2", "wp-cli/extension-command": "^1.1 || ^2", "wp-cli/package-command": "^1 || ^2", - "wp-cli/wp-cli-tests": "^3.0.7" + "wp-cli/wp-cli-tests": "^3.1" }, "suggest": { "ext-readline": "Include for a better --prompt implementation", @@ -6083,20 +6336,20 @@ "issues": "https://github.com/wp-cli/wp-cli/issues", "source": "https://github.com/wp-cli/wp-cli" }, - "time": "2021-08-12T15:46:55+00:00" + "time": "2021-12-14T20:01:51+00:00" }, { "name": "wp-cli/wp-cli-tests", - "version": "v3.0.18", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/wp-cli/wp-cli-tests.git", - "reference": "c10e6d7d46b1fba58e560953a8a1aa97d9a871eb" + "reference": "a46269759212cf246a12c1e9a79c00a4bff7ee0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli-tests/zipball/c10e6d7d46b1fba58e560953a8a1aa97d9a871eb", - "reference": "c10e6d7d46b1fba58e560953a8a1aa97d9a871eb", + "url": "https://api.github.com/repos/wp-cli/wp-cli-tests/zipball/a46269759212cf246a12c1e9a79c00a4bff7ee0f", + "reference": "a46269759212cf246a12c1e9a79c00a4bff7ee0f", "shasum": "" }, "require": { @@ -6104,17 +6357,17 @@ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || ^0.5 || ^0.6.2 || ^0.7.1", "php": ">=5.6", "php-parallel-lint/php-console-highlighter": "^0.5", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpcompatibility/php-compatibility": "^9.3", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.3.5", "wp-cli/config-command": "^1 || ^2", "wp-cli/core-command": "^1 || ^2", "wp-cli/eval-command": "^1 || ^2", - "wp-cli/wp-cli": "^2", - "wp-coding-standards/wpcs": "^2.3", - "yoast/phpunit-polyfills": "^1.0" + "wp-cli/wp-cli": "dev-master as 2.5.1", + "wp-coding-standards/wpcs": "^2.3.0", + "yoast/phpunit-polyfills": "^1.0.3" }, "require-dev": { - "roave/security-advisories": "dev-master" + "roave/security-advisories": "dev-latest" }, "bin": [ "bin/install-package-tests", @@ -6161,7 +6414,7 @@ "issues": "https://github.com/wp-cli/wp-cli-tests/issues", "source": "https://github.com/wp-cli/wp-cli-tests" }, - "time": "2021-07-26T17:06:07+00:00" + "time": "2021-12-06T18:40:15+00:00" }, { "name": "wp-cli/wp-config-transformer", @@ -6261,16 +6514,16 @@ }, { "name": "yoast/phpunit-polyfills", - "version": "1.0.1", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "f014fb21c2b0038fd329515d59025af42fb98715" + "reference": "5ea3536428944955f969bc764bbe09738e151ada" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/f014fb21c2b0038fd329515d59025af42fb98715", - "reference": "f014fb21c2b0038fd329515d59025af42fb98715", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/5ea3536428944955f969bc764bbe09738e151ada", + "reference": "5ea3536428944955f969bc764bbe09738e151ada", "shasum": "" }, "require": { @@ -6278,9 +6531,7 @@ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "require-dev": { - "php-parallel-lint/php-console-highlighter": "^0.5", - "php-parallel-lint/php-parallel-lint": "^1.3.0", - "yoast/yoastcs": "^2.1.0" + "yoast/yoastcs": "^2.2.0" }, "type": "library", "extra": { @@ -6320,7 +6571,7 @@ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2021-08-09T16:28:08+00:00" + "time": "2021-11-23T01:37:03+00:00" }, { "name": "yoast/wp-test-utils", @@ -6392,6 +6643,7 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { + "ampproject/px-toolbox": 20, "sabberworm/php-css-parser": 20, "roave/security-advisories": 20 }, From c5532464280d209d30913553b7ab12789f0877aa Mon Sep 17 00:00:00 2001 From: Edi Amin Date: Wed, 8 Dec 2021 12:52:14 +0600 Subject: [PATCH 2/2] Add amp analyze CLI command --- .phpstorm.meta.php | 1 + src/AmpWpPlugin.php | 1 + src/Cli/AnalyzeCommand.php | 272 +++++++++++++++++++++++++++++++++++++ 3 files changed, 274 insertions(+) create mode 100644 src/Cli/AnalyzeCommand.php diff --git a/.phpstorm.meta.php b/.phpstorm.meta.php index c65e3ae2f92..e2217b603e5 100644 --- a/.phpstorm.meta.php +++ b/.phpstorm.meta.php @@ -21,6 +21,7 @@ 'admin.validation_counts' => \AmpProject\AmpWP\Admin\ValidationCounts::class, 'amp_slug_customization_watcher' => \AmpProject\AmpWP\AmpSlugCustomizationWatcher::class, 'background_task_deactivator' => \AmpProject\AmpWP\BackgroundTask\BackgroundTaskDeactivator::class, + 'cli.analyze_command' => \AmpProject\AmpWP\Cli\AnalyzeCommand::class, 'cli.command_namespace' => \AmpProject\AmpWP\CliCli\CommandNamespaceRegistration::class, 'cli.optimizer_command' => \AmpProject\AmpWP\CliCli\OptimizerCommand::class, 'cli.transformer_command' => \AmpProject\AmpWP\CliCli\TransformerCommand::class, diff --git a/src/AmpWpPlugin.php b/src/AmpWpPlugin.php index 01575d06ecd..975b77eebd5 100644 --- a/src/AmpWpPlugin.php +++ b/src/AmpWpPlugin.php @@ -85,6 +85,7 @@ final class AmpWpPlugin extends ServiceBasedPlugin { 'admin.amp_themes' => Admin\AmpThemes::class, 'amp_slug_customization_watcher' => AmpSlugCustomizationWatcher::class, 'background_task_deactivator' => BackgroundTaskDeactivator::class, + 'cli.analyze_command' => Cli\AnalyzeCommand::class, 'cli.command_namespace' => Cli\CommandNamespaceRegistration::class, 'cli.optimizer_command' => Cli\OptimizerCommand::class, 'cli.transformer_command' => Cli\TransformerCommand::class, diff --git a/src/Cli/AnalyzeCommand.php b/src/Cli/AnalyzeCommand.php new file mode 100644 index 00000000000..978babf0b35 --- /dev/null +++ b/src/Cli/AnalyzeCommand.php @@ -0,0 +1,272 @@ +scannable_url_provider = $scannable_url_provider; + } + + /** + * Analyze site URLs with Page Experience Engine. + * + * [] + * : URL to analyze. + * + * ## OPTIONS + * + * [--timeout=] + * : Timeout value to use in seconds. + * --- + * default: 5 + * --- + * + * [--format=] + * : Render output in a particular format. + * --- + * default: table + * options: + * - count + * - csv + * - json + * - table + * - yaml + * --- + * + * ## EXAMPLES + * + * # Analyze all site URLs. + * $ wp amp analyze --timeout=20 + * + * # Analyze a specific URL. + * $ wp amp analyze http://example.com + * + * @param array $urls URLs to analyze. + * @param array $assoc_args Associative args. + */ + public function analyze( $urls = [], $assoc_args ) { + if ( ! is_array( $urls ) || empty( $urls ) ) { + $urls = $this->scannable_url_provider->get_urls(); + } + + $number_of_urls = count( $urls ); + + $assoc_args = wp_parse_args( + $assoc_args, + [ + 'timeout' => WpHttpRemoteGetRequest::DEFAULT_TIMEOUT, + 'format' => 'table', + ] + ); + + WP_CLI::log( 'Analyzing Page Experience.' ); + + $this->wp_cli_progress = WP_CLI\Utils\make_progress_bar( + sprintf( 'Analyzing %d URLs...', $number_of_urls ), + $number_of_urls + ); + + $results = []; + $failed_urls = []; + + $this->wp_cli_progress->display(); + + foreach ( $urls as $url ) { + $url = isset( $url['url'] ) ? $url['url'] : $url; + + try { + $results[ $url ] = $this->get_analysis_results( + $url, + absint( $assoc_args['timeout'] ) + ); + } catch ( \Exception $error ) { + $failed_urls[] = [ + 'URL' => $url, + 'Message' => $error->getMessage(), + ]; + } + + if ( $this->wp_cli_progress ) { + $this->wp_cli_progress->tick(); + } + } + + $this->wp_cli_progress->finish(); + + if ( ! empty( $results ) ) { + WP_CLI::line(); + WP_CLI::line( 'Analyzed URLs:' ); + $this->print_metrics( $results, $assoc_args ); + } + + if ( ! empty( $failed_urls ) ) { + WP_CLI::line(); + WP_CLI::line( 'URLs failed to analyze:' ); + WP_CLI\Utils\format_items( $assoc_args['format'], $failed_urls, [ 'URL' ] ); + } + } + + /** + * Get URL analysis result. + * + * @param string $url The URL to analyze. + * @param int $timeout Timeout value to use in seconds. + */ + private function get_analysis_results( $url, $timeout ) { + $remote_request = new CachedRemoteGetRequest( new WpHttpRemoteGetRequest( true, $timeout ) ); + $engine = new Engine( $remote_request ); + $profile = new ConfigurationProfile(); + $analysis = $engine->analyze( $url, $profile ); + + return $analysis->getResults(); + } + + /** + * Print PageSpeed Insight metrics. + * + * @param array $results Analysis results. + * @param array $assoc_args Associative args. + */ + private function print_metrics( $results, $assoc_args ) { + $table_data = []; + $home_url = home_url(); + + foreach ( $results as $url => $result ) { + $table_data[] = [ + 'URL' => str_replace( $home_url, '', $url ), + 'Metrics' => $this->get_metrics( $result['first-contentful-paint'], $assoc_args ), + ]; + + $table_data[] = [ + 'URL' => '', + 'Metrics' => $this->get_metrics( $result['interactive'], $assoc_args ), + ]; + + $table_data[] = [ + 'URL' => '', + 'Metrics' => $this->get_metrics( $result['speed-index'], $assoc_args ), + ]; + + $table_data[] = [ + 'URL' => '', + 'Metrics' => $this->get_metrics( $result['total-blocking-time'], $assoc_args ), + ]; + + $table_data[] = [ + 'URL' => '', + 'Metrics' => $this->get_metrics( $result['largest-contentful-paint'], $assoc_args ), + ]; + + $table_data[] = [ + 'URL' => '', + 'Metrics' => $this->get_metrics( $result['cumulative-layout-shift'], $assoc_args ), + ]; + + $table_data[] = [ + 'URL' => '', + 'Metrics' => '', + ]; + } + + $args = [ + 'format' => $assoc_args['format'], + 'fields' => [ 'URL', 'Metrics' ], + ]; + $formatter = new Formatter( $args ); + $formatter->display_items( $table_data, true ); + } + + /** + * Get insight metrics. + * + * @param Issue $issue Result entry of an analysis for a URL. + * @param array $assoc_args Associative args. + */ + private function get_metrics( Issue $issue, $assoc_args ) { + $score = $issue->getScore(); + $value = $issue->getDisplayValue(); + + $icon = ''; + $color_token = ''; + + if ( $score >= 0.9 ) { + $icon = '●'; + $color_token = '%g'; + } elseif ( $score >= 0.5 ) { + $icon = '◼'; + $color_token = '%y'; + } else { + $icon = '▲'; + $color_token = '%r'; + } + + if ( 'table' === $assoc_args['format'] ) { + $icon = $this->colorize( $icon, $color_token ); + $value = $this->colorize( $value, $color_token ); + } + + return $icon . ' ' . $issue->getLabel() . ': ' . $value; + } + + /** + * Colorize a string. + * + * @param string $string String to colorize for output. + * @param string $color_token Color token to colorize with. + */ + private function colorize( $string, $color_token ) { + return WP_CLI::colorize( $color_token . $string . '%n' ); + } +}