From 379a2a9b3b872565123cadf0b7709d084abf17fa Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Thu, 2 Nov 2023 12:21:31 +0100 Subject: [PATCH 01/18] added optional regex to use when checking for the environment file, ran composer update --- composer.lock | 552 ++++++++++++++----------- src/Servebolt/Utils/EnvFile/Reader.php | 30 +- 2 files changed, 333 insertions(+), 249 deletions(-) diff --git a/composer.lock b/composer.lock index ab6a6335..61b2b611 100644 --- a/composer.lock +++ b/composer.lock @@ -160,22 +160,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "dev-master", + "version": "7.9.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "8459341c16f96b9610dcdfe22bd3060d60c0da04" + "reference": "d95d9ab74822c2ca06b31477cd6775a4a299b8e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8459341c16f96b9610dcdfe22bd3060d60c0da04", - "reference": "8459341c16f96b9610dcdfe22bd3060d60c0da04", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d95d9ab74822c2ca06b31477cd6775a4a299b8e8", + "reference": "d95d9ab74822c2ca06b31477cd6775a4a299b8e8", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.9 || ^2.4", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -186,7 +186,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, @@ -195,15 +196,11 @@ "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, - "default-branch": true, "type": "library", "extra": { "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "7.5-dev" } }, "autoload": { @@ -269,7 +266,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/master" + "source": "https://github.com/guzzle/guzzle/tree/7.8" }, "funding": [ { @@ -285,39 +282,38 @@ "type": "tidelift" } ], - "time": "2022-08-29T11:03:19+00:00" + "time": "2023-09-11T09:12:01+00:00" }, { "name": "guzzlehttp/promises", - "version": "dev-master", + "version": "2.0.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" + "reference": "71b12f952d8be69a239989db2fe08314a5189e3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "url": "https://api.github.com/repos/guzzle/promises/zipball/71b12f952d8be69a239989db2fe08314a5189e3b", + "reference": "71b12f952d8be69a239989db2fe08314a5189e3b", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "default-branch": true, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.5-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -354,7 +350,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" + "source": "https://github.com/guzzle/promises/tree/2.0" }, "funding": [ { @@ -370,26 +366,26 @@ "type": "tidelift" } ], - "time": "2022-08-28T14:55:35+00:00" + "time": "2023-08-27T10:15:36+00:00" }, { "name": "guzzlehttp/psr7", - "version": "dev-master", + "version": "2.6.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "67c26b443f348a51926030c83481b85718457d3d" + "reference": "38ef514a6c21335f29d9be64b097d2582ecbf8e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", - "reference": "67c26b443f348a51926030c83481b85718457d3d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/38ef514a6c21335f29d9be64b097d2582ecbf8e4", + "reference": "38ef514a6c21335f29d9be64b097d2582ecbf8e4", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", + "psr/http-message": "^1.1 || ^2.0", "ralouphie/getallheaders": "^3.0" }, "provide": { @@ -410,9 +406,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "2.4-dev" } }, "autoload": { @@ -474,7 +467,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.3" + "source": "https://github.com/guzzle/psr7/tree/2.6" }, "funding": [ { @@ -490,7 +483,7 @@ "type": "tidelift" } ], - "time": "2022-10-26T14:07:24+00:00" + "time": "2023-09-10T16:11:14+00:00" }, { "name": "jakeasmith/http_build_url", @@ -535,17 +528,17 @@ "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "22b2ef5687f43679481615605d7a15c557ce85b1" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/22b2ef5687f43679481615605d7a15c557ce85b1", - "reference": "22b2ef5687f43679481615605d7a15c557ce85b1", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "default-branch": true, "type": "library", @@ -578,9 +571,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "source": "https://github.com/php-fig/http-client" }, - "time": "2020-09-19T09:12:31+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", @@ -588,17 +581,17 @@ "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "5a4f141ac2e5bc35e615134f127e1833158d2944" + "reference": "7037f4b0950474e9d1350e8df89b15f1842085f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/5a4f141ac2e5bc35e615134f127e1833158d2944", - "reference": "5a4f141ac2e5bc35e615134f127e1833158d2944", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/7037f4b0950474e9d1350e8df89b15f1842085f6", + "reference": "7037f4b0950474e9d1350e8df89b15f1842085f6", "shasum": "" }, "require": { "php": ">=7.0.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "default-branch": true, "type": "library", @@ -622,7 +615,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -634,9 +627,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2022-07-14T07:21:53+00:00" + "time": "2023-09-22T11:16:44+00:00" }, { "name": "psr/http-message", @@ -644,22 +637,22 @@ "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", - "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -674,7 +667,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -688,9 +681,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2019-08-29T13:16:46+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "ralouphie/getallheaders", @@ -801,12 +794,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "80d075412b557d41002320b96a096ca65aa2c98d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", + "reference": "80d075412b557d41002320b96a096ca65aa2c98d", "shasum": "" }, "require": { @@ -860,7 +853,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-01-24T14:02:46+00:00" } ], "packages-dev": [ @@ -941,12 +934,12 @@ "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "1d09200268e7d1052ded8e5da9c73c96a63d18f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/1d09200268e7d1052ded8e5da9c73c96a63d18f5", + "reference": "1d09200268e7d1052ded8e5da9c73c96a63d18f5", "shasum": "" }, "require": { @@ -997,9 +990,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/main" }, "funding": [ { @@ -1015,7 +1008,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T12:20:31+00:00" }, { "name": "composer/xdebug-handler", @@ -1085,35 +1078,38 @@ }, { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.2", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", "shasum": "" }, "require": { "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3", + "php": ">=5.4", "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" }, "require-dev": { "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0" + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, "autoload": { "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1129,7 +1125,7 @@ }, { "name": "Contributors", - "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", @@ -1153,10 +1149,58 @@ "tests" ], "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2022-02-04T12:51:07+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/instantiator", @@ -1164,26 +1208,26 @@ "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -1210,7 +1254,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.x" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -1226,7 +1270,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -1324,12 +1368,12 @@ "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/202aaf6b7c2e1e0a622b0298e9f3f537e4d84018", + "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018", "shasum": "" }, "require": { @@ -1337,11 +1381,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "default-branch": true, @@ -1368,7 +1413,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.x" }, "funding": [ { @@ -1376,7 +1421,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-11-01T08:01:43+00:00" }, { "name": "n98/junit-xml", @@ -1420,16 +1465,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v4.0.0", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", "shasum": "" }, "require": { @@ -1465,9 +1510,9 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" }, - "time": "2020-12-01T19:48:11+00:00" + "time": "2023-04-09T17:37:40+00:00" }, { "name": "overtrue/phplint", @@ -1732,17 +1777,17 @@ "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", - "reference": "770abd79ec9ead201757c55af101387a922bb535" + "reference": "302dffedd8f1acfc0ed5c7ee096ea2237553ae1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/770abd79ec9ead201757c55af101387a922bb535", - "reference": "770abd79ec9ead201757c55af101387a922bb535", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/302dffedd8f1acfc0ed5c7ee096ea2237553ae1a", + "reference": "302dffedd8f1acfc0ed5c7ee096ea2237553ae1a", "shasum": "" }, "require": { "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0", + "phpcsstandards/phpcsutils": "^1.0.5", "squizlabs/php_codesniffer": "^3.7.1" }, "replace": { @@ -1753,8 +1798,8 @@ "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcsstandards/phpcsdevcs": "^1.1.3", "phpcsstandards/phpcsdevtools": "^1.2.0", - "phpunit/phpunit": "^4.8 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4", - "yoast/phpunit-polyfills": "^1.0" + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4 || ^10.1.0", + "yoast/phpunit-polyfills": "^1.0.5 || ^2.0.0" }, "suggest": { "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." @@ -1799,7 +1844,7 @@ "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", "source": "https://github.com/PHPCompatibility/PHPCompatibility" }, - "time": "2022-11-22T00:06:09+00:00" + "time": "2023-09-13T12:40:15+00:00" }, { "name": "phpcsstandards/phpcsextra", @@ -1807,24 +1852,24 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", - "reference": "cecabbdb9aca2df19fdbe859b70e92d28f45988b" + "reference": "746c3190ba8eb2f212087c947ba75f4f5b9a58d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/cecabbdb9aca2df19fdbe859b70e92d28f45988b", - "reference": "cecabbdb9aca2df19fdbe859b70e92d28f45988b", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/746c3190ba8eb2f212087c947ba75f4f5b9a58d5", + "reference": "746c3190ba8eb2f212087c947ba75f4f5b9a58d5", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7", "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0 || dev-develop", + "phpcsstandards/phpcsutils": "^1.0.8", "squizlabs/php_codesniffer": "^3.7.1" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevtools": "^1.2.0", + "phpcsstandards/phpcsdevcs": "^1.1.6", + "phpcsstandards/phpcsdevtools": "^1.2.1", "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0" }, "default-branch": true, @@ -1863,7 +1908,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", "source": "https://github.com/PHPCSStandards/PHPCSExtra" }, - "time": "2022-11-14T01:39:57+00:00" + "time": "2023-09-20T22:06:18+00:00" }, { "name": "phpcsstandards/phpcsutils", @@ -1871,16 +1916,16 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", - "reference": "ad3207d6a8053d755d166f6184dd22d50ff2d305" + "reference": "77a6aa4e6abc437eb0cb71702c1a635655a33af8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/ad3207d6a8053d755d166f6184dd22d50ff2d305", - "reference": "ad3207d6a8053d755d166f6184dd22d50ff2d305", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/77a6aa4e6abc437eb0cb71702c1a635655a33af8", + "reference": "77a6aa4e6abc437eb0cb71702c1a635655a33af8", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7", + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", "php": ">=5.4", "squizlabs/php_codesniffer": "^3.7.1 || 4.0.x-dev@dev" }, @@ -1888,9 +1933,8 @@ "ext-filter": "*", "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevcs": "^1.1.3", - "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.3", - "yoast/phpunit-polyfills": "^1.0.1" + "phpcsstandards/phpcsdevcs": "^1.1.6", + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0" }, "default-branch": true, "type": "phpcodesniffer-standard", @@ -1938,7 +1982,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", "source": "https://github.com/PHPCSStandards/PHPCSUtils" }, - "time": "2022-11-12T14:05:05+00:00" + "time": "2023-09-13T20:12:39+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -1999,12 +2043,12 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "566af9fb94c556de91562fcfcbc392f66680111b" + "reference": "c86c8d449b863bdaed15861a32dc4c50f8e3a832" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/566af9fb94c556de91562fcfcbc392f66680111b", - "reference": "566af9fb94c556de91562fcfcbc392f66680111b", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/c86c8d449b863bdaed15861a32dc4c50f8e3a832", + "reference": "c86c8d449b863bdaed15861a32dc4c50f8e3a832", "shasum": "" }, "require": { @@ -2055,7 +2099,7 @@ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" }, - "time": "2022-11-19T20:28:46+00:00" + "time": "2023-10-13T06:34:03+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -2063,15 +2107,16 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2" + "reference": "181f43ae2f4afbbdd9426dc0fd8db0444439a033" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2", - "reference": "2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/181f43ae2f4afbbdd9426dc0fd8db0444439a033", + "reference": "181f43ae2f4afbbdd9426dc0fd8db0444439a033", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.0", "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0", "phpstan/phpdoc-parser": "^1.13" @@ -2113,7 +2158,7 @@ "issues": "https://github.com/phpDocumentor/TypeResolver/issues", "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.x" }, - "time": "2022-11-19T20:09:31+00:00" + "time": "2023-10-13T06:37:27+00:00" }, { "name": "phpspec/prophecy", @@ -2121,24 +2166,25 @@ "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "2d558313f0272a637b96c1abf3f3fbb5efb0d4e5" + "reference": "098f8850e4bd800b7734c65b2c8c10b28d87f10e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/2d558313f0272a637b96c1abf3f3fbb5efb0d4e5", - "reference": "2d558313f0272a637b96c1abf3f3fbb5efb0d4e5", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/098f8850e4bd800b7734c65b2c8c10b28d87f10e", + "reference": "098f8850e4bd800b7734c65b2c8c10b28d87f10e", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", + "doctrine/instantiator": "^1.2 || ^2.0", "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0" }, "require-dev": { "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" }, "default-branch": true, "type": "library", @@ -2172,6 +2218,7 @@ "keywords": [ "Double", "Dummy", + "dev", "fake", "mock", "spy", @@ -2181,26 +2228,28 @@ "issues": "https://github.com/phpspec/prophecy/issues", "source": "https://github.com/phpspec/prophecy/tree/master" }, - "time": "2022-11-30T09:23:31+00:00" + "time": "2023-08-31T13:58:35+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.14.0", + "version": "1.24.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "df1a79430e14e30cd192fe6c05842133d076e58d" + "reference": "bcad8d995980440892759db0c32acae7c8e79442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/df1a79430e14e30cd192fe6c05842133d076e58d", - "reference": "df1a79430e14e30cd192fe6c05842133d076e58d", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", + "reference": "bcad8d995980440892759db0c32acae7c8e79442", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.5", @@ -2224,9 +2273,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.14.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" }, - "time": "2022-11-27T19:09:16+00:00" + "time": "2023-09-26T12:28:12+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2906,12 +2955,12 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae", + "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae", "shasum": "" }, "require": { @@ -2964,7 +3013,7 @@ "type": "github" } ], - "time": "2020-11-30T07:59:04+00:00" + "time": "2023-05-07T05:30:20+00:00" }, { "name": "sebastian/environment", @@ -3441,12 +3490,12 @@ "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "cd5acaa651df870e8a3207926f236400361219e0" + "reference": "7763e2e1f773cb0615ed8afa133189fc804f583d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/cd5acaa651df870e8a3207926f236400361219e0", - "reference": "cd5acaa651df870e8a3207926f236400361219e0", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/7763e2e1f773cb0615ed8afa133189fc804f583d", + "reference": "7763e2e1f773cb0615ed8afa133189fc804f583d", "shasum": "" }, "require": { @@ -3491,7 +3540,7 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2022-10-21T05:57:32+00:00" + "time": "2023-11-02T00:47:31+00:00" }, { "name": "symfony/console", @@ -3499,12 +3548,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" + "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", - "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", + "url": "https://api.github.com/repos/symfony/console/zipball/11ac5f154e0e5c4c77af83ad11ead9165280b92a", + "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a", "shasum": "" }, "require": { @@ -3569,7 +3618,7 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], @@ -3590,7 +3639,7 @@ "type": "tidelift" } ], - "time": "2022-11-25T14:09:27+00:00" + "time": "2023-10-31T07:58:33+00:00" }, { "name": "symfony/dotenv", @@ -3598,12 +3647,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" + "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/ceed2cd28442adcf3679a9a82dacd45baeefc458", + "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458", "shasum": "" }, "require": { @@ -3614,7 +3663,6 @@ "symfony/console": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0" }, - "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -3646,7 +3694,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.4.5" + "source": "https://github.com/symfony/dotenv/tree/5.4" }, "funding": [ { @@ -3662,7 +3710,7 @@ "type": "tidelift" } ], - "time": "2022-02-15T17:04:12+00:00" + "time": "2023-10-26T16:37:39+00:00" }, { "name": "symfony/finder", @@ -3670,12 +3718,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d", + "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d", "shasum": "" }, "require": { @@ -3725,20 +3773,20 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2023-07-31T08:02:31+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -3754,7 +3802,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3792,7 +3840,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -3808,20 +3856,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -3834,7 +3882,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3874,7 +3922,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -3890,20 +3938,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -3916,7 +3964,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3959,7 +4007,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -3975,20 +4023,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -4004,7 +4052,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4043,7 +4091,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -4059,20 +4107,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php73", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { @@ -4082,7 +4130,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4123,7 +4171,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -4139,20 +4187,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php80", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -4162,7 +4210,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4207,7 +4255,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -4223,7 +4271,7 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/process", @@ -4231,12 +4279,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", + "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", "shasum": "" }, "require": { @@ -4285,7 +4333,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2023-08-07T10:36:04+00:00" }, { "name": "symfony/service-contracts", @@ -4293,12 +4341,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", "shasum": "" }, "require": { @@ -4368,7 +4416,7 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-04-21T15:04:16+00:00" }, { "name": "symfony/string", @@ -4376,12 +4424,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" + "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", - "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", + "url": "https://api.github.com/repos/symfony/string/zipball/e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", + "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", "shasum": "" }, "require": { @@ -4438,7 +4486,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.15" + "source": "https://github.com/symfony/string/tree/5.4" }, "funding": [ { @@ -4454,7 +4502,7 @@ "type": "tidelift" } ], - "time": "2022-10-05T15:16:54+00:00" + "time": "2023-09-13T11:47:41+00:00" }, { "name": "symfony/var-dumper", @@ -4462,12 +4510,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430" + "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6172e4ae3534d25ee9e07eb487c20be7760fcc65", + "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65", "shasum": "" }, "require": { @@ -4476,12 +4524,12 @@ "symfony/polyfill-php80": "^1.16" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0", "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" @@ -4543,7 +4591,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:01:20+00:00" + "time": "2023-09-12T10:09:58+00:00" }, { "name": "symfony/yaml", @@ -4551,12 +4599,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298" + "reference": "6571eb04b3f4f9e98ded588af23e7a2d27fb1728" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", - "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", + "url": "https://api.github.com/repos/symfony/yaml/zipball/6571eb04b3f4f9e98ded588af23e7a2d27fb1728", + "reference": "6571eb04b3f4f9e98ded588af23e7a2d27fb1728", "shasum": "" }, "require": { @@ -4618,7 +4666,7 @@ "type": "tidelift" } ], - "time": "2022-11-25T16:04:03+00:00" + "time": "2023-11-01T16:49:00+00:00" }, { "name": "theseer/tokenizer", @@ -4734,19 +4782,23 @@ "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "c1c4b64e2466f7911d12ce3a000504bd8dd47461" + "reference": "7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/c1c4b64e2466f7911d12ce3a000504bd8dd47461", - "reference": "c1c4b64e2466f7911d12ce3a000504bd8dd47461", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7", + "reference": "7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7", "shasum": "" }, "require": { + "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", "php": ">=5.4", - "phpcsstandards/phpcsextra": "^1.0", - "phpcsstandards/phpcsutils": "^1.0", - "squizlabs/php_codesniffer": "^3.7.1" + "phpcsstandards/phpcsextra": "^1.1.0", + "phpcsstandards/phpcsutils": "^1.0.8", + "squizlabs/php_codesniffer": "^3.7.2" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", @@ -4755,6 +4807,10 @@ "phpcsstandards/phpcsdevtools": "^1.2.0", "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "suggest": { + "ext-iconv": "For improved results", + "ext-mbstring": "For improved results" + }, "default-branch": true, "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", @@ -4779,20 +4835,26 @@ "source": "https://github.com/WordPress/WordPress-Coding-Standards", "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" }, - "time": "2022-11-26T11:52:05+00:00" + "funding": [ + { + "url": "https://opencollective.com/thewpcc/contribute/wp-php-63406", + "type": "custom" + } + ], + "time": "2023-09-20T23:16:50+00:00" }, { "name": "yoast/phpunit-polyfills", - "version": "dev-develop", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c" + "reference": "f1f7e15daf4f0e7225757ff902322df6d47c1385" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c", - "reference": "3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/f1f7e15daf4f0e7225757ff902322df6d47c1385", + "reference": "f1f7e15daf4f0e7225757ff902322df6d47c1385", "shasum": "" }, "require": { @@ -4800,14 +4862,12 @@ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "require-dev": { - "yoast/yoastcs": "^2.2.1" + "yoast/yoastcs": "^2.3.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev", - "dev-develop": "1.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -4841,7 +4901,7 @@ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2022-11-16T09:07:52+00:00" + "time": "2023-09-27T10:45:26+00:00" } ], "aliases": [], diff --git a/src/Servebolt/Utils/EnvFile/Reader.php b/src/Servebolt/Utils/EnvFile/Reader.php index 97b91f0c..69844770 100644 --- a/src/Servebolt/Utils/EnvFile/Reader.php +++ b/src/Servebolt/Utils/EnvFile/Reader.php @@ -36,9 +36,28 @@ class Reader private $success = false; /** - * @var string Regex-pattern used to resolve user home folder when we can not resolve it from Wordpress-paths. + * @var string Regex-pattern used to resolve user home folder when on a Legacy Servebolt server, + * and that we can not resolve it from Wordpress-paths. existing strucure is + * + * /kunder/// + * + * example file location: + * /kunder/serveb_12625/acdgro_17912/environment.json + * */ - private $folderLocateRegex = '/(\/kunder\/[a-z_0-9]+\/[a-z_]+(\d+))/'; + private $legacyFolderLocateRegex = '/(\/kunder\/[a-z_0-9]+\/[a-z_]+(\d+))/'; + + /** + * @var string Regex-pattern used to resolve user home folder when on a NextGen Servebolt server, + * the new struture is + * + * /cust////home/ + * + * example file location: + * /cust/0/quotab_8657/quotab_1350/home/environment.json + * + */ + private $nextGenFolderLocateRegex = '/(\/cust\/[0-9]\/[a-z_0-9]+\/[a-z_]+(\d+)\/home)/'; /** * @var string The basename of the environment file. @@ -238,14 +257,19 @@ private function attemptToLocateFile($fileName) /** * Locate users home folder from WordPress-path by using pattern matching. + * + * There are two patterens that can possibly be matched. The Legacy /kunder/ and + * the NextGen /cust/ are the begginings of each possible path. * * @param $searchFolderPath * @return false|string */ private function locateFolderPathFromDefaultPath($searchFolderPath) { + // select the regex to use based on the path. + $regex = (strpos($searchFolderPath, '/cust/') === 0) ? $this->nextGenFolderLocateRegex : $this->legacyFolderLocateRegex; if ( - preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $this->folderLocateRegex), $searchFolderPath, $matches) + preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $regex), $searchFolderPath, $matches) && isset($matches[1]) && !empty($matches[1]) ) { From 888cae1363d2ea5e014aea658253e516a7fe914b Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Fri, 3 Nov 2023 11:32:16 +0100 Subject: [PATCH 02/18] updates to composer plus servebolt-php-sdk --- composer.lock | 12 ++++++------ src/Servebolt/Admin/LogViewer/LogViewer.php | 5 ++++- .../WordPressCachePurge/WordPressCachePurge.php | 10 +++++++++- src/Servebolt/Utils/EnvFile/Reader.php | 13 +++++++++---- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index 61b2b611..bdab02f4 100644 --- a/composer.lock +++ b/composer.lock @@ -731,16 +731,16 @@ }, { "name": "servebolt/sdk", - "version": "1.2.2", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/Servebolt/php-sdk.git", - "reference": "e97d1f71303dd485c0b15055d3ae7fc63eaa7c84" + "reference": "706066388b2d34a9dbbfcbaa24d961150bb44778" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Servebolt/php-sdk/zipball/e97d1f71303dd485c0b15055d3ae7fc63eaa7c84", - "reference": "e97d1f71303dd485c0b15055d3ae7fc63eaa7c84", + "url": "https://api.github.com/repos/Servebolt/php-sdk/zipball/706066388b2d34a9dbbfcbaa24d961150bb44778", + "reference": "706066388b2d34a9dbbfcbaa24d961150bb44778", "shasum": "" }, "require": { @@ -784,9 +784,9 @@ "homepage": "https://servebolt.com", "support": { "issues": "https://github.com/Servebolt/php-sdk/issues", - "source": "https://github.com/Servebolt/php-sdk/tree/1.2.2" + "source": "https://github.com/Servebolt/php-sdk/tree/1.2.4" }, - "time": "2023-03-23T08:20:21+00:00" + "time": "2023-11-03T10:25:06+00:00" }, { "name": "symfony/deprecation-contracts", diff --git a/src/Servebolt/Admin/LogViewer/LogViewer.php b/src/Servebolt/Admin/LogViewer/LogViewer.php index 4caa0b6e..c6661591 100644 --- a/src/Servebolt/Admin/LogViewer/LogViewer.php +++ b/src/Servebolt/Admin/LogViewer/LogViewer.php @@ -28,7 +28,10 @@ class LogViewer */ private function getErrorLogPath(): string { - $logDir = str_replace('/public', '/logs', $_SERVER['DOCUMENT_ROOT']); + $logDir = str_replace('/public', '/logs', $_SERVER['DOCUMENT_ROOT']); + if(strpos($_SERVER['DOCUMENT_ROOT'], '/cust/')===0) { + $logDir = str_replace('/site/public', '/logs/php', $_SERVER['DOCUMENT_ROOT']); + } $logFilePath = $logDir . '/ErrorLog'; return (string) apply_filters('sb_optimizer_log_file_path', $logFilePath); } diff --git a/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php b/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php index 1f397327..8f0496f2 100644 --- a/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php +++ b/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php @@ -171,7 +171,15 @@ public static function purgeAllByBlogId(?int $blogId = null, bool $returnWpError return isQueueItem($queueInstance->add(['type' => 'purge-all'])); } else { $cachePurgeDriver = CachePurgeDriver::getInstance($blogId); - return $cachePurgeDriver->purgeAll(); + error_log("performing pruge all begin "); + $return = $cachePurgeDriver->purgeAll(); + if($return) { + error_log("response object true" . print_r($return,true)); + } else { + error_log("object is false"); + } + + return $return; } } diff --git a/src/Servebolt/Utils/EnvFile/Reader.php b/src/Servebolt/Utils/EnvFile/Reader.php index 69844770..30f1dbf5 100644 --- a/src/Servebolt/Utils/EnvFile/Reader.php +++ b/src/Servebolt/Utils/EnvFile/Reader.php @@ -57,7 +57,7 @@ class Reader * /cust/0/quotab_8657/quotab_1350/home/environment.json * */ - private $nextGenFolderLocateRegex = '/(\/cust\/[0-9]\/[a-z_0-9]+\/[a-z_]+(\d+)\/home)/'; + private $nextGenFolderLocateRegex = '/(\/cust\/[0-9]\/[a-z_0-9]+\/[a-z_]+(\d+))/'; /** * @var string The basename of the environment file. @@ -266,14 +266,19 @@ private function attemptToLocateFile($fileName) */ private function locateFolderPathFromDefaultPath($searchFolderPath) { - // select the regex to use based on the path. - $regex = (strpos($searchFolderPath, '/cust/') === 0) ? $this->nextGenFolderLocateRegex : $this->legacyFolderLocateRegex; + $subdir = ''; + $regex = $this->legacyFolderLocateRegex; + // if it begins with /cust/ its next gen and needs to have home appended to the path. + if (strpos($searchFolderPath, '/cust/') === 0) { + $subdir = 'home/'; + $regex = $this->nextGenFolderLocateRegex; + } if ( preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $regex), $searchFolderPath, $matches) && isset($matches[1]) && !empty($matches[1]) ) { - return trailingslashit($matches[1]); + return trailingslashit($matches[1]) . $subdir; } return false; } From df90007ae504f786c8ad02ad92448a18cda6c2d4 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Fri, 3 Nov 2023 12:05:58 +0100 Subject: [PATCH 03/18] created isNextGen helper to know if next gen or not --- servebolt-optimizer.php | 2 +- src/Servebolt/Admin/LogViewer/LogViewer.php | 3 ++- .../WordPressCachePurge/WordPressCachePurge.php | 12 ++---------- src/Servebolt/Helpers/Helpers.php | 15 +++++++++++++++ 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/servebolt-optimizer.php b/servebolt-optimizer.php index 70219230..7f0851cb 100644 --- a/servebolt-optimizer.php +++ b/servebolt-optimizer.php @@ -1,7 +1,7 @@ add(['type' => 'purge-all'])); } else { $cachePurgeDriver = CachePurgeDriver::getInstance($blogId); - error_log("performing pruge all begin "); - $return = $cachePurgeDriver->purgeAll(); - if($return) { - error_log("response object true" . print_r($return,true)); - } else { - error_log("object is false"); - } - - return $return; + return $cachePurgeDriver->purgeAll(); } } diff --git a/src/Servebolt/Helpers/Helpers.php b/src/Servebolt/Helpers/Helpers.php index e7cd631b..03d78ba3 100644 --- a/src/Servebolt/Helpers/Helpers.php +++ b/src/Servebolt/Helpers/Helpers.php @@ -773,6 +773,21 @@ function deleteAllSettings(bool $allSites = true, bool $includeMigrationOptions } } +/** + * Checks if we are on NextGen or Legacy + */ +function isNextGen($optionalPath = ''): bool +{ + if(!isset($_SERVER['DOCUMENT_ROOT'])) return false; + $path = $_SERVER['DOCUMENT_ROOT']; + + if($optionalPath != '') { + $path = $optionalPath; + } + + return ( strpos($path, '/cust/') === 0 ); +} + /** * Check whether a variable is an instance of QueueItem. * From 9afda4af5b5a1b26c566d60e07320a5d7351c828 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Fri, 3 Nov 2023 13:08:02 +0100 Subject: [PATCH 04/18] testing versions --- composer.json | 2 +- composer.lock | 14 +++++++------- src/Servebolt/Helpers/Helpers.php | 20 +++++++++++--------- src/Servebolt/Utils/EnvFile/Reader.php | 3 ++- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index 42083570..9b650d7d 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "require": { "php": "^7.3|^8.0", "composer/installers": "~1.2", - "servebolt/sdk": "^1.2.1" + "servebolt/sdk": "1.2.2" }, "require-dev": { "squizlabs/php_codesniffer": "*", diff --git a/composer.lock b/composer.lock index bdab02f4..24c238b0 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": "488aff9baa7d5a2a9ff4995ee72caa04", + "content-hash": "4f151bacc59e237bf1d338911360ddb7", "packages": [ { "name": "composer/installers", @@ -731,16 +731,16 @@ }, { "name": "servebolt/sdk", - "version": "1.2.4", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/Servebolt/php-sdk.git", - "reference": "706066388b2d34a9dbbfcbaa24d961150bb44778" + "reference": "e97d1f71303dd485c0b15055d3ae7fc63eaa7c84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Servebolt/php-sdk/zipball/706066388b2d34a9dbbfcbaa24d961150bb44778", - "reference": "706066388b2d34a9dbbfcbaa24d961150bb44778", + "url": "https://api.github.com/repos/Servebolt/php-sdk/zipball/e97d1f71303dd485c0b15055d3ae7fc63eaa7c84", + "reference": "e97d1f71303dd485c0b15055d3ae7fc63eaa7c84", "shasum": "" }, "require": { @@ -784,9 +784,9 @@ "homepage": "https://servebolt.com", "support": { "issues": "https://github.com/Servebolt/php-sdk/issues", - "source": "https://github.com/Servebolt/php-sdk/tree/1.2.4" + "source": "https://github.com/Servebolt/php-sdk/tree/1.2.2" }, - "time": "2023-11-03T10:25:06+00:00" + "time": "2023-03-23T08:20:21+00:00" }, { "name": "symfony/deprecation-contracts", diff --git a/src/Servebolt/Helpers/Helpers.php b/src/Servebolt/Helpers/Helpers.php index 03d78ba3..47da18f9 100644 --- a/src/Servebolt/Helpers/Helpers.php +++ b/src/Servebolt/Helpers/Helpers.php @@ -774,18 +774,20 @@ function deleteAllSettings(bool $allSites = true, bool $includeMigrationOptions } /** - * Checks if we are on NextGen or Legacy + * Checks if we are on NextGen or a Legacy Server. */ -function isNextGen($optionalPath = ''): bool +function isNextGen($path = ''): bool { - if(!isset($_SERVER['DOCUMENT_ROOT'])) return false; - $path = $_SERVER['DOCUMENT_ROOT']; - - if($optionalPath != '') { - $path = $optionalPath; + if($path === '') { + if (isset($_SERVER['DOCUMENT_ROOT'])) { + $path = trailingslashit(dirname($_SERVER['DOCUMENT_ROOT'])); + } else if (defined('ABSPATH')) { + $path = trailingslashit(dirname(ABSPATH)); + } else { + throw new Exception('Could not determine default environment file folder path.'); + } } - - return ( strpos($path, '/cust/') === 0 ); + return ( strpos($path, '/cust/') === 0 ) ? true : false; } /** diff --git a/src/Servebolt/Utils/EnvFile/Reader.php b/src/Servebolt/Utils/EnvFile/Reader.php index 30f1dbf5..cce090b3 100644 --- a/src/Servebolt/Utils/EnvFile/Reader.php +++ b/src/Servebolt/Utils/EnvFile/Reader.php @@ -11,6 +11,7 @@ use function Servebolt\Optimizer\Helpers\getOption; use function Servebolt\Optimizer\Helpers\isHostedAtServebolt; use function Servebolt\Optimizer\Helpers\updateOption; +use function Servebolt\Optimizer\Helpers\isNextGen; /** * Class Reader @@ -269,7 +270,7 @@ private function locateFolderPathFromDefaultPath($searchFolderPath) $subdir = ''; $regex = $this->legacyFolderLocateRegex; // if it begins with /cust/ its next gen and needs to have home appended to the path. - if (strpos($searchFolderPath, '/cust/') === 0) { + if (isNextGen($searchFolderPath)) { $subdir = 'home/'; $regex = $this->nextGenFolderLocateRegex; } From 92b185c161a0eeba0fdfd6cff951785f55b34b67 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Mon, 6 Nov 2023 11:46:18 +0100 Subject: [PATCH 05/18] composer updates --- Readme.txt | 5 ++- composer.json | 4 +-- composer.lock | 87 +++++++++------------------------------------------ 3 files changed, 20 insertions(+), 76 deletions(-) diff --git a/Readme.txt b/Readme.txt index 34cf88fe..564a19bf 100644 --- a/Readme.txt +++ b/Readme.txt @@ -5,7 +5,7 @@ Donate link: https://servebolt.com Requires at least: 4.9.2 Tested up to: 6.3.1 Requires PHP: 7.3 -Stable tag: 3.5.24 +Stable tag: 3.5.25 License: GPLv3 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -97,6 +97,9 @@ Yes, you can. The database optimizations are beneficial for everyone as well as If you're a Servebolt client, please reach out to our Support Team and we'll be happy to help you out there. Alternatively, you can create a support forum request [here](https://wordpress.org/support/plugin/servebolt-optimizer/). == Changelog == += 3.5.25 = +* Allows for NextGen servers to be supported. + = 3.5.24 = * fixed small bug of missing save button on advanced tab of new installs * proven support for 6.3.1 diff --git a/composer.json b/composer.json index 9b650d7d..33c6a397 100644 --- a/composer.json +++ b/composer.json @@ -20,8 +20,8 @@ ], "require": { "php": "^7.3|^8.0", - "composer/installers": "~1.2", - "servebolt/sdk": "1.2.2" + "composer/installers": "^2.0", + "servebolt/sdk": "^1.2.2" }, "require-dev": { "squizlabs/php_codesniffer": "*", diff --git a/composer.lock b/composer.lock index 24c238b0..d1fd5afa 100644 --- a/composer.lock +++ b/composer.lock @@ -4,42 +4,39 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4f151bacc59e237bf1d338911360ddb7", + "content-hash": "5f3d7a6542f672c4e6a1f3c3dd428166", "packages": [ { "name": "composer/installers", - "version": "1.x-dev", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/composer/installers.git", - "reference": "894a0b5c5d34c88b69b097f2aae1439730fa6836" + "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/894a0b5c5d34c88b69b097f2aae1439730fa6836", - "reference": "894a0b5c5d34c88b69b097f2aae1439730fa6836", + "url": "https://api.github.com/repos/composer/installers/zipball/2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", + "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0" - }, - "replace": { - "roundcube/plugin-installer": "*", - "shama/baton": "*" + "composer-plugin-api": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0" }, "require-dev": { "composer/composer": "1.6.* || ^2.0", "composer/semver": "^1 || ^3", "phpstan/phpstan": "^0.12.55", "phpstan/phpstan-phpunit": "^0.12.16", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.3" + "symfony/phpunit-bridge": "^5.3", + "symfony/process": "^5" }, "type": "composer-plugin", "extra": { "class": "Composer\\Installers\\Plugin", "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "2.x-dev" }, "plugin-modifies-install-path": true }, @@ -62,7 +59,6 @@ "description": "A multi-framework Composer library installer", "homepage": "https://composer.github.io/installers/", "keywords": [ - "Craft", "Dolibarr", "Eliasis", "Hurad", @@ -83,7 +79,6 @@ "Whmcs", "WolfCMS", "agl", - "aimeos", "annotatecms", "attogram", "bitrix", @@ -102,7 +97,6 @@ "grav", "installer", "itop", - "joomla", "known", "kohana", "laravel", @@ -111,6 +105,7 @@ "magento", "majima", "mako", + "matomo", "mediawiki", "miaoxing", "modulework", @@ -130,9 +125,7 @@ "silverstripe", "sydes", "sylius", - "symfony", "tastyigniter", - "typo3", "wordpress", "yawik", "zend", @@ -140,7 +133,7 @@ ], "support": { "issues": "https://github.com/composer/installers/issues", - "source": "https://github.com/composer/installers/tree/1.x" + "source": "https://github.com/composer/installers/tree/main" }, "funding": [ { @@ -156,7 +149,7 @@ "type": "tidelift" } ], - "time": "2022-03-15T21:23:54+00:00" + "time": "2022-10-12T12:07:30+00:00" }, { "name": "guzzlehttp/guzzle", @@ -264,10 +257,6 @@ "rest", "web service" ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8" - }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -305,7 +294,6 @@ "bamarni/composer-bin-plugin": "^1.8.1", "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, - "default-branch": true, "type": "library", "extra": { "bamarni-bin": { @@ -348,10 +336,6 @@ "keywords": [ "promise" ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0" - }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -400,7 +384,6 @@ "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, - "default-branch": true, "type": "library", "extra": { "bamarni-bin": { @@ -465,10 +448,6 @@ "uri", "url" ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6" - }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -540,7 +519,6 @@ "php": "^7.0 || ^8.0", "psr/http-message": "^1.0 || ^2.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -570,9 +548,6 @@ "psr", "psr-18" ], - "support": { - "source": "https://github.com/php-fig/http-client" - }, "time": "2023-09-23T14:17:50+00:00" }, { @@ -593,7 +568,6 @@ "php": ">=7.0.0", "psr/http-message": "^1.0 || ^2.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -626,9 +600,6 @@ "request", "response" ], - "support": { - "source": "https://github.com/php-fig/http-factory" - }, "time": "2023-09-22T11:16:44+00:00" }, { @@ -648,7 +619,6 @@ "require": { "php": "^7.2 || ^8.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -680,9 +650,6 @@ "request", "response" ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/2.0" - }, "time": "2023-04-04T09:54:51+00:00" }, { @@ -782,10 +749,6 @@ ], "description": "A PHP SDK for communicating with the Servebolt API.", "homepage": "https://servebolt.com", - "support": { - "issues": "https://github.com/Servebolt/php-sdk/issues", - "source": "https://github.com/Servebolt/php-sdk/tree/1.2.2" - }, "time": "2023-03-23T08:20:21+00:00" }, { @@ -949,7 +912,6 @@ "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1183,7 +1145,6 @@ "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, - "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -1389,7 +1350,6 @@ "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, - "default-branch": true, "type": "library", "autoload": { "files": [ @@ -1804,7 +1764,6 @@ "suggest": { "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." }, - "default-branch": true, "type": "phpcodesniffer-standard", "extra": { "branch-alias": { @@ -1872,7 +1831,6 @@ "phpcsstandards/phpcsdevtools": "^1.2.1", "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0" }, - "default-branch": true, "type": "phpcodesniffer-standard", "extra": { "branch-alias": { @@ -1936,7 +1894,6 @@ "phpcsstandards/phpcsdevcs": "^1.1.6", "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0" }, - "default-branch": true, "type": "phpcodesniffer-standard", "extra": { "branch-alias": { @@ -2068,7 +2025,6 @@ "phpunit/phpunit": "^9.5", "vimeo/psalm": "^4.26" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -2131,7 +2087,6 @@ "rector/rector": "^0.13.9", "vimeo/psalm": "^4.25" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -2186,7 +2141,6 @@ "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -3507,7 +3461,6 @@ "require-dev": { "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, - "default-branch": true, "bin": [ "bin/phpcs", "bin/phpcbf" @@ -3535,11 +3488,6 @@ "standards", "static analysis" ], - "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" - }, "time": "2023-11-02T00:47:31+00:00" }, { @@ -3798,7 +3746,6 @@ "suggest": { "ext-ctype": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -3878,7 +3825,6 @@ "suggest": { "ext-intl": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -3960,7 +3906,6 @@ "suggest": { "ext-intl": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -4048,7 +3993,6 @@ "suggest": { "ext-mbstring": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -4126,7 +4070,6 @@ "require": { "php": ">=7.1" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -4206,7 +4149,6 @@ "require": { "php": ">=7.1" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -4811,7 +4753,6 @@ "ext-iconv": "For improved results", "ext-mbstring": "For improved results" }, - "default-branch": true, "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4919,5 +4860,5 @@ "platform-overrides": { "php": "7.4" }, - "plugin-api-version": "2.1.0" + "plugin-api-version": "1.1.0" } From a1151342e1605eebf17c98cc0cbff6b0f6eae62c Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Mon, 6 Nov 2023 13:26:33 +0100 Subject: [PATCH 06/18] test commit --- composer.json | 2 +- composer.lock | 560 +++++++++----------- src/Servebolt/Admin/LogViewer/LogViewer.php | 6 +- src/Servebolt/Utils/EnvFile/Reader.php | 27 +- 4 files changed, 273 insertions(+), 322 deletions(-) diff --git a/composer.json b/composer.json index 33c6a397..c23e0857 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ ], "require": { "php": "^7.3|^8.0", - "composer/installers": "^2.0", + "composer/installers": "^1.0", "servebolt/sdk": "^1.2.2" }, "require-dev": { diff --git a/composer.lock b/composer.lock index d1fd5afa..2eb729a2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,39 +4,42 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5f3d7a6542f672c4e6a1f3c3dd428166", + "content-hash": "476f8928d9dd4f329372a52a690b98bc", "packages": [ { "name": "composer/installers", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/composer/installers.git", - "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe" + "reference": "894a0b5c5d34c88b69b097f2aae1439730fa6836" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", - "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", + "url": "https://api.github.com/repos/composer/installers/zipball/894a0b5c5d34c88b69b097f2aae1439730fa6836", + "reference": "894a0b5c5d34c88b69b097f2aae1439730fa6836", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": "^7.2 || ^8.0" + "composer-plugin-api": "^1.0 || ^2.0" + }, + "replace": { + "roundcube/plugin-installer": "*", + "shama/baton": "*" }, "require-dev": { "composer/composer": "1.6.* || ^2.0", "composer/semver": "^1 || ^3", "phpstan/phpstan": "^0.12.55", "phpstan/phpstan-phpunit": "^0.12.16", - "symfony/phpunit-bridge": "^5.3", - "symfony/process": "^5" + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^2.3" }, "type": "composer-plugin", "extra": { "class": "Composer\\Installers\\Plugin", "branch-alias": { - "dev-main": "2.x-dev" + "dev-main": "1.x-dev" }, "plugin-modifies-install-path": true }, @@ -59,6 +62,7 @@ "description": "A multi-framework Composer library installer", "homepage": "https://composer.github.io/installers/", "keywords": [ + "Craft", "Dolibarr", "Eliasis", "Hurad", @@ -79,6 +83,7 @@ "Whmcs", "WolfCMS", "agl", + "aimeos", "annotatecms", "attogram", "bitrix", @@ -97,6 +102,7 @@ "grav", "installer", "itop", + "joomla", "known", "kohana", "laravel", @@ -105,7 +111,6 @@ "magento", "majima", "mako", - "matomo", "mediawiki", "miaoxing", "modulework", @@ -125,7 +130,9 @@ "silverstripe", "sydes", "sylius", + "symfony", "tastyigniter", + "typo3", "wordpress", "yawik", "zend", @@ -133,7 +140,7 @@ ], "support": { "issues": "https://github.com/composer/installers/issues", - "source": "https://github.com/composer/installers/tree/main" + "source": "https://github.com/composer/installers/tree/1.x" }, "funding": [ { @@ -149,26 +156,26 @@ "type": "tidelift" } ], - "time": "2022-10-12T12:07:30+00:00" + "time": "2022-03-15T21:23:54+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.9.x-dev", + "version": "7.5.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d95d9ab74822c2ca06b31477cd6775a4a299b8e8" + "reference": "584d1f06b5caa07b0587f5054d551ed65460ce5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d95d9ab74822c2ca06b31477cd6775a4a299b8e8", - "reference": "d95d9ab74822c2ca06b31477cd6775a4a299b8e8", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/584d1f06b5caa07b0587f5054d551ed65460ce5d", + "reference": "584d1f06b5caa07b0587f5054d551ed65460ce5d", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -179,8 +186,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", - "php-http/message-factory": "^1.1", + "php-http/client-integration-tests": "^3.0", "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, @@ -271,37 +277,33 @@ "type": "tidelift" } ], - "time": "2023-09-11T09:12:01+00:00" + "time": "2023-05-15T20:42:18+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.x-dev", + "version": "1.5.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "71b12f952d8be69a239989db2fe08314a5189e3b" + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/71b12f952d8be69a239989db2fe08314a5189e3b", - "reference": "71b12f952d8be69a239989db2fe08314a5189e3b", + "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "php": ">=5.5" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, "autoload": { + "files": [ + "src/functions_include.php" + ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -350,26 +352,26 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:15:36+00:00" + "time": "2023-05-21T12:31:43+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.x-dev", + "version": "2.4.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "38ef514a6c21335f29d9be64b097d2582ecbf8e4" + "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/38ef514a6c21335f29d9be64b097d2582ecbf8e4", - "reference": "38ef514a6c21335f29d9be64b097d2582ecbf8e4", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/0454e12ef0cd597ccd2adb036f7bda4e7fface66", + "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.1 || ^2.0", + "psr/http-message": "^1.0", "ralouphie/getallheaders": "^3.0" }, "provide": { @@ -462,7 +464,7 @@ "type": "tidelift" } ], - "time": "2023-09-10T16:11:14+00:00" + "time": "2023-04-17T16:00:45+00:00" }, { "name": "jakeasmith/http_build_url", @@ -608,21 +610,21 @@ "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", + "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -637,7 +639,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "homepage": "http://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -650,7 +652,10 @@ "request", "response" ], - "time": "2023-04-04T09:54:51+00:00" + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2019-08-29T13:16:46+00:00" }, { "name": "ralouphie/getallheaders", @@ -698,16 +703,16 @@ }, { "name": "servebolt/sdk", - "version": "1.2.2", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/Servebolt/php-sdk.git", - "reference": "e97d1f71303dd485c0b15055d3ae7fc63eaa7c84" + "reference": "706066388b2d34a9dbbfcbaa24d961150bb44778" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Servebolt/php-sdk/zipball/e97d1f71303dd485c0b15055d3ae7fc63eaa7c84", - "reference": "e97d1f71303dd485c0b15055d3ae7fc63eaa7c84", + "url": "https://api.github.com/repos/Servebolt/php-sdk/zipball/706066388b2d34a9dbbfcbaa24d961150bb44778", + "reference": "706066388b2d34a9dbbfcbaa24d961150bb44778", "shasum": "" }, "require": { @@ -749,7 +754,7 @@ ], "description": "A PHP SDK for communicating with the Servebolt API.", "homepage": "https://servebolt.com", - "time": "2023-03-23T08:20:21+00:00" + "time": "2023-11-03T10:25:06+00:00" }, { "name": "symfony/deprecation-contracts", @@ -757,12 +762,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d" + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "shasum": "" }, "require": { @@ -816,7 +821,7 @@ "type": "tidelift" } ], - "time": "2023-01-24T14:02:46+00:00" + "time": "2022-01-02T09:53:40+00:00" } ], "packages-dev": [ @@ -897,12 +902,12 @@ "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "1d09200268e7d1052ded8e5da9c73c96a63d18f5" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/1d09200268e7d1052ded8e5da9c73c96a63d18f5", - "reference": "1d09200268e7d1052ded8e5da9c73c96a63d18f5", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { @@ -952,9 +957,9 @@ "versioning" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", + "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/main" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -970,7 +975,7 @@ "type": "tidelift" } ], - "time": "2023-08-31T12:20:31+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/xdebug-handler", @@ -1040,38 +1045,35 @@ }, { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.0.0", + "version": "v0.7.2", "source": { "type": "git", - "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "4be43904336affa5c2f70744a348312336afd0da" + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", - "reference": "4be43904336affa5c2f70744a348312336afd0da", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", "shasum": "" }, "require": { "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.4", + "php": ">=5.3", "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" }, "require-dev": { "composer/composer": "*", - "ext-json": "*", - "ext-zip": "*", "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0", - "yoast/phpunit-polyfills": "^1.0" + "phpcompatibility/php-compatibility": "^9.0" }, "type": "composer-plugin", "extra": { - "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, "autoload": { "psr-4": { - "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1087,7 +1089,7 @@ }, { "name": "Contributors", - "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", @@ -1111,57 +1113,10 @@ "tests" ], "support": { - "issues": "https://github.com/PHPCSStandards/composer-installer/issues", - "source": "https://github.com/PHPCSStandards/composer-installer" - }, - "time": "2023-01-05T11:28:13+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" }, - "time": "2023-09-27T20:04:15+00:00" + "time": "2022-02-04T12:51:07+00:00" }, { "name": "doctrine/instantiator", @@ -1169,26 +1124,26 @@ "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^11", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -1215,7 +1170,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.x" }, "funding": [ { @@ -1231,7 +1186,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -1329,12 +1284,12 @@ "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/202aaf6b7c2e1e0a622b0298e9f3f537e4d84018", - "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { @@ -1342,12 +1297,11 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -1373,7 +1327,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.x" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, "funding": [ { @@ -1381,7 +1335,7 @@ "type": "tidelift" } ], - "time": "2023-11-01T08:01:43+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "n98/junit-xml", @@ -1425,16 +1379,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v4.2.0", + "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" + "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", "shasum": "" }, "require": { @@ -1470,9 +1424,9 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" }, - "time": "2023-04-09T17:37:40+00:00" + "time": "2020-12-01T19:48:11+00:00" }, { "name": "overtrue/phplint", @@ -1737,17 +1691,17 @@ "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", - "reference": "302dffedd8f1acfc0ed5c7ee096ea2237553ae1a" + "reference": "770abd79ec9ead201757c55af101387a922bb535" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/302dffedd8f1acfc0ed5c7ee096ea2237553ae1a", - "reference": "302dffedd8f1acfc0ed5c7ee096ea2237553ae1a", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/770abd79ec9ead201757c55af101387a922bb535", + "reference": "770abd79ec9ead201757c55af101387a922bb535", "shasum": "" }, "require": { "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0.5", + "phpcsstandards/phpcsutils": "^1.0", "squizlabs/php_codesniffer": "^3.7.1" }, "replace": { @@ -1758,8 +1712,8 @@ "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcsstandards/phpcsdevcs": "^1.1.3", "phpcsstandards/phpcsdevtools": "^1.2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4 || ^10.1.0", - "yoast/phpunit-polyfills": "^1.0.5 || ^2.0.0" + "phpunit/phpunit": "^4.8 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4", + "yoast/phpunit-polyfills": "^1.0" }, "suggest": { "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." @@ -1803,7 +1757,7 @@ "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", "source": "https://github.com/PHPCompatibility/PHPCompatibility" }, - "time": "2023-09-13T12:40:15+00:00" + "time": "2022-11-22T00:06:09+00:00" }, { "name": "phpcsstandards/phpcsextra", @@ -1811,24 +1765,24 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", - "reference": "746c3190ba8eb2f212087c947ba75f4f5b9a58d5" + "reference": "cecabbdb9aca2df19fdbe859b70e92d28f45988b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/746c3190ba8eb2f212087c947ba75f4f5b9a58d5", - "reference": "746c3190ba8eb2f212087c947ba75f4f5b9a58d5", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/cecabbdb9aca2df19fdbe859b70e92d28f45988b", + "reference": "cecabbdb9aca2df19fdbe859b70e92d28f45988b", "shasum": "" }, "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7", "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0.8", + "phpcsstandards/phpcsutils": "^1.0 || dev-develop", "squizlabs/php_codesniffer": "^3.7.1" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevcs": "^1.1.6", - "phpcsstandards/phpcsdevtools": "^1.2.1", + "phpcsstandards/phpcsdevtools": "^1.2.0", "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0" }, "type": "phpcodesniffer-standard", @@ -1866,7 +1820,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", "source": "https://github.com/PHPCSStandards/PHPCSExtra" }, - "time": "2023-09-20T22:06:18+00:00" + "time": "2022-11-14T01:39:57+00:00" }, { "name": "phpcsstandards/phpcsutils", @@ -1874,16 +1828,16 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", - "reference": "77a6aa4e6abc437eb0cb71702c1a635655a33af8" + "reference": "ad3207d6a8053d755d166f6184dd22d50ff2d305" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/77a6aa4e6abc437eb0cb71702c1a635655a33af8", - "reference": "77a6aa4e6abc437eb0cb71702c1a635655a33af8", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/ad3207d6a8053d755d166f6184dd22d50ff2d305", + "reference": "ad3207d6a8053d755d166f6184dd22d50ff2d305", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7", "php": ">=5.4", "squizlabs/php_codesniffer": "^3.7.1 || 4.0.x-dev@dev" }, @@ -1891,8 +1845,9 @@ "ext-filter": "*", "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevcs": "^1.1.6", - "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0" + "phpcsstandards/phpcsdevcs": "^1.1.3", + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.3", + "yoast/phpunit-polyfills": "^1.0.1" }, "type": "phpcodesniffer-standard", "extra": { @@ -1939,7 +1894,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", "source": "https://github.com/PHPCSStandards/PHPCSUtils" }, - "time": "2023-09-13T20:12:39+00:00" + "time": "2022-11-12T14:05:05+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -2000,12 +1955,12 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "c86c8d449b863bdaed15861a32dc4c50f8e3a832" + "reference": "566af9fb94c556de91562fcfcbc392f66680111b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/c86c8d449b863bdaed15861a32dc4c50f8e3a832", - "reference": "c86c8d449b863bdaed15861a32dc4c50f8e3a832", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/566af9fb94c556de91562fcfcbc392f66680111b", + "reference": "566af9fb94c556de91562fcfcbc392f66680111b", "shasum": "" }, "require": { @@ -2055,7 +2010,7 @@ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" }, - "time": "2023-10-13T06:34:03+00:00" + "time": "2022-11-19T20:28:46+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -2063,16 +2018,15 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "181f43ae2f4afbbdd9426dc0fd8db0444439a033" + "reference": "2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/181f43ae2f4afbbdd9426dc0fd8db0444439a033", - "reference": "181f43ae2f4afbbdd9426dc0fd8db0444439a033", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2", + "reference": "2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.0", "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0", "phpstan/phpdoc-parser": "^1.13" @@ -2113,7 +2067,7 @@ "issues": "https://github.com/phpDocumentor/TypeResolver/issues", "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.x" }, - "time": "2023-10-13T06:37:27+00:00" + "time": "2022-11-19T20:09:31+00:00" }, { "name": "phpspec/prophecy", @@ -2121,25 +2075,24 @@ "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "098f8850e4bd800b7734c65b2c8c10b28d87f10e" + "reference": "2d558313f0272a637b96c1abf3f3fbb5efb0d4e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/098f8850e4bd800b7734c65b2c8c10b28d87f10e", - "reference": "098f8850e4bd800b7734c65b2c8c10b28d87f10e", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/2d558313f0272a637b96c1abf3f3fbb5efb0d4e5", + "reference": "2d558313f0272a637b96c1abf3f3fbb5efb0d4e5", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2 || ^2.0", + "doctrine/instantiator": "^1.2", "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0 || ^5.0", - "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0" + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { "phpspec/phpspec": "^6.0 || ^7.0", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { @@ -2172,7 +2125,6 @@ "keywords": [ "Double", "Dummy", - "dev", "fake", "mock", "spy", @@ -2182,28 +2134,26 @@ "issues": "https://github.com/phpspec/prophecy/issues", "source": "https://github.com/phpspec/prophecy/tree/master" }, - "time": "2023-08-31T13:58:35+00:00" + "time": "2022-11-30T09:23:31+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.2", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "bcad8d995980440892759db0c32acae7c8e79442" + "reference": "df1a79430e14e30cd192fe6c05842133d076e58d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", - "reference": "bcad8d995980440892759db0c32acae7c8e79442", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/df1a79430e14e30cd192fe6c05842133d076e58d", + "reference": "df1a79430e14e30cd192fe6c05842133d076e58d", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.5", @@ -2227,9 +2177,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.14.0" }, - "time": "2023-09-26T12:28:12+00:00" + "time": "2022-11-27T19:09:16+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2909,12 +2859,12 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae" + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae", - "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { @@ -2967,7 +2917,7 @@ "type": "github" } ], - "time": "2023-05-07T05:30:20+00:00" + "time": "2020-11-30T07:59:04+00:00" }, { "name": "sebastian/environment", @@ -3444,12 +3394,12 @@ "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "7763e2e1f773cb0615ed8afa133189fc804f583d" + "reference": "cd5acaa651df870e8a3207926f236400361219e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/7763e2e1f773cb0615ed8afa133189fc804f583d", - "reference": "7763e2e1f773cb0615ed8afa133189fc804f583d", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/cd5acaa651df870e8a3207926f236400361219e0", + "reference": "cd5acaa651df870e8a3207926f236400361219e0", "shasum": "" }, "require": { @@ -3488,7 +3438,12 @@ "standards", "static analysis" ], - "time": "2023-11-02T00:47:31+00:00" + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2022-10-21T05:57:32+00:00" }, { "name": "symfony/console", @@ -3496,12 +3451,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a" + "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/11ac5f154e0e5c4c77af83ad11ead9165280b92a", - "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a", + "url": "https://api.github.com/repos/symfony/console/zipball/8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", + "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", "shasum": "" }, "require": { @@ -3566,7 +3521,7 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command-line", + "command line", "console", "terminal" ], @@ -3587,7 +3542,7 @@ "type": "tidelift" } ], - "time": "2023-10-31T07:58:33+00:00" + "time": "2022-11-25T14:09:27+00:00" }, { "name": "symfony/dotenv", @@ -3595,12 +3550,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458" + "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/ceed2cd28442adcf3679a9a82dacd45baeefc458", - "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", + "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", "shasum": "" }, "require": { @@ -3642,7 +3597,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/5.4" + "source": "https://github.com/symfony/dotenv/tree/v5.4.5" }, "funding": [ { @@ -3658,7 +3613,7 @@ "type": "tidelift" } ], - "time": "2023-10-26T16:37:39+00:00" + "time": "2022-02-15T17:04:12+00:00" }, { "name": "symfony/finder", @@ -3666,12 +3621,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d" + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d", - "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d", + "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", "shasum": "" }, "require": { @@ -3721,20 +3676,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T08:02:31+00:00" + "time": "2022-07-29T07:37:50+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "1.x-dev", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { @@ -3749,7 +3704,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3787,7 +3742,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -3803,20 +3758,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "1.x-dev", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", "shasum": "" }, "require": { @@ -3828,7 +3783,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3868,7 +3823,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" }, "funding": [ { @@ -3884,20 +3839,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "1.x-dev", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "" }, "require": { @@ -3909,7 +3864,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3952,7 +3907,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" }, "funding": [ { @@ -3968,20 +3923,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "1.x-dev", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { @@ -3996,7 +3951,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4035,7 +3990,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -4051,20 +4006,20 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php73", - "version": "1.x-dev", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", - "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", "shasum": "" }, "require": { @@ -4073,7 +4028,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4114,7 +4069,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" }, "funding": [ { @@ -4130,20 +4085,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php80", - "version": "1.x-dev", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "shasum": "" }, "require": { @@ -4152,7 +4107,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4197,7 +4152,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" }, "funding": [ { @@ -4213,7 +4168,7 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/process", @@ -4221,12 +4176,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b" + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", - "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", + "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", "shasum": "" }, "require": { @@ -4275,7 +4230,7 @@ "type": "tidelift" } ], - "time": "2023-08-07T10:36:04+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/service-contracts", @@ -4283,12 +4238,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", - "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "shasum": "" }, "require": { @@ -4358,7 +4313,7 @@ "type": "tidelift" } ], - "time": "2023-04-21T15:04:16+00:00" + "time": "2022-05-30T19:17:29+00:00" }, { "name": "symfony/string", @@ -4366,12 +4321,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d" + "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", - "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", + "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", + "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", "shasum": "" }, "require": { @@ -4428,7 +4383,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/5.4" + "source": "https://github.com/symfony/string/tree/v5.4.15" }, "funding": [ { @@ -4444,7 +4399,7 @@ "type": "tidelift" } ], - "time": "2023-09-13T11:47:41+00:00" + "time": "2022-10-05T15:16:54+00:00" }, { "name": "symfony/var-dumper", @@ -4452,12 +4407,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65" + "reference": "6894d06145fefebd9a4c7272baa026a1c394a430" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6172e4ae3534d25ee9e07eb487c20be7760fcc65", - "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430", + "reference": "6894d06145fefebd9a4c7272baa026a1c394a430", "shasum": "" }, "require": { @@ -4466,12 +4421,12 @@ "symfony/polyfill-php80": "^1.16" }, "conflict": { + "phpunit/phpunit": "<5.4.3", "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", "symfony/console": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0", "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" @@ -4533,7 +4488,7 @@ "type": "tidelift" } ], - "time": "2023-09-12T10:09:58+00:00" + "time": "2022-10-07T08:01:20+00:00" }, { "name": "symfony/yaml", @@ -4541,12 +4496,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "6571eb04b3f4f9e98ded588af23e7a2d27fb1728" + "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6571eb04b3f4f9e98ded588af23e7a2d27fb1728", - "reference": "6571eb04b3f4f9e98ded588af23e7a2d27fb1728", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", + "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", "shasum": "" }, "require": { @@ -4608,7 +4563,7 @@ "type": "tidelift" } ], - "time": "2023-11-01T16:49:00+00:00" + "time": "2022-11-25T16:04:03+00:00" }, { "name": "theseer/tokenizer", @@ -4724,23 +4679,19 @@ "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7" + "reference": "c1c4b64e2466f7911d12ce3a000504bd8dd47461" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7", - "reference": "7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/c1c4b64e2466f7911d12ce3a000504bd8dd47461", + "reference": "c1c4b64e2466f7911d12ce3a000504bd8dd47461", "shasum": "" }, "require": { - "ext-filter": "*", - "ext-libxml": "*", - "ext-tokenizer": "*", - "ext-xmlreader": "*", "php": ">=5.4", - "phpcsstandards/phpcsextra": "^1.1.0", - "phpcsstandards/phpcsutils": "^1.0.8", - "squizlabs/php_codesniffer": "^3.7.2" + "phpcsstandards/phpcsextra": "^1.0", + "phpcsstandards/phpcsutils": "^1.0", + "squizlabs/php_codesniffer": "^3.7.1" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", @@ -4749,10 +4700,6 @@ "phpcsstandards/phpcsdevtools": "^1.2.0", "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, - "suggest": { - "ext-iconv": "For improved results", - "ext-mbstring": "For improved results" - }, "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4776,26 +4723,20 @@ "source": "https://github.com/WordPress/WordPress-Coding-Standards", "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" }, - "funding": [ - { - "url": "https://opencollective.com/thewpcc/contribute/wp-php-63406", - "type": "custom" - } - ], - "time": "2023-09-20T23:16:50+00:00" + "time": "2022-11-26T11:52:05+00:00" }, { "name": "yoast/phpunit-polyfills", - "version": "1.x-dev", + "version": "dev-develop", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "f1f7e15daf4f0e7225757ff902322df6d47c1385" + "reference": "3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/f1f7e15daf4f0e7225757ff902322df6d47c1385", - "reference": "f1f7e15daf4f0e7225757ff902322df6d47c1385", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c", + "reference": "3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c", "shasum": "" }, "require": { @@ -4803,12 +4744,13 @@ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "require-dev": { - "yoast/yoastcs": "^2.3.0" + "yoast/yoastcs": "^2.2.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-main": "1.x-dev", + "dev-develop": "1.x-dev" } }, "autoload": { @@ -4842,7 +4784,7 @@ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2023-09-27T10:45:26+00:00" + "time": "2022-11-16T09:07:52+00:00" } ], "aliases": [], diff --git a/src/Servebolt/Admin/LogViewer/LogViewer.php b/src/Servebolt/Admin/LogViewer/LogViewer.php index 8445f4c2..ec7c72ef 100644 --- a/src/Servebolt/Admin/LogViewer/LogViewer.php +++ b/src/Servebolt/Admin/LogViewer/LogViewer.php @@ -30,9 +30,9 @@ class LogViewer private function getErrorLogPath(): string { $logDir = str_replace('/public', '/logs', $_SERVER['DOCUMENT_ROOT']); - if(isNextGen()) { - $logDir = str_replace('/site/public', '/logs/php', $_SERVER['DOCUMENT_ROOT']); - } + // if(isNextGen()) { + // $logDir = str_replace('/site/public', '/logs/php', $_SERVER['DOCUMENT_ROOT']); + // } $logFilePath = $logDir . '/ErrorLog'; return (string) apply_filters('sb_optimizer_log_file_path', $logFilePath); } diff --git a/src/Servebolt/Utils/EnvFile/Reader.php b/src/Servebolt/Utils/EnvFile/Reader.php index cce090b3..cc6a42f9 100644 --- a/src/Servebolt/Utils/EnvFile/Reader.php +++ b/src/Servebolt/Utils/EnvFile/Reader.php @@ -267,19 +267,28 @@ private function attemptToLocateFile($fileName) */ private function locateFolderPathFromDefaultPath($searchFolderPath) { - $subdir = ''; - $regex = $this->legacyFolderLocateRegex; - // if it begins with /cust/ its next gen and needs to have home appended to the path. - if (isNextGen($searchFolderPath)) { - $subdir = 'home/'; - $regex = $this->nextGenFolderLocateRegex; - } + // $subdir = ''; + // $regex = $this->legacyFolderLocateRegex; + // // if it begins with /cust/ its next gen and needs to have home appended to the path. + // if (isNextGen($searchFolderPath)) { + // $subdir = 'home/'; + // $regex = $this->nextGenFolderLocateRegex; + // } + // if ( + // preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $regex), $searchFolderPath, $matches) + // && isset($matches[1]) + // && !empty($matches[1]) + // ) { + // return trailingslashit($matches[1]) . $subdir; + // } + // return false; + if ( - preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $regex), $searchFolderPath, $matches) + preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $this->folderLocateRegex), $searchFolderPath, $matches) && isset($matches[1]) && !empty($matches[1]) ) { - return trailingslashit($matches[1]) . $subdir; + return trailingslashit($matches[1]); } return false; } From d7560dda56fa89312603cbca616791ac6db57660 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Mon, 6 Nov 2023 15:23:39 +0100 Subject: [PATCH 07/18] fixed problem with unit tests, rebuilt composer.lock, moved to composer v2 bulid. --- README.md | 3 +- composer.lock | 557 +++++++++++------- src/Servebolt/Admin/LogViewer/LogViewer.php | 6 +- .../WordPressCachePurge.php | 2 +- src/Servebolt/Utils/EnvFile/Reader.php | 27 +- 5 files changed, 352 insertions(+), 243 deletions(-) diff --git a/README.md b/README.md index e939fd0c..3fbf0d56 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,8 @@ Credentials for the SVN repository is stored in the password manager. The creden If you want to build a local production-ready version of the plugin you can run the command `composer local-build`. When the command has executed you should have a file in the project root path called `servebolt-optimizer.zip` which contains the plugin prepared the same way as when it is shipped to WordPress.org. ## Changelog - +#### 3.5.25 +* Allows for NextGen servers to be supported. #### 3.5.24 * fixed small bug of missing save button on advanced tab of new installs * proven support for 6.3.1 diff --git a/composer.lock b/composer.lock index 2eb729a2..b8423551 100644 --- a/composer.lock +++ b/composer.lock @@ -160,22 +160,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.5.x-dev", + "version": "7.9.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "584d1f06b5caa07b0587f5054d551ed65460ce5d" + "reference": "d95d9ab74822c2ca06b31477cd6775a4a299b8e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/584d1f06b5caa07b0587f5054d551ed65460ce5d", - "reference": "584d1f06b5caa07b0587f5054d551ed65460ce5d", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d95d9ab74822c2ca06b31477cd6775a4a299b8e8", + "reference": "d95d9ab74822c2ca06b31477cd6775a4a299b8e8", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -186,7 +186,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, @@ -263,6 +264,10 @@ "rest", "web service" ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.8" + }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -277,33 +282,38 @@ "type": "tidelift" } ], - "time": "2023-05-15T20:42:18+00:00" + "time": "2023-09-11T09:12:01+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.x-dev", + "version": "2.0.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" + "reference": "71b12f952d8be69a239989db2fe08314a5189e3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", + "url": "https://api.github.com/repos/guzzle/promises/zipball/71b12f952d8be69a239989db2fe08314a5189e3b", + "reference": "71b12f952d8be69a239989db2fe08314a5189e3b", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, + "default-branch": true, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -338,6 +348,10 @@ "keywords": [ "promise" ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0" + }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -352,26 +366,26 @@ "type": "tidelift" } ], - "time": "2023-05-21T12:31:43+00:00" + "time": "2023-08-27T10:15:36+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.4.x-dev", + "version": "2.6.x-dev", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66" + "reference": "38ef514a6c21335f29d9be64b097d2582ecbf8e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/0454e12ef0cd597ccd2adb036f7bda4e7fface66", - "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/38ef514a6c21335f29d9be64b097d2582ecbf8e4", + "reference": "38ef514a6c21335f29d9be64b097d2582ecbf8e4", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", + "psr/http-message": "^1.1 || ^2.0", "ralouphie/getallheaders": "^3.0" }, "provide": { @@ -386,6 +400,7 @@ "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, + "default-branch": true, "type": "library", "extra": { "bamarni-bin": { @@ -450,6 +465,10 @@ "uri", "url" ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6" + }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -464,7 +483,7 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:00:45+00:00" + "time": "2023-09-10T16:11:14+00:00" }, { "name": "jakeasmith/http_build_url", @@ -521,6 +540,7 @@ "php": "^7.0 || ^8.0", "psr/http-message": "^1.0 || ^2.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -550,6 +570,9 @@ "psr", "psr-18" ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, "time": "2023-09-23T14:17:50+00:00" }, { @@ -570,6 +593,7 @@ "php": ">=7.0.0", "psr/http-message": "^1.0 || ^2.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -602,6 +626,9 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, "time": "2023-09-22T11:16:44+00:00" }, { @@ -610,21 +637,22 @@ "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", - "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -639,7 +667,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -653,9 +681,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2019-08-29T13:16:46+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "ralouphie/getallheaders", @@ -754,6 +782,10 @@ ], "description": "A PHP SDK for communicating with the Servebolt API.", "homepage": "https://servebolt.com", + "support": { + "issues": "https://github.com/Servebolt/php-sdk/issues", + "source": "https://github.com/Servebolt/php-sdk/tree/1.2.4" + }, "time": "2023-11-03T10:25:06+00:00" }, { @@ -762,12 +794,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "80d075412b557d41002320b96a096ca65aa2c98d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", + "reference": "80d075412b557d41002320b96a096ca65aa2c98d", "shasum": "" }, "require": { @@ -821,7 +853,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-01-24T14:02:46+00:00" } ], "packages-dev": [ @@ -902,12 +934,12 @@ "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "1d09200268e7d1052ded8e5da9c73c96a63d18f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/1d09200268e7d1052ded8e5da9c73c96a63d18f5", + "reference": "1d09200268e7d1052ded8e5da9c73c96a63d18f5", "shasum": "" }, "require": { @@ -917,6 +949,7 @@ "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -957,9 +990,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/main" }, "funding": [ { @@ -975,7 +1008,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T12:20:31+00:00" }, { "name": "composer/xdebug-handler", @@ -1045,35 +1078,38 @@ }, { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.2", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", "shasum": "" }, "require": { "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3", + "php": ">=5.4", "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" }, "require-dev": { "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0" + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, "autoload": { "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1089,7 +1125,7 @@ }, { "name": "Contributors", - "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", @@ -1113,10 +1149,58 @@ "tests" ], "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" }, - "time": "2022-02-04T12:51:07+00:00" + "time": "2023-01-05T11:28:13+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + }, + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/instantiator", @@ -1124,26 +1208,26 @@ "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -1170,7 +1254,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.x" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -1186,7 +1270,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -1284,12 +1368,12 @@ "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/202aaf6b7c2e1e0a622b0298e9f3f537e4d84018", + "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018", "shasum": "" }, "require": { @@ -1297,13 +1381,15 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, + "default-branch": true, "type": "library", "autoload": { "files": [ @@ -1327,7 +1413,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.x" }, "funding": [ { @@ -1335,7 +1421,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-11-01T08:01:43+00:00" }, { "name": "n98/junit-xml", @@ -1379,16 +1465,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v4.0.0", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", "shasum": "" }, "require": { @@ -1424,9 +1510,9 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" }, - "time": "2020-12-01T19:48:11+00:00" + "time": "2023-04-09T17:37:40+00:00" }, { "name": "overtrue/phplint", @@ -1691,17 +1777,17 @@ "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", - "reference": "770abd79ec9ead201757c55af101387a922bb535" + "reference": "302dffedd8f1acfc0ed5c7ee096ea2237553ae1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/770abd79ec9ead201757c55af101387a922bb535", - "reference": "770abd79ec9ead201757c55af101387a922bb535", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/302dffedd8f1acfc0ed5c7ee096ea2237553ae1a", + "reference": "302dffedd8f1acfc0ed5c7ee096ea2237553ae1a", "shasum": "" }, "require": { "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0", + "phpcsstandards/phpcsutils": "^1.0.5", "squizlabs/php_codesniffer": "^3.7.1" }, "replace": { @@ -1712,12 +1798,13 @@ "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcsstandards/phpcsdevcs": "^1.1.3", "phpcsstandards/phpcsdevtools": "^1.2.0", - "phpunit/phpunit": "^4.8 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4", - "yoast/phpunit-polyfills": "^1.0" + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4 || ^10.1.0", + "yoast/phpunit-polyfills": "^1.0.5 || ^2.0.0" }, "suggest": { "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." }, + "default-branch": true, "type": "phpcodesniffer-standard", "extra": { "branch-alias": { @@ -1757,7 +1844,7 @@ "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", "source": "https://github.com/PHPCompatibility/PHPCompatibility" }, - "time": "2022-11-22T00:06:09+00:00" + "time": "2023-09-13T12:40:15+00:00" }, { "name": "phpcsstandards/phpcsextra", @@ -1765,26 +1852,27 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", - "reference": "cecabbdb9aca2df19fdbe859b70e92d28f45988b" + "reference": "746c3190ba8eb2f212087c947ba75f4f5b9a58d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/cecabbdb9aca2df19fdbe859b70e92d28f45988b", - "reference": "cecabbdb9aca2df19fdbe859b70e92d28f45988b", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/746c3190ba8eb2f212087c947ba75f4f5b9a58d5", + "reference": "746c3190ba8eb2f212087c947ba75f4f5b9a58d5", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7", "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0 || dev-develop", + "phpcsstandards/phpcsutils": "^1.0.8", "squizlabs/php_codesniffer": "^3.7.1" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevtools": "^1.2.0", + "phpcsstandards/phpcsdevcs": "^1.1.6", + "phpcsstandards/phpcsdevtools": "^1.2.1", "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0" }, + "default-branch": true, "type": "phpcodesniffer-standard", "extra": { "branch-alias": { @@ -1820,7 +1908,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", "source": "https://github.com/PHPCSStandards/PHPCSExtra" }, - "time": "2022-11-14T01:39:57+00:00" + "time": "2023-09-20T22:06:18+00:00" }, { "name": "phpcsstandards/phpcsutils", @@ -1828,16 +1916,16 @@ "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", - "reference": "ad3207d6a8053d755d166f6184dd22d50ff2d305" + "reference": "77a6aa4e6abc437eb0cb71702c1a635655a33af8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/ad3207d6a8053d755d166f6184dd22d50ff2d305", - "reference": "ad3207d6a8053d755d166f6184dd22d50ff2d305", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/77a6aa4e6abc437eb0cb71702c1a635655a33af8", + "reference": "77a6aa4e6abc437eb0cb71702c1a635655a33af8", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7", + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", "php": ">=5.4", "squizlabs/php_codesniffer": "^3.7.1 || 4.0.x-dev@dev" }, @@ -1845,10 +1933,10 @@ "ext-filter": "*", "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevcs": "^1.1.3", - "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.3", - "yoast/phpunit-polyfills": "^1.0.1" + "phpcsstandards/phpcsdevcs": "^1.1.6", + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0" }, + "default-branch": true, "type": "phpcodesniffer-standard", "extra": { "branch-alias": { @@ -1894,7 +1982,7 @@ "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", "source": "https://github.com/PHPCSStandards/PHPCSUtils" }, - "time": "2022-11-12T14:05:05+00:00" + "time": "2023-09-13T20:12:39+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -1955,12 +2043,12 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "566af9fb94c556de91562fcfcbc392f66680111b" + "reference": "c86c8d449b863bdaed15861a32dc4c50f8e3a832" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/566af9fb94c556de91562fcfcbc392f66680111b", - "reference": "566af9fb94c556de91562fcfcbc392f66680111b", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/c86c8d449b863bdaed15861a32dc4c50f8e3a832", + "reference": "c86c8d449b863bdaed15861a32dc4c50f8e3a832", "shasum": "" }, "require": { @@ -1980,6 +2068,7 @@ "phpunit/phpunit": "^9.5", "vimeo/psalm": "^4.26" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -2010,7 +2099,7 @@ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" }, - "time": "2022-11-19T20:28:46+00:00" + "time": "2023-10-13T06:34:03+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -2018,15 +2107,16 @@ "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2" + "reference": "181f43ae2f4afbbdd9426dc0fd8db0444439a033" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2", - "reference": "2dc9aff0e6ca4e4600355c68c4a38bfaeccf54e2", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/181f43ae2f4afbbdd9426dc0fd8db0444439a033", + "reference": "181f43ae2f4afbbdd9426dc0fd8db0444439a033", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.0", "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0", "phpstan/phpdoc-parser": "^1.13" @@ -2041,6 +2131,7 @@ "rector/rector": "^0.13.9", "vimeo/psalm": "^4.25" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -2067,7 +2158,7 @@ "issues": "https://github.com/phpDocumentor/TypeResolver/issues", "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.x" }, - "time": "2022-11-19T20:09:31+00:00" + "time": "2023-10-13T06:37:27+00:00" }, { "name": "phpspec/prophecy", @@ -2075,25 +2166,27 @@ "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "2d558313f0272a637b96c1abf3f3fbb5efb0d4e5" + "reference": "098f8850e4bd800b7734c65b2c8c10b28d87f10e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/2d558313f0272a637b96c1abf3f3fbb5efb0d4e5", - "reference": "2d558313f0272a637b96c1abf3f3fbb5efb0d4e5", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/098f8850e4bd800b7734c65b2c8c10b28d87f10e", + "reference": "098f8850e4bd800b7734c65b2c8c10b28d87f10e", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", + "doctrine/instantiator": "^1.2 || ^2.0", "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0" }, "require-dev": { "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -2125,6 +2218,7 @@ "keywords": [ "Double", "Dummy", + "dev", "fake", "mock", "spy", @@ -2134,26 +2228,28 @@ "issues": "https://github.com/phpspec/prophecy/issues", "source": "https://github.com/phpspec/prophecy/tree/master" }, - "time": "2022-11-30T09:23:31+00:00" + "time": "2023-08-31T13:58:35+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.14.0", + "version": "1.24.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "df1a79430e14e30cd192fe6c05842133d076e58d" + "reference": "bcad8d995980440892759db0c32acae7c8e79442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/df1a79430e14e30cd192fe6c05842133d076e58d", - "reference": "df1a79430e14e30cd192fe6c05842133d076e58d", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", + "reference": "bcad8d995980440892759db0c32acae7c8e79442", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.5", @@ -2177,9 +2273,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.14.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" }, - "time": "2022-11-27T19:09:16+00:00" + "time": "2023-09-26T12:28:12+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2859,12 +2955,12 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae", + "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae", "shasum": "" }, "require": { @@ -2917,7 +3013,7 @@ "type": "github" } ], - "time": "2020-11-30T07:59:04+00:00" + "time": "2023-05-07T05:30:20+00:00" }, { "name": "sebastian/environment", @@ -3394,12 +3490,12 @@ "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "cd5acaa651df870e8a3207926f236400361219e0" + "reference": "7763e2e1f773cb0615ed8afa133189fc804f583d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/cd5acaa651df870e8a3207926f236400361219e0", - "reference": "cd5acaa651df870e8a3207926f236400361219e0", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/7763e2e1f773cb0615ed8afa133189fc804f583d", + "reference": "7763e2e1f773cb0615ed8afa133189fc804f583d", "shasum": "" }, "require": { @@ -3411,6 +3507,7 @@ "require-dev": { "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "default-branch": true, "bin": [ "bin/phpcs", "bin/phpcbf" @@ -3443,7 +3540,7 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2022-10-21T05:57:32+00:00" + "time": "2023-11-02T00:47:31+00:00" }, { "name": "symfony/console", @@ -3451,12 +3548,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" + "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", - "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", + "url": "https://api.github.com/repos/symfony/console/zipball/11ac5f154e0e5c4c77af83ad11ead9165280b92a", + "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a", "shasum": "" }, "require": { @@ -3521,7 +3618,7 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], @@ -3542,7 +3639,7 @@ "type": "tidelift" } ], - "time": "2022-11-25T14:09:27+00:00" + "time": "2023-10-31T07:58:33+00:00" }, { "name": "symfony/dotenv", @@ -3550,12 +3647,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" + "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/ceed2cd28442adcf3679a9a82dacd45baeefc458", + "reference": "ceed2cd28442adcf3679a9a82dacd45baeefc458", "shasum": "" }, "require": { @@ -3597,7 +3694,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.4.5" + "source": "https://github.com/symfony/dotenv/tree/5.4" }, "funding": [ { @@ -3613,7 +3710,7 @@ "type": "tidelift" } ], - "time": "2022-02-15T17:04:12+00:00" + "time": "2023-10-26T16:37:39+00:00" }, { "name": "symfony/finder", @@ -3621,12 +3718,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d", + "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d", "shasum": "" }, "require": { @@ -3676,20 +3773,20 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2023-07-31T08:02:31+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -3701,10 +3798,11 @@ "suggest": { "ext-ctype": "For best performance" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3742,7 +3840,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -3758,20 +3856,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -3780,10 +3878,11 @@ "suggest": { "ext-intl": "For best performance" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3823,7 +3922,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -3839,20 +3938,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -3861,10 +3960,11 @@ "suggest": { "ext-intl": "For best performance" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3907,7 +4007,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -3923,20 +4023,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -3948,10 +4048,11 @@ "suggest": { "ext-mbstring": "For best performance" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3990,7 +4091,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -4006,29 +4107,30 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php73", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { "php": ">=7.1" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4069,7 +4171,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -4085,29 +4187,30 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php80", - "version": "dev-main", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { "php": ">=7.1" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4152,7 +4255,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -4168,7 +4271,7 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/process", @@ -4176,12 +4279,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", + "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", "shasum": "" }, "require": { @@ -4230,7 +4333,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2023-08-07T10:36:04+00:00" }, { "name": "symfony/service-contracts", @@ -4238,12 +4341,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", "shasum": "" }, "require": { @@ -4313,7 +4416,7 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-04-21T15:04:16+00:00" }, { "name": "symfony/string", @@ -4321,12 +4424,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" + "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", - "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", + "url": "https://api.github.com/repos/symfony/string/zipball/e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", + "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d", "shasum": "" }, "require": { @@ -4383,7 +4486,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.15" + "source": "https://github.com/symfony/string/tree/5.4" }, "funding": [ { @@ -4399,7 +4502,7 @@ "type": "tidelift" } ], - "time": "2022-10-05T15:16:54+00:00" + "time": "2023-09-13T11:47:41+00:00" }, { "name": "symfony/var-dumper", @@ -4407,12 +4510,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430" + "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6172e4ae3534d25ee9e07eb487c20be7760fcc65", + "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65", "shasum": "" }, "require": { @@ -4421,12 +4524,12 @@ "symfony/polyfill-php80": "^1.16" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0", "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" @@ -4488,7 +4591,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:01:20+00:00" + "time": "2023-09-12T10:09:58+00:00" }, { "name": "symfony/yaml", @@ -4496,12 +4599,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298" + "reference": "f387675d7f5fc4231f7554baa70681f222f73563" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", - "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f387675d7f5fc4231f7554baa70681f222f73563", + "reference": "f387675d7f5fc4231f7554baa70681f222f73563", "shasum": "" }, "require": { @@ -4563,7 +4666,7 @@ "type": "tidelift" } ], - "time": "2022-11-25T16:04:03+00:00" + "time": "2023-11-03T14:41:28+00:00" }, { "name": "theseer/tokenizer", @@ -4679,19 +4782,23 @@ "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "c1c4b64e2466f7911d12ce3a000504bd8dd47461" + "reference": "7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/c1c4b64e2466f7911d12ce3a000504bd8dd47461", - "reference": "c1c4b64e2466f7911d12ce3a000504bd8dd47461", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7", + "reference": "7722c0b8a6f4eb615be4ba8ebe22ed92a5fa87d7", "shasum": "" }, "require": { + "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", "php": ">=5.4", - "phpcsstandards/phpcsextra": "^1.0", - "phpcsstandards/phpcsutils": "^1.0", - "squizlabs/php_codesniffer": "^3.7.1" + "phpcsstandards/phpcsextra": "^1.1.0", + "phpcsstandards/phpcsutils": "^1.0.8", + "squizlabs/php_codesniffer": "^3.7.2" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", @@ -4700,6 +4807,11 @@ "phpcsstandards/phpcsdevtools": "^1.2.0", "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "suggest": { + "ext-iconv": "For improved results", + "ext-mbstring": "For improved results" + }, + "default-branch": true, "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4723,20 +4835,26 @@ "source": "https://github.com/WordPress/WordPress-Coding-Standards", "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" }, - "time": "2022-11-26T11:52:05+00:00" + "funding": [ + { + "url": "https://opencollective.com/thewpcc/contribute/wp-php-63406", + "type": "custom" + } + ], + "time": "2023-09-20T23:16:50+00:00" }, { "name": "yoast/phpunit-polyfills", - "version": "dev-develop", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c" + "reference": "f1f7e15daf4f0e7225757ff902322df6d47c1385" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c", - "reference": "3c621ff5429d2b1ff96dc5808ad6cde99d31ea4c", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/f1f7e15daf4f0e7225757ff902322df6d47c1385", + "reference": "f1f7e15daf4f0e7225757ff902322df6d47c1385", "shasum": "" }, "require": { @@ -4744,13 +4862,12 @@ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "require-dev": { - "yoast/yoastcs": "^2.2.1" + "yoast/yoastcs": "^2.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev", - "dev-develop": "1.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -4784,7 +4901,7 @@ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2022-11-16T09:07:52+00:00" + "time": "2023-09-27T10:45:26+00:00" } ], "aliases": [], @@ -4802,5 +4919,5 @@ "platform-overrides": { "php": "7.4" }, - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.1.0" } diff --git a/src/Servebolt/Admin/LogViewer/LogViewer.php b/src/Servebolt/Admin/LogViewer/LogViewer.php index ec7c72ef..8445f4c2 100644 --- a/src/Servebolt/Admin/LogViewer/LogViewer.php +++ b/src/Servebolt/Admin/LogViewer/LogViewer.php @@ -30,9 +30,9 @@ class LogViewer private function getErrorLogPath(): string { $logDir = str_replace('/public', '/logs', $_SERVER['DOCUMENT_ROOT']); - // if(isNextGen()) { - // $logDir = str_replace('/site/public', '/logs/php', $_SERVER['DOCUMENT_ROOT']); - // } + if(isNextGen()) { + $logDir = str_replace('/site/public', '/logs/php', $_SERVER['DOCUMENT_ROOT']); + } $logFilePath = $logDir . '/ErrorLog'; return (string) apply_filters('sb_optimizer_log_file_path', $logFilePath); } diff --git a/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php b/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php index 7f951fec..1f397327 100644 --- a/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php +++ b/src/Servebolt/CachePurge/WordPressCachePurge/WordPressCachePurge.php @@ -80,7 +80,7 @@ public static function purgeByUrl(string $url, bool $shouldAttemptToResolvePostI * @return bool */ public static function purgeByUrls(array $urls) - {braces + { if (self::shouldPurgeByQueue()) { $queueInstance = WpObjectQueue::getInstance(); foreach($urls as $url) { diff --git a/src/Servebolt/Utils/EnvFile/Reader.php b/src/Servebolt/Utils/EnvFile/Reader.php index cc6a42f9..cce090b3 100644 --- a/src/Servebolt/Utils/EnvFile/Reader.php +++ b/src/Servebolt/Utils/EnvFile/Reader.php @@ -267,28 +267,19 @@ private function attemptToLocateFile($fileName) */ private function locateFolderPathFromDefaultPath($searchFolderPath) { - // $subdir = ''; - // $regex = $this->legacyFolderLocateRegex; - // // if it begins with /cust/ its next gen and needs to have home appended to the path. - // if (isNextGen($searchFolderPath)) { - // $subdir = 'home/'; - // $regex = $this->nextGenFolderLocateRegex; - // } - // if ( - // preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $regex), $searchFolderPath, $matches) - // && isset($matches[1]) - // && !empty($matches[1]) - // ) { - // return trailingslashit($matches[1]) . $subdir; - // } - // return false; - + $subdir = ''; + $regex = $this->legacyFolderLocateRegex; + // if it begins with /cust/ its next gen and needs to have home appended to the path. + if (isNextGen($searchFolderPath)) { + $subdir = 'home/'; + $regex = $this->nextGenFolderLocateRegex; + } if ( - preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $this->folderLocateRegex), $searchFolderPath, $matches) + preg_match(apply_filters('sb_optimizer_env_file_reader_folder_regex_pattern', $regex), $searchFolderPath, $matches) && isset($matches[1]) && !empty($matches[1]) ) { - return trailingslashit($matches[1]); + return trailingslashit($matches[1]) . $subdir; } return false; } From 9d7fe7e38bd0094d52825d8fe98c8e6587fb9418 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Mon, 6 Nov 2023 16:14:53 +0100 Subject: [PATCH 08/18] adding error checking --- Readme.txt | 3 ++- src/Servebolt/Utils/EnvFile/Reader.php | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Readme.txt b/Readme.txt index 564a19bf..00b59ec4 100644 --- a/Readme.txt +++ b/Readme.txt @@ -3,7 +3,7 @@ Contributors: audunhus, erlendeide, servebolt, andrewkillen Tags: performance, optimization, cache, cloudflare, log, multisite, wp-cli, html cache Donate link: https://servebolt.com Requires at least: 4.9.2 -Tested up to: 6.3.1 +Tested up to: 6.4 Requires PHP: 7.3 Stable tag: 3.5.25 License: GPLv3 or later @@ -99,6 +99,7 @@ If you're a Servebolt client, please reach out to our Support Team and we'll be == Changelog == = 3.5.25 = * Allows for NextGen servers to be supported. +* tested with latest version of WordPress (6.4) = 3.5.24 = * fixed small bug of missing save button on advanced tab of new installs diff --git a/src/Servebolt/Utils/EnvFile/Reader.php b/src/Servebolt/Utils/EnvFile/Reader.php index cce090b3..2d877c99 100644 --- a/src/Servebolt/Utils/EnvFile/Reader.php +++ b/src/Servebolt/Utils/EnvFile/Reader.php @@ -279,6 +279,7 @@ private function locateFolderPathFromDefaultPath($searchFolderPath) && isset($matches[1]) && !empty($matches[1]) ) { + error_log('the path : ' . trailingslashit($matches[1]) . $subdir ); return trailingslashit($matches[1]) . $subdir; } return false; From 8a3697b603bb611df9467986588620784c4a5234 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Fri, 10 Nov 2023 12:27:13 +0100 Subject: [PATCH 09/18] looking for term changes on first save and purging where needed --- .../ContentChangeTrigger.php | 40 +++++++++++++++++++ src/Servebolt/Utils/EnvFile/Reader.php | 3 +- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php index 6cc7cc12..c1943533 100644 --- a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php +++ b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php @@ -30,6 +30,8 @@ public function deregisterEvents(): void remove_action('edit_comment', [$this, 'purgePostOnPublishedCommentEdited'], 99, 2); remove_action('trash_comment', [$this, 'purgePostOnCommentTrashed'], 99, 2); remove_action('untrash_comment', [$this, 'purgePostOnCommentUnTrashed'], 99, 2); + remove_action('wp_insert_post', [$this, 'purgeFirstSave'], 99, 3); + } /** @@ -58,6 +60,11 @@ public function registerEvents() add_action('save_post', [$this, 'purgePostOnSave'], 99, 1); } + // Purge post, focus on updating the category term(s) + if (apply_filters('sb_optimizer_automatic_purge_on_post_first_save', true)) { + add_action('wp_insert_post', [$this, 'purgeFirstSave'], 99, 3); + } + // Purge post on comment post. if (apply_filters('sb_optimizer_automatic_purge_on_comment', true)) { add_action('comment_post', [$this, 'purgePostOnCommentPost'], 99, 3); @@ -85,6 +92,39 @@ public function registerEvents() } + /** + * Double check that the first save purges properly. + * + * On first save, wordpress will save the Category as 'unassigned', to only + * later in the save process save it again as the selected Category. + * + * This method is here + * + * @param $postId The id of the post being saved. + * @param $post the post object. + * @param $update bool, is this updating an existing post. + * + * @return void + */ + public function purgeFirstSave($postId, $post, $update): void + { + // ignore first 2 rounds of saving. they have no value. + if( $post->post_status == 'auto-draft' || $update == false ) return; + // we are only interested in Categories as they set a default cat. + $ids = wp_get_post_terms($postId, 'category', ['fields' => 'ids']); + // ignore empty taxonomies, also ignore error and continue; + if(count($ids) == 0 || is_wp_error($ids)) return; + // Make sure to have the default category so we can ignore it. + $default_category = get_option("default_category"); + // loop all ids and add them. + foreach($ids as $id) { + // don't do anything if its the default. + if($id == $default_category) continue; + + $this->maybePurgeTerm((int) $id, 'category'); + } + } + /** * Purge cache for term on save. * diff --git a/src/Servebolt/Utils/EnvFile/Reader.php b/src/Servebolt/Utils/EnvFile/Reader.php index 2d877c99..b676e9db 100644 --- a/src/Servebolt/Utils/EnvFile/Reader.php +++ b/src/Servebolt/Utils/EnvFile/Reader.php @@ -269,7 +269,7 @@ private function locateFolderPathFromDefaultPath($searchFolderPath) { $subdir = ''; $regex = $this->legacyFolderLocateRegex; - // if it begins with /cust/ its next gen and needs to have home appended to the path. + // if it begins with /cust/ its NextGen and needs to have home appended to the path. if (isNextGen($searchFolderPath)) { $subdir = 'home/'; $regex = $this->nextGenFolderLocateRegex; @@ -279,7 +279,6 @@ private function locateFolderPathFromDefaultPath($searchFolderPath) && isset($matches[1]) && !empty($matches[1]) ) { - error_log('the path : ' . trailingslashit($matches[1]) . $subdir ); return trailingslashit($matches[1]) . $subdir; } return false; From b3a74bc4250763161f90b7ff62373e1ebda94352 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Fri, 10 Nov 2023 13:08:16 +0100 Subject: [PATCH 10/18] readme additions --- README.md | 2 ++ Readme.txt | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3fbf0d56..e23b1585 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,8 @@ If you want to build a local production-ready version of the plugin you can run ## Changelog #### 3.5.25 * Allows for NextGen servers to be supported. +* Using hook wp_insert_post, added default_category check on first save of a post, so that purging on added categories on new posts can be done. +* Tested upto 6.4.1 #### 3.5.24 * fixed small bug of missing save button on advanced tab of new installs * proven support for 6.3.1 diff --git a/Readme.txt b/Readme.txt index 00b59ec4..f1ca0e7f 100644 --- a/Readme.txt +++ b/Readme.txt @@ -3,7 +3,7 @@ Contributors: audunhus, erlendeide, servebolt, andrewkillen Tags: performance, optimization, cache, cloudflare, log, multisite, wp-cli, html cache Donate link: https://servebolt.com Requires at least: 4.9.2 -Tested up to: 6.4 +Tested up to: 6.4.1 Requires PHP: 7.3 Stable tag: 3.5.25 License: GPLv3 or later @@ -99,7 +99,8 @@ If you're a Servebolt client, please reach out to our Support Team and we'll be == Changelog == = 3.5.25 = * Allows for NextGen servers to be supported. -* tested with latest version of WordPress (6.4) +* tested with latest version of WordPress (6.4.1) +* Using hook wp_insert_post, added default_category check on first save of a post, so that purging on added categories on new posts can be done. = 3.5.24 = * fixed small bug of missing save button on advanced tab of new installs From 90cef02011dc24af6553e5de6eae67f7bc480576 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Sun, 12 Nov 2023 11:41:34 +0100 Subject: [PATCH 11/18] purge cat terms on first save only --- .../ContentChangeTrigger.php | 50 +++++++++++-------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php index c1943533..fb53deea 100644 --- a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php +++ b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php @@ -62,7 +62,7 @@ public function registerEvents() // Purge post, focus on updating the category term(s) if (apply_filters('sb_optimizer_automatic_purge_on_post_first_save', true)) { - add_action('wp_insert_post', [$this, 'purgeFirstSave'], 99, 3); + add_action('set_object_terms', [$this, 'purgeCategoryTermsOnFirstSave'], 99, 6); } // Purge post on comment post. @@ -93,35 +93,45 @@ public function registerEvents() } /** - * Double check that the first save purges properly. + * Double check that the first save purges properly for the Category taxonomy. * * On first save, wordpress will save the Category as 'unassigned', to only * later in the save process save it again as the selected Category. * - * This method is here + * This method is here to make sure that first save items always purge + * the categories on post save. * - * @param $postId The id of the post being saved. - * @param $post the post object. - * @param $update bool, is this updating an existing post. + * @param int $object_id The id of the post being saved. + * @param array $terms Array of terms, normally numeric. + * @param array $tt_ids Array of numeric terms. + * @param string $taxonomy The name of the taxonomy. + * @param bool Append terms or replace, replace (false) is default. + * @param array $old_tt_ids Array of numeric terms, the previously saved version. * * @return void */ - public function purgeFirstSave($postId, $post, $update): void + public function purgeCategoryTermsOnFirstSave($object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids): void { - // ignore first 2 rounds of saving. they have no value. - if( $post->post_status == 'auto-draft' || $update == false ) return; - // we are only interested in Categories as they set a default cat. - $ids = wp_get_post_terms($postId, 'category', ['fields' => 'ids']); - // ignore empty taxonomies, also ignore error and continue; - if(count($ids) == 0 || is_wp_error($ids)) return; - // Make sure to have the default category so we can ignore it. - $default_category = get_option("default_category"); + // Check if the taxonomy is 'category' and has required values. exit early. + if ( $taxonomy !== 'category' || (isset($terms[0]) && isset($old_tt_ids[0])) === false ) return; + // check if values match up, that we are only dealing with the default category in the correct way. + $default_category = get_option("default_category"); + if( + (count($tt_ids) == 1 && $tt_ids[0] == $default_category) || + (count($old_tt_ids) == 1 && $old_tt_ids[0] != $default_category) + ) return; + // Check if the post is old or new by comparing GMT datestamp values. They should equal each other, + // thus checking for inequality. + $post = get_post($object_id); + if($post->post_date_gmt !== $post->post_modified_gmt) return; // loop all ids and add them. - foreach($ids as $id) { - // don't do anything if its the default. - if($id == $default_category) continue; - - $this->maybePurgeTerm((int) $id, 'category'); + foreach($tt_ids as $term_id) { + // don't do anything if its the default. It should never have to do this + // but just in case it does, better not to set an extra purge event. + if($term_id == $default_category) continue; + error_log("I'm puring $term_id "); + // the $taxonomy will always be 'category' + $this->maybePurgeTerm((int) $term_id, $taxonomy); } } From 34620b7098c30b0dd5cde4ad5291641316021265 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Sun, 12 Nov 2023 12:47:51 +0100 Subject: [PATCH 12/18] changed tax purging to use cacheTags wherever possible --- .../WordPressCachePurge/TermMethods.php | 32 ++++++++++++++++++- .../ContentChangeTrigger.php | 4 +-- src/Servebolt/Helpers/Helpers.php | 14 ++++++-- 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php b/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php index 7604b4be..7b70aff6 100644 --- a/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php +++ b/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php @@ -7,8 +7,10 @@ use Servebolt\Optimizer\CachePurge\CachePurge as CachePurgeDriver; use Servebolt\Optimizer\CachePurge\PurgeObject\PurgeObject; use Servebolt\Optimizer\Queue\Queues\WpObjectQueue; +use Servebolt\Optimizer\CacheTags\CacheTagsBase; use function Servebolt\Optimizer\Helpers\getCachePurgeOriginEvent; use function Servebolt\Optimizer\Helpers\isQueueItem; +use function Servebolt\Optimizer\Helpers\isAcd; /** * Trait TermMethods @@ -45,6 +47,20 @@ private static function getUrlsToPurgeByTermId(int $termId, string $taxonomySlug return $purgeObject->getUrls(); } + /** + * Get all the URLs to purge for a given term. + * + * @param int $termId + * @param string $taxonomySlug + * @return bool|mixed + */ + private static function getTagToPurgeByTermId(int $termId): array + { + $cachTag = new CacheTagsBase(); + $cachTag->add('term-'.$termId); + return $cacheTag->getHeaders(); + } + /** * Do cache purge for a term without resolving the whole URL hierarchy. * @@ -101,6 +117,8 @@ public static function purgeTermCache(int $termId, string $taxonomySlug): bool do_action('sb_optimizer_purged_term_cache_for_' . $termId, false); if (self::shouldPurgeByQueue()) { + // if queuing, will check the if CacheTag enabled and use it + // as needed during processing. $queueInstance = WpObjectQueue::getInstance(); $queueItemData = [ 'type' => 'term', @@ -111,7 +129,19 @@ public static function purgeTermCache(int $termId, string $taxonomySlug): bool $queueItemData['originEvent'] = $originEvent; } return isQueueItem($queueInstance->add($queueItemData)); + // should only ever be with ACD but this might change later + // so checking to make sure CacheTags will be useable. + } + $cachePurgeDriver = CachePurgeDriver::getInstance(); + if ($cachePurgeDriver::driverSupportsCacheTagPurge()) { + error_log( + "this is ACD! \n\n" + ); + $purgeValues = getTagToPurgeByTermId($termId); + error_log(print_r($purgeValues, true)); + $cachePurgeDriver->purgeByTags($purgeValues); } else { + // if ( self::$preventDoublePurge && self::$preventTermDoublePurge @@ -120,7 +150,7 @@ public static function purgeTermCache(int $termId, string $taxonomySlug): bool return self::$recentlyPurgedTerms[$termId . '-' . $taxonomySlug]; } $urlsToPurge = self::getUrlsToPurgeByTermId($termId, $taxonomySlug); - $cachePurgeDriver = CachePurgeDriver::getInstance(); + $urlsToPurge = self::maybeSliceUrlsToPurge($urlsToPurge, 'term', $cachePurgeDriver); $result = $cachePurgeDriver->purgeByUrls($urlsToPurge); if (self::$preventDoublePurge && self::$preventTermDoublePurge) { diff --git a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php index fb53deea..c2919ec9 100644 --- a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php +++ b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php @@ -128,9 +128,7 @@ public function purgeCategoryTermsOnFirstSave($object_id, $terms, $tt_ids, $taxo foreach($tt_ids as $term_id) { // don't do anything if its the default. It should never have to do this // but just in case it does, better not to set an extra purge event. - if($term_id == $default_category) continue; - error_log("I'm puring $term_id "); - // the $taxonomy will always be 'category' + if($term_id == $default_category) continue; $this->maybePurgeTerm((int) $term_id, $taxonomy); } } diff --git a/src/Servebolt/Helpers/Helpers.php b/src/Servebolt/Helpers/Helpers.php index 47da18f9..c50d5543 100644 --- a/src/Servebolt/Helpers/Helpers.php +++ b/src/Servebolt/Helpers/Helpers.php @@ -373,12 +373,20 @@ function getSiteIdFromEnvFile(): ?string */ function getSiteIdFromWebrootPath(bool $attemptPathFromEnvironmentFile = true): ?string { + $legacy = '/kunder\/[a-z_0-9]+\/[a-z_]+(\d+)(|\/)/'; + $nextGen = '/(\/cust\/[0-9]\/[a-z_0-9]+\/[a-z_]+(\d+))/'; $path = $attemptPathFromEnvironmentFile ? getWebrootPath() : getWebrootPathFromWordPress(); + $regex = $legacy; + $match_number = 1; + if(isNextGen($path)) { + $regex = $nextGen; + $match_number = 2; + } if ( - preg_match('/kunder\/[a-z_0-9]+\/[a-z_]+(\d+)(|\/)/', $path, $matches) - && isset($matches[1]) + preg_match($regex, $path, $matches) + && isset($matches[$match_number]) ) { - return $matches[1]; + return $matches[$match_number]; } return null; } From 57276b6e04bfbb278ecacf3451db002148dabda5 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Sun, 12 Nov 2023 14:00:56 +0100 Subject: [PATCH 13/18] more debug workout why terms not purge requesting --- .../WordPressCachePurge/TermMethods.php | 18 ++++---- .../ContentChangeTrigger.php | 14 +++--- .../CacheTags/GetCacheTagsHeadersForTag.php | 44 +++++++++++++++++++ 3 files changed, 60 insertions(+), 16 deletions(-) create mode 100644 src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php diff --git a/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php b/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php index 7b70aff6..2cfb1012 100644 --- a/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php +++ b/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php @@ -7,7 +7,7 @@ use Servebolt\Optimizer\CachePurge\CachePurge as CachePurgeDriver; use Servebolt\Optimizer\CachePurge\PurgeObject\PurgeObject; use Servebolt\Optimizer\Queue\Queues\WpObjectQueue; -use Servebolt\Optimizer\CacheTags\CacheTagsBase; +use Servebolt\Optimizer\CacheTags\GetCacheTagsHeadersForTag; use function Servebolt\Optimizer\Helpers\getCachePurgeOriginEvent; use function Servebolt\Optimizer\Helpers\isQueueItem; use function Servebolt\Optimizer\Helpers\isAcd; @@ -56,8 +56,7 @@ private static function getUrlsToPurgeByTermId(int $termId, string $taxonomySlug */ private static function getTagToPurgeByTermId(int $termId): array { - $cachTag = new CacheTagsBase(); - $cachTag->add('term-'.$termId); + $cacheTag = new GetCacheTagsHeadersForTag($termId, 'term'); return $cacheTag->getHeaders(); } @@ -134,12 +133,15 @@ public static function purgeTermCache(int $termId, string $taxonomySlug): bool } $cachePurgeDriver = CachePurgeDriver::getInstance(); if ($cachePurgeDriver::driverSupportsCacheTagPurge()) { - error_log( - "this is ACD! \n\n" - ); $purgeValues = getTagToPurgeByTermId($termId); - error_log(print_r($purgeValues, true)); - $cachePurgeDriver->purgeByTags($purgeValues); + if(is_array($purgeValues)) { + error_log('purge array of tags : ' . print_r($purgeValues, true)); + } else if(is_string($purgeValues)) { + error_log('purge string of tags : ' . $purgeValues); + } else { + error_log(' nothing in the reply. that is not nice'); + } // purging term: + $result = $cachePurgeDriver->purgeByTags($purgeValues); } else { // if ( diff --git a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php index c2919ec9..0399d244 100644 --- a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php +++ b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php @@ -31,7 +31,6 @@ public function deregisterEvents(): void remove_action('trash_comment', [$this, 'purgePostOnCommentTrashed'], 99, 2); remove_action('untrash_comment', [$this, 'purgePostOnCommentUnTrashed'], 99, 2); remove_action('wp_insert_post', [$this, 'purgeFirstSave'], 99, 3); - } /** @@ -89,25 +88,24 @@ public function registerEvents() if (apply_filters('sb_optimizer_automatic_purge_on_comment_untrashed', true)) { add_action('untrash_comment', [$this, 'purgePostOnCommentUnTrashed'], 99, 2); } - } /** * Double check that the first save purges properly for the Category taxonomy. - * - * On first save, wordpress will save the Category as 'unassigned', to only + * + * On first save, wordpress will save the Category as 'unassigned', to only * later in the save process save it again as the selected Category. - * + * * This method is here to make sure that first save items always purge - * the categories on post save. - * + * the categories on post save. + * * @param int $object_id The id of the post being saved. * @param array $terms Array of terms, normally numeric. * @param array $tt_ids Array of numeric terms. * @param string $taxonomy The name of the taxonomy. * @param bool Append terms or replace, replace (false) is default. * @param array $old_tt_ids Array of numeric terms, the previously saved version. - * + * * @return void */ public function purgeCategoryTermsOnFirstSave($object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids): void diff --git a/src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php b/src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php new file mode 100644 index 00000000..87b6d6fd --- /dev/null +++ b/src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php @@ -0,0 +1,44 @@ +objectId = $objectId; + $this->objectType = $objectType; // is this a post type or term? + $this->setBlog(); + $this->driver = $this->getSelectedCachePurgeDriver(($this->blogId == '')?null:$this->blogId); + $this->setupHeaders(); + } + + protected function setupHeaders() : void + { + + if($this->objectType == 'term') { + $this->add('term-'.$this->objectId); + return; + } + + } +} From 6b0348e8dc5fbe777eb5e3ea357623149ea858b8 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Sun, 12 Nov 2023 14:54:58 +0100 Subject: [PATCH 14/18] updated readme, now purging by cache tags on terms where possible, full support for Legacy and NextGen server types --- README.md | 1 + Readme.txt | 7 +-- .../WordPressCachePurge/TermMethods.php | 14 ++---- src/Servebolt/CacheTags/CacheTagsBase.php | 1 + .../GetCacheTagsHeadersForLocation.php | 1 + .../CacheTags/GetCacheTagsHeadersForTag.php | 44 ------------------- 6 files changed, 11 insertions(+), 57 deletions(-) delete mode 100644 src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php diff --git a/README.md b/README.md index e23b1585..9aaa16d7 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ If you want to build a local production-ready version of the plugin you can run * Allows for NextGen servers to be supported. * Using hook wp_insert_post, added default_category check on first save of a post, so that purging on added categories on new posts can be done. * Tested upto 6.4.1 +* Fixed bug in cache by term id, now uses CacheTags where possible. #### 3.5.24 * fixed small bug of missing save button on advanced tab of new installs * proven support for 6.3.1 diff --git a/Readme.txt b/Readme.txt index f1ca0e7f..3647d735 100644 --- a/Readme.txt +++ b/Readme.txt @@ -98,9 +98,10 @@ If you're a Servebolt client, please reach out to our Support Team and we'll be == Changelog == = 3.5.25 = -* Allows for NextGen servers to be supported. -* tested with latest version of WordPress (6.4.1) -* Using hook wp_insert_post, added default_category check on first save of a post, so that purging on added categories on new posts can be done. +* Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the server site id from the path. +* Using hook set_object_terms, so that it checks if default_category is set on first save of a post, and is being replace with newer terms on first publish. +* Tested upto 6.4.1 +* Fixed bug in cache by term id, now uses CacheTags whenever possible. = 3.5.24 = * fixed small bug of missing save button on advanced tab of new installs diff --git a/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php b/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php index 2cfb1012..ee8f25e2 100644 --- a/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php +++ b/src/Servebolt/CachePurge/WordPressCachePurge/TermMethods.php @@ -7,7 +7,7 @@ use Servebolt\Optimizer\CachePurge\CachePurge as CachePurgeDriver; use Servebolt\Optimizer\CachePurge\PurgeObject\PurgeObject; use Servebolt\Optimizer\Queue\Queues\WpObjectQueue; -use Servebolt\Optimizer\CacheTags\GetCacheTagsHeadersForTag; +use Servebolt\Optimizer\CacheTags\GetCacheTagsHeadersForLocation; use function Servebolt\Optimizer\Helpers\getCachePurgeOriginEvent; use function Servebolt\Optimizer\Helpers\isQueueItem; use function Servebolt\Optimizer\Helpers\isAcd; @@ -56,7 +56,7 @@ private static function getUrlsToPurgeByTermId(int $termId, string $taxonomySlug */ private static function getTagToPurgeByTermId(int $termId): array { - $cacheTag = new GetCacheTagsHeadersForTag($termId, 'term'); + $cacheTag = new GetCacheTagsHeadersForLocation($termId, 'term'); return $cacheTag->getHeaders(); } @@ -133,15 +133,9 @@ public static function purgeTermCache(int $termId, string $taxonomySlug): bool } $cachePurgeDriver = CachePurgeDriver::getInstance(); if ($cachePurgeDriver::driverSupportsCacheTagPurge()) { - $purgeValues = getTagToPurgeByTermId($termId); - if(is_array($purgeValues)) { - error_log('purge array of tags : ' . print_r($purgeValues, true)); - } else if(is_string($purgeValues)) { - error_log('purge string of tags : ' . $purgeValues); - } else { - error_log(' nothing in the reply. that is not nice'); - } // purging term: + $purgeValues = self::getTagToPurgeByTermId((int) $termId); $result = $cachePurgeDriver->purgeByTags($purgeValues); + return $result; } else { // if ( diff --git a/src/Servebolt/CacheTags/CacheTagsBase.php b/src/Servebolt/CacheTags/CacheTagsBase.php index 062b8501..9bf9ea60 100644 --- a/src/Servebolt/CacheTags/CacheTagsBase.php +++ b/src/Servebolt/CacheTags/CacheTagsBase.php @@ -297,6 +297,7 @@ public function add( $name ) : void */ public function getHeaders() : array { + error_log('request to get headers'); return $this->headers; } diff --git a/src/Servebolt/CacheTags/GetCacheTagsHeadersForLocation.php b/src/Servebolt/CacheTags/GetCacheTagsHeadersForLocation.php index 92ae4dc0..fbec359b 100644 --- a/src/Servebolt/CacheTags/GetCacheTagsHeadersForLocation.php +++ b/src/Servebolt/CacheTags/GetCacheTagsHeadersForLocation.php @@ -37,6 +37,7 @@ protected function setupHeaders() : void { if($this->objectType == 'term') { + $this->setPrefixAndSuffixForTags(); $this->add('term-'.$this->objectId); return; } diff --git a/src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php b/src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php deleted file mode 100644 index 87b6d6fd..00000000 --- a/src/Servebolt/CacheTags/GetCacheTagsHeadersForTag.php +++ /dev/null @@ -1,44 +0,0 @@ -objectId = $objectId; - $this->objectType = $objectType; // is this a post type or term? - $this->setBlog(); - $this->driver = $this->getSelectedCachePurgeDriver(($this->blogId == '')?null:$this->blogId); - $this->setupHeaders(); - } - - protected function setupHeaders() : void - { - - if($this->objectType == 'term') { - $this->add('term-'.$this->objectId); - return; - } - - } -} From 47b43e1a27425ce32576056b9208f8726aba10ec Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Sun, 12 Nov 2023 19:28:45 +0100 Subject: [PATCH 15/18] latest update to readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9aaa16d7..677b27af 100644 --- a/README.md +++ b/README.md @@ -69,10 +69,10 @@ If you want to build a local production-ready version of the plugin you can run ## Changelog #### 3.5.25 -* Allows for NextGen servers to be supported. -* Using hook wp_insert_post, added default_category check on first save of a post, so that purging on added categories on new posts can be done. +* Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the server site id from the path. +* Using hook set_object_terms, so that it checks if default_category check on first save of a post, is being replace with newer terms on first publish. * Tested upto 6.4.1 -* Fixed bug in cache by term id, now uses CacheTags where possible. +* Fixed bug in cache by term id, now uses CacheTags whenever possible. #### 3.5.24 * fixed small bug of missing save button on advanced tab of new installs * proven support for 6.3.1 From a9ee34a3386ce12b097325c6bcec32554b1fa3f4 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Mon, 13 Nov 2023 09:53:42 +0100 Subject: [PATCH 16/18] removed error log call --- README.md | 2 +- Readme.txt | 4 ++-- src/Servebolt/CacheTags/CacheTagsBase.php | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 677b27af..8ca3d80e 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ If you want to build a local production-ready version of the plugin you can run ## Changelog #### 3.5.25 -* Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the server site id from the path. +* Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the site id from the path. * Using hook set_object_terms, so that it checks if default_category check on first save of a post, is being replace with newer terms on first publish. * Tested upto 6.4.1 * Fixed bug in cache by term id, now uses CacheTags whenever possible. diff --git a/Readme.txt b/Readme.txt index 3647d735..76ecafb3 100644 --- a/Readme.txt +++ b/Readme.txt @@ -98,8 +98,8 @@ If you're a Servebolt client, please reach out to our Support Team and we'll be == Changelog == = 3.5.25 = -* Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the server site id from the path. -* Using hook set_object_terms, so that it checks if default_category is set on first save of a post, and is being replace with newer terms on first publish. +* Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the site id from the path. +* Using hook set_object_terms, so that it checks if default_category is used on first save of a post, and if its is being replace with newer terms on first publish. * Tested upto 6.4.1 * Fixed bug in cache by term id, now uses CacheTags whenever possible. diff --git a/src/Servebolt/CacheTags/CacheTagsBase.php b/src/Servebolt/CacheTags/CacheTagsBase.php index 9bf9ea60..062b8501 100644 --- a/src/Servebolt/CacheTags/CacheTagsBase.php +++ b/src/Servebolt/CacheTags/CacheTagsBase.php @@ -297,7 +297,6 @@ public function add( $name ) : void */ public function getHeaders() : array { - error_log('request to get headers'); return $this->headers; } From f88d855d868375e8b5cc95b515cc838acf171dfc Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Mon, 13 Nov 2023 10:55:04 +0100 Subject: [PATCH 17/18] small change to readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ca3d80e..e324cca1 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ If you want to build a local production-ready version of the plugin you can run ## Changelog #### 3.5.25 * Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the site id from the path. -* Using hook set_object_terms, so that it checks if default_category check on first save of a post, is being replace with newer terms on first publish. +* Using hook set_object_terms, so that it checks if default_category is used on first save of a post, and if its is being replace with newer terms on first publish. * Tested upto 6.4.1 * Fixed bug in cache by term id, now uses CacheTags whenever possible. #### 3.5.24 From 5a2f51b6081cb393c22c292caa64fbe5c6453691 Mon Sep 17 00:00:00 2001 From: Andrew Killen Date: Thu, 23 Nov 2023 15:39:50 +0100 Subject: [PATCH 18/18] added double check for image dimension ever being 0, preventing a possible divide by 0. also some formatting, and the relevent purgetest for new term purge on first save. --- README.md | 1 + Readme.txt | 1 + .../AcceleratedDomains/ImageResize/WpImageResize.php | 1 + .../WpObjectCachePurgeActions/ContentChangeTrigger.php | 5 ++--- src/Servebolt/Utils/ImageSizeCreationOverride.php | 5 +++-- src/Servebolt/Utils/WPConfigTransformer.php | 2 +- tests/Unit/CachePurgeTriggerTest.php | 2 ++ 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e324cca1..e5e410d7 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ If you want to build a local production-ready version of the plugin you can run * Using hook set_object_terms, so that it checks if default_category is used on first save of a post, and if its is being replace with newer terms on first publish. * Tested upto 6.4.1 * Fixed bug in cache by term id, now uses CacheTags whenever possible. +* Added check for Image sizes on Accellerated Domains image resizer so that it can never have a zero value. #### 3.5.24 * fixed small bug of missing save button on advanced tab of new installs * proven support for 6.3.1 diff --git a/Readme.txt b/Readme.txt index 76ecafb3..99cc3cc3 100644 --- a/Readme.txt +++ b/Readme.txt @@ -102,6 +102,7 @@ If you're a Servebolt client, please reach out to our Support Team and we'll be * Using hook set_object_terms, so that it checks if default_category is used on first save of a post, and if its is being replace with newer terms on first publish. * Tested upto 6.4.1 * Fixed bug in cache by term id, now uses CacheTags whenever possible. +* Added check for Image sizes on Accellerated Domains image resizer so that it can never have a zero value. = 3.5.24 = * fixed small bug of missing save button on advanced tab of new installs diff --git a/src/Servebolt/AcceleratedDomains/ImageResize/WpImageResize.php b/src/Servebolt/AcceleratedDomains/ImageResize/WpImageResize.php index 3687cf57..f34432ba 100644 --- a/src/Servebolt/AcceleratedDomains/ImageResize/WpImageResize.php +++ b/src/Servebolt/AcceleratedDomains/ImageResize/WpImageResize.php @@ -57,6 +57,7 @@ public function addSrcOverrideInTheContentHook(): void add_filter('the_content', [$this, 'alterImagesIntheContent'], 99, 1 ); } } + /** * Add hook to duplicate all existing sizes in the srcset-array to contain half the size. */ diff --git a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php index 0399d244..4f1eab12 100644 --- a/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php +++ b/src/Servebolt/CachePurge/WpObjectCachePurgeActions/ContentChangeTrigger.php @@ -30,7 +30,7 @@ public function deregisterEvents(): void remove_action('edit_comment', [$this, 'purgePostOnPublishedCommentEdited'], 99, 2); remove_action('trash_comment', [$this, 'purgePostOnCommentTrashed'], 99, 2); remove_action('untrash_comment', [$this, 'purgePostOnCommentUnTrashed'], 99, 2); - remove_action('wp_insert_post', [$this, 'purgeFirstSave'], 99, 3); + remove_action('set_object_terms', [$this, 'purgeCategoryTermsOnFirstSave'], 99, 6); } /** @@ -59,7 +59,7 @@ public function registerEvents() add_action('save_post', [$this, 'purgePostOnSave'], 99, 1); } - // Purge post, focus on updating the category term(s) + // Purge term(s), updating the category terms after first save when replacing the default_category if (apply_filters('sb_optimizer_automatic_purge_on_post_first_save', true)) { add_action('set_object_terms', [$this, 'purgeCategoryTermsOnFirstSave'], 99, 6); } @@ -436,5 +436,4 @@ public function purgePostOnCommentUnTrashed(int $comment_id, object $commentData // Purge post as needed (checks post type for validity). $this->maybePurgePost($postId); } - } diff --git a/src/Servebolt/Utils/ImageSizeCreationOverride.php b/src/Servebolt/Utils/ImageSizeCreationOverride.php index 648b2e79..631b2555 100644 --- a/src/Servebolt/Utils/ImageSizeCreationOverride.php +++ b/src/Servebolt/Utils/ImageSizeCreationOverride.php @@ -46,7 +46,6 @@ public function __construct() */ public function overrideImageSizeCreation($sizes, $imageMeta): array { - // Store the image sizes for later use $this->originalSizes = $sizes; @@ -56,12 +55,14 @@ public function overrideImageSizeCreation($sizes, $imageMeta): array // Determine which image sizes we should generate files for $uploadedImageRatio = $imageMeta['width'] / $imageMeta['height']; return array_filter($sizes, function ($size, $key) use ($imageMeta, $uploadedImageRatio) { - // Check if this is a size that we should always generate if ( in_array($key, (array) apply_filters('sb_optimizer_image_resize_always_create_sizes', $this->alwaysCreateSizes) ) ) { return true; } + // Check we can't ever do a divide by 0. + if($size['width'] == 0 || $size['height'] == 0) return true; + $imageSizeRatio = $size['width'] / $size['height']; $uploadedImageHasSameRatioAsCurrentImageSize = $uploadedImageRatio == $imageSizeRatio; $uploadedImageIsBiggerThanCurrentImageSize = $imageMeta['width'] >= $size['width'] && $imageMeta['height'] >= $size['height']; diff --git a/src/Servebolt/Utils/WPConfigTransformer.php b/src/Servebolt/Utils/WPConfigTransformer.php index 0f4d8f14..c8f91aac 100644 --- a/src/Servebolt/Utils/WPConfigTransformer.php +++ b/src/Servebolt/Utils/WPConfigTransformer.php @@ -85,6 +85,7 @@ public function exists( $type, $name ) { throw new Exception( "Config type '{$type}' does not exist." ); } + error_log('wp_configs from function Exists :' . print_r($this->wp_configs, true)); return isset( $this->wp_configs[ $type ][ $name ] ); } @@ -362,5 +363,4 @@ protected function save( $contents ) { return true; } - } diff --git a/tests/Unit/CachePurgeTriggerTest.php b/tests/Unit/CachePurgeTriggerTest.php index 1d1616c4..8ee3b3fb 100644 --- a/tests/Unit/CachePurgeTriggerTest.php +++ b/tests/Unit/CachePurgeTriggerTest.php @@ -19,6 +19,7 @@ public function setUp() : void $this->setUpBogusAcdConfig(); $this->useQueueBasedCachePurge(); add_filter('sb_optimizer_automatic_purge_on_post_save', '__return_false'); // Prevent post creation from adding the post to the cache purge queue + add_filter('sb_optimizer_automatic_purge_on_post_first_save', '__return_false'); // Prevent replacing the default category on first save from making a cache purge WpObjectCachePurgeActions::reloadEvents(); } @@ -27,6 +28,7 @@ public function tearDown() : void parent::tearDown(); MigrationRunner::cleanup(); remove_filter('sb_optimizer_automatic_purge_on_post_save', '__return_false'); + remove_filter('sb_optimizer_automatic_purge_on_post_first_save', '__return_false'); } public function testThatTrashingAPostPurgesCache()